diff --git a/test/tint/access/let/matrix.wgsl.expected.ir.msl b/test/tint/access/let/matrix.wgsl.expected.ir.msl
index 9a5bc98..6b2dc0c 100644
--- a/test/tint/access/let/matrix.wgsl.expected.ir.msl
+++ b/test/tint/access/let/matrix.wgsl.expected.ir.msl
@@ -1,8 +1,25 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-kernel void tint_symbol() {
-  float3x3 const m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
-  float3 const v = m[1];
-  float const f = v[1];
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 0)
 }
+
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %m:mat3x3<f32> = let mat3x3<f32>(vec3<f32>(1.0f, 2.0f, 3.0f), vec3<f32>(4.0f, 5.0f, 6.0f), vec3<f32>(7.0f, 8.0f, 9.0f))
+    %4:vec3<f32> = access %m, 1i
+    %v:vec3<f32> = let %4
+    %6:f32 = access %v, 1i
+    %f:f32 = let %6
+    store %s, %f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/access/let/vector.wgsl.expected.ir.msl b/test/tint/access/let/vector.wgsl.expected.ir.msl
index 0849b0d..646cdc4 100644
--- a/test/tint/access/let/vector.wgsl.expected.ir.msl
+++ b/test/tint/access/let/vector.wgsl.expected.ir.msl
@@ -1,9 +1,32 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-kernel void tint_symbol() {
-  float3 const v = float3(1.0f, 2.0f, 3.0f);
-  float const scalar = v[1u];
-  float2 const swizzle2 = v.xz;
-  float3 const swizzle3 = v.xzy;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, vec3<f32>, read_write> = var @binding_point(0, 0)
 }
+
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %v:vec3<f32> = let vec3<f32>(1.0f, 2.0f, 3.0f)
+    %4:f32 = access %v, 1u
+    %scalar:f32 = let %4
+    %6:vec2<f32> = swizzle %v, xz
+    %swizzle2:vec2<f32> = let %6
+    %8:vec3<f32> = swizzle %v, xzy
+    %swizzle3:vec3<f32> = let %8
+    %10:vec3<f32> = construct %scalar
+    %11:vec3<f32> = let %10
+    %12:vec3<f32> = construct %swizzle2, 1.0f
+    %13:vec3<f32> = add %11, %12
+    %14:vec3<f32> = add %13, %swizzle3
+    store %s, %14
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/access/ptr.wgsl.expected.ir.msl b/test/tint/access/ptr.wgsl.expected.ir.msl
index 2f4757d..0c53820 100644
--- a/test/tint/access/ptr.wgsl.expected.ir.msl
+++ b/test/tint/access/ptr.wgsl.expected.ir.msl
@@ -1,109 +1,121 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
   b:i32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
   %g1:ptr<workgroup, atomic<i32>, read_write> = var
 }
 
-%d = func(%val:i32):i32 -> %b2 {
-  %b2 = block {
+%accept_value = func(%val:i32):i32 {
+  $B2: {
     ret %val
   }
 }
-%c = func(%val_1:ptr<function, i32, read_write>):i32 -> %b3 {  # %val_1: 'val'
-  %b3 = block {
+%accept_ptr_deref_call_func = func(%val_1:ptr<function, i32, read_write>):i32 {  # %val_1: 'val'
+  $B3: {
     %7:i32 = load %val_1
     %8:i32 = let %7
     %9:i32 = load %val_1
-    %10:i32 = call %d, %9
+    %10:i32 = call %accept_value, %9
     %11:i32 = add %8, %10
     ret %11
   }
 }
-%a = func(%val_2:ptr<function, i32, read_write>):i32 -> %b4 {  # %val_2: 'val'
-  %b4 = block {
+%accept_ptr_deref_pass_through = func(%val_2:ptr<function, i32, read_write>):i32 {  # %val_2: 'val'
+  $B4: {
     %14:i32 = load %val_2
     %15:i32 = let %14
-    %16:i32 = call %c, %val_2
+    %16:i32 = call %accept_ptr_deref_call_func, %val_2
     %17:i32 = add %15, %16
     ret %17
   }
 }
-%z = func():i32 -> %b5 {
-  %b5 = block {
-    %19:i32 = atomicLoad %g1
-    ret %19
+%accept_ptr_to_struct_and_access = func(%val_3:ptr<function, S, read_write>):i32 {  # %val_3: 'val'
+  $B5: {
+    %20:ptr<function, i32, read_write> = access %val_3, 0u
+    %21:i32 = load %20
+    %22:ptr<function, i32, read_write> = access %val_3, 1u
+    %23:i32 = load %22
+    %24:i32 = add %21, %23
+    ret %24
   }
 }
-%y = func(%v1:ptr<function, vec3<f32>, read_write>):i32 -> %b6 {
-  %b6 = block {
-    %22:vec3<f32> = load %v1
-    %23:vec3<f32> = load %v1
-    %24:vec3<f32> = cross %22, %23
-    %25:f32 = access %24, 0u
-    store_vector_element %v1, 0u, %25
-    %26:f32 = load_vector_element %v1, 0u
-    %27:i32 = call %tint_f32_to_i32, %26
-    ret %27
+%accept_ptr_to_struct_access_pass_ptr = func(%val_4:ptr<function, S, read_write>):i32 {  # %val_4: 'val'
+  $B6: {
+    %27:ptr<function, i32, read_write> = access %val_4, 0u
+    %b:ptr<function, i32, read_write> = let %27
+    store %b, 2i
+    %29:i32 = load %b
+    ret %29
   }
 }
-%b = func(%val_3:ptr<function, S, read_write>):i32 -> %b7 {  # %val_3: 'val'
-  %b7 = block {
-    %31:ptr<function, i32, read_write> = access %val_3, 0u
-    %32:i32 = load %31
-    %33:ptr<function, i32, read_write> = access %val_3, 1u
-    %34:i32 = load %33
-    %35:i32 = add %32, %34
-    ret %35
+%accept_ptr_vec_access_elements = func(%v1:ptr<function, vec3<f32>, read_write>):i32 {
+  $B7: {
+    %32:vec3<f32> = load %v1
+    %33:vec3<f32> = load %v1
+    %34:vec3<f32> = cross %32, %33
+    %35:f32 = access %34, 0u
+    store_vector_element %v1, 0u, %35
+    %36:f32 = load_vector_element %v1, 0u
+    %37:i32 = call %tint_f32_to_i32, %36
+    ret %37
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void -> %b8 {
-  %b8 = block {
-    %38:bool = eq %tint_local_index, 0u
-    if %38 [t: %b9] {  # if_1
-      %b9 = block {  # true
-        %39:void = atomicStore %g1, 0i
+%call_builtin_with_mod_scope_ptr = func():i32 {
+  $B8: {
+    %40:i32 = atomicLoad %g1
+    ret %40
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B9: {
+    %43:bool = eq %tint_local_index, 0u
+    if %43 [t: $B10] {  # if_1
+      $B10: {  # true
+        %44:void = atomicStore %g1, 0i
         exit_if  # if_1
       }
     }
-    %40:void = msl.threadgroup_barrier 4u
+    %45:void = msl.threadgroup_barrier 4u
     %v1_1:ptr<function, i32, read_write> = var, 0i  # %v1_1: 'v1'
     %v2:ptr<function, S, read_write> = var, S(0i)
     %v3:ptr<function, S, read_write> = let %v2
     %v4:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
-    %45:i32 = atomicLoad %g1
-    %t1:i32 = let %45
-    %47:i32 = call %a, %v1_1
-    %48:i32 = let %47
-    %49:i32 = call %b, %v2
-    %50:i32 = add %48, %49
-    %51:i32 = let %50
-    %52:i32 = call %b, %v3
-    %53:i32 = add %51, %52
-    %54:i32 = let %53
-    %55:i32 = call %z
-    %56:i32 = add %54, %55
-    %57:i32 = add %56, %t1
-    %58:i32 = let %57
-    %59:i32 = call %y, %v4
-    %60:i32 = add %58, %59
-    store %s, %60
+    %50:i32 = atomicLoad %g1
+    %t1:i32 = let %50
+    %52:i32 = call %accept_ptr_deref_pass_through, %v1_1
+    %53:i32 = let %52
+    %54:i32 = call %accept_ptr_to_struct_and_access, %v2
+    %55:i32 = add %53, %54
+    %56:i32 = let %55
+    %57:i32 = call %accept_ptr_to_struct_and_access, %v3
+    %58:i32 = add %56, %57
+    %59:i32 = let %58
+    %60:i32 = call %accept_ptr_vec_access_elements, %v4
+    %61:i32 = add %59, %60
+    %62:i32 = let %61
+    %63:i32 = call %accept_ptr_to_struct_access_pass_ptr, %v2
+    %64:i32 = add %62, %63
+    %65:i32 = let %64
+    %66:i32 = call %call_builtin_with_mod_scope_ptr
+    %67:i32 = add %65, %66
+    %68:i32 = add %67, %t1
+    store %s, %68
     ret
   }
 }
-%tint_f32_to_i32 = func(%value:f32):i32 -> %b10 {
-  %b10 = block {
-    %62:i32 = convert %value
-    %63:bool = gte %value, -2147483648.0f
-    %64:i32 = select -2147483648i, %62, %63
-    %65:bool = lte %value, 2147483520.0f
-    %66:i32 = select 2147483647i, %64, %65
-    ret %66
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %70:i32 = convert %value
+    %71:bool = gte %value, -2147483648.0f
+    %72:i32 = select -2147483648i, %70, %71
+    %73:bool = lte %value, 2147483520.0f
+    %74:i32 = select 2147483647i, %72, %73
+    ret %74
   }
 }
 
diff --git a/test/tint/access/var/matrix.wgsl.expected.ir.msl b/test/tint/access/var/matrix.wgsl.expected.ir.msl
index bd6323f..b8b4503 100644
--- a/test/tint/access/var/matrix.wgsl.expected.ir.msl
+++ b/test/tint/access/var/matrix.wgsl.expected.ir.msl
@@ -1,8 +1,26 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-kernel void tint_symbol() {
-  float3x3 m = float3x3(0.0f);
-  float3 const v = m[1];
-  float const f = v[1];
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 0)
 }
+
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %m:ptr<function, mat3x3<f32>, read_write> = var
+    %4:ptr<function, vec3<f32>, read_write> = access %m, 1i
+    %5:vec3<f32> = load %4
+    %v:vec3<f32> = let %5
+    %7:f32 = access %v, 1i
+    %f:f32 = let %7
+    store %s, %f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/access/var/vector.wgsl.expected.ir.msl b/test/tint/access/var/vector.wgsl.expected.ir.msl
index a42d993..f02d995 100644
--- a/test/tint/access/var/vector.wgsl.expected.ir.msl
+++ b/test/tint/access/var/vector.wgsl.expected.ir.msl
@@ -1,9 +1,34 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-kernel void tint_symbol() {
-  float3 v = 0.0f;
-  float const scalar = v[1u];
-  float2 const swizzle2 = v.xz;
-  float3 const swizzle3 = v.xzy;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, vec3<f32>, read_write> = var @binding_point(0, 0)
 }
+
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %v:ptr<function, vec3<f32>, read_write> = var
+    %4:f32 = load_vector_element %v, 1u
+    %scalar:f32 = let %4
+    %6:vec3<f32> = load %v
+    %7:vec2<f32> = swizzle %6, xz
+    %swizzle2:vec2<f32> = let %7
+    %9:vec3<f32> = load %v
+    %10:vec3<f32> = swizzle %9, xzy
+    %swizzle3:vec3<f32> = let %10
+    %12:vec3<f32> = construct %scalar
+    %13:vec3<f32> = let %12
+    %14:vec3<f32> = construct %swizzle2, 1.0f
+    %15:vec3<f32> = add %13, %14
+    %16:vec3<f32> = add %15, %swizzle3
+    store %s, %16
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.ir.msl b/test/tint/array/assign_to_function_var.wgsl.expected.ir.msl
index 918de54..dc04c8b 100644
--- a/test/tint/array/assign_to_function_var.wgsl.expected.ir.msl
+++ b/test/tint/array/assign_to_function_var.wgsl.expected.ir.msl
@@ -1,28 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   arr:array<vec4<i32>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %src_private:ptr<private, array<vec4<i32>, 4>, read_write> = var
   %src_workgroup:ptr<workgroup, array<vec4<i32>, 4>, read_write> = var
   %src_uniform:ptr<uniform, S, read> = var @binding_point(0, 0)
   %src_storage:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%ret_arr = func():array<vec4<i32>, 4> -> %b2 {
-  %b2 = block {
+%ret_arr = func():array<vec4<i32>, 4> {
+  $B2: {
     ret array<vec4<i32>, 4>(vec4<i32>(0i))
   }
 }
-%ret_struct_arr = func():S -> %b3 {
-  %b3 = block {
+%ret_struct_arr = func():S {
+  $B3: {
     ret S(array<vec4<i32>, 4>(vec4<i32>(0i)))
   }
 }
-%foo = func(%src_param:array<vec4<i32>, 4>):void -> %b4 {
-  %b4 = block {
+%foo = func(%src_param:array<vec4<i32>, 4>):void {
+  $B4: {
     %src_function:ptr<function, array<vec4<i32>, 4>, read_write> = var
     %dst:ptr<function, array<vec4<i32>, 4>, read_write> = var
     store %dst, array<vec4<i32>, 4>(vec4<i32>(1i), vec4<i32>(2i), vec4<i32>(3i), vec4<i32>(3i))
@@ -53,26 +53,26 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void -> %b5 {
-  %b5 = block {
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
-        next_iteration %b7 %tint_local_index
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B5: {
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration %tint_local_index  # -> $B7
       }
-      %b7 = block (%idx:u32) {  # body
-        %28:bool = gte %idx:u32, 4u
-        if %28 [t: %b9] {  # if_1
-          %b9 = block {  # true
+      $B7 (%idx:u32): {  # body
+        %28:bool = gte %idx, 4u
+        if %28 [t: $B9] {  # if_1
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
-        %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx:u32
+        %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx
         store %29, vec4<i32>(0i)
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %30:u32 = add %idx:u32, 1u
-        next_iteration %b7 %30
+      $B8: {  # continuing
+        %30:u32 = add %idx, 1u
+        next_iteration %30  # -> $B7
       }
     }
     %31:void = msl.threadgroup_barrier 4u
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.ir.msl b/test/tint/array/assign_to_private_var.wgsl.expected.ir.msl
index 2c0797c..73b0747 100644
--- a/test/tint/array/assign_to_private_var.wgsl.expected.ir.msl
+++ b/test/tint/array/assign_to_private_var.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   arr:array<vec4<i32>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %src_private:ptr<private, array<vec4<i32>, 4>, read_write> = var
   %src_workgroup:ptr<workgroup, array<vec4<i32>, 4>, read_write> = var
   %src_uniform:ptr<uniform, S, read> = var @binding_point(0, 0)
@@ -13,18 +13,18 @@
   %dst_nested:ptr<private, array<array<array<i32, 2>, 3>, 4>, read_write> = var
 }
 
-%ret_arr = func():array<vec4<i32>, 4> -> %b2 {
-  %b2 = block {
+%ret_arr = func():array<vec4<i32>, 4> {
+  $B2: {
     ret array<vec4<i32>, 4>(vec4<i32>(0i))
   }
 }
-%ret_struct_arr = func():S -> %b3 {
-  %b3 = block {
+%ret_struct_arr = func():S {
+  $B3: {
     ret S(array<vec4<i32>, 4>(vec4<i32>(0i)))
   }
 }
-%foo = func(%src_param:array<vec4<i32>, 4>):void -> %b4 {
-  %b4 = block {
+%foo = func(%src_param:array<vec4<i32>, 4>):void {
+  $B4: {
     %src_function:ptr<function, array<vec4<i32>, 4>, read_write> = var
     store %dst, array<vec4<i32>, 4>(vec4<i32>(1i), vec4<i32>(2i), vec4<i32>(3i), vec4<i32>(3i))
     store %dst, %src_param
@@ -53,26 +53,26 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void -> %b5 {
-  %b5 = block {
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
-        next_iteration %b7 %tint_local_index
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B5: {
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration %tint_local_index  # -> $B7
       }
-      %b7 = block (%idx:u32) {  # body
-        %28:bool = gte %idx:u32, 4u
-        if %28 [t: %b9] {  # if_1
-          %b9 = block {  # true
+      $B7 (%idx:u32): {  # body
+        %28:bool = gte %idx, 4u
+        if %28 [t: $B9] {  # if_1
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
-        %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx:u32
+        %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx
         store %29, vec4<i32>(0i)
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %30:u32 = add %idx:u32, 1u
-        next_iteration %b7 %30
+      $B8: {  # continuing
+        %30:u32 = add %idx, 1u
+        next_iteration %30  # -> $B7
       }
     }
     %31:void = msl.threadgroup_barrier 4u
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.msl b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.msl
index 42ffcfd..5a3e7a4 100644
--- a/test/tint/array/assign_to_storage_var.wgsl.expected.ir.msl
+++ b/test/tint/array/assign_to_storage_var.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   arr:array<vec4<i32>, 4> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   arr:array<array<array<i32, 2>, 3>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %src_private:ptr<private, array<vec4<i32>, 4>, read_write> = var
   %src_workgroup:ptr<workgroup, array<vec4<i32>, 4>, read_write> = var
   %src_uniform:ptr<uniform, S, read> = var @binding_point(0, 0)
@@ -17,18 +17,18 @@
   %dst_nested:ptr<storage, S_nested, read_write> = var @binding_point(0, 3)
 }
 
-%ret_arr = func():array<vec4<i32>, 4> -> %b2 {
-  %b2 = block {
+%ret_arr = func():array<vec4<i32>, 4> {
+  $B2: {
     ret array<vec4<i32>, 4>(vec4<i32>(0i))
   }
 }
-%ret_struct_arr = func():S -> %b3 {
-  %b3 = block {
+%ret_struct_arr = func():S {
+  $B3: {
     ret S(array<vec4<i32>, 4>(vec4<i32>(0i)))
   }
 }
-%foo = func(%src_param:array<vec4<i32>, 4>):void -> %b4 {
-  %b4 = block {
+%foo = func(%src_param:array<vec4<i32>, 4>):void {
+  $B4: {
     %src_function:ptr<function, array<vec4<i32>, 4>, read_write> = var
     %12:ptr<storage, array<vec4<i32>, 4>, read_write> = access %dst, 0u
     store %12, array<vec4<i32>, 4>(vec4<i32>(1i), vec4<i32>(2i), vec4<i32>(3i), vec4<i32>(3i))
@@ -68,26 +68,26 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void -> %b5 {
-  %b5 = block {
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
-        next_iteration %b7 %tint_local_index
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B5: {
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration %tint_local_index  # -> $B7
       }
-      %b7 = block (%idx:u32) {  # body
-        %39:bool = gte %idx:u32, 4u
-        if %39 [t: %b9] {  # if_1
-          %b9 = block {  # true
+      $B7 (%idx:u32): {  # body
+        %39:bool = gte %idx, 4u
+        if %39 [t: $B9] {  # if_1
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
-        %40:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx:u32
+        %40:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx
         store %40, vec4<i32>(0i)
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %41:u32 = add %idx:u32, 1u
-        next_iteration %b7 %41
+      $B8: {  # continuing
+        %41:u32 = add %idx, 1u
+        next_iteration %41  # -> $B7
       }
     }
     %42:void = msl.threadgroup_barrier 4u
diff --git a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl
index 9f8ee81..3412478 100644
--- a/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl
+++ b/test/tint/array/assign_to_subexpr.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   arr:array<i32, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():i32 -> %b2 {
-  %b2 = block {
+%foo = func():i32 {
+  $B2: {
     %src:array<i32, 4> = let array<i32, 4>(0i)
     %dst:ptr<function, array<i32, 4>, read_write> = var
     %dst_struct:ptr<function, S, read_write> = var
@@ -37,8 +37,8 @@
     ret %21
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %23:i32 = call %foo
     store %s, %23
     ret
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.msl b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.msl
index 6daea82..cf44f68 100644
--- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.msl
+++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   arr:array<vec4<i32>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %src_private:ptr<private, array<vec4<i32>, 4>, read_write> = var
   %src_workgroup:ptr<workgroup, array<vec4<i32>, 4>, read_write> = var
   %src_uniform:ptr<uniform, S, read> = var @binding_point(0, 0)
@@ -13,18 +13,18 @@
   %dst_nested:ptr<workgroup, array<array<array<i32, 2>, 3>, 4>, read_write> = var
 }
 
-%ret_arr = func():array<vec4<i32>, 4> -> %b2 {
-  %b2 = block {
+%ret_arr = func():array<vec4<i32>, 4> {
+  $B2: {
     ret array<vec4<i32>, 4>(vec4<i32>(0i))
   }
 }
-%ret_struct_arr = func():S -> %b3 {
-  %b3 = block {
+%ret_struct_arr = func():S {
+  $B3: {
     ret S(array<vec4<i32>, 4>(vec4<i32>(0i)))
   }
 }
-%foo = func(%src_param:array<vec4<i32>, 4>):void -> %b4 {
-  %b4 = block {
+%foo = func(%src_param:array<vec4<i32>, 4>):void {
+  $B4: {
     %src_function:ptr<function, array<vec4<i32>, 4>, read_write> = var
     store %dst, array<vec4<i32>, 4>(vec4<i32>(1i), vec4<i32>(2i), vec4<i32>(3i), vec4<i32>(3i))
     store %dst, %src_param
@@ -53,52 +53,52 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void -> %b5 {
-  %b5 = block {
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
-        next_iteration %b7 %tint_local_index
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B5: {
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
+        next_iteration %tint_local_index  # -> $B7
       }
-      %b7 = block (%idx:u32) {  # body
-        %28:bool = gte %idx:u32, 4u
-        if %28 [t: %b9] {  # if_1
-          %b9 = block {  # true
+      $B7 (%idx:u32): {  # body
+        %28:bool = gte %idx, 4u
+        if %28 [t: $B9] {  # if_1
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
-        %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx:u32
+        %29:ptr<workgroup, vec4<i32>, read_write> = access %src_workgroup, %idx
         store %29, vec4<i32>(0i)
-        %30:ptr<workgroup, vec4<i32>, read_write> = access %dst, %idx:u32
+        %30:ptr<workgroup, vec4<i32>, read_write> = access %dst, %idx
         store %30, vec4<i32>(0i)
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %31:u32 = add %idx:u32, 1u
-        next_iteration %b7 %31
+      $B8: {  # continuing
+        %31:u32 = add %idx, 1u
+        next_iteration %31  # -> $B7
       }
     }
-    loop [i: %b10, b: %b11, c: %b12] {  # loop_2
-      %b10 = block {  # initializer
-        next_iteration %b11 %tint_local_index
+    loop [i: $B10, b: $B11, c: $B12] {  # loop_2
+      $B10: {  # initializer
+        next_iteration %tint_local_index  # -> $B11
       }
-      %b11 = block (%idx_1:u32) {  # body
-        %33:bool = gte %idx_1:u32, 24u
-        if %33 [t: %b13] {  # if_2
-          %b13 = block {  # true
+      $B11 (%idx_1:u32): {  # body
+        %33:bool = gte %idx_1, 24u
+        if %33 [t: $B13] {  # if_2
+          $B13: {  # true
             exit_loop  # loop_2
           }
         }
-        %34:u32 = mod %idx_1:u32, 2u
-        %35:u32 = div %idx_1:u32, 2u
+        %34:u32 = mod %idx_1, 2u
+        %35:u32 = div %idx_1, 2u
         %36:u32 = mod %35, 3u
-        %37:u32 = div %idx_1:u32, 6u
+        %37:u32 = div %idx_1, 6u
         %38:ptr<workgroup, i32, read_write> = access %dst_nested, %37, %36, %34
         store %38, 0i
-        continue %b12
+        continue  # -> $B12
       }
-      %b12 = block {  # continuing
-        %39:u32 = add %idx_1:u32, 1u
-        next_iteration %b11 %39
+      $B12: {  # continuing
+        %39:u32 = add %idx_1, 1u
+        next_iteration %39  # -> $B11
       }
     }
     %40:void = msl.threadgroup_barrier 4u
diff --git a/test/tint/array/function_parameter.wgsl.expected.ir.msl b/test/tint/array/function_parameter.wgsl.expected.ir.msl
index c241422..f87eadf 100644
--- a/test/tint/array/function_parameter.wgsl.expected.ir.msl
+++ b/test/tint/array/function_parameter.wgsl.expected.ir.msl
@@ -1,29 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %s:ptr<storage, f32, read_write> = var @binding_point(0, 0)
 }
 
-%f1 = func(%a:array<f32, 4>):f32 -> %b2 {
-  %b2 = block {
+%f1 = func(%a:array<f32, 4>):f32 {
+  $B2: {
     %4:f32 = access %a, 3i
     ret %4
   }
 }
-%f2 = func(%a_1:array<array<f32, 4>, 3>):f32 -> %b3 {  # %a_1: 'a'
-  %b3 = block {
+%f2 = func(%a_1:array<array<f32, 4>, 3>):f32 {  # %a_1: 'a'
+  $B3: {
     %7:f32 = access %a_1, 2i, 3i
     ret %7
   }
 }
-%f3 = func(%a_2:array<array<array<f32, 4>, 3>, 2>):f32 -> %b4 {  # %a_2: 'a'
-  %b4 = block {
+%f3 = func(%a_2:array<array<array<f32, 4>, 3>, 2>):f32 {  # %a_2: 'a'
+  $B4: {
     %10:f32 = access %a_2, 1i, 2i, 3i
     ret %10
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %a1:array<f32, 4> = let array<f32, 4>(0.0f)
     %a2:array<array<f32, 4>, 3> = let array<array<f32, 4>, 3>(array<f32, 4>(0.0f))
     %a3:array<array<array<f32, 4>, 3>, 2> = let array<array<array<f32, 4>, 3>, 2>(array<array<f32, 4>, 3>(array<f32, 4>(0.0f)))
diff --git a/test/tint/array/function_return_type.wgsl.expected.ir.msl b/test/tint/array/function_return_type.wgsl.expected.ir.msl
index ffb2175..70e6a1c 100644
--- a/test/tint/array/function_return_type.wgsl.expected.ir.msl
+++ b/test/tint/array/function_return_type.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %s:ptr<storage, f32, read_write> = var @binding_point(0, 0)
 }
 
-%f1 = func():array<f32, 4> -> %b2 {
-  %b2 = block {
+%f1 = func():array<f32, 4> {
+  $B2: {
     ret array<f32, 4>(0.0f)
   }
 }
-%f2 = func():array<array<f32, 4>, 3> -> %b3 {
-  %b3 = block {
+%f2 = func():array<array<f32, 4>, 3> {
+  $B3: {
     %4:array<f32, 4> = call %f1
     %5:array<f32, 4> = let %4
     %6:array<f32, 4> = call %f1
@@ -20,8 +20,8 @@
     ret %9
   }
 }
-%f3 = func():array<array<array<f32, 4>, 3>, 2> -> %b4 {
-  %b4 = block {
+%f3 = func():array<array<array<f32, 4>, 3>, 2> {
+  $B4: {
     %11:array<array<f32, 4>, 3> = call %f2
     %12:array<array<f32, 4>, 3> = let %11
     %13:array<array<f32, 4>, 3> = call %f2
@@ -29,8 +29,8 @@
     ret %14
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:array<f32, 4> = call %f1
     %a1:array<f32, 4> = let %16
     %18:array<array<f32, 4>, 3> = call %f2
diff --git a/test/tint/array/size.wgsl.expected.ir.msl b/test/tint/array/size.wgsl.expected.ir.msl
index c60b0f6..21a9191 100644
--- a/test/tint/array/size.wgsl.expected.ir.msl
+++ b/test/tint/array/size.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %s:ptr<storage, f32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @fragment func():void {
+  $B2: {
     %signed_literal:ptr<function, array<f32, 4>, read_write> = var
     %unsigned_literal:ptr<function, array<f32, 4>, read_write> = var
     %signed_constant:ptr<function, array<f32, 4>, read_write> = var
diff --git a/test/tint/array/strides.spvasm.expected.ir.msl b/test/tint/array/strides.spvasm.expected.ir.msl
index 5b78369..77a4f93 100644
--- a/test/tint/array/strides.spvasm.expected.ir.msl
+++ b/test/tint/array/strides.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,30 +12,128 @@
   a:array<strided_arr_1, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%f_1 = func():void -> %b2 {
-  %b2 = block {
+%f_1 = func():void {
+  $B2: {
     %3:ptr<storage, array<strided_arr_1, 4>, read_write> = access %s, 0u
-    %x_19:array<strided_arr_1, 4> = load %3
-    %5:ptr<storage, array<array<strided_arr, 2>, 3>, read_write> = access %s, 0u, 3i, 0u
-    %x_24:array<array<strided_arr, 2>, 3> = load %5
-    %7:ptr<storage, array<strided_arr, 2>, read_write> = access %s, 0u, 3i, 0u, 2i
-    %x_28:array<strided_arr, 2> = load %7
-    %9:ptr<storage, f32, read_write> = access %s, 0u, 3i, 0u, 2i, 1i, 0u
-    %x_32:f32 = load %9
-    %11:ptr<storage, array<strided_arr_1, 4>, read_write> = access %s, 0u
-    store %11, array<strided_arr_1, 4>(strided_arr_1(array<array<strided_arr, 2>, 3>(array<strided_arr, 2>(strided_arr(0.0f)))))
+    %4:array<strided_arr_1, 4> = load %3
+    %x_19:array<strided_arr_1, 4> = let %4
+    %6:ptr<storage, array<array<strided_arr, 2>, 3>, read_write> = access %s, 0u, 3i, 0u
+    %7:array<array<strided_arr, 2>, 3> = load %6
+    %x_24:array<array<strided_arr, 2>, 3> = let %7
+    %9:ptr<storage, array<strided_arr, 2>, read_write> = access %s, 0u, 3i, 0u, 2i
+    %10:array<strided_arr, 2> = load %9
+    %x_28:array<strided_arr, 2> = let %10
     %12:ptr<storage, f32, read_write> = access %s, 0u, 3i, 0u, 2i, 1i, 0u
-    store %12, 5.0f
+    %13:f32 = load %12
+    %x_32:f32 = let %13
+    %15:ptr<storage, array<strided_arr_1, 4>, read_write> = access %s, 0u
+    %16:void = call %tint_store_and_preserve_padding, %15, array<strided_arr_1, 4>(strided_arr_1(array<array<strided_arr, 2>, 3>(array<strided_arr, 2>(strided_arr(0.0f)))))
+    %18:ptr<storage, f32, read_write> = access %s, 0u, 3i, 0u, 2i, 1i, 0u
+    store %18, 5.0f
     ret
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %14:void = call %f_1
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %20:void = call %f_1
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<strided_arr_1, 4>, read_write>, %value_param:array<strided_arr_1, 4>):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration 0u  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B8] {  # if_1
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, strided_arr_1, read_write> = access %target, %idx
+        %26:strided_arr_1 = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %29:u32 = add %idx, 1u
+        next_iteration %29  # -> $B6
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, strided_arr_1, read_write>, %value_param_1:strided_arr_1):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B9: {
+    %32:ptr<storage, array<array<strided_arr, 2>, 3>, read_write> = access %target_1, 0u
+    %33:array<array<strided_arr, 2>, 3> = access %value_param_1, 0u
+    %34:void = call %tint_store_and_preserve_padding_2, %32, %33
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, array<array<strided_arr, 2>, 3>, read_write>, %value_param_2:array<array<strided_arr, 2>, 3>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B10: {
+    loop [i: $B11, b: $B12, c: $B13] {  # loop_2
+      $B11: {  # initializer
+        next_iteration 0u  # -> $B12
+      }
+      $B12 (%idx_1:u32): {  # body
+        %39:bool = gte %idx_1, 3u
+        if %39 [t: $B14] {  # if_2
+          $B14: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %40:ptr<storage, array<strided_arr, 2>, read_write> = access %target_2, %idx_1
+        %41:array<strided_arr, 2> = access %value_param_2, %idx_1
+        %42:void = call %tint_store_and_preserve_padding_3, %40, %41
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %44:u32 = add %idx_1, 1u
+        next_iteration %44  # -> $B12
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, array<strided_arr, 2>, read_write>, %value_param_3:array<strided_arr, 2>):void {  # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
+  $B15: {
+    loop [i: $B16, b: $B17, c: $B18] {  # loop_3
+      $B16: {  # initializer
+        next_iteration 0u  # -> $B17
+      }
+      $B17 (%idx_2:u32): {  # body
+        %48:bool = gte %idx_2, 2u
+        if %48 [t: $B19] {  # if_3
+          $B19: {  # true
+            exit_loop  # loop_3
+          }
+        }
+        %49:ptr<storage, strided_arr, read_write> = access %target_3, %idx_2
+        %50:strided_arr = access %value_param_3, %idx_2
+        %51:void = call %tint_store_and_preserve_padding_4, %49, %50
+        continue  # -> $B18
+      }
+      $B18: {  # continuing
+        %53:u32 = add %idx_2, 1u
+        next_iteration %53  # -> $B17
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_4 = func(%target_4:ptr<storage, strided_arr, read_write>, %value_param_4:strided_arr):void {  # %tint_store_and_preserve_padding_4: 'tint_store_and_preserve_padding', %target_4: 'target', %value_param_4: 'value_param'
+  $B20: {
+    %56:ptr<storage, f32, read_write> = access %target_4, 0u
+    %57:f32 = access %value_param_4, 0u
+    store %56, %57
     ret
   }
 }
diff --git a/test/tint/array/type_initializer.wgsl.expected.ir.msl b/test/tint/array/type_initializer.wgsl.expected.ir.msl
index e00cec5..99abaa1 100644
--- a/test/tint/array/type_initializer.wgsl.expected.ir.msl
+++ b/test/tint/array/type_initializer.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:493 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %x:i32 = let 42i
     %empty:array<i32, 4> = let array<i32, 4>(0i)
     %nonempty:array<i32, 4> = let array<i32, 4>(1i, 2i, 3i, 4i)
diff --git a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.msl b/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.msl
index b570313..9bcc7b5 100644
--- a/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/atan2-const-eval.wgsl.expected.ir.msl
@@ -1,115 +1,115 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Output = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Output = struct @align(4) {
   value:f32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %outputs:ptr<storage, array<Output, 1000>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, f32, read_write> = access %outputs, 0i, 0u
     store %3, -2.35619449615478515625f
     %4:ptr<storage, f32, read_write> = access %outputs, 1i, 0u
-    store %4, -3.14159274101257324219f
+    store %4, -3.14159250259399414062f
     %5:ptr<storage, f32, read_write> = access %outputs, 2i, 0u
-    store %5, -3.14159274101257324219f
+    store %5, -3.14159250259399414062f
     %6:ptr<storage, f32, read_write> = access %outputs, 3i, 0u
-    store %6, -3.14159274101257324219f
+    store %6, -3.14159250259399414062f
     %7:ptr<storage, f32, read_write> = access %outputs, 4i, 0u
-    store %7, -3.14159274101257324219f
+    store %7, -3.14159250259399414062f
     %8:ptr<storage, f32, read_write> = access %outputs, 5i, 0u
-    store %8, -3.14159274101257324219f
+    store %8, -3.14159250259399414062f
     %9:ptr<storage, f32, read_write> = access %outputs, 6i, 0u
-    store %9, -3.14159274101257324219f
+    store %9, -3.14159250259399414062f
     %10:ptr<storage, f32, read_write> = access %outputs, 7i, 0u
-    store %10, -3.14159274101257324219f
+    store %10, -3.14159250259399414062f
     %11:ptr<storage, f32, read_write> = access %outputs, 8i, 0u
-    store %11, -3.14159274101257324219f
+    store %11, -3.14159250259399414062f
     %12:ptr<storage, f32, read_write> = access %outputs, 9i, 0u
-    store %12, -3.14159274101257324219f
+    store %12, -3.14159250259399414062f
     %13:ptr<storage, f32, read_write> = access %outputs, 10i, 0u
-    store %13, -3.14159274101257324219f
+    store %13, -3.14159250259399414062f
     %14:ptr<storage, f32, read_write> = access %outputs, 11i, 0u
-    store %14, -3.14159274101257324219f
+    store %14, -3.14159250259399414062f
     %15:ptr<storage, f32, read_write> = access %outputs, 12i, 0u
-    store %15, -3.14159274101257324219f
+    store %15, -3.14159250259399414062f
     %16:ptr<storage, f32, read_write> = access %outputs, 13i, 0u
-    store %16, -3.14159274101257324219f
+    store %16, -3.14159250259399414062f
     %17:ptr<storage, f32, read_write> = access %outputs, 14i, 0u
-    store %17, -3.14159274101257324219f
+    store %17, -3.14159250259399414062f
     %18:ptr<storage, f32, read_write> = access %outputs, 15i, 0u
-    store %18, -3.14159274101257324219f
+    store %18, -3.14159250259399414062f
     %19:ptr<storage, f32, read_write> = access %outputs, 16i, 0u
-    store %19, -3.14159274101257324219f
+    store %19, -3.14159250259399414062f
     %20:ptr<storage, f32, read_write> = access %outputs, 17i, 0u
-    store %20, -3.14159274101257324219f
+    store %20, -3.14159250259399414062f
     %21:ptr<storage, f32, read_write> = access %outputs, 18i, 0u
-    store %21, -3.14159274101257324219f
+    store %21, -3.14159250259399414062f
     %22:ptr<storage, f32, read_write> = access %outputs, 19i, 0u
-    store %22, -3.14159274101257324219f
+    store %22, -3.14159250259399414062f
     %23:ptr<storage, f32, read_write> = access %outputs, 20i, 0u
-    store %23, -3.14159274101257324219f
+    store %23, -3.14159250259399414062f
     %24:ptr<storage, f32, read_write> = access %outputs, 21i, 0u
-    store %24, -3.14159274101257324219f
+    store %24, -3.14159250259399414062f
     %25:ptr<storage, f32, read_write> = access %outputs, 22i, 0u
-    store %25, -3.14159274101257324219f
+    store %25, -3.14159250259399414062f
     %26:ptr<storage, f32, read_write> = access %outputs, 23i, 0u
-    store %26, -3.14159274101257324219f
+    store %26, -3.14159250259399414062f
     %27:ptr<storage, f32, read_write> = access %outputs, 24i, 0u
-    store %27, -3.14159274101257324219f
+    store %27, -3.14159250259399414062f
     %28:ptr<storage, f32, read_write> = access %outputs, 25i, 0u
-    store %28, -3.14159274101257324219f
+    store %28, -3.14159250259399414062f
     %29:ptr<storage, f32, read_write> = access %outputs, 26i, 0u
-    store %29, -3.14159274101257324219f
+    store %29, -3.14159250259399414062f
     %30:ptr<storage, f32, read_write> = access %outputs, 27i, 0u
-    store %30, -3.14159274101257324219f
+    store %30, -3.14159250259399414062f
     %31:ptr<storage, f32, read_write> = access %outputs, 28i, 0u
-    store %31, -3.14159274101257324219f
+    store %31, -3.14159250259399414062f
     %32:ptr<storage, f32, read_write> = access %outputs, 29i, 0u
-    store %32, -3.14159274101257324219f
+    store %32, -3.14159250259399414062f
     %33:ptr<storage, f32, read_write> = access %outputs, 30i, 0u
-    store %33, -3.14159274101257324219f
+    store %33, -3.14159250259399414062f
     %34:ptr<storage, f32, read_write> = access %outputs, 31i, 0u
-    store %34, -3.14159274101257324219f
+    store %34, -3.14159250259399414062f
     %35:ptr<storage, f32, read_write> = access %outputs, 32i, 0u
-    store %35, -3.14159274101257324219f
+    store %35, -3.14159250259399414062f
     %36:ptr<storage, f32, read_write> = access %outputs, 33i, 0u
-    store %36, -3.14159274101257324219f
+    store %36, -3.14159250259399414062f
     %37:ptr<storage, f32, read_write> = access %outputs, 34i, 0u
-    store %37, -3.14159274101257324219f
+    store %37, -3.14159250259399414062f
     %38:ptr<storage, f32, read_write> = access %outputs, 35i, 0u
-    store %38, -3.14159274101257324219f
+    store %38, -3.14159250259399414062f
     %39:ptr<storage, f32, read_write> = access %outputs, 36i, 0u
-    store %39, -3.14159274101257324219f
+    store %39, -3.14159250259399414062f
     %40:ptr<storage, f32, read_write> = access %outputs, 37i, 0u
-    store %40, -3.14159274101257324219f
+    store %40, -3.14159250259399414062f
     %41:ptr<storage, f32, read_write> = access %outputs, 38i, 0u
-    store %41, -3.14159274101257324219f
+    store %41, -3.14159250259399414062f
     %42:ptr<storage, f32, read_write> = access %outputs, 39i, 0u
-    store %42, -3.14159274101257324219f
+    store %42, -3.14159250259399414062f
     %43:ptr<storage, f32, read_write> = access %outputs, 40i, 0u
-    store %43, -3.14159274101257324219f
+    store %43, -3.14159250259399414062f
     %44:ptr<storage, f32, read_write> = access %outputs, 41i, 0u
-    store %44, -3.14159274101257324219f
+    store %44, -3.14159250259399414062f
     %45:ptr<storage, f32, read_write> = access %outputs, 42i, 0u
-    store %45, -3.14159274101257324219f
+    store %45, -3.14159250259399414062f
     %46:ptr<storage, f32, read_write> = access %outputs, 43i, 0u
-    store %46, -3.14159274101257324219f
+    store %46, -3.14159250259399414062f
     %47:ptr<storage, f32, read_write> = access %outputs, 44i, 0u
-    store %47, -3.14159274101257324219f
+    store %47, -3.14159250259399414062f
     %48:ptr<storage, f32, read_write> = access %outputs, 45i, 0u
-    store %48, -3.14159274101257324219f
+    store %48, -3.14159250259399414062f
     %49:ptr<storage, f32, read_write> = access %outputs, 46i, 0u
-    store %49, -3.14159274101257324219f
+    store %49, -3.14159250259399414062f
     %50:ptr<storage, f32, read_write> = access %outputs, 47i, 0u
-    store %50, -3.14159274101257324219f
+    store %50, -3.14159250259399414062f
     %51:ptr<storage, f32, read_write> = access %outputs, 48i, 0u
-    store %51, -3.14159274101257324219f
+    store %51, -3.14159250259399414062f
     %52:ptr<storage, f32, read_write> = access %outputs, 49i, 0u
-    store %52, -3.14159274101257324219f
+    store %52, -3.14159250259399414062f
     %53:ptr<storage, f32, read_write> = access %outputs, 50i, 0u
     store %53, -2.35619449615478515625f
     %54:ptr<storage, f32, read_write> = access %outputs, 51i, 0u
@@ -119,17 +119,17 @@
     %56:ptr<storage, f32, read_write> = access %outputs, 53i, 0u
     store %56, -2.15879893302917480469f
     %57:ptr<storage, f32, read_write> = access %outputs, 54i, 0u
-    store %57, -2.07789468765258789062f
+    store %57, -2.07789492607116699219f
     %58:ptr<storage, f32, read_write> = access %outputs, 55i, 0u
     store %58, -1.98902058601379394531f
     %59:ptr<storage, f32, read_write> = access %outputs, 56i, 0u
     store %59, -1.89254689216613769531f
     %60:ptr<storage, f32, read_write> = access %outputs, 57i, 0u
-    store %60, -1.78946530818939208984f
+    store %60, -1.78946542739868164062f
     %61:ptr<storage, f32, read_write> = access %outputs, 58i, 0u
     store %61, -1.68145358562469482422f
     %62:ptr<storage, f32, read_write> = access %outputs, 59i, 0u
-    store %62, -1.57079637050628662109f
+    store %62, -1.57079648971557617188f
     %63:ptr<storage, f32, read_write> = access %outputs, 60i, 0u
     store %63, -1.57079637050628662109f
     %64:ptr<storage, f32, read_write> = access %outputs, 61i, 0u
@@ -147,11 +147,11 @@
     %70:ptr<storage, f32, read_write> = access %outputs, 67i, 0u
     store %70, -0.98279374837875366211f
     %71:ptr<storage, f32, read_write> = access %outputs, 68i, 0u
-    store %71, -0.90975326299667358398f
+    store %71, -0.90975320339202880859f
     %72:ptr<storage, f32, read_write> = access %outputs, 69i, 0u
-    store %72, -0.84415405988693237305f
+    store %72, -0.84415400028228759766f
     %73:ptr<storage, f32, read_write> = access %outputs, 70i, 0u
-    store %73, -0.78539824485778808594f
+    store %73, -0.78539818525314331055f
     %74:ptr<storage, f32, read_write> = access %outputs, 71i, 0u
     store %74, -0.78539818525314331055f
     %75:ptr<storage, f32, read_write> = access %outputs, 72i, 0u
@@ -351,25 +351,25 @@
     %172:ptr<storage, f32, read_write> = access %outputs, 169i, 0u
     store %172, -3.1411762237548828125f
     %173:ptr<storage, f32, read_write> = access %outputs, 170i, 0u
-    store %173, -1.57079625129699707031f
+    store %173, -1.57079637050628662109f
     %174:ptr<storage, f32, read_write> = access %outputs, 171i, 0u
-    store %174, -1.57079625129699707031f
+    store %174, -1.57079637050628662109f
     %175:ptr<storage, f32, read_write> = access %outputs, 172i, 0u
-    store %175, -1.57079625129699707031f
+    store %175, -1.57079637050628662109f
     %176:ptr<storage, f32, read_write> = access %outputs, 173i, 0u
-    store %176, -1.57079625129699707031f
+    store %176, -1.57079637050628662109f
     %177:ptr<storage, f32, read_write> = access %outputs, 174i, 0u
-    store %177, -1.57079625129699707031f
+    store %177, -1.57079637050628662109f
     %178:ptr<storage, f32, read_write> = access %outputs, 175i, 0u
-    store %178, -1.57079625129699707031f
+    store %178, -1.57079637050628662109f
     %179:ptr<storage, f32, read_write> = access %outputs, 176i, 0u
-    store %179, -1.57079625129699707031f
+    store %179, -1.57079637050628662109f
     %180:ptr<storage, f32, read_write> = access %outputs, 177i, 0u
-    store %180, -1.57079625129699707031f
+    store %180, -1.57079637050628662109f
     %181:ptr<storage, f32, read_write> = access %outputs, 178i, 0u
-    store %181, -1.57079625129699707031f
+    store %181, -1.57079637050628662109f
     %182:ptr<storage, f32, read_write> = access %outputs, 179i, 0u
-    store %182, -1.57079625129699707031f
+    store %182, -1.57079637050628662109f
     %183:ptr<storage, f32, read_write> = access %outputs, 180i, 0u
     store %183, -1.57079637050628662109f
     %184:ptr<storage, f32, read_write> = access %outputs, 181i, 0u
@@ -411,7 +411,7 @@
     %202:ptr<storage, f32, read_write> = access %outputs, 199i, 0u
     store %202, -0.01562372874468564987f
     %203:ptr<storage, f32, read_write> = access %outputs, 200i, 0u
-    store %203, -0.0123450523242354393f
+    store %203, -0.01234505139291286469f
     %204:ptr<storage, f32, read_write> = access %outputs, 201i, 0u
     store %204, -0.00999966636300086975f
     %205:ptr<storage, f32, read_write> = access %outputs, 202i, 0u
@@ -423,17 +423,17 @@
     %208:ptr<storage, f32, read_write> = access %outputs, 205i, 0u
     store %208, -0.00510199647396802902f
     %209:ptr<storage, f32, read_write> = access %outputs, 206i, 0u
-    store %209, -0.00444441474974155426f
+    store %209, -0.00444441521540284157f
     %210:ptr<storage, f32, read_write> = access %outputs, 207i, 0u
     store %210, -0.00390623020939528942f
     %211:ptr<storage, f32, read_write> = access %outputs, 208i, 0u
-    store %211, -0.00346019398421049118f
+    store %211, -0.00346019375137984753f
     %212:ptr<storage, f32, read_write> = access %outputs, 209i, 0u
-    store %212, -0.00308640999719500542f
+    store %212, -0.00308640976436436176f
     %213:ptr<storage, f32, read_write> = access %outputs, 210i, 0u
     store %213, -0.00277007604017853737f
     %214:ptr<storage, f32, read_write> = access %outputs, 211i, 0u
-    store %214, -0.00249999482184648514f
+    store %214, -0.00249999458901584148f
     %215:ptr<storage, f32, read_write> = access %outputs, 212i, 0u
     store %215, -0.00226756976917386055f
     %216:ptr<storage, f32, read_write> = access %outputs, 213i, 0u
@@ -451,11 +451,11 @@
     %222:ptr<storage, f32, read_write> = access %outputs, 219i, 0u
     store %222, -0.00127550947945564985f
     %223:ptr<storage, f32, read_write> = access %outputs, 220i, 0u
-    store %223, -0.00118906004354357719f
+    store %223, -0.00118906015995889902f
     %224:ptr<storage, f32, read_write> = access %outputs, 221i, 0u
     store %224, -0.00111111055593937635f
     %225:ptr<storage, f32, read_write> = access %outputs, 222i, 0u
-    store %225, -0.00104058242868632078f
+    store %225, -0.00104058231227099895f
     %226:ptr<storage, f32, read_write> = access %outputs, 223i, 0u
     store %226, -0.00097656220896169543f
     %227:ptr<storage, f32, read_write> = access %outputs, 224i, 0u
@@ -473,7 +473,7 @@
     %233:ptr<storage, f32, read_write> = access %outputs, 230i, 0u
     store %233, -0.00065746204927563667f
     %234:ptr<storage, f32, read_write> = access %outputs, 231i, 0u
-    store %234, -0.00062499992782250047f
+    store %234, -0.00062499986961483955f
     %235:ptr<storage, f32, read_write> = access %outputs, 232i, 0u
     store %235, -0.00059488392435014248f
     %236:ptr<storage, f32, read_write> = access %outputs, 233i, 0u
@@ -483,7 +483,7 @@
     %238:ptr<storage, f32, read_write> = access %outputs, 235i, 0u
     store %238, -0.00051652890397235751f
     %239:ptr<storage, f32, read_write> = access %outputs, 236i, 0u
-    store %239, -0.00049382710130885243f
+    store %239, -0.00049382715951651335f
     %240:ptr<storage, f32, read_write> = access %outputs, 237i, 0u
     store %240, -0.00047258977429009974f
     %241:ptr<storage, f32, read_write> = access %outputs, 238i, 0u
@@ -589,25 +589,25 @@
     %291:ptr<storage, f32, read_write> = access %outputs, 288i, 0u
     store %291, -3.13992667198181152344f
     %292:ptr<storage, f32, read_write> = access %outputs, 289i, 0u
-    store %292, -1.57079625129699707031f
+    store %292, -1.57079637050628662109f
     %293:ptr<storage, f32, read_write> = access %outputs, 290i, 0u
-    store %293, -1.57079625129699707031f
+    store %293, -1.57079637050628662109f
     %294:ptr<storage, f32, read_write> = access %outputs, 291i, 0u
-    store %294, -1.57079625129699707031f
+    store %294, -1.57079637050628662109f
     %295:ptr<storage, f32, read_write> = access %outputs, 292i, 0u
-    store %295, -1.57079625129699707031f
+    store %295, -1.57079637050628662109f
     %296:ptr<storage, f32, read_write> = access %outputs, 293i, 0u
-    store %296, -1.57079625129699707031f
+    store %296, -1.57079637050628662109f
     %297:ptr<storage, f32, read_write> = access %outputs, 294i, 0u
-    store %297, -1.57079625129699707031f
+    store %297, -1.57079637050628662109f
     %298:ptr<storage, f32, read_write> = access %outputs, 295i, 0u
-    store %298, -1.57079625129699707031f
+    store %298, -1.57079637050628662109f
     %299:ptr<storage, f32, read_write> = access %outputs, 296i, 0u
-    store %299, -1.57079625129699707031f
+    store %299, -1.57079637050628662109f
     %300:ptr<storage, f32, read_write> = access %outputs, 297i, 0u
-    store %300, -1.57079625129699707031f
+    store %300, -1.57079637050628662109f
     %301:ptr<storage, f32, read_write> = access %outputs, 298i, 0u
-    store %301, -1.57079625129699707031f
+    store %301, -1.57079637050628662109f
     %302:ptr<storage, f32, read_write> = access %outputs, 299i, 0u
     store %302, -1.57079637050628662109f
     %303:ptr<storage, f32, read_write> = access %outputs, 300i, 0u
@@ -653,7 +653,7 @@
     %323:ptr<storage, f32, read_write> = access %outputs, 320i, 0u
     store %323, -0.03997868672013282776f
     %324:ptr<storage, f32, read_write> = access %outputs, 321i, 0u
-    store %324, -0.03304582089185714722f
+    store %324, -0.03304581716656684875f
     %325:ptr<storage, f32, read_write> = access %outputs, 322i, 0u
     store %325, -0.02777063660323619843f
     %326:ptr<storage, f32, read_write> = access %outputs, 323i, 0u
@@ -667,7 +667,7 @@
     %330:ptr<storage, f32, read_write> = access %outputs, 327i, 0u
     store %330, -0.01383994705975055695f
     %331:ptr<storage, f32, read_write> = access %outputs, 328i, 0u
-    store %331, -0.0123450523242354393f
+    store %331, -0.01234505139291286469f
     %332:ptr<storage, f32, read_write> = access %outputs, 329i, 0u
     store %332, -0.0110798785462975502f
     %333:ptr<storage, f32, read_write> = access %outputs, 330i, 0u
@@ -691,7 +691,7 @@
     %342:ptr<storage, f32, read_write> = access %outputs, 339i, 0u
     store %342, -0.00475620664656162262f
     %343:ptr<storage, f32, read_write> = access %outputs, 340i, 0u
-    store %343, -0.00444441474974155426f
+    store %343, -0.00444441521540284157f
     %344:ptr<storage, f32, read_write> = access %outputs, 341i, 0u
     store %344, -0.00416230689734220505f
     %345:ptr<storage, f32, read_write> = access %outputs, 342i, 0u
@@ -699,11 +699,11 @@
     %346:ptr<storage, f32, read_write> = access %outputs, 343i, 0u
     store %346, -0.0036730780266225338f
     %347:ptr<storage, f32, read_write> = access %outputs, 344i, 0u
-    store %347, -0.00346019398421049118f
+    store %347, -0.00346019375137984753f
     %348:ptr<storage, f32, read_write> = access %outputs, 345i, 0u
     store %348, -0.00326529424637556076f
     %349:ptr<storage, f32, read_write> = access %outputs, 346i, 0u
-    store %349, -0.00308640999719500542f
+    store %349, -0.00308640976436436176f
     %350:ptr<storage, f32, read_write> = access %outputs, 347i, 0u
     store %350, -0.0029218324925750494f
     %351:ptr<storage, f32, read_write> = access %outputs, 348i, 0u
@@ -711,13 +711,13 @@
     %352:ptr<storage, f32, read_write> = access %outputs, 349i, 0u
     store %352, -0.002629842609167099f
     %353:ptr<storage, f32, read_write> = access %outputs, 350i, 0u
-    store %353, -0.00249999482184648514f
+    store %353, -0.00249999458901584148f
     %354:ptr<storage, f32, read_write> = access %outputs, 351i, 0u
     store %354, -0.00237953150644898415f
     %355:ptr<storage, f32, read_write> = access %outputs, 352i, 0u
     store %355, -0.00226756976917386055f
     %356:ptr<storage, f32, read_write> = access %outputs, 353i, 0u
-    store %356, -0.00216332823038101196f
+    store %356, -0.00216332799755036831f
     %357:ptr<storage, f32, read_write> = access %outputs, 354i, 0u
     store %357, -0.0020661128219217062f
     %358:ptr<storage, f32, read_write> = access %outputs, 355i, 0u
@@ -825,25 +825,25 @@
     %409:ptr<storage, f32, read_write> = access %outputs, 406i, 0u
     store %409, -3.13784432411193847656f
     %410:ptr<storage, f32, read_write> = access %outputs, 407i, 0u
-    store %410, -1.57079625129699707031f
+    store %410, -1.57079637050628662109f
     %411:ptr<storage, f32, read_write> = access %outputs, 408i, 0u
-    store %411, -1.57079625129699707031f
+    store %411, -1.57079637050628662109f
     %412:ptr<storage, f32, read_write> = access %outputs, 409i, 0u
-    store %412, -1.57079625129699707031f
+    store %412, -1.57079637050628662109f
     %413:ptr<storage, f32, read_write> = access %outputs, 410i, 0u
-    store %413, -1.57079625129699707031f
+    store %413, -1.57079637050628662109f
     %414:ptr<storage, f32, read_write> = access %outputs, 411i, 0u
-    store %414, -1.57079625129699707031f
+    store %414, -1.57079637050628662109f
     %415:ptr<storage, f32, read_write> = access %outputs, 412i, 0u
-    store %415, -1.57079625129699707031f
+    store %415, -1.57079637050628662109f
     %416:ptr<storage, f32, read_write> = access %outputs, 413i, 0u
-    store %416, -1.57079625129699707031f
+    store %416, -1.57079637050628662109f
     %417:ptr<storage, f32, read_write> = access %outputs, 414i, 0u
-    store %417, -1.57079625129699707031f
+    store %417, -1.57079637050628662109f
     %418:ptr<storage, f32, read_write> = access %outputs, 415i, 0u
-    store %418, -1.57079625129699707031f
+    store %418, -1.57079637050628662109f
     %419:ptr<storage, f32, read_write> = access %outputs, 416i, 0u
-    store %419, -1.57079625129699707031f
+    store %419, -1.57079637050628662109f
     %420:ptr<storage, f32, read_write> = access %outputs, 417i, 0u
     store %420, -1.57079637050628662109f
     %421:ptr<storage, f32, read_write> = access %outputs, 418i, 0u
@@ -875,9 +875,9 @@
     %434:ptr<storage, f32, read_write> = access %outputs, 431i, 0u
     store %434, -0.78539818525314331055f
     %435:ptr<storage, f32, read_write> = access %outputs, 432i, 0u
-    store %435, -0.5123894810676574707f
+    store %435, -0.51238942146301269531f
     %436:ptr<storage, f32, read_write> = access %outputs, 433i, 0u
-    store %436, -0.34555557370185852051f
+    store %436, -0.34555554389953613281f
     %437:ptr<storage, f32, read_write> = access %outputs, 434i, 0u
     store %437, -0.24497866630554199219f
     %438:ptr<storage, f32, read_write> = access %outputs, 435i, 0u
@@ -919,13 +919,13 @@
     %456:ptr<storage, f32, read_write> = access %outputs, 453i, 0u
     store %456, -0.01439900510013103485f
     %457:ptr<storage, f32, read_write> = access %outputs, 454i, 0u
-    store %457, -0.01331282220780849457f
+    store %457, -0.01331282313913106918f
     %458:ptr<storage, f32, read_write> = access %outputs, 455i, 0u
-    store %458, -0.0123450523242354393f
+    store %458, -0.01234505139291286469f
     %459:ptr<storage, f32, read_write> = access %outputs, 456i, 0u
     store %459, -0.01147908717393875122f
     %460:ptr<storage, f32, read_write> = access %outputs, 457i, 0u
-    store %460, -0.01070113666355609894f
+    store %460, -0.01070113759487867355f
     %461:ptr<storage, f32, read_write> = access %outputs, 458i, 0u
     store %461, -0.00999966636300086975f
     %462:ptr<storage, f32, read_write> = access %outputs, 459i, 0u
@@ -939,21 +939,21 @@
     %466:ptr<storage, f32, read_write> = access %outputs, 463i, 0u
     store %466, -0.0073468061164021492f
     %467:ptr<storage, f32, read_write> = access %outputs, 464i, 0u
-    store %467, -0.00694433227181434631f
+    store %467, -0.00694433273747563362f
     %468:ptr<storage, f32, read_write> = access %outputs, 465i, 0u
-    store %468, -0.0065740472637116909f
+    store %468, -0.00657404679805040359f
     %469:ptr<storage, f32, read_write> = access %outputs, 466i, 0u
     store %469, -0.00623260624706745148f
     %470:ptr<storage, f32, read_write> = access %outputs, 467i, 0u
     store %470, -0.00591709045693278313f
     %471:ptr<storage, f32, read_write> = access %outputs, 468i, 0u
-    store %471, -0.00562494061887264252f
+    store %471, -0.00562494015321135521f
     %472:ptr<storage, f32, read_write> = access %outputs, 469i, 0u
-    store %472, -0.00535390432924032211f
+    store %472, -0.00535390479490160942f
     %473:ptr<storage, f32, read_write> = access %outputs, 470i, 0u
     store %473, -0.00510199647396802902f
     %474:ptr<storage, f32, read_write> = access %outputs, 471i, 0u
-    store %474, -0.00486745685338973999f
+    store %474, -0.0048674573190510273f
     %475:ptr<storage, f32, read_write> = access %outputs, 472i, 0u
     store %475, -0.00464872689917683601f
     %476:ptr<storage, f32, read_write> = access %outputs, 473i, 0u
@@ -1059,25 +1059,25 @@
     %526:ptr<storage, f32, read_write> = access %outputs, 523i, 0u
     store %526, -3.13492894172668457031f
     %527:ptr<storage, f32, read_write> = access %outputs, 524i, 0u
-    store %527, -1.57079625129699707031f
+    store %527, -1.57079637050628662109f
     %528:ptr<storage, f32, read_write> = access %outputs, 525i, 0u
-    store %528, -1.57079625129699707031f
+    store %528, -1.57079637050628662109f
     %529:ptr<storage, f32, read_write> = access %outputs, 526i, 0u
-    store %529, -1.57079625129699707031f
+    store %529, -1.57079637050628662109f
     %530:ptr<storage, f32, read_write> = access %outputs, 527i, 0u
-    store %530, -1.57079625129699707031f
+    store %530, -1.57079637050628662109f
     %531:ptr<storage, f32, read_write> = access %outputs, 528i, 0u
-    store %531, -1.57079625129699707031f
+    store %531, -1.57079637050628662109f
     %532:ptr<storage, f32, read_write> = access %outputs, 529i, 0u
-    store %532, -1.57079625129699707031f
+    store %532, -1.57079637050628662109f
     %533:ptr<storage, f32, read_write> = access %outputs, 530i, 0u
-    store %533, -1.57079625129699707031f
+    store %533, -1.57079637050628662109f
     %534:ptr<storage, f32, read_write> = access %outputs, 531i, 0u
-    store %534, -1.57079625129699707031f
+    store %534, -1.57079637050628662109f
     %535:ptr<storage, f32, read_write> = access %outputs, 532i, 0u
-    store %535, -1.57079625129699707031f
+    store %535, -1.57079637050628662109f
     %536:ptr<storage, f32, read_write> = access %outputs, 533i, 0u
-    store %536, -1.57079625129699707031f
+    store %536, -1.57079637050628662109f
     %537:ptr<storage, f32, read_write> = access %outputs, 534i, 0u
     store %537, -1.57079637050628662109f
     %538:ptr<storage, f32, read_write> = access %outputs, 535i, 0u
@@ -1119,7 +1119,7 @@
     %556:ptr<storage, f32, read_write> = access %outputs, 553i, 0u
     store %556, -0.24497866630554199219f
     %557:ptr<storage, f32, read_write> = access %outputs, 554i, 0u
-    store %557, -0.19502027332782745361f
+    store %557, -0.19502025842666625977f
     %558:ptr<storage, f32, read_write> = access %outputs, 555i, 0u
     store %558, -0.15865525603294372559f
     %559:ptr<storage, f32, read_write> = access %outputs, 556i, 0u
@@ -1145,7 +1145,7 @@
     %569:ptr<storage, f32, read_write> = access %outputs, 566i, 0u
     store %569, -0.03626527264714241028f
     %570:ptr<storage, f32, read_write> = access %outputs, 567i, 0u
-    store %570, -0.03304582089185714722f
+    store %570, -0.03304581716656684875f
     %571:ptr<storage, f32, read_write> = access %outputs, 568i, 0u
     store %571, -0.03023652918636798859f
     %572:ptr<storage, f32, read_write> = access %outputs, 569i, 0u
@@ -1173,9 +1173,9 @@
     %583:ptr<storage, f32, read_write> = access %outputs, 580i, 0u
     store %583, -0.01306048128753900528f
     %584:ptr<storage, f32, read_write> = access %outputs, 581i, 0u
-    store %584, -0.0123450523242354393f
+    store %584, -0.01234505139291286469f
     %585:ptr<storage, f32, read_write> = access %outputs, 582i, 0u
-    store %585, -0.01168683171272277832f
+    store %585, -0.0116868307814002037f
     %586:ptr<storage, f32, read_write> = access %outputs, 583i, 0u
     store %586, -0.0110798785462975502f
     %587:ptr<storage, f32, read_write> = access %outputs, 584i, 0u
@@ -1191,7 +1191,7 @@
     %592:ptr<storage, f32, read_write> = access %outputs, 589i, 0u
     store %592, -0.00826427526772022247f
     %593:ptr<storage, f32, read_write> = access %outputs, 590i, 0u
-    store %593, -0.00790106970816850662f
+    store %593, -0.00790107063949108124f
     %594:ptr<storage, f32, read_write> = access %outputs, 591i, 0u
     store %594, -0.00756129296496510506f
     %595:ptr<storage, f32, read_write> = access %outputs, 592i, 0u
@@ -1291,25 +1291,25 @@
     %642:ptr<storage, f32, read_write> = access %outputs, 639i, 0u
     store %642, -3.13118076324462890625f
     %643:ptr<storage, f32, read_write> = access %outputs, 640i, 0u
-    store %643, -1.57079625129699707031f
+    store %643, -1.57079637050628662109f
     %644:ptr<storage, f32, read_write> = access %outputs, 641i, 0u
-    store %644, -1.57079625129699707031f
+    store %644, -1.57079637050628662109f
     %645:ptr<storage, f32, read_write> = access %outputs, 642i, 0u
-    store %645, -1.57079625129699707031f
+    store %645, -1.57079637050628662109f
     %646:ptr<storage, f32, read_write> = access %outputs, 643i, 0u
-    store %646, -1.57079625129699707031f
+    store %646, -1.57079637050628662109f
     %647:ptr<storage, f32, read_write> = access %outputs, 644i, 0u
-    store %647, -1.57079625129699707031f
+    store %647, -1.57079637050628662109f
     %648:ptr<storage, f32, read_write> = access %outputs, 645i, 0u
-    store %648, -1.57079625129699707031f
+    store %648, -1.57079637050628662109f
     %649:ptr<storage, f32, read_write> = access %outputs, 646i, 0u
-    store %649, -1.57079625129699707031f
+    store %649, -1.57079637050628662109f
     %650:ptr<storage, f32, read_write> = access %outputs, 647i, 0u
-    store %650, -1.57079625129699707031f
+    store %650, -1.57079637050628662109f
     %651:ptr<storage, f32, read_write> = access %outputs, 648i, 0u
-    store %651, -1.57079625129699707031f
+    store %651, -1.57079637050628662109f
     %652:ptr<storage, f32, read_write> = access %outputs, 649i, 0u
-    store %652, -1.57079625129699707031f
+    store %652, -1.57079637050628662109f
     %653:ptr<storage, f32, read_write> = access %outputs, 650i, 0u
     store %653, -1.57079637050628662109f
     %654:ptr<storage, f32, read_write> = access %outputs, 651i, 0u
@@ -1339,7 +1339,7 @@
     %666:ptr<storage, f32, read_write> = access %outputs, 663i, 0u
     store %666, -1.41214108467102050781f
     %667:ptr<storage, f32, read_write> = access %outputs, 664i, 0u
-    store %667, -1.2252407073974609375f
+    store %667, -1.22524082660675048828f
     %668:ptr<storage, f32, read_write> = access %outputs, 665i, 0u
     store %668, -1.00148320198059082031f
     %669:ptr<storage, f32, read_write> = access %outputs, 666i, 0u
@@ -1347,7 +1347,7 @@
     %670:ptr<storage, f32, read_write> = access %outputs, 667i, 0u
     store %670, -0.60698771476745605469f
     %671:ptr<storage, f32, read_write> = access %outputs, 668i, 0u
-    store %671, -0.47177749872207641602f
+    store %671, -0.47177752852439880371f
     %672:ptr<storage, f32, read_write> = access %outputs, 669i, 0u
     store %672, -0.37239846587181091309f
     %673:ptr<storage, f32, read_write> = access %outputs, 670i, 0u
@@ -1361,7 +1361,7 @@
     %677:ptr<storage, f32, read_write> = access %outputs, 674i, 0u
     store %677, -0.1468639075756072998f
     %678:ptr<storage, f32, read_write> = access %outputs, 675i, 0u
-    store %678, -0.12686596810817718506f
+    store %678, -0.12686598300933837891f
     %679:ptr<storage, f32, read_write> = access %outputs, 676i, 0u
     store %679, -0.11065722256898880005f
     %680:ptr<storage, f32, read_write> = access %outputs, 677i, 0u
@@ -1369,15 +1369,15 @@
     %681:ptr<storage, f32, read_write> = access %outputs, 678i, 0u
     store %681, -0.08629038184881210327f
     %682:ptr<storage, f32, read_write> = access %outputs, 679i, 0u
-    store %682, -0.07700790464878082275f
+    store %682, -0.07700791209936141968f
     %683:ptr<storage, f32, read_write> = access %outputs, 680i, 0u
-    store %683, -0.06914169341325759888f
+    store %683, -0.06914168596267700195f
     %684:ptr<storage, f32, read_write> = access %outputs, 681i, 0u
     store %684, -0.06241881102323532104f
     %685:ptr<storage, f32, read_write> = access %outputs, 682i, 0u
     store %685, -0.05662873387336730957f
     %686:ptr<storage, f32, read_write> = access %outputs, 683i, 0u
-    store %686, -0.05160703510046005249f
+    store %686, -0.05160703137516975403f
     %687:ptr<storage, f32, read_write> = access %outputs, 684i, 0u
     store %687, -0.04722384735941886902f
     %688:ptr<storage, f32, read_write> = access %outputs, 685i, 0u
@@ -1389,15 +1389,15 @@
     %691:ptr<storage, f32, read_write> = access %outputs, 688i, 0u
     store %691, -0.0342801213264465332f
     %692:ptr<storage, f32, read_write> = access %outputs, 689i, 0u
-    store %692, -0.03187695145606994629f
+    store %692, -0.03187695518136024475f
     %693:ptr<storage, f32, read_write> = access %outputs, 690i, 0u
-    store %693, -0.02971776761114597321f
+    store %693, -0.02971776574850082397f
     %694:ptr<storage, f32, read_write> = access %outputs, 691i, 0u
     store %694, -0.02777063660323619843f
     %695:ptr<storage, f32, read_write> = access %outputs, 692i, 0u
-    store %695, -0.02600870467722415924f
+    store %695, -0.02600870281457901001f
     %696:ptr<storage, f32, read_write> = access %outputs, 693i, 0u
-    store %696, -0.02440921589732170105f
+    store %696, -0.02440921403467655182f
     %697:ptr<storage, f32, read_write> = access %outputs, 694i, 0u
     store %697, -0.02295281179249286652f
     %698:ptr<storage, f32, read_write> = access %outputs, 695i, 0u
@@ -1407,11 +1407,11 @@
     %700:ptr<storage, f32, read_write> = access %outputs, 697i, 0u
     store %700, -0.01928773149847984314f
     %701:ptr<storage, f32, read_write> = access %outputs, 698i, 0u
-    store %701, -0.01825947500765323639f
+    store %701, -0.01825947687029838562f
     %702:ptr<storage, f32, read_write> = access %outputs, 699i, 0u
     store %702, -0.01731128990650177002f
     %703:ptr<storage, f32, read_write> = access %outputs, 700i, 0u
-    store %703, -0.01643507368862628937f
+    store %703, -0.0164350755512714386f
     %704:ptr<storage, f32, read_write> = access %outputs, 701i, 0u
     store %704, -0.01562372874468564987f
     %705:ptr<storage, f32, read_write> = access %outputs, 702i, 0u
@@ -1419,13 +1419,13 @@
     %706:ptr<storage, f32, read_write> = access %outputs, 703i, 0u
     store %706, -0.01417138706892728806f
     %707:ptr<storage, f32, read_write> = access %outputs, 704i, 0u
-    store %707, -0.01351999770849943161f
+    store %707, -0.01351999863982200623f
     %708:ptr<storage, f32, read_write> = access %outputs, 705i, 0u
     store %708, -0.01291250623762607574f
     %709:ptr<storage, f32, read_write> = access %outputs, 706i, 0u
-    store %709, -0.01234505325555801392f
+    store %709, -0.0123450523242354393f
     %710:ptr<storage, f32, read_write> = access %outputs, 707i, 0u
-    store %710, -0.01181419659405946732f
+    store %710, -0.0118141956627368927f
     %711:ptr<storage, f32, read_write> = access %outputs, 708i, 0u
     store %711, -0.01131685543805360794f
     %712:ptr<storage, f32, read_write> = access %outputs, 709i, 0u
@@ -1435,7 +1435,7 @@
     %714:ptr<storage, f32, read_write> = access %outputs, 711i, 0u
     store %714, -2.35619449615478515625f
     %715:ptr<storage, f32, read_write> = access %outputs, 712i, 0u
-    store %715, -2.50795984268188476562f
+    store %715, -2.50795960426330566406f
     %716:ptr<storage, f32, read_write> = access %outputs, 713i, 0u
     store %716, -2.62920331954956054688f
     %717:ptr<storage, f32, read_write> = access %outputs, 714i, 0u
@@ -1521,25 +1521,25 @@
     %757:ptr<storage, f32, read_write> = access %outputs, 754i, 0u
     store %757, -3.12660002708435058594f
     %758:ptr<storage, f32, read_write> = access %outputs, 755i, 0u
-    store %758, -1.57079625129699707031f
+    store %758, -1.57079637050628662109f
     %759:ptr<storage, f32, read_write> = access %outputs, 756i, 0u
-    store %759, -1.57079625129699707031f
+    store %759, -1.57079637050628662109f
     %760:ptr<storage, f32, read_write> = access %outputs, 757i, 0u
-    store %760, -1.57079625129699707031f
+    store %760, -1.57079637050628662109f
     %761:ptr<storage, f32, read_write> = access %outputs, 758i, 0u
-    store %761, -1.57079625129699707031f
+    store %761, -1.57079637050628662109f
     %762:ptr<storage, f32, read_write> = access %outputs, 759i, 0u
-    store %762, -1.57079625129699707031f
+    store %762, -1.57079637050628662109f
     %763:ptr<storage, f32, read_write> = access %outputs, 760i, 0u
-    store %763, -1.57079625129699707031f
+    store %763, -1.57079637050628662109f
     %764:ptr<storage, f32, read_write> = access %outputs, 761i, 0u
-    store %764, -1.57079625129699707031f
+    store %764, -1.57079637050628662109f
     %765:ptr<storage, f32, read_write> = access %outputs, 762i, 0u
-    store %765, -1.57079625129699707031f
+    store %765, -1.57079637050628662109f
     %766:ptr<storage, f32, read_write> = access %outputs, 763i, 0u
-    store %766, -1.57079625129699707031f
+    store %766, -1.57079637050628662109f
     %767:ptr<storage, f32, read_write> = access %outputs, 764i, 0u
-    store %767, -1.57079625129699707031f
+    store %767, -1.57079637050628662109f
     %768:ptr<storage, f32, read_write> = access %outputs, 765i, 0u
     store %768, -1.57079637050628662109f
     %769:ptr<storage, f32, read_write> = access %outputs, 766i, 0u
@@ -1577,15 +1577,15 @@
     %785:ptr<storage, f32, read_write> = access %outputs, 782i, 0u
     store %785, -0.78539818525314331055f
     %786:ptr<storage, f32, read_write> = access %outputs, 783i, 0u
-    store %786, -0.63363295793533325195f
+    store %786, -0.63363301753997802734f
     %787:ptr<storage, f32, read_write> = access %outputs, 784i, 0u
-    store %787, -0.5123894810676574707f
+    store %787, -0.51238942146301269531f
     %788:ptr<storage, f32, read_write> = access %outputs, 785i, 0u
     store %788, -0.4182243049144744873f
     %789:ptr<storage, f32, read_write> = access %outputs, 786i, 0u
-    store %789, -0.34555557370185852051f
+    store %789, -0.34555554389953613281f
     %790:ptr<storage, f32, read_write> = access %outputs, 787i, 0u
-    store %790, -0.28918063640594482422f
+    store %790, -0.28918060660362243652f
     %791:ptr<storage, f32, read_write> = access %outputs, 788i, 0u
     store %791, -0.24497866630554199219f
     %792:ptr<storage, f32, read_write> = access %outputs, 789i, 0u
@@ -1621,7 +1621,7 @@
     %807:ptr<storage, f32, read_write> = access %outputs, 804i, 0u
     store %807, -0.0458861328661441803f
     %808:ptr<storage, f32, read_write> = access %outputs, 805i, 0u
-    store %808, -0.04278006404638290405f
+    store %808, -0.04278006777167320251f
     %809:ptr<storage, f32, read_write> = access %outputs, 806i, 0u
     store %809, -0.03997868672013282776f
     %810:ptr<storage, f32, read_write> = access %outputs, 807i, 0u
@@ -1649,7 +1649,7 @@
     %821:ptr<storage, f32, read_write> = access %outputs, 818i, 0u
     store %821, -0.02040532976388931274f
     %822:ptr<storage, f32, read_write> = access %outputs, 819i, 0u
-    store %822, -0.01946752145886421204f
+    store %822, -0.01946752332150936127f
     %823:ptr<storage, f32, read_write> = access %outputs, 820i, 0u
     store %823, -0.01859289966523647308f
     %824:ptr<storage, f32, read_write> = access %outputs, 821i, 0u
@@ -1749,25 +1749,25 @@
     %871:ptr<storage, f32, read_write> = access %outputs, 868i, 0u
     store %871, -3.1211872100830078125f
     %872:ptr<storage, f32, read_write> = access %outputs, 869i, 0u
-    store %872, -1.57079625129699707031f
+    store %872, -1.57079637050628662109f
     %873:ptr<storage, f32, read_write> = access %outputs, 870i, 0u
-    store %873, -1.57079625129699707031f
+    store %873, -1.57079637050628662109f
     %874:ptr<storage, f32, read_write> = access %outputs, 871i, 0u
-    store %874, -1.57079625129699707031f
+    store %874, -1.57079637050628662109f
     %875:ptr<storage, f32, read_write> = access %outputs, 872i, 0u
-    store %875, -1.57079625129699707031f
+    store %875, -1.57079637050628662109f
     %876:ptr<storage, f32, read_write> = access %outputs, 873i, 0u
-    store %876, -1.57079625129699707031f
+    store %876, -1.57079637050628662109f
     %877:ptr<storage, f32, read_write> = access %outputs, 874i, 0u
-    store %877, -1.57079625129699707031f
+    store %877, -1.57079637050628662109f
     %878:ptr<storage, f32, read_write> = access %outputs, 875i, 0u
-    store %878, -1.57079625129699707031f
+    store %878, -1.57079637050628662109f
     %879:ptr<storage, f32, read_write> = access %outputs, 876i, 0u
-    store %879, -1.57079625129699707031f
+    store %879, -1.57079637050628662109f
     %880:ptr<storage, f32, read_write> = access %outputs, 877i, 0u
-    store %880, -1.57079625129699707031f
+    store %880, -1.57079637050628662109f
     %881:ptr<storage, f32, read_write> = access %outputs, 878i, 0u
-    store %881, -1.57079625129699707031f
+    store %881, -1.57079637050628662109f
     %882:ptr<storage, f32, read_write> = access %outputs, 879i, 0u
     store %882, -1.57079637050628662109f
     %883:ptr<storage, f32, read_write> = access %outputs, 880i, 0u
@@ -1807,7 +1807,7 @@
     %900:ptr<storage, f32, read_write> = access %outputs, 897i, 0u
     store %900, -0.78539818525314331055f
     %901:ptr<storage, f32, read_write> = access %outputs, 898i, 0u
-    store %901, -0.65342640876770019531f
+    store %901, -0.65342634916305541992f
     %902:ptr<storage, f32, read_write> = access %outputs, 899i, 0u
     store %902, -0.54404264688491821289f
     %903:ptr<storage, f32, read_write> = access %outputs, 900i, 0u
@@ -1821,7 +1821,7 @@
     %907:ptr<storage, f32, read_write> = access %outputs, 904i, 0u
     store %907, -0.24497866630554199219f
     %908:ptr<storage, f32, read_write> = access %outputs, 905i, 0u
-    store %908, -0.21442967653274536133f
+    store %908, -0.21442969143390655518f
     %909:ptr<storage, f32, read_write> = access %outputs, 906i, 0u
     store %909, -0.18911886215209960938f
     %910:ptr<storage, f32, read_write> = access %outputs, 907i, 0u
@@ -1851,13 +1851,13 @@
     %922:ptr<storage, f32, read_write> = access %outputs, 919i, 0u
     store %922, -0.05819818004965782166f
     %923:ptr<storage, f32, read_write> = access %outputs, 920i, 0u
-    store %923, -0.05439074337482452393f
+    store %923, -0.05439074710011482239f
     %924:ptr<storage, f32, read_write> = access %outputs, 921i, 0u
     store %924, -0.05094443634152412415f
     %925:ptr<storage, f32, read_write> = access %outputs, 922i, 0u
     store %925, -0.04781509190797805786f
     %926:ptr<storage, f32, read_write> = access %outputs, 923i, 0u
-    store %926, -0.04496508464217185974f
+    store %926, -0.04496508091688156128f
     %927:ptr<storage, f32, read_write> = access %outputs, 924i, 0u
     store %927, -0.04236218705773353577f
     %928:ptr<storage, f32, read_write> = access %outputs, 925i, 0u
@@ -1871,7 +1871,7 @@
     %932:ptr<storage, f32, read_write> = access %outputs, 929i, 0u
     store %932, -0.03220450878143310547f
     %933:ptr<storage, f32, read_write> = access %outputs, 930i, 0u
-    store %933, -0.03061543218791484833f
+    store %933, -0.0306154303252696991f
     %934:ptr<storage, f32, read_write> = access %outputs, 931i, 0u
     store %934, -0.02914106473326683044f
     %935:ptr<storage, f32, read_write> = access %outputs, 932i, 0u
@@ -1881,7 +1881,7 @@
     %937:ptr<storage, f32, read_write> = access %outputs, 934i, 0u
     store %937, -0.02530451677739620209f
     %938:ptr<storage, f32, read_write> = access %outputs, 935i, 0u
-    store %938, -0.02419281005859375f
+    store %938, -0.02419281192123889923f
     %939:ptr<storage, f32, read_write> = access %outputs, 936i, 0u
     store %939, -0.02315276302397251129f
     %940:ptr<storage, f32, read_write> = access %outputs, 937i, 0u
@@ -1975,25 +1975,25 @@
     %984:ptr<storage, f32, read_write> = access %outputs, 981i, 0u
     store %984, -3.11494350433349609375f
     %985:ptr<storage, f32, read_write> = access %outputs, 982i, 0u
-    store %985, -1.57079625129699707031f
+    store %985, -1.57079637050628662109f
     %986:ptr<storage, f32, read_write> = access %outputs, 983i, 0u
-    store %986, -1.57079625129699707031f
+    store %986, -1.57079637050628662109f
     %987:ptr<storage, f32, read_write> = access %outputs, 984i, 0u
-    store %987, -1.57079625129699707031f
+    store %987, -1.57079637050628662109f
     %988:ptr<storage, f32, read_write> = access %outputs, 985i, 0u
-    store %988, -1.57079625129699707031f
+    store %988, -1.57079637050628662109f
     %989:ptr<storage, f32, read_write> = access %outputs, 986i, 0u
-    store %989, -1.57079625129699707031f
+    store %989, -1.57079637050628662109f
     %990:ptr<storage, f32, read_write> = access %outputs, 987i, 0u
-    store %990, -1.57079625129699707031f
+    store %990, -1.57079637050628662109f
     %991:ptr<storage, f32, read_write> = access %outputs, 988i, 0u
-    store %991, -1.57079625129699707031f
+    store %991, -1.57079637050628662109f
     %992:ptr<storage, f32, read_write> = access %outputs, 989i, 0u
-    store %992, -1.57079625129699707031f
+    store %992, -1.57079637050628662109f
     %993:ptr<storage, f32, read_write> = access %outputs, 990i, 0u
-    store %993, -1.57079625129699707031f
+    store %993, -1.57079637050628662109f
     %994:ptr<storage, f32, read_write> = access %outputs, 991i, 0u
-    store %994, -1.57079625129699707031f
+    store %994, -1.57079637050628662109f
     %995:ptr<storage, f32, read_write> = access %outputs, 992i, 0u
     store %995, -1.57079637050628662109f
     %996:ptr<storage, f32, read_write> = access %outputs, 993i, 0u
diff --git a/test/tint/benchmark/cluster-lights.wgsl.expected.ir.msl b/test/tint/benchmark/cluster-lights.wgsl.expected.ir.msl
index 1e01b1b..541e21a 100644
--- a/test/tint/benchmark/cluster-lights.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/cluster-lights.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Camera = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Camera = struct @align(16) {
   projection:mat4x4<f32> @offset(0)
   inverseProjection:mat4x4<f32> @offset(64)
   view:mat4x4<f32> @offset(128)
@@ -47,301 +47,325 @@
   lights:array<Light> @offset(48)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %camera:ptr<uniform, Camera, read> = var @binding_point(0, 0)
   %clusters:ptr<storage, Clusters, read> = var @binding_point(0, 1)
   %clusterLights:ptr<storage, ClusterLightGroup, read_write> = var @binding_point(0, 2)
   %globalLights:ptr<storage, GlobalLights, read> = var @binding_point(0, 3)
 }
 
-%linearDepth = func(%depthSample:f32):f32 -> %b2 {
-  %b2 = block {
+%linearDepth = func(%depthSample:f32):f32 {
+  $B2: {
     %7:ptr<uniform, f32, read> = access %camera, 7u
     %8:f32 = load %7
     %9:ptr<uniform, f32, read> = access %camera, 6u
     %10:f32 = load %9
     %11:f32 = mul %8, %10
-    %12:ptr<uniform, f32, read> = access %camera, 6u
-    %13:f32 = load %12
-    %14:ptr<uniform, f32, read> = access %camera, 7u
-    %15:f32 = load %14
-    %16:f32 = sub %13, %15
-    %17:ptr<uniform, f32, read> = access %camera, 7u
-    %18:f32 = load %17
-    %19:f32 = fma %depthSample, %16, %18
-    %20:f32 = div %11, %19
-    ret %20
+    %12:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %camera, 6u
+    %14:f32 = load %13
+    %15:ptr<uniform, f32, read> = access %camera, 7u
+    %16:f32 = load %15
+    %17:f32 = sub %14, %16
+    %18:ptr<uniform, f32, read> = access %camera, 7u
+    %19:f32 = load %18
+    %20:f32 = fma %depthSample, %17, %19
+    %21:f32 = div %12, %20
+    ret %21
   }
 }
-%getTile = func(%fragCoord:vec4<f32>):vec3<u32> -> %b3 {
-  %b3 = block {
-    %23:ptr<uniform, f32, read> = access %camera, 7u
-    %24:f32 = load %23
-    %25:ptr<uniform, f32, read> = access %camera, 6u
-    %26:f32 = load %25
-    %27:f32 = div %24, %26
-    %28:f32 = log2 %27
-    %sliceScale:f32 = div 48.0f, %28
-    %30:ptr<uniform, f32, read> = access %camera, 6u
-    %31:f32 = load %30
-    %32:f32 = log2 %31
-    %33:f32 = mul 48.0f, %32
-    %34:ptr<uniform, f32, read> = access %camera, 7u
-    %35:f32 = load %34
-    %36:ptr<uniform, f32, read> = access %camera, 6u
-    %37:f32 = load %36
-    %38:f32 = div %35, %37
-    %39:f32 = log2 %38
-    %40:f32 = div %33, %39
-    %sliceBias:f32 = negation %40
-    %42:f32 = access %fragCoord, 2u
-    %43:f32 = call %linearDepth, %42
-    %44:f32 = log2 %43
-    %45:f32 = mul %44, %sliceScale
-    %46:f32 = add %45, %sliceBias
-    %47:f32 = max %46, 0.0f
-    %zTile:u32 = convert %47
-    %49:f32 = access %fragCoord, 0u
-    %50:ptr<uniform, vec2<f32>, read> = access %camera, 5u
-    %51:f32 = load_vector_element %50, 0u
-    %52:f32 = div %51, 32.0f
-    %53:f32 = div %49, %52
-    %54:u32 = convert %53
-    %55:f32 = access %fragCoord, 1u
+%getTile = func(%fragCoord:vec4<f32>):vec3<u32> {
+  $B3: {
+    %24:ptr<uniform, f32, read> = access %camera, 7u
+    %25:f32 = load %24
+    %26:ptr<uniform, f32, read> = access %camera, 6u
+    %27:f32 = load %26
+    %28:f32 = div %25, %27
+    %29:f32 = log2 %28
+    %30:f32 = div 48.0f, %29
+    %sliceScale:f32 = let %30
+    %32:ptr<uniform, f32, read> = access %camera, 6u
+    %33:f32 = load %32
+    %34:f32 = log2 %33
+    %35:f32 = mul 48.0f, %34
+    %36:f32 = let %35
+    %37:ptr<uniform, f32, read> = access %camera, 7u
+    %38:f32 = load %37
+    %39:ptr<uniform, f32, read> = access %camera, 6u
+    %40:f32 = load %39
+    %41:f32 = div %38, %40
+    %42:f32 = log2 %41
+    %43:f32 = div %36, %42
+    %44:f32 = negation %43
+    %sliceBias:f32 = let %44
+    %46:f32 = access %fragCoord, 2u
+    %47:f32 = call %linearDepth, %46
+    %48:f32 = log2 %47
+    %49:f32 = mul %48, %sliceScale
+    %50:f32 = add %49, %sliceBias
+    %51:f32 = max %50, 0.0f
+    %52:u32 = call %tint_f32_to_u32, %51
+    %zTile:u32 = let %52
+    %55:f32 = access %fragCoord, 0u
     %56:ptr<uniform, vec2<f32>, read> = access %camera, 5u
-    %57:f32 = load_vector_element %56, 1u
-    %58:f32 = div %57, 18.0f
+    %57:f32 = load_vector_element %56, 0u
+    %58:f32 = div %57, 32.0f
     %59:f32 = div %55, %58
-    %60:u32 = convert %59
-    %61:vec3<u32> = construct %54, %60, %zTile
-    ret %61
+    %60:u32 = call %tint_f32_to_u32, %59
+    %61:u32 = let %60
+    %62:f32 = access %fragCoord, 1u
+    %63:ptr<uniform, vec2<f32>, read> = access %camera, 5u
+    %64:f32 = load_vector_element %63, 1u
+    %65:f32 = div %64, 18.0f
+    %66:f32 = div %62, %65
+    %67:u32 = call %tint_f32_to_u32, %66
+    %68:vec3<u32> = construct %61, %67, %zTile
+    ret %68
   }
 }
-%getClusterIndex = func(%fragCoord_1:vec4<f32>):u32 -> %b4 {  # %fragCoord_1: 'fragCoord'
-  %b4 = block {
-    %tile:vec3<u32> = call %getTile, %fragCoord_1
-    %65:u32 = access %tile, 0u
-    %66:u32 = access %tile, 1u
-    %67:u32 = mul %66, 32u
-    %68:u32 = add %65, %67
-    %69:u32 = access %tile, 2u
-    %70:u32 = mul %69, 32u
-    %71:u32 = mul %70, 18u
-    %72:u32 = add %68, %71
-    ret %72
+%getClusterIndex = func(%fragCoord_1:vec4<f32>):u32 {  # %fragCoord_1: 'fragCoord'
+  $B4: {
+    %71:vec3<u32> = call %getTile, %fragCoord_1
+    %tile:vec3<u32> = let %71
+    %73:u32 = access %tile, 0u
+    %74:u32 = access %tile, 1u
+    %75:u32 = mul %74, 32u
+    %76:u32 = add %73, %75
+    %77:u32 = access %tile, 2u
+    %78:u32 = mul %77, 32u
+    %79:u32 = mul %78, 18u
+    %80:u32 = add %76, %79
+    ret %80
   }
 }
-%sqDistPointAABB = func(%p:vec3<f32>, %minAABB:vec3<f32>, %maxAABB:vec3<f32>):f32 -> %b5 {
-  %b5 = block {
+%sqDistPointAABB = func(%p:vec3<f32>, %minAABB:vec3<f32>, %maxAABB:vec3<f32>):f32 {
+  $B5: {
     %sqDist:ptr<function, f32, read_write> = var, 0.0f
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
         %i:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b7
+        next_iteration  # -> $B7
       }
-      %b7 = block {  # body
-        %79:i32 = load %i
-        %80:bool = lt %79, 3i
-        if %80 [t: %b9, f: %b10] {  # if_1
-          %b9 = block {  # true
+      $B7: {  # body
+        %87:i32 = load %i
+        %88:bool = lt %87, 3i
+        if %88 [t: $B9, f: $B10] {  # if_1
+          $B9: {  # true
             exit_if  # if_1
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_1
           }
         }
-        %81:i32 = load %i
-        %v:f32 = access %p, %81
-        %83:i32 = load %i
-        %84:f32 = access %minAABB, %83
-        %85:bool = lt %v, %84
-        if %85 [t: %b11] {  # if_2
-          %b11 = block {  # true
-            %86:f32 = load %sqDist
-            %87:i32 = load %i
-            %88:f32 = access %minAABB, %87
-            %89:f32 = sub %88, %v
-            %90:i32 = load %i
-            %91:f32 = access %minAABB, %90
-            %92:f32 = sub %91, %v
-            %93:f32 = mul %89, %92
-            %94:f32 = add %86, %93
-            store %sqDist, %94
+        %89:i32 = load %i
+        %90:f32 = access %p, %89
+        %v:f32 = let %90
+        %92:i32 = load %i
+        %93:f32 = access %minAABB, %92
+        %94:bool = lt %v, %93
+        if %94 [t: $B11] {  # if_2
+          $B11: {  # true
+            %95:f32 = load %sqDist
+            %96:i32 = load %i
+            %97:f32 = access %minAABB, %96
+            %98:f32 = sub %97, %v
+            %99:i32 = load %i
+            %100:f32 = access %minAABB, %99
+            %101:f32 = sub %100, %v
+            %102:f32 = mul %98, %101
+            %103:f32 = add %95, %102
+            store %sqDist, %103
             exit_if  # if_2
           }
         }
-        %95:i32 = load %i
-        %96:f32 = access %maxAABB, %95
-        %97:bool = gt %v, %96
-        if %97 [t: %b12] {  # if_3
-          %b12 = block {  # true
-            %98:f32 = load %sqDist
-            %99:i32 = load %i
-            %100:f32 = access %maxAABB, %99
-            %101:f32 = sub %v, %100
-            %102:i32 = load %i
-            %103:f32 = access %maxAABB, %102
-            %104:f32 = sub %v, %103
-            %105:f32 = mul %101, %104
-            %106:f32 = add %98, %105
-            store %sqDist, %106
+        %104:i32 = load %i
+        %105:f32 = access %maxAABB, %104
+        %106:bool = gt %v, %105
+        if %106 [t: $B12] {  # if_3
+          $B12: {  # true
+            %107:f32 = load %sqDist
+            %108:i32 = load %i
+            %109:f32 = access %maxAABB, %108
+            %110:f32 = sub %v, %109
+            %111:i32 = load %i
+            %112:f32 = access %maxAABB, %111
+            %113:f32 = sub %v, %112
+            %114:f32 = mul %110, %113
+            %115:f32 = add %107, %114
+            store %sqDist, %115
             exit_if  # if_3
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %107:i32 = load %i
-        %108:i32 = add %107, 1i
-        store %i, %108
-        next_iteration %b7
+      $B8: {  # continuing
+        %116:i32 = load %i
+        %117:i32 = add %116, 1i
+        store %i, %117
+        next_iteration  # -> $B7
       }
     }
-    %109:f32 = load %sqDist
-    ret %109
+    %118:f32 = load %sqDist
+    ret %118
   }
 }
-%computeMain = @compute @workgroup_size(4, 2, 4) func(%global_id:vec3<u32> [@global_invocation_id]):void -> %b13 {
-  %b13 = block {
-    %112:u32 = access %global_id, 0u
-    %113:u32 = access %global_id, 1u
-    %114:u32 = mul %113, 32u
-    %115:u32 = add %112, %114
-    %116:u32 = access %global_id, 2u
-    %117:u32 = mul %116, 32u
-    %118:u32 = mul %117, 18u
-    %tileIndex:u32 = add %115, %118
+%computeMain = @compute @workgroup_size(4, 2, 4) func(%global_id:vec3<u32> [@global_invocation_id]):void {
+  $B13: {
+    %121:u32 = access %global_id, 0u
+    %122:u32 = access %global_id, 1u
+    %123:u32 = mul %122, 32u
+    %124:u32 = add %121, %123
+    %125:u32 = access %global_id, 2u
+    %126:u32 = mul %125, 32u
+    %127:u32 = mul %126, 18u
+    %128:u32 = add %124, %127
+    %tileIndex:u32 = let %128
     %clusterLightCount:ptr<function, u32, read_write> = var, 0u
     %cluserLightIndices:ptr<function, array<u32, 256>, read_write> = var
-    loop [i: %b14, b: %b15, c: %b16] {  # loop_2
-      %b14 = block {  # initializer
+    loop [i: $B14, b: $B15, c: $B16] {  # loop_2
+      $B14: {  # initializer
         %i_1:ptr<function, u32, read_write> = var, 0u  # %i_1: 'i'
-        next_iteration %b15
+        next_iteration  # -> $B15
       }
-      %b15 = block {  # body
-        %123:u32 = load %i_1
-        %124:ptr<storage, u32, read> = access %globalLights, 4u
-        %125:u32 = load %124
-        %126:bool = lt %123, %125
-        if %126 [t: %b17, f: %b18] {  # if_4
-          %b17 = block {  # true
+      $B15: {  # body
+        %133:u32 = load %i_1
+        %134:ptr<storage, u32, read> = access %globalLights, 4u
+        %135:u32 = load %134
+        %136:bool = lt %133, %135
+        if %136 [t: $B17, f: $B18] {  # if_4
+          $B17: {  # true
             exit_if  # if_4
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_2
           }
         }
-        %127:u32 = load %i_1
-        %128:ptr<storage, f32, read> = access %globalLights, 5u, %127, 1u
-        %range:f32 = load %128
-        %130:bool = lte %range, 0.0f
-        %lightInCluster:ptr<function, bool, read_write> = var, %130
-        %132:bool = load %lightInCluster
-        %133:bool = eq %132, false
-        if %133 [t: %b19] {  # if_5
-          %b19 = block {  # true
-            %134:ptr<uniform, mat4x4<f32>, read> = access %camera, 2u
-            %135:mat4x4<f32> = load %134
-            %136:u32 = load %i_1
-            %137:ptr<storage, vec3<f32>, read> = access %globalLights, 5u, %136, 0u
-            %138:vec3<f32> = load %137
-            %139:vec4<f32> = construct %138, 1.0f
-            %lightViewPos:vec4<f32> = mul %135, %139
-            %141:vec3<f32> = swizzle %lightViewPos, xyz
-            %142:ptr<storage, vec3<f32>, read> = access %clusters, 0u, %tileIndex, 0u
-            %143:vec3<f32> = load %142
-            %144:ptr<storage, vec3<f32>, read> = access %clusters, 0u, %tileIndex, 1u
-            %145:vec3<f32> = load %144
-            %sqDist_1:f32 = call %sqDistPointAABB, %141, %143, %145  # %sqDist_1: 'sqDist'
-            %147:f32 = mul %range, %range
-            %148:bool = lte %sqDist_1, %147
-            store %lightInCluster, %148
+        %137:u32 = load %i_1
+        %138:ptr<storage, f32, read> = access %globalLights, 5u, %137, 1u
+        %139:f32 = load %138
+        %range:f32 = let %139
+        %141:bool = lte %range, 0.0f
+        %lightInCluster:ptr<function, bool, read_write> = var, %141
+        %143:bool = load %lightInCluster
+        %144:bool = eq %143, false
+        if %144 [t: $B19] {  # if_5
+          $B19: {  # true
+            %145:ptr<uniform, mat4x4<f32>, read> = access %camera, 2u
+            %146:mat4x4<f32> = load %145
+            %147:mat4x4<f32> = let %146
+            %148:u32 = load %i_1
+            %149:ptr<storage, vec3<f32>, read> = access %globalLights, 5u, %148, 0u
+            %150:vec3<f32> = load %149
+            %151:vec4<f32> = construct %150, 1.0f
+            %152:vec4<f32> = mul %147, %151
+            %lightViewPos:vec4<f32> = let %152
+            %154:vec3<f32> = swizzle %lightViewPos, xyz
+            %155:ptr<storage, vec3<f32>, read> = access %clusters, 0u, %tileIndex, 0u
+            %156:vec3<f32> = load %155
+            %157:ptr<storage, vec3<f32>, read> = access %clusters, 0u, %tileIndex, 1u
+            %158:vec3<f32> = load %157
+            %159:f32 = call %sqDistPointAABB, %154, %156, %158
+            %sqDist_1:f32 = let %159  # %sqDist_1: 'sqDist'
+            %161:f32 = mul %range, %range
+            %162:bool = lte %sqDist_1, %161
+            store %lightInCluster, %162
             exit_if  # if_5
           }
         }
-        %149:bool = load %lightInCluster
-        if %149 [t: %b20] {  # if_6
-          %b20 = block {  # true
-            %150:u32 = load %clusterLightCount
-            %151:ptr<function, u32, read_write> = access %cluserLightIndices, %150
-            %152:u32 = load %i_1
-            store %151, %152
-            %153:u32 = load %clusterLightCount
-            %154:u32 = add %153, 1u
-            store %clusterLightCount, %154
+        %163:bool = load %lightInCluster
+        if %163 [t: $B20] {  # if_6
+          $B20: {  # true
+            %164:u32 = load %clusterLightCount
+            %165:ptr<function, u32, read_write> = access %cluserLightIndices, %164
+            %166:u32 = load %i_1
+            store %165, %166
+            %167:u32 = load %clusterLightCount
+            %168:u32 = add %167, 1u
+            store %clusterLightCount, %168
             exit_if  # if_6
           }
         }
-        %155:u32 = load %clusterLightCount
-        %156:bool = eq %155, 256u
-        if %156 [t: %b21] {  # if_7
-          %b21 = block {  # true
+        %169:u32 = load %clusterLightCount
+        %170:bool = eq %169, 256u
+        if %170 [t: $B21] {  # if_7
+          $B21: {  # true
             exit_loop  # loop_2
           }
         }
-        continue %b16
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        %157:u32 = load %i_1
-        %158:u32 = add %157, 1u
-        store %i_1, %158
-        next_iteration %b15
+      $B16: {  # continuing
+        %171:u32 = load %i_1
+        %172:u32 = add %171, 1u
+        store %i_1, %172
+        next_iteration  # -> $B15
       }
     }
-    %lightCount:u32 = load %clusterLightCount
-    %160:ptr<storage, atomic<u32>, read_write> = access %clusterLights, 0u
-    %161:u32 = atomicAdd %160, %lightCount
-    %offset:ptr<function, u32, read_write> = var, %161
-    %163:u32 = load %offset
-    %164:bool = gte %163, 1769472u
-    if %164 [t: %b22] {  # if_8
-      %b22 = block {  # true
+    %173:u32 = load %clusterLightCount
+    %lightCount:u32 = let %173
+    %175:ptr<storage, atomic<u32>, read_write> = access %clusterLights, 0u
+    %176:u32 = atomicAdd %175, %lightCount
+    %offset:ptr<function, u32, read_write> = var, %176
+    %178:u32 = load %offset
+    %179:bool = gte %178, 1769472u
+    if %179 [t: $B22] {  # if_8
+      $B22: {  # true
         ret
       }
     }
-    loop [i: %b23, b: %b24, c: %b25] {  # loop_3
-      %b23 = block {  # initializer
+    loop [i: $B23, b: $B24, c: $B25] {  # loop_3
+      $B23: {  # initializer
         %i_2:ptr<function, u32, read_write> = var, 0u  # %i_2: 'i'
-        next_iteration %b24
+        next_iteration  # -> $B24
       }
-      %b24 = block {  # body
-        %166:u32 = load %i_2
-        %167:u32 = load %clusterLightCount
-        %168:bool = lt %166, %167
-        if %168 [t: %b26, f: %b27] {  # if_9
-          %b26 = block {  # true
+      $B24: {  # body
+        %181:u32 = load %i_2
+        %182:u32 = load %clusterLightCount
+        %183:bool = lt %181, %182
+        if %183 [t: $B26, f: $B27] {  # if_9
+          $B26: {  # true
             exit_if  # if_9
           }
-          %b27 = block {  # false
+          $B27: {  # false
             exit_loop  # loop_3
           }
         }
-        %169:u32 = load %offset
-        %170:u32 = load %i_2
-        %171:u32 = add %169, %170
-        %172:ptr<storage, u32, read_write> = access %clusterLights, 2u, %171
-        %173:u32 = load %i_2
-        %174:ptr<function, u32, read_write> = access %cluserLightIndices, %173
-        %175:u32 = load %174
-        store %172, %175
-        continue %b25
+        %184:u32 = load %offset
+        %185:u32 = load %i_2
+        %186:u32 = add %184, %185
+        %187:ptr<storage, u32, read_write> = access %clusterLights, 2u, %186
+        %188:u32 = load %i_2
+        %189:ptr<function, u32, read_write> = access %cluserLightIndices, %188
+        %190:u32 = load %189
+        store %187, %190
+        continue  # -> $B25
       }
-      %b25 = block {  # continuing
-        %176:u32 = load %i_2
-        %177:u32 = add %176, 1u
-        store %i_2, %177
-        next_iteration %b24
+      $B25: {  # continuing
+        %191:u32 = load %i_2
+        %192:u32 = add %191, 1u
+        store %i_2, %192
+        next_iteration  # -> $B24
       }
     }
-    %178:ptr<storage, u32, read_write> = access %clusterLights, 1u, %tileIndex, 0u
-    %179:u32 = load %offset
-    store %178, %179
-    %180:ptr<storage, u32, read_write> = access %clusterLights, 1u, %tileIndex, 1u
-    %181:u32 = load %clusterLightCount
-    store %180, %181
+    %193:ptr<storage, u32, read_write> = access %clusterLights, 1u, %tileIndex, 0u
+    %194:u32 = load %offset
+    store %193, %194
+    %195:ptr<storage, u32, read_write> = access %clusterLights, 1u, %tileIndex, 1u
+    %196:u32 = load %clusterLightCount
+    store %195, %196
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B28: {
+    %198:u32 = convert %value
+    %199:bool = gte %value, 0.0f
+    %200:u32 = select 0u, %198, %199
+    %201:bool = lte %value, 4294967040.0f
+    %202:u32 = select 4294967295u, %200, %201
+    ret %202
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.msl b/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.msl
index 3354431..be43b04 100644
--- a/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/metaball-isosurface.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Tables = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Tables = struct @align(4) {
   edges:array<u32, 256> @offset(0)
   tris:array<i32, 4096> @offset(1024)
 }
@@ -38,7 +38,7 @@
   indexedFirstInstance:u32 @offset(32)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tables:ptr<storage, Tables, read> = var @binding_point(0, 0)
   %volume:ptr<storage, IsosurfaceVolume, read_write> = var @binding_point(0, 1)
   %positionsOut:ptr<storage, PositionBuffer, read_write> = var @binding_point(0, 2)
@@ -51,14 +51,14 @@
   %cubeVerts:ptr<private, u32, read_write> = var, 0u
 }
 
-%valueAt = func(%index:vec3<u32>):f32 -> %b2 {
-  %b2 = block {
+%valueAt = func(%index:vec3<u32>):f32 {
+  $B2: {
     %13:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
     %14:vec3<u32> = load %13
     %15:vec3<bool> = gte %index, %14
     %16:bool = any %15
-    if %16 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %16 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 0.0f
       }
     }
@@ -75,532 +75,580 @@
     %27:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
     %28:u32 = load_vector_element %27, 1u
     %29:u32 = mul %26, %28
-    %valueIndex:u32 = add %22, %29
-    %31:ptr<storage, f32, read_write> = access %volume, 5u, %valueIndex
-    %32:f32 = load %31
-    ret %32
+    %30:u32 = add %22, %29
+    %valueIndex:u32 = let %30
+    %32:ptr<storage, f32, read_write> = access %volume, 5u, %valueIndex
+    %33:f32 = load %32
+    ret %33
   }
 }
-%positionAt = func(%index_1:vec3<u32>):vec3<f32> -> %b4 {  # %index_1: 'index'
-  %b4 = block {
-    %35:ptr<storage, vec3<f32>, read_write> = access %volume, 0u
-    %36:vec3<f32> = load %35
-    %37:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
-    %38:vec3<f32> = load %37
-    %39:vec3<u32> = swizzle %index_1, xyz
-    %40:vec3<f32> = convert %39
-    %41:vec3<f32> = mul %38, %40
-    %42:vec3<f32> = add %36, %41
-    ret %42
+%positionAt = func(%index_1:vec3<u32>):vec3<f32> {  # %index_1: 'index'
+  $B4: {
+    %36:ptr<storage, vec3<f32>, read_write> = access %volume, 0u
+    %37:vec3<f32> = load %36
+    %38:vec3<f32> = let %37
+    %39:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
+    %40:vec3<f32> = load %39
+    %41:vec3<f32> = let %40
+    %42:vec3<u32> = swizzle %index_1, xyz
+    %43:vec3<f32> = convert %42
+    %44:vec3<f32> = mul %41, %43
+    %45:vec3<f32> = add %38, %44
+    ret %45
   }
 }
-%normalAt = func(%index_2:vec3<u32>):vec3<f32> -> %b5 {  # %index_2: 'index'
-  %b5 = block {
-    %45:vec3<u32> = sub %index_2, vec3<u32>(1u, 0u, 0u)
-    %46:f32 = call %valueAt, %45
-    %47:vec3<u32> = add %index_2, vec3<u32>(1u, 0u, 0u)
-    %48:f32 = call %valueAt, %47
-    %49:f32 = sub %46, %48
-    %50:vec3<u32> = sub %index_2, vec3<u32>(0u, 1u, 0u)
-    %51:f32 = call %valueAt, %50
-    %52:vec3<u32> = add %index_2, vec3<u32>(0u, 1u, 0u)
-    %53:f32 = call %valueAt, %52
-    %54:f32 = sub %51, %53
-    %55:vec3<u32> = sub %index_2, vec3<u32>(0u, 0u, 1u)
+%normalAt = func(%index_2:vec3<u32>):vec3<f32> {  # %index_2: 'index'
+  $B5: {
+    %48:vec3<u32> = sub %index_2, vec3<u32>(1u, 0u, 0u)
+    %49:f32 = call %valueAt, %48
+    %50:f32 = let %49
+    %51:vec3<u32> = add %index_2, vec3<u32>(1u, 0u, 0u)
+    %52:f32 = call %valueAt, %51
+    %53:f32 = sub %50, %52
+    %54:f32 = let %53
+    %55:vec3<u32> = sub %index_2, vec3<u32>(0u, 1u, 0u)
     %56:f32 = call %valueAt, %55
-    %57:vec3<u32> = add %index_2, vec3<u32>(0u, 0u, 1u)
-    %58:f32 = call %valueAt, %57
-    %59:f32 = sub %56, %58
-    %60:vec3<f32> = construct %49, %54, %59
-    ret %60
+    %57:f32 = let %56
+    %58:vec3<u32> = add %index_2, vec3<u32>(0u, 1u, 0u)
+    %59:f32 = call %valueAt, %58
+    %60:f32 = sub %57, %59
+    %61:f32 = let %60
+    %62:vec3<u32> = sub %index_2, vec3<u32>(0u, 0u, 1u)
+    %63:f32 = call %valueAt, %62
+    %64:f32 = let %63
+    %65:vec3<u32> = add %index_2, vec3<u32>(0u, 0u, 1u)
+    %66:f32 = call %valueAt, %65
+    %67:f32 = sub %64, %66
+    %68:vec3<f32> = construct %54, %61, %67
+    ret %68
   }
 }
-%interpX = func(%index_3:u32, %i:vec3<u32>, %va:f32, %vb:f32):void -> %b6 {  # %index_3: 'index'
-  %b6 = block {
-    %66:ptr<storage, f32, read_write> = access %volume, 4u
-    %67:f32 = load %66
-    %68:f32 = sub %67, %va
-    %69:f32 = sub %vb, %va
-    %mu:f32 = div %68, %69
-    %71:u32 = load %cubeVerts
-    %72:ptr<private, vec3<f32>, read_write> = access %positions, %71
-    %73:vec3<f32> = call %positionAt, %i
-    %74:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
-    %75:f32 = load_vector_element %74, 0u
-    %76:f32 = mul %75, %mu
-    %77:vec3<f32> = construct %76, 0.0f, 0.0f
-    %78:vec3<f32> = add %73, %77
-    store %72, %78
-    %na:vec3<f32> = call %normalAt, %i
-    %80:vec3<u32> = add %i, vec3<u32>(1u, 0u, 0u)
-    %nb:vec3<f32> = call %normalAt, %80
-    %82:u32 = load %cubeVerts
-    %83:ptr<private, vec3<f32>, read_write> = access %normals, %82
-    %84:vec3<f32> = construct %mu, %mu, %mu
-    %85:vec3<f32> = mix %na, %nb, %84
-    store %83, %85
-    %86:ptr<private, u32, read_write> = access %indices, %index_3
-    %87:u32 = load %cubeVerts
-    store %86, %87
-    %88:u32 = load %cubeVerts
-    %89:u32 = add %88, 1u
-    store %cubeVerts, %89
+%interpX = func(%index_3:u32, %i:vec3<u32>, %va:f32, %vb:f32):void {  # %index_3: 'index'
+  $B6: {
+    %74:ptr<storage, f32, read_write> = access %volume, 4u
+    %75:f32 = load %74
+    %76:f32 = sub %75, %va
+    %77:f32 = sub %vb, %va
+    %78:f32 = div %76, %77
+    %mu:f32 = let %78
+    %80:u32 = load %cubeVerts
+    %81:ptr<private, vec3<f32>, read_write> = access %positions, %80
+    %82:ptr<private, vec3<f32>, read_write> = let %81
+    %83:vec3<f32> = call %positionAt, %i
+    %84:vec3<f32> = let %83
+    %85:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
+    %86:f32 = load_vector_element %85, 0u
+    %87:f32 = mul %86, %mu
+    %88:vec3<f32> = construct %87, 0.0f, 0.0f
+    %89:vec3<f32> = add %84, %88
+    store %82, %89
+    %90:vec3<f32> = call %normalAt, %i
+    %na:vec3<f32> = let %90
+    %92:vec3<u32> = add %i, vec3<u32>(1u, 0u, 0u)
+    %93:vec3<f32> = call %normalAt, %92
+    %nb:vec3<f32> = let %93
+    %95:u32 = load %cubeVerts
+    %96:ptr<private, vec3<f32>, read_write> = access %normals, %95
+    %97:ptr<private, vec3<f32>, read_write> = let %96
+    %98:vec3<f32> = construct %mu, %mu, %mu
+    %99:vec3<f32> = mix %na, %nb, %98
+    store %97, %99
+    %100:ptr<private, u32, read_write> = access %indices, %index_3
+    %101:u32 = load %cubeVerts
+    store %100, %101
+    %102:u32 = load %cubeVerts
+    %103:u32 = add %102, 1u
+    store %cubeVerts, %103
     ret
   }
 }
-%interpY = func(%index_4:u32, %i_1:vec3<u32>, %va_1:f32, %vb_1:f32):void -> %b7 {  # %index_4: 'index', %i_1: 'i', %va_1: 'va', %vb_1: 'vb'
-  %b7 = block {
-    %95:ptr<storage, f32, read_write> = access %volume, 4u
-    %96:f32 = load %95
-    %97:f32 = sub %96, %va_1
-    %98:f32 = sub %vb_1, %va_1
-    %mu_1:f32 = div %97, %98  # %mu_1: 'mu'
-    %100:u32 = load %cubeVerts
-    %101:ptr<private, vec3<f32>, read_write> = access %positions, %100
-    %102:vec3<f32> = call %positionAt, %i_1
-    %103:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
-    %104:f32 = load_vector_element %103, 1u
-    %105:f32 = mul %104, %mu_1
-    %106:vec3<f32> = construct 0.0f, %105, 0.0f
-    %107:vec3<f32> = add %102, %106
-    store %101, %107
-    %na_1:vec3<f32> = call %normalAt, %i_1  # %na_1: 'na'
-    %109:vec3<u32> = add %i_1, vec3<u32>(0u, 1u, 0u)
-    %nb_1:vec3<f32> = call %normalAt, %109  # %nb_1: 'nb'
-    %111:u32 = load %cubeVerts
-    %112:ptr<private, vec3<f32>, read_write> = access %normals, %111
-    %113:vec3<f32> = construct %mu_1, %mu_1, %mu_1
-    %114:vec3<f32> = mix %na_1, %nb_1, %113
-    store %112, %114
-    %115:ptr<private, u32, read_write> = access %indices, %index_4
-    %116:u32 = load %cubeVerts
-    store %115, %116
-    %117:u32 = load %cubeVerts
-    %118:u32 = add %117, 1u
-    store %cubeVerts, %118
+%interpY = func(%index_4:u32, %i_1:vec3<u32>, %va_1:f32, %vb_1:f32):void {  # %index_4: 'index', %i_1: 'i', %va_1: 'va', %vb_1: 'vb'
+  $B7: {
+    %109:ptr<storage, f32, read_write> = access %volume, 4u
+    %110:f32 = load %109
+    %111:f32 = sub %110, %va_1
+    %112:f32 = sub %vb_1, %va_1
+    %113:f32 = div %111, %112
+    %mu_1:f32 = let %113  # %mu_1: 'mu'
+    %115:u32 = load %cubeVerts
+    %116:ptr<private, vec3<f32>, read_write> = access %positions, %115
+    %117:ptr<private, vec3<f32>, read_write> = let %116
+    %118:vec3<f32> = call %positionAt, %i_1
+    %119:vec3<f32> = let %118
+    %120:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
+    %121:f32 = load_vector_element %120, 1u
+    %122:f32 = mul %121, %mu_1
+    %123:vec3<f32> = construct 0.0f, %122, 0.0f
+    %124:vec3<f32> = add %119, %123
+    store %117, %124
+    %125:vec3<f32> = call %normalAt, %i_1
+    %na_1:vec3<f32> = let %125  # %na_1: 'na'
+    %127:vec3<u32> = add %i_1, vec3<u32>(0u, 1u, 0u)
+    %128:vec3<f32> = call %normalAt, %127
+    %nb_1:vec3<f32> = let %128  # %nb_1: 'nb'
+    %130:u32 = load %cubeVerts
+    %131:ptr<private, vec3<f32>, read_write> = access %normals, %130
+    %132:ptr<private, vec3<f32>, read_write> = let %131
+    %133:vec3<f32> = construct %mu_1, %mu_1, %mu_1
+    %134:vec3<f32> = mix %na_1, %nb_1, %133
+    store %132, %134
+    %135:ptr<private, u32, read_write> = access %indices, %index_4
+    %136:u32 = load %cubeVerts
+    store %135, %136
+    %137:u32 = load %cubeVerts
+    %138:u32 = add %137, 1u
+    store %cubeVerts, %138
     ret
   }
 }
-%interpZ = func(%index_5:u32, %i_2:vec3<u32>, %va_2:f32, %vb_2:f32):void -> %b8 {  # %index_5: 'index', %i_2: 'i', %va_2: 'va', %vb_2: 'vb'
-  %b8 = block {
-    %124:ptr<storage, f32, read_write> = access %volume, 4u
-    %125:f32 = load %124
-    %126:f32 = sub %125, %va_2
-    %127:f32 = sub %vb_2, %va_2
-    %mu_2:f32 = div %126, %127  # %mu_2: 'mu'
-    %129:u32 = load %cubeVerts
-    %130:ptr<private, vec3<f32>, read_write> = access %positions, %129
-    %131:vec3<f32> = call %positionAt, %i_2
-    %132:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
-    %133:f32 = load_vector_element %132, 2u
-    %134:f32 = mul %133, %mu_2
-    %135:vec3<f32> = construct 0.0f, 0.0f, %134
-    %136:vec3<f32> = add %131, %135
-    store %130, %136
-    %na_2:vec3<f32> = call %normalAt, %i_2  # %na_2: 'na'
-    %138:vec3<u32> = add %i_2, vec3<u32>(0u, 0u, 1u)
-    %nb_2:vec3<f32> = call %normalAt, %138  # %nb_2: 'nb'
-    %140:u32 = load %cubeVerts
-    %141:ptr<private, vec3<f32>, read_write> = access %normals, %140
-    %142:vec3<f32> = construct %mu_2, %mu_2, %mu_2
-    %143:vec3<f32> = mix %na_2, %nb_2, %142
-    store %141, %143
-    %144:ptr<private, u32, read_write> = access %indices, %index_5
-    %145:u32 = load %cubeVerts
-    store %144, %145
-    %146:u32 = load %cubeVerts
-    %147:u32 = add %146, 1u
-    store %cubeVerts, %147
+%interpZ = func(%index_5:u32, %i_2:vec3<u32>, %va_2:f32, %vb_2:f32):void {  # %index_5: 'index', %i_2: 'i', %va_2: 'va', %vb_2: 'vb'
+  $B8: {
+    %144:ptr<storage, f32, read_write> = access %volume, 4u
+    %145:f32 = load %144
+    %146:f32 = sub %145, %va_2
+    %147:f32 = sub %vb_2, %va_2
+    %148:f32 = div %146, %147
+    %mu_2:f32 = let %148  # %mu_2: 'mu'
+    %150:u32 = load %cubeVerts
+    %151:ptr<private, vec3<f32>, read_write> = access %positions, %150
+    %152:ptr<private, vec3<f32>, read_write> = let %151
+    %153:vec3<f32> = call %positionAt, %i_2
+    %154:vec3<f32> = let %153
+    %155:ptr<storage, vec3<f32>, read_write> = access %volume, 2u
+    %156:f32 = load_vector_element %155, 2u
+    %157:f32 = mul %156, %mu_2
+    %158:vec3<f32> = construct 0.0f, 0.0f, %157
+    %159:vec3<f32> = add %154, %158
+    store %152, %159
+    %160:vec3<f32> = call %normalAt, %i_2
+    %na_2:vec3<f32> = let %160  # %na_2: 'na'
+    %162:vec3<u32> = add %i_2, vec3<u32>(0u, 0u, 1u)
+    %163:vec3<f32> = call %normalAt, %162
+    %nb_2:vec3<f32> = let %163  # %nb_2: 'nb'
+    %165:u32 = load %cubeVerts
+    %166:ptr<private, vec3<f32>, read_write> = access %normals, %165
+    %167:ptr<private, vec3<f32>, read_write> = let %166
+    %168:vec3<f32> = construct %mu_2, %mu_2, %mu_2
+    %169:vec3<f32> = mix %na_2, %nb_2, %168
+    store %167, %169
+    %170:ptr<private, u32, read_write> = access %indices, %index_5
+    %171:u32 = load %cubeVerts
+    store %170, %171
+    %172:u32 = load %cubeVerts
+    %173:u32 = add %172, 1u
+    store %cubeVerts, %173
     ret
   }
 }
-%computeMain = @compute @workgroup_size(4, 4, 4) func(%global_id:vec3<u32> [@global_invocation_id]):void -> %b9 {
-  %b9 = block {
+%computeMain = @compute @workgroup_size(4, 4, 4) func(%global_id:vec3<u32> [@global_invocation_id]):void {
+  $B9: {
     %i0:vec3<u32> = let %global_id
-    %i1:vec3<u32> = add %global_id, vec3<u32>(1u, 0u, 0u)
-    %i2:vec3<u32> = add %global_id, vec3<u32>(1u, 1u, 0u)
-    %i3:vec3<u32> = add %global_id, vec3<u32>(0u, 1u, 0u)
-    %i4:vec3<u32> = add %global_id, vec3<u32>(0u, 0u, 1u)
-    %i5:vec3<u32> = add %global_id, vec3<u32>(1u, 0u, 1u)
-    %i6:vec3<u32> = add %global_id, vec3<u32>(1u)
-    %i7:vec3<u32> = add %global_id, vec3<u32>(0u, 1u, 1u)
-    %v0:f32 = call %valueAt, %i0
-    %v1:f32 = call %valueAt, %i1
-    %v2:f32 = call %valueAt, %i2
-    %v3:f32 = call %valueAt, %i3
-    %v4:f32 = call %valueAt, %i4
-    %v5:f32 = call %valueAt, %i5
-    %v6:f32 = call %valueAt, %i6
-    %v7:f32 = call %valueAt, %i7
+    %177:vec3<u32> = add %global_id, vec3<u32>(1u, 0u, 0u)
+    %i1:vec3<u32> = let %177
+    %179:vec3<u32> = add %global_id, vec3<u32>(1u, 1u, 0u)
+    %i2:vec3<u32> = let %179
+    %181:vec3<u32> = add %global_id, vec3<u32>(0u, 1u, 0u)
+    %i3:vec3<u32> = let %181
+    %183:vec3<u32> = add %global_id, vec3<u32>(0u, 0u, 1u)
+    %i4:vec3<u32> = let %183
+    %185:vec3<u32> = add %global_id, vec3<u32>(1u, 0u, 1u)
+    %i5:vec3<u32> = let %185
+    %187:vec3<u32> = add %global_id, vec3<u32>(1u)
+    %i6:vec3<u32> = let %187
+    %189:vec3<u32> = add %global_id, vec3<u32>(0u, 1u, 1u)
+    %i7:vec3<u32> = let %189
+    %191:f32 = call %valueAt, %i0
+    %v0:f32 = let %191
+    %193:f32 = call %valueAt, %i1
+    %v1:f32 = let %193
+    %195:f32 = call %valueAt, %i2
+    %v2:f32 = let %195
+    %197:f32 = call %valueAt, %i3
+    %v3:f32 = let %197
+    %199:f32 = call %valueAt, %i4
+    %v4:f32 = let %199
+    %201:f32 = call %valueAt, %i5
+    %v5:f32 = let %201
+    %203:f32 = call %valueAt, %i6
+    %v6:f32 = let %203
+    %205:f32 = call %valueAt, %i7
+    %v7:f32 = let %205
     %cubeIndex:ptr<function, u32, read_write> = var, 0u
-    %167:ptr<storage, f32, read_write> = access %volume, 4u
-    %168:f32 = load %167
-    %169:bool = lt %v0, %168
-    if %169 [t: %b10] {  # if_2
-      %b10 = block {  # true
-        %170:u32 = load %cubeIndex
-        %171:u32 = or %170, 1u
-        store %cubeIndex, %171
+    %208:ptr<storage, f32, read_write> = access %volume, 4u
+    %209:f32 = load %208
+    %210:bool = lt %v0, %209
+    if %210 [t: $B10] {  # if_2
+      $B10: {  # true
+        %211:u32 = load %cubeIndex
+        %212:u32 = or %211, 1u
+        store %cubeIndex, %212
         exit_if  # if_2
       }
     }
-    %172:ptr<storage, f32, read_write> = access %volume, 4u
-    %173:f32 = load %172
-    %174:bool = lt %v1, %173
-    if %174 [t: %b11] {  # if_3
-      %b11 = block {  # true
-        %175:u32 = load %cubeIndex
-        %176:u32 = or %175, 2u
-        store %cubeIndex, %176
+    %213:ptr<storage, f32, read_write> = access %volume, 4u
+    %214:f32 = load %213
+    %215:bool = lt %v1, %214
+    if %215 [t: $B11] {  # if_3
+      $B11: {  # true
+        %216:u32 = load %cubeIndex
+        %217:u32 = or %216, 2u
+        store %cubeIndex, %217
         exit_if  # if_3
       }
     }
-    %177:ptr<storage, f32, read_write> = access %volume, 4u
-    %178:f32 = load %177
-    %179:bool = lt %v2, %178
-    if %179 [t: %b12] {  # if_4
-      %b12 = block {  # true
-        %180:u32 = load %cubeIndex
-        %181:u32 = or %180, 4u
-        store %cubeIndex, %181
+    %218:ptr<storage, f32, read_write> = access %volume, 4u
+    %219:f32 = load %218
+    %220:bool = lt %v2, %219
+    if %220 [t: $B12] {  # if_4
+      $B12: {  # true
+        %221:u32 = load %cubeIndex
+        %222:u32 = or %221, 4u
+        store %cubeIndex, %222
         exit_if  # if_4
       }
     }
-    %182:ptr<storage, f32, read_write> = access %volume, 4u
-    %183:f32 = load %182
-    %184:bool = lt %v3, %183
-    if %184 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %185:u32 = load %cubeIndex
-        %186:u32 = or %185, 8u
-        store %cubeIndex, %186
+    %223:ptr<storage, f32, read_write> = access %volume, 4u
+    %224:f32 = load %223
+    %225:bool = lt %v3, %224
+    if %225 [t: $B13] {  # if_5
+      $B13: {  # true
+        %226:u32 = load %cubeIndex
+        %227:u32 = or %226, 8u
+        store %cubeIndex, %227
         exit_if  # if_5
       }
     }
-    %187:ptr<storage, f32, read_write> = access %volume, 4u
-    %188:f32 = load %187
-    %189:bool = lt %v4, %188
-    if %189 [t: %b14] {  # if_6
-      %b14 = block {  # true
-        %190:u32 = load %cubeIndex
-        %191:u32 = or %190, 16u
-        store %cubeIndex, %191
+    %228:ptr<storage, f32, read_write> = access %volume, 4u
+    %229:f32 = load %228
+    %230:bool = lt %v4, %229
+    if %230 [t: $B14] {  # if_6
+      $B14: {  # true
+        %231:u32 = load %cubeIndex
+        %232:u32 = or %231, 16u
+        store %cubeIndex, %232
         exit_if  # if_6
       }
     }
-    %192:ptr<storage, f32, read_write> = access %volume, 4u
-    %193:f32 = load %192
-    %194:bool = lt %v5, %193
-    if %194 [t: %b15] {  # if_7
-      %b15 = block {  # true
-        %195:u32 = load %cubeIndex
-        %196:u32 = or %195, 32u
-        store %cubeIndex, %196
+    %233:ptr<storage, f32, read_write> = access %volume, 4u
+    %234:f32 = load %233
+    %235:bool = lt %v5, %234
+    if %235 [t: $B15] {  # if_7
+      $B15: {  # true
+        %236:u32 = load %cubeIndex
+        %237:u32 = or %236, 32u
+        store %cubeIndex, %237
         exit_if  # if_7
       }
     }
-    %197:ptr<storage, f32, read_write> = access %volume, 4u
-    %198:f32 = load %197
-    %199:bool = lt %v6, %198
-    if %199 [t: %b16] {  # if_8
-      %b16 = block {  # true
-        %200:u32 = load %cubeIndex
-        %201:u32 = or %200, 64u
-        store %cubeIndex, %201
+    %238:ptr<storage, f32, read_write> = access %volume, 4u
+    %239:f32 = load %238
+    %240:bool = lt %v6, %239
+    if %240 [t: $B16] {  # if_8
+      $B16: {  # true
+        %241:u32 = load %cubeIndex
+        %242:u32 = or %241, 64u
+        store %cubeIndex, %242
         exit_if  # if_8
       }
     }
-    %202:ptr<storage, f32, read_write> = access %volume, 4u
-    %203:f32 = load %202
-    %204:bool = lt %v7, %203
-    if %204 [t: %b17] {  # if_9
-      %b17 = block {  # true
-        %205:u32 = load %cubeIndex
-        %206:u32 = or %205, 128u
-        store %cubeIndex, %206
+    %243:ptr<storage, f32, read_write> = access %volume, 4u
+    %244:f32 = load %243
+    %245:bool = lt %v7, %244
+    if %245 [t: $B17] {  # if_9
+      $B17: {  # true
+        %246:u32 = load %cubeIndex
+        %247:u32 = or %246, 128u
+        store %cubeIndex, %247
         exit_if  # if_9
       }
     }
-    %207:u32 = load %cubeIndex
-    %208:ptr<storage, u32, read> = access %tables, 0u, %207
-    %edges:u32 = load %208
-    %210:u32 = and %edges, 1u
-    %211:bool = neq %210, 0u
-    if %211 [t: %b18] {  # if_10
-      %b18 = block {  # true
-        %212:void = call %interpX, 0u, %i0, %v0, %v1
+    %248:u32 = load %cubeIndex
+    %249:ptr<storage, u32, read> = access %tables, 0u, %248
+    %250:u32 = load %249
+    %edges:u32 = let %250
+    %252:u32 = and %edges, 1u
+    %253:bool = neq %252, 0u
+    if %253 [t: $B18] {  # if_10
+      $B18: {  # true
+        %254:void = call %interpX, 0u, %i0, %v0, %v1
         exit_if  # if_10
       }
     }
-    %213:u32 = and %edges, 2u
-    %214:bool = neq %213, 0u
-    if %214 [t: %b19] {  # if_11
-      %b19 = block {  # true
-        %215:void = call %interpY, 1u, %i1, %v1, %v2
+    %255:u32 = and %edges, 2u
+    %256:bool = neq %255, 0u
+    if %256 [t: $B19] {  # if_11
+      $B19: {  # true
+        %257:void = call %interpY, 1u, %i1, %v1, %v2
         exit_if  # if_11
       }
     }
-    %216:u32 = and %edges, 4u
-    %217:bool = neq %216, 0u
-    if %217 [t: %b20] {  # if_12
-      %b20 = block {  # true
-        %218:void = call %interpX, 2u, %i3, %v3, %v2
+    %258:u32 = and %edges, 4u
+    %259:bool = neq %258, 0u
+    if %259 [t: $B20] {  # if_12
+      $B20: {  # true
+        %260:void = call %interpX, 2u, %i3, %v3, %v2
         exit_if  # if_12
       }
     }
-    %219:u32 = and %edges, 8u
-    %220:bool = neq %219, 0u
-    if %220 [t: %b21] {  # if_13
-      %b21 = block {  # true
-        %221:void = call %interpY, 3u, %i0, %v0, %v3
+    %261:u32 = and %edges, 8u
+    %262:bool = neq %261, 0u
+    if %262 [t: $B21] {  # if_13
+      $B21: {  # true
+        %263:void = call %interpY, 3u, %i0, %v0, %v3
         exit_if  # if_13
       }
     }
-    %222:u32 = and %edges, 16u
-    %223:bool = neq %222, 0u
-    if %223 [t: %b22] {  # if_14
-      %b22 = block {  # true
-        %224:void = call %interpX, 4u, %i4, %v4, %v5
+    %264:u32 = and %edges, 16u
+    %265:bool = neq %264, 0u
+    if %265 [t: $B22] {  # if_14
+      $B22: {  # true
+        %266:void = call %interpX, 4u, %i4, %v4, %v5
         exit_if  # if_14
       }
     }
-    %225:u32 = and %edges, 32u
-    %226:bool = neq %225, 0u
-    if %226 [t: %b23] {  # if_15
-      %b23 = block {  # true
-        %227:void = call %interpY, 5u, %i5, %v5, %v6
+    %267:u32 = and %edges, 32u
+    %268:bool = neq %267, 0u
+    if %268 [t: $B23] {  # if_15
+      $B23: {  # true
+        %269:void = call %interpY, 5u, %i5, %v5, %v6
         exit_if  # if_15
       }
     }
-    %228:u32 = and %edges, 64u
-    %229:bool = neq %228, 0u
-    if %229 [t: %b24] {  # if_16
-      %b24 = block {  # true
-        %230:void = call %interpX, 6u, %i7, %v7, %v6
+    %270:u32 = and %edges, 64u
+    %271:bool = neq %270, 0u
+    if %271 [t: $B24] {  # if_16
+      $B24: {  # true
+        %272:void = call %interpX, 6u, %i7, %v7, %v6
         exit_if  # if_16
       }
     }
-    %231:u32 = and %edges, 128u
-    %232:bool = neq %231, 0u
-    if %232 [t: %b25] {  # if_17
-      %b25 = block {  # true
-        %233:void = call %interpY, 7u, %i4, %v4, %v7
+    %273:u32 = and %edges, 128u
+    %274:bool = neq %273, 0u
+    if %274 [t: $B25] {  # if_17
+      $B25: {  # true
+        %275:void = call %interpY, 7u, %i4, %v4, %v7
         exit_if  # if_17
       }
     }
-    %234:u32 = and %edges, 256u
-    %235:bool = neq %234, 0u
-    if %235 [t: %b26] {  # if_18
-      %b26 = block {  # true
-        %236:void = call %interpZ, 8u, %i0, %v0, %v4
+    %276:u32 = and %edges, 256u
+    %277:bool = neq %276, 0u
+    if %277 [t: $B26] {  # if_18
+      $B26: {  # true
+        %278:void = call %interpZ, 8u, %i0, %v0, %v4
         exit_if  # if_18
       }
     }
-    %237:u32 = and %edges, 512u
-    %238:bool = neq %237, 0u
-    if %238 [t: %b27] {  # if_19
-      %b27 = block {  # true
-        %239:void = call %interpZ, 9u, %i1, %v1, %v5
+    %279:u32 = and %edges, 512u
+    %280:bool = neq %279, 0u
+    if %280 [t: $B27] {  # if_19
+      $B27: {  # true
+        %281:void = call %interpZ, 9u, %i1, %v1, %v5
         exit_if  # if_19
       }
     }
-    %240:u32 = and %edges, 1024u
-    %241:bool = neq %240, 0u
-    if %241 [t: %b28] {  # if_20
-      %b28 = block {  # true
-        %242:void = call %interpZ, 10u, %i2, %v2, %v6
+    %282:u32 = and %edges, 1024u
+    %283:bool = neq %282, 0u
+    if %283 [t: $B28] {  # if_20
+      $B28: {  # true
+        %284:void = call %interpZ, 10u, %i2, %v2, %v6
         exit_if  # if_20
       }
     }
-    %243:u32 = and %edges, 2048u
-    %244:bool = neq %243, 0u
-    if %244 [t: %b29] {  # if_21
-      %b29 = block {  # true
-        %245:void = call %interpZ, 11u, %i3, %v3, %v7
+    %285:u32 = and %edges, 2048u
+    %286:bool = neq %285, 0u
+    if %286 [t: $B29] {  # if_21
+      $B29: {  # true
+        %287:void = call %interpZ, 11u, %i3, %v3, %v7
         exit_if  # if_21
       }
     }
-    %246:u32 = load %cubeIndex
-    %247:u32 = shiftl %246, 4u
-    %triTableOffset:u32 = add %247, 1u
-    %249:u32 = sub %triTableOffset, 1u
-    %250:ptr<storage, i32, read> = access %tables, 1u, %249
-    %251:i32 = load %250
-    %indexCount:u32 = convert %251
-    %253:ptr<storage, atomic<u32>, read_write> = access %drawOut, 1u
-    %254:u32 = load %cubeVerts
-    %255:u32 = atomicAdd %253, %254
-    %firstVertex:ptr<function, u32, read_write> = var, %255
-    %257:u32 = access %global_id, 0u
-    %258:u32 = access %global_id, 1u
-    %259:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
-    %260:u32 = load_vector_element %259, 0u
-    %261:u32 = mul %258, %260
-    %262:u32 = add %257, %261
-    %263:u32 = access %global_id, 2u
-    %264:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
-    %265:u32 = load_vector_element %264, 0u
-    %266:u32 = mul %263, %265
-    %267:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
-    %268:u32 = load_vector_element %267, 1u
-    %269:u32 = mul %266, %268
-    %bufferOffset:u32 = add %262, %269
-    %firstIndex:u32 = mul %bufferOffset, 15u
-    loop [i: %b30, b: %b31, c: %b32] {  # loop_1
-      %b30 = block {  # initializer
+    %288:u32 = load %cubeIndex
+    %289:u32 = and 4u, 31u
+    %290:u32 = shl %288, %289
+    %291:u32 = add %290, 1u
+    %triTableOffset:u32 = let %291
+    %293:u32 = sub %triTableOffset, 1u
+    %294:ptr<storage, i32, read> = access %tables, 1u, %293
+    %295:i32 = load %294
+    %296:u32 = convert %295
+    %indexCount:u32 = let %296
+    %298:ptr<storage, atomic<u32>, read_write> = access %drawOut, 1u
+    %299:u32 = load %cubeVerts
+    %300:u32 = atomicAdd %298, %299
+    %firstVertex:ptr<function, u32, read_write> = var, %300
+    %302:u32 = access %global_id, 0u
+    %303:u32 = access %global_id, 1u
+    %304:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
+    %305:u32 = load_vector_element %304, 0u
+    %306:u32 = mul %303, %305
+    %307:u32 = add %302, %306
+    %308:u32 = access %global_id, 2u
+    %309:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
+    %310:u32 = load_vector_element %309, 0u
+    %311:u32 = mul %308, %310
+    %312:ptr<storage, vec3<u32>, read_write> = access %volume, 3u
+    %313:u32 = load_vector_element %312, 1u
+    %314:u32 = mul %311, %313
+    %315:u32 = add %307, %314
+    %bufferOffset:u32 = let %315
+    %317:u32 = mul %bufferOffset, 15u
+    %firstIndex:u32 = let %317
+    loop [i: $B30, b: $B31, c: $B32] {  # loop_1
+      $B30: {  # initializer
         %i_3:ptr<function, u32, read_write> = var, 0u  # %i_3: 'i'
-        next_iteration %b31
+        next_iteration  # -> $B31
       }
-      %b31 = block {  # body
-        %273:u32 = load %i_3
-        %274:u32 = load %cubeVerts
-        %275:bool = lt %273, %274
-        if %275 [t: %b33, f: %b34] {  # if_22
-          %b33 = block {  # true
+      $B31: {  # body
+        %320:u32 = load %i_3
+        %321:u32 = load %cubeVerts
+        %322:bool = lt %320, %321
+        if %322 [t: $B33, f: $B34] {  # if_22
+          $B33: {  # true
             exit_if  # if_22
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_1
           }
         }
-        %276:u32 = load %firstVertex
-        %277:u32 = mul %276, 3u
-        %278:u32 = load %i_3
-        %279:u32 = mul %278, 3u
-        %280:u32 = add %277, %279
-        %281:ptr<storage, f32, read_write> = access %positionsOut, 0u, %280
-        %282:u32 = load %i_3
-        %283:ptr<private, vec3<f32>, read_write> = access %positions, %282
-        %284:f32 = load_vector_element %283, 0u
-        store %281, %284
-        %285:u32 = load %firstVertex
-        %286:u32 = mul %285, 3u
-        %287:u32 = load %i_3
-        %288:u32 = mul %287, 3u
-        %289:u32 = add %286, %288
-        %290:u32 = add %289, 1u
-        %291:ptr<storage, f32, read_write> = access %positionsOut, 0u, %290
-        %292:u32 = load %i_3
-        %293:ptr<private, vec3<f32>, read_write> = access %positions, %292
-        %294:f32 = load_vector_element %293, 1u
-        store %291, %294
-        %295:u32 = load %firstVertex
-        %296:u32 = mul %295, 3u
-        %297:u32 = load %i_3
-        %298:u32 = mul %297, 3u
-        %299:u32 = add %296, %298
-        %300:u32 = add %299, 2u
-        %301:ptr<storage, f32, read_write> = access %positionsOut, 0u, %300
-        %302:u32 = load %i_3
-        %303:ptr<private, vec3<f32>, read_write> = access %positions, %302
-        %304:f32 = load_vector_element %303, 2u
-        store %301, %304
-        %305:u32 = load %firstVertex
-        %306:u32 = mul %305, 3u
-        %307:u32 = load %i_3
-        %308:u32 = mul %307, 3u
-        %309:u32 = add %306, %308
-        %310:ptr<storage, f32, read_write> = access %normalsOut, 0u, %309
-        %311:u32 = load %i_3
-        %312:ptr<private, vec3<f32>, read_write> = access %normals, %311
-        %313:f32 = load_vector_element %312, 0u
-        store %310, %313
-        %314:u32 = load %firstVertex
-        %315:u32 = mul %314, 3u
-        %316:u32 = load %i_3
-        %317:u32 = mul %316, 3u
-        %318:u32 = add %315, %317
-        %319:u32 = add %318, 1u
-        %320:ptr<storage, f32, read_write> = access %normalsOut, 0u, %319
-        %321:u32 = load %i_3
-        %322:ptr<private, vec3<f32>, read_write> = access %normals, %321
-        %323:f32 = load_vector_element %322, 1u
-        store %320, %323
-        %324:u32 = load %firstVertex
-        %325:u32 = mul %324, 3u
-        %326:u32 = load %i_3
-        %327:u32 = mul %326, 3u
-        %328:u32 = add %325, %327
-        %329:u32 = add %328, 2u
-        %330:ptr<storage, f32, read_write> = access %normalsOut, 0u, %329
-        %331:u32 = load %i_3
-        %332:ptr<private, vec3<f32>, read_write> = access %normals, %331
-        %333:f32 = load_vector_element %332, 2u
-        store %330, %333
-        continue %b32
-      }
-      %b32 = block {  # continuing
+        %323:u32 = load %firstVertex
+        %324:u32 = mul %323, 3u
+        %325:u32 = load %i_3
+        %326:u32 = mul %325, 3u
+        %327:u32 = add %324, %326
+        %328:ptr<storage, f32, read_write> = access %positionsOut, 0u, %327
+        %329:u32 = load %i_3
+        %330:ptr<private, vec3<f32>, read_write> = access %positions, %329
+        %331:f32 = load_vector_element %330, 0u
+        store %328, %331
+        %332:u32 = load %firstVertex
+        %333:u32 = mul %332, 3u
         %334:u32 = load %i_3
-        %335:u32 = add %334, 1u
-        store %i_3, %335
-        next_iteration %b31
+        %335:u32 = mul %334, 3u
+        %336:u32 = add %333, %335
+        %337:u32 = add %336, 1u
+        %338:ptr<storage, f32, read_write> = access %positionsOut, 0u, %337
+        %339:u32 = load %i_3
+        %340:ptr<private, vec3<f32>, read_write> = access %positions, %339
+        %341:f32 = load_vector_element %340, 1u
+        store %338, %341
+        %342:u32 = load %firstVertex
+        %343:u32 = mul %342, 3u
+        %344:u32 = load %i_3
+        %345:u32 = mul %344, 3u
+        %346:u32 = add %343, %345
+        %347:u32 = add %346, 2u
+        %348:ptr<storage, f32, read_write> = access %positionsOut, 0u, %347
+        %349:u32 = load %i_3
+        %350:ptr<private, vec3<f32>, read_write> = access %positions, %349
+        %351:f32 = load_vector_element %350, 2u
+        store %348, %351
+        %352:u32 = load %firstVertex
+        %353:u32 = mul %352, 3u
+        %354:u32 = load %i_3
+        %355:u32 = mul %354, 3u
+        %356:u32 = add %353, %355
+        %357:ptr<storage, f32, read_write> = access %normalsOut, 0u, %356
+        %358:u32 = load %i_3
+        %359:ptr<private, vec3<f32>, read_write> = access %normals, %358
+        %360:f32 = load_vector_element %359, 0u
+        store %357, %360
+        %361:u32 = load %firstVertex
+        %362:u32 = mul %361, 3u
+        %363:u32 = load %i_3
+        %364:u32 = mul %363, 3u
+        %365:u32 = add %362, %364
+        %366:u32 = add %365, 1u
+        %367:ptr<storage, f32, read_write> = access %normalsOut, 0u, %366
+        %368:u32 = load %i_3
+        %369:ptr<private, vec3<f32>, read_write> = access %normals, %368
+        %370:f32 = load_vector_element %369, 1u
+        store %367, %370
+        %371:u32 = load %firstVertex
+        %372:u32 = mul %371, 3u
+        %373:u32 = load %i_3
+        %374:u32 = mul %373, 3u
+        %375:u32 = add %372, %374
+        %376:u32 = add %375, 2u
+        %377:ptr<storage, f32, read_write> = access %normalsOut, 0u, %376
+        %378:u32 = load %i_3
+        %379:ptr<private, vec3<f32>, read_write> = access %normals, %378
+        %380:f32 = load_vector_element %379, 2u
+        store %377, %380
+        continue  # -> $B32
+      }
+      $B32: {  # continuing
+        %381:u32 = load %i_3
+        %382:u32 = add %381, 1u
+        store %i_3, %382
+        next_iteration  # -> $B31
       }
     }
-    loop [i: %b35, b: %b36, c: %b37] {  # loop_2
-      %b35 = block {  # initializer
+    loop [i: $B35, b: $B36, c: $B37] {  # loop_2
+      $B35: {  # initializer
         %i_4:ptr<function, u32, read_write> = var, 0u  # %i_4: 'i'
-        next_iteration %b36
+        next_iteration  # -> $B36
       }
-      %b36 = block {  # body
-        %337:u32 = load %i_4
-        %338:bool = lt %337, %indexCount
-        if %338 [t: %b38, f: %b39] {  # if_23
-          %b38 = block {  # true
+      $B36: {  # body
+        %384:u32 = load %i_4
+        %385:bool = lt %384, %indexCount
+        if %385 [t: $B38, f: $B39] {  # if_23
+          $B38: {  # true
             exit_if  # if_23
           }
-          %b39 = block {  # false
+          $B39: {  # false
             exit_loop  # loop_2
           }
         }
-        %339:u32 = load %i_4
-        %340:u32 = add %triTableOffset, %339
-        %341:ptr<storage, i32, read> = access %tables, 1u, %340
-        %index_6:i32 = load %341  # %index_6: 'index'
-        %343:u32 = load %i_4
-        %344:u32 = add %firstIndex, %343
-        %345:ptr<storage, u32, read_write> = access %indicesOut, 0u, %344
-        %346:u32 = load %firstVertex
-        %347:ptr<private, u32, read_write> = access %indices, %index_6
-        %348:u32 = load %347
-        %349:u32 = add %346, %348
-        store %345, %349
-        continue %b37
+        %386:u32 = load %i_4
+        %387:u32 = add %triTableOffset, %386
+        %388:ptr<storage, i32, read> = access %tables, 1u, %387
+        %389:i32 = load %388
+        %index_6:i32 = let %389  # %index_6: 'index'
+        %391:u32 = load %i_4
+        %392:u32 = add %firstIndex, %391
+        %393:ptr<storage, u32, read_write> = access %indicesOut, 0u, %392
+        %394:u32 = load %firstVertex
+        %395:ptr<private, u32, read_write> = access %indices, %index_6
+        %396:u32 = load %395
+        %397:u32 = add %394, %396
+        store %393, %397
+        continue  # -> $B37
       }
-      %b37 = block {  # continuing
-        %350:u32 = load %i_4
-        %351:u32 = add %350, 1u
-        store %i_4, %351
-        next_iteration %b36
+      $B37: {  # continuing
+        %398:u32 = load %i_4
+        %399:u32 = add %398, 1u
+        store %i_4, %399
+        next_iteration  # -> $B36
       }
     }
-    loop [i: %b40, b: %b41, c: %b42] {  # loop_3
-      %b40 = block {  # initializer
+    loop [i: $B40, b: $B41, c: $B42] {  # loop_3
+      $B40: {  # initializer
         %i_5:ptr<function, u32, read_write> = var, %indexCount  # %i_5: 'i'
-        next_iteration %b41
+        next_iteration  # -> $B41
       }
-      %b41 = block {  # body
-        %353:u32 = load %i_5
-        %354:bool = lt %353, 15u
-        if %354 [t: %b43, f: %b44] {  # if_24
-          %b43 = block {  # true
+      $B41: {  # body
+        %401:u32 = load %i_5
+        %402:bool = lt %401, 15u
+        if %402 [t: $B43, f: $B44] {  # if_24
+          $B43: {  # true
             exit_if  # if_24
           }
-          %b44 = block {  # false
+          $B44: {  # false
             exit_loop  # loop_3
           }
         }
-        %355:u32 = load %i_5
-        %356:u32 = add %firstIndex, %355
-        %357:ptr<storage, u32, read_write> = access %indicesOut, 0u, %356
-        %358:u32 = load %firstVertex
-        store %357, %358
-        continue %b42
+        %403:u32 = load %i_5
+        %404:u32 = add %firstIndex, %403
+        %405:ptr<storage, u32, read_write> = access %indicesOut, 0u, %404
+        %406:u32 = load %firstVertex
+        store %405, %406
+        continue  # -> $B42
       }
-      %b42 = block {  # continuing
-        %359:u32 = load %i_5
-        %360:u32 = add %359, 1u
-        store %i_5, %360
-        next_iteration %b41
+      $B42: {  # continuing
+        %407:u32 = load %i_5
+        %408:u32 = add %407, 1u
+        store %i_5, %408
+        next_iteration  # -> $B41
       }
     }
     ret
diff --git a/test/tint/benchmark/particles.wgsl.expected.ir.msl b/test/tint/benchmark/particles.wgsl.expected.ir.msl
index 7341342..f169ea5 100644
--- a/test/tint/benchmark/particles.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/particles.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: RenderParams = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: RenderParams = struct @align(16) {
   modelViewProjectionMatrix:mat4x4<f32> @offset(0)
   right:vec3<f32> @offset(64)
   up:vec3<f32> @offset(80)
@@ -42,7 +42,7 @@
   weights:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %rand_seed:ptr<private, vec2<f32>, read_write> = var
   %render_params:ptr<uniform, RenderParams, read> = var @binding_point(0, 0)
   %sim_params:ptr<uniform, SimulationParams, read> = var @binding_point(0, 0)
@@ -55,8 +55,8 @@
   %tex_out:ptr<handle, texture_storage_2d<rgba8unorm, write>, read> = var @binding_point(0, 7)
 }
 
-%rand = func():f32 -> %b2 {
-  %b2 = block {
+%rand = func():f32 {
+  $B2: {
     %12:vec2<f32> = load %rand_seed
     %13:f32 = dot %12, vec2<f32>(23.1407794952392578125f, 232.6168975830078125f)
     %14:f32 = cos %13
@@ -73,8 +73,8 @@
     ret %22
   }
 }
-%vs_main = @vertex func(%in:VertexInput):VertexOutput -> %b3 {
-  %b3 = block {
+%vs_main = @vertex func(%in:VertexInput):VertexOutput {
+  $B3: {
     %25:ptr<uniform, vec3<f32>, read> = access %render_params, 1u
     %26:vec3<f32> = load %25
     %27:ptr<uniform, vec3<f32>, read> = access %render_params, 2u
@@ -92,268 +92,306 @@
     %39:ptr<function, vec4<f32>, read_write> = access %out, 0u
     %40:ptr<uniform, mat4x4<f32>, read> = access %render_params, 0u
     %41:mat4x4<f32> = load %40
-    %42:vec3<f32> = load %position
-    %43:vec4<f32> = construct %42, 1.0f
-    %44:vec4<f32> = mul %41, %43
-    store %39, %44
-    %45:ptr<function, vec4<f32>, read_write> = access %out, 1u
-    %46:vec4<f32> = access %in, 1u
-    store %45, %46
-    %47:ptr<function, vec2<f32>, read_write> = access %out, 2u
-    %48:vec2<f32> = access %in, 2u
-    store %47, %48
-    %49:VertexOutput = load %out
-    ret %49
+    %42:mat4x4<f32> = let %41
+    %43:vec3<f32> = load %position
+    %44:vec4<f32> = construct %43, 1.0f
+    %45:vec4<f32> = mul %42, %44
+    store %39, %45
+    %46:ptr<function, vec4<f32>, read_write> = access %out, 1u
+    %47:vec4<f32> = access %in, 1u
+    store %46, %47
+    %48:ptr<function, vec2<f32>, read_write> = access %out, 2u
+    %49:vec2<f32> = access %in, 2u
+    store %48, %49
+    %50:VertexOutput = load %out
+    ret %50
   }
 }
-%fs_main = @fragment func(%in_1:VertexOutput):vec4<f32> [@location(0)] -> %b4 {  # %in_1: 'in'
-  %b4 = block {
-    %52:vec4<f32> = access %in_1, 1u
-    %color:ptr<function, vec4<f32>, read_write> = var, %52
-    %54:f32 = load_vector_element %color, 3u
-    %55:vec2<f32> = access %in_1, 2u
-    %56:f32 = length %55
-    %57:f32 = sub 1.0f, %56
-    %58:f32 = max %57, 0.0f
-    %59:f32 = mul %54, %58
-    store_vector_element %color, 3u, %59
-    %60:vec4<f32> = load %color
-    ret %60
+%fs_main = @fragment func(%in_1:VertexOutput):vec4<f32> [@location(0)] {  # %in_1: 'in'
+  $B4: {
+    %53:vec4<f32> = access %in_1, 1u
+    %color:ptr<function, vec4<f32>, read_write> = var, %53
+    %55:f32 = load_vector_element %color, 3u
+    %56:f32 = let %55
+    %57:vec2<f32> = access %in_1, 2u
+    %58:f32 = length %57
+    %59:f32 = sub 1.0f, %58
+    %60:f32 = max %59, 0.0f
+    %61:f32 = mul %56, %60
+    store_vector_element %color, 3u, %61
+    %62:vec4<f32> = load %color
+    ret %62
   }
 }
-%simulate = @compute @workgroup_size(64, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b5 {
-  %b5 = block {
-    %63:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
-    %64:vec4<f32> = load %63
-    %65:vec2<f32> = swizzle %64, xy
-    %66:vec2<u32> = swizzle %GlobalInvocationID, xy
-    %67:vec2<f32> = convert %66
-    %68:vec2<f32> = add %65, %67
-    %69:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
-    %70:vec4<f32> = load %69
-    %71:vec2<f32> = swizzle %70, zw
-    %72:vec2<f32> = mul %68, %71
-    store %rand_seed, %72
-    %idx:u32 = access %GlobalInvocationID, 0u
-    %74:ptr<storage, Particle, read_write> = access %data, 0u, %idx
-    %75:Particle = load %74
-    %particle:ptr<function, Particle, read_write> = var, %75
-    %77:ptr<function, vec3<f32>, read_write> = access %particle, 3u
-    %78:ptr<function, vec3<f32>, read_write> = access %particle, 3u
-    %79:f32 = load_vector_element %78, 2u
-    %80:ptr<uniform, f32, read> = access %sim_params, 0u
-    %81:f32 = load %80
-    %82:f32 = mul %81, 0.5f
-    %83:f32 = sub %79, %82
-    store_vector_element %77, 2u, %83
-    %84:ptr<function, vec3<f32>, read_write> = access %particle, 0u
-    %85:ptr<function, vec3<f32>, read_write> = access %particle, 0u
-    %86:vec3<f32> = load %85
-    %87:ptr<uniform, f32, read> = access %sim_params, 0u
-    %88:f32 = load %87
-    %89:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+%simulate = @compute @workgroup_size(64, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B5: {
+    %65:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
+    %66:vec4<f32> = load %65
+    %67:vec2<f32> = swizzle %66, xy
+    %68:vec2<f32> = let %67
+    %69:vec2<u32> = swizzle %GlobalInvocationID, xy
+    %70:vec2<f32> = convert %69
+    %71:vec2<f32> = add %68, %70
+    %72:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
+    %73:vec4<f32> = load %72
+    %74:vec2<f32> = swizzle %73, zw
+    %75:vec2<f32> = mul %71, %74
+    store %rand_seed, %75
+    %76:u32 = access %GlobalInvocationID, 0u
+    %idx:u32 = let %76
+    %78:ptr<storage, Particle, read_write> = access %data, 0u, %idx
+    %79:Particle = load %78
+    %particle:ptr<function, Particle, read_write> = var, %79
+    %81:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+    %82:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+    %83:f32 = load_vector_element %82, 2u
+    %84:ptr<uniform, f32, read> = access %sim_params, 0u
+    %85:f32 = load %84
+    %86:f32 = mul %85, 0.5f
+    %87:f32 = sub %83, %86
+    store_vector_element %81, 2u, %87
+    %88:ptr<function, vec3<f32>, read_write> = access %particle, 0u
+    %89:ptr<function, vec3<f32>, read_write> = access %particle, 0u
     %90:vec3<f32> = load %89
-    %91:vec3<f32> = mul %88, %90
-    %92:vec3<f32> = add %86, %91
-    store %84, %92
-    %93:ptr<function, f32, read_write> = access %particle, 1u
-    %94:ptr<function, f32, read_write> = access %particle, 1u
-    %95:f32 = load %94
-    %96:ptr<uniform, f32, read> = access %sim_params, 0u
-    %97:f32 = load %96
-    %98:f32 = sub %95, %97
-    store %93, %98
-    %99:ptr<function, vec4<f32>, read_write> = access %particle, 2u
-    %100:ptr<function, f32, read_write> = access %particle, 1u
+    %91:ptr<uniform, f32, read> = access %sim_params, 0u
+    %92:f32 = load %91
+    %93:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+    %94:vec3<f32> = load %93
+    %95:vec3<f32> = mul %92, %94
+    %96:vec3<f32> = add %90, %95
+    store %88, %96
+    %97:ptr<function, f32, read_write> = access %particle, 1u
+    %98:ptr<function, f32, read_write> = access %particle, 1u
+    %99:f32 = load %98
+    %100:ptr<uniform, f32, read> = access %sim_params, 0u
     %101:f32 = load %100
-    %102:f32 = smoothstep 0.0f, 0.5f, %101
-    store_vector_element %99, 3u, %102
-    %103:ptr<function, f32, read_write> = access %particle, 1u
-    %104:f32 = load %103
-    %105:bool = lt %104, 0.0f
-    if %105 [t: %b6] {  # if_1
-      %b6 = block {  # true
+    %102:f32 = sub %99, %101
+    store %97, %102
+    %103:ptr<function, vec4<f32>, read_write> = access %particle, 2u
+    %104:ptr<function, f32, read_write> = access %particle, 1u
+    %105:f32 = load %104
+    %106:f32 = smoothstep 0.0f, 0.5f, %105
+    store_vector_element %103, 3u, %106
+    %107:ptr<function, f32, read_write> = access %particle, 1u
+    %108:f32 = load %107
+    %109:bool = lt %108, 0.0f
+    if %109 [t: $B6] {  # if_1
+      $B6: {  # true
         %coord:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(0u)
-        loop [i: %b7, b: %b8, c: %b9] {  # loop_1
-          %b7 = block {  # initializer
-            %107:texture_2d<f32> = load %tint_symbol
-            %108:u32 = textureNumLevels %107
-            %109:u32 = sub %108, 1u
-            %level:ptr<function, u32, read_write> = var, %109
-            next_iteration %b8
+        loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+          $B7: {  # initializer
+            %111:texture_2d<f32> = load %tint_symbol
+            %112:u32 = textureNumLevels %111
+            %113:u32 = sub %112, 1u
+            %level:ptr<function, u32, read_write> = var, %113
+            next_iteration  # -> $B8
           }
-          %b8 = block {  # body
-            %111:u32 = load %level
-            %112:bool = gt %111, 0u
-            if %112 [t: %b10, f: %b11] {  # if_2
-              %b10 = block {  # true
+          $B8: {  # body
+            %115:u32 = load %level
+            %116:bool = gt %115, 0u
+            if %116 [t: $B10, f: $B11] {  # if_2
+              $B10: {  # true
                 exit_if  # if_2
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_1
               }
             }
-            %113:texture_2d<f32> = load %tint_symbol
-            %114:vec2<u32> = load %coord
-            %115:u32 = load %level
-            %probabilites:vec4<f32> = textureLoad %113, %114, %115
-            %117:f32 = call %rand
-            %value:vec4<f32> = construct %117
-            %119:vec3<f32> = swizzle %probabilites, xyz
-            %120:vec4<f32> = construct 0.0f, %119
-            %121:vec4<bool> = gte %value, %120
-            %122:vec4<bool> = lt %value, %probabilites
-            %mask:vec4<bool> = and %121, %122
-            %124:vec2<u32> = load %coord
-            %125:vec2<u32> = mul %124, 2u
-            store %coord, %125
-            %126:vec2<bool> = swizzle %mask, yw
-            %127:bool = any %126
-            %128:u32 = select 0u, 1u, %127
-            %129:u32 = load_vector_element %coord, 0u
-            %130:u32 = add %129, %128
-            store_vector_element %coord, 0u, %130
-            %131:vec2<bool> = swizzle %mask, zw
-            %132:bool = any %131
-            %133:u32 = select 0u, 1u, %132
-            %134:u32 = load_vector_element %coord, 1u
-            %135:u32 = add %134, %133
-            store_vector_element %coord, 1u, %135
-            continue %b9
+            %117:texture_2d<f32> = load %tint_symbol
+            %118:vec2<u32> = load %coord
+            %119:u32 = load %level
+            %120:vec4<f32> = textureLoad %117, %118, %119
+            %probabilites:vec4<f32> = let %120
+            %122:f32 = call %rand
+            %123:vec4<f32> = construct %122
+            %value:vec4<f32> = let %123
+            %125:vec3<f32> = swizzle %probabilites, xyz
+            %126:vec4<f32> = construct 0.0f, %125
+            %127:vec4<bool> = gte %value, %126
+            %128:vec4<bool> = lt %value, %probabilites
+            %129:vec4<bool> = and %127, %128
+            %mask:vec4<bool> = let %129
+            %131:vec2<u32> = load %coord
+            %132:vec2<u32> = mul %131, 2u
+            store %coord, %132
+            %133:vec2<bool> = swizzle %mask, yw
+            %134:bool = any %133
+            %135:u32 = select 0u, 1u, %134
+            %136:u32 = load_vector_element %coord, 0u
+            %137:u32 = add %136, %135
+            store_vector_element %coord, 0u, %137
+            %138:vec2<bool> = swizzle %mask, zw
+            %139:bool = any %138
+            %140:u32 = select 0u, 1u, %139
+            %141:u32 = load_vector_element %coord, 1u
+            %142:u32 = add %141, %140
+            store_vector_element %coord, 1u, %142
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %136:u32 = load %level
-            %137:u32 = sub %136, 1u
-            store %level, %137
-            next_iteration %b8
+          $B9: {  # continuing
+            %143:u32 = load %level
+            %144:u32 = sub %143, 1u
+            store %level, %144
+            next_iteration  # -> $B8
           }
         }
-        %138:vec2<u32> = load %coord
-        %139:vec2<f32> = convert %138
-        %140:texture_2d<f32> = load %tint_symbol
-        %141:vec2<u32> = textureDimensions %140
-        %142:vec2<f32> = convert %141
-        %uv:vec2<f32> = div %139, %142
-        %144:ptr<function, vec3<f32>, read_write> = access %particle, 0u
-        %145:vec2<f32> = sub %uv, 0.5f
-        %146:vec2<f32> = mul %145, 3.0f
-        %147:vec2<f32> = mul %146, vec2<f32>(1.0f, -1.0f)
-        %148:vec3<f32> = construct %147, 0.0f
-        store %144, %148
-        %149:ptr<function, vec4<f32>, read_write> = access %particle, 2u
-        %150:texture_2d<f32> = load %tint_symbol
-        %151:vec2<u32> = load %coord
-        %152:vec4<f32> = textureLoad %150, %151, 0i
-        store %149, %152
-        %153:ptr<function, vec3<f32>, read_write> = access %particle, 3u
-        %154:f32 = call %rand
-        %155:f32 = sub %154, 0.5f
-        %156:f32 = mul %155, 0.10000000149011611938f
-        store_vector_element %153, 0u, %156
-        %157:ptr<function, vec3<f32>, read_write> = access %particle, 3u
-        %158:f32 = call %rand
-        %159:f32 = sub %158, 0.5f
-        %160:f32 = mul %159, 0.10000000149011611938f
-        store_vector_element %157, 1u, %160
-        %161:ptr<function, vec3<f32>, read_write> = access %particle, 3u
-        %162:f32 = call %rand
-        %163:f32 = mul %162, 0.30000001192092895508f
-        store_vector_element %161, 2u, %163
-        %164:ptr<function, f32, read_write> = access %particle, 1u
-        %165:f32 = call %rand
-        %166:f32 = mul %165, 2.0f
-        %167:f32 = add 0.5f, %166
-        store %164, %167
+        %145:vec2<u32> = load %coord
+        %146:vec2<f32> = convert %145
+        %147:vec2<f32> = let %146
+        %148:texture_2d<f32> = load %tint_symbol
+        %149:vec2<u32> = textureDimensions %148
+        %150:vec2<f32> = convert %149
+        %151:vec2<f32> = div %147, %150
+        %uv:vec2<f32> = let %151
+        %153:ptr<function, vec3<f32>, read_write> = access %particle, 0u
+        %154:vec2<f32> = sub %uv, 0.5f
+        %155:vec2<f32> = mul %154, 3.0f
+        %156:vec2<f32> = mul %155, vec2<f32>(1.0f, -1.0f)
+        %157:vec3<f32> = construct %156, 0.0f
+        store %153, %157
+        %158:ptr<function, vec4<f32>, read_write> = access %particle, 2u
+        %159:texture_2d<f32> = load %tint_symbol
+        %160:vec2<u32> = load %coord
+        %161:vec4<f32> = textureLoad %159, %160, 0i
+        store %158, %161
+        %162:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+        %163:f32 = call %rand
+        %164:f32 = sub %163, 0.5f
+        %165:f32 = mul %164, 0.10000000149011611938f
+        store_vector_element %162, 0u, %165
+        %166:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+        %167:f32 = call %rand
+        %168:f32 = sub %167, 0.5f
+        %169:f32 = mul %168, 0.10000000149011611938f
+        store_vector_element %166, 1u, %169
+        %170:ptr<function, vec3<f32>, read_write> = access %particle, 3u
+        %171:f32 = call %rand
+        %172:f32 = mul %171, 0.30000001192092895508f
+        store_vector_element %170, 2u, %172
+        %173:ptr<function, f32, read_write> = access %particle, 1u
+        %174:f32 = call %rand
+        %175:f32 = mul %174, 2.0f
+        %176:f32 = add 0.5f, %175
+        store %173, %176
         exit_if  # if_1
       }
     }
-    %168:ptr<storage, Particle, read_write> = access %data, 0u, %idx
-    %169:Particle = load %particle
-    store %168, %169
+    %177:ptr<storage, Particle, read_write> = access %data, 0u, %idx
+    %178:Particle = load %particle
+    %179:void = call %tint_store_and_preserve_padding, %177, %178
     ret
   }
 }
-%import_level = @compute @workgroup_size(64, 1, 1) func(%coord_1:vec3<u32> [@global_invocation_id]):void -> %b12 {  # %coord_1: 'coord'
-  %b12 = block {
-    %172:u32 = access %coord_1, 0u
-    %173:u32 = access %coord_1, 1u
-    %174:ptr<uniform, u32, read> = access %ubo, 0u
-    %175:u32 = load %174
-    %176:u32 = mul %173, %175
-    %offset:u32 = add %172, %176
-    %178:ptr<storage, f32, read_write> = access %buf_out, 0u, %offset
-    %179:texture_2d<f32> = load %tex_in
-    %180:vec2<u32> = swizzle %coord_1, xy
-    %181:vec2<i32> = convert %180
-    %182:vec4<f32> = textureLoad %179, %181, 0i
-    %183:f32 = access %182, 3u
-    store %178, %183
+%import_level = @compute @workgroup_size(64, 1, 1) func(%coord_1:vec3<u32> [@global_invocation_id]):void {  # %coord_1: 'coord'
+  $B12: {
+    %183:u32 = access %coord_1, 0u
+    %184:u32 = access %coord_1, 1u
+    %185:ptr<uniform, u32, read> = access %ubo, 0u
+    %186:u32 = load %185
+    %187:u32 = mul %184, %186
+    %188:u32 = add %183, %187
+    %offset:u32 = let %188
+    %190:ptr<storage, f32, read_write> = access %buf_out, 0u, %offset
+    %191:texture_2d<f32> = load %tex_in
+    %192:texture_2d<f32> = let %191
+    %193:vec2<u32> = swizzle %coord_1, xy
+    %194:vec2<i32> = convert %193
+    %195:vec4<f32> = textureLoad %192, %194, 0i
+    %196:f32 = access %195, 3u
+    store %190, %196
     ret
   }
 }
-%export_level = @compute @workgroup_size(64, 1, 1) func(%coord_2:vec3<u32> [@global_invocation_id]):void -> %b13 {  # %coord_2: 'coord'
-  %b13 = block {
-    %186:vec2<u32> = swizzle %coord_2, xy
-    %187:texture_storage_2d<rgba8unorm, write> = load %tex_out
-    %188:vec2<u32> = textureDimensions %187
-    %189:vec2<u32> = construct %188
-    %190:vec2<bool> = lt %186, %189
-    %191:bool = all %190
-    if %191 [t: %b14] {  # if_3
-      %b14 = block {  # true
-        %192:u32 = access %coord_2, 0u
-        %193:u32 = access %coord_2, 1u
-        %194:ptr<uniform, u32, read> = access %ubo, 0u
-        %195:u32 = load %194
-        %196:u32 = mul %193, %195
-        %dst_offset:u32 = add %192, %196
-        %198:u32 = access %coord_2, 0u
-        %199:u32 = mul %198, 2u
-        %200:u32 = access %coord_2, 1u
-        %201:u32 = mul %200, 2u
-        %202:ptr<uniform, u32, read> = access %ubo, 0u
-        %203:u32 = load %202
-        %204:u32 = mul %201, %203
-        %src_offset:u32 = add %199, %204
-        %206:u32 = add %src_offset, 0u
-        %207:ptr<storage, f32, read> = access %buf_in, 0u, %206
-        %a:f32 = load %207
-        %209:u32 = add %src_offset, 1u
-        %210:ptr<storage, f32, read> = access %buf_in, 0u, %209
-        %b:f32 = load %210
-        %212:u32 = add %src_offset, 0u
-        %213:ptr<uniform, u32, read> = access %ubo, 0u
-        %214:u32 = load %213
-        %215:u32 = add %212, %214
-        %216:ptr<storage, f32, read> = access %buf_in, 0u, %215
-        %c:f32 = load %216
-        %218:u32 = add %src_offset, 1u
-        %219:ptr<uniform, u32, read> = access %ubo, 0u
-        %220:u32 = load %219
-        %221:u32 = add %218, %220
+%export_level = @compute @workgroup_size(64, 1, 1) func(%coord_2:vec3<u32> [@global_invocation_id]):void {  # %coord_2: 'coord'
+  $B13: {
+    %199:vec2<u32> = swizzle %coord_2, xy
+    %200:texture_storage_2d<rgba8unorm, write> = load %tex_out
+    %201:vec2<u32> = textureDimensions %200
+    %202:vec2<u32> = construct %201
+    %203:vec2<bool> = lt %199, %202
+    %204:bool = all %203
+    if %204 [t: $B14] {  # if_3
+      $B14: {  # true
+        %205:u32 = access %coord_2, 0u
+        %206:u32 = access %coord_2, 1u
+        %207:ptr<uniform, u32, read> = access %ubo, 0u
+        %208:u32 = load %207
+        %209:u32 = mul %206, %208
+        %210:u32 = add %205, %209
+        %dst_offset:u32 = let %210
+        %212:u32 = access %coord_2, 0u
+        %213:u32 = mul %212, 2u
+        %214:u32 = access %coord_2, 1u
+        %215:u32 = mul %214, 2u
+        %216:ptr<uniform, u32, read> = access %ubo, 0u
+        %217:u32 = load %216
+        %218:u32 = mul %215, %217
+        %219:u32 = add %213, %218
+        %src_offset:u32 = let %219
+        %221:u32 = add %src_offset, 0u
         %222:ptr<storage, f32, read> = access %buf_in, 0u, %221
-        %d:f32 = load %222
-        %224:vec4<f32> = construct %a, %b, %c, %d
-        %sum:f32 = dot %224, vec4<f32>(1.0f)
-        %226:ptr<storage, f32, read_write> = access %buf_out, 0u, %dst_offset
-        %227:f32 = div %sum, 4.0f
-        store %226, %227
-        %228:f32 = add %a, %b
-        %229:f32 = add %a, %b
-        %230:f32 = add %229, %c
-        %231:vec4<f32> = construct %a, %228, %230, %sum
-        %232:f32 = max %sum, 0.00009999999747378752f
-        %probabilities:vec4<f32> = div %231, %232
-        %234:texture_storage_2d<rgba8unorm, write> = load %tex_out
-        %235:vec2<u32> = swizzle %coord_2, xy
-        %236:vec2<i32> = convert %235
-        %237:void = textureStore %234, %236, %probabilities
+        %223:f32 = load %222
+        %a:f32 = let %223
+        %225:u32 = add %src_offset, 1u
+        %226:ptr<storage, f32, read> = access %buf_in, 0u, %225
+        %227:f32 = load %226
+        %b:f32 = let %227
+        %229:u32 = add %src_offset, 0u
+        %230:ptr<uniform, u32, read> = access %ubo, 0u
+        %231:u32 = load %230
+        %232:u32 = add %229, %231
+        %233:ptr<storage, f32, read> = access %buf_in, 0u, %232
+        %234:f32 = load %233
+        %c:f32 = let %234
+        %236:u32 = add %src_offset, 1u
+        %237:ptr<uniform, u32, read> = access %ubo, 0u
+        %238:u32 = load %237
+        %239:u32 = add %236, %238
+        %240:ptr<storage, f32, read> = access %buf_in, 0u, %239
+        %241:f32 = load %240
+        %d:f32 = let %241
+        %243:vec4<f32> = construct %a, %b, %c, %d
+        %244:f32 = dot %243, vec4<f32>(1.0f)
+        %sum:f32 = let %244
+        %246:ptr<storage, f32, read_write> = access %buf_out, 0u, %dst_offset
+        %247:f32 = div %sum, 4.0f
+        store %246, %247
+        %248:f32 = add %a, %b
+        %249:f32 = add %a, %b
+        %250:f32 = add %249, %c
+        %251:vec4<f32> = construct %a, %248, %250, %sum
+        %252:vec4<f32> = let %251
+        %253:f32 = max %sum, 0.00009999999747378752f
+        %254:vec4<f32> = div %252, %253
+        %probabilities:vec4<f32> = let %254
+        %256:texture_storage_2d<rgba8unorm, write> = load %tex_out
+        %257:texture_storage_2d<rgba8unorm, write> = let %256
+        %258:vec2<u32> = swizzle %coord_2, xy
+        %259:vec2<i32> = convert %258
+        %260:void = textureStore %257, %259, %probabilities
         exit_if  # if_3
       }
     }
     ret
   }
 }
+%tint_store_and_preserve_padding = func(%target:ptr<storage, Particle, read_write>, %value_param:Particle):void {
+  $B15: {
+    %263:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %264:vec3<f32> = access %value_param, 0u
+    store %263, %264
+    %265:ptr<storage, f32, read_write> = access %target, 1u
+    %266:f32 = access %value_param, 1u
+    store %265, %266
+    %267:ptr<storage, vec4<f32>, read_write> = access %target, 2u
+    %268:vec4<f32> = access %value_param, 2u
+    store %267, %268
+    %269:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %270:vec3<f32> = access %value_param, 3u
+    store %269, %270
+    ret
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.msl b/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.msl
index afabeb9..132aa68 100644
--- a/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/shadow-fragment.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Scene = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Scene = struct @align(16) {
   lightViewProjMatrix:mat4x4<f32> @offset(0)
   cameraViewProjMatrix:mat4x4<f32> @offset(64)
   lightPos:vec3<f32> @offset(128)
@@ -12,102 +12,107 @@
   fragNorm:vec3<f32> @offset(32), @location(2)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %scene:ptr<uniform, Scene, read> = var @binding_point(0, 0)
   %shadowMap:ptr<handle, texture_depth_2d, read> = var @binding_point(0, 1)
   %shadowSampler:ptr<handle, sampler_comparison, read> = var @binding_point(0, 2)
 }
 
-%tint_symbol = @fragment func(%input:FragmentInput):vec4<f32> [@location(0)] -> %b2 {
-  %b2 = block {
+%tint_symbol = @fragment func(%input:FragmentInput):vec4<f32> [@location(0)] {
+  $B2: {
     %visibility:ptr<function, f32, read_write> = var, 0.0f
     %oneOverShadowDepthTextureSize:f32 = let 0.0009765625f
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %y:ptr<function, i32, read_write> = var, -1i
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %9:i32 = load %y
         %10:bool = lte %9, 1i
-        if %10 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %10 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [i: %b8, b: %b9, c: %b10] {  # loop_2
-          %b8 = block {  # initializer
+        loop [i: $B8, b: $B9, c: $B10] {  # loop_2
+          $B8: {  # initializer
             %x:ptr<function, i32, read_write> = var, -1i
-            next_iteration %b9
+            next_iteration  # -> $B9
           }
-          %b9 = block {  # body
+          $B9: {  # body
             %12:i32 = load %x
             %13:bool = lte %12, 1i
-            if %13 [t: %b11, f: %b12] {  # if_2
-              %b11 = block {  # true
+            if %13 [t: $B11, f: $B12] {  # if_2
+              $B11: {  # true
                 exit_if  # if_2
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 exit_loop  # loop_2
               }
             }
             %14:i32 = load %x
             %15:f32 = convert %14
             %16:f32 = mul %15, %oneOverShadowDepthTextureSize
-            %17:i32 = load %y
-            %18:f32 = convert %17
-            %19:f32 = mul %18, %oneOverShadowDepthTextureSize
-            %offset:vec2<f32> = construct %16, %19
-            %21:f32 = load %visibility
-            %22:texture_depth_2d = load %shadowMap
-            %23:sampler_comparison = load %shadowSampler
-            %24:vec3<f32> = access %input, 0u
-            %25:vec2<f32> = swizzle %24, xy
-            %26:vec2<f32> = add %25, %offset
-            %27:f32 = access %input, 0u, 2u
-            %28:f32 = sub %27, 0.00700000021606683731f
-            %29:f32 = textureSampleCompare %22, %23, %26, %28
-            %30:f32 = add %21, %29
-            store %visibility, %30
-            continue %b10
+            %17:f32 = let %16
+            %18:i32 = load %y
+            %19:f32 = convert %18
+            %20:f32 = mul %19, %oneOverShadowDepthTextureSize
+            %21:vec2<f32> = construct %17, %20
+            %offset:vec2<f32> = let %21
+            %23:f32 = load %visibility
+            %24:f32 = let %23
+            %25:texture_depth_2d = load %shadowMap
+            %26:sampler_comparison = load %shadowSampler
+            %27:vec3<f32> = access %input, 0u
+            %28:vec2<f32> = swizzle %27, xy
+            %29:vec2<f32> = add %28, %offset
+            %30:f32 = access %input, 0u, 2u
+            %31:f32 = sub %30, 0.00700000021606683731f
+            %32:f32 = textureSampleCompare %25, %26, %29, %31
+            %33:f32 = add %24, %32
+            store %visibility, %33
+            continue  # -> $B10
           }
-          %b10 = block {  # continuing
-            %31:i32 = load %x
-            %32:i32 = add %31, 1i
-            store %x, %32
-            next_iteration %b9
+          $B10: {  # continuing
+            %34:i32 = load %x
+            %35:i32 = add %34, 1i
+            store %x, %35
+            next_iteration  # -> $B9
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %33:i32 = load %y
-        %34:i32 = add %33, 1i
-        store %y, %34
-        next_iteration %b4
+      $B5: {  # continuing
+        %36:i32 = load %y
+        %37:i32 = add %36, 1i
+        store %y, %37
+        next_iteration  # -> $B4
       }
     }
-    %35:f32 = load %visibility
-    %36:f32 = div %35, 9.0f
-    store %visibility, %36
-    %37:ptr<uniform, vec3<f32>, read> = access %scene, 2u
-    %38:vec3<f32> = load %37
-    %39:vec3<f32> = access %input, 1u
-    %40:vec3<f32> = sub %38, %39
-    %41:vec3<f32> = normalize %40
-    %42:vec3<f32> = access %input, 2u
-    %43:f32 = dot %41, %42
-    %lambertFactor:f32 = max %43, 0.0f
-    %45:f32 = load %visibility
-    %46:f32 = mul %45, %lambertFactor
-    %47:f32 = add 0.20000000298023223877f, %46
-    %lightingFactor:f32 = min %47, 1.0f
-    %49:vec3<f32> = mul %lightingFactor, vec3<f32>(0.89999997615814208984f)
-    %50:vec4<f32> = construct %49, 1.0f
-    ret %50
+    %38:f32 = load %visibility
+    %39:f32 = div %38, 9.0f
+    store %visibility, %39
+    %40:ptr<uniform, vec3<f32>, read> = access %scene, 2u
+    %41:vec3<f32> = load %40
+    %42:vec3<f32> = access %input, 1u
+    %43:vec3<f32> = sub %41, %42
+    %44:vec3<f32> = normalize %43
+    %45:vec3<f32> = access %input, 2u
+    %46:f32 = dot %44, %45
+    %47:f32 = max %46, 0.0f
+    %lambertFactor:f32 = let %47
+    %49:f32 = load %visibility
+    %50:f32 = mul %49, %lambertFactor
+    %51:f32 = add 0.20000000298023223877f, %50
+    %52:f32 = min %51, 1.0f
+    %lightingFactor:f32 = let %52
+    %54:vec3<f32> = mul %lightingFactor, vec3<f32>(0.89999997615814208984f)
+    %55:vec4<f32> = construct %54, 1.0f
+    ret %55
   }
 }
 
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.msl b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.msl
index 804ef8d..0d672cf 100644
--- a/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/skinned-shadowed-pbr-fragment.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Camera = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Camera = struct @align(16) {
   projection:mat4x4<f32> @offset(0)
   inverseProjection:mat4x4<f32> @offset(64)
   view:mat4x4<f32> @offset(128)
@@ -97,7 +97,7 @@
   emissive:vec4<f32> @offset(16), @location(1)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %camera:ptr<uniform, Camera, read> = var @binding_point(0, 0)
   %clusterLights:ptr<storage, ClusterLightGroup, read> = var @binding_point(0, 1)
   %globalLights:ptr<storage, GlobalLights, read> = var @binding_point(0, 2)
@@ -121,728 +121,813 @@
   %ssaoTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 19)
 }
 
-%linearTosRGB = func(%linear:vec3<f32>):vec3<f32> -> %b2 {
-  %b2 = block {
+%linearTosRGB = func(%linear:vec3<f32>):vec3<f32> {
+  $B2: {
     %INV_GAMMA:f32 = let 0.45454543828964233398f
     %25:vec3<f32> = construct %INV_GAMMA
     %26:vec3<f32> = pow %linear, %25
     ret %26
   }
 }
-%sRGBToLinear = func(%srgb:vec3<f32>):vec3<f32> -> %b3 {
-  %b3 = block {
+%sRGBToLinear = func(%srgb:vec3<f32>):vec3<f32> {
+  $B3: {
     %29:vec3<f32> = pow %srgb, vec3<f32>(2.20000004768371582031f)
     ret %29
   }
 }
-%linearDepth = func(%depthSample:f32):f32 -> %b4 {
-  %b4 = block {
+%linearDepth = func(%depthSample:f32):f32 {
+  $B4: {
     %32:ptr<uniform, f32, read> = access %camera, 7u
     %33:f32 = load %32
     %34:ptr<uniform, f32, read> = access %camera, 6u
     %35:f32 = load %34
     %36:f32 = mul %33, %35
-    %37:ptr<uniform, f32, read> = access %camera, 6u
-    %38:f32 = load %37
-    %39:ptr<uniform, f32, read> = access %camera, 7u
-    %40:f32 = load %39
-    %41:f32 = sub %38, %40
-    %42:ptr<uniform, f32, read> = access %camera, 7u
-    %43:f32 = load %42
-    %44:f32 = fma %depthSample, %41, %43
-    %45:f32 = div %36, %44
-    ret %45
+    %37:f32 = let %36
+    %38:ptr<uniform, f32, read> = access %camera, 6u
+    %39:f32 = load %38
+    %40:ptr<uniform, f32, read> = access %camera, 7u
+    %41:f32 = load %40
+    %42:f32 = sub %39, %41
+    %43:ptr<uniform, f32, read> = access %camera, 7u
+    %44:f32 = load %43
+    %45:f32 = fma %depthSample, %42, %44
+    %46:f32 = div %37, %45
+    ret %46
   }
 }
-%getTile = func(%fragCoord:vec4<f32>):vec3<u32> -> %b5 {
-  %b5 = block {
-    %48:ptr<uniform, f32, read> = access %camera, 7u
-    %49:f32 = load %48
-    %50:ptr<uniform, f32, read> = access %camera, 6u
-    %51:f32 = load %50
-    %52:f32 = div %49, %51
-    %53:f32 = log2 %52
-    %sliceScale:f32 = div 48.0f, %53
-    %55:ptr<uniform, f32, read> = access %camera, 6u
-    %56:f32 = load %55
-    %57:f32 = log2 %56
-    %58:f32 = mul 48.0f, %57
-    %59:ptr<uniform, f32, read> = access %camera, 7u
-    %60:f32 = load %59
-    %61:ptr<uniform, f32, read> = access %camera, 6u
-    %62:f32 = load %61
-    %63:f32 = div %60, %62
-    %64:f32 = log2 %63
-    %65:f32 = div %58, %64
-    %sliceBias:f32 = negation %65
-    %67:f32 = access %fragCoord, 2u
-    %68:f32 = call %linearDepth, %67
-    %69:f32 = log2 %68
-    %70:f32 = mul %69, %sliceScale
-    %71:f32 = add %70, %sliceBias
-    %72:f32 = max %71, 0.0f
-    %zTile:u32 = convert %72
-    %74:f32 = access %fragCoord, 0u
-    %75:ptr<uniform, vec2<f32>, read> = access %camera, 5u
-    %76:f32 = load_vector_element %75, 0u
-    %77:f32 = div %76, 32.0f
-    %78:f32 = div %74, %77
-    %79:u32 = convert %78
-    %80:f32 = access %fragCoord, 1u
+%getTile = func(%fragCoord:vec4<f32>):vec3<u32> {
+  $B5: {
+    %49:ptr<uniform, f32, read> = access %camera, 7u
+    %50:f32 = load %49
+    %51:ptr<uniform, f32, read> = access %camera, 6u
+    %52:f32 = load %51
+    %53:f32 = div %50, %52
+    %54:f32 = log2 %53
+    %55:f32 = div 48.0f, %54
+    %sliceScale:f32 = let %55
+    %57:ptr<uniform, f32, read> = access %camera, 6u
+    %58:f32 = load %57
+    %59:f32 = log2 %58
+    %60:f32 = mul 48.0f, %59
+    %61:f32 = let %60
+    %62:ptr<uniform, f32, read> = access %camera, 7u
+    %63:f32 = load %62
+    %64:ptr<uniform, f32, read> = access %camera, 6u
+    %65:f32 = load %64
+    %66:f32 = div %63, %65
+    %67:f32 = log2 %66
+    %68:f32 = div %61, %67
+    %69:f32 = negation %68
+    %sliceBias:f32 = let %69
+    %71:f32 = access %fragCoord, 2u
+    %72:f32 = call %linearDepth, %71
+    %73:f32 = log2 %72
+    %74:f32 = mul %73, %sliceScale
+    %75:f32 = add %74, %sliceBias
+    %76:f32 = max %75, 0.0f
+    %77:u32 = call %tint_f32_to_u32, %76
+    %zTile:u32 = let %77
+    %80:f32 = access %fragCoord, 0u
     %81:ptr<uniform, vec2<f32>, read> = access %camera, 5u
-    %82:f32 = load_vector_element %81, 1u
-    %83:f32 = div %82, 18.0f
+    %82:f32 = load_vector_element %81, 0u
+    %83:f32 = div %82, 32.0f
     %84:f32 = div %80, %83
-    %85:u32 = convert %84
-    %86:vec3<u32> = construct %79, %85, %zTile
-    ret %86
+    %85:u32 = call %tint_f32_to_u32, %84
+    %86:u32 = let %85
+    %87:f32 = access %fragCoord, 1u
+    %88:ptr<uniform, vec2<f32>, read> = access %camera, 5u
+    %89:f32 = load_vector_element %88, 1u
+    %90:f32 = div %89, 18.0f
+    %91:f32 = div %87, %90
+    %92:u32 = call %tint_f32_to_u32, %91
+    %93:vec3<u32> = construct %86, %92, %zTile
+    ret %93
   }
 }
-%getClusterIndex = func(%fragCoord_1:vec4<f32>):u32 -> %b6 {  # %fragCoord_1: 'fragCoord'
-  %b6 = block {
-    %tile:vec3<u32> = call %getTile, %fragCoord_1
-    %90:u32 = access %tile, 0u
-    %91:u32 = access %tile, 1u
-    %92:u32 = mul %91, 32u
-    %93:u32 = add %90, %92
-    %94:u32 = access %tile, 2u
-    %95:u32 = mul %94, 32u
-    %96:u32 = mul %95, 18u
-    %97:u32 = add %93, %96
-    ret %97
+%getClusterIndex = func(%fragCoord_1:vec4<f32>):u32 {  # %fragCoord_1: 'fragCoord'
+  $B6: {
+    %96:vec3<u32> = call %getTile, %fragCoord_1
+    %tile:vec3<u32> = let %96
+    %98:u32 = access %tile, 0u
+    %99:u32 = access %tile, 1u
+    %100:u32 = mul %99, 32u
+    %101:u32 = add %98, %100
+    %102:u32 = access %tile, 2u
+    %103:u32 = mul %102, 32u
+    %104:u32 = mul %103, 18u
+    %105:u32 = add %101, %104
+    ret %105
   }
 }
-%dirLightVisibility = func(%worldPos:vec3<f32>):f32 -> %b7 {
-  %b7 = block {
-    %100:ptr<storage, i32, read> = access %lightShadowTable, 0u, 0u
-    %shadowIndex:i32 = load %100
-    %102:bool = eq %shadowIndex, -1i
-    if %102 [t: %b8] {  # if_1
-      %b8 = block {  # true
+%dirLightVisibility = func(%worldPos:vec3<f32>):f32 {
+  $B7: {
+    %108:ptr<storage, i32, read> = access %lightShadowTable, 0u, 0u
+    %109:i32 = load %108
+    %shadowIndex:i32 = let %109
+    %111:bool = eq %shadowIndex, -1i
+    if %111 [t: $B8] {  # if_1
+      $B8: {  # true
         ret 1.0f
       }
     }
-    %103:ptr<storage, vec4<f32>, read> = access %shadow, 0u, %shadowIndex, 0u
-    %viewport:vec4<f32> = load %103
-    %105:ptr<storage, mat4x4<f32>, read> = access %shadow, 0u, %shadowIndex, 1u
-    %106:mat4x4<f32> = load %105
-    %107:vec4<f32> = construct %worldPos, 1.0f
-    %lightPos:vec4<f32> = mul %106, %107
-    %109:vec2<f32> = swizzle %lightPos, xy
-    %110:f32 = access %lightPos, 3u
-    %111:vec2<f32> = div %109, %110
-    %112:vec2<f32> = mul %111, vec2<f32>(0.5f, -0.5f)
-    %113:vec2<f32> = add %112, vec2<f32>(0.5f)
-    %114:f32 = access %lightPos, 2u
-    %115:f32 = access %lightPos, 3u
-    %116:f32 = div %114, %115
-    %shadowPos:vec3<f32> = construct %113, %116
-    %118:vec2<f32> = swizzle %viewport, xy
-    %119:vec2<f32> = swizzle %shadowPos, xy
-    %120:vec2<f32> = swizzle %viewport, zw
-    %121:vec2<f32> = mul %119, %120
-    %122:vec2<f32> = add %118, %121
-    %viewportPos:vec2<f32> = construct %122
-    %124:texture_depth_2d = load %shadowTexture
-    %125:vec2<u32> = textureDimensions %124, 0i
-    %126:vec2<f32> = convert %125
-    %texelSize:vec2<f32> = div 1.0f, %126
-    %128:vec2<f32> = swizzle %viewport, xy
-    %129:vec2<f32> = sub %128, %texelSize
-    %130:vec2<f32> = swizzle %viewport, xy
-    %131:vec2<f32> = swizzle %viewport, zw
-    %132:vec2<f32> = add %130, %131
-    %133:vec2<f32> = add %132, %texelSize
-    %clampRect:vec4<f32> = construct %129, %133
+    %112:ptr<storage, vec4<f32>, read> = access %shadow, 0u, %shadowIndex, 0u
+    %113:vec4<f32> = load %112
+    %viewport:vec4<f32> = let %113
+    %115:ptr<storage, mat4x4<f32>, read> = access %shadow, 0u, %shadowIndex, 1u
+    %116:mat4x4<f32> = load %115
+    %117:mat4x4<f32> = let %116
+    %118:vec4<f32> = construct %worldPos, 1.0f
+    %119:vec4<f32> = mul %117, %118
+    %lightPos:vec4<f32> = let %119
+    %121:vec2<f32> = swizzle %lightPos, xy
+    %122:f32 = access %lightPos, 3u
+    %123:vec2<f32> = div %121, %122
+    %124:vec2<f32> = mul %123, vec2<f32>(0.5f, -0.5f)
+    %125:vec2<f32> = add %124, vec2<f32>(0.5f)
+    %126:f32 = access %lightPos, 2u
+    %127:f32 = access %lightPos, 3u
+    %128:f32 = div %126, %127
+    %129:vec3<f32> = construct %125, %128
+    %shadowPos:vec3<f32> = let %129
+    %131:vec2<f32> = swizzle %viewport, xy
+    %132:vec2<f32> = swizzle %shadowPos, xy
+    %133:vec2<f32> = swizzle %viewport, zw
+    %134:vec2<f32> = mul %132, %133
+    %135:vec2<f32> = add %131, %134
+    %136:vec2<f32> = construct %135
+    %viewportPos:vec2<f32> = let %136
+    %138:texture_depth_2d = load %shadowTexture
+    %139:vec2<u32> = textureDimensions %138, 0i
+    %140:vec2<f32> = convert %139
+    %141:vec2<f32> = div 1.0f, %140
+    %texelSize:vec2<f32> = let %141
+    %143:vec2<f32> = swizzle %viewport, xy
+    %144:vec2<f32> = sub %143, %texelSize
+    %145:vec2<f32> = swizzle %viewport, xy
+    %146:vec2<f32> = swizzle %viewport, zw
+    %147:vec2<f32> = add %145, %146
+    %148:vec2<f32> = add %147, %texelSize
+    %149:vec4<f32> = construct %144, %148
+    %clampRect:vec4<f32> = let %149
     %visibility:ptr<function, f32, read_write> = var, 0.0f
-    loop [i: %b9, b: %b10, c: %b11] {  # loop_1
-      %b9 = block {  # initializer
+    loop [i: $B9, b: $B10, c: $B11] {  # loop_1
+      $B9: {  # initializer
         %i:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b10
+        next_iteration  # -> $B10
       }
-      %b10 = block {  # body
-        %137:u32 = load %i
-        %138:bool = lt %137, 16u
-        if %138 [t: %b12, f: %b13] {  # if_2
-          %b12 = block {  # true
+      $B10: {  # body
+        %153:u32 = load %i
+        %154:bool = lt %153, 16u
+        if %154 [t: $B12, f: $B13] {  # if_2
+          $B12: {  # true
             exit_if  # if_2
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_1
           }
         }
-        %139:f32 = load %visibility
-        %140:texture_depth_2d = load %shadowTexture
-        %141:sampler_comparison = load %shadowSampler
-        %142:u32 = load %i
-        %143:ptr<private, vec2<f32>, read_write> = access %shadowSampleOffsets, %142
-        %144:vec2<f32> = load %143
-        %145:vec2<f32> = mul %144, %texelSize
-        %146:vec2<f32> = add %viewportPos, %145
-        %147:vec2<f32> = swizzle %clampRect, xy
-        %148:vec2<f32> = swizzle %clampRect, zw
-        %149:vec2<f32> = clamp %146, %147, %148
-        %150:f32 = access %shadowPos, 2u
-        %151:f32 = sub %150, 0.00300000002607703209f
-        %152:f32 = textureSampleCompareLevel %140, %141, %149, %151
-        %153:f32 = add %139, %152
-        store %visibility, %153
-        continue %b11
+        %155:f32 = load %visibility
+        %156:f32 = let %155
+        %157:texture_depth_2d = load %shadowTexture
+        %158:texture_depth_2d = let %157
+        %159:sampler_comparison = load %shadowSampler
+        %160:sampler_comparison = let %159
+        %161:u32 = load %i
+        %162:ptr<private, vec2<f32>, read_write> = access %shadowSampleOffsets, %161
+        %163:vec2<f32> = load %162
+        %164:vec2<f32> = mul %163, %texelSize
+        %165:vec2<f32> = add %viewportPos, %164
+        %166:vec2<f32> = swizzle %clampRect, xy
+        %167:vec2<f32> = swizzle %clampRect, zw
+        %168:vec2<f32> = clamp %165, %166, %167
+        %169:f32 = access %shadowPos, 2u
+        %170:f32 = sub %169, 0.00300000002607703209f
+        %171:f32 = textureSampleCompareLevel %158, %160, %168, %170
+        %172:f32 = add %156, %171
+        store %visibility, %172
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %154:u32 = load %i
-        %155:u32 = add %154, 1u
-        store %i, %155
-        next_iteration %b10
+      $B11: {  # continuing
+        %173:u32 = load %i
+        %174:u32 = add %173, 1u
+        store %i, %174
+        next_iteration  # -> $B10
       }
     }
-    %156:f32 = load %visibility
-    %157:f32 = div %156, 16.0f
-    ret %157
+    %175:f32 = load %visibility
+    %176:f32 = div %175, 16.0f
+    ret %176
   }
 }
-%getCubeFace = func(%v:vec3<f32>):i32 -> %b14 {
-  %b14 = block {
-    %vAbs:vec3<f32> = abs %v
-    %161:f32 = access %vAbs, 2u
-    %162:f32 = access %vAbs, 0u
-    %163:bool = gte %161, %162
-    %164:bool = if %163 [t: %b15, f: %b16] {  # if_3
-      %b15 = block {  # true
-        %165:f32 = access %vAbs, 2u
-        %166:f32 = access %vAbs, 1u
-        %167:bool = gte %165, %166
-        exit_if %167  # if_3
+%getCubeFace = func(%v:vec3<f32>):i32 {
+  $B14: {
+    %179:vec3<f32> = abs %v
+    %vAbs:vec3<f32> = let %179
+    %181:f32 = access %vAbs, 2u
+    %182:f32 = access %vAbs, 0u
+    %183:bool = gte %181, %182
+    %184:bool = if %183 [t: $B15, f: $B16] {  # if_3
+      $B15: {  # true
+        %185:f32 = access %vAbs, 2u
+        %186:f32 = access %vAbs, 1u
+        %187:bool = gte %185, %186
+        exit_if %187  # if_3
       }
-      %b16 = block {  # false
+      $B16: {  # false
         exit_if false  # if_3
       }
     }
-    if %164 [t: %b17] {  # if_4
-      %b17 = block {  # true
-        %168:f32 = access %v, 2u
-        %169:bool = lt %168, 0.0f
-        if %169 [t: %b18] {  # if_5
-          %b18 = block {  # true
+    if %184 [t: $B17] {  # if_4
+      $B17: {  # true
+        %188:f32 = access %v, 2u
+        %189:bool = lt %188, 0.0f
+        if %189 [t: $B18] {  # if_5
+          $B18: {  # true
             ret 5i
           }
         }
         ret 4i
       }
     }
-    %170:f32 = access %vAbs, 1u
-    %171:f32 = access %vAbs, 0u
-    %172:bool = gte %170, %171
-    if %172 [t: %b19] {  # if_6
-      %b19 = block {  # true
-        %173:f32 = access %v, 1u
-        %174:bool = lt %173, 0.0f
-        if %174 [t: %b20] {  # if_7
-          %b20 = block {  # true
+    %190:f32 = access %vAbs, 1u
+    %191:f32 = access %vAbs, 0u
+    %192:bool = gte %190, %191
+    if %192 [t: $B19] {  # if_6
+      $B19: {  # true
+        %193:f32 = access %v, 1u
+        %194:bool = lt %193, 0.0f
+        if %194 [t: $B20] {  # if_7
+          $B20: {  # true
             ret 3i
           }
         }
         ret 2i
       }
     }
-    %175:f32 = access %v, 0u
-    %176:bool = lt %175, 0.0f
-    if %176 [t: %b21] {  # if_8
-      %b21 = block {  # true
+    %195:f32 = access %v, 0u
+    %196:bool = lt %195, 0.0f
+    if %196 [t: $B21] {  # if_8
+      $B21: {  # true
         ret 1i
       }
     }
     ret 0i
   }
 }
-%pointLightVisibility = func(%lightIndex:u32, %worldPos_1:vec3<f32>, %pointToLight:vec3<f32>):f32 -> %b22 {  # %worldPos_1: 'worldPos'
-  %b22 = block {
-    %181:u32 = add %lightIndex, 1u
-    %182:ptr<storage, i32, read> = access %lightShadowTable, 0u, %181
-    %183:i32 = load %182
-    %shadowIndex_1:ptr<function, i32, read_write> = var, %183  # %shadowIndex_1: 'shadowIndex'
-    %185:i32 = load %shadowIndex_1
-    %186:bool = eq %185, -1i
-    if %186 [t: %b23] {  # if_9
-      %b23 = block {  # true
+%pointLightVisibility = func(%lightIndex:u32, %worldPos_1:vec3<f32>, %pointToLight:vec3<f32>):f32 {  # %worldPos_1: 'worldPos'
+  $B22: {
+    %201:u32 = add %lightIndex, 1u
+    %202:ptr<storage, i32, read> = access %lightShadowTable, 0u, %201
+    %203:i32 = load %202
+    %shadowIndex_1:ptr<function, i32, read_write> = var, %203  # %shadowIndex_1: 'shadowIndex'
+    %205:i32 = load %shadowIndex_1
+    %206:bool = eq %205, -1i
+    if %206 [t: $B23] {  # if_9
+      $B23: {  # true
         ret 1.0f
       }
     }
-    %187:i32 = load %shadowIndex_1
-    %188:vec3<f32> = mul %pointToLight, -1.0f
-    %189:i32 = call %getCubeFace, %188
-    %190:i32 = add %187, %189
-    store %shadowIndex_1, %190
-    %191:i32 = load %shadowIndex_1
-    %192:ptr<storage, vec4<f32>, read> = access %shadow, 0u, %191, 0u
-    %viewport_1:vec4<f32> = load %192  # %viewport_1: 'viewport'
-    %194:i32 = load %shadowIndex_1
-    %195:ptr<storage, mat4x4<f32>, read> = access %shadow, 0u, %194, 1u
-    %196:mat4x4<f32> = load %195
-    %197:vec4<f32> = construct %worldPos_1, 1.0f
-    %lightPos_1:vec4<f32> = mul %196, %197  # %lightPos_1: 'lightPos'
-    %199:vec2<f32> = swizzle %lightPos_1, xy
-    %200:f32 = access %lightPos_1, 3u
-    %201:vec2<f32> = div %199, %200
-    %202:vec2<f32> = mul %201, vec2<f32>(0.5f, -0.5f)
-    %203:vec2<f32> = add %202, vec2<f32>(0.5f)
-    %204:f32 = access %lightPos_1, 2u
-    %205:f32 = access %lightPos_1, 3u
-    %206:f32 = div %204, %205
-    %shadowPos_1:vec3<f32> = construct %203, %206  # %shadowPos_1: 'shadowPos'
-    %208:vec2<f32> = swizzle %viewport_1, xy
-    %209:vec2<f32> = swizzle %shadowPos_1, xy
-    %210:vec2<f32> = swizzle %viewport_1, zw
-    %211:vec2<f32> = mul %209, %210
-    %212:vec2<f32> = add %208, %211
-    %viewportPos_1:vec2<f32> = construct %212  # %viewportPos_1: 'viewportPos'
-    %214:texture_depth_2d = load %shadowTexture
-    %215:vec2<u32> = textureDimensions %214, 0i
-    %216:vec2<f32> = convert %215
-    %texelSize_1:vec2<f32> = div 1.0f, %216  # %texelSize_1: 'texelSize'
-    %218:vec2<f32> = swizzle %viewport_1, xy
-    %219:vec2<f32> = swizzle %viewport_1, xy
-    %220:vec2<f32> = swizzle %viewport_1, zw
-    %221:vec2<f32> = add %219, %220
-    %clampRect_1:vec4<f32> = construct %218, %221  # %clampRect_1: 'clampRect'
+    %207:i32 = load %shadowIndex_1
+    %208:i32 = let %207
+    %209:vec3<f32> = mul %pointToLight, -1.0f
+    %210:i32 = call %getCubeFace, %209
+    %211:i32 = add %208, %210
+    store %shadowIndex_1, %211
+    %212:i32 = load %shadowIndex_1
+    %213:ptr<storage, vec4<f32>, read> = access %shadow, 0u, %212, 0u
+    %214:vec4<f32> = load %213
+    %viewport_1:vec4<f32> = let %214  # %viewport_1: 'viewport'
+    %216:i32 = load %shadowIndex_1
+    %217:ptr<storage, mat4x4<f32>, read> = access %shadow, 0u, %216, 1u
+    %218:mat4x4<f32> = load %217
+    %219:mat4x4<f32> = let %218
+    %220:vec4<f32> = construct %worldPos_1, 1.0f
+    %221:vec4<f32> = mul %219, %220
+    %lightPos_1:vec4<f32> = let %221  # %lightPos_1: 'lightPos'
+    %223:vec2<f32> = swizzle %lightPos_1, xy
+    %224:f32 = access %lightPos_1, 3u
+    %225:vec2<f32> = div %223, %224
+    %226:vec2<f32> = mul %225, vec2<f32>(0.5f, -0.5f)
+    %227:vec2<f32> = add %226, vec2<f32>(0.5f)
+    %228:f32 = access %lightPos_1, 2u
+    %229:f32 = access %lightPos_1, 3u
+    %230:f32 = div %228, %229
+    %231:vec3<f32> = construct %227, %230
+    %shadowPos_1:vec3<f32> = let %231  # %shadowPos_1: 'shadowPos'
+    %233:vec2<f32> = swizzle %viewport_1, xy
+    %234:vec2<f32> = swizzle %shadowPos_1, xy
+    %235:vec2<f32> = swizzle %viewport_1, zw
+    %236:vec2<f32> = mul %234, %235
+    %237:vec2<f32> = add %233, %236
+    %238:vec2<f32> = construct %237
+    %viewportPos_1:vec2<f32> = let %238  # %viewportPos_1: 'viewportPos'
+    %240:texture_depth_2d = load %shadowTexture
+    %241:vec2<u32> = textureDimensions %240, 0i
+    %242:vec2<f32> = convert %241
+    %243:vec2<f32> = div 1.0f, %242
+    %texelSize_1:vec2<f32> = let %243  # %texelSize_1: 'texelSize'
+    %245:vec2<f32> = swizzle %viewport_1, xy
+    %246:vec2<f32> = swizzle %viewport_1, xy
+    %247:vec2<f32> = swizzle %viewport_1, zw
+    %248:vec2<f32> = add %246, %247
+    %249:vec4<f32> = construct %245, %248
+    %clampRect_1:vec4<f32> = let %249  # %clampRect_1: 'clampRect'
     %visibility_1:ptr<function, f32, read_write> = var, 0.0f  # %visibility_1: 'visibility'
-    loop [i: %b24, b: %b25, c: %b26] {  # loop_2
-      %b24 = block {  # initializer
+    loop [i: $B24, b: $B25, c: $B26] {  # loop_2
+      $B24: {  # initializer
         %i_1:ptr<function, u32, read_write> = var, 0u  # %i_1: 'i'
-        next_iteration %b25
+        next_iteration  # -> $B25
       }
-      %b25 = block {  # body
-        %225:u32 = load %i_1
-        %226:bool = lt %225, 16u
-        if %226 [t: %b27, f: %b28] {  # if_10
-          %b27 = block {  # true
+      $B25: {  # body
+        %253:u32 = load %i_1
+        %254:bool = lt %253, 16u
+        if %254 [t: $B27, f: $B28] {  # if_10
+          $B27: {  # true
             exit_if  # if_10
           }
-          %b28 = block {  # false
+          $B28: {  # false
             exit_loop  # loop_2
           }
         }
-        %227:f32 = load %visibility_1
-        %228:texture_depth_2d = load %shadowTexture
-        %229:sampler_comparison = load %shadowSampler
-        %230:u32 = load %i_1
-        %231:ptr<private, vec2<f32>, read_write> = access %shadowSampleOffsets, %230
-        %232:vec2<f32> = load %231
-        %233:vec2<f32> = mul %232, %texelSize_1
-        %234:vec2<f32> = add %viewportPos_1, %233
-        %235:vec2<f32> = swizzle %clampRect_1, xy
-        %236:vec2<f32> = swizzle %clampRect_1, zw
-        %237:vec2<f32> = clamp %234, %235, %236
-        %238:f32 = access %shadowPos_1, 2u
-        %239:f32 = sub %238, 0.00999999977648258209f
-        %240:f32 = textureSampleCompareLevel %228, %229, %237, %239
-        %241:f32 = add %227, %240
-        store %visibility_1, %241
-        continue %b26
+        %255:f32 = load %visibility_1
+        %256:f32 = let %255
+        %257:texture_depth_2d = load %shadowTexture
+        %258:texture_depth_2d = let %257
+        %259:sampler_comparison = load %shadowSampler
+        %260:sampler_comparison = let %259
+        %261:u32 = load %i_1
+        %262:ptr<private, vec2<f32>, read_write> = access %shadowSampleOffsets, %261
+        %263:vec2<f32> = load %262
+        %264:vec2<f32> = mul %263, %texelSize_1
+        %265:vec2<f32> = add %viewportPos_1, %264
+        %266:vec2<f32> = swizzle %clampRect_1, xy
+        %267:vec2<f32> = swizzle %clampRect_1, zw
+        %268:vec2<f32> = clamp %265, %266, %267
+        %269:f32 = access %shadowPos_1, 2u
+        %270:f32 = sub %269, 0.00999999977648258209f
+        %271:f32 = textureSampleCompareLevel %258, %260, %268, %270
+        %272:f32 = add %256, %271
+        store %visibility_1, %272
+        continue  # -> $B26
       }
-      %b26 = block {  # continuing
-        %242:u32 = load %i_1
-        %243:u32 = add %242, 1u
-        store %i_1, %243
-        next_iteration %b25
+      $B26: {  # continuing
+        %273:u32 = load %i_1
+        %274:u32 = add %273, 1u
+        store %i_1, %274
+        next_iteration  # -> $B25
       }
     }
-    %244:f32 = load %visibility_1
-    %245:f32 = div %244, 16.0f
-    ret %245
+    %275:f32 = load %visibility_1
+    %276:f32 = div %275, 16.0f
+    ret %276
   }
 }
-%GetSurfaceInfo = func(%input:VertexOutput):SurfaceInfo -> %b29 {
-  %b29 = block {
+%GetSurfaceInfo = func(%input:VertexOutput):SurfaceInfo {
+  $B29: {
     %surface:ptr<function, SurfaceInfo, read_write> = var
-    %249:ptr<function, vec3<f32>, read_write> = access %surface, 8u
-    %250:vec3<f32> = access %input, 2u
-    %251:vec3<f32> = normalize %250
-    store %249, %251
-    %252:vec3<f32> = access %input, 8u
-    %253:vec3<f32> = access %input, 9u
-    %254:vec3<f32> = access %input, 7u
-    %tbn:mat3x3<f32> = construct %252, %253, %254
-    %256:texture_2d<f32> = load %normalTexture
-    %257:sampler = load %normalSampler
-    %258:vec2<f32> = access %input, 3u
-    %259:vec4<f32> = textureSample %256, %257, %258
-    %normalMap:vec3<f32> = swizzle %259, xyz
-    %261:ptr<function, vec3<f32>, read_write> = access %surface, 4u
-    %262:vec3<f32> = mul 2.0f, %normalMap
-    %263:vec3<f32> = sub %262, vec3<f32>(1.0f)
-    %264:vec3<f32> = mul %tbn, %263
-    %265:vec3<f32> = normalize %264
-    store %261, %265
-    %266:texture_2d<f32> = load %baseColorTexture
-    %267:sampler = load %baseColorSampler
-    %268:vec2<f32> = access %input, 3u
-    %baseColorMap:vec4<f32> = textureSample %266, %267, %268
-    %270:ptr<function, vec4<f32>, read_write> = access %surface, 0u
-    %271:vec4<f32> = access %input, 5u
-    %272:ptr<uniform, vec4<f32>, read> = access %material, 0u
-    %273:vec4<f32> = load %272
-    %274:vec4<f32> = mul %271, %273
-    %275:vec4<f32> = mul %274, %baseColorMap
-    store %270, %275
-    %276:ptr<function, vec4<f32>, read_write> = access %surface, 0u
-    %277:f32 = load_vector_element %276, 3u
-    %278:ptr<uniform, f32, read> = access %material, 4u
-    %279:f32 = load %278
-    %280:bool = lt %277, %279
-    if %280 [t: %b30] {  # if_11
-      %b30 = block {  # true
+    %280:ptr<function, vec3<f32>, read_write> = access %surface, 8u
+    %281:vec3<f32> = access %input, 2u
+    %282:vec3<f32> = normalize %281
+    store %280, %282
+    %283:vec3<f32> = access %input, 8u
+    %284:vec3<f32> = access %input, 9u
+    %285:vec3<f32> = access %input, 7u
+    %286:mat3x3<f32> = construct %283, %284, %285
+    %tbn:mat3x3<f32> = let %286
+    %288:texture_2d<f32> = load %normalTexture
+    %289:sampler = load %normalSampler
+    %290:vec2<f32> = access %input, 3u
+    %291:vec4<f32> = textureSample %288, %289, %290
+    %292:vec3<f32> = swizzle %291, xyz
+    %normalMap:vec3<f32> = let %292
+    %294:ptr<function, vec3<f32>, read_write> = access %surface, 4u
+    %295:vec3<f32> = mul 2.0f, %normalMap
+    %296:vec3<f32> = sub %295, vec3<f32>(1.0f)
+    %297:vec3<f32> = mul %tbn, %296
+    %298:vec3<f32> = normalize %297
+    store %294, %298
+    %299:texture_2d<f32> = load %baseColorTexture
+    %300:sampler = load %baseColorSampler
+    %301:vec2<f32> = access %input, 3u
+    %302:vec4<f32> = textureSample %299, %300, %301
+    %baseColorMap:vec4<f32> = let %302
+    %304:ptr<function, vec4<f32>, read_write> = access %surface, 0u
+    %305:vec4<f32> = access %input, 5u
+    %306:ptr<uniform, vec4<f32>, read> = access %material, 0u
+    %307:vec4<f32> = load %306
+    %308:vec4<f32> = mul %305, %307
+    %309:vec4<f32> = mul %308, %baseColorMap
+    store %304, %309
+    %310:ptr<function, vec4<f32>, read_write> = access %surface, 0u
+    %311:f32 = load_vector_element %310, 3u
+    %312:ptr<uniform, f32, read> = access %material, 4u
+    %313:f32 = load %312
+    %314:bool = lt %311, %313
+    if %314 [t: $B30] {  # if_11
+      $B30: {  # true
         exit_if  # if_11
       }
     }
-    %281:ptr<function, vec3<f32>, read_write> = access %surface, 1u
-    %282:ptr<function, vec4<f32>, read_write> = access %surface, 0u
-    %283:vec4<f32> = load %282
-    %284:vec3<f32> = swizzle %283, xyz
-    store %281, %284
-    %285:texture_2d<f32> = load %metallicRoughnessTexture
-    %286:sampler = load %metallicRoughnessSampler
-    %287:vec2<f32> = access %input, 3u
-    %metallicRoughnessMap:vec4<f32> = textureSample %285, %286, %287
-    %289:ptr<function, f32, read_write> = access %surface, 2u
-    %290:ptr<uniform, vec2<f32>, read> = access %material, 3u
-    %291:f32 = load_vector_element %290, 0u
-    %292:f32 = access %metallicRoughnessMap, 2u
-    %293:f32 = mul %291, %292
-    store %289, %293
-    %294:ptr<function, f32, read_write> = access %surface, 3u
-    %295:ptr<uniform, vec2<f32>, read> = access %material, 3u
-    %296:f32 = load_vector_element %295, 1u
-    %297:f32 = access %metallicRoughnessMap, 1u
-    %298:f32 = mul %296, %297
-    store %294, %298
+    %315:ptr<function, vec3<f32>, read_write> = access %surface, 1u
+    %316:ptr<function, vec4<f32>, read_write> = access %surface, 0u
+    %317:vec4<f32> = load %316
+    %318:vec3<f32> = swizzle %317, xyz
+    store %315, %318
+    %319:texture_2d<f32> = load %metallicRoughnessTexture
+    %320:sampler = load %metallicRoughnessSampler
+    %321:vec2<f32> = access %input, 3u
+    %322:vec4<f32> = textureSample %319, %320, %321
+    %metallicRoughnessMap:vec4<f32> = let %322
+    %324:ptr<function, f32, read_write> = access %surface, 2u
+    %325:ptr<uniform, vec2<f32>, read> = access %material, 3u
+    %326:f32 = load_vector_element %325, 0u
+    %327:f32 = access %metallicRoughnessMap, 2u
+    %328:f32 = mul %326, %327
+    store %324, %328
+    %329:ptr<function, f32, read_write> = access %surface, 3u
+    %330:ptr<uniform, vec2<f32>, read> = access %material, 3u
+    %331:f32 = load_vector_element %330, 1u
+    %332:f32 = access %metallicRoughnessMap, 1u
+    %333:f32 = mul %331, %332
+    store %329, %333
     %dielectricSpec:vec3<f32> = let vec3<f32>(0.03999999910593032837f)
-    %300:ptr<function, vec3<f32>, read_write> = access %surface, 5u
-    %301:ptr<function, vec3<f32>, read_write> = access %surface, 1u
-    %302:vec3<f32> = load %301
-    %303:ptr<function, f32, read_write> = access %surface, 2u
-    %304:f32 = load %303
-    %305:vec3<f32> = construct %304
-    %306:vec3<f32> = mix %dielectricSpec, %302, %305
-    store %300, %306
-    %307:texture_2d<f32> = load %occlusionTexture
-    %308:sampler = load %occlusionSampler
-    %309:vec2<f32> = access %input, 3u
-    %occlusionMap:vec4<f32> = textureSample %307, %308, %309
-    %311:ptr<function, f32, read_write> = access %surface, 6u
-    %312:ptr<uniform, f32, read> = access %material, 2u
-    %313:f32 = load %312
-    %314:f32 = access %occlusionMap, 0u
-    %315:f32 = mul %313, %314
-    store %311, %315
-    %316:texture_2d<f32> = load %emissiveTexture
-    %317:sampler = load %emissiveSampler
-    %318:vec2<f32> = access %input, 3u
-    %emissiveMap:vec4<f32> = textureSample %316, %317, %318
-    %320:ptr<function, vec3<f32>, read_write> = access %surface, 7u
-    %321:ptr<uniform, vec3<f32>, read> = access %material, 1u
-    %322:vec3<f32> = load %321
-    %323:vec3<f32> = swizzle %emissiveMap, xyz
-    %324:vec3<f32> = mul %322, %323
-    store %320, %324
-    %325:f32 = access %input, 6u, 3u
-    %326:bool = eq %325, 0.0f
-    if %326 [t: %b31, f: %b32] {  # if_12
-      %b31 = block {  # true
-        %327:ptr<function, vec3<f32>, read_write> = access %surface, 1u
-        %328:ptr<function, vec3<f32>, read_write> = access %surface, 1u
-        %329:vec3<f32> = load %328
-        %330:vec4<f32> = access %input, 6u
-        %331:vec3<f32> = swizzle %330, xyz
-        %332:vec3<f32> = add %329, %331
-        store %327, %332
+    %335:ptr<function, vec3<f32>, read_write> = access %surface, 5u
+    %336:ptr<function, vec3<f32>, read_write> = access %surface, 1u
+    %337:vec3<f32> = load %336
+    %338:vec3<f32> = let %337
+    %339:ptr<function, f32, read_write> = access %surface, 2u
+    %340:f32 = load %339
+    %341:vec3<f32> = construct %340
+    %342:vec3<f32> = mix %dielectricSpec, %338, %341
+    store %335, %342
+    %343:texture_2d<f32> = load %occlusionTexture
+    %344:sampler = load %occlusionSampler
+    %345:vec2<f32> = access %input, 3u
+    %346:vec4<f32> = textureSample %343, %344, %345
+    %occlusionMap:vec4<f32> = let %346
+    %348:ptr<function, f32, read_write> = access %surface, 6u
+    %349:ptr<uniform, f32, read> = access %material, 2u
+    %350:f32 = load %349
+    %351:f32 = access %occlusionMap, 0u
+    %352:f32 = mul %350, %351
+    store %348, %352
+    %353:texture_2d<f32> = load %emissiveTexture
+    %354:sampler = load %emissiveSampler
+    %355:vec2<f32> = access %input, 3u
+    %356:vec4<f32> = textureSample %353, %354, %355
+    %emissiveMap:vec4<f32> = let %356
+    %358:ptr<function, vec3<f32>, read_write> = access %surface, 7u
+    %359:ptr<uniform, vec3<f32>, read> = access %material, 1u
+    %360:vec3<f32> = load %359
+    %361:vec3<f32> = swizzle %emissiveMap, xyz
+    %362:vec3<f32> = mul %360, %361
+    store %358, %362
+    %363:f32 = access %input, 6u, 3u
+    %364:bool = eq %363, 0.0f
+    if %364 [t: $B31, f: $B32] {  # if_12
+      $B31: {  # true
+        %365:ptr<function, vec3<f32>, read_write> = access %surface, 1u
+        %366:ptr<function, vec3<f32>, read_write> = access %surface, 1u
+        %367:vec3<f32> = load %366
+        %368:vec4<f32> = access %input, 6u
+        %369:vec3<f32> = swizzle %368, xyz
+        %370:vec3<f32> = add %367, %369
+        store %365, %370
         exit_if  # if_12
       }
-      %b32 = block {  # false
-        %333:ptr<function, vec3<f32>, read_write> = access %surface, 1u
-        %334:ptr<function, vec3<f32>, read_write> = access %surface, 1u
-        %335:vec3<f32> = load %334
-        %336:vec4<f32> = access %input, 6u
-        %337:vec3<f32> = swizzle %336, xyz
-        %338:vec3<f32> = mul %335, %337
-        store %333, %338
+      $B32: {  # false
+        %371:ptr<function, vec3<f32>, read_write> = access %surface, 1u
+        %372:ptr<function, vec3<f32>, read_write> = access %surface, 1u
+        %373:vec3<f32> = load %372
+        %374:vec4<f32> = access %input, 6u
+        %375:vec3<f32> = swizzle %374, xyz
+        %376:vec3<f32> = mul %373, %375
+        store %371, %376
         exit_if  # if_12
       }
     }
-    %339:SurfaceInfo = load %surface
-    ret %339
+    %377:SurfaceInfo = load %surface
+    ret %377
   }
 }
-%FresnelSchlick = func(%cosTheta:f32, %F0:vec3<f32>):vec3<f32> -> %b33 {
-  %b33 = block {
-    %343:vec3<f32> = sub vec3<f32>(1.0f), %F0
-    %344:f32 = sub 1.0f, %cosTheta
-    %345:f32 = pow %344, 5.0f
-    %346:vec3<f32> = mul %343, %345
-    %347:vec3<f32> = add %F0, %346
-    ret %347
+%FresnelSchlick = func(%cosTheta:f32, %F0:vec3<f32>):vec3<f32> {
+  $B33: {
+    %381:vec3<f32> = sub vec3<f32>(1.0f), %F0
+    %382:f32 = sub 1.0f, %cosTheta
+    %383:f32 = pow %382, 5.0f
+    %384:vec3<f32> = mul %381, %383
+    %385:vec3<f32> = add %F0, %384
+    ret %385
   }
 }
-%DistributionGGX = func(%N:vec3<f32>, %H:vec3<f32>, %roughness:f32):f32 -> %b34 {
-  %b34 = block {
-    %a:f32 = mul %roughness, %roughness
-    %a2:f32 = mul %a, %a
-    %354:f32 = dot %N, %H
-    %NdotH:f32 = max %354, 0.0f
-    %NdotH2:f32 = mul %NdotH, %NdotH
+%DistributionGGX = func(%N:vec3<f32>, %H:vec3<f32>, %roughness:f32):f32 {
+  $B34: {
+    %390:f32 = mul %roughness, %roughness
+    %a:f32 = let %390
+    %392:f32 = mul %a, %a
+    %a2:f32 = let %392
+    %394:f32 = dot %N, %H
+    %395:f32 = max %394, 0.0f
+    %NdotH:f32 = let %395
+    %397:f32 = mul %NdotH, %NdotH
+    %NdotH2:f32 = let %397
     %num:f32 = let %a2
-    %358:f32 = sub %a2, 1.0f
-    %359:f32 = mul %NdotH2, %358
-    %denom:f32 = add %359, 1.0f
-    %361:f32 = mul 3.14159274101257324219f, %denom
-    %362:f32 = mul %361, %denom
-    %363:f32 = div %num, %362
-    ret %363
+    %400:f32 = sub %a2, 1.0f
+    %401:f32 = mul %NdotH2, %400
+    %402:f32 = add %401, 1.0f
+    %denom:f32 = let %402
+    %404:f32 = mul 3.14159274101257324219f, %denom
+    %405:f32 = mul %404, %denom
+    %406:f32 = div %num, %405
+    ret %406
   }
 }
-%GeometrySchlickGGX = func(%NdotV:f32, %roughness_1:f32):f32 -> %b35 {  # %roughness_1: 'roughness'
-  %b35 = block {
-    %r:f32 = add %roughness_1, 1.0f
-    %368:f32 = mul %r, %r
-    %k:f32 = div %368, 8.0f
+%GeometrySchlickGGX = func(%NdotV:f32, %roughness_1:f32):f32 {  # %roughness_1: 'roughness'
+  $B35: {
+    %410:f32 = add %roughness_1, 1.0f
+    %r:f32 = let %410
+    %412:f32 = mul %r, %r
+    %413:f32 = div %412, 8.0f
+    %k:f32 = let %413
     %num_1:f32 = let %NdotV  # %num_1: 'num'
-    %371:f32 = sub 1.0f, %k
-    %372:f32 = mul %NdotV, %371
-    %denom_1:f32 = add %372, %k  # %denom_1: 'denom'
-    %374:f32 = div %num_1, %denom_1
-    ret %374
+    %416:f32 = sub 1.0f, %k
+    %417:f32 = mul %NdotV, %416
+    %418:f32 = add %417, %k
+    %denom_1:f32 = let %418  # %denom_1: 'denom'
+    %420:f32 = div %num_1, %denom_1
+    ret %420
   }
 }
-%GeometrySmith = func(%N_1:vec3<f32>, %V:vec3<f32>, %L:vec3<f32>, %roughness_2:f32):f32 -> %b36 {  # %N_1: 'N', %roughness_2: 'roughness'
-  %b36 = block {
-    %380:f32 = dot %N_1, %V
-    %NdotV_1:f32 = max %380, 0.0f  # %NdotV_1: 'NdotV'
-    %382:f32 = dot %N_1, %L
-    %NdotL:f32 = max %382, 0.0f
-    %ggx2:f32 = call %GeometrySchlickGGX, %NdotV_1, %roughness_2
-    %ggx1:f32 = call %GeometrySchlickGGX, %NdotL, %roughness_2
-    %386:f32 = mul %ggx1, %ggx2
-    ret %386
+%GeometrySmith = func(%N_1:vec3<f32>, %V:vec3<f32>, %L:vec3<f32>, %roughness_2:f32):f32 {  # %N_1: 'N', %roughness_2: 'roughness'
+  $B36: {
+    %426:f32 = dot %N_1, %V
+    %427:f32 = max %426, 0.0f
+    %NdotV_1:f32 = let %427  # %NdotV_1: 'NdotV'
+    %429:f32 = dot %N_1, %L
+    %430:f32 = max %429, 0.0f
+    %NdotL:f32 = let %430
+    %432:f32 = call %GeometrySchlickGGX, %NdotV_1, %roughness_2
+    %ggx2:f32 = let %432
+    %434:f32 = call %GeometrySchlickGGX, %NdotL, %roughness_2
+    %ggx1:f32 = let %434
+    %436:f32 = mul %ggx1, %ggx2
+    ret %436
   }
 }
-%lightAttenuation = func(%light:PuctualLight):f32 -> %b37 {
-  %b37 = block {
-    %389:u32 = access %light, 0u
-    %390:bool = eq %389, 2u
-    if %390 [t: %b38] {  # if_13
-      %b38 = block {  # true
+%lightAttenuation = func(%light:PuctualLight):f32 {
+  $B37: {
+    %439:u32 = access %light, 0u
+    %440:bool = eq %439, 2u
+    if %440 [t: $B38] {  # if_13
+      $B38: {  # true
         ret 1.0f
       }
     }
-    %391:vec3<f32> = access %light, 1u
-    %distance:f32 = length %391
-    %393:f32 = access %light, 2u
-    %394:bool = lte %393, 0.0f
-    if %394 [t: %b39] {  # if_14
-      %b39 = block {  # true
-        %395:f32 = pow %distance, 2.0f
-        %396:f32 = div 1.0f, %395
-        ret %396
+    %441:vec3<f32> = access %light, 1u
+    %442:f32 = length %441
+    %distance:f32 = let %442
+    %444:f32 = access %light, 2u
+    %445:bool = lte %444, 0.0f
+    if %445 [t: $B39] {  # if_14
+      $B39: {  # true
+        %446:f32 = pow %distance, 2.0f
+        %447:f32 = div 1.0f, %446
+        ret %447
       }
     }
-    %397:f32 = access %light, 2u
-    %398:f32 = div %distance, %397
-    %399:f32 = pow %398, 4.0f
-    %400:f32 = sub 1.0f, %399
-    %401:f32 = clamp %400, 0.0f, 1.0f
-    %402:f32 = pow %distance, 2.0f
-    %403:f32 = div %401, %402
-    ret %403
+    %448:f32 = access %light, 2u
+    %449:f32 = div %distance, %448
+    %450:f32 = pow %449, 4.0f
+    %451:f32 = sub 1.0f, %450
+    %452:f32 = clamp %451, 0.0f, 1.0f
+    %453:f32 = let %452
+    %454:f32 = pow %distance, 2.0f
+    %455:f32 = div %453, %454
+    ret %455
   }
 }
-%lightRadiance = func(%light_1:PuctualLight, %surface_1:SurfaceInfo):vec3<f32> -> %b40 {  # %light_1: 'light', %surface_1: 'surface'
-  %b40 = block {
-    %407:vec3<f32> = access %light_1, 1u
-    %L_1:vec3<f32> = normalize %407  # %L_1: 'L'
-    %409:vec3<f32> = access %surface_1, 8u
-    %410:vec3<f32> = add %409, %L_1
-    %H_1:vec3<f32> = normalize %410  # %H_1: 'H'
-    %412:vec3<f32> = access %surface_1, 4u
-    %413:f32 = access %surface_1, 3u
-    %NDF:f32 = call %DistributionGGX, %412, %H_1, %413
-    %415:vec3<f32> = access %surface_1, 4u
-    %416:vec3<f32> = access %surface_1, 8u
-    %417:f32 = access %surface_1, 3u
-    %G:f32 = call %GeometrySmith, %415, %416, %L_1, %417
-    %419:vec3<f32> = access %surface_1, 8u
-    %420:f32 = dot %H_1, %419
-    %421:f32 = max %420, 0.0f
-    %422:vec3<f32> = access %surface_1, 5u
-    %F:vec3<f32> = call %FresnelSchlick, %421, %422
-    %424:vec3<f32> = sub vec3<f32>(1.0f), %F
-    %425:f32 = access %surface_1, 2u
-    %426:f32 = sub 1.0f, %425
-    %kD:vec3<f32> = mul %424, %426
-    %428:vec3<f32> = access %surface_1, 4u
-    %429:f32 = dot %428, %L_1
-    %NdotL_1:f32 = max %429, 0.0f  # %NdotL_1: 'NdotL'
-    %431:f32 = mul %NDF, %G
-    %numerator:vec3<f32> = mul %431, %F
-    %433:vec3<f32> = access %surface_1, 4u
-    %434:vec3<f32> = access %surface_1, 8u
-    %435:f32 = dot %433, %434
-    %436:f32 = max %435, 0.0f
-    %437:f32 = mul 4.0f, %436
-    %438:f32 = mul %437, %NdotL_1
-    %denominator:f32 = max %438, 0.00100000004749745131f
-    %440:vec3<f32> = construct %denominator
-    %specular:vec3<f32> = div %numerator, %440
-    %442:vec3<f32> = access %light_1, 3u
-    %443:f32 = access %light_1, 4u
-    %444:vec3<f32> = mul %442, %443
-    %445:f32 = call %lightAttenuation, %light_1
-    %radiance:vec3<f32> = mul %444, %445
-    %447:vec3<f32> = access %surface_1, 1u
-    %448:vec3<f32> = mul %kD, %447
-    %449:vec3<f32> = div %448, vec3<f32>(3.14159274101257324219f)
-    %450:vec3<f32> = add %449, %specular
-    %451:vec3<f32> = mul %450, %radiance
-    %452:vec3<f32> = mul %451, %NdotL_1
-    ret %452
+%lightRadiance = func(%light_1:PuctualLight, %surface_1:SurfaceInfo):vec3<f32> {  # %light_1: 'light', %surface_1: 'surface'
+  $B40: {
+    %459:vec3<f32> = access %light_1, 1u
+    %460:vec3<f32> = normalize %459
+    %L_1:vec3<f32> = let %460  # %L_1: 'L'
+    %462:vec3<f32> = access %surface_1, 8u
+    %463:vec3<f32> = add %462, %L_1
+    %464:vec3<f32> = normalize %463
+    %H_1:vec3<f32> = let %464  # %H_1: 'H'
+    %466:vec3<f32> = access %surface_1, 4u
+    %467:f32 = access %surface_1, 3u
+    %468:f32 = call %DistributionGGX, %466, %H_1, %467
+    %NDF:f32 = let %468
+    %470:vec3<f32> = access %surface_1, 4u
+    %471:vec3<f32> = access %surface_1, 8u
+    %472:f32 = access %surface_1, 3u
+    %473:f32 = call %GeometrySmith, %470, %471, %L_1, %472
+    %G:f32 = let %473
+    %475:vec3<f32> = access %surface_1, 8u
+    %476:f32 = dot %H_1, %475
+    %477:f32 = max %476, 0.0f
+    %478:vec3<f32> = access %surface_1, 5u
+    %479:vec3<f32> = call %FresnelSchlick, %477, %478
+    %F:vec3<f32> = let %479
+    %481:vec3<f32> = sub vec3<f32>(1.0f), %F
+    %482:f32 = access %surface_1, 2u
+    %483:f32 = sub 1.0f, %482
+    %484:vec3<f32> = mul %481, %483
+    %kD:vec3<f32> = let %484
+    %486:vec3<f32> = access %surface_1, 4u
+    %487:f32 = dot %486, %L_1
+    %488:f32 = max %487, 0.0f
+    %NdotL_1:f32 = let %488  # %NdotL_1: 'NdotL'
+    %490:f32 = mul %NDF, %G
+    %491:vec3<f32> = mul %490, %F
+    %numerator:vec3<f32> = let %491
+    %493:vec3<f32> = access %surface_1, 4u
+    %494:vec3<f32> = access %surface_1, 8u
+    %495:f32 = dot %493, %494
+    %496:f32 = max %495, 0.0f
+    %497:f32 = mul 4.0f, %496
+    %498:f32 = mul %497, %NdotL_1
+    %499:f32 = max %498, 0.00100000004749745131f
+    %denominator:f32 = let %499
+    %501:vec3<f32> = construct %denominator
+    %502:vec3<f32> = div %numerator, %501
+    %specular:vec3<f32> = let %502
+    %504:vec3<f32> = access %light_1, 3u
+    %505:f32 = access %light_1, 4u
+    %506:vec3<f32> = mul %504, %505
+    %507:f32 = call %lightAttenuation, %light_1
+    %508:vec3<f32> = mul %506, %507
+    %radiance:vec3<f32> = let %508
+    %510:vec3<f32> = access %surface_1, 1u
+    %511:vec3<f32> = mul %kD, %510
+    %512:vec3<f32> = div %511, vec3<f32>(3.14159274101257324219f)
+    %513:vec3<f32> = add %512, %specular
+    %514:vec3<f32> = mul %513, %radiance
+    %515:vec3<f32> = mul %514, %NdotL_1
+    ret %515
   }
 }
-%fragmentMain = @fragment func(%input_1:VertexOutput):FragmentOutput -> %b41 {  # %input_1: 'input'
-  %b41 = block {
-    %surface_2:SurfaceInfo = call %GetSurfaceInfo, %input_1  # %surface_2: 'surface'
+%fragmentMain = @fragment func(%input_1:VertexOutput):FragmentOutput {  # %input_1: 'input'
+  $B41: {
+    %518:SurfaceInfo = call %GetSurfaceInfo, %input_1
+    %surface_2:SurfaceInfo = let %518  # %surface_2: 'surface'
     %Lo:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
-    %457:ptr<storage, f32, read> = access %globalLights, 2u
-    %458:f32 = load %457
-    %459:bool = gt %458, 0.0f
-    if %459 [t: %b42] {  # if_15
-      %b42 = block {  # true
+    %521:ptr<storage, f32, read> = access %globalLights, 2u
+    %522:f32 = load %521
+    %523:bool = gt %522, 0.0f
+    if %523 [t: $B42] {  # if_15
+      $B42: {  # true
         %light_2:ptr<function, PuctualLight, read_write> = var  # %light_2: 'light'
-        %461:ptr<function, u32, read_write> = access %light_2, 0u
-        store %461, 2u
-        %462:ptr<function, vec3<f32>, read_write> = access %light_2, 1u
-        %463:ptr<storage, vec3<f32>, read> = access %globalLights, 3u
-        %464:vec3<f32> = load %463
-        store %462, %464
-        %465:ptr<function, vec3<f32>, read_write> = access %light_2, 3u
-        %466:ptr<storage, vec3<f32>, read> = access %globalLights, 1u
-        %467:vec3<f32> = load %466
-        store %465, %467
-        %468:ptr<function, f32, read_write> = access %light_2, 4u
-        %469:ptr<storage, f32, read> = access %globalLights, 2u
-        %470:f32 = load %469
-        store %468, %470
-        %471:vec3<f32> = access %input_1, 1u
-        %lightVis:f32 = call %dirLightVisibility, %471
-        %473:vec3<f32> = load %Lo
-        %474:PuctualLight = load %light_2
-        %475:vec3<f32> = call %lightRadiance, %474, %surface_2
-        %476:vec3<f32> = mul %475, %lightVis
-        %477:vec3<f32> = add %473, %476
-        store %Lo, %477
+        %525:ptr<function, u32, read_write> = access %light_2, 0u
+        store %525, 2u
+        %526:ptr<function, vec3<f32>, read_write> = access %light_2, 1u
+        %527:ptr<storage, vec3<f32>, read> = access %globalLights, 3u
+        %528:vec3<f32> = load %527
+        store %526, %528
+        %529:ptr<function, vec3<f32>, read_write> = access %light_2, 3u
+        %530:ptr<storage, vec3<f32>, read> = access %globalLights, 1u
+        %531:vec3<f32> = load %530
+        store %529, %531
+        %532:ptr<function, f32, read_write> = access %light_2, 4u
+        %533:ptr<storage, f32, read> = access %globalLights, 2u
+        %534:f32 = load %533
+        store %532, %534
+        %535:vec3<f32> = access %input_1, 1u
+        %536:f32 = call %dirLightVisibility, %535
+        %lightVis:f32 = let %536
+        %538:vec3<f32> = load %Lo
+        %539:vec3<f32> = let %538
+        %540:PuctualLight = load %light_2
+        %541:vec3<f32> = call %lightRadiance, %540, %surface_2
+        %542:vec3<f32> = mul %541, %lightVis
+        %543:vec3<f32> = add %539, %542
+        store %Lo, %543
         exit_if  # if_15
       }
     }
-    %478:vec4<f32> = access %input_1, 0u
-    %clusterIndex:u32 = call %getClusterIndex, %478
-    %480:ptr<storage, u32, read> = access %clusterLights, 1u, %clusterIndex, 0u
-    %lightOffset:u32 = load %480
-    %482:ptr<storage, u32, read> = access %clusterLights, 1u, %clusterIndex, 1u
-    %lightCount:u32 = load %482
-    loop [i: %b43, b: %b44, c: %b45] {  # loop_3
-      %b43 = block {  # initializer
+    %544:vec4<f32> = access %input_1, 0u
+    %545:u32 = call %getClusterIndex, %544
+    %clusterIndex:u32 = let %545
+    %547:ptr<storage, u32, read> = access %clusterLights, 1u, %clusterIndex, 0u
+    %548:u32 = load %547
+    %lightOffset:u32 = let %548
+    %550:ptr<storage, u32, read> = access %clusterLights, 1u, %clusterIndex, 1u
+    %551:u32 = load %550
+    %lightCount:u32 = let %551
+    loop [i: $B43, b: $B44, c: $B45] {  # loop_3
+      $B43: {  # initializer
         %lightIndex_1:ptr<function, u32, read_write> = var, 0u  # %lightIndex_1: 'lightIndex'
-        next_iteration %b44
+        next_iteration  # -> $B44
       }
-      %b44 = block {  # body
-        %485:u32 = load %lightIndex_1
-        %486:bool = lt %485, %lightCount
-        if %486 [t: %b46, f: %b47] {  # if_16
-          %b46 = block {  # true
+      $B44: {  # body
+        %554:u32 = load %lightIndex_1
+        %555:bool = lt %554, %lightCount
+        if %555 [t: $B46, f: $B47] {  # if_16
+          $B46: {  # true
             exit_if  # if_16
           }
-          %b47 = block {  # false
+          $B47: {  # false
             exit_loop  # loop_3
           }
         }
-        %487:u32 = load %lightIndex_1
-        %488:u32 = add %lightOffset, %487
-        %489:ptr<storage, u32, read> = access %clusterLights, 2u, %488
-        %i_2:u32 = load %489  # %i_2: 'i'
+        %556:u32 = load %lightIndex_1
+        %557:u32 = add %lightOffset, %556
+        %558:ptr<storage, u32, read> = access %clusterLights, 2u, %557
+        %559:u32 = load %558
+        %i_2:u32 = let %559  # %i_2: 'i'
         %light_3:ptr<function, PuctualLight, read_write> = var  # %light_3: 'light'
-        %492:ptr<function, u32, read_write> = access %light_3, 0u
-        store %492, 0u
-        %493:ptr<function, vec3<f32>, read_write> = access %light_3, 1u
-        %494:ptr<storage, vec3<f32>, read> = access %globalLights, 5u, %i_2, 0u
-        %495:vec3<f32> = load %494
-        %496:vec3<f32> = swizzle %495, xyz
-        %497:vec3<f32> = access %input_1, 1u
-        %498:vec3<f32> = sub %496, %497
-        store %493, %498
-        %499:ptr<function, f32, read_write> = access %light_3, 2u
-        %500:ptr<storage, f32, read> = access %globalLights, 5u, %i_2, 1u
-        %501:f32 = load %500
-        store %499, %501
-        %502:ptr<function, vec3<f32>, read_write> = access %light_3, 3u
-        %503:ptr<storage, vec3<f32>, read> = access %globalLights, 5u, %i_2, 2u
-        %504:vec3<f32> = load %503
-        store %502, %504
-        %505:ptr<function, f32, read_write> = access %light_3, 4u
-        %506:ptr<storage, f32, read> = access %globalLights, 5u, %i_2, 3u
-        %507:f32 = load %506
-        store %505, %507
-        %508:vec3<f32> = access %input_1, 1u
-        %509:ptr<function, vec3<f32>, read_write> = access %light_3, 1u
-        %510:vec3<f32> = load %509
-        %lightVis_1:f32 = call %pointLightVisibility, %i_2, %508, %510  # %lightVis_1: 'lightVis'
-        %512:vec3<f32> = load %Lo
-        %513:PuctualLight = load %light_3
-        %514:vec3<f32> = call %lightRadiance, %513, %surface_2
-        %515:vec3<f32> = mul %514, %lightVis_1
-        %516:vec3<f32> = add %512, %515
-        store %Lo, %516
-        continue %b45
+        %562:ptr<function, u32, read_write> = access %light_3, 0u
+        store %562, 0u
+        %563:ptr<function, vec3<f32>, read_write> = access %light_3, 1u
+        %564:ptr<storage, vec3<f32>, read> = access %globalLights, 5u, %i_2, 0u
+        %565:vec3<f32> = load %564
+        %566:vec3<f32> = swizzle %565, xyz
+        %567:vec3<f32> = access %input_1, 1u
+        %568:vec3<f32> = sub %566, %567
+        store %563, %568
+        %569:ptr<function, f32, read_write> = access %light_3, 2u
+        %570:ptr<storage, f32, read> = access %globalLights, 5u, %i_2, 1u
+        %571:f32 = load %570
+        store %569, %571
+        %572:ptr<function, vec3<f32>, read_write> = access %light_3, 3u
+        %573:ptr<storage, vec3<f32>, read> = access %globalLights, 5u, %i_2, 2u
+        %574:vec3<f32> = load %573
+        store %572, %574
+        %575:ptr<function, f32, read_write> = access %light_3, 4u
+        %576:ptr<storage, f32, read> = access %globalLights, 5u, %i_2, 3u
+        %577:f32 = load %576
+        store %575, %577
+        %578:vec3<f32> = access %input_1, 1u
+        %579:ptr<function, vec3<f32>, read_write> = access %light_3, 1u
+        %580:vec3<f32> = load %579
+        %581:f32 = call %pointLightVisibility, %i_2, %578, %580
+        %lightVis_1:f32 = let %581  # %lightVis_1: 'lightVis'
+        %583:vec3<f32> = load %Lo
+        %584:vec3<f32> = let %583
+        %585:PuctualLight = load %light_3
+        %586:vec3<f32> = call %lightRadiance, %585, %surface_2
+        %587:vec3<f32> = mul %586, %lightVis_1
+        %588:vec3<f32> = add %584, %587
+        store %Lo, %588
+        continue  # -> $B45
       }
-      %b45 = block {  # continuing
-        %517:u32 = load %lightIndex_1
-        %518:u32 = add %517, 1u
-        store %lightIndex_1, %518
-        next_iteration %b44
+      $B45: {  # continuing
+        %589:u32 = load %lightIndex_1
+        %590:u32 = add %589, 1u
+        store %lightIndex_1, %590
+        next_iteration  # -> $B44
       }
     }
-    %519:vec4<f32> = access %input_1, 0u
-    %520:vec2<f32> = swizzle %519, xy
-    %521:texture_2d<f32> = load %ssaoTexture
-    %522:vec2<u32> = textureDimensions %521
-    %523:vec2<u32> = swizzle %522, xy
-    %524:vec2<f32> = convert %523
-    %ssaoCoord:vec2<f32> = div %520, %524
-    %526:texture_2d<f32> = load %ssaoTexture
-    %527:sampler = load %defaultSampler
-    %528:vec4<f32> = textureSample %526, %527, %ssaoCoord
-    %ssaoFactor:f32 = access %528, 0u
-    %530:ptr<storage, vec3<f32>, read> = access %globalLights, 0u
-    %531:vec3<f32> = load %530
-    %532:vec3<f32> = access %surface_2, 1u
-    %533:vec3<f32> = mul %531, %532
-    %534:f32 = access %surface_2, 6u
-    %535:vec3<f32> = mul %533, %534
-    %ambient:vec3<f32> = mul %535, %ssaoFactor
-    %537:vec3<f32> = load %Lo
-    %538:vec3<f32> = add %537, %ambient
-    %539:vec3<f32> = access %surface_2, 7u
-    %540:vec3<f32> = add %538, %539
-    %color:vec3<f32> = call %linearTosRGB, %540
+    %591:vec4<f32> = access %input_1, 0u
+    %592:vec2<f32> = swizzle %591, xy
+    %593:texture_2d<f32> = load %ssaoTexture
+    %594:vec2<u32> = textureDimensions %593
+    %595:vec2<u32> = swizzle %594, xy
+    %596:vec2<f32> = convert %595
+    %597:vec2<f32> = div %592, %596
+    %ssaoCoord:vec2<f32> = let %597
+    %599:texture_2d<f32> = load %ssaoTexture
+    %600:sampler = load %defaultSampler
+    %601:vec4<f32> = textureSample %599, %600, %ssaoCoord
+    %602:f32 = access %601, 0u
+    %ssaoFactor:f32 = let %602
+    %604:ptr<storage, vec3<f32>, read> = access %globalLights, 0u
+    %605:vec3<f32> = load %604
+    %606:vec3<f32> = access %surface_2, 1u
+    %607:vec3<f32> = mul %605, %606
+    %608:f32 = access %surface_2, 6u
+    %609:vec3<f32> = mul %607, %608
+    %610:vec3<f32> = mul %609, %ssaoFactor
+    %ambient:vec3<f32> = let %610
+    %612:vec3<f32> = load %Lo
+    %613:vec3<f32> = add %612, %ambient
+    %614:vec3<f32> = access %surface_2, 7u
+    %615:vec3<f32> = add %613, %614
+    %616:vec3<f32> = call %linearTosRGB, %615
+    %color:vec3<f32> = let %616
     %out:ptr<function, FragmentOutput, read_write> = var
-    %543:ptr<function, vec4<f32>, read_write> = access %out, 0u
-    %544:f32 = access %surface_2, 0u, 3u
-    %545:vec4<f32> = construct %color, %544
-    store %543, %545
-    %546:ptr<function, vec4<f32>, read_write> = access %out, 1u
-    %547:vec3<f32> = access %surface_2, 7u
-    %548:f32 = access %surface_2, 0u, 3u
-    %549:vec4<f32> = construct %547, %548
-    store %546, %549
-    %550:FragmentOutput = load %out
-    ret %550
+    %619:ptr<function, vec4<f32>, read_write> = access %out, 0u
+    %620:f32 = access %surface_2, 0u, 3u
+    %621:vec4<f32> = construct %color, %620
+    store %619, %621
+    %622:ptr<function, vec4<f32>, read_write> = access %out, 1u
+    %623:vec3<f32> = access %surface_2, 7u
+    %624:f32 = access %surface_2, 0u, 3u
+    %625:vec4<f32> = construct %623, %624
+    store %622, %625
+    %626:FragmentOutput = load %out
+    ret %626
+  }
+}
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B48: {
+    %628:u32 = convert %value
+    %629:bool = gte %value, 0.0f
+    %630:u32 = select 0u, %628, %629
+    %631:bool = lte %value, 4294967040.0f
+    %632:u32 = select 4294967295u, %630, %631
+    ret %632
   }
 }
 
diff --git a/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.msl b/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.msl
index 0f66a0f..c421b97 100644
--- a/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/skinned-shadowed-pbr-vertex.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Camera = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Camera = struct @align(16) {
   projection:mat4x4<f32> @offset(0)
   inverseProjection:mat4x4<f32> @offset(64)
   view:mat4x4<f32> @offset(128)
@@ -42,14 +42,14 @@
   bitangent:vec3<f32> @offset(128), @location(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %camera:ptr<uniform, Camera, read> = var @binding_point(0, 0)
   %joint:ptr<storage, Joints, read> = var @binding_point(0, 1)
   %inverseBind:ptr<storage, Joints, read> = var @binding_point(0, 2)
 }
 
-%getInstanceMatrix = func(%input:VertexInput):mat4x4<f32> -> %b2 {
-  %b2 = block {
+%getInstanceMatrix = func(%input:VertexInput):mat4x4<f32> {
+  $B2: {
     %6:vec4<f32> = access %input, 6u
     %7:vec4<f32> = access %input, 7u
     %8:vec4<f32> = access %input, 8u
@@ -58,107 +58,114 @@
     ret %10
   }
 }
-%getSkinMatrix = func(%input_1:VertexInput):mat4x4<f32> -> %b3 {  # %input_1: 'input'
-  %b3 = block {
+%getSkinMatrix = func(%input_1:VertexInput):mat4x4<f32> {  # %input_1: 'input'
+  $B3: {
     %13:u32 = access %input_1, 4u, 0u
     %14:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %13
     %15:mat4x4<f32> = load %14
     %16:u32 = access %input_1, 4u, 0u
     %17:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %16
     %18:mat4x4<f32> = load %17
-    %joint0:mat4x4<f32> = mul %15, %18
-    %20:u32 = access %input_1, 4u, 1u
-    %21:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %20
-    %22:mat4x4<f32> = load %21
-    %23:u32 = access %input_1, 4u, 1u
-    %24:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %23
-    %25:mat4x4<f32> = load %24
-    %joint1:mat4x4<f32> = mul %22, %25
-    %27:u32 = access %input_1, 4u, 2u
-    %28:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %27
-    %29:mat4x4<f32> = load %28
-    %30:u32 = access %input_1, 4u, 2u
-    %31:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %30
-    %32:mat4x4<f32> = load %31
-    %joint2:mat4x4<f32> = mul %29, %32
-    %34:u32 = access %input_1, 4u, 3u
-    %35:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %34
-    %36:mat4x4<f32> = load %35
+    %19:mat4x4<f32> = mul %15, %18
+    %joint0:mat4x4<f32> = let %19
+    %21:u32 = access %input_1, 4u, 1u
+    %22:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %21
+    %23:mat4x4<f32> = load %22
+    %24:u32 = access %input_1, 4u, 1u
+    %25:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %24
+    %26:mat4x4<f32> = load %25
+    %27:mat4x4<f32> = mul %23, %26
+    %joint1:mat4x4<f32> = let %27
+    %29:u32 = access %input_1, 4u, 2u
+    %30:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %29
+    %31:mat4x4<f32> = load %30
+    %32:u32 = access %input_1, 4u, 2u
+    %33:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %32
+    %34:mat4x4<f32> = load %33
+    %35:mat4x4<f32> = mul %31, %34
+    %joint2:mat4x4<f32> = let %35
     %37:u32 = access %input_1, 4u, 3u
-    %38:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %37
+    %38:ptr<storage, mat4x4<f32>, read> = access %joint, 0u, %37
     %39:mat4x4<f32> = load %38
-    %joint3:mat4x4<f32> = mul %36, %39
-    %41:f32 = access %input_1, 5u, 0u
-    %42:mat4x4<f32> = mul %joint0, %41
-    %43:f32 = access %input_1, 5u, 1u
-    %44:mat4x4<f32> = mul %joint1, %43
-    %45:mat4x4<f32> = add %42, %44
-    %46:f32 = access %input_1, 5u, 2u
-    %47:mat4x4<f32> = mul %joint2, %46
-    %48:mat4x4<f32> = add %45, %47
-    %49:f32 = access %input_1, 5u, 3u
-    %50:mat4x4<f32> = mul %joint3, %49
-    %skinMatrix:mat4x4<f32> = add %48, %50
+    %40:u32 = access %input_1, 4u, 3u
+    %41:ptr<storage, mat4x4<f32>, read> = access %inverseBind, 0u, %40
+    %42:mat4x4<f32> = load %41
+    %43:mat4x4<f32> = mul %39, %42
+    %joint3:mat4x4<f32> = let %43
+    %45:f32 = access %input_1, 5u, 0u
+    %46:mat4x4<f32> = mul %joint0, %45
+    %47:f32 = access %input_1, 5u, 1u
+    %48:mat4x4<f32> = mul %joint1, %47
+    %49:mat4x4<f32> = add %46, %48
+    %50:f32 = access %input_1, 5u, 2u
+    %51:mat4x4<f32> = mul %joint2, %50
+    %52:mat4x4<f32> = add %49, %51
+    %53:f32 = access %input_1, 5u, 3u
+    %54:mat4x4<f32> = mul %joint3, %53
+    %55:mat4x4<f32> = add %52, %54
+    %skinMatrix:mat4x4<f32> = let %55
     ret %skinMatrix
   }
 }
-%vertexMain = @vertex func(%input_2:VertexInput):VertexOutput -> %b4 {  # %input_2: 'input'
-  %b4 = block {
+%vertexMain = @vertex func(%input_2:VertexInput):VertexOutput {  # %input_2: 'input'
+  $B4: {
     %output:ptr<function, VertexOutput, read_write> = var
-    %modelMatrix:mat4x4<f32> = call %getSkinMatrix, %input_2
-    %56:ptr<function, vec3<f32>, read_write> = access %output, 7u
-    %57:vec3<f32> = access %input_2, 1u
-    %58:vec4<f32> = construct %57, 0.0f
-    %59:vec4<f32> = mul %modelMatrix, %58
-    %60:vec3<f32> = swizzle %59, xyz
-    %61:vec3<f32> = normalize %60
-    store %56, %61
-    %62:ptr<function, vec3<f32>, read_write> = access %output, 8u
-    %63:vec4<f32> = access %input_2, 2u
-    %64:vec3<f32> = swizzle %63, xyz
-    %65:vec4<f32> = construct %64, 0.0f
-    %66:vec4<f32> = mul %modelMatrix, %65
-    %67:vec3<f32> = swizzle %66, xyz
-    %68:vec3<f32> = normalize %67
-    store %62, %68
-    %69:ptr<function, vec3<f32>, read_write> = access %output, 9u
-    %70:ptr<function, vec3<f32>, read_write> = access %output, 7u
-    %71:vec3<f32> = load %70
-    %72:ptr<function, vec3<f32>, read_write> = access %output, 8u
-    %73:vec3<f32> = load %72
-    %74:vec3<f32> = cross %71, %73
-    %75:f32 = access %input_2, 2u, 3u
-    %76:vec3<f32> = mul %74, %75
-    store %69, %76
-    %77:ptr<function, vec4<f32>, read_write> = access %output, 5u
-    store %77, vec4<f32>(1.0f)
-    %78:ptr<function, vec2<f32>, read_write> = access %output, 3u
-    %79:vec2<f32> = access %input_2, 3u
-    store %78, %79
-    %80:ptr<function, vec4<f32>, read_write> = access %output, 6u
-    %81:vec4<f32> = access %input_2, 10u
-    store %80, %81
-    %82:vec4<f32> = access %input_2, 0u
-    %modelPos:vec4<f32> = mul %modelMatrix, %82
-    %84:ptr<function, vec3<f32>, read_write> = access %output, 1u
-    %85:vec3<f32> = swizzle %modelPos, xyz
+    %60:mat4x4<f32> = call %getSkinMatrix, %input_2
+    %modelMatrix:mat4x4<f32> = let %60
+    %62:ptr<function, vec3<f32>, read_write> = access %output, 7u
+    %63:vec3<f32> = access %input_2, 1u
+    %64:vec4<f32> = construct %63, 0.0f
+    %65:vec4<f32> = mul %modelMatrix, %64
+    %66:vec3<f32> = swizzle %65, xyz
+    %67:vec3<f32> = normalize %66
+    store %62, %67
+    %68:ptr<function, vec3<f32>, read_write> = access %output, 8u
+    %69:vec4<f32> = access %input_2, 2u
+    %70:vec3<f32> = swizzle %69, xyz
+    %71:vec4<f32> = construct %70, 0.0f
+    %72:vec4<f32> = mul %modelMatrix, %71
+    %73:vec3<f32> = swizzle %72, xyz
+    %74:vec3<f32> = normalize %73
+    store %68, %74
+    %75:ptr<function, vec3<f32>, read_write> = access %output, 9u
+    %76:ptr<function, vec3<f32>, read_write> = access %output, 7u
+    %77:vec3<f32> = load %76
+    %78:ptr<function, vec3<f32>, read_write> = access %output, 8u
+    %79:vec3<f32> = load %78
+    %80:vec3<f32> = cross %77, %79
+    %81:f32 = access %input_2, 2u, 3u
+    %82:vec3<f32> = mul %80, %81
+    store %75, %82
+    %83:ptr<function, vec4<f32>, read_write> = access %output, 5u
+    store %83, vec4<f32>(1.0f)
+    %84:ptr<function, vec2<f32>, read_write> = access %output, 3u
+    %85:vec2<f32> = access %input_2, 3u
     store %84, %85
-    %86:ptr<function, vec3<f32>, read_write> = access %output, 2u
-    %87:ptr<uniform, vec3<f32>, read> = access %camera, 3u
-    %88:vec3<f32> = load %87
-    %89:vec3<f32> = swizzle %modelPos, xyz
-    %90:vec3<f32> = sub %88, %89
-    store %86, %90
-    %91:ptr<function, vec4<f32>, read_write> = access %output, 0u
-    %92:ptr<uniform, mat4x4<f32>, read> = access %camera, 0u
-    %93:mat4x4<f32> = load %92
-    %94:ptr<uniform, mat4x4<f32>, read> = access %camera, 2u
-    %95:mat4x4<f32> = load %94
-    %96:mat4x4<f32> = mul %93, %95
-    %97:vec4<f32> = mul %96, %modelPos
-    store %91, %97
-    %98:VertexOutput = load %output
-    ret %98
+    %86:ptr<function, vec4<f32>, read_write> = access %output, 6u
+    %87:vec4<f32> = access %input_2, 10u
+    store %86, %87
+    %88:vec4<f32> = access %input_2, 0u
+    %89:vec4<f32> = mul %modelMatrix, %88
+    %modelPos:vec4<f32> = let %89
+    %91:ptr<function, vec3<f32>, read_write> = access %output, 1u
+    %92:vec3<f32> = swizzle %modelPos, xyz
+    store %91, %92
+    %93:ptr<function, vec3<f32>, read_write> = access %output, 2u
+    %94:ptr<uniform, vec3<f32>, read> = access %camera, 3u
+    %95:vec3<f32> = load %94
+    %96:vec3<f32> = swizzle %modelPos, xyz
+    %97:vec3<f32> = sub %95, %96
+    store %93, %97
+    %98:ptr<function, vec4<f32>, read_write> = access %output, 0u
+    %99:ptr<uniform, mat4x4<f32>, read> = access %camera, 0u
+    %100:mat4x4<f32> = load %99
+    %101:ptr<uniform, mat4x4<f32>, read> = access %camera, 2u
+    %102:mat4x4<f32> = load %101
+    %103:mat4x4<f32> = mul %100, %102
+    %104:vec4<f32> = mul %103, %modelPos
+    store %98, %104
+    %105:VertexOutput = load %output
+    ret %105
   }
 }
 
diff --git a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.msl b/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.msl
index 567c382..a66251b 100644
--- a/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.msl
+++ b/test/tint/benchmark/uniformity-analysis-pointer-parameters.wgsl.expected.ir.msl
@@ -1,9 +1,1681 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void foo(thread int* const p0, thread int* const p1, thread int* const p2, thread int* const p3, thread int* const p4, thread int* const p5, thread int* const p6, thread int* const p7, thread int* const p8, thread int* const p9, thread int* const p10, thread int* const p11, thread int* const p12, thread int* const p13, thread int* const p14, thread int* const p15, thread int* const p16, thread int* const p17, thread int* const p18, thread int* const p19, thread int* const p20, thread int* const p21, thread int* const p22, thread int* const p23, thread int* const p24, thread int* const p25, thread int* const p26, thread int* const p27, thread int* const p28, thread int* const p29, thread int* const p30, thread int* const p31, thread int* const p32, thread int* const p33, thread int* const p34, thread int* const p35, thread int* const p36, thread int* const p37, thread int* const p38, thread int* const p39, thread int* const p40, thread int* const p41, thread int* const p42, thread int* const p43, thread int* const p44, thread int* const p45, thread int* const p46, thread int* const p47, thread int* const p48, thread int* const p49, thread int* const p50, thread int* const p51, thread int* const p52, thread int* const p53, thread int* const p54, thread int* const p55, thread int* const p56, thread int* const p57, thread int* const p58, thread int* const p59, thread int* const p60, thread int* const p61, thread int* const p62, thread int* const p63, thread int* const p64, thread int* const p65, thread int* const p66, thread int* const p67, thread int* const p68, thread int* const p69, thread int* const p70, thread int* const p71, thread int* const p72, thread int* const p73, thread int* const p74, thread int* const p75, thread int* const p76, thread int* const p77, thread int* const p78, thread int* const p79, thread int* const p80, thread int* const p81, thread int* const p82, thread int* const p83, thread int* const p84, thread int* const p85, thread int* const p86, thread int* const p87, thread int* const p88, thread int* const p89, thread int* const p90, thread int* const p91, thread int* const p92, thread int* const p93, thread int* const p94, thread int* const p95, thread int* const p96, thread int* const p97, thread int* const p98, thread int* const p99, thread int* const p100, thread int* const p101, thread int* const p102, thread int* const p103, thread int* const p104, thread int* const p105, thread int* const p106, thread int* const p107, thread int* const p108, thread int* const p109, thread int* const p110, thread int* const p111, thread int* const p112, thread int* const p113, thread int* const p114, thread int* const p115, thread int* const p116, thread int* const p117, thread int* const p118, thread int* const p119, thread int* const p120, thread int* const p121, thread int* const p122, thread int* const p123, thread int* const p124, thread int* const p125, thread int* const p126, thread int* const p127, thread int* const p128, thread int* const p129, thread int* const p130, thread int* const p131, thread int* const p132, thread int* const p133, thread int* const p134, thread int* const p135, thread int* const p136, thread int* const p137, thread int* const p138, thread int* const p139, thread int* const p140, thread int* const p141, thread int* const p142, thread int* const p143, thread int* const p144, thread int* const p145, thread int* const p146, thread int* const p147, thread int* const p148, thread int* const p149, thread int* const p150, thread int* const p151, thread int* const p152, thread int* const p153, thread int* const p154, thread int* const p155, thread int* const p156, thread int* const p157, thread int* const p158, thread int* const p159, thread int* const p160, thread int* const p161, thread int* const p162, thread int* const p163, thread int* const p164, thread int* const p165, thread int* const p166, thread int* const p167, thread int* const p168, thread int* const p169, thread int* const p170, thread int* const p171, thread int* const p172, thread int* const p173, thread int* const p174, thread int* const p175, thread int* const p176, thread int* const p177, thread int* const p178, thread int* const p179, thread int* const p180, thread int* const p181, thread int* const p182, thread int* const p183, thread int* const p184, thread int* const p185, thread int* const p186, thread int* const p187, thread int* const p188, thread int* const p189, thread int* const p190, thread int* const p191, thread int* const p192, thread int* const p193, thread int* const p194, thread int* const p195, thread int* const p196, thread int* const p197, thread int* const p198, thread int* const p199, thread int* const p200, thread int* const p201, thread int* const p202, thread int* const p203, thread int* const p204, thread int* const p205, thread int* const p206, thread int* const p207, thread int* const p208, thread int* const p209, thread int* const p210, thread int* const p211, thread int* const p212, thread int* const p213, thread int* const p214, thread int* const p215, thread int* const p216, thread int* const p217, thread int* const p218, thread int* const p219, thread int* const p220, thread int* const p221, thread int* const p222, thread int* const p223, thread int* const p224, thread int* const p225, thread int* const p226, thread int* const p227, thread int* const p228, thread int* const p229, thread int* const p230, thread int* const p231, thread int* const p232, thread int* const p233, thread int* const p234, thread int* const p235, thread int* const p236, thread int* const p237, thread int* const p238, thread int* const p239, thread int* const p240, thread int* const p241, thread int* const p242, thread int* const p243, thread int* const p244, thread int* const p245, thread int* const p246, thread int* const p247, thread int* const p248, thread int* const p249, thread int* const p250, thread int* const p251, thread int* const p252, thread int* const p253, thread int* const p254) {
+  int rhs = (((((((p0 + p1) + p2) + p3) + p4) + p5) + p6) + p7);
+  rhs = (rhs + (((((((p8 + p9) + p10) + p11) + p12) + p13) + p14) + p15));
+  rhs = (rhs + (((((((p16 + p17) + p18) + p19) + p20) + p21) + p22) + p23));
+  rhs = (rhs + (((((((p24 + p25) + p26) + p27) + p28) + p29) + p30) + p31));
+  rhs = (rhs + (((((((p32 + p33) + p34) + p35) + p36) + p37) + p38) + p39));
+  rhs = (rhs + (((((((p40 + p41) + p42) + p43) + p44) + p45) + p46) + p47));
+  rhs = (rhs + (((((((p48 + p49) + p50) + p51) + p52) + p53) + p54) + p55));
+  rhs = (rhs + (((((((p56 + p57) + p58) + p59) + p60) + p61) + p62) + p63));
+  rhs = (rhs + (((((((p64 + p65) + p66) + p67) + p68) + p69) + p70) + p71));
+  rhs = (rhs + (((((((p72 + p73) + p74) + p75) + p76) + p77) + p78) + p79));
+  rhs = (rhs + (((((((p80 + p81) + p82) + p83) + p84) + p85) + p86) + p87));
+  rhs = (rhs + (((((((p88 + p89) + p90) + p91) + p92) + p93) + p94) + p95));
+  rhs = (rhs + (((((((p96 + p97) + p98) + p99) + p100) + p101) + p102) + p103));
+  rhs = (rhs + (((((((p104 + p105) + p106) + p107) + p108) + p109) + p110) + p111));
+  rhs = (rhs + (((((((p112 + p113) + p114) + p115) + p116) + p117) + p118) + p119));
+  rhs = (rhs + (((((((p120 + p121) + p122) + p123) + p124) + p125) + p126) + p127));
+  rhs = (rhs + (((((((p128 + p129) + p130) + p131) + p132) + p133) + p134) + p135));
+  rhs = (rhs + (((((((p136 + p137) + p138) + p139) + p140) + p141) + p142) + p143));
+  rhs = (rhs + (((((((p144 + p145) + p146) + p147) + p148) + p149) + p150) + p151));
+  rhs = (rhs + (((((((p152 + p153) + p154) + p155) + p156) + p157) + p158) + p159));
+  rhs = (rhs + (((((((p160 + p161) + p162) + p163) + p164) + p165) + p166) + p167));
+  rhs = (rhs + (((((((p168 + p169) + p170) + p171) + p172) + p173) + p174) + p175));
+  rhs = (rhs + (((((((p176 + p177) + p178) + p179) + p180) + p181) + p182) + p183));
+  rhs = (rhs + (((((((p184 + p185) + p186) + p187) + p188) + p189) + p190) + p191));
+  rhs = (rhs + (((((((p192 + p193) + p194) + p195) + p196) + p197) + p198) + p199));
+  rhs = (rhs + (((((((p200 + p201) + p202) + p203) + p204) + p205) + p206) + p207));
+  rhs = (rhs + (((((((p208 + p209) + p210) + p211) + p212) + p213) + p214) + p215));
+  rhs = (rhs + (((((((p216 + p217) + p218) + p219) + p220) + p221) + p222) + p223));
+  rhs = (rhs + (((((((p224 + p225) + p226) + p227) + p228) + p229) + p230) + p231));
+  rhs = (rhs + (((((((p232 + p233) + p234) + p235) + p236) + p237) + p238) + p239));
+  rhs = (rhs + (((((((p240 + p241) + p242) + p243) + p244) + p245) + p246) + p247));
+  rhs = (rhs + ((((((p248 + p249) + p250) + p251) + p252) + p253) + p254));
+  p1 = rhs;
+  p2 = rhs;
+  p3 = rhs;
+  p4 = rhs;
+  p5 = rhs;
+  p6 = rhs;
+  p7 = rhs;
+  p8 = rhs;
+  p9 = rhs;
+  p10 = rhs;
+  p11 = rhs;
+  p12 = rhs;
+  p13 = rhs;
+  p14 = rhs;
+  p15 = rhs;
+  p16 = rhs;
+  p17 = rhs;
+  p18 = rhs;
+  p19 = rhs;
+  p20 = rhs;
+  p21 = rhs;
+  p22 = rhs;
+  p23 = rhs;
+  p24 = rhs;
+  p25 = rhs;
+  p26 = rhs;
+  p27 = rhs;
+  p28 = rhs;
+  p29 = rhs;
+  p30 = rhs;
+  p31 = rhs;
+  p32 = rhs;
+  p33 = rhs;
+  p34 = rhs;
+  p35 = rhs;
+  p36 = rhs;
+  p37 = rhs;
+  p38 = rhs;
+  p39 = rhs;
+  p40 = rhs;
+  p41 = rhs;
+  p42 = rhs;
+  p43 = rhs;
+  p44 = rhs;
+  p45 = rhs;
+  p46 = rhs;
+  p47 = rhs;
+  p48 = rhs;
+  p49 = rhs;
+  p50 = rhs;
+  p51 = rhs;
+  p52 = rhs;
+  p53 = rhs;
+  p54 = rhs;
+  p55 = rhs;
+  p56 = rhs;
+  p57 = rhs;
+  p58 = rhs;
+  p59 = rhs;
+  p60 = rhs;
+  p61 = rhs;
+  p62 = rhs;
+  p63 = rhs;
+  p64 = rhs;
+  p65 = rhs;
+  p66 = rhs;
+  p67 = rhs;
+  p68 = rhs;
+  p69 = rhs;
+  p70 = rhs;
+  p71 = rhs;
+  p72 = rhs;
+  p73 = rhs;
+  p74 = rhs;
+  p75 = rhs;
+  p76 = rhs;
+  p77 = rhs;
+  p78 = rhs;
+  p79 = rhs;
+  p80 = rhs;
+  p81 = rhs;
+  p82 = rhs;
+  p83 = rhs;
+  p84 = rhs;
+  p85 = rhs;
+  p86 = rhs;
+  p87 = rhs;
+  p88 = rhs;
+  p89 = rhs;
+  p90 = rhs;
+  p91 = rhs;
+  p92 = rhs;
+  p93 = rhs;
+  p94 = rhs;
+  p95 = rhs;
+  p96 = rhs;
+  p97 = rhs;
+  p98 = rhs;
+  p99 = rhs;
+  p100 = rhs;
+  p101 = rhs;
+  p102 = rhs;
+  p103 = rhs;
+  p104 = rhs;
+  p105 = rhs;
+  p106 = rhs;
+  p107 = rhs;
+  p108 = rhs;
+  p109 = rhs;
+  p110 = rhs;
+  p111 = rhs;
+  p112 = rhs;
+  p113 = rhs;
+  p114 = rhs;
+  p115 = rhs;
+  p116 = rhs;
+  p117 = rhs;
+  p118 = rhs;
+  p119 = rhs;
+  p120 = rhs;
+  p121 = rhs;
+  p122 = rhs;
+  p123 = rhs;
+  p124 = rhs;
+  p125 = rhs;
+  p126 = rhs;
+  p127 = rhs;
+  p128 = rhs;
+  p129 = rhs;
+  p130 = rhs;
+  p131 = rhs;
+  p132 = rhs;
+  p133 = rhs;
+  p134 = rhs;
+  p135 = rhs;
+  p136 = rhs;
+  p137 = rhs;
+  p138 = rhs;
+  p139 = rhs;
+  p140 = rhs;
+  p141 = rhs;
+  p142 = rhs;
+  p143 = rhs;
+  p144 = rhs;
+  p145 = rhs;
+  p146 = rhs;
+  p147 = rhs;
+  p148 = rhs;
+  p149 = rhs;
+  p150 = rhs;
+  p151 = rhs;
+  p152 = rhs;
+  p153 = rhs;
+  p154 = rhs;
+  p155 = rhs;
+  p156 = rhs;
+  p157 = rhs;
+  p158 = rhs;
+  p159 = rhs;
+  p160 = rhs;
+  p161 = rhs;
+  p162 = rhs;
+  p163 = rhs;
+  p164 = rhs;
+  p165 = rhs;
+  p166 = rhs;
+  p167 = rhs;
+  p168 = rhs;
+  p169 = rhs;
+  p170 = rhs;
+  p171 = rhs;
+  p172 = rhs;
+  p173 = rhs;
+  p174 = rhs;
+  p175 = rhs;
+  p176 = rhs;
+  p177 = rhs;
+  p178 = rhs;
+  p179 = rhs;
+  p180 = rhs;
+  p181 = rhs;
+  p182 = rhs;
+  p183 = rhs;
+  p184 = rhs;
+  p185 = rhs;
+  p186 = rhs;
+  p187 = rhs;
+  p188 = rhs;
+  p189 = rhs;
+  p190 = rhs;
+  p191 = rhs;
+  p192 = rhs;
+  p193 = rhs;
+  p194 = rhs;
+  p195 = rhs;
+  p196 = rhs;
+  p197 = rhs;
+  p198 = rhs;
+  p199 = rhs;
+  p200 = rhs;
+  p201 = rhs;
+  p202 = rhs;
+  p203 = rhs;
+  p204 = rhs;
+  p205 = rhs;
+  p206 = rhs;
+  p207 = rhs;
+  p208 = rhs;
+  p209 = rhs;
+  p210 = rhs;
+  p211 = rhs;
+  p212 = rhs;
+  p213 = rhs;
+  p214 = rhs;
+  p215 = rhs;
+  p216 = rhs;
+  p217 = rhs;
+  p218 = rhs;
+  p219 = rhs;
+  p220 = rhs;
+  p221 = rhs;
+  p222 = rhs;
+  p223 = rhs;
+  p224 = rhs;
+  p225 = rhs;
+  p226 = rhs;
+  p227 = rhs;
+  p228 = rhs;
+  p229 = rhs;
+  p230 = rhs;
+  p231 = rhs;
+  p232 = rhs;
+  p233 = rhs;
+  p234 = rhs;
+  p235 = rhs;
+  p236 = rhs;
+  p237 = rhs;
+  p238 = rhs;
+  p239 = rhs;
+  p240 = rhs;
+  p241 = rhs;
+  p242 = rhs;
+  p243 = rhs;
+  p244 = rhs;
+  p245 = rhs;
+  p246 = rhs;
+  p247 = rhs;
+  p248 = rhs;
+  p249 = rhs;
+  p250 = rhs;
+  p251 = rhs;
+  p252 = rhs;
+  p253 = rhs;
+  p254 = rhs;
+}
+void tint_symbol() {
+  int v0 = 0;
+  int v1 = 0;
+  int v2 = 0;
+  int v3 = 0;
+  int v4 = 0;
+  int v5 = 0;
+  int v6 = 0;
+  int v7 = 0;
+  int v8 = 0;
+  int v9 = 0;
+  int v10 = 0;
+  int v11 = 0;
+  int v12 = 0;
+  int v13 = 0;
+  int v14 = 0;
+  int v15 = 0;
+  int v16 = 0;
+  int v17 = 0;
+  int v18 = 0;
+  int v19 = 0;
+  int v20 = 0;
+  int v21 = 0;
+  int v22 = 0;
+  int v23 = 0;
+  int v24 = 0;
+  int v25 = 0;
+  int v26 = 0;
+  int v27 = 0;
+  int v28 = 0;
+  int v29 = 0;
+  int v30 = 0;
+  int v31 = 0;
+  int v32 = 0;
+  int v33 = 0;
+  int v34 = 0;
+  int v35 = 0;
+  int v36 = 0;
+  int v37 = 0;
+  int v38 = 0;
+  int v39 = 0;
+  int v40 = 0;
+  int v41 = 0;
+  int v42 = 0;
+  int v43 = 0;
+  int v44 = 0;
+  int v45 = 0;
+  int v46 = 0;
+  int v47 = 0;
+  int v48 = 0;
+  int v49 = 0;
+  int v50 = 0;
+  int v51 = 0;
+  int v52 = 0;
+  int v53 = 0;
+  int v54 = 0;
+  int v55 = 0;
+  int v56 = 0;
+  int v57 = 0;
+  int v58 = 0;
+  int v59 = 0;
+  int v60 = 0;
+  int v61 = 0;
+  int v62 = 0;
+  int v63 = 0;
+  int v64 = 0;
+  int v65 = 0;
+  int v66 = 0;
+  int v67 = 0;
+  int v68 = 0;
+  int v69 = 0;
+  int v70 = 0;
+  int v71 = 0;
+  int v72 = 0;
+  int v73 = 0;
+  int v74 = 0;
+  int v75 = 0;
+  int v76 = 0;
+  int v77 = 0;
+  int v78 = 0;
+  int v79 = 0;
+  int v80 = 0;
+  int v81 = 0;
+  int v82 = 0;
+  int v83 = 0;
+  int v84 = 0;
+  int v85 = 0;
+  int v86 = 0;
+  int v87 = 0;
+  int v88 = 0;
+  int v89 = 0;
+  int v90 = 0;
+  int v91 = 0;
+  int v92 = 0;
+  int v93 = 0;
+  int v94 = 0;
+  int v95 = 0;
+  int v96 = 0;
+  int v97 = 0;
+  int v98 = 0;
+  int v99 = 0;
+  int v100 = 0;
+  int v101 = 0;
+  int v102 = 0;
+  int v103 = 0;
+  int v104 = 0;
+  int v105 = 0;
+  int v106 = 0;
+  int v107 = 0;
+  int v108 = 0;
+  int v109 = 0;
+  int v110 = 0;
+  int v111 = 0;
+  int v112 = 0;
+  int v113 = 0;
+  int v114 = 0;
+  int v115 = 0;
+  int v116 = 0;
+  int v117 = 0;
+  int v118 = 0;
+  int v119 = 0;
+  int v120 = 0;
+  int v121 = 0;
+  int v122 = 0;
+  int v123 = 0;
+  int v124 = 0;
+  int v125 = 0;
+  int v126 = 0;
+  int v127 = 0;
+  int v128 = 0;
+  int v129 = 0;
+  int v130 = 0;
+  int v131 = 0;
+  int v132 = 0;
+  int v133 = 0;
+  int v134 = 0;
+  int v135 = 0;
+  int v136 = 0;
+  int v137 = 0;
+  int v138 = 0;
+  int v139 = 0;
+  int v140 = 0;
+  int v141 = 0;
+  int v142 = 0;
+  int v143 = 0;
+  int v144 = 0;
+  int v145 = 0;
+  int v146 = 0;
+  int v147 = 0;
+  int v148 = 0;
+  int v149 = 0;
+  int v150 = 0;
+  int v151 = 0;
+  int v152 = 0;
+  int v153 = 0;
+  int v154 = 0;
+  int v155 = 0;
+  int v156 = 0;
+  int v157 = 0;
+  int v158 = 0;
+  int v159 = 0;
+  int v160 = 0;
+  int v161 = 0;
+  int v162 = 0;
+  int v163 = 0;
+  int v164 = 0;
+  int v165 = 0;
+  int v166 = 0;
+  int v167 = 0;
+  int v168 = 0;
+  int v169 = 0;
+  int v170 = 0;
+  int v171 = 0;
+  int v172 = 0;
+  int v173 = 0;
+  int v174 = 0;
+  int v175 = 0;
+  int v176 = 0;
+  int v177 = 0;
+  int v178 = 0;
+  int v179 = 0;
+  int v180 = 0;
+  int v181 = 0;
+  int v182 = 0;
+  int v183 = 0;
+  int v184 = 0;
+  int v185 = 0;
+  int v186 = 0;
+  int v187 = 0;
+  int v188 = 0;
+  int v189 = 0;
+  int v190 = 0;
+  int v191 = 0;
+  int v192 = 0;
+  int v193 = 0;
+  int v194 = 0;
+  int v195 = 0;
+  int v196 = 0;
+  int v197 = 0;
+  int v198 = 0;
+  int v199 = 0;
+  int v200 = 0;
+  int v201 = 0;
+  int v202 = 0;
+  int v203 = 0;
+  int v204 = 0;
+  int v205 = 0;
+  int v206 = 0;
+  int v207 = 0;
+  int v208 = 0;
+  int v209 = 0;
+  int v210 = 0;
+  int v211 = 0;
+  int v212 = 0;
+  int v213 = 0;
+  int v214 = 0;
+  int v215 = 0;
+  int v216 = 0;
+  int v217 = 0;
+  int v218 = 0;
+  int v219 = 0;
+  int v220 = 0;
+  int v221 = 0;
+  int v222 = 0;
+  int v223 = 0;
+  int v224 = 0;
+  int v225 = 0;
+  int v226 = 0;
+  int v227 = 0;
+  int v228 = 0;
+  int v229 = 0;
+  int v230 = 0;
+  int v231 = 0;
+  int v232 = 0;
+  int v233 = 0;
+  int v234 = 0;
+  int v235 = 0;
+  int v236 = 0;
+  int v237 = 0;
+  int v238 = 0;
+  int v239 = 0;
+  int v240 = 0;
+  int v241 = 0;
+  int v242 = 0;
+  int v243 = 0;
+  int v244 = 0;
+  int v245 = 0;
+  int v246 = 0;
+  int v247 = 0;
+  int v248 = 0;
+  int v249 = 0;
+  int v250 = 0;
+  int v251 = 0;
+  int v252 = 0;
+  int v253 = 0;
+  int v254 = 0;
+  foo(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108, v109, v110, v111, v112, v113, v114, v115, v116, v117, v118, v119, v120, v121, v122, v123, v124, v125, v126, v127, v128, v129, v130, v131, v132, v133, v134, v135, v136, v137, v138, v139, v140, v141, v142, v143, v144, v145, v146, v147, v148, v149, v150, v151, v152, v153, v154, v155, v156, v157, v158, v159, v160, v161, v162, v163, v164, v165, v166, v167, v168, v169, v170, v171, v172, v173, v174, v175, v176, v177, v178, v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v190, v191, v192, v193, v194, v195, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, v207, v208, v209, v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, v220, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, v235, v236, v237, v238, v239, v240, v241, v242, v243, v244, v245, v246, v247, v248, v249, v250, v251, v252, v253, v254);
+  if ((v254 == 0)) {
+    threadgroup_barrier(mem_flags::mem_threadgroup);
+  }
+}
+program_source:5:23: error: invalid operands to binary expression ('int *const' and 'int *const')
+  int rhs = (((((((p0 + p1) + p2) + p3) + p4) + p5) + p6) + p7);
+                   ~~ ^ ~~
+program_source:6:26: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p8 + p9) + p10) + p11) + p12) + p13) + p14) + p15));
+                      ~~ ^ ~~
+program_source:7:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p16 + p17) + p18) + p19) + p20) + p21) + p22) + p23));
+                      ~~~ ^ ~~~
+program_source:8:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p24 + p25) + p26) + p27) + p28) + p29) + p30) + p31));
+                      ~~~ ^ ~~~
+program_source:9:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p32 + p33) + p34) + p35) + p36) + p37) + p38) + p39));
+                      ~~~ ^ ~~~
+program_source:10:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p40 + p41) + p42) + p43) + p44) + p45) + p46) + p47));
+                      ~~~ ^ ~~~
+program_source:11:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p48 + p49) + p50) + p51) + p52) + p53) + p54) + p55));
+                      ~~~ ^ ~~~
+program_source:12:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p56 + p57) + p58) + p59) + p60) + p61) + p62) + p63));
+                      ~~~ ^ ~~~
+program_source:13:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p64 + p65) + p66) + p67) + p68) + p69) + p70) + p71));
+                      ~~~ ^ ~~~
+program_source:14:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p72 + p73) + p74) + p75) + p76) + p77) + p78) + p79));
+                      ~~~ ^ ~~~
+program_source:15:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p80 + p81) + p82) + p83) + p84) + p85) + p86) + p87));
+                      ~~~ ^ ~~~
+program_source:16:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p88 + p89) + p90) + p91) + p92) + p93) + p94) + p95));
+                      ~~~ ^ ~~~
+program_source:17:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p96 + p97) + p98) + p99) + p100) + p101) + p102) + p103));
+                      ~~~ ^ ~~~
+program_source:18:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p104 + p105) + p106) + p107) + p108) + p109) + p110) + p111));
+                      ~~~~ ^ ~~~~
+program_source:19:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p112 + p113) + p114) + p115) + p116) + p117) + p118) + p119));
+                      ~~~~ ^ ~~~~
+program_source:20:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p120 + p121) + p122) + p123) + p124) + p125) + p126) + p127));
+                      ~~~~ ^ ~~~~
+program_source:21:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p128 + p129) + p130) + p131) + p132) + p133) + p134) + p135));
+                      ~~~~ ^ ~~~~
+program_source:22:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p136 + p137) + p138) + p139) + p140) + p141) + p142) + p143));
+                      ~~~~ ^ ~~~~
+program_source:23:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p144 + p145) + p146) + p147) + p148) + p149) + p150) + p151));
+                      ~~~~ ^ ~~~~
+program_source:24:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p152 + p153) + p154) + p155) + p156) + p157) + p158) + p159));
+                      ~~~~ ^ ~~~~
+program_source:25:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p160 + p161) + p162) + p163) + p164) + p165) + p166) + p167));
+                      ~~~~ ^ ~~~~
+program_source:26:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p168 + p169) + p170) + p171) + p172) + p173) + p174) + p175));
+                      ~~~~ ^ ~~~~
+program_source:27:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p176 + p177) + p178) + p179) + p180) + p181) + p182) + p183));
+                      ~~~~ ^ ~~~~
+program_source:28:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p184 + p185) + p186) + p187) + p188) + p189) + p190) + p191));
+                      ~~~~ ^ ~~~~
+program_source:29:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p192 + p193) + p194) + p195) + p196) + p197) + p198) + p199));
+                      ~~~~ ^ ~~~~
+program_source:30:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p200 + p201) + p202) + p203) + p204) + p205) + p206) + p207));
+                      ~~~~ ^ ~~~~
+program_source:31:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p208 + p209) + p210) + p211) + p212) + p213) + p214) + p215));
+                      ~~~~ ^ ~~~~
+program_source:32:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p216 + p217) + p218) + p219) + p220) + p221) + p222) + p223));
+                      ~~~~ ^ ~~~~
+program_source:33:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p224 + p225) + p226) + p227) + p228) + p229) + p230) + p231));
+                      ~~~~ ^ ~~~~
+program_source:34:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p232 + p233) + p234) + p235) + p236) + p237) + p238) + p239));
+                      ~~~~ ^ ~~~~
+program_source:35:28: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + (((((((p240 + p241) + p242) + p243) + p244) + p245) + p246) + p247));
+                      ~~~~ ^ ~~~~
+program_source:36:27: error: invalid operands to binary expression ('int *const' and 'int *const')
+  rhs = (rhs + ((((((p248 + p249) + p250) + p251) + p252) + p253) + p254));
+                     ~~~~ ^ ~~~~
+program_source:37:6: error: cannot assign to variable 'p1' with const-qualified type 'int *const'
+  p1 = rhs;
+  ~~ ^
+program_source:4:50: note: variable 'p1' declared const here
+program_source:38:6: error: cannot assign to variable 'p2' with const-qualified type 'int *const'
+  p2 = rhs;
+  ~~ ^
+program_source:4:72: note: variable 'p2' declared const here
+program_source:39:6: error: cannot assign to variable 'p3' with const-qualified type 'int *const'
+  p3 = rhs;
+  ~~ ^
+program_source:4:94: note: variable 'p3' declared const here
+program_source:40:6: error: cannot assign to variable 'p4' with const-qualified type 'int *const'
+  p4 = rhs;
+  ~~ ^
+program_source:4:116: note: variable 'p4' declared const here
+program_source:41:6: error: cannot assign to variable 'p5' with const-qualified type 'int *const'
+  p5 = rhs;
+  ~~ ^
+program_source:4:138: note: variable 'p5' declared const here
+program_source:42:6: error: cannot assign to variable 'p6' with const-qualified type 'int *const'
+  p6 = rhs;
+  ~~ ^
+program_source:4:160: note: variable 'p6' declared const here
+program_source:43:6: error: cannot assign to variable 'p7' with const-qualified type 'int *const'
+  p7 = rhs;
+  ~~ ^
+program_source:4:182: note: variable 'p7' declared const here
+program_source:44:6: error: cannot assign to variable 'p8' with const-qualified type 'int *const'
+  p8 = rhs;
+  ~~ ^
+program_source:4:204: note: variable 'p8' declared const here
+program_source:45:6: error: cannot assign to variable 'p9' with const-qualified type 'int *const'
+  p9 = rhs;
+  ~~ ^
+program_source:4:226: note: variable 'p9' declared const here
+program_source:46:7: error: cannot assign to variable 'p10' with const-qualified type 'int *const'
+  p10 = rhs;
+  ~~~ ^
+program_source:4:248: note: variable 'p10' declared const here
+program_source:47:7: error: cannot assign to variable 'p11' with const-qualified type 'int *const'
+  p11 = rhs;
+  ~~~ ^
+program_source:4:271: note: variable 'p11' declared const here
+program_source:48:7: error: cannot assign to variable 'p12' with const-qualified type 'int *const'
+  p12 = rhs;
+  ~~~ ^
+program_source:4:294: note: variable 'p12' declared const here
+program_source:49:7: error: cannot assign to variable 'p13' with const-qualified type 'int *const'
+  p13 = rhs;
+  ~~~ ^
+program_source:4:317: note: variable 'p13' declared const here
+program_source:50:7: error: cannot assign to variable 'p14' with const-qualified type 'int *const'
+  p14 = rhs;
+  ~~~ ^
+program_source:4:340: note: variable 'p14' declared const here
+program_source:51:7: error: cannot assign to variable 'p15' with const-qualified type 'int *const'
+  p15 = rhs;
+  ~~~ ^
+program_source:4:363: note: variable 'p15' declared const here
+program_source:52:7: error: cannot assign to variable 'p16' with const-qualified type 'int *const'
+  p16 = rhs;
+  ~~~ ^
+program_source:4:386: note: variable 'p16' declared const here
+program_source:53:7: error: cannot assign to variable 'p17' with const-qualified type 'int *const'
+  p17 = rhs;
+  ~~~ ^
+program_source:4:409: note: variable 'p17' declared const here
+program_source:54:7: error: cannot assign to variable 'p18' with const-qualified type 'int *const'
+  p18 = rhs;
+  ~~~ ^
+program_source:4:432: note: variable 'p18' declared const here
+program_source:55:7: error: cannot assign to variable 'p19' with const-qualified type 'int *const'
+  p19 = rhs;
+  ~~~ ^
+program_source:4:455: note: variable 'p19' declared const here
+program_source:56:7: error: cannot assign to variable 'p20' with const-qualified type 'int *const'
+  p20 = rhs;
+  ~~~ ^
+program_source:4:478: note: variable 'p20' declared const here
+program_source:57:7: error: cannot assign to variable 'p21' with const-qualified type 'int *const'
+  p21 = rhs;
+  ~~~ ^
+program_source:4:501: note: variable 'p21' declared const here
+program_source:58:7: error: cannot assign to variable 'p22' with const-qualified type 'int *const'
+  p22 = rhs;
+  ~~~ ^
+program_source:4:524: note: variable 'p22' declared const here
+program_source:59:7: error: cannot assign to variable 'p23' with const-qualified type 'int *const'
+  p23 = rhs;
+  ~~~ ^
+program_source:4:547: note: variable 'p23' declared const here
+program_source:60:7: error: cannot assign to variable 'p24' with const-qualified type 'int *const'
+  p24 = rhs;
+  ~~~ ^
+program_source:4:570: note: variable 'p24' declared const here
+program_source:61:7: error: cannot assign to variable 'p25' with const-qualified type 'int *const'
+  p25 = rhs;
+  ~~~ ^
+program_source:4:593: note: variable 'p25' declared const here
+program_source:62:7: error: cannot assign to variable 'p26' with const-qualified type 'int *const'
+  p26 = rhs;
+  ~~~ ^
+program_source:4:616: note: variable 'p26' declared const here
+program_source:63:7: error: cannot assign to variable 'p27' with const-qualified type 'int *const'
+  p27 = rhs;
+  ~~~ ^
+program_source:4:639: note: variable 'p27' declared const here
+program_source:64:7: error: cannot assign to variable 'p28' with const-qualified type 'int *const'
+  p28 = rhs;
+  ~~~ ^
+program_source:4:662: note: variable 'p28' declared const here
+program_source:65:7: error: cannot assign to variable 'p29' with const-qualified type 'int *const'
+  p29 = rhs;
+  ~~~ ^
+program_source:4:685: note: variable 'p29' declared const here
+program_source:66:7: error: cannot assign to variable 'p30' with const-qualified type 'int *const'
+  p30 = rhs;
+  ~~~ ^
+program_source:4:708: note: variable 'p30' declared const here
+program_source:67:7: error: cannot assign to variable 'p31' with const-qualified type 'int *const'
+  p31 = rhs;
+  ~~~ ^
+program_source:4:731: note: variable 'p31' declared const here
+program_source:68:7: error: cannot assign to variable 'p32' with const-qualified type 'int *const'
+  p32 = rhs;
+  ~~~ ^
+program_source:4:754: note: variable 'p32' declared const here
+program_source:69:7: error: cannot assign to variable 'p33' with const-qualified type 'int *const'
+  p33 = rhs;
+  ~~~ ^
+program_source:4:777: note: variable 'p33' declared const here
+program_source:70:7: error: cannot assign to variable 'p34' with const-qualified type 'int *const'
+  p34 = rhs;
+  ~~~ ^
+program_source:4:800: note: variable 'p34' declared const here
+program_source:71:7: error: cannot assign to variable 'p35' with const-qualified type 'int *const'
+  p35 = rhs;
+  ~~~ ^
+program_source:4:823: note: variable 'p35' declared const here
+program_source:72:7: error: cannot assign to variable 'p36' with const-qualified type 'int *const'
+  p36 = rhs;
+  ~~~ ^
+program_source:4:846: note: variable 'p36' declared const here
+program_source:73:7: error: cannot assign to variable 'p37' with const-qualified type 'int *const'
+  p37 = rhs;
+  ~~~ ^
+program_source:4:869: note: variable 'p37' declared const here
+program_source:74:7: error: cannot assign to variable 'p38' with const-qualified type 'int *const'
+  p38 = rhs;
+  ~~~ ^
+program_source:4:892: note: variable 'p38' declared const here
+program_source:75:7: error: cannot assign to variable 'p39' with const-qualified type 'int *const'
+  p39 = rhs;
+  ~~~ ^
+program_source:4:915: note: variable 'p39' declared const here
+program_source:76:7: error: cannot assign to variable 'p40' with const-qualified type 'int *const'
+  p40 = rhs;
+  ~~~ ^
+program_source:4:938: note: variable 'p40' declared const here
+program_source:77:7: error: cannot assign to variable 'p41' with const-qualified type 'int *const'
+  p41 = rhs;
+  ~~~ ^
+program_source:4:961: note: variable 'p41' declared const here
+program_source:78:7: error: cannot assign to variable 'p42' with const-qualified type 'int *const'
+  p42 = rhs;
+  ~~~ ^
+program_source:4:984: note: variable 'p42' declared const here
+program_source:79:7: error: cannot assign to variable 'p43' with const-qualified type 'int *const'
+  p43 = rhs;
+  ~~~ ^
+program_source:4:1007: note: variable 'p43' declared const here
+program_source:80:7: error: cannot assign to variable 'p44' with const-qualified type 'int *const'
+  p44 = rhs;
+  ~~~ ^
+program_source:4:1030: note: variable 'p44' declared const here
+program_source:81:7: error: cannot assign to variable 'p45' with const-qualified type 'int *const'
+  p45 = rhs;
+  ~~~ ^
+program_source:4:1053: note: variable 'p45' declared const here
+program_source:82:7: error: cannot assign to variable 'p46' with const-qualified type 'int *const'
+  p46 = rhs;
+  ~~~ ^
+program_source:4:1076: note: variable 'p46' declared const here
+program_source:83:7: error: cannot assign to variable 'p47' with const-qualified type 'int *const'
+  p47 = rhs;
+  ~~~ ^
+program_source:4:1099: note: variable 'p47' declared const here
+program_source:84:7: error: cannot assign to variable 'p48' with const-qualified type 'int *const'
+  p48 = rhs;
+  ~~~ ^
+program_source:4:1122: note: variable 'p48' declared const here
+program_source:85:7: error: cannot assign to variable 'p49' with const-qualified type 'int *const'
+  p49 = rhs;
+  ~~~ ^
+program_source:4:1145: note: variable 'p49' declared const here
+program_source:86:7: error: cannot assign to variable 'p50' with const-qualified type 'int *const'
+  p50 = rhs;
+  ~~~ ^
+program_source:4:1168: note: variable 'p50' declared const here
+program_source:87:7: error: cannot assign to variable 'p51' with const-qualified type 'int *const'
+  p51 = rhs;
+  ~~~ ^
+program_source:4:1191: note: variable 'p51' declared const here
+program_source:88:7: error: cannot assign to variable 'p52' with const-qualified type 'int *const'
+  p52 = rhs;
+  ~~~ ^
+program_source:4:1214: note: variable 'p52' declared const here
+program_source:89:7: error: cannot assign to variable 'p53' with const-qualified type 'int *const'
+  p53 = rhs;
+  ~~~ ^
+program_source:4:1237: note: variable 'p53' declared const here
+program_source:90:7: error: cannot assign to variable 'p54' with const-qualified type 'int *const'
+  p54 = rhs;
+  ~~~ ^
+program_source:4:1260: note: variable 'p54' declared const here
+program_source:91:7: error: cannot assign to variable 'p55' with const-qualified type 'int *const'
+  p55 = rhs;
+  ~~~ ^
+program_source:4:1283: note: variable 'p55' declared const here
+program_source:92:7: error: cannot assign to variable 'p56' with const-qualified type 'int *const'
+  p56 = rhs;
+  ~~~ ^
+program_source:4:1306: note: variable 'p56' declared const here
+program_source:93:7: error: cannot assign to variable 'p57' with const-qualified type 'int *const'
+  p57 = rhs;
+  ~~~ ^
+program_source:4:1329: note: variable 'p57' declared const here
+program_source:94:7: error: cannot assign to variable 'p58' with const-qualified type 'int *const'
+  p58 = rhs;
+  ~~~ ^
+program_source:4:1352: note: variable 'p58' declared const here
+program_source:95:7: error: cannot assign to variable 'p59' with const-qualified type 'int *const'
+  p59 = rhs;
+  ~~~ ^
+program_source:4:1375: note: variable 'p59' declared const here
+program_source:96:7: error: cannot assign to variable 'p60' with const-qualified type 'int *const'
+  p60 = rhs;
+  ~~~ ^
+program_source:4:1398: note: variable 'p60' declared const here
+program_source:97:7: error: cannot assign to variable 'p61' with const-qualified type 'int *const'
+  p61 = rhs;
+  ~~~ ^
+program_source:4:1421: note: variable 'p61' declared const here
+program_source:98:7: error: cannot assign to variable 'p62' with const-qualified type 'int *const'
+  p62 = rhs;
+  ~~~ ^
+program_source:4:1444: note: variable 'p62' declared const here
+program_source:99:7: error: cannot assign to variable 'p63' with const-qualified type 'int *const'
+  p63 = rhs;
+  ~~~ ^
+program_source:4:1467: note: variable 'p63' declared const here
+program_source:100:7: error: cannot assign to variable 'p64' with const-qualified type 'int *const'
+  p64 = rhs;
+  ~~~ ^
+program_source:4:1490: note: variable 'p64' declared const here
+program_source:101:7: error: cannot assign to variable 'p65' with const-qualified type 'int *const'
+  p65 = rhs;
+  ~~~ ^
+program_source:4:1513: note: variable 'p65' declared const here
+program_source:102:7: error: cannot assign to variable 'p66' with const-qualified type 'int *const'
+  p66 = rhs;
+  ~~~ ^
+program_source:4:1536: note: variable 'p66' declared const here
+program_source:103:7: error: cannot assign to variable 'p67' with const-qualified type 'int *const'
+  p67 = rhs;
+  ~~~ ^
+program_source:4:1559: note: variable 'p67' declared const here
+program_source:104:7: error: cannot assign to variable 'p68' with const-qualified type 'int *const'
+  p68 = rhs;
+  ~~~ ^
+program_source:4:1582: note: variable 'p68' declared const here
+program_source:105:7: error: cannot assign to variable 'p69' with const-qualified type 'int *const'
+  p69 = rhs;
+  ~~~ ^
+program_source:4:1605: note: variable 'p69' declared const here
+program_source:106:7: error: cannot assign to variable 'p70' with const-qualified type 'int *const'
+  p70 = rhs;
+  ~~~ ^
+program_source:4:1628: note: variable 'p70' declared const here
+program_source:107:7: error: cannot assign to variable 'p71' with const-qualified type 'int *const'
+  p71 = rhs;
+  ~~~ ^
+program_source:4:1651: note: variable 'p71' declared const here
+program_source:108:7: error: cannot assign to variable 'p72' with const-qualified type 'int *const'
+  p72 = rhs;
+  ~~~ ^
+program_source:4:1674: note: variable 'p72' declared const here
+program_source:109:7: error: cannot assign to variable 'p73' with const-qualified type 'int *const'
+  p73 = rhs;
+  ~~~ ^
+program_source:4:1697: note: variable 'p73' declared const here
+program_source:110:7: error: cannot assign to variable 'p74' with const-qualified type 'int *const'
+  p74 = rhs;
+  ~~~ ^
+program_source:4:1720: note: variable 'p74' declared const here
+program_source:111:7: error: cannot assign to variable 'p75' with const-qualified type 'int *const'
+  p75 = rhs;
+  ~~~ ^
+program_source:4:1743: note: variable 'p75' declared const here
+program_source:112:7: error: cannot assign to variable 'p76' with const-qualified type 'int *const'
+  p76 = rhs;
+  ~~~ ^
+program_source:4:1766: note: variable 'p76' declared const here
+program_source:113:7: error: cannot assign to variable 'p77' with const-qualified type 'int *const'
+  p77 = rhs;
+  ~~~ ^
+program_source:4:1789: note: variable 'p77' declared const here
+program_source:114:7: error: cannot assign to variable 'p78' with const-qualified type 'int *const'
+  p78 = rhs;
+  ~~~ ^
+program_source:4:1812: note: variable 'p78' declared const here
+program_source:115:7: error: cannot assign to variable 'p79' with const-qualified type 'int *const'
+  p79 = rhs;
+  ~~~ ^
+program_source:4:1835: note: variable 'p79' declared const here
+program_source:116:7: error: cannot assign to variable 'p80' with const-qualified type 'int *const'
+  p80 = rhs;
+  ~~~ ^
+program_source:4:1858: note: variable 'p80' declared const here
+program_source:117:7: error: cannot assign to variable 'p81' with const-qualified type 'int *const'
+  p81 = rhs;
+  ~~~ ^
+program_source:4:1881: note: variable 'p81' declared const here
+program_source:118:7: error: cannot assign to variable 'p82' with const-qualified type 'int *const'
+  p82 = rhs;
+  ~~~ ^
+program_source:4:1904: note: variable 'p82' declared const here
+program_source:119:7: error: cannot assign to variable 'p83' with const-qualified type 'int *const'
+  p83 = rhs;
+  ~~~ ^
+program_source:4:1927: note: variable 'p83' declared const here
+program_source:120:7: error: cannot assign to variable 'p84' with const-qualified type 'int *const'
+  p84 = rhs;
+  ~~~ ^
+program_source:4:1950: note: variable 'p84' declared const here
+program_source:121:7: error: cannot assign to variable 'p85' with const-qualified type 'int *const'
+  p85 = rhs;
+  ~~~ ^
+program_source:4:1973: note: variable 'p85' declared const here
+program_source:122:7: error: cannot assign to variable 'p86' with const-qualified type 'int *const'
+  p86 = rhs;
+  ~~~ ^
+program_source:4:1996: note: variable 'p86' declared const here
+program_source:123:7: error: cannot assign to variable 'p87' with const-qualified type 'int *const'
+  p87 = rhs;
+  ~~~ ^
+program_source:4:2019: note: variable 'p87' declared const here
+program_source:124:7: error: cannot assign to variable 'p88' with const-qualified type 'int *const'
+  p88 = rhs;
+  ~~~ ^
+program_source:4:2042: note: variable 'p88' declared const here
+program_source:125:7: error: cannot assign to variable 'p89' with const-qualified type 'int *const'
+  p89 = rhs;
+  ~~~ ^
+program_source:4:2065: note: variable 'p89' declared const here
+program_source:126:7: error: cannot assign to variable 'p90' with const-qualified type 'int *const'
+  p90 = rhs;
+  ~~~ ^
+program_source:4:2088: note: variable 'p90' declared const here
+program_source:127:7: error: cannot assign to variable 'p91' with const-qualified type 'int *const'
+  p91 = rhs;
+  ~~~ ^
+program_source:4:2111: note: variable 'p91' declared const here
+program_source:128:7: error: cannot assign to variable 'p92' with const-qualified type 'int *const'
+  p92 = rhs;
+  ~~~ ^
+program_source:4:2134: note: variable 'p92' declared const here
+program_source:129:7: error: cannot assign to variable 'p93' with const-qualified type 'int *const'
+  p93 = rhs;
+  ~~~ ^
+program_source:4:2157: note: variable 'p93' declared const here
+program_source:130:7: error: cannot assign to variable 'p94' with const-qualified type 'int *const'
+  p94 = rhs;
+  ~~~ ^
+program_source:4:2180: note: variable 'p94' declared const here
+program_source:131:7: error: cannot assign to variable 'p95' with const-qualified type 'int *const'
+  p95 = rhs;
+  ~~~ ^
+program_source:4:2203: note: variable 'p95' declared const here
+program_source:132:7: error: cannot assign to variable 'p96' with const-qualified type 'int *const'
+  p96 = rhs;
+  ~~~ ^
+program_source:4:2226: note: variable 'p96' declared const here
+program_source:133:7: error: cannot assign to variable 'p97' with const-qualified type 'int *const'
+  p97 = rhs;
+  ~~~ ^
+program_source:4:2249: note: variable 'p97' declared const here
+program_source:134:7: error: cannot assign to variable 'p98' with const-qualified type 'int *const'
+  p98 = rhs;
+  ~~~ ^
+program_source:4:2272: note: variable 'p98' declared const here
+program_source:135:7: error: cannot assign to variable 'p99' with const-qualified type 'int *const'
+  p99 = rhs;
+  ~~~ ^
+program_source:4:2295: note: variable 'p99' declared const here
+program_source:136:8: error: cannot assign to variable 'p100' with const-qualified type 'int *const'
+  p100 = rhs;
+  ~~~~ ^
+program_source:4:2318: note: variable 'p100' declared const here
+program_source:137:8: error: cannot assign to variable 'p101' with const-qualified type 'int *const'
+  p101 = rhs;
+  ~~~~ ^
+program_source:4:2342: note: variable 'p101' declared const here
+program_source:138:8: error: cannot assign to variable 'p102' with const-qualified type 'int *const'
+  p102 = rhs;
+  ~~~~ ^
+program_source:4:2366: note: variable 'p102' declared const here
+program_source:139:8: error: cannot assign to variable 'p103' with const-qualified type 'int *const'
+  p103 = rhs;
+  ~~~~ ^
+program_source:4:2390: note: variable 'p103' declared const here
+program_source:140:8: error: cannot assign to variable 'p104' with const-qualified type 'int *const'
+  p104 = rhs;
+  ~~~~ ^
+program_source:4:2414: note: variable 'p104' declared const here
+program_source:141:8: error: cannot assign to variable 'p105' with const-qualified type 'int *const'
+  p105 = rhs;
+  ~~~~ ^
+program_source:4:2438: note: variable 'p105' declared const here
+program_source:142:8: error: cannot assign to variable 'p106' with const-qualified type 'int *const'
+  p106 = rhs;
+  ~~~~ ^
+program_source:4:2462: note: variable 'p106' declared const here
+program_source:143:8: error: cannot assign to variable 'p107' with const-qualified type 'int *const'
+  p107 = rhs;
+  ~~~~ ^
+program_source:4:2486: note: variable 'p107' declared const here
+program_source:144:8: error: cannot assign to variable 'p108' with const-qualified type 'int *const'
+  p108 = rhs;
+  ~~~~ ^
+program_source:4:2510: note: variable 'p108' declared const here
+program_source:145:8: error: cannot assign to variable 'p109' with const-qualified type 'int *const'
+  p109 = rhs;
+  ~~~~ ^
+program_source:4:2534: note: variable 'p109' declared const here
+program_source:146:8: error: cannot assign to variable 'p110' with const-qualified type 'int *const'
+  p110 = rhs;
+  ~~~~ ^
+program_source:4:2558: note: variable 'p110' declared const here
+program_source:147:8: error: cannot assign to variable 'p111' with const-qualified type 'int *const'
+  p111 = rhs;
+  ~~~~ ^
+program_source:4:2582: note: variable 'p111' declared const here
+program_source:148:8: error: cannot assign to variable 'p112' with const-qualified type 'int *const'
+  p112 = rhs;
+  ~~~~ ^
+program_source:4:2606: note: variable 'p112' declared const here
+program_source:149:8: error: cannot assign to variable 'p113' with const-qualified type 'int *const'
+  p113 = rhs;
+  ~~~~ ^
+program_source:4:2630: note: variable 'p113' declared const here
+program_source:150:8: error: cannot assign to variable 'p114' with const-qualified type 'int *const'
+  p114 = rhs;
+  ~~~~ ^
+program_source:4:2654: note: variable 'p114' declared const here
+program_source:151:8: error: cannot assign to variable 'p115' with const-qualified type 'int *const'
+  p115 = rhs;
+  ~~~~ ^
+program_source:4:2678: note: variable 'p115' declared const here
+program_source:152:8: error: cannot assign to variable 'p116' with const-qualified type 'int *const'
+  p116 = rhs;
+  ~~~~ ^
+program_source:4:2702: note: variable 'p116' declared const here
+program_source:153:8: error: cannot assign to variable 'p117' with const-qualified type 'int *const'
+  p117 = rhs;
+  ~~~~ ^
+program_source:4:2726: note: variable 'p117' declared const here
+program_source:154:8: error: cannot assign to variable 'p118' with const-qualified type 'int *const'
+  p118 = rhs;
+  ~~~~ ^
+program_source:4:2750: note: variable 'p118' declared const here
+program_source:155:8: error: cannot assign to variable 'p119' with const-qualified type 'int *const'
+  p119 = rhs;
+  ~~~~ ^
+program_source:4:2774: note: variable 'p119' declared const here
+program_source:156:8: error: cannot assign to variable 'p120' with const-qualified type 'int *const'
+  p120 = rhs;
+  ~~~~ ^
+program_source:4:2798: note: variable 'p120' declared const here
+program_source:157:8: error: cannot assign to variable 'p121' with const-qualified type 'int *const'
+  p121 = rhs;
+  ~~~~ ^
+program_source:4:2822: note: variable 'p121' declared const here
+program_source:158:8: error: cannot assign to variable 'p122' with const-qualified type 'int *const'
+  p122 = rhs;
+  ~~~~ ^
+program_source:4:2846: note: variable 'p122' declared const here
+program_source:159:8: error: cannot assign to variable 'p123' with const-qualified type 'int *const'
+  p123 = rhs;
+  ~~~~ ^
+program_source:4:2870: note: variable 'p123' declared const here
+program_source:160:8: error: cannot assign to variable 'p124' with const-qualified type 'int *const'
+  p124 = rhs;
+  ~~~~ ^
+program_source:4:2894: note: variable 'p124' declared const here
+program_source:161:8: error: cannot assign to variable 'p125' with const-qualified type 'int *const'
+  p125 = rhs;
+  ~~~~ ^
+program_source:4:2918: note: variable 'p125' declared const here
+program_source:162:8: error: cannot assign to variable 'p126' with const-qualified type 'int *const'
+  p126 = rhs;
+  ~~~~ ^
+program_source:4:2942: note: variable 'p126' declared const here
+program_source:163:8: error: cannot assign to variable 'p127' with const-qualified type 'int *const'
+  p127 = rhs;
+  ~~~~ ^
+program_source:4:2966: note: variable 'p127' declared const here
+program_source:164:8: error: cannot assign to variable 'p128' with const-qualified type 'int *const'
+  p128 = rhs;
+  ~~~~ ^
+program_source:4:2990: note: variable 'p128' declared const here
+program_source:165:8: error: cannot assign to variable 'p129' with const-qualified type 'int *const'
+  p129 = rhs;
+  ~~~~ ^
+program_source:4:3014: note: variable 'p129' declared const here
+program_source:166:8: error: cannot assign to variable 'p130' with const-qualified type 'int *const'
+  p130 = rhs;
+  ~~~~ ^
+program_source:4:3038: note: variable 'p130' declared const here
+program_source:167:8: error: cannot assign to variable 'p131' with const-qualified type 'int *const'
+  p131 = rhs;
+  ~~~~ ^
+program_source:4:3062: note: variable 'p131' declared const here
+program_source:168:8: error: cannot assign to variable 'p132' with const-qualified type 'int *const'
+  p132 = rhs;
+  ~~~~ ^
+program_source:4:3086: note: variable 'p132' declared const here
+program_source:169:8: error: cannot assign to variable 'p133' with const-qualified type 'int *const'
+  p133 = rhs;
+  ~~~~ ^
+program_source:4:3110: note: variable 'p133' declared const here
+program_source:170:8: error: cannot assign to variable 'p134' with const-qualified type 'int *const'
+  p134 = rhs;
+  ~~~~ ^
+program_source:4:3134: note: variable 'p134' declared const here
+program_source:171:8: error: cannot assign to variable 'p135' with const-qualified type 'int *const'
+  p135 = rhs;
+  ~~~~ ^
+program_source:4:3158: note: variable 'p135' declared const here
+program_source:172:8: error: cannot assign to variable 'p136' with const-qualified type 'int *const'
+  p136 = rhs;
+  ~~~~ ^
+program_source:4:3182: note: variable 'p136' declared const here
+program_source:173:8: error: cannot assign to variable 'p137' with const-qualified type 'int *const'
+  p137 = rhs;
+  ~~~~ ^
+program_source:4:3206: note: variable 'p137' declared const here
+program_source:174:8: error: cannot assign to variable 'p138' with const-qualified type 'int *const'
+  p138 = rhs;
+  ~~~~ ^
+program_source:4:3230: note: variable 'p138' declared const here
+program_source:175:8: error: cannot assign to variable 'p139' with const-qualified type 'int *const'
+  p139 = rhs;
+  ~~~~ ^
+program_source:4:3254: note: variable 'p139' declared const here
+program_source:176:8: error: cannot assign to variable 'p140' with const-qualified type 'int *const'
+  p140 = rhs;
+  ~~~~ ^
+program_source:4:3278: note: variable 'p140' declared const here
+program_source:177:8: error: cannot assign to variable 'p141' with const-qualified type 'int *const'
+  p141 = rhs;
+  ~~~~ ^
+program_source:4:3302: note: variable 'p141' declared const here
+program_source:178:8: error: cannot assign to variable 'p142' with const-qualified type 'int *const'
+  p142 = rhs;
+  ~~~~ ^
+program_source:4:3326: note: variable 'p142' declared const here
+program_source:179:8: error: cannot assign to variable 'p143' with const-qualified type 'int *const'
+  p143 = rhs;
+  ~~~~ ^
+program_source:4:3350: note: variable 'p143' declared const here
+program_source:180:8: error: cannot assign to variable 'p144' with const-qualified type 'int *const'
+  p144 = rhs;
+  ~~~~ ^
+program_source:4:3374: note: variable 'p144' declared const here
+program_source:181:8: error: cannot assign to variable 'p145' with const-qualified type 'int *const'
+  p145 = rhs;
+  ~~~~ ^
+program_source:4:3398: note: variable 'p145' declared const here
+program_source:182:8: error: cannot assign to variable 'p146' with const-qualified type 'int *const'
+  p146 = rhs;
+  ~~~~ ^
+program_source:4:3422: note: variable 'p146' declared const here
+program_source:183:8: error: cannot assign to variable 'p147' with const-qualified type 'int *const'
+  p147 = rhs;
+  ~~~~ ^
+program_source:4:3446: note: variable 'p147' declared const here
+program_source:184:8: error: cannot assign to variable 'p148' with const-qualified type 'int *const'
+  p148 = rhs;
+  ~~~~ ^
+program_source:4:3470: note: variable 'p148' declared const here
+program_source:185:8: error: cannot assign to variable 'p149' with const-qualified type 'int *const'
+  p149 = rhs;
+  ~~~~ ^
+program_source:4:3494: note: variable 'p149' declared const here
+program_source:186:8: error: cannot assign to variable 'p150' with const-qualified type 'int *const'
+  p150 = rhs;
+  ~~~~ ^
+program_source:4:3518: note: variable 'p150' declared const here
+program_source:187:8: error: cannot assign to variable 'p151' with const-qualified type 'int *const'
+  p151 = rhs;
+  ~~~~ ^
+program_source:4:3542: note: variable 'p151' declared const here
+program_source:188:8: error: cannot assign to variable 'p152' with const-qualified type 'int *const'
+  p152 = rhs;
+  ~~~~ ^
+program_source:4:3566: note: variable 'p152' declared const here
+program_source:189:8: error: cannot assign to variable 'p153' with const-qualified type 'int *const'
+  p153 = rhs;
+  ~~~~ ^
+program_source:4:3590: note: variable 'p153' declared const here
+program_source:190:8: error: cannot assign to variable 'p154' with const-qualified type 'int *const'
+  p154 = rhs;
+  ~~~~ ^
+program_source:4:3614: note: variable 'p154' declared const here
+program_source:191:8: error: cannot assign to variable 'p155' with const-qualified type 'int *const'
+  p155 = rhs;
+  ~~~~ ^
+program_source:4:3638: note: variable 'p155' declared const here
+program_source:192:8: error: cannot assign to variable 'p156' with const-qualified type 'int *const'
+  p156 = rhs;
+  ~~~~ ^
+program_source:4:3662: note: variable 'p156' declared const here
+program_source:193:8: error: cannot assign to variable 'p157' with const-qualified type 'int *const'
+  p157 = rhs;
+  ~~~~ ^
+program_source:4:3686: note: variable 'p157' declared const here
+program_source:194:8: error: cannot assign to variable 'p158' with const-qualified type 'int *const'
+  p158 = rhs;
+  ~~~~ ^
+program_source:4:3710: note: variable 'p158' declared const here
+program_source:195:8: error: cannot assign to variable 'p159' with const-qualified type 'int *const'
+  p159 = rhs;
+  ~~~~ ^
+program_source:4:3734: note: variable 'p159' declared const here
+program_source:196:8: error: cannot assign to variable 'p160' with const-qualified type 'int *const'
+  p160 = rhs;
+  ~~~~ ^
+program_source:4:3758: note: variable 'p160' declared const here
+program_source:197:8: error: cannot assign to variable 'p161' with const-qualified type 'int *const'
+  p161 = rhs;
+  ~~~~ ^
+program_source:4:3782: note: variable 'p161' declared const here
+program_source:198:8: error: cannot assign to variable 'p162' with const-qualified type 'int *const'
+  p162 = rhs;
+  ~~~~ ^
+program_source:4:3806: note: variable 'p162' declared const here
+program_source:199:8: error: cannot assign to variable 'p163' with const-qualified type 'int *const'
+  p163 = rhs;
+  ~~~~ ^
+program_source:4:3830: note: variable 'p163' declared const here
+program_source:200:8: error: cannot assign to variable 'p164' with const-qualified type 'int *const'
+  p164 = rhs;
+  ~~~~ ^
+program_source:4:3854: note: variable 'p164' declared const here
+program_source:201:8: error: cannot assign to variable 'p165' with const-qualified type 'int *const'
+  p165 = rhs;
+  ~~~~ ^
+program_source:4:3878: note: variable 'p165' declared const here
+program_source:202:8: error: cannot assign to variable 'p166' with const-qualified type 'int *const'
+  p166 = rhs;
+  ~~~~ ^
+program_source:4:3902: note: variable 'p166' declared const here
+program_source:203:8: error: cannot assign to variable 'p167' with const-qualified type 'int *const'
+  p167 = rhs;
+  ~~~~ ^
+program_source:4:3926: note: variable 'p167' declared const here
+program_source:204:8: error: cannot assign to variable 'p168' with const-qualified type 'int *const'
+  p168 = rhs;
+  ~~~~ ^
+program_source:4:3950: note: variable 'p168' declared const here
+program_source:205:8: error: cannot assign to variable 'p169' with const-qualified type 'int *const'
+  p169 = rhs;
+  ~~~~ ^
+program_source:4:3974: note: variable 'p169' declared const here
+program_source:206:8: error: cannot assign to variable 'p170' with const-qualified type 'int *const'
+  p170 = rhs;
+  ~~~~ ^
+program_source:4:3998: note: variable 'p170' declared const here
+program_source:207:8: error: cannot assign to variable 'p171' with const-qualified type 'int *const'
+  p171 = rhs;
+  ~~~~ ^
+program_source:4:4022: note: variable 'p171' declared const here
+program_source:208:8: error: cannot assign to variable 'p172' with const-qualified type 'int *const'
+  p172 = rhs;
+  ~~~~ ^
+program_source:4:4046: note: variable 'p172' declared const here
+program_source:209:8: error: cannot assign to variable 'p173' with const-qualified type 'int *const'
+  p173 = rhs;
+  ~~~~ ^
+program_source:4:4070: note: variable 'p173' declared const here
+program_source:210:8: error: cannot assign to variable 'p174' with const-qualified type 'int *const'
+  p174 = rhs;
+  ~~~~ ^
+program_source:4:4094: note: variable 'p174' declared const here
+program_source:211:8: error: cannot assign to variable 'p175' with const-qualified type 'int *const'
+  p175 = rhs;
+  ~~~~ ^
+program_source:4:4118: note: variable 'p175' declared const here
+program_source:212:8: error: cannot assign to variable 'p176' with const-qualified type 'int *const'
+  p176 = rhs;
+  ~~~~ ^
+program_source:4:4142: note: variable 'p176' declared const here
+program_source:213:8: error: cannot assign to variable 'p177' with const-qualified type 'int *const'
+  p177 = rhs;
+  ~~~~ ^
+program_source:4:4166: note: variable 'p177' declared const here
+program_source:214:8: error: cannot assign to variable 'p178' with const-qualified type 'int *const'
+  p178 = rhs;
+  ~~~~ ^
+program_source:4:4190: note: variable 'p178' declared const here
+program_source:215:8: error: cannot assign to variable 'p179' with const-qualified type 'int *const'
+  p179 = rhs;
+  ~~~~ ^
+program_source:4:4214: note: variable 'p179' declared const here
+program_source:216:8: error: cannot assign to variable 'p180' with const-qualified type 'int *const'
+  p180 = rhs;
+  ~~~~ ^
+program_source:4:4238: note: variable 'p180' declared const here
+program_source:217:8: error: cannot assign to variable 'p181' with const-qualified type 'int *const'
+  p181 = rhs;
+  ~~~~ ^
+program_source:4:4262: note: variable 'p181' declared const here
+program_source:218:8: error: cannot assign to variable 'p182' with const-qualified type 'int *const'
+  p182 = rhs;
+  ~~~~ ^
+program_source:4:4286: note: variable 'p182' declared const here
+program_source:219:8: error: cannot assign to variable 'p183' with const-qualified type 'int *const'
+  p183 = rhs;
+  ~~~~ ^
+program_source:4:4310: note: variable 'p183' declared const here
+program_source:220:8: error: cannot assign to variable 'p184' with const-qualified type 'int *const'
+  p184 = rhs;
+  ~~~~ ^
+program_source:4:4334: note: variable 'p184' declared const here
+program_source:221:8: error: cannot assign to variable 'p185' with const-qualified type 'int *const'
+  p185 = rhs;
+  ~~~~ ^
+program_source:4:4358: note: variable 'p185' declared const here
+program_source:222:8: error: cannot assign to variable 'p186' with const-qualified type 'int *const'
+  p186 = rhs;
+  ~~~~ ^
+program_source:4:4382: note: variable 'p186' declared const here
+program_source:223:8: error: cannot assign to variable 'p187' with const-qualified type 'int *const'
+  p187 = rhs;
+  ~~~~ ^
+program_source:4:4406: note: variable 'p187' declared const here
+program_source:224:8: error: cannot assign to variable 'p188' with const-qualified type 'int *const'
+  p188 = rhs;
+  ~~~~ ^
+program_source:4:4430: note: variable 'p188' declared const here
+program_source:225:8: error: cannot assign to variable 'p189' with const-qualified type 'int *const'
+  p189 = rhs;
+  ~~~~ ^
+program_source:4:4454: note: variable 'p189' declared const here
+program_source:226:8: error: cannot assign to variable 'p190' with const-qualified type 'int *const'
+  p190 = rhs;
+  ~~~~ ^
+program_source:4:4478: note: variable 'p190' declared const here
+program_source:227:8: error: cannot assign to variable 'p191' with const-qualified type 'int *const'
+  p191 = rhs;
+  ~~~~ ^
+program_source:4:4502: note: variable 'p191' declared const here
+program_source:228:8: error: cannot assign to variable 'p192' with const-qualified type 'int *const'
+  p192 = rhs;
+  ~~~~ ^
+program_source:4:4526: note: variable 'p192' declared const here
+program_source:229:8: error: cannot assign to variable 'p193' with const-qualified type 'int *const'
+  p193 = rhs;
+  ~~~~ ^
+program_source:4:4550: note: variable 'p193' declared const here
+program_source:230:8: error: cannot assign to variable 'p194' with const-qualified type 'int *const'
+  p194 = rhs;
+  ~~~~ ^
+program_source:4:4574: note: variable 'p194' declared const here
+program_source:231:8: error: cannot assign to variable 'p195' with const-qualified type 'int *const'
+  p195 = rhs;
+  ~~~~ ^
+program_source:4:4598: note: variable 'p195' declared const here
+program_source:232:8: error: cannot assign to variable 'p196' with const-qualified type 'int *const'
+  p196 = rhs;
+  ~~~~ ^
+program_source:4:4622: note: variable 'p196' declared const here
+program_source:233:8: error: cannot assign to variable 'p197' with const-qualified type 'int *const'
+  p197 = rhs;
+  ~~~~ ^
+program_source:4:4646: note: variable 'p197' declared const here
+program_source:234:8: error: cannot assign to variable 'p198' with const-qualified type 'int *const'
+  p198 = rhs;
+  ~~~~ ^
+program_source:4:4670: note: variable 'p198' declared const here
+program_source:235:8: error: cannot assign to variable 'p199' with const-qualified type 'int *const'
+  p199 = rhs;
+  ~~~~ ^
+program_source:4:4694: note: variable 'p199' declared const here
+program_source:236:8: error: cannot assign to variable 'p200' with const-qualified type 'int *const'
+  p200 = rhs;
+  ~~~~ ^
+program_source:4:4718: note: variable 'p200' declared const here
+program_source:237:8: error: cannot assign to variable 'p201' with const-qualified type 'int *const'
+  p201 = rhs;
+  ~~~~ ^
+program_source:4:4742: note: variable 'p201' declared const here
+program_source:238:8: error: cannot assign to variable 'p202' with const-qualified type 'int *const'
+  p202 = rhs;
+  ~~~~ ^
+program_source:4:4766: note: variable 'p202' declared const here
+program_source:239:8: error: cannot assign to variable 'p203' with const-qualified type 'int *const'
+  p203 = rhs;
+  ~~~~ ^
+program_source:4:4790: note: variable 'p203' declared const here
+program_source:240:8: error: cannot assign to variable 'p204' with const-qualified type 'int *const'
+  p204 = rhs;
+  ~~~~ ^
+program_source:4:4814: note: variable 'p204' declared const here
+program_source:241:8: error: cannot assign to variable 'p205' with const-qualified type 'int *const'
+  p205 = rhs;
+  ~~~~ ^
+program_source:4:4838: note: variable 'p205' declared const here
+program_source:242:8: error: cannot assign to variable 'p206' with const-qualified type 'int *const'
+  p206 = rhs;
+  ~~~~ ^
+program_source:4:4862: note: variable 'p206' declared const here
+program_source:243:8: error: cannot assign to variable 'p207' with const-qualified type 'int *const'
+  p207 = rhs;
+  ~~~~ ^
+program_source:4:4886: note: variable 'p207' declared const here
+program_source:244:8: error: cannot assign to variable 'p208' with const-qualified type 'int *const'
+  p208 = rhs;
+  ~~~~ ^
+program_source:4:4910: note: variable 'p208' declared const here
+program_source:245:8: error: cannot assign to variable 'p209' with const-qualified type 'int *const'
+  p209 = rhs;
+  ~~~~ ^
+program_source:4:4934: note: variable 'p209' declared const here
+program_source:246:8: error: cannot assign to variable 'p210' with const-qualified type 'int *const'
+  p210 = rhs;
+  ~~~~ ^
+program_source:4:4958: note: variable 'p210' declared const here
+program_source:247:8: error: cannot assign to variable 'p211' with const-qualified type 'int *const'
+  p211 = rhs;
+  ~~~~ ^
+program_source:4:4982: note: variable 'p211' declared const here
+program_source:248:8: error: cannot assign to variable 'p212' with const-qualified type 'int *const'
+  p212 = rhs;
+  ~~~~ ^
+program_source:4:5006: note: variable 'p212' declared const here
+program_source:249:8: error: cannot assign to variable 'p213' with const-qualified type 'int *const'
+  p213 = rhs;
+  ~~~~ ^
+program_source:4:5030: note: variable 'p213' declared const here
+program_source:250:8: error: cannot assign to variable 'p214' with const-qualified type 'int *const'
+  p214 = rhs;
+  ~~~~ ^
+program_source:4:5054: note: variable 'p214' declared const here
+program_source:251:8: error: cannot assign to variable 'p215' with const-qualified type 'int *const'
+  p215 = rhs;
+  ~~~~ ^
+program_source:4:5078: note: variable 'p215' declared const here
+program_source:252:8: error: cannot assign to variable 'p216' with const-qualified type 'int *const'
+  p216 = rhs;
+  ~~~~ ^
+program_source:4:5102: note: variable 'p216' declared const here
+program_source:253:8: error: cannot assign to variable 'p217' with const-qualified type 'int *const'
+  p217 = rhs;
+  ~~~~ ^
+program_source:4:5126: note: variable 'p217' declared const here
+program_source:254:8: error: cannot assign to variable 'p218' with const-qualified type 'int *const'
+  p218 = rhs;
+  ~~~~ ^
+program_source:4:5150: note: variable 'p218' declared const here
+program_source:255:8: error: cannot assign to variable 'p219' with const-qualified type 'int *const'
+  p219 = rhs;
+  ~~~~ ^
+program_source:4:5174: note: variable 'p219' declared const here
+program_source:256:8: error: cannot assign to variable 'p220' with const-qualified type 'int *const'
+  p220 = rhs;
+  ~~~~ ^
+program_source:4:5198: note: variable 'p220' declared const here
+program_source:257:8: error: cannot assign to variable 'p221' with const-qualified type 'int *const'
+  p221 = rhs;
+  ~~~~ ^
+program_source:4:5222: note: variable 'p221' declared const here
+program_source:258:8: error: cannot assign to variable 'p222' with const-qualified type 'int *const'
+  p222 = rhs;
+  ~~~~ ^
+program_source:4:5246: note: variable 'p222' declared const here
+program_source:259:8: error: cannot assign to variable 'p223' with const-qualified type 'int *const'
+  p223 = rhs;
+  ~~~~ ^
+program_source:4:5270: note: variable 'p223' declared const here
+program_source:260:8: error: cannot assign to variable 'p224' with const-qualified type 'int *const'
+  p224 = rhs;
+  ~~~~ ^
+program_source:4:5294: note: variable 'p224' declared const here
+program_source:261:8: error: cannot assign to variable 'p225' with const-qualified type 'int *const'
+  p225 = rhs;
+  ~~~~ ^
+program_source:4:5318: note: variable 'p225' declared const here
+program_source:262:8: error: cannot assign to variable 'p226' with const-qualified type 'int *const'
+  p226 = rhs;
+  ~~~~ ^
+program_source:4:5342: note: variable 'p226' declared const here
+program_source:263:8: error: cannot assign to variable 'p227' with const-qualified type 'int *const'
+  p227 = rhs;
+  ~~~~ ^
+program_source:4:5366: note: variable 'p227' declared const here
+program_source:264:8: error: cannot assign to variable 'p228' with const-qualified type 'int *const'
+  p228 = rhs;
+  ~~~~ ^
+program_source:4:5390: note: variable 'p228' declared const here
+program_source:265:8: error: cannot assign to variable 'p229' with const-qualified type 'int *const'
+  p229 = rhs;
+  ~~~~ ^
+program_source:4:5414: note: variable 'p229' declared const here
+program_source:266:8: error: cannot assign to variable 'p230' with const-qualified type 'int *const'
+  p230 = rhs;
+  ~~~~ ^
+program_source:4:5438: note: variable 'p230' declared const here
+program_source:267:8: error: cannot assign to variable 'p231' with const-qualified type 'int *const'
+  p231 = rhs;
+  ~~~~ ^
+program_source:4:5462: note: variable 'p231' declared const here
+program_source:268:8: error: cannot assign to variable 'p232' with const-qualified type 'int *const'
+  p232 = rhs;
+  ~~~~ ^
+program_source:4:5486: note: variable 'p232' declared const here
+program_source:269:8: error: cannot assign to variable 'p233' with const-qualified type 'int *const'
+  p233 = rhs;
+  ~~~~ ^
+program_source:4:5510: note: variable 'p233' declared const here
+program_source:270:8: error: cannot assign to variable 'p234' with const-qualified type 'int *const'
+  p234 = rhs;
+  ~~~~ ^
+program_source:4:5534: note: variable 'p234' declared const here
+program_source:271:8: error: cannot assign to variable 'p235' with const-qualified type 'int *const'
+  p235 = rhs;
+  ~~~~ ^
+program_source:4:5558: note: variable 'p235' declared const here
+program_source:272:8: error: cannot assign to variable 'p236' with const-qualified type 'int *const'
+  p236 = rhs;
+  ~~~~ ^
+program_source:4:5582: note: variable 'p236' declared const here
+program_source:273:8: error: cannot assign to variable 'p237' with const-qualified type 'int *const'
+  p237 = rhs;
+  ~~~~ ^
+program_source:4:5606: note: variable 'p237' declared const here
+program_source:274:8: error: cannot assign to variable 'p238' with const-qualified type 'int *const'
+  p238 = rhs;
+  ~~~~ ^
+program_source:4:5630: note: variable 'p238' declared const here
+program_source:275:8: error: cannot assign to variable 'p239' with const-qualified type 'int *const'
+  p239 = rhs;
+  ~~~~ ^
+program_source:4:5654: note: variable 'p239' declared const here
+program_source:276:8: error: cannot assign to variable 'p240' with const-qualified type 'int *const'
+  p240 = rhs;
+  ~~~~ ^
+program_source:4:5678: note: variable 'p240' declared const here
+program_source:277:8: error: cannot assign to variable 'p241' with const-qualified type 'int *const'
+  p241 = rhs;
+  ~~~~ ^
+program_source:4:5702: note: variable 'p241' declared const here
+program_source:278:8: error: cannot assign to variable 'p242' with const-qualified type 'int *const'
+  p242 = rhs;
+  ~~~~ ^
+program_source:4:5726: note: variable 'p242' declared const here
+program_source:279:8: error: cannot assign to variable 'p243' with const-qualified type 'int *const'
+  p243 = rhs;
+  ~~~~ ^
+program_source:4:5750: note: variable 'p243' declared const here
+program_source:280:8: error: cannot assign to variable 'p244' with const-qualified type 'int *const'
+  p244 = rhs;
+  ~~~~ ^
+program_source:4:5774: note: variable 'p244' declared const here
+program_source:281:8: error: cannot assign to variable 'p245' with const-qualified type 'int *const'
+  p245 = rhs;
+  ~~~~ ^
+program_source:4:5798: note: variable 'p245' declared const here
+program_source:282:8: error: cannot assign to variable 'p246' with const-qualified type 'int *const'
+  p246 = rhs;
+  ~~~~ ^
+program_source:4:5822: note: variable 'p246' declared const here
+program_source:283:8: error: cannot assign to variable 'p247' with const-qualified type 'int *const'
+  p247 = rhs;
+  ~~~~ ^
+program_source:4:5846: note: variable 'p247' declared const here
+program_source:284:8: error: cannot assign to variable 'p248' with const-qualified type 'int *const'
+  p248 = rhs;
+  ~~~~ ^
+program_source:4:5870: note: variable 'p248' declared const here
+program_source:285:8: error: cannot assign to variable 'p249' with const-qualified type 'int *const'
+  p249 = rhs;
+  ~~~~ ^
+program_source:4:5894: note: variable 'p249' declared const here
+program_source:286:8: error: cannot assign to variable 'p250' with const-qualified type 'int *const'
+  p250 = rhs;
+  ~~~~ ^
+program_source:4:5918: note: variable 'p250' declared const here
+program_source:287:8: error: cannot assign to variable 'p251' with const-qualified type 'int *const'
+  p251 = rhs;
+  ~~~~ ^
+program_source:4:5942: note: variable 'p251' declared const here
+program_source:288:8: error: cannot assign to variable 'p252' with const-qualified type 'int *const'
+  p252 = rhs;
+  ~~~~ ^
+program_source:4:5966: note: variable 'p252' declared const here
+program_source:289:8: error: cannot assign to variable 'p253' with const-qualified type 'int *const'
+  p253 = rhs;
+  ~~~~ ^
+program_source:4:5990: note: variable 'p253' declared const here
+program_source:290:8: error: cannot assign to variable 'p254' with const-qualified type 'int *const'
+  p254 = rhs;
+  ~~~~ ^
+program_source:4:6014: note: variable 'p254' declared const here
+program_source:548:3: error: no matching function for call to 'foo'
+  foo(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63, v64, v65, v66, v67, v68, v69, v70, v71, v72, v73, v74, v75, v76, v77, v78, v79, v80, v81, v82, v83, v84, v85, v86, v87, v88, v89, v90, v91, v92, v93, v94, v95, v96, v97, v98, v99, v100, v101, v102, v103, v104, v105, v106, v107, v108, v109, v110, v111, v112, v113, v114, v115, v116, v117, v118, v119, v120, v121, v122, v123, v124, v125, v126, v127, v128, v129, v130, v131, v132, v133, v134, v135, v136, v137, v138, v139, v140, v141, v142, v143, v144, v145, v146, v147, v148, v149, v150, v151, v152, v153, v154, v155, v156, v157, v158, v159, v160, v161, v162, v163, v164, v165, v166, v167, v168, v169, v170, v171, v172, v173, v174, v175, v176, v177, v178, v179, v180, v181, v182, v183, v184, v185, v186, v187, v188, v189, v190, v191, v192, v193, v194, v195, v196, v197, v198, v199, v200, v201, v202, v203, v204, v205, v206, v207, v208, v209, v210, v211, v212, v213, v214, v215, v216, v217, v218, v219, v220, v221, v222, v223, v224, v225, v226, v227, v228, v229, v230, v231, v232, v233, v234, v235, v236, v237, v238, v239, v240, v241, v242, v243, v244, v245, v246, v247, v248, v249, v250, v251, v252, v253, v254);
+  ^~~
+program_source:4:6: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 1st argument; take the address of the argument with &
+program_source:549:13: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((v254 == 0)) {
+       ~~~~~^~~~
+program_source:549:13: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((v254 == 0)) {
+      ~     ^   ~
+program_source:549:13: note: use '=' to turn this equality comparison into an assignment
+  if ((v254 == 0)) {
+            ^~
+            =
+
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.msl b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.msl
index a73b168..8dc4c3f 100644
--- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   scalar_i32:i32 @offset(4)
   scalar_u32:u32 @offset(8)
@@ -29,59 +29,168 @@
   arr:array<Inner> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
-    %4:ptr<storage, f32, read> = access %sb, 0u, %idx, 0u
-    %scalar_f32:f32 = load %4
-    %6:ptr<storage, i32, read> = access %sb, 0u, %idx, 1u
-    %scalar_i32:i32 = load %6
-    %8:ptr<storage, u32, read> = access %sb, 0u, %idx, 2u
-    %scalar_u32:u32 = load %8
-    %10:ptr<storage, vec2<f32>, read> = access %sb, 0u, %idx, 3u
-    %vec2_f32:vec2<f32> = load %10
-    %12:ptr<storage, vec2<i32>, read> = access %sb, 0u, %idx, 4u
-    %vec2_i32:vec2<i32> = load %12
-    %14:ptr<storage, vec2<u32>, read> = access %sb, 0u, %idx, 5u
-    %vec2_u32:vec2<u32> = load %14
-    %16:ptr<storage, vec3<f32>, read> = access %sb, 0u, %idx, 6u
-    %vec3_f32:vec3<f32> = load %16
-    %18:ptr<storage, vec3<i32>, read> = access %sb, 0u, %idx, 7u
-    %vec3_i32:vec3<i32> = load %18
-    %20:ptr<storage, vec3<u32>, read> = access %sb, 0u, %idx, 8u
-    %vec3_u32:vec3<u32> = load %20
-    %22:ptr<storage, vec4<f32>, read> = access %sb, 0u, %idx, 9u
-    %vec4_f32:vec4<f32> = load %22
-    %24:ptr<storage, vec4<i32>, read> = access %sb, 0u, %idx, 10u
-    %vec4_i32:vec4<i32> = load %24
-    %26:ptr<storage, vec4<u32>, read> = access %sb, 0u, %idx, 11u
-    %vec4_u32:vec4<u32> = load %26
-    %28:ptr<storage, mat2x2<f32>, read> = access %sb, 0u, %idx, 12u
-    %mat2x2_f32:mat2x2<f32> = load %28
-    %30:ptr<storage, mat2x3<f32>, read> = access %sb, 0u, %idx, 13u
-    %mat2x3_f32:mat2x3<f32> = load %30
-    %32:ptr<storage, mat2x4<f32>, read> = access %sb, 0u, %idx, 14u
-    %mat2x4_f32:mat2x4<f32> = load %32
-    %34:ptr<storage, mat3x2<f32>, read> = access %sb, 0u, %idx, 15u
-    %mat3x2_f32:mat3x2<f32> = load %34
-    %36:ptr<storage, mat3x3<f32>, read> = access %sb, 0u, %idx, 16u
-    %mat3x3_f32:mat3x3<f32> = load %36
-    %38:ptr<storage, mat3x4<f32>, read> = access %sb, 0u, %idx, 17u
-    %mat3x4_f32:mat3x4<f32> = load %38
-    %40:ptr<storage, mat4x2<f32>, read> = access %sb, 0u, %idx, 18u
-    %mat4x2_f32:mat4x2<f32> = load %40
-    %42:ptr<storage, mat4x3<f32>, read> = access %sb, 0u, %idx, 19u
-    %mat4x3_f32:mat4x3<f32> = load %42
-    %44:ptr<storage, mat4x4<f32>, read> = access %sb, 0u, %idx, 20u
-    %mat4x4_f32:mat4x4<f32> = load %44
-    %46:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 0u, %idx, 21u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %46
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:ptr<storage, f32, read> = access %sb, 0u, %idx, 0u
+    %6:f32 = load %5
+    %scalar_f32:f32 = let %6
+    %8:ptr<storage, i32, read> = access %sb, 0u, %idx, 1u
+    %9:i32 = load %8
+    %scalar_i32:i32 = let %9
+    %11:ptr<storage, u32, read> = access %sb, 0u, %idx, 2u
+    %12:u32 = load %11
+    %scalar_u32:u32 = let %12
+    %14:ptr<storage, vec2<f32>, read> = access %sb, 0u, %idx, 3u
+    %15:vec2<f32> = load %14
+    %vec2_f32:vec2<f32> = let %15
+    %17:ptr<storage, vec2<i32>, read> = access %sb, 0u, %idx, 4u
+    %18:vec2<i32> = load %17
+    %vec2_i32:vec2<i32> = let %18
+    %20:ptr<storage, vec2<u32>, read> = access %sb, 0u, %idx, 5u
+    %21:vec2<u32> = load %20
+    %vec2_u32:vec2<u32> = let %21
+    %23:ptr<storage, vec3<f32>, read> = access %sb, 0u, %idx, 6u
+    %24:vec3<f32> = load %23
+    %vec3_f32:vec3<f32> = let %24
+    %26:ptr<storage, vec3<i32>, read> = access %sb, 0u, %idx, 7u
+    %27:vec3<i32> = load %26
+    %vec3_i32:vec3<i32> = let %27
+    %29:ptr<storage, vec3<u32>, read> = access %sb, 0u, %idx, 8u
+    %30:vec3<u32> = load %29
+    %vec3_u32:vec3<u32> = let %30
+    %32:ptr<storage, vec4<f32>, read> = access %sb, 0u, %idx, 9u
+    %33:vec4<f32> = load %32
+    %vec4_f32:vec4<f32> = let %33
+    %35:ptr<storage, vec4<i32>, read> = access %sb, 0u, %idx, 10u
+    %36:vec4<i32> = load %35
+    %vec4_i32:vec4<i32> = let %36
+    %38:ptr<storage, vec4<u32>, read> = access %sb, 0u, %idx, 11u
+    %39:vec4<u32> = load %38
+    %vec4_u32:vec4<u32> = let %39
+    %41:ptr<storage, mat2x2<f32>, read> = access %sb, 0u, %idx, 12u
+    %42:mat2x2<f32> = load %41
+    %mat2x2_f32:mat2x2<f32> = let %42
+    %44:ptr<storage, mat2x3<f32>, read> = access %sb, 0u, %idx, 13u
+    %45:mat2x3<f32> = load %44
+    %mat2x3_f32:mat2x3<f32> = let %45
+    %47:ptr<storage, mat2x4<f32>, read> = access %sb, 0u, %idx, 14u
+    %48:mat2x4<f32> = load %47
+    %mat2x4_f32:mat2x4<f32> = let %48
+    %50:ptr<storage, mat3x2<f32>, read> = access %sb, 0u, %idx, 15u
+    %51:mat3x2<f32> = load %50
+    %mat3x2_f32:mat3x2<f32> = let %51
+    %53:ptr<storage, mat3x3<f32>, read> = access %sb, 0u, %idx, 16u
+    %54:mat3x3<f32> = load %53
+    %mat3x3_f32:mat3x3<f32> = let %54
+    %56:ptr<storage, mat3x4<f32>, read> = access %sb, 0u, %idx, 17u
+    %57:mat3x4<f32> = load %56
+    %mat3x4_f32:mat3x4<f32> = let %57
+    %59:ptr<storage, mat4x2<f32>, read> = access %sb, 0u, %idx, 18u
+    %60:mat4x2<f32> = load %59
+    %mat4x2_f32:mat4x2<f32> = let %60
+    %62:ptr<storage, mat4x3<f32>, read> = access %sb, 0u, %idx, 19u
+    %63:mat4x3<f32> = load %62
+    %mat4x3_f32:mat4x3<f32> = let %63
+    %65:ptr<storage, mat4x4<f32>, read> = access %sb, 0u, %idx, 20u
+    %66:mat4x4<f32> = load %65
+    %mat4x4_f32:mat4x4<f32> = let %66
+    %68:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 0u, %idx, 21u
+    %69:array<vec3<f32>, 2> = load %68
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %69
+    %71:i32 = call %tint_f32_to_i32, %scalar_f32
+    %73:i32 = add %71, %scalar_i32
+    %74:i32 = let %73
+    %75:i32 = convert %scalar_u32
+    %76:i32 = add %74, %75
+    %77:i32 = let %76
+    %78:f32 = access %vec2_f32, 0u
+    %79:i32 = call %tint_f32_to_i32, %78
+    %80:i32 = add %77, %79
+    %81:i32 = access %vec2_i32, 0u
+    %82:i32 = add %80, %81
+    %83:i32 = let %82
+    %84:u32 = access %vec2_u32, 0u
+    %85:i32 = convert %84
+    %86:i32 = add %83, %85
+    %87:i32 = let %86
+    %88:f32 = access %vec3_f32, 1u
+    %89:i32 = call %tint_f32_to_i32, %88
+    %90:i32 = add %87, %89
+    %91:i32 = access %vec3_i32, 1u
+    %92:i32 = add %90, %91
+    %93:i32 = let %92
+    %94:u32 = access %vec3_u32, 1u
+    %95:i32 = convert %94
+    %96:i32 = add %93, %95
+    %97:i32 = let %96
+    %98:f32 = access %vec4_f32, 2u
+    %99:i32 = call %tint_f32_to_i32, %98
+    %100:i32 = add %97, %99
+    %101:i32 = access %vec4_i32, 2u
+    %102:i32 = add %100, %101
+    %103:i32 = let %102
+    %104:u32 = access %vec4_u32, 2u
+    %105:i32 = convert %104
+    %106:i32 = add %103, %105
+    %107:i32 = let %106
+    %108:f32 = access %mat2x2_f32, 0i, 0u
+    %109:i32 = call %tint_f32_to_i32, %108
+    %110:i32 = add %107, %109
+    %111:i32 = let %110
+    %112:f32 = access %mat2x3_f32, 0i, 0u
+    %113:i32 = call %tint_f32_to_i32, %112
+    %114:i32 = add %111, %113
+    %115:i32 = let %114
+    %116:f32 = access %mat2x4_f32, 0i, 0u
+    %117:i32 = call %tint_f32_to_i32, %116
+    %118:i32 = add %115, %117
+    %119:i32 = let %118
+    %120:f32 = access %mat3x2_f32, 0i, 0u
+    %121:i32 = call %tint_f32_to_i32, %120
+    %122:i32 = add %119, %121
+    %123:i32 = let %122
+    %124:f32 = access %mat3x3_f32, 0i, 0u
+    %125:i32 = call %tint_f32_to_i32, %124
+    %126:i32 = add %123, %125
+    %127:i32 = let %126
+    %128:f32 = access %mat3x4_f32, 0i, 0u
+    %129:i32 = call %tint_f32_to_i32, %128
+    %130:i32 = add %127, %129
+    %131:i32 = let %130
+    %132:f32 = access %mat4x2_f32, 0i, 0u
+    %133:i32 = call %tint_f32_to_i32, %132
+    %134:i32 = add %131, %133
+    %135:i32 = let %134
+    %136:f32 = access %mat4x3_f32, 0i, 0u
+    %137:i32 = call %tint_f32_to_i32, %136
+    %138:i32 = add %135, %137
+    %139:i32 = let %138
+    %140:f32 = access %mat4x4_f32, 0i, 0u
+    %141:i32 = call %tint_f32_to_i32, %140
+    %142:i32 = add %139, %141
+    %143:i32 = let %142
+    %144:f32 = access %arr2_vec3_f32, 0i, 0u
+    %145:i32 = call %tint_f32_to_i32, %144
+    %146:i32 = add %143, %145
+    store %s, %146
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %148:i32 = convert %value
+    %149:bool = gte %value, -2147483648.0f
+    %150:i32 = select -2147483648i, %148, %149
+    %151:bool = lte %value, 2147483520.0f
+    %152:i32 = select 2147483647i, %150, %151
+    ret %152
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.msl
index a998792..804b368 100644
--- a/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/dynamic_index/read_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   scalar_i32:i32 @offset(4)
   scalar_u32:u32 @offset(8)
@@ -43,87 +43,275 @@
   arr:array<Inner> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
-    %4:ptr<storage, f32, read> = access %sb, 0u, %idx, 0u
-    %scalar_f32:f32 = load %4
-    %6:ptr<storage, i32, read> = access %sb, 0u, %idx, 1u
-    %scalar_i32:i32 = load %6
-    %8:ptr<storage, u32, read> = access %sb, 0u, %idx, 2u
-    %scalar_u32:u32 = load %8
-    %10:ptr<storage, f16, read> = access %sb, 0u, %idx, 3u
-    %scalar_f16:f16 = load %10
-    %12:ptr<storage, vec2<f32>, read> = access %sb, 0u, %idx, 4u
-    %vec2_f32:vec2<f32> = load %12
-    %14:ptr<storage, vec2<i32>, read> = access %sb, 0u, %idx, 5u
-    %vec2_i32:vec2<i32> = load %14
-    %16:ptr<storage, vec2<u32>, read> = access %sb, 0u, %idx, 6u
-    %vec2_u32:vec2<u32> = load %16
-    %18:ptr<storage, vec2<f16>, read> = access %sb, 0u, %idx, 7u
-    %vec2_f16:vec2<f16> = load %18
-    %20:ptr<storage, vec3<f32>, read> = access %sb, 0u, %idx, 8u
-    %vec3_f32:vec3<f32> = load %20
-    %22:ptr<storage, vec3<i32>, read> = access %sb, 0u, %idx, 9u
-    %vec3_i32:vec3<i32> = load %22
-    %24:ptr<storage, vec3<u32>, read> = access %sb, 0u, %idx, 10u
-    %vec3_u32:vec3<u32> = load %24
-    %26:ptr<storage, vec3<f16>, read> = access %sb, 0u, %idx, 11u
-    %vec3_f16:vec3<f16> = load %26
-    %28:ptr<storage, vec4<f32>, read> = access %sb, 0u, %idx, 12u
-    %vec4_f32:vec4<f32> = load %28
-    %30:ptr<storage, vec4<i32>, read> = access %sb, 0u, %idx, 13u
-    %vec4_i32:vec4<i32> = load %30
-    %32:ptr<storage, vec4<u32>, read> = access %sb, 0u, %idx, 14u
-    %vec4_u32:vec4<u32> = load %32
-    %34:ptr<storage, vec4<f16>, read> = access %sb, 0u, %idx, 15u
-    %vec4_f16:vec4<f16> = load %34
-    %36:ptr<storage, mat2x2<f32>, read> = access %sb, 0u, %idx, 16u
-    %mat2x2_f32:mat2x2<f32> = load %36
-    %38:ptr<storage, mat2x3<f32>, read> = access %sb, 0u, %idx, 17u
-    %mat2x3_f32:mat2x3<f32> = load %38
-    %40:ptr<storage, mat2x4<f32>, read> = access %sb, 0u, %idx, 18u
-    %mat2x4_f32:mat2x4<f32> = load %40
-    %42:ptr<storage, mat3x2<f32>, read> = access %sb, 0u, %idx, 19u
-    %mat3x2_f32:mat3x2<f32> = load %42
-    %44:ptr<storage, mat3x3<f32>, read> = access %sb, 0u, %idx, 20u
-    %mat3x3_f32:mat3x3<f32> = load %44
-    %46:ptr<storage, mat3x4<f32>, read> = access %sb, 0u, %idx, 21u
-    %mat3x4_f32:mat3x4<f32> = load %46
-    %48:ptr<storage, mat4x2<f32>, read> = access %sb, 0u, %idx, 22u
-    %mat4x2_f32:mat4x2<f32> = load %48
-    %50:ptr<storage, mat4x3<f32>, read> = access %sb, 0u, %idx, 23u
-    %mat4x3_f32:mat4x3<f32> = load %50
-    %52:ptr<storage, mat4x4<f32>, read> = access %sb, 0u, %idx, 24u
-    %mat4x4_f32:mat4x4<f32> = load %52
-    %54:ptr<storage, mat2x2<f16>, read> = access %sb, 0u, %idx, 25u
-    %mat2x2_f16:mat2x2<f16> = load %54
-    %56:ptr<storage, mat2x3<f16>, read> = access %sb, 0u, %idx, 26u
-    %mat2x3_f16:mat2x3<f16> = load %56
-    %58:ptr<storage, mat2x4<f16>, read> = access %sb, 0u, %idx, 27u
-    %mat2x4_f16:mat2x4<f16> = load %58
-    %60:ptr<storage, mat3x2<f16>, read> = access %sb, 0u, %idx, 28u
-    %mat3x2_f16:mat3x2<f16> = load %60
-    %62:ptr<storage, mat3x3<f16>, read> = access %sb, 0u, %idx, 29u
-    %mat3x3_f16:mat3x3<f16> = load %62
-    %64:ptr<storage, mat3x4<f16>, read> = access %sb, 0u, %idx, 30u
-    %mat3x4_f16:mat3x4<f16> = load %64
-    %66:ptr<storage, mat4x2<f16>, read> = access %sb, 0u, %idx, 31u
-    %mat4x2_f16:mat4x2<f16> = load %66
-    %68:ptr<storage, mat4x3<f16>, read> = access %sb, 0u, %idx, 32u
-    %mat4x3_f16:mat4x3<f16> = load %68
-    %70:ptr<storage, mat4x4<f16>, read> = access %sb, 0u, %idx, 33u
-    %mat4x4_f16:mat4x4<f16> = load %70
-    %72:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 0u, %idx, 34u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %72
-    %74:ptr<storage, array<mat4x2<f16>, 2>, read> = access %sb, 0u, %idx, 35u
-    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = load %74
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:ptr<storage, f32, read> = access %sb, 0u, %idx, 0u
+    %6:f32 = load %5
+    %scalar_f32:f32 = let %6
+    %8:ptr<storage, i32, read> = access %sb, 0u, %idx, 1u
+    %9:i32 = load %8
+    %scalar_i32:i32 = let %9
+    %11:ptr<storage, u32, read> = access %sb, 0u, %idx, 2u
+    %12:u32 = load %11
+    %scalar_u32:u32 = let %12
+    %14:ptr<storage, f16, read> = access %sb, 0u, %idx, 3u
+    %15:f16 = load %14
+    %scalar_f16:f16 = let %15
+    %17:ptr<storage, vec2<f32>, read> = access %sb, 0u, %idx, 4u
+    %18:vec2<f32> = load %17
+    %vec2_f32:vec2<f32> = let %18
+    %20:ptr<storage, vec2<i32>, read> = access %sb, 0u, %idx, 5u
+    %21:vec2<i32> = load %20
+    %vec2_i32:vec2<i32> = let %21
+    %23:ptr<storage, vec2<u32>, read> = access %sb, 0u, %idx, 6u
+    %24:vec2<u32> = load %23
+    %vec2_u32:vec2<u32> = let %24
+    %26:ptr<storage, vec2<f16>, read> = access %sb, 0u, %idx, 7u
+    %27:vec2<f16> = load %26
+    %vec2_f16:vec2<f16> = let %27
+    %29:ptr<storage, vec3<f32>, read> = access %sb, 0u, %idx, 8u
+    %30:vec3<f32> = load %29
+    %vec3_f32:vec3<f32> = let %30
+    %32:ptr<storage, vec3<i32>, read> = access %sb, 0u, %idx, 9u
+    %33:vec3<i32> = load %32
+    %vec3_i32:vec3<i32> = let %33
+    %35:ptr<storage, vec3<u32>, read> = access %sb, 0u, %idx, 10u
+    %36:vec3<u32> = load %35
+    %vec3_u32:vec3<u32> = let %36
+    %38:ptr<storage, vec3<f16>, read> = access %sb, 0u, %idx, 11u
+    %39:vec3<f16> = load %38
+    %vec3_f16:vec3<f16> = let %39
+    %41:ptr<storage, vec4<f32>, read> = access %sb, 0u, %idx, 12u
+    %42:vec4<f32> = load %41
+    %vec4_f32:vec4<f32> = let %42
+    %44:ptr<storage, vec4<i32>, read> = access %sb, 0u, %idx, 13u
+    %45:vec4<i32> = load %44
+    %vec4_i32:vec4<i32> = let %45
+    %47:ptr<storage, vec4<u32>, read> = access %sb, 0u, %idx, 14u
+    %48:vec4<u32> = load %47
+    %vec4_u32:vec4<u32> = let %48
+    %50:ptr<storage, vec4<f16>, read> = access %sb, 0u, %idx, 15u
+    %51:vec4<f16> = load %50
+    %vec4_f16:vec4<f16> = let %51
+    %53:ptr<storage, mat2x2<f32>, read> = access %sb, 0u, %idx, 16u
+    %54:mat2x2<f32> = load %53
+    %mat2x2_f32:mat2x2<f32> = let %54
+    %56:ptr<storage, mat2x3<f32>, read> = access %sb, 0u, %idx, 17u
+    %57:mat2x3<f32> = load %56
+    %mat2x3_f32:mat2x3<f32> = let %57
+    %59:ptr<storage, mat2x4<f32>, read> = access %sb, 0u, %idx, 18u
+    %60:mat2x4<f32> = load %59
+    %mat2x4_f32:mat2x4<f32> = let %60
+    %62:ptr<storage, mat3x2<f32>, read> = access %sb, 0u, %idx, 19u
+    %63:mat3x2<f32> = load %62
+    %mat3x2_f32:mat3x2<f32> = let %63
+    %65:ptr<storage, mat3x3<f32>, read> = access %sb, 0u, %idx, 20u
+    %66:mat3x3<f32> = load %65
+    %mat3x3_f32:mat3x3<f32> = let %66
+    %68:ptr<storage, mat3x4<f32>, read> = access %sb, 0u, %idx, 21u
+    %69:mat3x4<f32> = load %68
+    %mat3x4_f32:mat3x4<f32> = let %69
+    %71:ptr<storage, mat4x2<f32>, read> = access %sb, 0u, %idx, 22u
+    %72:mat4x2<f32> = load %71
+    %mat4x2_f32:mat4x2<f32> = let %72
+    %74:ptr<storage, mat4x3<f32>, read> = access %sb, 0u, %idx, 23u
+    %75:mat4x3<f32> = load %74
+    %mat4x3_f32:mat4x3<f32> = let %75
+    %77:ptr<storage, mat4x4<f32>, read> = access %sb, 0u, %idx, 24u
+    %78:mat4x4<f32> = load %77
+    %mat4x4_f32:mat4x4<f32> = let %78
+    %80:ptr<storage, mat2x2<f16>, read> = access %sb, 0u, %idx, 25u
+    %81:mat2x2<f16> = load %80
+    %mat2x2_f16:mat2x2<f16> = let %81
+    %83:ptr<storage, mat2x3<f16>, read> = access %sb, 0u, %idx, 26u
+    %84:mat2x3<f16> = load %83
+    %mat2x3_f16:mat2x3<f16> = let %84
+    %86:ptr<storage, mat2x4<f16>, read> = access %sb, 0u, %idx, 27u
+    %87:mat2x4<f16> = load %86
+    %mat2x4_f16:mat2x4<f16> = let %87
+    %89:ptr<storage, mat3x2<f16>, read> = access %sb, 0u, %idx, 28u
+    %90:mat3x2<f16> = load %89
+    %mat3x2_f16:mat3x2<f16> = let %90
+    %92:ptr<storage, mat3x3<f16>, read> = access %sb, 0u, %idx, 29u
+    %93:mat3x3<f16> = load %92
+    %mat3x3_f16:mat3x3<f16> = let %93
+    %95:ptr<storage, mat3x4<f16>, read> = access %sb, 0u, %idx, 30u
+    %96:mat3x4<f16> = load %95
+    %mat3x4_f16:mat3x4<f16> = let %96
+    %98:ptr<storage, mat4x2<f16>, read> = access %sb, 0u, %idx, 31u
+    %99:mat4x2<f16> = load %98
+    %mat4x2_f16:mat4x2<f16> = let %99
+    %101:ptr<storage, mat4x3<f16>, read> = access %sb, 0u, %idx, 32u
+    %102:mat4x3<f16> = load %101
+    %mat4x3_f16:mat4x3<f16> = let %102
+    %104:ptr<storage, mat4x4<f16>, read> = access %sb, 0u, %idx, 33u
+    %105:mat4x4<f16> = load %104
+    %mat4x4_f16:mat4x4<f16> = let %105
+    %107:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 0u, %idx, 34u
+    %108:array<vec3<f32>, 2> = load %107
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %108
+    %110:ptr<storage, array<mat4x2<f16>, 2>, read> = access %sb, 0u, %idx, 35u
+    %111:array<mat4x2<f16>, 2> = load %110
+    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %111
+    %113:i32 = call %tint_f32_to_i32, %scalar_f32
+    %115:i32 = add %113, %scalar_i32
+    %116:i32 = let %115
+    %117:i32 = convert %scalar_u32
+    %118:i32 = add %116, %117
+    %119:i32 = let %118
+    %120:i32 = call %tint_f16_to_i32, %scalar_f16
+    %122:i32 = add %119, %120
+    %123:i32 = let %122
+    %124:f32 = access %vec2_f32, 0u
+    %125:i32 = call %tint_f32_to_i32, %124
+    %126:i32 = add %123, %125
+    %127:i32 = access %vec2_i32, 0u
+    %128:i32 = add %126, %127
+    %129:i32 = let %128
+    %130:u32 = access %vec2_u32, 0u
+    %131:i32 = convert %130
+    %132:i32 = add %129, %131
+    %133:i32 = let %132
+    %134:f16 = access %vec2_f16, 0u
+    %135:i32 = call %tint_f16_to_i32, %134
+    %136:i32 = add %133, %135
+    %137:i32 = let %136
+    %138:f32 = access %vec3_f32, 1u
+    %139:i32 = call %tint_f32_to_i32, %138
+    %140:i32 = add %137, %139
+    %141:i32 = access %vec3_i32, 1u
+    %142:i32 = add %140, %141
+    %143:i32 = let %142
+    %144:u32 = access %vec3_u32, 1u
+    %145:i32 = convert %144
+    %146:i32 = add %143, %145
+    %147:i32 = let %146
+    %148:f16 = access %vec3_f16, 1u
+    %149:i32 = call %tint_f16_to_i32, %148
+    %150:i32 = add %147, %149
+    %151:i32 = let %150
+    %152:f32 = access %vec4_f32, 2u
+    %153:i32 = call %tint_f32_to_i32, %152
+    %154:i32 = add %151, %153
+    %155:i32 = access %vec4_i32, 2u
+    %156:i32 = add %154, %155
+    %157:i32 = let %156
+    %158:u32 = access %vec4_u32, 2u
+    %159:i32 = convert %158
+    %160:i32 = add %157, %159
+    %161:i32 = let %160
+    %162:f16 = access %vec4_f16, 2u
+    %163:i32 = call %tint_f16_to_i32, %162
+    %164:i32 = add %161, %163
+    %165:i32 = let %164
+    %166:f32 = access %mat2x2_f32, 0i, 0u
+    %167:i32 = call %tint_f32_to_i32, %166
+    %168:i32 = add %165, %167
+    %169:i32 = let %168
+    %170:f32 = access %mat2x3_f32, 0i, 0u
+    %171:i32 = call %tint_f32_to_i32, %170
+    %172:i32 = add %169, %171
+    %173:i32 = let %172
+    %174:f32 = access %mat2x4_f32, 0i, 0u
+    %175:i32 = call %tint_f32_to_i32, %174
+    %176:i32 = add %173, %175
+    %177:i32 = let %176
+    %178:f32 = access %mat3x2_f32, 0i, 0u
+    %179:i32 = call %tint_f32_to_i32, %178
+    %180:i32 = add %177, %179
+    %181:i32 = let %180
+    %182:f32 = access %mat3x3_f32, 0i, 0u
+    %183:i32 = call %tint_f32_to_i32, %182
+    %184:i32 = add %181, %183
+    %185:i32 = let %184
+    %186:f32 = access %mat3x4_f32, 0i, 0u
+    %187:i32 = call %tint_f32_to_i32, %186
+    %188:i32 = add %185, %187
+    %189:i32 = let %188
+    %190:f32 = access %mat4x2_f32, 0i, 0u
+    %191:i32 = call %tint_f32_to_i32, %190
+    %192:i32 = add %189, %191
+    %193:i32 = let %192
+    %194:f32 = access %mat4x3_f32, 0i, 0u
+    %195:i32 = call %tint_f32_to_i32, %194
+    %196:i32 = add %193, %195
+    %197:i32 = let %196
+    %198:f32 = access %mat4x4_f32, 0i, 0u
+    %199:i32 = call %tint_f32_to_i32, %198
+    %200:i32 = add %197, %199
+    %201:i32 = let %200
+    %202:f16 = access %mat2x2_f16, 0i, 0u
+    %203:i32 = call %tint_f16_to_i32, %202
+    %204:i32 = add %201, %203
+    %205:i32 = let %204
+    %206:f16 = access %mat2x3_f16, 0i, 0u
+    %207:i32 = call %tint_f16_to_i32, %206
+    %208:i32 = add %205, %207
+    %209:i32 = let %208
+    %210:f16 = access %mat2x4_f16, 0i, 0u
+    %211:i32 = call %tint_f16_to_i32, %210
+    %212:i32 = add %209, %211
+    %213:i32 = let %212
+    %214:f16 = access %mat3x2_f16, 0i, 0u
+    %215:i32 = call %tint_f16_to_i32, %214
+    %216:i32 = add %213, %215
+    %217:i32 = let %216
+    %218:f16 = access %mat3x3_f16, 0i, 0u
+    %219:i32 = call %tint_f16_to_i32, %218
+    %220:i32 = add %217, %219
+    %221:i32 = let %220
+    %222:f16 = access %mat3x4_f16, 0i, 0u
+    %223:i32 = call %tint_f16_to_i32, %222
+    %224:i32 = add %221, %223
+    %225:i32 = let %224
+    %226:f16 = access %mat4x2_f16, 0i, 0u
+    %227:i32 = call %tint_f16_to_i32, %226
+    %228:i32 = add %225, %227
+    %229:i32 = let %228
+    %230:f16 = access %mat4x3_f16, 0i, 0u
+    %231:i32 = call %tint_f16_to_i32, %230
+    %232:i32 = add %229, %231
+    %233:i32 = let %232
+    %234:f16 = access %mat4x4_f16, 0i, 0u
+    %235:i32 = call %tint_f16_to_i32, %234
+    %236:i32 = add %233, %235
+    %237:i32 = let %236
+    %238:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
+    %239:i32 = call %tint_f16_to_i32, %238
+    %240:i32 = add %237, %239
+    %241:i32 = let %240
+    %242:f32 = access %arr2_vec3_f32, 0i, 0u
+    %243:i32 = call %tint_f32_to_i32, %242
+    %244:i32 = add %241, %243
+    store %s, %244
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %246:i32 = convert %value
+    %247:bool = gte %value, -2147483648.0f
+    %248:i32 = select -2147483648i, %246, %247
+    %249:bool = lte %value, 2147483520.0f
+    %250:i32 = select 2147483647i, %248, %249
+    ret %250
+  }
+}
+%tint_f16_to_i32 = func(%value_1:f16):i32 {  # %value_1: 'value'
+  $B4: {
+    %252:i32 = convert %value_1
+    %253:bool = gte %value_1, -65504.0h
+    %254:i32 = select -2147483648i, %252, %253
+    %255:bool = lte %value_1, 65504.0h
+    %256:i32 = select 2147483647i, %254, %255
+    ret %256
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.msl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.msl
index 3555b75..ddc8fd3 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   scalar_i32:i32 @offset(4)
   scalar_u32:u32 @offset(8)
@@ -29,12 +29,12 @@
   arr:array<Inner> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B2: {
     %4:ptr<storage, f32, read_write> = access %sb, 0u, %idx, 0u
     store %4, 0.0f
     %5:ptr<storage, i32, read_write> = access %sb, 0u, %idx, 1u
@@ -62,23 +62,91 @@
     %16:ptr<storage, mat2x2<f32>, read_write> = access %sb, 0u, %idx, 12u
     store %16, mat2x2<f32>(vec2<f32>(0.0f))
     %17:ptr<storage, mat2x3<f32>, read_write> = access %sb, 0u, %idx, 13u
-    store %17, mat2x3<f32>(vec3<f32>(0.0f))
-    %18:ptr<storage, mat2x4<f32>, read_write> = access %sb, 0u, %idx, 14u
-    store %18, mat2x4<f32>(vec4<f32>(0.0f))
-    %19:ptr<storage, mat3x2<f32>, read_write> = access %sb, 0u, %idx, 15u
-    store %19, mat3x2<f32>(vec2<f32>(0.0f))
-    %20:ptr<storage, mat3x3<f32>, read_write> = access %sb, 0u, %idx, 16u
-    store %20, mat3x3<f32>(vec3<f32>(0.0f))
-    %21:ptr<storage, mat3x4<f32>, read_write> = access %sb, 0u, %idx, 17u
-    store %21, mat3x4<f32>(vec4<f32>(0.0f))
-    %22:ptr<storage, mat4x2<f32>, read_write> = access %sb, 0u, %idx, 18u
-    store %22, mat4x2<f32>(vec2<f32>(0.0f))
-    %23:ptr<storage, mat4x3<f32>, read_write> = access %sb, 0u, %idx, 19u
-    store %23, mat4x3<f32>(vec3<f32>(0.0f))
-    %24:ptr<storage, mat4x4<f32>, read_write> = access %sb, 0u, %idx, 20u
-    store %24, mat4x4<f32>(vec4<f32>(0.0f))
-    %25:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 0u, %idx, 21u
-    store %25, array<vec3<f32>, 2>(vec3<f32>(0.0f))
+    %18:void = call %tint_store_and_preserve_padding, %17, mat2x3<f32>(vec3<f32>(0.0f))
+    %20:ptr<storage, mat2x4<f32>, read_write> = access %sb, 0u, %idx, 14u
+    store %20, mat2x4<f32>(vec4<f32>(0.0f))
+    %21:ptr<storage, mat3x2<f32>, read_write> = access %sb, 0u, %idx, 15u
+    store %21, mat3x2<f32>(vec2<f32>(0.0f))
+    %22:ptr<storage, mat3x3<f32>, read_write> = access %sb, 0u, %idx, 16u
+    %23:void = call %tint_store_and_preserve_padding_1, %22, mat3x3<f32>(vec3<f32>(0.0f))
+    %25:ptr<storage, mat3x4<f32>, read_write> = access %sb, 0u, %idx, 17u
+    store %25, mat3x4<f32>(vec4<f32>(0.0f))
+    %26:ptr<storage, mat4x2<f32>, read_write> = access %sb, 0u, %idx, 18u
+    store %26, mat4x2<f32>(vec2<f32>(0.0f))
+    %27:ptr<storage, mat4x3<f32>, read_write> = access %sb, 0u, %idx, 19u
+    %28:void = call %tint_store_and_preserve_padding_2, %27, mat4x3<f32>(vec3<f32>(0.0f))
+    %30:ptr<storage, mat4x4<f32>, read_write> = access %sb, 0u, %idx, 20u
+    store %30, mat4x4<f32>(vec4<f32>(0.0f))
+    %31:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 0u, %idx, 21u
+    %32:void = call %tint_store_and_preserve_padding_3, %31, array<vec3<f32>, 2>(vec3<f32>(0.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %36:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %37:vec3<f32> = access %value_param, 0u
+    store %36, %37
+    %38:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %39:vec3<f32> = access %value_param, 1u
+    store %38, %39
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat3x3<f32>, read_write>, %value_param_1:mat3x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %42:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %43:vec3<f32> = access %value_param_1, 0u
+    store %42, %43
+    %44:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %45:vec3<f32> = access %value_param_1, 1u
+    store %44, %45
+    %46:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
+    %47:vec3<f32> = access %value_param_1, 2u
+    store %46, %47
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f32>, read_write>, %value_param_2:mat4x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B5: {
+    %50:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %51:vec3<f32> = access %value_param_2, 0u
+    store %50, %51
+    %52:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %53:vec3<f32> = access %value_param_2, 1u
+    store %52, %53
+    %54:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
+    %55:vec3<f32> = access %value_param_2, 2u
+    store %54, %55
+    %56:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u
+    %57:vec3<f32> = access %value_param_2, 3u
+    store %56, %57
+    ret
+  }
+}
+%tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, array<vec3<f32>, 2>, read_write>, %value_param_3:array<vec3<f32>, 2>):void {  # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
+  $B6: {
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx_1:u32): {  # body
+        %61:bool = gte %idx_1, 2u
+        if %61 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %62:ptr<storage, vec3<f32>, read_write> = access %target_3, %idx_1
+        %63:vec3<f32> = access %value_param_3, %idx_1
+        store %62, %63
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %64:u32 = add %idx_1, 1u
+        next_iteration %64  # -> $B8
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.msl
index 8bdfba5..bd202cb 100644
--- a/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/dynamic_index/write_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   scalar_i32:i32 @offset(4)
   scalar_u32:u32 @offset(8)
@@ -43,12 +43,12 @@
   arr:array<Inner> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B2: {
     %4:ptr<storage, f32, read_write> = access %sb, 0u, %idx, 0u
     store %4, 0.0f
     %5:ptr<storage, i32, read_write> = access %sb, 0u, %idx, 1u
@@ -84,43 +84,153 @@
     %20:ptr<storage, mat2x2<f32>, read_write> = access %sb, 0u, %idx, 16u
     store %20, mat2x2<f32>(vec2<f32>(0.0f))
     %21:ptr<storage, mat2x3<f32>, read_write> = access %sb, 0u, %idx, 17u
-    store %21, mat2x3<f32>(vec3<f32>(0.0f))
-    %22:ptr<storage, mat2x4<f32>, read_write> = access %sb, 0u, %idx, 18u
-    store %22, mat2x4<f32>(vec4<f32>(0.0f))
-    %23:ptr<storage, mat3x2<f32>, read_write> = access %sb, 0u, %idx, 19u
-    store %23, mat3x2<f32>(vec2<f32>(0.0f))
-    %24:ptr<storage, mat3x3<f32>, read_write> = access %sb, 0u, %idx, 20u
-    store %24, mat3x3<f32>(vec3<f32>(0.0f))
-    %25:ptr<storage, mat3x4<f32>, read_write> = access %sb, 0u, %idx, 21u
-    store %25, mat3x4<f32>(vec4<f32>(0.0f))
-    %26:ptr<storage, mat4x2<f32>, read_write> = access %sb, 0u, %idx, 22u
-    store %26, mat4x2<f32>(vec2<f32>(0.0f))
-    %27:ptr<storage, mat4x3<f32>, read_write> = access %sb, 0u, %idx, 23u
-    store %27, mat4x3<f32>(vec3<f32>(0.0f))
-    %28:ptr<storage, mat4x4<f32>, read_write> = access %sb, 0u, %idx, 24u
-    store %28, mat4x4<f32>(vec4<f32>(0.0f))
-    %29:ptr<storage, mat2x2<f16>, read_write> = access %sb, 0u, %idx, 25u
-    store %29, mat2x2<f16>(vec2<f16>(0.0h))
-    %30:ptr<storage, mat2x3<f16>, read_write> = access %sb, 0u, %idx, 26u
-    store %30, mat2x3<f16>(vec3<f16>(0.0h))
-    %31:ptr<storage, mat2x4<f16>, read_write> = access %sb, 0u, %idx, 27u
-    store %31, mat2x4<f16>(vec4<f16>(0.0h))
-    %32:ptr<storage, mat3x2<f16>, read_write> = access %sb, 0u, %idx, 28u
-    store %32, mat3x2<f16>(vec2<f16>(0.0h))
-    %33:ptr<storage, mat3x3<f16>, read_write> = access %sb, 0u, %idx, 29u
-    store %33, mat3x3<f16>(vec3<f16>(0.0h))
-    %34:ptr<storage, mat3x4<f16>, read_write> = access %sb, 0u, %idx, 30u
-    store %34, mat3x4<f16>(vec4<f16>(0.0h))
-    %35:ptr<storage, mat4x2<f16>, read_write> = access %sb, 0u, %idx, 31u
-    store %35, mat4x2<f16>(vec2<f16>(0.0h))
-    %36:ptr<storage, mat4x3<f16>, read_write> = access %sb, 0u, %idx, 32u
-    store %36, mat4x3<f16>(vec3<f16>(0.0h))
-    %37:ptr<storage, mat4x4<f16>, read_write> = access %sb, 0u, %idx, 33u
-    store %37, mat4x4<f16>(vec4<f16>(0.0h))
-    %38:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 0u, %idx, 34u
-    store %38, array<vec3<f32>, 2>(vec3<f32>(0.0f))
-    %39:ptr<storage, array<mat4x2<f16>, 2>, read_write> = access %sb, 0u, %idx, 35u
-    store %39, array<mat4x2<f16>, 2>(mat4x2<f16>(vec2<f16>(0.0h)))
+    %22:void = call %tint_store_and_preserve_padding, %21, mat2x3<f32>(vec3<f32>(0.0f))
+    %24:ptr<storage, mat2x4<f32>, read_write> = access %sb, 0u, %idx, 18u
+    store %24, mat2x4<f32>(vec4<f32>(0.0f))
+    %25:ptr<storage, mat3x2<f32>, read_write> = access %sb, 0u, %idx, 19u
+    store %25, mat3x2<f32>(vec2<f32>(0.0f))
+    %26:ptr<storage, mat3x3<f32>, read_write> = access %sb, 0u, %idx, 20u
+    %27:void = call %tint_store_and_preserve_padding_1, %26, mat3x3<f32>(vec3<f32>(0.0f))
+    %29:ptr<storage, mat3x4<f32>, read_write> = access %sb, 0u, %idx, 21u
+    store %29, mat3x4<f32>(vec4<f32>(0.0f))
+    %30:ptr<storage, mat4x2<f32>, read_write> = access %sb, 0u, %idx, 22u
+    store %30, mat4x2<f32>(vec2<f32>(0.0f))
+    %31:ptr<storage, mat4x3<f32>, read_write> = access %sb, 0u, %idx, 23u
+    %32:void = call %tint_store_and_preserve_padding_2, %31, mat4x3<f32>(vec3<f32>(0.0f))
+    %34:ptr<storage, mat4x4<f32>, read_write> = access %sb, 0u, %idx, 24u
+    store %34, mat4x4<f32>(vec4<f32>(0.0f))
+    %35:ptr<storage, mat2x2<f16>, read_write> = access %sb, 0u, %idx, 25u
+    store %35, mat2x2<f16>(vec2<f16>(0.0h))
+    %36:ptr<storage, mat2x3<f16>, read_write> = access %sb, 0u, %idx, 26u
+    %37:void = call %tint_store_and_preserve_padding_3, %36, mat2x3<f16>(vec3<f16>(0.0h))
+    %39:ptr<storage, mat2x4<f16>, read_write> = access %sb, 0u, %idx, 27u
+    store %39, mat2x4<f16>(vec4<f16>(0.0h))
+    %40:ptr<storage, mat3x2<f16>, read_write> = access %sb, 0u, %idx, 28u
+    store %40, mat3x2<f16>(vec2<f16>(0.0h))
+    %41:ptr<storage, mat3x3<f16>, read_write> = access %sb, 0u, %idx, 29u
+    %42:void = call %tint_store_and_preserve_padding_4, %41, mat3x3<f16>(vec3<f16>(0.0h))
+    %44:ptr<storage, mat3x4<f16>, read_write> = access %sb, 0u, %idx, 30u
+    store %44, mat3x4<f16>(vec4<f16>(0.0h))
+    %45:ptr<storage, mat4x2<f16>, read_write> = access %sb, 0u, %idx, 31u
+    store %45, mat4x2<f16>(vec2<f16>(0.0h))
+    %46:ptr<storage, mat4x3<f16>, read_write> = access %sb, 0u, %idx, 32u
+    %47:void = call %tint_store_and_preserve_padding_5, %46, mat4x3<f16>(vec3<f16>(0.0h))
+    %49:ptr<storage, mat4x4<f16>, read_write> = access %sb, 0u, %idx, 33u
+    store %49, mat4x4<f16>(vec4<f16>(0.0h))
+    %50:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 0u, %idx, 34u
+    %51:void = call %tint_store_and_preserve_padding_6, %50, array<vec3<f32>, 2>(vec3<f32>(0.0f))
+    %53:ptr<storage, array<mat4x2<f16>, 2>, read_write> = access %sb, 0u, %idx, 35u
+    store %53, array<mat4x2<f16>, 2>(mat4x2<f16>(vec2<f16>(0.0h)))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %56:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %57:vec3<f32> = access %value_param, 0u
+    store %56, %57
+    %58:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %59:vec3<f32> = access %value_param, 1u
+    store %58, %59
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat3x3<f32>, read_write>, %value_param_1:mat3x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %62:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %63:vec3<f32> = access %value_param_1, 0u
+    store %62, %63
+    %64:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %65:vec3<f32> = access %value_param_1, 1u
+    store %64, %65
+    %66:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
+    %67:vec3<f32> = access %value_param_1, 2u
+    store %66, %67
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f32>, read_write>, %value_param_2:mat4x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B5: {
+    %70:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %71:vec3<f32> = access %value_param_2, 0u
+    store %70, %71
+    %72:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %73:vec3<f32> = access %value_param_2, 1u
+    store %72, %73
+    %74:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
+    %75:vec3<f32> = access %value_param_2, 2u
+    store %74, %75
+    %76:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u
+    %77:vec3<f32> = access %value_param_2, 3u
+    store %76, %77
+    ret
+  }
+}
+%tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, mat2x3<f16>, read_write>, %value_param_3:mat2x3<f16>):void {  # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
+  $B6: {
+    %80:ptr<storage, vec3<f16>, read_write> = access %target_3, 0u
+    %81:vec3<f16> = access %value_param_3, 0u
+    store %80, %81
+    %82:ptr<storage, vec3<f16>, read_write> = access %target_3, 1u
+    %83:vec3<f16> = access %value_param_3, 1u
+    store %82, %83
+    ret
+  }
+}
+%tint_store_and_preserve_padding_4 = func(%target_4:ptr<storage, mat3x3<f16>, read_write>, %value_param_4:mat3x3<f16>):void {  # %tint_store_and_preserve_padding_4: 'tint_store_and_preserve_padding', %target_4: 'target', %value_param_4: 'value_param'
+  $B7: {
+    %86:ptr<storage, vec3<f16>, read_write> = access %target_4, 0u
+    %87:vec3<f16> = access %value_param_4, 0u
+    store %86, %87
+    %88:ptr<storage, vec3<f16>, read_write> = access %target_4, 1u
+    %89:vec3<f16> = access %value_param_4, 1u
+    store %88, %89
+    %90:ptr<storage, vec3<f16>, read_write> = access %target_4, 2u
+    %91:vec3<f16> = access %value_param_4, 2u
+    store %90, %91
+    ret
+  }
+}
+%tint_store_and_preserve_padding_5 = func(%target_5:ptr<storage, mat4x3<f16>, read_write>, %value_param_5:mat4x3<f16>):void {  # %tint_store_and_preserve_padding_5: 'tint_store_and_preserve_padding', %target_5: 'target', %value_param_5: 'value_param'
+  $B8: {
+    %94:ptr<storage, vec3<f16>, read_write> = access %target_5, 0u
+    %95:vec3<f16> = access %value_param_5, 0u
+    store %94, %95
+    %96:ptr<storage, vec3<f16>, read_write> = access %target_5, 1u
+    %97:vec3<f16> = access %value_param_5, 1u
+    store %96, %97
+    %98:ptr<storage, vec3<f16>, read_write> = access %target_5, 2u
+    %99:vec3<f16> = access %value_param_5, 2u
+    store %98, %99
+    %100:ptr<storage, vec3<f16>, read_write> = access %target_5, 3u
+    %101:vec3<f16> = access %value_param_5, 3u
+    store %100, %101
+    ret
+  }
+}
+%tint_store_and_preserve_padding_6 = func(%target_6:ptr<storage, array<vec3<f32>, 2>, read_write>, %value_param_6:array<vec3<f32>, 2>):void {  # %tint_store_and_preserve_padding_6: 'tint_store_and_preserve_padding', %target_6: 'target', %value_param_6: 'value_param'
+  $B9: {
+    loop [i: $B10, b: $B11, c: $B12] {  # loop_1
+      $B10: {  # initializer
+        next_iteration 0u  # -> $B11
+      }
+      $B11 (%idx_1:u32): {  # body
+        %105:bool = gte %idx_1, 2u
+        if %105 [t: $B13] {  # if_1
+          $B13: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %106:ptr<storage, vec3<f32>, read_write> = access %target_6, %idx_1
+        %107:vec3<f32> = access %value_param_6, %idx_1
+        store %106, %107
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %108:u32 = add %idx_1, 1u
+        next_iteration %108  # -> $B11
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.msl b/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.msl
index 9aca6f3..8db9155 100644
--- a/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/static_index/read.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   scalar_i32:i32 @offset(0)
   scalar_f32:f32 @offset(4)
 }
@@ -32,63 +32,178 @@
   array_struct_inner:array<Inner, 4> @offset(552)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<storage, f32, read> = access %sb, 0u
-    %scalar_f32:f32 = load %3
-    %5:ptr<storage, i32, read> = access %sb, 1u
-    %scalar_i32:i32 = load %5
-    %7:ptr<storage, u32, read> = access %sb, 2u
-    %scalar_u32:u32 = load %7
-    %9:ptr<storage, vec2<f32>, read> = access %sb, 3u
-    %vec2_f32:vec2<f32> = load %9
-    %11:ptr<storage, vec2<i32>, read> = access %sb, 4u
-    %vec2_i32:vec2<i32> = load %11
-    %13:ptr<storage, vec2<u32>, read> = access %sb, 5u
-    %vec2_u32:vec2<u32> = load %13
-    %15:ptr<storage, vec3<f32>, read> = access %sb, 6u
-    %vec3_f32:vec3<f32> = load %15
-    %17:ptr<storage, vec3<i32>, read> = access %sb, 7u
-    %vec3_i32:vec3<i32> = load %17
-    %19:ptr<storage, vec3<u32>, read> = access %sb, 8u
-    %vec3_u32:vec3<u32> = load %19
-    %21:ptr<storage, vec4<f32>, read> = access %sb, 9u
-    %vec4_f32:vec4<f32> = load %21
-    %23:ptr<storage, vec4<i32>, read> = access %sb, 10u
-    %vec4_i32:vec4<i32> = load %23
-    %25:ptr<storage, vec4<u32>, read> = access %sb, 11u
-    %vec4_u32:vec4<u32> = load %25
-    %27:ptr<storage, mat2x2<f32>, read> = access %sb, 12u
-    %mat2x2_f32:mat2x2<f32> = load %27
-    %29:ptr<storage, mat2x3<f32>, read> = access %sb, 13u
-    %mat2x3_f32:mat2x3<f32> = load %29
-    %31:ptr<storage, mat2x4<f32>, read> = access %sb, 14u
-    %mat2x4_f32:mat2x4<f32> = load %31
-    %33:ptr<storage, mat3x2<f32>, read> = access %sb, 15u
-    %mat3x2_f32:mat3x2<f32> = load %33
-    %35:ptr<storage, mat3x3<f32>, read> = access %sb, 16u
-    %mat3x3_f32:mat3x3<f32> = load %35
-    %37:ptr<storage, mat3x4<f32>, read> = access %sb, 17u
-    %mat3x4_f32:mat3x4<f32> = load %37
-    %39:ptr<storage, mat4x2<f32>, read> = access %sb, 18u
-    %mat4x2_f32:mat4x2<f32> = load %39
-    %41:ptr<storage, mat4x3<f32>, read> = access %sb, 19u
-    %mat4x3_f32:mat4x3<f32> = load %41
-    %43:ptr<storage, mat4x4<f32>, read> = access %sb, 20u
-    %mat4x4_f32:mat4x4<f32> = load %43
-    %45:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 21u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %45
-    %47:ptr<storage, Inner, read> = access %sb, 22u
-    %struct_inner:Inner = load %47
-    %49:ptr<storage, array<Inner, 4>, read> = access %sb, 23u
-    %array_struct_inner:array<Inner, 4> = load %49
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<storage, f32, read> = access %sb, 0u
+    %5:f32 = load %4
+    %scalar_f32:f32 = let %5
+    %7:ptr<storage, i32, read> = access %sb, 1u
+    %8:i32 = load %7
+    %scalar_i32:i32 = let %8
+    %10:ptr<storage, u32, read> = access %sb, 2u
+    %11:u32 = load %10
+    %scalar_u32:u32 = let %11
+    %13:ptr<storage, vec2<f32>, read> = access %sb, 3u
+    %14:vec2<f32> = load %13
+    %vec2_f32:vec2<f32> = let %14
+    %16:ptr<storage, vec2<i32>, read> = access %sb, 4u
+    %17:vec2<i32> = load %16
+    %vec2_i32:vec2<i32> = let %17
+    %19:ptr<storage, vec2<u32>, read> = access %sb, 5u
+    %20:vec2<u32> = load %19
+    %vec2_u32:vec2<u32> = let %20
+    %22:ptr<storage, vec3<f32>, read> = access %sb, 6u
+    %23:vec3<f32> = load %22
+    %vec3_f32:vec3<f32> = let %23
+    %25:ptr<storage, vec3<i32>, read> = access %sb, 7u
+    %26:vec3<i32> = load %25
+    %vec3_i32:vec3<i32> = let %26
+    %28:ptr<storage, vec3<u32>, read> = access %sb, 8u
+    %29:vec3<u32> = load %28
+    %vec3_u32:vec3<u32> = let %29
+    %31:ptr<storage, vec4<f32>, read> = access %sb, 9u
+    %32:vec4<f32> = load %31
+    %vec4_f32:vec4<f32> = let %32
+    %34:ptr<storage, vec4<i32>, read> = access %sb, 10u
+    %35:vec4<i32> = load %34
+    %vec4_i32:vec4<i32> = let %35
+    %37:ptr<storage, vec4<u32>, read> = access %sb, 11u
+    %38:vec4<u32> = load %37
+    %vec4_u32:vec4<u32> = let %38
+    %40:ptr<storage, mat2x2<f32>, read> = access %sb, 12u
+    %41:mat2x2<f32> = load %40
+    %mat2x2_f32:mat2x2<f32> = let %41
+    %43:ptr<storage, mat2x3<f32>, read> = access %sb, 13u
+    %44:mat2x3<f32> = load %43
+    %mat2x3_f32:mat2x3<f32> = let %44
+    %46:ptr<storage, mat2x4<f32>, read> = access %sb, 14u
+    %47:mat2x4<f32> = load %46
+    %mat2x4_f32:mat2x4<f32> = let %47
+    %49:ptr<storage, mat3x2<f32>, read> = access %sb, 15u
+    %50:mat3x2<f32> = load %49
+    %mat3x2_f32:mat3x2<f32> = let %50
+    %52:ptr<storage, mat3x3<f32>, read> = access %sb, 16u
+    %53:mat3x3<f32> = load %52
+    %mat3x3_f32:mat3x3<f32> = let %53
+    %55:ptr<storage, mat3x4<f32>, read> = access %sb, 17u
+    %56:mat3x4<f32> = load %55
+    %mat3x4_f32:mat3x4<f32> = let %56
+    %58:ptr<storage, mat4x2<f32>, read> = access %sb, 18u
+    %59:mat4x2<f32> = load %58
+    %mat4x2_f32:mat4x2<f32> = let %59
+    %61:ptr<storage, mat4x3<f32>, read> = access %sb, 19u
+    %62:mat4x3<f32> = load %61
+    %mat4x3_f32:mat4x3<f32> = let %62
+    %64:ptr<storage, mat4x4<f32>, read> = access %sb, 20u
+    %65:mat4x4<f32> = load %64
+    %mat4x4_f32:mat4x4<f32> = let %65
+    %67:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 21u
+    %68:array<vec3<f32>, 2> = load %67
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %68
+    %70:ptr<storage, Inner, read> = access %sb, 22u
+    %71:Inner = load %70
+    %struct_inner:Inner = let %71
+    %73:ptr<storage, array<Inner, 4>, read> = access %sb, 23u
+    %74:array<Inner, 4> = load %73
+    %array_struct_inner:array<Inner, 4> = let %74
+    %76:i32 = call %tint_f32_to_i32, %scalar_f32
+    %78:i32 = add %76, %scalar_i32
+    %79:i32 = let %78
+    %80:i32 = convert %scalar_u32
+    %81:i32 = add %79, %80
+    %82:i32 = let %81
+    %83:f32 = access %vec2_f32, 0u
+    %84:i32 = call %tint_f32_to_i32, %83
+    %85:i32 = add %82, %84
+    %86:i32 = access %vec2_i32, 0u
+    %87:i32 = add %85, %86
+    %88:i32 = let %87
+    %89:u32 = access %vec2_u32, 0u
+    %90:i32 = convert %89
+    %91:i32 = add %88, %90
+    %92:i32 = let %91
+    %93:f32 = access %vec3_f32, 1u
+    %94:i32 = call %tint_f32_to_i32, %93
+    %95:i32 = add %92, %94
+    %96:i32 = access %vec3_i32, 1u
+    %97:i32 = add %95, %96
+    %98:i32 = let %97
+    %99:u32 = access %vec3_u32, 1u
+    %100:i32 = convert %99
+    %101:i32 = add %98, %100
+    %102:i32 = let %101
+    %103:f32 = access %vec4_f32, 2u
+    %104:i32 = call %tint_f32_to_i32, %103
+    %105:i32 = add %102, %104
+    %106:i32 = access %vec4_i32, 2u
+    %107:i32 = add %105, %106
+    %108:i32 = let %107
+    %109:u32 = access %vec4_u32, 2u
+    %110:i32 = convert %109
+    %111:i32 = add %108, %110
+    %112:i32 = let %111
+    %113:f32 = access %mat2x2_f32, 0i, 0u
+    %114:i32 = call %tint_f32_to_i32, %113
+    %115:i32 = add %112, %114
+    %116:i32 = let %115
+    %117:f32 = access %mat2x3_f32, 0i, 0u
+    %118:i32 = call %tint_f32_to_i32, %117
+    %119:i32 = add %116, %118
+    %120:i32 = let %119
+    %121:f32 = access %mat2x4_f32, 0i, 0u
+    %122:i32 = call %tint_f32_to_i32, %121
+    %123:i32 = add %120, %122
+    %124:i32 = let %123
+    %125:f32 = access %mat3x2_f32, 0i, 0u
+    %126:i32 = call %tint_f32_to_i32, %125
+    %127:i32 = add %124, %126
+    %128:i32 = let %127
+    %129:f32 = access %mat3x3_f32, 0i, 0u
+    %130:i32 = call %tint_f32_to_i32, %129
+    %131:i32 = add %128, %130
+    %132:i32 = let %131
+    %133:f32 = access %mat3x4_f32, 0i, 0u
+    %134:i32 = call %tint_f32_to_i32, %133
+    %135:i32 = add %132, %134
+    %136:i32 = let %135
+    %137:f32 = access %mat4x2_f32, 0i, 0u
+    %138:i32 = call %tint_f32_to_i32, %137
+    %139:i32 = add %136, %138
+    %140:i32 = let %139
+    %141:f32 = access %mat4x3_f32, 0i, 0u
+    %142:i32 = call %tint_f32_to_i32, %141
+    %143:i32 = add %140, %142
+    %144:i32 = let %143
+    %145:f32 = access %mat4x4_f32, 0i, 0u
+    %146:i32 = call %tint_f32_to_i32, %145
+    %147:i32 = add %144, %146
+    %148:i32 = let %147
+    %149:f32 = access %arr2_vec3_f32, 0i, 0u
+    %150:i32 = call %tint_f32_to_i32, %149
+    %151:i32 = add %148, %150
+    %152:i32 = access %struct_inner, 0u
+    %153:i32 = add %151, %152
+    %154:i32 = access %array_struct_inner, 0i, 0u
+    %155:i32 = add %153, %154
+    store %s, %155
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %157:i32 = convert %value
+    %158:bool = gte %value, -2147483648.0f
+    %159:i32 = select -2147483648i, %157, %158
+    %160:bool = lte %value, 2147483520.0f
+    %161:i32 = select 2147483647i, %159, %160
+    ret %161
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.msl
index 625cb04..799ebd2 100644
--- a/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/static_index/read_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   scalar_i32:i32 @offset(0)
   scalar_f32:f32 @offset(4)
   scalar_f16:f16 @offset(8)
@@ -47,91 +47,285 @@
   array_struct_inner:array<Inner, 4> @offset(812)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<storage, f32, read> = access %sb, 0u
-    %scalar_f32:f32 = load %3
-    %5:ptr<storage, i32, read> = access %sb, 1u
-    %scalar_i32:i32 = load %5
-    %7:ptr<storage, u32, read> = access %sb, 2u
-    %scalar_u32:u32 = load %7
-    %9:ptr<storage, f16, read> = access %sb, 3u
-    %scalar_f16:f16 = load %9
-    %11:ptr<storage, vec2<f32>, read> = access %sb, 4u
-    %vec2_f32:vec2<f32> = load %11
-    %13:ptr<storage, vec2<i32>, read> = access %sb, 5u
-    %vec2_i32:vec2<i32> = load %13
-    %15:ptr<storage, vec2<u32>, read> = access %sb, 6u
-    %vec2_u32:vec2<u32> = load %15
-    %17:ptr<storage, vec2<f16>, read> = access %sb, 7u
-    %vec2_f16:vec2<f16> = load %17
-    %19:ptr<storage, vec3<f32>, read> = access %sb, 8u
-    %vec3_f32:vec3<f32> = load %19
-    %21:ptr<storage, vec3<i32>, read> = access %sb, 9u
-    %vec3_i32:vec3<i32> = load %21
-    %23:ptr<storage, vec3<u32>, read> = access %sb, 10u
-    %vec3_u32:vec3<u32> = load %23
-    %25:ptr<storage, vec3<f16>, read> = access %sb, 11u
-    %vec3_f16:vec3<f16> = load %25
-    %27:ptr<storage, vec4<f32>, read> = access %sb, 12u
-    %vec4_f32:vec4<f32> = load %27
-    %29:ptr<storage, vec4<i32>, read> = access %sb, 13u
-    %vec4_i32:vec4<i32> = load %29
-    %31:ptr<storage, vec4<u32>, read> = access %sb, 14u
-    %vec4_u32:vec4<u32> = load %31
-    %33:ptr<storage, vec4<f16>, read> = access %sb, 15u
-    %vec4_f16:vec4<f16> = load %33
-    %35:ptr<storage, mat2x2<f32>, read> = access %sb, 16u
-    %mat2x2_f32:mat2x2<f32> = load %35
-    %37:ptr<storage, mat2x3<f32>, read> = access %sb, 17u
-    %mat2x3_f32:mat2x3<f32> = load %37
-    %39:ptr<storage, mat2x4<f32>, read> = access %sb, 18u
-    %mat2x4_f32:mat2x4<f32> = load %39
-    %41:ptr<storage, mat3x2<f32>, read> = access %sb, 19u
-    %mat3x2_f32:mat3x2<f32> = load %41
-    %43:ptr<storage, mat3x3<f32>, read> = access %sb, 20u
-    %mat3x3_f32:mat3x3<f32> = load %43
-    %45:ptr<storage, mat3x4<f32>, read> = access %sb, 21u
-    %mat3x4_f32:mat3x4<f32> = load %45
-    %47:ptr<storage, mat4x2<f32>, read> = access %sb, 22u
-    %mat4x2_f32:mat4x2<f32> = load %47
-    %49:ptr<storage, mat4x3<f32>, read> = access %sb, 23u
-    %mat4x3_f32:mat4x3<f32> = load %49
-    %51:ptr<storage, mat4x4<f32>, read> = access %sb, 24u
-    %mat4x4_f32:mat4x4<f32> = load %51
-    %53:ptr<storage, mat2x2<f16>, read> = access %sb, 25u
-    %mat2x2_f16:mat2x2<f16> = load %53
-    %55:ptr<storage, mat2x3<f16>, read> = access %sb, 26u
-    %mat2x3_f16:mat2x3<f16> = load %55
-    %57:ptr<storage, mat2x4<f16>, read> = access %sb, 27u
-    %mat2x4_f16:mat2x4<f16> = load %57
-    %59:ptr<storage, mat3x2<f16>, read> = access %sb, 28u
-    %mat3x2_f16:mat3x2<f16> = load %59
-    %61:ptr<storage, mat3x3<f16>, read> = access %sb, 29u
-    %mat3x3_f16:mat3x3<f16> = load %61
-    %63:ptr<storage, mat3x4<f16>, read> = access %sb, 30u
-    %mat3x4_f16:mat3x4<f16> = load %63
-    %65:ptr<storage, mat4x2<f16>, read> = access %sb, 31u
-    %mat4x2_f16:mat4x2<f16> = load %65
-    %67:ptr<storage, mat4x3<f16>, read> = access %sb, 32u
-    %mat4x3_f16:mat4x3<f16> = load %67
-    %69:ptr<storage, mat4x4<f16>, read> = access %sb, 33u
-    %mat4x4_f16:mat4x4<f16> = load %69
-    %71:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 34u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %71
-    %73:ptr<storage, array<mat4x2<f16>, 2>, read> = access %sb, 35u
-    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = load %73
-    %75:ptr<storage, Inner, read> = access %sb, 36u
-    %struct_inner:Inner = load %75
-    %77:ptr<storage, array<Inner, 4>, read> = access %sb, 37u
-    %array_struct_inner:array<Inner, 4> = load %77
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<storage, f32, read> = access %sb, 0u
+    %5:f32 = load %4
+    %scalar_f32:f32 = let %5
+    %7:ptr<storage, i32, read> = access %sb, 1u
+    %8:i32 = load %7
+    %scalar_i32:i32 = let %8
+    %10:ptr<storage, u32, read> = access %sb, 2u
+    %11:u32 = load %10
+    %scalar_u32:u32 = let %11
+    %13:ptr<storage, f16, read> = access %sb, 3u
+    %14:f16 = load %13
+    %scalar_f16:f16 = let %14
+    %16:ptr<storage, vec2<f32>, read> = access %sb, 4u
+    %17:vec2<f32> = load %16
+    %vec2_f32:vec2<f32> = let %17
+    %19:ptr<storage, vec2<i32>, read> = access %sb, 5u
+    %20:vec2<i32> = load %19
+    %vec2_i32:vec2<i32> = let %20
+    %22:ptr<storage, vec2<u32>, read> = access %sb, 6u
+    %23:vec2<u32> = load %22
+    %vec2_u32:vec2<u32> = let %23
+    %25:ptr<storage, vec2<f16>, read> = access %sb, 7u
+    %26:vec2<f16> = load %25
+    %vec2_f16:vec2<f16> = let %26
+    %28:ptr<storage, vec3<f32>, read> = access %sb, 8u
+    %29:vec3<f32> = load %28
+    %vec3_f32:vec3<f32> = let %29
+    %31:ptr<storage, vec3<i32>, read> = access %sb, 9u
+    %32:vec3<i32> = load %31
+    %vec3_i32:vec3<i32> = let %32
+    %34:ptr<storage, vec3<u32>, read> = access %sb, 10u
+    %35:vec3<u32> = load %34
+    %vec3_u32:vec3<u32> = let %35
+    %37:ptr<storage, vec3<f16>, read> = access %sb, 11u
+    %38:vec3<f16> = load %37
+    %vec3_f16:vec3<f16> = let %38
+    %40:ptr<storage, vec4<f32>, read> = access %sb, 12u
+    %41:vec4<f32> = load %40
+    %vec4_f32:vec4<f32> = let %41
+    %43:ptr<storage, vec4<i32>, read> = access %sb, 13u
+    %44:vec4<i32> = load %43
+    %vec4_i32:vec4<i32> = let %44
+    %46:ptr<storage, vec4<u32>, read> = access %sb, 14u
+    %47:vec4<u32> = load %46
+    %vec4_u32:vec4<u32> = let %47
+    %49:ptr<storage, vec4<f16>, read> = access %sb, 15u
+    %50:vec4<f16> = load %49
+    %vec4_f16:vec4<f16> = let %50
+    %52:ptr<storage, mat2x2<f32>, read> = access %sb, 16u
+    %53:mat2x2<f32> = load %52
+    %mat2x2_f32:mat2x2<f32> = let %53
+    %55:ptr<storage, mat2x3<f32>, read> = access %sb, 17u
+    %56:mat2x3<f32> = load %55
+    %mat2x3_f32:mat2x3<f32> = let %56
+    %58:ptr<storage, mat2x4<f32>, read> = access %sb, 18u
+    %59:mat2x4<f32> = load %58
+    %mat2x4_f32:mat2x4<f32> = let %59
+    %61:ptr<storage, mat3x2<f32>, read> = access %sb, 19u
+    %62:mat3x2<f32> = load %61
+    %mat3x2_f32:mat3x2<f32> = let %62
+    %64:ptr<storage, mat3x3<f32>, read> = access %sb, 20u
+    %65:mat3x3<f32> = load %64
+    %mat3x3_f32:mat3x3<f32> = let %65
+    %67:ptr<storage, mat3x4<f32>, read> = access %sb, 21u
+    %68:mat3x4<f32> = load %67
+    %mat3x4_f32:mat3x4<f32> = let %68
+    %70:ptr<storage, mat4x2<f32>, read> = access %sb, 22u
+    %71:mat4x2<f32> = load %70
+    %mat4x2_f32:mat4x2<f32> = let %71
+    %73:ptr<storage, mat4x3<f32>, read> = access %sb, 23u
+    %74:mat4x3<f32> = load %73
+    %mat4x3_f32:mat4x3<f32> = let %74
+    %76:ptr<storage, mat4x4<f32>, read> = access %sb, 24u
+    %77:mat4x4<f32> = load %76
+    %mat4x4_f32:mat4x4<f32> = let %77
+    %79:ptr<storage, mat2x2<f16>, read> = access %sb, 25u
+    %80:mat2x2<f16> = load %79
+    %mat2x2_f16:mat2x2<f16> = let %80
+    %82:ptr<storage, mat2x3<f16>, read> = access %sb, 26u
+    %83:mat2x3<f16> = load %82
+    %mat2x3_f16:mat2x3<f16> = let %83
+    %85:ptr<storage, mat2x4<f16>, read> = access %sb, 27u
+    %86:mat2x4<f16> = load %85
+    %mat2x4_f16:mat2x4<f16> = let %86
+    %88:ptr<storage, mat3x2<f16>, read> = access %sb, 28u
+    %89:mat3x2<f16> = load %88
+    %mat3x2_f16:mat3x2<f16> = let %89
+    %91:ptr<storage, mat3x3<f16>, read> = access %sb, 29u
+    %92:mat3x3<f16> = load %91
+    %mat3x3_f16:mat3x3<f16> = let %92
+    %94:ptr<storage, mat3x4<f16>, read> = access %sb, 30u
+    %95:mat3x4<f16> = load %94
+    %mat3x4_f16:mat3x4<f16> = let %95
+    %97:ptr<storage, mat4x2<f16>, read> = access %sb, 31u
+    %98:mat4x2<f16> = load %97
+    %mat4x2_f16:mat4x2<f16> = let %98
+    %100:ptr<storage, mat4x3<f16>, read> = access %sb, 32u
+    %101:mat4x3<f16> = load %100
+    %mat4x3_f16:mat4x3<f16> = let %101
+    %103:ptr<storage, mat4x4<f16>, read> = access %sb, 33u
+    %104:mat4x4<f16> = load %103
+    %mat4x4_f16:mat4x4<f16> = let %104
+    %106:ptr<storage, array<vec3<f32>, 2>, read> = access %sb, 34u
+    %107:array<vec3<f32>, 2> = load %106
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %107
+    %109:ptr<storage, array<mat4x2<f16>, 2>, read> = access %sb, 35u
+    %110:array<mat4x2<f16>, 2> = load %109
+    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %110
+    %112:ptr<storage, Inner, read> = access %sb, 36u
+    %113:Inner = load %112
+    %struct_inner:Inner = let %113
+    %115:ptr<storage, array<Inner, 4>, read> = access %sb, 37u
+    %116:array<Inner, 4> = load %115
+    %array_struct_inner:array<Inner, 4> = let %116
+    %118:i32 = call %tint_f32_to_i32, %scalar_f32
+    %120:i32 = add %118, %scalar_i32
+    %121:i32 = let %120
+    %122:i32 = convert %scalar_u32
+    %123:i32 = add %121, %122
+    %124:i32 = let %123
+    %125:i32 = call %tint_f16_to_i32, %scalar_f16
+    %127:i32 = add %124, %125
+    %128:i32 = let %127
+    %129:f32 = access %vec2_f32, 0u
+    %130:i32 = call %tint_f32_to_i32, %129
+    %131:i32 = add %128, %130
+    %132:i32 = access %vec2_i32, 0u
+    %133:i32 = add %131, %132
+    %134:i32 = let %133
+    %135:u32 = access %vec2_u32, 0u
+    %136:i32 = convert %135
+    %137:i32 = add %134, %136
+    %138:i32 = let %137
+    %139:f16 = access %vec2_f16, 0u
+    %140:i32 = call %tint_f16_to_i32, %139
+    %141:i32 = add %138, %140
+    %142:i32 = let %141
+    %143:f32 = access %vec3_f32, 1u
+    %144:i32 = call %tint_f32_to_i32, %143
+    %145:i32 = add %142, %144
+    %146:i32 = access %vec3_i32, 1u
+    %147:i32 = add %145, %146
+    %148:i32 = let %147
+    %149:u32 = access %vec3_u32, 1u
+    %150:i32 = convert %149
+    %151:i32 = add %148, %150
+    %152:i32 = let %151
+    %153:f16 = access %vec3_f16, 1u
+    %154:i32 = call %tint_f16_to_i32, %153
+    %155:i32 = add %152, %154
+    %156:i32 = let %155
+    %157:f32 = access %vec4_f32, 2u
+    %158:i32 = call %tint_f32_to_i32, %157
+    %159:i32 = add %156, %158
+    %160:i32 = access %vec4_i32, 2u
+    %161:i32 = add %159, %160
+    %162:i32 = let %161
+    %163:u32 = access %vec4_u32, 2u
+    %164:i32 = convert %163
+    %165:i32 = add %162, %164
+    %166:i32 = let %165
+    %167:f16 = access %vec4_f16, 2u
+    %168:i32 = call %tint_f16_to_i32, %167
+    %169:i32 = add %166, %168
+    %170:i32 = let %169
+    %171:f32 = access %mat2x2_f32, 0i, 0u
+    %172:i32 = call %tint_f32_to_i32, %171
+    %173:i32 = add %170, %172
+    %174:i32 = let %173
+    %175:f32 = access %mat2x3_f32, 0i, 0u
+    %176:i32 = call %tint_f32_to_i32, %175
+    %177:i32 = add %174, %176
+    %178:i32 = let %177
+    %179:f32 = access %mat2x4_f32, 0i, 0u
+    %180:i32 = call %tint_f32_to_i32, %179
+    %181:i32 = add %178, %180
+    %182:i32 = let %181
+    %183:f32 = access %mat3x2_f32, 0i, 0u
+    %184:i32 = call %tint_f32_to_i32, %183
+    %185:i32 = add %182, %184
+    %186:i32 = let %185
+    %187:f32 = access %mat3x3_f32, 0i, 0u
+    %188:i32 = call %tint_f32_to_i32, %187
+    %189:i32 = add %186, %188
+    %190:i32 = let %189
+    %191:f32 = access %mat3x4_f32, 0i, 0u
+    %192:i32 = call %tint_f32_to_i32, %191
+    %193:i32 = add %190, %192
+    %194:i32 = let %193
+    %195:f32 = access %mat4x2_f32, 0i, 0u
+    %196:i32 = call %tint_f32_to_i32, %195
+    %197:i32 = add %194, %196
+    %198:i32 = let %197
+    %199:f32 = access %mat4x3_f32, 0i, 0u
+    %200:i32 = call %tint_f32_to_i32, %199
+    %201:i32 = add %198, %200
+    %202:i32 = let %201
+    %203:f32 = access %mat4x4_f32, 0i, 0u
+    %204:i32 = call %tint_f32_to_i32, %203
+    %205:i32 = add %202, %204
+    %206:i32 = let %205
+    %207:f16 = access %mat2x2_f16, 0i, 0u
+    %208:i32 = call %tint_f16_to_i32, %207
+    %209:i32 = add %206, %208
+    %210:i32 = let %209
+    %211:f16 = access %mat2x3_f16, 0i, 0u
+    %212:i32 = call %tint_f16_to_i32, %211
+    %213:i32 = add %210, %212
+    %214:i32 = let %213
+    %215:f16 = access %mat2x4_f16, 0i, 0u
+    %216:i32 = call %tint_f16_to_i32, %215
+    %217:i32 = add %214, %216
+    %218:i32 = let %217
+    %219:f16 = access %mat3x2_f16, 0i, 0u
+    %220:i32 = call %tint_f16_to_i32, %219
+    %221:i32 = add %218, %220
+    %222:i32 = let %221
+    %223:f16 = access %mat3x3_f16, 0i, 0u
+    %224:i32 = call %tint_f16_to_i32, %223
+    %225:i32 = add %222, %224
+    %226:i32 = let %225
+    %227:f16 = access %mat3x4_f16, 0i, 0u
+    %228:i32 = call %tint_f16_to_i32, %227
+    %229:i32 = add %226, %228
+    %230:i32 = let %229
+    %231:f16 = access %mat4x2_f16, 0i, 0u
+    %232:i32 = call %tint_f16_to_i32, %231
+    %233:i32 = add %230, %232
+    %234:i32 = let %233
+    %235:f16 = access %mat4x3_f16, 0i, 0u
+    %236:i32 = call %tint_f16_to_i32, %235
+    %237:i32 = add %234, %236
+    %238:i32 = let %237
+    %239:f16 = access %mat4x4_f16, 0i, 0u
+    %240:i32 = call %tint_f16_to_i32, %239
+    %241:i32 = add %238, %240
+    %242:i32 = let %241
+    %243:f32 = access %arr2_vec3_f32, 0i, 0u
+    %244:i32 = call %tint_f32_to_i32, %243
+    %245:i32 = add %242, %244
+    %246:i32 = let %245
+    %247:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
+    %248:i32 = call %tint_f16_to_i32, %247
+    %249:i32 = add %246, %248
+    %250:i32 = access %struct_inner, 0u
+    %251:i32 = add %249, %250
+    %252:i32 = access %array_struct_inner, 0i, 0u
+    %253:i32 = add %251, %252
+    store %s, %253
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %255:i32 = convert %value
+    %256:bool = gte %value, -2147483648.0f
+    %257:i32 = select -2147483648i, %255, %256
+    %258:bool = lte %value, 2147483520.0f
+    %259:i32 = select 2147483647i, %257, %258
+    ret %259
+  }
+}
+%tint_f16_to_i32 = func(%value_1:f16):i32 {  # %value_1: 'value'
+  $B4: {
+    %261:i32 = convert %value_1
+    %262:bool = gte %value_1, -65504.0h
+    %263:i32 = select -2147483648i, %261, %262
+    %264:bool = lte %value_1, 65504.0h
+    %265:i32 = select 2147483647i, %263, %264
+    ret %265
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.msl b/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.msl
index 8da450a..25f17fd 100644
--- a/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/static_index/write.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   scalar_i32:i32 @offset(0)
   scalar_f32:f32 @offset(4)
 }
@@ -32,12 +32,12 @@
   array_struct_inner:array<Inner, 4> @offset(552)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, f32, read_write> = access %sb, 0u
     store %3, 0.0f
     %4:ptr<storage, i32, read_write> = access %sb, 1u
@@ -65,27 +65,95 @@
     %15:ptr<storage, mat2x2<f32>, read_write> = access %sb, 12u
     store %15, mat2x2<f32>(vec2<f32>(0.0f))
     %16:ptr<storage, mat2x3<f32>, read_write> = access %sb, 13u
-    store %16, mat2x3<f32>(vec3<f32>(0.0f))
-    %17:ptr<storage, mat2x4<f32>, read_write> = access %sb, 14u
-    store %17, mat2x4<f32>(vec4<f32>(0.0f))
-    %18:ptr<storage, mat3x2<f32>, read_write> = access %sb, 15u
-    store %18, mat3x2<f32>(vec2<f32>(0.0f))
-    %19:ptr<storage, mat3x3<f32>, read_write> = access %sb, 16u
-    store %19, mat3x3<f32>(vec3<f32>(0.0f))
-    %20:ptr<storage, mat3x4<f32>, read_write> = access %sb, 17u
-    store %20, mat3x4<f32>(vec4<f32>(0.0f))
-    %21:ptr<storage, mat4x2<f32>, read_write> = access %sb, 18u
-    store %21, mat4x2<f32>(vec2<f32>(0.0f))
-    %22:ptr<storage, mat4x3<f32>, read_write> = access %sb, 19u
-    store %22, mat4x3<f32>(vec3<f32>(0.0f))
-    %23:ptr<storage, mat4x4<f32>, read_write> = access %sb, 20u
-    store %23, mat4x4<f32>(vec4<f32>(0.0f))
-    %24:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 21u
-    store %24, array<vec3<f32>, 2>(vec3<f32>(0.0f))
-    %25:ptr<storage, Inner, read_write> = access %sb, 22u
-    store %25, Inner(0i, 0.0f)
-    %26:ptr<storage, array<Inner, 4>, read_write> = access %sb, 23u
-    store %26, array<Inner, 4>(Inner(0i, 0.0f))
+    %17:void = call %tint_store_and_preserve_padding, %16, mat2x3<f32>(vec3<f32>(0.0f))
+    %19:ptr<storage, mat2x4<f32>, read_write> = access %sb, 14u
+    store %19, mat2x4<f32>(vec4<f32>(0.0f))
+    %20:ptr<storage, mat3x2<f32>, read_write> = access %sb, 15u
+    store %20, mat3x2<f32>(vec2<f32>(0.0f))
+    %21:ptr<storage, mat3x3<f32>, read_write> = access %sb, 16u
+    %22:void = call %tint_store_and_preserve_padding_1, %21, mat3x3<f32>(vec3<f32>(0.0f))
+    %24:ptr<storage, mat3x4<f32>, read_write> = access %sb, 17u
+    store %24, mat3x4<f32>(vec4<f32>(0.0f))
+    %25:ptr<storage, mat4x2<f32>, read_write> = access %sb, 18u
+    store %25, mat4x2<f32>(vec2<f32>(0.0f))
+    %26:ptr<storage, mat4x3<f32>, read_write> = access %sb, 19u
+    %27:void = call %tint_store_and_preserve_padding_2, %26, mat4x3<f32>(vec3<f32>(0.0f))
+    %29:ptr<storage, mat4x4<f32>, read_write> = access %sb, 20u
+    store %29, mat4x4<f32>(vec4<f32>(0.0f))
+    %30:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 21u
+    %31:void = call %tint_store_and_preserve_padding_3, %30, array<vec3<f32>, 2>(vec3<f32>(0.0f))
+    %33:ptr<storage, Inner, read_write> = access %sb, 22u
+    store %33, Inner(0i, 0.0f)
+    %34:ptr<storage, array<Inner, 4>, read_write> = access %sb, 23u
+    store %34, array<Inner, 4>(Inner(0i, 0.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %37:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %38:vec3<f32> = access %value_param, 0u
+    store %37, %38
+    %39:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %40:vec3<f32> = access %value_param, 1u
+    store %39, %40
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat3x3<f32>, read_write>, %value_param_1:mat3x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %43:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %44:vec3<f32> = access %value_param_1, 0u
+    store %43, %44
+    %45:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %46:vec3<f32> = access %value_param_1, 1u
+    store %45, %46
+    %47:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
+    %48:vec3<f32> = access %value_param_1, 2u
+    store %47, %48
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f32>, read_write>, %value_param_2:mat4x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B5: {
+    %51:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %52:vec3<f32> = access %value_param_2, 0u
+    store %51, %52
+    %53:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %54:vec3<f32> = access %value_param_2, 1u
+    store %53, %54
+    %55:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
+    %56:vec3<f32> = access %value_param_2, 2u
+    store %55, %56
+    %57:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u
+    %58:vec3<f32> = access %value_param_2, 3u
+    store %57, %58
+    ret
+  }
+}
+%tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, array<vec3<f32>, 2>, read_write>, %value_param_3:array<vec3<f32>, 2>):void {  # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
+  $B6: {
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %62:bool = gte %idx, 2u
+        if %62 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %63:ptr<storage, vec3<f32>, read_write> = access %target_3, %idx
+        %64:vec3<f32> = access %value_param_3, %idx
+        store %63, %64
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %65:u32 = add %idx, 1u
+        next_iteration %65  # -> $B8
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.msl
index be16f05..f4695d3 100644
--- a/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/static_index/write_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   scalar_i32:i32 @offset(0)
   scalar_f32:f32 @offset(4)
   scalar_f16:f16 @offset(8)
@@ -47,12 +47,12 @@
   array_struct_inner:array<Inner, 4> @offset(812)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, f32, read_write> = access %sb, 0u
     store %3, 0.0f
     %4:ptr<storage, i32, read_write> = access %sb, 1u
@@ -88,47 +88,197 @@
     %19:ptr<storage, mat2x2<f32>, read_write> = access %sb, 16u
     store %19, mat2x2<f32>(vec2<f32>(0.0f))
     %20:ptr<storage, mat2x3<f32>, read_write> = access %sb, 17u
-    store %20, mat2x3<f32>(vec3<f32>(0.0f))
-    %21:ptr<storage, mat2x4<f32>, read_write> = access %sb, 18u
-    store %21, mat2x4<f32>(vec4<f32>(0.0f))
-    %22:ptr<storage, mat3x2<f32>, read_write> = access %sb, 19u
-    store %22, mat3x2<f32>(vec2<f32>(0.0f))
-    %23:ptr<storage, mat3x3<f32>, read_write> = access %sb, 20u
-    store %23, mat3x3<f32>(vec3<f32>(0.0f))
-    %24:ptr<storage, mat3x4<f32>, read_write> = access %sb, 21u
-    store %24, mat3x4<f32>(vec4<f32>(0.0f))
-    %25:ptr<storage, mat4x2<f32>, read_write> = access %sb, 22u
-    store %25, mat4x2<f32>(vec2<f32>(0.0f))
-    %26:ptr<storage, mat4x3<f32>, read_write> = access %sb, 23u
-    store %26, mat4x3<f32>(vec3<f32>(0.0f))
-    %27:ptr<storage, mat4x4<f32>, read_write> = access %sb, 24u
-    store %27, mat4x4<f32>(vec4<f32>(0.0f))
-    %28:ptr<storage, mat2x2<f16>, read_write> = access %sb, 25u
-    store %28, mat2x2<f16>(vec2<f16>(0.0h))
-    %29:ptr<storage, mat2x3<f16>, read_write> = access %sb, 26u
-    store %29, mat2x3<f16>(vec3<f16>(0.0h))
-    %30:ptr<storage, mat2x4<f16>, read_write> = access %sb, 27u
-    store %30, mat2x4<f16>(vec4<f16>(0.0h))
-    %31:ptr<storage, mat3x2<f16>, read_write> = access %sb, 28u
-    store %31, mat3x2<f16>(vec2<f16>(0.0h))
-    %32:ptr<storage, mat3x3<f16>, read_write> = access %sb, 29u
-    store %32, mat3x3<f16>(vec3<f16>(0.0h))
-    %33:ptr<storage, mat3x4<f16>, read_write> = access %sb, 30u
-    store %33, mat3x4<f16>(vec4<f16>(0.0h))
-    %34:ptr<storage, mat4x2<f16>, read_write> = access %sb, 31u
-    store %34, mat4x2<f16>(vec2<f16>(0.0h))
-    %35:ptr<storage, mat4x3<f16>, read_write> = access %sb, 32u
-    store %35, mat4x3<f16>(vec3<f16>(0.0h))
-    %36:ptr<storage, mat4x4<f16>, read_write> = access %sb, 33u
-    store %36, mat4x4<f16>(vec4<f16>(0.0h))
-    %37:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 34u
-    store %37, array<vec3<f32>, 2>(vec3<f32>(0.0f))
-    %38:ptr<storage, array<mat4x2<f16>, 2>, read_write> = access %sb, 35u
-    store %38, array<mat4x2<f16>, 2>(mat4x2<f16>(vec2<f16>(0.0h)))
-    %39:ptr<storage, Inner, read_write> = access %sb, 36u
-    store %39, Inner(0i, 0.0f, 0.0h)
-    %40:ptr<storage, array<Inner, 4>, read_write> = access %sb, 37u
-    store %40, array<Inner, 4>(Inner(0i, 0.0f, 0.0h))
+    %21:void = call %tint_store_and_preserve_padding, %20, mat2x3<f32>(vec3<f32>(0.0f))
+    %23:ptr<storage, mat2x4<f32>, read_write> = access %sb, 18u
+    store %23, mat2x4<f32>(vec4<f32>(0.0f))
+    %24:ptr<storage, mat3x2<f32>, read_write> = access %sb, 19u
+    store %24, mat3x2<f32>(vec2<f32>(0.0f))
+    %25:ptr<storage, mat3x3<f32>, read_write> = access %sb, 20u
+    %26:void = call %tint_store_and_preserve_padding_1, %25, mat3x3<f32>(vec3<f32>(0.0f))
+    %28:ptr<storage, mat3x4<f32>, read_write> = access %sb, 21u
+    store %28, mat3x4<f32>(vec4<f32>(0.0f))
+    %29:ptr<storage, mat4x2<f32>, read_write> = access %sb, 22u
+    store %29, mat4x2<f32>(vec2<f32>(0.0f))
+    %30:ptr<storage, mat4x3<f32>, read_write> = access %sb, 23u
+    %31:void = call %tint_store_and_preserve_padding_2, %30, mat4x3<f32>(vec3<f32>(0.0f))
+    %33:ptr<storage, mat4x4<f32>, read_write> = access %sb, 24u
+    store %33, mat4x4<f32>(vec4<f32>(0.0f))
+    %34:ptr<storage, mat2x2<f16>, read_write> = access %sb, 25u
+    store %34, mat2x2<f16>(vec2<f16>(0.0h))
+    %35:ptr<storage, mat2x3<f16>, read_write> = access %sb, 26u
+    %36:void = call %tint_store_and_preserve_padding_3, %35, mat2x3<f16>(vec3<f16>(0.0h))
+    %38:ptr<storage, mat2x4<f16>, read_write> = access %sb, 27u
+    store %38, mat2x4<f16>(vec4<f16>(0.0h))
+    %39:ptr<storage, mat3x2<f16>, read_write> = access %sb, 28u
+    store %39, mat3x2<f16>(vec2<f16>(0.0h))
+    %40:ptr<storage, mat3x3<f16>, read_write> = access %sb, 29u
+    %41:void = call %tint_store_and_preserve_padding_4, %40, mat3x3<f16>(vec3<f16>(0.0h))
+    %43:ptr<storage, mat3x4<f16>, read_write> = access %sb, 30u
+    store %43, mat3x4<f16>(vec4<f16>(0.0h))
+    %44:ptr<storage, mat4x2<f16>, read_write> = access %sb, 31u
+    store %44, mat4x2<f16>(vec2<f16>(0.0h))
+    %45:ptr<storage, mat4x3<f16>, read_write> = access %sb, 32u
+    %46:void = call %tint_store_and_preserve_padding_5, %45, mat4x3<f16>(vec3<f16>(0.0h))
+    %48:ptr<storage, mat4x4<f16>, read_write> = access %sb, 33u
+    store %48, mat4x4<f16>(vec4<f16>(0.0h))
+    %49:ptr<storage, array<vec3<f32>, 2>, read_write> = access %sb, 34u
+    %50:void = call %tint_store_and_preserve_padding_6, %49, array<vec3<f32>, 2>(vec3<f32>(0.0f))
+    %52:ptr<storage, array<mat4x2<f16>, 2>, read_write> = access %sb, 35u
+    store %52, array<mat4x2<f16>, 2>(mat4x2<f16>(vec2<f16>(0.0h)))
+    %53:ptr<storage, Inner, read_write> = access %sb, 36u
+    %54:void = call %tint_store_and_preserve_padding_7, %53, Inner(0i, 0.0f, 0.0h)
+    %56:ptr<storage, array<Inner, 4>, read_write> = access %sb, 37u
+    %57:void = call %tint_store_and_preserve_padding_8, %56, array<Inner, 4>(Inner(0i, 0.0f, 0.0h))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %61:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %62:vec3<f32> = access %value_param, 0u
+    store %61, %62
+    %63:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %64:vec3<f32> = access %value_param, 1u
+    store %63, %64
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat3x3<f32>, read_write>, %value_param_1:mat3x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %67:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %68:vec3<f32> = access %value_param_1, 0u
+    store %67, %68
+    %69:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %70:vec3<f32> = access %value_param_1, 1u
+    store %69, %70
+    %71:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
+    %72:vec3<f32> = access %value_param_1, 2u
+    store %71, %72
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f32>, read_write>, %value_param_2:mat4x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B5: {
+    %75:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %76:vec3<f32> = access %value_param_2, 0u
+    store %75, %76
+    %77:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %78:vec3<f32> = access %value_param_2, 1u
+    store %77, %78
+    %79:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
+    %80:vec3<f32> = access %value_param_2, 2u
+    store %79, %80
+    %81:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u
+    %82:vec3<f32> = access %value_param_2, 3u
+    store %81, %82
+    ret
+  }
+}
+%tint_store_and_preserve_padding_3 = func(%target_3:ptr<storage, mat2x3<f16>, read_write>, %value_param_3:mat2x3<f16>):void {  # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
+  $B6: {
+    %85:ptr<storage, vec3<f16>, read_write> = access %target_3, 0u
+    %86:vec3<f16> = access %value_param_3, 0u
+    store %85, %86
+    %87:ptr<storage, vec3<f16>, read_write> = access %target_3, 1u
+    %88:vec3<f16> = access %value_param_3, 1u
+    store %87, %88
+    ret
+  }
+}
+%tint_store_and_preserve_padding_4 = func(%target_4:ptr<storage, mat3x3<f16>, read_write>, %value_param_4:mat3x3<f16>):void {  # %tint_store_and_preserve_padding_4: 'tint_store_and_preserve_padding', %target_4: 'target', %value_param_4: 'value_param'
+  $B7: {
+    %91:ptr<storage, vec3<f16>, read_write> = access %target_4, 0u
+    %92:vec3<f16> = access %value_param_4, 0u
+    store %91, %92
+    %93:ptr<storage, vec3<f16>, read_write> = access %target_4, 1u
+    %94:vec3<f16> = access %value_param_4, 1u
+    store %93, %94
+    %95:ptr<storage, vec3<f16>, read_write> = access %target_4, 2u
+    %96:vec3<f16> = access %value_param_4, 2u
+    store %95, %96
+    ret
+  }
+}
+%tint_store_and_preserve_padding_5 = func(%target_5:ptr<storage, mat4x3<f16>, read_write>, %value_param_5:mat4x3<f16>):void {  # %tint_store_and_preserve_padding_5: 'tint_store_and_preserve_padding', %target_5: 'target', %value_param_5: 'value_param'
+  $B8: {
+    %99:ptr<storage, vec3<f16>, read_write> = access %target_5, 0u
+    %100:vec3<f16> = access %value_param_5, 0u
+    store %99, %100
+    %101:ptr<storage, vec3<f16>, read_write> = access %target_5, 1u
+    %102:vec3<f16> = access %value_param_5, 1u
+    store %101, %102
+    %103:ptr<storage, vec3<f16>, read_write> = access %target_5, 2u
+    %104:vec3<f16> = access %value_param_5, 2u
+    store %103, %104
+    %105:ptr<storage, vec3<f16>, read_write> = access %target_5, 3u
+    %106:vec3<f16> = access %value_param_5, 3u
+    store %105, %106
+    ret
+  }
+}
+%tint_store_and_preserve_padding_6 = func(%target_6:ptr<storage, array<vec3<f32>, 2>, read_write>, %value_param_6:array<vec3<f32>, 2>):void {  # %tint_store_and_preserve_padding_6: 'tint_store_and_preserve_padding', %target_6: 'target', %value_param_6: 'value_param'
+  $B9: {
+    loop [i: $B10, b: $B11, c: $B12] {  # loop_1
+      $B10: {  # initializer
+        next_iteration 0u  # -> $B11
+      }
+      $B11 (%idx:u32): {  # body
+        %110:bool = gte %idx, 2u
+        if %110 [t: $B13] {  # if_1
+          $B13: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %111:ptr<storage, vec3<f32>, read_write> = access %target_6, %idx
+        %112:vec3<f32> = access %value_param_6, %idx
+        store %111, %112
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %113:u32 = add %idx, 1u
+        next_iteration %113  # -> $B11
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_7 = func(%target_7:ptr<storage, Inner, read_write>, %value_param_7:Inner):void {  # %tint_store_and_preserve_padding_7: 'tint_store_and_preserve_padding', %target_7: 'target', %value_param_7: 'value_param'
+  $B14: {
+    %116:ptr<storage, i32, read_write> = access %target_7, 0u
+    %117:i32 = access %value_param_7, 0u
+    store %116, %117
+    %118:ptr<storage, f32, read_write> = access %target_7, 1u
+    %119:f32 = access %value_param_7, 1u
+    store %118, %119
+    %120:ptr<storage, f16, read_write> = access %target_7, 2u
+    %121:f16 = access %value_param_7, 2u
+    store %120, %121
+    ret
+  }
+}
+%tint_store_and_preserve_padding_8 = func(%target_8:ptr<storage, array<Inner, 4>, read_write>, %value_param_8:array<Inner, 4>):void {  # %tint_store_and_preserve_padding_8: 'tint_store_and_preserve_padding', %target_8: 'target', %value_param_8: 'value_param'
+  $B15: {
+    loop [i: $B16, b: $B17, c: $B18] {  # loop_2
+      $B16: {  # initializer
+        next_iteration 0u  # -> $B17
+      }
+      $B17 (%idx_1:u32): {  # body
+        %125:bool = gte %idx_1, 4u
+        if %125 [t: $B19] {  # if_2
+          $B19: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %126:ptr<storage, Inner, read_write> = access %target_8, %idx_1
+        %127:Inner = access %value_param_8, %idx_1
+        %128:void = call %tint_store_and_preserve_padding_7, %126, %127
+        continue  # -> $B18
+      }
+      $B18: {  # continuing
+        %129:u32 = add %idx_1, 1u
+        next_iteration %129  # -> $B17
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl
index 6a3ffbb..5efff12 100644
--- a/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/array4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, array<f16, 4>, read> = var @binding_point(0, 0)
   %out:ptr<storage, array<f16, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<f16, 4> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl
index 9442558..8e51e1b 100644
--- a/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/array4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, array<f32, 4>, read> = var @binding_point(0, 0)
   %out:ptr<storage, array<f32, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<f32, 4> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl
index 2fe002f..8a3ce30 100644
--- a/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, f16, read> = var @binding_point(0, 0)
   %out:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:f16 = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl
index 8d02974..c6d9e30 100644
--- a/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, f32, read> = var @binding_point(0, 0)
   %out:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:f32 = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl
index 199e131..a84dbf6 100644
--- a/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/i32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, i32, read> = var @binding_point(0, 0)
   %out:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:i32 = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl
index 3ebfdc9..189b8ce 100644
--- a/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat2x2<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl
index 726c9eb..17acaf1 100644
--- a/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat2x2<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl
index 5197c24..fe91e6c 100644
--- a/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x3_f16.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat2x3<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %in
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl
index c7c9ccf..4423fbe 100644
--- a/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x3_f32.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat2x3<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %in
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl
index 99c1686..07a73c5 100644
--- a/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat2x4<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl
index 72f0f8a..6e3cc0f 100644
--- a/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat2x4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat2x4<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl
index b2df7f4..b906b25 100644
--- a/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat3x2<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl
index ef3b803..8522e4f 100644
--- a/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat3x2<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl
index 5ae796a..73c8213 100644
--- a/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x3_f16.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat3x3<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %in
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl
index e35d5b7..ce6f52f 100644
--- a/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x3_f32.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat3x3<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %in
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl
index 6cc8cc0..f030f51 100644
--- a/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat3x4<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl
index 2497dde..235bd7a 100644
--- a/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat3x4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat3x4<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl
index 9ec67a9..c8bacd4 100644
--- a/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat4x2<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl
index 03500f2..9b4d556 100644
--- a/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat4x2<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl
index 1e49ad3..2680261 100644
--- a/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x3_f16.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat4x3<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %in
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %16:vec3<f16> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl
index 7e732e4..f360275 100644
--- a/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x3_f32.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat4x3<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %in
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %16:vec3<f32> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl
index b362c32..b1f7375 100644
--- a/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat4x4<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl
index 86b7368..e5c26b0 100644
--- a/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/mat4x4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, mat4x4<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl
index dfe8c55..ebcc21e 100644
--- a/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/runtime_array_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, array<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, array<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<storage, f16, read_write> = access %out, 0i
     %5:ptr<storage, f16, read> = access %in, 0i
     %6:f16 = load %5
diff --git a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
index 7ad242c..c5c7875 100644
--- a/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, array<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, array<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<storage, f32, read_write> = access %out, 0i
     %5:ptr<storage, f32, read> = access %in, 0i
     %6:f32 = load %5
diff --git a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl
index 39a82df..b43ae16 100644
--- a/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/struct_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   scalar_f16:f16 @offset(0)
   vec3_f16:vec3<f16> @offset(8)
   mat2x4_f16:mat2x4<f16> @offset(16)
@@ -10,15 +10,38 @@
   inner:Inner @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %in:ptr<storage, S, read> = var @binding_point(0, 0)
   %out:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %t:S = load %in
-    store %out, %t
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:S = load %in
+    %t:S = let %4
+    %6:void = call %tint_store_and_preserve_padding, %out, %t
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, S, read_write>, %value_param:S):void {
+  $B3: {
+    %10:ptr<storage, Inner, read_write> = access %target, 0u
+    %11:Inner = access %value_param, 0u
+    %12:void = call %tint_store_and_preserve_padding_1, %10, %11
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, Inner, read_write>, %value_param_1:Inner):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %16:ptr<storage, f16, read_write> = access %target_1, 0u
+    %17:f16 = access %value_param_1, 0u
+    store %16, %17
+    %18:ptr<storage, vec3<f16>, read_write> = access %target_1, 1u
+    %19:vec3<f16> = access %value_param_1, 1u
+    store %18, %19
+    %20:ptr<storage, mat2x4<f16>, read_write> = access %target_1, 2u
+    %21:mat2x4<f16> = access %value_param_1, 2u
+    store %20, %21
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl
index 16968a5..d07af79 100644
--- a/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/struct_f32.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   vec3_f32:vec3<f32> @offset(16)
   mat2x4_f32:mat2x4<f32> @offset(32)
@@ -10,15 +10,38 @@
   inner:Inner @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %in:ptr<storage, S, read> = var @binding_point(0, 0)
   %out:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %t:S = load %in
-    store %out, %t
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:S = load %in
+    %t:S = let %4
+    %6:void = call %tint_store_and_preserve_padding, %out, %t
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, S, read_write>, %value_param:S):void {
+  $B3: {
+    %10:ptr<storage, Inner, read_write> = access %target, 0u
+    %11:Inner = access %value_param, 0u
+    %12:void = call %tint_store_and_preserve_padding_1, %10, %11
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, Inner, read_write>, %value_param_1:Inner):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %16:ptr<storage, f32, read_write> = access %target_1, 0u
+    %17:f32 = access %value_param_1, 0u
+    store %16, %17
+    %18:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %19:vec3<f32> = access %value_param_1, 1u
+    store %18, %19
+    %20:ptr<storage, mat2x4<f32>, read_write> = access %target_1, 2u
+    %21:mat2x4<f32> = access %value_param_1, 2u
+    store %20, %21
     ret
   }
 }
diff --git a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl
index 5ccb6cb..47e58b1 100644
--- a/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/u32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, u32, read> = var @binding_point(0, 0)
   %out:ptr<storage, u32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:u32 = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl
index 8b96037..7d1f789 100644
--- a/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec2<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec2<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl
index cb06734..07039b0 100644
--- a/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec2<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec2<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl
index f82dca6..90f8a42 100644
--- a/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_i32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec2<i32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec2<i32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec2<i32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl
index fdcd286..7f8436e 100644
--- a/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec2_u32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec2<u32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec2<u32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec2<u32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl
index 9e1f62e..d886d54 100644
--- a/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec3<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec3<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl
index c8eb97f..6bf97d3 100644
--- a/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec3<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec3<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl
index 08501f6..d6fdc96 100644
--- a/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_i32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec3<i32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec3<i32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec3<i32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl
index d206212..3643214 100644
--- a/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec3_u32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec3<u32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec3<u32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec3<u32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl
index fe820d4..0b4e74c 100644
--- a/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec4<f16>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec4<f16> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl
index 50164ab..74fc62e 100644
--- a/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec4<f32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec4<f32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl
index 8f6aa16..ac7b0e2 100644
--- a/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_i32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec4<i32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec4<i32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec4<i32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl
index aa7facd..52ee996 100644
--- a/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/storage/types/vec4_u32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %in:ptr<storage, vec4<u32>, read> = var @binding_point(0, 0)
   %out:ptr<storage, vec4<u32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:vec4<u32> = load %in
     store %out, %4
     ret
diff --git a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.msl b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.msl
index 1b4401a..9c490ec 100644
--- a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   scalar_i32:i32 @offset(4)
   scalar_u32:u32 @offset(8)
@@ -29,59 +29,168 @@
   arr:array<Inner, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ub:ptr<uniform, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
-    %4:ptr<uniform, f32, read> = access %ub, 0u, %idx, 0u
-    %scalar_f32:f32 = load %4
-    %6:ptr<uniform, i32, read> = access %ub, 0u, %idx, 1u
-    %scalar_i32:i32 = load %6
-    %8:ptr<uniform, u32, read> = access %ub, 0u, %idx, 2u
-    %scalar_u32:u32 = load %8
-    %10:ptr<uniform, vec2<f32>, read> = access %ub, 0u, %idx, 3u
-    %vec2_f32:vec2<f32> = load %10
-    %12:ptr<uniform, vec2<i32>, read> = access %ub, 0u, %idx, 4u
-    %vec2_i32:vec2<i32> = load %12
-    %14:ptr<uniform, vec2<u32>, read> = access %ub, 0u, %idx, 5u
-    %vec2_u32:vec2<u32> = load %14
-    %16:ptr<uniform, vec3<f32>, read> = access %ub, 0u, %idx, 6u
-    %vec3_f32:vec3<f32> = load %16
-    %18:ptr<uniform, vec3<i32>, read> = access %ub, 0u, %idx, 7u
-    %vec3_i32:vec3<i32> = load %18
-    %20:ptr<uniform, vec3<u32>, read> = access %ub, 0u, %idx, 8u
-    %vec3_u32:vec3<u32> = load %20
-    %22:ptr<uniform, vec4<f32>, read> = access %ub, 0u, %idx, 9u
-    %vec4_f32:vec4<f32> = load %22
-    %24:ptr<uniform, vec4<i32>, read> = access %ub, 0u, %idx, 10u
-    %vec4_i32:vec4<i32> = load %24
-    %26:ptr<uniform, vec4<u32>, read> = access %ub, 0u, %idx, 11u
-    %vec4_u32:vec4<u32> = load %26
-    %28:ptr<uniform, mat2x2<f32>, read> = access %ub, 0u, %idx, 12u
-    %mat2x2_f32:mat2x2<f32> = load %28
-    %30:ptr<uniform, mat2x3<f32>, read> = access %ub, 0u, %idx, 13u
-    %mat2x3_f32:mat2x3<f32> = load %30
-    %32:ptr<uniform, mat2x4<f32>, read> = access %ub, 0u, %idx, 14u
-    %mat2x4_f32:mat2x4<f32> = load %32
-    %34:ptr<uniform, mat3x2<f32>, read> = access %ub, 0u, %idx, 15u
-    %mat3x2_f32:mat3x2<f32> = load %34
-    %36:ptr<uniform, mat3x3<f32>, read> = access %ub, 0u, %idx, 16u
-    %mat3x3_f32:mat3x3<f32> = load %36
-    %38:ptr<uniform, mat3x4<f32>, read> = access %ub, 0u, %idx, 17u
-    %mat3x4_f32:mat3x4<f32> = load %38
-    %40:ptr<uniform, mat4x2<f32>, read> = access %ub, 0u, %idx, 18u
-    %mat4x2_f32:mat4x2<f32> = load %40
-    %42:ptr<uniform, mat4x3<f32>, read> = access %ub, 0u, %idx, 19u
-    %mat4x3_f32:mat4x3<f32> = load %42
-    %44:ptr<uniform, mat4x4<f32>, read> = access %ub, 0u, %idx, 20u
-    %mat4x4_f32:mat4x4<f32> = load %44
-    %46:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 0u, %idx, 21u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %46
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:ptr<uniform, f32, read> = access %ub, 0u, %idx, 0u
+    %6:f32 = load %5
+    %scalar_f32:f32 = let %6
+    %8:ptr<uniform, i32, read> = access %ub, 0u, %idx, 1u
+    %9:i32 = load %8
+    %scalar_i32:i32 = let %9
+    %11:ptr<uniform, u32, read> = access %ub, 0u, %idx, 2u
+    %12:u32 = load %11
+    %scalar_u32:u32 = let %12
+    %14:ptr<uniform, vec2<f32>, read> = access %ub, 0u, %idx, 3u
+    %15:vec2<f32> = load %14
+    %vec2_f32:vec2<f32> = let %15
+    %17:ptr<uniform, vec2<i32>, read> = access %ub, 0u, %idx, 4u
+    %18:vec2<i32> = load %17
+    %vec2_i32:vec2<i32> = let %18
+    %20:ptr<uniform, vec2<u32>, read> = access %ub, 0u, %idx, 5u
+    %21:vec2<u32> = load %20
+    %vec2_u32:vec2<u32> = let %21
+    %23:ptr<uniform, vec3<f32>, read> = access %ub, 0u, %idx, 6u
+    %24:vec3<f32> = load %23
+    %vec3_f32:vec3<f32> = let %24
+    %26:ptr<uniform, vec3<i32>, read> = access %ub, 0u, %idx, 7u
+    %27:vec3<i32> = load %26
+    %vec3_i32:vec3<i32> = let %27
+    %29:ptr<uniform, vec3<u32>, read> = access %ub, 0u, %idx, 8u
+    %30:vec3<u32> = load %29
+    %vec3_u32:vec3<u32> = let %30
+    %32:ptr<uniform, vec4<f32>, read> = access %ub, 0u, %idx, 9u
+    %33:vec4<f32> = load %32
+    %vec4_f32:vec4<f32> = let %33
+    %35:ptr<uniform, vec4<i32>, read> = access %ub, 0u, %idx, 10u
+    %36:vec4<i32> = load %35
+    %vec4_i32:vec4<i32> = let %36
+    %38:ptr<uniform, vec4<u32>, read> = access %ub, 0u, %idx, 11u
+    %39:vec4<u32> = load %38
+    %vec4_u32:vec4<u32> = let %39
+    %41:ptr<uniform, mat2x2<f32>, read> = access %ub, 0u, %idx, 12u
+    %42:mat2x2<f32> = load %41
+    %mat2x2_f32:mat2x2<f32> = let %42
+    %44:ptr<uniform, mat2x3<f32>, read> = access %ub, 0u, %idx, 13u
+    %45:mat2x3<f32> = load %44
+    %mat2x3_f32:mat2x3<f32> = let %45
+    %47:ptr<uniform, mat2x4<f32>, read> = access %ub, 0u, %idx, 14u
+    %48:mat2x4<f32> = load %47
+    %mat2x4_f32:mat2x4<f32> = let %48
+    %50:ptr<uniform, mat3x2<f32>, read> = access %ub, 0u, %idx, 15u
+    %51:mat3x2<f32> = load %50
+    %mat3x2_f32:mat3x2<f32> = let %51
+    %53:ptr<uniform, mat3x3<f32>, read> = access %ub, 0u, %idx, 16u
+    %54:mat3x3<f32> = load %53
+    %mat3x3_f32:mat3x3<f32> = let %54
+    %56:ptr<uniform, mat3x4<f32>, read> = access %ub, 0u, %idx, 17u
+    %57:mat3x4<f32> = load %56
+    %mat3x4_f32:mat3x4<f32> = let %57
+    %59:ptr<uniform, mat4x2<f32>, read> = access %ub, 0u, %idx, 18u
+    %60:mat4x2<f32> = load %59
+    %mat4x2_f32:mat4x2<f32> = let %60
+    %62:ptr<uniform, mat4x3<f32>, read> = access %ub, 0u, %idx, 19u
+    %63:mat4x3<f32> = load %62
+    %mat4x3_f32:mat4x3<f32> = let %63
+    %65:ptr<uniform, mat4x4<f32>, read> = access %ub, 0u, %idx, 20u
+    %66:mat4x4<f32> = load %65
+    %mat4x4_f32:mat4x4<f32> = let %66
+    %68:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 0u, %idx, 21u
+    %69:array<vec3<f32>, 2> = load %68
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %69
+    %71:i32 = call %tint_f32_to_i32, %scalar_f32
+    %73:i32 = add %71, %scalar_i32
+    %74:i32 = let %73
+    %75:i32 = convert %scalar_u32
+    %76:i32 = add %74, %75
+    %77:i32 = let %76
+    %78:f32 = access %vec2_f32, 0u
+    %79:i32 = call %tint_f32_to_i32, %78
+    %80:i32 = add %77, %79
+    %81:i32 = access %vec2_i32, 0u
+    %82:i32 = add %80, %81
+    %83:i32 = let %82
+    %84:u32 = access %vec2_u32, 0u
+    %85:i32 = convert %84
+    %86:i32 = add %83, %85
+    %87:i32 = let %86
+    %88:f32 = access %vec3_f32, 1u
+    %89:i32 = call %tint_f32_to_i32, %88
+    %90:i32 = add %87, %89
+    %91:i32 = access %vec3_i32, 1u
+    %92:i32 = add %90, %91
+    %93:i32 = let %92
+    %94:u32 = access %vec3_u32, 1u
+    %95:i32 = convert %94
+    %96:i32 = add %93, %95
+    %97:i32 = let %96
+    %98:f32 = access %vec4_f32, 2u
+    %99:i32 = call %tint_f32_to_i32, %98
+    %100:i32 = add %97, %99
+    %101:i32 = access %vec4_i32, 2u
+    %102:i32 = add %100, %101
+    %103:i32 = let %102
+    %104:u32 = access %vec4_u32, 2u
+    %105:i32 = convert %104
+    %106:i32 = add %103, %105
+    %107:i32 = let %106
+    %108:f32 = access %mat2x2_f32, 0i, 0u
+    %109:i32 = call %tint_f32_to_i32, %108
+    %110:i32 = add %107, %109
+    %111:i32 = let %110
+    %112:f32 = access %mat2x3_f32, 0i, 0u
+    %113:i32 = call %tint_f32_to_i32, %112
+    %114:i32 = add %111, %113
+    %115:i32 = let %114
+    %116:f32 = access %mat2x4_f32, 0i, 0u
+    %117:i32 = call %tint_f32_to_i32, %116
+    %118:i32 = add %115, %117
+    %119:i32 = let %118
+    %120:f32 = access %mat3x2_f32, 0i, 0u
+    %121:i32 = call %tint_f32_to_i32, %120
+    %122:i32 = add %119, %121
+    %123:i32 = let %122
+    %124:f32 = access %mat3x3_f32, 0i, 0u
+    %125:i32 = call %tint_f32_to_i32, %124
+    %126:i32 = add %123, %125
+    %127:i32 = let %126
+    %128:f32 = access %mat3x4_f32, 0i, 0u
+    %129:i32 = call %tint_f32_to_i32, %128
+    %130:i32 = add %127, %129
+    %131:i32 = let %130
+    %132:f32 = access %mat4x2_f32, 0i, 0u
+    %133:i32 = call %tint_f32_to_i32, %132
+    %134:i32 = add %131, %133
+    %135:i32 = let %134
+    %136:f32 = access %mat4x3_f32, 0i, 0u
+    %137:i32 = call %tint_f32_to_i32, %136
+    %138:i32 = add %135, %137
+    %139:i32 = let %138
+    %140:f32 = access %mat4x4_f32, 0i, 0u
+    %141:i32 = call %tint_f32_to_i32, %140
+    %142:i32 = add %139, %141
+    %143:i32 = let %142
+    %144:f32 = access %arr2_vec3_f32, 0i, 0u
+    %145:i32 = call %tint_f32_to_i32, %144
+    %146:i32 = add %143, %145
+    store %s, %146
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %148:i32 = convert %value
+    %149:bool = gte %value, -2147483648.0f
+    %150:i32 = select -2147483648i, %148, %149
+    %151:bool = lte %value, 2147483520.0f
+    %152:i32 = select 2147483647i, %150, %151
+    ret %152
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.msl
index 0dac2fd..2d60972 100644
--- a/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/dynamic_index/read_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   scalar_i32:i32 @offset(4)
   scalar_u32:u32 @offset(8)
@@ -43,87 +43,275 @@
   arr:array<Inner, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ub:ptr<uniform, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
-    %4:ptr<uniform, f32, read> = access %ub, 0u, %idx, 0u
-    %scalar_f32:f32 = load %4
-    %6:ptr<uniform, i32, read> = access %ub, 0u, %idx, 1u
-    %scalar_i32:i32 = load %6
-    %8:ptr<uniform, u32, read> = access %ub, 0u, %idx, 2u
-    %scalar_u32:u32 = load %8
-    %10:ptr<uniform, f16, read> = access %ub, 0u, %idx, 3u
-    %scalar_f16:f16 = load %10
-    %12:ptr<uniform, vec2<f32>, read> = access %ub, 0u, %idx, 4u
-    %vec2_f32:vec2<f32> = load %12
-    %14:ptr<uniform, vec2<i32>, read> = access %ub, 0u, %idx, 5u
-    %vec2_i32:vec2<i32> = load %14
-    %16:ptr<uniform, vec2<u32>, read> = access %ub, 0u, %idx, 6u
-    %vec2_u32:vec2<u32> = load %16
-    %18:ptr<uniform, vec2<f16>, read> = access %ub, 0u, %idx, 7u
-    %vec2_f16:vec2<f16> = load %18
-    %20:ptr<uniform, vec3<f32>, read> = access %ub, 0u, %idx, 8u
-    %vec3_f32:vec3<f32> = load %20
-    %22:ptr<uniform, vec3<i32>, read> = access %ub, 0u, %idx, 9u
-    %vec3_i32:vec3<i32> = load %22
-    %24:ptr<uniform, vec3<u32>, read> = access %ub, 0u, %idx, 10u
-    %vec3_u32:vec3<u32> = load %24
-    %26:ptr<uniform, vec3<f16>, read> = access %ub, 0u, %idx, 11u
-    %vec3_f16:vec3<f16> = load %26
-    %28:ptr<uniform, vec4<f32>, read> = access %ub, 0u, %idx, 12u
-    %vec4_f32:vec4<f32> = load %28
-    %30:ptr<uniform, vec4<i32>, read> = access %ub, 0u, %idx, 13u
-    %vec4_i32:vec4<i32> = load %30
-    %32:ptr<uniform, vec4<u32>, read> = access %ub, 0u, %idx, 14u
-    %vec4_u32:vec4<u32> = load %32
-    %34:ptr<uniform, vec4<f16>, read> = access %ub, 0u, %idx, 15u
-    %vec4_f16:vec4<f16> = load %34
-    %36:ptr<uniform, mat2x2<f32>, read> = access %ub, 0u, %idx, 16u
-    %mat2x2_f32:mat2x2<f32> = load %36
-    %38:ptr<uniform, mat2x3<f32>, read> = access %ub, 0u, %idx, 17u
-    %mat2x3_f32:mat2x3<f32> = load %38
-    %40:ptr<uniform, mat2x4<f32>, read> = access %ub, 0u, %idx, 18u
-    %mat2x4_f32:mat2x4<f32> = load %40
-    %42:ptr<uniform, mat3x2<f32>, read> = access %ub, 0u, %idx, 19u
-    %mat3x2_f32:mat3x2<f32> = load %42
-    %44:ptr<uniform, mat3x3<f32>, read> = access %ub, 0u, %idx, 20u
-    %mat3x3_f32:mat3x3<f32> = load %44
-    %46:ptr<uniform, mat3x4<f32>, read> = access %ub, 0u, %idx, 21u
-    %mat3x4_f32:mat3x4<f32> = load %46
-    %48:ptr<uniform, mat4x2<f32>, read> = access %ub, 0u, %idx, 22u
-    %mat4x2_f32:mat4x2<f32> = load %48
-    %50:ptr<uniform, mat4x3<f32>, read> = access %ub, 0u, %idx, 23u
-    %mat4x3_f32:mat4x3<f32> = load %50
-    %52:ptr<uniform, mat4x4<f32>, read> = access %ub, 0u, %idx, 24u
-    %mat4x4_f32:mat4x4<f32> = load %52
-    %54:ptr<uniform, mat2x2<f16>, read> = access %ub, 0u, %idx, 25u
-    %mat2x2_f16:mat2x2<f16> = load %54
-    %56:ptr<uniform, mat2x3<f16>, read> = access %ub, 0u, %idx, 26u
-    %mat2x3_f16:mat2x3<f16> = load %56
-    %58:ptr<uniform, mat2x4<f16>, read> = access %ub, 0u, %idx, 27u
-    %mat2x4_f16:mat2x4<f16> = load %58
-    %60:ptr<uniform, mat3x2<f16>, read> = access %ub, 0u, %idx, 28u
-    %mat3x2_f16:mat3x2<f16> = load %60
-    %62:ptr<uniform, mat3x3<f16>, read> = access %ub, 0u, %idx, 29u
-    %mat3x3_f16:mat3x3<f16> = load %62
-    %64:ptr<uniform, mat3x4<f16>, read> = access %ub, 0u, %idx, 30u
-    %mat3x4_f16:mat3x4<f16> = load %64
-    %66:ptr<uniform, mat4x2<f16>, read> = access %ub, 0u, %idx, 31u
-    %mat4x2_f16:mat4x2<f16> = load %66
-    %68:ptr<uniform, mat4x3<f16>, read> = access %ub, 0u, %idx, 32u
-    %mat4x3_f16:mat4x3<f16> = load %68
-    %70:ptr<uniform, mat4x4<f16>, read> = access %ub, 0u, %idx, 33u
-    %mat4x4_f16:mat4x4<f16> = load %70
-    %72:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 0u, %idx, 34u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %72
-    %74:ptr<uniform, array<mat4x2<f16>, 2>, read> = access %ub, 0u, %idx, 35u
-    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = load %74
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:ptr<uniform, f32, read> = access %ub, 0u, %idx, 0u
+    %6:f32 = load %5
+    %scalar_f32:f32 = let %6
+    %8:ptr<uniform, i32, read> = access %ub, 0u, %idx, 1u
+    %9:i32 = load %8
+    %scalar_i32:i32 = let %9
+    %11:ptr<uniform, u32, read> = access %ub, 0u, %idx, 2u
+    %12:u32 = load %11
+    %scalar_u32:u32 = let %12
+    %14:ptr<uniform, f16, read> = access %ub, 0u, %idx, 3u
+    %15:f16 = load %14
+    %scalar_f16:f16 = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %ub, 0u, %idx, 4u
+    %18:vec2<f32> = load %17
+    %vec2_f32:vec2<f32> = let %18
+    %20:ptr<uniform, vec2<i32>, read> = access %ub, 0u, %idx, 5u
+    %21:vec2<i32> = load %20
+    %vec2_i32:vec2<i32> = let %21
+    %23:ptr<uniform, vec2<u32>, read> = access %ub, 0u, %idx, 6u
+    %24:vec2<u32> = load %23
+    %vec2_u32:vec2<u32> = let %24
+    %26:ptr<uniform, vec2<f16>, read> = access %ub, 0u, %idx, 7u
+    %27:vec2<f16> = load %26
+    %vec2_f16:vec2<f16> = let %27
+    %29:ptr<uniform, vec3<f32>, read> = access %ub, 0u, %idx, 8u
+    %30:vec3<f32> = load %29
+    %vec3_f32:vec3<f32> = let %30
+    %32:ptr<uniform, vec3<i32>, read> = access %ub, 0u, %idx, 9u
+    %33:vec3<i32> = load %32
+    %vec3_i32:vec3<i32> = let %33
+    %35:ptr<uniform, vec3<u32>, read> = access %ub, 0u, %idx, 10u
+    %36:vec3<u32> = load %35
+    %vec3_u32:vec3<u32> = let %36
+    %38:ptr<uniform, vec3<f16>, read> = access %ub, 0u, %idx, 11u
+    %39:vec3<f16> = load %38
+    %vec3_f16:vec3<f16> = let %39
+    %41:ptr<uniform, vec4<f32>, read> = access %ub, 0u, %idx, 12u
+    %42:vec4<f32> = load %41
+    %vec4_f32:vec4<f32> = let %42
+    %44:ptr<uniform, vec4<i32>, read> = access %ub, 0u, %idx, 13u
+    %45:vec4<i32> = load %44
+    %vec4_i32:vec4<i32> = let %45
+    %47:ptr<uniform, vec4<u32>, read> = access %ub, 0u, %idx, 14u
+    %48:vec4<u32> = load %47
+    %vec4_u32:vec4<u32> = let %48
+    %50:ptr<uniform, vec4<f16>, read> = access %ub, 0u, %idx, 15u
+    %51:vec4<f16> = load %50
+    %vec4_f16:vec4<f16> = let %51
+    %53:ptr<uniform, mat2x2<f32>, read> = access %ub, 0u, %idx, 16u
+    %54:mat2x2<f32> = load %53
+    %mat2x2_f32:mat2x2<f32> = let %54
+    %56:ptr<uniform, mat2x3<f32>, read> = access %ub, 0u, %idx, 17u
+    %57:mat2x3<f32> = load %56
+    %mat2x3_f32:mat2x3<f32> = let %57
+    %59:ptr<uniform, mat2x4<f32>, read> = access %ub, 0u, %idx, 18u
+    %60:mat2x4<f32> = load %59
+    %mat2x4_f32:mat2x4<f32> = let %60
+    %62:ptr<uniform, mat3x2<f32>, read> = access %ub, 0u, %idx, 19u
+    %63:mat3x2<f32> = load %62
+    %mat3x2_f32:mat3x2<f32> = let %63
+    %65:ptr<uniform, mat3x3<f32>, read> = access %ub, 0u, %idx, 20u
+    %66:mat3x3<f32> = load %65
+    %mat3x3_f32:mat3x3<f32> = let %66
+    %68:ptr<uniform, mat3x4<f32>, read> = access %ub, 0u, %idx, 21u
+    %69:mat3x4<f32> = load %68
+    %mat3x4_f32:mat3x4<f32> = let %69
+    %71:ptr<uniform, mat4x2<f32>, read> = access %ub, 0u, %idx, 22u
+    %72:mat4x2<f32> = load %71
+    %mat4x2_f32:mat4x2<f32> = let %72
+    %74:ptr<uniform, mat4x3<f32>, read> = access %ub, 0u, %idx, 23u
+    %75:mat4x3<f32> = load %74
+    %mat4x3_f32:mat4x3<f32> = let %75
+    %77:ptr<uniform, mat4x4<f32>, read> = access %ub, 0u, %idx, 24u
+    %78:mat4x4<f32> = load %77
+    %mat4x4_f32:mat4x4<f32> = let %78
+    %80:ptr<uniform, mat2x2<f16>, read> = access %ub, 0u, %idx, 25u
+    %81:mat2x2<f16> = load %80
+    %mat2x2_f16:mat2x2<f16> = let %81
+    %83:ptr<uniform, mat2x3<f16>, read> = access %ub, 0u, %idx, 26u
+    %84:mat2x3<f16> = load %83
+    %mat2x3_f16:mat2x3<f16> = let %84
+    %86:ptr<uniform, mat2x4<f16>, read> = access %ub, 0u, %idx, 27u
+    %87:mat2x4<f16> = load %86
+    %mat2x4_f16:mat2x4<f16> = let %87
+    %89:ptr<uniform, mat3x2<f16>, read> = access %ub, 0u, %idx, 28u
+    %90:mat3x2<f16> = load %89
+    %mat3x2_f16:mat3x2<f16> = let %90
+    %92:ptr<uniform, mat3x3<f16>, read> = access %ub, 0u, %idx, 29u
+    %93:mat3x3<f16> = load %92
+    %mat3x3_f16:mat3x3<f16> = let %93
+    %95:ptr<uniform, mat3x4<f16>, read> = access %ub, 0u, %idx, 30u
+    %96:mat3x4<f16> = load %95
+    %mat3x4_f16:mat3x4<f16> = let %96
+    %98:ptr<uniform, mat4x2<f16>, read> = access %ub, 0u, %idx, 31u
+    %99:mat4x2<f16> = load %98
+    %mat4x2_f16:mat4x2<f16> = let %99
+    %101:ptr<uniform, mat4x3<f16>, read> = access %ub, 0u, %idx, 32u
+    %102:mat4x3<f16> = load %101
+    %mat4x3_f16:mat4x3<f16> = let %102
+    %104:ptr<uniform, mat4x4<f16>, read> = access %ub, 0u, %idx, 33u
+    %105:mat4x4<f16> = load %104
+    %mat4x4_f16:mat4x4<f16> = let %105
+    %107:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 0u, %idx, 34u
+    %108:array<vec3<f32>, 2> = load %107
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %108
+    %110:ptr<uniform, array<mat4x2<f16>, 2>, read> = access %ub, 0u, %idx, 35u
+    %111:array<mat4x2<f16>, 2> = load %110
+    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %111
+    %113:i32 = call %tint_f32_to_i32, %scalar_f32
+    %115:i32 = add %113, %scalar_i32
+    %116:i32 = let %115
+    %117:i32 = convert %scalar_u32
+    %118:i32 = add %116, %117
+    %119:i32 = let %118
+    %120:i32 = call %tint_f16_to_i32, %scalar_f16
+    %122:i32 = add %119, %120
+    %123:i32 = let %122
+    %124:f32 = access %vec2_f32, 0u
+    %125:i32 = call %tint_f32_to_i32, %124
+    %126:i32 = add %123, %125
+    %127:i32 = access %vec2_i32, 0u
+    %128:i32 = add %126, %127
+    %129:i32 = let %128
+    %130:u32 = access %vec2_u32, 0u
+    %131:i32 = convert %130
+    %132:i32 = add %129, %131
+    %133:i32 = let %132
+    %134:f16 = access %vec2_f16, 0u
+    %135:i32 = call %tint_f16_to_i32, %134
+    %136:i32 = add %133, %135
+    %137:i32 = let %136
+    %138:f32 = access %vec3_f32, 1u
+    %139:i32 = call %tint_f32_to_i32, %138
+    %140:i32 = add %137, %139
+    %141:i32 = access %vec3_i32, 1u
+    %142:i32 = add %140, %141
+    %143:i32 = let %142
+    %144:u32 = access %vec3_u32, 1u
+    %145:i32 = convert %144
+    %146:i32 = add %143, %145
+    %147:i32 = let %146
+    %148:f16 = access %vec3_f16, 1u
+    %149:i32 = call %tint_f16_to_i32, %148
+    %150:i32 = add %147, %149
+    %151:i32 = let %150
+    %152:f32 = access %vec4_f32, 2u
+    %153:i32 = call %tint_f32_to_i32, %152
+    %154:i32 = add %151, %153
+    %155:i32 = access %vec4_i32, 2u
+    %156:i32 = add %154, %155
+    %157:i32 = let %156
+    %158:u32 = access %vec4_u32, 2u
+    %159:i32 = convert %158
+    %160:i32 = add %157, %159
+    %161:i32 = let %160
+    %162:f16 = access %vec4_f16, 2u
+    %163:i32 = call %tint_f16_to_i32, %162
+    %164:i32 = add %161, %163
+    %165:i32 = let %164
+    %166:f32 = access %mat2x2_f32, 0i, 0u
+    %167:i32 = call %tint_f32_to_i32, %166
+    %168:i32 = add %165, %167
+    %169:i32 = let %168
+    %170:f32 = access %mat2x3_f32, 0i, 0u
+    %171:i32 = call %tint_f32_to_i32, %170
+    %172:i32 = add %169, %171
+    %173:i32 = let %172
+    %174:f32 = access %mat2x4_f32, 0i, 0u
+    %175:i32 = call %tint_f32_to_i32, %174
+    %176:i32 = add %173, %175
+    %177:i32 = let %176
+    %178:f32 = access %mat3x2_f32, 0i, 0u
+    %179:i32 = call %tint_f32_to_i32, %178
+    %180:i32 = add %177, %179
+    %181:i32 = let %180
+    %182:f32 = access %mat3x3_f32, 0i, 0u
+    %183:i32 = call %tint_f32_to_i32, %182
+    %184:i32 = add %181, %183
+    %185:i32 = let %184
+    %186:f32 = access %mat3x4_f32, 0i, 0u
+    %187:i32 = call %tint_f32_to_i32, %186
+    %188:i32 = add %185, %187
+    %189:i32 = let %188
+    %190:f32 = access %mat4x2_f32, 0i, 0u
+    %191:i32 = call %tint_f32_to_i32, %190
+    %192:i32 = add %189, %191
+    %193:i32 = let %192
+    %194:f32 = access %mat4x3_f32, 0i, 0u
+    %195:i32 = call %tint_f32_to_i32, %194
+    %196:i32 = add %193, %195
+    %197:i32 = let %196
+    %198:f32 = access %mat4x4_f32, 0i, 0u
+    %199:i32 = call %tint_f32_to_i32, %198
+    %200:i32 = add %197, %199
+    %201:i32 = let %200
+    %202:f16 = access %mat2x2_f16, 0i, 0u
+    %203:i32 = call %tint_f16_to_i32, %202
+    %204:i32 = add %201, %203
+    %205:i32 = let %204
+    %206:f16 = access %mat2x3_f16, 0i, 0u
+    %207:i32 = call %tint_f16_to_i32, %206
+    %208:i32 = add %205, %207
+    %209:i32 = let %208
+    %210:f16 = access %mat2x4_f16, 0i, 0u
+    %211:i32 = call %tint_f16_to_i32, %210
+    %212:i32 = add %209, %211
+    %213:i32 = let %212
+    %214:f16 = access %mat3x2_f16, 0i, 0u
+    %215:i32 = call %tint_f16_to_i32, %214
+    %216:i32 = add %213, %215
+    %217:i32 = let %216
+    %218:f16 = access %mat3x3_f16, 0i, 0u
+    %219:i32 = call %tint_f16_to_i32, %218
+    %220:i32 = add %217, %219
+    %221:i32 = let %220
+    %222:f16 = access %mat3x4_f16, 0i, 0u
+    %223:i32 = call %tint_f16_to_i32, %222
+    %224:i32 = add %221, %223
+    %225:i32 = let %224
+    %226:f16 = access %mat4x2_f16, 0i, 0u
+    %227:i32 = call %tint_f16_to_i32, %226
+    %228:i32 = add %225, %227
+    %229:i32 = let %228
+    %230:f16 = access %mat4x3_f16, 0i, 0u
+    %231:i32 = call %tint_f16_to_i32, %230
+    %232:i32 = add %229, %231
+    %233:i32 = let %232
+    %234:f16 = access %mat4x4_f16, 0i, 0u
+    %235:i32 = call %tint_f16_to_i32, %234
+    %236:i32 = add %233, %235
+    %237:i32 = let %236
+    %238:f32 = access %arr2_vec3_f32, 0i, 0u
+    %239:i32 = call %tint_f32_to_i32, %238
+    %240:i32 = add %237, %239
+    %241:i32 = let %240
+    %242:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
+    %243:i32 = call %tint_f16_to_i32, %242
+    %244:i32 = add %241, %243
+    store %s, %244
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %246:i32 = convert %value
+    %247:bool = gte %value, -2147483648.0f
+    %248:i32 = select -2147483648i, %246, %247
+    %249:bool = lte %value, 2147483520.0f
+    %250:i32 = select 2147483647i, %248, %249
+    ret %250
+  }
+}
+%tint_f16_to_i32 = func(%value_1:f16):i32 {  # %value_1: 'value'
+  $B4: {
+    %252:i32 = convert %value_1
+    %253:bool = gte %value_1, -65504.0h
+    %254:i32 = select -2147483648i, %252, %253
+    %255:bool = lte %value_1, 65504.0h
+    %256:i32 = select 2147483647i, %254, %255
+    ret %256
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.msl b/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.msl
index 9bde499..2e14eb1 100644
--- a/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/static_index/read.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_i32:i32 @offset(0)
   scalar_f32:f32 @offset(16)
 }
@@ -32,63 +32,178 @@
   array_struct_inner:array<Inner, 4> @offset(576)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ub:ptr<uniform, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, f32, read> = access %ub, 0u
-    %scalar_f32:f32 = load %3
-    %5:ptr<uniform, i32, read> = access %ub, 1u
-    %scalar_i32:i32 = load %5
-    %7:ptr<uniform, u32, read> = access %ub, 2u
-    %scalar_u32:u32 = load %7
-    %9:ptr<uniform, vec2<f32>, read> = access %ub, 3u
-    %vec2_f32:vec2<f32> = load %9
-    %11:ptr<uniform, vec2<i32>, read> = access %ub, 4u
-    %vec2_i32:vec2<i32> = load %11
-    %13:ptr<uniform, vec2<u32>, read> = access %ub, 5u
-    %vec2_u32:vec2<u32> = load %13
-    %15:ptr<uniform, vec3<f32>, read> = access %ub, 6u
-    %vec3_f32:vec3<f32> = load %15
-    %17:ptr<uniform, vec3<i32>, read> = access %ub, 7u
-    %vec3_i32:vec3<i32> = load %17
-    %19:ptr<uniform, vec3<u32>, read> = access %ub, 8u
-    %vec3_u32:vec3<u32> = load %19
-    %21:ptr<uniform, vec4<f32>, read> = access %ub, 9u
-    %vec4_f32:vec4<f32> = load %21
-    %23:ptr<uniform, vec4<i32>, read> = access %ub, 10u
-    %vec4_i32:vec4<i32> = load %23
-    %25:ptr<uniform, vec4<u32>, read> = access %ub, 11u
-    %vec4_u32:vec4<u32> = load %25
-    %27:ptr<uniform, mat2x2<f32>, read> = access %ub, 12u
-    %mat2x2_f32:mat2x2<f32> = load %27
-    %29:ptr<uniform, mat2x3<f32>, read> = access %ub, 13u
-    %mat2x3_f32:mat2x3<f32> = load %29
-    %31:ptr<uniform, mat2x4<f32>, read> = access %ub, 14u
-    %mat2x4_f32:mat2x4<f32> = load %31
-    %33:ptr<uniform, mat3x2<f32>, read> = access %ub, 15u
-    %mat3x2_f32:mat3x2<f32> = load %33
-    %35:ptr<uniform, mat3x3<f32>, read> = access %ub, 16u
-    %mat3x3_f32:mat3x3<f32> = load %35
-    %37:ptr<uniform, mat3x4<f32>, read> = access %ub, 17u
-    %mat3x4_f32:mat3x4<f32> = load %37
-    %39:ptr<uniform, mat4x2<f32>, read> = access %ub, 18u
-    %mat4x2_f32:mat4x2<f32> = load %39
-    %41:ptr<uniform, mat4x3<f32>, read> = access %ub, 19u
-    %mat4x3_f32:mat4x3<f32> = load %41
-    %43:ptr<uniform, mat4x4<f32>, read> = access %ub, 20u
-    %mat4x4_f32:mat4x4<f32> = load %43
-    %45:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 21u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %45
-    %47:ptr<uniform, Inner, read> = access %ub, 22u
-    %struct_inner:Inner = load %47
-    %49:ptr<uniform, array<Inner, 4>, read> = access %ub, 23u
-    %array_struct_inner:array<Inner, 4> = load %49
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, f32, read> = access %ub, 0u
+    %5:f32 = load %4
+    %scalar_f32:f32 = let %5
+    %7:ptr<uniform, i32, read> = access %ub, 1u
+    %8:i32 = load %7
+    %scalar_i32:i32 = let %8
+    %10:ptr<uniform, u32, read> = access %ub, 2u
+    %11:u32 = load %10
+    %scalar_u32:u32 = let %11
+    %13:ptr<uniform, vec2<f32>, read> = access %ub, 3u
+    %14:vec2<f32> = load %13
+    %vec2_f32:vec2<f32> = let %14
+    %16:ptr<uniform, vec2<i32>, read> = access %ub, 4u
+    %17:vec2<i32> = load %16
+    %vec2_i32:vec2<i32> = let %17
+    %19:ptr<uniform, vec2<u32>, read> = access %ub, 5u
+    %20:vec2<u32> = load %19
+    %vec2_u32:vec2<u32> = let %20
+    %22:ptr<uniform, vec3<f32>, read> = access %ub, 6u
+    %23:vec3<f32> = load %22
+    %vec3_f32:vec3<f32> = let %23
+    %25:ptr<uniform, vec3<i32>, read> = access %ub, 7u
+    %26:vec3<i32> = load %25
+    %vec3_i32:vec3<i32> = let %26
+    %28:ptr<uniform, vec3<u32>, read> = access %ub, 8u
+    %29:vec3<u32> = load %28
+    %vec3_u32:vec3<u32> = let %29
+    %31:ptr<uniform, vec4<f32>, read> = access %ub, 9u
+    %32:vec4<f32> = load %31
+    %vec4_f32:vec4<f32> = let %32
+    %34:ptr<uniform, vec4<i32>, read> = access %ub, 10u
+    %35:vec4<i32> = load %34
+    %vec4_i32:vec4<i32> = let %35
+    %37:ptr<uniform, vec4<u32>, read> = access %ub, 11u
+    %38:vec4<u32> = load %37
+    %vec4_u32:vec4<u32> = let %38
+    %40:ptr<uniform, mat2x2<f32>, read> = access %ub, 12u
+    %41:mat2x2<f32> = load %40
+    %mat2x2_f32:mat2x2<f32> = let %41
+    %43:ptr<uniform, mat2x3<f32>, read> = access %ub, 13u
+    %44:mat2x3<f32> = load %43
+    %mat2x3_f32:mat2x3<f32> = let %44
+    %46:ptr<uniform, mat2x4<f32>, read> = access %ub, 14u
+    %47:mat2x4<f32> = load %46
+    %mat2x4_f32:mat2x4<f32> = let %47
+    %49:ptr<uniform, mat3x2<f32>, read> = access %ub, 15u
+    %50:mat3x2<f32> = load %49
+    %mat3x2_f32:mat3x2<f32> = let %50
+    %52:ptr<uniform, mat3x3<f32>, read> = access %ub, 16u
+    %53:mat3x3<f32> = load %52
+    %mat3x3_f32:mat3x3<f32> = let %53
+    %55:ptr<uniform, mat3x4<f32>, read> = access %ub, 17u
+    %56:mat3x4<f32> = load %55
+    %mat3x4_f32:mat3x4<f32> = let %56
+    %58:ptr<uniform, mat4x2<f32>, read> = access %ub, 18u
+    %59:mat4x2<f32> = load %58
+    %mat4x2_f32:mat4x2<f32> = let %59
+    %61:ptr<uniform, mat4x3<f32>, read> = access %ub, 19u
+    %62:mat4x3<f32> = load %61
+    %mat4x3_f32:mat4x3<f32> = let %62
+    %64:ptr<uniform, mat4x4<f32>, read> = access %ub, 20u
+    %65:mat4x4<f32> = load %64
+    %mat4x4_f32:mat4x4<f32> = let %65
+    %67:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 21u
+    %68:array<vec3<f32>, 2> = load %67
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %68
+    %70:ptr<uniform, Inner, read> = access %ub, 22u
+    %71:Inner = load %70
+    %struct_inner:Inner = let %71
+    %73:ptr<uniform, array<Inner, 4>, read> = access %ub, 23u
+    %74:array<Inner, 4> = load %73
+    %array_struct_inner:array<Inner, 4> = let %74
+    %76:i32 = call %tint_f32_to_i32, %scalar_f32
+    %78:i32 = add %76, %scalar_i32
+    %79:i32 = let %78
+    %80:i32 = convert %scalar_u32
+    %81:i32 = add %79, %80
+    %82:i32 = let %81
+    %83:f32 = access %vec2_f32, 0u
+    %84:i32 = call %tint_f32_to_i32, %83
+    %85:i32 = add %82, %84
+    %86:i32 = access %vec2_i32, 0u
+    %87:i32 = add %85, %86
+    %88:i32 = let %87
+    %89:u32 = access %vec2_u32, 0u
+    %90:i32 = convert %89
+    %91:i32 = add %88, %90
+    %92:i32 = let %91
+    %93:f32 = access %vec3_f32, 1u
+    %94:i32 = call %tint_f32_to_i32, %93
+    %95:i32 = add %92, %94
+    %96:i32 = access %vec3_i32, 1u
+    %97:i32 = add %95, %96
+    %98:i32 = let %97
+    %99:u32 = access %vec3_u32, 1u
+    %100:i32 = convert %99
+    %101:i32 = add %98, %100
+    %102:i32 = let %101
+    %103:f32 = access %vec4_f32, 2u
+    %104:i32 = call %tint_f32_to_i32, %103
+    %105:i32 = add %102, %104
+    %106:i32 = access %vec4_i32, 2u
+    %107:i32 = add %105, %106
+    %108:i32 = let %107
+    %109:u32 = access %vec4_u32, 2u
+    %110:i32 = convert %109
+    %111:i32 = add %108, %110
+    %112:i32 = let %111
+    %113:f32 = access %mat2x2_f32, 0i, 0u
+    %114:i32 = call %tint_f32_to_i32, %113
+    %115:i32 = add %112, %114
+    %116:i32 = let %115
+    %117:f32 = access %mat2x3_f32, 0i, 0u
+    %118:i32 = call %tint_f32_to_i32, %117
+    %119:i32 = add %116, %118
+    %120:i32 = let %119
+    %121:f32 = access %mat2x4_f32, 0i, 0u
+    %122:i32 = call %tint_f32_to_i32, %121
+    %123:i32 = add %120, %122
+    %124:i32 = let %123
+    %125:f32 = access %mat3x2_f32, 0i, 0u
+    %126:i32 = call %tint_f32_to_i32, %125
+    %127:i32 = add %124, %126
+    %128:i32 = let %127
+    %129:f32 = access %mat3x3_f32, 0i, 0u
+    %130:i32 = call %tint_f32_to_i32, %129
+    %131:i32 = add %128, %130
+    %132:i32 = let %131
+    %133:f32 = access %mat3x4_f32, 0i, 0u
+    %134:i32 = call %tint_f32_to_i32, %133
+    %135:i32 = add %132, %134
+    %136:i32 = let %135
+    %137:f32 = access %mat4x2_f32, 0i, 0u
+    %138:i32 = call %tint_f32_to_i32, %137
+    %139:i32 = add %136, %138
+    %140:i32 = let %139
+    %141:f32 = access %mat4x3_f32, 0i, 0u
+    %142:i32 = call %tint_f32_to_i32, %141
+    %143:i32 = add %140, %142
+    %144:i32 = let %143
+    %145:f32 = access %mat4x4_f32, 0i, 0u
+    %146:i32 = call %tint_f32_to_i32, %145
+    %147:i32 = add %144, %146
+    %148:i32 = let %147
+    %149:f32 = access %arr2_vec3_f32, 0i, 0u
+    %150:i32 = call %tint_f32_to_i32, %149
+    %151:i32 = add %148, %150
+    %152:i32 = access %struct_inner, 0u
+    %153:i32 = add %151, %152
+    %154:i32 = access %array_struct_inner, 0i, 0u
+    %155:i32 = add %153, %154
+    store %s, %155
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %157:i32 = convert %value
+    %158:bool = gte %value, -2147483648.0f
+    %159:i32 = select -2147483648i, %157, %158
+    %160:bool = lte %value, 2147483520.0f
+    %161:i32 = select 2147483647i, %159, %160
+    ret %161
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.msl
index f04a3af..3f18691 100644
--- a/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/static_index/read_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   scalar_i32:i32 @offset(0)
   scalar_f32:f32 @offset(4)
   scalar_f16:f16 @offset(8)
@@ -47,91 +47,285 @@
   array_struct_inner:array<Inner, 4> @offset(816)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ub:ptr<uniform, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, f32, read> = access %ub, 0u
-    %scalar_f32:f32 = load %3
-    %5:ptr<uniform, i32, read> = access %ub, 1u
-    %scalar_i32:i32 = load %5
-    %7:ptr<uniform, u32, read> = access %ub, 2u
-    %scalar_u32:u32 = load %7
-    %9:ptr<uniform, f16, read> = access %ub, 3u
-    %scalar_f16:f16 = load %9
-    %11:ptr<uniform, vec2<f32>, read> = access %ub, 4u
-    %vec2_f32:vec2<f32> = load %11
-    %13:ptr<uniform, vec2<i32>, read> = access %ub, 5u
-    %vec2_i32:vec2<i32> = load %13
-    %15:ptr<uniform, vec2<u32>, read> = access %ub, 6u
-    %vec2_u32:vec2<u32> = load %15
-    %17:ptr<uniform, vec2<f16>, read> = access %ub, 7u
-    %vec2_f16:vec2<f16> = load %17
-    %19:ptr<uniform, vec3<f32>, read> = access %ub, 8u
-    %vec3_f32:vec3<f32> = load %19
-    %21:ptr<uniform, vec3<i32>, read> = access %ub, 9u
-    %vec3_i32:vec3<i32> = load %21
-    %23:ptr<uniform, vec3<u32>, read> = access %ub, 10u
-    %vec3_u32:vec3<u32> = load %23
-    %25:ptr<uniform, vec3<f16>, read> = access %ub, 11u
-    %vec3_f16:vec3<f16> = load %25
-    %27:ptr<uniform, vec4<f32>, read> = access %ub, 12u
-    %vec4_f32:vec4<f32> = load %27
-    %29:ptr<uniform, vec4<i32>, read> = access %ub, 13u
-    %vec4_i32:vec4<i32> = load %29
-    %31:ptr<uniform, vec4<u32>, read> = access %ub, 14u
-    %vec4_u32:vec4<u32> = load %31
-    %33:ptr<uniform, vec4<f16>, read> = access %ub, 15u
-    %vec4_f16:vec4<f16> = load %33
-    %35:ptr<uniform, mat2x2<f32>, read> = access %ub, 16u
-    %mat2x2_f32:mat2x2<f32> = load %35
-    %37:ptr<uniform, mat2x3<f32>, read> = access %ub, 17u
-    %mat2x3_f32:mat2x3<f32> = load %37
-    %39:ptr<uniform, mat2x4<f32>, read> = access %ub, 18u
-    %mat2x4_f32:mat2x4<f32> = load %39
-    %41:ptr<uniform, mat3x2<f32>, read> = access %ub, 19u
-    %mat3x2_f32:mat3x2<f32> = load %41
-    %43:ptr<uniform, mat3x3<f32>, read> = access %ub, 20u
-    %mat3x3_f32:mat3x3<f32> = load %43
-    %45:ptr<uniform, mat3x4<f32>, read> = access %ub, 21u
-    %mat3x4_f32:mat3x4<f32> = load %45
-    %47:ptr<uniform, mat4x2<f32>, read> = access %ub, 22u
-    %mat4x2_f32:mat4x2<f32> = load %47
-    %49:ptr<uniform, mat4x3<f32>, read> = access %ub, 23u
-    %mat4x3_f32:mat4x3<f32> = load %49
-    %51:ptr<uniform, mat4x4<f32>, read> = access %ub, 24u
-    %mat4x4_f32:mat4x4<f32> = load %51
-    %53:ptr<uniform, mat2x2<f16>, read> = access %ub, 25u
-    %mat2x2_f16:mat2x2<f16> = load %53
-    %55:ptr<uniform, mat2x3<f16>, read> = access %ub, 26u
-    %mat2x3_f16:mat2x3<f16> = load %55
-    %57:ptr<uniform, mat2x4<f16>, read> = access %ub, 27u
-    %mat2x4_f16:mat2x4<f16> = load %57
-    %59:ptr<uniform, mat3x2<f16>, read> = access %ub, 28u
-    %mat3x2_f16:mat3x2<f16> = load %59
-    %61:ptr<uniform, mat3x3<f16>, read> = access %ub, 29u
-    %mat3x3_f16:mat3x3<f16> = load %61
-    %63:ptr<uniform, mat3x4<f16>, read> = access %ub, 30u
-    %mat3x4_f16:mat3x4<f16> = load %63
-    %65:ptr<uniform, mat4x2<f16>, read> = access %ub, 31u
-    %mat4x2_f16:mat4x2<f16> = load %65
-    %67:ptr<uniform, mat4x3<f16>, read> = access %ub, 32u
-    %mat4x3_f16:mat4x3<f16> = load %67
-    %69:ptr<uniform, mat4x4<f16>, read> = access %ub, 33u
-    %mat4x4_f16:mat4x4<f16> = load %69
-    %71:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 34u
-    %arr2_vec3_f32:array<vec3<f32>, 2> = load %71
-    %73:ptr<uniform, array<mat4x2<f16>, 2>, read> = access %ub, 35u
-    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = load %73
-    %75:ptr<uniform, Inner, read> = access %ub, 36u
-    %struct_inner:Inner = load %75
-    %77:ptr<uniform, array<Inner, 4>, read> = access %ub, 37u
-    %array_struct_inner:array<Inner, 4> = load %77
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, f32, read> = access %ub, 0u
+    %5:f32 = load %4
+    %scalar_f32:f32 = let %5
+    %7:ptr<uniform, i32, read> = access %ub, 1u
+    %8:i32 = load %7
+    %scalar_i32:i32 = let %8
+    %10:ptr<uniform, u32, read> = access %ub, 2u
+    %11:u32 = load %10
+    %scalar_u32:u32 = let %11
+    %13:ptr<uniform, f16, read> = access %ub, 3u
+    %14:f16 = load %13
+    %scalar_f16:f16 = let %14
+    %16:ptr<uniform, vec2<f32>, read> = access %ub, 4u
+    %17:vec2<f32> = load %16
+    %vec2_f32:vec2<f32> = let %17
+    %19:ptr<uniform, vec2<i32>, read> = access %ub, 5u
+    %20:vec2<i32> = load %19
+    %vec2_i32:vec2<i32> = let %20
+    %22:ptr<uniform, vec2<u32>, read> = access %ub, 6u
+    %23:vec2<u32> = load %22
+    %vec2_u32:vec2<u32> = let %23
+    %25:ptr<uniform, vec2<f16>, read> = access %ub, 7u
+    %26:vec2<f16> = load %25
+    %vec2_f16:vec2<f16> = let %26
+    %28:ptr<uniform, vec3<f32>, read> = access %ub, 8u
+    %29:vec3<f32> = load %28
+    %vec3_f32:vec3<f32> = let %29
+    %31:ptr<uniform, vec3<i32>, read> = access %ub, 9u
+    %32:vec3<i32> = load %31
+    %vec3_i32:vec3<i32> = let %32
+    %34:ptr<uniform, vec3<u32>, read> = access %ub, 10u
+    %35:vec3<u32> = load %34
+    %vec3_u32:vec3<u32> = let %35
+    %37:ptr<uniform, vec3<f16>, read> = access %ub, 11u
+    %38:vec3<f16> = load %37
+    %vec3_f16:vec3<f16> = let %38
+    %40:ptr<uniform, vec4<f32>, read> = access %ub, 12u
+    %41:vec4<f32> = load %40
+    %vec4_f32:vec4<f32> = let %41
+    %43:ptr<uniform, vec4<i32>, read> = access %ub, 13u
+    %44:vec4<i32> = load %43
+    %vec4_i32:vec4<i32> = let %44
+    %46:ptr<uniform, vec4<u32>, read> = access %ub, 14u
+    %47:vec4<u32> = load %46
+    %vec4_u32:vec4<u32> = let %47
+    %49:ptr<uniform, vec4<f16>, read> = access %ub, 15u
+    %50:vec4<f16> = load %49
+    %vec4_f16:vec4<f16> = let %50
+    %52:ptr<uniform, mat2x2<f32>, read> = access %ub, 16u
+    %53:mat2x2<f32> = load %52
+    %mat2x2_f32:mat2x2<f32> = let %53
+    %55:ptr<uniform, mat2x3<f32>, read> = access %ub, 17u
+    %56:mat2x3<f32> = load %55
+    %mat2x3_f32:mat2x3<f32> = let %56
+    %58:ptr<uniform, mat2x4<f32>, read> = access %ub, 18u
+    %59:mat2x4<f32> = load %58
+    %mat2x4_f32:mat2x4<f32> = let %59
+    %61:ptr<uniform, mat3x2<f32>, read> = access %ub, 19u
+    %62:mat3x2<f32> = load %61
+    %mat3x2_f32:mat3x2<f32> = let %62
+    %64:ptr<uniform, mat3x3<f32>, read> = access %ub, 20u
+    %65:mat3x3<f32> = load %64
+    %mat3x3_f32:mat3x3<f32> = let %65
+    %67:ptr<uniform, mat3x4<f32>, read> = access %ub, 21u
+    %68:mat3x4<f32> = load %67
+    %mat3x4_f32:mat3x4<f32> = let %68
+    %70:ptr<uniform, mat4x2<f32>, read> = access %ub, 22u
+    %71:mat4x2<f32> = load %70
+    %mat4x2_f32:mat4x2<f32> = let %71
+    %73:ptr<uniform, mat4x3<f32>, read> = access %ub, 23u
+    %74:mat4x3<f32> = load %73
+    %mat4x3_f32:mat4x3<f32> = let %74
+    %76:ptr<uniform, mat4x4<f32>, read> = access %ub, 24u
+    %77:mat4x4<f32> = load %76
+    %mat4x4_f32:mat4x4<f32> = let %77
+    %79:ptr<uniform, mat2x2<f16>, read> = access %ub, 25u
+    %80:mat2x2<f16> = load %79
+    %mat2x2_f16:mat2x2<f16> = let %80
+    %82:ptr<uniform, mat2x3<f16>, read> = access %ub, 26u
+    %83:mat2x3<f16> = load %82
+    %mat2x3_f16:mat2x3<f16> = let %83
+    %85:ptr<uniform, mat2x4<f16>, read> = access %ub, 27u
+    %86:mat2x4<f16> = load %85
+    %mat2x4_f16:mat2x4<f16> = let %86
+    %88:ptr<uniform, mat3x2<f16>, read> = access %ub, 28u
+    %89:mat3x2<f16> = load %88
+    %mat3x2_f16:mat3x2<f16> = let %89
+    %91:ptr<uniform, mat3x3<f16>, read> = access %ub, 29u
+    %92:mat3x3<f16> = load %91
+    %mat3x3_f16:mat3x3<f16> = let %92
+    %94:ptr<uniform, mat3x4<f16>, read> = access %ub, 30u
+    %95:mat3x4<f16> = load %94
+    %mat3x4_f16:mat3x4<f16> = let %95
+    %97:ptr<uniform, mat4x2<f16>, read> = access %ub, 31u
+    %98:mat4x2<f16> = load %97
+    %mat4x2_f16:mat4x2<f16> = let %98
+    %100:ptr<uniform, mat4x3<f16>, read> = access %ub, 32u
+    %101:mat4x3<f16> = load %100
+    %mat4x3_f16:mat4x3<f16> = let %101
+    %103:ptr<uniform, mat4x4<f16>, read> = access %ub, 33u
+    %104:mat4x4<f16> = load %103
+    %mat4x4_f16:mat4x4<f16> = let %104
+    %106:ptr<uniform, array<vec3<f32>, 2>, read> = access %ub, 34u
+    %107:array<vec3<f32>, 2> = load %106
+    %arr2_vec3_f32:array<vec3<f32>, 2> = let %107
+    %109:ptr<uniform, array<mat4x2<f16>, 2>, read> = access %ub, 35u
+    %110:array<mat4x2<f16>, 2> = load %109
+    %arr2_mat4x2_f16:array<mat4x2<f16>, 2> = let %110
+    %112:ptr<uniform, Inner, read> = access %ub, 36u
+    %113:Inner = load %112
+    %struct_inner:Inner = let %113
+    %115:ptr<uniform, array<Inner, 4>, read> = access %ub, 37u
+    %116:array<Inner, 4> = load %115
+    %array_struct_inner:array<Inner, 4> = let %116
+    %118:i32 = call %tint_f32_to_i32, %scalar_f32
+    %120:i32 = add %118, %scalar_i32
+    %121:i32 = let %120
+    %122:i32 = convert %scalar_u32
+    %123:i32 = add %121, %122
+    %124:i32 = let %123
+    %125:i32 = call %tint_f16_to_i32, %scalar_f16
+    %127:i32 = add %124, %125
+    %128:i32 = let %127
+    %129:f32 = access %vec2_f32, 0u
+    %130:i32 = call %tint_f32_to_i32, %129
+    %131:i32 = add %128, %130
+    %132:i32 = access %vec2_i32, 0u
+    %133:i32 = add %131, %132
+    %134:i32 = let %133
+    %135:u32 = access %vec2_u32, 0u
+    %136:i32 = convert %135
+    %137:i32 = add %134, %136
+    %138:i32 = let %137
+    %139:f16 = access %vec2_f16, 0u
+    %140:i32 = call %tint_f16_to_i32, %139
+    %141:i32 = add %138, %140
+    %142:i32 = let %141
+    %143:f32 = access %vec3_f32, 1u
+    %144:i32 = call %tint_f32_to_i32, %143
+    %145:i32 = add %142, %144
+    %146:i32 = access %vec3_i32, 1u
+    %147:i32 = add %145, %146
+    %148:i32 = let %147
+    %149:u32 = access %vec3_u32, 1u
+    %150:i32 = convert %149
+    %151:i32 = add %148, %150
+    %152:i32 = let %151
+    %153:f16 = access %vec3_f16, 1u
+    %154:i32 = call %tint_f16_to_i32, %153
+    %155:i32 = add %152, %154
+    %156:i32 = let %155
+    %157:f32 = access %vec4_f32, 2u
+    %158:i32 = call %tint_f32_to_i32, %157
+    %159:i32 = add %156, %158
+    %160:i32 = access %vec4_i32, 2u
+    %161:i32 = add %159, %160
+    %162:i32 = let %161
+    %163:u32 = access %vec4_u32, 2u
+    %164:i32 = convert %163
+    %165:i32 = add %162, %164
+    %166:i32 = let %165
+    %167:f16 = access %vec4_f16, 2u
+    %168:i32 = call %tint_f16_to_i32, %167
+    %169:i32 = add %166, %168
+    %170:i32 = let %169
+    %171:f32 = access %mat2x2_f32, 0i, 0u
+    %172:i32 = call %tint_f32_to_i32, %171
+    %173:i32 = add %170, %172
+    %174:i32 = let %173
+    %175:f32 = access %mat2x3_f32, 0i, 0u
+    %176:i32 = call %tint_f32_to_i32, %175
+    %177:i32 = add %174, %176
+    %178:i32 = let %177
+    %179:f32 = access %mat2x4_f32, 0i, 0u
+    %180:i32 = call %tint_f32_to_i32, %179
+    %181:i32 = add %178, %180
+    %182:i32 = let %181
+    %183:f32 = access %mat3x2_f32, 0i, 0u
+    %184:i32 = call %tint_f32_to_i32, %183
+    %185:i32 = add %182, %184
+    %186:i32 = let %185
+    %187:f32 = access %mat3x3_f32, 0i, 0u
+    %188:i32 = call %tint_f32_to_i32, %187
+    %189:i32 = add %186, %188
+    %190:i32 = let %189
+    %191:f32 = access %mat3x4_f32, 0i, 0u
+    %192:i32 = call %tint_f32_to_i32, %191
+    %193:i32 = add %190, %192
+    %194:i32 = let %193
+    %195:f32 = access %mat4x2_f32, 0i, 0u
+    %196:i32 = call %tint_f32_to_i32, %195
+    %197:i32 = add %194, %196
+    %198:i32 = let %197
+    %199:f32 = access %mat4x3_f32, 0i, 0u
+    %200:i32 = call %tint_f32_to_i32, %199
+    %201:i32 = add %198, %200
+    %202:i32 = let %201
+    %203:f32 = access %mat4x4_f32, 0i, 0u
+    %204:i32 = call %tint_f32_to_i32, %203
+    %205:i32 = add %202, %204
+    %206:i32 = let %205
+    %207:f16 = access %mat2x2_f16, 0i, 0u
+    %208:i32 = call %tint_f16_to_i32, %207
+    %209:i32 = add %206, %208
+    %210:i32 = let %209
+    %211:f16 = access %mat2x3_f16, 0i, 0u
+    %212:i32 = call %tint_f16_to_i32, %211
+    %213:i32 = add %210, %212
+    %214:i32 = let %213
+    %215:f16 = access %mat2x4_f16, 0i, 0u
+    %216:i32 = call %tint_f16_to_i32, %215
+    %217:i32 = add %214, %216
+    %218:i32 = let %217
+    %219:f16 = access %mat3x2_f16, 0i, 0u
+    %220:i32 = call %tint_f16_to_i32, %219
+    %221:i32 = add %218, %220
+    %222:i32 = let %221
+    %223:f16 = access %mat3x3_f16, 0i, 0u
+    %224:i32 = call %tint_f16_to_i32, %223
+    %225:i32 = add %222, %224
+    %226:i32 = let %225
+    %227:f16 = access %mat3x4_f16, 0i, 0u
+    %228:i32 = call %tint_f16_to_i32, %227
+    %229:i32 = add %226, %228
+    %230:i32 = let %229
+    %231:f16 = access %mat4x2_f16, 0i, 0u
+    %232:i32 = call %tint_f16_to_i32, %231
+    %233:i32 = add %230, %232
+    %234:i32 = let %233
+    %235:f16 = access %mat4x3_f16, 0i, 0u
+    %236:i32 = call %tint_f16_to_i32, %235
+    %237:i32 = add %234, %236
+    %238:i32 = let %237
+    %239:f16 = access %mat4x4_f16, 0i, 0u
+    %240:i32 = call %tint_f16_to_i32, %239
+    %241:i32 = add %238, %240
+    %242:i32 = let %241
+    %243:f32 = access %arr2_vec3_f32, 0i, 0u
+    %244:i32 = call %tint_f32_to_i32, %243
+    %245:i32 = add %242, %244
+    %246:i32 = let %245
+    %247:f16 = access %arr2_mat4x2_f16, 0i, 0i, 0u
+    %248:i32 = call %tint_f16_to_i32, %247
+    %249:i32 = add %246, %248
+    %250:i32 = access %struct_inner, 0u
+    %251:i32 = add %249, %250
+    %252:i32 = access %array_struct_inner, 0i, 0u
+    %253:i32 = add %251, %252
+    store %s, %253
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B3: {
+    %255:i32 = convert %value
+    %256:bool = gte %value, -2147483648.0f
+    %257:i32 = select -2147483648i, %255, %256
+    %258:bool = lte %value, 2147483520.0f
+    %259:i32 = select 2147483647i, %257, %258
+    ret %259
+  }
+}
+%tint_f16_to_i32 = func(%value_1:f16):i32 {  # %value_1: 'value'
+  $B4: {
+    %261:i32 = convert %value_1
+    %262:bool = gte %value_1, -65504.0h
+    %263:i32 = select -2147483648i, %261, %262
+    %264:bool = lte %value_1, 65504.0h
+    %265:i32 = select 2147483647i, %263, %264
+    ret %265
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5ac9fe2..5c5e7bf 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat2x2<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat2x2<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec2<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat2x2<f32>, 4> = load %p_a
-    %l_a_i:mat2x2<f32> = load %p_a_i
-    %l_a_i_i:vec2<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat2x2<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat2x2<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec2<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec2<f32>, read> = let %14
+    %16:array<mat2x2<f32>, 4> = load %p_a
+    %l_a:array<mat2x2<f32>, 4> = let %16
+    %18:mat2x2<f32> = load %p_a_i
+    %l_a_i:mat2x2<f32> = let %18
+    %20:vec2<f32> = load %p_a_i_i
+    %l_a_i_i:vec2<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 21dd5d7..64ecc68 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat2x2<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat2x2<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec2<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat2x2<f32>, 4> = load %p_a
-    %l_a_i:mat2x2<f32> = load %p_a_2
-    %l_a_i_i:vec2<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat2x2<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat2x2<f32>, read> = let %5
+    %7:ptr<uniform, vec2<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec2<f32>, read> = let %7
+    %9:array<mat2x2<f32>, 4> = load %p_a
+    %l_a:array<mat2x2<f32>, 4> = let %9
+    %11:mat2x2<f32> = load %p_a_2
+    %l_a_i:mat2x2<f32> = let %11
+    %13:vec2<f32> = load %p_a_2_1
+    %l_a_i_i:vec2<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
index 2414505..ce68c7d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat2x2<f32>, read> = access %u, 2i
-    %4:mat2x2<f32> = load %3
-    %t:mat2x2<f32> = transpose %4
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %7:vec2<f32> = load %6
-    %8:vec2<f32> = swizzle %7, yx
-    %l:f32 = length %8
-    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %11:vec2<f32> = load %10
-    %12:vec2<f32> = swizzle %11, yx
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat2x2<f32>, read> = access %u, 2i
+    %5:mat2x2<f32> = load %4
+    %6:mat2x2<f32> = transpose %5
+    %t:mat2x2<f32> = let %6
+    %8:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %9:vec2<f32> = load %8
+    %10:vec2<f32> = swizzle %9, yx
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %14:vec2<f32> = load %13
+    %15:vec2<f32> = swizzle %14, yx
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl
index cc22e5b..6d05dd4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat2x2<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat2x2<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat2x2<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat2x2<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec2<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec2<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat2x2<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat2x2<f32>, read> = access %u, 1i
-    %14:mat2x2<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
-    %17:vec2<f32> = load %16
-    %18:vec2<f32> = swizzle %17, yx
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
-    %21:vec2<f32> = load %20
-    %22:vec2<f32> = swizzle %21, yx
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat2x2<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat2x2<f32>, read> = access %u, 1i
+    %19:mat2x2<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
+    %24:vec2<f32> = load %23
+    %25:vec2<f32> = swizzle %24, yx
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
+    %30:vec2<f32> = load %29
+    %31:vec2<f32> = swizzle %30, yx
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl
index d93db77..abfedb8 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat2x2<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x2<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat2x2<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat2x2<f32>, read> = access %u, 2i
-    %7:mat2x2<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat2x2<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat2x2<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat2x2<f32>, read> = access %u, 2i
+    %8:mat2x2<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %11:vec2<f32> = load %10
+    %12:vec2<f32> = swizzle %11, yx
+    store %9, %12
+    %13:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl
index 0bf64aa..2d3c36d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat2x2<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat2x2<f32>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat2x2<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
index 6e1e695..d2d4762 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x2<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat2x2<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x2<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat2x2<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat2x2<f32>, read> = access %u, 2i
-    %7:mat2x2<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat2x2<f32>, read_write> = access %w, %idx
+        store %7, mat2x2<f32>(vec2<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat2x2<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat2x2<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat2x2<f32>, read> = access %u, 2i
+    %13:mat2x2<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %16:vec2<f32> = load %15
+    %17:vec2<f32> = swizzle %16, yx
+    store %14, %17
+    %18:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index f954066..b28cff4 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat2x3<f16>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat2x3<f16>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec3<f16>, read> = access %p_a_i, %11
-    %l_a:array<mat2x3<f16>, 4> = load %p_a
-    %l_a_i:mat2x3<f16> = load %p_a_i
-    %l_a_i_i:vec3<f16> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat2x3<f16>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat2x3<f16>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec3<f16>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec3<f16>, read> = let %14
+    %16:array<mat2x3<f16>, 4> = load %p_a
+    %l_a:array<mat2x3<f16>, 4> = let %16
+    %18:mat2x3<f16> = load %p_a_i
+    %l_a_i:mat2x3<f16> = let %18
+    %20:vec3<f16> = load %p_a_i_i
+    %l_a_i_i:vec3<f16> = let %20
+    %22:f16 = load_vector_element %p_a_i_i, 0u
+    %23:f16 = access %l_a, 0i, 0i, 0u
+    %24:f16 = add %22, %23
+    %25:f16 = access %l_a_i, 0i, 0u
+    %26:f16 = add %24, %25
+    %27:f16 = access %l_a_i_i, 0u
+    %28:f16 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index a3deefa..dee7935 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat2x3<f16>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat2x3<f16>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec3<f16>, read> = access %p_a_2, 1i
-    %l_a:array<mat2x3<f16>, 4> = load %p_a
-    %l_a_i:mat2x3<f16> = load %p_a_2
-    %l_a_i_i:vec3<f16> = load %p_a_2_1
+    %5:ptr<uniform, mat2x3<f16>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat2x3<f16>, read> = let %5
+    %7:ptr<uniform, vec3<f16>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec3<f16>, read> = let %7
+    %9:array<mat2x3<f16>, 4> = load %p_a
+    %l_a:array<mat2x3<f16>, 4> = let %9
+    %11:mat2x3<f16> = load %p_a_2
+    %l_a_i:mat2x3<f16> = let %11
+    %13:vec3<f16> = load %p_a_2_1
+    %l_a_i_i:vec3<f16> = let %13
+    %15:f16 = load_vector_element %p_a_2_1, 0u
+    %16:f16 = access %l_a, 0i, 0i, 0u
+    %17:f16 = add %15, %16
+    %18:f16 = access %l_a_i, 0i, 0u
+    %19:f16 = add %17, %18
+    %20:f16 = access %l_a_i_i, 0u
+    %21:f16 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
index 4360569..ced5761 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
-    %4:mat2x3<f16> = load %3
-    %t:mat3x2<f16> = transpose %4
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %7:vec3<f16> = load %6
-    %8:vec3<f16> = swizzle %7, zxy
-    %l:f16 = length %8
-    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %11:vec3<f16> = load %10
-    %12:vec3<f16> = swizzle %11, zxy
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
+    %5:mat2x3<f16> = load %4
+    %6:mat3x2<f16> = transpose %5
+    %t:mat3x2<f16> = let %6
+    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %9:vec3<f16> = load %8
+    %10:vec3<f16> = swizzle %9, zxy
+    %11:f16 = length %10
+    %l:f16 = let %11
+    %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %14:vec3<f16> = load %13
+    %15:vec3<f16> = swizzle %14, zxy
+    %16:f16 = access %15, 0u
+    %17:f16 = abs %16
+    %a:f16 = let %17
+    %19:f16 = construct %a
+    %20:f16 = let %19
+    %21:f16 = construct %l
+    %22:f16 = add %20, %21
+    %23:f16 = access %t, 0i, 0u
+    %24:f16 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl
index 73777fa..2df98cd 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat2x3<f16>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat2x3<f16>, 4>):f16 {  # %a_1: 'a'
+  $B2: {
+    %5:f16 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat2x3<f16>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat2x3<f16>):f16 {
+  $B3: {
+    %8:f16 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec3<f16>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec3<f16>):f16 {
+  $B4: {
+    %11:f16 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f16):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f16):f16 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat2x3<f16>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat2x3<f16>, read> = access %u, 1i
-    %14:mat2x3<f16> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
-    %17:vec3<f16> = load %16
-    %18:vec3<f16> = swizzle %17, zxy
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
-    %21:vec3<f16> = load %20
-    %22:vec3<f16> = swizzle %21, zxy
-    %23:f16 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat2x3<f16>, 4> = load %u
+    %16:f16 = call %a, %15
+    %17:f16 = let %16
+    %18:ptr<uniform, mat2x3<f16>, read> = access %u, 1i
+    %19:mat2x3<f16> = load %18
+    %20:f16 = call %b, %19
+    %21:f16 = add %17, %20
+    %22:f16 = let %21
+    %23:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
+    %24:vec3<f16> = load %23
+    %25:vec3<f16> = swizzle %24, zxy
+    %26:f16 = call %c, %25
+    %27:f16 = add %22, %26
+    %28:f16 = let %27
+    %29:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
+    %30:vec3<f16> = load %29
+    %31:vec3<f16> = swizzle %30, zxy
+    %32:f16 = access %31, 0u
+    %33:f16 = call %d, %32
+    %34:f16 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl
index 28cef5d..e840869 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat2x3<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x3<f16>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat2x3<f16>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
-    %7:mat2x3<f16> = load %6
-    store %5, %7
-    %8:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat2x3<f16>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat2x3<f16>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
+    %8:mat2x3<f16> = load %7
+    store %6, %8
+    %9:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %11:vec3<f16> = load %10
+    %12:vec3<f16> = swizzle %11, zxy
+    store %9, %12
+    %13:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %15:f16 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
+    %17:f16 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.msl
index fd65746..aa2e73f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat2x3<f16>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat2x3<f16>, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, mat2x3<f16>, read_write> = access %s, 1i
-    %6:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
-    %7:mat2x3<f16> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 0i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, mat2x3<f16>, read_write> = access %s, 1i
+    %8:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
+    %9:mat2x3<f16> = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
     %12:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 0i
     %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+    %14:vec3<f16> = load %13
+    %15:vec3<f16> = swizzle %14, zxy
+    store %12, %15
+    %16:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 0i
+    %17:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %18:f16 = load_vector_element %17, 0u
+    store_vector_element %16, 0u, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<mat2x3<f16>, 4>, read_write>, %value_param:array<mat2x3<f16>, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, mat2x3<f16>, read_write> = access %target, %idx
+        %24:mat2x3<f16> = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat2x3<f16>, read_write>, %value_param_1:mat2x3<f16>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, vec3<f16>, read_write> = access %target_1, 0u
+    %30:vec3<f16> = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, vec3<f16>, read_write> = access %target_1, 1u
+    %32:vec3<f16> = access %value_param_1, 1u
+    store %31, %32
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
index 09f609b..f29c37f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,52 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %w:ptr<workgroup, array<mat2x3<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x3<f16>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat2x3<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
-    %7:mat2x3<f16> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %7:bool = gte %idx, 4u
+        if %7 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %8:ptr<workgroup, mat2x3<f16>, read_write> = access %w, %idx
+        store %8, mat2x3<f16>(vec3<f16>(0.0h))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %9:u32 = add %idx, 1u
+        next_iteration %9  # -> $B4
+      }
+    }
+    %10:void = msl.threadgroup_barrier 4u
+    %11:array<mat2x3<f16>, 4> = load %u
+    store %w, %11
+    %12:ptr<workgroup, mat2x3<f16>, read_write> = access %w, 1i
+    %13:ptr<uniform, mat2x3<f16>, read> = access %u, 2i
+    %14:mat2x3<f16> = load %13
+    store %12, %14
+    %15:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
+    %16:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %17:vec3<f16> = load %16
+    %18:vec3<f16> = swizzle %17, zxy
+    store %15, %18
+    %19:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
+    %20:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %21:f16 = load_vector_element %20, 0u
+    store_vector_element %19, 0u, %21
+    %22:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
+    %23:f16 = load_vector_element %22, 0u
+    store %s, %23
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 57ea490..cdb2914 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat2x3<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat2x3<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec3<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat2x3<f32>, 4> = load %p_a
-    %l_a_i:mat2x3<f32> = load %p_a_i
-    %l_a_i_i:vec3<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat2x3<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat2x3<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec3<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec3<f32>, read> = let %14
+    %16:array<mat2x3<f32>, 4> = load %p_a
+    %l_a:array<mat2x3<f32>, 4> = let %16
+    %18:mat2x3<f32> = load %p_a_i
+    %l_a_i:mat2x3<f32> = let %18
+    %20:vec3<f32> = load %p_a_i_i
+    %l_a_i_i:vec3<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index e31cc23e..46fb5fb 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat2x3<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat2x3<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec3<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat2x3<f32>, 4> = load %p_a
-    %l_a_i:mat2x3<f32> = load %p_a_2
-    %l_a_i_i:vec3<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat2x3<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat2x3<f32>, read> = let %5
+    %7:ptr<uniform, vec3<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec3<f32>, read> = let %7
+    %9:array<mat2x3<f32>, 4> = load %p_a
+    %l_a:array<mat2x3<f32>, 4> = let %9
+    %11:mat2x3<f32> = load %p_a_2
+    %l_a_i:mat2x3<f32> = let %11
+    %13:vec3<f32> = load %p_a_2_1
+    %l_a_i_i:vec3<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
index 68d6fe2..47c1222 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
-    %4:mat2x3<f32> = load %3
-    %t:mat3x2<f32> = transpose %4
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %7:vec3<f32> = load %6
-    %8:vec3<f32> = swizzle %7, zxy
-    %l:f32 = length %8
-    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %11:vec3<f32> = load %10
-    %12:vec3<f32> = swizzle %11, zxy
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
+    %5:mat2x3<f32> = load %4
+    %6:mat3x2<f32> = transpose %5
+    %t:mat3x2<f32> = let %6
+    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %9:vec3<f32> = load %8
+    %10:vec3<f32> = swizzle %9, zxy
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %14:vec3<f32> = load %13
+    %15:vec3<f32> = swizzle %14, zxy
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl
index ec3e52e..beb17bf 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat2x3<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat2x3<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat2x3<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat2x3<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec3<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec3<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat2x3<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat2x3<f32>, read> = access %u, 1i
-    %14:mat2x3<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
-    %17:vec3<f32> = load %16
-    %18:vec3<f32> = swizzle %17, zxy
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
-    %21:vec3<f32> = load %20
-    %22:vec3<f32> = swizzle %21, zxy
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat2x3<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat2x3<f32>, read> = access %u, 1i
+    %19:mat2x3<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
+    %24:vec3<f32> = load %23
+    %25:vec3<f32> = swizzle %24, zxy
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
+    %30:vec3<f32> = load %29
+    %31:vec3<f32> = swizzle %30, zxy
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl
index eb56d2a..654f700 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat2x3<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x3<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat2x3<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
-    %7:mat2x3<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat2x3<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat2x3<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
+    %8:mat2x3<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %11:vec3<f32> = load %10
+    %12:vec3<f32> = swizzle %11, zxy
+    store %9, %12
+    %13:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.msl
index b83bd8c..2492036 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat2x3<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat2x3<f32>, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, mat2x3<f32>, read_write> = access %s, 1i
-    %6:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
-    %7:mat2x3<f32> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, mat2x3<f32>, read_write> = access %s, 1i
+    %8:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
+    %9:mat2x3<f32> = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
     %12:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
     %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+    %14:vec3<f32> = load %13
+    %15:vec3<f32> = swizzle %14, zxy
+    store %12, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
+    %17:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %18:f32 = load_vector_element %17, 0u
+    store_vector_element %16, 0u, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<mat2x3<f32>, 4>, read_write>, %value_param:array<mat2x3<f32>, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, mat2x3<f32>, read_write> = access %target, %idx
+        %24:mat2x3<f32> = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat2x3<f32>, read_write>, %value_param_1:mat2x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %30:vec3<f32> = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %32:vec3<f32> = access %value_param_1, 1u
+    store %31, %32
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
index 98edbe4..81f7414 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x3<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat2x3<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x3<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat2x3<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
-    %7:mat2x3<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat2x3<f32>, read_write> = access %w, %idx
+        store %7, mat2x3<f32>(vec3<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat2x3<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat2x3<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat2x3<f32>, read> = access %u, 2i
+    %13:mat2x3<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %16:vec3<f32> = load %15
+    %17:vec3<f32> = swizzle %16, zxy
+    store %14, %17
+    %18:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 4dacefe..9442868 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat2x4<f16>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat2x4<f16>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec4<f16>, read> = access %p_a_i, %11
-    %l_a:array<mat2x4<f16>, 4> = load %p_a
-    %l_a_i:mat2x4<f16> = load %p_a_i
-    %l_a_i_i:vec4<f16> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat2x4<f16>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat2x4<f16>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec4<f16>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec4<f16>, read> = let %14
+    %16:array<mat2x4<f16>, 4> = load %p_a
+    %l_a:array<mat2x4<f16>, 4> = let %16
+    %18:mat2x4<f16> = load %p_a_i
+    %l_a_i:mat2x4<f16> = let %18
+    %20:vec4<f16> = load %p_a_i_i
+    %l_a_i_i:vec4<f16> = let %20
+    %22:f16 = load_vector_element %p_a_i_i, 0u
+    %23:f16 = access %l_a, 0i, 0i, 0u
+    %24:f16 = add %22, %23
+    %25:f16 = access %l_a_i, 0i, 0u
+    %26:f16 = add %24, %25
+    %27:f16 = access %l_a_i_i, 0u
+    %28:f16 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index ba7636b..b350cbf 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat2x4<f16>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat2x4<f16>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec4<f16>, read> = access %p_a_2, 1i
-    %l_a:array<mat2x4<f16>, 4> = load %p_a
-    %l_a_i:mat2x4<f16> = load %p_a_2
-    %l_a_i_i:vec4<f16> = load %p_a_2_1
+    %5:ptr<uniform, mat2x4<f16>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat2x4<f16>, read> = let %5
+    %7:ptr<uniform, vec4<f16>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec4<f16>, read> = let %7
+    %9:array<mat2x4<f16>, 4> = load %p_a
+    %l_a:array<mat2x4<f16>, 4> = let %9
+    %11:mat2x4<f16> = load %p_a_2
+    %l_a_i:mat2x4<f16> = let %11
+    %13:vec4<f16> = load %p_a_2_1
+    %l_a_i_i:vec4<f16> = let %13
+    %15:f16 = load_vector_element %p_a_2_1, 0u
+    %16:f16 = access %l_a, 0i, 0i, 0u
+    %17:f16 = add %15, %16
+    %18:f16 = access %l_a_i, 0i, 0u
+    %19:f16 = add %17, %18
+    %20:f16 = access %l_a_i_i, 0u
+    %21:f16 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
index 6e548f8..068f4c3 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat2x4<f16>, read> = access %u, 2i
-    %4:mat2x4<f16> = load %3
-    %t:mat4x2<f16> = transpose %4
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %7:vec4<f16> = load %6
-    %8:vec4<f16> = swizzle %7, ywxz
-    %l:f16 = length %8
-    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %11:vec4<f16> = load %10
-    %12:vec4<f16> = swizzle %11, ywxz
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat2x4<f16>, read> = access %u, 2i
+    %5:mat2x4<f16> = load %4
+    %6:mat4x2<f16> = transpose %5
+    %t:mat4x2<f16> = let %6
+    %8:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %9:vec4<f16> = load %8
+    %10:vec4<f16> = swizzle %9, ywxz
+    %11:f16 = length %10
+    %l:f16 = let %11
+    %13:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %14:vec4<f16> = load %13
+    %15:vec4<f16> = swizzle %14, ywxz
+    %16:f16 = access %15, 0u
+    %17:f16 = abs %16
+    %a:f16 = let %17
+    %19:f16 = access %t, 0i, 0u
+    %20:f16 = construct %l
+    %21:f16 = add %19, %20
+    %22:f16 = let %21
+    %23:f16 = construct %a
+    %24:f16 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl
index afade6c..50ecceb 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat2x4<f16>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat2x4<f16>, 4>):f16 {  # %a_1: 'a'
+  $B2: {
+    %5:f16 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat2x4<f16>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat2x4<f16>):f16 {
+  $B3: {
+    %8:f16 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec4<f16>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec4<f16>):f16 {
+  $B4: {
+    %11:f16 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f16):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f16):f16 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat2x4<f16>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat2x4<f16>, read> = access %u, 1i
-    %14:mat2x4<f16> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
-    %17:vec4<f16> = load %16
-    %18:vec4<f16> = swizzle %17, ywxz
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
-    %21:vec4<f16> = load %20
-    %22:vec4<f16> = swizzle %21, ywxz
-    %23:f16 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat2x4<f16>, 4> = load %u
+    %16:f16 = call %a, %15
+    %17:f16 = let %16
+    %18:ptr<uniform, mat2x4<f16>, read> = access %u, 1i
+    %19:mat2x4<f16> = load %18
+    %20:f16 = call %b, %19
+    %21:f16 = add %17, %20
+    %22:f16 = let %21
+    %23:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
+    %24:vec4<f16> = load %23
+    %25:vec4<f16> = swizzle %24, ywxz
+    %26:f16 = call %c, %25
+    %27:f16 = add %22, %26
+    %28:f16 = let %27
+    %29:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
+    %30:vec4<f16> = load %29
+    %31:vec4<f16> = swizzle %30, ywxz
+    %32:f16 = access %31, 0u
+    %33:f16 = call %d, %32
+    %34:f16 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl
index 18967f3..e1328d1 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat2x4<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x4<f16>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat2x4<f16>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat2x4<f16>, read> = access %u, 2i
-    %7:mat2x4<f16> = load %6
-    store %5, %7
-    %8:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat2x4<f16>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat2x4<f16>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat2x4<f16>, read> = access %u, 2i
+    %8:mat2x4<f16> = load %7
+    store %6, %8
+    %9:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %11:vec4<f16> = load %10
+    %12:vec4<f16> = swizzle %11, ywxz
+    store %9, %12
+    %13:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %15:f16 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
+    %17:f16 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl
index bdcd2db..c2e1e27 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat2x4<f16>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat2x4<f16>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat2x4<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
index c7ee507..39b11df 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f16>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat2x4<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x4<f16>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat2x4<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat2x4<f16>, read> = access %u, 2i
-    %7:mat2x4<f16> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat2x4<f16>, read_write> = access %w, %idx
+        store %7, mat2x4<f16>(vec4<f16>(0.0h))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat2x4<f16>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat2x4<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat2x4<f16>, read> = access %u, 2i
+    %13:mat2x4<f16> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %16:vec4<f16> = load %15
+    %17:vec4<f16> = swizzle %16, ywxz
+    store %14, %17
+    %18:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %20:f16 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index aabebe3..554498d 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat2x4<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat2x4<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec4<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat2x4<f32>, 4> = load %p_a
-    %l_a_i:mat2x4<f32> = load %p_a_i
-    %l_a_i_i:vec4<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat2x4<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat2x4<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec4<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec4<f32>, read> = let %14
+    %16:array<mat2x4<f32>, 4> = load %p_a
+    %l_a:array<mat2x4<f32>, 4> = let %16
+    %18:mat2x4<f32> = load %p_a_i
+    %l_a_i:mat2x4<f32> = let %18
+    %20:vec4<f32> = load %p_a_i_i
+    %l_a_i_i:vec4<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index c1506df..a23ad8f 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat2x4<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat2x4<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec4<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat2x4<f32>, 4> = load %p_a
-    %l_a_i:mat2x4<f32> = load %p_a_2
-    %l_a_i_i:vec4<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat2x4<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat2x4<f32>, read> = let %5
+    %7:ptr<uniform, vec4<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec4<f32>, read> = let %7
+    %9:array<mat2x4<f32>, 4> = load %p_a
+    %l_a:array<mat2x4<f32>, 4> = let %9
+    %11:mat2x4<f32> = load %p_a_2
+    %l_a_i:mat2x4<f32> = let %11
+    %13:vec4<f32> = load %p_a_2_1
+    %l_a_i_i:vec4<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
index 0be87f4..5cf3e84 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat2x4<f32>, read> = access %u, 2i
-    %4:mat2x4<f32> = load %3
-    %t:mat4x2<f32> = transpose %4
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %7:vec4<f32> = load %6
-    %8:vec4<f32> = swizzle %7, ywxz
-    %l:f32 = length %8
-    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %11:vec4<f32> = load %10
-    %12:vec4<f32> = swizzle %11, ywxz
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat2x4<f32>, read> = access %u, 2i
+    %5:mat2x4<f32> = load %4
+    %6:mat4x2<f32> = transpose %5
+    %t:mat4x2<f32> = let %6
+    %8:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %9:vec4<f32> = load %8
+    %10:vec4<f32> = swizzle %9, ywxz
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %14:vec4<f32> = load %13
+    %15:vec4<f32> = swizzle %14, ywxz
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl
index f5af612..520f113 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat2x4<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat2x4<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat2x4<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat2x4<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec4<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec4<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat2x4<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat2x4<f32>, read> = access %u, 1i
-    %14:mat2x4<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
-    %17:vec4<f32> = load %16
-    %18:vec4<f32> = swizzle %17, ywxz
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
-    %21:vec4<f32> = load %20
-    %22:vec4<f32> = swizzle %21, ywxz
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat2x4<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat2x4<f32>, read> = access %u, 1i
+    %19:mat2x4<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
+    %24:vec4<f32> = load %23
+    %25:vec4<f32> = swizzle %24, ywxz
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
+    %30:vec4<f32> = load %29
+    %31:vec4<f32> = swizzle %30, ywxz
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl
index cda2a20..333936e 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat2x4<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x4<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat2x4<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat2x4<f32>, read> = access %u, 2i
-    %7:mat2x4<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat2x4<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat2x4<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat2x4<f32>, read> = access %u, 2i
+    %8:mat2x4<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %11:vec4<f32> = load %10
+    %12:vec4<f32> = swizzle %11, ywxz
+    store %9, %12
+    %13:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl
index 61fe75d..8ed1610 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat2x4<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat2x4<f32>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat2x4<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
index 4c1b8cc..03ccbc8 100644
--- a/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat2x4<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat2x4<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat2x4<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat2x4<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat2x4<f32>, read> = access %u, 2i
-    %7:mat2x4<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat2x4<f32>, read_write> = access %w, %idx
+        store %7, mat2x4<f32>(vec4<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat2x4<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat2x4<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat2x4<f32>, read> = access %u, 2i
+    %13:mat2x4<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %16:vec4<f32> = load %15
+    %17:vec4<f32> = swizzle %16, ywxz
+    store %14, %17
+    %18:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5793fcb..f2c7e12 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat3x3<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat3x3<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec3<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat3x3<f32>, 4> = load %p_a
-    %l_a_i:mat3x3<f32> = load %p_a_i
-    %l_a_i_i:vec3<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat3x3<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat3x3<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec3<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec3<f32>, read> = let %14
+    %16:array<mat3x3<f32>, 4> = load %p_a
+    %l_a:array<mat3x3<f32>, 4> = let %16
+    %18:mat3x3<f32> = load %p_a_i
+    %l_a_i:mat3x3<f32> = let %18
+    %20:vec3<f32> = load %p_a_i_i
+    %l_a_i_i:vec3<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 74fb232..4c5cab1 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat3x3<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat3x3<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec3<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat3x3<f32>, 4> = load %p_a
-    %l_a_i:mat3x3<f32> = load %p_a_2
-    %l_a_i_i:vec3<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat3x3<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat3x3<f32>, read> = let %5
+    %7:ptr<uniform, vec3<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec3<f32>, read> = let %7
+    %9:array<mat3x3<f32>, 4> = load %p_a
+    %l_a:array<mat3x3<f32>, 4> = let %9
+    %11:mat3x3<f32> = load %p_a_2
+    %l_a_i:mat3x3<f32> = let %11
+    %13:vec3<f32> = load %p_a_2_1
+    %l_a_i_i:vec3<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
index 26bc440..246d346 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
-    %4:mat3x3<f32> = load %3
-    %t:mat3x3<f32> = transpose %4
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %7:vec3<f32> = load %6
-    %8:vec3<f32> = swizzle %7, zxy
-    %l:f32 = length %8
-    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %11:vec3<f32> = load %10
-    %12:vec3<f32> = swizzle %11, zxy
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
+    %5:mat3x3<f32> = load %4
+    %6:mat3x3<f32> = transpose %5
+    %t:mat3x3<f32> = let %6
+    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %9:vec3<f32> = load %8
+    %10:vec3<f32> = swizzle %9, zxy
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %14:vec3<f32> = load %13
+    %15:vec3<f32> = swizzle %14, zxy
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl
index eaffe25..0edee96 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat3x3<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat3x3<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat3x3<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat3x3<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec3<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec3<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat3x3<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat3x3<f32>, read> = access %u, 1i
-    %14:mat3x3<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
-    %17:vec3<f32> = load %16
-    %18:vec3<f32> = swizzle %17, zxy
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
-    %21:vec3<f32> = load %20
-    %22:vec3<f32> = swizzle %21, zxy
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat3x3<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat3x3<f32>, read> = access %u, 1i
+    %19:mat3x3<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
+    %24:vec3<f32> = load %23
+    %25:vec3<f32> = swizzle %24, zxy
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
+    %30:vec3<f32> = load %29
+    %31:vec3<f32> = swizzle %30, zxy
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl
index e2df4b5..4091530 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat3x3<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat3x3<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat3x3<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
-    %7:mat3x3<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat3x3<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat3x3<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
+    %8:mat3x3<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %11:vec3<f32> = load %10
+    %12:vec3<f32> = swizzle %11, zxy
+    store %9, %12
+    %13:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.msl
index 4671971..ef57f20 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,67 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat3x3<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat3x3<f32>, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, mat3x3<f32>, read_write> = access %s, 1i
-    %6:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
-    %7:mat3x3<f32> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, mat3x3<f32>, read_write> = access %s, 1i
+    %8:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
+    %9:mat3x3<f32> = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
     %12:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
     %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+    %14:vec3<f32> = load %13
+    %15:vec3<f32> = swizzle %14, zxy
+    store %12, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
+    %17:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %18:f32 = load_vector_element %17, 0u
+    store_vector_element %16, 0u, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<mat3x3<f32>, 4>, read_write>, %value_param:array<mat3x3<f32>, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, mat3x3<f32>, read_write> = access %target, %idx
+        %24:mat3x3<f32> = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat3x3<f32>, read_write>, %value_param_1:mat3x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %30:vec3<f32> = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %32:vec3<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
+    %34:vec3<f32> = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
index bc9640d..7581390 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x3<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat3x3<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat3x3<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat3x3<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
-    %7:mat3x3<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat3x3<f32>, read_write> = access %w, %idx
+        store %7, mat3x3<f32>(vec3<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat3x3<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat3x3<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat3x3<f32>, read> = access %u, 2i
+    %13:mat3x3<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %16:vec3<f32> = load %15
+    %17:vec3<f32> = swizzle %16, zxy
+    store %14, %17
+    %18:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 6c5a57f..6ca088d 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat3x4<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat3x4<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec4<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat3x4<f32>, 4> = load %p_a
-    %l_a_i:mat3x4<f32> = load %p_a_i
-    %l_a_i_i:vec4<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat3x4<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat3x4<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec4<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec4<f32>, read> = let %14
+    %16:array<mat3x4<f32>, 4> = load %p_a
+    %l_a:array<mat3x4<f32>, 4> = let %16
+    %18:mat3x4<f32> = load %p_a_i
+    %l_a_i:mat3x4<f32> = let %18
+    %20:vec4<f32> = load %p_a_i_i
+    %l_a_i_i:vec4<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 96a9953..6446800 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat3x4<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat3x4<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec4<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat3x4<f32>, 4> = load %p_a
-    %l_a_i:mat3x4<f32> = load %p_a_2
-    %l_a_i_i:vec4<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat3x4<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat3x4<f32>, read> = let %5
+    %7:ptr<uniform, vec4<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec4<f32>, read> = let %7
+    %9:array<mat3x4<f32>, 4> = load %p_a
+    %l_a:array<mat3x4<f32>, 4> = let %9
+    %11:mat3x4<f32> = load %p_a_2
+    %l_a_i:mat3x4<f32> = let %11
+    %13:vec4<f32> = load %p_a_2_1
+    %l_a_i_i:vec4<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
index 3d0daa2..270bf40 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat3x4<f32>, read> = access %u, 2i
-    %4:mat3x4<f32> = load %3
-    %t:mat4x3<f32> = transpose %4
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %7:vec4<f32> = load %6
-    %8:vec4<f32> = swizzle %7, ywxz
-    %l:f32 = length %8
-    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %11:vec4<f32> = load %10
-    %12:vec4<f32> = swizzle %11, ywxz
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat3x4<f32>, read> = access %u, 2i
+    %5:mat3x4<f32> = load %4
+    %6:mat4x3<f32> = transpose %5
+    %t:mat4x3<f32> = let %6
+    %8:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %9:vec4<f32> = load %8
+    %10:vec4<f32> = swizzle %9, ywxz
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %14:vec4<f32> = load %13
+    %15:vec4<f32> = swizzle %14, ywxz
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl
index b760ded..90adb9e 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat3x4<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat3x4<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat3x4<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat3x4<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec4<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec4<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat3x4<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat3x4<f32>, read> = access %u, 1i
-    %14:mat3x4<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
-    %17:vec4<f32> = load %16
-    %18:vec4<f32> = swizzle %17, ywxz
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
-    %21:vec4<f32> = load %20
-    %22:vec4<f32> = swizzle %21, ywxz
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat3x4<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat3x4<f32>, read> = access %u, 1i
+    %19:mat3x4<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
+    %24:vec4<f32> = load %23
+    %25:vec4<f32> = swizzle %24, ywxz
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
+    %30:vec4<f32> = load %29
+    %31:vec4<f32> = swizzle %30, ywxz
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl
index 6391b35..99f53ef 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat3x4<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat3x4<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat3x4<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat3x4<f32>, read> = access %u, 2i
-    %7:mat3x4<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat3x4<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat3x4<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat3x4<f32>, read> = access %u, 2i
+    %8:mat3x4<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %11:vec4<f32> = load %10
+    %12:vec4<f32> = swizzle %11, ywxz
+    store %9, %12
+    %13:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl
index bc2a2f6..ce3ff04 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat3x4<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat3x4<f32>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat3x4<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
index cd658aa..247c618 100644
--- a/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat3x4<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat3x4<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat3x4<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat3x4<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat3x4<f32>, read> = access %u, 2i
-    %7:mat3x4<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat3x4<f32>, read_write> = access %w, %idx
+        store %7, mat3x4<f32>(vec4<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat3x4<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat3x4<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat3x4<f32>, read> = access %u, 2i
+    %13:mat3x4<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %16:vec4<f32> = load %15
+    %17:vec4<f32> = swizzle %16, ywxz
+    store %14, %17
+    %18:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index df5682c..3eb259d 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat4x2<f16>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat4x2<f16>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec2<f16>, read> = access %p_a_i, %11
-    %l_a:array<mat4x2<f16>, 4> = load %p_a
-    %l_a_i:mat4x2<f16> = load %p_a_i
-    %l_a_i_i:vec2<f16> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat4x2<f16>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat4x2<f16>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec2<f16>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec2<f16>, read> = let %14
+    %16:array<mat4x2<f16>, 4> = load %p_a
+    %l_a:array<mat4x2<f16>, 4> = let %16
+    %18:mat4x2<f16> = load %p_a_i
+    %l_a_i:mat4x2<f16> = let %18
+    %20:vec2<f16> = load %p_a_i_i
+    %l_a_i_i:vec2<f16> = let %20
+    %22:f16 = load_vector_element %p_a_i_i, 0u
+    %23:f16 = access %l_a, 0i, 0i, 0u
+    %24:f16 = add %22, %23
+    %25:f16 = access %l_a_i, 0i, 0u
+    %26:f16 = add %24, %25
+    %27:f16 = access %l_a_i_i, 0u
+    %28:f16 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 5c02fd1..54b02cd 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat4x2<f16>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat4x2<f16>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec2<f16>, read> = access %p_a_2, 1i
-    %l_a:array<mat4x2<f16>, 4> = load %p_a
-    %l_a_i:mat4x2<f16> = load %p_a_2
-    %l_a_i_i:vec2<f16> = load %p_a_2_1
+    %5:ptr<uniform, mat4x2<f16>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat4x2<f16>, read> = let %5
+    %7:ptr<uniform, vec2<f16>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec2<f16>, read> = let %7
+    %9:array<mat4x2<f16>, 4> = load %p_a
+    %l_a:array<mat4x2<f16>, 4> = let %9
+    %11:mat4x2<f16> = load %p_a_2
+    %l_a_i:mat4x2<f16> = let %11
+    %13:vec2<f16> = load %p_a_2_1
+    %l_a_i_i:vec2<f16> = let %13
+    %15:f16 = load_vector_element %p_a_2_1, 0u
+    %16:f16 = access %l_a, 0i, 0i, 0u
+    %17:f16 = add %15, %16
+    %18:f16 = access %l_a_i, 0i, 0u
+    %19:f16 = add %17, %18
+    %20:f16 = access %l_a_i_i, 0u
+    %21:f16 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
index 3ad4229..652e7b9 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat4x2<f16>, read> = access %u, 2i
-    %4:mat4x2<f16> = load %3
-    %t:mat2x4<f16> = transpose %4
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
-    %7:vec2<f16> = load %6
-    %8:vec2<f16> = swizzle %7, yx
-    %l:f16 = length %8
-    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
-    %11:vec2<f16> = load %10
-    %12:vec2<f16> = swizzle %11, yx
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat4x2<f16>, read> = access %u, 2i
+    %5:mat4x2<f16> = load %4
+    %6:mat2x4<f16> = transpose %5
+    %t:mat2x4<f16> = let %6
+    %8:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
+    %9:vec2<f16> = load %8
+    %10:vec2<f16> = swizzle %9, yx
+    %11:f16 = length %10
+    %l:f16 = let %11
+    %13:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
+    %14:vec2<f16> = load %13
+    %15:vec2<f16> = swizzle %14, yx
+    %16:f16 = access %15, 0u
+    %17:f16 = abs %16
+    %a:f16 = let %17
+    %19:f16 = access %t, 0i, 0u
+    %20:f16 = construct %l
+    %21:f16 = add %19, %20
+    %22:f16 = let %21
+    %23:f16 = construct %a
+    %24:f16 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl
index 73aea88..1fbe38c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat4x2<f16>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat4x2<f16>, 4>):f16 {  # %a_1: 'a'
+  $B2: {
+    %5:f16 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat4x2<f16>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat4x2<f16>):f16 {
+  $B3: {
+    %8:f16 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec2<f16>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec2<f16>):f16 {
+  $B4: {
+    %11:f16 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f16):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f16):f16 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat4x2<f16>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat4x2<f16>, read> = access %u, 1i
-    %14:mat4x2<f16> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec2<f16>, read> = access %u, 1i, 0i
-    %17:vec2<f16> = load %16
-    %18:vec2<f16> = swizzle %17, yx
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec2<f16>, read> = access %u, 1i, 0i
-    %21:vec2<f16> = load %20
-    %22:vec2<f16> = swizzle %21, yx
-    %23:f16 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat4x2<f16>, 4> = load %u
+    %16:f16 = call %a, %15
+    %17:f16 = let %16
+    %18:ptr<uniform, mat4x2<f16>, read> = access %u, 1i
+    %19:mat4x2<f16> = load %18
+    %20:f16 = call %b, %19
+    %21:f16 = add %17, %20
+    %22:f16 = let %21
+    %23:ptr<uniform, vec2<f16>, read> = access %u, 1i, 0i
+    %24:vec2<f16> = load %23
+    %25:vec2<f16> = swizzle %24, yx
+    %26:f16 = call %c, %25
+    %27:f16 = add %22, %26
+    %28:f16 = let %27
+    %29:ptr<uniform, vec2<f16>, read> = access %u, 1i, 0i
+    %30:vec2<f16> = load %29
+    %31:vec2<f16> = swizzle %30, yx
+    %32:f16 = access %31, 0u
+    %33:f16 = call %d, %32
+    %34:f16 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl
index 7334c56..1fc8634 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat4x2<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x2<f16>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat4x2<f16>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat4x2<f16>, read> = access %u, 2i
-    %7:mat4x2<f16> = load %6
-    store %5, %7
-    %8:ptr<private, vec2<f16>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
-    %10:vec2<f16> = load %9
-    %11:vec2<f16> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<private, vec2<f16>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat4x2<f16>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat4x2<f16>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat4x2<f16>, read> = access %u, 2i
+    %8:mat4x2<f16> = load %7
+    store %6, %8
+    %9:ptr<private, vec2<f16>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
+    %11:vec2<f16> = load %10
+    %12:vec2<f16> = swizzle %11, yx
+    store %9, %12
+    %13:ptr<private, vec2<f16>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
+    %15:f16 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec2<f16>, read_write> = access %p, 1i, 0i
+    %17:f16 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl
index d39980a..d286f86 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat4x2<f16>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat4x2<f16>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat4x2<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
index b7712ac..20fbb09 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f16>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat4x2<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x2<f16>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat4x2<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat4x2<f16>, read> = access %u, 2i
-    %7:mat4x2<f16> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
-    %10:vec2<f16> = load %9
-    %11:vec2<f16> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat4x2<f16>, read_write> = access %w, %idx
+        store %7, mat4x2<f16>(vec2<f16>(0.0h))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat4x2<f16>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat4x2<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat4x2<f16>, read> = access %u, 2i
+    %13:mat4x2<f16> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
+    %16:vec2<f16> = load %15
+    %17:vec2<f16> = swizzle %16, yx
+    store %14, %17
+    %18:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1i
+    %20:f16 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ad5ce7c..ece1057 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat4x2<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat4x2<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec2<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat4x2<f32>, 4> = load %p_a
-    %l_a_i:mat4x2<f32> = load %p_a_i
-    %l_a_i_i:vec2<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat4x2<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat4x2<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec2<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec2<f32>, read> = let %14
+    %16:array<mat4x2<f32>, 4> = load %p_a
+    %l_a:array<mat4x2<f32>, 4> = let %16
+    %18:mat4x2<f32> = load %p_a_i
+    %l_a_i:mat4x2<f32> = let %18
+    %20:vec2<f32> = load %p_a_i_i
+    %l_a_i_i:vec2<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index b673d2e..616bce7 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat4x2<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat4x2<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec2<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat4x2<f32>, 4> = load %p_a
-    %l_a_i:mat4x2<f32> = load %p_a_2
-    %l_a_i_i:vec2<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat4x2<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat4x2<f32>, read> = let %5
+    %7:ptr<uniform, vec2<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec2<f32>, read> = let %7
+    %9:array<mat4x2<f32>, 4> = load %p_a
+    %l_a:array<mat4x2<f32>, 4> = let %9
+    %11:mat4x2<f32> = load %p_a_2
+    %l_a_i:mat4x2<f32> = let %11
+    %13:vec2<f32> = load %p_a_2_1
+    %l_a_i_i:vec2<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
index 33dcc4e..9459f95 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat4x2<f32>, read> = access %u, 2i
-    %4:mat4x2<f32> = load %3
-    %t:mat2x4<f32> = transpose %4
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %7:vec2<f32> = load %6
-    %8:vec2<f32> = swizzle %7, yx
-    %l:f32 = length %8
-    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %11:vec2<f32> = load %10
-    %12:vec2<f32> = swizzle %11, yx
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat4x2<f32>, read> = access %u, 2i
+    %5:mat4x2<f32> = load %4
+    %6:mat2x4<f32> = transpose %5
+    %t:mat2x4<f32> = let %6
+    %8:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %9:vec2<f32> = load %8
+    %10:vec2<f32> = swizzle %9, yx
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %14:vec2<f32> = load %13
+    %15:vec2<f32> = swizzle %14, yx
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl
index 6cf89d2..3e80621 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat4x2<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat4x2<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat4x2<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat4x2<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec2<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec2<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat4x2<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat4x2<f32>, read> = access %u, 1i
-    %14:mat4x2<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
-    %17:vec2<f32> = load %16
-    %18:vec2<f32> = swizzle %17, yx
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
-    %21:vec2<f32> = load %20
-    %22:vec2<f32> = swizzle %21, yx
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat4x2<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat4x2<f32>, read> = access %u, 1i
+    %19:mat4x2<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
+    %24:vec2<f32> = load %23
+    %25:vec2<f32> = swizzle %24, yx
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec2<f32>, read> = access %u, 1i, 0i
+    %30:vec2<f32> = load %29
+    %31:vec2<f32> = swizzle %30, yx
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl
index c91288b..180d603 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat4x2<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x2<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat4x2<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat4x2<f32>, read> = access %u, 2i
-    %7:mat4x2<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat4x2<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat4x2<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat4x2<f32>, read> = access %u, 2i
+    %8:mat4x2<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %11:vec2<f32> = load %10
+    %12:vec2<f32> = swizzle %11, yx
+    store %9, %12
+    %13:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec2<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl
index 18b969d..79aeaaa 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat4x2<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat4x2<f32>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat4x2<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
index 301d083..8964fe4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x2<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat4x2<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x2<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat4x2<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat4x2<f32>, read> = access %u, 2i
-    %7:mat4x2<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat4x2<f32>, read_write> = access %w, %idx
+        store %7, mat4x2<f32>(vec2<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat4x2<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat4x2<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat4x2<f32>, read> = access %u, 2i
+    %13:mat4x2<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %16:vec2<f32> = load %15
+    %17:vec2<f32> = swizzle %16, yx
+    store %14, %17
+    %18:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 457bc4f..e41f63c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat4x3<f16>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat4x3<f16>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec3<f16>, read> = access %p_a_i, %11
-    %l_a:array<mat4x3<f16>, 4> = load %p_a
-    %l_a_i:mat4x3<f16> = load %p_a_i
-    %l_a_i_i:vec3<f16> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat4x3<f16>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat4x3<f16>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec3<f16>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec3<f16>, read> = let %14
+    %16:array<mat4x3<f16>, 4> = load %p_a
+    %l_a:array<mat4x3<f16>, 4> = let %16
+    %18:mat4x3<f16> = load %p_a_i
+    %l_a_i:mat4x3<f16> = let %18
+    %20:vec3<f16> = load %p_a_i_i
+    %l_a_i_i:vec3<f16> = let %20
+    %22:f16 = load_vector_element %p_a_i_i, 0u
+    %23:f16 = access %l_a, 0i, 0i, 0u
+    %24:f16 = add %22, %23
+    %25:f16 = access %l_a_i, 0i, 0u
+    %26:f16 = add %24, %25
+    %27:f16 = access %l_a_i_i, 0u
+    %28:f16 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 97784a7..775594a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat4x3<f16>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat4x3<f16>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec3<f16>, read> = access %p_a_2, 1i
-    %l_a:array<mat4x3<f16>, 4> = load %p_a
-    %l_a_i:mat4x3<f16> = load %p_a_2
-    %l_a_i_i:vec3<f16> = load %p_a_2_1
+    %5:ptr<uniform, mat4x3<f16>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat4x3<f16>, read> = let %5
+    %7:ptr<uniform, vec3<f16>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec3<f16>, read> = let %7
+    %9:array<mat4x3<f16>, 4> = load %p_a
+    %l_a:array<mat4x3<f16>, 4> = let %9
+    %11:mat4x3<f16> = load %p_a_2
+    %l_a_i:mat4x3<f16> = let %11
+    %13:vec3<f16> = load %p_a_2_1
+    %l_a_i_i:vec3<f16> = let %13
+    %15:f16 = load_vector_element %p_a_2_1, 0u
+    %16:f16 = access %l_a, 0i, 0i, 0u
+    %17:f16 = add %15, %16
+    %18:f16 = access %l_a_i, 0i, 0u
+    %19:f16 = add %17, %18
+    %20:f16 = access %l_a_i_i, 0u
+    %21:f16 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
index e150d2b..f7e8030 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
-    %4:mat4x3<f16> = load %3
-    %t:mat3x4<f16> = transpose %4
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %7:vec3<f16> = load %6
-    %8:vec3<f16> = swizzle %7, zxy
-    %l:f16 = length %8
-    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %11:vec3<f16> = load %10
-    %12:vec3<f16> = swizzle %11, zxy
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
+    %5:mat4x3<f16> = load %4
+    %6:mat3x4<f16> = transpose %5
+    %t:mat3x4<f16> = let %6
+    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %9:vec3<f16> = load %8
+    %10:vec3<f16> = swizzle %9, zxy
+    %11:f16 = length %10
+    %l:f16 = let %11
+    %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %14:vec3<f16> = load %13
+    %15:vec3<f16> = swizzle %14, zxy
+    %16:f16 = access %15, 0u
+    %17:f16 = abs %16
+    %a:f16 = let %17
+    %19:f16 = access %t, 0i, 0u
+    %20:f16 = construct %l
+    %21:f16 = add %19, %20
+    %22:f16 = let %21
+    %23:f16 = construct %a
+    %24:f16 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl
index 24516e1..808d172 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat4x3<f16>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat4x3<f16>, 4>):f16 {  # %a_1: 'a'
+  $B2: {
+    %5:f16 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat4x3<f16>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat4x3<f16>):f16 {
+  $B3: {
+    %8:f16 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec3<f16>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec3<f16>):f16 {
+  $B4: {
+    %11:f16 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f16):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f16):f16 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat4x3<f16>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat4x3<f16>, read> = access %u, 1i
-    %14:mat4x3<f16> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
-    %17:vec3<f16> = load %16
-    %18:vec3<f16> = swizzle %17, zxy
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
-    %21:vec3<f16> = load %20
-    %22:vec3<f16> = swizzle %21, zxy
-    %23:f16 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat4x3<f16>, 4> = load %u
+    %16:f16 = call %a, %15
+    %17:f16 = let %16
+    %18:ptr<uniform, mat4x3<f16>, read> = access %u, 1i
+    %19:mat4x3<f16> = load %18
+    %20:f16 = call %b, %19
+    %21:f16 = add %17, %20
+    %22:f16 = let %21
+    %23:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
+    %24:vec3<f16> = load %23
+    %25:vec3<f16> = swizzle %24, zxy
+    %26:f16 = call %c, %25
+    %27:f16 = add %22, %26
+    %28:f16 = let %27
+    %29:ptr<uniform, vec3<f16>, read> = access %u, 1i, 0i
+    %30:vec3<f16> = load %29
+    %31:vec3<f16> = swizzle %30, zxy
+    %32:f16 = access %31, 0u
+    %33:f16 = call %d, %32
+    %34:f16 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl
index 13a9ba2..bfcb672 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat4x3<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x3<f16>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat4x3<f16>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
-    %7:mat4x3<f16> = load %6
-    store %5, %7
-    %8:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat4x3<f16>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat4x3<f16>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
+    %8:mat4x3<f16> = load %7
+    store %6, %8
+    %9:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %11:vec3<f16> = load %10
+    %12:vec3<f16> = swizzle %11, zxy
+    store %9, %12
+    %13:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %15:f16 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec3<f16>, read_write> = access %p, 1i, 0i
+    %17:f16 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.msl
index 35b4520..1567050 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat4x3<f16>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat4x3<f16>, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, mat4x3<f16>, read_write> = access %s, 1i
-    %6:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
-    %7:mat4x3<f16> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 0i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, mat4x3<f16>, read_write> = access %s, 1i
+    %8:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
+    %9:mat4x3<f16> = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
     %12:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 0i
     %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+    %14:vec3<f16> = load %13
+    %15:vec3<f16> = swizzle %14, zxy
+    store %12, %15
+    %16:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 0i
+    %17:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %18:f16 = load_vector_element %17, 0u
+    store_vector_element %16, 0u, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<mat4x3<f16>, 4>, read_write>, %value_param:array<mat4x3<f16>, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, mat4x3<f16>, read_write> = access %target, %idx
+        %24:mat4x3<f16> = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat4x3<f16>, read_write>, %value_param_1:mat4x3<f16>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, vec3<f16>, read_write> = access %target_1, 0u
+    %30:vec3<f16> = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, vec3<f16>, read_write> = access %target_1, 1u
+    %32:vec3<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, vec3<f16>, read_write> = access %target_1, 2u
+    %34:vec3<f16> = access %value_param_1, 2u
+    store %33, %34
+    %35:ptr<storage, vec3<f16>, read_write> = access %target_1, 3u
+    %36:vec3<f16> = access %value_param_1, 3u
+    store %35, %36
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
index 006f2d7..8ca1ffc 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f16>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat4x3<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x3<f16>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat4x3<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
-    %7:mat4x3<f16> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat4x3<f16>, read_write> = access %w, %idx
+        store %7, mat4x3<f16>(vec3<f16>(0.0h))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat4x3<f16>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat4x3<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat4x3<f16>, read> = access %u, 2i
+    %13:mat4x3<f16> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %16:vec3<f16> = load %15
+    %17:vec3<f16> = swizzle %16, zxy
+    store %14, %17
+    %18:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1i
+    %20:f16 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ee7a621..dd508be 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat4x3<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat4x3<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec3<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat4x3<f32>, 4> = load %p_a
-    %l_a_i:mat4x3<f32> = load %p_a_i
-    %l_a_i_i:vec3<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat4x3<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat4x3<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec3<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec3<f32>, read> = let %14
+    %16:array<mat4x3<f32>, 4> = load %p_a
+    %l_a:array<mat4x3<f32>, 4> = let %16
+    %18:mat4x3<f32> = load %p_a_i
+    %l_a_i:mat4x3<f32> = let %18
+    %20:vec3<f32> = load %p_a_i_i
+    %l_a_i_i:vec3<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index a5c5359..3bb2007 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat4x3<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat4x3<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec3<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat4x3<f32>, 4> = load %p_a
-    %l_a_i:mat4x3<f32> = load %p_a_2
-    %l_a_i_i:vec3<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat4x3<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat4x3<f32>, read> = let %5
+    %7:ptr<uniform, vec3<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec3<f32>, read> = let %7
+    %9:array<mat4x3<f32>, 4> = load %p_a
+    %l_a:array<mat4x3<f32>, 4> = let %9
+    %11:mat4x3<f32> = load %p_a_2
+    %l_a_i:mat4x3<f32> = let %11
+    %13:vec3<f32> = load %p_a_2_1
+    %l_a_i_i:vec3<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
index 326ff09..57a74ba 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
-    %4:mat4x3<f32> = load %3
-    %t:mat3x4<f32> = transpose %4
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %7:vec3<f32> = load %6
-    %8:vec3<f32> = swizzle %7, zxy
-    %l:f32 = length %8
-    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %11:vec3<f32> = load %10
-    %12:vec3<f32> = swizzle %11, zxy
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
+    %5:mat4x3<f32> = load %4
+    %6:mat3x4<f32> = transpose %5
+    %t:mat3x4<f32> = let %6
+    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %9:vec3<f32> = load %8
+    %10:vec3<f32> = swizzle %9, zxy
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %14:vec3<f32> = load %13
+    %15:vec3<f32> = swizzle %14, zxy
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl
index 914a921..1d68a3c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat4x3<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat4x3<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat4x3<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat4x3<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec3<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec3<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat4x3<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat4x3<f32>, read> = access %u, 1i
-    %14:mat4x3<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
-    %17:vec3<f32> = load %16
-    %18:vec3<f32> = swizzle %17, zxy
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
-    %21:vec3<f32> = load %20
-    %22:vec3<f32> = swizzle %21, zxy
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat4x3<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat4x3<f32>, read> = access %u, 1i
+    %19:mat4x3<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
+    %24:vec3<f32> = load %23
+    %25:vec3<f32> = swizzle %24, zxy
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec3<f32>, read> = access %u, 1i, 0i
+    %30:vec3<f32> = load %29
+    %31:vec3<f32> = swizzle %30, zxy
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl
index 6eb409e..1fda10a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat4x3<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x3<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat4x3<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
-    %7:mat4x3<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat4x3<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat4x3<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
+    %8:mat4x3<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %11:vec3<f32> = load %10
+    %12:vec3<f32> = swizzle %11, zxy
+    store %9, %12
+    %13:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec3<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.msl
index d015b00..7a463f6 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat4x3<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat4x3<f32>, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, mat4x3<f32>, read_write> = access %s, 1i
-    %6:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
-    %7:mat4x3<f32> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, mat4x3<f32>, read_write> = access %s, 1i
+    %8:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
+    %9:mat4x3<f32> = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
     %12:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
     %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+    %14:vec3<f32> = load %13
+    %15:vec3<f32> = swizzle %14, zxy
+    store %12, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 0i
+    %17:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %18:f32 = load_vector_element %17, 0u
+    store_vector_element %16, 0u, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<mat4x3<f32>, 4>, read_write>, %value_param:array<mat4x3<f32>, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, mat4x3<f32>, read_write> = access %target, %idx
+        %24:mat4x3<f32> = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, mat4x3<f32>, read_write>, %value_param_1:mat4x3<f32>):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, vec3<f32>, read_write> = access %target_1, 0u
+    %30:vec3<f32> = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %32:vec3<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, vec3<f32>, read_write> = access %target_1, 2u
+    %34:vec3<f32> = access %value_param_1, 2u
+    store %33, %34
+    %35:ptr<storage, vec3<f32>, read_write> = access %target_1, 3u
+    %36:vec3<f32> = access %value_param_1, 3u
+    store %35, %36
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
index 7e32bb2..0e2863a 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x3<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat4x3<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x3<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat4x3<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
-    %7:mat4x3<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat4x3<f32>, read_write> = access %w, %idx
+        store %7, mat4x3<f32>(vec3<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat4x3<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat4x3<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat4x3<f32>, read> = access %u, 2i
+    %13:mat4x3<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %16:vec3<f32> = load %15
+    %17:vec3<f32> = swizzle %16, zxy
+    store %14, %17
+    %18:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 021c37f..863554e 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat4x4<f16>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat4x4<f16>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec4<f16>, read> = access %p_a_i, %11
-    %l_a:array<mat4x4<f16>, 4> = load %p_a
-    %l_a_i:mat4x4<f16> = load %p_a_i
-    %l_a_i_i:vec4<f16> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat4x4<f16>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat4x4<f16>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec4<f16>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec4<f16>, read> = let %14
+    %16:array<mat4x4<f16>, 4> = load %p_a
+    %l_a:array<mat4x4<f16>, 4> = let %16
+    %18:mat4x4<f16> = load %p_a_i
+    %l_a_i:mat4x4<f16> = let %18
+    %20:vec4<f16> = load %p_a_i_i
+    %l_a_i_i:vec4<f16> = let %20
+    %22:f16 = load_vector_element %p_a_i_i, 0u
+    %23:f16 = access %l_a, 0i, 0i, 0u
+    %24:f16 = add %22, %23
+    %25:f16 = access %l_a_i, 0i, 0u
+    %26:f16 = add %24, %25
+    %27:f16 = access %l_a_i_i, 0u
+    %28:f16 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 686aa97..19984e1 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat4x4<f16>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat4x4<f16>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec4<f16>, read> = access %p_a_2, 1i
-    %l_a:array<mat4x4<f16>, 4> = load %p_a
-    %l_a_i:mat4x4<f16> = load %p_a_2
-    %l_a_i_i:vec4<f16> = load %p_a_2_1
+    %5:ptr<uniform, mat4x4<f16>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat4x4<f16>, read> = let %5
+    %7:ptr<uniform, vec4<f16>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec4<f16>, read> = let %7
+    %9:array<mat4x4<f16>, 4> = load %p_a
+    %l_a:array<mat4x4<f16>, 4> = let %9
+    %11:mat4x4<f16> = load %p_a_2
+    %l_a_i:mat4x4<f16> = let %11
+    %13:vec4<f16> = load %p_a_2_1
+    %l_a_i_i:vec4<f16> = let %13
+    %15:f16 = load_vector_element %p_a_2_1, 0u
+    %16:f16 = access %l_a, 0i, 0i, 0u
+    %17:f16 = add %15, %16
+    %18:f16 = access %l_a_i, 0i, 0u
+    %19:f16 = add %17, %18
+    %20:f16 = access %l_a_i_i, 0u
+    %21:f16 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
index 0690293..d99cf0f 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat4x4<f16>, read> = access %u, 2i
-    %4:mat4x4<f16> = load %3
-    %t:mat4x4<f16> = transpose %4
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %7:vec4<f16> = load %6
-    %8:vec4<f16> = swizzle %7, ywxz
-    %l:f16 = length %8
-    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %11:vec4<f16> = load %10
-    %12:vec4<f16> = swizzle %11, ywxz
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat4x4<f16>, read> = access %u, 2i
+    %5:mat4x4<f16> = load %4
+    %6:mat4x4<f16> = transpose %5
+    %t:mat4x4<f16> = let %6
+    %8:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %9:vec4<f16> = load %8
+    %10:vec4<f16> = swizzle %9, ywxz
+    %11:f16 = length %10
+    %l:f16 = let %11
+    %13:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %14:vec4<f16> = load %13
+    %15:vec4<f16> = swizzle %14, ywxz
+    %16:f16 = access %15, 0u
+    %17:f16 = abs %16
+    %a:f16 = let %17
+    %19:f16 = access %t, 0i, 0u
+    %20:f16 = construct %l
+    %21:f16 = add %19, %20
+    %22:f16 = let %21
+    %23:f16 = construct %a
+    %24:f16 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl
index 36a3da5..bb5be48 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat4x4<f16>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat4x4<f16>, 4>):f16 {  # %a_1: 'a'
+  $B2: {
+    %5:f16 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat4x4<f16>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat4x4<f16>):f16 {
+  $B3: {
+    %8:f16 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec4<f16>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec4<f16>):f16 {
+  $B4: {
+    %11:f16 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f16):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f16):f16 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat4x4<f16>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat4x4<f16>, read> = access %u, 1i
-    %14:mat4x4<f16> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
-    %17:vec4<f16> = load %16
-    %18:vec4<f16> = swizzle %17, ywxz
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
-    %21:vec4<f16> = load %20
-    %22:vec4<f16> = swizzle %21, ywxz
-    %23:f16 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat4x4<f16>, 4> = load %u
+    %16:f16 = call %a, %15
+    %17:f16 = let %16
+    %18:ptr<uniform, mat4x4<f16>, read> = access %u, 1i
+    %19:mat4x4<f16> = load %18
+    %20:f16 = call %b, %19
+    %21:f16 = add %17, %20
+    %22:f16 = let %21
+    %23:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
+    %24:vec4<f16> = load %23
+    %25:vec4<f16> = swizzle %24, ywxz
+    %26:f16 = call %c, %25
+    %27:f16 = add %22, %26
+    %28:f16 = let %27
+    %29:ptr<uniform, vec4<f16>, read> = access %u, 1i, 0i
+    %30:vec4<f16> = load %29
+    %31:vec4<f16> = swizzle %30, ywxz
+    %32:f16 = access %31, 0u
+    %33:f16 = call %d, %32
+    %34:f16 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl
index aca0afd..7673f73 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat4x4<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x4<f16>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat4x4<f16>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat4x4<f16>, read> = access %u, 2i
-    %7:mat4x4<f16> = load %6
-    store %5, %7
-    %8:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat4x4<f16>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat4x4<f16>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat4x4<f16>, read> = access %u, 2i
+    %8:mat4x4<f16> = load %7
+    store %6, %8
+    %9:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %11:vec4<f16> = load %10
+    %12:vec4<f16> = swizzle %11, ywxz
+    store %9, %12
+    %13:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %15:f16 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec4<f16>, read_write> = access %p, 1i, 0i
+    %17:f16 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl
index 654eb2c..7b01bcc 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat4x4<f16>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat4x4<f16>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat4x4<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
index 7b3bb97..41a8eb4 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f16>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat4x4<f16>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x4<f16>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat4x4<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat4x4<f16>, read> = access %u, 2i
-    %7:mat4x4<f16> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
-    %14:f16 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat4x4<f16>, read_write> = access %w, %idx
+        store %7, mat4x4<f16>(vec4<f16>(0.0h))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat4x4<f16>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat4x4<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat4x4<f16>, read> = access %u, 2i
+    %13:mat4x4<f16> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %16:vec4<f16> = load %15
+    %17:vec4<f16> = swizzle %16, ywxz
+    store %14, %17
+    %18:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1i
+    %20:f16 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 8e31abf..336fdbe 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,29 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
-    %4:i32 = load %counter
-    %5:i32 = add %4, 1i
-    store %counter, %5
-    %6:i32 = load %counter
-    ret %6
+%i = func():i32 {
+  $B2: {
+    %5:i32 = load %counter
+    %6:i32 = add %5, 1i
+    store %counter, %6
+    %7:i32 = load %counter
+    ret %7
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<mat4x4<f32>, 4>, read> = let %a
-    %9:i32 = call %i
-    %p_a_i:ptr<uniform, mat4x4<f32>, read> = access %p_a, %9
-    %11:i32 = call %i
-    %p_a_i_i:ptr<uniform, vec4<f32>, read> = access %p_a_i, %11
-    %l_a:array<mat4x4<f32>, 4> = load %p_a
-    %l_a_i:mat4x4<f32> = load %p_a_i
-    %l_a_i_i:vec4<f32> = load %p_a_i_i
+    %10:i32 = call %i
+    %11:ptr<uniform, mat4x4<f32>, read> = access %p_a, %10
+    %p_a_i:ptr<uniform, mat4x4<f32>, read> = let %11
+    %13:i32 = call %i
+    %14:ptr<uniform, vec4<f32>, read> = access %p_a_i, %13
+    %p_a_i_i:ptr<uniform, vec4<f32>, read> = let %14
+    %16:array<mat4x4<f32>, 4> = load %p_a
+    %l_a:array<mat4x4<f32>, 4> = let %16
+    %18:mat4x4<f32> = load %p_a_i
+    %l_a_i:mat4x4<f32> = let %18
+    %20:vec4<f32> = load %p_a_i_i
+    %l_a_i_i:vec4<f32> = let %20
+    %22:f32 = load_vector_element %p_a_i_i, 0u
+    %23:f32 = access %l_a, 0i, 0i, 0u
+    %24:f32 = add %22, %23
+    %25:f32 = access %l_a_i, 0i, 0u
+    %26:f32 = add %24, %25
+    %27:f32 = access %l_a_i_i, 0u
+    %28:f32 = add %26, %27
+    store %s, %28
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index dac7881..3a2d273 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,17 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<mat4x4<f32>, 4>, read> = let %a
-    %p_a_2:ptr<uniform, mat4x4<f32>, read> = access %p_a, 2i
-    %p_a_2_1:ptr<uniform, vec4<f32>, read> = access %p_a_2, 1i
-    %l_a:array<mat4x4<f32>, 4> = load %p_a
-    %l_a_i:mat4x4<f32> = load %p_a_2
-    %l_a_i_i:vec4<f32> = load %p_a_2_1
+    %5:ptr<uniform, mat4x4<f32>, read> = access %p_a, 2i
+    %p_a_2:ptr<uniform, mat4x4<f32>, read> = let %5
+    %7:ptr<uniform, vec4<f32>, read> = access %p_a_2, 1i
+    %p_a_2_1:ptr<uniform, vec4<f32>, read> = let %7
+    %9:array<mat4x4<f32>, 4> = load %p_a
+    %l_a:array<mat4x4<f32>, 4> = let %9
+    %11:mat4x4<f32> = load %p_a_2
+    %l_a_i:mat4x4<f32> = let %11
+    %13:vec4<f32> = load %p_a_2_1
+    %l_a_i_i:vec4<f32> = let %13
+    %15:f32 = load_vector_element %p_a_2_1, 0u
+    %16:f32 = access %l_a, 0i, 0i, 0u
+    %17:f32 = add %15, %16
+    %18:f32 = access %l_a_i, 0i, 0u
+    %19:f32 = add %17, %18
+    %20:f32 = access %l_a_i_i, 0u
+    %21:f32 = add %19, %20
+    store %s, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
index b64c380..7dbaef6 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,23 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %3:ptr<uniform, mat4x4<f32>, read> = access %u, 2i
-    %4:mat4x4<f32> = load %3
-    %t:mat4x4<f32> = transpose %4
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %7:vec4<f32> = load %6
-    %8:vec4<f32> = swizzle %7, ywxz
-    %l:f32 = length %8
-    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %11:vec4<f32> = load %10
-    %12:vec4<f32> = swizzle %11, ywxz
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<uniform, mat4x4<f32>, read> = access %u, 2i
+    %5:mat4x4<f32> = load %4
+    %6:mat4x4<f32> = transpose %5
+    %t:mat4x4<f32> = let %6
+    %8:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %9:vec4<f32> = load %8
+    %10:vec4<f32> = swizzle %9, ywxz
+    %11:f32 = length %10
+    %l:f32 = let %11
+    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %14:vec4<f32> = load %13
+    %15:vec4<f32> = swizzle %14, ywxz
+    %16:f32 = access %15, 0u
+    %17:f32 = abs %16
+    %a:f32 = let %17
+    %19:f32 = access %t, 0i, 0u
+    %20:f32 = construct %l
+    %21:f32 = add %19, %20
+    %22:f32 = let %21
+    %23:f32 = construct %a
+    %24:f32 = add %22, %23
+    store %s, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl
index d7ed9d4..a8f60db 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,45 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%a = func(%a_1:array<mat4x4<f32>, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
-    ret
+%a = func(%a_1:array<mat4x4<f32>, 4>):f32 {  # %a_1: 'a'
+  $B2: {
+    %5:f32 = access %a_1, 0i, 0i, 0u
+    ret %5
   }
 }
-%b = func(%m:mat4x4<f32>):void -> %b3 {
-  %b3 = block {
-    ret
+%b = func(%m:mat4x4<f32>):f32 {
+  $B3: {
+    %8:f32 = access %m, 0i, 0u
+    ret %8
   }
 }
-%c = func(%v:vec4<f32>):void -> %b4 {
-  %b4 = block {
-    ret
+%c = func(%v:vec4<f32>):f32 {
+  $B4: {
+    %11:f32 = access %v, 0u
+    ret %11
   }
 }
-%d = func(%f:f32):void -> %b5 {
-  %b5 = block {
-    ret
+%d = func(%f:f32):f32 {
+  $B5: {
+    ret %f
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {  # %f_1: 'f'
-  %b6 = block {
-    %11:array<mat4x4<f32>, 4> = load %u
-    %12:void = call %a, %11
-    %13:ptr<uniform, mat4x4<f32>, read> = access %u, 1i
-    %14:mat4x4<f32> = load %13
-    %15:void = call %b, %14
-    %16:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
-    %17:vec4<f32> = load %16
-    %18:vec4<f32> = swizzle %17, ywxz
-    %19:void = call %c, %18
-    %20:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
-    %21:vec4<f32> = load %20
-    %22:vec4<f32> = swizzle %21, ywxz
-    %23:f32 = access %22, 0u
-    %24:void = call %d, %23
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B6: {
+    %15:array<mat4x4<f32>, 4> = load %u
+    %16:f32 = call %a, %15
+    %17:f32 = let %16
+    %18:ptr<uniform, mat4x4<f32>, read> = access %u, 1i
+    %19:mat4x4<f32> = load %18
+    %20:f32 = call %b, %19
+    %21:f32 = add %17, %20
+    %22:f32 = let %21
+    %23:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
+    %24:vec4<f32> = load %23
+    %25:vec4<f32> = swizzle %24, ywxz
+    %26:f32 = call %c, %25
+    %27:f32 = add %22, %26
+    %28:f32 = let %27
+    %29:ptr<uniform, vec4<f32>, read> = access %u, 1i, 0i
+    %30:vec4<f32> = load %29
+    %31:vec4<f32> = swizzle %30, ywxz
+    %32:f32 = access %31, 0u
+    %33:f32 = call %d, %32
+    %34:f32 = add %28, %33
+    store %s, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl
index 5af12e4..9a95827 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,27 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
   %p:ptr<private, array<mat4x4<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x4<f32>, 4> = load %u
-    store %p, %4
-    %5:ptr<private, mat4x4<f32>, read_write> = access %p, 1i
-    %6:ptr<uniform, mat4x4<f32>, read> = access %u, 2i
-    %7:mat4x4<f32> = load %6
-    store %5, %7
-    %8:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
-    %9:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:array<mat4x4<f32>, 4> = load %u
+    store %p, %5
+    %6:ptr<private, mat4x4<f32>, read_write> = access %p, 1i
+    %7:ptr<uniform, mat4x4<f32>, read> = access %u, 2i
+    %8:mat4x4<f32> = load %7
+    store %6, %8
+    %9:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %11:vec4<f32> = load %10
+    %12:vec4<f32> = swizzle %11, ywxz
+    store %9, %12
+    %13:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %14:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %15:f32 = load_vector_element %14, 0u
+    store_vector_element %13, 0u, %15
+    %16:ptr<private, vec4<f32>, read_write> = access %p, 1i, 0i
+    %17:f32 = load_vector_element %16, 0u
+    store %s, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl
index 908cb40..0aefcc3 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<mat4x4<f32>, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<mat4x4<f32>, 4> = load %u
     store %s, %4
     %5:ptr<storage, mat4x4<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
index 67968ab..7aea40c 100644
--- a/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/array/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, array<mat4x4<f32>, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<mat4x4<f32>, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<mat4x4<f32>, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, mat4x4<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, mat4x4<f32>, read> = access %u, 2i
-    %7:mat4x4<f32> = load %6
-    store %5, %7
-    %8:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
-    %9:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
-    %14:f32 = load_vector_element %13, 0u
-    store_vector_element %12, 0u, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, mat4x4<f32>, read_write> = access %w, %idx
+        store %7, mat4x4<f32>(vec4<f32>(0.0f))
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<mat4x4<f32>, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, mat4x4<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, mat4x4<f32>, read> = access %u, 2i
+    %13:mat4x4<f32> = load %12
+    store %11, %13
+    %14:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
+    %15:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %16:vec4<f32> = load %15
+    %17:vec4<f32> = swizzle %16, ywxz
+    store %14, %17
+    %18:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 0i
+    %19:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1i
+    %20:f32 = load_vector_element %19, 0u
+    store_vector_element %18, 0u, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index fbc617f..eb2f4f7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   m:mat2x2<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat2x2<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec2<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat2x2<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec2<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat2x2<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat2x2<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec2<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec2<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat2x2<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat2x2<f16> = let %30
+    %32:vec2<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec2<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 8adb3af..6eb4d45 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   m:mat2x2<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat2x2<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec2<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat2x2<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec2<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat2x2<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat2x2<f16>, read> = let %10
+    %12:ptr<uniform, vec2<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec2<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat2x2<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat2x2<f16> = let %22
+    %24:vec2<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec2<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.msl
index ee58ed5..c180b14 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat2x2<f16>, read> = access %u, 2i, 1u
     %4:mat2x2<f16> = load %3
-    %t:mat2x2<f16> = transpose %4
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec2<f16> = load %6
-    %8:vec2<f16> = swizzle %7, yx
-    %l:f16 = length %8
-    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec2<f16> = load %10
-    %12:vec2<f16> = swizzle %11, yx
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat2x2<f16> = transpose %4
+    %t:mat2x2<f16> = let %5
+    %7:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec2<f16> = load %7
+    %9:vec2<f16> = swizzle %8, yx
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec2<f16> = load %12
+    %14:vec2<f16> = swizzle %13, yx
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl
index 7b6f153..936106d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat2x2<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat2x2<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec2<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec2<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl
index 9d19d27..d4123cf 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.msl
index 6f50496..6ad47f9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat2x2<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat2x2<f16>, read> = access %u, 2i, 1u
-    %10:mat2x2<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec2<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f16> = load %12
-    %14:vec2<f16> = swizzle %13, yx
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat2x2<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat2x2<f16>, read> = access %u, 2i, 1u
+    %14:mat2x2<f16> = load %13
+    store %12, %14
+    %15:ptr<storage, vec2<f16>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %17:vec2<f16> = load %16
+    %18:vec2<f16> = swizzle %17, yx
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat2x2<f16>, read_write> = access %target_1, 1u
+    %32:mat2x2<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl
index 7448cf1..b943fa6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat2x2<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat2x2<f16>, read> = access %u, 2i, 1u
-    %10:mat2x2<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f16> = load %12
-    %14:vec2<f16> = swizzle %13, yx
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat2x2<f16>(vec2<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat2x2<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat2x2<f16>, read> = access %u, 2i, 1u
+    %16:mat2x2<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec2<f16> = load %18
+    %20:vec2<f16> = swizzle %19, yx
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ae44278..4132c7f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat2x2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat2x2<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec2<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat2x2<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec2<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat2x2<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat2x2<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec2<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec2<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat2x2<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat2x2<f32> = let %30
+    %32:vec2<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec2<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 5831ff8..43df577 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat2x2<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat2x2<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat2x2<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec2<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat2x2<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat2x2<f32>, read> = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat2x2<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat2x2<f32> = let %22
+    %24:vec2<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec2<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
index 93147df..b0f4c1f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat2x2<f32>, read> = access %u, 2i, 1u
     %4:mat2x2<f32> = load %3
-    %t:mat2x2<f32> = transpose %4
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec2<f32> = load %6
-    %8:vec2<f32> = swizzle %7, yx
-    %l:f32 = length %8
-    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec2<f32> = load %10
-    %12:vec2<f32> = swizzle %11, yx
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat2x2<f32> = transpose %4
+    %t:mat2x2<f32> = let %5
+    %7:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec2<f32> = load %7
+    %9:vec2<f32> = swizzle %8, yx
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec2<f32> = load %12
+    %14:vec2<f32> = swizzle %13, yx
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl
index 371ef18..2bec96d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat2x2<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat2x2<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec2<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec2<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl
index 4ec9b1c..5ee7049 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.msl
index 2cd5d99..9ced729 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat2x2<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat2x2<f32>, read> = access %u, 2i, 1u
-    %10:mat2x2<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec2<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f32> = load %12
-    %14:vec2<f32> = swizzle %13, yx
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat2x2<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat2x2<f32>, read> = access %u, 2i, 1u
+    %14:mat2x2<f32> = load %13
+    store %12, %14
+    %15:ptr<storage, vec2<f32>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %17:vec2<f32> = load %16
+    %18:vec2<f32> = swizzle %17, yx
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat2x2<f32>, read_write> = access %target_1, 1u
+    %32:mat2x2<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
index a38c168..2c8ba09 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat2x2<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat2x2<f32>, read> = access %u, 2i, 1u
-    %10:mat2x2<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f32> = load %12
-    %14:vec2<f32> = swizzle %13, yx
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat2x2<f32>(vec2<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat2x2<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat2x2<f32>, read> = access %u, 2i, 1u
+    %16:mat2x2<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec2<f32> = load %18
+    %20:vec2<f32> = swizzle %19, yx
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 11f8e98..985fb84 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat2x3<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat2x3<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec3<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat2x3<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec3<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat2x3<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat2x3<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec3<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec3<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat2x3<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat2x3<f16> = let %30
+    %32:vec3<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec3<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index c6be965..c9c7e11 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat2x3<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat2x3<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec3<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat2x3<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec3<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat2x3<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat2x3<f16>, read> = let %10
+    %12:ptr<uniform, vec3<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec3<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat2x3<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat2x3<f16> = let %22
+    %24:vec3<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec3<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
index 9964f17..c34fcc2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat2x3<f16>, read> = access %u, 2i, 1u
     %4:mat2x3<f16> = load %3
-    %t:mat3x2<f16> = transpose %4
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec3<f16> = load %6
-    %8:vec3<f16> = swizzle %7, zxy
-    %l:f16 = length %8
-    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec3<f16> = load %10
-    %12:vec3<f16> = swizzle %11, zxy
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat3x2<f16> = transpose %4
+    %t:mat3x2<f16> = let %5
+    %7:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec3<f16> = load %7
+    %9:vec3<f16> = swizzle %8, zxy
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec3<f16> = load %12
+    %14:vec3<f16> = swizzle %13, zxy
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl
index cd1accb..cf38c54 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat2x3<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat2x3<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec3<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec3<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl
index 0aad148..435e18b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.msl
index f2f2e43..5f67ddb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat2x3<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat2x3<f16>, read> = access %u, 2i, 1u
-    %10:mat2x3<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f16> = load %12
-    %14:vec3<f16> = swizzle %13, zxy
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat2x3<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat2x3<f16>, read> = access %u, 2i, 1u
+    %14:mat2x3<f16> = load %13
+    %15:void = call %tint_store_and_preserve_padding_2, %12, %14
+    %17:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f16> = load %18
+    %20:vec3<f16> = swizzle %19, zxy
+    store %17, %20
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, S, read_write> = access %target, %idx
+        %26:S = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %28:u32 = add %idx, 1u
+        next_iteration %28  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %31:ptr<storage, i32, read_write> = access %target_1, 0u
+    %32:i32 = access %value_param_1, 0u
+    store %31, %32
+    %33:ptr<storage, mat2x3<f16>, read_write> = access %target_1, 1u
+    %34:mat2x3<f16> = access %value_param_1, 1u
+    %35:void = call %tint_store_and_preserve_padding_2, %33, %34
+    %36:ptr<storage, i32, read_write> = access %target_1, 2u
+    %37:i32 = access %value_param_1, 2u
+    store %36, %37
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat2x3<f16>, read_write>, %value_param_2:mat2x3<f16>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B9: {
+    %40:ptr<storage, vec3<f16>, read_write> = access %target_2, 0u
+    %41:vec3<f16> = access %value_param_2, 0u
+    store %40, %41
+    %42:ptr<storage, vec3<f16>, read_write> = access %target_2, 1u
+    %43:vec3<f16> = access %value_param_2, 1u
+    store %42, %43
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
index d064fce..3b8635b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat2x3<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat2x3<f16>, read> = access %u, 2i, 1u
-    %10:mat2x3<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f16> = load %12
-    %14:vec3<f16> = swizzle %13, zxy
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat2x3<f16>(vec3<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat2x3<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat2x3<f16>, read> = access %u, 2i, 1u
+    %16:mat2x3<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f16> = load %18
+    %20:vec3<f16> = swizzle %19, zxy
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 8b3526e..ab28715 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat2x3<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat2x3<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec3<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat2x3<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec3<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat2x3<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat2x3<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec3<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec3<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat2x3<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat2x3<f32> = let %30
+    %32:vec3<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec3<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index aead604..3847627 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat2x3<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat2x3<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec3<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat2x3<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec3<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat2x3<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat2x3<f32>, read> = let %10
+    %12:ptr<uniform, vec3<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec3<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat2x3<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat2x3<f32> = let %22
+    %24:vec3<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec3<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
index 1c91d74..632586d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat2x3<f32>, read> = access %u, 2i, 1u
     %4:mat2x3<f32> = load %3
-    %t:mat3x2<f32> = transpose %4
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec3<f32> = load %6
-    %8:vec3<f32> = swizzle %7, zxy
-    %l:f32 = length %8
-    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec3<f32> = load %10
-    %12:vec3<f32> = swizzle %11, zxy
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat3x2<f32> = transpose %4
+    %t:mat3x2<f32> = let %5
+    %7:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec3<f32> = load %7
+    %9:vec3<f32> = swizzle %8, zxy
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec3<f32> = load %12
+    %14:vec3<f32> = swizzle %13, zxy
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl
index 9a45b4d..b9101bb 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat2x3<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat2x3<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec3<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec3<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl
index 493693a..76cf221 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.msl
index 55b828f..f650bd7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,84 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat2x3<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat2x3<f32>, read> = access %u, 2i, 1u
-    %10:mat2x3<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f32> = load %12
-    %14:vec3<f32> = swizzle %13, zxy
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat2x3<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat2x3<f32>, read> = access %u, 2i, 1u
+    %14:mat2x3<f32> = load %13
+    %15:void = call %tint_store_and_preserve_padding_2, %12, %14
+    %17:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f32> = load %18
+    %20:vec3<f32> = swizzle %19, zxy
+    store %17, %20
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, S, read_write> = access %target, %idx
+        %26:S = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %28:u32 = add %idx, 1u
+        next_iteration %28  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %31:ptr<storage, i32, read_write> = access %target_1, 0u
+    %32:i32 = access %value_param_1, 0u
+    store %31, %32
+    %33:ptr<storage, mat2x3<f32>, read_write> = access %target_1, 1u
+    %34:mat2x3<f32> = access %value_param_1, 1u
+    %35:void = call %tint_store_and_preserve_padding_2, %33, %34
+    %36:ptr<storage, i32, read_write> = access %target_1, 2u
+    %37:i32 = access %value_param_1, 2u
+    store %36, %37
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat2x3<f32>, read_write>, %value_param_2:mat2x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B9: {
+    %40:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %41:vec3<f32> = access %value_param_2, 0u
+    store %40, %41
+    %42:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %43:vec3<f32> = access %value_param_2, 1u
+    store %42, %43
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
index 22f01dd..bb09740 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat2x3<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat2x3<f32>, read> = access %u, 2i, 1u
-    %10:mat2x3<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f32> = load %12
-    %14:vec3<f32> = swizzle %13, zxy
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat2x3<f32>(vec3<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat2x3<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat2x3<f32>, read> = access %u, 2i, 1u
+    %16:mat2x3<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f32> = load %18
+    %20:vec3<f32> = swizzle %19, zxy
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 8b5f584..d758a15 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat2x4<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat2x4<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec4<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat2x4<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec4<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat2x4<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat2x4<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec4<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec4<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat2x4<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat2x4<f16> = let %30
+    %32:vec4<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec4<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 8939c27..77ca2ed 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat2x4<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat2x4<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec4<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat2x4<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec4<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat2x4<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat2x4<f16>, read> = let %10
+    %12:ptr<uniform, vec4<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec4<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat2x4<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat2x4<f16> = let %22
+    %24:vec4<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec4<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
index e18150f..53625ad 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat2x4<f16>, read> = access %u, 2i, 1u
     %4:mat2x4<f16> = load %3
-    %t:mat4x2<f16> = transpose %4
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec4<f16> = load %6
-    %8:vec4<f16> = swizzle %7, ywxz
-    %l:f16 = length %8
-    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec4<f16> = load %10
-    %12:vec4<f16> = swizzle %11, ywxz
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat4x2<f16> = transpose %4
+    %t:mat4x2<f16> = let %5
+    %7:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec4<f16> = load %7
+    %9:vec4<f16> = swizzle %8, ywxz
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec4<f16> = load %12
+    %14:vec4<f16> = swizzle %13, ywxz
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl
index 25ab058..f665915 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat2x4<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat2x4<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec4<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec4<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl
index 521e1bb..721519e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.msl
index b637eff..d50b8d3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat2x4<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat2x4<f16>, read> = access %u, 2i, 1u
-    %10:mat2x4<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec4<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f16> = load %12
-    %14:vec4<f16> = swizzle %13, ywxz
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat2x4<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat2x4<f16>, read> = access %u, 2i, 1u
+    %14:mat2x4<f16> = load %13
+    store %12, %14
+    %15:ptr<storage, vec4<f16>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %17:vec4<f16> = load %16
+    %18:vec4<f16> = swizzle %17, ywxz
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat2x4<f16>, read_write> = access %target_1, 1u
+    %32:mat2x4<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
index e59160c..7b8d581 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat2x4<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat2x4<f16>, read> = access %u, 2i, 1u
-    %10:mat2x4<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f16> = load %12
-    %14:vec4<f16> = swizzle %13, ywxz
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat2x4<f16>(vec4<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat2x4<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat2x4<f16>, read> = access %u, 2i, 1u
+    %16:mat2x4<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec4<f16> = load %18
+    %20:vec4<f16> = swizzle %19, ywxz
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 0e36171..f342797 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat2x4<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat2x4<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec4<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat2x4<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec4<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat2x4<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat2x4<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec4<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec4<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat2x4<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat2x4<f32> = let %30
+    %32:vec4<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec4<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 632a216..834d9f1 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat2x4<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat2x4<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec4<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat2x4<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec4<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat2x4<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat2x4<f32>, read> = let %10
+    %12:ptr<uniform, vec4<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec4<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat2x4<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat2x4<f32> = let %22
+    %24:vec4<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec4<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
index b2da235..26c5032 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat2x4<f32>, read> = access %u, 2i, 1u
     %4:mat2x4<f32> = load %3
-    %t:mat4x2<f32> = transpose %4
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec4<f32> = load %6
-    %8:vec4<f32> = swizzle %7, ywxz
-    %l:f32 = length %8
-    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec4<f32> = load %10
-    %12:vec4<f32> = swizzle %11, ywxz
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat4x2<f32> = transpose %4
+    %t:mat4x2<f32> = let %5
+    %7:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec4<f32> = load %7
+    %9:vec4<f32> = swizzle %8, ywxz
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec4<f32> = load %12
+    %14:vec4<f32> = swizzle %13, ywxz
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl
index 0c24a20..62e00c5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat2x4<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat2x4<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec4<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec4<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl
index 476762d..b590bca 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.msl
index 00874ef..86b6c42 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat2x4<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat2x4<f32>, read> = access %u, 2i, 1u
-    %10:mat2x4<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec4<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f32> = load %12
-    %14:vec4<f32> = swizzle %13, ywxz
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat2x4<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat2x4<f32>, read> = access %u, 2i, 1u
+    %14:mat2x4<f32> = load %13
+    store %12, %14
+    %15:ptr<storage, vec4<f32>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %17:vec4<f32> = load %16
+    %18:vec4<f32> = swizzle %17, ywxz
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat2x4<f32>, read_write> = access %target_1, 1u
+    %32:mat2x4<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
index 7af440c..c89cd72 100644
--- a/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat2x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat2x4<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat2x4<f32>, read> = access %u, 2i, 1u
-    %10:mat2x4<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f32> = load %12
-    %14:vec4<f32> = swizzle %13, ywxz
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat2x4<f32>(vec4<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat2x4<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat2x4<f32>, read> = access %u, 2i, 1u
+    %16:mat2x4<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec4<f32> = load %18
+    %20:vec4<f32> = swizzle %19, ywxz
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index af95beb..9cd196e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   m:mat3x2<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat3x2<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec2<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat3x2<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec2<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat3x2<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat3x2<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec2<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec2<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat3x2<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat3x2<f16> = let %30
+    %32:vec2<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec2<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 8ebf0b1..0f186d0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   m:mat3x2<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat3x2<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec2<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat3x2<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec2<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat3x2<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat3x2<f16>, read> = let %10
+    %12:ptr<uniform, vec2<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec2<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat3x2<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat3x2<f16> = let %22
+    %24:vec2<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec2<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.msl
index ab3afba..379b718 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat3x2<f16>, read> = access %u, 2i, 1u
     %4:mat3x2<f16> = load %3
-    %t:mat2x3<f16> = transpose %4
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec2<f16> = load %6
-    %8:vec2<f16> = swizzle %7, yx
-    %l:f16 = length %8
-    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec2<f16> = load %10
-    %12:vec2<f16> = swizzle %11, yx
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat2x3<f16> = transpose %4
+    %t:mat2x3<f16> = let %5
+    %7:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec2<f16> = load %7
+    %9:vec2<f16> = swizzle %8, yx
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec2<f16> = load %12
+    %14:vec2<f16> = swizzle %13, yx
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl
index 30c80ed..71375f6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat3x2<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat3x2<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec2<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec2<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl
index 50cbbbe..5f79e31 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.msl
index 5035ff6..d11d060 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat3x2<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat3x2<f16>, read> = access %u, 2i, 1u
-    %10:mat3x2<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec2<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f16> = load %12
-    %14:vec2<f16> = swizzle %13, yx
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat3x2<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat3x2<f16>, read> = access %u, 2i, 1u
+    %14:mat3x2<f16> = load %13
+    store %12, %14
+    %15:ptr<storage, vec2<f16>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %17:vec2<f16> = load %16
+    %18:vec2<f16> = swizzle %17, yx
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat3x2<f16>, read_write> = access %target_1, 1u
+    %32:mat3x2<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl
index 0265a2b..7012199 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat3x2<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat3x2<f16>, read> = access %u, 2i, 1u
-    %10:mat3x2<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f16> = load %12
-    %14:vec2<f16> = swizzle %13, yx
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat3x2<f16>(vec2<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat3x2<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat3x2<f16>, read> = access %u, 2i, 1u
+    %16:mat3x2<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec2<f16> = load %18
+    %20:vec2<f16> = swizzle %19, yx
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 33038c5..d191fe4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat3x2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat3x2<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec2<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat3x2<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec2<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat3x2<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat3x2<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec2<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec2<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat3x2<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat3x2<f32> = let %30
+    %32:vec2<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec2<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 067cbdf..1c32e7f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat3x2<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat3x2<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat3x2<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec2<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat3x2<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat3x2<f32>, read> = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat3x2<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat3x2<f32> = let %22
+    %24:vec2<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec2<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.msl
index 20432b7..37ee1fe 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat3x2<f32>, read> = access %u, 2i, 1u
     %4:mat3x2<f32> = load %3
-    %t:mat2x3<f32> = transpose %4
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec2<f32> = load %6
-    %8:vec2<f32> = swizzle %7, yx
-    %l:f32 = length %8
-    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec2<f32> = load %10
-    %12:vec2<f32> = swizzle %11, yx
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat2x3<f32> = transpose %4
+    %t:mat2x3<f32> = let %5
+    %7:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec2<f32> = load %7
+    %9:vec2<f32> = swizzle %8, yx
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec2<f32> = load %12
+    %14:vec2<f32> = swizzle %13, yx
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl
index fe2e732..b797056 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat3x2<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat3x2<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec2<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec2<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl
index ab86742..273997c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.msl
index b586ee2..6a10e36 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat3x2<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat3x2<f32>, read> = access %u, 2i, 1u
-    %10:mat3x2<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec2<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f32> = load %12
-    %14:vec2<f32> = swizzle %13, yx
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat3x2<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat3x2<f32>, read> = access %u, 2i, 1u
+    %14:mat3x2<f32> = load %13
+    store %12, %14
+    %15:ptr<storage, vec2<f32>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %17:vec2<f32> = load %16
+    %18:vec2<f32> = swizzle %17, yx
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat3x2<f32>, read_write> = access %target_1, 1u
+    %32:mat3x2<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl
index 57ec35f..2c2f347 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat3x2<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat3x2<f32>, read> = access %u, 2i, 1u
-    %10:mat3x2<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f32> = load %12
-    %14:vec2<f32> = swizzle %13, yx
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat3x2<f32>(vec2<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat3x2<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat3x2<f32>, read> = access %u, 2i, 1u
+    %16:mat3x2<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec2<f32> = load %18
+    %20:vec2<f32> = swizzle %19, yx
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 6fdda89..b18f3d8 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat3x3<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat3x3<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec3<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat3x3<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec3<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat3x3<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat3x3<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec3<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec3<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat3x3<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat3x3<f16> = let %30
+    %32:vec3<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec3<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 897cc7c..99e3831 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat3x3<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat3x3<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec3<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat3x3<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec3<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat3x3<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat3x3<f16>, read> = let %10
+    %12:ptr<uniform, vec3<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec3<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat3x3<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat3x3<f16> = let %22
+    %24:vec3<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec3<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.msl
index 027e047..eecf916 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat3x3<f16>, read> = access %u, 2i, 1u
     %4:mat3x3<f16> = load %3
-    %t:mat3x3<f16> = transpose %4
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec3<f16> = load %6
-    %8:vec3<f16> = swizzle %7, zxy
-    %l:f16 = length %8
-    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec3<f16> = load %10
-    %12:vec3<f16> = swizzle %11, zxy
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat3x3<f16> = transpose %4
+    %t:mat3x3<f16> = let %5
+    %7:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec3<f16> = load %7
+    %9:vec3<f16> = swizzle %8, zxy
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec3<f16> = load %12
+    %14:vec3<f16> = swizzle %13, zxy
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl
index bc8ae86..1551dce 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat3x3<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat3x3<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec3<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec3<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl
index 066e525..1542ca6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.msl
index a1c8203..71bb75b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,87 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat3x3<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat3x3<f16>, read> = access %u, 2i, 1u
-    %10:mat3x3<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f16> = load %12
-    %14:vec3<f16> = swizzle %13, zxy
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat3x3<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat3x3<f16>, read> = access %u, 2i, 1u
+    %14:mat3x3<f16> = load %13
+    %15:void = call %tint_store_and_preserve_padding_2, %12, %14
+    %17:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f16> = load %18
+    %20:vec3<f16> = swizzle %19, zxy
+    store %17, %20
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, S, read_write> = access %target, %idx
+        %26:S = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %28:u32 = add %idx, 1u
+        next_iteration %28  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %31:ptr<storage, i32, read_write> = access %target_1, 0u
+    %32:i32 = access %value_param_1, 0u
+    store %31, %32
+    %33:ptr<storage, mat3x3<f16>, read_write> = access %target_1, 1u
+    %34:mat3x3<f16> = access %value_param_1, 1u
+    %35:void = call %tint_store_and_preserve_padding_2, %33, %34
+    %36:ptr<storage, i32, read_write> = access %target_1, 2u
+    %37:i32 = access %value_param_1, 2u
+    store %36, %37
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat3x3<f16>, read_write>, %value_param_2:mat3x3<f16>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B9: {
+    %40:ptr<storage, vec3<f16>, read_write> = access %target_2, 0u
+    %41:vec3<f16> = access %value_param_2, 0u
+    store %40, %41
+    %42:ptr<storage, vec3<f16>, read_write> = access %target_2, 1u
+    %43:vec3<f16> = access %value_param_2, 1u
+    store %42, %43
+    %44:ptr<storage, vec3<f16>, read_write> = access %target_2, 2u
+    %45:vec3<f16> = access %value_param_2, 2u
+    store %44, %45
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl
index f6f0e36..302e85d 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat3x3<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat3x3<f16>, read> = access %u, 2i, 1u
-    %10:mat3x3<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f16> = load %12
-    %14:vec3<f16> = swizzle %13, zxy
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat3x3<f16>(vec3<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat3x3<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat3x3<f16>, read> = access %u, 2i, 1u
+    %16:mat3x3<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f16> = load %18
+    %20:vec3<f16> = swizzle %19, zxy
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 0b9fdd3..7beeeda 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat3x3<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat3x3<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec3<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat3x3<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec3<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat3x3<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat3x3<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec3<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec3<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat3x3<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat3x3<f32> = let %30
+    %32:vec3<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec3<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 10a63ff..2e211af 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat3x3<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat3x3<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec3<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat3x3<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec3<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat3x3<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat3x3<f32>, read> = let %10
+    %12:ptr<uniform, vec3<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec3<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat3x3<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat3x3<f32> = let %22
+    %24:vec3<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec3<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
index b97f516..94e4040 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat3x3<f32>, read> = access %u, 2i, 1u
     %4:mat3x3<f32> = load %3
-    %t:mat3x3<f32> = transpose %4
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec3<f32> = load %6
-    %8:vec3<f32> = swizzle %7, zxy
-    %l:f32 = length %8
-    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec3<f32> = load %10
-    %12:vec3<f32> = swizzle %11, zxy
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat3x3<f32> = transpose %4
+    %t:mat3x3<f32> = let %5
+    %7:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec3<f32> = load %7
+    %9:vec3<f32> = swizzle %8, zxy
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec3<f32> = load %12
+    %14:vec3<f32> = swizzle %13, zxy
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl
index b8da91e..3775e04 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat3x3<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat3x3<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec3<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec3<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl
index 1bae12e..eb254e6 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.msl
index a650360..9bd0e86 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,87 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat3x3<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat3x3<f32>, read> = access %u, 2i, 1u
-    %10:mat3x3<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f32> = load %12
-    %14:vec3<f32> = swizzle %13, zxy
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat3x3<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat3x3<f32>, read> = access %u, 2i, 1u
+    %14:mat3x3<f32> = load %13
+    %15:void = call %tint_store_and_preserve_padding_2, %12, %14
+    %17:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f32> = load %18
+    %20:vec3<f32> = swizzle %19, zxy
+    store %17, %20
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, S, read_write> = access %target, %idx
+        %26:S = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %28:u32 = add %idx, 1u
+        next_iteration %28  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %31:ptr<storage, i32, read_write> = access %target_1, 0u
+    %32:i32 = access %value_param_1, 0u
+    store %31, %32
+    %33:ptr<storage, mat3x3<f32>, read_write> = access %target_1, 1u
+    %34:mat3x3<f32> = access %value_param_1, 1u
+    %35:void = call %tint_store_and_preserve_padding_2, %33, %34
+    %36:ptr<storage, i32, read_write> = access %target_1, 2u
+    %37:i32 = access %value_param_1, 2u
+    store %36, %37
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat3x3<f32>, read_write>, %value_param_2:mat3x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B9: {
+    %40:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %41:vec3<f32> = access %value_param_2, 0u
+    store %40, %41
+    %42:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %43:vec3<f32> = access %value_param_2, 1u
+    store %42, %43
+    %44:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
+    %45:vec3<f32> = access %value_param_2, 2u
+    store %44, %45
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
index 923c8d5..aabb164 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x3<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat3x3<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat3x3<f32>, read> = access %u, 2i, 1u
-    %10:mat3x3<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f32> = load %12
-    %14:vec3<f32> = swizzle %13, zxy
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat3x3<f32>(vec3<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat3x3<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat3x3<f32>, read> = access %u, 2i, 1u
+    %16:mat3x3<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f32> = load %18
+    %20:vec3<f32> = swizzle %19, zxy
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index da4d04c..5da7b05 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat3x4<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat3x4<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec4<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat3x4<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec4<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat3x4<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat3x4<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec4<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec4<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat3x4<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat3x4<f16> = let %30
+    %32:vec4<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec4<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 49433b1..d80aecf 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat3x4<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat3x4<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec4<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat3x4<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec4<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat3x4<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat3x4<f16>, read> = let %10
+    %12:ptr<uniform, vec4<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec4<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat3x4<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat3x4<f16> = let %22
+    %24:vec4<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec4<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.msl
index 21f6138..990cb8e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat3x4<f16>, read> = access %u, 2i, 1u
     %4:mat3x4<f16> = load %3
-    %t:mat4x3<f16> = transpose %4
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec4<f16> = load %6
-    %8:vec4<f16> = swizzle %7, ywxz
-    %l:f16 = length %8
-    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec4<f16> = load %10
-    %12:vec4<f16> = swizzle %11, ywxz
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat4x3<f16> = transpose %4
+    %t:mat4x3<f16> = let %5
+    %7:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec4<f16> = load %7
+    %9:vec4<f16> = swizzle %8, ywxz
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec4<f16> = load %12
+    %14:vec4<f16> = swizzle %13, ywxz
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl
index 316f6a9..de62933 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat3x4<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat3x4<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec4<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec4<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl
index f0ab48d..a61c787 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.msl
index c5b440a..02972d7 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat3x4<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat3x4<f16>, read> = access %u, 2i, 1u
-    %10:mat3x4<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec4<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f16> = load %12
-    %14:vec4<f16> = swizzle %13, ywxz
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat3x4<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat3x4<f16>, read> = access %u, 2i, 1u
+    %14:mat3x4<f16> = load %13
+    store %12, %14
+    %15:ptr<storage, vec4<f16>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %17:vec4<f16> = load %16
+    %18:vec4<f16> = swizzle %17, ywxz
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat3x4<f16>, read_write> = access %target_1, 1u
+    %32:mat3x4<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl
index 580b070..991d905 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat3x4<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat3x4<f16>, read> = access %u, 2i, 1u
-    %10:mat3x4<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f16> = load %12
-    %14:vec4<f16> = swizzle %13, ywxz
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat3x4<f16>(vec4<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat3x4<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat3x4<f16>, read> = access %u, 2i, 1u
+    %16:mat3x4<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec4<f16> = load %18
+    %20:vec4<f16> = swizzle %19, ywxz
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index a71e7d2..7374cb3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat3x4<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat3x4<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec4<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat3x4<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec4<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat3x4<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat3x4<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec4<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec4<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat3x4<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat3x4<f32> = let %30
+    %32:vec4<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec4<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 4f1844e..a6aa20b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat3x4<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat3x4<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec4<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat3x4<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec4<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat3x4<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat3x4<f32>, read> = let %10
+    %12:ptr<uniform, vec4<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec4<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat3x4<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat3x4<f32> = let %22
+    %24:vec4<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec4<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
index 5126b54..01d8863 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat3x4<f32>, read> = access %u, 2i, 1u
     %4:mat3x4<f32> = load %3
-    %t:mat4x3<f32> = transpose %4
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec4<f32> = load %6
-    %8:vec4<f32> = swizzle %7, ywxz
-    %l:f32 = length %8
-    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec4<f32> = load %10
-    %12:vec4<f32> = swizzle %11, ywxz
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat4x3<f32> = transpose %4
+    %t:mat4x3<f32> = let %5
+    %7:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec4<f32> = load %7
+    %9:vec4<f32> = swizzle %8, ywxz
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec4<f32> = load %12
+    %14:vec4<f32> = swizzle %13, ywxz
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl
index ffbd46f..9fc86f4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat3x4<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat3x4<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec4<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec4<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl
index 68cae57..66213c0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.msl
index 5fc9747..bc1753b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat3x4<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat3x4<f32>, read> = access %u, 2i, 1u
-    %10:mat3x4<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec4<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f32> = load %12
-    %14:vec4<f32> = swizzle %13, ywxz
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat3x4<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat3x4<f32>, read> = access %u, 2i, 1u
+    %14:mat3x4<f32> = load %13
+    store %12, %14
+    %15:ptr<storage, vec4<f32>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %17:vec4<f32> = load %16
+    %18:vec4<f32> = swizzle %17, ywxz
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat3x4<f32>, read_write> = access %target_1, 1u
+    %32:mat3x4<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
index b5f3d95..def00cc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat3x4<f32> @offset(16)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat3x4<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat3x4<f32>, read> = access %u, 2i, 1u
-    %10:mat3x4<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f32> = load %12
-    %14:vec4<f32> = swizzle %13, ywxz
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat3x4<f32>(vec4<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat3x4<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat3x4<f32>, read> = access %u, 2i, 1u
+    %16:mat3x4<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec4<f32> = load %18
+    %20:vec4<f32> = swizzle %19, ywxz
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 8306964..f7e6bdc 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   m:mat4x2<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat4x2<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec2<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat4x2<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec2<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat4x2<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat4x2<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec2<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec2<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat4x2<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat4x2<f16> = let %30
+    %32:vec2<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec2<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 1f50328..5f0caca 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(4) {
   m:mat4x2<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat4x2<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec2<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat4x2<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec2<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat4x2<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat4x2<f16>, read> = let %10
+    %12:ptr<uniform, vec2<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec2<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat4x2<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat4x2<f16> = let %22
+    %24:vec2<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec2<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
index 636630f..ae20072 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat4x2<f16>, read> = access %u, 2i, 1u
     %4:mat4x2<f16> = load %3
-    %t:mat2x4<f16> = transpose %4
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec2<f16> = load %6
-    %8:vec2<f16> = swizzle %7, yx
-    %l:f16 = length %8
-    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec2<f16> = load %10
-    %12:vec2<f16> = swizzle %11, yx
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat2x4<f16> = transpose %4
+    %t:mat2x4<f16> = let %5
+    %7:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec2<f16> = load %7
+    %9:vec2<f16> = swizzle %8, yx
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec2<f16> = load %12
+    %14:vec2<f16> = swizzle %13, yx
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl
index 9f1ee81..2e0da2b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat4x2<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat4x2<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec2<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec2<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl
index 6993c15..4904ec9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.msl
index c0e3d0f..1b11f6e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat4x2<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat4x2<f16>, read> = access %u, 2i, 1u
-    %10:mat4x2<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec2<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f16> = load %12
-    %14:vec2<f16> = swizzle %13, yx
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat4x2<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat4x2<f16>, read> = access %u, 2i, 1u
+    %14:mat4x2<f16> = load %13
+    store %12, %14
+    %15:ptr<storage, vec2<f16>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %17:vec2<f16> = load %16
+    %18:vec2<f16> = swizzle %17, yx
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat4x2<f16>, read_write> = access %target_1, 1u
+    %32:mat4x2<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
index ea84300..0d3b61f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f16> @offset(4)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat4x2<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat4x2<f16>, read> = access %u, 2i, 1u
-    %10:mat4x2<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f16> = load %12
-    %14:vec2<f16> = swizzle %13, yx
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat4x2<f16>(vec2<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat4x2<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat4x2<f16>, read> = access %u, 2i, 1u
+    %16:mat4x2<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec2<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec2<f16> = load %18
+    %20:vec2<f16> = swizzle %19, yx
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 65ef9c2..71450f5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat4x2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat4x2<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec2<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat4x2<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec2<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat4x2<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat4x2<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec2<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec2<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat4x2<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat4x2<f32> = let %30
+    %32:vec2<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec2<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index c0e31b9..0795a77 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat4x2<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat4x2<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat4x2<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec2<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat4x2<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat4x2<f32>, read> = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec2<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat4x2<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat4x2<f32> = let %22
+    %24:vec2<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec2<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
index a80ba28..b1b4be2 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat4x2<f32>, read> = access %u, 2i, 1u
     %4:mat4x2<f32> = load %3
-    %t:mat2x4<f32> = transpose %4
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec2<f32> = load %6
-    %8:vec2<f32> = swizzle %7, yx
-    %l:f32 = length %8
-    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec2<f32> = load %10
-    %12:vec2<f32> = swizzle %11, yx
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat2x4<f32> = transpose %4
+    %t:mat2x4<f32> = let %5
+    %7:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec2<f32> = load %7
+    %9:vec2<f32> = swizzle %8, yx
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec2<f32> = load %12
+    %14:vec2<f32> = swizzle %13, yx
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl
index 8173c6a..1a3bfa4 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat4x2<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat4x2<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec2<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec2<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl
index 6293405..cc446b3 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.msl
index 7931490..20b06f5 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat4x2<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat4x2<f32>, read> = access %u, 2i, 1u
-    %10:mat4x2<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec2<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f32> = load %12
-    %14:vec2<f32> = swizzle %13, yx
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat4x2<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat4x2<f32>, read> = access %u, 2i, 1u
+    %14:mat4x2<f32> = load %13
+    store %12, %14
+    %15:ptr<storage, vec2<f32>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %17:vec2<f32> = load %16
+    %18:vec2<f32> = swizzle %17, yx
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat4x2<f32>, read_write> = access %target_1, 1u
+    %32:mat4x2<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
index 162eeb9..3791b4a 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x2<f32> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat4x2<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat4x2<f32>, read> = access %u, 2i, 1u
-    %10:mat4x2<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec2<f32> = load %12
-    %14:vec2<f32> = swizzle %13, yx
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat4x2<f32>(vec2<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat4x2<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat4x2<f32>, read> = access %u, 2i, 1u
+    %16:mat4x2<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec2<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec2<f32> = load %18
+    %20:vec2<f32> = swizzle %19, yx
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 12cd26c..d9f9408 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat4x3<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat4x3<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec3<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat4x3<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec3<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat4x3<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat4x3<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec3<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec3<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat4x3<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat4x3<f16> = let %30
+    %32:vec3<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec3<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index c7f2f11..016a529 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat4x3<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat4x3<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec3<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat4x3<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec3<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat4x3<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat4x3<f16>, read> = let %10
+    %12:ptr<uniform, vec3<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec3<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat4x3<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat4x3<f16> = let %22
+    %24:vec3<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec3<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
index 1bd5a11..5cce2ca 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat4x3<f16>, read> = access %u, 2i, 1u
     %4:mat4x3<f16> = load %3
-    %t:mat3x4<f16> = transpose %4
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec3<f16> = load %6
-    %8:vec3<f16> = swizzle %7, zxy
-    %l:f16 = length %8
-    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec3<f16> = load %10
-    %12:vec3<f16> = swizzle %11, zxy
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat3x4<f16> = transpose %4
+    %t:mat3x4<f16> = let %5
+    %7:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec3<f16> = load %7
+    %9:vec3<f16> = swizzle %8, zxy
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec3<f16> = load %12
+    %14:vec3<f16> = swizzle %13, zxy
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl
index 9408077..fe69066 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat4x3<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat4x3<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec3<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec3<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl
index e2852af..c6791799 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.msl
index 9e9472f..6912e06 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,90 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat4x3<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat4x3<f16>, read> = access %u, 2i, 1u
-    %10:mat4x3<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f16> = load %12
-    %14:vec3<f16> = swizzle %13, zxy
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat4x3<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat4x3<f16>, read> = access %u, 2i, 1u
+    %14:mat4x3<f16> = load %13
+    %15:void = call %tint_store_and_preserve_padding_2, %12, %14
+    %17:ptr<storage, vec3<f16>, read_write> = access %s, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f16> = load %18
+    %20:vec3<f16> = swizzle %19, zxy
+    store %17, %20
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, S, read_write> = access %target, %idx
+        %26:S = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %28:u32 = add %idx, 1u
+        next_iteration %28  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %31:ptr<storage, i32, read_write> = access %target_1, 0u
+    %32:i32 = access %value_param_1, 0u
+    store %31, %32
+    %33:ptr<storage, mat4x3<f16>, read_write> = access %target_1, 1u
+    %34:mat4x3<f16> = access %value_param_1, 1u
+    %35:void = call %tint_store_and_preserve_padding_2, %33, %34
+    %36:ptr<storage, i32, read_write> = access %target_1, 2u
+    %37:i32 = access %value_param_1, 2u
+    store %36, %37
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f16>, read_write>, %value_param_2:mat4x3<f16>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B9: {
+    %40:ptr<storage, vec3<f16>, read_write> = access %target_2, 0u
+    %41:vec3<f16> = access %value_param_2, 0u
+    store %40, %41
+    %42:ptr<storage, vec3<f16>, read_write> = access %target_2, 1u
+    %43:vec3<f16> = access %value_param_2, 1u
+    store %42, %43
+    %44:ptr<storage, vec3<f16>, read_write> = access %target_2, 2u
+    %45:vec3<f16> = access %value_param_2, 2u
+    store %44, %45
+    %46:ptr<storage, vec3<f16>, read_write> = access %target_2, 3u
+    %47:vec3<f16> = access %value_param_2, 3u
+    store %46, %47
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
index 3f6e08e..43e3ab0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat4x3<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat4x3<f16>, read> = access %u, 2i, 1u
-    %10:mat4x3<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f16> = load %12
-    %14:vec3<f16> = swizzle %13, zxy
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat4x3<f16>(vec3<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat4x3<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat4x3<f16>, read> = access %u, 2i, 1u
+    %16:mat4x3<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f16> = load %18
+    %20:vec3<f16> = swizzle %19, zxy
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index b8f58ea..2ecbdef 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat4x3<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat4x3<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec3<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat4x3<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec3<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat4x3<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat4x3<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec3<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec3<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat4x3<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat4x3<f32> = let %30
+    %32:vec3<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec3<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 0e73a4d..4276831 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat4x3<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat4x3<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec3<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat4x3<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec3<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat4x3<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat4x3<f32>, read> = let %10
+    %12:ptr<uniform, vec3<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec3<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat4x3<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat4x3<f32> = let %22
+    %24:vec3<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec3<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
index 737274f..43a93ce 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat4x3<f32>, read> = access %u, 2i, 1u
     %4:mat4x3<f32> = load %3
-    %t:mat3x4<f32> = transpose %4
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec3<f32> = load %6
-    %8:vec3<f32> = swizzle %7, zxy
-    %l:f32 = length %8
-    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec3<f32> = load %10
-    %12:vec3<f32> = swizzle %11, zxy
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat3x4<f32> = transpose %4
+    %t:mat3x4<f32> = let %5
+    %7:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec3<f32> = load %7
+    %9:vec3<f32> = swizzle %8, zxy
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec3<f32> = load %12
+    %14:vec3<f32> = swizzle %13, zxy
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl
index b253302..eca171c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat4x3<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat4x3<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec3<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec3<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl
index 732c6e8..ab68b96 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.msl
index ed7180e..1831094 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,90 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat4x3<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat4x3<f32>, read> = access %u, 2i, 1u
-    %10:mat4x3<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f32> = load %12
-    %14:vec3<f32> = swizzle %13, zxy
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat4x3<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat4x3<f32>, read> = access %u, 2i, 1u
+    %14:mat4x3<f32> = load %13
+    %15:void = call %tint_store_and_preserve_padding_2, %12, %14
+    %17:ptr<storage, vec3<f32>, read_write> = access %s, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f32> = load %18
+    %20:vec3<f32> = swizzle %19, zxy
+    store %17, %20
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %24:bool = gte %idx, 4u
+        if %24 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %25:ptr<storage, S, read_write> = access %target, %idx
+        %26:S = access %value_param, %idx
+        %27:void = call %tint_store_and_preserve_padding_1, %25, %26
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %28:u32 = add %idx, 1u
+        next_iteration %28  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %31:ptr<storage, i32, read_write> = access %target_1, 0u
+    %32:i32 = access %value_param_1, 0u
+    store %31, %32
+    %33:ptr<storage, mat4x3<f32>, read_write> = access %target_1, 1u
+    %34:mat4x3<f32> = access %value_param_1, 1u
+    %35:void = call %tint_store_and_preserve_padding_2, %33, %34
+    %36:ptr<storage, i32, read_write> = access %target_1, 2u
+    %37:i32 = access %value_param_1, 2u
+    store %36, %37
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, mat4x3<f32>, read_write>, %value_param_2:mat4x3<f32>):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B9: {
+    %40:ptr<storage, vec3<f32>, read_write> = access %target_2, 0u
+    %41:vec3<f32> = access %value_param_2, 0u
+    store %40, %41
+    %42:ptr<storage, vec3<f32>, read_write> = access %target_2, 1u
+    %43:vec3<f32> = access %value_param_2, 1u
+    store %42, %43
+    %44:ptr<storage, vec3<f32>, read_write> = access %target_2, 2u
+    %45:vec3<f32> = access %value_param_2, 2u
+    store %44, %45
+    %46:ptr<storage, vec3<f32>, read_write> = access %target_2, 3u
+    %47:vec3<f32> = access %value_param_2, 3u
+    store %46, %47
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
index ec8e2c0..1d151cf 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x3<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat4x3<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat4x3<f32>, read> = access %u, 2i, 1u
-    %10:mat4x3<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec3<f32> = load %12
-    %14:vec3<f32> = swizzle %13, zxy
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat4x3<f32>(vec3<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat4x3<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat4x3<f32>, read> = access %u, 2i, 1u
+    %16:mat4x3<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec3<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec3<f32> = load %18
+    %20:vec3<f32> = swizzle %19, zxy
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 8e9ad89..44fe5af 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat4x4<f16> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat4x4<f16>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec4<f16>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat4x4<f16> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec4<f16> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f16 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat4x4<f16>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat4x4<f16>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec4<f16>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec4<f16>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat4x4<f16> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat4x4<f16> = let %30
+    %32:vec4<f16> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec4<f16> = let %32
+    %34:i32 = call %i
+    %35:f16 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f16 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index a48f846..bde73d9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   m:mat4x4<f16> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat4x4<f16>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec4<f16>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat4x4<f16> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec4<f16> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat4x4<f16>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat4x4<f16>, read> = let %10
+    %12:ptr<uniform, vec4<f16>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec4<f16>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat4x4<f16> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat4x4<f16> = let %22
+    %24:vec4<f16> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec4<f16> = let %24
+    %26:f16 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f16 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
index 3fc783f..a2c984e 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat4x4<f16>, read> = access %u, 2i, 1u
     %4:mat4x4<f16> = load %3
-    %t:mat4x4<f16> = transpose %4
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %7:vec4<f16> = load %6
-    %8:vec4<f16> = swizzle %7, ywxz
-    %l:f16 = length %8
-    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %11:vec4<f16> = load %10
-    %12:vec4<f16> = swizzle %11, ywxz
-    %13:f16 = access %12, 0u
-    %a:f16 = abs %13
+    %5:mat4x4<f16> = transpose %4
+    %t:mat4x4<f16> = let %5
+    %7:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %8:vec4<f16> = load %7
+    %9:vec4<f16> = swizzle %8, ywxz
+    %10:f16 = length %9
+    %l:f16 = let %10
+    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %13:vec4<f16> = load %12
+    %14:vec4<f16> = swizzle %13, ywxz
+    %15:f16 = access %14, 0u
+    %16:f16 = abs %15
+    %a:f16 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl
index a804500..6b8aa2c 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat4x4<f16>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat4x4<f16>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec4<f16>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec4<f16>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f16):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f16):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl
index 16b06b8..6db31f9 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.msl
index b8ef1e8..072055f 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat4x4<f16>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat4x4<f16>, read> = access %u, 2i, 1u
-    %10:mat4x4<f16> = load %9
-    store %8, %10
-    %11:ptr<storage, vec4<f16>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f16> = load %12
-    %14:vec4<f16> = swizzle %13, ywxz
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat4x4<f16>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat4x4<f16>, read> = access %u, 2i, 1u
+    %14:mat4x4<f16> = load %13
+    store %12, %14
+    %15:ptr<storage, vec4<f16>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %17:vec4<f16> = load %16
+    %18:vec4<f16> = swizzle %17, ywxz
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat4x4<f16>, read_write> = access %target_1, 1u
+    %32:mat4x4<f16> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
index 7bc6c13..1942023 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f16> @offset(8)
   after:i32 @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat4x4<f16>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat4x4<f16>, read> = access %u, 2i, 1u
-    %10:mat4x4<f16> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f16> = load %12
-    %14:vec4<f16> = swizzle %13, ywxz
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat4x4<f16>(vec4<f16>(0.0h)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat4x4<f16>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat4x4<f16>, read> = access %u, 2i, 1u
+    %16:mat4x4<f16> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec4<f16>, read> = access %u, 0i, 1u, 1i
+    %19:vec4<f16> = load %18
+    %20:vec4<f16> = swizzle %19, ywxz
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index d06e288..9ed2603 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat4x4<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -22,25 +22,37 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
     %9:i32 = call %i
-    %p_a_i:ptr<uniform, Outer, read> = access %p_a, %9
-    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
-    %12:i32 = call %i
-    %p_a_i_a_i:ptr<uniform, Inner, read> = access %p_a_i_a, %12
-    %p_a_i_a_i_m:ptr<uniform, mat4x4<f32>, read> = access %p_a_i_a_i, 0u
-    %15:i32 = call %i
-    %p_a_i_a_i_m_i:ptr<uniform, vec4<f32>, read> = access %p_a_i_a_i_m, %15
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_i:Outer = load %p_a_i
-    %l_a_i_a:array<Inner, 4> = load %p_a_i_a
-    %l_a_i_a_i:Inner = load %p_a_i_a_i
-    %l_a_i_a_i_m:mat4x4<f32> = load %p_a_i_a_i_m
-    %l_a_i_a_i_m_i:vec4<f32> = load %p_a_i_a_i_m_i
-    %23:i32 = call %i
-    %l_a_i_a_i_m_i_i:f32 = load_vector_element %p_a_i_a_i_m_i, %23
+    %10:ptr<uniform, Outer, read> = access %p_a, %9
+    %p_a_i:ptr<uniform, Outer, read> = let %10
+    %12:ptr<uniform, array<Inner, 4>, read> = access %p_a_i, 0u
+    %p_a_i_a:ptr<uniform, array<Inner, 4>, read> = let %12
+    %14:i32 = call %i
+    %15:ptr<uniform, Inner, read> = access %p_a_i_a, %14
+    %p_a_i_a_i:ptr<uniform, Inner, read> = let %15
+    %17:ptr<uniform, mat4x4<f32>, read> = access %p_a_i_a_i, 0u
+    %p_a_i_a_i_m:ptr<uniform, mat4x4<f32>, read> = let %17
+    %19:i32 = call %i
+    %20:ptr<uniform, vec4<f32>, read> = access %p_a_i_a_i_m, %19
+    %p_a_i_a_i_m_i:ptr<uniform, vec4<f32>, read> = let %20
+    %22:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %22
+    %24:Outer = load %p_a_i
+    %l_a_i:Outer = let %24
+    %26:array<Inner, 4> = load %p_a_i_a
+    %l_a_i_a:array<Inner, 4> = let %26
+    %28:Inner = load %p_a_i_a_i
+    %l_a_i_a_i:Inner = let %28
+    %30:mat4x4<f32> = load %p_a_i_a_i_m
+    %l_a_i_a_i_m:mat4x4<f32> = let %30
+    %32:vec4<f32> = load %p_a_i_a_i_m_i
+    %l_a_i_a_i_m_i:vec4<f32> = let %32
+    %34:i32 = call %i
+    %35:f32 = load_vector_element %p_a_i_a_i_m_i, %34
+    %l_a_i_a_i_m_i_i:f32 = let %35
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index c28300a..4addd07 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   m:mat4x4<f32> @offset(0)
 }
 
@@ -8,25 +8,37 @@
   a:array<Inner, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<uniform, array<Outer, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p_a:ptr<uniform, array<Outer, 4>, read> = let %a
-    %p_a_3:ptr<uniform, Outer, read> = access %p_a, 3i
-    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
-    %p_a_3_a_2:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
-    %p_a_3_a_2_m:ptr<uniform, mat4x4<f32>, read> = access %p_a_3_a_2, 0u
-    %p_a_3_a_2_m_1:ptr<uniform, vec4<f32>, read> = access %p_a_3_a_2_m, 1i
-    %l_a:array<Outer, 4> = load %p_a
-    %l_a_3:Outer = load %p_a_3
-    %l_a_3_a:array<Inner, 4> = load %p_a_3_a
-    %l_a_3_a_2:Inner = load %p_a_3_a_2
-    %l_a_3_a_2_m:mat4x4<f32> = load %p_a_3_a_2_m
-    %l_a_3_a_2_m_1:vec4<f32> = load %p_a_3_a_2_m_1
-    %l_a_3_a_2_m_1_0:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %4:ptr<uniform, Outer, read> = access %p_a, 3i
+    %p_a_3:ptr<uniform, Outer, read> = let %4
+    %6:ptr<uniform, array<Inner, 4>, read> = access %p_a_3, 0u
+    %p_a_3_a:ptr<uniform, array<Inner, 4>, read> = let %6
+    %8:ptr<uniform, Inner, read> = access %p_a_3_a, 2i
+    %p_a_3_a_2:ptr<uniform, Inner, read> = let %8
+    %10:ptr<uniform, mat4x4<f32>, read> = access %p_a_3_a_2, 0u
+    %p_a_3_a_2_m:ptr<uniform, mat4x4<f32>, read> = let %10
+    %12:ptr<uniform, vec4<f32>, read> = access %p_a_3_a_2_m, 1i
+    %p_a_3_a_2_m_1:ptr<uniform, vec4<f32>, read> = let %12
+    %14:array<Outer, 4> = load %p_a
+    %l_a:array<Outer, 4> = let %14
+    %16:Outer = load %p_a_3
+    %l_a_3:Outer = let %16
+    %18:array<Inner, 4> = load %p_a_3_a
+    %l_a_3_a:array<Inner, 4> = let %18
+    %20:Inner = load %p_a_3_a_2
+    %l_a_3_a_2:Inner = let %20
+    %22:mat4x4<f32> = load %p_a_3_a_2_m
+    %l_a_3_a_2_m:mat4x4<f32> = let %22
+    %24:vec4<f32> = load %p_a_3_a_2_m_1
+    %l_a_3_a_2_m_1:vec4<f32> = let %24
+    %26:f32 = load_vector_element %p_a_3_a_2_m_1, 0i
+    %l_a_3_a_2_m_1_0:f32 = let %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
index 0df1147..6a5a7de 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,29 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, mat4x4<f32>, read> = access %u, 2i, 1u
     %4:mat4x4<f32> = load %3
-    %t:mat4x4<f32> = transpose %4
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %7:vec4<f32> = load %6
-    %8:vec4<f32> = swizzle %7, ywxz
-    %l:f32 = length %8
-    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %11:vec4<f32> = load %10
-    %12:vec4<f32> = swizzle %11, ywxz
-    %13:f32 = access %12, 0u
-    %a:f32 = abs %13
+    %5:mat4x4<f32> = transpose %4
+    %t:mat4x4<f32> = let %5
+    %7:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %8:vec4<f32> = load %7
+    %9:vec4<f32> = swizzle %8, ywxz
+    %10:f32 = length %9
+    %l:f32 = let %10
+    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %13:vec4<f32> = load %12
+    %14:vec4<f32> = swizzle %13, ywxz
+    %15:f32 = access %14, 0u
+    %16:f32 = abs %15
+    %a:f32 = let %16
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl
index efd1e78..9034489 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,42 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%a_1:array<S, 4>):void -> %b2 {  # %a_1: 'a'
-  %b2 = block {
+%a = func(%a_1:array<S, 4>):void {  # %a_1: 'a'
+  $B2: {
     ret
   }
 }
-%b = func(%s:S):void -> %b3 {
-  %b3 = block {
+%b = func(%s:S):void {
+  $B3: {
     ret
   }
 }
-%c = func(%m:mat4x4<f32>):void -> %b4 {
-  %b4 = block {
+%c = func(%m:mat4x4<f32>):void {
+  $B4: {
     ret
   }
 }
-%d = func(%v:vec4<f32>):void -> %b5 {
-  %b5 = block {
+%d = func(%v:vec4<f32>):void {
+  $B5: {
     ret
   }
 }
-%e = func(%f:f32):void -> %b6 {
-  %b6 = block {
+%e = func(%f:f32):void {
+  $B6: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {  # %f_1: 'f'
-  %b7 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B7: {
     %13:array<S, 4> = load %u
     %14:void = call %a, %13
     %15:ptr<uniform, S, read> = access %u, 2i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl
index 40e5ea9..ead75ea 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %p:ptr<private, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
     store %p, %4
     %5:ptr<private, S, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.msl
index 450e67d..6eb7ab0 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,33 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %s:ptr<storage, array<S, 4>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:array<S, 4> = load %u
-    store %s, %4
-    %5:ptr<storage, S, read_write> = access %s, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<storage, mat4x4<f32>, read_write> = access %s, 3i, 1u
-    %9:ptr<uniform, mat4x4<f32>, read> = access %u, 2i, 1u
-    %10:mat4x4<f32> = load %9
-    store %8, %10
-    %11:ptr<storage, vec4<f32>, read_write> = access %s, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f32> = load %12
-    %14:vec4<f32> = swizzle %13, ywxz
-    store %11, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, S, read_write> = access %s, 1i
+    %8:ptr<uniform, S, read> = access %u, 2i
+    %9:S = load %8
+    %10:void = call %tint_store_and_preserve_padding_1, %7, %9
+    %12:ptr<storage, mat4x4<f32>, read_write> = access %s, 3i, 1u
+    %13:ptr<uniform, mat4x4<f32>, read> = access %u, 2i, 1u
+    %14:mat4x4<f32> = load %13
+    store %12, %14
+    %15:ptr<storage, vec4<f32>, read_write> = access %s, 1i, 1u, 0i
+    %16:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %17:vec4<f32> = load %16
+    %18:vec4<f32> = swizzle %17, ywxz
+    store %15, %18
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<S, 4>, read_write>, %value_param:array<S, 4>):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration 0u  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %22:bool = gte %idx, 4u
+        if %22 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %23:ptr<storage, S, read_write> = access %target, %idx
+        %24:S = access %value_param, %idx
+        %25:void = call %tint_store_and_preserve_padding_1, %23, %24
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %26:u32 = add %idx, 1u
+        next_iteration %26  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B8: {
+    %29:ptr<storage, i32, read_write> = access %target_1, 0u
+    %30:i32 = access %value_param_1, 0u
+    store %29, %30
+    %31:ptr<storage, mat4x4<f32>, read_write> = access %target_1, 1u
+    %32:mat4x4<f32> = access %value_param_1, 1u
+    store %31, %32
+    %33:ptr<storage, i32, read_write> = access %target_1, 2u
+    %34:i32 = access %value_param_1, 2u
+    store %33, %34
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
index 31ca2e4..d70ac8b 100644
--- a/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/struct/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,33 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(64) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(64) {
   before:i32 @offset(0)
   m:mat4x4<f32> @offset(16)
   after:i32 @offset(128)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, array<S, 4>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, array<S, 4>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:array<S, 4> = load %u
-    store %w, %4
-    %5:ptr<workgroup, S, read_write> = access %w, 1i
-    %6:ptr<uniform, S, read> = access %u, 2i
-    %7:S = load %6
-    store %5, %7
-    %8:ptr<workgroup, mat4x4<f32>, read_write> = access %w, 3i, 1u
-    %9:ptr<uniform, mat4x4<f32>, read> = access %u, 2i, 1u
-    %10:mat4x4<f32> = load %9
-    store %8, %10
-    %11:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 1u, 0i
-    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
-    %13:vec4<f32> = load %12
-    %14:vec4<f32> = swizzle %13, ywxz
-    store %11, %14
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %6:bool = gte %idx, 4u
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %7:ptr<workgroup, S, read_write> = access %w, %idx
+        store %7, S(0i, mat4x4<f32>(vec4<f32>(0.0f)), 0i)
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %8:u32 = add %idx, 1u
+        next_iteration %8  # -> $B4
+      }
+    }
+    %9:void = msl.threadgroup_barrier 4u
+    %10:array<S, 4> = load %u
+    store %w, %10
+    %11:ptr<workgroup, S, read_write> = access %w, 1i
+    %12:ptr<uniform, S, read> = access %u, 2i
+    %13:S = load %12
+    store %11, %13
+    %14:ptr<workgroup, mat4x4<f32>, read_write> = access %w, 3i, 1u
+    %15:ptr<uniform, mat4x4<f32>, read> = access %u, 2i, 1u
+    %16:mat4x4<f32> = load %15
+    store %14, %16
+    %17:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i, 1u, 0i
+    %18:ptr<uniform, vec4<f32>, read> = access %u, 0i, 1u, 1i
+    %19:vec4<f32> = load %18
+    %20:vec4<f32> = swizzle %19, ywxz
+    store %17, %20
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 58d2c7e..a176b1c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x2<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec2<f16>, read> = access %p_m, %9
-    %l_m:mat2x2<f16> = load %p_m
-    %l_m_i:vec2<f16> = load %p_m_i
+    %10:ptr<uniform, vec2<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec2<f16>, read> = let %10
+    %12:mat2x2<f16> = load %p_m
+    %l_m:mat2x2<f16> = let %12
+    %14:vec2<f16> = load %p_m_i
+    %l_m_i:vec2<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 554a8df..e4980e5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x2<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec2<f16>, read> = access %p_m, 1i
-    %l_m:mat2x2<f16> = load %p_m
-    %l_m_1:vec2<f16> = load %p_m_1
+    %9:ptr<uniform, vec2<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec2<f16>, read> = let %9
+    %11:mat2x2<f16> = load %p_m
+    %l_m:mat2x2<f16> = let %11
+    %13:vec2<f16> = load %p_m_1
+    %l_m_1:vec2<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.msl
index ab08cdd..d3813373 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat2x2<f16> = load %u
-    %t:mat2x2<f16> = transpose %3
-    %5:ptr<uniform, vec2<f16>, read> = access %u, 1i
-    %6:vec2<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec2<f16>, read> = access %u, 0i
-    %9:vec2<f16> = load %8
-    %10:vec2<f16> = swizzle %9, yx
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat2x2<f16> = transpose %3
+    %t:mat2x2<f16> = let %4
+    %6:ptr<uniform, vec2<f16>, read> = access %u, 1i
+    %7:vec2<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i
+    %11:vec2<f16> = load %10
+    %12:vec2<f16> = swizzle %11, yx
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl
index dbf8128..a228f13 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat2x2<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat2x2<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec2<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec2<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat2x2<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec2<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl
index 2f0bd64..e0a91b8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat2x2<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %u
     store %p, %4
     %5:ptr<private, vec2<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl
index f4b675e..1ccbd29 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %u
     store %s, %4
     %5:ptr<storage, vec2<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl
index a2baf6b..37f0e9b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat2x2<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat2x2<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i
-    %7:vec2<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat2x2<f16>(vec2<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat2x2<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec2<f16>, read> = access %u, 0i
     %10:vec2<f16> = load %9
-    %11:vec2<f16> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec2<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i
+    %13:vec2<f16> = load %12
+    %14:vec2<f16> = swizzle %13, yx
+    store %11, %14
+    %15:ptr<workgroup, vec2<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec2<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ba40f3b..3f757e5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x2<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec2<f32>, read> = access %p_m, %9
-    %l_m:mat2x2<f32> = load %p_m
-    %l_m_i:vec2<f32> = load %p_m_i
+    %10:ptr<uniform, vec2<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec2<f32>, read> = let %10
+    %12:mat2x2<f32> = load %p_m
+    %l_m:mat2x2<f32> = let %12
+    %14:vec2<f32> = load %p_m_i
+    %l_m_i:vec2<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 12f9ac2..7cd3bee 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x2<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
-    %l_m:mat2x2<f32> = load %p_m
-    %l_m_1:vec2<f32> = load %p_m_1
+    %9:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec2<f32>, read> = let %9
+    %11:mat2x2<f32> = load %p_m
+    %l_m:mat2x2<f32> = let %11
+    %13:vec2<f32> = load %p_m_1
+    %l_m_1:vec2<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
index d2f040e..cc7db23 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat2x2<f32> = load %u
-    %t:mat2x2<f32> = transpose %3
-    %5:ptr<uniform, vec2<f32>, read> = access %u, 1i
-    %6:vec2<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec2<f32>, read> = access %u, 0i
-    %9:vec2<f32> = load %8
-    %10:vec2<f32> = swizzle %9, yx
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat2x2<f32> = transpose %3
+    %t:mat2x2<f32> = let %4
+    %6:ptr<uniform, vec2<f32>, read> = access %u, 1i
+    %7:vec2<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i
+    %11:vec2<f32> = load %10
+    %12:vec2<f32> = swizzle %11, yx
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl
index 26dcceb..4f8ada1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat2x2<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat2x2<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec2<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec2<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat2x2<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec2<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl
index 0e4b6f7..11abb4e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat2x2<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %u
     store %p, %4
     %5:ptr<private, vec2<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl
index f8f5aef..30bc543 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %u
     store %s, %4
     %5:ptr<storage, vec2<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
index 6fb47d0..363c971 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat2x2<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat2x2<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i
-    %7:vec2<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat2x2<f32>(vec2<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat2x2<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec2<f32>, read> = access %u, 0i
     %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i
+    %13:vec2<f32> = load %12
+    %14:vec2<f32> = swizzle %13, yx
+    store %11, %14
+    %15:ptr<workgroup, vec2<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec2<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index a99fb35..b8b2652 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x3<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec3<f16>, read> = access %p_m, %9
-    %l_m:mat2x3<f16> = load %p_m
-    %l_m_i:vec3<f16> = load %p_m_i
+    %10:ptr<uniform, vec3<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec3<f16>, read> = let %10
+    %12:mat2x3<f16> = load %p_m
+    %l_m:mat2x3<f16> = let %12
+    %14:vec3<f16> = load %p_m_i
+    %l_m_i:vec3<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 9b7c840..3507c2d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x3<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec3<f16>, read> = access %p_m, 1i
-    %l_m:mat2x3<f16> = load %p_m
-    %l_m_1:vec3<f16> = load %p_m_1
+    %9:ptr<uniform, vec3<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec3<f16>, read> = let %9
+    %11:mat2x3<f16> = load %p_m
+    %l_m:mat2x3<f16> = let %11
+    %13:vec3<f16> = load %p_m_1
+    %l_m_1:vec3<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
index aa59475..07a3a53 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat2x3<f16> = load %u
-    %t:mat3x2<f16> = transpose %3
-    %5:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %6:vec3<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %9:vec3<f16> = load %8
-    %10:vec3<f16> = swizzle %9, zxy
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat3x2<f16> = transpose %3
+    %t:mat3x2<f16> = let %4
+    %6:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %7:vec3<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %11:vec3<f16> = load %10
+    %12:vec3<f16> = swizzle %11, zxy
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl
index 00839af..2ca0e5a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat2x3<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat2x3<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec3<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec3<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat2x3<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec3<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl
index 4ad5f1d..7c3e9bb 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat2x3<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %u
     store %p, %4
     %5:ptr<private, vec3<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl
index 3ad6649..05e28bd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %u
-    store %s, %4
-    %5:ptr<storage, vec3<f16>, read_write> = access %s, 1i
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %7:vec3<f16> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f16>, read_write> = access %s, 1i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<storage, vec3<f16>, read_write> = access %s, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, vec3<f16>, read_write> = access %s, 1i
+    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %9:vec3<f16> = load %8
+    store %7, %9
+    %10:ptr<storage, vec3<f16>, read_write> = access %s, 1i
+    %11:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %12:vec3<f16> = load %11
+    %13:vec3<f16> = swizzle %12, zxy
+    store %10, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %s, 0i
+    %15:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %16:f16 = load_vector_element %15, 0i
+    store_vector_element %14, 1i, %16
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %19:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %20:vec3<f16> = access %value_param, 0u
+    store %19, %20
+    %21:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %22:vec3<f16> = access %value_param, 1u
+    store %21, %22
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
index 944ad65..2a286d3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat2x3<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat2x3<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %7:vec3<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat2x3<f16>(vec3<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat2x3<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
     %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %13:vec3<f16> = load %12
+    %14:vec3<f16> = swizzle %13, zxy
+    store %11, %14
+    %15:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index d397864..b132429 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x3<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec3<f32>, read> = access %p_m, %9
-    %l_m:mat2x3<f32> = load %p_m
-    %l_m_i:vec3<f32> = load %p_m_i
+    %10:ptr<uniform, vec3<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec3<f32>, read> = let %10
+    %12:mat2x3<f32> = load %p_m
+    %l_m:mat2x3<f32> = let %12
+    %14:vec3<f32> = load %p_m_i
+    %l_m_i:vec3<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index ef68a506..3008eb9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x3<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec3<f32>, read> = access %p_m, 1i
-    %l_m:mat2x3<f32> = load %p_m
-    %l_m_1:vec3<f32> = load %p_m_1
+    %9:ptr<uniform, vec3<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec3<f32>, read> = let %9
+    %11:mat2x3<f32> = load %p_m
+    %l_m:mat2x3<f32> = let %11
+    %13:vec3<f32> = load %p_m_1
+    %l_m_1:vec3<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
index cc3b659..c2ff7b7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat2x3<f32> = load %u
-    %t:mat3x2<f32> = transpose %3
-    %5:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %6:vec3<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %9:vec3<f32> = load %8
-    %10:vec3<f32> = swizzle %9, zxy
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat3x2<f32> = transpose %3
+    %t:mat3x2<f32> = let %4
+    %6:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %7:vec3<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %11:vec3<f32> = load %10
+    %12:vec3<f32> = swizzle %11, zxy
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl
index c4d09fb..c596a51 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat2x3<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat2x3<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec3<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec3<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat2x3<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec3<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl
index 23c7804..0fa40e0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat2x3<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %u
     store %p, %4
     %5:ptr<private, vec3<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl
index b4b5227..3f43331 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %u
-    store %s, %4
-    %5:ptr<storage, vec3<f32>, read_write> = access %s, 1i
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %7:vec3<f32> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f32>, read_write> = access %s, 1i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<storage, vec3<f32>, read_write> = access %s, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, vec3<f32>, read_write> = access %s, 1i
+    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %9:vec3<f32> = load %8
+    store %7, %9
+    %10:ptr<storage, vec3<f32>, read_write> = access %s, 1i
+    %11:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %12:vec3<f32> = load %11
+    %13:vec3<f32> = swizzle %12, zxy
+    store %10, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %s, 0i
+    %15:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %16:f32 = load_vector_element %15, 0i
+    store_vector_element %14, 1i, %16
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %19:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %20:vec3<f32> = access %value_param, 0u
+    store %19, %20
+    %21:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %22:vec3<f32> = access %value_param, 1u
+    store %21, %22
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
index 3decd16..93c51a4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat2x3<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat2x3<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %7:vec3<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat2x3<f32>(vec3<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat2x3<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec3<f32>, read> = access %u, 0i
     %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %13:vec3<f32> = load %12
+    %14:vec3<f32> = swizzle %13, zxy
+    store %11, %14
+    %15:ptr<workgroup, vec3<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index e0961a0..6d5e6ec 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x4<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec4<f16>, read> = access %p_m, %9
-    %l_m:mat2x4<f16> = load %p_m
-    %l_m_i:vec4<f16> = load %p_m_i
+    %10:ptr<uniform, vec4<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec4<f16>, read> = let %10
+    %12:mat2x4<f16> = load %p_m
+    %l_m:mat2x4<f16> = let %12
+    %14:vec4<f16> = load %p_m_i
+    %l_m_i:vec4<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 391ff69..9271acf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x4<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
-    %l_m:mat2x4<f16> = load %p_m
-    %l_m_1:vec4<f16> = load %p_m_1
+    %9:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec4<f16>, read> = let %9
+    %11:mat2x4<f16> = load %p_m
+    %l_m:mat2x4<f16> = let %11
+    %13:vec4<f16> = load %p_m_1
+    %l_m_1:vec4<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
index bd0dd78..5042f28 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat2x4<f16> = load %u
-    %t:mat4x2<f16> = transpose %3
-    %5:ptr<uniform, vec4<f16>, read> = access %u, 1i
-    %6:vec4<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec4<f16>, read> = access %u, 0i
-    %9:vec4<f16> = load %8
-    %10:vec4<f16> = swizzle %9, ywxz
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat4x2<f16> = transpose %3
+    %t:mat4x2<f16> = let %4
+    %6:ptr<uniform, vec4<f16>, read> = access %u, 1i
+    %7:vec4<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i
+    %11:vec4<f16> = load %10
+    %12:vec4<f16> = swizzle %11, ywxz
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl
index 8d97bfc..1223365 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat2x4<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat2x4<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec4<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec4<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat2x4<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec4<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl
index 95f8ed8..242ee99 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat2x4<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %u
     store %p, %4
     %5:ptr<private, vec4<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl
index 9285b78..c10575a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %u
     store %s, %4
     %5:ptr<storage, vec4<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
index f997446..9a8c6ea 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat2x4<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat2x4<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i
-    %7:vec4<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat2x4<f16>(vec4<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat2x4<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec4<f16>, read> = access %u, 0i
     %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i
+    %13:vec4<f16> = load %12
+    %14:vec4<f16> = swizzle %13, ywxz
+    store %11, %14
+    %15:ptr<workgroup, vec4<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec4<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 9900f21..d37a124 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x4<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec4<f32>, read> = access %p_m, %9
-    %l_m:mat2x4<f32> = load %p_m
-    %l_m_i:vec4<f32> = load %p_m_i
+    %10:ptr<uniform, vec4<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec4<f32>, read> = let %10
+    %12:mat2x4<f32> = load %p_m
+    %l_m:mat2x4<f32> = let %12
+    %14:vec4<f32> = load %p_m_i
+    %l_m_i:vec4<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 73ee6ec..ed2f0fd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat2x4<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec4<f32>, read> = access %p_m, 1i
-    %l_m:mat2x4<f32> = load %p_m
-    %l_m_1:vec4<f32> = load %p_m_1
+    %9:ptr<uniform, vec4<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec4<f32>, read> = let %9
+    %11:mat2x4<f32> = load %p_m
+    %l_m:mat2x4<f32> = let %11
+    %13:vec4<f32> = load %p_m_1
+    %l_m_1:vec4<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
index 030a9a5..51feb64 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat2x4<f32> = load %u
-    %t:mat4x2<f32> = transpose %3
-    %5:ptr<uniform, vec4<f32>, read> = access %u, 1i
-    %6:vec4<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec4<f32>, read> = access %u, 0i
-    %9:vec4<f32> = load %8
-    %10:vec4<f32> = swizzle %9, ywxz
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat4x2<f32> = transpose %3
+    %t:mat4x2<f32> = let %4
+    %6:ptr<uniform, vec4<f32>, read> = access %u, 1i
+    %7:vec4<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i
+    %11:vec4<f32> = load %10
+    %12:vec4<f32> = swizzle %11, ywxz
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl
index 399c288..c85b6fb 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat2x4<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat2x4<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec4<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec4<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat2x4<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec4<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl
index 1b5d8ef..a435173 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat2x4<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %u
     store %p, %4
     %5:ptr<private, vec4<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl
index 69f3a2f..776849d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %u
     store %s, %4
     %5:ptr<storage, vec4<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
index 1af4b3e..0a303a5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat2x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat2x4<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat2x4<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i
-    %7:vec4<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat2x4<f32>(vec4<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat2x4<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec4<f32>, read> = access %u, 0i
     %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i
+    %13:vec4<f32> = load %12
+    %14:vec4<f32> = swizzle %13, ywxz
+    store %11, %14
+    %15:ptr<workgroup, vec4<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec4<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 2bdc90a..b9cb731 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x2<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec2<f16>, read> = access %p_m, %9
-    %l_m:mat3x2<f16> = load %p_m
-    %l_m_i:vec2<f16> = load %p_m_i
+    %10:ptr<uniform, vec2<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec2<f16>, read> = let %10
+    %12:mat3x2<f16> = load %p_m
+    %l_m:mat3x2<f16> = let %12
+    %14:vec2<f16> = load %p_m_i
+    %l_m_i:vec2<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 0278175..7b1726b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x2<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec2<f16>, read> = access %p_m, 1i
-    %l_m:mat3x2<f16> = load %p_m
-    %l_m_1:vec2<f16> = load %p_m_1
+    %9:ptr<uniform, vec2<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec2<f16>, read> = let %9
+    %11:mat3x2<f16> = load %p_m
+    %l_m:mat3x2<f16> = let %11
+    %13:vec2<f16> = load %p_m_1
+    %l_m_1:vec2<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.msl
index df1dcc7..e904393 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat3x2<f16> = load %u
-    %t:mat2x3<f16> = transpose %3
-    %5:ptr<uniform, vec2<f16>, read> = access %u, 1i
-    %6:vec2<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec2<f16>, read> = access %u, 0i
-    %9:vec2<f16> = load %8
-    %10:vec2<f16> = swizzle %9, yx
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat2x3<f16> = transpose %3
+    %t:mat2x3<f16> = let %4
+    %6:ptr<uniform, vec2<f16>, read> = access %u, 1i
+    %7:vec2<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i
+    %11:vec2<f16> = load %10
+    %12:vec2<f16> = swizzle %11, yx
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl
index e8810e1..51d7900 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat3x2<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat3x2<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec2<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec2<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat3x2<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec2<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl
index b1276af..a0c12b4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat3x2<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %u
     store %p, %4
     %5:ptr<private, vec2<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl
index 3f27aea..39104de 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %u
     store %s, %4
     %5:ptr<storage, vec2<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl
index 81f1128..d5fae9d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat3x2<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat3x2<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i
-    %7:vec2<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat3x2<f16>(vec2<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat3x2<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec2<f16>, read> = access %u, 0i
     %10:vec2<f16> = load %9
-    %11:vec2<f16> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec2<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i
+    %13:vec2<f16> = load %12
+    %14:vec2<f16> = swizzle %13, yx
+    store %11, %14
+    %15:ptr<workgroup, vec2<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec2<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index d3d90db..a785ca7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x2<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec2<f32>, read> = access %p_m, %9
-    %l_m:mat3x2<f32> = load %p_m
-    %l_m_i:vec2<f32> = load %p_m_i
+    %10:ptr<uniform, vec2<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec2<f32>, read> = let %10
+    %12:mat3x2<f32> = load %p_m
+    %l_m:mat3x2<f32> = let %12
+    %14:vec2<f32> = load %p_m_i
+    %l_m_i:vec2<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 18c3cce..4de6f95 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x2<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
-    %l_m:mat3x2<f32> = load %p_m
-    %l_m_1:vec2<f32> = load %p_m_1
+    %9:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec2<f32>, read> = let %9
+    %11:mat3x2<f32> = load %p_m
+    %l_m:mat3x2<f32> = let %11
+    %13:vec2<f32> = load %p_m_1
+    %l_m_1:vec2<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.msl
index 535ddb0..3f6f8d2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat3x2<f32> = load %u
-    %t:mat2x3<f32> = transpose %3
-    %5:ptr<uniform, vec2<f32>, read> = access %u, 1i
-    %6:vec2<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec2<f32>, read> = access %u, 0i
-    %9:vec2<f32> = load %8
-    %10:vec2<f32> = swizzle %9, yx
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat2x3<f32> = transpose %3
+    %t:mat2x3<f32> = let %4
+    %6:ptr<uniform, vec2<f32>, read> = access %u, 1i
+    %7:vec2<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i
+    %11:vec2<f32> = load %10
+    %12:vec2<f32> = swizzle %11, yx
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl
index 28f78bb..33a39ee 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat3x2<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat3x2<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec2<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec2<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat3x2<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec2<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl
index 98d3c68..f618d23 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat3x2<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %u
     store %p, %4
     %5:ptr<private, vec2<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl
index 33f2504..a8519a7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %u
     store %s, %4
     %5:ptr<storage, vec2<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl
index e903ad8..45c60a8 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat3x2<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat3x2<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i
-    %7:vec2<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat3x2<f32>(vec2<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat3x2<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec2<f32>, read> = access %u, 0i
     %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i
+    %13:vec2<f32> = load %12
+    %14:vec2<f32> = swizzle %13, yx
+    store %11, %14
+    %15:ptr<workgroup, vec2<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec2<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 069fa27..723ff77 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x3<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec3<f16>, read> = access %p_m, %9
-    %l_m:mat3x3<f16> = load %p_m
-    %l_m_i:vec3<f16> = load %p_m_i
+    %10:ptr<uniform, vec3<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec3<f16>, read> = let %10
+    %12:mat3x3<f16> = load %p_m
+    %l_m:mat3x3<f16> = let %12
+    %14:vec3<f16> = load %p_m_i
+    %l_m_i:vec3<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index 79f04e3..048ef60 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x3<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec3<f16>, read> = access %p_m, 1i
-    %l_m:mat3x3<f16> = load %p_m
-    %l_m_1:vec3<f16> = load %p_m_1
+    %9:ptr<uniform, vec3<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec3<f16>, read> = let %9
+    %11:mat3x3<f16> = load %p_m
+    %l_m:mat3x3<f16> = let %11
+    %13:vec3<f16> = load %p_m_1
+    %l_m_1:vec3<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.msl
index ec69afd..921fbf7 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat3x3<f16> = load %u
-    %t:mat3x3<f16> = transpose %3
-    %5:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %6:vec3<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %9:vec3<f16> = load %8
-    %10:vec3<f16> = swizzle %9, zxy
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat3x3<f16> = transpose %3
+    %t:mat3x3<f16> = let %4
+    %6:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %7:vec3<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %11:vec3<f16> = load %10
+    %12:vec3<f16> = swizzle %11, zxy
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl
index 4ea6635..a19f3fc 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat3x3<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat3x3<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec3<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec3<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat3x3<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec3<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl
index 9f5ee9d..a6e0aca 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat3x3<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %u
     store %p, %4
     %5:ptr<private, vec3<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl
index 70a150d..b8d1318 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %u
-    store %s, %4
-    %5:ptr<storage, vec3<f16>, read_write> = access %s, 1i
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %7:vec3<f16> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f16>, read_write> = access %s, 1i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<storage, vec3<f16>, read_write> = access %s, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, vec3<f16>, read_write> = access %s, 1i
+    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %9:vec3<f16> = load %8
+    store %7, %9
+    %10:ptr<storage, vec3<f16>, read_write> = access %s, 1i
+    %11:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %12:vec3<f16> = load %11
+    %13:vec3<f16> = swizzle %12, zxy
+    store %10, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %s, 0i
+    %15:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %16:f16 = load_vector_element %15, 0i
+    store_vector_element %14, 1i, %16
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %19:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %20:vec3<f16> = access %value_param, 0u
+    store %19, %20
+    %21:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %22:vec3<f16> = access %value_param, 1u
+    store %21, %22
+    %23:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %24:vec3<f16> = access %value_param, 2u
+    store %23, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl
index 22c48c0..aef9a32 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat3x3<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat3x3<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %7:vec3<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat3x3<f16>(vec3<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat3x3<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
     %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %13:vec3<f16> = load %12
+    %14:vec3<f16> = swizzle %13, zxy
+    store %11, %14
+    %15:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index ee02b29..df56e12 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x3<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec3<f32>, read> = access %p_m, %9
-    %l_m:mat3x3<f32> = load %p_m
-    %l_m_i:vec3<f32> = load %p_m_i
+    %10:ptr<uniform, vec3<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec3<f32>, read> = let %10
+    %12:mat3x3<f32> = load %p_m
+    %l_m:mat3x3<f32> = let %12
+    %14:vec3<f32> = load %p_m_i
+    %l_m_i:vec3<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 0ec69d2c..1cf2551 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x3<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec3<f32>, read> = access %p_m, 1i
-    %l_m:mat3x3<f32> = load %p_m
-    %l_m_1:vec3<f32> = load %p_m_1
+    %9:ptr<uniform, vec3<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec3<f32>, read> = let %9
+    %11:mat3x3<f32> = load %p_m
+    %l_m:mat3x3<f32> = let %11
+    %13:vec3<f32> = load %p_m_1
+    %l_m_1:vec3<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
index b04e140..7a1127e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat3x3<f32> = load %u
-    %t:mat3x3<f32> = transpose %3
-    %5:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %6:vec3<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %9:vec3<f32> = load %8
-    %10:vec3<f32> = swizzle %9, zxy
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat3x3<f32> = transpose %3
+    %t:mat3x3<f32> = let %4
+    %6:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %7:vec3<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %11:vec3<f32> = load %10
+    %12:vec3<f32> = swizzle %11, zxy
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl
index cf7cd2b..4d57392 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat3x3<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat3x3<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec3<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec3<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat3x3<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec3<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl
index e25b41e..0b3147b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat3x3<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %u
     store %p, %4
     %5:ptr<private, vec3<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl
index 67b3a37..1e75702 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %u
-    store %s, %4
-    %5:ptr<storage, vec3<f32>, read_write> = access %s, 1i
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %7:vec3<f32> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f32>, read_write> = access %s, 1i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<storage, vec3<f32>, read_write> = access %s, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, vec3<f32>, read_write> = access %s, 1i
+    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %9:vec3<f32> = load %8
+    store %7, %9
+    %10:ptr<storage, vec3<f32>, read_write> = access %s, 1i
+    %11:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %12:vec3<f32> = load %11
+    %13:vec3<f32> = swizzle %12, zxy
+    store %10, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %s, 0i
+    %15:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %16:f32 = load_vector_element %15, 0i
+    store_vector_element %14, 1i, %16
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %19:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %20:vec3<f32> = access %value_param, 0u
+    store %19, %20
+    %21:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %22:vec3<f32> = access %value_param, 1u
+    store %21, %22
+    %23:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %24:vec3<f32> = access %value_param, 2u
+    store %23, %24
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
index b82634b..db86b8c 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat3x3<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat3x3<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %7:vec3<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat3x3<f32>(vec3<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat3x3<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec3<f32>, read> = access %u, 0i
     %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %13:vec3<f32> = load %12
+    %14:vec3<f32> = swizzle %13, zxy
+    store %11, %14
+    %15:ptr<workgroup, vec3<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index e0f32bf..98f0969 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x4<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec4<f16>, read> = access %p_m, %9
-    %l_m:mat3x4<f16> = load %p_m
-    %l_m_i:vec4<f16> = load %p_m_i
+    %10:ptr<uniform, vec4<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec4<f16>, read> = let %10
+    %12:mat3x4<f16> = load %p_m
+    %l_m:mat3x4<f16> = let %12
+    %14:vec4<f16> = load %p_m_i
+    %l_m_i:vec4<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index fce40e4..f7982ac 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x4<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
-    %l_m:mat3x4<f16> = load %p_m
-    %l_m_1:vec4<f16> = load %p_m_1
+    %9:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec4<f16>, read> = let %9
+    %11:mat3x4<f16> = load %p_m
+    %l_m:mat3x4<f16> = let %11
+    %13:vec4<f16> = load %p_m_1
+    %l_m_1:vec4<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.msl
index 49ff783..c4e57c6 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat3x4<f16> = load %u
-    %t:mat4x3<f16> = transpose %3
-    %5:ptr<uniform, vec4<f16>, read> = access %u, 1i
-    %6:vec4<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec4<f16>, read> = access %u, 0i
-    %9:vec4<f16> = load %8
-    %10:vec4<f16> = swizzle %9, ywxz
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat4x3<f16> = transpose %3
+    %t:mat4x3<f16> = let %4
+    %6:ptr<uniform, vec4<f16>, read> = access %u, 1i
+    %7:vec4<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i
+    %11:vec4<f16> = load %10
+    %12:vec4<f16> = swizzle %11, ywxz
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl
index 76b983b..e072db3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat3x4<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat3x4<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec4<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec4<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat3x4<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec4<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl
index c3ab1fa..c5c8d5e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat3x4<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %u
     store %p, %4
     %5:ptr<private, vec4<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl
index 5eede1d..ff20b61 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %u
     store %s, %4
     %5:ptr<storage, vec4<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl
index 9bc230d..6f09501 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat3x4<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat3x4<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i
-    %7:vec4<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat3x4<f16>(vec4<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat3x4<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec4<f16>, read> = access %u, 0i
     %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i
+    %13:vec4<f16> = load %12
+    %14:vec4<f16> = swizzle %13, ywxz
+    store %11, %14
+    %15:ptr<workgroup, vec4<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec4<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 4fe1ad2..7a51367 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x4<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec4<f32>, read> = access %p_m, %9
-    %l_m:mat3x4<f32> = load %p_m
-    %l_m_i:vec4<f32> = load %p_m_i
+    %10:ptr<uniform, vec4<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec4<f32>, read> = let %10
+    %12:mat3x4<f32> = load %p_m
+    %l_m:mat3x4<f32> = let %12
+    %14:vec4<f32> = load %p_m_i
+    %l_m_i:vec4<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index f99ccff..1677a78 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat3x4<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec4<f32>, read> = access %p_m, 1i
-    %l_m:mat3x4<f32> = load %p_m
-    %l_m_1:vec4<f32> = load %p_m_1
+    %9:ptr<uniform, vec4<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec4<f32>, read> = let %9
+    %11:mat3x4<f32> = load %p_m
+    %l_m:mat3x4<f32> = let %11
+    %13:vec4<f32> = load %p_m_1
+    %l_m_1:vec4<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
index 376d33f..e13ff87 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat3x4<f32> = load %u
-    %t:mat4x3<f32> = transpose %3
-    %5:ptr<uniform, vec4<f32>, read> = access %u, 1i
-    %6:vec4<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec4<f32>, read> = access %u, 0i
-    %9:vec4<f32> = load %8
-    %10:vec4<f32> = swizzle %9, ywxz
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat4x3<f32> = transpose %3
+    %t:mat4x3<f32> = let %4
+    %6:ptr<uniform, vec4<f32>, read> = access %u, 1i
+    %7:vec4<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i
+    %11:vec4<f32> = load %10
+    %12:vec4<f32> = swizzle %11, ywxz
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl
index 6611c8c..c29857f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat3x4<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat3x4<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec4<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec4<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat3x4<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec4<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl
index e50a043..27467a3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat3x4<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %u
     store %p, %4
     %5:ptr<private, vec4<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl
index 8231629..d41ec59 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %u
     store %s, %4
     %5:ptr<storage, vec4<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
index 49d958d..675d4d3 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat3x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat3x4<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat3x4<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i
-    %7:vec4<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat3x4<f32>(vec4<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat3x4<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec4<f32>, read> = access %u, 0i
     %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i
+    %13:vec4<f32> = load %12
+    %14:vec4<f32> = swizzle %13, ywxz
+    store %11, %14
+    %15:ptr<workgroup, vec4<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec4<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 286f7f6..869cf42 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x2<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec2<f16>, read> = access %p_m, %9
-    %l_m:mat4x2<f16> = load %p_m
-    %l_m_i:vec2<f16> = load %p_m_i
+    %10:ptr<uniform, vec2<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec2<f16>, read> = let %10
+    %12:mat4x2<f16> = load %p_m
+    %l_m:mat4x2<f16> = let %12
+    %14:vec2<f16> = load %p_m_i
+    %l_m_i:vec2<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
index b9711ae..fa9f2c4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x2<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec2<f16>, read> = access %p_m, 1i
-    %l_m:mat4x2<f16> = load %p_m
-    %l_m_1:vec2<f16> = load %p_m_1
+    %9:ptr<uniform, vec2<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec2<f16>, read> = let %9
+    %11:mat4x2<f16> = load %p_m
+    %l_m:mat4x2<f16> = let %11
+    %13:vec2<f16> = load %p_m_1
+    %l_m_1:vec2<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
index 25a50ce..bdb7c20 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat4x2<f16> = load %u
-    %t:mat2x4<f16> = transpose %3
-    %5:ptr<uniform, vec2<f16>, read> = access %u, 1i
-    %6:vec2<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec2<f16>, read> = access %u, 0i
-    %9:vec2<f16> = load %8
-    %10:vec2<f16> = swizzle %9, yx
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat2x4<f16> = transpose %3
+    %t:mat2x4<f16> = let %4
+    %6:ptr<uniform, vec2<f16>, read> = access %u, 1i
+    %7:vec2<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec2<f16>, read> = access %u, 0i
+    %11:vec2<f16> = load %10
+    %12:vec2<f16> = swizzle %11, yx
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl
index 6bc5e8a..90525fe 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat4x2<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat4x2<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec2<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec2<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat4x2<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec2<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl
index f04ceab..0e942db 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat4x2<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %u
     store %p, %4
     %5:ptr<private, vec2<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl
index 5c4c080..3797fed 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %u
     store %s, %4
     %5:ptr<storage, vec2<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
index a31eb1a..ced9ab1 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat4x2<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat4x2<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec2<f16>, read> = access %u, 0i
-    %7:vec2<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat4x2<f16>(vec2<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat4x2<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec2<f16>, read> = access %u, 0i
     %10:vec2<f16> = load %9
-    %11:vec2<f16> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec2<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec2<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec2<f16>, read> = access %u, 0i
+    %13:vec2<f16> = load %12
+    %14:vec2<f16> = swizzle %13, yx
+    store %11, %14
+    %15:ptr<workgroup, vec2<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec2<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5c5ba9b..0091daf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x2<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec2<f32>, read> = access %p_m, %9
-    %l_m:mat4x2<f32> = load %p_m
-    %l_m_i:vec2<f32> = load %p_m_i
+    %10:ptr<uniform, vec2<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec2<f32>, read> = let %10
+    %12:mat4x2<f32> = load %p_m
+    %l_m:mat4x2<f32> = let %12
+    %14:vec2<f32> = load %p_m_i
+    %l_m_i:vec2<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
index e42efb1..4f0b68b 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x2<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
-    %l_m:mat4x2<f32> = load %p_m
-    %l_m_1:vec2<f32> = load %p_m_1
+    %9:ptr<uniform, vec2<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec2<f32>, read> = let %9
+    %11:mat4x2<f32> = load %p_m
+    %l_m:mat4x2<f32> = let %11
+    %13:vec2<f32> = load %p_m_1
+    %l_m_1:vec2<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
index 070f0a1..585f2aa 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat4x2<f32> = load %u
-    %t:mat2x4<f32> = transpose %3
-    %5:ptr<uniform, vec2<f32>, read> = access %u, 1i
-    %6:vec2<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec2<f32>, read> = access %u, 0i
-    %9:vec2<f32> = load %8
-    %10:vec2<f32> = swizzle %9, yx
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat2x4<f32> = transpose %3
+    %t:mat2x4<f32> = let %4
+    %6:ptr<uniform, vec2<f32>, read> = access %u, 1i
+    %7:vec2<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec2<f32>, read> = access %u, 0i
+    %11:vec2<f32> = load %10
+    %12:vec2<f32> = swizzle %11, yx
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl
index 941364e..dc0d78f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat4x2<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat4x2<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec2<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec2<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat4x2<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec2<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl
index 506bb84..368cba9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat4x2<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %u
     store %p, %4
     %5:ptr<private, vec2<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl
index 3206af9..f190196 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %u
     store %s, %4
     %5:ptr<storage, vec2<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
index 3b495d6..ff6fa47 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x2_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat4x2<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat4x2<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec2<f32>, read> = access %u, 0i
-    %7:vec2<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat4x2<f32>(vec2<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat4x2<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec2<f32>, read> = access %u, 0i
     %10:vec2<f32> = load %9
-    %11:vec2<f32> = swizzle %10, yx
-    store %8, %11
-    %12:ptr<workgroup, vec2<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec2<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec2<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec2<f32>, read> = access %u, 0i
+    %13:vec2<f32> = load %12
+    %14:vec2<f32> = swizzle %13, yx
+    store %11, %14
+    %15:ptr<workgroup, vec2<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec2<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 312a211..482cb42 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x3<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec3<f16>, read> = access %p_m, %9
-    %l_m:mat4x3<f16> = load %p_m
-    %l_m_i:vec3<f16> = load %p_m_i
+    %10:ptr<uniform, vec3<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec3<f16>, read> = let %10
+    %12:mat4x3<f16> = load %p_m
+    %l_m:mat4x3<f16> = let %12
+    %14:vec3<f16> = load %p_m_i
+    %l_m_i:vec3<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
index e7685d8..5d31887 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x3<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec3<f16>, read> = access %p_m, 1i
-    %l_m:mat4x3<f16> = load %p_m
-    %l_m_1:vec3<f16> = load %p_m_1
+    %9:ptr<uniform, vec3<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec3<f16>, read> = let %9
+    %11:mat4x3<f16> = load %p_m
+    %l_m:mat4x3<f16> = let %11
+    %13:vec3<f16> = load %p_m_1
+    %l_m_1:vec3<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
index 61f7d76..d600629 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat4x3<f16> = load %u
-    %t:mat3x4<f16> = transpose %3
-    %5:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %6:vec3<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %9:vec3<f16> = load %8
-    %10:vec3<f16> = swizzle %9, zxy
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat3x4<f16> = transpose %3
+    %t:mat3x4<f16> = let %4
+    %6:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %7:vec3<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %11:vec3<f16> = load %10
+    %12:vec3<f16> = swizzle %11, zxy
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl
index f54edaf..fb0290a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat4x3<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat4x3<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec3<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec3<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat4x3<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec3<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl
index 61513da..6a01a6f 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat4x3<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %u
     store %p, %4
     %5:ptr<private, vec3<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl
index d7e305e..c327eb5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %u
-    store %s, %4
-    %5:ptr<storage, vec3<f16>, read_write> = access %s, 1i
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %7:vec3<f16> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f16>, read_write> = access %s, 1i
-    %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<storage, vec3<f16>, read_write> = access %s, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, vec3<f16>, read_write> = access %s, 1i
+    %8:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %9:vec3<f16> = load %8
+    store %7, %9
+    %10:ptr<storage, vec3<f16>, read_write> = access %s, 1i
+    %11:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %12:vec3<f16> = load %11
+    %13:vec3<f16> = swizzle %12, zxy
+    store %10, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %s, 0i
+    %15:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %16:f16 = load_vector_element %15, 0i
+    store_vector_element %14, 1i, %16
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %19:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %20:vec3<f16> = access %value_param, 0u
+    store %19, %20
+    %21:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %22:vec3<f16> = access %value_param, 1u
+    store %21, %22
+    %23:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %24:vec3<f16> = access %value_param, 2u
+    store %23, %24
+    %25:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %26:vec3<f16> = access %value_param, 3u
+    store %25, %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
index 735464c..4ec8615 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat4x3<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat4x3<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec3<f16>, read> = access %u, 0i
-    %7:vec3<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat4x3<f16>(vec3<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat4x3<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec3<f16>, read> = access %u, 0i
     %10:vec3<f16> = load %9
-    %11:vec3<f16> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec3<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec3<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec3<f16>, read> = access %u, 0i
+    %13:vec3<f16> = load %12
+    %14:vec3<f16> = swizzle %13, zxy
+    store %11, %14
+    %15:ptr<workgroup, vec3<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec3<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index cc38512..adf6d98 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x3<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec3<f32>, read> = access %p_m, %9
-    %l_m:mat4x3<f32> = load %p_m
-    %l_m_i:vec3<f32> = load %p_m_i
+    %10:ptr<uniform, vec3<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec3<f32>, read> = let %10
+    %12:mat4x3<f32> = load %p_m
+    %l_m:mat4x3<f32> = let %12
+    %14:vec3<f32> = load %p_m_i
+    %l_m_i:vec3<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 26c10bf..4c9b023 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x3<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec3<f32>, read> = access %p_m, 1i
-    %l_m:mat4x3<f32> = load %p_m
-    %l_m_1:vec3<f32> = load %p_m_1
+    %9:ptr<uniform, vec3<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec3<f32>, read> = let %9
+    %11:mat4x3<f32> = load %p_m
+    %l_m:mat4x3<f32> = let %11
+    %13:vec3<f32> = load %p_m_1
+    %l_m_1:vec3<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
index 8bfb8f2..45acf1a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat4x3<f32> = load %u
-    %t:mat3x4<f32> = transpose %3
-    %5:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %6:vec3<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %9:vec3<f32> = load %8
-    %10:vec3<f32> = swizzle %9, zxy
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat3x4<f32> = transpose %3
+    %t:mat3x4<f32> = let %4
+    %6:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %7:vec3<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %11:vec3<f32> = load %10
+    %12:vec3<f32> = swizzle %11, zxy
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl
index 99b9217..20ea079 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat4x3<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat4x3<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec3<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec3<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat4x3<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec3<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl
index 40b6eb1..ceedbe2 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat4x3<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %u
     store %p, %4
     %5:ptr<private, vec3<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl
index f3dfcaa..5c97be5 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_storage.wgsl.expected.ir.msl
@@ -1,27 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %u
-    store %s, %4
-    %5:ptr<storage, vec3<f32>, read_write> = access %s, 1i
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %7:vec3<f32> = load %6
-    store %5, %7
-    %8:ptr<storage, vec3<f32>, read_write> = access %s, 1i
-    %9:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<storage, vec3<f32>, read_write> = access %s, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    %5:void = call %tint_store_and_preserve_padding, %s, %4
+    %7:ptr<storage, vec3<f32>, read_write> = access %s, 1i
+    %8:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %9:vec3<f32> = load %8
+    store %7, %9
+    %10:ptr<storage, vec3<f32>, read_write> = access %s, 1i
+    %11:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %12:vec3<f32> = load %11
+    %13:vec3<f32> = swizzle %12, zxy
+    store %10, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %s, 0i
+    %15:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %16:f32 = load_vector_element %15, 0i
+    store_vector_element %14, 1i, %16
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %19:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %20:vec3<f32> = access %value_param, 0u
+    store %19, %20
+    %21:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %22:vec3<f32> = access %value_param, 1u
+    store %21, %22
+    %23:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %24:vec3<f32> = access %value_param, 2u
+    store %23, %24
+    %25:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %26:vec3<f32> = access %value_param, 3u
+    store %25, %26
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
index f61ad92..ded9db0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x3_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat4x3<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat4x3<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec3<f32>, read> = access %u, 0i
-    %7:vec3<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat4x3<f32>(vec3<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat4x3<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec3<f32>, read> = access %u, 0i
     %10:vec3<f32> = load %9
-    %11:vec3<f32> = swizzle %10, zxy
-    store %8, %11
-    %12:ptr<workgroup, vec3<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec3<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec3<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec3<f32>, read> = access %u, 0i
+    %13:vec3<f32> = load %12
+    %14:vec3<f32> = swizzle %13, zxy
+    store %11, %14
+    %15:ptr<workgroup, vec3<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec3<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
index b216cd2..803671e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x4<f16>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec4<f16>, read> = access %p_m, %9
-    %l_m:mat4x4<f16> = load %p_m
-    %l_m_i:vec4<f16> = load %p_m_i
+    %10:ptr<uniform, vec4<f16>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec4<f16>, read> = let %10
+    %12:mat4x4<f16> = load %p_m
+    %l_m:mat4x4<f16> = let %12
+    %14:vec4<f16> = load %p_m_i
+    %l_m_i:vec4<f16> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
index e6a9990..9576a44 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x4<f16>, read> = let %m
-    %p_m_1:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
-    %l_m:mat4x4<f16> = load %p_m
-    %l_m_1:vec4<f16> = load %p_m_1
+    %9:ptr<uniform, vec4<f16>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec4<f16>, read> = let %9
+    %11:mat4x4<f16> = load %p_m
+    %l_m:mat4x4<f16> = let %11
+    %13:vec4<f16> = load %p_m_1
+    %l_m_1:vec4<f16> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
index 88f8c8c..933a9d0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat4x4<f16> = load %u
-    %t:mat4x4<f16> = transpose %3
-    %5:ptr<uniform, vec4<f16>, read> = access %u, 1i
-    %6:vec4<f16> = load %5
-    %l:f16 = length %6
-    %8:ptr<uniform, vec4<f16>, read> = access %u, 0i
-    %9:vec4<f16> = load %8
-    %10:vec4<f16> = swizzle %9, ywxz
-    %11:f16 = access %10, 0u
-    %a:f16 = abs %11
+    %4:mat4x4<f16> = transpose %3
+    %t:mat4x4<f16> = let %4
+    %6:ptr<uniform, vec4<f16>, read> = access %u, 1i
+    %7:vec4<f16> = load %6
+    %8:f16 = length %7
+    %l:f16 = let %8
+    %10:ptr<uniform, vec4<f16>, read> = access %u, 0i
+    %11:vec4<f16> = load %10
+    %12:vec4<f16> = swizzle %11, ywxz
+    %13:f16 = access %12, 0u
+    %14:f16 = abs %13
+    %a:f16 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl
index 0ff46b3..03b38f5d 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat4x4<f16>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat4x4<f16>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec4<f16>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec4<f16>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f16):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f16):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat4x4<f16> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec4<f16>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl
index 014a389..81b005e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat4x4<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %u
     store %p, %4
     %5:ptr<private, vec4<f16>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl
index 00e56b6..8bf94bf 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %u
     store %s, %4
     %5:ptr<storage, vec4<f16>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
index 4661ed0..68cc6fd 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f16/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat4x4<f16>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat4x4<f16> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec4<f16>, read> = access %u, 0i
-    %7:vec4<f16> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat4x4<f16>(vec4<f16>(0.0h))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat4x4<f16> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
     %9:ptr<uniform, vec4<f16>, read> = access %u, 0i
     %10:vec4<f16> = load %9
-    %11:vec4<f16> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f16>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec4<f16>, read> = access %u, 1i
-    %14:f16 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec4<f16>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec4<f16>, read> = access %u, 0i
+    %13:vec4<f16> = load %12
+    %14:vec4<f16> = swizzle %13, ywxz
+    store %11, %14
+    %15:ptr<workgroup, vec4<f16>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec4<f16>, read> = access %u, 1i
+    %17:f16 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
index 5430b17..3a35fc9 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/dynamic_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,13 +14,16 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x4<f32>, read> = let %m
     %9:i32 = call %i
-    %p_m_i:ptr<uniform, vec4<f32>, read> = access %p_m, %9
-    %l_m:mat4x4<f32> = load %p_m
-    %l_m_i:vec4<f32> = load %p_m_i
+    %10:ptr<uniform, vec4<f32>, read> = access %p_m, %9
+    %p_m_i:ptr<uniform, vec4<f32>, read> = let %10
+    %12:mat4x4<f32> = load %p_m
+    %l_m:mat4x4<f32> = let %12
+    %14:vec4<f32> = load %p_m_i
+    %l_m_i:vec4<f32> = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
index 011471b..668c83e 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/static_index_via_ptr.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
   %counter:ptr<private, i32, read_write> = var, 0i
 }
 
-%i = func():i32 -> %b2 {
-  %b2 = block {
+%i = func():i32 {
+  $B2: {
     %4:i32 = load %counter
     %5:i32 = add %4, 1i
     store %counter, %5
@@ -14,12 +14,15 @@
     ret %6
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %p_m:ptr<uniform, mat4x4<f32>, read> = let %m
-    %p_m_1:ptr<uniform, vec4<f32>, read> = access %p_m, 1i
-    %l_m:mat4x4<f32> = load %p_m
-    %l_m_1:vec4<f32> = load %p_m_1
+    %9:ptr<uniform, vec4<f32>, read> = access %p_m, 1i
+    %p_m_1:ptr<uniform, vec4<f32>, read> = let %9
+    %11:mat4x4<f32> = load %p_m
+    %l_m:mat4x4<f32> = let %11
+    %13:vec4<f32> = load %p_m_1
+    %l_m_1:vec4<f32> = let %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
index 1adcdb6..89826de 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_builtin.wgsl.expected.ir.msl
@@ -1,21 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:mat4x4<f32> = load %u
-    %t:mat4x4<f32> = transpose %3
-    %5:ptr<uniform, vec4<f32>, read> = access %u, 1i
-    %6:vec4<f32> = load %5
-    %l:f32 = length %6
-    %8:ptr<uniform, vec4<f32>, read> = access %u, 0i
-    %9:vec4<f32> = load %8
-    %10:vec4<f32> = swizzle %9, ywxz
-    %11:f32 = access %10, 0u
-    %a:f32 = abs %11
+    %4:mat4x4<f32> = transpose %3
+    %t:mat4x4<f32> = let %4
+    %6:ptr<uniform, vec4<f32>, read> = access %u, 1i
+    %7:vec4<f32> = load %6
+    %8:f32 = length %7
+    %l:f32 = let %8
+    %10:ptr<uniform, vec4<f32>, read> = access %u, 0i
+    %11:vec4<f32> = load %10
+    %12:vec4<f32> = swizzle %11, ywxz
+    %13:f32 = access %12, 0u
+    %14:f32 = abs %13
+    %a:f32 = let %14
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl
index 8c2ae43..8898af0 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_fn.wgsl.expected.ir.msl
@@ -1,26 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%a = func(%m:mat4x4<f32>):void -> %b2 {
-  %b2 = block {
+%a = func(%m:mat4x4<f32>):void {
+  $B2: {
     ret
   }
 }
-%b = func(%v:vec4<f32>):void -> %b3 {
-  %b3 = block {
+%b = func(%v:vec4<f32>):void {
+  $B3: {
     ret
   }
 }
-%c = func(%f:f32):void -> %b4 {
-  %b4 = block {
+%c = func(%f:f32):void {
+  $B4: {
     ret
   }
 }
-%f_1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {  # %f_1: 'f'
-  %b5 = block {
+%f_1 = @compute @workgroup_size(1, 1, 1) func():void {  # %f_1: 'f'
+  $B5: {
     %9:mat4x4<f32> = load %u
     %10:void = call %a, %9
     %11:ptr<uniform, vec4<f32>, read> = access %u, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl
index 39f0e8d..5419a0a 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_private.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
   %p:ptr<private, mat4x4<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %u
     store %p, %4
     %5:ptr<private, vec4<f32>, read_write> = access %p, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl
index 1245fdb..2046512 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_storage.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
   %s:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %u
     store %s, %4
     %5:ptr<storage, vec4<f32>, read_write> = access %s, 1i
diff --git a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
index a89e85c..9818ee4 100644
--- a/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/std140/unnested/mat4x4_f32/to_workgroup.wgsl.expected.ir.msl
@@ -1,27 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
   %w:ptr<workgroup, mat4x4<f32>, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:mat4x4<f32> = load %u
-    store %w, %4
-    %5:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
-    %6:ptr<uniform, vec4<f32>, read> = access %u, 0i
-    %7:vec4<f32> = load %6
-    store %5, %7
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %5:bool = eq %tint_local_index, 0u
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %w, mat4x4<f32>(vec4<f32>(0.0f))
+        exit_if  # if_1
+      }
+    }
+    %6:void = msl.threadgroup_barrier 4u
+    %7:mat4x4<f32> = load %u
+    store %w, %7
     %8:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
     %9:ptr<uniform, vec4<f32>, read> = access %u, 0i
     %10:vec4<f32> = load %9
-    %11:vec4<f32> = swizzle %10, ywxz
-    store %8, %11
-    %12:ptr<workgroup, vec4<f32>, read_write> = access %w, 0i
-    %13:ptr<uniform, vec4<f32>, read> = access %u, 1i
-    %14:f32 = load_vector_element %13, 0i
-    store_vector_element %12, 1i, %14
+    store %8, %10
+    %11:ptr<workgroup, vec4<f32>, read_write> = access %w, 1i
+    %12:ptr<uniform, vec4<f32>, read> = access %u, 0i
+    %13:vec4<f32> = load %12
+    %14:vec4<f32> = swizzle %13, ywxz
+    store %11, %14
+    %15:ptr<workgroup, vec4<f32>, read_write> = access %w, 0i
+    %16:ptr<uniform, vec4<f32>, read> = access %u, 1i
+    %17:f32 = load_vector_element %16, 0i
+    store_vector_element %15, 1i, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl
index a644025..23ca7a8 100644
--- a/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, f16, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f16, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:f16 = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:f16 = load %u
+    %x:f16 = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl
index bac63fc..b0b6bdd 100644
--- a/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, f32, read> = var @binding_point(0, 0)
+  %s:ptr<storage, f32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:f32 = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:f32 = load %u
+    %x:f32 = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl
index 14ca4df..f8c3a23 100644
--- a/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/i32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, i32, read> = var @binding_point(0, 0)
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:i32 = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:i32 = load %u
+    %x:i32 = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl
index cd86fd3..e500eb8 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat2x2<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat2x2<f16> = load %u
+    %x:mat2x2<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl
index fc906ce..6f523cc 100644
--- a/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat2x2<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat2x2<f32> = load %u
+    %x:mat2x2<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl
index 0e6a340..3394820 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x3_f16.wgsl.expected.ir.msl
@@ -1,12 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat2x3<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat2x3<f16> = load %u
+    %x:mat2x3<f16> = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl
index adf0fed..7067254 100644
--- a/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x3_f32.wgsl.expected.ir.msl
@@ -1,12 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x3<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat2x3<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat2x3<f32> = load %u
+    %x:mat2x3<f32> = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl
index 70eebd1..9d37062 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat2x4<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat2x4<f16> = load %u
+    %x:mat2x4<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl
index 0b526cb..f0e779e 100644
--- a/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat2x4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat2x4<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat2x4<f32> = load %u
+    %x:mat2x4<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl
index 83a1b11..abe10dd 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat3x2<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat3x2<f16> = load %u
+    %x:mat3x2<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl
index 2482e7a..670f15b 100644
--- a/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x2<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat3x2<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat3x2<f32> = load %u
+    %x:mat3x2<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl
index f8d04f8..be8a99a 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x3_f16.wgsl.expected.ir.msl
@@ -1,12 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat3x3<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat3x3<f16> = load %u
+    %x:mat3x3<f16> = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl
index 0be5b17..200b1fa 100644
--- a/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x3_f32.wgsl.expected.ir.msl
@@ -1,12 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x3<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat3x3<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat3x3<f32> = load %u
+    %x:mat3x3<f32> = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl
index 54e9cfe..d6c94a1 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat3x4<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat3x4<f16> = load %u
+    %x:mat3x4<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl
index 45fd1c6..2ff19a9 100644
--- a/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat3x4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat3x4<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat3x4<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat3x4<f32> = load %u
+    %x:mat3x4<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl
index 3411dbd..4d67658 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat4x2<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat4x2<f16> = load %u
+    %x:mat4x2<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl
index 034bfa4..7c78a9d 100644
--- a/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x2<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat4x2<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat4x2<f32> = load %u
+    %x:mat4x2<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl
index 3c0c743..431a296 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x3_f16.wgsl.expected.ir.msl
@@ -1,12 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat4x3<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat4x3<f16> = load %u
+    %x:mat4x3<f16> = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %17:vec3<f16> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl
index 53a6da8..e427638 100644
--- a/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x3_f32.wgsl.expected.ir.msl
@@ -1,12 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x3<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat4x3<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat4x3<f32> = load %u
+    %x:mat4x3<f32> = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %17:vec3<f32> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl
index c879469..b8d72f2 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat4x4<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat4x4<f16> = load %u
+    %x:mat4x4<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl
index e384e59..56beb0c 100644
--- a/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/mat4x4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, mat4x4<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:mat4x4<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:mat4x4<f32> = load %u
+    %x:mat4x4<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl
index b567e6c..4a7cccb 100644
--- a/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/struct_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(8) {
   scalar_f16:f16 @offset(0)
   vec3_f16:vec3<f16> @offset(8)
   mat2x4_f16:mat2x4<f16> @offset(16)
@@ -10,13 +10,38 @@
   inner:Inner @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:S = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:S = load %u
+    %x:S = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, S, read_write>, %value_param:S):void {
+  $B3: {
+    %10:ptr<storage, Inner, read_write> = access %target, 0u
+    %11:Inner = access %value_param, 0u
+    %12:void = call %tint_store_and_preserve_padding_1, %10, %11
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, Inner, read_write>, %value_param_1:Inner):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %16:ptr<storage, f16, read_write> = access %target_1, 0u
+    %17:f16 = access %value_param_1, 0u
+    store %16, %17
+    %18:ptr<storage, vec3<f16>, read_write> = access %target_1, 1u
+    %19:vec3<f16> = access %value_param_1, 1u
+    store %18, %19
+    %20:ptr<storage, mat2x4<f16>, read_write> = access %target_1, 2u
+    %21:mat2x4<f16> = access %value_param_1, 2u
+    store %20, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl
index 9be6cf2..fdc49bb 100644
--- a/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/struct_f32.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Inner = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Inner = struct @align(16) {
   scalar_f32:f32 @offset(0)
   vec3_f32:vec3<f32> @offset(16)
   mat2x4_f32:mat2x4<f32> @offset(32)
@@ -10,13 +10,38 @@
   inner:Inner @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, S, read> = var @binding_point(0, 0)
+  %s:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:S = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:S = load %u
+    %x:S = let %4
+    %6:void = call %tint_store_and_preserve_padding, %s, %x
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, S, read_write>, %value_param:S):void {
+  $B3: {
+    %10:ptr<storage, Inner, read_write> = access %target, 0u
+    %11:Inner = access %value_param, 0u
+    %12:void = call %tint_store_and_preserve_padding_1, %10, %11
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, Inner, read_write>, %value_param_1:Inner):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B4: {
+    %16:ptr<storage, f32, read_write> = access %target_1, 0u
+    %17:f32 = access %value_param_1, 0u
+    store %16, %17
+    %18:ptr<storage, vec3<f32>, read_write> = access %target_1, 1u
+    %19:vec3<f32> = access %value_param_1, 1u
+    store %18, %19
+    %20:ptr<storage, mat2x4<f32>, read_write> = access %target_1, 2u
+    %21:mat2x4<f32> = access %value_param_1, 2u
+    store %20, %21
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl
index 8dc1f0d..f81df8c 100644
--- a/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/u32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, u32, read> = var @binding_point(0, 0)
+  %s:ptr<storage, u32, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:u32 = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:u32 = load %u
+    %x:u32 = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl
index a908f8d..c058c67 100644
--- a/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec2<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec2<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec2<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec2<f16> = load %u
+    %x:vec2<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl
index c5bcd69..d8275c8 100644
--- a/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec2<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec2<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec2<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec2<f32> = load %u
+    %x:vec2<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl
index 4506737..c033670 100644
--- a/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_i32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec2<i32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec2<i32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec2<i32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec2<i32> = load %u
+    %x:vec2<i32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl
index dc2f477..c5e6856 100644
--- a/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec2_u32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec2<u32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec2<u32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec2<u32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec2<u32> = load %u
+    %x:vec2<u32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl
index 52474cd..e2ee911 100644
--- a/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec3<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec3<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec3<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec3<f16> = load %u
+    %x:vec3<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl
index 28ba54f..480b084 100644
--- a/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec3<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec3<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec3<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec3<f32> = load %u
+    %x:vec3<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl
index 8da11b1..242cae3 100644
--- a/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_i32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec3<i32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec3<i32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec3<i32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec3<i32> = load %u
+    %x:vec3<i32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl
index 509a8c0..18b6c5e 100644
--- a/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec3_u32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec3<u32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec3<u32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec3<u32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec3<u32> = load %u
+    %x:vec3<u32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl
index c44790d..f73d656 100644
--- a/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_f16.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec4<f16>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec4<f16>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec4<f16> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec4<f16> = load %u
+    %x:vec4<f16> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl
index 2f461bd..df46933 100644
--- a/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_f32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec4<f32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec4<f32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec4<f32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec4<f32> = load %u
+    %x:vec4<f32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl
index 808e2fd..3b61b9f 100644
--- a/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_i32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec4<i32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec4<i32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec4<i32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec4<i32> = load %u
+    %x:vec4<i32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl
index 9b7f573..b7c1bf2 100644
--- a/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl
+++ b/test/tint/buffer/uniform/types/vec4_u32.wgsl.expected.ir.msl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, vec4<u32>, read> = var @binding_point(0, 0)
+  %s:ptr<storage, vec4<u32>, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %x:vec4<u32> = load %u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:vec4<u32> = load %u
+    %x:vec4<u32> = let %4
+    store %s, %x
     ret
   }
 }
diff --git a/test/tint/bug/chromium/1251009.wgsl.expected.ir.msl b/test/tint/bug/chromium/1251009.wgsl.expected.ir.msl
index 28251dc..dd28836 100644
--- a/test/tint/bug/chromium/1251009.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1251009.wgsl.expected.ir.msl
@@ -1,6 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexInputs0 = struct @align(4) {
+  vertex_index:u32 @offset(0), @builtin(vertex_index)
+  loc0:i32 @offset(4), @location(0)
+}
+
+VertexInputs1 = struct @align(16) {
+  loc1:u32 @offset(0), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+}
+
+%tint_symbol = @vertex func(%inputs0:VertexInputs0, %loc1:u32 [@location(1)], %instance_index:u32 [@instance_index], %inputs1:VertexInputs1):vec4<f32> [@position] {
+  $B1: {
+    %6:u32 = access %inputs0, 0u
+    %7:u32 = add %6, %instance_index
+    %foo:u32 = let %7
+    ret vec4<f32>(0.0f)
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.ir.msl b/test/tint/bug/chromium/1273230.wgsl.expected.ir.msl
index 1053e3b..74faf92 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(16) {
   numTriangles:u32 @offset(0)
   gridSize:u32 @offset(4)
   puuuuuuuuuuuuuuuuad1:u32 @offset(8)
@@ -40,7 +40,7 @@
   value_f32_3:f32 @offset(44)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 0)
   %indices:ptr<storage, U32s, read_write> = var @binding_point(0, 10)
   %positions:ptr<storage, F32s, read_write> = var @binding_point(0, 11)
@@ -49,13 +49,13 @@
   %dbg:ptr<storage, Dbg, read_write> = var @binding_point(0, 50)
 }
 
-%marg8uintin = func():void -> %b2 {
-  %b2 = block {
+%marg8uintin = func():void {
+  $B2: {
     ret
   }
 }
-%toVoxelPos = func(%position:vec3<f32>):vec3<f32> -> %b3 {
-  %b3 = block {
+%toVoxelPos = func(%position:vec3<f32>):vec3<f32> {
+  $B3: {
     %10:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
     %11:f32 = load_vector_element %10, 0u
     %12:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
@@ -120,147 +120,176 @@
     ret %70
   }
 }
-%toIndex1D = func(%gridSize_1:u32, %voxelPos:vec3<f32>):u32 -> %b4 {  # %gridSize_1: 'gridSize'
-  %b4 = block {
-    %74:vec3<u32> = convert %voxelPos
+%toIndex1D = func(%gridSize_1:u32, %voxelPos:vec3<f32>):u32 {  # %gridSize_1: 'gridSize'
+  $B4: {
+    %74:vec3<u32> = call %tint_v3f32_to_v3u32, %voxelPos
     %icoord:ptr<function, vec3<u32>, read_write> = var, %74
-    %76:u32 = load_vector_element %icoord, 0u
-    %77:u32 = load_vector_element %icoord, 1u
-    %78:u32 = mul %gridSize_1, %77
-    %79:u32 = add %76, %78
-    %80:u32 = mul %gridSize_1, %gridSize_1
-    %81:u32 = load_vector_element %icoord, 2u
-    %82:u32 = mul %80, %81
-    %83:u32 = add %79, %82
-    ret %83
+    %77:u32 = load_vector_element %icoord, 0u
+    %78:u32 = load_vector_element %icoord, 1u
+    %79:u32 = mul %gridSize_1, %78
+    %80:u32 = add %77, %79
+    %81:u32 = mul %gridSize_1, %gridSize_1
+    %82:u32 = load_vector_element %icoord, 2u
+    %83:u32 = mul %81, %82
+    %84:u32 = add %80, %83
+    ret %84
   }
 }
-%toIndex4D = func(%gridSize_2:u32, %index:u32):vec3<u32> -> %b5 {  # %gridSize_2: 'gridSize'
-  %b5 = block {
-    %87:u32 = mul %index, %index
-    %88:u32 = div %gridSize_2, %87
-    %z:ptr<function, u32, read_write> = var, %88
-    %90:u32 = mul %gridSize_2, %gridSize_2
-    %91:u32 = load %z
-    %92:u32 = mul %90, %91
-    %93:u32 = sub %gridSize_2, %92
-    %94:u32 = div %93, %gridSize_2
-    %y:ptr<function, u32, read_write> = var, %94
-    %96:u32 = mod %index, %gridSize_2
-    %x:ptr<function, u32, read_write> = var, %96
-    %98:u32 = load %z
-    %99:u32 = load %y
-    %100:u32 = load %y
-    %101:vec3<u32> = construct %98, %99, %100
-    ret %101
+%toIndex4D = func(%gridSize_2:u32, %index:u32):vec3<u32> {  # %gridSize_2: 'gridSize'
+  $B5: {
+    %88:u32 = mul %index, %index
+    %89:u32 = call %tint_div_u32, %gridSize_2, %88
+    %z:ptr<function, u32, read_write> = var, %89
+    %92:u32 = mul %gridSize_2, %gridSize_2
+    %93:u32 = load %z
+    %94:u32 = mul %92, %93
+    %95:u32 = sub %gridSize_2, %94
+    %96:u32 = call %tint_div_u32, %95, %gridSize_2
+    %y:ptr<function, u32, read_write> = var, %96
+    %98:u32 = call %tint_mod_u32, %index, %gridSize_2
+    %x:ptr<function, u32, read_write> = var, %98
+    %101:u32 = load %z
+    %102:u32 = load %y
+    %103:u32 = load %y
+    %104:vec3<u32> = construct %101, %102, %103
+    ret %104
   }
 }
-%loadPosition = func(%vertexIndex:u32):vec3<f32> -> %b6 {
-  %b6 = block {
-    %104:u32 = mul 3u, %vertexIndex
-    %105:u32 = add %104, 0u
-    %106:ptr<storage, f32, read_write> = access %positions, 0u, %105
-    %107:f32 = load %106
-    %108:u32 = mul 3u, %vertexIndex
-    %109:u32 = add %108, 1u
-    %110:ptr<storage, f32, read_write> = access %positions, 0u, %109
-    %111:f32 = load %110
-    %112:u32 = mul 3u, %vertexIndex
-    %113:u32 = add %112, 2u
-    %114:ptr<storage, f32, read_write> = access %positions, 0u, %113
-    %115:f32 = load %114
-    %116:vec3<f32> = construct %107, %111, %115
-    %position_1:ptr<function, vec3<f32>, read_write> = var, %116  # %position_1: 'position'
-    %118:vec3<f32> = load %position_1
-    ret %118
+%loadPosition = func(%vertexIndex:u32):vec3<f32> {
+  $B6: {
+    %107:u32 = mul 3u, %vertexIndex
+    %108:u32 = add %107, 0u
+    %109:ptr<storage, f32, read_write> = access %positions, 0u, %108
+    %110:f32 = load %109
+    %111:u32 = mul 3u, %vertexIndex
+    %112:u32 = add %111, 1u
+    %113:ptr<storage, f32, read_write> = access %positions, 0u, %112
+    %114:f32 = load %113
+    %115:u32 = mul 3u, %vertexIndex
+    %116:u32 = add %115, 2u
+    %117:ptr<storage, f32, read_write> = access %positions, 0u, %116
+    %118:f32 = load %117
+    %119:vec3<f32> = construct %110, %114, %118
+    %position_1:ptr<function, vec3<f32>, read_write> = var, %119  # %position_1: 'position'
+    %121:vec3<f32> = load %position_1
+    ret %121
   }
 }
-%doIgnore = func():void -> %b7 {
-  %b7 = block {
-    %120:ptr<uniform, u32, read> = access %uniforms, 0u
-    %121:u32 = load %120
-    %g43:ptr<function, u32, read_write> = var, %121
-    %123:ptr<storage, u32, read_write> = access %dbg, 5u
+%doIgnore = func():void {
+  $B7: {
+    %123:ptr<uniform, u32, read> = access %uniforms, 0u
     %124:u32 = load %123
-    %kj6:ptr<function, u32, read_write> = var, %124
-    %126:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, 0i
-    %127:u32 = atomicLoad %126
-    %b53:ptr<function, u32, read_write> = var, %127
-    %129:ptr<storage, u32, read_write> = access %indices, 0u, 0i
-    %130:u32 = load %129
-    %rwg:ptr<function, u32, read_write> = var, %130
-    %132:ptr<storage, f32, read_write> = access %positions, 0u, 0i
-    %133:f32 = load %132
-    %rb5:ptr<function, f32, read_write> = var, %133
-    %135:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, 0i
-    %136:i32 = atomicLoad %135
-    %g55:ptr<function, i32, read_write> = var, %136
+    %g43:ptr<function, u32, read_write> = var, %124
+    %126:ptr<storage, u32, read_write> = access %dbg, 5u
+    %127:u32 = load %126
+    %kj6:ptr<function, u32, read_write> = var, %127
+    %129:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, 0i
+    %130:u32 = atomicLoad %129
+    %b53:ptr<function, u32, read_write> = var, %130
+    %132:ptr<storage, u32, read_write> = access %indices, 0u, 0i
+    %133:u32 = load %132
+    %rwg:ptr<function, u32, read_write> = var, %133
+    %135:ptr<storage, f32, read_write> = access %positions, 0u, 0i
+    %136:f32 = load %135
+    %rb5:ptr<function, f32, read_write> = var, %136
+    %138:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, 0i
+    %139:i32 = atomicLoad %138
+    %g55:ptr<function, i32, read_write> = var, %139
     ret
   }
 }
-%main_count = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b8 {
-  %b8 = block {
-    %140:u32 = access %GlobalInvocationID, 0u
-    %triangleIndex:ptr<function, u32, read_write> = var, %140
-    %142:u32 = load %triangleIndex
-    %143:ptr<uniform, u32, read> = access %uniforms, 0u
-    %144:u32 = load %143
-    %145:bool = gte %142, %144
-    if %145 [t: %b9] {  # if_1
-      %b9 = block {  # true
+%main_count = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B8: {
+    %143:u32 = access %GlobalInvocationID, 0u
+    %triangleIndex:ptr<function, u32, read_write> = var, %143
+    %145:u32 = load %triangleIndex
+    %146:ptr<uniform, u32, read> = access %uniforms, 0u
+    %147:u32 = load %146
+    %148:bool = gte %145, %147
+    if %148 [t: $B9] {  # if_1
+      $B9: {  # true
         ret
       }
     }
-    %146:void = call %doIgnore
-    %147:u32 = load %triangleIndex
-    %148:u32 = mul 3u, %147
-    %149:u32 = add %148, 0u
-    %150:ptr<storage, u32, read_write> = access %indices, 0u, %149
-    %151:u32 = load %150
-    %i0:ptr<function, u32, read_write> = var, %151
-    %153:u32 = load %i0
-    %154:u32 = mul 3u, %153
-    %155:u32 = add %154, 1u
-    %156:ptr<storage, u32, read_write> = access %indices, 0u, %155
-    %157:u32 = load %156
-    %i1:ptr<function, u32, read_write> = var, %157
-    %159:u32 = load %i0
-    %160:u32 = mul 3u, %159
-    %161:u32 = add %160, 2u
-    %162:ptr<storage, u32, read_write> = access %indices, 0u, %161
-    %163:u32 = load %162
-    %i2:ptr<function, u32, read_write> = var, %163
-    %165:u32 = load %i0
-    %166:vec3<f32> = call %loadPosition, %165
-    %p0:ptr<function, vec3<f32>, read_write> = var, %166
+    %149:void = call %doIgnore
+    %150:u32 = load %triangleIndex
+    %151:u32 = mul 3u, %150
+    %152:u32 = add %151, 0u
+    %153:ptr<storage, u32, read_write> = access %indices, 0u, %152
+    %154:u32 = load %153
+    %i0:ptr<function, u32, read_write> = var, %154
+    %156:u32 = load %i0
+    %157:u32 = mul 3u, %156
+    %158:u32 = add %157, 1u
+    %159:ptr<storage, u32, read_write> = access %indices, 0u, %158
+    %160:u32 = load %159
+    %i1:ptr<function, u32, read_write> = var, %160
+    %162:u32 = load %i0
+    %163:u32 = mul 3u, %162
+    %164:u32 = add %163, 2u
+    %165:ptr<storage, u32, read_write> = access %indices, 0u, %164
+    %166:u32 = load %165
+    %i2:ptr<function, u32, read_write> = var, %166
     %168:u32 = load %i0
     %169:vec3<f32> = call %loadPosition, %168
-    %p1:ptr<function, vec3<f32>, read_write> = var, %169
-    %171:u32 = load %i2
+    %p0:ptr<function, vec3<f32>, read_write> = var, %169
+    %171:u32 = load %i0
     %172:vec3<f32> = call %loadPosition, %171
-    %p2:ptr<function, vec3<f32>, read_write> = var, %172
-    %174:vec3<f32> = load %p0
-    %175:vec3<f32> = load %p2
-    %176:vec3<f32> = add %174, %175
-    %177:vec3<f32> = load %p1
-    %178:vec3<f32> = add %176, %177
-    %179:vec3<f32> = div %178, 3.0f
-    %center:ptr<function, vec3<f32>, read_write> = var, %179
-    %181:vec3<f32> = load %p1
-    %182:vec3<f32> = call %toVoxelPos, %181
-    %voxelPos_1:ptr<function, vec3<f32>, read_write> = var, %182  # %voxelPos_1: 'voxelPos'
-    %184:ptr<uniform, u32, read> = access %uniforms, 1u
-    %185:u32 = load %184
-    %186:vec3<f32> = load %p0
-    %187:u32 = call %toIndex1D, %185, %186
-    %lIndex:ptr<function, u32, read_write> = var, %187
-    %189:u32 = load %i1
-    %190:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %189
-    %191:i32 = atomicAdd %190, 1i
-    %triangleOffset:ptr<function, i32, read_write> = var, %191
+    %p1:ptr<function, vec3<f32>, read_write> = var, %172
+    %174:u32 = load %i2
+    %175:vec3<f32> = call %loadPosition, %174
+    %p2:ptr<function, vec3<f32>, read_write> = var, %175
+    %177:vec3<f32> = load %p0
+    %178:vec3<f32> = load %p2
+    %179:vec3<f32> = add %177, %178
+    %180:vec3<f32> = load %p1
+    %181:vec3<f32> = add %179, %180
+    %182:vec3<f32> = div %181, 3.0f
+    %center:ptr<function, vec3<f32>, read_write> = var, %182
+    %184:vec3<f32> = load %p1
+    %185:vec3<f32> = call %toVoxelPos, %184
+    %voxelPos_1:ptr<function, vec3<f32>, read_write> = var, %185  # %voxelPos_1: 'voxelPos'
+    %187:ptr<uniform, u32, read> = access %uniforms, 1u
+    %188:u32 = load %187
+    %189:vec3<f32> = load %p0
+    %190:u32 = call %toIndex1D, %188, %189
+    %lIndex:ptr<function, u32, read_write> = var, %190
+    %192:u32 = load %i1
+    %193:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %192
+    %194:i32 = atomicAdd %193, 1i
+    %triangleOffset:ptr<function, i32, read_write> = var, %194
     ret
   }
 }
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B10: {
+    %198:bool = eq %rhs, 0u
+    %199:u32 = select %rhs, 1u, %198
+    %200:u32 = div %lhs, %199
+    ret %200
+  }
+}
+%tint_mod_u32 = func(%lhs_1:u32, %rhs_1:u32):u32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B11: {
+    %203:bool = eq %rhs_1, 0u
+    %204:u32 = select %rhs_1, 1u, %203
+    %205:u32 = let %204
+    %206:u32 = div %lhs_1, %205
+    %207:u32 = mul %206, %205
+    %208:u32 = sub %lhs_1, %207
+    ret %208
+  }
+}
+%tint_v3f32_to_v3u32 = func(%value:vec3<f32>):vec3<u32> {
+  $B12: {
+    %210:vec3<u32> = convert %value
+    %211:vec3<bool> = gte %value, vec3<f32>(0.0f)
+    %212:vec3<u32> = select vec3<u32>(0u), %210, %211
+    %213:vec3<bool> = lte %value, vec3<f32>(4294967040.0f)
+    %214:vec3<u32> = select vec3<u32>(4294967295u), %212, %213
+    ret %214
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/chromium/1290107.wgsl.expected.ir.msl b/test/tint/bug/chromium/1290107.wgsl.expected.ir.msl
index f262bf6..d318171 100644
--- a/test/tint/bug/chromium/1290107.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1290107.wgsl.expected.ir.msl
@@ -1,16 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   f:f32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %arr:ptr<storage, array<S>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %len:u32 = arrayLength %arr
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:u32 = arrayLength %arr
+    %len:u32 = let %3
     ret
   }
 }
diff --git a/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl b/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl
index d009c59..78c346a 100644
--- a/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool o = true;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool o = true;
+            ^
+
diff --git a/test/tint/bug/chromium/1350147.wgsl.expected.ir.msl b/test/tint/bug/chromium/1350147.wgsl.expected.ir.msl
index dba5f88..d1dd16d 100644
--- a/test/tint/bug/chromium/1350147.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1350147.wgsl.expected.ir.msl
@@ -11,3 +11,16 @@
   float const a = 2.5f;
   float const b = 2.5f;
 }
+program_source:9:15: error: redefinition of 'a'
+  float const a = 2.5f;
+              ^
+program_source:7:15: note: previous definition is here
+  float const a = 1.47112762928009033203f;
+              ^
+program_source:10:15: error: redefinition of 'b'
+  float const b = 2.5f;
+              ^
+program_source:8:15: note: previous definition is here
+  float const b = 0.09966865181922912598f;
+              ^
+
diff --git a/test/tint/bug/chromium/1360925.wgsl.expected.ir.msl b/test/tint/bug/chromium/1360925.wgsl.expected.ir.msl
index 99f9e9e..87fcb15 100644
--- a/test/tint/bug/chromium/1360925.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1360925.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %G:ptr<storage, array<i32>, read> = var @binding_point(0, 0)
 }
 
-%n = func():void -> %b2 {
-  %b2 = block {
+%n = func():void {
+  $B2: {
     %p:ptr<storage, array<i32>, read> = let %G
     %4:u32 = arrayLength %p
     ret
diff --git a/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.msl b/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.msl
index 5e5fb64..8cac9ee 100644
--- a/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1367602_private_space_initializer_valid_count.wgsl.expected.ir.msl
@@ -18,3 +18,7 @@
 thread tint_array<bool, 65535> v = tint_array<bool, 65535>{};
 void f() {
 }
+program_source:16:32: error: program scope variable must reside in constant address space
+thread tint_array<bool, 65535> v = tint_array<bool, 65535>{};
+                               ^
+
diff --git a/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.msl b/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.msl
index bf741e0..7c79dfc 100644
--- a/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1367602_private_space_no_initializer_valid_count.wgsl.expected.ir.msl
@@ -18,3 +18,7 @@
 thread tint_array<bool, 65535> v = {};
 void f() {
 }
+program_source:16:32: error: program scope variable must reside in constant address space
+thread tint_array<bool, 65535> v = {};
+                               ^
+
diff --git a/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.msl b/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.msl
index 0872f3e..a4c0a7f 100644
--- a/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1367602_storage_space.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: A = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: A = struct @align(4) {
   a:array<f32, 1000000> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, array<i32, 1000000>, read> = var @binding_point(0, 0)
   %b:ptr<storage, A, read> = var @binding_point(0, 1)
 }
diff --git a/test/tint/bug/chromium/1381883.wgsl.expected.ir.msl b/test/tint/bug/chromium/1381883.wgsl.expected.ir.msl
index f925a33..abed861 100644
--- a/test/tint/bug/chromium/1381883.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1381883.wgsl.expected.ir.msl
@@ -3,5 +3,9 @@
 #include <metal_stdlib>
 using namespace metal;
 
-void tint_symbol() {
+fragment void tint_symbol(float none) {
 }
+program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none) {
+                          ^~~~~~~~~~
+
diff --git a/test/tint/bug/chromium/1386647.wgsl.expected.ir.msl b/test/tint/bug/chromium/1386647.wgsl.expected.ir.msl
index 28251dc..288ce4b 100644
--- a/test/tint/bug/chromium/1386647.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1386647.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void f(uint3 v [[thread_position_in_grid]]) {
+  uint const l = (v[0u] << (tint_mod_u32(v[1u], 1u) & 31u));
+}
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint const v_1 = select(rhs, 1u, (rhs == 0u));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:5:29: error: use of undeclared identifier 'tint_mod_u32'
+  uint const l = (v[0u] << (tint_mod_u32(v[1u], 1u) & 31u));
+                            ^
+
diff --git a/test/tint/bug/chromium/1405676.wgsl.expected.ir.msl b/test/tint/bug/chromium/1405676.wgsl.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/bug/chromium/1405676.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1405676.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl b/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl
index 28251dc..144777b 100644
--- a/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1430309.wgsl.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct frexp_result_f32 {
+  float f;
+};
+struct frexp_result_f32_1 {
+  float fract;
+  int exp;
+};
+
+thread frexp_result_f32 a = {};
+thread frexp_result_f32_1 b = frexp_result_f32_1{.fract=0.5f, .exp=1};
+fragment float4 tint_symbol() {
+  return float4(a.f, b.fract, 0.0f, 0.0f);
+}
+program_source:11:25: error: program scope variable must reside in constant address space
+thread frexp_result_f32 a = {};
+                        ^
+program_source:12:27: error: program scope variable must reside in constant address space
+thread frexp_result_f32_1 b = frexp_result_f32_1{.fract=0.5f, .exp=1};
+                          ^
+
diff --git a/test/tint/bug/chromium/1434271.wgsl.expected.ir.msl b/test/tint/bug/chromium/1434271.wgsl.expected.ir.msl
index 5877ca6..f20f319 100644
--- a/test/tint/bug/chromium/1434271.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1434271.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: RenderParams = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: RenderParams = struct @align(16) {
   modelViewProjectionMatrix:mat4x4<f32> @offset(0)
   right:vec3<f32> @offset(64)
   up:vec3<f32> @offset(80)
@@ -42,7 +42,7 @@
   weights:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %rand_seed:ptr<private, vec2<f32>, read_write> = var
   %render_params:ptr<uniform, RenderParams, read> = var @binding_point(0, 5)
   %sim_params:ptr<uniform, SimulationParams, read> = var @binding_point(0, 0)
@@ -55,8 +55,8 @@
   %tex_out:ptr<handle, texture_storage_2d<rgba8unorm, write>, read> = var @binding_point(0, 7)
 }
 
-%asinh_468a48 = func():void -> %b2 {
-  %b2 = block {
+%asinh_468a48 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.0h
     %13:f16 = load %arg_0
     %14:f16 = asinh %13
@@ -64,26 +64,26 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %asinh_468a48
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %asinh_468a48
     ret
   }
 }
-%rgba32uintin = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%rgba32uintin = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %asinh_468a48
     ret
   }
 }
-%vs_main = @vertex func(%in:VertexInput):VertexOutput -> %b6 {
-  %b6 = block {
+%vs_main = @vertex func(%in:VertexInput):VertexOutput {
+  $B6: {
     %24:ptr<uniform, vec3<f32>, read> = access %render_params, 1u
     %25:vec3<f32> = load %24
     %26:ptr<uniform, vec3<f32>, read> = access %render_params, 2u
@@ -101,106 +101,139 @@
     %38:ptr<function, vec4<f32>, read_write> = access %out, 0u
     %39:ptr<uniform, mat4x4<f32>, read> = access %render_params, 0u
     %40:mat4x4<f32> = load %39
-    %41:vec3<f32> = load %position
-    %42:vec4<f32> = construct %41, 1.0f
-    %43:vec4<f32> = mul %40, %42
-    store %38, %43
-    %44:ptr<function, vec4<f32>, read_write> = access %out, 1u
-    %45:vec4<f32> = access %in, 1u
-    store %44, %45
-    %46:ptr<function, vec2<f32>, read_write> = access %out, 2u
-    %47:vec2<f32> = access %in, 2u
-    store %46, %47
-    %48:VertexOutput = load %out
-    ret %48
+    %41:mat4x4<f32> = let %40
+    %42:vec3<f32> = load %position
+    %43:vec4<f32> = construct %42, 1.0f
+    %44:vec4<f32> = mul %41, %43
+    store %38, %44
+    %45:ptr<function, vec4<f32>, read_write> = access %out, 1u
+    %46:vec4<f32> = access %in, 1u
+    store %45, %46
+    %47:ptr<function, vec2<f32>, read_write> = access %out, 2u
+    %48:vec2<f32> = access %in, 2u
+    store %47, %48
+    %49:VertexOutput = load %out
+    ret %49
   }
 }
-%simulate = @compute @workgroup_size(64, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b7 {
-  %b7 = block {
-    %51:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
-    %52:vec4<f32> = load %51
-    %53:vec2<f32> = swizzle %52, xy
-    %54:vec2<u32> = swizzle %GlobalInvocationID, xy
-    %55:vec2<f32> = convert %54
-    %56:vec2<f32> = mul %53, %55
-    %57:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
-    %58:vec4<f32> = load %57
-    %59:vec2<f32> = swizzle %58, zw
-    %60:vec2<f32> = mul %56, %59
-    store %rand_seed, %60
-    %idx:u32 = access %GlobalInvocationID, 0u
-    %62:ptr<storage, Particle, read_write> = access %data, 0u, %idx
-    %63:Particle = load %62
-    %particle:ptr<function, Particle, read_write> = var, %63
+%simulate = @compute @workgroup_size(64, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B7: {
+    %52:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
+    %53:vec4<f32> = load %52
+    %54:vec2<f32> = swizzle %53, xy
+    %55:vec2<f32> = let %54
+    %56:vec2<u32> = swizzle %GlobalInvocationID, xy
+    %57:vec2<f32> = convert %56
+    %58:vec2<f32> = mul %55, %57
+    %59:ptr<uniform, vec4<f32>, read> = access %sim_params, 1u
+    %60:vec4<f32> = load %59
+    %61:vec2<f32> = swizzle %60, zw
+    %62:vec2<f32> = mul %58, %61
+    store %rand_seed, %62
+    %63:u32 = access %GlobalInvocationID, 0u
+    %idx:u32 = let %63
     %65:ptr<storage, Particle, read_write> = access %data, 0u, %idx
-    %66:Particle = load %particle
-    store %65, %66
+    %66:Particle = load %65
+    %particle:ptr<function, Particle, read_write> = var, %66
+    %68:ptr<storage, Particle, read_write> = access %data, 0u, %idx
+    %69:Particle = load %particle
+    %70:void = call %tint_store_and_preserve_padding, %68, %69
     ret
   }
 }
-%export_level = @compute @workgroup_size(64, 1, 1) func(%coord:vec3<u32> [@global_invocation_id]):void -> %b8 {
-  %b8 = block {
-    %69:vec2<u32> = swizzle %coord, xy
-    %70:texture_storage_2d<rgba8unorm, write> = load %tex_out
-    %71:vec2<u32> = textureDimensions %70
-    %72:vec2<u32> = construct %71
-    %73:vec2<bool> = lt %69, %72
-    %74:bool = all %73
-    if %74 [t: %b9] {  # if_1
-      %b9 = block {  # true
-        %75:u32 = access %coord, 0u
-        %76:u32 = access %coord, 1u
-        %77:ptr<uniform, u32, read> = access %ubo, 0u
-        %78:u32 = load %77
-        %79:u32 = mul %76, %78
-        %dst_offset:u32 = shiftl %75, %79
-        %81:u32 = access %coord, 0u
-        %82:u32 = sub %81, 2u
-        %83:u32 = access %coord, 1u
-        %84:u32 = shiftr %83, 2u
-        %85:ptr<uniform, u32, read> = access %ubo, 0u
-        %86:u32 = load %85
-        %87:u32 = mul %84, %86
-        %src_offset:u32 = add %82, %87
-        %89:u32 = shiftl %src_offset, 0u
-        %90:ptr<storage, f32, read> = access %buf_in, 0u, %89
-        %a:f32 = load %90
-        %92:u32 = add %src_offset, 1u
-        %93:ptr<storage, f32, read> = access %buf_in, 0u, %92
-        %b:f32 = load %93
-        %95:u32 = add %src_offset, 1u
-        %96:ptr<uniform, u32, read> = access %ubo, 0u
-        %97:u32 = load %96
-        %98:u32 = add %95, %97
-        %99:ptr<storage, f32, read> = access %buf_in, 0u, %98
-        %c:f32 = load %99
-        %101:u32 = add %src_offset, 1u
-        %102:ptr<uniform, u32, read> = access %ubo, 0u
-        %103:u32 = load %102
-        %104:u32 = add %101, %103
-        %105:ptr<storage, f32, read> = access %buf_in, 0u, %104
-        %d:f32 = load %105
-        %107:vec4<f32> = construct %a, %b, %c, %d
-        %sum:f32 = dot %107, vec4<f32>(1.0f)
-        %109:ptr<storage, f32, read_write> = access %buf_out, 0u, %dst_offset
-        %110:f32 = mod %sum, 4.0f
-        store %109, %110
-        %111:f32 = mul %a, %b
-        %112:f32 = div %a, %b
-        %113:f32 = add %112, %c
-        %114:vec4<f32> = construct %a, %111, %113, %sum
-        %115:f32 = max %sum, 0.0f
-        %probabilities:vec4<f32> = add %114, %115
-        %117:texture_storage_2d<rgba8unorm, write> = load %tex_out
-        %118:vec2<u32> = swizzle %coord, xy
-        %119:vec2<i32> = convert %118
-        %120:void = textureStore %117, %119, %probabilities
+%export_level = @compute @workgroup_size(64, 1, 1) func(%coord:vec3<u32> [@global_invocation_id]):void {
+  $B8: {
+    %74:vec2<u32> = swizzle %coord, xy
+    %75:texture_storage_2d<rgba8unorm, write> = load %tex_out
+    %76:vec2<u32> = textureDimensions %75
+    %77:vec2<u32> = construct %76
+    %78:vec2<bool> = lt %74, %77
+    %79:bool = all %78
+    if %79 [t: $B9] {  # if_1
+      $B9: {  # true
+        %80:u32 = access %coord, 0u
+        %81:u32 = access %coord, 1u
+        %82:ptr<uniform, u32, read> = access %ubo, 0u
+        %83:u32 = load %82
+        %84:u32 = mul %81, %83
+        %85:u32 = and %84, 31u
+        %86:u32 = shl %80, %85
+        %dst_offset:u32 = let %86
+        %88:u32 = access %coord, 0u
+        %89:u32 = sub %88, 2u
+        %90:u32 = access %coord, 1u
+        %91:u32 = and 2u, 31u
+        %92:u32 = shr %90, %91
+        %93:ptr<uniform, u32, read> = access %ubo, 0u
+        %94:u32 = load %93
+        %95:u32 = mul %92, %94
+        %96:u32 = add %89, %95
+        %src_offset:u32 = let %96
+        %98:u32 = and 0u, 31u
+        %99:u32 = shl %src_offset, %98
+        %100:ptr<storage, f32, read> = access %buf_in, 0u, %99
+        %101:f32 = load %100
+        %a:f32 = let %101
+        %103:u32 = add %src_offset, 1u
+        %104:ptr<storage, f32, read> = access %buf_in, 0u, %103
+        %105:f32 = load %104
+        %b:f32 = let %105
+        %107:u32 = add %src_offset, 1u
+        %108:ptr<uniform, u32, read> = access %ubo, 0u
+        %109:u32 = load %108
+        %110:u32 = add %107, %109
+        %111:ptr<storage, f32, read> = access %buf_in, 0u, %110
+        %112:f32 = load %111
+        %c:f32 = let %112
+        %114:u32 = add %src_offset, 1u
+        %115:ptr<uniform, u32, read> = access %ubo, 0u
+        %116:u32 = load %115
+        %117:u32 = add %114, %116
+        %118:ptr<storage, f32, read> = access %buf_in, 0u, %117
+        %119:f32 = load %118
+        %d:f32 = let %119
+        %121:vec4<f32> = construct %a, %b, %c, %d
+        %122:f32 = dot %121, vec4<f32>(1.0f)
+        %sum:f32 = let %122
+        %124:ptr<storage, f32, read_write> = access %buf_out, 0u, %dst_offset
+        %125:f32 = mod %sum, 4.0f
+        store %124, %125
+        %126:f32 = mul %a, %b
+        %127:f32 = div %a, %b
+        %128:f32 = add %127, %c
+        %129:vec4<f32> = construct %a, %126, %128, %sum
+        %130:vec4<f32> = let %129
+        %131:f32 = max %sum, 0.0f
+        %132:vec4<f32> = add %130, %131
+        %probabilities:vec4<f32> = let %132
+        %134:texture_storage_2d<rgba8unorm, write> = load %tex_out
+        %135:texture_storage_2d<rgba8unorm, write> = let %134
+        %136:vec2<u32> = swizzle %coord, xy
+        %137:vec2<i32> = convert %136
+        %138:void = textureStore %135, %137, %probabilities
         exit_if  # if_1
       }
     }
     ret
   }
 }
+%tint_store_and_preserve_padding = func(%target:ptr<storage, Particle, read_write>, %value_param:Particle):void {
+  $B10: {
+    %141:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %142:vec3<f32> = access %value_param, 0u
+    store %141, %142
+    %143:ptr<storage, f32, read_write> = access %target, 1u
+    %144:f32 = access %value_param, 1u
+    store %143, %144
+    %145:ptr<storage, vec4<f32>, read_write> = access %target, 2u
+    %146:vec4<f32> = access %value_param, 2u
+    store %145, %146
+    %147:ptr<storage, vec2<f32>, read_write> = access %target, 3u
+    %148:vec2<f32> = access %value_param, 3u
+    store %147, %148
+    ret
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl b/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl
index e3024b1..06f9314 100644
--- a/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl
@@ -18,3 +18,5 @@
 thread tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1> arr = tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<tint_array<int, 1>, 1>, 1>, 1>{tint_array<tint_array<tint_array<int, 1>, 1>, 1>{tint_array<tint_array<int, 1>, 1>{tint_array<int, 1>{-6}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}};
 void f() {
 }
+program_source:16:987: error: program scope variable must reside in constant address space
+
diff --git a/test/tint/bug/chromium/324466107.wgsl.expected.ir.msl b/test/tint/bug/chromium/324466107.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0f7ec1f
--- /dev/null
+++ b/test/tint/bug/chromium/324466107.wgsl.expected.ir.msl
@@ -0,0 +1,5 @@
+#include <metal_stdlib>
+using namespace metal;
+
+void f() {
+}
diff --git a/test/tint/bug/chromium/335592006.wgsl.expected.ir.msl b/test/tint/bug/chromium/335592006.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5a5a617
--- /dev/null
+++ b/test/tint/bug/chromium/335592006.wgsl.expected.ir.msl
@@ -0,0 +1,16 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+void f() {
+  int const a = 1;
+  int(a);
+}
+program_source:6:7: error: redefinition of 'a' with a different type: 'int' vs 'const int'
+  int(a);
+      ^
+program_source:5:13: note: previous definition is here
+  int const a = 1;
+            ^
+
diff --git a/test/tint/bug/chromium/40943165.wgsl.expected.ir.msl b/test/tint/bug/chromium/40943165.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fbd61a0
--- /dev/null
+++ b/test/tint/bug/chromium/40943165.wgsl.expected.ir.msl
@@ -0,0 +1,27 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float2x2 W;
+kernel void F(uint mat2x2 [[thread_index_in_threadgroup]]) {
+  if ((mat2x2 == 0u)) {
+    W = float2x2(float2(0.0f), float2(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  W[0] = (W[0] + 0.0f);
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 W;
+                     ^
+program_source:6:15: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((mat2x2 == 0u)) {
+       ~~~~~~~^~~~~
+program_source:6:15: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((mat2x2 == 0u)) {
+      ~       ^    ~
+program_source:6:15: note: use '=' to turn this equality comparison into an assignment
+  if ((mat2x2 == 0u)) {
+              ^~
+              =
+
diff --git a/test/tint/bug/dawn/947.wgsl.expected.ir.msl b/test/tint/bug/dawn/947.wgsl.expected.ir.msl
index ecc7c06..b6b5579 100644
--- a/test/tint/bug/dawn/947.wgsl.expected.ir.msl
+++ b/test/tint/bug/dawn/947.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(8) {
   u_scale:vec2<f32> @offset(0)
   u_offset:vec2<f32> @offset(8)
 }
@@ -10,81 +10,89 @@
   position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 0)
   %mySampler:ptr<handle, sampler, read> = var @binding_point(0, 1)
   %myTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 2)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%vs_main = @vertex func(%VertexIndex:u32 [@vertex_index]):VertexOutputs -> %b2 {
-  %b2 = block {
+%vs_main = @vertex func(%VertexIndex:u32 [@vertex_index]):VertexOutputs {
+  $B2: {
     %texcoord:ptr<function, array<vec2<f32>, 3>, read_write> = var, array<vec2<f32>, 3>(vec2<f32>(-0.5f, 0.0f), vec2<f32>(1.5f, 0.0f), vec2<f32>(0.5f, 2.0f))
     %output:ptr<function, VertexOutputs, read_write> = var
-    %8:ptr<function, vec4<f32>, read_write> = access %output, 1u
-    %9:ptr<function, vec2<f32>, read_write> = access %texcoord, %VertexIndex
-    %10:vec2<f32> = load %9
-    %11:vec2<f32> = mul %10, 2.0f
-    %12:vec2<f32> = sub %11, vec2<f32>(1.0f)
-    %13:vec4<f32> = construct %12, 0.0f, 1.0f
-    store %8, %13
-    %14:ptr<uniform, vec2<f32>, read> = access %uniforms, 0u
-    %15:f32 = load_vector_element %14, 1u
-    %16:bool = lt %15, 0.0f
-    %flipY:ptr<function, bool, read_write> = var, %16
-    %18:bool = load %flipY
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %19:ptr<function, vec2<f32>, read_write> = access %output, 0u
-        %20:ptr<function, vec2<f32>, read_write> = access %texcoord, %VertexIndex
-        %21:vec2<f32> = load %20
-        %22:ptr<uniform, vec2<f32>, read> = access %uniforms, 0u
-        %23:vec2<f32> = load %22
-        %24:vec2<f32> = mul %21, %23
-        %25:ptr<uniform, vec2<f32>, read> = access %uniforms, 1u
-        %26:vec2<f32> = load %25
-        %27:vec2<f32> = add %24, %26
-        %28:vec2<f32> = mul %27, vec2<f32>(1.0f, -1.0f)
-        %29:vec2<f32> = add %28, vec2<f32>(0.0f, 1.0f)
-        store %19, %29
+    %9:ptr<function, vec4<f32>, read_write> = access %output, 1u
+    %10:ptr<function, vec2<f32>, read_write> = access %texcoord, %VertexIndex
+    %11:vec2<f32> = load %10
+    %12:vec2<f32> = mul %11, 2.0f
+    %13:vec2<f32> = sub %12, vec2<f32>(1.0f)
+    %14:vec4<f32> = construct %13, 0.0f, 1.0f
+    store %9, %14
+    %15:ptr<uniform, vec2<f32>, read> = access %uniforms, 0u
+    %16:f32 = load_vector_element %15, 1u
+    %17:bool = lt %16, 0.0f
+    %flipY:ptr<function, bool, read_write> = var, %17
+    %19:bool = load %flipY
+    if %19 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %20:ptr<function, vec2<f32>, read_write> = access %output, 0u
+        %21:ptr<function, vec2<f32>, read_write> = access %texcoord, %VertexIndex
+        %22:vec2<f32> = load %21
+        %23:ptr<uniform, vec2<f32>, read> = access %uniforms, 0u
+        %24:vec2<f32> = load %23
+        %25:vec2<f32> = mul %22, %24
+        %26:ptr<uniform, vec2<f32>, read> = access %uniforms, 1u
+        %27:vec2<f32> = load %26
+        %28:vec2<f32> = add %25, %27
+        %29:vec2<f32> = mul %28, vec2<f32>(1.0f, -1.0f)
+        %30:vec2<f32> = add %29, vec2<f32>(0.0f, 1.0f)
+        store %20, %30
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %30:ptr<function, vec2<f32>, read_write> = access %output, 0u
-        %31:ptr<function, vec2<f32>, read_write> = access %texcoord, %VertexIndex
-        %32:vec2<f32> = load %31
-        %33:vec2<f32> = mul %32, vec2<f32>(1.0f, -1.0f)
-        %34:vec2<f32> = add %33, vec2<f32>(0.0f, 1.0f)
-        %35:ptr<uniform, vec2<f32>, read> = access %uniforms, 0u
-        %36:vec2<f32> = load %35
-        %37:vec2<f32> = mul %34, %36
-        %38:ptr<uniform, vec2<f32>, read> = access %uniforms, 1u
-        %39:vec2<f32> = load %38
-        %40:vec2<f32> = add %37, %39
-        store %30, %40
+      $B4: {  # false
+        %31:ptr<function, vec2<f32>, read_write> = access %output, 0u
+        %32:ptr<function, vec2<f32>, read_write> = access %texcoord, %VertexIndex
+        %33:vec2<f32> = load %32
+        %34:vec2<f32> = mul %33, vec2<f32>(1.0f, -1.0f)
+        %35:vec2<f32> = add %34, vec2<f32>(0.0f, 1.0f)
+        %36:ptr<uniform, vec2<f32>, read> = access %uniforms, 0u
+        %37:vec2<f32> = load %36
+        %38:vec2<f32> = mul %35, %37
+        %39:ptr<uniform, vec2<f32>, read> = access %uniforms, 1u
+        %40:vec2<f32> = load %39
+        %41:vec2<f32> = add %38, %40
+        store %31, %41
         exit_if  # if_1
       }
     }
-    %41:VertexOutputs = load %output
-    ret %41
+    %42:VertexOutputs = load %output
+    ret %42
   }
 }
-%fs_main = @fragment func(%texcoord_1:vec2<f32> [@location(0)]):vec4<f32> [@location(0)] -> %b5 {  # %texcoord_1: 'texcoord'
-  %b5 = block {
-    %44:vec2<f32> = clamp %texcoord_1, vec2<f32>(0.0f), vec2<f32>(1.0f)
-    %clampedTexcoord:ptr<function, vec2<f32>, read_write> = var, %44
-    %46:vec2<f32> = load %clampedTexcoord
-    %47:vec2<bool> = eq %46, %texcoord_1
-    %48:bool = all %47
-    %49:bool = eq %48, false
-    if %49 [t: %b6] {  # if_2
-      %b6 = block {  # true
-        discard
+%fs_main = @fragment func(%texcoord_1:vec2<f32> [@location(0)]):vec4<f32> [@location(0)] {  # %texcoord_1: 'texcoord'
+  $B5: {
+    %45:vec2<f32> = clamp %texcoord_1, vec2<f32>(0.0f), vec2<f32>(1.0f)
+    %clampedTexcoord:ptr<function, vec2<f32>, read_write> = var, %45
+    %47:vec2<f32> = load %clampedTexcoord
+    %48:vec2<bool> = eq %47, %texcoord_1
+    %49:bool = all %48
+    %50:bool = eq %49, false
+    if %50 [t: $B6] {  # if_2
+      $B6: {  # true
+        store %continue_execution, false
         exit_if  # if_2
       }
     }
     %srcColor:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
-    %51:vec4<f32> = load %srcColor
-    ret %51
+    %52:vec4<f32> = load %srcColor
+    %53:bool = load %continue_execution
+    %54:bool = eq %53, false
+    if %54 [t: $B7] {  # if_3
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %52
   }
 }
 
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl
index e71e2b0..9def01d 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %s:ptr<function, S, read_write> = var
     %5:ptr<storage, i32, read_write> = access %result, 0u
     %6:ptr<uniform, i32, read> = access %ubo, 0u
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl
index a8fffb8..4c59525 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
   %s:ptr<private, S, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %5:ptr<storage, i32, read_write> = access %result, 0u
     %6:ptr<uniform, i32, read> = access %ubo, 0u
     %7:i32 = load %6
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl
index 9e6e6fc..a8f5a41 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<i32, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 2)
   %ssbo:ptr<storage, SSBO, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %5:ptr<storage, i32, read_write> = access %result, 0u
     %6:ptr<uniform, i32, read> = access %ubo, 0u
     %7:i32 = load %6
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl
index ad113f7..e394af7 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(16) {
   data:array<vec4<i32>, 4> @offset(0)
   dynamic_idx:i32 @offset(64)
 }
@@ -9,13 +9,13 @@
   out:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 2)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<storage, i32, read_write> = access %result, 0u
     %5:ptr<uniform, i32, read> = access %ubo, 1u
     %6:i32 = load %5
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.msl
index c48801d..70a8107 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,20 +12,41 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
   %s:ptr<workgroup, S, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %5:ptr<storage, i32, read_write> = access %result, 0u
-    %6:ptr<uniform, i32, read> = access %ubo, 0u
-    %7:i32 = load %6
-    %8:ptr<workgroup, i32, read_write> = access %s, 0u, %7
-    %9:i32 = load %8
-    store %5, %9
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %7:bool = gte %idx, 64u
+        if %7 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %8:ptr<workgroup, i32, read_write> = access %s, 0u, %idx
+        store %8, 0i
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %9:u32 = add %idx, 1u
+        next_iteration %9  # -> $B4
+      }
+    }
+    %10:void = msl.threadgroup_barrier 4u
+    %11:ptr<storage, i32, read_write> = access %result, 0u
+    %12:ptr<uniform, i32, read> = access %ubo, 0u
+    %13:i32 = load %12
+    %14:ptr<workgroup, i32, read_write> = access %s, 0u, %13
+    %15:i32 = load %14
+    store %11, %15
     ret
   }
 }
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl
index 64113c8..3930e65 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %s:ptr<function, S, read_write> = var
     %5:ptr<uniform, i32, read> = access %ubo, 0u
     %6:i32 = load %5
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl
index ffe3f4b..2e17591 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
 }
 
-%x = func(%p:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
+%x = func(%p:ptr<function, S, read_write>):void {
+  $B2: {
     %5:ptr<uniform, i32, read> = access %ubo, 0u
     %6:i32 = load %5
     %7:ptr<function, i32, read_write> = access %p, 0u, %6
@@ -26,8 +26,8 @@
     ret
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %s:ptr<function, S, read_write> = var
     %10:void = call %x, %s
     %11:ptr<storage, i32, read_write> = access %result, 0u
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl
index ad73832..fac2d98 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
   %s:ptr<private, S, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %5:ptr<uniform, i32, read> = access %ubo, 0u
     %6:i32 = load %5
     %7:ptr<private, i32, read_write> = access %s, 0u, %6
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl
index 619a04d..573ffa1 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
   %s:ptr<private, S, read_write> = var
 }
 
-%x = func(%p:ptr<private, S, read_write>):void -> %b2 {
-  %b2 = block {
+%x = func(%p:ptr<private, S, read_write>):void {
+  $B2: {
     %6:ptr<uniform, i32, read> = access %ubo, 0u
     %7:i32 = load %6
     %8:ptr<private, i32, read_write> = access %p, 0u, %7
@@ -27,8 +27,8 @@
     ret
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %10:void = call %x, %s
     %11:ptr<storage, i32, read_write> = access %result, 0u
     %12:ptr<private, i32, read_write> = access %s, 0u, 3i
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl
index f730826..d48f2c5 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<i32, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 2)
   %ssbo:ptr<storage, SSBO, read_write> = var @binding_point(0, 1)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %5:ptr<uniform, i32, read> = access %ubo, 0u
     %6:i32 = load %5
     %7:ptr<storage, i32, read_write> = access %ssbo, 0u, %6
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.msl b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.msl
index 678261a..a23a9a8 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UBO = struct @align(4) {
   dynamic_idx:i32 @offset(0)
 }
 
@@ -12,22 +12,43 @@
   data:array<i32, 64> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ubo:ptr<uniform, UBO, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
   %s:ptr<workgroup, S, read_write> = var
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %5:ptr<uniform, i32, read> = access %ubo, 0u
-    %6:i32 = load %5
-    %7:ptr<workgroup, i32, read_write> = access %s, 0u, %6
-    store %7, 1i
-    %8:ptr<storage, i32, read_write> = access %result, 0u
-    %9:ptr<workgroup, i32, read_write> = access %s, 0u, 3i
-    %10:i32 = load %9
-    store %8, %10
+%f = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
+      }
+      $B4 (%idx:u32): {  # body
+        %7:bool = gte %idx, 64u
+        if %7 [t: $B6] {  # if_1
+          $B6: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %8:ptr<workgroup, i32, read_write> = access %s, 0u, %idx
+        store %8, 0i
+        continue  # -> $B5
+      }
+      $B5: {  # continuing
+        %9:u32 = add %idx, 1u
+        next_iteration %9  # -> $B4
+      }
+    }
+    %10:void = msl.threadgroup_barrier 4u
+    %11:ptr<uniform, i32, read> = access %ubo, 0u
+    %12:i32 = load %11
+    %13:ptr<workgroup, i32, read_write> = access %s, 0u, %12
+    store %13, 1i
+    %14:ptr<storage, i32, read_write> = access %result, 0u
+    %15:ptr<workgroup, i32, read_write> = access %s, 0u, 3i
+    %16:i32 = load %15
+    store %14, %16
     ret
   }
 }
diff --git a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.msl b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/gradient_in_varying_loop/1112.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.msl b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.msl
index 67448e3..71ac128 100644
--- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Particle = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Particle = struct @align(16) {
   position:array<vec3<f32>, 8> @offset(0)
   lifetime:f32 @offset(128)
   color:vec4<f32> @offset(144)
@@ -15,13 +15,13 @@
   i:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %particles:ptr<storage, Particles, read> = var @binding_point(1, 3)
   %sim:ptr<uniform, Simulation, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<storage, Particle, read> = access %particles, 0u, 0i
     %5:Particle = load %4
     %particle:ptr<function, Particle, read_write> = var, %5
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.msl
index c351f36..12171f2 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m1:ptr<function, mat2x4<f32>, read_write> = var
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.msl
index 02e39ba..366bee8 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m1:ptr<function, mat2x4<f32>, read_write> = var
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.msl
index 2158837..12bd65d 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %m1:ptr<private, mat2x4<f32>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<private, vec4<f32>, read_write> = access %m1, 0i
     %5:ptr<uniform, u32, read> = access %uniforms, 1u
     %6:u32 = load %5
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.msl
index 2c232bd..718291b 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m1:ptr<function, mat2x4<f32>, read_write> = var
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.msl
index f310f79..d8ed7c3 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %m1:ptr<private, mat2x4<f32>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
     %6:ptr<private, vec4<f32>, read_write> = access %m1, %5
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.msl
index edbd7d6..ed64108 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %m1:ptr<private, mat2x4<f32>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
     %6:ptr<private, vec4<f32>, read_write> = access %m1, %5
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.msl
index 2158837..12bd65d 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %m1:ptr<private, mat2x4<f32>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<private, vec4<f32>, read_write> = access %m1, 0i
     %5:ptr<uniform, u32, read> = access %uniforms, 1u
     %6:u32 = load %5
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.msl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.msl
index 5ec776c..eafa77b 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %m1:ptr<private, mat2x4<f32>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
     %6:ptr<private, vec4<f32>, read_write> = access %m1, %5
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl
index cdbf128..1896e60 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_loop.wgsl.expected.ir.msl
@@ -1,9 +1,53 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 v2f = 0.0f;
+thread int3 v3i = 0;
+thread uint4 v4u = 0u;
+thread bool2 v2b = false;
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      v2f[i] = 1.0f;
+      v3i[i] = 1;
+      v4u[i] = 1u;
+      v2b[i] = true;
+      i = (i + 1);
+      continue;
+    }
+  }
+}
+kernel void tint_symbol() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      foo();
+      i = (i + 1);
+      continue;
+    }
+  }
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 v2f = 0.0f;
+              ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread int3 v3i = 0;
+            ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread uint4 v4u = 0u;
+             ^
+program_source:7:14: error: program scope variable must reside in constant address space
+thread bool2 v2b = false;
+             ^
+
diff --git a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl
index 3440042..56d2875 100644
--- a/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl
+++ b/test/tint/bug/fxc/vector_assignment_in_loop/loop_call_with_no_loop.wgsl.expected.ir.msl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 v2f = 0.0f;
+thread int3 v3i = 0;
+thread uint4 v4u = 0u;
+thread bool2 v2b = false;
+void foo() {
+  int i = 0;
+  v2f[i] = 1.0f;
+  v3i[i] = 1;
+  v4u[i] = 1u;
+  v2b[i] = true;
+}
+kernel void tint_symbol() {
+  {
+    int i = 0;
+    while(true) {
+      if ((i < 2)) {
+      } else {
+        break;
+      }
+      foo();
+      i = (i + 1);
+      continue;
+    }
+  }
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 v2f = 0.0f;
+              ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread int3 v3i = 0;
+            ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread uint4 v4u = 0u;
+             ^
+program_source:7:14: error: program scope variable must reside in constant address space
+thread bool2 v2b = false;
+             ^
+
diff --git a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.msl b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.msl
index 792ab03..68a168c 100644
--- a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.msl
+++ b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.msl
@@ -1,9 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S_6 {
+  tint_array<tint_array<float3, 18>, 13> field0;
+};
+
+thread tint_array<float4x4, 58> x_75 = tint_array<float4x4, 58>{};
+thread tint_array<S_6, 46> x_82 = tint_array<S_6, 46>{};
+thread tint_array<float3, 37> x_85 = tint_array<float3, 37>{};
+void main_1() {
+  uint const x_88 = 58u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:19:33: error: program scope variable must reside in constant address space
+thread tint_array<float4x4, 58> x_75 = tint_array<float4x4, 58>{};
+                                ^
+program_source:20:28: error: program scope variable must reside in constant address space
+thread tint_array<S_6, 46> x_82 = tint_array<S_6, 46>{};
+                           ^
+program_source:21:31: error: program scope variable must reside in constant address space
+thread tint_array<float3, 37> x_85 = tint_array<float3, 37>{};
+                              ^
+program_source:23:14: warning: unused variable 'x_88' [-Wunused-variable]
+  uint const x_88 = 58u;
+             ^
+
diff --git a/test/tint/bug/tint/1046.wgsl.expected.ir.msl b/test/tint/bug/tint/1046.wgsl.expected.ir.msl
index 29a3e0e..f416fce 100644
--- a/test/tint/bug/tint/1046.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1046.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(16) {
   worldView:mat4x4<f32> @offset(0)
   proj:mat4x4<f32> @offset(64)
   numPointLights:u32 @offset(128)
@@ -28,53 +28,53 @@
   color:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 0)
   %pointLights:ptr<storage, PointLights, read> = var @binding_point(0, 1)
   %mySampler:ptr<handle, sampler, read> = var @binding_point(0, 2)
   %myTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 3)
 }
 
-%getColor = func(%tint_symbol:FragmentInput):vec4<f32> -> %b2 {
-  %b2 = block {
+%getColor = func(%tint_symbol:FragmentInput):vec4<f32> {
+  $B2: {
     %color:ptr<function, vec4<f32>, read_write> = var
     %8:ptr<uniform, u32, read> = access %uniforms, 3u
     %9:u32 = load %8
     %10:bool = eq %9, 0u
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %11:vec4<f32> = access %tint_symbol, 4u
         store %color, %11
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %12:ptr<uniform, u32, read> = access %uniforms, 3u
         %13:u32 = load %12
         %14:bool = eq %13, 1u
-        if %14 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
             %15:vec4<f32> = access %tint_symbol, 2u
             store %color, %15
             store_vector_element %color, 3u, 1.0f
             exit_if  # if_2
           }
-          %b6 = block {  # false
+          $B6: {  # false
             %16:ptr<uniform, u32, read> = access %uniforms, 3u
             %17:u32 = load %16
             %18:bool = eq %17, 2u
-            if %18 [t: %b7, f: %b8] {  # if_3
-              %b7 = block {  # true
+            if %18 [t: $B7, f: $B8] {  # if_3
+              $B7: {  # true
                 %19:ptr<uniform, vec4<f32>, read> = access %uniforms, 4u
                 %20:vec4<f32> = load %19
                 store %color, %20
                 exit_if  # if_3
               }
-              %b8 = block {  # false
+              $B8: {  # false
                 %21:ptr<uniform, u32, read> = access %uniforms, 3u
                 %22:u32 = load %21
                 %23:bool = eq %22, 3u
-                if %23 [t: %b9] {  # if_4
-                  %b9 = block {  # true
+                if %23 [t: $B9] {  # if_4
+                  $B9: {  # true
                     %24:texture_2d<f32> = load %myTexture
                     %25:sampler = load %mySampler
                     %26:vec2<f32> = access %tint_symbol, 3u
@@ -96,8 +96,8 @@
     ret %28
   }
 }
-%tint_symbol_1 = @fragment func(%tint_symbol_2:FragmentInput):FragmentOutput -> %b10 {  # %tint_symbol_2: 'tint_symbol'
-  %b10 = block {
+%tint_symbol_1 = @fragment func(%tint_symbol_2:FragmentInput):FragmentOutput {  # %tint_symbol_2: 'tint_symbol'
+  $B10: {
     %output:ptr<function, FragmentOutput, read_write> = var
     %32:ptr<function, vec4<f32>, read_write> = access %output, 0u
     store %32, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
diff --git a/test/tint/bug/tint/1061.spvasm.expected.ir.msl b/test/tint/bug/tint/1061.spvasm.expected.ir.msl
index eefd36c..61fdca7 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/1061.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(16) {
   r:vec4<f32> @offset(0)
 }
 
@@ -8,37 +8,40 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     store %f, 1.0f
     %6:f32 = load %f
     %7:f32 = sin %6
-    %8:f32 = load %f
-    %9:f32 = cos %8
-    %10:f32 = load %f
-    %11:f32 = exp2 %10
+    %8:f32 = let %7
+    %9:f32 = load %f
+    %10:f32 = cos %9
+    %11:f32 = let %10
     %12:f32 = load %f
-    %13:f32 = log %12
-    %14:vec4<f32> = construct %7, %9, %11, %13
-    store %v, %14
-    %15:vec4<f32> = load %v
-    %16:ptr<uniform, vec4<f32>, read> = access %x_7, 0u
-    %17:vec4<f32> = load %16
-    %18:f32 = distance %15, %17
-    %19:bool = lt %18, 0.10000000149011611938f
-    if %19 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %13:f32 = exp2 %12
+    %14:f32 = let %13
+    %15:f32 = load %f
+    %16:f32 = log %15
+    %17:vec4<f32> = construct %8, %11, %14, %16
+    store %v, %17
+    %18:vec4<f32> = load %v
+    %19:ptr<uniform, vec4<f32>, read> = access %x_7, 0u
+    %20:vec4<f32> = load %19
+    %21:f32 = distance %18, %20
+    %22:bool = lt %21, 0.10000000149011611938f
+    if %22 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -46,12 +49,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/bug/tint/1064.wgsl.expected.ir.msl b/test/tint/bug/tint/1064.wgsl.expected.ir.msl
index cdbf128..aa6b0ab 100644
--- a/test/tint/bug/tint/1064.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1064.wgsl.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if false { break; }
+      continue;
+    }
+  }
+}
+program_source:11:10: error: expected '(' after 'if'
+      if false { break; }
+         ^
+
diff --git a/test/tint/bug/tint/1076.wgsl.expected.ir.msl b/test/tint/bug/tint/1076.wgsl.expected.ir.msl
index 1f31e45..cee7f46 100644
--- a/test/tint/bug/tint/1076.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1076.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragIn = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragIn = struct @align(4) {
   a:f32 @offset(0), @location(0)
   mask:u32 @offset(4), @builtin(sample_mask)
 }
 
-%tint_symbol = @fragment func(%in:FragIn, %b:f32 [@location(1)]):FragIn -> %b1 {
-  %b1 = block {
+%tint_symbol = @fragment func(%in:FragIn, %b:f32 [@location(1)]):FragIn {
+  $B1: {
     %4:u32 = access %in, 1u
     %5:bool = eq %4, 0u
-    if %5 [t: %b2] {  # if_1
-      %b2 = block {  # true
+    if %5 [t: $B2] {  # if_1
+      $B2: {  # true
         ret %in
       }
     }
diff --git a/test/tint/bug/tint/1081.wgsl.expected.ir.msl b/test/tint/bug/tint/1081.wgsl.expected.ir.msl
index 567c382..0a11199 100644
--- a/test/tint/bug/tint/1081.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1081.wgsl.expected.ir.msl
@@ -1,9 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool continue_execution = true;
+int f(int x) {
+  if ((x == 10)) {
+    continue_execution = false;
+  }
+  return x;
+}
+fragment int tint_symbol(int3 x) {
+  int y = x[0u];
+  {
+    while(true) {
+      int const r = f(y);
+      if ((r == 0)) {
+        break;
+      }
+      continue;
+    }
+  }
+  if (!(continue_execution)) {
+    discard_fragment();
+  }
+  return y;
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+program_source:6:10: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((x == 10)) {
+       ~~^~~~~
+program_source:6:10: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((x == 10)) {
+      ~  ^    ~
+program_source:6:10: note: use '=' to turn this equality comparison into an assignment
+  if ((x == 10)) {
+         ^~
+         =
+program_source:11:26: error: invalid type 'int3' (vector of 3 'int' values) for input declaration in a fragment function
+fragment int tint_symbol(int3 x) {
+                         ^~~~~~
+
diff --git a/test/tint/bug/tint/1083.wgsl.expected.ir.msl b/test/tint/bug/tint/1083.wgsl.expected.ir.msl
index c46ebec..75a514b 100644
--- a/test/tint/bug/tint/1083.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1083.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 1;
   int const b = 0;
-  int const c = (a / b);
+  int const c = tint_div_i32(a, b);
 }
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_div_i32'
+  int const c = tint_div_i32(a, b);
+                ^
+
diff --git a/test/tint/bug/tint/1086.wgsl.expected.ir.msl b/test/tint/bug/tint/1086.wgsl.expected.ir.msl
index efdd3b1..37f69a0 100644
--- a/test/tint/bug/tint/1086.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1086.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float v = 0.0f;
+void x(thread float* const p) {
+  p = 0.0f;
+}
+void g() {
+  x(v);
+}
+fragment void f() {
+  g();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float v = 0.0f;
+             ^
+program_source:6:5: error: cannot assign to variable 'p' with const-qualified type 'float *const'
+  p = 0.0f;
+  ~ ^
+program_source:5:28: note: variable 'p' declared const here
+void x(thread float* const p) {
+       ~~~~~~~~~~~~~~~~~~~~^
+
diff --git a/test/tint/bug/tint/1088.spvasm.expected.ir.msl b/test/tint/bug/tint/1088.spvasm.expected.ir.msl
index 80f7d46..ffc5ee7 100644
--- a/test/tint/bug/tint/1088.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/1088.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -16,7 +16,7 @@
   vUV_1:vec2<f32> @offset(16), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %position_1:ptr<private, vec3<f32>, read_write> = var
   %x_14:ptr<uniform, LeftOver, read> = var @binding_point(2, 2)
   %vUV:ptr<private, vec2<f32>, read_write> = var
@@ -25,8 +25,8 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %q:ptr<function, vec4<f32>, read_write> = var
     %p:ptr<function, vec3<f32>, read_write> = var
     %10:f32 = load_vector_element %position_1, 0u
@@ -38,49 +38,52 @@
     %15:vec3<f32> = swizzle %14, xyz
     store %p, %15
     %16:f32 = load_vector_element %p, 0u
-    %17:ptr<uniform, f32, read> = access %x_14, 3u, 0i, 0u
-    %18:f32 = load %17
-    %19:f32 = load_vector_element %position_1, 1u
-    %20:f32 = mul %18, %19
-    %21:ptr<uniform, f32, read> = access %x_14, 1u
-    %22:f32 = load %21
-    %23:f32 = add %20, %22
-    %24:f32 = sin %23
-    %25:f32 = add %16, %24
-    store_vector_element %p, 0u, %25
-    %26:f32 = load_vector_element %p, 1u
-    %27:ptr<uniform, f32, read> = access %x_14, 1u
-    %28:f32 = load %27
-    %29:f32 = add %28, 4.0f
-    %30:f32 = sin %29
-    %31:f32 = add %26, %30
-    store_vector_element %p, 1u, %31
-    %32:ptr<uniform, mat4x4<f32>, read> = access %x_14, 0u
-    %33:mat4x4<f32> = load %32
-    %34:f32 = load_vector_element %p, 0u
-    %35:f32 = load_vector_element %p, 1u
-    %36:f32 = load_vector_element %p, 2u
-    %37:vec4<f32> = construct %34, %35, %36, 1.0f
-    %38:vec4<f32> = mul %33, %37
-    store %gl_Position, %38
-    %39:vec2<f32> = load %uv
-    store %vUV, %39
-    %40:f32 = load_vector_element %gl_Position, 1u
-    %41:f32 = mul %40, -1.0f
-    store_vector_element %gl_Position, 1u, %41
+    %17:f32 = let %16
+    %18:ptr<uniform, f32, read> = access %x_14, 3u, 0i, 0u
+    %19:f32 = load %18
+    %20:f32 = load_vector_element %position_1, 1u
+    %21:f32 = mul %19, %20
+    %22:ptr<uniform, f32, read> = access %x_14, 1u
+    %23:f32 = load %22
+    %24:f32 = add %21, %23
+    %25:f32 = sin %24
+    %26:f32 = add %17, %25
+    store_vector_element %p, 0u, %26
+    %27:f32 = load_vector_element %p, 1u
+    %28:f32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_14, 1u
+    %30:f32 = load %29
+    %31:f32 = add %30, 4.0f
+    %32:f32 = sin %31
+    %33:f32 = add %28, %32
+    store_vector_element %p, 1u, %33
+    %34:ptr<uniform, mat4x4<f32>, read> = access %x_14, 0u
+    %35:mat4x4<f32> = load %34
+    %36:mat4x4<f32> = let %35
+    %37:f32 = load_vector_element %p, 0u
+    %38:f32 = load_vector_element %p, 1u
+    %39:f32 = load_vector_element %p, 2u
+    %40:vec4<f32> = construct %37, %38, %39, 1.0f
+    %41:vec4<f32> = mul %36, %40
+    store %gl_Position, %41
+    %42:vec2<f32> = load %uv
+    store %vUV, %42
+    %43:f32 = load_vector_element %gl_Position, 1u
+    %44:f32 = mul %43, -1.0f
+    store_vector_element %gl_Position, 1u, %44
     ret
   }
 }
-%tint_symbol = @vertex func(%position_1_param:vec3<f32> [@location(0)], %uv_param:vec2<f32> [@location(2)], %normal_param:vec3<f32> [@location(1)]):main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func(%position_1_param:vec3<f32> [@location(0)], %uv_param:vec2<f32> [@location(2)], %normal_param:vec3<f32> [@location(1)]):main_out {
+  $B3: {
     store %position_1, %position_1_param
     store %uv, %uv_param
     store %normal, %normal_param
-    %46:void = call %main_1
-    %47:vec4<f32> = load %gl_Position
-    %48:vec2<f32> = load %vUV
-    %49:main_out = construct %47, %48
-    ret %49
+    %49:void = call %main_1
+    %50:vec4<f32> = load %gl_Position
+    %51:vec2<f32> = load %vUV
+    %52:main_out = construct %50, %51
+    ret %52
   }
 }
 
diff --git a/test/tint/bug/tint/1113.wgsl.expected.ir.msl b/test/tint/bug/tint/1113.wgsl.expected.ir.msl
index 02b42ad..6d4edfb 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1113.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(16) {
   numTriangles:u32 @offset(0)
   gridSize:u32 @offset(4)
   pad1:u32 @offset(8)
@@ -40,7 +40,7 @@
   value_f32_3:f32 @offset(44)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 0)
   %indices:ptr<storage, U32s, read_write> = var @binding_point(0, 10)
   %positions:ptr<storage, F32s, read_write> = var @binding_point(0, 11)
@@ -49,8 +49,8 @@
   %dbg:ptr<storage, Dbg, read_write> = var @binding_point(0, 50)
 }
 
-%toVoxelPos = func(%position:vec3<f32>):vec3<f32> -> %b2 {
-  %b2 = block {
+%toVoxelPos = func(%position:vec3<f32>):vec3<f32> {
+  $B2: {
     %9:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
     %10:f32 = load_vector_element %9, 0u
     %11:ptr<uniform, vec3<f32>, read> = access %uniforms, 4u
@@ -115,276 +115,305 @@
     ret %69
   }
 }
-%toIndex1D = func(%gridSize_1:u32, %voxelPos:vec3<f32>):u32 -> %b3 {  # %gridSize_1: 'gridSize'
-  %b3 = block {
-    %73:vec3<u32> = convert %voxelPos
+%toIndex1D = func(%gridSize_1:u32, %voxelPos:vec3<f32>):u32 {  # %gridSize_1: 'gridSize'
+  $B3: {
+    %73:vec3<u32> = call %tint_v3f32_to_v3u32, %voxelPos
     %icoord:ptr<function, vec3<u32>, read_write> = var, %73
-    %75:u32 = load_vector_element %icoord, 0u
-    %76:u32 = load_vector_element %icoord, 1u
-    %77:u32 = mul %gridSize_1, %76
-    %78:u32 = add %75, %77
-    %79:u32 = mul %gridSize_1, %gridSize_1
-    %80:u32 = load_vector_element %icoord, 2u
-    %81:u32 = mul %79, %80
-    %82:u32 = add %78, %81
-    ret %82
+    %76:u32 = load_vector_element %icoord, 0u
+    %77:u32 = load_vector_element %icoord, 1u
+    %78:u32 = mul %gridSize_1, %77
+    %79:u32 = add %76, %78
+    %80:u32 = mul %gridSize_1, %gridSize_1
+    %81:u32 = load_vector_element %icoord, 2u
+    %82:u32 = mul %80, %81
+    %83:u32 = add %79, %82
+    ret %83
   }
 }
-%toIndex3D = func(%gridSize_2:u32, %index:u32):vec3<u32> -> %b4 {  # %gridSize_2: 'gridSize'
-  %b4 = block {
-    %86:u32 = mul %gridSize_2, %gridSize_2
-    %87:u32 = div %index, %86
-    %z:ptr<function, u32, read_write> = var, %87
-    %89:u32 = mul %gridSize_2, %gridSize_2
-    %90:u32 = load %z
-    %91:u32 = mul %89, %90
-    %92:u32 = sub %index, %91
-    %93:u32 = div %92, %gridSize_2
-    %y:ptr<function, u32, read_write> = var, %93
-    %95:u32 = mod %index, %gridSize_2
-    %x:ptr<function, u32, read_write> = var, %95
-    %97:u32 = load %x
-    %98:u32 = load %y
-    %99:u32 = load %z
-    %100:vec3<u32> = construct %97, %98, %99
-    ret %100
+%toIndex3D = func(%gridSize_2:u32, %index:u32):vec3<u32> {  # %gridSize_2: 'gridSize'
+  $B4: {
+    %87:u32 = mul %gridSize_2, %gridSize_2
+    %88:u32 = call %tint_div_u32, %index, %87
+    %z:ptr<function, u32, read_write> = var, %88
+    %91:u32 = mul %gridSize_2, %gridSize_2
+    %92:u32 = load %z
+    %93:u32 = mul %91, %92
+    %94:u32 = sub %index, %93
+    %95:u32 = call %tint_div_u32, %94, %gridSize_2
+    %y:ptr<function, u32, read_write> = var, %95
+    %97:u32 = call %tint_mod_u32, %index, %gridSize_2
+    %x:ptr<function, u32, read_write> = var, %97
+    %100:u32 = load %x
+    %101:u32 = load %y
+    %102:u32 = load %z
+    %103:vec3<u32> = construct %100, %101, %102
+    ret %103
   }
 }
-%loadPosition = func(%vertexIndex:u32):vec3<f32> -> %b5 {
-  %b5 = block {
-    %103:u32 = mul 3u, %vertexIndex
-    %104:u32 = add %103, 0u
-    %105:ptr<storage, f32, read_write> = access %positions, 0u, %104
-    %106:f32 = load %105
-    %107:u32 = mul 3u, %vertexIndex
-    %108:u32 = add %107, 1u
-    %109:ptr<storage, f32, read_write> = access %positions, 0u, %108
-    %110:f32 = load %109
-    %111:u32 = mul 3u, %vertexIndex
-    %112:u32 = add %111, 2u
-    %113:ptr<storage, f32, read_write> = access %positions, 0u, %112
-    %114:f32 = load %113
-    %115:vec3<f32> = construct %106, %110, %114
-    %position_1:ptr<function, vec3<f32>, read_write> = var, %115  # %position_1: 'position'
-    %117:vec3<f32> = load %position_1
-    ret %117
+%loadPosition = func(%vertexIndex:u32):vec3<f32> {
+  $B5: {
+    %106:u32 = mul 3u, %vertexIndex
+    %107:u32 = add %106, 0u
+    %108:ptr<storage, f32, read_write> = access %positions, 0u, %107
+    %109:f32 = load %108
+    %110:u32 = mul 3u, %vertexIndex
+    %111:u32 = add %110, 1u
+    %112:ptr<storage, f32, read_write> = access %positions, 0u, %111
+    %113:f32 = load %112
+    %114:u32 = mul 3u, %vertexIndex
+    %115:u32 = add %114, 2u
+    %116:ptr<storage, f32, read_write> = access %positions, 0u, %115
+    %117:f32 = load %116
+    %118:vec3<f32> = construct %109, %113, %117
+    %position_1:ptr<function, vec3<f32>, read_write> = var, %118  # %position_1: 'position'
+    %120:vec3<f32> = load %position_1
+    ret %120
   }
 }
-%doIgnore = func():void -> %b6 {
-  %b6 = block {
-    %119:ptr<uniform, u32, read> = access %uniforms, 0u
-    %120:u32 = load %119
-    %g42:ptr<function, u32, read_write> = var, %120
-    %122:ptr<storage, u32, read_write> = access %dbg, 5u
+%doIgnore = func():void {
+  $B6: {
+    %122:ptr<uniform, u32, read> = access %uniforms, 0u
     %123:u32 = load %122
-    %kj6:ptr<function, u32, read_write> = var, %123
-    %125:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, 0i
-    %126:u32 = atomicLoad %125
-    %b53:ptr<function, u32, read_write> = var, %126
-    %128:ptr<storage, u32, read_write> = access %indices, 0u, 0i
-    %129:u32 = load %128
-    %rwg:ptr<function, u32, read_write> = var, %129
-    %131:ptr<storage, f32, read_write> = access %positions, 0u, 0i
-    %132:f32 = load %131
-    %rb5:ptr<function, f32, read_write> = var, %132
-    %134:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, 0i
-    %135:i32 = atomicLoad %134
-    %g55:ptr<function, i32, read_write> = var, %135
+    %g42:ptr<function, u32, read_write> = var, %123
+    %125:ptr<storage, u32, read_write> = access %dbg, 5u
+    %126:u32 = load %125
+    %kj6:ptr<function, u32, read_write> = var, %126
+    %128:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, 0i
+    %129:u32 = atomicLoad %128
+    %b53:ptr<function, u32, read_write> = var, %129
+    %131:ptr<storage, u32, read_write> = access %indices, 0u, 0i
+    %132:u32 = load %131
+    %rwg:ptr<function, u32, read_write> = var, %132
+    %134:ptr<storage, f32, read_write> = access %positions, 0u, 0i
+    %135:f32 = load %134
+    %rb5:ptr<function, f32, read_write> = var, %135
+    %137:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, 0i
+    %138:i32 = atomicLoad %137
+    %g55:ptr<function, i32, read_write> = var, %138
     ret
   }
 }
-%main_count = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b7 {
-  %b7 = block {
-    %139:u32 = access %GlobalInvocationID, 0u
-    %triangleIndex:ptr<function, u32, read_write> = var, %139
-    %141:u32 = load %triangleIndex
-    %142:ptr<uniform, u32, read> = access %uniforms, 0u
-    %143:u32 = load %142
-    %144:bool = gte %141, %143
-    if %144 [t: %b8] {  # if_1
-      %b8 = block {  # true
+%main_count = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B7: {
+    %142:u32 = access %GlobalInvocationID, 0u
+    %triangleIndex:ptr<function, u32, read_write> = var, %142
+    %144:u32 = load %triangleIndex
+    %145:ptr<uniform, u32, read> = access %uniforms, 0u
+    %146:u32 = load %145
+    %147:bool = gte %144, %146
+    if %147 [t: $B8] {  # if_1
+      $B8: {  # true
         ret
       }
     }
-    %145:void = call %doIgnore
-    %146:u32 = load %triangleIndex
-    %147:u32 = mul 3u, %146
-    %148:u32 = add %147, 0u
-    %149:ptr<storage, u32, read_write> = access %indices, 0u, %148
-    %150:u32 = load %149
-    %i0:ptr<function, u32, read_write> = var, %150
-    %152:u32 = load %triangleIndex
-    %153:u32 = mul 3u, %152
-    %154:u32 = add %153, 1u
-    %155:ptr<storage, u32, read_write> = access %indices, 0u, %154
-    %156:u32 = load %155
-    %i1:ptr<function, u32, read_write> = var, %156
-    %158:u32 = load %triangleIndex
-    %159:u32 = mul 3u, %158
-    %160:u32 = add %159, 2u
-    %161:ptr<storage, u32, read_write> = access %indices, 0u, %160
-    %162:u32 = load %161
-    %i2:ptr<function, u32, read_write> = var, %162
-    %164:u32 = load %i0
-    %165:vec3<f32> = call %loadPosition, %164
-    %p0:ptr<function, vec3<f32>, read_write> = var, %165
-    %167:u32 = load %i1
+    %148:void = call %doIgnore
+    %149:u32 = load %triangleIndex
+    %150:u32 = mul 3u, %149
+    %151:u32 = add %150, 0u
+    %152:ptr<storage, u32, read_write> = access %indices, 0u, %151
+    %153:u32 = load %152
+    %i0:ptr<function, u32, read_write> = var, %153
+    %155:u32 = load %triangleIndex
+    %156:u32 = mul 3u, %155
+    %157:u32 = add %156, 1u
+    %158:ptr<storage, u32, read_write> = access %indices, 0u, %157
+    %159:u32 = load %158
+    %i1:ptr<function, u32, read_write> = var, %159
+    %161:u32 = load %triangleIndex
+    %162:u32 = mul 3u, %161
+    %163:u32 = add %162, 2u
+    %164:ptr<storage, u32, read_write> = access %indices, 0u, %163
+    %165:u32 = load %164
+    %i2:ptr<function, u32, read_write> = var, %165
+    %167:u32 = load %i0
     %168:vec3<f32> = call %loadPosition, %167
-    %p1:ptr<function, vec3<f32>, read_write> = var, %168
-    %170:u32 = load %i2
+    %p0:ptr<function, vec3<f32>, read_write> = var, %168
+    %170:u32 = load %i1
     %171:vec3<f32> = call %loadPosition, %170
-    %p2:ptr<function, vec3<f32>, read_write> = var, %171
-    %173:vec3<f32> = load %p0
-    %174:vec3<f32> = load %p1
-    %175:vec3<f32> = add %173, %174
-    %176:vec3<f32> = load %p2
-    %177:vec3<f32> = add %175, %176
-    %178:vec3<f32> = div %177, 3.0f
-    %center:ptr<function, vec3<f32>, read_write> = var, %178
-    %180:vec3<f32> = load %center
-    %181:vec3<f32> = call %toVoxelPos, %180
-    %voxelPos_1:ptr<function, vec3<f32>, read_write> = var, %181  # %voxelPos_1: 'voxelPos'
-    %183:ptr<uniform, u32, read> = access %uniforms, 1u
-    %184:u32 = load %183
-    %185:vec3<f32> = load %voxelPos_1
-    %186:u32 = call %toIndex1D, %184, %185
-    %voxelIndex:ptr<function, u32, read_write> = var, %186
-    %188:u32 = load %voxelIndex
-    %189:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, %188
-    %190:u32 = atomicAdd %189, 1u
-    %acefg:ptr<function, u32, read_write> = var, %190
-    %192:u32 = load %triangleIndex
-    %193:bool = eq %192, 0u
-    if %193 [t: %b9] {  # if_2
-      %b9 = block {  # true
-        %194:ptr<storage, u32, read_write> = access %dbg, 4u
-        %195:ptr<uniform, u32, read> = access %uniforms, 1u
-        %196:u32 = load %195
-        store %194, %196
-        %197:ptr<storage, f32, read_write> = access %dbg, 8u
-        %198:f32 = load_vector_element %center, 0u
-        store %197, %198
-        %199:ptr<storage, f32, read_write> = access %dbg, 9u
-        %200:f32 = load_vector_element %center, 1u
-        store %199, %200
-        %201:ptr<storage, f32, read_write> = access %dbg, 10u
-        %202:f32 = load_vector_element %center, 2u
-        store %201, %202
+    %p1:ptr<function, vec3<f32>, read_write> = var, %171
+    %173:u32 = load %i2
+    %174:vec3<f32> = call %loadPosition, %173
+    %p2:ptr<function, vec3<f32>, read_write> = var, %174
+    %176:vec3<f32> = load %p0
+    %177:vec3<f32> = load %p1
+    %178:vec3<f32> = add %176, %177
+    %179:vec3<f32> = load %p2
+    %180:vec3<f32> = add %178, %179
+    %181:vec3<f32> = div %180, 3.0f
+    %center:ptr<function, vec3<f32>, read_write> = var, %181
+    %183:vec3<f32> = load %center
+    %184:vec3<f32> = call %toVoxelPos, %183
+    %voxelPos_1:ptr<function, vec3<f32>, read_write> = var, %184  # %voxelPos_1: 'voxelPos'
+    %186:ptr<uniform, u32, read> = access %uniforms, 1u
+    %187:u32 = load %186
+    %188:vec3<f32> = load %voxelPos_1
+    %189:u32 = call %toIndex1D, %187, %188
+    %voxelIndex:ptr<function, u32, read_write> = var, %189
+    %191:u32 = load %voxelIndex
+    %192:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, %191
+    %193:u32 = atomicAdd %192, 1u
+    %acefg:ptr<function, u32, read_write> = var, %193
+    %195:u32 = load %triangleIndex
+    %196:bool = eq %195, 0u
+    if %196 [t: $B9] {  # if_2
+      $B9: {  # true
+        %197:ptr<storage, u32, read_write> = access %dbg, 4u
+        %198:ptr<uniform, u32, read> = access %uniforms, 1u
+        %199:u32 = load %198
+        store %197, %199
+        %200:ptr<storage, f32, read_write> = access %dbg, 8u
+        %201:f32 = load_vector_element %center, 0u
+        store %200, %201
+        %202:ptr<storage, f32, read_write> = access %dbg, 9u
+        %203:f32 = load_vector_element %center, 1u
+        store %202, %203
+        %204:ptr<storage, f32, read_write> = access %dbg, 10u
+        %205:f32 = load_vector_element %center, 2u
+        store %204, %205
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%main_create_lut = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID_1:vec3<u32> [@global_invocation_id]):void -> %b10 {  # %GlobalInvocationID_1: 'GlobalInvocationID'
-  %b10 = block {
-    %205:u32 = access %GlobalInvocationID_1, 0u
-    %voxelIndex_1:ptr<function, u32, read_write> = var, %205  # %voxelIndex_1: 'voxelIndex'
-    %207:void = call %doIgnore
-    %208:ptr<uniform, u32, read> = access %uniforms, 1u
-    %209:u32 = load %208
-    %210:ptr<uniform, u32, read> = access %uniforms, 1u
-    %211:u32 = load %210
-    %212:u32 = mul %209, %211
+%main_create_lut = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID_1:vec3<u32> [@global_invocation_id]):void {  # %GlobalInvocationID_1: 'GlobalInvocationID'
+  $B10: {
+    %208:u32 = access %GlobalInvocationID_1, 0u
+    %voxelIndex_1:ptr<function, u32, read_write> = var, %208  # %voxelIndex_1: 'voxelIndex'
+    %210:void = call %doIgnore
+    %211:ptr<uniform, u32, read> = access %uniforms, 1u
+    %212:u32 = load %211
     %213:ptr<uniform, u32, read> = access %uniforms, 1u
     %214:u32 = load %213
     %215:u32 = mul %212, %214
-    %maxVoxels:ptr<function, u32, read_write> = var, %215
-    %217:u32 = load %voxelIndex_1
-    %218:u32 = load %maxVoxels
-    %219:bool = gte %217, %218
-    if %219 [t: %b11] {  # if_3
-      %b11 = block {  # true
+    %216:ptr<uniform, u32, read> = access %uniforms, 1u
+    %217:u32 = load %216
+    %218:u32 = mul %215, %217
+    %maxVoxels:ptr<function, u32, read_write> = var, %218
+    %220:u32 = load %voxelIndex_1
+    %221:u32 = load %maxVoxels
+    %222:bool = gte %220, %221
+    if %222 [t: $B11] {  # if_3
+      $B11: {  # true
         ret
       }
     }
-    %220:u32 = load %voxelIndex_1
-    %221:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, %220
-    %222:u32 = atomicLoad %221
-    %numTriangles:ptr<function, u32, read_write> = var, %222
+    %223:u32 = load %voxelIndex_1
+    %224:ptr<storage, atomic<u32>, read_write> = access %counters, 0u, %223
+    %225:u32 = atomicLoad %224
+    %numTriangles:ptr<function, u32, read_write> = var, %225
     %offset:ptr<function, i32, read_write> = var, -1i
-    %225:u32 = load %numTriangles
-    %226:bool = gt %225, 0u
-    if %226 [t: %b12] {  # if_4
-      %b12 = block {  # true
-        %227:ptr<storage, atomic<u32>, read_write> = access %dbg, 0u
-        %228:u32 = load %numTriangles
-        %229:u32 = atomicAdd %227, %228
-        %230:i32 = convert %229
-        store %offset, %230
+    %228:u32 = load %numTriangles
+    %229:bool = gt %228, 0u
+    if %229 [t: $B12] {  # if_4
+      $B12: {  # true
+        %230:ptr<storage, atomic<u32>, read_write> = access %dbg, 0u
+        %231:u32 = load %numTriangles
+        %232:u32 = atomicAdd %230, %231
+        %233:i32 = convert %232
+        store %offset, %233
         exit_if  # if_4
       }
     }
-    %231:u32 = load %voxelIndex_1
-    %232:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %231
-    %233:i32 = load %offset
-    %234:void = atomicStore %232, %233
+    %234:u32 = load %voxelIndex_1
+    %235:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %234
+    %236:i32 = load %offset
+    %237:void = atomicStore %235, %236
     ret
   }
 }
-%main_sort_triangles = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID_2:vec3<u32> [@global_invocation_id]):void -> %b13 {  # %GlobalInvocationID_2: 'GlobalInvocationID'
-  %b13 = block {
-    %237:u32 = access %GlobalInvocationID_2, 0u
-    %triangleIndex_1:ptr<function, u32, read_write> = var, %237  # %triangleIndex_1: 'triangleIndex'
-    %239:void = call %doIgnore
-    %240:u32 = load %triangleIndex_1
-    %241:ptr<uniform, u32, read> = access %uniforms, 0u
-    %242:u32 = load %241
-    %243:bool = gte %240, %242
-    if %243 [t: %b14] {  # if_5
-      %b14 = block {  # true
+%main_sort_triangles = @compute @workgroup_size(128, 1, 1) func(%GlobalInvocationID_2:vec3<u32> [@global_invocation_id]):void {  # %GlobalInvocationID_2: 'GlobalInvocationID'
+  $B13: {
+    %240:u32 = access %GlobalInvocationID_2, 0u
+    %triangleIndex_1:ptr<function, u32, read_write> = var, %240  # %triangleIndex_1: 'triangleIndex'
+    %242:void = call %doIgnore
+    %243:u32 = load %triangleIndex_1
+    %244:ptr<uniform, u32, read> = access %uniforms, 0u
+    %245:u32 = load %244
+    %246:bool = gte %243, %245
+    if %246 [t: $B14] {  # if_5
+      $B14: {  # true
         ret
       }
     }
-    %244:u32 = load %triangleIndex_1
-    %245:u32 = mul 3u, %244
-    %246:u32 = add %245, 0u
-    %247:ptr<storage, u32, read_write> = access %indices, 0u, %246
-    %248:u32 = load %247
-    %i0_1:ptr<function, u32, read_write> = var, %248  # %i0_1: 'i0'
-    %250:u32 = load %triangleIndex_1
-    %251:u32 = mul 3u, %250
-    %252:u32 = add %251, 1u
-    %253:ptr<storage, u32, read_write> = access %indices, 0u, %252
-    %254:u32 = load %253
-    %i1_1:ptr<function, u32, read_write> = var, %254  # %i1_1: 'i1'
-    %256:u32 = load %triangleIndex_1
-    %257:u32 = mul 3u, %256
-    %258:u32 = add %257, 2u
-    %259:ptr<storage, u32, read_write> = access %indices, 0u, %258
-    %260:u32 = load %259
-    %i2_1:ptr<function, u32, read_write> = var, %260  # %i2_1: 'i2'
-    %262:u32 = load %i0_1
-    %263:vec3<f32> = call %loadPosition, %262
-    %p0_1:ptr<function, vec3<f32>, read_write> = var, %263  # %p0_1: 'p0'
-    %265:u32 = load %i1_1
+    %247:u32 = load %triangleIndex_1
+    %248:u32 = mul 3u, %247
+    %249:u32 = add %248, 0u
+    %250:ptr<storage, u32, read_write> = access %indices, 0u, %249
+    %251:u32 = load %250
+    %i0_1:ptr<function, u32, read_write> = var, %251  # %i0_1: 'i0'
+    %253:u32 = load %triangleIndex_1
+    %254:u32 = mul 3u, %253
+    %255:u32 = add %254, 1u
+    %256:ptr<storage, u32, read_write> = access %indices, 0u, %255
+    %257:u32 = load %256
+    %i1_1:ptr<function, u32, read_write> = var, %257  # %i1_1: 'i1'
+    %259:u32 = load %triangleIndex_1
+    %260:u32 = mul 3u, %259
+    %261:u32 = add %260, 2u
+    %262:ptr<storage, u32, read_write> = access %indices, 0u, %261
+    %263:u32 = load %262
+    %i2_1:ptr<function, u32, read_write> = var, %263  # %i2_1: 'i2'
+    %265:u32 = load %i0_1
     %266:vec3<f32> = call %loadPosition, %265
-    %p1_1:ptr<function, vec3<f32>, read_write> = var, %266  # %p1_1: 'p1'
-    %268:u32 = load %i2_1
+    %p0_1:ptr<function, vec3<f32>, read_write> = var, %266  # %p0_1: 'p0'
+    %268:u32 = load %i1_1
     %269:vec3<f32> = call %loadPosition, %268
-    %p2_1:ptr<function, vec3<f32>, read_write> = var, %269  # %p2_1: 'p2'
-    %271:vec3<f32> = load %p0_1
-    %272:vec3<f32> = load %p1_1
-    %273:vec3<f32> = add %271, %272
-    %274:vec3<f32> = load %p2_1
-    %275:vec3<f32> = add %273, %274
-    %276:vec3<f32> = div %275, 3.0f
-    %center_1:ptr<function, vec3<f32>, read_write> = var, %276  # %center_1: 'center'
-    %278:vec3<f32> = load %center_1
-    %279:vec3<f32> = call %toVoxelPos, %278
-    %voxelPos_2:ptr<function, vec3<f32>, read_write> = var, %279  # %voxelPos_2: 'voxelPos'
-    %281:ptr<uniform, u32, read> = access %uniforms, 1u
-    %282:u32 = load %281
-    %283:vec3<f32> = load %voxelPos_2
-    %284:u32 = call %toIndex1D, %282, %283
-    %voxelIndex_2:ptr<function, u32, read_write> = var, %284  # %voxelIndex_2: 'voxelIndex'
-    %286:u32 = load %voxelIndex_2
-    %287:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %286
-    %288:i32 = atomicAdd %287, 1i
-    %triangleOffset:ptr<function, i32, read_write> = var, %288
+    %p1_1:ptr<function, vec3<f32>, read_write> = var, %269  # %p1_1: 'p1'
+    %271:u32 = load %i2_1
+    %272:vec3<f32> = call %loadPosition, %271
+    %p2_1:ptr<function, vec3<f32>, read_write> = var, %272  # %p2_1: 'p2'
+    %274:vec3<f32> = load %p0_1
+    %275:vec3<f32> = load %p1_1
+    %276:vec3<f32> = add %274, %275
+    %277:vec3<f32> = load %p2_1
+    %278:vec3<f32> = add %276, %277
+    %279:vec3<f32> = div %278, 3.0f
+    %center_1:ptr<function, vec3<f32>, read_write> = var, %279  # %center_1: 'center'
+    %281:vec3<f32> = load %center_1
+    %282:vec3<f32> = call %toVoxelPos, %281
+    %voxelPos_2:ptr<function, vec3<f32>, read_write> = var, %282  # %voxelPos_2: 'voxelPos'
+    %284:ptr<uniform, u32, read> = access %uniforms, 1u
+    %285:u32 = load %284
+    %286:vec3<f32> = load %voxelPos_2
+    %287:u32 = call %toIndex1D, %285, %286
+    %voxelIndex_2:ptr<function, u32, read_write> = var, %287  # %voxelIndex_2: 'voxelIndex'
+    %289:u32 = load %voxelIndex_2
+    %290:ptr<storage, atomic<i32>, read_write> = access %LUT, 0u, %289
+    %291:i32 = atomicAdd %290, 1i
+    %triangleOffset:ptr<function, i32, read_write> = var, %291
     ret
   }
 }
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B15: {
+    %295:bool = eq %rhs, 0u
+    %296:u32 = select %rhs, 1u, %295
+    %297:u32 = div %lhs, %296
+    ret %297
+  }
+}
+%tint_mod_u32 = func(%lhs_1:u32, %rhs_1:u32):u32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B16: {
+    %300:bool = eq %rhs_1, 0u
+    %301:u32 = select %rhs_1, 1u, %300
+    %302:u32 = let %301
+    %303:u32 = div %lhs_1, %302
+    %304:u32 = mul %303, %302
+    %305:u32 = sub %lhs_1, %304
+    ret %305
+  }
+}
+%tint_v3f32_to_v3u32 = func(%value:vec3<f32>):vec3<u32> {
+  $B17: {
+    %307:vec3<u32> = convert %value
+    %308:vec3<bool> = gte %value, vec3<f32>(0.0f)
+    %309:vec3<u32> = select vec3<u32>(0u), %307, %308
+    %310:vec3<bool> = lte %value, vec3<f32>(4294967040.0f)
+    %311:vec3<u32> = select vec3<u32>(4294967295u), %309, %310
+    ret %311
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/tint/1118.wgsl.expected.ir.msl b/test/tint/bug/tint/1118.wgsl.expected.ir.msl
index 2e2e81f..781fc11 100644
--- a/test/tint/bug/tint/1118.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1118.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Scene = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Scene = struct @align(16) {
   vEyePosition:vec4<f32> @offset(0)
 }
 
@@ -20,17 +20,18 @@
   glFragColor_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %fClipDistance3:ptr<private, f32, read_write> = var
   %fClipDistance4:ptr<private, f32, read_write> = var
   %x_29:ptr<uniform, Scene, read> = var @binding_point(0, 0)
   %x_49:ptr<uniform, Material, read> = var @binding_point(0, 1)
   %x_137:ptr<uniform, Mesh, read> = var @binding_point(0, 2)
   %glFragColor:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %viewDirectionW:ptr<function, vec3<f32>, read_write> = var
     %baseColor:ptr<function, vec4<f32>, read_write> = var
     %diffuseColor:ptr<function, vec3<f32>, read_write> = var
@@ -47,144 +48,181 @@
     %finalDiffuse:ptr<function, vec3<f32>, read_write> = var
     %finalSpecular:ptr<function, vec3<f32>, read_write> = var
     %color:ptr<function, vec4<f32>, read_write> = var
-    %x_9:f32 = load %fClipDistance3
-    %25:bool = gt %x_9, 0.0f
-    if %25 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+    %25:f32 = load %fClipDistance3
+    %x_9:f32 = let %25
+    %27:bool = gt %x_9, 0.0f
+    if %27 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %x_17:f32 = load %fClipDistance4
-    %27:bool = gt %x_17, 0.0f
-    if %27 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        discard
+    %28:f32 = load %fClipDistance4
+    %x_17:f32 = let %28
+    %30:bool = gt %x_17, 0.0f
+    if %30 [t: $B4] {  # if_2
+      $B4: {  # true
+        store %continue_execution, false
         exit_if  # if_2
       }
     }
-    %28:ptr<uniform, vec4<f32>, read> = access %x_29, 0u
-    %x_34:vec4<f32> = load %28
+    %31:ptr<uniform, vec4<f32>, read> = access %x_29, 0u
+    %32:vec4<f32> = load %31
+    %x_34:vec4<f32> = let %32
     %x_38:vec3<f32> = let vec3<f32>(0.0f)
-    %31:f32 = access %x_34, 0u
-    %32:f32 = access %x_34, 1u
-    %33:f32 = access %x_34, 2u
-    %34:vec3<f32> = construct %31, %32, %33
-    %35:vec3<f32> = sub %34, %x_38
-    %36:vec3<f32> = normalize %35
-    store %viewDirectionW, %36
+    %35:f32 = access %x_34, 0u
+    %36:f32 = access %x_34, 1u
+    %37:f32 = access %x_34, 2u
+    %38:vec3<f32> = construct %35, %36, %37
+    %39:vec3<f32> = sub %38, %x_38
+    %40:vec3<f32> = normalize %39
+    store %viewDirectionW, %40
     store %baseColor, vec4<f32>(1.0f)
-    %37:ptr<uniform, vec4<f32>, read> = access %x_49, 0u
-    %x_52:vec4<f32> = load %37
-    %39:f32 = access %x_52, 0u
-    %40:f32 = access %x_52, 1u
-    %41:f32 = access %x_52, 2u
-    %42:vec3<f32> = construct %39, %40, %41
-    store %diffuseColor, %42
-    %43:ptr<uniform, vec4<f32>, read> = access %x_49, 0u
-    %x_60:f32 = load_vector_element %43, 3u
+    %41:ptr<uniform, vec4<f32>, read> = access %x_49, 0u
+    %42:vec4<f32> = load %41
+    %x_52:vec4<f32> = let %42
+    %44:f32 = access %x_52, 0u
+    %45:f32 = access %x_52, 1u
+    %46:f32 = access %x_52, 2u
+    %47:vec3<f32> = construct %44, %45, %46
+    store %diffuseColor, %47
+    %48:ptr<uniform, vec4<f32>, read> = access %x_49, 0u
+    %49:f32 = load_vector_element %48, 3u
+    %x_60:f32 = let %49
     store %alpha, %x_60
     %x_62:vec3<f32> = let vec3<f32>(0.0f)
     %x_64:vec3<f32> = let vec3<f32>(0.0f)
     store %uvOffset, vec2<f32>(0.0f)
     %x_74:vec4<f32> = let vec4<f32>(0.0f)
-    %x_76:vec4<f32> = load %baseColor
-    %49:f32 = access %x_76, 0u
-    %50:f32 = access %x_76, 1u
-    %51:f32 = access %x_76, 2u
-    %52:vec3<f32> = construct %49, %50, %51
-    %53:f32 = access %x_74, 0u
-    %54:f32 = access %x_74, 1u
-    %55:f32 = access %x_74, 2u
-    %56:vec3<f32> = construct %53, %54, %55
-    %x_78:vec3<f32> = mul %52, %56
-    %x_79:vec4<f32> = load %baseColor
-    %59:f32 = access %x_78, 0u
-    %60:f32 = access %x_78, 1u
-    %61:f32 = access %x_78, 2u
-    %62:f32 = access %x_79, 3u
-    %63:vec4<f32> = construct %59, %60, %61, %62
-    store %baseColor, %63
+    %54:vec4<f32> = load %baseColor
+    %x_76:vec4<f32> = let %54
+    %56:f32 = access %x_76, 0u
+    %57:f32 = access %x_76, 1u
+    %58:f32 = access %x_76, 2u
+    %59:vec3<f32> = construct %56, %57, %58
+    %60:vec3<f32> = let %59
+    %61:f32 = access %x_74, 0u
+    %62:f32 = access %x_74, 1u
+    %63:f32 = access %x_74, 2u
+    %64:vec3<f32> = construct %61, %62, %63
+    %65:vec3<f32> = mul %60, %64
+    %x_78:vec3<f32> = let %65
+    %67:vec4<f32> = load %baseColor
+    %x_79:vec4<f32> = let %67
+    %69:f32 = access %x_78, 0u
+    %70:f32 = access %x_78, 1u
+    %71:f32 = access %x_78, 2u
+    %72:f32 = access %x_79, 3u
+    %73:vec4<f32> = construct %69, %70, %71, %72
+    store %baseColor, %73
     store %baseAmbientColor, vec3<f32>(1.0f)
     store %glossiness, 0.0f
     store %diffuseBase, vec3<f32>(0.0f)
     store %shadow, 1.0f
     store %refractionColor, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     store %reflectionColor, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
-    %64:ptr<uniform, vec3<f32>, read> = access %x_49, 3u
-    %x_94:vec3<f32> = load %64
+    %74:ptr<uniform, vec3<f32>, read> = access %x_49, 3u
+    %75:vec3<f32> = load %74
+    %x_94:vec3<f32> = let %75
     store %emissiveColor, %x_94
-    %x_96:vec3<f32> = load %diffuseBase
-    %x_97:vec3<f32> = load %diffuseColor
-    %x_99:vec3<f32> = load %emissiveColor
-    %69:ptr<uniform, vec3<f32>, read> = access %x_49, 1u
-    %x_103:vec3<f32> = load %69
-    %x_108:vec4<f32> = load %baseColor
-    %72:vec3<f32> = mul %x_96, %x_97
-    %73:vec3<f32> = add %72, %x_99
-    %74:vec3<f32> = add %73, %x_103
-    %75:vec3<f32> = clamp %74, vec3<f32>(0.0f), vec3<f32>(1.0f)
-    %76:f32 = access %x_108, 0u
-    %77:f32 = access %x_108, 1u
-    %78:f32 = access %x_108, 2u
-    %79:vec3<f32> = construct %76, %77, %78
-    %80:vec3<f32> = mul %75, %79
-    store %finalDiffuse, %80
-    store %finalSpecular, vec3<f32>(0.0f)
-    %x_113:vec3<f32> = load %finalDiffuse
-    %x_114:vec3<f32> = load %baseAmbientColor
-    %x_116:vec3<f32> = load %finalSpecular
-    %x_118:vec4<f32> = load %reflectionColor
-    %x_121:vec4<f32> = load %refractionColor
-    %86:vec3<f32> = mul %x_113, %x_114
-    %87:vec3<f32> = add %86, %x_116
-    %88:f32 = access %x_118, 0u
-    %89:f32 = access %x_118, 1u
-    %90:f32 = access %x_118, 2u
-    %91:vec3<f32> = construct %88, %89, %90
-    %92:vec3<f32> = add %87, %91
-    %93:f32 = access %x_121, 0u
-    %94:f32 = access %x_121, 1u
-    %95:f32 = access %x_121, 2u
+    %77:vec3<f32> = load %diffuseBase
+    %x_96:vec3<f32> = let %77
+    %79:vec3<f32> = load %diffuseColor
+    %x_97:vec3<f32> = let %79
+    %81:vec3<f32> = load %emissiveColor
+    %x_99:vec3<f32> = let %81
+    %83:ptr<uniform, vec3<f32>, read> = access %x_49, 1u
+    %84:vec3<f32> = load %83
+    %x_103:vec3<f32> = let %84
+    %86:vec4<f32> = load %baseColor
+    %x_108:vec4<f32> = let %86
+    %88:vec3<f32> = mul %x_96, %x_97
+    %89:vec3<f32> = add %88, %x_99
+    %90:vec3<f32> = add %89, %x_103
+    %91:vec3<f32> = clamp %90, vec3<f32>(0.0f), vec3<f32>(1.0f)
+    %92:vec3<f32> = let %91
+    %93:f32 = access %x_108, 0u
+    %94:f32 = access %x_108, 1u
+    %95:f32 = access %x_108, 2u
     %96:vec3<f32> = construct %93, %94, %95
-    %x_123:vec3<f32> = add %92, %96
-    %x_124:f32 = load %alpha
-    %99:f32 = access %x_123, 0u
-    %100:f32 = access %x_123, 1u
-    %101:f32 = access %x_123, 2u
-    %102:vec4<f32> = construct %99, %100, %101, %x_124
-    store %color, %102
-    %x_129:vec4<f32> = load %color
-    %104:f32 = access %x_129, 0u
-    %105:f32 = access %x_129, 1u
-    %106:f32 = access %x_129, 2u
-    %107:vec3<f32> = construct %104, %105, %106
-    %x_132:vec3<f32> = max %107, vec3<f32>(0.0f)
-    %x_133:vec4<f32> = load %color
-    %110:f32 = access %x_132, 0u
-    %111:f32 = access %x_132, 1u
-    %112:f32 = access %x_132, 2u
-    %113:f32 = access %x_133, 3u
-    %114:vec4<f32> = construct %110, %111, %112, %113
-    store %color, %114
-    %115:ptr<uniform, f32, read> = access %x_137, 0u
-    %x_140:f32 = load %115
-    %x_142:f32 = load_vector_element %color, 3u
-    %118:f32 = mul %x_142, %x_140
-    store_vector_element %color, 3u, %118
-    %x_147:vec4<f32> = load %color
+    %97:vec3<f32> = mul %92, %96
+    store %finalDiffuse, %97
+    store %finalSpecular, vec3<f32>(0.0f)
+    %98:vec3<f32> = load %finalDiffuse
+    %x_113:vec3<f32> = let %98
+    %100:vec3<f32> = load %baseAmbientColor
+    %x_114:vec3<f32> = let %100
+    %102:vec3<f32> = load %finalSpecular
+    %x_116:vec3<f32> = let %102
+    %104:vec4<f32> = load %reflectionColor
+    %x_118:vec4<f32> = let %104
+    %106:vec4<f32> = load %refractionColor
+    %x_121:vec4<f32> = let %106
+    %108:vec3<f32> = mul %x_113, %x_114
+    %109:vec3<f32> = add %108, %x_116
+    %110:f32 = access %x_118, 0u
+    %111:f32 = access %x_118, 1u
+    %112:f32 = access %x_118, 2u
+    %113:vec3<f32> = construct %110, %111, %112
+    %114:vec3<f32> = add %109, %113
+    %115:vec3<f32> = let %114
+    %116:f32 = access %x_121, 0u
+    %117:f32 = access %x_121, 1u
+    %118:f32 = access %x_121, 2u
+    %119:vec3<f32> = construct %116, %117, %118
+    %120:vec3<f32> = add %115, %119
+    %x_123:vec3<f32> = let %120
+    %122:f32 = load %alpha
+    %x_124:f32 = let %122
+    %124:f32 = access %x_123, 0u
+    %125:f32 = access %x_123, 1u
+    %126:f32 = access %x_123, 2u
+    %127:vec4<f32> = construct %124, %125, %126, %x_124
+    store %color, %127
+    %128:vec4<f32> = load %color
+    %x_129:vec4<f32> = let %128
+    %130:f32 = access %x_129, 0u
+    %131:f32 = access %x_129, 1u
+    %132:f32 = access %x_129, 2u
+    %133:vec3<f32> = construct %130, %131, %132
+    %134:vec3<f32> = max %133, vec3<f32>(0.0f)
+    %x_132:vec3<f32> = let %134
+    %136:vec4<f32> = load %color
+    %x_133:vec4<f32> = let %136
+    %138:f32 = access %x_132, 0u
+    %139:f32 = access %x_132, 1u
+    %140:f32 = access %x_132, 2u
+    %141:f32 = access %x_133, 3u
+    %142:vec4<f32> = construct %138, %139, %140, %141
+    store %color, %142
+    %143:ptr<uniform, f32, read> = access %x_137, 0u
+    %144:f32 = load %143
+    %x_140:f32 = let %144
+    %146:f32 = load_vector_element %color, 3u
+    %x_142:f32 = let %146
+    %148:f32 = mul %x_142, %x_140
+    store_vector_element %color, 3u, %148
+    %149:vec4<f32> = load %color
+    %x_147:vec4<f32> = let %149
     store %glFragColor, %x_147
     ret
   }
 }
-%tint_symbol = @fragment func(%fClipDistance3_param:f32 [@location(2)], %fClipDistance4_param:f32 [@location(3)]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%fClipDistance3_param:f32 [@location(2)], %fClipDistance4_param:f32 [@location(3)]):main_out {
+  $B5: {
     store %fClipDistance3, %fClipDistance3_param
     store %fClipDistance4, %fClipDistance4_param
-    %123:void = call %main_1
-    %124:vec4<f32> = load %glFragColor
-    %125:main_out = construct %124
-    ret %125
+    %154:void = call %main_1
+    %155:vec4<f32> = load %glFragColor
+    %156:main_out = construct %155
+    %157:bool = load %continue_execution
+    %158:bool = eq %157, false
+    if %158 [t: $B6] {  # if_3
+      $B6: {  # true
+        terminate_invocation
+      }
+    }
+    ret %156
   }
 }
 
diff --git a/test/tint/bug/tint/1121.wgsl.expected.ir.msl b/test/tint/bug/tint/1121.wgsl.expected.ir.msl
index 87c86a1..02a6258 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1121.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: LightData = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: LightData = struct @align(16) {
   position:vec4<f32> @offset(0)
   color:vec3<f32> @offset(16)
   radius:f32 @offset(28)
@@ -36,407 +36,414 @@
   fullScreenSize:vec4<f32> @offset(160)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %lightsBuffer:ptr<storage, LightsBuffer, read_write> = var @binding_point(0, 0)
   %tileLightId:ptr<storage, Tiles, read_write> = var @binding_point(1, 0)
   %config:ptr<uniform, Config, read> = var @binding_point(2, 0)
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(3, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(64, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(64, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B2: {
     %7:u32 = access %GlobalInvocationID, 0u
     %index:ptr<function, u32, read_write> = var, %7
     %9:u32 = load %index
     %10:ptr<uniform, u32, read> = access %config, 0u
     %11:u32 = load %10
     %12:bool = gte %9, %11
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
     %13:u32 = load %index
     %14:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %13, 0u
-    %15:u32 = load %index
-    %16:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %15, 0u
-    %17:f32 = load_vector_element %16, 1u
-    %18:f32 = sub %17, 0.10000000149011611938f
-    %19:u32 = load %index
-    %20:f32 = convert %19
+    %15:ptr<storage, vec4<f32>, read_write> = let %14
+    %16:u32 = load %index
+    %17:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %16, 0u
+    %18:f32 = load_vector_element %17, 1u
+    %19:f32 = sub %18, 0.10000000149011611938f
+    %20:f32 = let %19
     %21:u32 = load %index
     %22:f32 = convert %21
-    %23:f32 = div %22, 64.0f
-    %24:f32 = floor %23
-    %25:f32 = mul 64.0f, %24
-    %26:f32 = sub %20, %25
-    %27:f32 = mul 0.00100000004749745131f, %26
-    %28:f32 = add %18, %27
-    store_vector_element %14, 1u, %28
-    %29:u32 = load %index
-    %30:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %29, 0u
-    %31:f32 = load_vector_element %30, 1u
-    %32:ptr<uniform, vec4<f32>, read> = access %uniforms, 0u
-    %33:f32 = load_vector_element %32, 1u
-    %34:bool = lt %31, %33
-    if %34 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %35:u32 = load %index
-        %36:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %35, 0u
-        %37:ptr<uniform, vec4<f32>, read> = access %uniforms, 1u
-        %38:f32 = load_vector_element %37, 1u
-        store_vector_element %36, 1u, %38
+    %23:f32 = let %22
+    %24:u32 = load %index
+    %25:f32 = convert %24
+    %26:f32 = div %25, 64.0f
+    %27:f32 = floor %26
+    %28:f32 = mul 64.0f, %27
+    %29:f32 = sub %23, %28
+    %30:f32 = mul 0.00100000004749745131f, %29
+    %31:f32 = add %20, %30
+    store_vector_element %15, 1u, %31
+    %32:u32 = load %index
+    %33:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %32, 0u
+    %34:f32 = load_vector_element %33, 1u
+    %35:ptr<uniform, vec4<f32>, read> = access %uniforms, 0u
+    %36:f32 = load_vector_element %35, 1u
+    %37:bool = lt %34, %36
+    if %37 [t: $B4] {  # if_2
+      $B4: {  # true
+        %38:u32 = load %index
+        %39:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %38, 0u
+        %40:ptr<uniform, vec4<f32>, read> = access %uniforms, 1u
+        %41:f32 = load_vector_element %40, 1u
+        store_vector_element %39, 1u, %41
         exit_if  # if_2
       }
     }
-    %39:ptr<uniform, mat4x4<f32>, read> = access %uniforms, 3u
-    %40:mat4x4<f32> = load %39
-    %M:ptr<function, mat4x4<f32>, read_write> = var, %40
-    %42:ptr<function, vec4<f32>, read_write> = access %M, 3i
-    %43:f32 = load_vector_element %42, 2i
-    %44:f32 = negation %43
-    %45:ptr<function, vec4<f32>, read_write> = access %M, 2i
+    %42:ptr<uniform, mat4x4<f32>, read> = access %uniforms, 3u
+    %43:mat4x4<f32> = load %42
+    %M:ptr<function, mat4x4<f32>, read_write> = var, %43
+    %45:ptr<function, vec4<f32>, read_write> = access %M, 3i
     %46:f32 = load_vector_element %45, 2i
-    %47:f32 = add -1.0f, %46
-    %48:f32 = div %44, %47
-    %viewNear:ptr<function, f32, read_write> = var, %48
-    %50:ptr<function, vec4<f32>, read_write> = access %M, 3i
-    %51:f32 = load_vector_element %50, 2i
-    %52:f32 = negation %51
-    %53:ptr<function, vec4<f32>, read_write> = access %M, 2i
+    %47:f32 = negation %46
+    %48:ptr<function, vec4<f32>, read_write> = access %M, 2i
+    %49:f32 = load_vector_element %48, 2i
+    %50:f32 = add -1.0f, %49
+    %51:f32 = div %47, %50
+    %viewNear:ptr<function, f32, read_write> = var, %51
+    %53:ptr<function, vec4<f32>, read_write> = access %M, 3i
     %54:f32 = load_vector_element %53, 2i
-    %55:f32 = add 1.0f, %54
-    %56:f32 = div %52, %55
-    %viewFar:ptr<function, f32, read_write> = var, %56
-    %58:u32 = load %index
-    %59:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %58, 0u
-    %60:vec4<f32> = load %59
-    %lightPos:ptr<function, vec4<f32>, read_write> = var, %60
-    %62:ptr<uniform, mat4x4<f32>, read> = access %uniforms, 2u
-    %63:mat4x4<f32> = load %62
-    %64:vec4<f32> = load %lightPos
-    %65:vec4<f32> = mul %63, %64
-    store %lightPos, %65
-    %66:vec4<f32> = load %lightPos
-    %67:f32 = load_vector_element %lightPos, 3u
-    %68:vec4<f32> = div %66, %67
+    %55:f32 = negation %54
+    %56:ptr<function, vec4<f32>, read_write> = access %M, 2i
+    %57:f32 = load_vector_element %56, 2i
+    %58:f32 = add 1.0f, %57
+    %59:f32 = div %55, %58
+    %viewFar:ptr<function, f32, read_write> = var, %59
+    %61:u32 = load %index
+    %62:ptr<storage, vec4<f32>, read_write> = access %lightsBuffer, 0u, %61, 0u
+    %63:vec4<f32> = load %62
+    %lightPos:ptr<function, vec4<f32>, read_write> = var, %63
+    %65:ptr<uniform, mat4x4<f32>, read> = access %uniforms, 2u
+    %66:mat4x4<f32> = load %65
+    %67:vec4<f32> = load %lightPos
+    %68:vec4<f32> = mul %66, %67
     store %lightPos, %68
-    %69:u32 = load %index
-    %70:ptr<storage, f32, read_write> = access %lightsBuffer, 0u, %69, 2u
-    %71:f32 = load %70
-    %lightRadius:ptr<function, f32, read_write> = var, %71
-    %73:vec4<f32> = load %lightPos
-    %74:f32 = load %lightRadius
-    %75:vec3<f32> = construct %74
-    %76:vec4<f32> = construct %75, 0.0f
-    %77:vec4<f32> = sub %73, %76
-    %boxMin:ptr<function, vec4<f32>, read_write> = var, %77
-    %79:vec4<f32> = load %lightPos
-    %80:f32 = load %lightRadius
-    %81:vec3<f32> = construct %80
-    %82:vec4<f32> = construct %81, 0.0f
-    %83:vec4<f32> = add %79, %82
-    %boxMax:ptr<function, vec4<f32>, read_write> = var, %83
+    %69:vec4<f32> = load %lightPos
+    %70:f32 = load_vector_element %lightPos, 3u
+    %71:vec4<f32> = div %69, %70
+    store %lightPos, %71
+    %72:u32 = load %index
+    %73:ptr<storage, f32, read_write> = access %lightsBuffer, 0u, %72, 2u
+    %74:f32 = load %73
+    %lightRadius:ptr<function, f32, read_write> = var, %74
+    %76:vec4<f32> = load %lightPos
+    %77:vec4<f32> = let %76
+    %78:f32 = load %lightRadius
+    %79:vec3<f32> = construct %78
+    %80:vec4<f32> = construct %79, 0.0f
+    %81:vec4<f32> = sub %77, %80
+    %boxMin:ptr<function, vec4<f32>, read_write> = var, %81
+    %83:vec4<f32> = load %lightPos
+    %84:vec4<f32> = let %83
+    %85:f32 = load %lightRadius
+    %86:vec3<f32> = construct %85
+    %87:vec4<f32> = construct %86, 0.0f
+    %88:vec4<f32> = add %84, %87
+    %boxMax:ptr<function, vec4<f32>, read_write> = var, %88
     %frustumPlanes:ptr<function, array<vec4<f32>, 6>, read_write> = var
-    %86:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 4i
-    %87:f32 = load %viewNear
-    %88:vec4<f32> = construct 0.0f, 0.0f, -1.0f, %87
-    store %86, %88
-    %89:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 5i
-    %90:f32 = load %viewFar
-    %91:f32 = negation %90
-    %92:vec4<f32> = construct 0.0f, 0.0f, 1.0f, %91
-    store %89, %92
+    %91:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 4i
+    %92:f32 = load %viewNear
+    %93:vec4<f32> = construct 0.0f, 0.0f, -1.0f, %92
+    store %91, %93
+    %94:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 5i
+    %95:f32 = load %viewFar
+    %96:f32 = negation %95
+    %97:vec4<f32> = construct 0.0f, 0.0f, 1.0f, %96
+    store %94, %97
     %TILE_SIZE:i32 = let 16i
     %TILE_COUNT_X:i32 = let 2i
     %TILE_COUNT_Y:i32 = let 2i
-    loop [i: %b5, b: %b6, c: %b7] {  # loop_1
-      %b5 = block {  # initializer
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
         %y:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b6
+        next_iteration  # -> $B6
       }
-      %b6 = block {  # body
-        %97:i32 = load %y
-        %98:bool = lt %97, %TILE_COUNT_Y
-        if %98 [t: %b8, f: %b9] {  # if_3
-          %b8 = block {  # true
+      $B6: {  # body
+        %102:i32 = load %y
+        %103:bool = lt %102, %TILE_COUNT_Y
+        if %103 [t: $B8, f: $B9] {  # if_3
+          $B8: {  # true
             exit_if  # if_3
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [i: %b10, b: %b11, c: %b12] {  # loop_2
-          %b10 = block {  # initializer
+        loop [i: $B10, b: $B11, c: $B12] {  # loop_2
+          $B10: {  # initializer
             %x:ptr<function, i32, read_write> = var, 0i
-            next_iteration %b11
+            next_iteration  # -> $B11
           }
-          %b11 = block {  # body
-            %100:i32 = load %x
-            %101:bool = lt %100, %TILE_COUNT_X
-            if %101 [t: %b13, f: %b14] {  # if_4
-              %b13 = block {  # true
+          $B11: {  # body
+            %105:i32 = load %x
+            %106:bool = lt %105, %TILE_COUNT_X
+            if %106 [t: $B13, f: $B14] {  # if_4
+              $B13: {  # true
                 exit_if  # if_4
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_2
               }
             }
-            %102:i32 = load %x
-            %103:i32 = mul %102, %TILE_SIZE
-            %104:i32 = load %y
-            %105:i32 = mul %104, %TILE_SIZE
-            %106:vec2<i32> = construct %103, %105
-            %tilePixel0Idx:ptr<function, vec2<i32>, read_write> = var, %106
-            %108:vec2<i32> = load %tilePixel0Idx
-            %109:vec2<f32> = convert %108
-            %110:vec2<f32> = mul 2.0f, %109
-            %111:ptr<uniform, vec4<f32>, read> = access %uniforms, 4u
-            %112:vec4<f32> = load %111
-            %113:vec2<f32> = swizzle %112, xy
-            %114:vec2<f32> = div %110, %113
-            %115:vec2<f32> = sub %114, vec2<f32>(1.0f)
-            %floorCoord:ptr<function, vec2<f32>, read_write> = var, %115
-            %117:vec2<i32> = load %tilePixel0Idx
-            %118:vec2<i32> = construct %TILE_SIZE
-            %119:vec2<i32> = add %117, %118
-            %120:vec2<f32> = convert %119
-            %121:vec2<f32> = mul 2.0f, %120
-            %122:ptr<uniform, vec4<f32>, read> = access %uniforms, 4u
-            %123:vec4<f32> = load %122
-            %124:vec2<f32> = swizzle %123, xy
-            %125:vec2<f32> = div %121, %124
-            %126:vec2<f32> = sub %125, vec2<f32>(1.0f)
-            %ceilCoord:ptr<function, vec2<f32>, read_write> = var, %126
-            %128:f32 = load %viewNear
-            %129:f32 = negation %128
-            %130:f32 = load_vector_element %floorCoord, 0u
-            %131:f32 = mul %129, %130
-            %132:ptr<function, vec4<f32>, read_write> = access %M, 2i
-            %133:f32 = load_vector_element %132, 0i
+            %107:i32 = load %x
+            %108:i32 = mul %107, %TILE_SIZE
+            %109:i32 = load %y
+            %110:i32 = mul %109, %TILE_SIZE
+            %111:vec2<i32> = construct %108, %110
+            %tilePixel0Idx:ptr<function, vec2<i32>, read_write> = var, %111
+            %113:vec2<i32> = load %tilePixel0Idx
+            %114:vec2<f32> = convert %113
+            %115:vec2<f32> = mul 2.0f, %114
+            %116:ptr<uniform, vec4<f32>, read> = access %uniforms, 4u
+            %117:vec4<f32> = load %116
+            %118:vec2<f32> = swizzle %117, xy
+            %119:vec2<f32> = div %115, %118
+            %120:vec2<f32> = sub %119, vec2<f32>(1.0f)
+            %floorCoord:ptr<function, vec2<f32>, read_write> = var, %120
+            %122:vec2<i32> = load %tilePixel0Idx
+            %123:vec2<i32> = let %122
+            %124:vec2<i32> = construct %TILE_SIZE
+            %125:vec2<i32> = add %123, %124
+            %126:vec2<f32> = convert %125
+            %127:vec2<f32> = mul 2.0f, %126
+            %128:ptr<uniform, vec4<f32>, read> = access %uniforms, 4u
+            %129:vec4<f32> = load %128
+            %130:vec2<f32> = swizzle %129, xy
+            %131:vec2<f32> = div %127, %130
+            %132:vec2<f32> = sub %131, vec2<f32>(1.0f)
+            %ceilCoord:ptr<function, vec2<f32>, read_write> = var, %132
             %134:f32 = load %viewNear
-            %135:f32 = mul %133, %134
-            %136:f32 = sub %131, %135
-            %137:ptr<function, vec4<f32>, read_write> = access %M, 0i
-            %138:f32 = load_vector_element %137, 0i
-            %139:f32 = div %136, %138
+            %135:f32 = negation %134
+            %136:f32 = load_vector_element %floorCoord, 0u
+            %137:f32 = mul %135, %136
+            %138:ptr<function, vec4<f32>, read_write> = access %M, 2i
+            %139:f32 = load_vector_element %138, 0i
             %140:f32 = load %viewNear
-            %141:f32 = negation %140
-            %142:f32 = load_vector_element %floorCoord, 1u
-            %143:f32 = mul %141, %142
-            %144:ptr<function, vec4<f32>, read_write> = access %M, 2i
-            %145:f32 = load_vector_element %144, 1i
+            %141:f32 = mul %139, %140
+            %142:f32 = sub %137, %141
+            %143:ptr<function, vec4<f32>, read_write> = access %M, 0i
+            %144:f32 = load_vector_element %143, 0i
+            %145:f32 = div %142, %144
             %146:f32 = load %viewNear
-            %147:f32 = mul %145, %146
-            %148:f32 = sub %143, %147
-            %149:ptr<function, vec4<f32>, read_write> = access %M, 1i
-            %150:f32 = load_vector_element %149, 1i
-            %151:f32 = div %148, %150
-            %152:vec2<f32> = construct %139, %151
-            %viewFloorCoord:ptr<function, vec2<f32>, read_write> = var, %152
-            %154:f32 = load %viewNear
-            %155:f32 = negation %154
-            %156:f32 = load_vector_element %ceilCoord, 0u
-            %157:f32 = mul %155, %156
-            %158:ptr<function, vec4<f32>, read_write> = access %M, 2i
-            %159:f32 = load_vector_element %158, 0i
+            %147:f32 = negation %146
+            %148:f32 = load_vector_element %floorCoord, 1u
+            %149:f32 = mul %147, %148
+            %150:ptr<function, vec4<f32>, read_write> = access %M, 2i
+            %151:f32 = load_vector_element %150, 1i
+            %152:f32 = load %viewNear
+            %153:f32 = mul %151, %152
+            %154:f32 = sub %149, %153
+            %155:ptr<function, vec4<f32>, read_write> = access %M, 1i
+            %156:f32 = load_vector_element %155, 1i
+            %157:f32 = div %154, %156
+            %158:vec2<f32> = construct %145, %157
+            %viewFloorCoord:ptr<function, vec2<f32>, read_write> = var, %158
             %160:f32 = load %viewNear
-            %161:f32 = mul %159, %160
-            %162:f32 = sub %157, %161
-            %163:ptr<function, vec4<f32>, read_write> = access %M, 0i
-            %164:f32 = load_vector_element %163, 0i
-            %165:f32 = div %162, %164
+            %161:f32 = negation %160
+            %162:f32 = load_vector_element %ceilCoord, 0u
+            %163:f32 = mul %161, %162
+            %164:ptr<function, vec4<f32>, read_write> = access %M, 2i
+            %165:f32 = load_vector_element %164, 0i
             %166:f32 = load %viewNear
-            %167:f32 = negation %166
-            %168:f32 = load_vector_element %ceilCoord, 1u
-            %169:f32 = mul %167, %168
-            %170:ptr<function, vec4<f32>, read_write> = access %M, 2i
-            %171:f32 = load_vector_element %170, 1i
+            %167:f32 = mul %165, %166
+            %168:f32 = sub %163, %167
+            %169:ptr<function, vec4<f32>, read_write> = access %M, 0i
+            %170:f32 = load_vector_element %169, 0i
+            %171:f32 = div %168, %170
             %172:f32 = load %viewNear
-            %173:f32 = mul %171, %172
-            %174:f32 = sub %169, %173
-            %175:ptr<function, vec4<f32>, read_write> = access %M, 1i
-            %176:f32 = load_vector_element %175, 1i
-            %177:f32 = div %174, %176
-            %178:vec2<f32> = construct %165, %177
-            %viewCeilCoord:ptr<function, vec2<f32>, read_write> = var, %178
-            %180:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 0i
-            %181:f32 = load_vector_element %viewFloorCoord, 0u
-            %182:f32 = negation %181
-            %183:f32 = load %viewNear
-            %184:f32 = div %182, %183
-            %185:vec4<f32> = construct 1.0f, 0.0f, %184, 0.0f
-            store %180, %185
-            %186:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 1i
-            %187:f32 = load_vector_element %viewCeilCoord, 0u
-            %188:f32 = load %viewNear
-            %189:f32 = div %187, %188
-            %190:vec4<f32> = construct -1.0f, 0.0f, %189, 0.0f
-            store %186, %190
-            %191:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 2i
-            %192:f32 = load_vector_element %viewFloorCoord, 1u
-            %193:f32 = negation %192
+            %173:f32 = negation %172
+            %174:f32 = load_vector_element %ceilCoord, 1u
+            %175:f32 = mul %173, %174
+            %176:ptr<function, vec4<f32>, read_write> = access %M, 2i
+            %177:f32 = load_vector_element %176, 1i
+            %178:f32 = load %viewNear
+            %179:f32 = mul %177, %178
+            %180:f32 = sub %175, %179
+            %181:ptr<function, vec4<f32>, read_write> = access %M, 1i
+            %182:f32 = load_vector_element %181, 1i
+            %183:f32 = div %180, %182
+            %184:vec2<f32> = construct %171, %183
+            %viewCeilCoord:ptr<function, vec2<f32>, read_write> = var, %184
+            %186:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 0i
+            %187:f32 = load_vector_element %viewFloorCoord, 0u
+            %188:f32 = negation %187
+            %189:f32 = load %viewNear
+            %190:f32 = div %188, %189
+            %191:vec4<f32> = construct 1.0f, 0.0f, %190, 0.0f
+            store %186, %191
+            %192:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 1i
+            %193:f32 = load_vector_element %viewCeilCoord, 0u
             %194:f32 = load %viewNear
             %195:f32 = div %193, %194
-            %196:vec4<f32> = construct 0.0f, 1.0f, %195, 0.0f
-            store %191, %196
-            %197:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 3i
-            %198:f32 = load_vector_element %viewCeilCoord, 1u
-            %199:f32 = load %viewNear
-            %200:f32 = div %198, %199
-            %201:vec4<f32> = construct 0.0f, -1.0f, %200, 0.0f
-            store %197, %201
+            %196:vec4<f32> = construct -1.0f, 0.0f, %195, 0.0f
+            store %192, %196
+            %197:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 2i
+            %198:f32 = load_vector_element %viewFloorCoord, 1u
+            %199:f32 = negation %198
+            %200:f32 = load %viewNear
+            %201:f32 = div %199, %200
+            %202:vec4<f32> = construct 0.0f, 1.0f, %201, 0.0f
+            store %197, %202
+            %203:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, 3i
+            %204:f32 = load_vector_element %viewCeilCoord, 1u
+            %205:f32 = load %viewNear
+            %206:f32 = div %204, %205
+            %207:vec4<f32> = construct 0.0f, -1.0f, %206, 0.0f
+            store %203, %207
             %dp:ptr<function, f32, read_write> = var, 0.0f
-            loop [i: %b15, b: %b16, c: %b17] {  # loop_3
-              %b15 = block {  # initializer
+            loop [i: $B15, b: $B16, c: $B17] {  # loop_3
+              $B15: {  # initializer
                 %i:ptr<function, u32, read_write> = var, 0u
-                next_iteration %b16
+                next_iteration  # -> $B16
               }
-              %b16 = block {  # body
-                %204:u32 = load %i
-                %205:bool = lt %204, 6u
-                if %205 [t: %b18, f: %b19] {  # if_5
-                  %b18 = block {  # true
+              $B16: {  # body
+                %210:u32 = load %i
+                %211:bool = lt %210, 6u
+                if %211 [t: $B18, f: $B19] {  # if_5
+                  $B18: {  # true
                     exit_if  # if_5
                   }
-                  %b19 = block {  # false
+                  $B19: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %p:ptr<function, vec4<f32>, read_write> = var
-                %207:u32 = load %i
-                %208:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, %207
-                %209:f32 = load_vector_element %208, 0u
-                %210:bool = gt %209, 0.0f
-                if %210 [t: %b20, f: %b21] {  # if_6
-                  %b20 = block {  # true
-                    %211:f32 = load_vector_element %boxMax, 0u
-                    store_vector_element %p, 0u, %211
-                    exit_if  # if_6
-                  }
-                  %b21 = block {  # false
-                    %212:f32 = load_vector_element %boxMin, 0u
-                    store_vector_element %p, 0u, %212
-                    exit_if  # if_6
-                  }
-                }
                 %213:u32 = load %i
                 %214:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, %213
-                %215:f32 = load_vector_element %214, 1u
+                %215:f32 = load_vector_element %214, 0u
                 %216:bool = gt %215, 0.0f
-                if %216 [t: %b22, f: %b23] {  # if_7
-                  %b22 = block {  # true
-                    %217:f32 = load_vector_element %boxMax, 1u
-                    store_vector_element %p, 1u, %217
-                    exit_if  # if_7
+                if %216 [t: $B20, f: $B21] {  # if_6
+                  $B20: {  # true
+                    %217:f32 = load_vector_element %boxMax, 0u
+                    store_vector_element %p, 0u, %217
+                    exit_if  # if_6
                   }
-                  %b23 = block {  # false
-                    %218:f32 = load_vector_element %boxMin, 1u
-                    store_vector_element %p, 1u, %218
-                    exit_if  # if_7
+                  $B21: {  # false
+                    %218:f32 = load_vector_element %boxMin, 0u
+                    store_vector_element %p, 0u, %218
+                    exit_if  # if_6
                   }
                 }
                 %219:u32 = load %i
                 %220:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, %219
-                %221:f32 = load_vector_element %220, 2u
+                %221:f32 = load_vector_element %220, 1u
                 %222:bool = gt %221, 0.0f
-                if %222 [t: %b24, f: %b25] {  # if_8
-                  %b24 = block {  # true
-                    %223:f32 = load_vector_element %boxMax, 2u
-                    store_vector_element %p, 2u, %223
+                if %222 [t: $B22, f: $B23] {  # if_7
+                  $B22: {  # true
+                    %223:f32 = load_vector_element %boxMax, 1u
+                    store_vector_element %p, 1u, %223
+                    exit_if  # if_7
+                  }
+                  $B23: {  # false
+                    %224:f32 = load_vector_element %boxMin, 1u
+                    store_vector_element %p, 1u, %224
+                    exit_if  # if_7
+                  }
+                }
+                %225:u32 = load %i
+                %226:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, %225
+                %227:f32 = load_vector_element %226, 2u
+                %228:bool = gt %227, 0.0f
+                if %228 [t: $B24, f: $B25] {  # if_8
+                  $B24: {  # true
+                    %229:f32 = load_vector_element %boxMax, 2u
+                    store_vector_element %p, 2u, %229
                     exit_if  # if_8
                   }
-                  %b25 = block {  # false
-                    %224:f32 = load_vector_element %boxMin, 2u
-                    store_vector_element %p, 2u, %224
+                  $B25: {  # false
+                    %230:f32 = load_vector_element %boxMin, 2u
+                    store_vector_element %p, 2u, %230
                     exit_if  # if_8
                   }
                 }
                 store_vector_element %p, 3u, 1.0f
-                %225:f32 = load %dp
-                %226:vec4<f32> = load %p
-                %227:u32 = load %i
-                %228:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, %227
-                %229:vec4<f32> = load %228
-                %230:f32 = dot %226, %229
-                %231:f32 = min 0.0f, %230
-                %232:f32 = add %225, %231
-                store %dp, %232
-                continue %b17
+                %231:f32 = load %dp
+                %232:f32 = let %231
+                %233:vec4<f32> = load %p
+                %234:u32 = load %i
+                %235:ptr<function, vec4<f32>, read_write> = access %frustumPlanes, %234
+                %236:vec4<f32> = load %235
+                %237:f32 = dot %233, %236
+                %238:f32 = min 0.0f, %237
+                %239:f32 = add %232, %238
+                store %dp, %239
+                continue  # -> $B17
               }
-              %b17 = block {  # continuing
-                %233:u32 = load %i
-                %234:u32 = add %233, 1u
-                store %i, %234
-                next_iteration %b16
+              $B17: {  # continuing
+                %240:u32 = load %i
+                %241:u32 = add %240, 1u
+                store %i, %241
+                next_iteration  # -> $B16
               }
             }
-            %235:f32 = load %dp
-            %236:bool = gte %235, 0.0f
-            if %236 [t: %b26] {  # if_9
-              %b26 = block {  # true
-                %237:i32 = load %x
-                %238:i32 = load %y
-                %239:i32 = mul %238, %TILE_COUNT_X
-                %240:i32 = add %237, %239
-                %241:u32 = convert %240
-                %tileId:ptr<function, u32, read_write> = var, %241
-                %243:u32 = load %tileId
-                %244:bool = lt %243, 0u
-                %245:bool = if %244 [t: %b27, f: %b28] {  # if_10
-                  %b27 = block {  # true
+            %242:f32 = load %dp
+            %243:bool = gte %242, 0.0f
+            if %243 [t: $B26] {  # if_9
+              $B26: {  # true
+                %244:i32 = load %x
+                %245:i32 = load %y
+                %246:i32 = mul %245, %TILE_COUNT_X
+                %247:i32 = add %244, %246
+                %248:u32 = convert %247
+                %tileId:ptr<function, u32, read_write> = var, %248
+                %250:u32 = load %tileId
+                %251:bool = lt %250, 0u
+                %252:bool = if %251 [t: $B27, f: $B28] {  # if_10
+                  $B27: {  # true
                     exit_if true  # if_10
                   }
-                  %b28 = block {  # false
-                    %246:u32 = load %tileId
-                    %247:ptr<uniform, u32, read> = access %config, 1u
-                    %248:u32 = load %247
-                    %249:bool = gte %246, %248
-                    exit_if %249  # if_10
+                  $B28: {  # false
+                    %253:u32 = load %tileId
+                    %254:ptr<uniform, u32, read> = access %config, 1u
+                    %255:u32 = load %254
+                    %256:bool = gte %253, %255
+                    exit_if %256  # if_10
                   }
                 }
-                if %245 [t: %b29] {  # if_11
-                  %b29 = block {  # true
-                    continue %b12
+                if %252 [t: $B29] {  # if_11
+                  $B29: {  # true
+                    continue  # -> $B12
                   }
                 }
-                %250:u32 = load %tileId
-                %251:ptr<storage, atomic<u32>, read_write> = access %tileLightId, 0u, %250, 0u
-                %252:u32 = atomicAdd %251, 1u
-                %offset:ptr<function, u32, read_write> = var, %252
-                %254:u32 = load %offset
-                %255:ptr<uniform, u32, read> = access %config, 4u
-                %256:u32 = load %255
-                %257:bool = gte %254, %256
-                if %257 [t: %b30] {  # if_12
-                  %b30 = block {  # true
-                    continue %b12
+                %257:u32 = load %tileId
+                %258:ptr<storage, atomic<u32>, read_write> = access %tileLightId, 0u, %257, 0u
+                %259:u32 = atomicAdd %258, 1u
+                %offset:ptr<function, u32, read_write> = var, %259
+                %261:u32 = load %offset
+                %262:ptr<uniform, u32, read> = access %config, 4u
+                %263:u32 = load %262
+                %264:bool = gte %261, %263
+                if %264 [t: $B30] {  # if_12
+                  $B30: {  # true
+                    continue  # -> $B12
                   }
                 }
-                %258:u32 = load %tileId
-                %259:u32 = load %offset
-                %260:ptr<storage, u32, read_write> = access %tileLightId, 0u, %258, 1u, %259
-                %261:u32 = access %GlobalInvocationID, 0u
-                store %260, %261
+                %265:u32 = load %tileId
+                %266:u32 = load %offset
+                %267:ptr<storage, u32, read_write> = access %tileLightId, 0u, %265, 1u, %266
+                %268:u32 = access %GlobalInvocationID, 0u
+                store %267, %268
                 exit_if  # if_9
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %262:i32 = load %x
-            %263:i32 = add %262, 1i
-            store %x, %263
-            next_iteration %b11
+          $B12: {  # continuing
+            %269:i32 = load %x
+            %270:i32 = add %269, 1i
+            store %x, %270
+            next_iteration  # -> $B11
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %264:i32 = load %y
-        %265:i32 = add %264, 1i
-        store %y, %265
-        next_iteration %b6
+      $B7: {  # continuing
+        %271:i32 = load %y
+        %272:i32 = add %271, 1i
+        store %y, %272
+        next_iteration  # -> $B6
       }
     }
     ret
diff --git a/test/tint/bug/tint/1136.wgsl.expected.ir.msl b/test/tint/bug/tint/1136.wgsl.expected.ir.msl
index 42c020c..27aafe7 100644
--- a/test/tint/bug/tint/1136.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1136.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Buffer = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Buffer = struct @align(4) {
   data:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tint_symbol:ptr<storage, Buffer, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = func():void {
+  $B2: {
     %3:ptr<storage, u32, read_write> = access %tint_symbol, 0u
     %4:ptr<storage, u32, read_write> = access %tint_symbol, 0u
     %5:u32 = load %4
diff --git a/test/tint/bug/tint/1183.wgsl.expected.ir.msl b/test/tint/bug/tint/1183.wgsl.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/bug/tint/1183.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1183.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1321.wgsl.expected.ir.msl b/test/tint/bug/tint/1321.wgsl.expected.ir.msl
index cdbf128..3304981 100644
--- a/test/tint/bug/tint/1321.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1321.wgsl.expected.ir.msl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+int foo() {
+  return 1;
+}
+fragment void tint_symbol() {
+  tint_array<float, 4> arr = tint_array<float, 4>{};
+  {
+    thread float* const a = arr[foo()];
+    while(true) {
+      float const x = a;
+      break;
+    }
+  }
+}
+program_source:22:25: error: cannot initialize a variable of type 'float *const' with an lvalue of type 'float'
+    thread float* const a = arr[foo()];
+                        ^   ~~~~~~~~~~
+program_source:24:19: error: cannot initialize a variable of type 'const float' with an lvalue of type 'float *const'
+      float const x = a;
+                  ^   ~
+
diff --git a/test/tint/bug/tint/1332.wgsl.expected.ir.msl b/test/tint/bug/tint/1332.wgsl.expected.ir.msl
index b38060a..bbc0093 100644
--- a/test/tint/bug/tint/1332.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1332.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: max
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1369.wgsl.expected.ir.msl b/test/tint/bug/tint/1369.wgsl.expected.ir.msl
index 632584a..9934540 100644
--- a/test/tint/bug/tint/1369.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1369.wgsl.expected.ir.msl
@@ -1,11 +1,27 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
+thread bool continue_execution = true;
 bool call_discard() {
-  discard_fragment();
+  continue_execution = false;
   return true;
 }
 fragment void f() {
   bool v = call_discard();
   bool also_unreachable = false;
+  if (!(continue_execution)) {
+    discard_fragment();
+  }
 }
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  bool v = call_discard();
+       ^
+program_source:11:8: warning: unused variable 'also_unreachable' [-Wunused-variable]
+  bool also_unreachable = false;
+       ^
+
diff --git a/test/tint/bug/tint/1385.wgsl.expected.ir.msl b/test/tint/bug/tint/1385.wgsl.expected.ir.msl
index c6ead5f..4eab5b4 100644
--- a/test/tint/bug/tint/1385.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1385.wgsl.expected.ir.msl
@@ -1,18 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %data:ptr<storage, array<i32>, read> = var @binding_point(0, 1)
 }
 
-%foo = func():i32 -> %b2 {
-  %b2 = block {
+%foo = func():i32 {
+  $B2: {
     %3:ptr<storage, i32, read> = access %data, 0i
     %4:i32 = load %3
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(16, 16, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(16, 16, 1) func():void {
+  $B3: {
     %6:i32 = call %foo
     ret
   }
diff --git a/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl b/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl
index a0cd356..fe06cb7 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl
@@ -4,12 +4,12 @@
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %non_uniform_value:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     ret
   }
 }
diff --git a/test/tint/bug/tint/1509.wgsl.expected.ir.msl b/test/tint/bug/tint/1509.wgsl.expected.ir.msl
index efdd3b1..74d387f 100644
--- a/test/tint/bug/tint/1509.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1509.wgsl.expected.ir.msl
@@ -1,9 +1,5013 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint v0 = 0u;
+thread uint v1 = 0u;
+thread uint v2 = 0u;
+thread uint v3 = 0u;
+thread uint v4 = 0u;
+thread uint v5 = 0u;
+thread uint v6 = 0u;
+thread uint v7 = 0u;
+thread uint v8 = 0u;
+thread uint v9 = 0u;
+thread uint v10 = 0u;
+thread uint v11 = 0u;
+thread uint v12 = 0u;
+thread uint v13 = 0u;
+thread uint v14 = 0u;
+thread uint v15 = 0u;
+thread uint v16 = 0u;
+thread uint v17 = 0u;
+thread uint v18 = 0u;
+thread uint v19 = 0u;
+thread uint v20 = 0u;
+thread uint v21 = 0u;
+thread uint v22 = 0u;
+thread uint v23 = 0u;
+thread uint v24 = 0u;
+thread uint v25 = 0u;
+thread uint v26 = 0u;
+thread uint v27 = 0u;
+thread uint v28 = 0u;
+thread uint v29 = 0u;
+thread uint v30 = 0u;
+thread uint v31 = 0u;
+thread uint v32 = 0u;
+thread uint v33 = 0u;
+thread uint v34 = 0u;
+thread uint v35 = 0u;
+thread uint v36 = 0u;
+thread uint v37 = 0u;
+thread uint v38 = 0u;
+thread uint v39 = 0u;
+thread uint v40 = 0u;
+thread uint v41 = 0u;
+thread uint v42 = 0u;
+thread uint v43 = 0u;
+thread uint v44 = 0u;
+thread uint v45 = 0u;
+thread uint v46 = 0u;
+thread uint v47 = 0u;
+thread uint v48 = 0u;
+thread uint v49 = 0u;
+thread uint v50 = 0u;
+thread uint v51 = 0u;
+thread uint v52 = 0u;
+thread uint v53 = 0u;
+thread uint v54 = 0u;
+thread uint v55 = 0u;
+thread uint v56 = 0u;
+thread uint v57 = 0u;
+thread uint v58 = 0u;
+thread uint v59 = 0u;
+thread uint v60 = 0u;
+thread uint v61 = 0u;
+thread uint v62 = 0u;
+thread uint v63 = 0u;
+thread uint v64 = 0u;
+thread uint v65 = 0u;
+thread uint v66 = 0u;
+thread uint v67 = 0u;
+thread uint v68 = 0u;
+thread uint v69 = 0u;
+thread uint v70 = 0u;
+thread uint v71 = 0u;
+thread uint v72 = 0u;
+thread uint v73 = 0u;
+thread uint v74 = 0u;
+thread uint v75 = 0u;
+thread uint v76 = 0u;
+thread uint v77 = 0u;
+thread uint v78 = 0u;
+thread uint v79 = 0u;
+thread uint v80 = 0u;
+thread uint v81 = 0u;
+thread uint v82 = 0u;
+thread uint v83 = 0u;
+thread uint v84 = 0u;
+thread uint v85 = 0u;
+thread uint v86 = 0u;
+thread uint v87 = 0u;
+thread uint v88 = 0u;
+thread uint v89 = 0u;
+thread uint v90 = 0u;
+thread uint v91 = 0u;
+thread uint v92 = 0u;
+thread uint v93 = 0u;
+thread uint v94 = 0u;
+thread uint v95 = 0u;
+thread uint v96 = 0u;
+thread uint v97 = 0u;
+thread uint v98 = 0u;
+thread uint v99 = 0u;
+thread uint v100 = 0u;
+thread uint v101 = 0u;
+thread uint v102 = 0u;
+thread uint v103 = 0u;
+thread uint v104 = 0u;
+thread uint v105 = 0u;
+thread uint v106 = 0u;
+thread uint v107 = 0u;
+thread uint v108 = 0u;
+thread uint v109 = 0u;
+thread uint v110 = 0u;
+thread uint v111 = 0u;
+thread uint v112 = 0u;
+thread uint v113 = 0u;
+thread uint v114 = 0u;
+thread uint v115 = 0u;
+thread uint v116 = 0u;
+thread uint v117 = 0u;
+thread uint v118 = 0u;
+thread uint v119 = 0u;
+thread uint v120 = 0u;
+thread uint v121 = 0u;
+thread uint v122 = 0u;
+thread uint v123 = 0u;
+thread uint v124 = 0u;
+thread uint v125 = 0u;
+thread uint v126 = 0u;
+thread uint v127 = 0u;
+thread uint v128 = 0u;
+thread uint v129 = 0u;
+thread uint v130 = 0u;
+thread uint v131 = 0u;
+thread uint v132 = 0u;
+thread uint v133 = 0u;
+thread uint v134 = 0u;
+thread uint v135 = 0u;
+thread uint v136 = 0u;
+thread uint v137 = 0u;
+thread uint v138 = 0u;
+thread uint v139 = 0u;
+thread uint v140 = 0u;
+thread uint v141 = 0u;
+thread uint v142 = 0u;
+thread uint v143 = 0u;
+thread uint v144 = 0u;
+thread uint v145 = 0u;
+thread uint v146 = 0u;
+thread uint v147 = 0u;
+thread uint v148 = 0u;
+thread uint v149 = 0u;
+thread uint v150 = 0u;
+thread uint v151 = 0u;
+thread uint v152 = 0u;
+thread uint v153 = 0u;
+thread uint v154 = 0u;
+thread uint v155 = 0u;
+thread uint v156 = 0u;
+thread uint v157 = 0u;
+thread uint v158 = 0u;
+thread uint v159 = 0u;
+thread uint v160 = 0u;
+thread uint v161 = 0u;
+thread uint v162 = 0u;
+thread uint v163 = 0u;
+thread uint v164 = 0u;
+thread uint v165 = 0u;
+thread uint v166 = 0u;
+thread uint v167 = 0u;
+thread uint v168 = 0u;
+thread uint v169 = 0u;
+thread uint v170 = 0u;
+thread uint v171 = 0u;
+thread uint v172 = 0u;
+thread uint v173 = 0u;
+thread uint v174 = 0u;
+thread uint v175 = 0u;
+thread uint v176 = 0u;
+thread uint v177 = 0u;
+thread uint v178 = 0u;
+thread uint v179 = 0u;
+thread uint v180 = 0u;
+thread uint v181 = 0u;
+thread uint v182 = 0u;
+thread uint v183 = 0u;
+thread uint v184 = 0u;
+thread uint v185 = 0u;
+thread uint v186 = 0u;
+thread uint v187 = 0u;
+thread uint v188 = 0u;
+thread uint v189 = 0u;
+thread uint v190 = 0u;
+thread uint v191 = 0u;
+thread uint v192 = 0u;
+thread uint v193 = 0u;
+thread uint v194 = 0u;
+thread uint v195 = 0u;
+thread uint v196 = 0u;
+thread uint v197 = 0u;
+thread uint v198 = 0u;
+thread uint v199 = 0u;
+thread uint v200 = 0u;
+thread uint v201 = 0u;
+thread uint v202 = 0u;
+thread uint v203 = 0u;
+thread uint v204 = 0u;
+thread uint v205 = 0u;
+thread uint v206 = 0u;
+thread uint v207 = 0u;
+thread uint v208 = 0u;
+thread uint v209 = 0u;
+thread uint v210 = 0u;
+thread uint v211 = 0u;
+thread uint v212 = 0u;
+thread uint v213 = 0u;
+thread uint v214 = 0u;
+thread uint v215 = 0u;
+thread uint v216 = 0u;
+thread uint v217 = 0u;
+thread uint v218 = 0u;
+thread uint v219 = 0u;
+thread uint v220 = 0u;
+thread uint v221 = 0u;
+thread uint v222 = 0u;
+thread uint v223 = 0u;
+thread uint v224 = 0u;
+thread uint v225 = 0u;
+thread uint v226 = 0u;
+thread uint v227 = 0u;
+thread uint v228 = 0u;
+thread uint v229 = 0u;
+thread uint v230 = 0u;
+thread uint v231 = 0u;
+thread uint v232 = 0u;
+thread uint v233 = 0u;
+thread uint v234 = 0u;
+thread uint v235 = 0u;
+thread uint v236 = 0u;
+thread uint v237 = 0u;
+thread uint v238 = 0u;
+thread uint v239 = 0u;
+thread uint v240 = 0u;
+thread uint v241 = 0u;
+thread uint v242 = 0u;
+thread uint v243 = 0u;
+thread uint v244 = 0u;
+thread uint v245 = 0u;
+thread uint v246 = 0u;
+thread uint v247 = 0u;
+thread uint v248 = 0u;
+thread uint v249 = 0u;
+thread uint v250 = 0u;
+thread uint v251 = 0u;
+thread uint v252 = 0u;
+thread uint v253 = 0u;
+thread uint v254 = 0u;
+thread uint v255 = 0u;
+thread uint v256 = 0u;
+thread uint v257 = 0u;
+thread uint v258 = 0u;
+thread uint v259 = 0u;
+thread uint v260 = 0u;
+thread uint v261 = 0u;
+thread uint v262 = 0u;
+thread uint v263 = 0u;
+thread uint v264 = 0u;
+thread uint v265 = 0u;
+thread uint v266 = 0u;
+thread uint v267 = 0u;
+thread uint v268 = 0u;
+thread uint v269 = 0u;
+thread uint v270 = 0u;
+thread uint v271 = 0u;
+thread uint v272 = 0u;
+thread uint v273 = 0u;
+thread uint v274 = 0u;
+thread uint v275 = 0u;
+thread uint v276 = 0u;
+thread uint v277 = 0u;
+thread uint v278 = 0u;
+thread uint v279 = 0u;
+thread uint v280 = 0u;
+thread uint v281 = 0u;
+thread uint v282 = 0u;
+thread uint v283 = 0u;
+thread uint v284 = 0u;
+thread uint v285 = 0u;
+thread uint v286 = 0u;
+thread uint v287 = 0u;
+thread uint v288 = 0u;
+thread uint v289 = 0u;
+thread uint v290 = 0u;
+thread uint v291 = 0u;
+thread uint v292 = 0u;
+thread uint v293 = 0u;
+thread uint v294 = 0u;
+thread uint v295 = 0u;
+thread uint v296 = 0u;
+thread uint v297 = 0u;
+thread uint v298 = 0u;
+thread uint v299 = 0u;
+thread uint v300 = 0u;
+thread uint v301 = 0u;
+thread uint v302 = 0u;
+thread uint v303 = 0u;
+thread uint v304 = 0u;
+thread uint v305 = 0u;
+thread uint v306 = 0u;
+thread uint v307 = 0u;
+thread uint v308 = 0u;
+thread uint v309 = 0u;
+thread uint v310 = 0u;
+thread uint v311 = 0u;
+thread uint v312 = 0u;
+thread uint v313 = 0u;
+thread uint v314 = 0u;
+thread uint v315 = 0u;
+thread uint v316 = 0u;
+thread uint v317 = 0u;
+thread uint v318 = 0u;
+thread uint v319 = 0u;
+thread uint v320 = 0u;
+thread uint v321 = 0u;
+thread uint v322 = 0u;
+thread uint v323 = 0u;
+thread uint v324 = 0u;
+thread uint v325 = 0u;
+thread uint v326 = 0u;
+thread uint v327 = 0u;
+thread uint v328 = 0u;
+thread uint v329 = 0u;
+thread uint v330 = 0u;
+thread uint v331 = 0u;
+thread uint v332 = 0u;
+thread uint v333 = 0u;
+thread uint v334 = 0u;
+thread uint v335 = 0u;
+thread uint v336 = 0u;
+thread uint v337 = 0u;
+thread uint v338 = 0u;
+thread uint v339 = 0u;
+thread uint v340 = 0u;
+thread uint v341 = 0u;
+thread uint v342 = 0u;
+thread uint v343 = 0u;
+thread uint v344 = 0u;
+thread uint v345 = 0u;
+thread uint v346 = 0u;
+thread uint v347 = 0u;
+thread uint v348 = 0u;
+thread uint v349 = 0u;
+thread uint v350 = 0u;
+thread uint v351 = 0u;
+thread uint v352 = 0u;
+thread uint v353 = 0u;
+thread uint v354 = 0u;
+thread uint v355 = 0u;
+thread uint v356 = 0u;
+thread uint v357 = 0u;
+thread uint v358 = 0u;
+thread uint v359 = 0u;
+thread uint v360 = 0u;
+thread uint v361 = 0u;
+thread uint v362 = 0u;
+thread uint v363 = 0u;
+thread uint v364 = 0u;
+thread uint v365 = 0u;
+thread uint v366 = 0u;
+thread uint v367 = 0u;
+thread uint v368 = 0u;
+thread uint v369 = 0u;
+thread uint v370 = 0u;
+thread uint v371 = 0u;
+thread uint v372 = 0u;
+thread uint v373 = 0u;
+thread uint v374 = 0u;
+thread uint v375 = 0u;
+thread uint v376 = 0u;
+thread uint v377 = 0u;
+thread uint v378 = 0u;
+thread uint v379 = 0u;
+thread uint v380 = 0u;
+thread uint v381 = 0u;
+thread uint v382 = 0u;
+thread uint v383 = 0u;
+thread uint v384 = 0u;
+thread uint v385 = 0u;
+thread uint v386 = 0u;
+thread uint v387 = 0u;
+thread uint v388 = 0u;
+thread uint v389 = 0u;
+thread uint v390 = 0u;
+thread uint v391 = 0u;
+thread uint v392 = 0u;
+thread uint v393 = 0u;
+thread uint v394 = 0u;
+thread uint v395 = 0u;
+thread uint v396 = 0u;
+thread uint v397 = 0u;
+thread uint v398 = 0u;
+thread uint v399 = 0u;
+thread uint v400 = 0u;
+thread uint v401 = 0u;
+thread uint v402 = 0u;
+thread uint v403 = 0u;
+thread uint v404 = 0u;
+thread uint v405 = 0u;
+thread uint v406 = 0u;
+thread uint v407 = 0u;
+thread uint v408 = 0u;
+thread uint v409 = 0u;
+thread uint v410 = 0u;
+thread uint v411 = 0u;
+thread uint v412 = 0u;
+thread uint v413 = 0u;
+thread uint v414 = 0u;
+thread uint v415 = 0u;
+thread uint v416 = 0u;
+thread uint v417 = 0u;
+thread uint v418 = 0u;
+thread uint v419 = 0u;
+thread uint v420 = 0u;
+thread uint v421 = 0u;
+thread uint v422 = 0u;
+thread uint v423 = 0u;
+thread uint v424 = 0u;
+thread uint v425 = 0u;
+thread uint v426 = 0u;
+thread uint v427 = 0u;
+thread uint v428 = 0u;
+thread uint v429 = 0u;
+thread uint v430 = 0u;
+thread uint v431 = 0u;
+thread uint v432 = 0u;
+thread uint v433 = 0u;
+thread uint v434 = 0u;
+thread uint v435 = 0u;
+thread uint v436 = 0u;
+thread uint v437 = 0u;
+thread uint v438 = 0u;
+thread uint v439 = 0u;
+thread uint v440 = 0u;
+thread uint v441 = 0u;
+thread uint v442 = 0u;
+thread uint v443 = 0u;
+thread uint v444 = 0u;
+thread uint v445 = 0u;
+thread uint v446 = 0u;
+thread uint v447 = 0u;
+thread uint v448 = 0u;
+thread uint v449 = 0u;
+thread uint v450 = 0u;
+thread uint v451 = 0u;
+thread uint v452 = 0u;
+thread uint v453 = 0u;
+thread uint v454 = 0u;
+thread uint v455 = 0u;
+thread uint v456 = 0u;
+thread uint v457 = 0u;
+thread uint v458 = 0u;
+thread uint v459 = 0u;
+thread uint v460 = 0u;
+thread uint v461 = 0u;
+thread uint v462 = 0u;
+thread uint v463 = 0u;
+thread uint v464 = 0u;
+thread uint v465 = 0u;
+thread uint v466 = 0u;
+thread uint v467 = 0u;
+thread uint v468 = 0u;
+thread uint v469 = 0u;
+thread uint v470 = 0u;
+thread uint v471 = 0u;
+thread uint v472 = 0u;
+thread uint v473 = 0u;
+thread uint v474 = 0u;
+thread uint v475 = 0u;
+thread uint v476 = 0u;
+thread uint v477 = 0u;
+thread uint v478 = 0u;
+thread uint v479 = 0u;
+thread uint v480 = 0u;
+thread uint v481 = 0u;
+thread uint v482 = 0u;
+thread uint v483 = 0u;
+thread uint v484 = 0u;
+thread uint v485 = 0u;
+thread uint v486 = 0u;
+thread uint v487 = 0u;
+thread uint v488 = 0u;
+thread uint v489 = 0u;
+thread uint v490 = 0u;
+thread uint v491 = 0u;
+thread uint v492 = 0u;
+thread uint v493 = 0u;
+thread uint v494 = 0u;
+thread uint v495 = 0u;
+thread uint v496 = 0u;
+thread uint v497 = 0u;
+thread uint v498 = 0u;
+thread uint v499 = 0u;
+thread uint v500 = 0u;
+thread uint v501 = 0u;
+thread uint v502 = 0u;
+thread uint v503 = 0u;
+thread uint v504 = 0u;
+thread uint v505 = 0u;
+thread uint v506 = 0u;
+thread uint v507 = 0u;
+thread uint v508 = 0u;
+thread uint v509 = 0u;
+thread uint v510 = 0u;
+thread uint v511 = 0u;
+thread uint v512 = 0u;
+thread uint v513 = 0u;
+thread uint v514 = 0u;
+thread uint v515 = 0u;
+thread uint v516 = 0u;
+thread uint v517 = 0u;
+thread uint v518 = 0u;
+thread uint v519 = 0u;
+thread uint v520 = 0u;
+thread uint v521 = 0u;
+thread uint v522 = 0u;
+thread uint v523 = 0u;
+thread uint v524 = 0u;
+thread uint v525 = 0u;
+thread uint v526 = 0u;
+thread uint v527 = 0u;
+thread uint v528 = 0u;
+thread uint v529 = 0u;
+thread uint v530 = 0u;
+thread uint v531 = 0u;
+thread uint v532 = 0u;
+thread uint v533 = 0u;
+thread uint v534 = 0u;
+thread uint v535 = 0u;
+thread uint v536 = 0u;
+thread uint v537 = 0u;
+thread uint v538 = 0u;
+thread uint v539 = 0u;
+thread uint v540 = 0u;
+thread uint v541 = 0u;
+thread uint v542 = 0u;
+thread uint v543 = 0u;
+thread uint v544 = 0u;
+thread uint v545 = 0u;
+thread uint v546 = 0u;
+thread uint v547 = 0u;
+thread uint v548 = 0u;
+thread uint v549 = 0u;
+thread uint v550 = 0u;
+thread uint v551 = 0u;
+thread uint v552 = 0u;
+thread uint v553 = 0u;
+thread uint v554 = 0u;
+thread uint v555 = 0u;
+thread uint v556 = 0u;
+thread uint v557 = 0u;
+thread uint v558 = 0u;
+thread uint v559 = 0u;
+thread uint v560 = 0u;
+thread uint v561 = 0u;
+thread uint v562 = 0u;
+thread uint v563 = 0u;
+thread uint v564 = 0u;
+thread uint v565 = 0u;
+thread uint v566 = 0u;
+thread uint v567 = 0u;
+thread uint v568 = 0u;
+thread uint v569 = 0u;
+thread uint v570 = 0u;
+thread uint v571 = 0u;
+thread uint v572 = 0u;
+thread uint v573 = 0u;
+thread uint v574 = 0u;
+thread uint v575 = 0u;
+thread uint v576 = 0u;
+thread uint v577 = 0u;
+thread uint v578 = 0u;
+thread uint v579 = 0u;
+thread uint v580 = 0u;
+thread uint v581 = 0u;
+thread uint v582 = 0u;
+thread uint v583 = 0u;
+thread uint v584 = 0u;
+thread uint v585 = 0u;
+thread uint v586 = 0u;
+thread uint v587 = 0u;
+thread uint v588 = 0u;
+thread uint v589 = 0u;
+thread uint v590 = 0u;
+thread uint v591 = 0u;
+thread uint v592 = 0u;
+thread uint v593 = 0u;
+thread uint v594 = 0u;
+thread uint v595 = 0u;
+thread uint v596 = 0u;
+thread uint v597 = 0u;
+thread uint v598 = 0u;
+thread uint v599 = 0u;
+thread uint v600 = 0u;
+thread uint v601 = 0u;
+thread uint v602 = 0u;
+thread uint v603 = 0u;
+thread uint v604 = 0u;
+thread uint v605 = 0u;
+thread uint v606 = 0u;
+thread uint v607 = 0u;
+thread uint v608 = 0u;
+thread uint v609 = 0u;
+thread uint v610 = 0u;
+thread uint v611 = 0u;
+thread uint v612 = 0u;
+thread uint v613 = 0u;
+thread uint v614 = 0u;
+thread uint v615 = 0u;
+thread uint v616 = 0u;
+thread uint v617 = 0u;
+thread uint v618 = 0u;
+thread uint v619 = 0u;
+thread uint v620 = 0u;
+thread uint v621 = 0u;
+thread uint v622 = 0u;
+thread uint v623 = 0u;
+thread uint v624 = 0u;
+thread uint v625 = 0u;
+thread uint v626 = 0u;
+thread uint v627 = 0u;
+thread uint v628 = 0u;
+thread uint v629 = 0u;
+thread uint v630 = 0u;
+thread uint v631 = 0u;
+thread uint v632 = 0u;
+thread uint v633 = 0u;
+thread uint v634 = 0u;
+thread uint v635 = 0u;
+thread uint v636 = 0u;
+thread uint v637 = 0u;
+thread uint v638 = 0u;
+thread uint v639 = 0u;
+thread uint v640 = 0u;
+thread uint v641 = 0u;
+thread uint v642 = 0u;
+thread uint v643 = 0u;
+thread uint v644 = 0u;
+thread uint v645 = 0u;
+thread uint v646 = 0u;
+thread uint v647 = 0u;
+thread uint v648 = 0u;
+thread uint v649 = 0u;
+thread uint v650 = 0u;
+thread uint v651 = 0u;
+thread uint v652 = 0u;
+thread uint v653 = 0u;
+thread uint v654 = 0u;
+thread uint v655 = 0u;
+thread uint v656 = 0u;
+thread uint v657 = 0u;
+thread uint v658 = 0u;
+thread uint v659 = 0u;
+thread uint v660 = 0u;
+thread uint v661 = 0u;
+thread uint v662 = 0u;
+thread uint v663 = 0u;
+thread uint v664 = 0u;
+thread uint v665 = 0u;
+thread uint v666 = 0u;
+thread uint v667 = 0u;
+thread uint v668 = 0u;
+thread uint v669 = 0u;
+thread uint v670 = 0u;
+thread uint v671 = 0u;
+thread uint v672 = 0u;
+thread uint v673 = 0u;
+thread uint v674 = 0u;
+thread uint v675 = 0u;
+thread uint v676 = 0u;
+thread uint v677 = 0u;
+thread uint v678 = 0u;
+thread uint v679 = 0u;
+thread uint v680 = 0u;
+thread uint v681 = 0u;
+thread uint v682 = 0u;
+thread uint v683 = 0u;
+thread uint v684 = 0u;
+thread uint v685 = 0u;
+thread uint v686 = 0u;
+thread uint v687 = 0u;
+thread uint v688 = 0u;
+thread uint v689 = 0u;
+thread uint v690 = 0u;
+thread uint v691 = 0u;
+thread uint v692 = 0u;
+thread uint v693 = 0u;
+thread uint v694 = 0u;
+thread uint v695 = 0u;
+thread uint v696 = 0u;
+thread uint v697 = 0u;
+thread uint v698 = 0u;
+thread uint v699 = 0u;
+thread uint v700 = 0u;
+thread uint v701 = 0u;
+thread uint v702 = 0u;
+thread uint v703 = 0u;
+thread uint v704 = 0u;
+thread uint v705 = 0u;
+thread uint v706 = 0u;
+thread uint v707 = 0u;
+thread uint v708 = 0u;
+thread uint v709 = 0u;
+thread uint v710 = 0u;
+thread uint v711 = 0u;
+thread uint v712 = 0u;
+thread uint v713 = 0u;
+thread uint v714 = 0u;
+thread uint v715 = 0u;
+thread uint v716 = 0u;
+thread uint v717 = 0u;
+thread uint v718 = 0u;
+thread uint v719 = 0u;
+thread uint v720 = 0u;
+thread uint v721 = 0u;
+thread uint v722 = 0u;
+thread uint v723 = 0u;
+thread uint v724 = 0u;
+thread uint v725 = 0u;
+thread uint v726 = 0u;
+thread uint v727 = 0u;
+thread uint v728 = 0u;
+thread uint v729 = 0u;
+thread uint v730 = 0u;
+thread uint v731 = 0u;
+thread uint v732 = 0u;
+thread uint v733 = 0u;
+thread uint v734 = 0u;
+thread uint v735 = 0u;
+thread uint v736 = 0u;
+thread uint v737 = 0u;
+thread uint v738 = 0u;
+thread uint v739 = 0u;
+thread uint v740 = 0u;
+thread uint v741 = 0u;
+thread uint v742 = 0u;
+thread uint v743 = 0u;
+thread uint v744 = 0u;
+thread uint v745 = 0u;
+thread uint v746 = 0u;
+thread uint v747 = 0u;
+thread uint v748 = 0u;
+thread uint v749 = 0u;
+thread uint v750 = 0u;
+thread uint v751 = 0u;
+thread uint v752 = 0u;
+thread uint v753 = 0u;
+thread uint v754 = 0u;
+thread uint v755 = 0u;
+thread uint v756 = 0u;
+thread uint v757 = 0u;
+thread uint v758 = 0u;
+thread uint v759 = 0u;
+thread uint v760 = 0u;
+thread uint v761 = 0u;
+thread uint v762 = 0u;
+thread uint v763 = 0u;
+thread uint v764 = 0u;
+thread uint v765 = 0u;
+thread uint v766 = 0u;
+thread uint v767 = 0u;
+thread uint v768 = 0u;
+thread uint v769 = 0u;
+thread uint v770 = 0u;
+thread uint v771 = 0u;
+thread uint v772 = 0u;
+thread uint v773 = 0u;
+thread uint v774 = 0u;
+thread uint v775 = 0u;
+thread uint v776 = 0u;
+thread uint v777 = 0u;
+thread uint v778 = 0u;
+thread uint v779 = 0u;
+thread uint v780 = 0u;
+thread uint v781 = 0u;
+thread uint v782 = 0u;
+thread uint v783 = 0u;
+thread uint v784 = 0u;
+thread uint v785 = 0u;
+thread uint v786 = 0u;
+thread uint v787 = 0u;
+thread uint v788 = 0u;
+thread uint v789 = 0u;
+thread uint v790 = 0u;
+thread uint v791 = 0u;
+thread uint v792 = 0u;
+thread uint v793 = 0u;
+thread uint v794 = 0u;
+thread uint v795 = 0u;
+thread uint v796 = 0u;
+thread uint v797 = 0u;
+thread uint v798 = 0u;
+thread uint v799 = 0u;
+thread uint v800 = 0u;
+thread uint v801 = 0u;
+thread uint v802 = 0u;
+thread uint v803 = 0u;
+thread uint v804 = 0u;
+thread uint v805 = 0u;
+thread uint v806 = 0u;
+thread uint v807 = 0u;
+thread uint v808 = 0u;
+thread uint v809 = 0u;
+thread uint v810 = 0u;
+thread uint v811 = 0u;
+thread uint v812 = 0u;
+thread uint v813 = 0u;
+thread uint v814 = 0u;
+thread uint v815 = 0u;
+thread uint v816 = 0u;
+thread uint v817 = 0u;
+thread uint v818 = 0u;
+thread uint v819 = 0u;
+thread uint v820 = 0u;
+thread uint v821 = 0u;
+thread uint v822 = 0u;
+thread uint v823 = 0u;
+thread uint v824 = 0u;
+thread uint v825 = 0u;
+thread uint v826 = 0u;
+thread uint v827 = 0u;
+thread uint v828 = 0u;
+thread uint v829 = 0u;
+thread uint v830 = 0u;
+thread uint v831 = 0u;
+thread uint v832 = 0u;
+thread uint v833 = 0u;
+thread uint v834 = 0u;
+thread uint v835 = 0u;
+thread uint v836 = 0u;
+thread uint v837 = 0u;
+thread uint v838 = 0u;
+thread uint v839 = 0u;
+thread uint v840 = 0u;
+thread uint v841 = 0u;
+thread uint v842 = 0u;
+thread uint v843 = 0u;
+thread uint v844 = 0u;
+thread uint v845 = 0u;
+thread uint v846 = 0u;
+thread uint v847 = 0u;
+thread uint v848 = 0u;
+thread uint v849 = 0u;
+thread uint v850 = 0u;
+thread uint v851 = 0u;
+thread uint v852 = 0u;
+thread uint v853 = 0u;
+thread uint v854 = 0u;
+thread uint v855 = 0u;
+thread uint v856 = 0u;
+thread uint v857 = 0u;
+thread uint v858 = 0u;
+thread uint v859 = 0u;
+thread uint v860 = 0u;
+thread uint v861 = 0u;
+thread uint v862 = 0u;
+thread uint v863 = 0u;
+thread uint v864 = 0u;
+thread uint v865 = 0u;
+thread uint v866 = 0u;
+thread uint v867 = 0u;
+thread uint v868 = 0u;
+thread uint v869 = 0u;
+thread uint v870 = 0u;
+thread uint v871 = 0u;
+thread uint v872 = 0u;
+thread uint v873 = 0u;
+thread uint v874 = 0u;
+thread uint v875 = 0u;
+thread uint v876 = 0u;
+thread uint v877 = 0u;
+thread uint v878 = 0u;
+thread uint v879 = 0u;
+thread uint v880 = 0u;
+thread uint v881 = 0u;
+thread uint v882 = 0u;
+thread uint v883 = 0u;
+thread uint v884 = 0u;
+thread uint v885 = 0u;
+thread uint v886 = 0u;
+thread uint v887 = 0u;
+thread uint v888 = 0u;
+thread uint v889 = 0u;
+thread uint v890 = 0u;
+thread uint v891 = 0u;
+thread uint v892 = 0u;
+thread uint v893 = 0u;
+thread uint v894 = 0u;
+thread uint v895 = 0u;
+thread uint v896 = 0u;
+thread uint v897 = 0u;
+thread uint v898 = 0u;
+thread uint v899 = 0u;
+thread uint v900 = 0u;
+thread uint v901 = 0u;
+thread uint v902 = 0u;
+thread uint v903 = 0u;
+thread uint v904 = 0u;
+thread uint v905 = 0u;
+thread uint v906 = 0u;
+thread uint v907 = 0u;
+thread uint v908 = 0u;
+thread uint v909 = 0u;
+thread uint v910 = 0u;
+thread uint v911 = 0u;
+thread uint v912 = 0u;
+thread uint v913 = 0u;
+thread uint v914 = 0u;
+thread uint v915 = 0u;
+thread uint v916 = 0u;
+thread uint v917 = 0u;
+thread uint v918 = 0u;
+thread uint v919 = 0u;
+thread uint v920 = 0u;
+thread uint v921 = 0u;
+thread uint v922 = 0u;
+thread uint v923 = 0u;
+thread uint v924 = 0u;
+thread uint v925 = 0u;
+thread uint v926 = 0u;
+thread uint v927 = 0u;
+thread uint v928 = 0u;
+thread uint v929 = 0u;
+thread uint v930 = 0u;
+thread uint v931 = 0u;
+thread uint v932 = 0u;
+thread uint v933 = 0u;
+thread uint v934 = 0u;
+thread uint v935 = 0u;
+thread uint v936 = 0u;
+thread uint v937 = 0u;
+thread uint v938 = 0u;
+thread uint v939 = 0u;
+thread uint v940 = 0u;
+thread uint v941 = 0u;
+thread uint v942 = 0u;
+thread uint v943 = 0u;
+thread uint v944 = 0u;
+thread uint v945 = 0u;
+thread uint v946 = 0u;
+thread uint v947 = 0u;
+thread uint v948 = 0u;
+thread uint v949 = 0u;
+thread uint v950 = 0u;
+thread uint v951 = 0u;
+thread uint v952 = 0u;
+thread uint v953 = 0u;
+thread uint v954 = 0u;
+thread uint v955 = 0u;
+thread uint v956 = 0u;
+thread uint v957 = 0u;
+thread uint v958 = 0u;
+thread uint v959 = 0u;
+thread uint v960 = 0u;
+thread uint v961 = 0u;
+thread uint v962 = 0u;
+thread uint v963 = 0u;
+thread uint v964 = 0u;
+thread uint v965 = 0u;
+thread uint v966 = 0u;
+thread uint v967 = 0u;
+thread uint v968 = 0u;
+thread uint v969 = 0u;
+thread uint v970 = 0u;
+thread uint v971 = 0u;
+thread uint v972 = 0u;
+thread uint v973 = 0u;
+thread uint v974 = 0u;
+thread uint v975 = 0u;
+thread uint v976 = 0u;
+thread uint v977 = 0u;
+thread uint v978 = 0u;
+thread uint v979 = 0u;
+thread uint v980 = 0u;
+thread uint v981 = 0u;
+thread uint v982 = 0u;
+thread uint v983 = 0u;
+thread uint v984 = 0u;
+thread uint v985 = 0u;
+thread uint v986 = 0u;
+thread uint v987 = 0u;
+thread uint v988 = 0u;
+thread uint v989 = 0u;
+thread uint v990 = 0u;
+thread uint v991 = 0u;
+thread uint v992 = 0u;
+thread uint v993 = 0u;
+thread uint v994 = 0u;
+thread uint v995 = 0u;
+thread uint v996 = 0u;
+thread uint v997 = 0u;
+thread uint v998 = 0u;
+thread uint v999 = 0u;
+uint foo() {
+  uint x = 0u;
+  x = (x + v0);
+  x = (x + v1);
+  x = (x + v2);
+  x = (x + v3);
+  x = (x + v4);
+  x = (x + v5);
+  x = (x + v6);
+  x = (x + v7);
+  x = (x + v8);
+  x = (x + v9);
+  x = (x + v10);
+  x = (x + v11);
+  x = (x + v12);
+  x = (x + v13);
+  x = (x + v14);
+  x = (x + v15);
+  x = (x + v16);
+  x = (x + v17);
+  x = (x + v18);
+  x = (x + v19);
+  x = (x + v20);
+  x = (x + v21);
+  x = (x + v22);
+  x = (x + v23);
+  x = (x + v24);
+  x = (x + v25);
+  x = (x + v26);
+  x = (x + v27);
+  x = (x + v28);
+  x = (x + v29);
+  x = (x + v30);
+  x = (x + v31);
+  x = (x + v32);
+  x = (x + v33);
+  x = (x + v34);
+  x = (x + v35);
+  x = (x + v36);
+  x = (x + v37);
+  x = (x + v38);
+  x = (x + v39);
+  x = (x + v40);
+  x = (x + v41);
+  x = (x + v42);
+  x = (x + v43);
+  x = (x + v44);
+  x = (x + v45);
+  x = (x + v46);
+  x = (x + v47);
+  x = (x + v48);
+  x = (x + v49);
+  x = (x + v50);
+  x = (x + v51);
+  x = (x + v52);
+  x = (x + v53);
+  x = (x + v54);
+  x = (x + v55);
+  x = (x + v56);
+  x = (x + v57);
+  x = (x + v58);
+  x = (x + v59);
+  x = (x + v60);
+  x = (x + v61);
+  x = (x + v62);
+  x = (x + v63);
+  x = (x + v64);
+  x = (x + v65);
+  x = (x + v66);
+  x = (x + v67);
+  x = (x + v68);
+  x = (x + v69);
+  x = (x + v70);
+  x = (x + v71);
+  x = (x + v72);
+  x = (x + v73);
+  x = (x + v74);
+  x = (x + v75);
+  x = (x + v76);
+  x = (x + v77);
+  x = (x + v78);
+  x = (x + v79);
+  x = (x + v80);
+  x = (x + v81);
+  x = (x + v82);
+  x = (x + v83);
+  x = (x + v84);
+  x = (x + v85);
+  x = (x + v86);
+  x = (x + v87);
+  x = (x + v88);
+  x = (x + v89);
+  x = (x + v90);
+  x = (x + v91);
+  x = (x + v92);
+  x = (x + v93);
+  x = (x + v94);
+  x = (x + v95);
+  x = (x + v96);
+  x = (x + v97);
+  x = (x + v98);
+  x = (x + v99);
+  x = (x + v100);
+  x = (x + v101);
+  x = (x + v102);
+  x = (x + v103);
+  x = (x + v104);
+  x = (x + v105);
+  x = (x + v106);
+  x = (x + v107);
+  x = (x + v108);
+  x = (x + v109);
+  x = (x + v110);
+  x = (x + v111);
+  x = (x + v112);
+  x = (x + v113);
+  x = (x + v114);
+  x = (x + v115);
+  x = (x + v116);
+  x = (x + v117);
+  x = (x + v118);
+  x = (x + v119);
+  x = (x + v120);
+  x = (x + v121);
+  x = (x + v122);
+  x = (x + v123);
+  x = (x + v124);
+  x = (x + v125);
+  x = (x + v126);
+  x = (x + v127);
+  x = (x + v128);
+  x = (x + v129);
+  x = (x + v130);
+  x = (x + v131);
+  x = (x + v132);
+  x = (x + v133);
+  x = (x + v134);
+  x = (x + v135);
+  x = (x + v136);
+  x = (x + v137);
+  x = (x + v138);
+  x = (x + v139);
+  x = (x + v140);
+  x = (x + v141);
+  x = (x + v142);
+  x = (x + v143);
+  x = (x + v144);
+  x = (x + v145);
+  x = (x + v146);
+  x = (x + v147);
+  x = (x + v148);
+  x = (x + v149);
+  x = (x + v150);
+  x = (x + v151);
+  x = (x + v152);
+  x = (x + v153);
+  x = (x + v154);
+  x = (x + v155);
+  x = (x + v156);
+  x = (x + v157);
+  x = (x + v158);
+  x = (x + v159);
+  x = (x + v160);
+  x = (x + v161);
+  x = (x + v162);
+  x = (x + v163);
+  x = (x + v164);
+  x = (x + v165);
+  x = (x + v166);
+  x = (x + v167);
+  x = (x + v168);
+  x = (x + v169);
+  x = (x + v170);
+  x = (x + v171);
+  x = (x + v172);
+  x = (x + v173);
+  x = (x + v174);
+  x = (x + v175);
+  x = (x + v176);
+  x = (x + v177);
+  x = (x + v178);
+  x = (x + v179);
+  x = (x + v180);
+  x = (x + v181);
+  x = (x + v182);
+  x = (x + v183);
+  x = (x + v184);
+  x = (x + v185);
+  x = (x + v186);
+  x = (x + v187);
+  x = (x + v188);
+  x = (x + v189);
+  x = (x + v190);
+  x = (x + v191);
+  x = (x + v192);
+  x = (x + v193);
+  x = (x + v194);
+  x = (x + v195);
+  x = (x + v196);
+  x = (x + v197);
+  x = (x + v198);
+  x = (x + v199);
+  x = (x + v200);
+  x = (x + v201);
+  x = (x + v202);
+  x = (x + v203);
+  x = (x + v204);
+  x = (x + v205);
+  x = (x + v206);
+  x = (x + v207);
+  x = (x + v208);
+  x = (x + v209);
+  x = (x + v210);
+  x = (x + v211);
+  x = (x + v212);
+  x = (x + v213);
+  x = (x + v214);
+  x = (x + v215);
+  x = (x + v216);
+  x = (x + v217);
+  x = (x + v218);
+  x = (x + v219);
+  x = (x + v220);
+  x = (x + v221);
+  x = (x + v222);
+  x = (x + v223);
+  x = (x + v224);
+  x = (x + v225);
+  x = (x + v226);
+  x = (x + v227);
+  x = (x + v228);
+  x = (x + v229);
+  x = (x + v230);
+  x = (x + v231);
+  x = (x + v232);
+  x = (x + v233);
+  x = (x + v234);
+  x = (x + v235);
+  x = (x + v236);
+  x = (x + v237);
+  x = (x + v238);
+  x = (x + v239);
+  x = (x + v240);
+  x = (x + v241);
+  x = (x + v242);
+  x = (x + v243);
+  x = (x + v244);
+  x = (x + v245);
+  x = (x + v246);
+  x = (x + v247);
+  x = (x + v248);
+  x = (x + v249);
+  x = (x + v250);
+  x = (x + v251);
+  x = (x + v252);
+  x = (x + v253);
+  x = (x + v254);
+  x = (x + v255);
+  x = (x + v256);
+  x = (x + v257);
+  x = (x + v258);
+  x = (x + v259);
+  x = (x + v260);
+  x = (x + v261);
+  x = (x + v262);
+  x = (x + v263);
+  x = (x + v264);
+  x = (x + v265);
+  x = (x + v266);
+  x = (x + v267);
+  x = (x + v268);
+  x = (x + v269);
+  x = (x + v270);
+  x = (x + v271);
+  x = (x + v272);
+  x = (x + v273);
+  x = (x + v274);
+  x = (x + v275);
+  x = (x + v276);
+  x = (x + v277);
+  x = (x + v278);
+  x = (x + v279);
+  x = (x + v280);
+  x = (x + v281);
+  x = (x + v282);
+  x = (x + v283);
+  x = (x + v284);
+  x = (x + v285);
+  x = (x + v286);
+  x = (x + v287);
+  x = (x + v288);
+  x = (x + v289);
+  x = (x + v290);
+  x = (x + v291);
+  x = (x + v292);
+  x = (x + v293);
+  x = (x + v294);
+  x = (x + v295);
+  x = (x + v296);
+  x = (x + v297);
+  x = (x + v298);
+  x = (x + v299);
+  x = (x + v300);
+  x = (x + v301);
+  x = (x + v302);
+  x = (x + v303);
+  x = (x + v304);
+  x = (x + v305);
+  x = (x + v306);
+  x = (x + v307);
+  x = (x + v308);
+  x = (x + v309);
+  x = (x + v310);
+  x = (x + v311);
+  x = (x + v312);
+  x = (x + v313);
+  x = (x + v314);
+  x = (x + v315);
+  x = (x + v316);
+  x = (x + v317);
+  x = (x + v318);
+  x = (x + v319);
+  x = (x + v320);
+  x = (x + v321);
+  x = (x + v322);
+  x = (x + v323);
+  x = (x + v324);
+  x = (x + v325);
+  x = (x + v326);
+  x = (x + v327);
+  x = (x + v328);
+  x = (x + v329);
+  x = (x + v330);
+  x = (x + v331);
+  x = (x + v332);
+  x = (x + v333);
+  x = (x + v334);
+  x = (x + v335);
+  x = (x + v336);
+  x = (x + v337);
+  x = (x + v338);
+  x = (x + v339);
+  x = (x + v340);
+  x = (x + v341);
+  x = (x + v342);
+  x = (x + v343);
+  x = (x + v344);
+  x = (x + v345);
+  x = (x + v346);
+  x = (x + v347);
+  x = (x + v348);
+  x = (x + v349);
+  x = (x + v350);
+  x = (x + v351);
+  x = (x + v352);
+  x = (x + v353);
+  x = (x + v354);
+  x = (x + v355);
+  x = (x + v356);
+  x = (x + v357);
+  x = (x + v358);
+  x = (x + v359);
+  x = (x + v360);
+  x = (x + v361);
+  x = (x + v362);
+  x = (x + v363);
+  x = (x + v364);
+  x = (x + v365);
+  x = (x + v366);
+  x = (x + v367);
+  x = (x + v368);
+  x = (x + v369);
+  x = (x + v370);
+  x = (x + v371);
+  x = (x + v372);
+  x = (x + v373);
+  x = (x + v374);
+  x = (x + v375);
+  x = (x + v376);
+  x = (x + v377);
+  x = (x + v378);
+  x = (x + v379);
+  x = (x + v380);
+  x = (x + v381);
+  x = (x + v382);
+  x = (x + v383);
+  x = (x + v384);
+  x = (x + v385);
+  x = (x + v386);
+  x = (x + v387);
+  x = (x + v388);
+  x = (x + v389);
+  x = (x + v390);
+  x = (x + v391);
+  x = (x + v392);
+  x = (x + v393);
+  x = (x + v394);
+  x = (x + v395);
+  x = (x + v396);
+  x = (x + v397);
+  x = (x + v398);
+  x = (x + v399);
+  x = (x + v400);
+  x = (x + v401);
+  x = (x + v402);
+  x = (x + v403);
+  x = (x + v404);
+  x = (x + v405);
+  x = (x + v406);
+  x = (x + v407);
+  x = (x + v408);
+  x = (x + v409);
+  x = (x + v410);
+  x = (x + v411);
+  x = (x + v412);
+  x = (x + v413);
+  x = (x + v414);
+  x = (x + v415);
+  x = (x + v416);
+  x = (x + v417);
+  x = (x + v418);
+  x = (x + v419);
+  x = (x + v420);
+  x = (x + v421);
+  x = (x + v422);
+  x = (x + v423);
+  x = (x + v424);
+  x = (x + v425);
+  x = (x + v426);
+  x = (x + v427);
+  x = (x + v428);
+  x = (x + v429);
+  x = (x + v430);
+  x = (x + v431);
+  x = (x + v432);
+  x = (x + v433);
+  x = (x + v434);
+  x = (x + v435);
+  x = (x + v436);
+  x = (x + v437);
+  x = (x + v438);
+  x = (x + v439);
+  x = (x + v440);
+  x = (x + v441);
+  x = (x + v442);
+  x = (x + v443);
+  x = (x + v444);
+  x = (x + v445);
+  x = (x + v446);
+  x = (x + v447);
+  x = (x + v448);
+  x = (x + v449);
+  x = (x + v450);
+  x = (x + v451);
+  x = (x + v452);
+  x = (x + v453);
+  x = (x + v454);
+  x = (x + v455);
+  x = (x + v456);
+  x = (x + v457);
+  x = (x + v458);
+  x = (x + v459);
+  x = (x + v460);
+  x = (x + v461);
+  x = (x + v462);
+  x = (x + v463);
+  x = (x + v464);
+  x = (x + v465);
+  x = (x + v466);
+  x = (x + v467);
+  x = (x + v468);
+  x = (x + v469);
+  x = (x + v470);
+  x = (x + v471);
+  x = (x + v472);
+  x = (x + v473);
+  x = (x + v474);
+  x = (x + v475);
+  x = (x + v476);
+  x = (x + v477);
+  x = (x + v478);
+  x = (x + v479);
+  x = (x + v480);
+  x = (x + v481);
+  x = (x + v482);
+  x = (x + v483);
+  x = (x + v484);
+  x = (x + v485);
+  x = (x + v486);
+  x = (x + v487);
+  x = (x + v488);
+  x = (x + v489);
+  x = (x + v490);
+  x = (x + v491);
+  x = (x + v492);
+  x = (x + v493);
+  x = (x + v494);
+  x = (x + v495);
+  x = (x + v496);
+  x = (x + v497);
+  x = (x + v498);
+  x = (x + v499);
+  x = (x + v500);
+  x = (x + v501);
+  x = (x + v502);
+  x = (x + v503);
+  x = (x + v504);
+  x = (x + v505);
+  x = (x + v506);
+  x = (x + v507);
+  x = (x + v508);
+  x = (x + v509);
+  x = (x + v510);
+  x = (x + v511);
+  x = (x + v512);
+  x = (x + v513);
+  x = (x + v514);
+  x = (x + v515);
+  x = (x + v516);
+  x = (x + v517);
+  x = (x + v518);
+  x = (x + v519);
+  x = (x + v520);
+  x = (x + v521);
+  x = (x + v522);
+  x = (x + v523);
+  x = (x + v524);
+  x = (x + v525);
+  x = (x + v526);
+  x = (x + v527);
+  x = (x + v528);
+  x = (x + v529);
+  x = (x + v530);
+  x = (x + v531);
+  x = (x + v532);
+  x = (x + v533);
+  x = (x + v534);
+  x = (x + v535);
+  x = (x + v536);
+  x = (x + v537);
+  x = (x + v538);
+  x = (x + v539);
+  x = (x + v540);
+  x = (x + v541);
+  x = (x + v542);
+  x = (x + v543);
+  x = (x + v544);
+  x = (x + v545);
+  x = (x + v546);
+  x = (x + v547);
+  x = (x + v548);
+  x = (x + v549);
+  x = (x + v550);
+  x = (x + v551);
+  x = (x + v552);
+  x = (x + v553);
+  x = (x + v554);
+  x = (x + v555);
+  x = (x + v556);
+  x = (x + v557);
+  x = (x + v558);
+  x = (x + v559);
+  x = (x + v560);
+  x = (x + v561);
+  x = (x + v562);
+  x = (x + v563);
+  x = (x + v564);
+  x = (x + v565);
+  x = (x + v566);
+  x = (x + v567);
+  x = (x + v568);
+  x = (x + v569);
+  x = (x + v570);
+  x = (x + v571);
+  x = (x + v572);
+  x = (x + v573);
+  x = (x + v574);
+  x = (x + v575);
+  x = (x + v576);
+  x = (x + v577);
+  x = (x + v578);
+  x = (x + v579);
+  x = (x + v580);
+  x = (x + v581);
+  x = (x + v582);
+  x = (x + v583);
+  x = (x + v584);
+  x = (x + v585);
+  x = (x + v586);
+  x = (x + v587);
+  x = (x + v588);
+  x = (x + v589);
+  x = (x + v590);
+  x = (x + v591);
+  x = (x + v592);
+  x = (x + v593);
+  x = (x + v594);
+  x = (x + v595);
+  x = (x + v596);
+  x = (x + v597);
+  x = (x + v598);
+  x = (x + v599);
+  x = (x + v600);
+  x = (x + v601);
+  x = (x + v602);
+  x = (x + v603);
+  x = (x + v604);
+  x = (x + v605);
+  x = (x + v606);
+  x = (x + v607);
+  x = (x + v608);
+  x = (x + v609);
+  x = (x + v610);
+  x = (x + v611);
+  x = (x + v612);
+  x = (x + v613);
+  x = (x + v614);
+  x = (x + v615);
+  x = (x + v616);
+  x = (x + v617);
+  x = (x + v618);
+  x = (x + v619);
+  x = (x + v620);
+  x = (x + v621);
+  x = (x + v622);
+  x = (x + v623);
+  x = (x + v624);
+  x = (x + v625);
+  x = (x + v626);
+  x = (x + v627);
+  x = (x + v628);
+  x = (x + v629);
+  x = (x + v630);
+  x = (x + v631);
+  x = (x + v632);
+  x = (x + v633);
+  x = (x + v634);
+  x = (x + v635);
+  x = (x + v636);
+  x = (x + v637);
+  x = (x + v638);
+  x = (x + v639);
+  x = (x + v640);
+  x = (x + v641);
+  x = (x + v642);
+  x = (x + v643);
+  x = (x + v644);
+  x = (x + v645);
+  x = (x + v646);
+  x = (x + v647);
+  x = (x + v648);
+  x = (x + v649);
+  x = (x + v650);
+  x = (x + v651);
+  x = (x + v652);
+  x = (x + v653);
+  x = (x + v654);
+  x = (x + v655);
+  x = (x + v656);
+  x = (x + v657);
+  x = (x + v658);
+  x = (x + v659);
+  x = (x + v660);
+  x = (x + v661);
+  x = (x + v662);
+  x = (x + v663);
+  x = (x + v664);
+  x = (x + v665);
+  x = (x + v666);
+  x = (x + v667);
+  x = (x + v668);
+  x = (x + v669);
+  x = (x + v670);
+  x = (x + v671);
+  x = (x + v672);
+  x = (x + v673);
+  x = (x + v674);
+  x = (x + v675);
+  x = (x + v676);
+  x = (x + v677);
+  x = (x + v678);
+  x = (x + v679);
+  x = (x + v680);
+  x = (x + v681);
+  x = (x + v682);
+  x = (x + v683);
+  x = (x + v684);
+  x = (x + v685);
+  x = (x + v686);
+  x = (x + v687);
+  x = (x + v688);
+  x = (x + v689);
+  x = (x + v690);
+  x = (x + v691);
+  x = (x + v692);
+  x = (x + v693);
+  x = (x + v694);
+  x = (x + v695);
+  x = (x + v696);
+  x = (x + v697);
+  x = (x + v698);
+  x = (x + v699);
+  x = (x + v700);
+  x = (x + v701);
+  x = (x + v702);
+  x = (x + v703);
+  x = (x + v704);
+  x = (x + v705);
+  x = (x + v706);
+  x = (x + v707);
+  x = (x + v708);
+  x = (x + v709);
+  x = (x + v710);
+  x = (x + v711);
+  x = (x + v712);
+  x = (x + v713);
+  x = (x + v714);
+  x = (x + v715);
+  x = (x + v716);
+  x = (x + v717);
+  x = (x + v718);
+  x = (x + v719);
+  x = (x + v720);
+  x = (x + v721);
+  x = (x + v722);
+  x = (x + v723);
+  x = (x + v724);
+  x = (x + v725);
+  x = (x + v726);
+  x = (x + v727);
+  x = (x + v728);
+  x = (x + v729);
+  x = (x + v730);
+  x = (x + v731);
+  x = (x + v732);
+  x = (x + v733);
+  x = (x + v734);
+  x = (x + v735);
+  x = (x + v736);
+  x = (x + v737);
+  x = (x + v738);
+  x = (x + v739);
+  x = (x + v740);
+  x = (x + v741);
+  x = (x + v742);
+  x = (x + v743);
+  x = (x + v744);
+  x = (x + v745);
+  x = (x + v746);
+  x = (x + v747);
+  x = (x + v748);
+  x = (x + v749);
+  x = (x + v750);
+  x = (x + v751);
+  x = (x + v752);
+  x = (x + v753);
+  x = (x + v754);
+  x = (x + v755);
+  x = (x + v756);
+  x = (x + v757);
+  x = (x + v758);
+  x = (x + v759);
+  x = (x + v760);
+  x = (x + v761);
+  x = (x + v762);
+  x = (x + v763);
+  x = (x + v764);
+  x = (x + v765);
+  x = (x + v766);
+  x = (x + v767);
+  x = (x + v768);
+  x = (x + v769);
+  x = (x + v770);
+  x = (x + v771);
+  x = (x + v772);
+  x = (x + v773);
+  x = (x + v774);
+  x = (x + v775);
+  x = (x + v776);
+  x = (x + v777);
+  x = (x + v778);
+  x = (x + v779);
+  x = (x + v780);
+  x = (x + v781);
+  x = (x + v782);
+  x = (x + v783);
+  x = (x + v784);
+  x = (x + v785);
+  x = (x + v786);
+  x = (x + v787);
+  x = (x + v788);
+  x = (x + v789);
+  x = (x + v790);
+  x = (x + v791);
+  x = (x + v792);
+  x = (x + v793);
+  x = (x + v794);
+  x = (x + v795);
+  x = (x + v796);
+  x = (x + v797);
+  x = (x + v798);
+  x = (x + v799);
+  x = (x + v800);
+  x = (x + v801);
+  x = (x + v802);
+  x = (x + v803);
+  x = (x + v804);
+  x = (x + v805);
+  x = (x + v806);
+  x = (x + v807);
+  x = (x + v808);
+  x = (x + v809);
+  x = (x + v810);
+  x = (x + v811);
+  x = (x + v812);
+  x = (x + v813);
+  x = (x + v814);
+  x = (x + v815);
+  x = (x + v816);
+  x = (x + v817);
+  x = (x + v818);
+  x = (x + v819);
+  x = (x + v820);
+  x = (x + v821);
+  x = (x + v822);
+  x = (x + v823);
+  x = (x + v824);
+  x = (x + v825);
+  x = (x + v826);
+  x = (x + v827);
+  x = (x + v828);
+  x = (x + v829);
+  x = (x + v830);
+  x = (x + v831);
+  x = (x + v832);
+  x = (x + v833);
+  x = (x + v834);
+  x = (x + v835);
+  x = (x + v836);
+  x = (x + v837);
+  x = (x + v838);
+  x = (x + v839);
+  x = (x + v840);
+  x = (x + v841);
+  x = (x + v842);
+  x = (x + v843);
+  x = (x + v844);
+  x = (x + v845);
+  x = (x + v846);
+  x = (x + v847);
+  x = (x + v848);
+  x = (x + v849);
+  x = (x + v850);
+  x = (x + v851);
+  x = (x + v852);
+  x = (x + v853);
+  x = (x + v854);
+  x = (x + v855);
+  x = (x + v856);
+  x = (x + v857);
+  x = (x + v858);
+  x = (x + v859);
+  x = (x + v860);
+  x = (x + v861);
+  x = (x + v862);
+  x = (x + v863);
+  x = (x + v864);
+  x = (x + v865);
+  x = (x + v866);
+  x = (x + v867);
+  x = (x + v868);
+  x = (x + v869);
+  x = (x + v870);
+  x = (x + v871);
+  x = (x + v872);
+  x = (x + v873);
+  x = (x + v874);
+  x = (x + v875);
+  x = (x + v876);
+  x = (x + v877);
+  x = (x + v878);
+  x = (x + v879);
+  x = (x + v880);
+  x = (x + v881);
+  x = (x + v882);
+  x = (x + v883);
+  x = (x + v884);
+  x = (x + v885);
+  x = (x + v886);
+  x = (x + v887);
+  x = (x + v888);
+  x = (x + v889);
+  x = (x + v890);
+  x = (x + v891);
+  x = (x + v892);
+  x = (x + v893);
+  x = (x + v894);
+  x = (x + v895);
+  x = (x + v896);
+  x = (x + v897);
+  x = (x + v898);
+  x = (x + v899);
+  x = (x + v900);
+  x = (x + v901);
+  x = (x + v902);
+  x = (x + v903);
+  x = (x + v904);
+  x = (x + v905);
+  x = (x + v906);
+  x = (x + v907);
+  x = (x + v908);
+  x = (x + v909);
+  x = (x + v910);
+  x = (x + v911);
+  x = (x + v912);
+  x = (x + v913);
+  x = (x + v914);
+  x = (x + v915);
+  x = (x + v916);
+  x = (x + v917);
+  x = (x + v918);
+  x = (x + v919);
+  x = (x + v920);
+  x = (x + v921);
+  x = (x + v922);
+  x = (x + v923);
+  x = (x + v924);
+  x = (x + v925);
+  x = (x + v926);
+  x = (x + v927);
+  x = (x + v928);
+  x = (x + v929);
+  x = (x + v930);
+  x = (x + v931);
+  x = (x + v932);
+  x = (x + v933);
+  x = (x + v934);
+  x = (x + v935);
+  x = (x + v936);
+  x = (x + v937);
+  x = (x + v938);
+  x = (x + v939);
+  x = (x + v940);
+  x = (x + v941);
+  x = (x + v942);
+  x = (x + v943);
+  x = (x + v944);
+  x = (x + v945);
+  x = (x + v946);
+  x = (x + v947);
+  x = (x + v948);
+  x = (x + v949);
+  x = (x + v950);
+  x = (x + v951);
+  x = (x + v952);
+  x = (x + v953);
+  x = (x + v954);
+  x = (x + v955);
+  x = (x + v956);
+  x = (x + v957);
+  x = (x + v958);
+  x = (x + v959);
+  x = (x + v960);
+  x = (x + v961);
+  x = (x + v962);
+  x = (x + v963);
+  x = (x + v964);
+  x = (x + v965);
+  x = (x + v966);
+  x = (x + v967);
+  x = (x + v968);
+  x = (x + v969);
+  x = (x + v970);
+  x = (x + v971);
+  x = (x + v972);
+  x = (x + v973);
+  x = (x + v974);
+  x = (x + v975);
+  x = (x + v976);
+  x = (x + v977);
+  x = (x + v978);
+  x = (x + v979);
+  x = (x + v980);
+  x = (x + v981);
+  x = (x + v982);
+  x = (x + v983);
+  x = (x + v984);
+  x = (x + v985);
+  x = (x + v986);
+  x = (x + v987);
+  x = (x + v988);
+  x = (x + v989);
+  x = (x + v990);
+  x = (x + v991);
+  x = (x + v992);
+  x = (x + v993);
+  x = (x + v994);
+  x = (x + v995);
+  x = (x + v996);
+  x = (x + v997);
+  x = (x + v998);
+  x = (x + v999);
+  return x;
+}
+fragment uint tint_symbol() {
+  return foo();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint v0 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread uint v1 = 0u;
+            ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread uint v2 = 0u;
+            ^
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint v3 = 0u;
+            ^
+program_source:8:13: error: program scope variable must reside in constant address space
+thread uint v4 = 0u;
+            ^
+program_source:9:13: error: program scope variable must reside in constant address space
+thread uint v5 = 0u;
+            ^
+program_source:10:13: error: program scope variable must reside in constant address space
+thread uint v6 = 0u;
+            ^
+program_source:11:13: error: program scope variable must reside in constant address space
+thread uint v7 = 0u;
+            ^
+program_source:12:13: error: program scope variable must reside in constant address space
+thread uint v8 = 0u;
+            ^
+program_source:13:13: error: program scope variable must reside in constant address space
+thread uint v9 = 0u;
+            ^
+program_source:14:13: error: program scope variable must reside in constant address space
+thread uint v10 = 0u;
+            ^
+program_source:15:13: error: program scope variable must reside in constant address space
+thread uint v11 = 0u;
+            ^
+program_source:16:13: error: program scope variable must reside in constant address space
+thread uint v12 = 0u;
+            ^
+program_source:17:13: error: program scope variable must reside in constant address space
+thread uint v13 = 0u;
+            ^
+program_source:18:13: error: program scope variable must reside in constant address space
+thread uint v14 = 0u;
+            ^
+program_source:19:13: error: program scope variable must reside in constant address space
+thread uint v15 = 0u;
+            ^
+program_source:20:13: error: program scope variable must reside in constant address space
+thread uint v16 = 0u;
+            ^
+program_source:21:13: error: program scope variable must reside in constant address space
+thread uint v17 = 0u;
+            ^
+program_source:22:13: error: program scope variable must reside in constant address space
+thread uint v18 = 0u;
+            ^
+program_source:23:13: error: program scope variable must reside in constant address space
+thread uint v19 = 0u;
+            ^
+program_source:24:13: error: program scope variable must reside in constant address space
+thread uint v20 = 0u;
+            ^
+program_source:25:13: error: program scope variable must reside in constant address space
+thread uint v21 = 0u;
+            ^
+program_source:26:13: error: program scope variable must reside in constant address space
+thread uint v22 = 0u;
+            ^
+program_source:27:13: error: program scope variable must reside in constant address space
+thread uint v23 = 0u;
+            ^
+program_source:28:13: error: program scope variable must reside in constant address space
+thread uint v24 = 0u;
+            ^
+program_source:29:13: error: program scope variable must reside in constant address space
+thread uint v25 = 0u;
+            ^
+program_source:30:13: error: program scope variable must reside in constant address space
+thread uint v26 = 0u;
+            ^
+program_source:31:13: error: program scope variable must reside in constant address space
+thread uint v27 = 0u;
+            ^
+program_source:32:13: error: program scope variable must reside in constant address space
+thread uint v28 = 0u;
+            ^
+program_source:33:13: error: program scope variable must reside in constant address space
+thread uint v29 = 0u;
+            ^
+program_source:34:13: error: program scope variable must reside in constant address space
+thread uint v30 = 0u;
+            ^
+program_source:35:13: error: program scope variable must reside in constant address space
+thread uint v31 = 0u;
+            ^
+program_source:36:13: error: program scope variable must reside in constant address space
+thread uint v32 = 0u;
+            ^
+program_source:37:13: error: program scope variable must reside in constant address space
+thread uint v33 = 0u;
+            ^
+program_source:38:13: error: program scope variable must reside in constant address space
+thread uint v34 = 0u;
+            ^
+program_source:39:13: error: program scope variable must reside in constant address space
+thread uint v35 = 0u;
+            ^
+program_source:40:13: error: program scope variable must reside in constant address space
+thread uint v36 = 0u;
+            ^
+program_source:41:13: error: program scope variable must reside in constant address space
+thread uint v37 = 0u;
+            ^
+program_source:42:13: error: program scope variable must reside in constant address space
+thread uint v38 = 0u;
+            ^
+program_source:43:13: error: program scope variable must reside in constant address space
+thread uint v39 = 0u;
+            ^
+program_source:44:13: error: program scope variable must reside in constant address space
+thread uint v40 = 0u;
+            ^
+program_source:45:13: error: program scope variable must reside in constant address space
+thread uint v41 = 0u;
+            ^
+program_source:46:13: error: program scope variable must reside in constant address space
+thread uint v42 = 0u;
+            ^
+program_source:47:13: error: program scope variable must reside in constant address space
+thread uint v43 = 0u;
+            ^
+program_source:48:13: error: program scope variable must reside in constant address space
+thread uint v44 = 0u;
+            ^
+program_source:49:13: error: program scope variable must reside in constant address space
+thread uint v45 = 0u;
+            ^
+program_source:50:13: error: program scope variable must reside in constant address space
+thread uint v46 = 0u;
+            ^
+program_source:51:13: error: program scope variable must reside in constant address space
+thread uint v47 = 0u;
+            ^
+program_source:52:13: error: program scope variable must reside in constant address space
+thread uint v48 = 0u;
+            ^
+program_source:53:13: error: program scope variable must reside in constant address space
+thread uint v49 = 0u;
+            ^
+program_source:54:13: error: program scope variable must reside in constant address space
+thread uint v50 = 0u;
+            ^
+program_source:55:13: error: program scope variable must reside in constant address space
+thread uint v51 = 0u;
+            ^
+program_source:56:13: error: program scope variable must reside in constant address space
+thread uint v52 = 0u;
+            ^
+program_source:57:13: error: program scope variable must reside in constant address space
+thread uint v53 = 0u;
+            ^
+program_source:58:13: error: program scope variable must reside in constant address space
+thread uint v54 = 0u;
+            ^
+program_source:59:13: error: program scope variable must reside in constant address space
+thread uint v55 = 0u;
+            ^
+program_source:60:13: error: program scope variable must reside in constant address space
+thread uint v56 = 0u;
+            ^
+program_source:61:13: error: program scope variable must reside in constant address space
+thread uint v57 = 0u;
+            ^
+program_source:62:13: error: program scope variable must reside in constant address space
+thread uint v58 = 0u;
+            ^
+program_source:63:13: error: program scope variable must reside in constant address space
+thread uint v59 = 0u;
+            ^
+program_source:64:13: error: program scope variable must reside in constant address space
+thread uint v60 = 0u;
+            ^
+program_source:65:13: error: program scope variable must reside in constant address space
+thread uint v61 = 0u;
+            ^
+program_source:66:13: error: program scope variable must reside in constant address space
+thread uint v62 = 0u;
+            ^
+program_source:67:13: error: program scope variable must reside in constant address space
+thread uint v63 = 0u;
+            ^
+program_source:68:13: error: program scope variable must reside in constant address space
+thread uint v64 = 0u;
+            ^
+program_source:69:13: error: program scope variable must reside in constant address space
+thread uint v65 = 0u;
+            ^
+program_source:70:13: error: program scope variable must reside in constant address space
+thread uint v66 = 0u;
+            ^
+program_source:71:13: error: program scope variable must reside in constant address space
+thread uint v67 = 0u;
+            ^
+program_source:72:13: error: program scope variable must reside in constant address space
+thread uint v68 = 0u;
+            ^
+program_source:73:13: error: program scope variable must reside in constant address space
+thread uint v69 = 0u;
+            ^
+program_source:74:13: error: program scope variable must reside in constant address space
+thread uint v70 = 0u;
+            ^
+program_source:75:13: error: program scope variable must reside in constant address space
+thread uint v71 = 0u;
+            ^
+program_source:76:13: error: program scope variable must reside in constant address space
+thread uint v72 = 0u;
+            ^
+program_source:77:13: error: program scope variable must reside in constant address space
+thread uint v73 = 0u;
+            ^
+program_source:78:13: error: program scope variable must reside in constant address space
+thread uint v74 = 0u;
+            ^
+program_source:79:13: error: program scope variable must reside in constant address space
+thread uint v75 = 0u;
+            ^
+program_source:80:13: error: program scope variable must reside in constant address space
+thread uint v76 = 0u;
+            ^
+program_source:81:13: error: program scope variable must reside in constant address space
+thread uint v77 = 0u;
+            ^
+program_source:82:13: error: program scope variable must reside in constant address space
+thread uint v78 = 0u;
+            ^
+program_source:83:13: error: program scope variable must reside in constant address space
+thread uint v79 = 0u;
+            ^
+program_source:84:13: error: program scope variable must reside in constant address space
+thread uint v80 = 0u;
+            ^
+program_source:85:13: error: program scope variable must reside in constant address space
+thread uint v81 = 0u;
+            ^
+program_source:86:13: error: program scope variable must reside in constant address space
+thread uint v82 = 0u;
+            ^
+program_source:87:13: error: program scope variable must reside in constant address space
+thread uint v83 = 0u;
+            ^
+program_source:88:13: error: program scope variable must reside in constant address space
+thread uint v84 = 0u;
+            ^
+program_source:89:13: error: program scope variable must reside in constant address space
+thread uint v85 = 0u;
+            ^
+program_source:90:13: error: program scope variable must reside in constant address space
+thread uint v86 = 0u;
+            ^
+program_source:91:13: error: program scope variable must reside in constant address space
+thread uint v87 = 0u;
+            ^
+program_source:92:13: error: program scope variable must reside in constant address space
+thread uint v88 = 0u;
+            ^
+program_source:93:13: error: program scope variable must reside in constant address space
+thread uint v89 = 0u;
+            ^
+program_source:94:13: error: program scope variable must reside in constant address space
+thread uint v90 = 0u;
+            ^
+program_source:95:13: error: program scope variable must reside in constant address space
+thread uint v91 = 0u;
+            ^
+program_source:96:13: error: program scope variable must reside in constant address space
+thread uint v92 = 0u;
+            ^
+program_source:97:13: error: program scope variable must reside in constant address space
+thread uint v93 = 0u;
+            ^
+program_source:98:13: error: program scope variable must reside in constant address space
+thread uint v94 = 0u;
+            ^
+program_source:99:13: error: program scope variable must reside in constant address space
+thread uint v95 = 0u;
+            ^
+program_source:100:13: error: program scope variable must reside in constant address space
+thread uint v96 = 0u;
+            ^
+program_source:101:13: error: program scope variable must reside in constant address space
+thread uint v97 = 0u;
+            ^
+program_source:102:13: error: program scope variable must reside in constant address space
+thread uint v98 = 0u;
+            ^
+program_source:103:13: error: program scope variable must reside in constant address space
+thread uint v99 = 0u;
+            ^
+program_source:104:13: error: program scope variable must reside in constant address space
+thread uint v100 = 0u;
+            ^
+program_source:105:13: error: program scope variable must reside in constant address space
+thread uint v101 = 0u;
+            ^
+program_source:106:13: error: program scope variable must reside in constant address space
+thread uint v102 = 0u;
+            ^
+program_source:107:13: error: program scope variable must reside in constant address space
+thread uint v103 = 0u;
+            ^
+program_source:108:13: error: program scope variable must reside in constant address space
+thread uint v104 = 0u;
+            ^
+program_source:109:13: error: program scope variable must reside in constant address space
+thread uint v105 = 0u;
+            ^
+program_source:110:13: error: program scope variable must reside in constant address space
+thread uint v106 = 0u;
+            ^
+program_source:111:13: error: program scope variable must reside in constant address space
+thread uint v107 = 0u;
+            ^
+program_source:112:13: error: program scope variable must reside in constant address space
+thread uint v108 = 0u;
+            ^
+program_source:113:13: error: program scope variable must reside in constant address space
+thread uint v109 = 0u;
+            ^
+program_source:114:13: error: program scope variable must reside in constant address space
+thread uint v110 = 0u;
+            ^
+program_source:115:13: error: program scope variable must reside in constant address space
+thread uint v111 = 0u;
+            ^
+program_source:116:13: error: program scope variable must reside in constant address space
+thread uint v112 = 0u;
+            ^
+program_source:117:13: error: program scope variable must reside in constant address space
+thread uint v113 = 0u;
+            ^
+program_source:118:13: error: program scope variable must reside in constant address space
+thread uint v114 = 0u;
+            ^
+program_source:119:13: error: program scope variable must reside in constant address space
+thread uint v115 = 0u;
+            ^
+program_source:120:13: error: program scope variable must reside in constant address space
+thread uint v116 = 0u;
+            ^
+program_source:121:13: error: program scope variable must reside in constant address space
+thread uint v117 = 0u;
+            ^
+program_source:122:13: error: program scope variable must reside in constant address space
+thread uint v118 = 0u;
+            ^
+program_source:123:13: error: program scope variable must reside in constant address space
+thread uint v119 = 0u;
+            ^
+program_source:124:13: error: program scope variable must reside in constant address space
+thread uint v120 = 0u;
+            ^
+program_source:125:13: error: program scope variable must reside in constant address space
+thread uint v121 = 0u;
+            ^
+program_source:126:13: error: program scope variable must reside in constant address space
+thread uint v122 = 0u;
+            ^
+program_source:127:13: error: program scope variable must reside in constant address space
+thread uint v123 = 0u;
+            ^
+program_source:128:13: error: program scope variable must reside in constant address space
+thread uint v124 = 0u;
+            ^
+program_source:129:13: error: program scope variable must reside in constant address space
+thread uint v125 = 0u;
+            ^
+program_source:130:13: error: program scope variable must reside in constant address space
+thread uint v126 = 0u;
+            ^
+program_source:131:13: error: program scope variable must reside in constant address space
+thread uint v127 = 0u;
+            ^
+program_source:132:13: error: program scope variable must reside in constant address space
+thread uint v128 = 0u;
+            ^
+program_source:133:13: error: program scope variable must reside in constant address space
+thread uint v129 = 0u;
+            ^
+program_source:134:13: error: program scope variable must reside in constant address space
+thread uint v130 = 0u;
+            ^
+program_source:135:13: error: program scope variable must reside in constant address space
+thread uint v131 = 0u;
+            ^
+program_source:136:13: error: program scope variable must reside in constant address space
+thread uint v132 = 0u;
+            ^
+program_source:137:13: error: program scope variable must reside in constant address space
+thread uint v133 = 0u;
+            ^
+program_source:138:13: error: program scope variable must reside in constant address space
+thread uint v134 = 0u;
+            ^
+program_source:139:13: error: program scope variable must reside in constant address space
+thread uint v135 = 0u;
+            ^
+program_source:140:13: error: program scope variable must reside in constant address space
+thread uint v136 = 0u;
+            ^
+program_source:141:13: error: program scope variable must reside in constant address space
+thread uint v137 = 0u;
+            ^
+program_source:142:13: error: program scope variable must reside in constant address space
+thread uint v138 = 0u;
+            ^
+program_source:143:13: error: program scope variable must reside in constant address space
+thread uint v139 = 0u;
+            ^
+program_source:144:13: error: program scope variable must reside in constant address space
+thread uint v140 = 0u;
+            ^
+program_source:145:13: error: program scope variable must reside in constant address space
+thread uint v141 = 0u;
+            ^
+program_source:146:13: error: program scope variable must reside in constant address space
+thread uint v142 = 0u;
+            ^
+program_source:147:13: error: program scope variable must reside in constant address space
+thread uint v143 = 0u;
+            ^
+program_source:148:13: error: program scope variable must reside in constant address space
+thread uint v144 = 0u;
+            ^
+program_source:149:13: error: program scope variable must reside in constant address space
+thread uint v145 = 0u;
+            ^
+program_source:150:13: error: program scope variable must reside in constant address space
+thread uint v146 = 0u;
+            ^
+program_source:151:13: error: program scope variable must reside in constant address space
+thread uint v147 = 0u;
+            ^
+program_source:152:13: error: program scope variable must reside in constant address space
+thread uint v148 = 0u;
+            ^
+program_source:153:13: error: program scope variable must reside in constant address space
+thread uint v149 = 0u;
+            ^
+program_source:154:13: error: program scope variable must reside in constant address space
+thread uint v150 = 0u;
+            ^
+program_source:155:13: error: program scope variable must reside in constant address space
+thread uint v151 = 0u;
+            ^
+program_source:156:13: error: program scope variable must reside in constant address space
+thread uint v152 = 0u;
+            ^
+program_source:157:13: error: program scope variable must reside in constant address space
+thread uint v153 = 0u;
+            ^
+program_source:158:13: error: program scope variable must reside in constant address space
+thread uint v154 = 0u;
+            ^
+program_source:159:13: error: program scope variable must reside in constant address space
+thread uint v155 = 0u;
+            ^
+program_source:160:13: error: program scope variable must reside in constant address space
+thread uint v156 = 0u;
+            ^
+program_source:161:13: error: program scope variable must reside in constant address space
+thread uint v157 = 0u;
+            ^
+program_source:162:13: error: program scope variable must reside in constant address space
+thread uint v158 = 0u;
+            ^
+program_source:163:13: error: program scope variable must reside in constant address space
+thread uint v159 = 0u;
+            ^
+program_source:164:13: error: program scope variable must reside in constant address space
+thread uint v160 = 0u;
+            ^
+program_source:165:13: error: program scope variable must reside in constant address space
+thread uint v161 = 0u;
+            ^
+program_source:166:13: error: program scope variable must reside in constant address space
+thread uint v162 = 0u;
+            ^
+program_source:167:13: error: program scope variable must reside in constant address space
+thread uint v163 = 0u;
+            ^
+program_source:168:13: error: program scope variable must reside in constant address space
+thread uint v164 = 0u;
+            ^
+program_source:169:13: error: program scope variable must reside in constant address space
+thread uint v165 = 0u;
+            ^
+program_source:170:13: error: program scope variable must reside in constant address space
+thread uint v166 = 0u;
+            ^
+program_source:171:13: error: program scope variable must reside in constant address space
+thread uint v167 = 0u;
+            ^
+program_source:172:13: error: program scope variable must reside in constant address space
+thread uint v168 = 0u;
+            ^
+program_source:173:13: error: program scope variable must reside in constant address space
+thread uint v169 = 0u;
+            ^
+program_source:174:13: error: program scope variable must reside in constant address space
+thread uint v170 = 0u;
+            ^
+program_source:175:13: error: program scope variable must reside in constant address space
+thread uint v171 = 0u;
+            ^
+program_source:176:13: error: program scope variable must reside in constant address space
+thread uint v172 = 0u;
+            ^
+program_source:177:13: error: program scope variable must reside in constant address space
+thread uint v173 = 0u;
+            ^
+program_source:178:13: error: program scope variable must reside in constant address space
+thread uint v174 = 0u;
+            ^
+program_source:179:13: error: program scope variable must reside in constant address space
+thread uint v175 = 0u;
+            ^
+program_source:180:13: error: program scope variable must reside in constant address space
+thread uint v176 = 0u;
+            ^
+program_source:181:13: error: program scope variable must reside in constant address space
+thread uint v177 = 0u;
+            ^
+program_source:182:13: error: program scope variable must reside in constant address space
+thread uint v178 = 0u;
+            ^
+program_source:183:13: error: program scope variable must reside in constant address space
+thread uint v179 = 0u;
+            ^
+program_source:184:13: error: program scope variable must reside in constant address space
+thread uint v180 = 0u;
+            ^
+program_source:185:13: error: program scope variable must reside in constant address space
+thread uint v181 = 0u;
+            ^
+program_source:186:13: error: program scope variable must reside in constant address space
+thread uint v182 = 0u;
+            ^
+program_source:187:13: error: program scope variable must reside in constant address space
+thread uint v183 = 0u;
+            ^
+program_source:188:13: error: program scope variable must reside in constant address space
+thread uint v184 = 0u;
+            ^
+program_source:189:13: error: program scope variable must reside in constant address space
+thread uint v185 = 0u;
+            ^
+program_source:190:13: error: program scope variable must reside in constant address space
+thread uint v186 = 0u;
+            ^
+program_source:191:13: error: program scope variable must reside in constant address space
+thread uint v187 = 0u;
+            ^
+program_source:192:13: error: program scope variable must reside in constant address space
+thread uint v188 = 0u;
+            ^
+program_source:193:13: error: program scope variable must reside in constant address space
+thread uint v189 = 0u;
+            ^
+program_source:194:13: error: program scope variable must reside in constant address space
+thread uint v190 = 0u;
+            ^
+program_source:195:13: error: program scope variable must reside in constant address space
+thread uint v191 = 0u;
+            ^
+program_source:196:13: error: program scope variable must reside in constant address space
+thread uint v192 = 0u;
+            ^
+program_source:197:13: error: program scope variable must reside in constant address space
+thread uint v193 = 0u;
+            ^
+program_source:198:13: error: program scope variable must reside in constant address space
+thread uint v194 = 0u;
+            ^
+program_source:199:13: error: program scope variable must reside in constant address space
+thread uint v195 = 0u;
+            ^
+program_source:200:13: error: program scope variable must reside in constant address space
+thread uint v196 = 0u;
+            ^
+program_source:201:13: error: program scope variable must reside in constant address space
+thread uint v197 = 0u;
+            ^
+program_source:202:13: error: program scope variable must reside in constant address space
+thread uint v198 = 0u;
+            ^
+program_source:203:13: error: program scope variable must reside in constant address space
+thread uint v199 = 0u;
+            ^
+program_source:204:13: error: program scope variable must reside in constant address space
+thread uint v200 = 0u;
+            ^
+program_source:205:13: error: program scope variable must reside in constant address space
+thread uint v201 = 0u;
+            ^
+program_source:206:13: error: program scope variable must reside in constant address space
+thread uint v202 = 0u;
+            ^
+program_source:207:13: error: program scope variable must reside in constant address space
+thread uint v203 = 0u;
+            ^
+program_source:208:13: error: program scope variable must reside in constant address space
+thread uint v204 = 0u;
+            ^
+program_source:209:13: error: program scope variable must reside in constant address space
+thread uint v205 = 0u;
+            ^
+program_source:210:13: error: program scope variable must reside in constant address space
+thread uint v206 = 0u;
+            ^
+program_source:211:13: error: program scope variable must reside in constant address space
+thread uint v207 = 0u;
+            ^
+program_source:212:13: error: program scope variable must reside in constant address space
+thread uint v208 = 0u;
+            ^
+program_source:213:13: error: program scope variable must reside in constant address space
+thread uint v209 = 0u;
+            ^
+program_source:214:13: error: program scope variable must reside in constant address space
+thread uint v210 = 0u;
+            ^
+program_source:215:13: error: program scope variable must reside in constant address space
+thread uint v211 = 0u;
+            ^
+program_source:216:13: error: program scope variable must reside in constant address space
+thread uint v212 = 0u;
+            ^
+program_source:217:13: error: program scope variable must reside in constant address space
+thread uint v213 = 0u;
+            ^
+program_source:218:13: error: program scope variable must reside in constant address space
+thread uint v214 = 0u;
+            ^
+program_source:219:13: error: program scope variable must reside in constant address space
+thread uint v215 = 0u;
+            ^
+program_source:220:13: error: program scope variable must reside in constant address space
+thread uint v216 = 0u;
+            ^
+program_source:221:13: error: program scope variable must reside in constant address space
+thread uint v217 = 0u;
+            ^
+program_source:222:13: error: program scope variable must reside in constant address space
+thread uint v218 = 0u;
+            ^
+program_source:223:13: error: program scope variable must reside in constant address space
+thread uint v219 = 0u;
+            ^
+program_source:224:13: error: program scope variable must reside in constant address space
+thread uint v220 = 0u;
+            ^
+program_source:225:13: error: program scope variable must reside in constant address space
+thread uint v221 = 0u;
+            ^
+program_source:226:13: error: program scope variable must reside in constant address space
+thread uint v222 = 0u;
+            ^
+program_source:227:13: error: program scope variable must reside in constant address space
+thread uint v223 = 0u;
+            ^
+program_source:228:13: error: program scope variable must reside in constant address space
+thread uint v224 = 0u;
+            ^
+program_source:229:13: error: program scope variable must reside in constant address space
+thread uint v225 = 0u;
+            ^
+program_source:230:13: error: program scope variable must reside in constant address space
+thread uint v226 = 0u;
+            ^
+program_source:231:13: error: program scope variable must reside in constant address space
+thread uint v227 = 0u;
+            ^
+program_source:232:13: error: program scope variable must reside in constant address space
+thread uint v228 = 0u;
+            ^
+program_source:233:13: error: program scope variable must reside in constant address space
+thread uint v229 = 0u;
+            ^
+program_source:234:13: error: program scope variable must reside in constant address space
+thread uint v230 = 0u;
+            ^
+program_source:235:13: error: program scope variable must reside in constant address space
+thread uint v231 = 0u;
+            ^
+program_source:236:13: error: program scope variable must reside in constant address space
+thread uint v232 = 0u;
+            ^
+program_source:237:13: error: program scope variable must reside in constant address space
+thread uint v233 = 0u;
+            ^
+program_source:238:13: error: program scope variable must reside in constant address space
+thread uint v234 = 0u;
+            ^
+program_source:239:13: error: program scope variable must reside in constant address space
+thread uint v235 = 0u;
+            ^
+program_source:240:13: error: program scope variable must reside in constant address space
+thread uint v236 = 0u;
+            ^
+program_source:241:13: error: program scope variable must reside in constant address space
+thread uint v237 = 0u;
+            ^
+program_source:242:13: error: program scope variable must reside in constant address space
+thread uint v238 = 0u;
+            ^
+program_source:243:13: error: program scope variable must reside in constant address space
+thread uint v239 = 0u;
+            ^
+program_source:244:13: error: program scope variable must reside in constant address space
+thread uint v240 = 0u;
+            ^
+program_source:245:13: error: program scope variable must reside in constant address space
+thread uint v241 = 0u;
+            ^
+program_source:246:13: error: program scope variable must reside in constant address space
+thread uint v242 = 0u;
+            ^
+program_source:247:13: error: program scope variable must reside in constant address space
+thread uint v243 = 0u;
+            ^
+program_source:248:13: error: program scope variable must reside in constant address space
+thread uint v244 = 0u;
+            ^
+program_source:249:13: error: program scope variable must reside in constant address space
+thread uint v245 = 0u;
+            ^
+program_source:250:13: error: program scope variable must reside in constant address space
+thread uint v246 = 0u;
+            ^
+program_source:251:13: error: program scope variable must reside in constant address space
+thread uint v247 = 0u;
+            ^
+program_source:252:13: error: program scope variable must reside in constant address space
+thread uint v248 = 0u;
+            ^
+program_source:253:13: error: program scope variable must reside in constant address space
+thread uint v249 = 0u;
+            ^
+program_source:254:13: error: program scope variable must reside in constant address space
+thread uint v250 = 0u;
+            ^
+program_source:255:13: error: program scope variable must reside in constant address space
+thread uint v251 = 0u;
+            ^
+program_source:256:13: error: program scope variable must reside in constant address space
+thread uint v252 = 0u;
+            ^
+program_source:257:13: error: program scope variable must reside in constant address space
+thread uint v253 = 0u;
+            ^
+program_source:258:13: error: program scope variable must reside in constant address space
+thread uint v254 = 0u;
+            ^
+program_source:259:13: error: program scope variable must reside in constant address space
+thread uint v255 = 0u;
+            ^
+program_source:260:13: error: program scope variable must reside in constant address space
+thread uint v256 = 0u;
+            ^
+program_source:261:13: error: program scope variable must reside in constant address space
+thread uint v257 = 0u;
+            ^
+program_source:262:13: error: program scope variable must reside in constant address space
+thread uint v258 = 0u;
+            ^
+program_source:263:13: error: program scope variable must reside in constant address space
+thread uint v259 = 0u;
+            ^
+program_source:264:13: error: program scope variable must reside in constant address space
+thread uint v260 = 0u;
+            ^
+program_source:265:13: error: program scope variable must reside in constant address space
+thread uint v261 = 0u;
+            ^
+program_source:266:13: error: program scope variable must reside in constant address space
+thread uint v262 = 0u;
+            ^
+program_source:267:13: error: program scope variable must reside in constant address space
+thread uint v263 = 0u;
+            ^
+program_source:268:13: error: program scope variable must reside in constant address space
+thread uint v264 = 0u;
+            ^
+program_source:269:13: error: program scope variable must reside in constant address space
+thread uint v265 = 0u;
+            ^
+program_source:270:13: error: program scope variable must reside in constant address space
+thread uint v266 = 0u;
+            ^
+program_source:271:13: error: program scope variable must reside in constant address space
+thread uint v267 = 0u;
+            ^
+program_source:272:13: error: program scope variable must reside in constant address space
+thread uint v268 = 0u;
+            ^
+program_source:273:13: error: program scope variable must reside in constant address space
+thread uint v269 = 0u;
+            ^
+program_source:274:13: error: program scope variable must reside in constant address space
+thread uint v270 = 0u;
+            ^
+program_source:275:13: error: program scope variable must reside in constant address space
+thread uint v271 = 0u;
+            ^
+program_source:276:13: error: program scope variable must reside in constant address space
+thread uint v272 = 0u;
+            ^
+program_source:277:13: error: program scope variable must reside in constant address space
+thread uint v273 = 0u;
+            ^
+program_source:278:13: error: program scope variable must reside in constant address space
+thread uint v274 = 0u;
+            ^
+program_source:279:13: error: program scope variable must reside in constant address space
+thread uint v275 = 0u;
+            ^
+program_source:280:13: error: program scope variable must reside in constant address space
+thread uint v276 = 0u;
+            ^
+program_source:281:13: error: program scope variable must reside in constant address space
+thread uint v277 = 0u;
+            ^
+program_source:282:13: error: program scope variable must reside in constant address space
+thread uint v278 = 0u;
+            ^
+program_source:283:13: error: program scope variable must reside in constant address space
+thread uint v279 = 0u;
+            ^
+program_source:284:13: error: program scope variable must reside in constant address space
+thread uint v280 = 0u;
+            ^
+program_source:285:13: error: program scope variable must reside in constant address space
+thread uint v281 = 0u;
+            ^
+program_source:286:13: error: program scope variable must reside in constant address space
+thread uint v282 = 0u;
+            ^
+program_source:287:13: error: program scope variable must reside in constant address space
+thread uint v283 = 0u;
+            ^
+program_source:288:13: error: program scope variable must reside in constant address space
+thread uint v284 = 0u;
+            ^
+program_source:289:13: error: program scope variable must reside in constant address space
+thread uint v285 = 0u;
+            ^
+program_source:290:13: error: program scope variable must reside in constant address space
+thread uint v286 = 0u;
+            ^
+program_source:291:13: error: program scope variable must reside in constant address space
+thread uint v287 = 0u;
+            ^
+program_source:292:13: error: program scope variable must reside in constant address space
+thread uint v288 = 0u;
+            ^
+program_source:293:13: error: program scope variable must reside in constant address space
+thread uint v289 = 0u;
+            ^
+program_source:294:13: error: program scope variable must reside in constant address space
+thread uint v290 = 0u;
+            ^
+program_source:295:13: error: program scope variable must reside in constant address space
+thread uint v291 = 0u;
+            ^
+program_source:296:13: error: program scope variable must reside in constant address space
+thread uint v292 = 0u;
+            ^
+program_source:297:13: error: program scope variable must reside in constant address space
+thread uint v293 = 0u;
+            ^
+program_source:298:13: error: program scope variable must reside in constant address space
+thread uint v294 = 0u;
+            ^
+program_source:299:13: error: program scope variable must reside in constant address space
+thread uint v295 = 0u;
+            ^
+program_source:300:13: error: program scope variable must reside in constant address space
+thread uint v296 = 0u;
+            ^
+program_source:301:13: error: program scope variable must reside in constant address space
+thread uint v297 = 0u;
+            ^
+program_source:302:13: error: program scope variable must reside in constant address space
+thread uint v298 = 0u;
+            ^
+program_source:303:13: error: program scope variable must reside in constant address space
+thread uint v299 = 0u;
+            ^
+program_source:304:13: error: program scope variable must reside in constant address space
+thread uint v300 = 0u;
+            ^
+program_source:305:13: error: program scope variable must reside in constant address space
+thread uint v301 = 0u;
+            ^
+program_source:306:13: error: program scope variable must reside in constant address space
+thread uint v302 = 0u;
+            ^
+program_source:307:13: error: program scope variable must reside in constant address space
+thread uint v303 = 0u;
+            ^
+program_source:308:13: error: program scope variable must reside in constant address space
+thread uint v304 = 0u;
+            ^
+program_source:309:13: error: program scope variable must reside in constant address space
+thread uint v305 = 0u;
+            ^
+program_source:310:13: error: program scope variable must reside in constant address space
+thread uint v306 = 0u;
+            ^
+program_source:311:13: error: program scope variable must reside in constant address space
+thread uint v307 = 0u;
+            ^
+program_source:312:13: error: program scope variable must reside in constant address space
+thread uint v308 = 0u;
+            ^
+program_source:313:13: error: program scope variable must reside in constant address space
+thread uint v309 = 0u;
+            ^
+program_source:314:13: error: program scope variable must reside in constant address space
+thread uint v310 = 0u;
+            ^
+program_source:315:13: error: program scope variable must reside in constant address space
+thread uint v311 = 0u;
+            ^
+program_source:316:13: error: program scope variable must reside in constant address space
+thread uint v312 = 0u;
+            ^
+program_source:317:13: error: program scope variable must reside in constant address space
+thread uint v313 = 0u;
+            ^
+program_source:318:13: error: program scope variable must reside in constant address space
+thread uint v314 = 0u;
+            ^
+program_source:319:13: error: program scope variable must reside in constant address space
+thread uint v315 = 0u;
+            ^
+program_source:320:13: error: program scope variable must reside in constant address space
+thread uint v316 = 0u;
+            ^
+program_source:321:13: error: program scope variable must reside in constant address space
+thread uint v317 = 0u;
+            ^
+program_source:322:13: error: program scope variable must reside in constant address space
+thread uint v318 = 0u;
+            ^
+program_source:323:13: error: program scope variable must reside in constant address space
+thread uint v319 = 0u;
+            ^
+program_source:324:13: error: program scope variable must reside in constant address space
+thread uint v320 = 0u;
+            ^
+program_source:325:13: error: program scope variable must reside in constant address space
+thread uint v321 = 0u;
+            ^
+program_source:326:13: error: program scope variable must reside in constant address space
+thread uint v322 = 0u;
+            ^
+program_source:327:13: error: program scope variable must reside in constant address space
+thread uint v323 = 0u;
+            ^
+program_source:328:13: error: program scope variable must reside in constant address space
+thread uint v324 = 0u;
+            ^
+program_source:329:13: error: program scope variable must reside in constant address space
+thread uint v325 = 0u;
+            ^
+program_source:330:13: error: program scope variable must reside in constant address space
+thread uint v326 = 0u;
+            ^
+program_source:331:13: error: program scope variable must reside in constant address space
+thread uint v327 = 0u;
+            ^
+program_source:332:13: error: program scope variable must reside in constant address space
+thread uint v328 = 0u;
+            ^
+program_source:333:13: error: program scope variable must reside in constant address space
+thread uint v329 = 0u;
+            ^
+program_source:334:13: error: program scope variable must reside in constant address space
+thread uint v330 = 0u;
+            ^
+program_source:335:13: error: program scope variable must reside in constant address space
+thread uint v331 = 0u;
+            ^
+program_source:336:13: error: program scope variable must reside in constant address space
+thread uint v332 = 0u;
+            ^
+program_source:337:13: error: program scope variable must reside in constant address space
+thread uint v333 = 0u;
+            ^
+program_source:338:13: error: program scope variable must reside in constant address space
+thread uint v334 = 0u;
+            ^
+program_source:339:13: error: program scope variable must reside in constant address space
+thread uint v335 = 0u;
+            ^
+program_source:340:13: error: program scope variable must reside in constant address space
+thread uint v336 = 0u;
+            ^
+program_source:341:13: error: program scope variable must reside in constant address space
+thread uint v337 = 0u;
+            ^
+program_source:342:13: error: program scope variable must reside in constant address space
+thread uint v338 = 0u;
+            ^
+program_source:343:13: error: program scope variable must reside in constant address space
+thread uint v339 = 0u;
+            ^
+program_source:344:13: error: program scope variable must reside in constant address space
+thread uint v340 = 0u;
+            ^
+program_source:345:13: error: program scope variable must reside in constant address space
+thread uint v341 = 0u;
+            ^
+program_source:346:13: error: program scope variable must reside in constant address space
+thread uint v342 = 0u;
+            ^
+program_source:347:13: error: program scope variable must reside in constant address space
+thread uint v343 = 0u;
+            ^
+program_source:348:13: error: program scope variable must reside in constant address space
+thread uint v344 = 0u;
+            ^
+program_source:349:13: error: program scope variable must reside in constant address space
+thread uint v345 = 0u;
+            ^
+program_source:350:13: error: program scope variable must reside in constant address space
+thread uint v346 = 0u;
+            ^
+program_source:351:13: error: program scope variable must reside in constant address space
+thread uint v347 = 0u;
+            ^
+program_source:352:13: error: program scope variable must reside in constant address space
+thread uint v348 = 0u;
+            ^
+program_source:353:13: error: program scope variable must reside in constant address space
+thread uint v349 = 0u;
+            ^
+program_source:354:13: error: program scope variable must reside in constant address space
+thread uint v350 = 0u;
+            ^
+program_source:355:13: error: program scope variable must reside in constant address space
+thread uint v351 = 0u;
+            ^
+program_source:356:13: error: program scope variable must reside in constant address space
+thread uint v352 = 0u;
+            ^
+program_source:357:13: error: program scope variable must reside in constant address space
+thread uint v353 = 0u;
+            ^
+program_source:358:13: error: program scope variable must reside in constant address space
+thread uint v354 = 0u;
+            ^
+program_source:359:13: error: program scope variable must reside in constant address space
+thread uint v355 = 0u;
+            ^
+program_source:360:13: error: program scope variable must reside in constant address space
+thread uint v356 = 0u;
+            ^
+program_source:361:13: error: program scope variable must reside in constant address space
+thread uint v357 = 0u;
+            ^
+program_source:362:13: error: program scope variable must reside in constant address space
+thread uint v358 = 0u;
+            ^
+program_source:363:13: error: program scope variable must reside in constant address space
+thread uint v359 = 0u;
+            ^
+program_source:364:13: error: program scope variable must reside in constant address space
+thread uint v360 = 0u;
+            ^
+program_source:365:13: error: program scope variable must reside in constant address space
+thread uint v361 = 0u;
+            ^
+program_source:366:13: error: program scope variable must reside in constant address space
+thread uint v362 = 0u;
+            ^
+program_source:367:13: error: program scope variable must reside in constant address space
+thread uint v363 = 0u;
+            ^
+program_source:368:13: error: program scope variable must reside in constant address space
+thread uint v364 = 0u;
+            ^
+program_source:369:13: error: program scope variable must reside in constant address space
+thread uint v365 = 0u;
+            ^
+program_source:370:13: error: program scope variable must reside in constant address space
+thread uint v366 = 0u;
+            ^
+program_source:371:13: error: program scope variable must reside in constant address space
+thread uint v367 = 0u;
+            ^
+program_source:372:13: error: program scope variable must reside in constant address space
+thread uint v368 = 0u;
+            ^
+program_source:373:13: error: program scope variable must reside in constant address space
+thread uint v369 = 0u;
+            ^
+program_source:374:13: error: program scope variable must reside in constant address space
+thread uint v370 = 0u;
+            ^
+program_source:375:13: error: program scope variable must reside in constant address space
+thread uint v371 = 0u;
+            ^
+program_source:376:13: error: program scope variable must reside in constant address space
+thread uint v372 = 0u;
+            ^
+program_source:377:13: error: program scope variable must reside in constant address space
+thread uint v373 = 0u;
+            ^
+program_source:378:13: error: program scope variable must reside in constant address space
+thread uint v374 = 0u;
+            ^
+program_source:379:13: error: program scope variable must reside in constant address space
+thread uint v375 = 0u;
+            ^
+program_source:380:13: error: program scope variable must reside in constant address space
+thread uint v376 = 0u;
+            ^
+program_source:381:13: error: program scope variable must reside in constant address space
+thread uint v377 = 0u;
+            ^
+program_source:382:13: error: program scope variable must reside in constant address space
+thread uint v378 = 0u;
+            ^
+program_source:383:13: error: program scope variable must reside in constant address space
+thread uint v379 = 0u;
+            ^
+program_source:384:13: error: program scope variable must reside in constant address space
+thread uint v380 = 0u;
+            ^
+program_source:385:13: error: program scope variable must reside in constant address space
+thread uint v381 = 0u;
+            ^
+program_source:386:13: error: program scope variable must reside in constant address space
+thread uint v382 = 0u;
+            ^
+program_source:387:13: error: program scope variable must reside in constant address space
+thread uint v383 = 0u;
+            ^
+program_source:388:13: error: program scope variable must reside in constant address space
+thread uint v384 = 0u;
+            ^
+program_source:389:13: error: program scope variable must reside in constant address space
+thread uint v385 = 0u;
+            ^
+program_source:390:13: error: program scope variable must reside in constant address space
+thread uint v386 = 0u;
+            ^
+program_source:391:13: error: program scope variable must reside in constant address space
+thread uint v387 = 0u;
+            ^
+program_source:392:13: error: program scope variable must reside in constant address space
+thread uint v388 = 0u;
+            ^
+program_source:393:13: error: program scope variable must reside in constant address space
+thread uint v389 = 0u;
+            ^
+program_source:394:13: error: program scope variable must reside in constant address space
+thread uint v390 = 0u;
+            ^
+program_source:395:13: error: program scope variable must reside in constant address space
+thread uint v391 = 0u;
+            ^
+program_source:396:13: error: program scope variable must reside in constant address space
+thread uint v392 = 0u;
+            ^
+program_source:397:13: error: program scope variable must reside in constant address space
+thread uint v393 = 0u;
+            ^
+program_source:398:13: error: program scope variable must reside in constant address space
+thread uint v394 = 0u;
+            ^
+program_source:399:13: error: program scope variable must reside in constant address space
+thread uint v395 = 0u;
+            ^
+program_source:400:13: error: program scope variable must reside in constant address space
+thread uint v396 = 0u;
+            ^
+program_source:401:13: error: program scope variable must reside in constant address space
+thread uint v397 = 0u;
+            ^
+program_source:402:13: error: program scope variable must reside in constant address space
+thread uint v398 = 0u;
+            ^
+program_source:403:13: error: program scope variable must reside in constant address space
+thread uint v399 = 0u;
+            ^
+program_source:404:13: error: program scope variable must reside in constant address space
+thread uint v400 = 0u;
+            ^
+program_source:405:13: error: program scope variable must reside in constant address space
+thread uint v401 = 0u;
+            ^
+program_source:406:13: error: program scope variable must reside in constant address space
+thread uint v402 = 0u;
+            ^
+program_source:407:13: error: program scope variable must reside in constant address space
+thread uint v403 = 0u;
+            ^
+program_source:408:13: error: program scope variable must reside in constant address space
+thread uint v404 = 0u;
+            ^
+program_source:409:13: error: program scope variable must reside in constant address space
+thread uint v405 = 0u;
+            ^
+program_source:410:13: error: program scope variable must reside in constant address space
+thread uint v406 = 0u;
+            ^
+program_source:411:13: error: program scope variable must reside in constant address space
+thread uint v407 = 0u;
+            ^
+program_source:412:13: error: program scope variable must reside in constant address space
+thread uint v408 = 0u;
+            ^
+program_source:413:13: error: program scope variable must reside in constant address space
+thread uint v409 = 0u;
+            ^
+program_source:414:13: error: program scope variable must reside in constant address space
+thread uint v410 = 0u;
+            ^
+program_source:415:13: error: program scope variable must reside in constant address space
+thread uint v411 = 0u;
+            ^
+program_source:416:13: error: program scope variable must reside in constant address space
+thread uint v412 = 0u;
+            ^
+program_source:417:13: error: program scope variable must reside in constant address space
+thread uint v413 = 0u;
+            ^
+program_source:418:13: error: program scope variable must reside in constant address space
+thread uint v414 = 0u;
+            ^
+program_source:419:13: error: program scope variable must reside in constant address space
+thread uint v415 = 0u;
+            ^
+program_source:420:13: error: program scope variable must reside in constant address space
+thread uint v416 = 0u;
+            ^
+program_source:421:13: error: program scope variable must reside in constant address space
+thread uint v417 = 0u;
+            ^
+program_source:422:13: error: program scope variable must reside in constant address space
+thread uint v418 = 0u;
+            ^
+program_source:423:13: error: program scope variable must reside in constant address space
+thread uint v419 = 0u;
+            ^
+program_source:424:13: error: program scope variable must reside in constant address space
+thread uint v420 = 0u;
+            ^
+program_source:425:13: error: program scope variable must reside in constant address space
+thread uint v421 = 0u;
+            ^
+program_source:426:13: error: program scope variable must reside in constant address space
+thread uint v422 = 0u;
+            ^
+program_source:427:13: error: program scope variable must reside in constant address space
+thread uint v423 = 0u;
+            ^
+program_source:428:13: error: program scope variable must reside in constant address space
+thread uint v424 = 0u;
+            ^
+program_source:429:13: error: program scope variable must reside in constant address space
+thread uint v425 = 0u;
+            ^
+program_source:430:13: error: program scope variable must reside in constant address space
+thread uint v426 = 0u;
+            ^
+program_source:431:13: error: program scope variable must reside in constant address space
+thread uint v427 = 0u;
+            ^
+program_source:432:13: error: program scope variable must reside in constant address space
+thread uint v428 = 0u;
+            ^
+program_source:433:13: error: program scope variable must reside in constant address space
+thread uint v429 = 0u;
+            ^
+program_source:434:13: error: program scope variable must reside in constant address space
+thread uint v430 = 0u;
+            ^
+program_source:435:13: error: program scope variable must reside in constant address space
+thread uint v431 = 0u;
+            ^
+program_source:436:13: error: program scope variable must reside in constant address space
+thread uint v432 = 0u;
+            ^
+program_source:437:13: error: program scope variable must reside in constant address space
+thread uint v433 = 0u;
+            ^
+program_source:438:13: error: program scope variable must reside in constant address space
+thread uint v434 = 0u;
+            ^
+program_source:439:13: error: program scope variable must reside in constant address space
+thread uint v435 = 0u;
+            ^
+program_source:440:13: error: program scope variable must reside in constant address space
+thread uint v436 = 0u;
+            ^
+program_source:441:13: error: program scope variable must reside in constant address space
+thread uint v437 = 0u;
+            ^
+program_source:442:13: error: program scope variable must reside in constant address space
+thread uint v438 = 0u;
+            ^
+program_source:443:13: error: program scope variable must reside in constant address space
+thread uint v439 = 0u;
+            ^
+program_source:444:13: error: program scope variable must reside in constant address space
+thread uint v440 = 0u;
+            ^
+program_source:445:13: error: program scope variable must reside in constant address space
+thread uint v441 = 0u;
+            ^
+program_source:446:13: error: program scope variable must reside in constant address space
+thread uint v442 = 0u;
+            ^
+program_source:447:13: error: program scope variable must reside in constant address space
+thread uint v443 = 0u;
+            ^
+program_source:448:13: error: program scope variable must reside in constant address space
+thread uint v444 = 0u;
+            ^
+program_source:449:13: error: program scope variable must reside in constant address space
+thread uint v445 = 0u;
+            ^
+program_source:450:13: error: program scope variable must reside in constant address space
+thread uint v446 = 0u;
+            ^
+program_source:451:13: error: program scope variable must reside in constant address space
+thread uint v447 = 0u;
+            ^
+program_source:452:13: error: program scope variable must reside in constant address space
+thread uint v448 = 0u;
+            ^
+program_source:453:13: error: program scope variable must reside in constant address space
+thread uint v449 = 0u;
+            ^
+program_source:454:13: error: program scope variable must reside in constant address space
+thread uint v450 = 0u;
+            ^
+program_source:455:13: error: program scope variable must reside in constant address space
+thread uint v451 = 0u;
+            ^
+program_source:456:13: error: program scope variable must reside in constant address space
+thread uint v452 = 0u;
+            ^
+program_source:457:13: error: program scope variable must reside in constant address space
+thread uint v453 = 0u;
+            ^
+program_source:458:13: error: program scope variable must reside in constant address space
+thread uint v454 = 0u;
+            ^
+program_source:459:13: error: program scope variable must reside in constant address space
+thread uint v455 = 0u;
+            ^
+program_source:460:13: error: program scope variable must reside in constant address space
+thread uint v456 = 0u;
+            ^
+program_source:461:13: error: program scope variable must reside in constant address space
+thread uint v457 = 0u;
+            ^
+program_source:462:13: error: program scope variable must reside in constant address space
+thread uint v458 = 0u;
+            ^
+program_source:463:13: error: program scope variable must reside in constant address space
+thread uint v459 = 0u;
+            ^
+program_source:464:13: error: program scope variable must reside in constant address space
+thread uint v460 = 0u;
+            ^
+program_source:465:13: error: program scope variable must reside in constant address space
+thread uint v461 = 0u;
+            ^
+program_source:466:13: error: program scope variable must reside in constant address space
+thread uint v462 = 0u;
+            ^
+program_source:467:13: error: program scope variable must reside in constant address space
+thread uint v463 = 0u;
+            ^
+program_source:468:13: error: program scope variable must reside in constant address space
+thread uint v464 = 0u;
+            ^
+program_source:469:13: error: program scope variable must reside in constant address space
+thread uint v465 = 0u;
+            ^
+program_source:470:13: error: program scope variable must reside in constant address space
+thread uint v466 = 0u;
+            ^
+program_source:471:13: error: program scope variable must reside in constant address space
+thread uint v467 = 0u;
+            ^
+program_source:472:13: error: program scope variable must reside in constant address space
+thread uint v468 = 0u;
+            ^
+program_source:473:13: error: program scope variable must reside in constant address space
+thread uint v469 = 0u;
+            ^
+program_source:474:13: error: program scope variable must reside in constant address space
+thread uint v470 = 0u;
+            ^
+program_source:475:13: error: program scope variable must reside in constant address space
+thread uint v471 = 0u;
+            ^
+program_source:476:13: error: program scope variable must reside in constant address space
+thread uint v472 = 0u;
+            ^
+program_source:477:13: error: program scope variable must reside in constant address space
+thread uint v473 = 0u;
+            ^
+program_source:478:13: error: program scope variable must reside in constant address space
+thread uint v474 = 0u;
+            ^
+program_source:479:13: error: program scope variable must reside in constant address space
+thread uint v475 = 0u;
+            ^
+program_source:480:13: error: program scope variable must reside in constant address space
+thread uint v476 = 0u;
+            ^
+program_source:481:13: error: program scope variable must reside in constant address space
+thread uint v477 = 0u;
+            ^
+program_source:482:13: error: program scope variable must reside in constant address space
+thread uint v478 = 0u;
+            ^
+program_source:483:13: error: program scope variable must reside in constant address space
+thread uint v479 = 0u;
+            ^
+program_source:484:13: error: program scope variable must reside in constant address space
+thread uint v480 = 0u;
+            ^
+program_source:485:13: error: program scope variable must reside in constant address space
+thread uint v481 = 0u;
+            ^
+program_source:486:13: error: program scope variable must reside in constant address space
+thread uint v482 = 0u;
+            ^
+program_source:487:13: error: program scope variable must reside in constant address space
+thread uint v483 = 0u;
+            ^
+program_source:488:13: error: program scope variable must reside in constant address space
+thread uint v484 = 0u;
+            ^
+program_source:489:13: error: program scope variable must reside in constant address space
+thread uint v485 = 0u;
+            ^
+program_source:490:13: error: program scope variable must reside in constant address space
+thread uint v486 = 0u;
+            ^
+program_source:491:13: error: program scope variable must reside in constant address space
+thread uint v487 = 0u;
+            ^
+program_source:492:13: error: program scope variable must reside in constant address space
+thread uint v488 = 0u;
+            ^
+program_source:493:13: error: program scope variable must reside in constant address space
+thread uint v489 = 0u;
+            ^
+program_source:494:13: error: program scope variable must reside in constant address space
+thread uint v490 = 0u;
+            ^
+program_source:495:13: error: program scope variable must reside in constant address space
+thread uint v491 = 0u;
+            ^
+program_source:496:13: error: program scope variable must reside in constant address space
+thread uint v492 = 0u;
+            ^
+program_source:497:13: error: program scope variable must reside in constant address space
+thread uint v493 = 0u;
+            ^
+program_source:498:13: error: program scope variable must reside in constant address space
+thread uint v494 = 0u;
+            ^
+program_source:499:13: error: program scope variable must reside in constant address space
+thread uint v495 = 0u;
+            ^
+program_source:500:13: error: program scope variable must reside in constant address space
+thread uint v496 = 0u;
+            ^
+program_source:501:13: error: program scope variable must reside in constant address space
+thread uint v497 = 0u;
+            ^
+program_source:502:13: error: program scope variable must reside in constant address space
+thread uint v498 = 0u;
+            ^
+program_source:503:13: error: program scope variable must reside in constant address space
+thread uint v499 = 0u;
+            ^
+program_source:504:13: error: program scope variable must reside in constant address space
+thread uint v500 = 0u;
+            ^
+program_source:505:13: error: program scope variable must reside in constant address space
+thread uint v501 = 0u;
+            ^
+program_source:506:13: error: program scope variable must reside in constant address space
+thread uint v502 = 0u;
+            ^
+program_source:507:13: error: program scope variable must reside in constant address space
+thread uint v503 = 0u;
+            ^
+program_source:508:13: error: program scope variable must reside in constant address space
+thread uint v504 = 0u;
+            ^
+program_source:509:13: error: program scope variable must reside in constant address space
+thread uint v505 = 0u;
+            ^
+program_source:510:13: error: program scope variable must reside in constant address space
+thread uint v506 = 0u;
+            ^
+program_source:511:13: error: program scope variable must reside in constant address space
+thread uint v507 = 0u;
+            ^
+program_source:512:13: error: program scope variable must reside in constant address space
+thread uint v508 = 0u;
+            ^
+program_source:513:13: error: program scope variable must reside in constant address space
+thread uint v509 = 0u;
+            ^
+program_source:514:13: error: program scope variable must reside in constant address space
+thread uint v510 = 0u;
+            ^
+program_source:515:13: error: program scope variable must reside in constant address space
+thread uint v511 = 0u;
+            ^
+program_source:516:13: error: program scope variable must reside in constant address space
+thread uint v512 = 0u;
+            ^
+program_source:517:13: error: program scope variable must reside in constant address space
+thread uint v513 = 0u;
+            ^
+program_source:518:13: error: program scope variable must reside in constant address space
+thread uint v514 = 0u;
+            ^
+program_source:519:13: error: program scope variable must reside in constant address space
+thread uint v515 = 0u;
+            ^
+program_source:520:13: error: program scope variable must reside in constant address space
+thread uint v516 = 0u;
+            ^
+program_source:521:13: error: program scope variable must reside in constant address space
+thread uint v517 = 0u;
+            ^
+program_source:522:13: error: program scope variable must reside in constant address space
+thread uint v518 = 0u;
+            ^
+program_source:523:13: error: program scope variable must reside in constant address space
+thread uint v519 = 0u;
+            ^
+program_source:524:13: error: program scope variable must reside in constant address space
+thread uint v520 = 0u;
+            ^
+program_source:525:13: error: program scope variable must reside in constant address space
+thread uint v521 = 0u;
+            ^
+program_source:526:13: error: program scope variable must reside in constant address space
+thread uint v522 = 0u;
+            ^
+program_source:527:13: error: program scope variable must reside in constant address space
+thread uint v523 = 0u;
+            ^
+program_source:528:13: error: program scope variable must reside in constant address space
+thread uint v524 = 0u;
+            ^
+program_source:529:13: error: program scope variable must reside in constant address space
+thread uint v525 = 0u;
+            ^
+program_source:530:13: error: program scope variable must reside in constant address space
+thread uint v526 = 0u;
+            ^
+program_source:531:13: error: program scope variable must reside in constant address space
+thread uint v527 = 0u;
+            ^
+program_source:532:13: error: program scope variable must reside in constant address space
+thread uint v528 = 0u;
+            ^
+program_source:533:13: error: program scope variable must reside in constant address space
+thread uint v529 = 0u;
+            ^
+program_source:534:13: error: program scope variable must reside in constant address space
+thread uint v530 = 0u;
+            ^
+program_source:535:13: error: program scope variable must reside in constant address space
+thread uint v531 = 0u;
+            ^
+program_source:536:13: error: program scope variable must reside in constant address space
+thread uint v532 = 0u;
+            ^
+program_source:537:13: error: program scope variable must reside in constant address space
+thread uint v533 = 0u;
+            ^
+program_source:538:13: error: program scope variable must reside in constant address space
+thread uint v534 = 0u;
+            ^
+program_source:539:13: error: program scope variable must reside in constant address space
+thread uint v535 = 0u;
+            ^
+program_source:540:13: error: program scope variable must reside in constant address space
+thread uint v536 = 0u;
+            ^
+program_source:541:13: error: program scope variable must reside in constant address space
+thread uint v537 = 0u;
+            ^
+program_source:542:13: error: program scope variable must reside in constant address space
+thread uint v538 = 0u;
+            ^
+program_source:543:13: error: program scope variable must reside in constant address space
+thread uint v539 = 0u;
+            ^
+program_source:544:13: error: program scope variable must reside in constant address space
+thread uint v540 = 0u;
+            ^
+program_source:545:13: error: program scope variable must reside in constant address space
+thread uint v541 = 0u;
+            ^
+program_source:546:13: error: program scope variable must reside in constant address space
+thread uint v542 = 0u;
+            ^
+program_source:547:13: error: program scope variable must reside in constant address space
+thread uint v543 = 0u;
+            ^
+program_source:548:13: error: program scope variable must reside in constant address space
+thread uint v544 = 0u;
+            ^
+program_source:549:13: error: program scope variable must reside in constant address space
+thread uint v545 = 0u;
+            ^
+program_source:550:13: error: program scope variable must reside in constant address space
+thread uint v546 = 0u;
+            ^
+program_source:551:13: error: program scope variable must reside in constant address space
+thread uint v547 = 0u;
+            ^
+program_source:552:13: error: program scope variable must reside in constant address space
+thread uint v548 = 0u;
+            ^
+program_source:553:13: error: program scope variable must reside in constant address space
+thread uint v549 = 0u;
+            ^
+program_source:554:13: error: program scope variable must reside in constant address space
+thread uint v550 = 0u;
+            ^
+program_source:555:13: error: program scope variable must reside in constant address space
+thread uint v551 = 0u;
+            ^
+program_source:556:13: error: program scope variable must reside in constant address space
+thread uint v552 = 0u;
+            ^
+program_source:557:13: error: program scope variable must reside in constant address space
+thread uint v553 = 0u;
+            ^
+program_source:558:13: error: program scope variable must reside in constant address space
+thread uint v554 = 0u;
+            ^
+program_source:559:13: error: program scope variable must reside in constant address space
+thread uint v555 = 0u;
+            ^
+program_source:560:13: error: program scope variable must reside in constant address space
+thread uint v556 = 0u;
+            ^
+program_source:561:13: error: program scope variable must reside in constant address space
+thread uint v557 = 0u;
+            ^
+program_source:562:13: error: program scope variable must reside in constant address space
+thread uint v558 = 0u;
+            ^
+program_source:563:13: error: program scope variable must reside in constant address space
+thread uint v559 = 0u;
+            ^
+program_source:564:13: error: program scope variable must reside in constant address space
+thread uint v560 = 0u;
+            ^
+program_source:565:13: error: program scope variable must reside in constant address space
+thread uint v561 = 0u;
+            ^
+program_source:566:13: error: program scope variable must reside in constant address space
+thread uint v562 = 0u;
+            ^
+program_source:567:13: error: program scope variable must reside in constant address space
+thread uint v563 = 0u;
+            ^
+program_source:568:13: error: program scope variable must reside in constant address space
+thread uint v564 = 0u;
+            ^
+program_source:569:13: error: program scope variable must reside in constant address space
+thread uint v565 = 0u;
+            ^
+program_source:570:13: error: program scope variable must reside in constant address space
+thread uint v566 = 0u;
+            ^
+program_source:571:13: error: program scope variable must reside in constant address space
+thread uint v567 = 0u;
+            ^
+program_source:572:13: error: program scope variable must reside in constant address space
+thread uint v568 = 0u;
+            ^
+program_source:573:13: error: program scope variable must reside in constant address space
+thread uint v569 = 0u;
+            ^
+program_source:574:13: error: program scope variable must reside in constant address space
+thread uint v570 = 0u;
+            ^
+program_source:575:13: error: program scope variable must reside in constant address space
+thread uint v571 = 0u;
+            ^
+program_source:576:13: error: program scope variable must reside in constant address space
+thread uint v572 = 0u;
+            ^
+program_source:577:13: error: program scope variable must reside in constant address space
+thread uint v573 = 0u;
+            ^
+program_source:578:13: error: program scope variable must reside in constant address space
+thread uint v574 = 0u;
+            ^
+program_source:579:13: error: program scope variable must reside in constant address space
+thread uint v575 = 0u;
+            ^
+program_source:580:13: error: program scope variable must reside in constant address space
+thread uint v576 = 0u;
+            ^
+program_source:581:13: error: program scope variable must reside in constant address space
+thread uint v577 = 0u;
+            ^
+program_source:582:13: error: program scope variable must reside in constant address space
+thread uint v578 = 0u;
+            ^
+program_source:583:13: error: program scope variable must reside in constant address space
+thread uint v579 = 0u;
+            ^
+program_source:584:13: error: program scope variable must reside in constant address space
+thread uint v580 = 0u;
+            ^
+program_source:585:13: error: program scope variable must reside in constant address space
+thread uint v581 = 0u;
+            ^
+program_source:586:13: error: program scope variable must reside in constant address space
+thread uint v582 = 0u;
+            ^
+program_source:587:13: error: program scope variable must reside in constant address space
+thread uint v583 = 0u;
+            ^
+program_source:588:13: error: program scope variable must reside in constant address space
+thread uint v584 = 0u;
+            ^
+program_source:589:13: error: program scope variable must reside in constant address space
+thread uint v585 = 0u;
+            ^
+program_source:590:13: error: program scope variable must reside in constant address space
+thread uint v586 = 0u;
+            ^
+program_source:591:13: error: program scope variable must reside in constant address space
+thread uint v587 = 0u;
+            ^
+program_source:592:13: error: program scope variable must reside in constant address space
+thread uint v588 = 0u;
+            ^
+program_source:593:13: error: program scope variable must reside in constant address space
+thread uint v589 = 0u;
+            ^
+program_source:594:13: error: program scope variable must reside in constant address space
+thread uint v590 = 0u;
+            ^
+program_source:595:13: error: program scope variable must reside in constant address space
+thread uint v591 = 0u;
+            ^
+program_source:596:13: error: program scope variable must reside in constant address space
+thread uint v592 = 0u;
+            ^
+program_source:597:13: error: program scope variable must reside in constant address space
+thread uint v593 = 0u;
+            ^
+program_source:598:13: error: program scope variable must reside in constant address space
+thread uint v594 = 0u;
+            ^
+program_source:599:13: error: program scope variable must reside in constant address space
+thread uint v595 = 0u;
+            ^
+program_source:600:13: error: program scope variable must reside in constant address space
+thread uint v596 = 0u;
+            ^
+program_source:601:13: error: program scope variable must reside in constant address space
+thread uint v597 = 0u;
+            ^
+program_source:602:13: error: program scope variable must reside in constant address space
+thread uint v598 = 0u;
+            ^
+program_source:603:13: error: program scope variable must reside in constant address space
+thread uint v599 = 0u;
+            ^
+program_source:604:13: error: program scope variable must reside in constant address space
+thread uint v600 = 0u;
+            ^
+program_source:605:13: error: program scope variable must reside in constant address space
+thread uint v601 = 0u;
+            ^
+program_source:606:13: error: program scope variable must reside in constant address space
+thread uint v602 = 0u;
+            ^
+program_source:607:13: error: program scope variable must reside in constant address space
+thread uint v603 = 0u;
+            ^
+program_source:608:13: error: program scope variable must reside in constant address space
+thread uint v604 = 0u;
+            ^
+program_source:609:13: error: program scope variable must reside in constant address space
+thread uint v605 = 0u;
+            ^
+program_source:610:13: error: program scope variable must reside in constant address space
+thread uint v606 = 0u;
+            ^
+program_source:611:13: error: program scope variable must reside in constant address space
+thread uint v607 = 0u;
+            ^
+program_source:612:13: error: program scope variable must reside in constant address space
+thread uint v608 = 0u;
+            ^
+program_source:613:13: error: program scope variable must reside in constant address space
+thread uint v609 = 0u;
+            ^
+program_source:614:13: error: program scope variable must reside in constant address space
+thread uint v610 = 0u;
+            ^
+program_source:615:13: error: program scope variable must reside in constant address space
+thread uint v611 = 0u;
+            ^
+program_source:616:13: error: program scope variable must reside in constant address space
+thread uint v612 = 0u;
+            ^
+program_source:617:13: error: program scope variable must reside in constant address space
+thread uint v613 = 0u;
+            ^
+program_source:618:13: error: program scope variable must reside in constant address space
+thread uint v614 = 0u;
+            ^
+program_source:619:13: error: program scope variable must reside in constant address space
+thread uint v615 = 0u;
+            ^
+program_source:620:13: error: program scope variable must reside in constant address space
+thread uint v616 = 0u;
+            ^
+program_source:621:13: error: program scope variable must reside in constant address space
+thread uint v617 = 0u;
+            ^
+program_source:622:13: error: program scope variable must reside in constant address space
+thread uint v618 = 0u;
+            ^
+program_source:623:13: error: program scope variable must reside in constant address space
+thread uint v619 = 0u;
+            ^
+program_source:624:13: error: program scope variable must reside in constant address space
+thread uint v620 = 0u;
+            ^
+program_source:625:13: error: program scope variable must reside in constant address space
+thread uint v621 = 0u;
+            ^
+program_source:626:13: error: program scope variable must reside in constant address space
+thread uint v622 = 0u;
+            ^
+program_source:627:13: error: program scope variable must reside in constant address space
+thread uint v623 = 0u;
+            ^
+program_source:628:13: error: program scope variable must reside in constant address space
+thread uint v624 = 0u;
+            ^
+program_source:629:13: error: program scope variable must reside in constant address space
+thread uint v625 = 0u;
+            ^
+program_source:630:13: error: program scope variable must reside in constant address space
+thread uint v626 = 0u;
+            ^
+program_source:631:13: error: program scope variable must reside in constant address space
+thread uint v627 = 0u;
+            ^
+program_source:632:13: error: program scope variable must reside in constant address space
+thread uint v628 = 0u;
+            ^
+program_source:633:13: error: program scope variable must reside in constant address space
+thread uint v629 = 0u;
+            ^
+program_source:634:13: error: program scope variable must reside in constant address space
+thread uint v630 = 0u;
+            ^
+program_source:635:13: error: program scope variable must reside in constant address space
+thread uint v631 = 0u;
+            ^
+program_source:636:13: error: program scope variable must reside in constant address space
+thread uint v632 = 0u;
+            ^
+program_source:637:13: error: program scope variable must reside in constant address space
+thread uint v633 = 0u;
+            ^
+program_source:638:13: error: program scope variable must reside in constant address space
+thread uint v634 = 0u;
+            ^
+program_source:639:13: error: program scope variable must reside in constant address space
+thread uint v635 = 0u;
+            ^
+program_source:640:13: error: program scope variable must reside in constant address space
+thread uint v636 = 0u;
+            ^
+program_source:641:13: error: program scope variable must reside in constant address space
+thread uint v637 = 0u;
+            ^
+program_source:642:13: error: program scope variable must reside in constant address space
+thread uint v638 = 0u;
+            ^
+program_source:643:13: error: program scope variable must reside in constant address space
+thread uint v639 = 0u;
+            ^
+program_source:644:13: error: program scope variable must reside in constant address space
+thread uint v640 = 0u;
+            ^
+program_source:645:13: error: program scope variable must reside in constant address space
+thread uint v641 = 0u;
+            ^
+program_source:646:13: error: program scope variable must reside in constant address space
+thread uint v642 = 0u;
+            ^
+program_source:647:13: error: program scope variable must reside in constant address space
+thread uint v643 = 0u;
+            ^
+program_source:648:13: error: program scope variable must reside in constant address space
+thread uint v644 = 0u;
+            ^
+program_source:649:13: error: program scope variable must reside in constant address space
+thread uint v645 = 0u;
+            ^
+program_source:650:13: error: program scope variable must reside in constant address space
+thread uint v646 = 0u;
+            ^
+program_source:651:13: error: program scope variable must reside in constant address space
+thread uint v647 = 0u;
+            ^
+program_source:652:13: error: program scope variable must reside in constant address space
+thread uint v648 = 0u;
+            ^
+program_source:653:13: error: program scope variable must reside in constant address space
+thread uint v649 = 0u;
+            ^
+program_source:654:13: error: program scope variable must reside in constant address space
+thread uint v650 = 0u;
+            ^
+program_source:655:13: error: program scope variable must reside in constant address space
+thread uint v651 = 0u;
+            ^
+program_source:656:13: error: program scope variable must reside in constant address space
+thread uint v652 = 0u;
+            ^
+program_source:657:13: error: program scope variable must reside in constant address space
+thread uint v653 = 0u;
+            ^
+program_source:658:13: error: program scope variable must reside in constant address space
+thread uint v654 = 0u;
+            ^
+program_source:659:13: error: program scope variable must reside in constant address space
+thread uint v655 = 0u;
+            ^
+program_source:660:13: error: program scope variable must reside in constant address space
+thread uint v656 = 0u;
+            ^
+program_source:661:13: error: program scope variable must reside in constant address space
+thread uint v657 = 0u;
+            ^
+program_source:662:13: error: program scope variable must reside in constant address space
+thread uint v658 = 0u;
+            ^
+program_source:663:13: error: program scope variable must reside in constant address space
+thread uint v659 = 0u;
+            ^
+program_source:664:13: error: program scope variable must reside in constant address space
+thread uint v660 = 0u;
+            ^
+program_source:665:13: error: program scope variable must reside in constant address space
+thread uint v661 = 0u;
+            ^
+program_source:666:13: error: program scope variable must reside in constant address space
+thread uint v662 = 0u;
+            ^
+program_source:667:13: error: program scope variable must reside in constant address space
+thread uint v663 = 0u;
+            ^
+program_source:668:13: error: program scope variable must reside in constant address space
+thread uint v664 = 0u;
+            ^
+program_source:669:13: error: program scope variable must reside in constant address space
+thread uint v665 = 0u;
+            ^
+program_source:670:13: error: program scope variable must reside in constant address space
+thread uint v666 = 0u;
+            ^
+program_source:671:13: error: program scope variable must reside in constant address space
+thread uint v667 = 0u;
+            ^
+program_source:672:13: error: program scope variable must reside in constant address space
+thread uint v668 = 0u;
+            ^
+program_source:673:13: error: program scope variable must reside in constant address space
+thread uint v669 = 0u;
+            ^
+program_source:674:13: error: program scope variable must reside in constant address space
+thread uint v670 = 0u;
+            ^
+program_source:675:13: error: program scope variable must reside in constant address space
+thread uint v671 = 0u;
+            ^
+program_source:676:13: error: program scope variable must reside in constant address space
+thread uint v672 = 0u;
+            ^
+program_source:677:13: error: program scope variable must reside in constant address space
+thread uint v673 = 0u;
+            ^
+program_source:678:13: error: program scope variable must reside in constant address space
+thread uint v674 = 0u;
+            ^
+program_source:679:13: error: program scope variable must reside in constant address space
+thread uint v675 = 0u;
+            ^
+program_source:680:13: error: program scope variable must reside in constant address space
+thread uint v676 = 0u;
+            ^
+program_source:681:13: error: program scope variable must reside in constant address space
+thread uint v677 = 0u;
+            ^
+program_source:682:13: error: program scope variable must reside in constant address space
+thread uint v678 = 0u;
+            ^
+program_source:683:13: error: program scope variable must reside in constant address space
+thread uint v679 = 0u;
+            ^
+program_source:684:13: error: program scope variable must reside in constant address space
+thread uint v680 = 0u;
+            ^
+program_source:685:13: error: program scope variable must reside in constant address space
+thread uint v681 = 0u;
+            ^
+program_source:686:13: error: program scope variable must reside in constant address space
+thread uint v682 = 0u;
+            ^
+program_source:687:13: error: program scope variable must reside in constant address space
+thread uint v683 = 0u;
+            ^
+program_source:688:13: error: program scope variable must reside in constant address space
+thread uint v684 = 0u;
+            ^
+program_source:689:13: error: program scope variable must reside in constant address space
+thread uint v685 = 0u;
+            ^
+program_source:690:13: error: program scope variable must reside in constant address space
+thread uint v686 = 0u;
+            ^
+program_source:691:13: error: program scope variable must reside in constant address space
+thread uint v687 = 0u;
+            ^
+program_source:692:13: error: program scope variable must reside in constant address space
+thread uint v688 = 0u;
+            ^
+program_source:693:13: error: program scope variable must reside in constant address space
+thread uint v689 = 0u;
+            ^
+program_source:694:13: error: program scope variable must reside in constant address space
+thread uint v690 = 0u;
+            ^
+program_source:695:13: error: program scope variable must reside in constant address space
+thread uint v691 = 0u;
+            ^
+program_source:696:13: error: program scope variable must reside in constant address space
+thread uint v692 = 0u;
+            ^
+program_source:697:13: error: program scope variable must reside in constant address space
+thread uint v693 = 0u;
+            ^
+program_source:698:13: error: program scope variable must reside in constant address space
+thread uint v694 = 0u;
+            ^
+program_source:699:13: error: program scope variable must reside in constant address space
+thread uint v695 = 0u;
+            ^
+program_source:700:13: error: program scope variable must reside in constant address space
+thread uint v696 = 0u;
+            ^
+program_source:701:13: error: program scope variable must reside in constant address space
+thread uint v697 = 0u;
+            ^
+program_source:702:13: error: program scope variable must reside in constant address space
+thread uint v698 = 0u;
+            ^
+program_source:703:13: error: program scope variable must reside in constant address space
+thread uint v699 = 0u;
+            ^
+program_source:704:13: error: program scope variable must reside in constant address space
+thread uint v700 = 0u;
+            ^
+program_source:705:13: error: program scope variable must reside in constant address space
+thread uint v701 = 0u;
+            ^
+program_source:706:13: error: program scope variable must reside in constant address space
+thread uint v702 = 0u;
+            ^
+program_source:707:13: error: program scope variable must reside in constant address space
+thread uint v703 = 0u;
+            ^
+program_source:708:13: error: program scope variable must reside in constant address space
+thread uint v704 = 0u;
+            ^
+program_source:709:13: error: program scope variable must reside in constant address space
+thread uint v705 = 0u;
+            ^
+program_source:710:13: error: program scope variable must reside in constant address space
+thread uint v706 = 0u;
+            ^
+program_source:711:13: error: program scope variable must reside in constant address space
+thread uint v707 = 0u;
+            ^
+program_source:712:13: error: program scope variable must reside in constant address space
+thread uint v708 = 0u;
+            ^
+program_source:713:13: error: program scope variable must reside in constant address space
+thread uint v709 = 0u;
+            ^
+program_source:714:13: error: program scope variable must reside in constant address space
+thread uint v710 = 0u;
+            ^
+program_source:715:13: error: program scope variable must reside in constant address space
+thread uint v711 = 0u;
+            ^
+program_source:716:13: error: program scope variable must reside in constant address space
+thread uint v712 = 0u;
+            ^
+program_source:717:13: error: program scope variable must reside in constant address space
+thread uint v713 = 0u;
+            ^
+program_source:718:13: error: program scope variable must reside in constant address space
+thread uint v714 = 0u;
+            ^
+program_source:719:13: error: program scope variable must reside in constant address space
+thread uint v715 = 0u;
+            ^
+program_source:720:13: error: program scope variable must reside in constant address space
+thread uint v716 = 0u;
+            ^
+program_source:721:13: error: program scope variable must reside in constant address space
+thread uint v717 = 0u;
+            ^
+program_source:722:13: error: program scope variable must reside in constant address space
+thread uint v718 = 0u;
+            ^
+program_source:723:13: error: program scope variable must reside in constant address space
+thread uint v719 = 0u;
+            ^
+program_source:724:13: error: program scope variable must reside in constant address space
+thread uint v720 = 0u;
+            ^
+program_source:725:13: error: program scope variable must reside in constant address space
+thread uint v721 = 0u;
+            ^
+program_source:726:13: error: program scope variable must reside in constant address space
+thread uint v722 = 0u;
+            ^
+program_source:727:13: error: program scope variable must reside in constant address space
+thread uint v723 = 0u;
+            ^
+program_source:728:13: error: program scope variable must reside in constant address space
+thread uint v724 = 0u;
+            ^
+program_source:729:13: error: program scope variable must reside in constant address space
+thread uint v725 = 0u;
+            ^
+program_source:730:13: error: program scope variable must reside in constant address space
+thread uint v726 = 0u;
+            ^
+program_source:731:13: error: program scope variable must reside in constant address space
+thread uint v727 = 0u;
+            ^
+program_source:732:13: error: program scope variable must reside in constant address space
+thread uint v728 = 0u;
+            ^
+program_source:733:13: error: program scope variable must reside in constant address space
+thread uint v729 = 0u;
+            ^
+program_source:734:13: error: program scope variable must reside in constant address space
+thread uint v730 = 0u;
+            ^
+program_source:735:13: error: program scope variable must reside in constant address space
+thread uint v731 = 0u;
+            ^
+program_source:736:13: error: program scope variable must reside in constant address space
+thread uint v732 = 0u;
+            ^
+program_source:737:13: error: program scope variable must reside in constant address space
+thread uint v733 = 0u;
+            ^
+program_source:738:13: error: program scope variable must reside in constant address space
+thread uint v734 = 0u;
+            ^
+program_source:739:13: error: program scope variable must reside in constant address space
+thread uint v735 = 0u;
+            ^
+program_source:740:13: error: program scope variable must reside in constant address space
+thread uint v736 = 0u;
+            ^
+program_source:741:13: error: program scope variable must reside in constant address space
+thread uint v737 = 0u;
+            ^
+program_source:742:13: error: program scope variable must reside in constant address space
+thread uint v738 = 0u;
+            ^
+program_source:743:13: error: program scope variable must reside in constant address space
+thread uint v739 = 0u;
+            ^
+program_source:744:13: error: program scope variable must reside in constant address space
+thread uint v740 = 0u;
+            ^
+program_source:745:13: error: program scope variable must reside in constant address space
+thread uint v741 = 0u;
+            ^
+program_source:746:13: error: program scope variable must reside in constant address space
+thread uint v742 = 0u;
+            ^
+program_source:747:13: error: program scope variable must reside in constant address space
+thread uint v743 = 0u;
+            ^
+program_source:748:13: error: program scope variable must reside in constant address space
+thread uint v744 = 0u;
+            ^
+program_source:749:13: error: program scope variable must reside in constant address space
+thread uint v745 = 0u;
+            ^
+program_source:750:13: error: program scope variable must reside in constant address space
+thread uint v746 = 0u;
+            ^
+program_source:751:13: error: program scope variable must reside in constant address space
+thread uint v747 = 0u;
+            ^
+program_source:752:13: error: program scope variable must reside in constant address space
+thread uint v748 = 0u;
+            ^
+program_source:753:13: error: program scope variable must reside in constant address space
+thread uint v749 = 0u;
+            ^
+program_source:754:13: error: program scope variable must reside in constant address space
+thread uint v750 = 0u;
+            ^
+program_source:755:13: error: program scope variable must reside in constant address space
+thread uint v751 = 0u;
+            ^
+program_source:756:13: error: program scope variable must reside in constant address space
+thread uint v752 = 0u;
+            ^
+program_source:757:13: error: program scope variable must reside in constant address space
+thread uint v753 = 0u;
+            ^
+program_source:758:13: error: program scope variable must reside in constant address space
+thread uint v754 = 0u;
+            ^
+program_source:759:13: error: program scope variable must reside in constant address space
+thread uint v755 = 0u;
+            ^
+program_source:760:13: error: program scope variable must reside in constant address space
+thread uint v756 = 0u;
+            ^
+program_source:761:13: error: program scope variable must reside in constant address space
+thread uint v757 = 0u;
+            ^
+program_source:762:13: error: program scope variable must reside in constant address space
+thread uint v758 = 0u;
+            ^
+program_source:763:13: error: program scope variable must reside in constant address space
+thread uint v759 = 0u;
+            ^
+program_source:764:13: error: program scope variable must reside in constant address space
+thread uint v760 = 0u;
+            ^
+program_source:765:13: error: program scope variable must reside in constant address space
+thread uint v761 = 0u;
+            ^
+program_source:766:13: error: program scope variable must reside in constant address space
+thread uint v762 = 0u;
+            ^
+program_source:767:13: error: program scope variable must reside in constant address space
+thread uint v763 = 0u;
+            ^
+program_source:768:13: error: program scope variable must reside in constant address space
+thread uint v764 = 0u;
+            ^
+program_source:769:13: error: program scope variable must reside in constant address space
+thread uint v765 = 0u;
+            ^
+program_source:770:13: error: program scope variable must reside in constant address space
+thread uint v766 = 0u;
+            ^
+program_source:771:13: error: program scope variable must reside in constant address space
+thread uint v767 = 0u;
+            ^
+program_source:772:13: error: program scope variable must reside in constant address space
+thread uint v768 = 0u;
+            ^
+program_source:773:13: error: program scope variable must reside in constant address space
+thread uint v769 = 0u;
+            ^
+program_source:774:13: error: program scope variable must reside in constant address space
+thread uint v770 = 0u;
+            ^
+program_source:775:13: error: program scope variable must reside in constant address space
+thread uint v771 = 0u;
+            ^
+program_source:776:13: error: program scope variable must reside in constant address space
+thread uint v772 = 0u;
+            ^
+program_source:777:13: error: program scope variable must reside in constant address space
+thread uint v773 = 0u;
+            ^
+program_source:778:13: error: program scope variable must reside in constant address space
+thread uint v774 = 0u;
+            ^
+program_source:779:13: error: program scope variable must reside in constant address space
+thread uint v775 = 0u;
+            ^
+program_source:780:13: error: program scope variable must reside in constant address space
+thread uint v776 = 0u;
+            ^
+program_source:781:13: error: program scope variable must reside in constant address space
+thread uint v777 = 0u;
+            ^
+program_source:782:13: error: program scope variable must reside in constant address space
+thread uint v778 = 0u;
+            ^
+program_source:783:13: error: program scope variable must reside in constant address space
+thread uint v779 = 0u;
+            ^
+program_source:784:13: error: program scope variable must reside in constant address space
+thread uint v780 = 0u;
+            ^
+program_source:785:13: error: program scope variable must reside in constant address space
+thread uint v781 = 0u;
+            ^
+program_source:786:13: error: program scope variable must reside in constant address space
+thread uint v782 = 0u;
+            ^
+program_source:787:13: error: program scope variable must reside in constant address space
+thread uint v783 = 0u;
+            ^
+program_source:788:13: error: program scope variable must reside in constant address space
+thread uint v784 = 0u;
+            ^
+program_source:789:13: error: program scope variable must reside in constant address space
+thread uint v785 = 0u;
+            ^
+program_source:790:13: error: program scope variable must reside in constant address space
+thread uint v786 = 0u;
+            ^
+program_source:791:13: error: program scope variable must reside in constant address space
+thread uint v787 = 0u;
+            ^
+program_source:792:13: error: program scope variable must reside in constant address space
+thread uint v788 = 0u;
+            ^
+program_source:793:13: error: program scope variable must reside in constant address space
+thread uint v789 = 0u;
+            ^
+program_source:794:13: error: program scope variable must reside in constant address space
+thread uint v790 = 0u;
+            ^
+program_source:795:13: error: program scope variable must reside in constant address space
+thread uint v791 = 0u;
+            ^
+program_source:796:13: error: program scope variable must reside in constant address space
+thread uint v792 = 0u;
+            ^
+program_source:797:13: error: program scope variable must reside in constant address space
+thread uint v793 = 0u;
+            ^
+program_source:798:13: error: program scope variable must reside in constant address space
+thread uint v794 = 0u;
+            ^
+program_source:799:13: error: program scope variable must reside in constant address space
+thread uint v795 = 0u;
+            ^
+program_source:800:13: error: program scope variable must reside in constant address space
+thread uint v796 = 0u;
+            ^
+program_source:801:13: error: program scope variable must reside in constant address space
+thread uint v797 = 0u;
+            ^
+program_source:802:13: error: program scope variable must reside in constant address space
+thread uint v798 = 0u;
+            ^
+program_source:803:13: error: program scope variable must reside in constant address space
+thread uint v799 = 0u;
+            ^
+program_source:804:13: error: program scope variable must reside in constant address space
+thread uint v800 = 0u;
+            ^
+program_source:805:13: error: program scope variable must reside in constant address space
+thread uint v801 = 0u;
+            ^
+program_source:806:13: error: program scope variable must reside in constant address space
+thread uint v802 = 0u;
+            ^
+program_source:807:13: error: program scope variable must reside in constant address space
+thread uint v803 = 0u;
+            ^
+program_source:808:13: error: program scope variable must reside in constant address space
+thread uint v804 = 0u;
+            ^
+program_source:809:13: error: program scope variable must reside in constant address space
+thread uint v805 = 0u;
+            ^
+program_source:810:13: error: program scope variable must reside in constant address space
+thread uint v806 = 0u;
+            ^
+program_source:811:13: error: program scope variable must reside in constant address space
+thread uint v807 = 0u;
+            ^
+program_source:812:13: error: program scope variable must reside in constant address space
+thread uint v808 = 0u;
+            ^
+program_source:813:13: error: program scope variable must reside in constant address space
+thread uint v809 = 0u;
+            ^
+program_source:814:13: error: program scope variable must reside in constant address space
+thread uint v810 = 0u;
+            ^
+program_source:815:13: error: program scope variable must reside in constant address space
+thread uint v811 = 0u;
+            ^
+program_source:816:13: error: program scope variable must reside in constant address space
+thread uint v812 = 0u;
+            ^
+program_source:817:13: error: program scope variable must reside in constant address space
+thread uint v813 = 0u;
+            ^
+program_source:818:13: error: program scope variable must reside in constant address space
+thread uint v814 = 0u;
+            ^
+program_source:819:13: error: program scope variable must reside in constant address space
+thread uint v815 = 0u;
+            ^
+program_source:820:13: error: program scope variable must reside in constant address space
+thread uint v816 = 0u;
+            ^
+program_source:821:13: error: program scope variable must reside in constant address space
+thread uint v817 = 0u;
+            ^
+program_source:822:13: error: program scope variable must reside in constant address space
+thread uint v818 = 0u;
+            ^
+program_source:823:13: error: program scope variable must reside in constant address space
+thread uint v819 = 0u;
+            ^
+program_source:824:13: error: program scope variable must reside in constant address space
+thread uint v820 = 0u;
+            ^
+program_source:825:13: error: program scope variable must reside in constant address space
+thread uint v821 = 0u;
+            ^
+program_source:826:13: error: program scope variable must reside in constant address space
+thread uint v822 = 0u;
+            ^
+program_source:827:13: error: program scope variable must reside in constant address space
+thread uint v823 = 0u;
+            ^
+program_source:828:13: error: program scope variable must reside in constant address space
+thread uint v824 = 0u;
+            ^
+program_source:829:13: error: program scope variable must reside in constant address space
+thread uint v825 = 0u;
+            ^
+program_source:830:13: error: program scope variable must reside in constant address space
+thread uint v826 = 0u;
+            ^
+program_source:831:13: error: program scope variable must reside in constant address space
+thread uint v827 = 0u;
+            ^
+program_source:832:13: error: program scope variable must reside in constant address space
+thread uint v828 = 0u;
+            ^
+program_source:833:13: error: program scope variable must reside in constant address space
+thread uint v829 = 0u;
+            ^
+program_source:834:13: error: program scope variable must reside in constant address space
+thread uint v830 = 0u;
+            ^
+program_source:835:13: error: program scope variable must reside in constant address space
+thread uint v831 = 0u;
+            ^
+program_source:836:13: error: program scope variable must reside in constant address space
+thread uint v832 = 0u;
+            ^
+program_source:837:13: error: program scope variable must reside in constant address space
+thread uint v833 = 0u;
+            ^
+program_source:838:13: error: program scope variable must reside in constant address space
+thread uint v834 = 0u;
+            ^
+program_source:839:13: error: program scope variable must reside in constant address space
+thread uint v835 = 0u;
+            ^
+program_source:840:13: error: program scope variable must reside in constant address space
+thread uint v836 = 0u;
+            ^
+program_source:841:13: error: program scope variable must reside in constant address space
+thread uint v837 = 0u;
+            ^
+program_source:842:13: error: program scope variable must reside in constant address space
+thread uint v838 = 0u;
+            ^
+program_source:843:13: error: program scope variable must reside in constant address space
+thread uint v839 = 0u;
+            ^
+program_source:844:13: error: program scope variable must reside in constant address space
+thread uint v840 = 0u;
+            ^
+program_source:845:13: error: program scope variable must reside in constant address space
+thread uint v841 = 0u;
+            ^
+program_source:846:13: error: program scope variable must reside in constant address space
+thread uint v842 = 0u;
+            ^
+program_source:847:13: error: program scope variable must reside in constant address space
+thread uint v843 = 0u;
+            ^
+program_source:848:13: error: program scope variable must reside in constant address space
+thread uint v844 = 0u;
+            ^
+program_source:849:13: error: program scope variable must reside in constant address space
+thread uint v845 = 0u;
+            ^
+program_source:850:13: error: program scope variable must reside in constant address space
+thread uint v846 = 0u;
+            ^
+program_source:851:13: error: program scope variable must reside in constant address space
+thread uint v847 = 0u;
+            ^
+program_source:852:13: error: program scope variable must reside in constant address space
+thread uint v848 = 0u;
+            ^
+program_source:853:13: error: program scope variable must reside in constant address space
+thread uint v849 = 0u;
+            ^
+program_source:854:13: error: program scope variable must reside in constant address space
+thread uint v850 = 0u;
+            ^
+program_source:855:13: error: program scope variable must reside in constant address space
+thread uint v851 = 0u;
+            ^
+program_source:856:13: error: program scope variable must reside in constant address space
+thread uint v852 = 0u;
+            ^
+program_source:857:13: error: program scope variable must reside in constant address space
+thread uint v853 = 0u;
+            ^
+program_source:858:13: error: program scope variable must reside in constant address space
+thread uint v854 = 0u;
+            ^
+program_source:859:13: error: program scope variable must reside in constant address space
+thread uint v855 = 0u;
+            ^
+program_source:860:13: error: program scope variable must reside in constant address space
+thread uint v856 = 0u;
+            ^
+program_source:861:13: error: program scope variable must reside in constant address space
+thread uint v857 = 0u;
+            ^
+program_source:862:13: error: program scope variable must reside in constant address space
+thread uint v858 = 0u;
+            ^
+program_source:863:13: error: program scope variable must reside in constant address space
+thread uint v859 = 0u;
+            ^
+program_source:864:13: error: program scope variable must reside in constant address space
+thread uint v860 = 0u;
+            ^
+program_source:865:13: error: program scope variable must reside in constant address space
+thread uint v861 = 0u;
+            ^
+program_source:866:13: error: program scope variable must reside in constant address space
+thread uint v862 = 0u;
+            ^
+program_source:867:13: error: program scope variable must reside in constant address space
+thread uint v863 = 0u;
+            ^
+program_source:868:13: error: program scope variable must reside in constant address space
+thread uint v864 = 0u;
+            ^
+program_source:869:13: error: program scope variable must reside in constant address space
+thread uint v865 = 0u;
+            ^
+program_source:870:13: error: program scope variable must reside in constant address space
+thread uint v866 = 0u;
+            ^
+program_source:871:13: error: program scope variable must reside in constant address space
+thread uint v867 = 0u;
+            ^
+program_source:872:13: error: program scope variable must reside in constant address space
+thread uint v868 = 0u;
+            ^
+program_source:873:13: error: program scope variable must reside in constant address space
+thread uint v869 = 0u;
+            ^
+program_source:874:13: error: program scope variable must reside in constant address space
+thread uint v870 = 0u;
+            ^
+program_source:875:13: error: program scope variable must reside in constant address space
+thread uint v871 = 0u;
+            ^
+program_source:876:13: error: program scope variable must reside in constant address space
+thread uint v872 = 0u;
+            ^
+program_source:877:13: error: program scope variable must reside in constant address space
+thread uint v873 = 0u;
+            ^
+program_source:878:13: error: program scope variable must reside in constant address space
+thread uint v874 = 0u;
+            ^
+program_source:879:13: error: program scope variable must reside in constant address space
+thread uint v875 = 0u;
+            ^
+program_source:880:13: error: program scope variable must reside in constant address space
+thread uint v876 = 0u;
+            ^
+program_source:881:13: error: program scope variable must reside in constant address space
+thread uint v877 = 0u;
+            ^
+program_source:882:13: error: program scope variable must reside in constant address space
+thread uint v878 = 0u;
+            ^
+program_source:883:13: error: program scope variable must reside in constant address space
+thread uint v879 = 0u;
+            ^
+program_source:884:13: error: program scope variable must reside in constant address space
+thread uint v880 = 0u;
+            ^
+program_source:885:13: error: program scope variable must reside in constant address space
+thread uint v881 = 0u;
+            ^
+program_source:886:13: error: program scope variable must reside in constant address space
+thread uint v882 = 0u;
+            ^
+program_source:887:13: error: program scope variable must reside in constant address space
+thread uint v883 = 0u;
+            ^
+program_source:888:13: error: program scope variable must reside in constant address space
+thread uint v884 = 0u;
+            ^
+program_source:889:13: error: program scope variable must reside in constant address space
+thread uint v885 = 0u;
+            ^
+program_source:890:13: error: program scope variable must reside in constant address space
+thread uint v886 = 0u;
+            ^
+program_source:891:13: error: program scope variable must reside in constant address space
+thread uint v887 = 0u;
+            ^
+program_source:892:13: error: program scope variable must reside in constant address space
+thread uint v888 = 0u;
+            ^
+program_source:893:13: error: program scope variable must reside in constant address space
+thread uint v889 = 0u;
+            ^
+program_source:894:13: error: program scope variable must reside in constant address space
+thread uint v890 = 0u;
+            ^
+program_source:895:13: error: program scope variable must reside in constant address space
+thread uint v891 = 0u;
+            ^
+program_source:896:13: error: program scope variable must reside in constant address space
+thread uint v892 = 0u;
+            ^
+program_source:897:13: error: program scope variable must reside in constant address space
+thread uint v893 = 0u;
+            ^
+program_source:898:13: error: program scope variable must reside in constant address space
+thread uint v894 = 0u;
+            ^
+program_source:899:13: error: program scope variable must reside in constant address space
+thread uint v895 = 0u;
+            ^
+program_source:900:13: error: program scope variable must reside in constant address space
+thread uint v896 = 0u;
+            ^
+program_source:901:13: error: program scope variable must reside in constant address space
+thread uint v897 = 0u;
+            ^
+program_source:902:13: error: program scope variable must reside in constant address space
+thread uint v898 = 0u;
+            ^
+program_source:903:13: error: program scope variable must reside in constant address space
+thread uint v899 = 0u;
+            ^
+program_source:904:13: error: program scope variable must reside in constant address space
+thread uint v900 = 0u;
+            ^
+program_source:905:13: error: program scope variable must reside in constant address space
+thread uint v901 = 0u;
+            ^
+program_source:906:13: error: program scope variable must reside in constant address space
+thread uint v902 = 0u;
+            ^
+program_source:907:13: error: program scope variable must reside in constant address space
+thread uint v903 = 0u;
+            ^
+program_source:908:13: error: program scope variable must reside in constant address space
+thread uint v904 = 0u;
+            ^
+program_source:909:13: error: program scope variable must reside in constant address space
+thread uint v905 = 0u;
+            ^
+program_source:910:13: error: program scope variable must reside in constant address space
+thread uint v906 = 0u;
+            ^
+program_source:911:13: error: program scope variable must reside in constant address space
+thread uint v907 = 0u;
+            ^
+program_source:912:13: error: program scope variable must reside in constant address space
+thread uint v908 = 0u;
+            ^
+program_source:913:13: error: program scope variable must reside in constant address space
+thread uint v909 = 0u;
+            ^
+program_source:914:13: error: program scope variable must reside in constant address space
+thread uint v910 = 0u;
+            ^
+program_source:915:13: error: program scope variable must reside in constant address space
+thread uint v911 = 0u;
+            ^
+program_source:916:13: error: program scope variable must reside in constant address space
+thread uint v912 = 0u;
+            ^
+program_source:917:13: error: program scope variable must reside in constant address space
+thread uint v913 = 0u;
+            ^
+program_source:918:13: error: program scope variable must reside in constant address space
+thread uint v914 = 0u;
+            ^
+program_source:919:13: error: program scope variable must reside in constant address space
+thread uint v915 = 0u;
+            ^
+program_source:920:13: error: program scope variable must reside in constant address space
+thread uint v916 = 0u;
+            ^
+program_source:921:13: error: program scope variable must reside in constant address space
+thread uint v917 = 0u;
+            ^
+program_source:922:13: error: program scope variable must reside in constant address space
+thread uint v918 = 0u;
+            ^
+program_source:923:13: error: program scope variable must reside in constant address space
+thread uint v919 = 0u;
+            ^
+program_source:924:13: error: program scope variable must reside in constant address space
+thread uint v920 = 0u;
+            ^
+program_source:925:13: error: program scope variable must reside in constant address space
+thread uint v921 = 0u;
+            ^
+program_source:926:13: error: program scope variable must reside in constant address space
+thread uint v922 = 0u;
+            ^
+program_source:927:13: error: program scope variable must reside in constant address space
+thread uint v923 = 0u;
+            ^
+program_source:928:13: error: program scope variable must reside in constant address space
+thread uint v924 = 0u;
+            ^
+program_source:929:13: error: program scope variable must reside in constant address space
+thread uint v925 = 0u;
+            ^
+program_source:930:13: error: program scope variable must reside in constant address space
+thread uint v926 = 0u;
+            ^
+program_source:931:13: error: program scope variable must reside in constant address space
+thread uint v927 = 0u;
+            ^
+program_source:932:13: error: program scope variable must reside in constant address space
+thread uint v928 = 0u;
+            ^
+program_source:933:13: error: program scope variable must reside in constant address space
+thread uint v929 = 0u;
+            ^
+program_source:934:13: error: program scope variable must reside in constant address space
+thread uint v930 = 0u;
+            ^
+program_source:935:13: error: program scope variable must reside in constant address space
+thread uint v931 = 0u;
+            ^
+program_source:936:13: error: program scope variable must reside in constant address space
+thread uint v932 = 0u;
+            ^
+program_source:937:13: error: program scope variable must reside in constant address space
+thread uint v933 = 0u;
+            ^
+program_source:938:13: error: program scope variable must reside in constant address space
+thread uint v934 = 0u;
+            ^
+program_source:939:13: error: program scope variable must reside in constant address space
+thread uint v935 = 0u;
+            ^
+program_source:940:13: error: program scope variable must reside in constant address space
+thread uint v936 = 0u;
+            ^
+program_source:941:13: error: program scope variable must reside in constant address space
+thread uint v937 = 0u;
+            ^
+program_source:942:13: error: program scope variable must reside in constant address space
+thread uint v938 = 0u;
+            ^
+program_source:943:13: error: program scope variable must reside in constant address space
+thread uint v939 = 0u;
+            ^
+program_source:944:13: error: program scope variable must reside in constant address space
+thread uint v940 = 0u;
+            ^
+program_source:945:13: error: program scope variable must reside in constant address space
+thread uint v941 = 0u;
+            ^
+program_source:946:13: error: program scope variable must reside in constant address space
+thread uint v942 = 0u;
+            ^
+program_source:947:13: error: program scope variable must reside in constant address space
+thread uint v943 = 0u;
+            ^
+program_source:948:13: error: program scope variable must reside in constant address space
+thread uint v944 = 0u;
+            ^
+program_source:949:13: error: program scope variable must reside in constant address space
+thread uint v945 = 0u;
+            ^
+program_source:950:13: error: program scope variable must reside in constant address space
+thread uint v946 = 0u;
+            ^
+program_source:951:13: error: program scope variable must reside in constant address space
+thread uint v947 = 0u;
+            ^
+program_source:952:13: error: program scope variable must reside in constant address space
+thread uint v948 = 0u;
+            ^
+program_source:953:13: error: program scope variable must reside in constant address space
+thread uint v949 = 0u;
+            ^
+program_source:954:13: error: program scope variable must reside in constant address space
+thread uint v950 = 0u;
+            ^
+program_source:955:13: error: program scope variable must reside in constant address space
+thread uint v951 = 0u;
+            ^
+program_source:956:13: error: program scope variable must reside in constant address space
+thread uint v952 = 0u;
+            ^
+program_source:957:13: error: program scope variable must reside in constant address space
+thread uint v953 = 0u;
+            ^
+program_source:958:13: error: program scope variable must reside in constant address space
+thread uint v954 = 0u;
+            ^
+program_source:959:13: error: program scope variable must reside in constant address space
+thread uint v955 = 0u;
+            ^
+program_source:960:13: error: program scope variable must reside in constant address space
+thread uint v956 = 0u;
+            ^
+program_source:961:13: error: program scope variable must reside in constant address space
+thread uint v957 = 0u;
+            ^
+program_source:962:13: error: program scope variable must reside in constant address space
+thread uint v958 = 0u;
+            ^
+program_source:963:13: error: program scope variable must reside in constant address space
+thread uint v959 = 0u;
+            ^
+program_source:964:13: error: program scope variable must reside in constant address space
+thread uint v960 = 0u;
+            ^
+program_source:965:13: error: program scope variable must reside in constant address space
+thread uint v961 = 0u;
+            ^
+program_source:966:13: error: program scope variable must reside in constant address space
+thread uint v962 = 0u;
+            ^
+program_source:967:13: error: program scope variable must reside in constant address space
+thread uint v963 = 0u;
+            ^
+program_source:968:13: error: program scope variable must reside in constant address space
+thread uint v964 = 0u;
+            ^
+program_source:969:13: error: program scope variable must reside in constant address space
+thread uint v965 = 0u;
+            ^
+program_source:970:13: error: program scope variable must reside in constant address space
+thread uint v966 = 0u;
+            ^
+program_source:971:13: error: program scope variable must reside in constant address space
+thread uint v967 = 0u;
+            ^
+program_source:972:13: error: program scope variable must reside in constant address space
+thread uint v968 = 0u;
+            ^
+program_source:973:13: error: program scope variable must reside in constant address space
+thread uint v969 = 0u;
+            ^
+program_source:974:13: error: program scope variable must reside in constant address space
+thread uint v970 = 0u;
+            ^
+program_source:975:13: error: program scope variable must reside in constant address space
+thread uint v971 = 0u;
+            ^
+program_source:976:13: error: program scope variable must reside in constant address space
+thread uint v972 = 0u;
+            ^
+program_source:977:13: error: program scope variable must reside in constant address space
+thread uint v973 = 0u;
+            ^
+program_source:978:13: error: program scope variable must reside in constant address space
+thread uint v974 = 0u;
+            ^
+program_source:979:13: error: program scope variable must reside in constant address space
+thread uint v975 = 0u;
+            ^
+program_source:980:13: error: program scope variable must reside in constant address space
+thread uint v976 = 0u;
+            ^
+program_source:981:13: error: program scope variable must reside in constant address space
+thread uint v977 = 0u;
+            ^
+program_source:982:13: error: program scope variable must reside in constant address space
+thread uint v978 = 0u;
+            ^
+program_source:983:13: error: program scope variable must reside in constant address space
+thread uint v979 = 0u;
+            ^
+program_source:984:13: error: program scope variable must reside in constant address space
+thread uint v980 = 0u;
+            ^
+program_source:985:13: error: program scope variable must reside in constant address space
+thread uint v981 = 0u;
+            ^
+program_source:986:13: error: program scope variable must reside in constant address space
+thread uint v982 = 0u;
+            ^
+program_source:987:13: error: program scope variable must reside in constant address space
+thread uint v983 = 0u;
+            ^
+program_source:988:13: error: program scope variable must reside in constant address space
+thread uint v984 = 0u;
+            ^
+program_source:989:13: error: program scope variable must reside in constant address space
+thread uint v985 = 0u;
+            ^
+program_source:990:13: error: program scope variable must reside in constant address space
+thread uint v986 = 0u;
+            ^
+program_source:991:13: error: program scope variable must reside in constant address space
+thread uint v987 = 0u;
+            ^
+program_source:992:13: error: program scope variable must reside in constant address space
+thread uint v988 = 0u;
+            ^
+program_source:993:13: error: program scope variable must reside in constant address space
+thread uint v989 = 0u;
+            ^
+program_source:994:13: error: program scope variable must reside in constant address space
+thread uint v990 = 0u;
+            ^
+program_source:995:13: error: program scope variable must reside in constant address space
+thread uint v991 = 0u;
+            ^
+program_source:996:13: error: program scope variable must reside in constant address space
+thread uint v992 = 0u;
+            ^
+program_source:997:13: error: program scope variable must reside in constant address space
+thread uint v993 = 0u;
+            ^
+program_source:998:13: error: program scope variable must reside in constant address space
+thread uint v994 = 0u;
+            ^
+program_source:999:13: error: program scope variable must reside in constant address space
+thread uint v995 = 0u;
+            ^
+program_source:1000:13: error: program scope variable must reside in constant address space
+thread uint v996 = 0u;
+            ^
+program_source:1001:13: error: program scope variable must reside in constant address space
+thread uint v997 = 0u;
+            ^
+program_source:1002:13: error: program scope variable must reside in constant address space
+thread uint v998 = 0u;
+            ^
+program_source:1003:13: error: program scope variable must reside in constant address space
+thread uint v999 = 0u;
+            ^
+
diff --git a/test/tint/bug/tint/1520.spvasm.expected.ir.msl b/test/tint/bug/tint/1520.spvasm.expected.ir.msl
index 68dff4c..c1cce03 100644
--- a/test/tint/bug/tint/1520.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/1520.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UniformBuffer = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UniformBuffer = struct @align(16) {
   unknownInput_S1_c0:f32 @offset(16)
   ucolorRed_S1_c0:vec4<f32> @offset(32)
   ucolorGreen_S1_c0:vec4<f32> @offset(48)
@@ -11,15 +11,15 @@
   sk_FragColor_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<uniform, UniformBuffer, read> = var @binding_point(0, 0)
   %sk_FragColor:ptr<private, vec4<f32>, read_write> = var
   %sk_Clockwise:ptr<private, bool, read_write> = var
   %vcolor_S0:ptr<private, vec4<f32>, read_write> = var
 }
 
-%test_int_S1_c0_b = func():bool -> %b2 {
-  %b2 = block {
+%test_int_S1_c0_b = func():bool {
+  $B2: {
     %unknown:ptr<function, i32, read_write> = var
     %ok:ptr<function, bool, read_write> = var
     %val:ptr<function, vec4<i32>, read_write> = var
@@ -31,76 +31,86 @@
     %x_66:ptr<function, bool, read_write> = var
     %15:ptr<uniform, f32, read> = access %x_4, 0u
     %16:f32 = load %15
-    %x_27:i32 = convert %16
+    %17:i32 = call %tint_f32_to_i32, %16
+    %x_27:i32 = let %17
     store %unknown, %x_27
     store %ok, true
     store %x_41, false
-    if true [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %18:vec4<i32> = construct %x_27
-        %19:vec4<i32> = div vec4<i32>(0i), %18
-        %20:vec4<bool> = eq %19, vec4<i32>(0i)
-        %21:bool = all %20
-        store %x_40, %21
-        %22:bool = load %x_40
-        store %x_41, %22
+    if true [t: $B3] {  # if_1
+      $B3: {  # true
+        %20:vec4<i32> = construct %x_27
+        %21:vec4<i32> = call %tint_div_v4i32, vec4<i32>(0i), %20
+        %23:vec4<bool> = eq %21, vec4<i32>(0i)
+        %24:bool = all %23
+        store %x_40, %24
+        %25:bool = load %x_40
+        store %x_41, %25
         exit_if  # if_1
       }
     }
-    %23:bool = load %x_41
-    store %ok, %23
-    %x_44:vec4<i32> = construct %x_27
+    %26:bool = load %x_41
+    store %ok, %26
+    %27:vec4<i32> = construct %x_27
+    %x_44:vec4<i32> = let %27
     store %val, %x_44
-    %x_47:vec4<i32> = add %x_44, vec4<i32>(1i)
+    %29:vec4<i32> = add %x_44, vec4<i32>(1i)
+    %x_47:vec4<i32> = let %29
     store %val, %x_47
-    %x_48:vec4<i32> = sub %x_47, vec4<i32>(1i)
+    %31:vec4<i32> = sub %x_47, vec4<i32>(1i)
+    %x_48:vec4<i32> = let %31
     store %val, %x_48
-    %x_49:vec4<i32> = add %x_48, vec4<i32>(1i)
+    %33:vec4<i32> = add %x_48, vec4<i32>(1i)
+    %x_49:vec4<i32> = let %33
     store %val, %x_49
-    %x_50:vec4<i32> = sub %x_49, vec4<i32>(1i)
+    %35:vec4<i32> = sub %x_49, vec4<i32>(1i)
+    %x_50:vec4<i32> = let %35
     store %val, %x_50
     store %x_55, false
-    %29:bool = load %x_41
-    if %29 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %30:vec4<bool> = eq %x_50, %x_44
-        %31:bool = all %30
-        store %x_54, %31
-        %32:bool = load %x_54
-        store %x_55, %32
+    %37:bool = load %x_41
+    if %37 [t: $B4] {  # if_2
+      $B4: {  # true
+        %38:vec4<bool> = eq %x_50, %x_44
+        %39:bool = all %38
+        store %x_54, %39
+        %40:bool = load %x_54
+        store %x_55, %40
         exit_if  # if_2
       }
     }
-    %33:bool = load %x_55
-    store %ok, %33
-    %x_58:vec4<i32> = mul %x_50, vec4<i32>(2i)
+    %41:bool = load %x_55
+    store %ok, %41
+    %42:vec4<i32> = mul %x_50, vec4<i32>(2i)
+    %x_58:vec4<i32> = let %42
     store %val, %x_58
-    %x_59:vec4<i32> = div %x_58, vec4<i32>(2i)
+    %44:vec4<i32> = call %tint_div_v4i32, %x_58, vec4<i32>(2i)
+    %x_59:vec4<i32> = let %44
     store %val, %x_59
-    %x_60:vec4<i32> = mul %x_59, vec4<i32>(2i)
+    %46:vec4<i32> = mul %x_59, vec4<i32>(2i)
+    %x_60:vec4<i32> = let %46
     store %val, %x_60
-    %x_61:vec4<i32> = div %x_60, vec4<i32>(2i)
+    %48:vec4<i32> = call %tint_div_v4i32, %x_60, vec4<i32>(2i)
+    %x_61:vec4<i32> = let %48
     store %val, %x_61
     store %x_66, false
-    %38:bool = load %x_55
-    if %38 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %39:vec4<bool> = eq %x_61, %x_44
-        %40:bool = all %39
-        store %x_65, %40
-        %41:bool = load %x_65
-        store %x_66, %41
+    %50:bool = load %x_55
+    if %50 [t: $B5] {  # if_3
+      $B5: {  # true
+        %51:vec4<bool> = eq %x_61, %x_44
+        %52:bool = all %51
+        store %x_65, %52
+        %53:bool = load %x_65
+        store %x_66, %53
         exit_if  # if_3
       }
     }
-    %42:bool = load %x_66
-    store %ok, %42
-    %43:bool = load %x_66
-    ret %43
+    %54:bool = load %x_66
+    store %ok, %54
+    %55:bool = load %x_66
+    ret %55
   }
 }
-%main_1 = func():void -> %b6 {
-  %b6 = block {
+%main_1 = func():void {
+  $B6: {
     %outputColor_S0:ptr<function, vec4<f32>, read_write> = var
     %output_S1:ptr<function, vec4<f32>, read_write> = var
     %x_8_unknown:ptr<function, f32, read_write> = var
@@ -115,114 +125,147 @@
     %x_111:ptr<function, bool, read_write> = var
     %x_114:ptr<function, bool, read_write> = var
     %x_115:ptr<function, bool, read_write> = var
-    %59:vec4<f32> = load %vcolor_S0
-    store %outputColor_S0, %59
-    %60:ptr<uniform, f32, read> = access %x_4, 0u
-    %x_77:f32 = load %60
+    %71:vec4<f32> = load %vcolor_S0
+    store %outputColor_S0, %71
+    %72:ptr<uniform, f32, read> = access %x_4, 0u
+    %73:f32 = load %72
+    %x_77:f32 = let %73
     store %x_8_unknown, %x_77
     store %x_9_ok, true
     store %x_87, false
-    if true [t: %b7] {  # if_4
-      %b7 = block {  # true
-        %62:vec4<f32> = construct %x_77
-        %63:vec4<f32> = div vec4<f32>(0.0f), %62
-        %64:vec4<bool> = eq %63, vec4<f32>(0.0f)
-        %65:bool = all %64
-        store %x_86, %65
-        %66:bool = load %x_86
-        store %x_87, %66
+    if true [t: $B7] {  # if_4
+      $B7: {  # true
+        %75:vec4<f32> = construct %x_77
+        %76:vec4<f32> = div vec4<f32>(0.0f), %75
+        %77:vec4<bool> = eq %76, vec4<f32>(0.0f)
+        %78:bool = all %77
+        store %x_86, %78
+        %79:bool = load %x_86
+        store %x_87, %79
         exit_if  # if_4
       }
     }
-    %67:bool = load %x_87
-    store %x_9_ok, %67
-    %x_89:vec4<f32> = construct %x_77
+    %80:bool = load %x_87
+    store %x_9_ok, %80
+    %81:vec4<f32> = construct %x_77
+    %x_89:vec4<f32> = let %81
     store %x_10_val, %x_89
-    %x_92:vec4<f32> = add %x_89, vec4<f32>(1.0f)
+    %83:vec4<f32> = add %x_89, vec4<f32>(1.0f)
+    %x_92:vec4<f32> = let %83
     store %x_10_val, %x_92
-    %x_93:vec4<f32> = sub %x_92, vec4<f32>(1.0f)
+    %85:vec4<f32> = sub %x_92, vec4<f32>(1.0f)
+    %x_93:vec4<f32> = let %85
     store %x_10_val, %x_93
-    %x_94:vec4<f32> = add %x_93, vec4<f32>(1.0f)
+    %87:vec4<f32> = add %x_93, vec4<f32>(1.0f)
+    %x_94:vec4<f32> = let %87
     store %x_10_val, %x_94
-    %x_95:vec4<f32> = sub %x_94, vec4<f32>(1.0f)
+    %89:vec4<f32> = sub %x_94, vec4<f32>(1.0f)
+    %x_95:vec4<f32> = let %89
     store %x_10_val, %x_95
     store %x_100, false
-    %73:bool = load %x_87
-    if %73 [t: %b8] {  # if_5
-      %b8 = block {  # true
-        %74:vec4<bool> = eq %x_95, %x_89
-        %75:bool = all %74
-        store %x_99, %75
-        %76:bool = load %x_99
-        store %x_100, %76
+    %91:bool = load %x_87
+    if %91 [t: $B8] {  # if_5
+      $B8: {  # true
+        %92:vec4<bool> = eq %x_95, %x_89
+        %93:bool = all %92
+        store %x_99, %93
+        %94:bool = load %x_99
+        store %x_100, %94
         exit_if  # if_5
       }
     }
-    %77:bool = load %x_100
-    store %x_9_ok, %77
-    %x_103:vec4<f32> = mul %x_95, vec4<f32>(2.0f)
+    %95:bool = load %x_100
+    store %x_9_ok, %95
+    %96:vec4<f32> = mul %x_95, vec4<f32>(2.0f)
+    %x_103:vec4<f32> = let %96
     store %x_10_val, %x_103
-    %x_104:vec4<f32> = div %x_103, vec4<f32>(2.0f)
+    %98:vec4<f32> = div %x_103, vec4<f32>(2.0f)
+    %x_104:vec4<f32> = let %98
     store %x_10_val, %x_104
-    %x_105:vec4<f32> = mul %x_104, vec4<f32>(2.0f)
+    %100:vec4<f32> = mul %x_104, vec4<f32>(2.0f)
+    %x_105:vec4<f32> = let %100
     store %x_10_val, %x_105
-    %x_106:vec4<f32> = div %x_105, vec4<f32>(2.0f)
+    %102:vec4<f32> = div %x_105, vec4<f32>(2.0f)
+    %x_106:vec4<f32> = let %102
     store %x_10_val, %x_106
     store %x_111, false
-    %82:bool = load %x_100
-    if %82 [t: %b9] {  # if_6
-      %b9 = block {  # true
-        %83:vec4<bool> = eq %x_106, %x_89
-        %84:bool = all %83
-        store %x_110, %84
-        %85:bool = load %x_110
-        store %x_111, %85
+    %104:bool = load %x_100
+    if %104 [t: $B9] {  # if_6
+      $B9: {  # true
+        %105:vec4<bool> = eq %x_106, %x_89
+        %106:bool = all %105
+        store %x_110, %106
+        %107:bool = load %x_110
+        store %x_111, %107
         exit_if  # if_6
       }
     }
-    %86:bool = load %x_111
-    store %x_9_ok, %86
+    %108:bool = load %x_111
+    store %x_9_ok, %108
     store %x_115, false
-    %87:bool = load %x_111
-    if %87 [t: %b10] {  # if_7
-      %b10 = block {  # true
-        %88:bool = call %test_int_S1_c0_b
-        store %x_114, %88
-        %89:bool = load %x_114
-        store %x_115, %89
+    %109:bool = load %x_111
+    if %109 [t: $B10] {  # if_7
+      $B10: {  # true
+        %110:bool = call %test_int_S1_c0_b
+        store %x_114, %110
+        %111:bool = load %x_114
+        store %x_115, %111
         exit_if  # if_7
       }
     }
-    %90:bool = load %x_115
-    if %90 [t: %b11, f: %b12] {  # if_8
-      %b11 = block {  # true
-        %91:ptr<uniform, vec4<f32>, read> = access %x_4, 2u
-        %92:vec4<f32> = load %91
-        store %x_116, %92
+    %112:bool = load %x_115
+    if %112 [t: $B11, f: $B12] {  # if_8
+      $B11: {  # true
+        %113:ptr<uniform, vec4<f32>, read> = access %x_4, 2u
+        %114:vec4<f32> = load %113
+        store %x_116, %114
         exit_if  # if_8
       }
-      %b12 = block {  # false
-        %93:ptr<uniform, vec4<f32>, read> = access %x_4, 1u
-        %94:vec4<f32> = load %93
-        store %x_116, %94
+      $B12: {  # false
+        %115:ptr<uniform, vec4<f32>, read> = access %x_4, 1u
+        %116:vec4<f32> = load %115
+        store %x_116, %116
         exit_if  # if_8
       }
     }
-    %x_125:vec4<f32> = load %x_116
-    %96:vec4<f32> = load %x_116
-    store %output_S1, %96
+    %117:vec4<f32> = load %x_116
+    %x_125:vec4<f32> = let %117
+    %119:vec4<f32> = load %x_116
+    store %output_S1, %119
     store %sk_FragColor, %x_125
     ret
   }
 }
-%tint_symbol = @fragment func(%sk_Clockwise_param:bool [@front_facing], %vcolor_S0_param:vec4<f32> [@location(0)]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%sk_Clockwise_param:bool [@front_facing], %vcolor_S0_param:vec4<f32> [@location(0)]):main_out {
+  $B13: {
     store %sk_Clockwise, %sk_Clockwise_param
     store %vcolor_S0, %vcolor_S0_param
-    %100:void = call %main_1
-    %101:vec4<f32> = load %sk_FragColor
-    %102:main_out = construct %101
-    ret %102
+    %123:void = call %main_1
+    %124:vec4<f32> = load %sk_FragColor
+    %125:main_out = construct %124
+    ret %125
+  }
+}
+%tint_div_v4i32 = func(%lhs:vec4<i32>, %rhs:vec4<i32>):vec4<i32> {
+  $B14: {
+    %128:vec4<bool> = eq %rhs, vec4<i32>(0i)
+    %129:vec4<bool> = eq %lhs, vec4<i32>(-2147483648i)
+    %130:vec4<bool> = eq %rhs, vec4<i32>(-1i)
+    %131:vec4<bool> = and %129, %130
+    %132:vec4<bool> = or %128, %131
+    %133:vec4<i32> = select %rhs, vec4<i32>(1i), %132
+    %134:vec4<i32> = div %lhs, %133
+    ret %134
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %136:i32 = convert %value
+    %137:bool = gte %value, -2147483648.0f
+    %138:i32 = select -2147483648i, %136, %137
+    %139:bool = lte %value, 2147483520.0f
+    %140:i32 = select 2147483647i, %138, %139
+    ret %140
   }
 }
 
diff --git a/test/tint/bug/tint/1534.wgsl.expected.ir.msl b/test/tint/bug/tint/1534.wgsl.expected.ir.msl
index e48bbc6..d9246b1 100644
--- a/test/tint/bug/tint/1534.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1534.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: g = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: g = struct @align(16) {
   a:vec3<u32> @offset(0)
 }
 
@@ -8,22 +8,23 @@
   a:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %i:ptr<uniform, g, read> = var @binding_point(0, 0)
   %j:ptr<storage, h, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<uniform, vec3<u32>, read> = access %i, 0u
     %5:vec3<u32> = load %4
     %6:ptr<uniform, vec3<u32>, read> = access %i, 0u
     %7:vec3<u32> = load %6
-    %l:u32 = dot %5, %7
-    %9:ptr<storage, u32, read_write> = access %j, 0u
-    %10:ptr<uniform, vec3<u32>, read> = access %i, 0u
-    %11:u32 = load_vector_element %10, 0u
-    store %9, %11
+    %8:u32 = dot %5, %7
+    %l:u32 = let %8
+    %10:ptr<storage, u32, read_write> = access %j, 0u
+    %11:ptr<uniform, vec3<u32>, read> = access %i, 0u
+    %12:u32 = load_vector_element %11, 0u
+    store %10, %12
     ret
   }
 }
diff --git a/test/tint/bug/tint/1538.wgsl.expected.ir.msl b/test/tint/bug/tint/1538.wgsl.expected.ir.msl
index d5572fe..ffbff32 100644
--- a/test/tint/bug/tint/1538.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1538.wgsl.expected.ir.msl
@@ -1,49 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %buf:ptr<storage, array<u32, 1>, read_write> = var @binding_point(0, 1)
 }
 
-%g = func():i32 -> %b2 {
-  %b2 = block {
+%g = func():i32 {
+  $B2: {
     ret 0i
   }
 }
-%f = func():i32 -> %b3 {
-  %b3 = block {
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+%f = func():i32 {
+  $B3: {
+    loop [b: $B4] {  # loop_1
+      $B4: {  # body
         %4:i32 = call %g
         exit_loop  # loop_1
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
-      }
     }
-    %o:i32 = call %g
+    %5:i32 = call %g
+    %o:i32 = let %5
     ret 0i
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %7:ptr<storage, u32, read_write> = access %buf, 0i
-        %8:u32 = load %7
-        %9:bool = eq %8, 0u
-        if %9 [t: %b9] {  # if_1
-          %b9 = block {  # true
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    loop [b: $B6, c: $B7] {  # loop_2
+      $B6: {  # body
+        %8:ptr<storage, u32, read_write> = access %buf, 0i
+        %9:u32 = load %8
+        %10:bool = eq %9, 0u
+        if %10 [t: $B8] {  # if_1
+          $B8: {  # true
             exit_loop  # loop_2
           }
         }
-        %10:i32 = call %f
-        %s:ptr<function, i32, read_write> = var, %10
-        %12:ptr<storage, u32, read_write> = access %buf, 0i
-        store %12, 0u
-        continue %b8
+        %11:i32 = call %f
+        %s:ptr<function, i32, read_write> = var, %11
+        %13:ptr<storage, u32, read_write> = access %buf, 0i
+        store %13, 0u
+        continue  # -> $B7
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B7: {  # continuing
+        next_iteration  # -> $B6
       }
     }
     ret
diff --git a/test/tint/bug/tint/1540.wgsl.expected.ir.msl b/test/tint/bug/tint/1540.wgsl.expected.ir.msl
index 16b8883..e05be48 100644
--- a/test/tint/bug/tint/1540.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1540.wgsl.expected.ir.msl
@@ -6,7 +6,18 @@
   bool e;
 };
 
-void tint_symbol() {
+kernel void tint_symbol() {
   bool b = false;
   S v = {.e=(true & b)};
 }
+program_source:9:13: error: non-constant-expression cannot be narrowed from type 'int' to 'bool' in initializer list [-Wc++11-narrowing]
+  S v = {.e=(true & b)};
+            ^~~~~~~~~~
+program_source:9:13: note: insert an explicit cast to silence this issue
+  S v = {.e=(true & b)};
+            ^~~~~~~~~~
+            static_cast<bool>( )
+program_source:9:5: warning: unused variable 'v' [-Wunused-variable]
+  S v = {.e=(true & b)};
+    ^
+
diff --git a/test/tint/bug/tint/1541.wgsl.expected.ir.msl b/test/tint/bug/tint/1541.wgsl.expected.ir.msl
index b38060a..19fa371 100644
--- a/test/tint/bug/tint/1541.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1541.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void tint_symbol() {
+  bool const a = true;
+  bool v = select((a & true), true, false);
+}
+program_source:6:12: error: call to 'select' is ambiguous
+  bool v = select((a & true), true, false);
+           ^~~~~~
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_relational:780:17: note: candidate function
+METAL_FUNC bool select(bool x, bool y, bool c)
+                ^
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_relational:920:16: note: candidate function
+METAL_FUNC int select(int x, int y, bool c)
+               ^
+
diff --git a/test/tint/bug/tint/1542.wgsl.expected.ir.msl b/test/tint/bug/tint/1542.wgsl.expected.ir.msl
index ed2e4e0..d403947 100644
--- a/test/tint/bug/tint/1542.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1542.wgsl.expected.ir.msl
@@ -1,18 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: UniformBuffer = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: UniformBuffer = struct @align(16) {
   d:vec3<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u_input:ptr<uniform, UniformBuffer, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<uniform, vec3<i32>, read> = access %u_input, 0u
     %4:vec3<i32> = load %3
-    %temp:vec3<i32> = shiftl %4, vec3<u32>(0u)
+    %5:vec3<u32> = and vec3<u32>(0u), vec3<u32>(31u)
+    %6:vec3<i32> = shl %4, %5
+    %temp:vec3<i32> = let %6
     ret
   }
 }
diff --git a/test/tint/bug/tint/1557.wgsl.expected.ir.msl b/test/tint/bug/tint/1557.wgsl.expected.ir.msl
index 46647fd..8598d3b 100644
--- a/test/tint/bug/tint/1557.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1557.wgsl.expected.ir.msl
@@ -1,23 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %u:ptr<uniform, i32, read> = var @binding_point(0, 0)
 }
 
-%f = func():i32 -> %b2 {
-  %b2 = block {
+%f = func():i32 {
+  $B2: {
     ret 0i
   }
 }
-%g = func():void -> %b3 {
-  %b3 = block {
+%g = func():void {
+  $B3: {
     %j:ptr<function, i32, read_write> = var, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %5:i32 = load %j
         %6:bool = gte %5, 1i
-        if %6 [t: %b6] {  # if_1
-          %b6 = block {  # true
+        if %6 [t: $B6] {  # if_1
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
@@ -26,33 +26,33 @@
         store %j, %8
         %9:i32 = call %f
         %k:ptr<function, i32, read_write> = var, %9
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {
-  %b7 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B7: {
     %12:i32 = load %u
-    switch %12 [c: (0i, %b8), c: (default, %b9)] {  # switch_1
-      %b8 = block {  # case
+    switch %12 [c: (0i, $B8), c: (default, $B9)] {  # switch_1
+      $B8: {  # case
         %13:i32 = load %u
-        switch %13 [c: (0i, %b10), c: (default, %b11)] {  # switch_2
-          %b10 = block {  # case
+        switch %13 [c: (0i, $B10), c: (default, $B11)] {  # switch_2
+          $B10: {  # case
             exit_switch  # switch_2
           }
-          %b11 = block {  # case
+          $B11: {  # case
             %14:void = call %g
             exit_switch  # switch_2
           }
         }
         exit_switch  # switch_1
       }
-      %b9 = block {  # case
+      $B9: {  # case
         exit_switch  # switch_1
       }
     }
diff --git a/test/tint/bug/tint/1563.wgsl.expected.ir.msl b/test/tint/bug/tint/1563.wgsl.expected.ir.msl
index 6d165d3..40ec97c 100644
--- a/test/tint/bug/tint/1563.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1563.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-float foo() {
-  int const oob = 99;
-  float const b = float4(0.0f)[oob];
-  float4 v = 0.0f;
-  v[oob] = b;
-  return b;
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/bug/tint/1573.wgsl.expected.ir.msl b/test/tint/bug/tint/1573.wgsl.expected.ir.msl
index 5c3788e..115852e 100644
--- a/test/tint/bug/tint/1573.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1573.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: __atomic_compare_exchange_result_u32 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: __atomic_compare_exchange_result_u32 = struct @align(4) {
   old_value:u32 @offset(0)
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<storage, atomic<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(16, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(16, 1, 1) func():void {
+  $B2: {
     %value:ptr<function, u32, read_write> = var, 42u
     %4:u32 = load %value
-    %result:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a, 0u, %4
+    %5:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a, 0u, %4
+    %result:__atomic_compare_exchange_result_u32 = let %5
     ret
   }
 }
diff --git a/test/tint/bug/tint/1574.wgsl.expected.ir.msl b/test/tint/bug/tint/1574.wgsl.expected.ir.msl
index 20bf1cf..e7a21e4 100644
--- a/test/tint/bug/tint/1574.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1574.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: __atomic_compare_exchange_result_u32 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: __atomic_compare_exchange_result_u32 = struct @align(4) {
   old_value:u32 @offset(0)
   exchanged:bool @offset(4)
 }
@@ -10,43 +10,64 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a_u32:ptr<storage, atomic<u32>, read_write> = var @binding_point(0, 0)
   %a_i32:ptr<storage, atomic<i32>, read_write> = var @binding_point(0, 1)
   %b_u32:ptr<workgroup, atomic<u32>, read_write> = var
   %b_i32:ptr<workgroup, atomic<i32>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(16, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(16, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %7:bool = eq %tint_local_index, 0u
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        %8:void = atomicStore %b_u32, 0u
+        %9:void = atomicStore %b_i32, 0i
+        exit_if  # if_1
+      }
+    }
+    %10:void = msl.threadgroup_barrier 4u
     %value:ptr<function, u32, read_write> = var, 42u
-    %7:u32 = load %value
-    %r1:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a_u32, 0u, %7
-    %9:u32 = load %value
-    %r2:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a_u32, 0u, %9
-    %11:u32 = load %value
-    %r3:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a_u32, 0u, %11
+    %12:u32 = load %value
+    %13:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a_u32, 0u, %12
+    %r1:__atomic_compare_exchange_result_u32 = let %13
+    %15:u32 = load %value
+    %16:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a_u32, 0u, %15
+    %r2:__atomic_compare_exchange_result_u32 = let %16
+    %18:u32 = load %value
+    %19:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %a_u32, 0u, %18
+    %r3:__atomic_compare_exchange_result_u32 = let %19
     %value_1:ptr<function, i32, read_write> = var, 42i  # %value_1: 'value'
-    %14:i32 = load %value_1
-    %r1_1:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a_i32, 0i, %14  # %r1_1: 'r1'
-    %16:i32 = load %value_1
-    %r2_1:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a_i32, 0i, %16  # %r2_1: 'r2'
-    %18:i32 = load %value_1
-    %r3_1:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a_i32, 0i, %18  # %r3_1: 'r3'
+    %22:i32 = load %value_1
+    %23:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a_i32, 0i, %22
+    %r1_1:__atomic_compare_exchange_result_i32 = let %23  # %r1_1: 'r1'
+    %25:i32 = load %value_1
+    %26:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a_i32, 0i, %25
+    %r2_1:__atomic_compare_exchange_result_i32 = let %26  # %r2_1: 'r2'
+    %28:i32 = load %value_1
+    %29:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a_i32, 0i, %28
+    %r3_1:__atomic_compare_exchange_result_i32 = let %29  # %r3_1: 'r3'
     %value_2:ptr<function, u32, read_write> = var, 42u  # %value_2: 'value'
-    %21:u32 = load %value_2
-    %r1_2:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %b_u32, 0u, %21  # %r1_2: 'r1'
-    %23:u32 = load %value_2
-    %r2_2:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %b_u32, 0u, %23  # %r2_2: 'r2'
-    %25:u32 = load %value_2
-    %r3_2:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %b_u32, 0u, %25  # %r3_2: 'r3'
+    %32:u32 = load %value_2
+    %33:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %b_u32, 0u, %32
+    %r1_2:__atomic_compare_exchange_result_u32 = let %33  # %r1_2: 'r1'
+    %35:u32 = load %value_2
+    %36:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %b_u32, 0u, %35
+    %r2_2:__atomic_compare_exchange_result_u32 = let %36  # %r2_2: 'r2'
+    %38:u32 = load %value_2
+    %39:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %b_u32, 0u, %38
+    %r3_2:__atomic_compare_exchange_result_u32 = let %39  # %r3_2: 'r3'
     %value_3:ptr<function, i32, read_write> = var, 42i  # %value_3: 'value'
-    %28:i32 = load %value_3
-    %r1_3:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %b_i32, 0i, %28  # %r1_3: 'r1'
-    %30:i32 = load %value_3
-    %r2_3:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %b_i32, 0i, %30  # %r2_3: 'r2'
-    %32:i32 = load %value_3
-    %r3_3:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %b_i32, 0i, %32  # %r3_3: 'r3'
+    %42:i32 = load %value_3
+    %43:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %b_i32, 0i, %42
+    %r1_3:__atomic_compare_exchange_result_i32 = let %43  # %r1_3: 'r1'
+    %45:i32 = load %value_3
+    %46:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %b_i32, 0i, %45
+    %r2_3:__atomic_compare_exchange_result_i32 = let %46  # %r2_3: 'r2'
+    %48:i32 = load %value_3
+    %49:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %b_i32, 0i, %48
+    %r3_3:__atomic_compare_exchange_result_i32 = let %49  # %r3_3: 'r3'
     ret
   }
 }
diff --git a/test/tint/bug/tint/1604.wgsl.expected.ir.msl b/test/tint/bug/tint/1604.wgsl.expected.ir.msl
index 57a9550..51679e2 100644
--- a/test/tint/bug/tint/1604.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1604.wgsl.expected.ir.msl
@@ -1,25 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %x:ptr<uniform, i32, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:i32 = load %x
-    switch %3 [c: (0i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
-        loop [b: %b5, c: %b6] {  # loop_1
-          %b5 = block {  # body
+    switch %3 [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        loop [b: $B5] {  # loop_1
+          $B5: {  # body
             ret
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
         exit_switch  # switch_1
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
diff --git a/test/tint/bug/tint/1605.wgsl.expected.ir.msl b/test/tint/bug/tint/1605.wgsl.expected.ir.msl
index d1a4039..5eee2e1 100644
--- a/test/tint/bug/tint/1605.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1605.wgsl.expected.ir.msl
@@ -1,67 +1,67 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %b:ptr<uniform, i32, read> = var @binding_point(0, 0)
 }
 
-%func_3 = func():bool -> %b2 {
-  %b2 = block {
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+%func_3 = func():bool {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %i:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %4:i32 = load %i
         %5:i32 = load %b
         %6:bool = lt %4, %5
-        if %6 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %6 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [i: %b8, b: %b9, c: %b10] {  # loop_2
-          %b8 = block {  # initializer
+        loop [i: $B8, b: $B9, c: $B10] {  # loop_2
+          $B8: {  # initializer
             %j:ptr<function, i32, read_write> = var, -1i
-            next_iteration %b9
+            next_iteration  # -> $B9
           }
-          %b9 = block {  # body
+          $B9: {  # body
             %8:i32 = load %j
             %9:bool = eq %8, 1i
-            if %9 [t: %b11, f: %b12] {  # if_2
-              %b11 = block {  # true
+            if %9 [t: $B11, f: $B12] {  # if_2
+              $B11: {  # true
                 exit_if  # if_2
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 exit_loop  # loop_2
               }
             }
             ret false
           }
-          %b10 = block {  # continuing
+          $B10: {  # continuing
             %10:i32 = load %j
             %11:i32 = add %10, 1i
             store %j, %11
-            next_iteration %b9
+            next_iteration  # -> $B9
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
+      $B5: {  # continuing
         %12:i32 = load %i
         %13:i32 = add %12, 1i
         store %i, %13
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
     }
     ret false
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b13 {
-  %b13 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B13: {
     %15:bool = call %func_3
     ret
   }
diff --git a/test/tint/bug/tint/1653.wgsl.expected.ir.msl b/test/tint/bug/tint/1653.wgsl.expected.ir.msl
index 28251dc..f204da4 100644
--- a/test/tint/bug/tint/1653.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1653.wgsl.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+vertex float4 vs_main(uint in_vertex_index [[]]) {
+  return tint_array<float4, 3>{float4(0.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(1.0f, 1.0f, 0.0f, 1.0f)}[in_vertex_index];
+}
+program_source:16:23: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 vs_main(uint in_vertex_index [[]]) {
+                      ^~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/bug/tint/1660.wgsl.expected.ir.msl b/test/tint/bug/tint/1660.wgsl.expected.ir.msl
index cc034c1..ee80ac2 100644
--- a/test/tint/bug/tint/1660.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1660.wgsl.expected.ir.msl
@@ -16,3 +16,7 @@
 
 
 threadgroup tint_array<float, 2> a;
+program_source:16:34: error: program scope variable must reside in constant address space
+threadgroup tint_array<float, 2> a;
+                                 ^
+
diff --git a/test/tint/bug/tint/1666.wgsl.expected.ir.msl b/test/tint/bug/tint/1666.wgsl.expected.ir.msl
index 27cbf95..854c912 100644
--- a/test/tint/bug/tint/1666.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1666.wgsl.expected.ir.msl
@@ -1,45 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %rarr:ptr<storage, array<f32>, read> = var @binding_point(0, 0)
 }
 
-%vector = func():void -> %b2 {
-  %b2 = block {
+%vector = func():void {
+  $B2: {
     %idx:i32 = let 3i
-    %x:i32 = access vec2<i32>(1i, 2i), %idx
+    %4:i32 = access vec2<i32>(1i, 2i), %idx
+    %x:i32 = let %4
     ret
   }
 }
-%tint_symbol = func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = func():void {
+  $B3: {
     %idx_1:i32 = let 4i  # %idx_1: 'idx'
-    %x_1:vec2<f32> = access mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f)), %idx_1  # %x_1: 'x'
+    %8:vec2<f32> = access mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f)), %idx_1
+    %x_1:vec2<f32> = let %8  # %x_1: 'x'
     ret
   }
 }
-%fixed_size_array = func():void -> %b4 {
-  %b4 = block {
+%fixed_size_array = func():void {
+  $B4: {
     %arr:array<i32, 2> = let array<i32, 2>(1i, 2i)
     %idx_2:i32 = let 3i  # %idx_2: 'idx'
-    %x_2:i32 = access %arr, %idx_2  # %x_2: 'x'
+    %13:i32 = access %arr, %idx_2
+    %x_2:i32 = let %13  # %x_2: 'x'
     ret
   }
 }
-%runtime_size_array = func():void -> %b5 {
-  %b5 = block {
+%runtime_size_array = func():void {
+  $B5: {
     %idx_3:i32 = let -1i  # %idx_3: 'idx'
-    %14:ptr<storage, f32, read> = access %rarr, %idx_3
-    %x_3:f32 = load %14  # %x_3: 'x'
+    %17:ptr<storage, f32, read> = access %rarr, %idx_3
+    %18:f32 = load %17
+    %x_3:f32 = let %18  # %x_3: 'x'
     ret
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %17:void = call %vector
-    %18:void = call %tint_symbol
-    %19:void = call %fixed_size_array
-    %20:void = call %runtime_size_array
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %21:void = call %vector
+    %22:void = call %tint_symbol
+    %23:void = call %fixed_size_array
+    %24:void = call %runtime_size_array
     ret
   }
 }
diff --git a/test/tint/bug/tint/1677.wgsl.expected.ir.msl b/test/tint/bug/tint/1677.wgsl.expected.ir.msl
index 5b31a9a..78e17ab 100644
--- a/test/tint/bug/tint/1677.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1677.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Input = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Input = struct @align(16) {
   position:vec3<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %input:ptr<storage, Input, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%id:vec3<u32> [@global_invocation_id]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%id:vec3<u32> [@global_invocation_id]):void {
+  $B2: {
     %4:ptr<storage, vec3<i32>, read> = access %input, 0u
     %5:vec3<i32> = load %4
-    %pos:vec3<i32> = sub %5, vec3<i32>(0i)
+    %6:vec3<i32> = sub %5, vec3<i32>(0i)
+    %pos:vec3<i32> = let %6
     ret
   }
 }
diff --git a/test/tint/bug/tint/1703.wgsl.expected.ir.msl b/test/tint/bug/tint/1703.wgsl.expected.ir.msl
index 6b7f0e1..ef1868d 100644
--- a/test/tint/bug/tint/1703.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1703.wgsl.expected.ir.msl
@@ -1,14 +1,14 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %my_global:ptr<private, vec4<f32>, read_write> = var
   %my_uniform:ptr<uniform, f32, read> = var @binding_point(0, 0)
   %my_texture:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 1)
   %my_sampler:ptr<handle, sampler, read> = var @binding_point(0, 2)
 }
 
-%foo_member_initialize = func():void -> %b2 {
-  %b2 = block {
+%foo_member_initialize = func():void {
+  $B2: {
     %vb2:ptr<function, vec2<bool>, read_write> = var
     %7:f32 = load_vector_element %my_global, 2u
     %8:bool = neq %7, 0.0f
@@ -21,33 +21,35 @@
     %13:vec2<bool> = construct %12, false
     store %vb2, %13
     %14:bool = load_vector_element %vb2, 0u
-    if %14 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
         %15:texture_2d<f32> = load %my_texture
         %16:sampler = load %my_sampler
-        %r:vec4<f32> = textureSampleBias %15, %16, vec2<f32>(0.0f), 0.0f
+        %17:vec4<f32> = textureSampleBias %15, %16, vec2<f32>(0.0f), 0.0f
+        %r:vec4<f32> = let %17
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%foo_default_initialize = func():void -> %b4 {
-  %b4 = block {
+%foo_default_initialize = func():void {
+  $B4: {
     %vb2_1:ptr<function, vec2<bool>, read_write> = var  # %vb2_1: 'vb2'
-    %20:f32 = load_vector_element %my_global, 2u
-    %21:bool = neq %20, 0.0f
-    store_vector_element %vb2_1, 0u, %21
-    %22:f32 = load %my_uniform
-    %23:bool = eq %22, -1.0f
-    store_vector_element %vb2_1, 0u, %23
+    %21:f32 = load_vector_element %my_global, 2u
+    %22:bool = neq %21, 0.0f
+    store_vector_element %vb2_1, 0u, %22
+    %23:f32 = load %my_uniform
+    %24:bool = eq %23, -1.0f
+    store_vector_element %vb2_1, 0u, %24
     store %vb2_1, vec2<bool>(false)
-    %24:bool = load_vector_element %vb2_1, 0u
-    if %24 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %25:texture_2d<f32> = load %my_texture
-        %26:sampler = load %my_sampler
-        %r_1:vec4<f32> = textureSampleBias %25, %26, vec2<f32>(0.0f), 0.0f  # %r_1: 'r'
+    %25:bool = load_vector_element %vb2_1, 0u
+    if %25 [t: $B5] {  # if_2
+      $B5: {  # true
+        %26:texture_2d<f32> = load %my_texture
+        %27:sampler = load %my_sampler
+        %28:vec4<f32> = textureSampleBias %26, %27, vec2<f32>(0.0f), 0.0f
+        %r_1:vec4<f32> = let %28  # %r_1: 'r'
         exit_if  # if_2
       }
     }
diff --git a/test/tint/bug/tint/1725.wgsl.expected.ir.msl b/test/tint/bug/tint/1725.wgsl.expected.ir.msl
index db84ee6..fd3c2c8 100644
--- a/test/tint/bug/tint/1725.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1725.wgsl.expected.ir.msl
@@ -1,16 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %tint_symbol:ptr<storage, array<u32>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @compute @workgroup_size(1, 1, 1) func(%tint_symbol_2:u32 [@local_invocation_index]):void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @compute @workgroup_size(1, 1, 1) func(%tint_symbol_2:u32 [@local_invocation_index]):void {
+  $B2: {
     %tint_symbol_3:i32 = let 0i
     %tint_symbol_4:i32 = let 0i
     %tint_symbol_5:i32 = let 0i
-    %7:ptr<storage, u32, read> = access %tint_symbol, %tint_symbol_2
-    %tint_symbol_6:u32 = load %7
+    %7:u32 = arrayLength %tint_symbol
+    %8:u32 = sub %7, 1u
+    %9:u32 = min %tint_symbol_2, %8
+    %10:ptr<storage, u32, read> = access %tint_symbol, %9
+    %11:u32 = load %10
+    %tint_symbol_6:u32 = let %11
     ret
   }
 }
diff --git a/test/tint/bug/tint/1735.wgsl.expected.ir.msl b/test/tint/bug/tint/1735.wgsl.expected.ir.msl
index 095be25..d776463 100644
--- a/test/tint/bug/tint/1735.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1735.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   f:f32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %in:ptr<storage, S, read> = var @binding_point(0, 0)
   %out:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:S = load %in
     store %out, %4
     ret
diff --git a/test/tint/bug/tint/1737.wgsl.expected.ir.msl b/test/tint/bug/tint/1737.wgsl.expected.ir.msl
index 28251dc..7f0bf1c 100644
--- a/test/tint/bug/tint/1737.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1737.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+threadgroup tint_array<float, 10> a;
+threadgroup tint_array<float, 20> b;
+void f() {
+  float const x = a[0];
+  float const y = b[0];
+}
+program_source:16:35: error: program scope variable must reside in constant address space
+threadgroup tint_array<float, 10> a;
+                                  ^
+program_source:17:35: error: program scope variable must reside in constant address space
+threadgroup tint_array<float, 20> b;
+                                  ^
+program_source:19:15: warning: unused variable 'x' [-Wunused-variable]
+  float const x = a[0];
+              ^
+program_source:20:15: warning: unused variable 'y' [-Wunused-variable]
+  float const y = b[0];
+              ^
+
diff --git a/test/tint/bug/tint/1739.wgsl.expected.ir.msl b/test/tint/bug/tint/1739.wgsl.expected.ir.msl
index 02a26bb..c9b1023 100644
--- a/test/tint/bug/tint/1739.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1739.wgsl.expected.ir.msl
@@ -1,32 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:626 internal compiler error: %b1 = block {  # root
-  %t:ptr<handle, texture_external, read> = var @binding_point(0, 0)
-  %outImage:ptr<handle, texture_storage_2d<rgba8unorm, write>, read> = var @binding_point(0, 1)
+
+@group(0) @binding(0) var t : texture_external;
+
+@group(0) @binding(1) var outImage : texture_storage_2d<rgba8unorm, write>;
+
+@compute @workgroup_size(1)
+fn tint_symbol() {
+  var red : vec4<f32> = textureLoad(t, vec2<i32>(10, 10));
+  textureStore(outImage, vec2<i32>(0, 0), red);
+  var green : vec4<f32> = textureLoad(t, vec2<i32>(70, 118));
+  textureStore(outImage, vec2<i32>(1, 0), green);
+  return;
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %4:texture_external = load %t
-    %5:vec4<f32> = textureLoad %4, vec2<i32>(10i)
-    %red:ptr<function, vec4<f32>, read_write> = var, %5
-    %7:texture_storage_2d<rgba8unorm, write> = load %outImage
-    %8:vec4<f32> = load %red
-    %9:void = textureStore %7, vec2<i32>(0i), %8
-    %10:texture_external = load %t
-    %11:vec4<f32> = textureLoad %10, vec2<i32>(70i, 118i)
-    %green:ptr<function, vec4<f32>, read_write> = var, %11
-    %13:texture_storage_2d<rgba8unorm, write> = load %outImage
-    %14:vec4<f32> = load %green
-    %15:void = textureStore %13, vec2<i32>(1i, 0i), %14
-    ret
-  }
-}
-
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 0, binding: 0]
diff --git a/test/tint/bug/tint/1764.wgsl.expected.ir.msl b/test/tint/bug/tint/1764.wgsl.expected.ir.msl
index 28251dc..3fa6a4b 100644
--- a/test/tint/bug/tint/1764.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1764.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1776.spvasm.expected.ir.msl b/test/tint/bug/tint/1776.spvasm.expected.ir.msl
index 088571d..1c97029 100644
--- a/test/tint/bug/tint/1776.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/1776.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
   b:i32 @offset(16)
 }
@@ -9,20 +9,21 @@
   inner:array<S> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, sb_block, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, S, read_write> = access %sb, 0u, 1i
-    %x_18:S = load %3
+    %4:S = load %3
+    %x_18:S = let %4
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %6:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/bug/tint/1776.wgsl.expected.ir.msl b/test/tint/bug/tint/1776.wgsl.expected.ir.msl
index 67ceebb..684cd82 100644
--- a/test/tint/bug/tint/1776.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1776.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
   b:i32 @offset(16)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb:ptr<storage, array<S>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, S, read> = access %sb, 1i
-    %x:S = load %3
+    %4:S = load %3
+    %x:S = let %4
     ret
   }
 }
diff --git a/test/tint/bug/tint/1820.wgsl.expected.ir.msl b/test/tint/bug/tint/1820.wgsl.expected.ir.msl
index 47c8fbc..330d80a 100644
--- a/test/tint/bug/tint/1820.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1820.wgsl.expected.ir.msl
@@ -1,9 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int global = 0;
+void foo(float x) {
+  switch(tint_f32_to_i32(x)) {
+    default:
+    {
+      break;
+    }
+  }
+}
+int baz(int x) {
+  global = 42;
+  return x;
+}
+void bar(float x) {
+  switch(baz(tint_f32_to_i32(x))) {
+    default:
+    {
+      break;
+    }
+  }
+}
+void tint_symbol() {
+}
+int tint_f32_to_i32(float value) {
+  return select(2147483647, select((-2147483647 - 1), int(value), (value >= -2147483648.0f)), (value <= 2147483520.0f));
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int global = 0;
+           ^
+program_source:6:10: error: use of undeclared identifier 'tint_f32_to_i32'
+  switch(tint_f32_to_i32(x)) {
+         ^
+program_source:18:14: error: use of undeclared identifier 'tint_f32_to_i32'
+  switch(baz(tint_f32_to_i32(x))) {
+             ^
+
diff --git a/test/tint/bug/tint/1860.wgsl.expected.ir.msl b/test/tint/bug/tint/1860.wgsl.expected.ir.msl
index 68538df..d6faf5c 100644
--- a/test/tint/bug/tint/1860.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1860.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: DeclaredAfterUsage = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: DeclaredAfterUsage = struct @align(4) {
   f:f32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %declared_after_usage:ptr<uniform, DeclaredAfterUsage, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @vertex func():vec4<f32> [@position] -> %b2 {
-  %b2 = block {
+%tint_symbol = @vertex func():vec4<f32> [@position] {
+  $B2: {
     %3:ptr<uniform, f32, read> = access %declared_after_usage, 0u
     %4:f32 = load %3
     %5:vec4<f32> = construct %4
diff --git a/test/tint/bug/tint/1875.wgsl.expected.ir.msl b/test/tint/bug/tint/1875.wgsl.expected.ir.msl
index de67af0..7e094a4 100644
--- a/test/tint/bug/tint/1875.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1875.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Outputs = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Outputs = struct @align(4) {
   data:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %count:ptr<private, u32, read_write> = var, 0u
   %outputs:ptr<storage, Outputs, read_write> = var @binding_point(0, 1)
 }
 
-%push_output = func(%value:u32):void -> %b2 {
-  %b2 = block {
+%push_output = func(%value:u32):void {
+  $B2: {
     %5:u32 = load %count
     %6:ptr<storage, u32, read_write> = access %outputs, 0u, %5
     store %6, %value
@@ -20,8 +20,8 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %a:ptr<function, u32, read_write> = var, 0u
     %b:ptr<function, u32, read_write> = var, 10u
     %c:ptr<function, u32, read_write> = var, 4294967294u
diff --git a/test/tint/bug/tint/1926.wgsl.expected.ir.msl b/test/tint/bug/tint/1926.wgsl.expected.ir.msl
index 1ac3e37..c450d39 100644
--- a/test/tint/bug/tint/1926.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1926.wgsl.expected.ir.msl
@@ -1,23 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %sh_atomic_failed:ptr<workgroup, u32, read_write> = var
   %output:ptr<storage, u32, read_write> = var @binding_point(0, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(256, 1, 1) func(%global_id:vec3<u32> [@global_invocation_id], %local_id:vec3<u32> [@local_invocation_id]):void -> %b2 {
-  %b2 = block {
-    %6:void = workgroupBarrier
-    %7:u32 = load %sh_atomic_failed
-    %8:void = workgroupBarrier
-    %9:u32 = access %local_id, 0u
-    %10:bool = eq %9, 0u
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        store %output, %7
+%tint_symbol = @compute @workgroup_size(256, 1, 1) func(%global_id:vec3<u32> [@global_invocation_id], %local_id:vec3<u32> [@local_invocation_id], %tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    %7:bool = eq %tint_local_index, 0u
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %sh_atomic_failed, 0u
         exit_if  # if_1
       }
     }
+    %8:void = msl.threadgroup_barrier 4u
+    %9:void = msl.threadgroup_barrier 4u
+    %10:u32 = load %sh_atomic_failed
+    %11:u32 = let %10
+    %12:void = msl.threadgroup_barrier 4u
+    %failed:u32 = let %11
+    %14:u32 = access %local_id, 0u
+    %15:bool = eq %14, 0u
+    if %15 [t: $B4] {  # if_2
+      $B4: {  # true
+        store %output, %failed
+        exit_if  # if_2
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/bug/tint/1961.wgsl.expected.ir.msl b/test/tint/bug/tint/1961.wgsl.expected.ir.msl
index 93ca517..0e49291 100644
--- a/test/tint/bug/tint/1961.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1961.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:268 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
+../../src/tint/lang/msl/writer/printer/printer.cc:385 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/1963_b.wgsl.expected.ir.msl b/test/tint/bug/tint/1963_b.wgsl.expected.ir.msl
index b271fbb..9eb780f 100644
--- a/test/tint/bug/tint/1963_b.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1963_b.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: __atomic_compare_exchange_result_i32 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: __atomic_compare_exchange_result_i32 = struct @align(4) {
   old_value:i32 @offset(0)
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<storage, atomic<i32>, read_write> = var @binding_point(0, 0)
 }
 
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a, 1i, 1i
-    %v:i32 = access %3, 0u
+    %4:i32 = access %3, 0u
+    %v:i32 = let %4
     ret
   }
 }
diff --git a/test/tint/bug/tint/1976.wgsl.expected.ir.msl b/test/tint/bug/tint/1976.wgsl.expected.ir.msl
index 165b340..949e8a4 100644
--- a/test/tint/bug/tint/1976.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1976.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Results = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Results = struct @align(4) {
   colorSamples:array<f32, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %texture0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(0, 0)
   %results:ptr<storage, Results, read_write> = var @binding_point(0, 2)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:ptr<storage, f32, read_write> = access %results, 0u, 0i
     %5:texture_multisampled_2d<f32> = load %texture0
     %6:vec4<f32> = textureLoad %5, vec2<i32>(0i), 0i
diff --git a/test/tint/bug/tint/2010.spvasm.expected.ir.msl b/test/tint/bug/tint/2010.spvasm.expected.ir.msl
index 8cd2d6b..252583d 100644
--- a/test/tint/bug/tint/2010.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/2010.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   field0:vec2<f32> @offset(0)
   field1:u32 @offset(8)
 }
@@ -21,7 +21,7 @@
   field0:array<vec4<f32>> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_28:ptr<workgroup, array<S, 4096>, read_write> = var
   %x_34:ptr<workgroup, atomic<u32>, read_write> = var
   %x_35:ptr<workgroup, atomic<u32>, read_write> = var
@@ -33,178 +33,231 @@
   %x_12:ptr<storage, S_4, read_write> = var @binding_point(0, 3)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_54:ptr<function, u32, read_write> = var
     %x_58:ptr<function, u32, read_write> = var
     %x_85:ptr<function, vec4<f32>, read_write> = var
     %x_88:ptr<function, u32, read_write> = var
-    %x_52:u32 = load_vector_element %x_3, 0u
+    %15:u32 = load_vector_element %x_3, 0u
+    %x_52:u32 = let %15
     store %x_54, 0u
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_55:ptr<function, u32, read_write> = var
-        %17:ptr<uniform, u32, read> = access %x_6, 0u, 0u
-        %18:u32 = load %17
-        store %x_58, %18
-        %19:u32 = load %x_54
-        %20:u32 = load %x_58
-        %21:bool = lt %19, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %18:ptr<uniform, u32, read> = access %x_6, 0u, 0u
+        %19:u32 = load %18
+        store %x_58, %19
+        %20:u32 = load %x_54
+        %21:u32 = load %x_58
+        %22:bool = lt %20, %21
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:u32 = load %x_54
-        %x_62:u32 = add %22, %x_52
-        %24:u32 = load %x_58
-        %25:bool = gte %x_62, %24
-        if %25 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %26:ptr<storage, vec4<f32>, read> = access %x_9, 0u, %x_62
-            %x_67:vec4<f32> = load %26
-            %28:ptr<workgroup, S, read_write> = access %x_28, %x_62
-            %29:vec2<f32> = swizzle %x_67, xy
-            %30:vec2<f32> = swizzle %x_67, zw
-            %31:vec2<f32> = add %29, %30
-            %32:vec2<f32> = mul %31, 0.5f
-            %33:S = construct %32, %x_62
-            store %28, %33
+        %23:u32 = load %x_54
+        %24:u32 = add %23, %x_52
+        %x_62:u32 = let %24
+        %26:u32 = load %x_58
+        %27:bool = gte %x_62, %26
+        if %27 [t: $B7] {  # if_2
+          $B7: {  # true
+            %28:ptr<storage, vec4<f32>, read> = access %x_9, 0u, %x_62
+            %29:vec4<f32> = load %28
+            %x_67:vec4<f32> = let %29
+            %31:ptr<workgroup, S, read_write> = access %x_28, %x_62
+            %32:vec2<f32> = swizzle %x_67, xy
+            %33:vec2<f32> = swizzle %x_67, zw
+            %34:vec2<f32> = add %32, %33
+            %35:vec2<f32> = mul %34, 0.5f
+            %36:S = construct %35, %x_62
+            store %31, %36
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %34:u32 = load %x_54
-        %35:u32 = add %34, 32u
-        store %x_55, %35
-        %36:u32 = load %x_55
-        store %x_54, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %37:u32 = load %x_54
+        %38:u32 = add %37, 32u
+        store %x_55, %38
+        %39:u32 = load %x_55
+        store %x_54, %39
+        next_iteration  # -> $B3
       }
     }
-    %37:void = workgroupBarrier
-    %38:u32 = load %x_58
-    %x_74:i32 = bitcast %38
-    %40:ptr<workgroup, vec2<f32>, read_write> = access %x_28, 0i, 0u
-    %x_76:vec2<f32> = load %40
-    %42:bool = eq %x_52, 0u
-    if %42 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %x_80:vec2<u32> = bitcast %x_76
-        %x_81:u32 = access %x_80, 0u
-        %45:void = atomicStore %x_34, %x_81
-        %x_82:u32 = access %x_80, 1u
-        %47:void = atomicStore %x_35, %x_82
-        %48:void = atomicStore %x_36, %x_81
-        %49:void = atomicStore %x_37, %x_82
+    %40:void = msl.threadgroup_barrier 4u
+    %41:u32 = load %x_58
+    %42:i32 = bitcast %41
+    %x_74:i32 = let %42
+    %44:ptr<workgroup, vec2<f32>, read_write> = access %x_28, 0i, 0u
+    %45:vec2<f32> = load %44
+    %x_76:vec2<f32> = let %45
+    %47:bool = eq %x_52, 0u
+    if %47 [t: $B8] {  # if_3
+      $B8: {  # true
+        %48:vec2<u32> = bitcast %x_76
+        %x_80:vec2<u32> = let %48
+        %50:u32 = access %x_80, 0u
+        %x_81:u32 = let %50
+        %52:void = atomicStore %x_34, %x_81
+        %53:u32 = access %x_80, 1u
+        %x_82:u32 = let %53
+        %55:void = atomicStore %x_35, %x_82
+        %56:void = atomicStore %x_36, %x_81
+        %57:void = atomicStore %x_37, %x_82
         exit_if  # if_3
       }
     }
-    %50:vec4<f32> = swizzle %x_76, xyxy
-    store %x_85, %50
+    %58:vec4<f32> = swizzle %x_76, xyxy
+    store %x_85, %58
     store %x_88, 1u
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
         %x_111:ptr<function, vec4<f32>, read_write> = var
         %x_86:ptr<function, vec4<f32>, read_write> = var
         %x_89:ptr<function, u32, read_write> = var
-        %x_90:u32 = bitcast %x_74
-        %55:u32 = load %x_88
-        %56:bool = lt %55, %x_90
-        if %56 [t: %b11, f: %b12] {  # if_4
-          %b11 = block {  # true
+        %62:u32 = bitcast %x_74
+        %x_90:u32 = let %62
+        %64:u32 = load %x_88
+        %65:bool = lt %64, %x_90
+        if %65 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
             exit_if  # if_4
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %57:u32 = load %x_88
-        %x_94:u32 = add %57, %x_52
-        %59:vec4<f32> = load %x_85
-        store %x_86, %59
-        %60:bool = gte %x_94, %x_90
-        if %60 [t: %b13] {  # if_5
-          %b13 = block {  # true
-            %61:ptr<workgroup, vec2<f32>, read_write> = access %x_28, %x_94, 0u
-            %x_99:vec2<f32> = load %61
-            %63:vec4<f32> = load %x_85
-            %64:vec2<f32> = swizzle %63, xy
-            %x_101:vec2<f32> = min %64, %x_99
-            %66:vec4<f32> = load %x_85
-            %x_103_1:ptr<function, vec4<f32>, read_write> = var, %66
-            %68:f32 = access %x_101, 0u
-            store_vector_element %x_103_1, 0u, %68
-            %x_103:vec4<f32> = load %x_103_1
+        %66:u32 = load %x_88
+        %67:u32 = add %66, %x_52
+        %x_94:u32 = let %67
+        %69:vec4<f32> = load %x_85
+        store %x_86, %69
+        %70:bool = gte %x_94, %x_90
+        if %70 [t: $B13] {  # if_5
+          $B13: {  # true
+            %71:ptr<workgroup, vec2<f32>, read_write> = access %x_28, %x_94, 0u
+            %72:vec2<f32> = load %71
+            %x_99:vec2<f32> = let %72
+            %74:vec4<f32> = load %x_85
+            %75:vec2<f32> = swizzle %74, xy
+            %76:vec2<f32> = min %75, %x_99
+            %x_101:vec2<f32> = let %76
+            %78:vec4<f32> = load %x_85
+            %x_103_1:ptr<function, vec4<f32>, read_write> = var, %78
+            %80:f32 = access %x_101, 0u
+            store_vector_element %x_103_1, 0u, %80
+            %81:vec4<f32> = load %x_103_1
+            %x_103:vec4<f32> = let %81
             %x_105_1:ptr<function, vec4<f32>, read_write> = var, %x_103
-            %71:f32 = access %x_101, 1u
-            store_vector_element %x_105_1, 1u, %71
-            %x_105:vec4<f32> = load %x_105_1
-            %73:vec4<f32> = load %x_105_1
-            %74:vec2<f32> = swizzle %73, zw
-            %x_107:vec2<f32> = max %74, %x_99
+            %84:f32 = access %x_101, 1u
+            store_vector_element %x_105_1, 1u, %84
+            %85:vec4<f32> = load %x_105_1
+            %x_105:vec4<f32> = let %85
+            %87:vec4<f32> = load %x_105_1
+            %88:vec2<f32> = swizzle %87, zw
+            %89:vec2<f32> = max %88, %x_99
+            %x_107:vec2<f32> = let %89
             %x_109_1:ptr<function, vec4<f32>, read_write> = var, %x_105
-            %77:f32 = access %x_107, 0u
-            store_vector_element %x_109_1, 2u, %77
-            %78:vec4<f32> = load %x_109_1
-            store %x_111, %78
-            %79:f32 = access %x_107, 1u
-            store_vector_element %x_111, 3u, %79
-            %80:vec4<f32> = load %x_111
-            store %x_86, %80
+            %92:f32 = access %x_107, 0u
+            store_vector_element %x_109_1, 2u, %92
+            %93:vec4<f32> = load %x_109_1
+            store %x_111, %93
+            %94:f32 = access %x_107, 1u
+            store_vector_element %x_111, 3u, %94
+            %95:vec4<f32> = load %x_111
+            store %x_86, %95
             exit_if  # if_5
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %81:u32 = load %x_88
-        %82:u32 = add %81, 32u
-        store %x_89, %82
-        %83:vec4<f32> = load %x_86
-        store %x_85, %83
-        %84:u32 = load %x_89
-        store %x_88, %84
-        next_iteration %b9
+      $B10: {  # continuing
+        %96:u32 = load %x_88
+        %97:u32 = add %96, 32u
+        store %x_89, %97
+        %98:vec4<f32> = load %x_86
+        store %x_85, %98
+        %99:u32 = load %x_89
+        store %x_88, %99
+        next_iteration  # -> $B9
       }
     }
-    %85:void = workgroupBarrier
-    %86:f32 = load_vector_element %x_85, 0u
-    %87:u32 = bitcast %86
-    %x_114:u32 = atomicMin %x_34, %87
-    %89:f32 = load_vector_element %x_85, 1u
-    %90:u32 = bitcast %89
-    %x_117:u32 = atomicMin %x_35, %90
-    %92:f32 = load_vector_element %x_85, 2u
-    %93:u32 = bitcast %92
-    %x_120:u32 = atomicMax %x_36, %93
-    %95:f32 = load_vector_element %x_85, 3u
-    %96:u32 = bitcast %95
-    %x_123:u32 = atomicMax %x_37, %96
-    %98:void = workgroupBarrier
-    %99:ptr<storage, vec4<f32>, read_write> = access %x_12, 0u, 0i
-    %100:u32 = atomicLoad %x_34
-    %101:f32 = bitcast %100
-    %102:u32 = atomicLoad %x_35
-    %103:f32 = bitcast %102
-    %104:u32 = atomicLoad %x_36
-    %105:f32 = bitcast %104
-    %106:u32 = atomicLoad %x_37
-    %107:f32 = bitcast %106
-    %108:vec4<f32> = construct %101, %103, %105, %107
-    store %99, %108
+    %100:void = msl.threadgroup_barrier 4u
+    %101:f32 = load_vector_element %x_85, 0u
+    %102:u32 = bitcast %101
+    %103:u32 = atomicMin %x_34, %102
+    %x_114:u32 = let %103
+    %105:f32 = load_vector_element %x_85, 1u
+    %106:u32 = bitcast %105
+    %107:u32 = atomicMin %x_35, %106
+    %x_117:u32 = let %107
+    %109:f32 = load_vector_element %x_85, 2u
+    %110:u32 = bitcast %109
+    %111:u32 = atomicMax %x_36, %110
+    %x_120:u32 = let %111
+    %113:f32 = load_vector_element %x_85, 3u
+    %114:u32 = bitcast %113
+    %115:u32 = atomicMax %x_37, %114
+    %x_123:u32 = let %115
+    %117:void = msl.threadgroup_barrier 4u
+    %118:ptr<storage, vec4<f32>, read_write> = access %x_12, 0u, 0i
+    %119:u32 = atomicLoad %x_34
+    %120:f32 = bitcast %119
+    %121:f32 = let %120
+    %122:u32 = atomicLoad %x_35
+    %123:f32 = bitcast %122
+    %124:f32 = let %123
+    %125:u32 = atomicLoad %x_36
+    %126:f32 = bitcast %125
+    %127:f32 = let %126
+    %128:u32 = atomicLoad %x_37
+    %129:f32 = bitcast %128
+    %130:vec4<f32> = construct %121, %124, %127, %129
+    store %118, %130
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(32, 1, 1) func(%x_3_param:vec3<u32> [@local_invocation_id]):void -> %b14 {
-  %b14 = block {
+%tint_symbol = @compute @workgroup_size(32, 1, 1) func(%x_3_param:vec3<u32> [@local_invocation_id], %tint_local_index:u32 [@local_invocation_index]):void {
+  $B14: {
+    %134:bool = eq %tint_local_index, 0u
+    if %134 [t: $B15] {  # if_6
+      $B15: {  # true
+        %135:void = atomicStore %x_34, 0u
+        %136:void = atomicStore %x_35, 0u
+        %137:void = atomicStore %x_36, 0u
+        %138:void = atomicStore %x_37, 0u
+        exit_if  # if_6
+      }
+    }
+    loop [i: $B16, b: $B17, c: $B18] {  # loop_3
+      $B16: {  # initializer
+        next_iteration %tint_local_index  # -> $B17
+      }
+      $B17 (%idx:u32): {  # body
+        %140:bool = gte %idx, 4096u
+        if %140 [t: $B19] {  # if_7
+          $B19: {  # true
+            exit_loop  # loop_3
+          }
+        }
+        %141:ptr<workgroup, S, read_write> = access %x_28, %idx
+        store %141, S(vec2<f32>(0.0f), 0u)
+        continue  # -> $B18
+      }
+      $B18: {  # continuing
+        %142:u32 = add %idx, 32u
+        next_iteration %142  # -> $B17
+      }
+    }
+    %143:void = msl.threadgroup_barrier 4u
     store %x_3, %x_3_param
-    %111:void = call %main_1
+    %144:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/bug/tint/2029.wgsl.expected.ir.msl b/test/tint/bug/tint/2029.wgsl.expected.ir.msl
index 64aab0d..13ca518 100644
--- a/test/tint/bug/tint/2029.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2029.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %s:ptr<storage, vec3<i32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %s, vec3<i32>(1i)
     ret
   }
diff --git a/test/tint/bug/tint/2038.wgsl.expected.ir.msl b/test/tint/bug/tint/2038.wgsl.expected.ir.msl
index 47702b2..3d6a133 100644
--- a/test/tint/bug/tint/2038.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2038.wgsl.expected.ir.msl
@@ -1,20 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %output:ptr<storage, array<u32, 2>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    if false [t: %b3] {  # if_1
-      %b3 = block {  # true
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    if false [t: $B3] {  # if_1
+      $B3: {  # true
         %3:ptr<storage, u32, read_write> = access %output, 0i
         store %3, 1u
         exit_if  # if_1
       }
     }
-    if false [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if false [t: $B4] {  # if_2
+      $B4: {  # true
         %4:ptr<storage, u32, read_write> = access %output, 1i
         store %4, 1u
         exit_if  # if_2
diff --git a/test/tint/bug/tint/2039.wgsl.expected.ir.msl b/test/tint/bug/tint/2039.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5cc464b
--- /dev/null
+++ b/test/tint/bug/tint/2039.wgsl.expected.ir.msl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void tint_symbol() {
+  uint out = 0u;
+  {
+    while(true) {
+      switch(2) {
+        case 1:
+        {
+          if true { break; }
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      out = (out + 1u);
+      if true { break; }
+      continue;
+    }
+  }
+}
+program_source:11:14: error: expected '(' after 'if'
+          if true { break; }
+             ^
+program_source:20:10: error: expected '(' after 'if'
+      if true { break; }
+         ^
+
diff --git a/test/tint/bug/tint/2052.wgsl.expected.ir.msl b/test/tint/bug/tint/2052.wgsl.expected.ir.msl
index 6f459d5..2e04a91 100644
--- a/test/tint/bug/tint/2052.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2052.wgsl.expected.ir.msl
@@ -1,6 +1,13 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
+thread bool continue_execution = true;
 void f() {
-  discard_fragment();
+  continue_execution = false;
 }
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/bug/tint/2054.wgsl.expected.ir.msl b/test/tint/bug/tint/2054.wgsl.expected.ir.msl
index 0df05dd..da129a9 100644
--- a/test/tint/bug/tint/2054.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2054.wgsl.expected.ir.msl
@@ -1,34 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, f32, read_write> = var @binding_point(0, 0)
 }
 
-%bar = func(%p:ptr<function, f32, read_write>):void -> %b2 {
-  %b2 = block {
+%bar = func(%p:ptr<function, f32, read_write>):void {
+  $B2: {
     %a:f32 = let 1.0f
     %b:f32 = let 2.0f
     %6:bool = gte %a, 0.0f
-    %cond:bool = if %6 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:bool = if %6 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %8:bool = gte %b, 0.0f
         exit_if %8  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         exit_if false  # if_1
       }
     }
-    %9:f32 = select %a, %b, %cond
-    store %p, %9
+    %cond:bool = let %7
+    %10:f32 = select %a, %b, %cond
+    store %p, %10
     ret
   }
 }
-%foo = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%foo = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %param:ptr<function, f32, read_write> = var
-    %12:void = call %bar, %param
-    %13:f32 = load %param
-    store %out, %13
+    %13:void = call %bar, %param
+    %14:f32 = load %param
+    store %out, %14
     ret
   }
 }
diff --git a/test/tint/bug/tint/2059.wgsl.expected.ir.msl b/test/tint/bug/tint/2059.wgsl.expected.ir.msl
index 92a78a7..e0ff29a 100644
--- a/test/tint/bug/tint/2059.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2059.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   m:mat3x3<f32> @offset(0)
 }
 
@@ -16,7 +16,7 @@
   s:array<S, 1> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %buffer0:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
   %buffer1:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %buffer2:ptr<storage, S2, read_write> = var @binding_point(0, 2)
@@ -27,80 +27,215 @@
   %buffer7:ptr<storage, array<S2, 1>, read_write> = var @binding_point(0, 7)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x3<f32>, read_write> = var
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %c:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %12:u32 = load %c
         %13:bool = lt %12, 3u
-        if %13 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %13 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
         %14:u32 = load %c
         %15:ptr<function, vec3<f32>, read_write> = access %m, %14
-        %16:u32 = load %c
-        %17:u32 = mul %16, 3u
-        %18:u32 = add %17, 1u
-        %19:f32 = convert %18
-        %20:u32 = load %c
-        %21:u32 = mul %20, 3u
-        %22:u32 = add %21, 2u
-        %23:f32 = convert %22
-        %24:u32 = load %c
-        %25:u32 = mul %24, 3u
-        %26:u32 = add %25, 3u
-        %27:f32 = convert %26
-        %28:vec3<f32> = construct %19, %23, %27
-        store %15, %28
-        continue %b5
+        %16:ptr<function, vec3<f32>, read_write> = let %15
+        %17:u32 = load %c
+        %18:u32 = mul %17, 3u
+        %19:u32 = add %18, 1u
+        %20:f32 = convert %19
+        %21:f32 = let %20
+        %22:u32 = load %c
+        %23:u32 = mul %22, 3u
+        %24:u32 = add %23, 2u
+        %25:f32 = convert %24
+        %26:f32 = let %25
+        %27:u32 = load %c
+        %28:u32 = mul %27, 3u
+        %29:u32 = add %28, 3u
+        %30:f32 = convert %29
+        %31:vec3<f32> = construct %21, %26, %30
+        store %16, %31
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %29:u32 = load %c
-        %30:u32 = add %29, 1u
-        store %c, %30
-        next_iteration %b4
+      $B5: {  # continuing
+        %32:u32 = load %c
+        %33:u32 = add %32, 1u
+        store %c, %33
+        next_iteration  # -> $B4
       }
     }
-    %a:mat3x3<f32> = load %m
-    store %buffer0, %a
-    %32:mat3x3<f32> = load %m
-    %a_1:S = construct %32  # %a_1: 'a'
-    store %buffer1, %a_1
     %34:mat3x3<f32> = load %m
-    %35:array<mat3x3<f32>, 1> = construct %34
-    %a_2:S2 = construct %35  # %a_2: 'a'
-    store %buffer2, %a_2
-    %37:mat3x3<f32> = load %m
-    %38:S = construct %37
-    %a_3:S3 = construct %38  # %a_3: 'a'
-    store %buffer3, %a_3
-    %40:mat3x3<f32> = load %m
-    %41:S = construct %40
-    %42:array<S, 1> = construct %41
-    %a_4:S4 = construct %42  # %a_4: 'a'
-    store %buffer4, %a_4
-    %44:mat3x3<f32> = load %m
-    %a_5:array<mat3x3<f32>, 1> = construct %44  # %a_5: 'a'
-    store %buffer5, %a_5
-    %46:mat3x3<f32> = load %m
-    %47:S = construct %46
-    %a_6:array<S, 1> = construct %47  # %a_6: 'a'
-    store %buffer6, %a_6
+    %a:mat3x3<f32> = let %34
+    %36:void = call %tint_store_and_preserve_padding, %buffer0, %a
+    %38:mat3x3<f32> = load %m
+    %39:S = construct %38
+    %a_1:S = let %39  # %a_1: 'a'
+    %41:void = call %tint_store_and_preserve_padding_1, %buffer1, %a_1
+    %43:mat3x3<f32> = load %m
+    %44:array<mat3x3<f32>, 1> = construct %43
+    %45:S2 = construct %44
+    %a_2:S2 = let %45  # %a_2: 'a'
+    %47:void = call %tint_store_and_preserve_padding_2, %buffer2, %a_2
     %49:mat3x3<f32> = load %m
-    %50:array<mat3x3<f32>, 1> = construct %49
-    %51:S2 = construct %50
-    %a_7:array<S2, 1> = construct %51  # %a_7: 'a'
-    store %buffer7, %a_7
+    %50:S = construct %49
+    %51:S3 = construct %50
+    %a_3:S3 = let %51  # %a_3: 'a'
+    %53:void = call %tint_store_and_preserve_padding_3, %buffer3, %a_3
+    %55:mat3x3<f32> = load %m
+    %56:S = construct %55
+    %57:array<S, 1> = construct %56
+    %58:S4 = construct %57
+    %a_4:S4 = let %58  # %a_4: 'a'
+    %60:void = call %tint_store_and_preserve_padding_4, %buffer4, %a_4
+    %62:mat3x3<f32> = load %m
+    %63:array<mat3x3<f32>, 1> = construct %62
+    %a_5:array<mat3x3<f32>, 1> = let %63  # %a_5: 'a'
+    %65:void = call %tint_store_and_preserve_padding_5, %buffer5, %a_5
+    %67:mat3x3<f32> = load %m
+    %68:S = construct %67
+    %69:array<S, 1> = construct %68
+    %a_6:array<S, 1> = let %69  # %a_6: 'a'
+    %71:void = call %tint_store_and_preserve_padding_6, %buffer6, %a_6
+    %73:mat3x3<f32> = load %m
+    %74:array<mat3x3<f32>, 1> = construct %73
+    %75:S2 = construct %74
+    %76:array<S2, 1> = construct %75
+    %a_7:array<S2, 1> = let %76  # %a_7: 'a'
+    %78:void = call %tint_store_and_preserve_padding_7, %buffer7, %a_7
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B8: {
+    %82:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %83:vec3<f32> = access %value_param, 0u
+    store %82, %83
+    %84:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %85:vec3<f32> = access %value_param, 1u
+    store %84, %85
+    %86:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %87:vec3<f32> = access %value_param, 2u
+    store %86, %87
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, S, read_write>, %value_param_1:S):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B9: {
+    %90:ptr<storage, mat3x3<f32>, read_write> = access %target_1, 0u
+    %91:mat3x3<f32> = access %value_param_1, 0u
+    %92:void = call %tint_store_and_preserve_padding, %90, %91
+    ret
+  }
+}
+%tint_store_and_preserve_padding_2 = func(%target_2:ptr<storage, S2, read_write>, %value_param_2:S2):void {  # %tint_store_and_preserve_padding_2: 'tint_store_and_preserve_padding', %target_2: 'target', %value_param_2: 'value_param'
+  $B10: {
+    %95:ptr<storage, array<mat3x3<f32>, 1>, read_write> = access %target_2, 0u
+    %96:array<mat3x3<f32>, 1> = access %value_param_2, 0u
+    %97:void = call %tint_store_and_preserve_padding_5, %95, %96
+    ret
+  }
+}
+%tint_store_and_preserve_padding_5 = func(%target_3:ptr<storage, array<mat3x3<f32>, 1>, read_write>, %value_param_3:array<mat3x3<f32>, 1>):void {  # %tint_store_and_preserve_padding_5: 'tint_store_and_preserve_padding', %target_3: 'target', %value_param_3: 'value_param'
+  $B11: {
+    loop [i: $B12, b: $B13, c: $B14] {  # loop_2
+      $B12: {  # initializer
+        next_iteration 0u  # -> $B13
+      }
+      $B13 (%idx:u32): {  # body
+        %101:bool = gte %idx, 1u
+        if %101 [t: $B15] {  # if_2
+          $B15: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %102:ptr<storage, mat3x3<f32>, read_write> = access %target_3, %idx
+        %103:mat3x3<f32> = access %value_param_3, %idx
+        %104:void = call %tint_store_and_preserve_padding, %102, %103
+        continue  # -> $B14
+      }
+      $B14: {  # continuing
+        %105:u32 = add %idx, 1u
+        next_iteration %105  # -> $B13
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_3 = func(%target_4:ptr<storage, S3, read_write>, %value_param_4:S3):void {  # %tint_store_and_preserve_padding_3: 'tint_store_and_preserve_padding', %target_4: 'target', %value_param_4: 'value_param'
+  $B16: {
+    %108:ptr<storage, S, read_write> = access %target_4, 0u
+    %109:S = access %value_param_4, 0u
+    %110:void = call %tint_store_and_preserve_padding_1, %108, %109
+    ret
+  }
+}
+%tint_store_and_preserve_padding_4 = func(%target_5:ptr<storage, S4, read_write>, %value_param_5:S4):void {  # %tint_store_and_preserve_padding_4: 'tint_store_and_preserve_padding', %target_5: 'target', %value_param_5: 'value_param'
+  $B17: {
+    %113:ptr<storage, array<S, 1>, read_write> = access %target_5, 0u
+    %114:array<S, 1> = access %value_param_5, 0u
+    %115:void = call %tint_store_and_preserve_padding_6, %113, %114
+    ret
+  }
+}
+%tint_store_and_preserve_padding_6 = func(%target_6:ptr<storage, array<S, 1>, read_write>, %value_param_6:array<S, 1>):void {  # %tint_store_and_preserve_padding_6: 'tint_store_and_preserve_padding', %target_6: 'target', %value_param_6: 'value_param'
+  $B18: {
+    loop [i: $B19, b: $B20, c: $B21] {  # loop_3
+      $B19: {  # initializer
+        next_iteration 0u  # -> $B20
+      }
+      $B20 (%idx_1:u32): {  # body
+        %119:bool = gte %idx_1, 1u
+        if %119 [t: $B22] {  # if_3
+          $B22: {  # true
+            exit_loop  # loop_3
+          }
+        }
+        %120:ptr<storage, S, read_write> = access %target_6, %idx_1
+        %121:S = access %value_param_6, %idx_1
+        %122:void = call %tint_store_and_preserve_padding_1, %120, %121
+        continue  # -> $B21
+      }
+      $B21: {  # continuing
+        %123:u32 = add %idx_1, 1u
+        next_iteration %123  # -> $B20
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_7 = func(%target_7:ptr<storage, array<S2, 1>, read_write>, %value_param_7:array<S2, 1>):void {  # %tint_store_and_preserve_padding_7: 'tint_store_and_preserve_padding', %target_7: 'target', %value_param_7: 'value_param'
+  $B23: {
+    loop [i: $B24, b: $B25, c: $B26] {  # loop_4
+      $B24: {  # initializer
+        next_iteration 0u  # -> $B25
+      }
+      $B25 (%idx_2:u32): {  # body
+        %127:bool = gte %idx_2, 1u
+        if %127 [t: $B27] {  # if_4
+          $B27: {  # true
+            exit_loop  # loop_4
+          }
+        }
+        %128:ptr<storage, S2, read_write> = access %target_7, %idx_2
+        %129:S2 = access %value_param_7, %idx_2
+        %130:void = call %tint_store_and_preserve_padding_2, %128, %129
+        continue  # -> $B26
+      }
+      $B26: {  # continuing
+        %131:u32 = add %idx_2, 1u
+        next_iteration %131  # -> $B25
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/bug/tint/2063.wgsl.expected.ir.msl b/test/tint/bug/tint/2063.wgsl.expected.ir.msl
index b38060a..92c0fdd 100644
--- a/test/tint/bug/tint/2063.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2063.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/2069.wgsl.expected.ir.msl b/test/tint/bug/tint/2069.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d40cb4d
--- /dev/null
+++ b/test/tint/bug/tint/2069.wgsl.expected.ir.msl
@@ -0,0 +1,16 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+
+thread modf_result_f32 v = modf_result_f32{.fract=0.0f, .whole=1.0f};
+kernel void tint_symbol() {
+}
+program_source:8:24: error: program scope variable must reside in constant address space
+thread modf_result_f32 v = modf_result_f32{.fract=0.0f, .whole=1.0f};
+                       ^
+
diff --git a/test/tint/bug/tint/2076.wgsl.expected.ir.msl b/test/tint/bug/tint/2076.wgsl.expected.ir.msl
index a24ece3..a812156 100644
--- a/test/tint/bug/tint/2076.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2076.wgsl.expected.ir.msl
@@ -1,13 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:626 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: tint_GammaTransferParams = struct @align(4) {
+  G:f32 @offset(0)
+  A:f32 @offset(4)
+  B:f32 @offset(8)
+  C:f32 @offset(12)
+  D:f32 @offset(16)
+  E:f32 @offset(20)
+  F:f32 @offset(24)
+  padding:u32 @offset(28)
+}
+
+tint_ExternalTextureParams = struct @align(16) {
+  numPlanes:u32 @offset(0)
+  doYuvToRgbConversionOnly:u32 @offset(4)
+  yuvToRgbConversionMatrix:mat3x4<f32> @offset(16)
+  gammaDecodeParams:tint_GammaTransferParams @offset(64)
+  gammaEncodeParams:tint_GammaTransferParams @offset(96)
+  gamutConversionMatrix:mat3x3<f32> @offset(128)
+  coordTransformationMatrix:mat3x2<f32> @offset(176)
+  loadTransformationMatrix:mat3x2<f32> @offset(200)
+  samplePlane0RectMin:vec2<f32> @offset(224)
+  samplePlane0RectMax:vec2<f32> @offset(232)
+  samplePlane1RectMin:vec2<f32> @offset(240)
+  samplePlane1RectMax:vec2<f32> @offset(248)
+  displayVisibleRectMax:vec2<u32> @offset(256)
+  plane1CoordFactor:vec2<f32> @offset(264)
+}
+
+$B1: {  # root
   %Sampler:ptr<handle, sampler, read> = var @binding_point(0, 1)
-  %randomTexture:ptr<handle, texture_external, read> = var @binding_point(0, 1)
+  %randomTexture_plane0:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 1)
+  %randomTexture_plane1:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 3)
+  %randomTexture_params:ptr<uniform, tint_ExternalTextureParams, read> = var @binding_point(0, 4)
   %depthTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 2)
 }
 
 
-Multiplanar external texture transform was not run.
+unhandled variable address space
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/2100.wgsl.expected.ir.msl b/test/tint/bug/tint/2100.wgsl.expected.ir.msl
index 64cf7d9..9c390b3 100644
--- a/test/tint/bug/tint/2100.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2100.wgsl.expected.ir.msl
@@ -1,20 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   matrix_view:mat4x4<f32> @offset(0)
   matrix_normal:mat3x3<f32> @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tint_symbol:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @vertex func():vec4<f32> [@position] -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @vertex func():vec4<f32> [@position] {
+  $B2: {
     %3:ptr<uniform, vec4<f32>, read> = access %tint_symbol, 0u, 0i
-    %x:f32 = load_vector_element %3, 2u
-    %5:vec4<f32> = construct %x, 0.0f, 0.0f, 1.0f
-    ret %5
+    %4:f32 = load_vector_element %3, 2u
+    %x:f32 = let %4
+    %6:vec4<f32> = construct %x, 0.0f, 0.0f, 1.0f
+    ret %6
   }
 }
 
diff --git a/test/tint/bug/tint/2121.wgsl.expected.ir.msl b/test/tint/bug/tint/2121.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4604f10
--- /dev/null
+++ b/test/tint/bug/tint/2121.wgsl.expected.ir.msl
@@ -0,0 +1,28 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+struct VSOut {
+  float4 pos [[position]];
+};
+
+void foo(thread VSOut* const out) {
+  float4 pos = float4(1.0f, 2.0f, 3.0f, 4.0f);
+  out.pos = pos;
+}
+vertex VSOut tint_symbol() {
+  VSOut out = {};
+  foo(out);
+  return out;
+}
+program_source:9:6: error: member reference type 'VSOut *const' is a pointer; did you mean to use '->'?
+  out.pos = pos;
+  ~~~^
+     ->
+program_source:13:3: error: no matching function for call to 'foo'
+  foo(out);
+  ^~~
+program_source:7:6: note: candidate function not viable: no known conversion from 'VSOut' to 'VSOut *const' for 1st argument; take the address of the argument with &
+void foo(thread VSOut* const out) {
+     ^
+
diff --git a/test/tint/bug/tint/2146.wgsl.expected.ir.msl b/test/tint/bug/tint/2146.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0adff61
--- /dev/null
+++ b/test/tint/bug/tint/2146.wgsl.expected.ir.msl
@@ -0,0 +1,34 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 localId = 0u;
+thread uint localIndex = 0u;
+thread uint3 globalId = 0u;
+thread uint3 numWorkgroups = 0u;
+thread uint3 workgroupId = 0u;
+uint globalId2Index() {
+  return globalId[0u];
+}
+kernel void tint_symbol() {
+  half4 a = half4(0.0h);
+  half const b = 1.0h;
+  a[0] = (a[0] + b);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 localId = 0u;
+             ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread uint localIndex = 0u;
+            ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread uint3 globalId = 0u;
+             ^
+program_source:7:14: error: program scope variable must reside in constant address space
+thread uint3 numWorkgroups = 0u;
+             ^
+program_source:8:14: error: program scope variable must reside in constant address space
+thread uint3 workgroupId = 0u;
+             ^
+
diff --git a/test/tint/bug/tint/2147.wgsl.expected.ir.msl b/test/tint/bug/tint/2147.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c66ff97
--- /dev/null
+++ b/test/tint/bug/tint/2147.wgsl.expected.ir.msl
@@ -0,0 +1,50 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: __atomic_compare_exchange_result_i32 = struct @align(4) {
+  old_value:i32 @offset(0)
+  exchanged:bool @offset(4)
+}
+
+$B1: {  # root
+  %S:ptr<storage, atomic<i32>, read_write> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%tint_symbol = @fragment func():vec4<f32> [@location(0)] {
+  $B2: {
+    if false [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
+        exit_if  # if_1
+      }
+    }
+    %4:bool = load %continue_execution
+    %5:__atomic_compare_exchange_result_i32 = if %4 [t: $B4] {  # if_2
+      $B4: {  # true
+        %6:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %S, 0i, 1i
+        exit_if %6  # if_2
+      }
+      # implicit false block: exit_if undef
+    }
+    %7:i32 = access %5, 0u
+    %old_value:i32 = let %7
+    %9:f32 = convert %old_value
+    %10:vec4<f32> = construct %9
+    %11:bool = load %continue_execution
+    %12:bool = eq %11, false
+    if %12 [t: $B5] {  # if_3
+      $B5: {  # true
+        terminate_invocation
+      }
+    }
+    ret %10
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/bug/tint/2175.wgsl.expected.ir.msl b/test/tint/bug/tint/2175.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c2eec40
--- /dev/null
+++ b/test/tint/bug/tint/2175.wgsl.expected.ir.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %tint_symbol_2:ptr<storage, u32, read_write> = var @binding_point(0, 0)
+}
+
+%tint_symbol_3 = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    store %tint_symbol_2, 0u
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/bug/tint/2177.wgsl.expected.ir.msl b/test/tint/bug/tint/2177.wgsl.expected.ir.msl
new file mode 100644
index 0000000..12ec3cd
--- /dev/null
+++ b/test/tint/bug/tint/2177.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
+}
+
+%f2 = func(%p:ptr<storage, array<u32>, read_write>):u32 {
+  $B2: {
+    %4:u32 = arrayLength %p
+    ret %4
+  }
+}
+%f1 = func(%p_1:ptr<storage, array<u32>, read_write>):u32 {  # %p_1: 'p'
+  $B3: {
+    %7:u32 = call %f2, %p_1
+    ret %7
+  }
+}
+%f0 = func(%p_2:ptr<storage, array<u32>, read_write>):u32 {  # %p_2: 'p'
+  $B4: {
+    %10:u32 = call %f1, %p_2
+    ret %10
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:ptr<storage, u32, read_write> = access %arr, 0i
+    %13:u32 = call %f0, %arr
+    store %12, %13
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/bug/tint/219.spvasm.expected.ir.msl b/test/tint/bug/tint/219.spvasm.expected.ir.msl
index 2e88a5f..a2c96a5 100644
--- a/test/tint/bug/tint/219.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/219.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+float x_200(thread float2* const x_201) {
+  float const x_212 = x_201[0u];
+  return x_212;
+}
+void main_1() {
+  float2 x_11 = 0.0f;
+  float const x_12 = x_200(x_11);
+}
+kernel void tint_symbol() {
+  main_1();
+}
+program_source:5:15: error: cannot initialize a variable of type 'const float' with an lvalue of type 'float2' (vector of 2 'float' values)
+  float const x_212 = x_201[0u];
+              ^       ~~~~~~~~~
+program_source:10:22: error: no matching function for call to 'x_200'
+  float const x_12 = x_200(x_11);
+                     ^~~~~
+program_source:4:7: note: candidate function not viable: no known conversion from 'float2' (vector of 2 'float' values) to 'float2 *const' for 1st argument; take the address of the argument with &
+float x_200(thread float2* const x_201) {
+      ^
+
diff --git a/test/tint/bug/tint/2190.wgsl.expected.ir.msl b/test/tint/bug/tint/2190.wgsl.expected.ir.msl
new file mode 100644
index 0000000..f231313
--- /dev/null
+++ b/test/tint/bug/tint/2190.wgsl.expected.ir.msl
@@ -0,0 +1,6 @@
+#include <metal_stdlib>
+using namespace metal;
+
+void f() {
+  bool const v = false;
+}
diff --git a/test/tint/bug/tint/2201.wgsl.expected.ir.msl b/test/tint/bug/tint/2201.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9e9e983
--- /dev/null
+++ b/test/tint/bug/tint/2201.wgsl.expected.ir.msl
@@ -0,0 +1,19 @@
+<dawn>/test/tint/bug/tint/2201.wgsl:9:9 warning: code is unreachable
+        let _e16_ = vec2(false, false);
+        ^^^^^^^^^
+
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void tint_symbol() {
+  {
+    while(true) {
+      if (true) {
+        break;
+      } else {
+        break;
+      }
+      /* unreachable */
+    }
+  }
+}
diff --git a/test/tint/bug/tint/2202.wgsl.expected.ir.msl b/test/tint/bug/tint/2202.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8217706
--- /dev/null
+++ b/test/tint/bug/tint/2202.wgsl.expected.ir.msl
@@ -0,0 +1,19 @@
+<dawn>/test/tint/bug/tint/2202.wgsl:7:9 warning: code is unreachable
+        let _e9 = (vec3<i32>().y >= vec3<i32>().y);
+        ^^^^^^^
+
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void tint_symbol() {
+  {
+    while(true) {
+      {
+        while(true) {
+          return;
+        }
+      }
+      /* unreachable */
+    }
+  }
+}
diff --git a/test/tint/bug/tint/221.wgsl.expected.ir.msl b/test/tint/bug/tint/221.wgsl.expected.ir.msl
index f27e367..f430f2b 100644
--- a/test/tint/bug/tint/221.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/221.wgsl.expected.ir.msl
@@ -1,54 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Buf = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Buf = struct @align(4) {
   count:u32 @offset(0)
   data:array<u32, 50> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %b:ptr<storage, Buf, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %i:ptr<function, u32, read_write> = var, 0u
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %4:u32 = load %i
         %5:ptr<storage, u32, read_write> = access %b, 0u
         %6:u32 = load %5
         %7:bool = gte %4, %6
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if %7 [t: $B5] {  # if_1
+          $B5: {  # true
             exit_loop  # loop_1
           }
         }
         %8:u32 = load %i
-        %p:ptr<storage, u32, read_write> = access %b, 1u, %8
-        %10:u32 = load %i
-        %11:u32 = mod %10, 2u
-        %12:bool = eq %11, 0u
-        if %12 [t: %b6] {  # if_2
-          %b6 = block {  # true
-            continue %b4
+        %9:ptr<storage, u32, read_write> = access %b, 1u, %8
+        %p:ptr<storage, u32, read_write> = let %9
+        %11:u32 = load %i
+        %12:u32 = call %tint_mod_u32, %11, 2u
+        %14:bool = eq %12, 0u
+        if %14 [t: $B6] {  # if_2
+          $B6: {  # true
+            continue  # -> $B4
           }
         }
         store %p, 0u
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %13:u32 = load %p
-        %14:u32 = mul %13, 2u
-        store %p, %14
-        %15:u32 = load %i
-        %16:u32 = add %15, 1u
-        store %i, %16
-        next_iteration %b3
+      $B4: {  # continuing
+        %15:u32 = load %p
+        %16:u32 = mul %15, 2u
+        store %p, %16
+        %17:u32 = load %i
+        %18:u32 = add %17, 1u
+        store %i, %18
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
+%tint_mod_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B7: {
+    %21:bool = eq %rhs, 0u
+    %22:u32 = select %rhs, 1u, %21
+    %23:u32 = let %22
+    %24:u32 = div %lhs, %23
+    %25:u32 = mul %24, %23
+    %26:u32 = sub %lhs, %25
+    ret %26
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/tint/2237.wgsl.expected.ir.msl b/test/tint/bug/tint/2237.wgsl.expected.ir.msl
new file mode 100644
index 0000000..bcc5b55
--- /dev/null
+++ b/test/tint/bug/tint/2237.wgsl.expected.ir.msl
@@ -0,0 +1,32 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %tint_symbol:ptr<storage, u32, read_write> = var @binding_point(0, 0)
+}
+
+%foo = func():u32 {
+  $B2: {
+    %3:u32 = load %tint_symbol
+    %4:u32 = access array<u32, 4>(0u, 1u, 2u, 4u), %3
+    ret %4
+  }
+}
+%tint_symbol_1 = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:u32 = load %tint_symbol
+    %7:u32 = access array<u32, 4>(0u, 1u, 2u, 4u), %6
+    %v:u32 = let %7
+    %9:u32 = call %foo
+    %10:u32 = add %v, %9
+    store %tint_symbol, %10
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/bug/tint/294.wgsl.expected.ir.msl b/test/tint/bug/tint/294.wgsl.expected.ir.msl
index f10fe19..bf849a7 100644
--- a/test/tint/bug/tint/294.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/294.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Light = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Light = struct @align(16) {
   position:vec3<f32> @offset(0)
   colour:vec3<f32> @offset(16)
 }
@@ -9,7 +9,7 @@
   light:array<Light> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %lights:ptr<storage, Lights, read> = var @binding_point(0, 1)
 }
 
diff --git a/test/tint/bug/tint/369.wgsl.expected.ir.msl b/test/tint/bug/tint/369.wgsl.expected.ir.msl
index 7bc66ac..7e7d8ce 100644
--- a/test/tint/bug/tint/369.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/369.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   m:mat2x2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %SSBO:ptr<storage, S, read> = var @binding_point(0, 0)
   %UBO:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
diff --git a/test/tint/bug/tint/403.wgsl.expected.ir.msl b/test/tint/bug/tint/403.wgsl.expected.ir.msl
index 21df4f2..9d5da16 100644
--- a/test/tint/bug/tint/403.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/403.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: vertexUniformBuffer1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: vertexUniformBuffer1 = struct @align(8) {
   transform1:mat2x2<f32> @offset(0)
 }
 
@@ -8,34 +8,38 @@
   transform2:mat2x2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_20:ptr<uniform, vertexUniformBuffer1, read> = var @binding_point(0, 0)
   %x_26:ptr<uniform, vertexUniformBuffer2, read> = var @binding_point(1, 0)
 }
 
-%tint_symbol = @vertex func(%gl_VertexIndex:u32 [@vertex_index]):vec4<f32> [@position] -> %b2 {
-  %b2 = block {
+%tint_symbol = @vertex func(%gl_VertexIndex:u32 [@vertex_index]):vec4<f32> [@position] {
+  $B2: {
     %indexable:ptr<function, array<vec2<f32>, 3>, read_write> = var
     %6:ptr<uniform, mat2x2<f32>, read> = access %x_20, 0u
-    %x_23:mat2x2<f32> = load %6
-    %8:ptr<uniform, mat2x2<f32>, read> = access %x_26, 0u
-    %x_28:mat2x2<f32> = load %8
+    %7:mat2x2<f32> = load %6
+    %x_23:mat2x2<f32> = let %7
+    %9:ptr<uniform, mat2x2<f32>, read> = access %x_26, 0u
+    %10:mat2x2<f32> = load %9
+    %x_28:mat2x2<f32> = let %10
     %x_46:u32 = let %gl_VertexIndex
     store %indexable, array<vec2<f32>, 3>(vec2<f32>(-1.0f, 1.0f), vec2<f32>(1.0f), vec2<f32>(-1.0f))
-    %11:ptr<function, vec2<f32>, read_write> = access %indexable, %x_46
-    %x_51:vec2<f32> = load %11
-    %13:vec2<f32> = access %x_23, 0u
-    %14:vec2<f32> = access %x_28, 0u
-    %15:vec2<f32> = add %13, %14
-    %16:vec2<f32> = access %x_23, 1u
-    %17:vec2<f32> = access %x_28, 1u
+    %13:ptr<function, vec2<f32>, read_write> = access %indexable, %x_46
+    %14:vec2<f32> = load %13
+    %x_51:vec2<f32> = let %14
+    %16:vec2<f32> = access %x_23, 0u
+    %17:vec2<f32> = access %x_28, 0u
     %18:vec2<f32> = add %16, %17
-    %19:mat2x2<f32> = construct %15, %18
-    %x_52:vec2<f32> = mul %19, %x_51
-    %21:f32 = access %x_52, 0u
-    %22:f32 = access %x_52, 1u
-    %23:vec4<f32> = construct %21, %22, 0.0f, 1.0f
-    ret %23
+    %19:vec2<f32> = access %x_23, 1u
+    %20:vec2<f32> = access %x_28, 1u
+    %21:vec2<f32> = add %19, %20
+    %22:mat2x2<f32> = construct %18, %21
+    %23:vec2<f32> = mul %22, %x_51
+    %x_52:vec2<f32> = let %23
+    %25:f32 = access %x_52, 0u
+    %26:f32 = access %x_52, 1u
+    %27:vec4<f32> = construct %25, %26, 0.0f, 1.0f
+    ret %27
   }
 }
 
diff --git a/test/tint/bug/tint/413.spvasm.expected.ir.msl b/test/tint/bug/tint/413.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/bug/tint/413.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/413.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/453.wgsl.expected.ir.msl b/test/tint/bug/tint/453.wgsl.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/bug/tint/453.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/453.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/bug/tint/492.wgsl.expected.ir.msl b/test/tint/bug/tint/492.wgsl.expected.ir.msl
index e322d13..9891160 100644
--- a/test/tint/bug/tint/492.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/492.wgsl.expected.ir.msl
@@ -1,16 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %buf:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %p:ptr<storage, i32, read_write> = access %buf, 0u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:ptr<storage, i32, read_write> = access %buf, 0u
+    %p:ptr<storage, i32, read_write> = let %3
     store %p, 12i
     ret
   }
diff --git a/test/tint/bug/tint/534.wgsl.expected.ir.msl b/test/tint/bug/tint/534.wgsl.expected.ir.msl
index 51f94d6..23a4a58 100644
--- a/test/tint/bug/tint/534.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/534.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: OutputBuf = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: OutputBuf = struct @align(4) {
   result:array<u32> @offset(0)
 }
 
@@ -11,20 +11,20 @@
   channelCount:u32 @offset(12)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %src:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 0)
   %dst:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 1)
   %output:ptr<storage, OutputBuf, read_write> = var @binding_point(0, 2)
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 3)
 }
 
-%ConvertToFp16FloatValue = func(%fp32:f32):u32 -> %b2 {
-  %b2 = block {
+%ConvertToFp16FloatValue = func(%fp32:f32):u32 {
+  $B2: {
     ret 1u
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     %9:texture_2d<f32> = load %src
     %10:vec2<u32> = textureDimensions %9
     %size:ptr<function, vec2<u32>, read_write> = var, %10
@@ -35,8 +35,8 @@
     %16:ptr<uniform, u32, read> = access %uniforms, 0u
     %17:u32 = load %16
     %18:bool = eq %17, 1u
-    if %18 [t: %b4] {  # if_1
-      %b4 = block {  # true
+    if %18 [t: $B4] {  # if_1
+      $B4: {  # true
         %19:u32 = load_vector_element %size, 1u
         %20:u32 = load_vector_element %dstTexCoord, 1u
         %21:u32 = sub %19, %20
@@ -56,80 +56,91 @@
     %success:ptr<function, bool, read_write> = var, true
     %srcColorBits:ptr<function, vec4<u32>, read_write> = var
     %33:vec4<f32> = load %dstColor
-    %34:vec4<u32> = convert %33
+    %34:vec4<u32> = call %tint_v4f32_to_v4u32, %33
     %dstColorBits:ptr<function, vec4<u32>, read_write> = var, %34
-    loop [i: %b5, b: %b6, c: %b7] {  # loop_1
-      %b5 = block {  # initializer
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
         %i:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b6
+        next_iteration  # -> $B6
       }
-      %b6 = block {  # body
-        %37:u32 = load %i
-        %38:ptr<uniform, u32, read> = access %uniforms, 3u
-        %39:u32 = load %38
-        %40:bool = lt %37, %39
-        if %40 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+      $B6: {  # body
+        %38:u32 = load %i
+        %39:ptr<uniform, u32, read> = access %uniforms, 3u
+        %40:u32 = load %39
+        %41:bool = lt %38, %40
+        if %41 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             exit_if  # if_2
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %41:u32 = load %i
         %42:u32 = load %i
-        %43:f32 = load_vector_element %srcColor, %42
-        %44:u32 = call %ConvertToFp16FloatValue, %43
-        store_vector_element %srcColorBits, %41, %44
-        %45:bool = load %success
-        %46:bool = if %45 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
-            %47:u32 = load %i
-            %48:u32 = load_vector_element %srcColorBits, %47
+        %43:u32 = let %42
+        %44:u32 = load %i
+        %45:f32 = load_vector_element %srcColor, %44
+        %46:u32 = call %ConvertToFp16FloatValue, %45
+        store_vector_element %srcColorBits, %43, %46
+        %47:bool = load %success
+        %48:bool = if %47 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
             %49:u32 = load %i
-            %50:u32 = load_vector_element %dstColorBits, %49
-            %51:bool = eq %48, %50
-            exit_if %51  # if_3
+            %50:u32 = load_vector_element %srcColorBits, %49
+            %51:u32 = load %i
+            %52:u32 = load_vector_element %dstColorBits, %51
+            %53:bool = eq %50, %52
+            exit_if %53  # if_3
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_if false  # if_3
           }
         }
-        store %success, %46
-        continue %b7
+        store %success, %48
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %52:u32 = load %i
-        %53:u32 = add %52, 1u
-        store %i, %53
-        next_iteration %b6
+      $B7: {  # continuing
+        %54:u32 = load %i
+        %55:u32 = add %54, 1u
+        store %i, %55
+        next_iteration  # -> $B6
       }
     }
-    %54:u32 = access %GlobalInvocationID, 1u
-    %55:u32 = load_vector_element %size, 0u
-    %56:u32 = construct %55
-    %57:u32 = mul %54, %56
-    %58:u32 = access %GlobalInvocationID, 0u
-    %59:u32 = add %57, %58
-    %outputIndex:ptr<function, u32, read_write> = var, %59
-    %61:bool = load %success
-    if %61 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %62:u32 = load %outputIndex
-        %63:ptr<storage, u32, read_write> = access %output, 0u, %62
-        store %63, 1u
-        exit_if  # if_4
-      }
-      %b13 = block {  # false
+    %56:u32 = access %GlobalInvocationID, 1u
+    %57:u32 = load_vector_element %size, 0u
+    %58:u32 = construct %57
+    %59:u32 = mul %56, %58
+    %60:u32 = access %GlobalInvocationID, 0u
+    %61:u32 = add %59, %60
+    %outputIndex:ptr<function, u32, read_write> = var, %61
+    %63:bool = load %success
+    if %63 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
         %64:u32 = load %outputIndex
         %65:ptr<storage, u32, read_write> = access %output, 0u, %64
-        store %65, 0u
+        store %65, 1u
+        exit_if  # if_4
+      }
+      $B13: {  # false
+        %66:u32 = load %outputIndex
+        %67:ptr<storage, u32, read_write> = access %output, 0u, %66
+        store %67, 0u
         exit_if  # if_4
       }
     }
     ret
   }
 }
+%tint_v4f32_to_v4u32 = func(%value:vec4<f32>):vec4<u32> {
+  $B14: {
+    %69:vec4<u32> = convert %value
+    %70:vec4<bool> = gte %value, vec4<f32>(0.0f)
+    %71:vec4<u32> = select vec4<u32>(0u), %69, %70
+    %72:vec4<bool> = lte %value, vec4<f32>(4294967040.0f)
+    %73:vec4<u32> = select vec4<u32>(4294967295u), %71, %72
+    ret %73
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/tint/744.wgsl.expected.ir.msl b/test/tint/bug/tint/744.wgsl.expected.ir.msl
index 2f4398f..5989a20 100644
--- a/test/tint/bug/tint/744.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/744.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Matrix = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Matrix = struct @align(4) {
   numbers:array<u32> @offset(0)
 }
 
@@ -10,71 +10,77 @@
   outShape:vec2<u32> @offset(16)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %firstMatrix:ptr<storage, Matrix, read> = var @binding_point(0, 0)
   %secondMatrix:ptr<storage, Matrix, read> = var @binding_point(0, 1)
   %resultMatrix:ptr<storage, Matrix, read_write> = var @binding_point(0, 2)
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 3)
 }
 
-%tint_symbol = @compute @workgroup_size(2, 2, 1) func(%global_id:vec3<u32> [@global_invocation_id]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(2, 2, 1) func(%global_id:vec3<u32> [@global_invocation_id]):void {
+  $B2: {
     %7:u32 = access %global_id, 1u
     %8:u32 = access %global_id, 0u
-    %resultCell:vec2<u32> = construct %7, %8
-    %10:ptr<uniform, vec2<u32>, read> = access %uniforms, 0u
-    %dimInner:u32 = load_vector_element %10, 1u
-    %12:ptr<uniform, vec2<u32>, read> = access %uniforms, 2u
-    %dimOutter:u32 = load_vector_element %12, 1u
+    %9:vec2<u32> = construct %7, %8
+    %resultCell:vec2<u32> = let %9
+    %11:ptr<uniform, vec2<u32>, read> = access %uniforms, 0u
+    %12:u32 = load_vector_element %11, 1u
+    %dimInner:u32 = let %12
+    %14:ptr<uniform, vec2<u32>, read> = access %uniforms, 2u
+    %15:u32 = load_vector_element %14, 1u
+    %dimOutter:u32 = let %15
     %result:ptr<function, u32, read_write> = var, 0u
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %i:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
-        %16:u32 = load %i
-        %17:bool = lt %16, %dimInner
-        if %17 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+      $B4: {  # body
+        %19:u32 = load %i
+        %20:bool = lt %19, %dimInner
+        if %20 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %18:u32 = load %i
-        %19:u32 = access %resultCell, 0u
-        %20:u32 = mul %19, %dimInner
-        %a:u32 = add %18, %20
-        %22:u32 = access %resultCell, 1u
-        %23:u32 = load %i
-        %24:u32 = mul %23, %dimOutter
-        %b:u32 = add %22, %24
-        %26:u32 = load %result
-        %27:ptr<storage, u32, read> = access %firstMatrix, 0u, %a
-        %28:u32 = load %27
-        %29:ptr<storage, u32, read> = access %secondMatrix, 0u, %b
-        %30:u32 = load %29
-        %31:u32 = mul %28, %30
-        %32:u32 = add %26, %31
-        store %result, %32
-        continue %b5
+        %21:u32 = load %i
+        %22:u32 = access %resultCell, 0u
+        %23:u32 = mul %22, %dimInner
+        %24:u32 = add %21, %23
+        %a:u32 = let %24
+        %26:u32 = access %resultCell, 1u
+        %27:u32 = load %i
+        %28:u32 = mul %27, %dimOutter
+        %29:u32 = add %26, %28
+        %b:u32 = let %29
+        %31:u32 = load %result
+        %32:ptr<storage, u32, read> = access %firstMatrix, 0u, %a
+        %33:u32 = load %32
+        %34:ptr<storage, u32, read> = access %secondMatrix, 0u, %b
+        %35:u32 = load %34
+        %36:u32 = mul %33, %35
+        %37:u32 = add %31, %36
+        store %result, %37
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %33:u32 = load %i
-        %34:u32 = add %33, 1u
-        store %i, %34
-        next_iteration %b4
+      $B5: {  # continuing
+        %38:u32 = load %i
+        %39:u32 = add %38, 1u
+        store %i, %39
+        next_iteration  # -> $B4
       }
     }
-    %35:u32 = access %resultCell, 1u
-    %36:u32 = access %resultCell, 0u
-    %37:u32 = mul %36, %dimOutter
-    %index:u32 = add %35, %37
-    %39:ptr<storage, u32, read_write> = access %resultMatrix, 0u, %index
-    %40:u32 = load %result
-    store %39, %40
+    %40:u32 = access %resultCell, 1u
+    %41:u32 = access %resultCell, 0u
+    %42:u32 = mul %41, %dimOutter
+    %43:u32 = add %40, %42
+    %index:u32 = let %43
+    %45:ptr<storage, u32, read_write> = access %resultMatrix, 0u, %index
+    %46:u32 = load %result
+    store %45, %46
     ret
   }
 }
diff --git a/test/tint/bug/tint/749.spvasm.expected.ir.msl b/test/tint/bug/tint/749.spvasm.expected.ir.msl
index 87b3373..4dc6699 100644
--- a/test/tint/bug/tint/749.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/749.spvasm.expected.ir.msl
@@ -1,1497 +1,7 @@
 SKIP: FAILED
 
 
-struct QuicksortObject {
-  numbers : array<i32, 10u>,
-}
 
-struct buf0 {
-  /* @offset(0) */
-  resolution : vec2f,
-}
+error: line:256: ID '172' decorated with NoContraction multiple times is not allowed.
+  %172 = OpIMul %int %168 %171
 
-var<private> obj : QuicksortObject;
-
-var<private> gl_FragCoord : vec4f;
-
-@group(0) @binding(0) var<uniform> x_188 : buf0;
-
-var<private> x_GLF_color : vec4f;
-
-const x_199 = vec3f(1.0f, 2.0f, 3.0f);
-
-fn swap_i1_i1_(i : ptr<function, i32>, j : ptr<function, i32>) {
-  var temp : i32;
-  let x_932 = temp;
-  temp = 0i;
-  temp = x_932;
-  let x_523 = x_199.zyz;
-  let x_933 = *(i);
-  *(i) = 0i;
-  *(i) = x_933;
-  let x_28 = *(i);
-  let x_934 = *(j);
-  *(j) = 0i;
-  *(j) = x_934;
-  let x_524 = x_523.yxy;
-  let x_935 = temp;
-  temp = 0i;
-  temp = x_935;
-  let x_30 = &(obj.numbers[x_28]);
-  let x_936 = *(x_30);
-  *(x_30) = 0i;
-  *(x_30) = x_936;
-  let x_31 = *(x_30);
-  let x_937 = temp;
-  temp = 0i;
-  temp = x_937;
-  temp = x_31;
-  let x_938 = *(j);
-  *(j) = 0i;
-  *(j) = x_938;
-  let x_525 = vec3f(x_523.z, x_199.x, x_523.y);
-  let x_939 = *(i);
-  *(i) = 0i;
-  *(i) = x_939;
-  let x_32 = *(i);
-  let x_940 = *(x_30);
-  *(x_30) = 0i;
-  *(x_30) = x_940;
-  let x_33 = *(j);
-  let x_941 = *(i);
-  *(i) = 0i;
-  *(i) = x_941;
-  let x_526 = x_525.xzz;
-  let x_942 = *(x_30);
-  *(x_30) = 0i;
-  *(x_30) = x_942;
-  let x_34 = &(obj.numbers[x_33]);
-  let x_35 = *(x_34);
-  let x_943 = obj;
-  obj = QuicksortObject();
-  obj = x_943;
-  let x_527 = x_526.xx;
-  let x_36 = &(obj.numbers[x_32]);
-  let x_528 = x_524.xzx;
-  *(x_36) = x_35;
-  let x_944 = obj;
-  obj = QuicksortObject();
-  obj = x_944;
-  let x_529 = x_526.yzx;
-  let x_945 = *(i);
-  *(i) = 0i;
-  *(i) = x_945;
-  let x_37 = *(j);
-  let x_946 = temp;
-  temp = 0i;
-  temp = x_946;
-  let x_530 = x_529.zy;
-  let x_947 = *(x_34);
-  *(x_34) = 0i;
-  *(x_34) = x_947;
-  let x_38 = temp;
-  let x_948 = *(j);
-  *(j) = 0i;
-  *(j) = x_948;
-  let x_531 = vec3f(x_527.x, x_526.yx);
-  let x_949 = *(x_36);
-  *(x_36) = 0i;
-  *(x_36) = x_949;
-  let x_950 = obj;
-  obj = QuicksortObject();
-  obj = x_950;
-  let x_532 = x_528.xyx;
-  let x_951 = *(x_34);
-  *(x_34) = 0i;
-  *(x_34) = x_951;
-  obj.numbers[x_37] = x_38;
-  return;
-}
-
-fn performPartition_i1_i1_(l : ptr<function, i32>, h : ptr<function, i32>) -> i32 {
-  var param_3 : i32;
-  var i_1 : i32;
-  var j_1 : i32;
-  var param_2 : i32;
-  var param_1 : i32;
-  var param : i32;
-  var pivot : i32;
-  var x_537 : vec2f;
-  var x_538 : vec3f;
-  let x_952 = *(h);
-  *(h) = 0i;
-  *(h) = x_952;
-  let x_41 = *(h);
-  let x_953 = *(l);
-  *(l) = 0i;
-  *(l) = x_953;
-  let x_42 = &(obj.numbers[x_41]);
-  let x_954 = *(x_42);
-  *(x_42) = 0i;
-  *(x_42) = x_954;
-  let x_43 = *(x_42);
-  let x_955 = param_3;
-  param_3 = 0i;
-  param_3 = x_955;
-  let x_534 = x_199.zxz;
-  let x_956 = param_1;
-  param_1 = 0i;
-  param_1 = x_956;
-  pivot = x_43;
-  let x_45 = *(l);
-  let x_957 = *(h);
-  *(h) = 0i;
-  *(h) = x_957;
-  let x_958 = j_1;
-  j_1 = 0i;
-  j_1 = x_958;
-  let x_535 = x_534.yzy;
-  let x_959 = *(l);
-  *(l) = 0i;
-  *(l) = x_959;
-  i_1 = (x_45 - bitcast<i32>(1u));
-  let x_49 = *(l);
-  let x_536 = vec3f(x_534.xz, x_535.x);
-  j_1 = 10i;
-  let x_960 = obj;
-  obj = QuicksortObject();
-  obj = x_960;
-  loop {
-    var x_61 : ptr<private, i32>;
-    var x_539 : vec3f;
-    var x_541 : vec3f;
-    let x_961 = pivot;
-    pivot = 0i;
-    pivot = x_961;
-    let x_962 = param_1;
-    param_1 = 0i;
-    param_1 = x_962;
-    let x_55 = j_1;
-    let x_963 = pivot;
-    pivot = 0i;
-    pivot = x_963;
-    x_537 = x_199.yz;
-    let x_964 = obj;
-    obj = QuicksortObject();
-    obj = x_964;
-    let x_56 = *(h);
-    let x_965 = *(h);
-    *(h) = 0i;
-    *(h) = x_965;
-    let x_966 = param;
-    param = 0i;
-    param = x_966;
-    let x_967 = j_1;
-    j_1 = 0i;
-    j_1 = x_967;
-    x_538 = vec3f(x_534.x, x_537.y, x_534.z);
-    let x_968 = param;
-    param = 0i;
-    param = x_968;
-    if ((x_55 <= (x_56 - bitcast<i32>(1u)))) {
-    } else {
-      break;
-    }
-    let x_60 = j_1;
-    let x_969 = *(x_42);
-    *(x_42) = 0i;
-    *(x_42) = x_969;
-    x_61 = obj.numbers[x_60];
-    let x_970 = *(h);
-    *(h) = 0i;
-    *(h) = x_970;
-    x_539 = vec3f(x_537.x, x_535.z, x_537.x);
-    let x_971 = param_1;
-    param_1 = 0i;
-    param_1 = x_971;
-    let x_62 = x_61;
-    let x_972 = obj;
-    obj = QuicksortObject();
-    obj = x_972;
-    let x_63 = pivot;
-    let x_540 = vec2f(x_199.y, x_534.z);
-    let x_973 = i_1;
-    i_1 = 0i;
-    i_1 = x_973;
-    let x_974 = *(l);
-    *(l) = 0i;
-    *(l) = x_974;
-    x_541 = x_534.yxy;
-    let x_975 = pivot;
-    pivot = 0i;
-    pivot = x_975;
-    if ((x_62 <= x_63)) {
-      let x_542 = x_541.zxx;
-      let x_976 = param_3;
-      param_3 = 0i;
-      param_3 = x_976;
-      let x_67 = i_1;
-      let x_977 = pivot;
-      pivot = 0i;
-      pivot = x_977;
-      let x_543 = vec2f(x_539.x, x_541.y);
-      let x_978 = i_1;
-      i_1 = 0i;
-      i_1 = x_978;
-      let x_979 = param;
-      param = 0i;
-      param = x_979;
-      i_1 = (x_67 + bitcast<i32>(1u));
-      let x_980 = *(l);
-      *(l) = 0i;
-      *(l) = x_980;
-      let x_544 = vec3f(x_199.zy, x_540.x);
-      let x_70 = i_1;
-      let x_545 = vec2f(x_537.y, x_538.x);
-      let x_981 = param;
-      param = 0i;
-      param = x_981;
-      param = x_70;
-      let x_982 = param;
-      param = 0i;
-      param = x_982;
-      let x_546 = x_545.xx;
-      let x_983 = i_1;
-      i_1 = 0i;
-      i_1 = x_983;
-      let x_72 = j_1;
-      param_1 = x_72;
-      let x_984 = param_3;
-      param_3 = 0i;
-      param_3 = x_984;
-      swap_i1_i1_(&(param), &(param_1));
-      let x_985 = param_1;
-      param_1 = 0i;
-      param_1 = x_985;
-    }
-    let x_986 = obj;
-    obj = QuicksortObject();
-    obj = x_986;
-
-    continuing {
-      let x_987 = *(h);
-      *(h) = 0i;
-      *(h) = x_987;
-      let x_74 = j_1;
-      let x_988 = *(h);
-      *(h) = 0i;
-      *(h) = x_988;
-      let x_547 = vec3f(x_539.x, x_541.zz);
-      let x_989 = x_61;
-      x_61 = 0i;
-      x_61 = x_989;
-      let x_990 = param;
-      param = 0i;
-      param = x_990;
-      j_1 = (1i + x_74);
-      let x_991 = param_1;
-      param_1 = 0i;
-      param_1 = x_991;
-      let x_548 = x_541.yzx;
-      let x_992 = x_61;
-      x_61 = 0i;
-      x_61 = x_992;
-    }
-  }
-  let x_76 = i_1;
-  let x_993 = *(x_42);
-  *(x_42) = 0i;
-  *(x_42) = x_993;
-  let x_549 = x_534.xy;
-  let x_994 = obj;
-  obj = QuicksortObject();
-  obj = x_994;
-  let x_995 = *(h);
-  *(h) = 0i;
-  *(h) = x_995;
-  i_1 = (1i + x_76);
-  let x_996 = param_1;
-  param_1 = 0i;
-  param_1 = x_996;
-  let x_79 = i_1;
-  let x_997 = j_1;
-  j_1 = 0i;
-  j_1 = x_997;
-  let x_550 = x_534.xx;
-  let x_998 = param_1;
-  param_1 = 0i;
-  param_1 = x_998;
-  param_2 = x_79;
-  let x_551 = vec2f(x_534.y, x_536.x);
-  let x_999 = pivot;
-  pivot = 0i;
-  pivot = x_999;
-  let x_81 = *(h);
-  let x_552 = vec2f(x_550.x, x_549.y);
-  let x_1000 = *(h);
-  *(h) = 0i;
-  *(h) = x_1000;
-  param_3 = x_81;
-  let x_1001 = i_1;
-  i_1 = 0i;
-  i_1 = x_1001;
-  let x_553 = vec2f(x_549.y, x_552.x);
-  let x_1002 = *(h);
-  *(h) = 0i;
-  *(h) = x_1002;
-  swap_i1_i1_(&(param_2), &(param_3));
-  let x_1003 = *(l);
-  *(l) = 0i;
-  *(l) = x_1003;
-  let x_554 = vec2f(x_536.z, x_199.y);
-  let x_1004 = param_1;
-  param_1 = 0i;
-  param_1 = x_1004;
-  let x_83 = i_1;
-  let x_1005 = param;
-  param = 0i;
-  param = x_1005;
-  let x_555 = x_534.yx;
-  let x_1006 = j_1;
-  j_1 = 0i;
-  j_1 = x_1006;
-  return x_83;
-}
-
-fn quicksort_() {
-  var param_4 : i32;
-  var h_1 : i32;
-  var p : i32;
-  var l_1 : i32;
-  var top : i32;
-  var stack : array<i32, 10u>;
-  var param_5 : i32;
-  l_1 = 0i;
-  let x_1007 = param_5;
-  param_5 = 0i;
-  param_5 = x_1007;
-  h_1 = 9i;
-  let x_1008 = stack;
-  stack = array<i32, 10u>();
-  stack = x_1008;
-  let x_556 = x_199.yy;
-  let x_1009 = param_5;
-  param_5 = 0i;
-  param_5 = x_1009;
-  top = -1i;
-  let x_1010 = p;
-  p = 0i;
-  p = x_1010;
-  let x_93 = top;
-  let x_557 = x_199.xx;
-  let x_1011 = p;
-  p = 0i;
-  p = x_1011;
-  let x_94 = (x_93 + bitcast<i32>(1u));
-  let x_1012 = top;
-  top = 0i;
-  top = x_1012;
-  let x_558 = vec2f(x_556.y, x_557.y);
-  let x_1013 = param_4;
-  param_4 = 0i;
-  param_4 = x_1013;
-  top = x_94;
-  let x_1014 = h_1;
-  h_1 = 0i;
-  h_1 = x_1014;
-  let x_559 = x_557.yxx;
-  let x_1015 = param_4;
-  param_4 = 0i;
-  param_4 = x_1015;
-  let x_95 = l_1;
-  let x_1016 = obj;
-  obj = QuicksortObject();
-  obj = x_1016;
-  let x_560 = vec3f(x_559.yx, x_557.x);
-  let x_96 = &(stack[x_94]);
-  let x_1017 = stack;
-  stack = array<i32, 10u>();
-  stack = x_1017;
-  let x_561 = x_556.yyy;
-  let x_1018 = l_1;
-  l_1 = 0i;
-  l_1 = 0i;
-  *(x_96) = x_95;
-  let x_1019 = param_5;
-  param_5 = 0i;
-  param_5 = x_1019;
-  let x_97 = top;
-  let x_1020 = param_4;
-  param_4 = 0i;
-  param_4 = x_1020;
-  let x_562 = vec3f(x_199.z, x_558.y, x_199.y);
-  let x_1021 = *(x_96);
-  *(x_96) = 0i;
-  *(x_96) = x_1021;
-  let x_98 = (x_97 + 1i);
-  let x_1022 = *(x_96);
-  *(x_96) = 0i;
-  *(x_96) = x_1022;
-  let x_563 = vec3f(x_559.xz, x_556.y);
-  top = x_98;
-  let x_1023 = param_4;
-  param_4 = 0i;
-  param_4 = x_1023;
-  let x_99 = h_1;
-  let x_1024 = param_4;
-  param_4 = 0i;
-  param_4 = x_1024;
-  let x_564 = vec3f(x_558.x, x_561.x, x_558.y);
-  let x_1025 = l_1;
-  l_1 = 0i;
-  l_1 = x_1025;
-  let x_100 = &(stack[x_98]);
-  let x_1026 = param_5;
-  param_5 = 0i;
-  param_5 = x_1026;
-  let x_565 = x_564.zz;
-  let x_1027 = p;
-  p = 0i;
-  p = x_1027;
-  *(x_100) = x_99;
-  loop {
-    let x_566 = x_563.xxx;
-    let x_1028 = h_1;
-    h_1 = 0i;
-    h_1 = x_1028;
-    let x_1029 = stack;
-    stack = array<i32, 10u>();
-    stack = x_1029;
-    let x_106 = top;
-    let x_1030 = stack;
-    stack = array<i32, 10u>();
-    stack = x_1030;
-    let x_567 = vec2f(x_558.x, x_564.z);
-    let x_1031 = param_4;
-    param_4 = 0i;
-    param_4 = x_1031;
-    if ((x_106 >= bitcast<i32>(0u))) {
-    } else {
-      break;
-    }
-    let x_1032 = obj;
-    obj = QuicksortObject();
-    obj = x_1032;
-    let x_568 = vec3f(x_559.yx, x_563.y);
-    let x_1033 = param_4;
-    param_4 = 0i;
-    param_4 = x_1033;
-    let x_108 = top;
-    let x_569 = vec3f(x_565.x, x_567.y, x_565.x);
-    let x_1034 = h_1;
-    h_1 = 0i;
-    h_1 = x_1034;
-    let x_570 = x_556.xx;
-    let x_1035 = p;
-    p = 0i;
-    p = x_1035;
-    top = (x_108 - bitcast<i32>(1u));
-    let x_1036 = p;
-    p = 0i;
-    p = x_1036;
-    let x_110 = &(stack[x_108]);
-    let x_1037 = *(x_96);
-    *(x_96) = 0i;
-    *(x_96) = x_1037;
-    let x_111 = *(x_110);
-    let x_1038 = stack;
-    stack = array<i32, 10u>();
-    stack = x_1038;
-    let x_571 = vec3f(x_559.yx, x_564.y);
-    let x_1039 = l_1;
-    l_1 = 0i;
-    l_1 = x_1039;
-    h_1 = x_111;
-    let x_1040 = stack;
-    stack = array<i32, 10u>();
-    stack = x_1040;
-    let x_572 = vec2f(x_562.y, x_561.y);
-    let x_1041 = p;
-    p = 0i;
-    p = x_1041;
-    let x_112 = top;
-    let x_1042 = param_4;
-    param_4 = 0i;
-    param_4 = x_1042;
-    let x_1043 = *(x_100);
-    *(x_100) = 0i;
-    *(x_100) = x_1043;
-    let x_573 = x_199.yz;
-    top = (x_112 - 1i);
-    let x_1044 = param_5;
-    param_5 = 0i;
-    param_5 = x_1044;
-    let x_574 = vec3f(x_570.y, x_565.x, x_570.y);
-    let x_1045 = h_1;
-    h_1 = 0i;
-    h_1 = x_1045;
-    let x_114 = &(stack[x_112]);
-    let x_575 = x_564.yz;
-    let x_1046 = *(x_100);
-    *(x_100) = 0i;
-    *(x_100) = x_1046;
-    let x_115 = *(x_114);
-    let x_1047 = p;
-    p = 0i;
-    p = x_1047;
-    let x_576 = vec3f(x_573.yy, x_565.x);
-    let x_1048 = param_5;
-    param_5 = 0i;
-    param_5 = x_1048;
-    l_1 = x_115;
-    let x_1049 = top;
-    top = 0i;
-    top = x_1049;
-    let x_118 = l_1;
-    param_4 = x_118;
-    let x_1050 = *(x_110);
-    *(x_110) = 0i;
-    *(x_110) = x_1050;
-    let x_577 = x_569.yz;
-    let x_120 = h_1;
-    let x_578 = vec2f(x_558.x, x_199.y);
-    param_5 = x_120;
-    let x_1051 = *(x_100);
-    *(x_100) = 0i;
-    *(x_100) = x_1051;
-    let x_121 = performPartition_i1_i1_(&(param_4), &(param_5));
-    let x_579 = vec2f(x_567.x, x_568.x);
-    let x_1052 = param_5;
-    param_5 = 0i;
-    param_5 = x_1052;
-    p = x_121;
-    let x_1053 = param_4;
-    param_4 = 0i;
-    param_4 = x_1053;
-    let x_122 = p;
-    let x_1054 = h_1;
-    h_1 = 0i;
-    h_1 = x_1054;
-    let x_580 = x_568.yy;
-    let x_1055 = l_1;
-    l_1 = 0i;
-    l_1 = x_1055;
-    let x_1056 = h_1;
-    h_1 = 0i;
-    h_1 = x_1056;
-    let x_124 = l_1;
-    let x_1057 = *(x_110);
-    *(x_110) = 0i;
-    *(x_110) = x_1057;
-    let x_1058 = h_1;
-    h_1 = 0i;
-    h_1 = x_1058;
-    let x_582 = vec2f(x_567.y, x_573.x);
-    let x_1059 = *(x_100);
-    *(x_100) = 0i;
-    *(x_100) = x_1059;
-    if (((x_122 - bitcast<i32>(1u)) > x_124)) {
-      let x_1060 = param_4;
-      param_4 = 0i;
-      param_4 = x_1060;
-      let x_128 = top;
-      let x_583 = vec2f(x_571.y, x_556.y);
-      let x_1061 = *(x_100);
-      *(x_100) = 0i;
-      *(x_100) = x_1061;
-      let x_1062 = stack;
-      stack = array<i32, 10u>();
-      stack = x_1062;
-      let x_584 = x_569.zy;
-      let x_585 = vec3f(x_580.y, x_577.xx);
-      let x_130 = l_1;
-      let x_1063 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1063;
-      let x_586 = vec2f(x_564.x, x_585.x);
-      let x_1064 = param_5;
-      param_5 = 0i;
-      param_5 = x_1064;
-      let x_131 = &(stack[(1i + x_128)]);
-      let x_1065 = *(x_110);
-      *(x_110) = 0i;
-      *(x_110) = x_1065;
-      let x_587 = vec3f(x_566.yy, x_563.x);
-      let x_1066 = param_5;
-      param_5 = 0i;
-      param_5 = x_1066;
-      *(x_131) = x_130;
-      let x_132 = top;
-      let x_1067 = *(x_100);
-      *(x_100) = 0i;
-      *(x_100) = x_1067;
-      let x_588 = x_575.yx;
-      let x_1068 = *(x_131);
-      *(x_131) = 0i;
-      *(x_131) = x_1068;
-      let x_133 = bitcast<i32>((1u + bitcast<u32>(x_132)));
-      let x_1069 = *(x_100);
-      *(x_100) = 0i;
-      *(x_100) = x_1069;
-      let x_589 = vec3f(x_576.z, x_588.y, x_576.z);
-      let x_1070 = h_1;
-      h_1 = 0i;
-      h_1 = x_1070;
-      top = x_133;
-      let x_1071 = stack;
-      stack = array<i32, 10u>();
-      stack = x_1071;
-      let x_134 = p;
-      let x_590 = vec2f(x_576.x, x_573.y);
-      let x_1072 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1072;
-      let x_136 = &(stack[x_133]);
-      let x_1073 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1073;
-      *(x_136) = (x_134 - bitcast<i32>(1u));
-      let x_1074 = *(x_96);
-      *(x_96) = 0i;
-      *(x_96) = x_1074;
-      let x_591 = x_569.zy;
-      let x_1075 = *(x_136);
-      *(x_136) = 0i;
-      *(x_136) = x_1075;
-    }
-    let x_1076 = *(x_96);
-    *(x_96) = 0i;
-    *(x_96) = x_1076;
-    let x_592 = x_199.xy;
-    let x_1077 = obj;
-    obj = QuicksortObject();
-    obj = x_1077;
-    let x_137 = p;
-    let x_1078 = *(x_114);
-    *(x_114) = 0i;
-    *(x_114) = x_1078;
-    let x_593 = vec3f(x_571.z, x_556.xy);
-    let x_1079 = p;
-    p = 0i;
-    p = x_1079;
-    let x_594 = vec3f(x_563.zx, x_575.x);
-    let x_1080 = *(x_114);
-    *(x_114) = 0i;
-    *(x_114) = x_1080;
-    let x_139 = h_1;
-    let x_1081 = top;
-    top = 0i;
-    top = x_1081;
-    let x_595 = vec3f(x_560.z, x_568.x, x_560.x);
-    let x_1082 = *(x_100);
-    *(x_100) = 0i;
-    *(x_100) = x_1082;
-    let x_1083 = p;
-    p = 0i;
-    p = x_1083;
-    if ((bitcast<i32>((1u + bitcast<u32>(x_137))) < x_139)) {
-      let x_1084 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1084;
-      let x_596 = vec2f(x_592.y, x_582.x);
-      let x_1085 = l_1;
-      l_1 = 0i;
-      l_1 = x_1085;
-      let x_143 = top;
-      let x_1086 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1086;
-      let x_597 = vec3f(x_562.y, x_560.yy);
-      let x_144 = (x_143 + 1i);
-      let x_1087 = param_5;
-      param_5 = 0i;
-      param_5 = x_1087;
-      top = x_144;
-      let x_1088 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1088;
-      let x_145 = p;
-      let x_1089 = param_5;
-      param_5 = 0i;
-      param_5 = x_1089;
-      let x_599 = vec3f(x_560.zx, x_568.x);
-      let x_1090 = p;
-      p = 0i;
-      p = x_1090;
-      let x_600 = vec3f(x_556.x, x_580.xx);
-      let x_1091 = *(x_100);
-      *(x_100) = 0i;
-      *(x_100) = x_1091;
-      let x_147 = &(stack[x_144]);
-      let x_1092 = *(x_110);
-      *(x_110) = 0i;
-      *(x_110) = x_1092;
-      let x_601 = x_563.xy;
-      *(x_147) = bitcast<i32>((1u + bitcast<u32>(x_145)));
-      let x_1093 = stack;
-      stack = array<i32, 10u>();
-      stack = x_1093;
-      let x_148 = top;
-      let x_1094 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1094;
-      let x_602 = vec2f(x_565.y, x_599.y);
-      let x_1095 = stack;
-      stack = array<i32, 10u>();
-      stack = x_1095;
-      let x_149 = (x_148 + bitcast<i32>(1u));
-      let x_1096 = *(x_147);
-      *(x_147) = 0i;
-      *(x_147) = x_1096;
-      top = x_149;
-      let x_1097 = param_4;
-      param_4 = 0i;
-      param_4 = x_1097;
-      let x_150 = h_1;
-      let x_1098 = *(x_100);
-      *(x_100) = 0i;
-      *(x_100) = x_1098;
-      let x_1099 = *(x_96);
-      *(x_96) = 0i;
-      *(x_96) = x_1099;
-      stack[x_149] = x_150;
-      let x_1100 = *(x_114);
-      *(x_114) = 0i;
-      *(x_114) = x_1100;
-      let x_603 = vec3f(x_568.y, x_564.xx);
-      let x_1101 = l_1;
-      l_1 = 0i;
-      l_1 = x_1101;
-    }
-    let x_1102 = *(x_100);
-    *(x_100) = 0i;
-    *(x_100) = x_1102;
-
-    continuing {
-      let x_1103 = l_1;
-      l_1 = 0i;
-      l_1 = x_1103;
-      let x_604 = vec2f(x_563.z, x_564.x);
-      let x_1104 = obj;
-      obj = QuicksortObject();
-      obj = x_1104;
-    }
-  }
-  let x_1105 = h_1;
-  h_1 = 0i;
-  h_1 = x_1105;
-  return;
-}
-
-fn main_1() {
-  var color : vec3f;
-  var i_2 : i32;
-  var uv : vec2f;
-  let x_717 = uv;
-  uv = vec2f();
-  uv = x_717;
-  i_2 = 0i;
-  let x_721 = obj;
-  obj = QuicksortObject();
-  obj = x_721;
-  if (true) {
-    let x_722 = obj;
-    obj = QuicksortObject();
-    obj = x_722;
-    let x_431 = x_199.xx;
-    let x_158 = i_2;
-    let x_723 = uv;
-    uv = vec2f();
-    uv = x_723;
-    let x_725 = color;
-    color = vec3f();
-    color = x_725;
-    let x_432 = x_431.yy;
-    let x_726 = obj;
-    obj = QuicksortObject();
-    obj = x_726;
-  }
-  let x_756 = obj;
-  obj = QuicksortObject();
-  obj = x_756;
-  let x_446 = vec2f().xx;
-  let x_757 = i_2;
-  i_2 = 0i;
-  i_2 = x_757;
-  quicksort_();
-  let x_758 = obj;
-  obj = QuicksortObject();
-  obj = x_758;
-  let x_184 = gl_FragCoord;
-  let x_759 = uv;
-  uv = vec2f();
-  uv = x_759;
-  let x_447 = vec2f().yy;
-  let x_760 = uv;
-  uv = vec2f();
-  uv = x_760;
-  let x_185 = x_184.xy;
-  let x_448 = vec3f(x_185.y, x_446.yy);
-  let x_761 = obj;
-  obj = QuicksortObject();
-  obj = x_761;
-  let x_762 = uv;
-  uv = vec2f();
-  uv = x_762;
-  let x_191 = x_188.resolution;
-  let x_763 = obj;
-  obj = QuicksortObject();
-  obj = x_763;
-  let x_449 = vec3f(x_184.y, x_199.z, x_184.w);
-  let x_764 = color;
-  color = vec3f();
-  color = x_764;
-  let x_192 = (x_185 / x_191);
-  let x_765 = obj;
-  obj = QuicksortObject();
-  obj = x_765;
-  let x_450 = vec2f(x_447.x, x_185.y);
-  let x_766 = color;
-  color = vec3f();
-  let x_767 = color;
-  color = vec3f();
-  color = x_767;
-  color = x_766;
-  uv = x_192;
-  color = x_199;
-  let x_768 = color;
-  color = vec3f();
-  color = x_768;
-  let x_451 = vec3f(x_185.xy, x_446.y);
-  let x_769 = obj;
-  obj = QuicksortObject();
-  obj = x_769;
-  let x_200 = &(obj.numbers[0u]);
-  let x_770 = *(x_200);
-  *(x_200) = 0i;
-  *(x_200) = x_770;
-  let x_201 = *(x_200);
-  let x_771 = obj;
-  obj = QuicksortObject();
-  obj = x_771;
-  let x_772 = *(x_200);
-  *(x_200) = 0i;
-  *(x_200) = x_772;
-  let x_206 = color.x;
-  let x_773 = color.x;
-  color.x = 0.0f;
-  color.x = x_773;
-  let x_452 = x_199.zy;
-  let x_774 = i_2;
-  i_2 = 0i;
-  i_2 = x_774;
-  let x_775 = obj;
-  obj = QuicksortObject();
-  obj = x_775;
-  let x_453 = vec3f(x_451.x, x_450.xy);
-  color.x = (x_206 + f32(x_201));
-  let x_776 = uv;
-  uv = vec2f();
-  uv = x_776;
-  let x_777 = uv;
-  uv = vec2f();
-  uv = x_777;
-  let x_454 = x_184.yy;
-  let x_210 = uv.x;
-  let x_455 = x_192.yx;
-  let x_778 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_778;
-  let x_779 = obj;
-  obj = QuicksortObject();
-  obj = x_779;
-  if ((x_210 > 0.25f)) {
-    let x_780 = i_2;
-    i_2 = 0i;
-    i_2 = x_780;
-    let x_781 = *(x_200);
-    *(x_200) = 0i;
-    *(x_200) = x_781;
-    let x_456 = vec3f(vec2f().y, x_448.yy);
-    let x_782 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_782;
-    let x_216 = obj.numbers[1i];
-    let x_783 = obj;
-    obj = QuicksortObject();
-    obj = x_783;
-    let x_457 = x_454.xx;
-    let x_784 = uv;
-    uv = vec2f();
-    uv = x_784;
-    let x_785 = obj;
-    obj = QuicksortObject();
-    obj = x_785;
-    let x_458 = vec2f(x_199.z, vec2f().y);
-    let x_786 = i_2;
-    i_2 = 0i;
-    i_2 = x_786;
-    let x_219 = color[0i];
-    let x_787 = color[0i];
-    color[0i] = 0.0f;
-    color[0i] = x_787;
-    let x_788 = color;
-    color = vec3f();
-    color = x_788;
-    let x_789 = color;
-    color = vec3f();
-    color = x_789;
-    let x_459 = vec3f(x_454.yy, x_447.y);
-    let x_790 = color[0i];
-    color[0i] = 0.0f;
-    color[0i] = x_790;
-    color.x = (f32(x_216) + x_219);
-    let x_791 = *(x_200);
-    *(x_200) = 0i;
-    *(x_200) = x_791;
-  }
-  let x_792 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_792;
-  let x_793 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_793;
-  let x_223 = uv.x;
-  let x_794 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_794;
-  let x_460 = x_453.zyy;
-  let x_795 = uv;
-  uv = vec2f();
-  uv = x_795;
-  let x_796 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_796;
-  let x_461 = vec2f().yy;
-  let x_797 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_797;
-  if ((x_223 > 0.5f)) {
-    let x_798 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_798;
-    let x_462 = x_446.xx;
-    let x_799 = color.x;
-    color.x = 0.0f;
-    color.x = x_799;
-    let x_229 = &(obj.numbers[2u]);
-    let x_800 = color.x;
-    color.x = 0.0f;
-    color.x = x_800;
-    let x_463 = vec3f(x_453.xz, x_461.y);
-    let x_801 = color.x;
-    color.x = 0.0f;
-    color.x = x_801;
-    let x_230 = *(x_229);
-    let x_802 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_802;
-    let x_803 = color.x;
-    color.x = 0.0f;
-    color.x = x_803;
-    let x_804 = *(x_229);
-    *(x_229) = 0i;
-    *(x_229) = x_804;
-    let x_464 = vec2f(x_450.y, x_191.x);
-    let x_805 = color.y;
-    color.y = 0.0f;
-    color.y = x_805;
-    let x_234 = color.y;
-    let x_806 = *(x_229);
-    *(x_229) = 0i;
-    *(x_229) = x_806;
-    let x_465 = vec2f(x_463.x, x_185.x);
-    let x_807 = color.x;
-    color.x = 0.0f;
-    color.x = x_807;
-    let x_808 = i_2;
-    i_2 = 0i;
-    i_2 = x_808;
-    let x_466 = vec2f(x_455.y, vec2f().y);
-    let x_809 = i_2;
-    i_2 = 0i;
-    i_2 = x_809;
-    color.y = (f32(x_230) + x_234);
-    let x_810 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_810;
-  }
-  let x_811 = i_2;
-  i_2 = 0i;
-  i_2 = x_811;
-  let x_467 = x_191.xx;
-  let x_812 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_812;
-  let x_238 = uv[0i];
-  let x_813 = color;
-  color = vec3f();
-  color = x_813;
-  let x_814 = color.x;
-  color.x = 0.0f;
-  color.x = x_814;
-  if ((x_238 > 0.75f)) {
-    let x_815 = color.x;
-    color.x = 0.0f;
-    color.x = x_815;
-    let x_245 = obj.numbers[3i];
-    let x_816 = color.x;
-    color.x = 0.0f;
-    color.x = x_816;
-    let x_817 = obj;
-    obj = QuicksortObject();
-    obj = x_817;
-    let x_468 = x_467.xxx;
-    let x_818 = uv[0i];
-    uv[0i] = 0.0f;
-    uv[0i] = x_818;
-    let x_819 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_819;
-    let x_249 = color.z;
-    let x_820 = color;
-    color = vec3f();
-    color = x_820;
-    let x_469 = vec3f(x_467.x, x_191.y, x_467.y);
-    let x_821 = color.z;
-    color.z = 0.0f;
-    color.z = x_821;
-    let x_822 = *(x_200);
-    *(x_200) = 0i;
-    *(x_200) = x_822;
-    let x_470 = vec2f().xy;
-    let x_823 = color.z;
-    color.z = 0.0f;
-    color.z = x_823;
-    color.z = (x_249 + f32(x_245));
-    let x_824 = uv;
-    uv = vec2f();
-    uv = x_824;
-    let x_471 = x_470.yy;
-  }
-  let x_825 = uv[0i];
-  uv[0i] = 0.0f;
-  uv[0i] = x_825;
-  let x_472 = x_454.xyy;
-  let x_253 = &(obj.numbers[4i]);
-  let x_254 = *(x_253);
-  let x_826 = uv[0i];
-  uv[0i] = 0.0f;
-  uv[0i] = x_826;
-  let x_827 = color;
-  color = vec3f();
-  color = x_827;
-  let x_473 = vec3f(x_446.y, x_453.xx);
-  let x_828 = *(x_253);
-  *(x_253) = 0i;
-  *(x_253) = x_828;
-  let x_474 = vec2f(x_191.x, x_184.z);
-  let x_829 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_829;
-  let x_257 = color.y;
-  let x_830 = color.y;
-  color.y = 0.0f;
-  color.y = x_830;
-  let x_475 = vec2f(x_467.x, x_450.x);
-  let x_831 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_831;
-  let x_832 = color.x;
-  color.x = 0.0f;
-  color.x = x_832;
-  let x_476 = vec2f(x_451.z, x_460.y);
-  color.y = (x_257 + f32(x_254));
-  let x_477 = vec3f(vec2f().x, x_472.x, vec2f().y);
-  let x_833 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_833;
-  let x_834 = color.x;
-  color.x = 0.0f;
-  color.x = x_834;
-  let x_478 = x_472.xy;
-  let x_835 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_835;
-  let x_261 = uv.y;
-  let x_836 = i_2;
-  i_2 = 0i;
-  i_2 = x_836;
-  let x_479 = vec3f(vec2f().y, x_454.y, vec2f().x);
-  let x_837 = *(x_200);
-  *(x_200) = 0i;
-  *(x_200) = x_837;
-  let x_838 = color.y;
-  color.y = 0.0f;
-  color.y = x_838;
-  let x_480 = vec3f(x_446.xx, vec2f().y);
-  let x_839 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_839;
-  if ((x_261 > 0.25f)) {
-    let x_481 = vec2f(x_447.x, x_480.z);
-    let x_840 = color;
-    color = vec3f();
-    color = x_840;
-    let x_267 = obj.numbers[5u];
-    let x_841 = color.x;
-    color.x = 0.0f;
-    color.x = x_841;
-    let x_842 = i_2;
-    i_2 = 0i;
-    i_2 = x_842;
-    let x_843 = i_2;
-    i_2 = 0i;
-    i_2 = x_843;
-    let x_270 = color.x;
-    let x_844 = uv[0i];
-    uv[0i] = 0.0f;
-    uv[0i] = x_844;
-    let x_482 = vec3f(x_455.x, x_475.y, x_455.y);
-    let x_845 = obj;
-    obj = QuicksortObject();
-    obj = x_845;
-    let x_846 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_846;
-    let x_847 = i_2;
-    i_2 = 0i;
-    i_2 = x_847;
-    let x_483 = vec3f(x_184.ww, x_192.x);
-    let x_848 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_848;
-    color.x = (f32(x_267) + x_270);
-    let x_484 = vec3f(x_454.y, x_450.x, x_454.y);
-    let x_849 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_849;
-  }
-  let x_850 = color.x;
-  color.x = 0.0f;
-  color.x = x_850;
-  let x_485 = vec3f(x_467.x, x_450.yx);
-  let x_851 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_851;
-  let x_852 = *(x_253);
-  *(x_253) = 0i;
-  *(x_253) = x_852;
-  let x_274 = uv.y;
-  let x_853 = *(x_200);
-  *(x_200) = 0i;
-  *(x_200) = x_853;
-  if ((x_274 > 0.5f)) {
-    let x_854 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_854;
-    let x_486 = vec2f(x_480.y, x_455.y);
-    let x_279 = &(obj.numbers[6u]);
-    let x_855 = color.y;
-    color.y = 0.0f;
-    color.y = x_855;
-    let x_487 = x_449.zy;
-    let x_856 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_856;
-    let x_280 = *(x_279);
-    let x_857 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_857;
-    let x_858 = i_2;
-    i_2 = 0i;
-    i_2 = x_858;
-    let x_859 = *(x_253);
-    *(x_253) = 0i;
-    *(x_253) = x_859;
-    let x_488 = x_473.zy;
-    let x_283 = color.y;
-    let x_860 = uv;
-    uv = vec2f();
-    uv = x_860;
-    let x_861 = color.x;
-    color.x = 0.0f;
-    color.x = x_861;
-    let x_489 = x_475.yx;
-    let x_862 = *(x_279);
-    *(x_279) = 0i;
-    *(x_279) = x_862;
-    let x_863 = *(x_279);
-    *(x_279) = 0i;
-    *(x_279) = x_863;
-    let x_490 = x_480.zz;
-    let x_864 = obj;
-    obj = QuicksortObject();
-    obj = x_864;
-    color.y = (f32(x_280) + x_283);
-    let x_865 = color.x;
-    color.x = 0.0f;
-    color.x = x_865;
-    let x_491 = vec2f(x_199.y, x_454.x);
-    let x_866 = color.y;
-    color.y = 0.0f;
-    color.y = x_866;
-  }
-  let x_492 = x_455.yy;
-  let x_867 = color.x;
-  color.x = 0.0f;
-  color.x = x_867;
-  let x_287 = uv.y;
-  let x_868 = obj;
-  obj = QuicksortObject();
-  obj = x_868;
-  let x_493 = x_475.xy;
-  let x_869 = uv[0i];
-  uv[0i] = 0.0f;
-  uv[0i] = x_869;
-  let x_870 = color.y;
-  color.y = 0.0f;
-  color.y = x_870;
-  let x_494 = x_191.xyy;
-  let x_871 = *(x_253);
-  *(x_253) = 0i;
-  *(x_253) = x_871;
-  if ((x_287 > 0.75f)) {
-    let x_872 = color;
-    color = vec3f();
-    color = x_872;
-    let x_873 = color.x;
-    color.x = 0.0f;
-    color.x = x_873;
-    let x_495 = x_192.yxy;
-    let x_874 = color;
-    color = vec3f();
-    color = x_874;
-    let x_293 = obj.numbers[7i];
-    let x_875 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_875;
-    let x_496 = vec3f(x_475.x, x_467.yx);
-    let x_876 = color.y;
-    color.y = 0.0f;
-    color.y = x_876;
-    let x_497 = vec2f(x_477.x, x_461.y);
-    let x_877 = *(x_200);
-    *(x_200) = 0i;
-    *(x_200) = x_877;
-    let x_878 = color.y;
-    color.y = 0.0f;
-    color.y = x_878;
-    let x_498 = x_478.xyx;
-    let x_879 = color.x;
-    color.x = 0.0f;
-    color.x = x_879;
-    let x_296 = color.z;
-    let x_880 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_880;
-    let x_499 = x_184.xy;
-    let x_881 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_881;
-    let x_882 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_882;
-    let x_883 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_883;
-    let x_500 = vec3f(x_499.yy, x_494.z);
-    let x_884 = color.z;
-    color.z = 0.0f;
-    color.z = x_884;
-    color.z = (f32(x_293) + x_296);
-    let x_885 = color.y;
-    color.y = 0.0f;
-    color.y = x_885;
-    let x_501 = x_453.xz;
-    let x_886 = color.x;
-    color.x = 0.0f;
-    color.x = x_886;
-  }
-  let x_887 = i_2;
-  i_2 = 0i;
-  i_2 = x_887;
-  let x_502 = vec2f(x_451.y, x_192.y);
-  let x_888 = uv;
-  uv = vec2f();
-  uv = x_888;
-  let x_300 = &(obj.numbers[8i]);
-  let x_301 = *(x_300);
-  let x_889 = i_2;
-  i_2 = 0i;
-  i_2 = x_889;
-  let x_503 = vec2f(x_185.x, x_451.z);
-  let x_890 = *(x_300);
-  *(x_300) = 0i;
-  *(x_300) = x_890;
-  let x_891 = color.y;
-  color.y = 0.0f;
-  color.y = x_891;
-  let x_504 = vec2f(x_453.y, vec2f().x);
-  let x_892 = color.x;
-  color.x = 0.0f;
-  color.x = x_892;
-  let x_505 = x_504.xyx;
-  let x_893 = color.z;
-  color.z = 0.0f;
-  color.z = x_893;
-  let x_304 = color.z;
-  let x_894 = color.x;
-  color.x = 0.0f;
-  color.x = x_894;
-  let x_506 = vec2f(x_493.x, x_492.x);
-  let x_895 = *(x_253);
-  *(x_253) = 0i;
-  *(x_253) = x_895;
-  let x_896 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_896;
-  let x_507 = vec2f(x_461.x, x_447.x);
-  let x_897 = color.y;
-  color.y = 0.0f;
-  color.y = x_897;
-  color.z = (x_304 + f32(x_301));
-  let x_898 = uv;
-  uv = vec2f();
-  uv = x_898;
-  let x_899 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_899;
-  let x_508 = vec3f(x_461.yx, x_506.y);
-  let x_900 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_900;
-  let x_308 = uv.x;
-  let x_901 = color.y;
-  color.y = 0.0f;
-  color.y = x_901;
-  let x_509 = vec3f(x_503.yx, x_448.z);
-  let x_902 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_902;
-  let x_310 = uv.y;
-  let x_903 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_903;
-  let x_904 = color.z;
-  color.z = 0.0f;
-  color.z = x_904;
-  let x_510 = vec3f(x_199.y, x_485.yz);
-  let x_905 = color.z;
-  color.z = 0.0f;
-  color.z = x_905;
-  let x_906 = i_2;
-  i_2 = 0i;
-  i_2 = x_906;
-  let x_511 = x_485.zy;
-  let x_907 = color;
-  color = vec3f();
-  color = x_907;
-  let x_908 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_908;
-  let x_512 = x_455.yyy;
-  let x_909 = *(x_253);
-  *(x_253) = 0i;
-  *(x_253) = x_909;
-  if ((abs((x_308 - x_310)) < 0.25f)) {
-    let x_910 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_910;
-    let x_911 = obj;
-    obj = QuicksortObject();
-    obj = x_911;
-    let x_513 = vec3f(x_505.zx, x_448.x);
-    let x_912 = *(x_300);
-    *(x_300) = 0i;
-    *(x_300) = x_912;
-    let x_317 = obj.numbers[9u];
-    let x_514 = x_474.yyy;
-    let x_913 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_913;
-    let x_320 = color.x;
-    let x_914 = uv.y;
-    uv.y = 0.0f;
-    uv.y = x_914;
-    let x_515 = x_502.xy;
-    let x_915 = color.x;
-    color.x = 0.0f;
-    color.x = x_915;
-    let x_916 = color;
-    color = vec3f();
-    color = x_916;
-    let x_516 = x_452.xx;
-    let x_917 = uv;
-    uv = vec2f();
-    uv = x_917;
-    let x_918 = uv.x;
-    uv.x = 0.0f;
-    uv.x = x_918;
-    let x_517 = vec2f().xxy;
-    color.x = (f32(x_317) + x_320);
-    let x_919 = color.x;
-    color.x = 0.0f;
-    color.x = x_919;
-    let x_518 = vec3f(x_480.y, x_508.x, x_480.x);
-    let x_920 = color.x;
-    color.x = 0.0f;
-    color.x = x_920;
-  }
-  let x_921 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_921;
-  let x_325 = color;
-  let x_922 = uv[0i];
-  uv[0i] = 0.0f;
-  uv[0i] = x_922;
-  let x_519 = vec3f(x_447.x, x_446.xy);
-  let x_326 = normalize(x_325);
-  let x_923 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_923;
-  let x_924 = obj;
-  obj = QuicksortObject();
-  obj = x_924;
-  let x_925 = obj;
-  obj = QuicksortObject();
-  obj = x_925;
-  let x_926 = color.y;
-  color.y = 0.0f;
-  color.y = x_926;
-  let x_520 = vec2f(x_506.y, x_519.y);
-  let x_927 = color.y;
-  color.y = 0.0f;
-  color.y = x_927;
-  let x_330 = vec4f(x_326.x, x_326.y, x_326.z, 1.0f);
-  let x_928 = uv.y;
-  uv.y = 0.0f;
-  uv.y = x_928;
-  let x_521 = vec3f(x_199.yy, x_520.y);
-  let x_929 = uv.x;
-  uv.x = 0.0f;
-  uv.x = x_929;
-  x_GLF_color = x_330;
-  let x_930 = obj;
-  obj = QuicksortObject();
-  obj = x_930;
-  let x_522 = vec3f(x_330.wy, x_493.x);
-  let x_931 = color.x;
-  color.x = 0.0f;
-  color.x = x_931;
-  return;
-}
-
-struct main_out {
-  @location(0)
-  x_GLF_color_1 : vec4f,
-}
-
-@fragment
-fn main(@builtin(position) gl_FragCoord_param : vec4f) -> main_out {
-  gl_FragCoord = gl_FragCoord_param;
-  main_1();
-  return main_out(x_GLF_color);
-}
-
-error: function-scope 'var' must have a constructible type
diff --git a/test/tint/bug/tint/757.wgsl.expected.ir.msl b/test/tint/bug/tint/757.wgsl.expected.ir.msl
index d0caa43..7457b78 100644
--- a/test/tint/bug/tint/757.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/757.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Constants = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Constants = struct @align(4) {
   level:i32 @offset(0)
 }
 
@@ -8,14 +8,14 @@
   values:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %constants:ptr<uniform, Constants, read> = var @binding_point(0, 0)
   %myTexture:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(0, 1)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 3)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B2: {
     %6:u32 = access %GlobalInvocationID, 2u
     %7:u32 = mul 4u, %6
     %8:u32 = access %GlobalInvocationID, 1u
@@ -28,39 +28,40 @@
     %15:u32 = mul %14, 1u
     store %flatIndex, %15
     %16:texture_2d_array<f32> = load %myTexture
-    %17:vec2<u32> = swizzle %GlobalInvocationID, xy
-    %18:vec2<i32> = convert %17
-    %19:vec4<f32> = textureLoad %16, %18, 0i, 0i
-    %texel:ptr<function, vec4<f32>, read_write> = var, %19
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    %17:texture_2d_array<f32> = let %16
+    %18:vec2<u32> = swizzle %GlobalInvocationID, xy
+    %19:vec2<i32> = convert %18
+    %20:vec4<f32> = textureLoad %17, %19, 0i, 0i
+    %texel:ptr<function, vec4<f32>, read_write> = var, %20
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %i:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
-        %22:u32 = load %i
-        %23:bool = lt %22, 1u
-        if %23 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+      $B4: {  # body
+        %23:u32 = load %i
+        %24:bool = lt %23, 1u
+        if %24 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %24:u32 = load %flatIndex
-        %25:u32 = load %i
-        %26:u32 = add %24, %25
-        %27:ptr<storage, f32, read_write> = access %result, 0u, %26
-        %28:f32 = load_vector_element %texel, 0u
-        store %27, %28
-        continue %b5
+        %25:u32 = load %flatIndex
+        %26:u32 = load %i
+        %27:u32 = add %25, %26
+        %28:ptr<storage, f32, read_write> = access %result, 0u, %27
+        %29:f32 = load_vector_element %texel, 0u
+        store %28, %29
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %29:u32 = load %i
-        %30:u32 = add %29, 1u
-        store %i, %30
-        next_iteration %b4
+      $B5: {  # continuing
+        %30:u32 = load %i
+        %31:u32 = add %30, 1u
+        store %i, %31
+        next_iteration  # -> $B4
       }
     }
     ret
diff --git a/test/tint/bug/tint/824.wgsl.expected.ir.msl b/test/tint/bug/tint/824.wgsl.expected.ir.msl
index 4174ae5..d73170c 100644
--- a/test/tint/bug/tint/824.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/824.wgsl.expected.ir.msl
@@ -1,24 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Output = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Output = struct @align(16) {
   Position:vec4<f32> @offset(0), @builtin(position)
   color:vec4<f32> @offset(16), @location(0)
 }
 
-%tint_symbol = @vertex func(%VertexIndex:u32 [@vertex_index], %InstanceIndex:u32 [@instance_index]):Output -> %b1 {
-  %b1 = block {
+%tint_symbol = @vertex func(%VertexIndex:u32 [@vertex_index], %InstanceIndex:u32 [@instance_index]):Output {
+  $B1: {
     %zv:array<vec2<f32>, 4> = let array<vec2<f32>, 4>(vec2<f32>(0.20000000298023223877f), vec2<f32>(0.30000001192092895508f), vec2<f32>(-0.10000000149011611938f), vec2<f32>(1.10000002384185791016f))
-    %z:f32 = access %zv, %InstanceIndex, 0u
+    %5:f32 = access %zv, %InstanceIndex, 0u
+    %z:f32 = let %5
     %output:ptr<function, Output, read_write> = var
-    %7:ptr<function, vec4<f32>, read_write> = access %output, 0u
-    %8:vec4<f32> = construct 0.5f, 0.5f, %z, 1.0f
-    store %7, %8
+    %8:ptr<function, vec4<f32>, read_write> = access %output, 0u
+    %9:vec4<f32> = construct 0.5f, 0.5f, %z, 1.0f
+    store %8, %9
     %colors:array<vec4<f32>, 4> = let array<vec4<f32>, 4>(vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %10:ptr<function, vec4<f32>, read_write> = access %output, 1u
-    %11:vec4<f32> = access %colors, %InstanceIndex
-    store %10, %11
-    %12:Output = load %output
-    ret %12
+    %11:ptr<function, vec4<f32>, read_write> = access %output, 1u
+    %12:vec4<f32> = access %colors, %InstanceIndex
+    store %11, %12
+    %13:Output = load %output
+    ret %13
   }
 }
 
diff --git a/test/tint/bug/tint/827.wgsl.expected.ir.msl b/test/tint/bug/tint/827.wgsl.expected.ir.msl
index 18df912..dd5bb6b 100644
--- a/test/tint/bug/tint/827.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/827.wgsl.expected.ir.msl
@@ -1,29 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Result = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Result = struct @align(4) {
   values:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tex:ptr<handle, texture_depth_2d, read> = var @binding_point(0, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationId:vec3<u32> [@global_invocation_id]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationId:vec3<u32> [@global_invocation_id]):void {
+  $B2: {
     %5:u32 = access %GlobalInvocationId, 1u
     %6:u32 = mul %5, 128u
     %7:u32 = access %GlobalInvocationId, 0u
     %8:u32 = add %6, %7
     %9:ptr<storage, f32, read_write> = access %result, 0u, %8
     %10:texture_depth_2d = load %tex
-    %11:u32 = access %GlobalInvocationId, 0u
-    %12:i32 = convert %11
-    %13:u32 = access %GlobalInvocationId, 1u
-    %14:i32 = convert %13
-    %15:vec2<i32> = construct %12, %14
-    %16:f32 = textureLoad %10, %15, 0i
-    store %9, %16
+    %11:texture_depth_2d = let %10
+    %12:u32 = access %GlobalInvocationId, 0u
+    %13:i32 = convert %12
+    %14:i32 = let %13
+    %15:u32 = access %GlobalInvocationId, 1u
+    %16:i32 = convert %15
+    %17:vec2<i32> = construct %14, %16
+    %18:f32 = textureLoad %11, %17, 0i
+    store %9, %18
     ret
   }
 }
diff --git a/test/tint/bug/tint/870.spvasm.expected.ir.msl b/test/tint/bug/tint/870.spvasm.expected.ir.msl
index b5ec799..230f41d 100644
--- a/test/tint/bug/tint/870.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/870.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: sspp962805860buildInformationS = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: sspp962805860buildInformationS = struct @align(16) {
   footprint:vec4<f32> @offset(0)
   offset:vec4<f32> @offset(16)
   essence:i32 @offset(32)
@@ -11,39 +11,40 @@
   passthru:sspp962805860buildInformationS @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sspp962805860buildInformation:ptr<storage, x_B4_BuildInformation, read> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %orientation:ptr<function, array<i32, 6>, read_write> = var
     %4:ptr<storage, array<i32, 6>, read> = access %sspp962805860buildInformation, 0u, 3u
-    %x_23:array<i32, 6> = load %4
-    %6:ptr<function, i32, read_write> = access %orientation, 0i
-    %7:i32 = access %x_23, 0u
-    store %6, %7
-    %8:ptr<function, i32, read_write> = access %orientation, 1i
-    %9:i32 = access %x_23, 1u
-    store %8, %9
-    %10:ptr<function, i32, read_write> = access %orientation, 2i
-    %11:i32 = access %x_23, 2u
-    store %10, %11
-    %12:ptr<function, i32, read_write> = access %orientation, 3i
-    %13:i32 = access %x_23, 3u
-    store %12, %13
-    %14:ptr<function, i32, read_write> = access %orientation, 4i
-    %15:i32 = access %x_23, 4u
-    store %14, %15
-    %16:ptr<function, i32, read_write> = access %orientation, 5i
-    %17:i32 = access %x_23, 5u
-    store %16, %17
+    %5:array<i32, 6> = load %4
+    %x_23:array<i32, 6> = let %5
+    %7:ptr<function, i32, read_write> = access %orientation, 0i
+    %8:i32 = access %x_23, 0u
+    store %7, %8
+    %9:ptr<function, i32, read_write> = access %orientation, 1i
+    %10:i32 = access %x_23, 1u
+    store %9, %10
+    %11:ptr<function, i32, read_write> = access %orientation, 2i
+    %12:i32 = access %x_23, 2u
+    store %11, %12
+    %13:ptr<function, i32, read_write> = access %orientation, 3i
+    %14:i32 = access %x_23, 3u
+    store %13, %14
+    %15:ptr<function, i32, read_write> = access %orientation, 4i
+    %16:i32 = access %x_23, 4u
+    store %15, %16
+    %17:ptr<function, i32, read_write> = access %orientation, 5i
+    %18:i32 = access %x_23, 5u
+    store %17, %18
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
-    %19:void = call %main_1
+%tint_symbol = @fragment func():void {
+  $B3: {
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/bug/tint/913.wgsl.expected.ir.msl b/test/tint/bug/tint/913.wgsl.expected.ir.msl
index 1b0d9fb..366b488 100644
--- a/test/tint/bug/tint/913.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/913.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: OutputBuf = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: OutputBuf = struct @align(4) {
   result:array<u32> @offset(0)
 }
 
@@ -12,223 +12,232 @@
   copySize:vec2<u32> @offset(24)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %src:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 0)
   %dst:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 1)
   %output:ptr<storage, OutputBuf, read_write> = var @binding_point(0, 2)
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 3)
 }
 
-%aboutEqual = func(%value:f32, %expect:f32):bool -> %b2 {
-  %b2 = block {
+%aboutEqual = func(%value:f32, %expect:f32):bool {
+  $B2: {
     %8:f32 = sub %value, %expect
     %9:f32 = abs %8
     %10:bool = lt %9, 0.00100000004749745131f
     ret %10
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     %13:texture_2d<f32> = load %src
-    %srcSize:vec2<u32> = textureDimensions %13
-    %15:texture_2d<f32> = load %dst
-    %dstSize:vec2<u32> = textureDimensions %15
-    %17:vec2<u32> = swizzle %GlobalInvocationID, xy
-    %dstTexCoord:vec2<u32> = construct %17
+    %14:vec2<u32> = textureDimensions %13
+    %srcSize:vec2<u32> = let %14
+    %16:texture_2d<f32> = load %dst
+    %17:vec2<u32> = textureDimensions %16
+    %dstSize:vec2<u32> = let %17
+    %19:vec2<u32> = swizzle %GlobalInvocationID, xy
+    %20:vec2<u32> = construct %19
+    %dstTexCoord:vec2<u32> = let %20
     %nonCoveredColor:vec4<f32> = let vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f)
     %success:ptr<function, bool, read_write> = var, true
-    %21:u32 = access %dstTexCoord, 0u
-    %22:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
-    %23:u32 = load_vector_element %22, 0u
-    %24:bool = lt %21, %23
-    %25:bool = if %24 [t: %b4, f: %b5] {  # if_1
-      %b4 = block {  # true
+    %24:u32 = access %dstTexCoord, 0u
+    %25:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
+    %26:u32 = load_vector_element %25, 0u
+    %27:bool = lt %24, %26
+    %28:bool = if %27 [t: $B4, f: $B5] {  # if_1
+      $B4: {  # true
         exit_if true  # if_1
       }
-      %b5 = block {  # false
-        %26:u32 = access %dstTexCoord, 1u
-        %27:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
-        %28:u32 = load_vector_element %27, 1u
-        %29:bool = lt %26, %28
-        exit_if %29  # if_1
+      $B5: {  # false
+        %29:u32 = access %dstTexCoord, 1u
+        %30:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
+        %31:u32 = load_vector_element %30, 1u
+        %32:bool = lt %29, %31
+        exit_if %32  # if_1
       }
     }
-    %30:bool = if %25 [t: %b6, f: %b7] {  # if_2
-      %b6 = block {  # true
+    %33:bool = if %28 [t: $B6, f: $B7] {  # if_2
+      $B6: {  # true
         exit_if true  # if_2
       }
-      %b7 = block {  # false
-        %31:u32 = access %dstTexCoord, 0u
-        %32:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
-        %33:u32 = load_vector_element %32, 0u
-        %34:ptr<uniform, vec2<u32>, read> = access %uniforms, 4u
-        %35:u32 = load_vector_element %34, 0u
-        %36:u32 = add %33, %35
-        %37:bool = gte %31, %36
-        exit_if %37  # if_2
+      $B7: {  # false
+        %34:u32 = access %dstTexCoord, 0u
+        %35:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
+        %36:u32 = load_vector_element %35, 0u
+        %37:ptr<uniform, vec2<u32>, read> = access %uniforms, 4u
+        %38:u32 = load_vector_element %37, 0u
+        %39:u32 = add %36, %38
+        %40:bool = gte %34, %39
+        exit_if %40  # if_2
       }
     }
-    %38:bool = if %30 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %41:bool = if %33 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         exit_if true  # if_3
       }
-      %b9 = block {  # false
-        %39:u32 = access %dstTexCoord, 1u
-        %40:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
-        %41:u32 = load_vector_element %40, 1u
-        %42:ptr<uniform, vec2<u32>, read> = access %uniforms, 4u
-        %43:u32 = load_vector_element %42, 1u
-        %44:u32 = add %41, %43
-        %45:bool = gte %39, %44
-        exit_if %45  # if_3
+      $B9: {  # false
+        %42:u32 = access %dstTexCoord, 1u
+        %43:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
+        %44:u32 = load_vector_element %43, 1u
+        %45:ptr<uniform, vec2<u32>, read> = access %uniforms, 4u
+        %46:u32 = load_vector_element %45, 1u
+        %47:u32 = add %44, %46
+        %48:bool = gte %42, %47
+        exit_if %48  # if_3
       }
     }
-    if %38 [t: %b10, f: %b11] {  # if_4
-      %b10 = block {  # true
-        %46:bool = load %success
-        %47:bool = if %46 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
-            %48:texture_2d<f32> = load %dst
-            %49:vec2<i32> = convert %dstTexCoord
-            %50:vec4<f32> = textureLoad %48, %49, 0i
-            %51:vec4<bool> = eq %50, %nonCoveredColor
-            %52:bool = all %51
-            exit_if %52  # if_5
+    if %41 [t: $B10, f: $B11] {  # if_4
+      $B10: {  # true
+        %49:bool = load %success
+        %50:bool = if %49 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
+            %51:texture_2d<f32> = load %dst
+            %52:texture_2d<f32> = let %51
+            %53:vec2<i32> = convert %dstTexCoord
+            %54:vec4<f32> = textureLoad %52, %53, 0i
+            %55:vec4<bool> = eq %54, %nonCoveredColor
+            %56:bool = all %55
+            exit_if %56  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_if false  # if_5
           }
         }
-        store %success, %47
+        store %success, %50
         exit_if  # if_4
       }
-      %b11 = block {  # false
-        %53:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
-        %54:vec2<u32> = load %53
-        %55:vec2<u32> = sub %dstTexCoord, %54
-        %56:ptr<uniform, vec2<u32>, read> = access %uniforms, 2u
-        %57:vec2<u32> = load %56
-        %58:vec2<u32> = add %55, %57
-        %srcTexCoord:ptr<function, vec2<u32>, read_write> = var, %58
-        %60:ptr<uniform, u32, read> = access %uniforms, 0u
-        %61:u32 = load %60
-        %62:bool = eq %61, 1u
-        if %62 [t: %b14] {  # if_6
-          %b14 = block {  # true
-            %63:u32 = access %srcSize, 1u
-            %64:u32 = load_vector_element %srcTexCoord, 1u
-            %65:u32 = sub %63, %64
-            %66:u32 = sub %65, 1u
-            store_vector_element %srcTexCoord, 1u, %66
+      $B11: {  # false
+        %57:ptr<uniform, vec2<u32>, read> = access %uniforms, 3u
+        %58:vec2<u32> = load %57
+        %59:vec2<u32> = sub %dstTexCoord, %58
+        %60:ptr<uniform, vec2<u32>, read> = access %uniforms, 2u
+        %61:vec2<u32> = load %60
+        %62:vec2<u32> = add %59, %61
+        %srcTexCoord:ptr<function, vec2<u32>, read_write> = var, %62
+        %64:ptr<uniform, u32, read> = access %uniforms, 0u
+        %65:u32 = load %64
+        %66:bool = eq %65, 1u
+        if %66 [t: $B14] {  # if_6
+          $B14: {  # true
+            %67:u32 = access %srcSize, 1u
+            %68:u32 = load_vector_element %srcTexCoord, 1u
+            %69:u32 = sub %67, %68
+            %70:u32 = sub %69, 1u
+            store_vector_element %srcTexCoord, 1u, %70
             exit_if  # if_6
           }
         }
-        %67:texture_2d<f32> = load %src
-        %68:vec2<u32> = load %srcTexCoord
-        %69:vec2<i32> = convert %68
-        %srcColor:vec4<f32> = textureLoad %67, %69, 0i
-        %71:texture_2d<f32> = load %dst
-        %72:vec2<i32> = convert %dstTexCoord
-        %dstColor:vec4<f32> = textureLoad %71, %72, 0i
-        %74:ptr<uniform, u32, read> = access %uniforms, 1u
-        %75:u32 = load %74
-        %76:bool = eq %75, 2u
-        if %76 [t: %b15, f: %b16] {  # if_7
-          %b15 = block {  # true
-            %77:bool = load %success
-            %78:bool = if %77 [t: %b17, f: %b18] {  # if_8
-              %b17 = block {  # true
-                %79:f32 = access %dstColor, 0u
-                %80:f32 = access %srcColor, 0u
-                %81:bool = call %aboutEqual, %79, %80
-                exit_if %81  # if_8
+        %71:texture_2d<f32> = load %src
+        %72:texture_2d<f32> = let %71
+        %73:vec2<u32> = load %srcTexCoord
+        %74:vec2<i32> = convert %73
+        %75:vec4<f32> = textureLoad %72, %74, 0i
+        %srcColor:vec4<f32> = let %75
+        %77:texture_2d<f32> = load %dst
+        %78:texture_2d<f32> = let %77
+        %79:vec2<i32> = convert %dstTexCoord
+        %80:vec4<f32> = textureLoad %78, %79, 0i
+        %dstColor:vec4<f32> = let %80
+        %82:ptr<uniform, u32, read> = access %uniforms, 1u
+        %83:u32 = load %82
+        %84:bool = eq %83, 2u
+        if %84 [t: $B15, f: $B16] {  # if_7
+          $B15: {  # true
+            %85:bool = load %success
+            %86:bool = if %85 [t: $B17, f: $B18] {  # if_8
+              $B17: {  # true
+                %87:f32 = access %dstColor, 0u
+                %88:f32 = access %srcColor, 0u
+                %89:bool = call %aboutEqual, %87, %88
+                exit_if %89  # if_8
               }
-              %b18 = block {  # false
+              $B18: {  # false
                 exit_if false  # if_8
               }
             }
-            %82:bool = if %78 [t: %b19, f: %b20] {  # if_9
-              %b19 = block {  # true
-                %83:f32 = access %dstColor, 1u
-                %84:f32 = access %srcColor, 1u
-                %85:bool = call %aboutEqual, %83, %84
-                exit_if %85  # if_9
+            %90:bool = if %86 [t: $B19, f: $B20] {  # if_9
+              $B19: {  # true
+                %91:f32 = access %dstColor, 1u
+                %92:f32 = access %srcColor, 1u
+                %93:bool = call %aboutEqual, %91, %92
+                exit_if %93  # if_9
               }
-              %b20 = block {  # false
+              $B20: {  # false
                 exit_if false  # if_9
               }
             }
-            store %success, %82
+            store %success, %90
             exit_if  # if_7
           }
-          %b16 = block {  # false
-            %86:bool = load %success
-            %87:bool = if %86 [t: %b21, f: %b22] {  # if_10
-              %b21 = block {  # true
-                %88:f32 = access %dstColor, 0u
-                %89:f32 = access %srcColor, 0u
-                %90:bool = call %aboutEqual, %88, %89
-                exit_if %90  # if_10
+          $B16: {  # false
+            %94:bool = load %success
+            %95:bool = if %94 [t: $B21, f: $B22] {  # if_10
+              $B21: {  # true
+                %96:f32 = access %dstColor, 0u
+                %97:f32 = access %srcColor, 0u
+                %98:bool = call %aboutEqual, %96, %97
+                exit_if %98  # if_10
               }
-              %b22 = block {  # false
+              $B22: {  # false
                 exit_if false  # if_10
               }
             }
-            %91:bool = if %87 [t: %b23, f: %b24] {  # if_11
-              %b23 = block {  # true
-                %92:f32 = access %dstColor, 1u
-                %93:f32 = access %srcColor, 1u
-                %94:bool = call %aboutEqual, %92, %93
-                exit_if %94  # if_11
+            %99:bool = if %95 [t: $B23, f: $B24] {  # if_11
+              $B23: {  # true
+                %100:f32 = access %dstColor, 1u
+                %101:f32 = access %srcColor, 1u
+                %102:bool = call %aboutEqual, %100, %101
+                exit_if %102  # if_11
               }
-              %b24 = block {  # false
+              $B24: {  # false
                 exit_if false  # if_11
               }
             }
-            %95:bool = if %91 [t: %b25, f: %b26] {  # if_12
-              %b25 = block {  # true
-                %96:f32 = access %dstColor, 2u
-                %97:f32 = access %srcColor, 2u
-                %98:bool = call %aboutEqual, %96, %97
-                exit_if %98  # if_12
+            %103:bool = if %99 [t: $B25, f: $B26] {  # if_12
+              $B25: {  # true
+                %104:f32 = access %dstColor, 2u
+                %105:f32 = access %srcColor, 2u
+                %106:bool = call %aboutEqual, %104, %105
+                exit_if %106  # if_12
               }
-              %b26 = block {  # false
+              $B26: {  # false
                 exit_if false  # if_12
               }
             }
-            %99:bool = if %95 [t: %b27, f: %b28] {  # if_13
-              %b27 = block {  # true
-                %100:f32 = access %dstColor, 3u
-                %101:f32 = access %srcColor, 3u
-                %102:bool = call %aboutEqual, %100, %101
-                exit_if %102  # if_13
+            %107:bool = if %103 [t: $B27, f: $B28] {  # if_13
+              $B27: {  # true
+                %108:f32 = access %dstColor, 3u
+                %109:f32 = access %srcColor, 3u
+                %110:bool = call %aboutEqual, %108, %109
+                exit_if %110  # if_13
               }
-              %b28 = block {  # false
+              $B28: {  # false
                 exit_if false  # if_13
               }
             }
-            store %success, %99
+            store %success, %107
             exit_if  # if_7
           }
         }
         exit_if  # if_4
       }
     }
-    %103:u32 = access %GlobalInvocationID, 1u
-    %104:u32 = access %dstSize, 0u
-    %105:u32 = mul %103, %104
-    %106:u32 = access %GlobalInvocationID, 0u
-    %outputIndex:u32 = add %105, %106
-    %108:bool = load %success
-    if %108 [t: %b29, f: %b30] {  # if_14
-      %b29 = block {  # true
-        %109:ptr<storage, u32, read_write> = access %output, 0u, %outputIndex
-        store %109, 1u
+    %111:u32 = access %GlobalInvocationID, 1u
+    %112:u32 = access %dstSize, 0u
+    %113:u32 = mul %111, %112
+    %114:u32 = access %GlobalInvocationID, 0u
+    %115:u32 = add %113, %114
+    %outputIndex:u32 = let %115
+    %117:bool = load %success
+    if %117 [t: $B29, f: $B30] {  # if_14
+      $B29: {  # true
+        %118:ptr<storage, u32, read_write> = access %output, 0u, %outputIndex
+        store %118, 1u
         exit_if  # if_14
       }
-      %b30 = block {  # false
-        %110:ptr<storage, u32, read_write> = access %output, 0u, %outputIndex
-        store %110, 0u
+      $B30: {  # false
+        %119:ptr<storage, u32, read_write> = access %output, 0u, %outputIndex
+        store %119, 0u
         exit_if  # if_14
       }
     }
diff --git a/test/tint/bug/tint/914.wgsl.expected.ir.msl b/test/tint/bug/tint/914.wgsl.expected.ir.msl
index f4b0d1d..a9a3e39 100644
--- a/test/tint/bug/tint/914.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/914.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Matrix = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Matrix = struct @align(4) {
   numbers:array<f32> @offset(0)
 }
 
@@ -10,7 +10,7 @@
   dimBOuter:u32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %firstMatrix:ptr<storage, Matrix, read> = var @binding_point(0, 0)
   %secondMatrix:ptr<storage, Matrix, read> = var @binding_point(0, 1)
   %resultMatrix:ptr<storage, Matrix, read_write> = var @binding_point(0, 2)
@@ -19,492 +19,544 @@
   %mm_Bsub:ptr<workgroup, array<array<f32, 64>, 64>, read_write> = var
 }
 
-%mm_readA = func(%row:u32, %col:u32):f32 -> %b2 {
-  %b2 = block {
+%mm_readA = func(%row:u32, %col:u32):f32 {
+  $B2: {
     %10:ptr<uniform, u32, read> = access %uniforms, 0u
     %11:u32 = load %10
     %12:bool = lt %row, %11
-    %13:bool = if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %13:bool = if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %14:ptr<uniform, u32, read> = access %uniforms, 1u
         %15:u32 = load %14
         %16:bool = lt %col, %15
         exit_if %16  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         exit_if false  # if_1
       }
     }
-    if %13 [t: %b5] {  # if_2
-      %b5 = block {  # true
+    if %13 [t: $B5] {  # if_2
+      $B5: {  # true
         %17:ptr<uniform, u32, read> = access %uniforms, 1u
         %18:u32 = load %17
         %19:u32 = mul %row, %18
         %20:u32 = add %19, %col
         %21:ptr<storage, f32, read> = access %firstMatrix, 0u, %20
-        %result:f32 = load %21
+        %22:f32 = load %21
+        %result:f32 = let %22
         ret %result
       }
     }
     ret 0.0f
   }
 }
-%mm_readB = func(%row_1:u32, %col_1:u32):f32 -> %b6 {  # %row_1: 'row', %col_1: 'col'
-  %b6 = block {
-    %26:ptr<uniform, u32, read> = access %uniforms, 1u
-    %27:u32 = load %26
-    %28:bool = lt %row_1, %27
-    %29:bool = if %28 [t: %b7, f: %b8] {  # if_3
-      %b7 = block {  # true
-        %30:ptr<uniform, u32, read> = access %uniforms, 2u
-        %31:u32 = load %30
-        %32:bool = lt %col_1, %31
-        exit_if %32  # if_3
+%mm_readB = func(%row_1:u32, %col_1:u32):f32 {  # %row_1: 'row', %col_1: 'col'
+  $B6: {
+    %27:ptr<uniform, u32, read> = access %uniforms, 1u
+    %28:u32 = load %27
+    %29:bool = lt %row_1, %28
+    %30:bool = if %29 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
+        %31:ptr<uniform, u32, read> = access %uniforms, 2u
+        %32:u32 = load %31
+        %33:bool = lt %col_1, %32
+        exit_if %33  # if_3
       }
-      %b8 = block {  # false
+      $B8: {  # false
         exit_if false  # if_3
       }
     }
-    if %29 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %33:ptr<uniform, u32, read> = access %uniforms, 2u
-        %34:u32 = load %33
-        %35:u32 = mul %row_1, %34
-        %36:u32 = add %35, %col_1
-        %37:ptr<storage, f32, read> = access %secondMatrix, 0u, %36
-        %result_1:f32 = load %37  # %result_1: 'result'
+    if %30 [t: $B9] {  # if_4
+      $B9: {  # true
+        %34:ptr<uniform, u32, read> = access %uniforms, 2u
+        %35:u32 = load %34
+        %36:u32 = mul %row_1, %35
+        %37:u32 = add %36, %col_1
+        %38:ptr<storage, f32, read> = access %secondMatrix, 0u, %37
+        %39:f32 = load %38
+        %result_1:f32 = let %39  # %result_1: 'result'
         ret %result_1
       }
     }
     ret 0.0f
   }
 }
-%mm_write = func(%row_2:u32, %col_2:u32, %value:f32):void -> %b10 {  # %row_2: 'row', %col_2: 'col'
-  %b10 = block {
-    %43:ptr<uniform, u32, read> = access %uniforms, 0u
-    %44:u32 = load %43
-    %45:bool = lt %row_2, %44
-    %46:bool = if %45 [t: %b11, f: %b12] {  # if_5
-      %b11 = block {  # true
-        %47:ptr<uniform, u32, read> = access %uniforms, 2u
-        %48:u32 = load %47
-        %49:bool = lt %col_2, %48
-        exit_if %49  # if_5
+%mm_write = func(%row_2:u32, %col_2:u32, %value:f32):void {  # %row_2: 'row', %col_2: 'col'
+  $B10: {
+    %45:ptr<uniform, u32, read> = access %uniforms, 0u
+    %46:u32 = load %45
+    %47:bool = lt %row_2, %46
+    %48:bool = if %47 [t: $B11, f: $B12] {  # if_5
+      $B11: {  # true
+        %49:ptr<uniform, u32, read> = access %uniforms, 2u
+        %50:u32 = load %49
+        %51:bool = lt %col_2, %50
+        exit_if %51  # if_5
       }
-      %b12 = block {  # false
+      $B12: {  # false
         exit_if false  # if_5
       }
     }
-    if %46 [t: %b13] {  # if_6
-      %b13 = block {  # true
-        %50:ptr<uniform, u32, read> = access %uniforms, 2u
-        %51:u32 = load %50
-        %52:u32 = mul %row_2, %51
-        %index:u32 = add %col_2, %52
-        %54:ptr<storage, f32, read_write> = access %resultMatrix, 0u, %index
-        store %54, %value
+    if %48 [t: $B13] {  # if_6
+      $B13: {  # true
+        %52:ptr<uniform, u32, read> = access %uniforms, 2u
+        %53:u32 = load %52
+        %54:u32 = mul %row_2, %53
+        %55:u32 = add %col_2, %54
+        %index:u32 = let %55
+        %57:ptr<storage, f32, read_write> = access %resultMatrix, 0u, %index
+        store %57, %value
         exit_if  # if_6
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(16, 16, 1) func(%local_id:vec3<u32> [@local_invocation_id], %global_id:vec3<u32> [@global_invocation_id]):void -> %b14 {
-  %b14 = block {
-    %58:u32 = access %local_id, 1u
-    %tileRow:u32 = mul %58, 4u
-    %60:u32 = access %local_id, 0u
-    %tileCol:u32 = mul %60, 4u
-    %62:u32 = access %global_id, 1u
-    %globalRow:u32 = mul %62, 4u
-    %64:u32 = access %global_id, 0u
-    %globalCol:u32 = mul %64, 4u
-    %66:ptr<uniform, u32, read> = access %uniforms, 1u
-    %67:u32 = load %66
-    %68:u32 = sub %67, 1u
-    %69:u32 = div %68, 64u
-    %numTiles:u32 = add %69, 1u
-    %acc:ptr<function, array<f32, 16>, read_write> = var
-    %ACached:ptr<function, f32, read_write> = var
-    %BCached:ptr<function, array<f32, 4>, read_write> = var
-    loop [i: %b15, b: %b16, c: %b17] {  # loop_1
-      %b15 = block {  # initializer
-        %index_1:ptr<function, u32, read_write> = var, 0u  # %index_1: 'index'
-        next_iteration %b16
+%tint_symbol = @compute @workgroup_size(16, 16, 1) func(%local_id:vec3<u32> [@local_invocation_id], %global_id:vec3<u32> [@global_invocation_id], %tint_local_index:u32 [@local_invocation_index]):void {
+  $B14: {
+    loop [i: $B15, b: $B16, c: $B17] {  # loop_1
+      $B15: {  # initializer
+        next_iteration %tint_local_index  # -> $B16
       }
-      %b16 = block {  # body
-        %75:u32 = load %index_1
-        %76:bool = lt %75, 16u
-        if %76 [t: %b18, f: %b19] {  # if_7
-          %b18 = block {  # true
-            exit_if  # if_7
-          }
-          %b19 = block {  # false
+      $B16 (%idx:u32): {  # body
+        %63:bool = gte %idx, 4096u
+        if %63 [t: $B18] {  # if_7
+          $B18: {  # true
             exit_loop  # loop_1
           }
         }
-        %77:u32 = load %index_1
-        %78:ptr<function, f32, read_write> = access %acc, %77
-        store %78, 0.0f
-        continue %b17
+        %64:u32 = mod %idx, 64u
+        %65:u32 = div %idx, 64u
+        %66:ptr<workgroup, f32, read_write> = access %mm_Asub, %65, %64
+        store %66, 0.0f
+        %67:u32 = mod %idx, 64u
+        %68:u32 = div %idx, 64u
+        %69:ptr<workgroup, f32, read_write> = access %mm_Bsub, %68, %67
+        store %69, 0.0f
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %79:u32 = load %index_1
-        %80:u32 = add %79, 1u
-        store %index_1, %80
-        next_iteration %b16
+      $B17: {  # continuing
+        %70:u32 = add %idx, 256u
+        next_iteration %70  # -> $B16
       }
     }
-    %ColPerThreadA:u32 = let 4u
-    %82:u32 = access %local_id, 0u
-    %tileColA:u32 = mul %82, %ColPerThreadA
-    %RowPerThreadB:u32 = let 4u
-    %85:u32 = access %local_id, 1u
-    %tileRowB:u32 = mul %85, %RowPerThreadB
-    loop [i: %b20, b: %b21, c: %b22] {  # loop_2
-      %b20 = block {  # initializer
-        %t:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b21
+    %71:void = msl.threadgroup_barrier 4u
+    %72:u32 = access %local_id, 1u
+    %73:u32 = mul %72, 4u
+    %tileRow:u32 = let %73
+    %75:u32 = access %local_id, 0u
+    %76:u32 = mul %75, 4u
+    %tileCol:u32 = let %76
+    %78:u32 = access %global_id, 1u
+    %79:u32 = mul %78, 4u
+    %globalRow:u32 = let %79
+    %81:u32 = access %global_id, 0u
+    %82:u32 = mul %81, 4u
+    %globalCol:u32 = let %82
+    %84:ptr<uniform, u32, read> = access %uniforms, 1u
+    %85:u32 = load %84
+    %86:u32 = sub %85, 1u
+    %87:u32 = call %tint_div_u32, %86, 64u
+    %89:u32 = add %87, 1u
+    %numTiles:u32 = let %89
+    %acc:ptr<function, array<f32, 16>, read_write> = var
+    %ACached:ptr<function, f32, read_write> = var
+    %BCached:ptr<function, array<f32, 4>, read_write> = var
+    loop [i: $B19, b: $B20, c: $B21] {  # loop_2
+      $B19: {  # initializer
+        %index_1:ptr<function, u32, read_write> = var, 0u  # %index_1: 'index'
+        next_iteration  # -> $B20
       }
-      %b21 = block {  # body
-        %88:u32 = load %t
-        %89:bool = lt %88, %numTiles
-        if %89 [t: %b23, f: %b24] {  # if_8
-          %b23 = block {  # true
+      $B20: {  # body
+        %95:u32 = load %index_1
+        %96:bool = lt %95, 16u
+        if %96 [t: $B22, f: $B23] {  # if_8
+          $B22: {  # true
             exit_if  # if_8
           }
-          %b24 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_2
           }
         }
-        loop [i: %b25, b: %b26, c: %b27] {  # loop_3
-          %b25 = block {  # initializer
+        %97:u32 = load %index_1
+        %98:ptr<function, f32, read_write> = access %acc, %97
+        store %98, 0.0f
+        continue  # -> $B21
+      }
+      $B21: {  # continuing
+        %99:u32 = load %index_1
+        %100:u32 = add %99, 1u
+        store %index_1, %100
+        next_iteration  # -> $B20
+      }
+    }
+    %ColPerThreadA:u32 = let 4u
+    %102:u32 = access %local_id, 0u
+    %103:u32 = mul %102, %ColPerThreadA
+    %tileColA:u32 = let %103
+    %RowPerThreadB:u32 = let 4u
+    %106:u32 = access %local_id, 1u
+    %107:u32 = mul %106, %RowPerThreadB
+    %tileRowB:u32 = let %107
+    loop [i: $B24, b: $B25, c: $B26] {  # loop_3
+      $B24: {  # initializer
+        %t:ptr<function, u32, read_write> = var, 0u
+        next_iteration  # -> $B25
+      }
+      $B25: {  # body
+        %110:u32 = load %t
+        %111:bool = lt %110, %numTiles
+        if %111 [t: $B27, f: $B28] {  # if_9
+          $B27: {  # true
+            exit_if  # if_9
+          }
+          $B28: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        loop [i: $B29, b: $B30, c: $B31] {  # loop_4
+          $B29: {  # initializer
             %innerRow:ptr<function, u32, read_write> = var, 0u
-            next_iteration %b26
+            next_iteration  # -> $B30
           }
-          %b26 = block {  # body
-            %91:u32 = load %innerRow
-            %92:bool = lt %91, 4u
-            if %92 [t: %b28, f: %b29] {  # if_9
-              %b28 = block {  # true
-                exit_if  # if_9
+          $B30: {  # body
+            %113:u32 = load %innerRow
+            %114:bool = lt %113, 4u
+            if %114 [t: $B32, f: $B33] {  # if_10
+              $B32: {  # true
+                exit_if  # if_10
               }
-              %b29 = block {  # false
-                exit_loop  # loop_3
+              $B33: {  # false
+                exit_loop  # loop_4
               }
             }
-            loop [i: %b30, b: %b31, c: %b32] {  # loop_4
-              %b30 = block {  # initializer
+            loop [i: $B34, b: $B35, c: $B36] {  # loop_5
+              $B34: {  # initializer
                 %innerCol:ptr<function, u32, read_write> = var, 0u
-                next_iteration %b31
+                next_iteration  # -> $B35
               }
-              %b31 = block {  # body
-                %94:u32 = load %innerCol
-                %95:bool = lt %94, %ColPerThreadA
-                if %95 [t: %b33, f: %b34] {  # if_10
-                  %b33 = block {  # true
-                    exit_if  # if_10
+              $B35: {  # body
+                %116:u32 = load %innerCol
+                %117:bool = lt %116, %ColPerThreadA
+                if %117 [t: $B37, f: $B38] {  # if_11
+                  $B37: {  # true
+                    exit_if  # if_11
                   }
-                  %b34 = block {  # false
-                    exit_loop  # loop_4
+                  $B38: {  # false
+                    exit_loop  # loop_5
                   }
                 }
-                %96:u32 = load %innerRow
-                %inputRow:u32 = add %tileRow, %96
-                %98:u32 = load %innerCol
-                %inputCol:u32 = add %tileColA, %98
-                %100:ptr<workgroup, f32, read_write> = access %mm_Asub, %inputRow, %inputCol
-                %101:u32 = load %innerRow
-                %102:u32 = add %globalRow, %101
-                %103:u32 = load %t
-                %104:u32 = mul %103, 64u
-                %105:u32 = add %104, %inputCol
-                %106:f32 = call %mm_readA, %102, %105
-                store %100, %106
-                continue %b32
+                %118:u32 = load %innerRow
+                %119:u32 = add %tileRow, %118
+                %inputRow:u32 = let %119
+                %121:u32 = load %innerCol
+                %122:u32 = add %tileColA, %121
+                %inputCol:u32 = let %122
+                %124:ptr<workgroup, f32, read_write> = access %mm_Asub, %inputRow, %inputCol
+                %125:u32 = load %innerRow
+                %126:u32 = add %globalRow, %125
+                %127:u32 = load %t
+                %128:u32 = mul %127, 64u
+                %129:u32 = add %128, %inputCol
+                %130:f32 = call %mm_readA, %126, %129
+                store %124, %130
+                continue  # -> $B36
               }
-              %b32 = block {  # continuing
-                %107:u32 = load %innerCol
-                %108:u32 = add %107, 1u
-                store %innerCol, %108
-                next_iteration %b31
+              $B36: {  # continuing
+                %131:u32 = load %innerCol
+                %132:u32 = add %131, 1u
+                store %innerCol, %132
+                next_iteration  # -> $B35
               }
             }
-            continue %b27
+            continue  # -> $B31
           }
-          %b27 = block {  # continuing
-            %109:u32 = load %innerRow
-            %110:u32 = add %109, 1u
-            store %innerRow, %110
-            next_iteration %b26
+          $B31: {  # continuing
+            %133:u32 = load %innerRow
+            %134:u32 = add %133, 1u
+            store %innerRow, %134
+            next_iteration  # -> $B30
           }
         }
-        loop [i: %b35, b: %b36, c: %b37] {  # loop_5
-          %b35 = block {  # initializer
+        loop [i: $B39, b: $B40, c: $B41] {  # loop_6
+          $B39: {  # initializer
             %innerRow_1:ptr<function, u32, read_write> = var, 0u  # %innerRow_1: 'innerRow'
-            next_iteration %b36
+            next_iteration  # -> $B40
           }
-          %b36 = block {  # body
-            %112:u32 = load %innerRow_1
-            %113:bool = lt %112, %RowPerThreadB
-            if %113 [t: %b38, f: %b39] {  # if_11
-              %b38 = block {  # true
-                exit_if  # if_11
+          $B40: {  # body
+            %136:u32 = load %innerRow_1
+            %137:bool = lt %136, %RowPerThreadB
+            if %137 [t: $B42, f: $B43] {  # if_12
+              $B42: {  # true
+                exit_if  # if_12
               }
-              %b39 = block {  # false
-                exit_loop  # loop_5
+              $B43: {  # false
+                exit_loop  # loop_6
               }
             }
-            loop [i: %b40, b: %b41, c: %b42] {  # loop_6
-              %b40 = block {  # initializer
+            loop [i: $B44, b: $B45, c: $B46] {  # loop_7
+              $B44: {  # initializer
                 %innerCol_1:ptr<function, u32, read_write> = var, 0u  # %innerCol_1: 'innerCol'
-                next_iteration %b41
+                next_iteration  # -> $B45
               }
-              %b41 = block {  # body
-                %115:u32 = load %innerCol_1
-                %116:bool = lt %115, 4u
-                if %116 [t: %b43, f: %b44] {  # if_12
-                  %b43 = block {  # true
-                    exit_if  # if_12
+              $B45: {  # body
+                %139:u32 = load %innerCol_1
+                %140:bool = lt %139, 4u
+                if %140 [t: $B47, f: $B48] {  # if_13
+                  $B47: {  # true
+                    exit_if  # if_13
                   }
-                  %b44 = block {  # false
-                    exit_loop  # loop_6
+                  $B48: {  # false
+                    exit_loop  # loop_7
                   }
                 }
-                %117:u32 = load %innerRow_1
-                %inputRow_1:u32 = add %tileRowB, %117  # %inputRow_1: 'inputRow'
-                %119:u32 = load %innerCol_1
-                %inputCol_1:u32 = add %tileCol, %119  # %inputCol_1: 'inputCol'
-                %121:u32 = load %innerCol_1
-                %122:ptr<workgroup, f32, read_write> = access %mm_Bsub, %121, %inputCol_1
-                %123:u32 = load %t
-                %124:u32 = mul %123, 64u
-                %125:u32 = add %124, %inputRow_1
-                %126:u32 = load %innerCol_1
-                %127:u32 = add %globalCol, %126
-                %128:f32 = call %mm_readB, %125, %127
-                store %122, %128
-                continue %b42
+                %141:u32 = load %innerRow_1
+                %142:u32 = add %tileRowB, %141
+                %inputRow_1:u32 = let %142  # %inputRow_1: 'inputRow'
+                %144:u32 = load %innerCol_1
+                %145:u32 = add %tileCol, %144
+                %inputCol_1:u32 = let %145  # %inputCol_1: 'inputCol'
+                %147:u32 = load %innerCol_1
+                %148:ptr<workgroup, f32, read_write> = access %mm_Bsub, %147, %inputCol_1
+                %149:ptr<workgroup, f32, read_write> = let %148
+                %150:u32 = load %t
+                %151:u32 = mul %150, 64u
+                %152:u32 = add %151, %inputRow_1
+                %153:u32 = load %innerCol_1
+                %154:u32 = add %globalCol, %153
+                %155:f32 = call %mm_readB, %152, %154
+                store %149, %155
+                continue  # -> $B46
               }
-              %b42 = block {  # continuing
-                %129:u32 = load %innerCol_1
-                %130:u32 = add %129, 1u
-                store %innerCol_1, %130
-                next_iteration %b41
+              $B46: {  # continuing
+                %156:u32 = load %innerCol_1
+                %157:u32 = add %156, 1u
+                store %innerCol_1, %157
+                next_iteration  # -> $B45
               }
             }
-            continue %b37
+            continue  # -> $B41
           }
-          %b37 = block {  # continuing
-            %131:u32 = load %innerRow_1
-            %132:u32 = add %131, 1u
-            store %innerRow_1, %132
-            next_iteration %b36
+          $B41: {  # continuing
+            %158:u32 = load %innerRow_1
+            %159:u32 = add %158, 1u
+            store %innerRow_1, %159
+            next_iteration  # -> $B40
           }
         }
-        %133:void = workgroupBarrier
-        loop [i: %b45, b: %b46, c: %b47] {  # loop_7
-          %b45 = block {  # initializer
+        %160:void = msl.threadgroup_barrier 4u
+        loop [i: $B49, b: $B50, c: $B51] {  # loop_8
+          $B49: {  # initializer
             %k:ptr<function, u32, read_write> = var, 0u
-            next_iteration %b46
+            next_iteration  # -> $B50
           }
-          %b46 = block {  # body
-            %135:u32 = load %k
-            %136:bool = lt %135, 64u
-            if %136 [t: %b48, f: %b49] {  # if_13
-              %b48 = block {  # true
-                exit_if  # if_13
+          $B50: {  # body
+            %162:u32 = load %k
+            %163:bool = lt %162, 64u
+            if %163 [t: $B52, f: $B53] {  # if_14
+              $B52: {  # true
+                exit_if  # if_14
               }
-              %b49 = block {  # false
-                exit_loop  # loop_7
+              $B53: {  # false
+                exit_loop  # loop_8
               }
             }
-            loop [i: %b50, b: %b51, c: %b52] {  # loop_8
-              %b50 = block {  # initializer
+            loop [i: $B54, b: $B55, c: $B56] {  # loop_9
+              $B54: {  # initializer
                 %inner:ptr<function, u32, read_write> = var, 0u
-                next_iteration %b51
+                next_iteration  # -> $B55
               }
-              %b51 = block {  # body
-                %138:u32 = load %inner
-                %139:bool = lt %138, 4u
-                if %139 [t: %b53, f: %b54] {  # if_14
-                  %b53 = block {  # true
-                    exit_if  # if_14
-                  }
-                  %b54 = block {  # false
-                    exit_loop  # loop_8
-                  }
-                }
-                %140:u32 = load %inner
-                %141:ptr<function, f32, read_write> = access %BCached, %140
-                %142:u32 = load %k
-                %143:u32 = load %inner
-                %144:u32 = add %tileCol, %143
-                %145:ptr<workgroup, f32, read_write> = access %mm_Bsub, %142, %144
-                %146:f32 = load %145
-                store %141, %146
-                continue %b52
-              }
-              %b52 = block {  # continuing
-                %147:u32 = load %inner
-                %148:u32 = add %147, 1u
-                store %inner, %148
-                next_iteration %b51
-              }
-            }
-            loop [i: %b55, b: %b56, c: %b57] {  # loop_9
-              %b55 = block {  # initializer
-                %innerRow_2:ptr<function, u32, read_write> = var, 0u  # %innerRow_2: 'innerRow'
-                next_iteration %b56
-              }
-              %b56 = block {  # body
-                %150:u32 = load %innerRow_2
-                %151:bool = lt %150, 4u
-                if %151 [t: %b58, f: %b59] {  # if_15
-                  %b58 = block {  # true
+              $B55: {  # body
+                %165:u32 = load %inner
+                %166:bool = lt %165, 4u
+                if %166 [t: $B57, f: $B58] {  # if_15
+                  $B57: {  # true
                     exit_if  # if_15
                   }
-                  %b59 = block {  # false
+                  $B58: {  # false
                     exit_loop  # loop_9
                   }
                 }
-                %152:u32 = load %innerRow_2
-                %153:u32 = add %tileRow, %152
-                %154:u32 = load %k
-                %155:ptr<workgroup, f32, read_write> = access %mm_Asub, %153, %154
-                %156:f32 = load %155
-                store %ACached, %156
-                loop [i: %b60, b: %b61, c: %b62] {  # loop_10
-                  %b60 = block {  # initializer
-                    %innerCol_2:ptr<function, u32, read_write> = var, 0u  # %innerCol_2: 'innerCol'
-                    next_iteration %b61
+                %167:u32 = load %inner
+                %168:ptr<function, f32, read_write> = access %BCached, %167
+                %169:u32 = load %k
+                %170:u32 = load %inner
+                %171:u32 = add %tileCol, %170
+                %172:ptr<workgroup, f32, read_write> = access %mm_Bsub, %169, %171
+                %173:f32 = load %172
+                store %168, %173
+                continue  # -> $B56
+              }
+              $B56: {  # continuing
+                %174:u32 = load %inner
+                %175:u32 = add %174, 1u
+                store %inner, %175
+                next_iteration  # -> $B55
+              }
+            }
+            loop [i: $B59, b: $B60, c: $B61] {  # loop_10
+              $B59: {  # initializer
+                %innerRow_2:ptr<function, u32, read_write> = var, 0u  # %innerRow_2: 'innerRow'
+                next_iteration  # -> $B60
+              }
+              $B60: {  # body
+                %177:u32 = load %innerRow_2
+                %178:bool = lt %177, 4u
+                if %178 [t: $B62, f: $B63] {  # if_16
+                  $B62: {  # true
+                    exit_if  # if_16
                   }
-                  %b61 = block {  # body
-                    %158:u32 = load %innerCol_2
-                    %159:bool = lt %158, 4u
-                    if %159 [t: %b63, f: %b64] {  # if_16
-                      %b63 = block {  # true
-                        exit_if  # if_16
-                      }
-                      %b64 = block {  # false
-                        exit_loop  # loop_10
-                      }
-                    }
-                    %160:u32 = load %innerRow_2
-                    %161:u32 = mul %160, 4u
-                    %162:u32 = load %innerCol_2
-                    %index_2:u32 = add %161, %162  # %index_2: 'index'
-                    %164:ptr<function, f32, read_write> = access %acc, %index_2
-                    %165:ptr<function, f32, read_write> = access %acc, %index_2
-                    %166:f32 = load %165
-                    %167:f32 = load %ACached
-                    %168:u32 = load %innerCol_2
-                    %169:ptr<function, f32, read_write> = access %BCached, %168
-                    %170:f32 = load %169
-                    %171:f32 = mul %167, %170
-                    %172:f32 = add %166, %171
-                    store %164, %172
-                    continue %b62
-                  }
-                  %b62 = block {  # continuing
-                    %173:u32 = load %innerCol_2
-                    %174:u32 = add %173, 1u
-                    store %innerCol_2, %174
-                    next_iteration %b61
+                  $B63: {  # false
+                    exit_loop  # loop_10
                   }
                 }
-                continue %b57
+                %179:u32 = load %innerRow_2
+                %180:u32 = add %tileRow, %179
+                %181:u32 = load %k
+                %182:ptr<workgroup, f32, read_write> = access %mm_Asub, %180, %181
+                %183:f32 = load %182
+                store %ACached, %183
+                loop [i: $B64, b: $B65, c: $B66] {  # loop_11
+                  $B64: {  # initializer
+                    %innerCol_2:ptr<function, u32, read_write> = var, 0u  # %innerCol_2: 'innerCol'
+                    next_iteration  # -> $B65
+                  }
+                  $B65: {  # body
+                    %185:u32 = load %innerCol_2
+                    %186:bool = lt %185, 4u
+                    if %186 [t: $B67, f: $B68] {  # if_17
+                      $B67: {  # true
+                        exit_if  # if_17
+                      }
+                      $B68: {  # false
+                        exit_loop  # loop_11
+                      }
+                    }
+                    %187:u32 = load %innerRow_2
+                    %188:u32 = mul %187, 4u
+                    %189:u32 = load %innerCol_2
+                    %190:u32 = add %188, %189
+                    %index_2:u32 = let %190  # %index_2: 'index'
+                    %192:ptr<function, f32, read_write> = access %acc, %index_2
+                    %193:ptr<function, f32, read_write> = access %acc, %index_2
+                    %194:f32 = load %193
+                    %195:f32 = load %ACached
+                    %196:u32 = load %innerCol_2
+                    %197:ptr<function, f32, read_write> = access %BCached, %196
+                    %198:f32 = load %197
+                    %199:f32 = mul %195, %198
+                    %200:f32 = add %194, %199
+                    store %192, %200
+                    continue  # -> $B66
+                  }
+                  $B66: {  # continuing
+                    %201:u32 = load %innerCol_2
+                    %202:u32 = add %201, 1u
+                    store %innerCol_2, %202
+                    next_iteration  # -> $B65
+                  }
+                }
+                continue  # -> $B61
               }
-              %b57 = block {  # continuing
-                %175:u32 = load %innerRow_2
-                %176:u32 = add %175, 1u
-                store %innerRow_2, %176
-                next_iteration %b56
+              $B61: {  # continuing
+                %203:u32 = load %innerRow_2
+                %204:u32 = add %203, 1u
+                store %innerRow_2, %204
+                next_iteration  # -> $B60
               }
             }
-            continue %b47
+            continue  # -> $B51
           }
-          %b47 = block {  # continuing
-            %177:u32 = load %k
-            %178:u32 = add %177, 1u
-            store %k, %178
-            next_iteration %b46
+          $B51: {  # continuing
+            %205:u32 = load %k
+            %206:u32 = add %205, 1u
+            store %k, %206
+            next_iteration  # -> $B50
           }
         }
-        %179:void = workgroupBarrier
-        continue %b22
+        %207:void = msl.threadgroup_barrier 4u
+        continue  # -> $B26
       }
-      %b22 = block {  # continuing
-        %180:u32 = load %t
-        %181:u32 = add %180, 1u
-        store %t, %181
-        next_iteration %b21
+      $B26: {  # continuing
+        %208:u32 = load %t
+        %209:u32 = add %208, 1u
+        store %t, %209
+        next_iteration  # -> $B25
       }
     }
-    loop [i: %b65, b: %b66, c: %b67] {  # loop_11
-      %b65 = block {  # initializer
+    loop [i: $B69, b: $B70, c: $B71] {  # loop_12
+      $B69: {  # initializer
         %innerRow_3:ptr<function, u32, read_write> = var, 0u  # %innerRow_3: 'innerRow'
-        next_iteration %b66
+        next_iteration  # -> $B70
       }
-      %b66 = block {  # body
-        %183:u32 = load %innerRow_3
-        %184:bool = lt %183, 4u
-        if %184 [t: %b68, f: %b69] {  # if_17
-          %b68 = block {  # true
-            exit_if  # if_17
+      $B70: {  # body
+        %211:u32 = load %innerRow_3
+        %212:bool = lt %211, 4u
+        if %212 [t: $B72, f: $B73] {  # if_18
+          $B72: {  # true
+            exit_if  # if_18
           }
-          %b69 = block {  # false
-            exit_loop  # loop_11
+          $B73: {  # false
+            exit_loop  # loop_12
           }
         }
-        loop [i: %b70, b: %b71, c: %b72] {  # loop_12
-          %b70 = block {  # initializer
+        loop [i: $B74, b: $B75, c: $B76] {  # loop_13
+          $B74: {  # initializer
             %innerCol_3:ptr<function, u32, read_write> = var, 0u  # %innerCol_3: 'innerCol'
-            next_iteration %b71
+            next_iteration  # -> $B75
           }
-          %b71 = block {  # body
-            %186:u32 = load %innerCol_3
-            %187:bool = lt %186, 4u
-            if %187 [t: %b73, f: %b74] {  # if_18
-              %b73 = block {  # true
-                exit_if  # if_18
+          $B75: {  # body
+            %214:u32 = load %innerCol_3
+            %215:bool = lt %214, 4u
+            if %215 [t: $B77, f: $B78] {  # if_19
+              $B77: {  # true
+                exit_if  # if_19
               }
-              %b74 = block {  # false
-                exit_loop  # loop_12
+              $B78: {  # false
+                exit_loop  # loop_13
               }
             }
-            %188:u32 = load %innerRow_3
-            %189:u32 = mul %188, 4u
-            %190:u32 = load %innerCol_3
-            %index_3:u32 = add %189, %190  # %index_3: 'index'
-            %192:u32 = load %innerRow_3
-            %193:u32 = add %globalRow, %192
-            %194:u32 = load %innerCol_3
-            %195:u32 = add %globalCol, %194
-            %196:ptr<function, f32, read_write> = access %acc, %index_3
-            %197:f32 = load %196
-            %198:void = call %mm_write, %193, %195, %197
-            continue %b72
+            %216:u32 = load %innerRow_3
+            %217:u32 = mul %216, 4u
+            %218:u32 = load %innerCol_3
+            %219:u32 = add %217, %218
+            %index_3:u32 = let %219  # %index_3: 'index'
+            %221:u32 = load %innerRow_3
+            %222:u32 = add %globalRow, %221
+            %223:u32 = load %innerCol_3
+            %224:u32 = add %globalCol, %223
+            %225:ptr<function, f32, read_write> = access %acc, %index_3
+            %226:f32 = load %225
+            %227:void = call %mm_write, %222, %224, %226
+            continue  # -> $B76
           }
-          %b72 = block {  # continuing
-            %199:u32 = load %innerCol_3
-            %200:u32 = add %199, 1u
-            store %innerCol_3, %200
-            next_iteration %b71
+          $B76: {  # continuing
+            %228:u32 = load %innerCol_3
+            %229:u32 = add %228, 1u
+            store %innerCol_3, %229
+            next_iteration  # -> $B75
           }
         }
-        continue %b67
+        continue  # -> $B71
       }
-      %b67 = block {  # continuing
-        %201:u32 = load %innerRow_3
-        %202:u32 = add %201, 1u
-        store %innerRow_3, %202
-        next_iteration %b66
+      $B71: {  # continuing
+        %230:u32 = load %innerRow_3
+        %231:u32 = add %230, 1u
+        store %innerRow_3, %231
+        next_iteration  # -> $B70
       }
     }
     ret
   }
 }
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B79: {
+    %234:bool = eq %rhs, 0u
+    %235:u32 = select %rhs, 1u, %234
+    %236:u32 = div %lhs, %235
+    ret %236
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/tint/922.wgsl.expected.ir.msl b/test/tint/bug/tint/922.wgsl.expected.ir.msl
index 1ab7829..edb93e9 100644
--- a/test/tint/bug/tint/922.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/922.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Mat4x4_ = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Mat4x4_ = struct @align(16) {
   mx:vec4<f32> @offset(0)
   my:vec4<f32> @offset(16)
   mz:vec4<f32> @offset(32)
@@ -37,7 +37,7 @@
   member:vec4<f32> @offset(32), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %global:ptr<uniform, ub_SceneParams, read> = var @binding_point(0, 0)
   %global1:ptr<uniform, ub_MaterialParams, read> = var @binding_point(0, 1)
   %global2:ptr<uniform, ub_PacketParams, read> = var @binding_point(0, 2)
@@ -51,338 +51,452 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%Mat4x3GetCol0_ = func(%m:Mat4x3_):vec3<f32> -> %b2 {
-  %b2 = block {
+%Mat4x3GetCol0_ = func(%m:Mat4x3_):vec3<f32> {
+  $B2: {
     %m1:ptr<function, Mat4x3_, read_write> = var
     store %m1, %m
-    %x_e2:Mat4x3_ = load %m1
-    %x_e5:Mat4x3_ = load %m1
-    %x_e8:Mat4x3_ = load %m1
-    %18:f32 = access %x_e2, 0u, 0u
-    %19:f32 = access %x_e5, 1u, 0u
-    %20:f32 = access %x_e8, 2u, 0u
-    %21:vec3<f32> = construct %18, %19, %20
-    ret %21
+    %15:Mat4x3_ = load %m1
+    %x_e2:Mat4x3_ = let %15
+    %17:Mat4x3_ = load %m1
+    %x_e5:Mat4x3_ = let %17
+    %19:Mat4x3_ = load %m1
+    %x_e8:Mat4x3_ = let %19
+    %21:f32 = access %x_e2, 0u, 0u
+    %22:f32 = access %x_e5, 1u, 0u
+    %23:f32 = access %x_e8, 2u, 0u
+    %24:vec3<f32> = construct %21, %22, %23
+    ret %24
   }
 }
-%Mat4x3GetCol1_ = func(%m2:Mat4x3_):vec3<f32> -> %b3 {
-  %b3 = block {
+%Mat4x3GetCol1_ = func(%m2:Mat4x3_):vec3<f32> {
+  $B3: {
     %m3:ptr<function, Mat4x3_, read_write> = var
     store %m3, %m2
-    %x_e2_1:Mat4x3_ = load %m3  # %x_e2_1: 'x_e2'
-    %x_e5_1:Mat4x3_ = load %m3  # %x_e5_1: 'x_e5'
-    %x_e8_1:Mat4x3_ = load %m3  # %x_e8_1: 'x_e8'
-    %28:f32 = access %x_e2_1, 0u, 1u
-    %29:f32 = access %x_e5_1, 1u, 1u
-    %30:f32 = access %x_e8_1, 2u, 1u
-    %31:vec3<f32> = construct %28, %29, %30
-    ret %31
+    %28:Mat4x3_ = load %m3
+    %x_e2_1:Mat4x3_ = let %28  # %x_e2_1: 'x_e2'
+    %30:Mat4x3_ = load %m3
+    %x_e5_1:Mat4x3_ = let %30  # %x_e5_1: 'x_e5'
+    %32:Mat4x3_ = load %m3
+    %x_e8_1:Mat4x3_ = let %32  # %x_e8_1: 'x_e8'
+    %34:f32 = access %x_e2_1, 0u, 1u
+    %35:f32 = access %x_e5_1, 1u, 1u
+    %36:f32 = access %x_e8_1, 2u, 1u
+    %37:vec3<f32> = construct %34, %35, %36
+    ret %37
   }
 }
-%Mat4x3GetCol2_ = func(%m4:Mat4x3_):vec3<f32> -> %b4 {
-  %b4 = block {
+%Mat4x3GetCol2_ = func(%m4:Mat4x3_):vec3<f32> {
+  $B4: {
     %m5:ptr<function, Mat4x3_, read_write> = var
     store %m5, %m4
-    %x_e2_2:Mat4x3_ = load %m5  # %x_e2_2: 'x_e2'
-    %x_e5_2:Mat4x3_ = load %m5  # %x_e5_2: 'x_e5'
-    %x_e8_2:Mat4x3_ = load %m5  # %x_e8_2: 'x_e8'
-    %38:f32 = access %x_e2_2, 0u, 2u
-    %39:f32 = access %x_e5_2, 1u, 2u
-    %40:f32 = access %x_e8_2, 2u, 2u
-    %41:vec3<f32> = construct %38, %39, %40
-    ret %41
+    %41:Mat4x3_ = load %m5
+    %x_e2_2:Mat4x3_ = let %41  # %x_e2_2: 'x_e2'
+    %43:Mat4x3_ = load %m5
+    %x_e5_2:Mat4x3_ = let %43  # %x_e5_2: 'x_e5'
+    %45:Mat4x3_ = load %m5
+    %x_e8_2:Mat4x3_ = let %45  # %x_e8_2: 'x_e8'
+    %47:f32 = access %x_e2_2, 0u, 2u
+    %48:f32 = access %x_e5_2, 1u, 2u
+    %49:f32 = access %x_e8_2, 2u, 2u
+    %50:vec3<f32> = construct %47, %48, %49
+    ret %50
   }
 }
-%Mat4x3GetCol3_ = func(%m6:Mat4x3_):vec3<f32> -> %b5 {
-  %b5 = block {
+%Mat4x3GetCol3_ = func(%m6:Mat4x3_):vec3<f32> {
+  $B5: {
     %m7:ptr<function, Mat4x3_, read_write> = var
     store %m7, %m6
-    %x_e2_3:Mat4x3_ = load %m7  # %x_e2_3: 'x_e2'
-    %x_e5_3:Mat4x3_ = load %m7  # %x_e5_3: 'x_e5'
-    %x_e8_3:Mat4x3_ = load %m7  # %x_e8_3: 'x_e8'
-    %48:f32 = access %x_e2_3, 0u, 3u
-    %49:f32 = access %x_e5_3, 1u, 3u
-    %50:f32 = access %x_e8_3, 2u, 3u
-    %51:vec3<f32> = construct %48, %49, %50
-    ret %51
+    %54:Mat4x3_ = load %m7
+    %x_e2_3:Mat4x3_ = let %54  # %x_e2_3: 'x_e2'
+    %56:Mat4x3_ = load %m7
+    %x_e5_3:Mat4x3_ = let %56  # %x_e5_3: 'x_e5'
+    %58:Mat4x3_ = load %m7
+    %x_e8_3:Mat4x3_ = let %58  # %x_e8_3: 'x_e8'
+    %60:f32 = access %x_e2_3, 0u, 3u
+    %61:f32 = access %x_e5_3, 1u, 3u
+    %62:f32 = access %x_e8_3, 2u, 3u
+    %63:vec3<f32> = construct %60, %61, %62
+    ret %63
   }
 }
-%Mul = func(%m8:Mat4x4_, %v:vec4<f32>):vec4<f32> -> %b6 {
-  %b6 = block {
+%Mul = func(%m8:Mat4x4_, %v:vec4<f32>):vec4<f32> {
+  $B6: {
     %m9:ptr<function, Mat4x4_, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     store %m9, %m8
     store %v1, %v
-    %x_e4:Mat4x4_ = load %m9
-    %x_e6:vec4<f32> = load %v1
-    %x_e8_4:Mat4x4_ = load %m9  # %x_e8_4: 'x_e8'
-    %x_e10:vec4<f32> = load %v1
-    %x_e12:Mat4x4_ = load %m9
-    %x_e14:vec4<f32> = load %v1
-    %x_e16:Mat4x4_ = load %m9
-    %x_e18:vec4<f32> = load %v1
-    %65:vec4<f32> = access %x_e4, 0u
-    %66:f32 = dot %65, %x_e6
-    %67:vec4<f32> = access %x_e8_4, 1u
-    %68:f32 = dot %67, %x_e10
-    %69:vec4<f32> = access %x_e12, 2u
-    %70:f32 = dot %69, %x_e14
-    %71:vec4<f32> = access %x_e16, 3u
-    %72:f32 = dot %71, %x_e18
-    %73:vec4<f32> = construct %66, %68, %70, %72
-    ret %73
+    %69:Mat4x4_ = load %m9
+    %x_e4:Mat4x4_ = let %69
+    %71:vec4<f32> = load %v1
+    %x_e6:vec4<f32> = let %71
+    %73:Mat4x4_ = load %m9
+    %x_e8_4:Mat4x4_ = let %73  # %x_e8_4: 'x_e8'
+    %75:vec4<f32> = load %v1
+    %x_e10:vec4<f32> = let %75
+    %77:Mat4x4_ = load %m9
+    %x_e12:Mat4x4_ = let %77
+    %79:vec4<f32> = load %v1
+    %x_e14:vec4<f32> = let %79
+    %81:Mat4x4_ = load %m9
+    %x_e16:Mat4x4_ = let %81
+    %83:vec4<f32> = load %v1
+    %x_e18:vec4<f32> = let %83
+    %85:vec4<f32> = access %x_e4, 0u
+    %86:f32 = dot %85, %x_e6
+    %87:f32 = let %86
+    %88:vec4<f32> = access %x_e8_4, 1u
+    %89:f32 = dot %88, %x_e10
+    %90:f32 = let %89
+    %91:vec4<f32> = access %x_e12, 2u
+    %92:f32 = dot %91, %x_e14
+    %93:f32 = let %92
+    %94:vec4<f32> = access %x_e16, 3u
+    %95:f32 = dot %94, %x_e18
+    %96:vec4<f32> = construct %87, %90, %93, %95
+    ret %96
   }
 }
-%Mul1 = func(%m10:Mat4x3_, %v2:vec4<f32>):vec3<f32> -> %b7 {
-  %b7 = block {
+%Mul1 = func(%m10:Mat4x3_, %v2:vec4<f32>):vec3<f32> {
+  $B7: {
     %m11:ptr<function, Mat4x3_, read_write> = var
     %v3:ptr<function, vec4<f32>, read_write> = var
     store %m11, %m10
     store %v3, %v2
-    %x_e4_1:Mat4x3_ = load %m11  # %x_e4_1: 'x_e4'
-    %x_e6_1:vec4<f32> = load %v3  # %x_e6_1: 'x_e6'
-    %x_e8_5:Mat4x3_ = load %m11  # %x_e8_5: 'x_e8'
-    %x_e10_1:vec4<f32> = load %v3  # %x_e10_1: 'x_e10'
-    %x_e12_1:Mat4x3_ = load %m11  # %x_e12_1: 'x_e12'
-    %x_e14_1:vec4<f32> = load %v3  # %x_e14_1: 'x_e14'
-    %85:vec4<f32> = access %x_e4_1, 0u
-    %86:f32 = dot %85, %x_e6_1
-    %87:vec4<f32> = access %x_e8_5, 1u
-    %88:f32 = dot %87, %x_e10_1
-    %89:vec4<f32> = access %x_e12_1, 2u
-    %90:f32 = dot %89, %x_e14_1
-    %91:vec3<f32> = construct %86, %88, %90
-    ret %91
+    %102:Mat4x3_ = load %m11
+    %x_e4_1:Mat4x3_ = let %102  # %x_e4_1: 'x_e4'
+    %104:vec4<f32> = load %v3
+    %x_e6_1:vec4<f32> = let %104  # %x_e6_1: 'x_e6'
+    %106:Mat4x3_ = load %m11
+    %x_e8_5:Mat4x3_ = let %106  # %x_e8_5: 'x_e8'
+    %108:vec4<f32> = load %v3
+    %x_e10_1:vec4<f32> = let %108  # %x_e10_1: 'x_e10'
+    %110:Mat4x3_ = load %m11
+    %x_e12_1:Mat4x3_ = let %110  # %x_e12_1: 'x_e12'
+    %112:vec4<f32> = load %v3
+    %x_e14_1:vec4<f32> = let %112  # %x_e14_1: 'x_e14'
+    %114:vec4<f32> = access %x_e4_1, 0u
+    %115:f32 = dot %114, %x_e6_1
+    %116:f32 = let %115
+    %117:vec4<f32> = access %x_e8_5, 1u
+    %118:f32 = dot %117, %x_e10_1
+    %119:f32 = let %118
+    %120:vec4<f32> = access %x_e12_1, 2u
+    %121:f32 = dot %120, %x_e14_1
+    %122:vec3<f32> = construct %116, %119, %121
+    ret %122
   }
 }
-%Mul2 = func(%m12:Mat4x2_, %v4:vec4<f32>):vec2<f32> -> %b8 {
-  %b8 = block {
+%Mul2 = func(%m12:Mat4x2_, %v4:vec4<f32>):vec2<f32> {
+  $B8: {
     %m13:ptr<function, Mat4x2_, read_write> = var
     %v5:ptr<function, vec4<f32>, read_write> = var
     store %m13, %m12
     store %v5, %v4
-    %x_e4_2:Mat4x2_ = load %m13  # %x_e4_2: 'x_e4'
-    %x_e6_2:vec4<f32> = load %v5  # %x_e6_2: 'x_e6'
-    %x_e8_6:Mat4x2_ = load %m13  # %x_e8_6: 'x_e8'
-    %x_e10_2:vec4<f32> = load %v5  # %x_e10_2: 'x_e10'
-    %101:vec4<f32> = access %x_e4_2, 0u
-    %102:f32 = dot %101, %x_e6_2
-    %103:vec4<f32> = access %x_e8_6, 1u
-    %104:f32 = dot %103, %x_e10_2
-    %105:vec2<f32> = construct %102, %104
-    ret %105
+    %128:Mat4x2_ = load %m13
+    %x_e4_2:Mat4x2_ = let %128  # %x_e4_2: 'x_e4'
+    %130:vec4<f32> = load %v5
+    %x_e6_2:vec4<f32> = let %130  # %x_e6_2: 'x_e6'
+    %132:Mat4x2_ = load %m13
+    %x_e8_6:Mat4x2_ = let %132  # %x_e8_6: 'x_e8'
+    %134:vec4<f32> = load %v5
+    %x_e10_2:vec4<f32> = let %134  # %x_e10_2: 'x_e10'
+    %136:vec4<f32> = access %x_e4_2, 0u
+    %137:f32 = dot %136, %x_e6_2
+    %138:f32 = let %137
+    %139:vec4<f32> = access %x_e8_6, 1u
+    %140:f32 = dot %139, %x_e10_2
+    %141:vec2<f32> = construct %138, %140
+    ret %141
   }
 }
-%Mul3 = func(%v6:vec3<f32>, %m14:Mat4x3_):vec4<f32> -> %b9 {
-  %b9 = block {
+%Mul3 = func(%v6:vec3<f32>, %m14:Mat4x3_):vec4<f32> {
+  $B9: {
     %v7:ptr<function, vec3<f32>, read_write> = var
     %m15:ptr<function, Mat4x3_, read_write> = var
     store %v7, %v6
     store %m15, %m14
-    %x_e5_4:Mat4x3_ = load %m15  # %x_e5_4: 'x_e5'
-    %x_e6_3:vec3<f32> = call %Mat4x3GetCol0_, %x_e5_4  # %x_e6_3: 'x_e6'
-    %x_e7:vec3<f32> = load %v7
-    %x_e10_3:Mat4x3_ = load %m15  # %x_e10_3: 'x_e10'
-    %x_e11:vec3<f32> = call %Mat4x3GetCol1_, %x_e10_3
-    %x_e12_2:vec3<f32> = load %v7  # %x_e12_2: 'x_e12'
-    %x_e15:Mat4x3_ = load %m15
-    %x_e16_1:vec3<f32> = call %Mat4x3GetCol2_, %x_e15  # %x_e16_1: 'x_e16'
-    %x_e17:vec3<f32> = load %v7
-    %x_e20:Mat4x3_ = load %m15
-    %x_e21:vec3<f32> = call %Mat4x3GetCol3_, %x_e20
-    %x_e22:vec3<f32> = load %v7
-    %123:f32 = dot %x_e6_3, %x_e7
-    %124:f32 = dot %x_e11, %x_e12_2
-    %125:f32 = dot %x_e16_1, %x_e17
-    %126:f32 = dot %x_e21, %x_e22
-    %127:vec4<f32> = construct %123, %124, %125, %126
-    ret %127
+    %147:Mat4x3_ = load %m15
+    %x_e5_4:Mat4x3_ = let %147  # %x_e5_4: 'x_e5'
+    %149:vec3<f32> = call %Mat4x3GetCol0_, %x_e5_4
+    %x_e6_3:vec3<f32> = let %149  # %x_e6_3: 'x_e6'
+    %151:vec3<f32> = load %v7
+    %x_e7:vec3<f32> = let %151
+    %153:Mat4x3_ = load %m15
+    %x_e10_3:Mat4x3_ = let %153  # %x_e10_3: 'x_e10'
+    %155:vec3<f32> = call %Mat4x3GetCol1_, %x_e10_3
+    %x_e11:vec3<f32> = let %155
+    %157:vec3<f32> = load %v7
+    %x_e12_2:vec3<f32> = let %157  # %x_e12_2: 'x_e12'
+    %159:Mat4x3_ = load %m15
+    %x_e15:Mat4x3_ = let %159
+    %161:vec3<f32> = call %Mat4x3GetCol2_, %x_e15
+    %x_e16_1:vec3<f32> = let %161  # %x_e16_1: 'x_e16'
+    %163:vec3<f32> = load %v7
+    %x_e17:vec3<f32> = let %163
+    %165:Mat4x3_ = load %m15
+    %x_e20:Mat4x3_ = let %165
+    %167:vec3<f32> = call %Mat4x3GetCol3_, %x_e20
+    %x_e21:vec3<f32> = let %167
+    %169:vec3<f32> = load %v7
+    %x_e22:vec3<f32> = let %169
+    %171:f32 = dot %x_e6_3, %x_e7
+    %172:f32 = let %171
+    %173:f32 = dot %x_e11, %x_e12_2
+    %174:f32 = let %173
+    %175:f32 = dot %x_e16_1, %x_e17
+    %176:f32 = let %175
+    %177:f32 = dot %x_e21, %x_e22
+    %178:vec4<f32> = construct %172, %174, %176, %177
+    ret %178
   }
 }
-%x_Mat4x4_ = func(%n:f32):Mat4x4_ -> %b10 {
-  %b10 = block {
+%x_Mat4x4_ = func(%n:f32):Mat4x4_ {
+  $B10: {
     %n1:ptr<function, f32, read_write> = var
     %o:ptr<function, Mat4x4_, read_write> = var
     store %n1, %n
-    %x_e4_3:f32 = load %n1  # %x_e4_3: 'x_e4'
-    %133:ptr<function, vec4<f32>, read_write> = access %o, 0u
-    %134:vec4<f32> = construct %x_e4_3, 0.0f, 0.0f, 0.0f
-    store %133, %134
-    %x_e11_1:f32 = load %n1  # %x_e11_1: 'x_e11'
-    %136:ptr<function, vec4<f32>, read_write> = access %o, 1u
-    %137:vec4<f32> = construct 0.0f, %x_e11_1, 0.0f, 0.0f
-    store %136, %137
-    %x_e18_1:f32 = load %n1  # %x_e18_1: 'x_e18'
-    %139:ptr<function, vec4<f32>, read_write> = access %o, 2u
-    %140:vec4<f32> = construct 0.0f, 0.0f, %x_e18_1, 0.0f
-    store %139, %140
-    %x_e25:f32 = load %n1
-    %142:ptr<function, vec4<f32>, read_write> = access %o, 3u
-    %143:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_e25
-    store %142, %143
-    %x_e27:Mat4x4_ = load %o
+    %183:f32 = load %n1
+    %x_e4_3:f32 = let %183  # %x_e4_3: 'x_e4'
+    %185:ptr<function, vec4<f32>, read_write> = access %o, 0u
+    %186:vec4<f32> = construct %x_e4_3, 0.0f, 0.0f, 0.0f
+    store %185, %186
+    %187:f32 = load %n1
+    %x_e11_1:f32 = let %187  # %x_e11_1: 'x_e11'
+    %189:ptr<function, vec4<f32>, read_write> = access %o, 1u
+    %190:vec4<f32> = construct 0.0f, %x_e11_1, 0.0f, 0.0f
+    store %189, %190
+    %191:f32 = load %n1
+    %x_e18_1:f32 = let %191  # %x_e18_1: 'x_e18'
+    %193:ptr<function, vec4<f32>, read_write> = access %o, 2u
+    %194:vec4<f32> = construct 0.0f, 0.0f, %x_e18_1, 0.0f
+    store %193, %194
+    %195:f32 = load %n1
+    %x_e25:f32 = let %195
+    %197:ptr<function, vec4<f32>, read_write> = access %o, 3u
+    %198:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_e25
+    store %197, %198
+    %199:Mat4x4_ = load %o
+    %x_e27:Mat4x4_ = let %199
     ret %x_e27
   }
 }
-%x_Mat4x4_1 = func(%m16:Mat4x3_):Mat4x4_ -> %b11 {
-  %b11 = block {
+%x_Mat4x4_1 = func(%m16:Mat4x3_):Mat4x4_ {
+  $B11: {
     %m17:ptr<function, Mat4x3_, read_write> = var
     %o1:ptr<function, Mat4x4_, read_write> = var
     store %m17, %m16
-    %x_e4_4:Mat4x4_ = call %x_Mat4x4_, 1.0f  # %x_e4_4: 'x_e4'
+    %205:Mat4x4_ = call %x_Mat4x4_, 1.0f
+    %x_e4_4:Mat4x4_ = let %205  # %x_e4_4: 'x_e4'
     store %o1, %x_e4_4
-    %x_e7_1:Mat4x3_ = load %m17  # %x_e7_1: 'x_e7'
-    %151:ptr<function, vec4<f32>, read_write> = access %o1, 0u
-    %152:vec4<f32> = access %x_e7_1, 0u
-    store %151, %152
-    %x_e10_4:Mat4x3_ = load %m17  # %x_e10_4: 'x_e10'
-    %154:ptr<function, vec4<f32>, read_write> = access %o1, 1u
-    %155:vec4<f32> = access %x_e10_4, 1u
-    store %154, %155
-    %x_e13:Mat4x3_ = load %m17
-    %157:ptr<function, vec4<f32>, read_write> = access %o1, 2u
-    %158:vec4<f32> = access %x_e13, 2u
-    store %157, %158
-    %x_e15_1:Mat4x4_ = load %o1  # %x_e15_1: 'x_e15'
+    %207:Mat4x3_ = load %m17
+    %x_e7_1:Mat4x3_ = let %207  # %x_e7_1: 'x_e7'
+    %209:ptr<function, vec4<f32>, read_write> = access %o1, 0u
+    %210:vec4<f32> = access %x_e7_1, 0u
+    store %209, %210
+    %211:Mat4x3_ = load %m17
+    %x_e10_4:Mat4x3_ = let %211  # %x_e10_4: 'x_e10'
+    %213:ptr<function, vec4<f32>, read_write> = access %o1, 1u
+    %214:vec4<f32> = access %x_e10_4, 1u
+    store %213, %214
+    %215:Mat4x3_ = load %m17
+    %x_e13:Mat4x3_ = let %215
+    %217:ptr<function, vec4<f32>, read_write> = access %o1, 2u
+    %218:vec4<f32> = access %x_e13, 2u
+    store %217, %218
+    %219:Mat4x4_ = load %o1
+    %x_e15_1:Mat4x4_ = let %219  # %x_e15_1: 'x_e15'
     ret %x_e15_1
   }
 }
-%x_Mat4x4_2 = func(%m18:Mat4x2_):Mat4x4_ -> %b12 {
-  %b12 = block {
+%x_Mat4x4_2 = func(%m18:Mat4x2_):Mat4x4_ {
+  $B12: {
     %m19:ptr<function, Mat4x2_, read_write> = var
     %o2:ptr<function, Mat4x4_, read_write> = var
     store %m19, %m18
-    %x_e4_5:Mat4x4_ = call %x_Mat4x4_, 1.0f  # %x_e4_5: 'x_e4'
+    %225:Mat4x4_ = call %x_Mat4x4_, 1.0f
+    %x_e4_5:Mat4x4_ = let %225  # %x_e4_5: 'x_e4'
     store %o2, %x_e4_5
-    %x_e7_2:Mat4x2_ = load %m19  # %x_e7_2: 'x_e7'
-    %166:ptr<function, vec4<f32>, read_write> = access %o2, 0u
-    %167:vec4<f32> = access %x_e7_2, 0u
-    store %166, %167
-    %x_e10_5:Mat4x2_ = load %m19  # %x_e10_5: 'x_e10'
-    %169:ptr<function, vec4<f32>, read_write> = access %o2, 1u
-    %170:vec4<f32> = access %x_e10_5, 1u
-    store %169, %170
-    %x_e12_3:Mat4x4_ = load %o2  # %x_e12_3: 'x_e12'
+    %227:Mat4x2_ = load %m19
+    %x_e7_2:Mat4x2_ = let %227  # %x_e7_2: 'x_e7'
+    %229:ptr<function, vec4<f32>, read_write> = access %o2, 0u
+    %230:vec4<f32> = access %x_e7_2, 0u
+    store %229, %230
+    %231:Mat4x2_ = load %m19
+    %x_e10_5:Mat4x2_ = let %231  # %x_e10_5: 'x_e10'
+    %233:ptr<function, vec4<f32>, read_write> = access %o2, 1u
+    %234:vec4<f32> = access %x_e10_5, 1u
+    store %233, %234
+    %235:Mat4x4_ = load %o2
+    %x_e12_3:Mat4x4_ = let %235  # %x_e12_3: 'x_e12'
     ret %x_e12_3
   }
 }
-%x_Mat4x3_ = func(%n2:f32):Mat4x3_ -> %b13 {
-  %b13 = block {
+%x_Mat4x3_ = func(%n2:f32):Mat4x3_ {
+  $B13: {
     %n3:ptr<function, f32, read_write> = var
     %o3:ptr<function, Mat4x3_, read_write> = var
     store %n3, %n2
-    %x_e4_6:f32 = load %n3  # %x_e4_6: 'x_e4'
-    %177:ptr<function, vec4<f32>, read_write> = access %o3, 0u
-    %178:vec4<f32> = construct %x_e4_6, 0.0f, 0.0f, 0.0f
-    store %177, %178
-    %x_e11_2:f32 = load %n3  # %x_e11_2: 'x_e11'
-    %180:ptr<function, vec4<f32>, read_write> = access %o3, 1u
-    %181:vec4<f32> = construct 0.0f, %x_e11_2, 0.0f, 0.0f
-    store %180, %181
-    %x_e18_2:f32 = load %n3  # %x_e18_2: 'x_e18'
-    %183:ptr<function, vec4<f32>, read_write> = access %o3, 2u
-    %184:vec4<f32> = construct 0.0f, 0.0f, %x_e18_2, 0.0f
-    store %183, %184
-    %x_e21_1:Mat4x3_ = load %o3  # %x_e21_1: 'x_e21'
+    %241:f32 = load %n3
+    %x_e4_6:f32 = let %241  # %x_e4_6: 'x_e4'
+    %243:ptr<function, vec4<f32>, read_write> = access %o3, 0u
+    %244:vec4<f32> = construct %x_e4_6, 0.0f, 0.0f, 0.0f
+    store %243, %244
+    %245:f32 = load %n3
+    %x_e11_2:f32 = let %245  # %x_e11_2: 'x_e11'
+    %247:ptr<function, vec4<f32>, read_write> = access %o3, 1u
+    %248:vec4<f32> = construct 0.0f, %x_e11_2, 0.0f, 0.0f
+    store %247, %248
+    %249:f32 = load %n3
+    %x_e18_2:f32 = let %249  # %x_e18_2: 'x_e18'
+    %251:ptr<function, vec4<f32>, read_write> = access %o3, 2u
+    %252:vec4<f32> = construct 0.0f, 0.0f, %x_e18_2, 0.0f
+    store %251, %252
+    %253:Mat4x3_ = load %o3
+    %x_e21_1:Mat4x3_ = let %253  # %x_e21_1: 'x_e21'
     ret %x_e21_1
   }
 }
-%x_Mat4x3_1 = func(%m20:Mat4x4_):Mat4x3_ -> %b14 {
-  %b14 = block {
+%x_Mat4x3_1 = func(%m20:Mat4x4_):Mat4x3_ {
+  $B14: {
     %m21:ptr<function, Mat4x4_, read_write> = var
     %o4:ptr<function, Mat4x3_, read_write> = var
     store %m21, %m20
-    %x_e4_7:Mat4x4_ = load %m21  # %x_e4_7: 'x_e4'
-    %191:ptr<function, vec4<f32>, read_write> = access %o4, 0u
-    %192:vec4<f32> = access %x_e4_7, 0u
-    store %191, %192
-    %x_e7_3:Mat4x4_ = load %m21  # %x_e7_3: 'x_e7'
-    %194:ptr<function, vec4<f32>, read_write> = access %o4, 1u
-    %195:vec4<f32> = access %x_e7_3, 1u
-    store %194, %195
-    %x_e10_6:Mat4x4_ = load %m21  # %x_e10_6: 'x_e10'
-    %197:ptr<function, vec4<f32>, read_write> = access %o4, 2u
-    %198:vec4<f32> = access %x_e10_6, 2u
-    store %197, %198
-    %x_e12_4:Mat4x3_ = load %o4  # %x_e12_4: 'x_e12'
+    %259:Mat4x4_ = load %m21
+    %x_e4_7:Mat4x4_ = let %259  # %x_e4_7: 'x_e4'
+    %261:ptr<function, vec4<f32>, read_write> = access %o4, 0u
+    %262:vec4<f32> = access %x_e4_7, 0u
+    store %261, %262
+    %263:Mat4x4_ = load %m21
+    %x_e7_3:Mat4x4_ = let %263  # %x_e7_3: 'x_e7'
+    %265:ptr<function, vec4<f32>, read_write> = access %o4, 1u
+    %266:vec4<f32> = access %x_e7_3, 1u
+    store %265, %266
+    %267:Mat4x4_ = load %m21
+    %x_e10_6:Mat4x4_ = let %267  # %x_e10_6: 'x_e10'
+    %269:ptr<function, vec4<f32>, read_write> = access %o4, 2u
+    %270:vec4<f32> = access %x_e10_6, 2u
+    store %269, %270
+    %271:Mat4x3_ = load %o4
+    %x_e12_4:Mat4x3_ = let %271  # %x_e12_4: 'x_e12'
     ret %x_e12_4
   }
 }
-%main1 = func():void -> %b15 {
-  %b15 = block {
+%main1 = func():void {
+  $B15: {
     %t_PosMtx:ptr<function, Mat4x3_, read_write> = var
     %t_TexSpaceCoord:ptr<function, vec2<f32>, read_write> = var
-    %x_e15_2:f32 = load %a_PosMtxIdx1  # %x_e15_2: 'x_e15'
-    %204:i32 = convert %x_e15_2
-    %205:ptr<uniform, Mat4x3_, read> = access %global2, 0u, %204
-    %x_e18_3:Mat4x3_ = load %205  # %x_e18_3: 'x_e18'
+    %276:f32 = load %a_PosMtxIdx1
+    %x_e15_2:f32 = let %276  # %x_e15_2: 'x_e15'
+    %278:i32 = call %tint_f32_to_i32, %x_e15_2
+    %280:ptr<uniform, Mat4x3_, read> = access %global2, 0u, %278
+    %281:Mat4x3_ = load %280
+    %x_e18_3:Mat4x3_ = let %281  # %x_e18_3: 'x_e18'
     store %t_PosMtx, %x_e18_3
-    %x_e23:Mat4x3_ = load %t_PosMtx
-    %x_e24:Mat4x4_ = call %x_Mat4x4_1, %x_e23
-    %x_e25_1:vec3<f32> = load %a_Position1  # %x_e25_1: 'x_e25'
-    %x_e29:Mat4x3_ = load %t_PosMtx
-    %x_e30:Mat4x4_ = call %x_Mat4x4_1, %x_e29
-    %x_e31:vec3<f32> = load %a_Position1
-    %213:vec4<f32> = construct %x_e31, 1.0f
-    %x_e34:vec4<f32> = call %Mul, %x_e30, %213
-    %215:ptr<uniform, Mat4x4_, read> = access %global, 0u
-    %x_e35:Mat4x4_ = load %215
-    %x_e37:Mat4x3_ = load %t_PosMtx
-    %x_e38:Mat4x4_ = call %x_Mat4x4_1, %x_e37
-    %x_e39:vec3<f32> = load %a_Position1
-    %x_e43:Mat4x3_ = load %t_PosMtx
-    %x_e44:Mat4x4_ = call %x_Mat4x4_1, %x_e43
-    %x_e45:vec3<f32> = load %a_Position1
-    %223:vec4<f32> = construct %x_e45, 1.0f
-    %x_e48:vec4<f32> = call %Mul, %x_e44, %223
-    %x_e49:vec4<f32> = call %Mul, %x_e35, %x_e48
+    %283:Mat4x3_ = load %t_PosMtx
+    %x_e23:Mat4x3_ = let %283
+    %285:Mat4x4_ = call %x_Mat4x4_1, %x_e23
+    %x_e24:Mat4x4_ = let %285
+    %287:vec3<f32> = load %a_Position1
+    %x_e25_1:vec3<f32> = let %287  # %x_e25_1: 'x_e25'
+    %289:Mat4x3_ = load %t_PosMtx
+    %x_e29:Mat4x3_ = let %289
+    %291:Mat4x4_ = call %x_Mat4x4_1, %x_e29
+    %x_e30:Mat4x4_ = let %291
+    %293:vec3<f32> = load %a_Position1
+    %x_e31:vec3<f32> = let %293
+    %295:vec4<f32> = construct %x_e31, 1.0f
+    %296:vec4<f32> = call %Mul, %x_e30, %295
+    %x_e34:vec4<f32> = let %296
+    %298:ptr<uniform, Mat4x4_, read> = access %global, 0u
+    %299:Mat4x4_ = load %298
+    %x_e35:Mat4x4_ = let %299
+    %301:Mat4x3_ = load %t_PosMtx
+    %x_e37:Mat4x3_ = let %301
+    %303:Mat4x4_ = call %x_Mat4x4_1, %x_e37
+    %x_e38:Mat4x4_ = let %303
+    %305:vec3<f32> = load %a_Position1
+    %x_e39:vec3<f32> = let %305
+    %307:Mat4x3_ = load %t_PosMtx
+    %x_e43:Mat4x3_ = let %307
+    %309:Mat4x4_ = call %x_Mat4x4_1, %x_e43
+    %x_e44:Mat4x4_ = let %309
+    %311:vec3<f32> = load %a_Position1
+    %x_e45:vec3<f32> = let %311
+    %313:vec4<f32> = construct %x_e45, 1.0f
+    %314:vec4<f32> = call %Mul, %x_e44, %313
+    %x_e48:vec4<f32> = let %314
+    %316:vec4<f32> = call %Mul, %x_e35, %x_e48
+    %x_e49:vec4<f32> = let %316
     store %gl_Position, %x_e49
-    %x_e50:vec4<f32> = load %a_Color1
+    %318:vec4<f32> = load %a_Color1
+    %x_e50:vec4<f32> = let %318
     store %v_Color, %x_e50
-    %227:ptr<uniform, vec4<f32>, read> = access %global1, 1u
-    %x_e52:vec4<f32> = load %227
-    %229:f32 = access %x_e52, 0u
-    %230:bool = eq %229, 2.0f
-    if %230 [t: %b16, f: %b17] {  # if_1
-      %b16 = block {  # true
-        %x_e59:vec3<f32> = load %a_Normal1
-        %232:ptr<uniform, Mat4x2_, read> = access %global1, 0u, 0i
-        %x_e64:Mat4x2_ = load %232
-        %x_e65:vec3<f32> = load %a_Normal1
-        %235:vec4<f32> = construct %x_e65, 1.0f
-        %x_e68:vec2<f32> = call %Mul2, %x_e64, %235
-        %237:vec2<f32> = swizzle %x_e68, xy
-        store %v_TexCoord, %237
+    %320:ptr<uniform, vec4<f32>, read> = access %global1, 1u
+    %321:vec4<f32> = load %320
+    %x_e52:vec4<f32> = let %321
+    %323:f32 = access %x_e52, 0u
+    %324:bool = eq %323, 2.0f
+    if %324 [t: $B16, f: $B17] {  # if_1
+      $B16: {  # true
+        %325:vec3<f32> = load %a_Normal1
+        %x_e59:vec3<f32> = let %325
+        %327:ptr<uniform, Mat4x2_, read> = access %global1, 0u, 0i
+        %328:Mat4x2_ = load %327
+        %x_e64:Mat4x2_ = let %328
+        %330:vec3<f32> = load %a_Normal1
+        %x_e65:vec3<f32> = let %330
+        %332:vec4<f32> = construct %x_e65, 1.0f
+        %333:vec2<f32> = call %Mul2, %x_e64, %332
+        %x_e68:vec2<f32> = let %333
+        %335:vec2<f32> = swizzle %x_e68, xy
+        store %v_TexCoord, %335
         ret
       }
-      %b17 = block {  # false
-        %x_e73:vec2<f32> = load %a_UV1
-        %239:ptr<uniform, Mat4x2_, read> = access %global1, 0u, 0i
-        %x_e79:Mat4x2_ = load %239
-        %x_e80:vec2<f32> = load %a_UV1
-        %242:vec4<f32> = construct %x_e80, 1.0f, 1.0f
-        %x_e84:vec2<f32> = call %Mul2, %x_e79, %242
-        %244:vec2<f32> = swizzle %x_e84, xy
-        store %v_TexCoord, %244
+      $B17: {  # false
+        %336:vec2<f32> = load %a_UV1
+        %x_e73:vec2<f32> = let %336
+        %338:ptr<uniform, Mat4x2_, read> = access %global1, 0u, 0i
+        %339:Mat4x2_ = load %338
+        %x_e79:Mat4x2_ = let %339
+        %341:vec2<f32> = load %a_UV1
+        %x_e80:vec2<f32> = let %341
+        %343:vec4<f32> = construct %x_e80, 1.0f, 1.0f
+        %344:vec2<f32> = call %Mul2, %x_e79, %343
+        %x_e84:vec2<f32> = let %344
+        %346:vec2<f32> = swizzle %x_e84, xy
+        store %v_TexCoord, %346
         ret
       }
     }
     unreachable
   }
 }
-%tint_symbol = @vertex func(%a_Position:vec3<f32> [@location(0)], %a_UV:vec2<f32> [@location(1)], %a_Color:vec4<f32> [@location(2)], %a_Normal:vec3<f32> [@location(3)], %a_PosMtxIdx:f32 [@location(4)]):VertexOutput -> %b18 {
-  %b18 = block {
+%tint_symbol = @vertex func(%a_Position:vec3<f32> [@location(0)], %a_UV:vec2<f32> [@location(1)], %a_Color:vec4<f32> [@location(2)], %a_Normal:vec3<f32> [@location(3)], %a_PosMtxIdx:f32 [@location(4)]):VertexOutput {
+  $B18: {
     store %a_Position1, %a_Position
     store %a_UV1, %a_UV
     store %a_Color1, %a_Color
     store %a_Normal1, %a_Normal
     store %a_PosMtxIdx1, %a_PosMtxIdx
-    %251:void = call %main1
-    %x_e11_3:vec4<f32> = load %v_Color  # %x_e11_3: 'x_e11'
-    %x_e13_1:vec2<f32> = load %v_TexCoord  # %x_e13_1: 'x_e13'
-    %x_e15_3:vec4<f32> = load %gl_Position  # %x_e15_3: 'x_e15'
-    %255:VertexOutput = construct %x_e11_3, %x_e13_1, %x_e15_3
-    ret %255
+    %353:void = call %main1
+    %354:vec4<f32> = load %v_Color
+    %x_e11_3:vec4<f32> = let %354  # %x_e11_3: 'x_e11'
+    %356:vec2<f32> = load %v_TexCoord
+    %x_e13_1:vec2<f32> = let %356  # %x_e13_1: 'x_e13'
+    %358:vec4<f32> = load %gl_Position
+    %x_e15_3:vec4<f32> = let %358  # %x_e15_3: 'x_e15'
+    %360:VertexOutput = construct %x_e11_3, %x_e13_1, %x_e15_3
+    ret %360
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B19: {
+    %362:i32 = convert %value
+    %363:bool = gte %value, -2147483648.0f
+    %364:i32 = select -2147483648i, %362, %363
+    %365:bool = lte %value, 2147483520.0f
+    %366:i32 = select 2147483647i, %364, %365
+    ret %366
   }
 }
 
diff --git a/test/tint/bug/tint/926.wgsl.expected.ir.msl b/test/tint/bug/tint/926.wgsl.expected.ir.msl
index 2a8cef0..4ee0699 100644
--- a/test/tint/bug/tint/926.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/926.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: DrawIndirectArgs = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: DrawIndirectArgs = struct @align(4) {
   vertexCount:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %drawOut:ptr<storage, DrawIndirectArgs, read_write> = var @binding_point(0, 5)
   %cubeVerts:ptr<private, u32, read_write> = var, 0u
 }
 
-%computeMain = @compute @workgroup_size(1, 1, 1) func(%global_id:vec3<u32> [@global_invocation_id]):void -> %b2 {
-  %b2 = block {
+%computeMain = @compute @workgroup_size(1, 1, 1) func(%global_id:vec3<u32> [@global_invocation_id]):void {
+  $B2: {
     %5:ptr<storage, atomic<u32>, read_write> = access %drawOut, 0u
     %6:u32 = load %cubeVerts
-    %firstVertex:u32 = atomicAdd %5, %6
+    %7:u32 = atomicAdd %5, %6
+    %firstVertex:u32 = let %7
     ret
   }
 }
diff --git a/test/tint/bug/tint/942.wgsl.expected.ir.msl b/test/tint/bug/tint/942.wgsl.expected.ir.msl
index 3dad2ff..fc90c50 100644
--- a/test/tint/bug/tint/942.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/942.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Params = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Params = struct @align(4) {
   filterDim:u32 @offset(0)
   blockDim:u32 @offset(4)
 }
@@ -9,7 +9,7 @@
   value:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %samp:ptr<handle, sampler, read> = var @binding_point(0, 0)
   %params:ptr<uniform, Params, read> = var @binding_point(0, 1)
   %inputTex:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
@@ -18,256 +18,299 @@
   %tile:ptr<workgroup, array<array<vec3<f32>, 256>, 4>, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(64, 1, 1) func(%WorkGroupID:vec3<u32> [@workgroup_id], %LocalInvocationID:vec3<u32> [@local_invocation_id]):void -> %b2 {
-  %b2 = block {
-    %10:ptr<uniform, u32, read> = access %params, 0u
-    %11:u32 = load %10
-    %12:u32 = sub %11, 1u
-    %filterOffset:u32 = div %12, 2u
-    %14:texture_2d<f32> = load %inputTex
-    %dims:vec2<u32> = textureDimensions %14, 0i
-    %16:vec2<u32> = swizzle %WorkGroupID, xy
-    %17:ptr<uniform, u32, read> = access %params, 1u
-    %18:u32 = load %17
-    %19:vec2<u32> = construct %18, 4u
-    %20:vec2<u32> = mul %16, %19
-    %21:vec2<u32> = swizzle %LocalInvocationID, xy
-    %22:vec2<u32> = mul %21, vec2<u32>(4u, 1u)
-    %23:vec2<u32> = add %20, %22
-    %24:vec2<u32> = construct %filterOffset, 0u
-    %baseIndex:vec2<u32> = sub %23, %24
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
-        %r:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b4
+%tint_symbol = @compute @workgroup_size(64, 1, 1) func(%WorkGroupID:vec3<u32> [@workgroup_id], %LocalInvocationID:vec3<u32> [@local_invocation_id], %tint_local_index:u32 [@local_invocation_index]):void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
+        next_iteration %tint_local_index  # -> $B4
       }
-      %b4 = block {  # body
-        %27:u32 = load %r
-        %28:bool = lt %27, 4u
-        if %28 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
-            exit_if  # if_1
-          }
-          %b7 = block {  # false
+      $B4 (%idx:u32): {  # body
+        %12:bool = gte %idx, 1024u
+        if %12 [t: $B6] {  # if_1
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
-        loop [i: %b8, b: %b9, c: %b10] {  # loop_2
-          %b8 = block {  # initializer
-            %c:ptr<function, u32, read_write> = var, 0u
-            next_iteration %b9
-          }
-          %b9 = block {  # body
-            %30:u32 = load %c
-            %31:bool = lt %30, 4u
-            if %31 [t: %b11, f: %b12] {  # if_2
-              %b11 = block {  # true
-                exit_if  # if_2
-              }
-              %b12 = block {  # false
-                exit_loop  # loop_2
-              }
-            }
-            %32:u32 = load %c
-            %33:u32 = load %r
-            %34:vec2<u32> = construct %32, %33
-            %35:vec2<u32> = add %baseIndex, %34
-            %loadIndex:ptr<function, vec2<u32>, read_write> = var, %35
-            %37:ptr<uniform, u32, read> = access %flip, 0u
-            %38:u32 = load %37
-            %39:bool = neq %38, 0u
-            if %39 [t: %b13] {  # if_3
-              %b13 = block {  # true
-                %40:vec2<u32> = load %loadIndex
-                %41:vec2<u32> = swizzle %40, yx
-                store %loadIndex, %41
-                exit_if  # if_3
-              }
-            }
-            %42:u32 = load %r
-            %43:u32 = access %LocalInvocationID, 0u
-            %44:u32 = mul 4u, %43
-            %45:u32 = load %c
-            %46:u32 = add %44, %45
-            %47:ptr<workgroup, vec3<f32>, read_write> = access %tile, %42, %46
-            %48:texture_2d<f32> = load %inputTex
-            %49:sampler = load %samp
-            %50:vec2<u32> = load %loadIndex
-            %51:vec2<f32> = convert %50
-            %52:vec2<f32> = add %51, vec2<f32>(0.25f)
-            %53:vec2<f32> = convert %dims
-            %54:vec2<f32> = div %52, %53
-            %55:vec4<f32> = textureSampleLevel %48, %49, %54, 0.0f
-            %56:vec3<f32> = swizzle %55, xyz
-            store %47, %56
-            continue %b10
-          }
-          %b10 = block {  # continuing
-            %57:u32 = load %c
-            %58:u32 = add %57, 1u
-            store %c, %58
-            next_iteration %b9
-          }
-        }
-        continue %b5
+        %13:u32 = mod %idx, 256u
+        %14:u32 = div %idx, 256u
+        %15:ptr<workgroup, vec3<f32>, read_write> = access %tile, %14, %13
+        store %15, vec3<f32>(0.0f)
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %59:u32 = load %r
-        %60:u32 = add %59, 1u
-        store %r, %60
-        next_iteration %b4
+      $B5: {  # continuing
+        %16:u32 = add %idx, 64u
+        next_iteration %16  # -> $B4
       }
     }
-    %61:void = workgroupBarrier
-    loop [i: %b14, b: %b15, c: %b16] {  # loop_3
-      %b14 = block {  # initializer
-        %r_1:ptr<function, u32, read_write> = var, 0u  # %r_1: 'r'
-        next_iteration %b15
+    %17:void = msl.threadgroup_barrier 4u
+    %18:ptr<uniform, u32, read> = access %params, 0u
+    %19:u32 = load %18
+    %20:u32 = sub %19, 1u
+    %21:u32 = call %tint_div_u32, %20, 2u
+    %filterOffset:u32 = let %21
+    %24:texture_2d<f32> = load %inputTex
+    %25:vec2<u32> = textureDimensions %24, 0i
+    %dims:vec2<u32> = let %25
+    %27:vec2<u32> = swizzle %WorkGroupID, xy
+    %28:ptr<uniform, u32, read> = access %params, 1u
+    %29:u32 = load %28
+    %30:vec2<u32> = construct %29, 4u
+    %31:vec2<u32> = mul %27, %30
+    %32:vec2<u32> = swizzle %LocalInvocationID, xy
+    %33:vec2<u32> = mul %32, vec2<u32>(4u, 1u)
+    %34:vec2<u32> = add %31, %33
+    %35:vec2<u32> = let %34
+    %36:vec2<u32> = construct %filterOffset, 0u
+    %37:vec2<u32> = sub %35, %36
+    %baseIndex:vec2<u32> = let %37
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_2
+      $B7: {  # initializer
+        %r:ptr<function, u32, read_write> = var, 0u
+        next_iteration  # -> $B8
       }
-      %b15 = block {  # body
-        %63:u32 = load %r_1
-        %64:bool = lt %63, 4u
-        if %64 [t: %b17, f: %b18] {  # if_4
-          %b17 = block {  # true
-            exit_if  # if_4
+      $B8: {  # body
+        %40:u32 = load %r
+        %41:bool = lt %40, 4u
+        if %41 [t: $B10, f: $B11] {  # if_2
+          $B10: {  # true
+            exit_if  # if_2
           }
-          %b18 = block {  # false
-            exit_loop  # loop_3
+          $B11: {  # false
+            exit_loop  # loop_2
           }
         }
-        loop [i: %b19, b: %b20, c: %b21] {  # loop_4
-          %b19 = block {  # initializer
-            %c_1:ptr<function, u32, read_write> = var, 0u  # %c_1: 'c'
-            next_iteration %b20
+        loop [i: $B12, b: $B13, c: $B14] {  # loop_3
+          $B12: {  # initializer
+            %c:ptr<function, u32, read_write> = var, 0u
+            next_iteration  # -> $B13
           }
-          %b20 = block {  # body
-            %66:u32 = load %c_1
-            %67:bool = lt %66, 4u
-            if %67 [t: %b22, f: %b23] {  # if_5
-              %b22 = block {  # true
-                exit_if  # if_5
+          $B13: {  # body
+            %43:u32 = load %c
+            %44:bool = lt %43, 4u
+            if %44 [t: $B15, f: $B16] {  # if_3
+              $B15: {  # true
+                exit_if  # if_3
               }
-              %b23 = block {  # false
-                exit_loop  # loop_4
+              $B16: {  # false
+                exit_loop  # loop_3
               }
             }
-            %68:u32 = load %c_1
-            %69:u32 = load %r_1
-            %70:vec2<u32> = construct %68, %69
-            %71:vec2<u32> = add %baseIndex, %70
-            %writeIndex:ptr<function, vec2<u32>, read_write> = var, %71
-            %73:ptr<uniform, u32, read> = access %flip, 0u
-            %74:u32 = load %73
-            %75:bool = neq %74, 0u
-            if %75 [t: %b24] {  # if_6
-              %b24 = block {  # true
-                %76:vec2<u32> = load %writeIndex
-                %77:vec2<u32> = swizzle %76, yx
-                store %writeIndex, %77
+            %45:u32 = load %c
+            %46:u32 = load %r
+            %47:vec2<u32> = construct %45, %46
+            %48:vec2<u32> = add %baseIndex, %47
+            %loadIndex:ptr<function, vec2<u32>, read_write> = var, %48
+            %50:ptr<uniform, u32, read> = access %flip, 0u
+            %51:u32 = load %50
+            %52:bool = neq %51, 0u
+            if %52 [t: $B17] {  # if_4
+              $B17: {  # true
+                %53:vec2<u32> = load %loadIndex
+                %54:vec2<u32> = swizzle %53, yx
+                store %loadIndex, %54
+                exit_if  # if_4
+              }
+            }
+            %55:u32 = load %r
+            %56:u32 = access %LocalInvocationID, 0u
+            %57:u32 = mul 4u, %56
+            %58:u32 = load %c
+            %59:u32 = add %57, %58
+            %60:ptr<workgroup, vec3<f32>, read_write> = access %tile, %55, %59
+            %61:ptr<workgroup, vec3<f32>, read_write> = let %60
+            %62:texture_2d<f32> = load %inputTex
+            %63:texture_2d<f32> = let %62
+            %64:sampler = load %samp
+            %65:sampler = let %64
+            %66:vec2<u32> = load %loadIndex
+            %67:vec2<f32> = convert %66
+            %68:vec2<f32> = add %67, vec2<f32>(0.25f)
+            %69:vec2<f32> = let %68
+            %70:vec2<f32> = convert %dims
+            %71:vec2<f32> = div %69, %70
+            %72:vec4<f32> = textureSampleLevel %63, %65, %71, 0.0f
+            %73:vec3<f32> = swizzle %72, xyz
+            store %61, %73
+            continue  # -> $B14
+          }
+          $B14: {  # continuing
+            %74:u32 = load %c
+            %75:u32 = add %74, 1u
+            store %c, %75
+            next_iteration  # -> $B13
+          }
+        }
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %76:u32 = load %r
+        %77:u32 = add %76, 1u
+        store %r, %77
+        next_iteration  # -> $B8
+      }
+    }
+    %78:void = msl.threadgroup_barrier 4u
+    loop [i: $B18, b: $B19, c: $B20] {  # loop_4
+      $B18: {  # initializer
+        %r_1:ptr<function, u32, read_write> = var, 0u  # %r_1: 'r'
+        next_iteration  # -> $B19
+      }
+      $B19: {  # body
+        %80:u32 = load %r_1
+        %81:bool = lt %80, 4u
+        if %81 [t: $B21, f: $B22] {  # if_5
+          $B21: {  # true
+            exit_if  # if_5
+          }
+          $B22: {  # false
+            exit_loop  # loop_4
+          }
+        }
+        loop [i: $B23, b: $B24, c: $B25] {  # loop_5
+          $B23: {  # initializer
+            %c_1:ptr<function, u32, read_write> = var, 0u  # %c_1: 'c'
+            next_iteration  # -> $B24
+          }
+          $B24: {  # body
+            %83:u32 = load %c_1
+            %84:bool = lt %83, 4u
+            if %84 [t: $B26, f: $B27] {  # if_6
+              $B26: {  # true
                 exit_if  # if_6
               }
-            }
-            %78:u32 = access %LocalInvocationID, 0u
-            %79:u32 = mul 4u, %78
-            %80:u32 = load %c_1
-            %center:u32 = add %79, %80
-            %82:bool = gte %center, %filterOffset
-            %83:bool = if %82 [t: %b25, f: %b26] {  # if_7
-              %b25 = block {  # true
-                %84:u32 = sub 256u, %filterOffset
-                %85:bool = lt %center, %84
-                exit_if %85  # if_7
-              }
-              %b26 = block {  # false
-                exit_if false  # if_7
+              $B27: {  # false
+                exit_loop  # loop_5
               }
             }
-            %86:bool = if %83 [t: %b27, f: %b28] {  # if_8
-              %b27 = block {  # true
-                %87:vec2<u32> = load %writeIndex
-                %88:vec2<bool> = lt %87, %dims
-                %89:bool = all %88
-                exit_if %89  # if_8
+            %85:u32 = load %c_1
+            %86:u32 = load %r_1
+            %87:vec2<u32> = construct %85, %86
+            %88:vec2<u32> = add %baseIndex, %87
+            %writeIndex:ptr<function, vec2<u32>, read_write> = var, %88
+            %90:ptr<uniform, u32, read> = access %flip, 0u
+            %91:u32 = load %90
+            %92:bool = neq %91, 0u
+            if %92 [t: $B28] {  # if_7
+              $B28: {  # true
+                %93:vec2<u32> = load %writeIndex
+                %94:vec2<u32> = swizzle %93, yx
+                store %writeIndex, %94
+                exit_if  # if_7
               }
-              %b28 = block {  # false
+            }
+            %95:u32 = access %LocalInvocationID, 0u
+            %96:u32 = mul 4u, %95
+            %97:u32 = load %c_1
+            %98:u32 = add %96, %97
+            %center:u32 = let %98
+            %100:bool = gte %center, %filterOffset
+            %101:bool = if %100 [t: $B29, f: $B30] {  # if_8
+              $B29: {  # true
+                %102:u32 = sub 256u, %filterOffset
+                %103:bool = lt %center, %102
+                exit_if %103  # if_8
+              }
+              $B30: {  # false
                 exit_if false  # if_8
               }
             }
-            if %86 [t: %b29] {  # if_9
-              %b29 = block {  # true
-                %acc:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
-                loop [i: %b30, b: %b31, c: %b32] {  # loop_5
-                  %b30 = block {  # initializer
-                    %f:ptr<function, u32, read_write> = var, 0u
-                    next_iteration %b31
-                  }
-                  %b31 = block {  # body
-                    %92:u32 = load %f
-                    %93:ptr<uniform, u32, read> = access %params, 0u
-                    %94:u32 = load %93
-                    %95:bool = lt %92, %94
-                    if %95 [t: %b33, f: %b34] {  # if_10
-                      %b33 = block {  # true
-                        exit_if  # if_10
-                      }
-                      %b34 = block {  # false
-                        exit_loop  # loop_5
-                      }
-                    }
-                    %96:u32 = load %f
-                    %97:u32 = add %center, %96
-                    %98:u32 = sub %97, %filterOffset
-                    %i:ptr<function, u32, read_write> = var, %98
-                    %100:vec3<f32> = load %acc
-                    %101:ptr<uniform, u32, read> = access %params, 0u
-                    %102:u32 = load %101
-                    %103:f32 = convert %102
-                    %104:f32 = div 1.0f, %103
-                    %105:u32 = load %r_1
-                    %106:u32 = load %i
-                    %107:ptr<workgroup, vec3<f32>, read_write> = access %tile, %105, %106
-                    %108:vec3<f32> = load %107
-                    %109:vec3<f32> = mul %104, %108
-                    %110:vec3<f32> = add %100, %109
-                    store %acc, %110
-                    continue %b32
-                  }
-                  %b32 = block {  # continuing
-                    %111:u32 = load %f
-                    %112:u32 = add %111, 1u
-                    store %f, %112
-                    next_iteration %b31
-                  }
-                }
-                %113:texture_storage_2d<rgba8unorm, write> = load %outputTex
-                %114:vec2<u32> = load %writeIndex
-                %115:vec3<f32> = load %acc
-                %116:vec4<f32> = construct %115, 1.0f
-                %117:void = textureStore %113, %114, %116
-                exit_if  # if_9
+            %104:bool = if %101 [t: $B31, f: $B32] {  # if_9
+              $B31: {  # true
+                %105:vec2<u32> = load %writeIndex
+                %106:vec2<bool> = lt %105, %dims
+                %107:bool = all %106
+                exit_if %107  # if_9
+              }
+              $B32: {  # false
+                exit_if false  # if_9
               }
             }
-            continue %b21
+            if %104 [t: $B33] {  # if_10
+              $B33: {  # true
+                %acc:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
+                loop [i: $B34, b: $B35, c: $B36] {  # loop_6
+                  $B34: {  # initializer
+                    %f:ptr<function, u32, read_write> = var, 0u
+                    next_iteration  # -> $B35
+                  }
+                  $B35: {  # body
+                    %110:u32 = load %f
+                    %111:ptr<uniform, u32, read> = access %params, 0u
+                    %112:u32 = load %111
+                    %113:bool = lt %110, %112
+                    if %113 [t: $B37, f: $B38] {  # if_11
+                      $B37: {  # true
+                        exit_if  # if_11
+                      }
+                      $B38: {  # false
+                        exit_loop  # loop_6
+                      }
+                    }
+                    %114:u32 = load %f
+                    %115:u32 = add %center, %114
+                    %116:u32 = sub %115, %filterOffset
+                    %i:ptr<function, u32, read_write> = var, %116
+                    %118:vec3<f32> = load %acc
+                    %119:vec3<f32> = let %118
+                    %120:ptr<uniform, u32, read> = access %params, 0u
+                    %121:u32 = load %120
+                    %122:f32 = convert %121
+                    %123:f32 = div 1.0f, %122
+                    %124:u32 = load %r_1
+                    %125:u32 = load %i
+                    %126:ptr<workgroup, vec3<f32>, read_write> = access %tile, %124, %125
+                    %127:vec3<f32> = load %126
+                    %128:vec3<f32> = mul %123, %127
+                    %129:vec3<f32> = add %119, %128
+                    store %acc, %129
+                    continue  # -> $B36
+                  }
+                  $B36: {  # continuing
+                    %130:u32 = load %f
+                    %131:u32 = add %130, 1u
+                    store %f, %131
+                    next_iteration  # -> $B35
+                  }
+                }
+                %132:texture_storage_2d<rgba8unorm, write> = load %outputTex
+                %133:texture_storage_2d<rgba8unorm, write> = let %132
+                %134:vec2<u32> = load %writeIndex
+                %135:vec2<u32> = let %134
+                %136:vec3<f32> = load %acc
+                %137:vec4<f32> = construct %136, 1.0f
+                %138:void = textureStore %133, %135, %137
+                exit_if  # if_10
+              }
+            }
+            continue  # -> $B25
           }
-          %b21 = block {  # continuing
-            %118:u32 = load %c_1
-            %119:u32 = add %118, 1u
-            store %c_1, %119
-            next_iteration %b20
+          $B25: {  # continuing
+            %139:u32 = load %c_1
+            %140:u32 = add %139, 1u
+            store %c_1, %140
+            next_iteration  # -> $B24
           }
         }
-        continue %b16
+        continue  # -> $B20
       }
-      %b16 = block {  # continuing
-        %120:u32 = load %r_1
-        %121:u32 = add %120, 1u
-        store %r_1, %121
-        next_iteration %b15
+      $B20: {  # continuing
+        %141:u32 = load %r_1
+        %142:u32 = add %141, 1u
+        store %r_1, %142
+        next_iteration  # -> $B19
       }
     }
     ret
   }
 }
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B39: {
+    %145:bool = eq %rhs, 0u
+    %146:u32 = select %rhs, 1u, %145
+    %147:u32 = div %lhs, %146
+    ret %147
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/bug/tint/948.wgsl.expected.ir.msl b/test/tint/bug/tint/948.wgsl.expected.ir.msl
index d3af39e..9dfc9b8 100644
--- a/test/tint/bug/tint/948.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/948.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: LeftOver = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: LeftOver = struct @align(16) {
   time:f32 @offset(0)
   padding:u32 @offset(4)
   worldViewProjection:mat4x4<f32> @offset(16)
@@ -16,7 +16,7 @@
   glFragColor_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_20:ptr<uniform, LeftOver, read> = var @binding_point(2, 9)
   %frameMapTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(2, 3)
   %frameMapSampler:ptr<handle, sampler, read> = var @binding_point(2, 2)
@@ -37,50 +37,66 @@
   %vUV:ptr<private, vec2<f32>, read_write> = var
 }
 
-%getFrameData_f1_ = func(%frameID:ptr<function, f32, read_write>):mat4x4<f32> -> %b2 {
-  %b2 = block {
+%getFrameData_f1_ = func(%frameID:ptr<function, f32, read_write>):mat4x4<f32> {
+  $B2: {
     %fX:ptr<function, f32, read_write> = var
-    %x_15:f32 = load %frameID
-    %23:ptr<uniform, f32, read> = access %x_20, 7u
-    %x_25:f32 = load %23
-    %25:f32 = div %x_15, %x_25
-    store %fX, %25
-    %x_37:f32 = load %fX
-    %27:texture_2d<f32> = load %frameMapTexture
-    %28:sampler = load %frameMapSampler
-    %29:vec2<f32> = construct %x_37, 0.0f
-    %x_40:vec4<f32> = textureSampleBias %27, %28, %29, 0.0f
-    %x_44:f32 = load %fX
-    %32:texture_2d<f32> = load %frameMapTexture
-    %33:sampler = load %frameMapSampler
-    %34:vec2<f32> = construct %x_44, 0.25f
-    %x_47:vec4<f32> = textureSampleBias %32, %33, %34, 0.0f
-    %x_51:f32 = load %fX
-    %37:texture_2d<f32> = load %frameMapTexture
-    %38:sampler = load %frameMapSampler
-    %39:vec2<f32> = construct %x_51, 0.5f
-    %x_54:vec4<f32> = textureSampleBias %37, %38, %39, 0.0f
-    %41:f32 = access %x_40, 0u
-    %42:f32 = access %x_40, 1u
-    %43:f32 = access %x_40, 2u
-    %44:f32 = access %x_40, 3u
-    %45:vec4<f32> = construct %41, %42, %43, %44
-    %46:f32 = access %x_47, 0u
-    %47:f32 = access %x_47, 1u
-    %48:f32 = access %x_47, 2u
-    %49:f32 = access %x_47, 3u
-    %50:vec4<f32> = construct %46, %47, %48, %49
-    %51:f32 = access %x_54, 0u
-    %52:f32 = access %x_54, 1u
-    %53:f32 = access %x_54, 2u
-    %54:f32 = access %x_54, 3u
-    %55:vec4<f32> = construct %51, %52, %53, %54
-    %56:mat4x4<f32> = construct %45, %50, %55, vec4<f32>(0.0f)
-    ret %56
+    %22:f32 = load %frameID
+    %x_15:f32 = let %22
+    %24:ptr<uniform, f32, read> = access %x_20, 7u
+    %25:f32 = load %24
+    %x_25:f32 = let %25
+    %27:f32 = div %x_15, %x_25
+    store %fX, %27
+    %28:f32 = load %fX
+    %x_37:f32 = let %28
+    %30:texture_2d<f32> = load %frameMapTexture
+    %31:texture_2d<f32> = let %30
+    %32:sampler = load %frameMapSampler
+    %33:sampler = let %32
+    %34:vec2<f32> = construct %x_37, 0.0f
+    %35:vec4<f32> = textureSampleBias %31, %33, %34, 0.0f
+    %x_40:vec4<f32> = let %35
+    %37:f32 = load %fX
+    %x_44:f32 = let %37
+    %39:texture_2d<f32> = load %frameMapTexture
+    %40:texture_2d<f32> = let %39
+    %41:sampler = load %frameMapSampler
+    %42:sampler = let %41
+    %43:vec2<f32> = construct %x_44, 0.25f
+    %44:vec4<f32> = textureSampleBias %40, %42, %43, 0.0f
+    %x_47:vec4<f32> = let %44
+    %46:f32 = load %fX
+    %x_51:f32 = let %46
+    %48:texture_2d<f32> = load %frameMapTexture
+    %49:texture_2d<f32> = let %48
+    %50:sampler = load %frameMapSampler
+    %51:sampler = let %50
+    %52:vec2<f32> = construct %x_51, 0.5f
+    %53:vec4<f32> = textureSampleBias %49, %51, %52, 0.0f
+    %x_54:vec4<f32> = let %53
+    %55:f32 = access %x_40, 0u
+    %56:f32 = access %x_40, 1u
+    %57:f32 = access %x_40, 2u
+    %58:f32 = access %x_40, 3u
+    %59:vec4<f32> = construct %55, %56, %57, %58
+    %60:vec4<f32> = let %59
+    %61:f32 = access %x_47, 0u
+    %62:f32 = access %x_47, 1u
+    %63:f32 = access %x_47, 2u
+    %64:f32 = access %x_47, 3u
+    %65:vec4<f32> = construct %61, %62, %63, %64
+    %66:vec4<f32> = let %65
+    %67:f32 = access %x_54, 0u
+    %68:f32 = access %x_54, 1u
+    %69:f32 = access %x_54, 2u
+    %70:f32 = access %x_54, 3u
+    %71:vec4<f32> = construct %67, %68, %69, %70
+    %72:mat4x4<f32> = construct %60, %66, %71, vec4<f32>(0.0f)
+    ret %72
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
+%main_1 = func():void {
+  $B3: {
     %color:ptr<function, vec4<f32>, read_write> = var
     %tileUV:ptr<function, vec2<f32>, read_write> = var
     %tileID:ptr<function, vec2<f32>, read_write> = var
@@ -100,275 +116,340 @@
     %alpha:ptr<function, f32, read_write> = var
     %mixed:ptr<function, vec3<f32>, read_write> = var
     store %color, vec4<f32>(0.0f)
-    %x_86:vec2<f32> = load %tUV
-    %77:vec2<f32> = fract %x_86
-    store %tileUV, %77
-    %x_91:f32 = load_vector_element %tileUV, 1u
-    %79:f32 = sub 1.0f, %x_91
-    store_vector_element %tileUV, 1u, %79
-    %x_95:vec2<f32> = load %tUV
-    %81:vec2<f32> = floor %x_95
-    store %tileID, %81
-    %82:ptr<uniform, vec2<f32>, read> = access %x_20, 5u
-    %x_101:vec2<f32> = load %82
-    %84:vec2<f32> = div vec2<f32>(1.0f), %x_101
-    store %sheetUnits, %84
-    %85:ptr<uniform, f32, read> = access %x_20, 7u
-    %x_106:f32 = load %85
-    %87:f32 = div 1.0f, %x_106
-    store %spriteUnits, %87
-    %88:ptr<uniform, vec2<f32>, read> = access %x_20, 4u
-    %x_111:vec2<f32> = load %88
-    %90:vec2<f32> = div vec2<f32>(1.0f), %x_111
-    store %stageUnits, %90
+    %92:vec2<f32> = load %tUV
+    %x_86:vec2<f32> = let %92
+    %94:vec2<f32> = fract %x_86
+    store %tileUV, %94
+    %95:f32 = load_vector_element %tileUV, 1u
+    %x_91:f32 = let %95
+    %97:f32 = sub 1.0f, %x_91
+    store_vector_element %tileUV, 1u, %97
+    %98:vec2<f32> = load %tUV
+    %x_95:vec2<f32> = let %98
+    %100:vec2<f32> = floor %x_95
+    store %tileID, %100
+    %101:ptr<uniform, vec2<f32>, read> = access %x_20, 5u
+    %102:vec2<f32> = load %101
+    %x_101:vec2<f32> = let %102
+    %104:vec2<f32> = div vec2<f32>(1.0f), %x_101
+    store %sheetUnits, %104
+    %105:ptr<uniform, f32, read> = access %x_20, 7u
+    %106:f32 = load %105
+    %x_106:f32 = let %106
+    %108:f32 = div 1.0f, %x_106
+    store %spriteUnits, %108
+    %109:ptr<uniform, vec2<f32>, read> = access %x_20, 4u
+    %110:vec2<f32> = load %109
+    %x_111:vec2<f32> = let %110
+    %112:vec2<f32> = div vec2<f32>(1.0f), %x_111
+    store %stageUnits, %112
     store %i, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_122:i32 = load %i
-        %92:bool = lt %x_122, 2i
-        if %92 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %113:i32 = load %i
+        %x_122:i32 = let %113
+        %115:bool = lt %x_122, 2i
+        if %115 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_126:i32 = load %i
-        switch %x_126 [c: (1i, %b8), c: (0i, %b9), c: (default, %b10)] {  # switch_1
-          %b8 = block {  # case
-            %x_150:vec2<f32> = load %tileID
-            %95:ptr<uniform, vec2<f32>, read> = access %x_20, 4u
-            %x_154:vec2<f32> = load %95
-            %97:texture_2d<f32> = load %tileMapsTexture1
-            %98:sampler = load %tileMapsSampler
-            %99:vec2<f32> = add %x_150, vec2<f32>(0.5f)
-            %100:vec2<f32> = div %99, %x_154
-            %x_156:vec4<f32> = textureSampleBias %97, %98, %100, 0.0f
-            %102:f32 = access %x_156, 0u
-            store %frameID_1, %102
+        %116:i32 = load %i
+        %x_126:i32 = let %116
+        switch %x_126 [c: (1i, $B8), c: (0i, $B9), c: (default, $B10)] {  # switch_1
+          $B8: {  # case
+            %118:vec2<f32> = load %tileID
+            %x_150:vec2<f32> = let %118
+            %120:ptr<uniform, vec2<f32>, read> = access %x_20, 4u
+            %121:vec2<f32> = load %120
+            %x_154:vec2<f32> = let %121
+            %123:texture_2d<f32> = load %tileMapsTexture1
+            %124:sampler = load %tileMapsSampler
+            %125:vec2<f32> = add %x_150, vec2<f32>(0.5f)
+            %126:vec2<f32> = div %125, %x_154
+            %127:vec4<f32> = textureSampleBias %123, %124, %126, 0.0f
+            %x_156:vec4<f32> = let %127
+            %129:f32 = access %x_156, 0u
+            store %frameID_1, %129
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
-            %x_136:vec2<f32> = load %tileID
-            %104:ptr<uniform, vec2<f32>, read> = access %x_20, 4u
-            %x_140:vec2<f32> = load %104
-            %106:texture_2d<f32> = load %tileMapsTexture0
-            %107:sampler = load %tileMapsSampler
-            %108:vec2<f32> = add %x_136, vec2<f32>(0.5f)
-            %109:vec2<f32> = div %108, %x_140
-            %x_142:vec4<f32> = textureSampleBias %106, %107, %109, 0.0f
-            %111:f32 = access %x_142, 0u
-            store %frameID_1, %111
+          $B9: {  # case
+            %130:vec2<f32> = load %tileID
+            %x_136:vec2<f32> = let %130
+            %132:ptr<uniform, vec2<f32>, read> = access %x_20, 4u
+            %133:vec2<f32> = load %132
+            %x_140:vec2<f32> = let %133
+            %135:texture_2d<f32> = load %tileMapsTexture0
+            %136:sampler = load %tileMapsSampler
+            %137:vec2<f32> = add %x_136, vec2<f32>(0.5f)
+            %138:vec2<f32> = div %137, %x_140
+            %139:vec4<f32> = textureSampleBias %135, %136, %138, 0.0f
+            %x_142:vec4<f32> = let %139
+            %141:f32 = access %x_142, 0u
+            store %frameID_1, %141
             exit_switch  # switch_1
           }
-          %b10 = block {  # case
+          $B10: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_166:f32 = load %frameID_1
-        %113:ptr<uniform, f32, read> = access %x_20, 7u
-        %x_169:f32 = load %113
-        %115:texture_2d<f32> = load %animationMapTexture
-        %116:sampler = load %animationMapSampler
-        %117:f32 = add %x_166, 0.5f
-        %118:f32 = div %117, %x_169
-        %119:vec2<f32> = construct %118, 0.0f
-        %x_172:vec4<f32> = textureSampleBias %115, %116, %119, 0.0f
+        %142:f32 = load %frameID_1
+        %x_166:f32 = let %142
+        %144:ptr<uniform, f32, read> = access %x_20, 7u
+        %145:f32 = load %144
+        %x_169:f32 = let %145
+        %147:texture_2d<f32> = load %animationMapTexture
+        %148:texture_2d<f32> = let %147
+        %149:sampler = load %animationMapSampler
+        %150:sampler = let %149
+        %151:f32 = add %x_166, 0.5f
+        %152:f32 = div %151, %x_169
+        %153:vec2<f32> = construct %152, 0.0f
+        %154:vec4<f32> = textureSampleBias %148, %150, %153, 0.0f
+        %x_172:vec4<f32> = let %154
         store %animationData, %x_172
-        %x_174:f32 = load_vector_element %animationData, 1u
-        %122:bool = gt %x_174, 0.0f
-        if %122 [t: %b11] {  # if_2
-          %b11 = block {  # true
-            %123:ptr<uniform, f32, read> = access %x_20, 0u
-            %x_181:f32 = load %123
-            %x_184:f32 = load_vector_element %animationData, 2u
-            %126:f32 = mul %x_181, %x_184
-            %127:f32 = mod %126, 1.0f
-            store %mt, %127
+        %156:f32 = load_vector_element %animationData, 1u
+        %x_174:f32 = let %156
+        %158:bool = gt %x_174, 0.0f
+        if %158 [t: $B11] {  # if_2
+          $B11: {  # true
+            %159:ptr<uniform, f32, read> = access %x_20, 0u
+            %160:f32 = load %159
+            %x_181:f32 = let %160
+            %162:f32 = load_vector_element %animationData, 2u
+            %x_184:f32 = let %162
+            %164:f32 = mul %x_181, %x_184
+            %165:f32 = mod %164, 1.0f
+            store %mt, %165
             store %f, 0.0f
-            loop [b: %b12, c: %b13] {  # loop_2
-              %b12 = block {  # body
-                %x_193:f32 = load %f
-                %129:bool = lt %x_193, 8.0f
-                if %129 [t: %b14, f: %b15] {  # if_3
-                  %b14 = block {  # true
+            loop [b: $B12, c: $B13] {  # loop_2
+              $B12: {  # body
+                %166:f32 = load %f
+                %x_193:f32 = let %166
+                %168:bool = lt %x_193, 8.0f
+                if %168 [t: $B14, f: $B15] {  # if_3
+                  $B14: {  # true
                     exit_if  # if_3
                   }
-                  %b15 = block {  # false
+                  $B15: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                %x_197:f32 = load_vector_element %animationData, 1u
-                %x_198:f32 = load %mt
-                %132:bool = gt %x_197, %x_198
-                if %132 [t: %b16] {  # if_4
-                  %b16 = block {  # true
-                    %x_203:f32 = load_vector_element %animationData, 0u
+                %169:f32 = load_vector_element %animationData, 1u
+                %x_197:f32 = let %169
+                %171:f32 = load %mt
+                %x_198:f32 = let %171
+                %173:bool = gt %x_197, %x_198
+                if %173 [t: $B16] {  # if_4
+                  $B16: {  # true
+                    %174:f32 = load_vector_element %animationData, 0u
+                    %x_203:f32 = let %174
                     store %frameID_1, %x_203
                     exit_loop  # loop_2
                   }
                 }
-                %x_208:f32 = load %frameID_1
-                %135:ptr<uniform, f32, read> = access %x_20, 7u
-                %x_211:f32 = load %135
-                %x_214:f32 = load %f
+                %176:f32 = load %frameID_1
+                %x_208:f32 = let %176
+                %178:ptr<uniform, f32, read> = access %x_20, 7u
+                %179:f32 = load %178
+                %x_211:f32 = let %179
+                %181:f32 = load %f
+                %x_214:f32 = let %181
                 %x_217:vec4<f32> = let vec4<f32>(0.0f)
                 store %animationData, %x_217
-                continue %b13
+                continue  # -> $B13
               }
-              %b13 = block {  # continuing
-                %x_218:f32 = load %f
-                %140:f32 = add %x_218, 1.0f
-                store %f, %140
-                next_iteration %b12
+              $B13: {  # continuing
+                %184:f32 = load %f
+                %x_218:f32 = let %184
+                %186:f32 = add %x_218, 1.0f
+                store %f, %186
+                next_iteration  # -> $B12
               }
             }
             exit_if  # if_2
           }
         }
-        %x_222:f32 = load %frameID_1
-        %142:f32 = add %x_222, 0.5f
-        store %param, %142
-        %x_225:mat4x4<f32> = call %getFrameData_f1_, %param
+        %187:f32 = load %frameID_1
+        %x_222:f32 = let %187
+        %189:f32 = add %x_222, 0.5f
+        store %param, %189
+        %190:mat4x4<f32> = call %getFrameData_f1_, %param
+        %x_225:mat4x4<f32> = let %190
         store %frameData, %x_225
-        %144:ptr<function, vec4<f32>, read_write> = access %frameData, 0i
-        %x_228:vec4<f32> = load %144
-        %146:ptr<uniform, vec2<f32>, read> = access %x_20, 5u
-        %x_231:vec2<f32> = load %146
-        %148:f32 = access %x_228, 3u
-        %149:f32 = access %x_228, 2u
-        %150:vec2<f32> = construct %148, %149
-        %151:vec2<f32> = div %150, %x_231
-        store %frameSize, %151
-        %152:ptr<function, vec4<f32>, read_write> = access %frameData, 0i
-        %x_235:vec4<f32> = load %152
-        %x_237:vec2<f32> = load %sheetUnits
-        %155:f32 = access %x_235, 0u
-        %156:f32 = access %x_235, 1u
-        %157:vec2<f32> = construct %155, %156
-        %158:vec2<f32> = mul %157, %x_237
-        store %offset_1, %158
-        %159:ptr<function, vec4<f32>, read_write> = access %frameData, 2i
-        %x_241:vec4<f32> = load %159
-        %161:ptr<function, vec4<f32>, read_write> = access %frameData, 0i
-        %x_244:vec4<f32> = load %161
-        %163:f32 = access %x_241, 0u
-        %164:f32 = access %x_241, 1u
-        %165:vec2<f32> = construct %163, %164
-        %166:f32 = access %x_244, 3u
-        %167:f32 = access %x_244, 2u
-        %168:vec2<f32> = construct %166, %167
-        %169:vec2<f32> = div %165, %168
-        store %ratio, %169
-        %170:ptr<function, vec4<f32>, read_write> = access %frameData, 2i
-        %x_248:f32 = load_vector_element %170, 2u
-        %172:bool = eq %x_248, 1.0f
-        if %172 [t: %b17] {  # if_5
-          %b17 = block {  # true
-            %x_252:vec2<f32> = load %tileUV
-            %174:f32 = access %x_252, 1u
-            %175:f32 = access %x_252, 0u
-            %176:vec2<f32> = construct %174, %175
-            store %tileUV, %176
+        %192:ptr<function, vec4<f32>, read_write> = access %frameData, 0i
+        %193:vec4<f32> = load %192
+        %x_228:vec4<f32> = let %193
+        %195:ptr<uniform, vec2<f32>, read> = access %x_20, 5u
+        %196:vec2<f32> = load %195
+        %x_231:vec2<f32> = let %196
+        %198:f32 = access %x_228, 3u
+        %199:f32 = access %x_228, 2u
+        %200:vec2<f32> = construct %198, %199
+        %201:vec2<f32> = div %200, %x_231
+        store %frameSize, %201
+        %202:ptr<function, vec4<f32>, read_write> = access %frameData, 0i
+        %203:vec4<f32> = load %202
+        %x_235:vec4<f32> = let %203
+        %205:vec2<f32> = load %sheetUnits
+        %x_237:vec2<f32> = let %205
+        %207:f32 = access %x_235, 0u
+        %208:f32 = access %x_235, 1u
+        %209:vec2<f32> = construct %207, %208
+        %210:vec2<f32> = mul %209, %x_237
+        store %offset_1, %210
+        %211:ptr<function, vec4<f32>, read_write> = access %frameData, 2i
+        %212:vec4<f32> = load %211
+        %x_241:vec4<f32> = let %212
+        %214:ptr<function, vec4<f32>, read_write> = access %frameData, 0i
+        %215:vec4<f32> = load %214
+        %x_244:vec4<f32> = let %215
+        %217:f32 = access %x_241, 0u
+        %218:f32 = access %x_241, 1u
+        %219:vec2<f32> = construct %217, %218
+        %220:vec2<f32> = let %219
+        %221:f32 = access %x_244, 3u
+        %222:f32 = access %x_244, 2u
+        %223:vec2<f32> = construct %221, %222
+        %224:vec2<f32> = div %220, %223
+        store %ratio, %224
+        %225:ptr<function, vec4<f32>, read_write> = access %frameData, 2i
+        %226:f32 = load_vector_element %225, 2u
+        %x_248:f32 = let %226
+        %228:bool = eq %x_248, 1.0f
+        if %228 [t: $B17] {  # if_5
+          $B17: {  # true
+            %229:vec2<f32> = load %tileUV
+            %x_252:vec2<f32> = let %229
+            %231:f32 = access %x_252, 1u
+            %232:f32 = access %x_252, 0u
+            %233:vec2<f32> = construct %231, %232
+            store %tileUV, %233
             exit_if  # if_5
           }
         }
-        %x_254:i32 = load %i
-        %178:bool = eq %x_254, 0i
-        if %178 [t: %b18, f: %b19] {  # if_6
-          %b18 = block {  # true
-            %x_263:vec2<f32> = load %tileUV
-            %x_264:vec2<f32> = load %frameSize
-            %x_266:vec2<f32> = load %offset_1
-            %182:texture_2d<f32> = load %spriteSheetTexture
-            %183:sampler = load %spriteSheetSampler
-            %184:vec2<f32> = mul %x_263, %x_264
-            %185:vec2<f32> = add %184, %x_266
-            %x_268:vec4<f32> = textureSample %182, %183, %185
+        %234:i32 = load %i
+        %x_254:i32 = let %234
+        %236:bool = eq %x_254, 0i
+        if %236 [t: $B18, f: $B19] {  # if_6
+          $B18: {  # true
+            %237:vec2<f32> = load %tileUV
+            %x_263:vec2<f32> = let %237
+            %239:vec2<f32> = load %frameSize
+            %x_264:vec2<f32> = let %239
+            %241:vec2<f32> = load %offset_1
+            %x_266:vec2<f32> = let %241
+            %243:texture_2d<f32> = load %spriteSheetTexture
+            %244:sampler = load %spriteSheetSampler
+            %245:vec2<f32> = mul %x_263, %x_264
+            %246:vec2<f32> = add %245, %x_266
+            %247:vec4<f32> = textureSample %243, %244, %246
+            %x_268:vec4<f32> = let %247
             store %color, %x_268
             exit_if  # if_6
           }
-          %b19 = block {  # false
-            %x_274:vec2<f32> = load %tileUV
-            %x_275:vec2<f32> = load %frameSize
-            %x_277:vec2<f32> = load %offset_1
-            %190:texture_2d<f32> = load %spriteSheetTexture
-            %191:sampler = load %spriteSheetSampler
-            %192:vec2<f32> = mul %x_274, %x_275
-            %193:vec2<f32> = add %192, %x_277
-            %x_279:vec4<f32> = textureSample %190, %191, %193
+          $B19: {  # false
+            %249:vec2<f32> = load %tileUV
+            %x_274:vec2<f32> = let %249
+            %251:vec2<f32> = load %frameSize
+            %x_275:vec2<f32> = let %251
+            %253:vec2<f32> = load %offset_1
+            %x_277:vec2<f32> = let %253
+            %255:texture_2d<f32> = load %spriteSheetTexture
+            %256:sampler = load %spriteSheetSampler
+            %257:vec2<f32> = mul %x_274, %x_275
+            %258:vec2<f32> = add %257, %x_277
+            %259:vec4<f32> = textureSample %255, %256, %258
+            %x_279:vec4<f32> = let %259
             store %nc, %x_279
-            %x_283:f32 = load_vector_element %color, 3u
-            %x_285:f32 = load_vector_element %nc, 3u
-            %197:f32 = add %x_283, %x_285
-            %198:f32 = min %197, 1.0f
-            store %alpha, %198
-            %x_290:vec4<f32> = load %color
-            %x_292:vec4<f32> = load %nc
-            %x_295:f32 = load_vector_element %nc, 3u
-            %202:f32 = access %x_290, 0u
-            %203:f32 = access %x_290, 1u
-            %204:f32 = access %x_290, 2u
-            %205:vec3<f32> = construct %202, %203, %204
-            %206:f32 = access %x_292, 0u
-            %207:f32 = access %x_292, 1u
-            %208:f32 = access %x_292, 2u
-            %209:vec3<f32> = construct %206, %207, %208
-            %210:vec3<f32> = construct %x_295, %x_295, %x_295
-            %211:vec3<f32> = mix %205, %209, %210
-            store %mixed, %211
-            %x_298:vec3<f32> = load %mixed
-            %x_299:f32 = load %alpha
-            %214:f32 = access %x_298, 0u
-            %215:f32 = access %x_298, 1u
-            %216:f32 = access %x_298, 2u
-            %217:vec4<f32> = construct %214, %215, %216, %x_299
-            store %color, %217
+            %261:f32 = load_vector_element %color, 3u
+            %x_283:f32 = let %261
+            %263:f32 = load_vector_element %nc, 3u
+            %x_285:f32 = let %263
+            %265:f32 = add %x_283, %x_285
+            %266:f32 = min %265, 1.0f
+            store %alpha, %266
+            %267:vec4<f32> = load %color
+            %x_290:vec4<f32> = let %267
+            %269:vec4<f32> = load %nc
+            %x_292:vec4<f32> = let %269
+            %271:f32 = load_vector_element %nc, 3u
+            %x_295:f32 = let %271
+            %273:f32 = access %x_290, 0u
+            %274:f32 = access %x_290, 1u
+            %275:f32 = access %x_290, 2u
+            %276:vec3<f32> = construct %273, %274, %275
+            %277:vec3<f32> = let %276
+            %278:f32 = access %x_292, 0u
+            %279:f32 = access %x_292, 1u
+            %280:f32 = access %x_292, 2u
+            %281:vec3<f32> = construct %278, %279, %280
+            %282:vec3<f32> = let %281
+            %283:vec3<f32> = construct %x_295, %x_295, %x_295
+            %284:vec3<f32> = mix %277, %282, %283
+            store %mixed, %284
+            %285:vec3<f32> = load %mixed
+            %x_298:vec3<f32> = let %285
+            %287:f32 = load %alpha
+            %x_299:f32 = let %287
+            %289:f32 = access %x_298, 0u
+            %290:f32 = access %x_298, 1u
+            %291:f32 = access %x_298, 2u
+            %292:vec4<f32> = construct %289, %290, %291, %x_299
+            store %color, %292
             exit_if  # if_6
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_304:i32 = load %i
-        %219:i32 = add %x_304, 1i
-        store %i, %219
-        next_iteration %b4
+      $B5: {  # continuing
+        %293:i32 = load %i
+        %x_304:i32 = let %293
+        %295:i32 = add %x_304, 1i
+        store %i, %295
+        next_iteration  # -> $B4
       }
     }
-    %220:ptr<uniform, vec3<f32>, read> = access %x_20, 8u
-    %x_310:vec3<f32> = load %220
-    %x_311:vec4<f32> = load %color
-    %223:f32 = access %x_311, 0u
-    %224:f32 = access %x_311, 1u
-    %225:f32 = access %x_311, 2u
-    %226:vec3<f32> = construct %223, %224, %225
-    %x_313:vec3<f32> = mul %226, %x_310
-    %x_314:vec4<f32> = load %color
-    %229:f32 = access %x_313, 0u
-    %230:f32 = access %x_313, 1u
-    %231:f32 = access %x_313, 2u
-    %232:f32 = access %x_314, 3u
-    %233:vec4<f32> = construct %229, %230, %231, %232
-    store %color, %233
-    %x_318:vec4<f32> = load %color
+    %296:ptr<uniform, vec3<f32>, read> = access %x_20, 8u
+    %297:vec3<f32> = load %296
+    %x_310:vec3<f32> = let %297
+    %299:vec4<f32> = load %color
+    %x_311:vec4<f32> = let %299
+    %301:f32 = access %x_311, 0u
+    %302:f32 = access %x_311, 1u
+    %303:f32 = access %x_311, 2u
+    %304:vec3<f32> = construct %301, %302, %303
+    %305:vec3<f32> = mul %304, %x_310
+    %x_313:vec3<f32> = let %305
+    %307:vec4<f32> = load %color
+    %x_314:vec4<f32> = let %307
+    %309:f32 = access %x_313, 0u
+    %310:f32 = access %x_313, 1u
+    %311:f32 = access %x_313, 2u
+    %312:f32 = access %x_314, 3u
+    %313:vec4<f32> = construct %309, %310, %311, %312
+    store %color, %313
+    %314:vec4<f32> = load %color
+    %x_318:vec4<f32> = let %314
     store %glFragColor, %x_318
     ret
   }
 }
-%tint_symbol = @fragment func(%tUV_param:vec2<f32> [@location(2)], %tileID_1_param:vec2<f32> [@location(5)], %levelUnits_param:vec2<f32> [@location(4)], %stageUnits_1_param:vec2<f32> [@location(3)], %vPosition_param:vec3<f32> [@location(0)], %vUV_param:vec2<f32> [@location(1)]):main_out -> %b20 {
-  %b20 = block {
+%tint_symbol = @fragment func(%tUV_param:vec2<f32> [@location(2)], %tileID_1_param:vec2<f32> [@location(5)], %levelUnits_param:vec2<f32> [@location(4)], %stageUnits_1_param:vec2<f32> [@location(3)], %vPosition_param:vec3<f32> [@location(0)], %vUV_param:vec2<f32> [@location(1)]):main_out {
+  $B20: {
     store %tUV, %tUV_param
     store %tileID_1, %tileID_1_param
     store %levelUnits, %levelUnits_param
     store %stageUnits_1, %stageUnits_1_param
     store %vPosition, %vPosition_param
     store %vUV, %vUV_param
-    %242:void = call %main_1
-    %243:vec4<f32> = load %glFragColor
-    %244:main_out = construct %243
-    ret %244
+    %323:void = call %main_1
+    %324:vec4<f32> = load %glFragColor
+    %325:main_out = construct %324
+    ret %325
   }
 }
 
diff --git a/test/tint/bug/tint/949.wgsl.expected.ir.msl b/test/tint/bug/tint/949.wgsl.expected.ir.msl
index 84c7e57..7148115 100644
--- a/test/tint/bug/tint/949.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/949.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: LeftOver = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: LeftOver = struct @align(16) {
   u_World:mat4x4<f32> @offset(0)
   u_ViewProjection:mat4x4<f32> @offset(64)
   u_bumpStrength:f32 @offset(128)
@@ -31,7 +31,7 @@
   glFragColor_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u_Float:ptr<private, f32, read_write> = var
   %u_Color:ptr<private, vec3<f32>, read_write> = var
   %TextureSamplerTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(2, 1)
@@ -46,12 +46,12 @@
   %TextureSampler1Sampler:ptr<handle, sampler, read> = var @binding_point(2, 2)
   %light0:ptr<uniform, Light0, read> = var @binding_point(0, 5)
   %glFragColor:ptr<private, vec4<f32>, read_write> = var
-  %bumpSamplerSampler:ptr<handle, sampler, read> = var @binding_point(2, 4)
-  %bumpSamplerTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(2, 5)
+  %bumpSamplerSampler:ptr<handle, sampler, read> = var @binding_point(0, 4)
+  %bumpSamplerTexture:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 5)
 }
 
-%cotangent_frame_vf3_vf3_vf2_vf2_ = func(%normal_1:ptr<function, vec3<f32>, read_write>, %p:ptr<function, vec3<f32>, read_write>, %uv:ptr<function, vec2<f32>, read_write>, %tangentSpaceParams:ptr<function, vec2<f32>, read_write>):mat3x3<f32> -> %b2 {
-  %b2 = block {
+%cotangent_frame_vf3_vf3_vf2_vf2_ = func(%normal_1:ptr<function, vec3<f32>, read_write>, %p:ptr<function, vec3<f32>, read_write>, %uv:ptr<function, vec2<f32>, read_write>, %tangentSpaceParams:ptr<function, vec2<f32>, read_write>):mat3x3<f32> {
+  $B2: {
     %dp1:ptr<function, vec3<f32>, read_write> = var
     %dp2:ptr<function, vec3<f32>, read_write> = var
     %duv1:ptr<function, vec2<f32>, read_write> = var
@@ -61,206 +61,278 @@
     %tangent:ptr<function, vec3<f32>, read_write> = var
     %bitangent:ptr<function, vec3<f32>, read_write> = var
     %invmax:ptr<function, f32, read_write> = var
-    %x_133:vec3<f32> = load %p
-    %32:vec3<f32> = dpdx %x_133
-    store %dp1, %32
-    %x_136:vec3<f32> = load %p
-    %34:vec3<f32> = dpdy %x_136
-    store %dp2, %34
-    %x_139:vec2<f32> = load %uv
-    %36:vec2<f32> = dpdx %x_139
-    store %duv1, %36
-    %x_142:vec2<f32> = load %uv
-    %38:vec2<f32> = dpdy %x_142
-    store %duv2, %38
-    %x_145:vec3<f32> = load %dp2
-    %x_146:vec3<f32> = load %normal_1
-    %41:vec3<f32> = cross %x_145, %x_146
-    store %dp2perp, %41
-    %x_149:vec3<f32> = load %normal_1
-    %x_150:vec3<f32> = load %dp1
-    %44:vec3<f32> = cross %x_149, %x_150
-    store %dp1perp, %44
-    %x_153:vec3<f32> = load %dp2perp
-    %x_155:f32 = load_vector_element %duv1, 0u
-    %x_157:vec3<f32> = load %dp1perp
-    %x_159:f32 = load_vector_element %duv2, 0u
-    %49:vec3<f32> = mul %x_153, %x_155
-    %50:vec3<f32> = mul %x_157, %x_159
-    %51:vec3<f32> = add %49, %50
-    store %tangent, %51
-    %x_163:vec3<f32> = load %dp2perp
-    %x_165:f32 = load_vector_element %duv1, 1u
-    %x_167:vec3<f32> = load %dp1perp
-    %x_169:f32 = load_vector_element %duv2, 1u
-    %56:vec3<f32> = mul %x_163, %x_165
-    %57:vec3<f32> = mul %x_167, %x_169
-    %58:vec3<f32> = add %56, %57
-    store %bitangent, %58
-    %x_173:f32 = load_vector_element %tangentSpaceParams, 0u
-    %x_174:vec3<f32> = load %tangent
-    %61:vec3<f32> = mul %x_174, %x_173
-    store %tangent, %61
-    %x_177:f32 = load_vector_element %tangentSpaceParams, 1u
-    %x_178:vec3<f32> = load %bitangent
-    %64:vec3<f32> = mul %x_178, %x_177
-    store %bitangent, %64
-    %x_181:vec3<f32> = load %tangent
-    %x_182:vec3<f32> = load %tangent
-    %x_184:vec3<f32> = load %bitangent
-    %x_185:vec3<f32> = load %bitangent
-    %69:f32 = dot %x_181, %x_182
-    %70:f32 = dot %x_184, %x_185
-    %71:f32 = max %69, %70
-    %72:f32 = inverseSqrt %71
-    store %invmax, %72
-    %x_189:vec3<f32> = load %tangent
-    %x_190:f32 = load %invmax
-    %x_191:vec3<f32> = mul %x_189, %x_190
-    %x_192:vec3<f32> = load %bitangent
-    %x_193:f32 = load %invmax
-    %x_194:vec3<f32> = mul %x_192, %x_193
-    %x_195:vec3<f32> = load %normal_1
-    %80:f32 = access %x_191, 0u
-    %81:f32 = access %x_191, 1u
-    %82:f32 = access %x_191, 2u
-    %83:vec3<f32> = construct %80, %81, %82
-    %84:f32 = access %x_194, 0u
-    %85:f32 = access %x_194, 1u
-    %86:f32 = access %x_194, 2u
-    %87:vec3<f32> = construct %84, %85, %86
-    %88:f32 = access %x_195, 0u
-    %89:f32 = access %x_195, 1u
-    %90:f32 = access %x_195, 2u
-    %91:vec3<f32> = construct %88, %89, %90
-    %92:mat3x3<f32> = construct %83, %87, %91
-    ret %92
+    %31:vec3<f32> = load %p
+    %x_133:vec3<f32> = let %31
+    %33:vec3<f32> = dpdx %x_133
+    store %dp1, %33
+    %34:vec3<f32> = load %p
+    %x_136:vec3<f32> = let %34
+    %36:vec3<f32> = dpdy %x_136
+    store %dp2, %36
+    %37:vec2<f32> = load %uv
+    %x_139:vec2<f32> = let %37
+    %39:vec2<f32> = dpdx %x_139
+    store %duv1, %39
+    %40:vec2<f32> = load %uv
+    %x_142:vec2<f32> = let %40
+    %42:vec2<f32> = dpdy %x_142
+    store %duv2, %42
+    %43:vec3<f32> = load %dp2
+    %x_145:vec3<f32> = let %43
+    %45:vec3<f32> = load %normal_1
+    %x_146:vec3<f32> = let %45
+    %47:vec3<f32> = cross %x_145, %x_146
+    store %dp2perp, %47
+    %48:vec3<f32> = load %normal_1
+    %x_149:vec3<f32> = let %48
+    %50:vec3<f32> = load %dp1
+    %x_150:vec3<f32> = let %50
+    %52:vec3<f32> = cross %x_149, %x_150
+    store %dp1perp, %52
+    %53:vec3<f32> = load %dp2perp
+    %x_153:vec3<f32> = let %53
+    %55:f32 = load_vector_element %duv1, 0u
+    %x_155:f32 = let %55
+    %57:vec3<f32> = load %dp1perp
+    %x_157:vec3<f32> = let %57
+    %59:f32 = load_vector_element %duv2, 0u
+    %x_159:f32 = let %59
+    %61:vec3<f32> = mul %x_153, %x_155
+    %62:vec3<f32> = mul %x_157, %x_159
+    %63:vec3<f32> = add %61, %62
+    store %tangent, %63
+    %64:vec3<f32> = load %dp2perp
+    %x_163:vec3<f32> = let %64
+    %66:f32 = load_vector_element %duv1, 1u
+    %x_165:f32 = let %66
+    %68:vec3<f32> = load %dp1perp
+    %x_167:vec3<f32> = let %68
+    %70:f32 = load_vector_element %duv2, 1u
+    %x_169:f32 = let %70
+    %72:vec3<f32> = mul %x_163, %x_165
+    %73:vec3<f32> = mul %x_167, %x_169
+    %74:vec3<f32> = add %72, %73
+    store %bitangent, %74
+    %75:f32 = load_vector_element %tangentSpaceParams, 0u
+    %x_173:f32 = let %75
+    %77:vec3<f32> = load %tangent
+    %x_174:vec3<f32> = let %77
+    %79:vec3<f32> = mul %x_174, %x_173
+    store %tangent, %79
+    %80:f32 = load_vector_element %tangentSpaceParams, 1u
+    %x_177:f32 = let %80
+    %82:vec3<f32> = load %bitangent
+    %x_178:vec3<f32> = let %82
+    %84:vec3<f32> = mul %x_178, %x_177
+    store %bitangent, %84
+    %85:vec3<f32> = load %tangent
+    %x_181:vec3<f32> = let %85
+    %87:vec3<f32> = load %tangent
+    %x_182:vec3<f32> = let %87
+    %89:vec3<f32> = load %bitangent
+    %x_184:vec3<f32> = let %89
+    %91:vec3<f32> = load %bitangent
+    %x_185:vec3<f32> = let %91
+    %93:f32 = dot %x_181, %x_182
+    %94:f32 = let %93
+    %95:f32 = dot %x_184, %x_185
+    %96:f32 = max %94, %95
+    %97:f32 = inverseSqrt %96
+    store %invmax, %97
+    %98:vec3<f32> = load %tangent
+    %x_189:vec3<f32> = let %98
+    %100:f32 = load %invmax
+    %x_190:f32 = let %100
+    %102:vec3<f32> = mul %x_189, %x_190
+    %x_191:vec3<f32> = let %102
+    %104:vec3<f32> = load %bitangent
+    %x_192:vec3<f32> = let %104
+    %106:f32 = load %invmax
+    %x_193:f32 = let %106
+    %108:vec3<f32> = mul %x_192, %x_193
+    %x_194:vec3<f32> = let %108
+    %110:vec3<f32> = load %normal_1
+    %x_195:vec3<f32> = let %110
+    %112:f32 = access %x_191, 0u
+    %113:f32 = access %x_191, 1u
+    %114:f32 = access %x_191, 2u
+    %115:vec3<f32> = construct %112, %113, %114
+    %116:vec3<f32> = let %115
+    %117:f32 = access %x_194, 0u
+    %118:f32 = access %x_194, 1u
+    %119:f32 = access %x_194, 2u
+    %120:vec3<f32> = construct %117, %118, %119
+    %121:vec3<f32> = let %120
+    %122:f32 = access %x_195, 0u
+    %123:f32 = access %x_195, 1u
+    %124:f32 = access %x_195, 2u
+    %125:vec3<f32> = construct %122, %123, %124
+    %126:mat3x3<f32> = construct %116, %121, %125
+    ret %126
   }
 }
-%transposeMat3_mf33_ = func(%inMatrix:ptr<function, mat3x3<f32>, read_write>):mat3x3<f32> -> %b3 {
-  %b3 = block {
+%transposeMat3_mf33_ = func(%inMatrix:ptr<function, mat3x3<f32>, read_write>):mat3x3<f32> {
+  $B3: {
     %i0:ptr<function, vec3<f32>, read_write> = var
     %i1:ptr<function, vec3<f32>, read_write> = var
     %i2:ptr<function, vec3<f32>, read_write> = var
     %outMatrix:ptr<function, mat3x3<f32>, read_write> = var
-    %99:ptr<function, vec3<f32>, read_write> = access %inMatrix, 0i
-    %x_60:vec3<f32> = load %99
+    %133:ptr<function, vec3<f32>, read_write> = access %inMatrix, 0i
+    %134:vec3<f32> = load %133
+    %x_60:vec3<f32> = let %134
     store %i0, %x_60
-    %101:ptr<function, vec3<f32>, read_write> = access %inMatrix, 1i
-    %x_64:vec3<f32> = load %101
+    %136:ptr<function, vec3<f32>, read_write> = access %inMatrix, 1i
+    %137:vec3<f32> = load %136
+    %x_64:vec3<f32> = let %137
     store %i1, %x_64
-    %103:ptr<function, vec3<f32>, read_write> = access %inMatrix, 2i
-    %x_68:vec3<f32> = load %103
+    %139:ptr<function, vec3<f32>, read_write> = access %inMatrix, 2i
+    %140:vec3<f32> = load %139
+    %x_68:vec3<f32> = let %140
     store %i2, %x_68
-    %x_73:f32 = load_vector_element %i0, 0u
-    %x_75:f32 = load_vector_element %i1, 0u
-    %x_77:f32 = load_vector_element %i2, 0u
-    %x_78:vec3<f32> = construct %x_73, %x_75, %x_77
-    %x_81:f32 = load_vector_element %i0, 1u
-    %x_83:f32 = load_vector_element %i1, 1u
-    %x_85:f32 = load_vector_element %i2, 1u
-    %x_86:vec3<f32> = construct %x_81, %x_83, %x_85
-    %x_89:f32 = load_vector_element %i0, 2u
-    %x_91:f32 = load_vector_element %i1, 2u
-    %x_93:f32 = load_vector_element %i2, 2u
-    %x_94:vec3<f32> = construct %x_89, %x_91, %x_93
-    %117:f32 = access %x_78, 0u
-    %118:f32 = access %x_78, 1u
-    %119:f32 = access %x_78, 2u
-    %120:vec3<f32> = construct %117, %118, %119
-    %121:f32 = access %x_86, 0u
-    %122:f32 = access %x_86, 1u
-    %123:f32 = access %x_86, 2u
-    %124:vec3<f32> = construct %121, %122, %123
-    %125:f32 = access %x_94, 0u
-    %126:f32 = access %x_94, 1u
-    %127:f32 = access %x_94, 2u
-    %128:vec3<f32> = construct %125, %126, %127
-    %129:mat3x3<f32> = construct %120, %124, %128
-    store %outMatrix, %129
-    %x_110:mat3x3<f32> = load %outMatrix
+    %142:f32 = load_vector_element %i0, 0u
+    %x_73:f32 = let %142
+    %144:f32 = load_vector_element %i1, 0u
+    %x_75:f32 = let %144
+    %146:f32 = load_vector_element %i2, 0u
+    %x_77:f32 = let %146
+    %148:vec3<f32> = construct %x_73, %x_75, %x_77
+    %x_78:vec3<f32> = let %148
+    %150:f32 = load_vector_element %i0, 1u
+    %x_81:f32 = let %150
+    %152:f32 = load_vector_element %i1, 1u
+    %x_83:f32 = let %152
+    %154:f32 = load_vector_element %i2, 1u
+    %x_85:f32 = let %154
+    %156:vec3<f32> = construct %x_81, %x_83, %x_85
+    %x_86:vec3<f32> = let %156
+    %158:f32 = load_vector_element %i0, 2u
+    %x_89:f32 = let %158
+    %160:f32 = load_vector_element %i1, 2u
+    %x_91:f32 = let %160
+    %162:f32 = load_vector_element %i2, 2u
+    %x_93:f32 = let %162
+    %164:vec3<f32> = construct %x_89, %x_91, %x_93
+    %x_94:vec3<f32> = let %164
+    %166:f32 = access %x_78, 0u
+    %167:f32 = access %x_78, 1u
+    %168:f32 = access %x_78, 2u
+    %169:vec3<f32> = construct %166, %167, %168
+    %170:vec3<f32> = let %169
+    %171:f32 = access %x_86, 0u
+    %172:f32 = access %x_86, 1u
+    %173:f32 = access %x_86, 2u
+    %174:vec3<f32> = construct %171, %172, %173
+    %175:vec3<f32> = let %174
+    %176:f32 = access %x_94, 0u
+    %177:f32 = access %x_94, 1u
+    %178:f32 = access %x_94, 2u
+    %179:vec3<f32> = construct %176, %177, %178
+    %180:mat3x3<f32> = construct %170, %175, %179
+    store %outMatrix, %180
+    %181:mat3x3<f32> = load %outMatrix
+    %x_110:mat3x3<f32> = let %181
     ret %x_110
   }
 }
-%perturbNormalBase_mf33_vf3_f1_ = func(%cotangentFrame:ptr<function, mat3x3<f32>, read_write>, %normal:ptr<function, vec3<f32>, read_write>, %scale:ptr<function, f32, read_write>):vec3<f32> -> %b4 {
-  %b4 = block {
-    %x_113:mat3x3<f32> = load %cotangentFrame
-    %x_114:vec3<f32> = load %normal
-    %137:vec3<f32> = mul %x_113, %x_114
-    %138:vec3<f32> = normalize %137
-    ret %138
+%perturbNormalBase_mf33_vf3_f1_ = func(%cotangentFrame:ptr<function, mat3x3<f32>, read_write>, %normal:ptr<function, vec3<f32>, read_write>, %scale:ptr<function, f32, read_write>):vec3<f32> {
+  $B4: {
+    %187:mat3x3<f32> = load %cotangentFrame
+    %x_113:mat3x3<f32> = let %187
+    %189:vec3<f32> = load %normal
+    %x_114:vec3<f32> = let %189
+    %191:vec3<f32> = mul %x_113, %x_114
+    %192:vec3<f32> = normalize %191
+    ret %192
   }
 }
-%perturbNormal_mf33_vf3_f1_ = func(%cotangentFrame_1:ptr<function, mat3x3<f32>, read_write>, %textureSample:ptr<function, vec3<f32>, read_write>, %scale_1:ptr<function, f32, read_write>):vec3<f32> -> %b5 {
-  %b5 = block {
+%perturbNormal_mf33_vf3_f1_ = func(%cotangentFrame_1:ptr<function, mat3x3<f32>, read_write>, %textureSample:ptr<function, vec3<f32>, read_write>, %scale_1:ptr<function, f32, read_write>):vec3<f32> {
+  $B5: {
     %param:ptr<function, mat3x3<f32>, read_write> = var
     %param_1:ptr<function, vec3<f32>, read_write> = var
     %param_2:ptr<function, f32, read_write> = var
-    %x_119:vec3<f32> = load %textureSample
-    %x_125:mat3x3<f32> = load %cotangentFrame_1
+    %200:vec3<f32> = load %textureSample
+    %x_119:vec3<f32> = let %200
+    %202:mat3x3<f32> = load %cotangentFrame_1
+    %x_125:mat3x3<f32> = let %202
     store %param, %x_125
-    %148:vec3<f32> = mul %x_119, 2.0f
-    %149:vec3<f32> = sub %148, vec3<f32>(1.0f)
-    store %param_1, %149
-    %x_128:f32 = load %scale_1
+    %204:vec3<f32> = mul %x_119, 2.0f
+    %205:vec3<f32> = sub %204, vec3<f32>(1.0f)
+    store %param_1, %205
+    %206:f32 = load %scale_1
+    %x_128:f32 = let %206
     store %param_2, %x_128
-    %x_129:vec3<f32> = call %perturbNormalBase_mf33_vf3_f1_, %param, %param_1, %param_2
+    %208:vec3<f32> = call %perturbNormalBase_mf33_vf3_f1_, %param, %param_1, %param_2
+    %x_129:vec3<f32> = let %208
     ret %x_129
   }
 }
-%computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_ = func(%viewDirectionW:ptr<function, vec3<f32>, read_write>, %vNormal:ptr<function, vec3<f32>, read_write>, %lightData:ptr<function, vec4<f32>, read_write>, %diffuseColor:ptr<function, vec3<f32>, read_write>, %specularColor:ptr<function, vec3<f32>, read_write>, %groundColor:ptr<function, vec3<f32>, read_write>, %glossiness:ptr<function, f32, read_write>):lightingInfo -> %b6 {
-  %b6 = block {
+%computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_ = func(%viewDirectionW:ptr<function, vec3<f32>, read_write>, %vNormal:ptr<function, vec3<f32>, read_write>, %lightData:ptr<function, vec4<f32>, read_write>, %diffuseColor:ptr<function, vec3<f32>, read_write>, %specularColor:ptr<function, vec3<f32>, read_write>, %groundColor:ptr<function, vec3<f32>, read_write>, %glossiness:ptr<function, f32, read_write>):lightingInfo {
+  $B6: {
     %ndl:ptr<function, f32, read_write> = var
     %result:ptr<function, lightingInfo, read_write> = var
     %angleW:ptr<function, vec3<f32>, read_write> = var
     %specComp:ptr<function, f32, read_write> = var
-    %x_212:vec3<f32> = load %vNormal
-    %x_213:vec4<f32> = load %lightData
-    %166:f32 = access %x_213, 0u
-    %167:f32 = access %x_213, 1u
-    %168:f32 = access %x_213, 2u
-    %169:vec3<f32> = construct %166, %167, %168
-    %170:f32 = dot %x_212, %169
-    %171:f32 = mul %170, 0.5f
-    %172:f32 = add %171, 0.5f
-    store %ndl, %172
-    %x_220:vec3<f32> = load %groundColor
-    %x_221:vec3<f32> = load %diffuseColor
-    %x_222:f32 = load %ndl
-    %176:ptr<function, vec3<f32>, read_write> = access %result, 0u
-    %177:vec3<f32> = construct %x_222, %x_222, %x_222
-    %178:vec3<f32> = mix %x_220, %x_221, %177
-    store %176, %178
-    %x_227:vec3<f32> = load %viewDirectionW
-    %x_228:vec4<f32> = load %lightData
-    %181:f32 = access %x_228, 0u
-    %182:f32 = access %x_228, 1u
-    %183:f32 = access %x_228, 2u
-    %184:vec3<f32> = construct %181, %182, %183
-    %185:vec3<f32> = add %x_227, %184
-    %186:vec3<f32> = normalize %185
-    store %angleW, %186
-    %x_233:vec3<f32> = load %vNormal
-    %x_234:vec3<f32> = load %angleW
-    %189:f32 = dot %x_233, %x_234
-    %190:f32 = max 0.0f, %189
-    store %specComp, %190
-    %x_237:f32 = load %specComp
-    %x_238:f32 = load %glossiness
-    %193:f32 = max 1.0f, %x_238
-    %194:f32 = pow %x_237, %193
-    store %specComp, %194
-    %x_241:f32 = load %specComp
-    %x_242:vec3<f32> = load %specularColor
-    %197:ptr<function, vec3<f32>, read_write> = access %result, 1u
-    %198:vec3<f32> = mul %x_242, %x_241
-    store %197, %198
-    %x_245:lightingInfo = load %result
+    %222:vec3<f32> = load %vNormal
+    %x_212:vec3<f32> = let %222
+    %224:vec4<f32> = load %lightData
+    %x_213:vec4<f32> = let %224
+    %226:f32 = access %x_213, 0u
+    %227:f32 = access %x_213, 1u
+    %228:f32 = access %x_213, 2u
+    %229:vec3<f32> = construct %226, %227, %228
+    %230:f32 = dot %x_212, %229
+    %231:f32 = mul %230, 0.5f
+    %232:f32 = add %231, 0.5f
+    store %ndl, %232
+    %233:vec3<f32> = load %groundColor
+    %x_220:vec3<f32> = let %233
+    %235:vec3<f32> = load %diffuseColor
+    %x_221:vec3<f32> = let %235
+    %237:f32 = load %ndl
+    %x_222:f32 = let %237
+    %239:ptr<function, vec3<f32>, read_write> = access %result, 0u
+    %240:vec3<f32> = construct %x_222, %x_222, %x_222
+    %241:vec3<f32> = mix %x_220, %x_221, %240
+    store %239, %241
+    %242:vec3<f32> = load %viewDirectionW
+    %x_227:vec3<f32> = let %242
+    %244:vec4<f32> = load %lightData
+    %x_228:vec4<f32> = let %244
+    %246:f32 = access %x_228, 0u
+    %247:f32 = access %x_228, 1u
+    %248:f32 = access %x_228, 2u
+    %249:vec3<f32> = construct %246, %247, %248
+    %250:vec3<f32> = add %x_227, %249
+    %251:vec3<f32> = normalize %250
+    store %angleW, %251
+    %252:vec3<f32> = load %vNormal
+    %x_233:vec3<f32> = let %252
+    %254:vec3<f32> = load %angleW
+    %x_234:vec3<f32> = let %254
+    %256:f32 = dot %x_233, %x_234
+    %257:f32 = max 0.0f, %256
+    store %specComp, %257
+    %258:f32 = load %specComp
+    %x_237:f32 = let %258
+    %260:f32 = load %glossiness
+    %x_238:f32 = let %260
+    %262:f32 = max 1.0f, %x_238
+    %263:f32 = pow %x_237, %262
+    store %specComp, %263
+    %264:f32 = load %specComp
+    %x_241:f32 = let %264
+    %266:vec3<f32> = load %specularColor
+    %x_242:vec3<f32> = let %266
+    %268:ptr<function, vec3<f32>, read_write> = access %result, 1u
+    %269:vec3<f32> = mul %x_242, %x_241
+    store %268, %269
+    %270:lightingInfo = load %result
+    %x_245:lightingInfo = let %270
     ret %x_245
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B7: {
     %tempTextureRead:ptr<function, vec4<f32>, read_write> = var
     %rgb:ptr<function, vec3<f32>, read_write> = var
     %output5:ptr<function, vec3<f32>, read_write> = var
@@ -316,351 +388,451 @@
     %output3:ptr<function, vec3<f32>, read_write> = var
     store %u_Float, 100.0f
     store %u_Color, vec3<f32>(0.5f)
-    %x_261:vec2<f32> = load %vMainuv
-    %255:texture_2d<f32> = load %TextureSamplerTexture
-    %256:sampler = load %TextureSamplerSampler
-    %x_262:vec4<f32> = textureSample %255, %256, %x_261
+    %326:vec2<f32> = load %vMainuv
+    %x_261:vec2<f32> = let %326
+    %328:texture_2d<f32> = load %TextureSamplerTexture
+    %329:sampler = load %TextureSamplerSampler
+    %330:vec4<f32> = textureSample %328, %329, %x_261
+    %x_262:vec4<f32> = let %330
     store %tempTextureRead, %x_262
-    %x_264:vec4<f32> = load %tempTextureRead
-    %259:ptr<uniform, f32, read> = access %x_269, 6u
-    %x_273:f32 = load %259
-    %261:f32 = access %x_264, 0u
-    %262:f32 = access %x_264, 1u
-    %263:f32 = access %x_264, 2u
-    %264:vec3<f32> = construct %261, %262, %263
-    %265:vec3<f32> = mul %264, %x_273
-    store %rgb, %265
-    %266:ptr<uniform, vec3<f32>, read> = access %x_269, 4u
-    %x_279:vec3<f32> = load %266
-    %x_282:vec4<f32> = load %v_output1
-    %269:f32 = access %x_282, 0u
-    %270:f32 = access %x_282, 1u
-    %271:f32 = access %x_282, 2u
-    %272:vec3<f32> = construct %269, %270, %271
-    %273:vec3<f32> = sub %x_279, %272
-    %274:vec3<f32> = normalize %273
-    store %output5, %274
+    %332:vec4<f32> = load %tempTextureRead
+    %x_264:vec4<f32> = let %332
+    %334:ptr<uniform, f32, read> = access %x_269, 6u
+    %335:f32 = load %334
+    %x_273:f32 = let %335
+    %337:f32 = access %x_264, 0u
+    %338:f32 = access %x_264, 1u
+    %339:f32 = access %x_264, 2u
+    %340:vec3<f32> = construct %337, %338, %339
+    %341:vec3<f32> = mul %340, %x_273
+    store %rgb, %341
+    %342:ptr<uniform, vec3<f32>, read> = access %x_269, 4u
+    %343:vec3<f32> = load %342
+    %x_279:vec3<f32> = let %343
+    %345:vec4<f32> = load %v_output1
+    %x_282:vec4<f32> = let %345
+    %347:f32 = access %x_282, 0u
+    %348:f32 = access %x_282, 1u
+    %349:f32 = access %x_282, 2u
+    %350:vec3<f32> = construct %347, %348, %349
+    %351:vec3<f32> = sub %x_279, %350
+    %352:vec3<f32> = normalize %351
+    store %output5, %352
     store %output4, vec4<f32>(0.0f)
     store %uvOffset, vec2<f32>(0.0f)
-    %275:ptr<uniform, f32, read> = access %x_269, 2u
-    %x_292:f32 = load %275
-    %277:f32 = div 1.0f, %x_292
-    store %normalScale, %277
-    %x_298:bool = load %gl_FrontFacing
-    if %x_298 [t: %b8, f: %b9] {  # if_1
-      %b8 = block {  # true
-        %x_303:vec2<f32> = load %v_uv
+    %353:ptr<uniform, f32, read> = access %x_269, 2u
+    %354:f32 = load %353
+    %x_292:f32 = let %354
+    %356:f32 = div 1.0f, %x_292
+    store %normalScale, %356
+    %357:bool = load %gl_FrontFacing
+    %x_298:bool = let %357
+    if %x_298 [t: $B8, f: $B9] {  # if_1
+      $B8: {  # true
+        %359:vec2<f32> = load %v_uv
+        %x_303:vec2<f32> = let %359
         store %x_299, %x_303
         exit_if  # if_1
       }
-      %b9 = block {  # false
-        %x_305:vec2<f32> = load %v_uv
-        %281:vec2<f32> = negation %x_305
-        store %x_299, %281
+      $B9: {  # false
+        %361:vec2<f32> = load %v_uv
+        %x_305:vec2<f32> = let %361
+        %363:vec2<f32> = negation %x_305
+        store %x_299, %363
         exit_if  # if_1
       }
     }
-    %x_307:vec2<f32> = load %x_299
+    %364:vec2<f32> = load %x_299
+    %x_307:vec2<f32> = let %364
     store %TBNUV, %x_307
-    %x_310:vec4<f32> = load %v_output2
-    %x_312:f32 = load %normalScale
-    %285:f32 = access %x_310, 0u
-    %286:f32 = access %x_310, 1u
-    %287:f32 = access %x_310, 2u
-    %288:vec3<f32> = construct %285, %286, %287
-    %289:vec3<f32> = mul %288, %x_312
-    store %param_3, %289
-    %x_317:vec4<f32> = load %v_output1
-    %291:f32 = access %x_317, 0u
-    %292:f32 = access %x_317, 1u
-    %293:f32 = access %x_317, 2u
-    %294:vec3<f32> = construct %291, %292, %293
-    store %param_4, %294
-    %x_320:vec2<f32> = load %TBNUV
+    %366:vec4<f32> = load %v_output2
+    %x_310:vec4<f32> = let %366
+    %368:f32 = load %normalScale
+    %x_312:f32 = let %368
+    %370:f32 = access %x_310, 0u
+    %371:f32 = access %x_310, 1u
+    %372:f32 = access %x_310, 2u
+    %373:vec3<f32> = construct %370, %371, %372
+    %374:vec3<f32> = mul %373, %x_312
+    store %param_3, %374
+    %375:vec4<f32> = load %v_output1
+    %x_317:vec4<f32> = let %375
+    %377:f32 = access %x_317, 0u
+    %378:f32 = access %x_317, 1u
+    %379:f32 = access %x_317, 2u
+    %380:vec3<f32> = construct %377, %378, %379
+    store %param_4, %380
+    %381:vec2<f32> = load %TBNUV
+    %x_320:vec2<f32> = let %381
     store %param_5, %x_320
-    %296:ptr<uniform, vec2<f32>, read> = access %x_269, 8u
-    %x_324:vec2<f32> = load %296
+    %383:ptr<uniform, vec2<f32>, read> = access %x_269, 8u
+    %384:vec2<f32> = load %383
+    %x_324:vec2<f32> = let %384
     store %param_6, %x_324
-    %x_325:mat3x3<f32> = call %cotangent_frame_vf3_vf3_vf2_vf2_, %param_3, %param_4, %param_5, %param_6
+    %386:mat3x3<f32> = call %cotangent_frame_vf3_vf3_vf2_vf2_, %param_3, %param_4, %param_5, %param_6
+    %x_325:mat3x3<f32> = let %386
     store %TBN, %x_325
-    %x_328:mat3x3<f32> = load %TBN
+    %388:mat3x3<f32> = load %TBN
+    %x_328:mat3x3<f32> = let %388
     store %param_7, %x_328
-    %x_329:mat3x3<f32> = call %transposeMat3_mf33_, %param_7
+    %390:mat3x3<f32> = call %transposeMat3_mf33_, %param_7
+    %x_329:mat3x3<f32> = let %390
     store %invTBN, %x_329
-    %x_331:mat3x3<f32> = load %invTBN
-    %x_332:vec3<f32> = load %output5
-    %303:vec3<f32> = negation %x_332
-    %x_334:vec3<f32> = mul %x_331, %303
-    %x_337:mat3x3<f32> = load %invTBN
-    %x_338:vec3<f32> = load %output5
-    %307:f32 = access %x_334, 0u
-    %308:f32 = access %x_334, 1u
-    %309:vec2<f32> = construct %307, %308
-    %310:f32 = length %309
-    %311:vec3<f32> = negation %x_338
-    %312:vec3<f32> = mul %x_337, %311
-    %313:f32 = access %312, 2u
-    %314:f32 = div %310, %313
-    store %parallaxLimit, %314
-    %315:ptr<uniform, f32, read> = access %x_269, 5u
-    %x_345:f32 = load %315
-    %x_346:f32 = load %parallaxLimit
-    %318:f32 = mul %x_346, %x_345
-    store %parallaxLimit, %318
-    %x_349:mat3x3<f32> = load %invTBN
-    %x_350:vec3<f32> = load %output5
-    %321:vec3<f32> = negation %x_350
-    %x_352:vec3<f32> = mul %x_349, %321
-    %323:f32 = access %x_352, 0u
-    %324:f32 = access %x_352, 1u
-    %325:vec2<f32> = construct %323, %324
-    %326:vec2<f32> = normalize %325
-    store %vOffsetDir, %326
-    %x_356:vec2<f32> = load %vOffsetDir
-    %x_357:f32 = load %parallaxLimit
-    %329:vec2<f32> = mul %x_356, %x_357
-    store %vMaxOffset, %329
-    %x_361:mat3x3<f32> = load %invTBN
-    %x_362:vec3<f32> = load %output5
-    %x_365:mat3x3<f32> = load %invTBN
-    %x_366:vec4<f32> = load %v_output2
-    %334:vec3<f32> = negation %x_362
-    %335:vec3<f32> = mul %x_361, %334
-    %336:f32 = access %x_366, 0u
-    %337:f32 = access %x_366, 1u
-    %338:f32 = access %x_366, 2u
-    %339:vec3<f32> = construct %336, %337, %338
-    %340:vec3<f32> = mul %x_365, %339
-    %341:f32 = dot %335, %340
-    %342:f32 = mul %341, -11.0f
-    %343:f32 = add 15.0f, %342
-    store %numSamples, %343
-    %x_374:f32 = load %numSamples
-    %345:f32 = div 1.0f, %x_374
-    store %stepSize, %345
+    %392:mat3x3<f32> = load %invTBN
+    %x_331:mat3x3<f32> = let %392
+    %394:vec3<f32> = load %output5
+    %x_332:vec3<f32> = let %394
+    %396:vec3<f32> = negation %x_332
+    %397:vec3<f32> = mul %x_331, %396
+    %x_334:vec3<f32> = let %397
+    %399:mat3x3<f32> = load %invTBN
+    %x_337:mat3x3<f32> = let %399
+    %401:vec3<f32> = load %output5
+    %x_338:vec3<f32> = let %401
+    %403:f32 = access %x_334, 0u
+    %404:f32 = access %x_334, 1u
+    %405:vec2<f32> = construct %403, %404
+    %406:f32 = length %405
+    %407:vec3<f32> = negation %x_338
+    %408:vec3<f32> = mul %x_337, %407
+    %409:f32 = access %408, 2u
+    %410:f32 = div %406, %409
+    store %parallaxLimit, %410
+    %411:ptr<uniform, f32, read> = access %x_269, 5u
+    %412:f32 = load %411
+    %x_345:f32 = let %412
+    %414:f32 = load %parallaxLimit
+    %x_346:f32 = let %414
+    %416:f32 = mul %x_346, %x_345
+    store %parallaxLimit, %416
+    %417:mat3x3<f32> = load %invTBN
+    %x_349:mat3x3<f32> = let %417
+    %419:vec3<f32> = load %output5
+    %x_350:vec3<f32> = let %419
+    %421:vec3<f32> = negation %x_350
+    %422:vec3<f32> = mul %x_349, %421
+    %x_352:vec3<f32> = let %422
+    %424:f32 = access %x_352, 0u
+    %425:f32 = access %x_352, 1u
+    %426:vec2<f32> = construct %424, %425
+    %427:vec2<f32> = normalize %426
+    store %vOffsetDir, %427
+    %428:vec2<f32> = load %vOffsetDir
+    %x_356:vec2<f32> = let %428
+    %430:f32 = load %parallaxLimit
+    %x_357:f32 = let %430
+    %432:vec2<f32> = mul %x_356, %x_357
+    store %vMaxOffset, %432
+    %433:mat3x3<f32> = load %invTBN
+    %x_361:mat3x3<f32> = let %433
+    %435:vec3<f32> = load %output5
+    %x_362:vec3<f32> = let %435
+    %437:mat3x3<f32> = load %invTBN
+    %x_365:mat3x3<f32> = let %437
+    %439:vec4<f32> = load %v_output2
+    %x_366:vec4<f32> = let %439
+    %441:vec3<f32> = negation %x_362
+    %442:vec3<f32> = mul %x_361, %441
+    %443:f32 = access %x_366, 0u
+    %444:f32 = access %x_366, 1u
+    %445:f32 = access %x_366, 2u
+    %446:vec3<f32> = construct %443, %444, %445
+    %447:vec3<f32> = mul %x_365, %446
+    %448:f32 = dot %442, %447
+    %449:f32 = mul %448, -11.0f
+    %450:f32 = add 15.0f, %449
+    store %numSamples, %450
+    %451:f32 = load %numSamples
+    %x_374:f32 = let %451
+    %453:f32 = div 1.0f, %x_374
+    store %stepSize, %453
     store %currRayHeight, 1.0f
     store %vCurrOffset, vec2<f32>(0.0f)
     store %vLastOffset, vec2<f32>(0.0f)
     store %lastSampledHeight, 1.0f
     store %currSampledHeight, 1.0f
     store %i, 0i
-    loop [b: %b10, c: %b11] {  # loop_1
-      %b10 = block {  # body
-        %x_388:i32 = load %i
-        %347:bool = lt %x_388, 15i
-        if %347 [t: %b12, f: %b13] {  # if_2
-          %b12 = block {  # true
+    loop [b: $B10, c: $B11] {  # loop_1
+      $B10: {  # body
+        %454:i32 = load %i
+        %x_388:i32 = let %454
+        %456:bool = lt %x_388, 15i
+        if %456 [t: $B12, f: $B13] {  # if_2
+          $B12: {  # true
             exit_if  # if_2
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_394:vec2<f32> = load %v_uv
-        %x_395:vec2<f32> = load %vCurrOffset
+        %457:vec2<f32> = load %v_uv
+        %x_394:vec2<f32> = let %457
+        %459:vec2<f32> = load %vCurrOffset
+        %x_395:vec2<f32> = let %459
         %x_397:vec4<f32> = let vec4<f32>(0.0f)
-        %351:f32 = access %x_397, 3u
-        store %currSampledHeight, %351
-        %x_400:f32 = load %currSampledHeight
-        %x_401:f32 = load %currRayHeight
-        %354:bool = gt %x_400, %x_401
-        if %354 [t: %b14, f: %b15] {  # if_3
-          %b14 = block {  # true
-            %x_406:f32 = load %currSampledHeight
-            %x_407:f32 = load %currRayHeight
-            %357:f32 = sub %x_406, %x_407
-            store %delta1, %357
-            %x_410:f32 = load %currRayHeight
-            %x_411:f32 = load %stepSize
-            %x_413:f32 = load %lastSampledHeight
-            %361:f32 = add %x_410, %x_411
-            %362:f32 = sub %361, %x_413
-            store %delta2, %362
-            %x_416:f32 = load %delta1
-            %x_417:f32 = load %delta1
-            %x_418:f32 = load %delta2
-            %366:f32 = add %x_417, %x_418
-            %367:f32 = div %x_416, %366
-            store %ratio, %367
-            %x_421:f32 = load %ratio
-            %x_422:vec2<f32> = load %vLastOffset
-            %x_424:f32 = load %ratio
-            %x_426:vec2<f32> = load %vCurrOffset
-            %372:vec2<f32> = mul %x_422, %x_421
-            %373:f32 = sub 1.0f, %x_424
-            %374:vec2<f32> = mul %x_426, %373
-            %375:vec2<f32> = add %372, %374
-            store %vCurrOffset, %375
+        %462:f32 = access %x_397, 3u
+        store %currSampledHeight, %462
+        %463:f32 = load %currSampledHeight
+        %x_400:f32 = let %463
+        %465:f32 = load %currRayHeight
+        %x_401:f32 = let %465
+        %467:bool = gt %x_400, %x_401
+        if %467 [t: $B14, f: $B15] {  # if_3
+          $B14: {  # true
+            %468:f32 = load %currSampledHeight
+            %x_406:f32 = let %468
+            %470:f32 = load %currRayHeight
+            %x_407:f32 = let %470
+            %472:f32 = sub %x_406, %x_407
+            store %delta1, %472
+            %473:f32 = load %currRayHeight
+            %x_410:f32 = let %473
+            %475:f32 = load %stepSize
+            %x_411:f32 = let %475
+            %477:f32 = load %lastSampledHeight
+            %x_413:f32 = let %477
+            %479:f32 = add %x_410, %x_411
+            %480:f32 = sub %479, %x_413
+            store %delta2, %480
+            %481:f32 = load %delta1
+            %x_416:f32 = let %481
+            %483:f32 = load %delta1
+            %x_417:f32 = let %483
+            %485:f32 = load %delta2
+            %x_418:f32 = let %485
+            %487:f32 = add %x_417, %x_418
+            %488:f32 = div %x_416, %487
+            store %ratio, %488
+            %489:f32 = load %ratio
+            %x_421:f32 = let %489
+            %491:vec2<f32> = load %vLastOffset
+            %x_422:vec2<f32> = let %491
+            %493:f32 = load %ratio
+            %x_424:f32 = let %493
+            %495:vec2<f32> = load %vCurrOffset
+            %x_426:vec2<f32> = let %495
+            %497:vec2<f32> = mul %x_422, %x_421
+            %498:f32 = sub 1.0f, %x_424
+            %499:vec2<f32> = mul %x_426, %498
+            %500:vec2<f32> = add %497, %499
+            store %vCurrOffset, %500
             exit_loop  # loop_1
           }
-          %b15 = block {  # false
-            %x_431:f32 = load %stepSize
-            %x_432:f32 = load %currRayHeight
-            %378:f32 = sub %x_432, %x_431
-            store %currRayHeight, %378
-            %x_434:vec2<f32> = load %vCurrOffset
+          $B15: {  # false
+            %501:f32 = load %stepSize
+            %x_431:f32 = let %501
+            %503:f32 = load %currRayHeight
+            %x_432:f32 = let %503
+            %505:f32 = sub %x_432, %x_431
+            store %currRayHeight, %505
+            %506:vec2<f32> = load %vCurrOffset
+            %x_434:vec2<f32> = let %506
             store %vLastOffset, %x_434
-            %x_435:f32 = load %stepSize
-            %x_436:vec2<f32> = load %vMaxOffset
-            %x_438:vec2<f32> = load %vCurrOffset
-            %383:vec2<f32> = mul %x_436, %x_435
-            %384:vec2<f32> = add %x_438, %383
-            store %vCurrOffset, %384
-            %x_440:f32 = load %currSampledHeight
+            %508:f32 = load %stepSize
+            %x_435:f32 = let %508
+            %510:vec2<f32> = load %vMaxOffset
+            %x_436:vec2<f32> = let %510
+            %512:vec2<f32> = load %vCurrOffset
+            %x_438:vec2<f32> = let %512
+            %514:vec2<f32> = mul %x_436, %x_435
+            %515:vec2<f32> = add %x_438, %514
+            store %vCurrOffset, %515
+            %516:f32 = load %currSampledHeight
+            %x_440:f32 = let %516
             store %lastSampledHeight, %x_440
             exit_if  # if_3
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %x_441:i32 = load %i
-        %387:i32 = add %x_441, 1i
-        store %i, %387
-        next_iteration %b10
+      $B11: {  # continuing
+        %518:i32 = load %i
+        %x_441:i32 = let %518
+        %520:i32 = add %x_441, 1i
+        store %i, %520
+        next_iteration  # -> $B10
       }
     }
-    %x_444:vec2<f32> = load %vCurrOffset
+    %521:vec2<f32> = load %vCurrOffset
+    %x_444:vec2<f32> = let %521
     store %parallaxOcclusion_0, %x_444
-    %x_445:vec2<f32> = load %parallaxOcclusion_0
+    %523:vec2<f32> = load %parallaxOcclusion_0
+    %x_445:vec2<f32> = let %523
     store %uvOffset, %x_445
-    %x_449:vec2<f32> = load %v_uv
-    %x_450:vec2<f32> = load %uvOffset
-    %392:texture_2d<f32> = load %TextureSamplerTexture
-    %393:sampler = load %TextureSamplerSampler
-    %394:vec2<f32> = add %x_449, %x_450
-    %x_452:vec4<f32> = textureSample %392, %393, %394
-    %396:ptr<uniform, f32, read> = access %x_269, 2u
-    %x_454:f32 = load %396
-    %x_457:mat3x3<f32> = load %TBN
+    %525:vec2<f32> = load %v_uv
+    %x_449:vec2<f32> = let %525
+    %527:vec2<f32> = load %uvOffset
+    %x_450:vec2<f32> = let %527
+    %529:texture_2d<f32> = load %TextureSamplerTexture
+    %530:sampler = load %TextureSamplerSampler
+    %531:vec2<f32> = add %x_449, %x_450
+    %532:vec4<f32> = textureSample %529, %530, %531
+    %x_452:vec4<f32> = let %532
+    %534:ptr<uniform, f32, read> = access %x_269, 2u
+    %535:f32 = load %534
+    %x_454:f32 = let %535
+    %537:mat3x3<f32> = load %TBN
+    %x_457:mat3x3<f32> = let %537
     store %param_8, %x_457
-    %399:f32 = access %x_452, 0u
-    %400:f32 = access %x_452, 1u
-    %401:f32 = access %x_452, 2u
-    %402:vec3<f32> = construct %399, %400, %401
-    store %param_9, %402
-    %403:f32 = div 1.0f, %x_454
-    store %param_10, %403
-    %x_461:vec3<f32> = call %perturbNormal_mf33_vf3_f1_, %param_8, %param_9, %param_10
-    %x_462:vec4<f32> = load %output4
-    %406:f32 = access %x_461, 0u
-    %407:f32 = access %x_461, 1u
-    %408:f32 = access %x_461, 2u
-    %409:f32 = access %x_462, 3u
-    %410:vec4<f32> = construct %406, %407, %408, %409
-    store %output4, %410
-    %x_465:vec2<f32> = load %v_uv
-    %x_466:vec2<f32> = load %uvOffset
-    %413:vec2<f32> = add %x_465, %x_466
-    store %output6, %413
-    %x_474:vec2<f32> = load %output6
-    %415:texture_2d<f32> = load %TextureSampler1Texture
-    %416:sampler = load %TextureSampler1Sampler
-    %x_475:vec4<f32> = textureSample %415, %416, %x_474
+    %539:f32 = access %x_452, 0u
+    %540:f32 = access %x_452, 1u
+    %541:f32 = access %x_452, 2u
+    %542:vec3<f32> = construct %539, %540, %541
+    store %param_9, %542
+    %543:f32 = div 1.0f, %x_454
+    store %param_10, %543
+    %544:vec3<f32> = call %perturbNormal_mf33_vf3_f1_, %param_8, %param_9, %param_10
+    %x_461:vec3<f32> = let %544
+    %546:vec4<f32> = load %output4
+    %x_462:vec4<f32> = let %546
+    %548:f32 = access %x_461, 0u
+    %549:f32 = access %x_461, 1u
+    %550:f32 = access %x_461, 2u
+    %551:f32 = access %x_462, 3u
+    %552:vec4<f32> = construct %548, %549, %550, %551
+    store %output4, %552
+    %553:vec2<f32> = load %v_uv
+    %x_465:vec2<f32> = let %553
+    %555:vec2<f32> = load %uvOffset
+    %x_466:vec2<f32> = let %555
+    %557:vec2<f32> = add %x_465, %x_466
+    store %output6, %557
+    %558:vec2<f32> = load %output6
+    %x_474:vec2<f32> = let %558
+    %560:texture_2d<f32> = load %TextureSampler1Texture
+    %561:sampler = load %TextureSampler1Sampler
+    %562:vec4<f32> = textureSample %560, %561, %x_474
+    %x_475:vec4<f32> = let %562
     store %tempTextureRead1, %x_475
-    %x_477:vec4<f32> = load %tempTextureRead1
-    %419:f32 = access %x_477, 0u
-    %420:f32 = access %x_477, 1u
-    %421:f32 = access %x_477, 2u
-    %422:vec3<f32> = construct %419, %420, %421
-    store %rgb1, %422
-    %423:ptr<uniform, vec3<f32>, read> = access %x_269, 4u
-    %x_481:vec3<f32> = load %423
-    %x_482:vec4<f32> = load %v_output1
-    %426:f32 = access %x_482, 0u
-    %427:f32 = access %x_482, 1u
-    %428:f32 = access %x_482, 2u
-    %429:vec3<f32> = construct %426, %427, %428
-    %430:vec3<f32> = sub %x_481, %429
-    %431:vec3<f32> = normalize %430
-    store %viewDirectionW_1, %431
+    %564:vec4<f32> = load %tempTextureRead1
+    %x_477:vec4<f32> = let %564
+    %566:f32 = access %x_477, 0u
+    %567:f32 = access %x_477, 1u
+    %568:f32 = access %x_477, 2u
+    %569:vec3<f32> = construct %566, %567, %568
+    store %rgb1, %569
+    %570:ptr<uniform, vec3<f32>, read> = access %x_269, 4u
+    %571:vec3<f32> = load %570
+    %x_481:vec3<f32> = let %571
+    %573:vec4<f32> = load %v_output1
+    %x_482:vec4<f32> = let %573
+    %575:f32 = access %x_482, 0u
+    %576:f32 = access %x_482, 1u
+    %577:f32 = access %x_482, 2u
+    %578:vec3<f32> = construct %575, %576, %577
+    %579:vec3<f32> = sub %x_481, %578
+    %580:vec3<f32> = normalize %579
+    store %viewDirectionW_1, %580
     store %shadow, 1.0f
-    %x_488:f32 = load %u_Float
-    %433:f32 = mul 1.0f, %x_488
-    store %glossiness_1, %433
+    %581:f32 = load %u_Float
+    %x_488:f32 = let %581
+    %583:f32 = mul 1.0f, %x_488
+    store %glossiness_1, %583
     store %diffuseBase, vec3<f32>(0.0f)
     store %specularBase, vec3<f32>(0.0f)
-    %x_494:vec4<f32> = load %output4
-    %435:f32 = access %x_494, 0u
-    %436:f32 = access %x_494, 1u
-    %437:f32 = access %x_494, 2u
-    %438:vec3<f32> = construct %435, %436, %437
-    store %normalW, %438
-    %x_501:vec3<f32> = load %viewDirectionW_1
+    %584:vec4<f32> = load %output4
+    %x_494:vec4<f32> = let %584
+    %586:f32 = access %x_494, 0u
+    %587:f32 = access %x_494, 1u
+    %588:f32 = access %x_494, 2u
+    %589:vec3<f32> = construct %586, %587, %588
+    store %normalW, %589
+    %590:vec3<f32> = load %viewDirectionW_1
+    %x_501:vec3<f32> = let %590
     store %param_11, %x_501
-    %x_503:vec3<f32> = load %normalW
+    %592:vec3<f32> = load %normalW
+    %x_503:vec3<f32> = let %592
     store %param_12, %x_503
-    %441:ptr<uniform, vec4<f32>, read> = access %light0, 0u
-    %x_507:vec4<f32> = load %441
+    %594:ptr<uniform, vec4<f32>, read> = access %light0, 0u
+    %595:vec4<f32> = load %594
+    %x_507:vec4<f32> = let %595
     store %param_13, %x_507
-    %443:ptr<uniform, vec4<f32>, read> = access %light0, 1u
-    %x_510:vec4<f32> = load %443
-    %445:f32 = access %x_510, 0u
-    %446:f32 = access %x_510, 1u
-    %447:f32 = access %x_510, 2u
-    %448:vec3<f32> = construct %445, %446, %447
-    store %param_14, %448
-    %449:ptr<uniform, vec4<f32>, read> = access %light0, 2u
-    %x_514:vec4<f32> = load %449
-    %451:f32 = access %x_514, 0u
-    %452:f32 = access %x_514, 1u
-    %453:f32 = access %x_514, 2u
-    %454:vec3<f32> = construct %451, %452, %453
-    store %param_15, %454
-    %455:ptr<uniform, vec3<f32>, read> = access %light0, 3u
-    %x_518:vec3<f32> = load %455
+    %597:ptr<uniform, vec4<f32>, read> = access %light0, 1u
+    %598:vec4<f32> = load %597
+    %x_510:vec4<f32> = let %598
+    %600:f32 = access %x_510, 0u
+    %601:f32 = access %x_510, 1u
+    %602:f32 = access %x_510, 2u
+    %603:vec3<f32> = construct %600, %601, %602
+    store %param_14, %603
+    %604:ptr<uniform, vec4<f32>, read> = access %light0, 2u
+    %605:vec4<f32> = load %604
+    %x_514:vec4<f32> = let %605
+    %607:f32 = access %x_514, 0u
+    %608:f32 = access %x_514, 1u
+    %609:f32 = access %x_514, 2u
+    %610:vec3<f32> = construct %607, %608, %609
+    store %param_15, %610
+    %611:ptr<uniform, vec3<f32>, read> = access %light0, 3u
+    %612:vec3<f32> = load %611
+    %x_518:vec3<f32> = let %612
     store %param_16, %x_518
-    %x_520:f32 = load %glossiness_1
+    %614:f32 = load %glossiness_1
+    %x_520:f32 = let %614
     store %param_17, %x_520
-    %x_521:lightingInfo = call %computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_, %param_11, %param_12, %param_13, %param_14, %param_15, %param_16, %param_17
+    %616:lightingInfo = call %computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_, %param_11, %param_12, %param_13, %param_14, %param_15, %param_16, %param_17
+    %x_521:lightingInfo = let %616
     store %info, %x_521
     store %shadow, 1.0f
-    %459:ptr<function, vec3<f32>, read_write> = access %info, 0u
-    %x_523:vec3<f32> = load %459
-    %x_524:f32 = load %shadow
-    %x_526:vec3<f32> = load %diffuseBase
-    %463:vec3<f32> = mul %x_523, %x_524
-    %464:vec3<f32> = add %x_526, %463
-    store %diffuseBase, %464
-    %465:ptr<function, vec3<f32>, read_write> = access %info, 1u
-    %x_529:vec3<f32> = load %465
-    %x_530:f32 = load %shadow
-    %x_532:vec3<f32> = load %specularBase
-    %469:vec3<f32> = mul %x_529, %x_530
-    %470:vec3<f32> = add %x_532, %469
-    store %specularBase, %470
-    %x_535:vec3<f32> = load %diffuseBase
-    %x_536:vec3<f32> = load %rgb1
-    %473:vec3<f32> = mul %x_535, %x_536
-    store %diffuseOutput, %473
-    %x_539:vec3<f32> = load %specularBase
-    %x_540:vec3<f32> = load %u_Color
-    %476:vec3<f32> = mul %x_539, %x_540
-    store %specularOutput, %476
-    %x_543:vec3<f32> = load %diffuseOutput
-    %x_544:vec3<f32> = load %specularOutput
-    %479:vec3<f32> = add %x_543, %x_544
-    store %output3, %479
-    %x_548:vec3<f32> = load %output3
-    %481:f32 = access %x_548, 0u
-    %482:f32 = access %x_548, 1u
-    %483:f32 = access %x_548, 2u
-    %484:vec4<f32> = construct %481, %482, %483, 1.0f
-    store %glFragColor, %484
+    %618:ptr<function, vec3<f32>, read_write> = access %info, 0u
+    %619:vec3<f32> = load %618
+    %x_523:vec3<f32> = let %619
+    %621:f32 = load %shadow
+    %x_524:f32 = let %621
+    %623:vec3<f32> = load %diffuseBase
+    %x_526:vec3<f32> = let %623
+    %625:vec3<f32> = mul %x_523, %x_524
+    %626:vec3<f32> = add %x_526, %625
+    store %diffuseBase, %626
+    %627:ptr<function, vec3<f32>, read_write> = access %info, 1u
+    %628:vec3<f32> = load %627
+    %x_529:vec3<f32> = let %628
+    %630:f32 = load %shadow
+    %x_530:f32 = let %630
+    %632:vec3<f32> = load %specularBase
+    %x_532:vec3<f32> = let %632
+    %634:vec3<f32> = mul %x_529, %x_530
+    %635:vec3<f32> = add %x_532, %634
+    store %specularBase, %635
+    %636:vec3<f32> = load %diffuseBase
+    %x_535:vec3<f32> = let %636
+    %638:vec3<f32> = load %rgb1
+    %x_536:vec3<f32> = let %638
+    %640:vec3<f32> = mul %x_535, %x_536
+    store %diffuseOutput, %640
+    %641:vec3<f32> = load %specularBase
+    %x_539:vec3<f32> = let %641
+    %643:vec3<f32> = load %u_Color
+    %x_540:vec3<f32> = let %643
+    %645:vec3<f32> = mul %x_539, %x_540
+    store %specularOutput, %645
+    %646:vec3<f32> = load %diffuseOutput
+    %x_543:vec3<f32> = let %646
+    %648:vec3<f32> = load %specularOutput
+    %x_544:vec3<f32> = let %648
+    %650:vec3<f32> = add %x_543, %x_544
+    store %output3, %650
+    %651:vec3<f32> = load %output3
+    %x_548:vec3<f32> = let %651
+    %653:f32 = access %x_548, 0u
+    %654:f32 = access %x_548, 1u
+    %655:f32 = access %x_548, 2u
+    %656:vec4<f32> = construct %653, %654, %655, 1.0f
+    store %glFragColor, %656
     ret
   }
 }
-%tint_symbol = @fragment func(%vMainuv_param:vec2<f32> [@location(1)], %v_output1_param:vec4<f32> [@location(0)], %gl_FrontFacing_param:bool [@front_facing], %v_uv_param:vec2<f32> [@location(3)], %v_output2_param:vec4<f32> [@location(2)]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%vMainuv_param:vec2<f32> [@location(1)], %v_output1_param:vec4<f32> [@location(0)], %gl_FrontFacing_param:bool [@front_facing], %v_uv_param:vec2<f32> [@location(3)], %v_output2_param:vec4<f32> [@location(2)]):main_out {
+  $B16: {
     store %vMainuv, %vMainuv_param
     store %v_output1, %v_output1_param
     store %gl_FrontFacing, %gl_FrontFacing_param
     store %v_uv, %v_uv_param
     store %v_output2, %v_output2_param
-    %491:void = call %main_1
-    %492:vec4<f32> = load %glFragColor
-    %493:main_out = construct %492
-    ret %493
+    %663:void = call %main_1
+    %664:vec4<f32> = load %glFragColor
+    %665:main_out = construct %664
+    ret %665
   }
 }
 
diff --git a/test/tint/bug/tint/959.wgsl.expected.ir.msl b/test/tint/bug/tint/959.wgsl.expected.ir.msl
index 45866e5..0b29009 100644
--- a/test/tint/bug/tint/959.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/959.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:f32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %b0:ptr<storage, S, read> = var @binding_point(0, 0)
   %b1:ptr<storage, S, read> = var @binding_point(1, 0)
   %b2:ptr<storage, S, read> = var @binding_point(2, 0)
@@ -55,8 +55,8 @@
   %s15:ptr<handle, sampler_comparison, read> = var @binding_point(15, 300)
 }
 
-%tint_symbol = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @fragment func():void {
+  $B2: {
     %50:S = load %b0
     %51:S = load %b1
     %52:S = load %b2
diff --git a/test/tint/bug/tint/977.spvasm.expected.ir.msl b/test/tint/bug/tint/977.spvasm.expected.ir.msl
index dd8e150..cdc3e5b 100644
--- a/test/tint/bug/tint/977.spvasm.expected.ir.msl
+++ b/test/tint/bug/tint/977.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: ResultMatrix = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: ResultMatrix = struct @align(4) {
   numbers:array<f32> @offset(0)
 }
 
@@ -18,7 +18,7 @@
   sizeB:i32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_GlobalInvocationID:ptr<private, vec3<u32>, read_write> = var
   %resultMatrix:ptr<storage, ResultMatrix, read_write> = var @binding_point(0, 2)
   %firstMatrix:ptr<storage, FirstMatrix, read> = var @binding_point(0, 0)
@@ -26,72 +26,77 @@
   %x_46:ptr<uniform, Uniforms, read> = var @binding_point(0, 3)
 }
 
-%binaryOperation_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%binaryOperation_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %x_26:ptr<function, f32, read_write> = var
     %10:f32 = load %b
     %11:bool = eq %10, 0.0f
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 1.0f
       }
     }
-    %x_21:f32 = load %b
-    %13:f32 = div %x_21, 2.0f
-    %14:f32 = floor %13
-    %15:f32 = mul 2.0f, %14
-    %16:f32 = sub %x_21, %15
-    %17:f32 = round %16
-    %18:bool = eq %17, 1.0f
-    %19:bool = eq %18, false
-    if %19 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %20:f32 = load %a
-        %21:f32 = abs %20
-        %22:f32 = load %b
-        %23:f32 = pow %21, %22
-        store %x_26, %23
+    %12:f32 = load %b
+    %x_21:f32 = let %12
+    %14:f32 = div %x_21, 2.0f
+    %15:f32 = floor %14
+    %16:f32 = mul 2.0f, %15
+    %17:f32 = sub %x_21, %16
+    %18:f32 = round %17
+    %19:bool = eq %18, 1.0f
+    %20:bool = eq %19, false
+    if %20 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %21:f32 = load %a
+        %22:f32 = abs %21
+        %23:f32 = load %b
+        %24:f32 = pow %22, %23
+        store %x_26, %24
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %24:f32 = load %a
-        %25:f32 = sign %24
-        %26:f32 = load %a
-        %27:f32 = abs %26
-        %28:f32 = load %b
-        %29:f32 = pow %27, %28
-        %30:f32 = mul %25, %29
-        store %x_26, %30
+      $B5: {  # false
+        %25:f32 = load %a
+        %26:f32 = sign %25
+        %27:f32 = let %26
+        %28:f32 = load %a
+        %29:f32 = abs %28
+        %30:f32 = load %b
+        %31:f32 = pow %29, %30
+        %32:f32 = mul %27, %31
+        store %x_26, %32
         exit_if  # if_2
       }
     }
-    %x_41:f32 = load %x_26
+    %33:f32 = load %x_26
+    %x_41:f32 = let %33
     ret %x_41
   }
 }
-%main_1 = func():void -> %b6 {
-  %b6 = block {
+%main_1 = func():void {
+  $B6: {
     %index:ptr<function, i32, read_write> = var
     %a_1:ptr<function, i32, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
-    %37:u32 = load_vector_element %gl_GlobalInvocationID, 0u
-    %38:i32 = bitcast %37
-    store %index, %38
+    %40:u32 = load_vector_element %gl_GlobalInvocationID, 0u
+    %41:i32 = bitcast %40
+    store %index, %41
     store %a_1, -10i
-    %x_63:i32 = load %index
+    %42:i32 = load %index
+    %x_63:i32 = let %42
     store %param, -4.0f
     store %param_1, -3.0f
-    %x_68:f32 = call %binaryOperation_f1_f1_, %param, %param_1
-    %41:ptr<storage, f32, read_write> = access %resultMatrix, 0u, %x_63
-    store %41, %x_68
+    %44:f32 = call %binaryOperation_f1_f1_, %param, %param_1
+    %x_68:f32 = let %44
+    %46:ptr<storage, f32, read_write> = access %resultMatrix, 0u, %x_63
+    store %46, %x_68
     ret
   }
 }
-%tint_symbol_1 = @compute @workgroup_size(1, 1, 1) func(%gl_GlobalInvocationID_param:vec3<u32> [@global_invocation_id]):void -> %b7 {
-  %b7 = block {
+%tint_symbol_1 = @compute @workgroup_size(1, 1, 1) func(%gl_GlobalInvocationID_param:vec3<u32> [@global_invocation_id]):void {
+  $B7: {
     store %gl_GlobalInvocationID, %gl_GlobalInvocationID_param
-    %44:void = call %main_1
+    %49:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/bug/tint/978.wgsl.expected.ir.msl b/test/tint/bug/tint/978.wgsl.expected.ir.msl
index c87dbdf..414ed77 100644
--- a/test/tint/bug/tint/978.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/978.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragmentOutput = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentOutput = struct @align(16) {
   color:vec4<f32> @offset(0), @location(0)
 }
 
@@ -8,24 +8,26 @@
   vUv:vec2<f32> @offset(0), @location(2)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %depthMap:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 5)
   %texSampler:ptr<handle, sampler, read> = var @binding_point(1, 3)
 }
 
-%tint_symbol = @fragment func(%fIn:FragmentInput):FragmentOutput -> %b2 {
-  %b2 = block {
+%tint_symbol = @fragment func(%fIn:FragmentInput):FragmentOutput {
+  $B2: {
     %5:texture_depth_2d = load %depthMap
     %6:sampler = load %texSampler
     %7:vec2<f32> = access %fIn, 0u
-    %sample:f32 = textureSample %5, %6, %7
-    %color:vec3<f32> = construct %sample, %sample, %sample
+    %8:f32 = textureSample %5, %6, %7
+    %sample:f32 = let %8
+    %10:vec3<f32> = construct %sample, %sample, %sample
+    %color:vec3<f32> = let %10
     %fOut:ptr<function, FragmentOutput, read_write> = var
-    %11:ptr<function, vec4<f32>, read_write> = access %fOut, 0u
-    %12:vec4<f32> = construct %color, 1.0f
-    store %11, %12
-    %13:FragmentOutput = load %fOut
-    ret %13
+    %13:ptr<function, vec4<f32>, read_write> = access %fOut, 0u
+    %14:vec4<f32> = construct %color, 1.0f
+    store %13, %14
+    %15:FragmentOutput = load %fOut
+    ret %15
   }
 }
 
diff --git a/test/tint/bug/tint/980.wgsl.expected.ir.msl b/test/tint/bug/tint/980.wgsl.expected.ir.msl
index 7539644..1ead1ce 100644
--- a/test/tint/bug/tint/980.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/980.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<f32> @offset(0)
   i:u32 @offset(12)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %io:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%Bad = func(%index:u32, %rd:vec3<f32>):vec3<f32> -> %b2 {
-  %b2 = block {
+%Bad = func(%index:u32, %rd:vec3<f32>):vec3<f32> {
+  $B2: {
     %normal:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %6:f32 = access %rd, %index
     %7:f32 = sign %6
@@ -21,8 +21,8 @@
     ret %10
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%idx:u32 [@local_invocation_index]):void {
+  $B3: {
     %13:ptr<storage, vec3<f32>, read_write> = access %io, 0u
     %14:ptr<storage, u32, read_write> = access %io, 1u
     %15:u32 = load %14
diff --git a/test/tint/bug/tint/990.wgsl.expected.ir.msl b/test/tint/bug/tint/990.wgsl.expected.ir.msl
index cdbf128..5c3a247 100644
--- a/test/tint/bug/tint/990.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/990.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void f() {
+  int i = 0;
+  {
+    thread int* const p = i;
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+program_source:7:23: error: cannot initialize a variable of type 'int *const' with an lvalue of type 'int'
+    thread int* const p = i;
+                      ^   ~
+
diff --git a/test/tint/bug/tint/993.wgsl.expected.ir.msl b/test/tint/bug/tint/993.wgsl.expected.ir.msl
index a0b521d..f304267 100644
--- a/test/tint/bug/tint/993.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/993.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Constants = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Constants = struct @align(4) {
   zero:u32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<atomic<i32>, 3> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %constants:ptr<uniform, Constants, read> = var @binding_point(1, 0)
   %result:ptr<storage, Result, read_write> = var @binding_point(1, 1)
   %s:ptr<storage, TestData, read_write> = var @binding_point(0, 0)
 }
 
-%runTest = func():i32 -> %b2 {
-  %b2 = block {
+%runTest = func():i32 {
+  $B2: {
     %5:ptr<uniform, u32, read> = access %constants, 0u
     %6:u32 = load %5
     %7:u32 = construct %6
@@ -29,8 +29,8 @@
     ret %10
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %12:ptr<storage, u32, read_write> = access %result, 0u
     %13:i32 = call %runTest
     %14:u32 = convert %13
diff --git a/test/tint/bug/tint/998.wgsl.expected.ir.msl b/test/tint/bug/tint/998.wgsl.expected.ir.msl
index 2ca622c..9970216 100644
--- a/test/tint/bug/tint/998.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/998.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Constants = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Constants = struct @align(4) {
   zero:u32 @offset(0)
 }
 
@@ -12,14 +12,14 @@
   data:array<u32, 3> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %constants:ptr<uniform, Constants, read> = var @binding_point(1, 0)
-  %result:ptr<storage, Result, read_write> = var @binding_point(1, 1)
+  %result:ptr<storage, Result, read_write> = var @binding_point(0, 1)
   %s:ptr<private, S, read_write> = var
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %5:ptr<uniform, u32, read> = access %constants, 0u
     %6:u32 = load %5
     %7:ptr<private, u32, read_write> = access %s, 0u, %6
diff --git a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.msl
index 32e1f53..99a5e9a 100644
--- a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.ir.msl
@@ -1,18 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %G:ptr<storage, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p:ptr<storage, S, read> = let %G
-    %p2:ptr<storage, array<i32>, read> = access %p, 0u
-    %l1:u32 = arrayLength %p2
+    %4:ptr<storage, array<i32>, read> = access %p, 0u
+    %p2:ptr<storage, array<i32>, read> = let %4
+    %6:u32 = arrayLength %p2
+    %l1:u32 = let %6
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.msl
index bade5f8..0b6198a 100644
--- a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.ir.msl
@@ -1,14 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %G:ptr<storage, array<i32>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p:ptr<storage, array<i32>, read> = let %G
     %p2:ptr<storage, array<i32>, read> = let %p
-    %l1:u32 = arrayLength %p2
+    %5:u32 = arrayLength %p2
+    %l1:u32 = let %5
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.msl
index aa98bce..6c50580 100644
--- a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.ir.msl
@@ -1,19 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %G:ptr<storage, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, array<i32>, read> = access %G, 0u
-    %l1:u32 = arrayLength %3
-    %p:ptr<storage, array<i32>, read> = access %G, 0u
-    %l2:u32 = arrayLength %p
+    %4:u32 = arrayLength %3
+    %l1:u32 = let %4
+    %6:ptr<storage, array<i32>, read> = access %G, 0u
+    %p:ptr<storage, array<i32>, read> = let %6
+    %8:u32 = arrayLength %p
+    %l2:u32 = let %8
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.msl
index 1e92cc0..e995e26 100644
--- a/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/simple.wgsl.expected.ir.msl
@@ -1,17 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %G:ptr<storage, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, array<i32>, read> = access %G, 0u
-    %l1:u32 = arrayLength %3
+    %4:u32 = arrayLength %3
+    %l1:u32 = let %4
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.msl
index 383e3ec..87f5b82 100644
--- a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.ir.msl
@@ -1,12 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %G:ptr<storage, array<i32>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %l1:u32 = arrayLength %G
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:u32 = arrayLength %G
+    %l1:u32 = let %3
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.msl
index 46e5813..a0adc21 100644
--- a/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/via_let.wgsl.expected.ir.msl
@@ -1,18 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %G:ptr<storage, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %p:ptr<storage, array<i32>, read> = access %G, 0u
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:ptr<storage, array<i32>, read> = access %G, 0u
+    %p:ptr<storage, array<i32>, read> = let %3
     %p2:ptr<storage, array<i32>, read> = let %p
-    %l1:u32 = arrayLength %p2
+    %6:u32 = arrayLength %p2
+    %l1:u32 = let %6
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.msl
index 5350010..94eb3df 100644
--- a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.ir.msl
@@ -1,19 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %G:ptr<storage, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p:ptr<storage, S, read> = let %G
     %p2:ptr<storage, S, read> = let %p
-    %p3:ptr<storage, array<i32>, read> = access %p, 0u
-    %l1:u32 = arrayLength %p3
+    %5:ptr<storage, array<i32>, read> = access %p, 0u
+    %p3:ptr<storage, array<i32>, read> = let %5
+    %7:u32 = arrayLength %p3
+    %l1:u32 = let %7
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.msl
index 43af5f8..e276ea6 100644
--- a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.ir.msl
@@ -1,15 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %G:ptr<storage, array<i32>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p:ptr<storage, array<i32>, read> = let %G
     %p2:ptr<storage, array<i32>, read> = let %p
     %p3:ptr<storage, array<i32>, read> = let %p
-    %l1:u32 = arrayLength %p3
+    %6:u32 = arrayLength %p3
+    %l1:u32 = let %6
     ret
   }
 }
diff --git a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.msl b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.msl
index bade5f8..0b6198a 100644
--- a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.msl
+++ b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.ir.msl
@@ -1,14 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %G:ptr<storage, array<i32>, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %p:ptr<storage, array<i32>, read> = let %G
     %p2:ptr<storage, array<i32>, read> = let %p
-    %l1:u32 = arrayLength %p2
+    %5:u32 = arrayLength %p2
+    %l1:u32 = let %5
     ret
   }
 }
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.msl
index efdd3b1..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/array/aliased_arrays.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.msl
index 40823e3..3fa6a4b 100644
--- a/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/array/aliased_arrays.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.msl
index efdd3b1..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/array/array.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.msl
index 40823e3..3fa6a4b 100644
--- a/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/array/array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.msl
index efdd3b1..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/array/arrays.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.msl
index 40823e3..3fa6a4b 100644
--- a/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/array/arrays.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.msl
index efdd3b1..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/array_of_struct.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.msl
index 40823e3..3fa6a4b 100644
--- a/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/array_of_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.msl
index 28251dc..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/flat_multiple_atomics.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.msl
index 28251dc..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/flat_single_atomic.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.msl
index 28251dc..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/nested.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/nested.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.msl
index 28251dc..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/struct_of_array.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.msl
index 40823e3..3fa6a4b 100644
--- a/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/struct_of_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.msl b/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.msl
index 28251dc..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.msl b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.msl
+++ b/test/tint/builtins/atomicStore/struct/via_ptr_let.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.msl
index 018333f..68658f0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicAdd %4, 1i
+    %5:i32 = atomicAdd %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAdd_d32fe4
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAdd_d32fe4
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.msl
index 6095252..1375ee3 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicAdd %4, 1u
+    %5:u32 = atomicAdd %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAdd_8a199a
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAdd_8a199a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAdd_8a199a
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.msl
index b38060a..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.msl
index b38060a..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.msl
index 43b4644..f636432 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAnd_152966 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_152966 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicAnd %4, 1i
+    %5:i32 = atomicAnd %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAnd_152966
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAnd_152966
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAnd_152966
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAnd_152966
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.msl
index a07401c..dd4689a 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAnd_85a8d9 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_85a8d9 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicAnd %4, 1u
+    %5:u32 = atomicAnd %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAnd_85a8d9
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAnd_85a8d9
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAnd_85a8d9
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAnd_85a8d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.msl
index b38060a..cb4c94c 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.msl
index b38060a..cb4c94c 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl
index 6a2b56c..14dcecd 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
@@ -14,44 +14,45 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_1bd40a = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_1bd40a = func():void {
+  $B2: {
     %res:ptr<function, x__atomic_compare_exchange_resulti32, read_write> = var, x__atomic_compare_exchange_resulti32(0i, false)
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %4, 1i, 1i
-    %old_value_1:i32 = access %5, 0u
+    %6:i32 = access %5, 0u
+    %old_value_1:i32 = let %6
     %x_19:i32 = let %old_value_1
-    %8:bool = eq %x_19, 1i
-    %9:x__atomic_compare_exchange_resulti32 = construct %x_19, %8
-    store %res, %9
+    %9:bool = eq %x_19, 1i
+    %10:x__atomic_compare_exchange_resulti32 = construct %x_19, %9
+    store %res, %10
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %11:void = call %atomicCompareExchangeWeak_1bd40a
+%fragment_main_1 = func():void {
+  $B3: {
+    %12:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %13:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %15:void = call %atomicCompareExchangeWeak_1bd40a
+%compute_main_1 = func():void {
+  $B5: {
+    %16:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %17:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %18:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl
index 3a51a5b..eec1176 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
@@ -14,44 +14,45 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_63d8e6 = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_63d8e6 = func():void {
+  $B2: {
     %res:ptr<function, x__atomic_compare_exchange_resultu32, read_write> = var, x__atomic_compare_exchange_resultu32(0u, false)
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %4, 1u, 1u
-    %old_value_1:u32 = access %5, 0u
+    %6:u32 = access %5, 0u
+    %old_value_1:u32 = let %6
     %x_17:u32 = let %old_value_1
-    %8:bool = eq %x_17, 1u
-    %9:x__atomic_compare_exchange_resultu32 = construct %x_17, %8
-    store %res, %9
+    %9:bool = eq %x_17, 1u
+    %10:x__atomic_compare_exchange_resultu32 = construct %x_17, %9
+    store %res, %10
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %11:void = call %atomicCompareExchangeWeak_63d8e6
+%fragment_main_1 = func():void {
+  $B3: {
+    %12:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %13:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %15:void = call %atomicCompareExchangeWeak_63d8e6
+%compute_main_1 = func():void {
+  $B5: {
+    %16:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %17:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %18:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl
index b38060a..b4e0e6d 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl
index b38060a..b4e0e6d 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.msl
index e4cf48a..89fae49 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicExchange_f2e22f = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_f2e22f = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicExchange %4, 1i
+    %5:i32 = atomicExchange %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicExchange_f2e22f
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicExchange_f2e22f
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicExchange_f2e22f
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicExchange_f2e22f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.msl
index f846387..6eb9ff0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicExchange_d59712 = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_d59712 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicExchange %4, 1u
+    %5:u32 = atomicExchange %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicExchange_d59712
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicExchange_d59712
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicExchange_d59712
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicExchange_d59712
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.msl
index b38060a..2f8d44e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.msl
index b38060a..2f8d44e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.msl
index 1b06340..7b20853 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicLoad_0806ad = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_0806ad = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicLoad %4
+    %5:i32 = atomicLoad %4
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicLoad_0806ad
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicLoad_0806ad
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicLoad_0806ad
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicLoad_0806ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.msl
index ccc1975..3c25b76 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicLoad_fe6cc3 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_fe6cc3 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicLoad %4
+    %5:u32 = atomicLoad %4
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicLoad_fe6cc3
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicLoad_fe6cc3
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicLoad_fe6cc3
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicLoad_fe6cc3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.msl
index b38060a..e62fe24 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.msl
index b38060a..e62fe24 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.msl
index f08f451..e8fca07 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMax_92aa72 = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_92aa72 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicMax %4, 1i
+    %5:i32 = atomicMax %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicMax_92aa72
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicMax_92aa72
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicMax_92aa72
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicMax_92aa72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.msl
index 12d1369..4433c19 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMax_51b9be = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_51b9be = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicMax %4, 1u
+    %5:u32 = atomicMax %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicMax_51b9be
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicMax_51b9be
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicMax_51b9be
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicMax_51b9be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.msl
index b38060a..6687606 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.msl
index b38060a..6687606 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.msl
index e32fea2..21e0d7d 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMin_8e38dc = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_8e38dc = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicMin %4, 1i
+    %5:i32 = atomicMin %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicMin_8e38dc
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicMin_8e38dc
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicMin_8e38dc
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicMin_8e38dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.msl
index be3e8a5..d099c9f 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMin_c67a74 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_c67a74 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicMin %4, 1u
+    %5:u32 = atomicMin %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicMin_c67a74
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicMin_c67a74
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicMin_c67a74
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicMin_c67a74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.msl
index b38060a..829342e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.msl
index b38060a..829342e 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.msl
index f22f193..40aafa6 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicOr_8d96a0 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_8d96a0 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicOr %4, 1i
+    %5:i32 = atomicOr %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicOr_8d96a0
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicOr_8d96a0
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicOr_8d96a0
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicOr_8d96a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.msl
index 62dc841..42ef410 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicOr_5e95d4 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_5e95d4 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicOr %4, 1u
+    %5:u32 = atomicOr %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicOr_5e95d4
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicOr_5e95d4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicOr_5e95d4
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicOr_5e95d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.msl
index b38060a..49e8313 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.msl
index b38060a..49e8313 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.msl
index 7e9e333..b596ede 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.ir.msl
@@ -1,40 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_d1e9a6 = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_d1e9a6 = func():void {
+  $B2: {
     %3:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %4:void = atomicStore %3, 1i
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
+%fragment_main_1 = func():void {
+  $B3: {
     %6:void = call %atomicStore_d1e9a6
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
+%compute_main_1 = func():void {
+  $B5: {
     %10:void = call %atomicStore_d1e9a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
     %12:void = call %compute_main_1
     ret
   }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.msl
index a300b03..f8c29ad 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.ir.msl
@@ -1,40 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_cdc29e = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_cdc29e = func():void {
+  $B2: {
     %3:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %4:void = atomicStore %3, 1u
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
+%fragment_main_1 = func():void {
+  $B3: {
     %6:void = call %atomicStore_cdc29e
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
+%compute_main_1 = func():void {
+  $B5: {
     %10:void = call %atomicStore_cdc29e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
     %12:void = call %compute_main_1
     ret
   }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.msl
index b38060a..92c0fdd 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.msl
index b38060a..92c0fdd 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.msl
index b5e3378..98dc438 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicSub_051100 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_051100 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicSub %4, 1i
+    %5:i32 = atomicSub %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicSub_051100
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicSub_051100
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicSub_051100
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicSub_051100
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.msl
index feb29d3..6de10a8 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicSub_15bfc9 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_15bfc9 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicSub %4, 1u
+    %5:u32 = atomicSub %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicSub_15bfc9
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicSub_15bfc9
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicSub_15bfc9
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicSub_15bfc9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.msl
index b38060a..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.msl
index b38060a..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.msl
index e90e590..532c62c 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicXor_c1b78c = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_c1b78c = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicXor %4, 1i
+    %5:i32 = atomicXor %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicXor_c1b78c
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicXor_c1b78c
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicXor_c1b78c
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicXor_c1b78c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.msl
index 1cd1de9..c123f78 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicXor_54510e = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_54510e = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicXor %4, 1u
+    %5:u32 = atomicXor %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicXor_54510e
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicXor_54510e
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicXor_54510e
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicXor_54510e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.msl
index b38060a..665f64b 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.msl
index b38060a..665f64b 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl
index 3f05aba..0b67cf6 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicSub %4, 1i
+    %5:i32 = atomicSub %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAdd_d32fe4
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAdd_d32fe4
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl
index 8d9784d..68ccea4 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicSub %4, 1u
+    %5:u32 = atomicSub %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAdd_8a199a
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAdd_8a199a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAdd_8a199a
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl
index b38060a..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl
index b38060a..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl
index 018333f..68658f0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicAdd %4, 1i
+    %5:i32 = atomicAdd %4, 1i
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAdd_d32fe4
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAdd_d32fe4
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl
index 6095252..1375ee3 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicAdd %4, 1u
+    %5:u32 = atomicAdd %4, 1u
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicAdd_8a199a
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicAdd_8a199a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicAdd_8a199a
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl
index b38060a..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl
index b38060a..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.msl
index a04380b..8a8ef46 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicAdd %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicAdd %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicAdd_d32fe4
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicAdd_d32fe4
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.msl
index 40b4d94..19e1415 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicAdd %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicAdd %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicAdd_8a199a
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicAdd_8a199a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicAdd_8a199a
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.msl
index 94d34de..62a0403 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAnd_152966 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_152966 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicAnd %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicAnd %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicAnd_152966
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicAnd_152966
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicAnd_152966
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicAnd_152966
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.msl
index 40af166..b578acb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAnd_85a8d9 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_85a8d9 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicAnd %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicAnd %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicAnd_85a8d9
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicAnd_85a8d9
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicAnd_85a8d9
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicAnd_85a8d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..cb4c94c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..cb4c94c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAnd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl
index 6a438d5..6a47b50 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
@@ -14,50 +14,53 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_1bd40a = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_1bd40a = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %arg_2:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, x__atomic_compare_exchange_resulti32, read_write> = var, x__atomic_compare_exchange_resulti32(0i, false)
     store %arg_1, 1i
     store %arg_2, 1i
-    %x_23:i32 = load %arg_2
-    %x_24:i32 = load %arg_1
-    %8:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %9:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %8, %x_24, %x_23
-    %old_value_1:i32 = access %9, 0u
+    %6:i32 = load %arg_2
+    %x_23:i32 = let %6
+    %8:i32 = load %arg_1
+    %x_24:i32 = let %8
+    %10:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %11:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %10, %x_24, %x_23
+    %12:i32 = access %11, 0u
+    %old_value_1:i32 = let %12
     %x_25:i32 = let %old_value_1
-    %12:bool = eq %x_25, %x_23
-    %13:x__atomic_compare_exchange_resulti32 = construct %x_25, %12
-    store %res, %13
+    %15:bool = eq %x_25, %x_23
+    %16:x__atomic_compare_exchange_resulti32 = construct %x_25, %15
+    store %res, %16
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %15:void = call %atomicCompareExchangeWeak_1bd40a
+%fragment_main_1 = func():void {
+  $B3: {
+    %18:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %20:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %atomicCompareExchangeWeak_1bd40a
+%compute_main_1 = func():void {
+  $B5: {
+    %22:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %21:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %24:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl
index 683fd25..90ba1b5 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
@@ -14,50 +14,53 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_63d8e6 = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_63d8e6 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %arg_2:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, x__atomic_compare_exchange_resultu32, read_write> = var, x__atomic_compare_exchange_resultu32(0u, false)
     store %arg_1, 1u
     store %arg_2, 1u
-    %x_21:u32 = load %arg_2
-    %x_22:u32 = load %arg_1
-    %8:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %9:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %8, %x_22, %x_21
-    %old_value_1:u32 = access %9, 0u
+    %6:u32 = load %arg_2
+    %x_21:u32 = let %6
+    %8:u32 = load %arg_1
+    %x_22:u32 = let %8
+    %10:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %11:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %10, %x_22, %x_21
+    %12:u32 = access %11, 0u
+    %old_value_1:u32 = let %12
     %x_23:u32 = let %old_value_1
-    %12:bool = eq %x_23, %x_21
-    %13:x__atomic_compare_exchange_resultu32 = construct %x_23, %12
-    store %res, %13
+    %15:bool = eq %x_23, %x_21
+    %16:x__atomic_compare_exchange_resultu32 = construct %x_23, %15
+    store %res, %16
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %15:void = call %atomicCompareExchangeWeak_63d8e6
+%fragment_main_1 = func():void {
+  $B3: {
+    %18:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %20:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %atomicCompareExchangeWeak_63d8e6
+%compute_main_1 = func():void {
+  $B5: {
+    %22:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %21:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %24:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..b4e0e6d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..b4e0e6d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.msl
index 341f200..b48794d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicExchange_f2e22f = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_f2e22f = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicExchange %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicExchange %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicExchange_f2e22f
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicExchange_f2e22f
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicExchange_f2e22f
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicExchange_f2e22f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.msl
index ab62a1c..df1b5e9 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicExchange_d59712 = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_d59712 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicExchange %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicExchange %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicExchange_d59712
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicExchange_d59712
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicExchange_d59712
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicExchange_d59712
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..2f8d44e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..2f8d44e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicExchange
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.msl
index 1b06340..7b20853 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicLoad_0806ad = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_0806ad = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_9:i32 = atomicLoad %4
+    %5:i32 = atomicLoad %4
+    %x_9:i32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicLoad_0806ad
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicLoad_0806ad
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicLoad_0806ad
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicLoad_0806ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.msl
index ccc1975..3c25b76 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.ir.msl
@@ -1,43 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicLoad_fe6cc3 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_fe6cc3 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_9:u32 = atomicLoad %4
+    %5:u32 = atomicLoad %4
+    %x_9:u32 = let %5
     store %res, %x_9
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %atomicLoad_fe6cc3
+%fragment_main_1 = func():void {
+  $B3: {
+    %8:void = call %atomicLoad_fe6cc3
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %atomicLoad_fe6cc3
+%compute_main_1 = func():void {
+  $B5: {
+    %12:void = call %atomicLoad_fe6cc3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %14:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.msl
index b38060a..e62fe24 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.msl
index b38060a..e62fe24 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.msl
index 4bc5073..44332aa 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMax_92aa72 = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_92aa72 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicMax %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicMax %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicMax_92aa72
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicMax_92aa72
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicMax_92aa72
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicMax_92aa72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.msl
index 08e74b0..2c71acf 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMax_51b9be = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_51b9be = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicMax %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicMax %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicMax_51b9be
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicMax_51b9be
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicMax_51b9be
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicMax_51b9be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..6687606 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..6687606 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMax
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.msl
index 097fac5..0102605 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMin_8e38dc = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_8e38dc = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicMin %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicMin %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicMin_8e38dc
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicMin_8e38dc
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicMin_8e38dc
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicMin_8e38dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.msl
index d305f8b..ce2c985 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicMin_c67a74 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_c67a74 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicMin %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicMin %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicMin_c67a74
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicMin_c67a74
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicMin_c67a74
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicMin_c67a74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..829342e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..829342e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicMin
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.msl
index 1d8a5c3..9cade54 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicOr_8d96a0 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_8d96a0 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicOr %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicOr %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicOr_8d96a0
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicOr_8d96a0
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicOr_8d96a0
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicOr_8d96a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.msl
index c77e311..dcfab64 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicOr_5e95d4 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_5e95d4 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicOr %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicOr %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicOr_5e95d4
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicOr_5e95d4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicOr_5e95d4
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicOr_5e95d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..49e8313 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..49e8313 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicOr
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.msl
index f05836b..a33344a 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.ir.msl
@@ -1,44 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_d1e9a6 = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_d1e9a6 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %6:void = atomicStore %5, %x_20
+    %4:i32 = load %arg_1
+    %x_20:i32 = let %4
+    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %7:void = atomicStore %6, %x_20
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicStore_d1e9a6
+%fragment_main_1 = func():void {
+  $B3: {
+    %9:void = call %atomicStore_d1e9a6
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %10:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %12:void = call %atomicStore_d1e9a6
+%compute_main_1 = func():void {
+  $B5: {
+    %13:void = call %atomicStore_d1e9a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %14:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.msl
index 30878b8..d8786c0 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.ir.msl
@@ -1,44 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_cdc29e = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_cdc29e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %6:void = atomicStore %5, %x_18
+    %4:u32 = load %arg_1
+    %x_18:u32 = let %4
+    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %7:void = atomicStore %6, %x_18
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicStore_cdc29e
+%fragment_main_1 = func():void {
+  $B3: {
+    %9:void = call %atomicStore_cdc29e
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %10:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %12:void = call %atomicStore_cdc29e
+%compute_main_1 = func():void {
+  $B5: {
+    %13:void = call %atomicStore_cdc29e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %14:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..92c0fdd 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..92c0fdd 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.msl
index ab63ae0..6b41579 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicSub_051100 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_051100 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicSub %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicSub %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicSub_051100
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicSub_051100
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicSub_051100
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicSub_051100
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.msl
index 90257fb..a48c41d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicSub_15bfc9 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_15bfc9 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicSub %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicSub %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicSub_15bfc9
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicSub_15bfc9
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicSub_15bfc9
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicSub_15bfc9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.msl
index c42ec40..e184a49 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicXor_c1b78c = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_c1b78c = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
-    %x_20:i32 = load %arg_1
-    %6:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicXor %6, %x_20
+    %5:i32 = load %arg_1
+    %x_20:i32 = let %5
+    %7:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
+    %8:i32 = atomicXor %7, %x_20
+    %x_13:i32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicXor_c1b78c
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicXor_c1b78c
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicXor_c1b78c
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicXor_c1b78c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.msl
index 7301d13..b29898a 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.ir.msl
@@ -1,46 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicXor_54510e = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_54510e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
-    %x_18:u32 = load %arg_1
-    %6:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicXor %6, %x_18
+    %5:u32 = load %arg_1
+    %x_18:u32 = let %5
+    %7:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = atomicXor %7, %x_18
+    %x_13:u32 = let %8
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %9:void = call %atomicXor_54510e
+%fragment_main_1 = func():void {
+  $B3: {
+    %11:void = call %atomicXor_54510e
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %atomicXor_54510e
+%compute_main_1 = func():void {
+  $B5: {
+    %15:void = call %atomicXor_54510e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %17:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..665f64b 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..665f64b 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicXor
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl
index 20cca2d..f87530e 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.ir.msl
@@ -1,45 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicSub %5, 1i
+    %6:i32 = atomicSub %5, 1i
+    %x_13:i32 = let %6
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAdd_d32fe4
+%fragment_main_1 = func():void {
+  $B3: {
+    %9:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %10:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %12:void = call %atomicAdd_d32fe4
+%compute_main_1 = func():void {
+  $B5: {
+    %13:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %14:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl
index 840a5b4..d827813 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.ir.msl
@@ -1,45 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicSub %5, 1u
+    %6:u32 = atomicSub %5, 1u
+    %x_13:u32 = let %6
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAdd_8a199a
+%fragment_main_1 = func():void {
+  $B3: {
+    %9:void = call %atomicAdd_8a199a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %10:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %12:void = call %atomicAdd_8a199a
+%compute_main_1 = func():void {
+  $B5: {
+    %13:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %14:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..0c4bcbe 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicSub
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl
index 4066047..006c1b4 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.ir.msl
@@ -1,45 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 0i
     %res:ptr<function, i32, read_write> = var, 0i
     store %arg_1, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
-    %x_13:i32 = atomicAdd %5, 1i
+    %6:i32 = atomicAdd %5, 1i
+    %x_13:i32 = let %6
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAdd_d32fe4
+%fragment_main_1 = func():void {
+  $B3: {
+    %9:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %10:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %12:void = call %atomicAdd_d32fe4
+%compute_main_1 = func():void {
+  $B5: {
+    %13:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %14:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl
index d6b86ec..0275a62 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.ir.msl
@@ -1,45 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SB_RW_atomic = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW_atomic = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW_atomic, read_write> = var @binding_point(0, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 0u
     %res:ptr<function, u32, read_write> = var, 0u
     store %arg_1, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
-    %x_13:u32 = atomicAdd %5, 1u
+    %6:u32 = atomicAdd %5, 1u
+    %x_13:u32 = let %6
     store %res, %x_13
     ret
   }
 }
-%fragment_main_1 = func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAdd_8a199a
+%fragment_main_1 = func():void {
+  $B3: {
+    %9:void = call %atomicAdd_8a199a
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %10:void = call %fragment_main_1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %fragment_main_1
     ret
   }
 }
-%compute_main_1 = func():void -> %b5 {
-  %b5 = block {
-    %12:void = call %atomicAdd_8a199a
+%compute_main_1 = func():void {
+  $B5: {
+    %13:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %14:void = call %compute_main_1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %compute_main_1
     ret
   }
 }
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl
index efdd3b1..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_i32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl
index efdd3b1..f7dc0d0 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/workgroup_u32.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicAdd
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/degrees.spvasm.expected.ir.msl b/test/tint/builtins/degrees.spvasm.expected.ir.msl
index efdd3b1..52f1705 100644
--- a/test/tint/builtins/degrees.spvasm.expected.ir.msl
+++ b/test/tint/builtins/degrees.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: degrees
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.msl b/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.msl
index e32d733..40ec97c 100644
--- a/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/extractBits/scalar/i32.spvasm.expected.ir.msl
@@ -1,12 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  int v = 0;
-  uint offset_1 = 0u;
-  uint count = 0u;
-  int const x_14 = extract_bits(v, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.msl b/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.msl
index f745d77..40ec97c 100644
--- a/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/extractBits/scalar/u32.spvasm.expected.ir.msl
@@ -1,12 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  uint v = 0u;
-  uint offset_1 = 0u;
-  uint count = 0u;
-  uint const x_11 = extract_bits(v, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.msl b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.msl
index 12ea438..40ec97c 100644
--- a/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/extractBits/vec3/i32.spvasm.expected.ir.msl
@@ -1,12 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  int3 v = int3(0);
-  uint offset_1 = 0u;
-  uint count = 0u;
-  int3 const x_15 = extract_bits(v, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.msl b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.msl
index d03d9a2..40ec97c 100644
--- a/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/extractBits/vec3/u32.spvasm.expected.ir.msl
@@ -1,12 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  uint3 v = uint3(0u);
-  uint offset_1 = 0u;
-  uint count = 0u;
-  uint3 const x_14 = extract_bits(v, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.msl b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/frexp/scalar/mixed.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.msl b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.msl
+++ b/test/tint/builtins/frexp/scalar/runtime.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.msl b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/frexp/vector/mixed.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.msl b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.msl
+++ b/test/tint/builtins/frexp/vector/runtime.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.msl
index 5818c13..0731a6e 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_002533 = func():void -> %b2 {
-  %b2 = block {
+%abs_002533 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_002533
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_002533
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_002533
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.msl
index c3db820..437c147 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_005174 = func():void -> %b2 {
-  %b2 = block {
+%abs_005174 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_005174
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_005174
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_005174
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.msl
index 1fa9350..cb8d8a9 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_1ce782 = func():void -> %b2 {
-  %b2 = block {
+%abs_1ce782 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_1ce782
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_1ce782
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_1ce782
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.msl
index 2fdf8a4..d119f0a 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_1e9d53 = func():void -> %b2 {
-  %b2 = block {
+%abs_1e9d53 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_1e9d53
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_1e9d53
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_1e9d53
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.msl
index 749f10f..352c724 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_421ca3 = func():void -> %b2 {
-  %b2 = block {
+%abs_421ca3 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_421ca3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_421ca3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_421ca3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.msl
index 625c122..74cdbfe 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%abs_467cd1 = func():void -> %b2 {
-  %b2 = block {
+%abs_467cd1 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_467cd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_467cd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_467cd1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.msl
index f865ecb..ad04181 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%abs_4ad288 = func():void -> %b2 {
-  %b2 = block {
+%abs_4ad288 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_4ad288
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_4ad288
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_4ad288
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.msl
index f12cff0..a6cfc71 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_538d29 = func():void -> %b2 {
-  %b2 = block {
+%abs_538d29 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_538d29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_538d29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_538d29
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.msl
index 8b29d4e..4816bb5 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_5ad50a = func():void -> %b2 {
-  %b2 = block {
+%abs_5ad50a = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_5ad50a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_5ad50a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_5ad50a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.msl
index ffd8d38..a18628f 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_5ae4fe = func():void -> %b2 {
-  %b2 = block {
+%abs_5ae4fe = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_5ae4fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_5ae4fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_5ae4fe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.msl
index a1f4af2..9b1b183 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_7326de = func():void -> %b2 {
-  %b2 = block {
+%abs_7326de = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_7326de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_7326de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_7326de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.msl
index 8108b31..d4b3603 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_7f28e6 = func():void -> %b2 {
-  %b2 = block {
+%abs_7f28e6 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_7f28e6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_7f28e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_7f28e6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.msl
index 8b2e6f8..327c226 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_7faa9e = func():void -> %b2 {
-  %b2 = block {
+%abs_7faa9e = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_7faa9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_7faa9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_7faa9e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.msl
index b73bce3..174bf05 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_9c80a6 = func():void -> %b2 {
-  %b2 = block {
+%abs_9c80a6 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_9c80a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_9c80a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_9c80a6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.msl
index ca11eb0..7d603d9 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%abs_b96037 = func():void -> %b2 {
-  %b2 = block {
+%abs_b96037 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_b96037
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_b96037
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_b96037
     ret
   }
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.msl
index 87dd2e0..d53f0ff 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%abs_fd247f = func():void -> %b2 {
-  %b2 = block {
+%abs_fd247f = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %abs_fd247f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %abs_fd247f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %abs_fd247f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.msl
index 2e59739..06b25fd 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_004aff = func():void -> %b2 {
-  %b2 = block {
+%acos_004aff = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.25048828125h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_004aff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_004aff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_004aff
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.msl
index ff30f79..b742690 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_203628 = func():void -> %b2 {
-  %b2 = block {
+%acos_203628 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.25048828125h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_203628
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_203628
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_203628
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.msl
index 11baadd..8e6bdd4 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%acos_303e3d = func():void -> %b2 {
-  %b2 = block {
+%acos_303e3d = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.25048828125h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_303e3d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_303e3d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_303e3d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.msl
index fe5cf10..136a7bb 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%acos_489247 = func():void -> %b2 {
-  %b2 = block {
+%acos_489247 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.25f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_489247
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_489247
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_489247
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.msl
index a0dadf7..c302051 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_8e2acf = func():void -> %b2 {
-  %b2 = block {
+%acos_8e2acf = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.25f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_8e2acf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_8e2acf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_8e2acf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.msl
index 1d307a1..a5c39dc 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_a610c4 = func():void -> %b2 {
-  %b2 = block {
+%acos_a610c4 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.25f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_a610c4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_a610c4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_a610c4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.msl
index 8ec4209..73ad491 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_dfc915 = func():void -> %b2 {
-  %b2 = block {
+%acos_dfc915 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.25f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_dfc915
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_dfc915
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_dfc915
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.msl
index 21306cd..a52f337 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_f47057 = func():void -> %b2 {
-  %b2 = block {
+%acos_f47057 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.25048828125h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acos_f47057
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acos_f47057
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acos_f47057
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.msl
index 364f5c5..767cdf8 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_5f49d8 = func():void -> %b2 {
-  %b2 = block {
+%acosh_5f49d8 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.99951171875h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_5f49d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_5f49d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_5f49d8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.msl
index 7e3b687..ae0ced3 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_640883 = func():void -> %b2 {
-  %b2 = block {
+%acosh_640883 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_640883
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_640883
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_640883
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.msl
index e95e9e4..f1865f3 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_a37dfe = func():void -> %b2 {
-  %b2 = block {
+%acosh_a37dfe = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.99951171875h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_a37dfe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_a37dfe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_a37dfe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.msl
index 325af03..e729a16 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_d51ccb = func():void -> %b2 {
-  %b2 = block {
+%acosh_d51ccb = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_d51ccb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_d51ccb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_d51ccb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.msl
index 0e17b06..79e04ce2 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_de60d8 = func():void -> %b2 {
-  %b2 = block {
+%acosh_de60d8 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.99951171875h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_de60d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_de60d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_de60d8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.msl
index 0af73a9..ae5884e 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_e38f5c = func():void -> %b2 {
-  %b2 = block {
+%acosh_e38f5c = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_e38f5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_e38f5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_e38f5c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.msl
index 5d6a69f..fb27f29 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_ecf2d1 = func():void -> %b2 {
-  %b2 = block {
+%acosh_ecf2d1 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_ecf2d1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_ecf2d1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_ecf2d1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.msl
index db1adcc..953cc26 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_f56574 = func():void -> %b2 {
-  %b2 = block {
+%acosh_f56574 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.99951171875h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %acosh_f56574
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %acosh_f56574
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %acosh_f56574
     ret
   }
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.msl
index 8998e1c..96f3514 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_353d6a = func():void -> %b2 {
-  %b2 = block {
+%all_353d6a = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %all_353d6a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %all_353d6a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %all_353d6a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.msl
index a6b4449..6b51625 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_986c7b = func():void -> %b2 {
-  %b2 = block {
+%all_986c7b = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %all_986c7b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %all_986c7b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %all_986c7b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.msl
index 4458631..6ab4c60 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_bd2dba = func():void -> %b2 {
-  %b2 = block {
+%all_bd2dba = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %all_bd2dba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %all_bd2dba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %all_bd2dba
     ret
   }
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.msl
index e3ce048..780c535 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_f46790 = func():void -> %b2 {
-  %b2 = block {
+%all_f46790 = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %all_f46790
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %all_f46790
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %all_f46790
     ret
   }
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.msl
index ab81d36..098ce1c 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_083428 = func():void -> %b2 {
-  %b2 = block {
+%any_083428 = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %any_083428
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %any_083428
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %any_083428
     ret
   }
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.msl
index 04c181f..932fcf4 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_0e3e58 = func():void -> %b2 {
-  %b2 = block {
+%any_0e3e58 = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %any_0e3e58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %any_0e3e58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %any_0e3e58
     ret
   }
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.msl
index 97835cf..2149cc4 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_2ab91a = func():void -> %b2 {
-  %b2 = block {
+%any_2ab91a = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %any_2ab91a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %any_2ab91a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %any_2ab91a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.msl
index 377a837..d585dd8 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_e755c1 = func():void -> %b2 {
-  %b2 = block {
+%any_e755c1 = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %any_e755c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %any_e755c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %any_e755c1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl
index b4a5e32..6a20a8a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(4) {
   arg_0:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_1588cd = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_1588cd = func():void {
+  $B2: {
     %4:ptr<storage, array<i32>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_1588cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_1588cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_1588cd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl
index c984c30..7f449f6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_61b1c7 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_61b1c7 = func():void {
+  $B2: {
     %4:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_61b1c7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_61b1c7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_61b1c7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
index af17f38..f062c57 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(2) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(2) {
   arg_0:array<f16> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_8421b9 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_8421b9 = func():void {
+  $B2: {
     %4:ptr<storage, array<f16>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_8421b9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_8421b9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_8421b9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
index 502bcb1..a48951d 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(4) {
   arg_0:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_a0f5ca = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_a0f5ca = func():void {
+  $B2: {
     %4:ptr<storage, array<f32>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_a0f5ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_a0f5ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_a0f5ca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl
index 5794de2..818bebf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(2) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(2) {
   arg_0:array<f16> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_cbd6b5 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_cbd6b5 = func():void {
+  $B2: {
     %4:ptr<storage, array<f16>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_cbd6b5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_cbd6b5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_cbd6b5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl
index d3348fb..bbdda44 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_cdd123 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_cdd123 = func():void {
+  $B2: {
     %4:ptr<storage, array<f32>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_cdd123
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_cdd123
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_cdd123
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
index e381c84..f320d12 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(4) {
   arg_0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_cfca0a = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_cfca0a = func():void {
+  $B2: {
     %4:ptr<storage, array<u32>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_cfca0a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_cfca0a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_cfca0a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl
index 900b8d0..b07c58a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_eb510f = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_eb510f = func():void {
+  $B2: {
     %4:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_eb510f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_eb510f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_eb510f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.msl
index 1be28f8..6cac7c5 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_064953 = func():void -> %b2 {
-  %b2 = block {
+%asin_064953 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.5f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_064953
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_064953
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_064953
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.msl
index 2f1aa8b..e1e9ad2 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%asin_11dfda = func():void -> %b2 {
-  %b2 = block {
+%asin_11dfda = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.499755859375h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_11dfda
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_11dfda
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_11dfda
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.msl
index 5fecc8f..c7fd0a9 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_2d8e29 = func():void -> %b2 {
-  %b2 = block {
+%asin_2d8e29 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.499755859375h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_2d8e29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_2d8e29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_2d8e29
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.msl
index 79c5350..3240bd1 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_3cfbd4 = func():void -> %b2 {
-  %b2 = block {
+%asin_3cfbd4 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.499755859375h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_3cfbd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_3cfbd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_3cfbd4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.msl
index e0197e2..3b792c6 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_7b6a44 = func():void -> %b2 {
-  %b2 = block {
+%asin_7b6a44 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.5f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_7b6a44
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_7b6a44
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_7b6a44
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.msl
index 420a12b..9451fcd 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_8cd9c9 = func():void -> %b2 {
-  %b2 = block {
+%asin_8cd9c9 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.5f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_8cd9c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_8cd9c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_8cd9c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.msl
index 36da383..88a1eda 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_b4aced = func():void -> %b2 {
-  %b2 = block {
+%asin_b4aced = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.499755859375h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_b4aced
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_b4aced
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_b4aced
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.msl
index 8f325c8..2e76028 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%asin_c0c272 = func():void -> %b2 {
-  %b2 = block {
+%asin_c0c272 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.5f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asin_c0c272
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asin_c0c272
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asin_c0c272
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.msl
index fabafc2..4e55c09 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_157447 = func():void -> %b2 {
-  %b2 = block {
+%asinh_157447 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.88137358427047729492f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_157447
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_157447
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_157447
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.msl
index 03f7806..9cdfce9 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_2265ee = func():void -> %b2 {
-  %b2 = block {
+%asinh_2265ee = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.88137358427047729492f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_2265ee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_2265ee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_2265ee
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.msl
index d3fa53c..d3d9eb2 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_468a48 = func():void -> %b2 {
-  %b2 = block {
+%asinh_468a48 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.88134765625h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_468a48
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_468a48
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_468a48
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.msl
index 3bbe187..90087a9 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_4a2226 = func():void -> %b2 {
-  %b2 = block {
+%asinh_4a2226 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.88137358427047729492f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_4a2226
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_4a2226
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_4a2226
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.msl
index 122c440..2b1f246 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_8d2e51 = func():void -> %b2 {
-  %b2 = block {
+%asinh_8d2e51 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.88137358427047729492f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_8d2e51
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_8d2e51
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_8d2e51
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.msl
index a2c850a..8de6cef 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_95ab2b = func():void -> %b2 {
-  %b2 = block {
+%asinh_95ab2b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.88134765625h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_95ab2b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_95ab2b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_95ab2b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.msl
index 0f0f7c3..d36b50a 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_ad8f8b = func():void -> %b2 {
-  %b2 = block {
+%asinh_ad8f8b = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.88134765625h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_ad8f8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_ad8f8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_ad8f8b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.msl
index 368b8b0..d342382 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_fb5e8c = func():void -> %b2 {
-  %b2 = block {
+%asinh_fb5e8c = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.88134765625h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %asinh_fb5e8c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %asinh_fb5e8c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %asinh_fb5e8c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.msl
index dad9f69..fc16177 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%atan_02979a = func():void -> %b2 {
-  %b2 = block {
+%atan_02979a = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.78539818525314331055f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_02979a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_02979a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_02979a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.msl
index 18eda1a..d969133 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_19faea = func():void -> %b2 {
-  %b2 = block {
+%atan_19faea = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.78515625h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_19faea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_19faea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_19faea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.msl
index 4c922730..74d783a 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_1e1764 = func():void -> %b2 {
-  %b2 = block {
+%atan_1e1764 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.78515625h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_1e1764
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_1e1764
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_1e1764
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.msl
index 89b4f55..203fdc1 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_331e6d = func():void -> %b2 {
-  %b2 = block {
+%atan_331e6d = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.78539818525314331055f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_331e6d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_331e6d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_331e6d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.msl
index 5429ce0..b9bc08a 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_a5f421 = func():void -> %b2 {
-  %b2 = block {
+%atan_a5f421 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.78515625h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_a5f421
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_a5f421
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_a5f421
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.msl
index 3f9956d..7cc44ea 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%atan_a7ba61 = func():void -> %b2 {
-  %b2 = block {
+%atan_a7ba61 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.78515625h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_a7ba61
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_a7ba61
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_a7ba61
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.msl
index 1e9aef8..649646a 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_a8b696 = func():void -> %b2 {
-  %b2 = block {
+%atan_a8b696 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.78539818525314331055f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_a8b696
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_a8b696
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_a8b696
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.msl
index 9ae816d..fabc053 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_ad96e4 = func():void -> %b2 {
-  %b2 = block {
+%atan_ad96e4 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.78539818525314331055f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan_ad96e4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan_ad96e4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan_ad96e4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.msl
index 9b04df1..a1b4e14 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_21dfea = func():void -> %b2 {
-  %b2 = block {
+%atan2_21dfea = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.78515625h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_21dfea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_21dfea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_21dfea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.msl
index aee8836..62027e2 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_57fb13 = func():void -> %b2 {
-  %b2 = block {
+%atan2_57fb13 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.78539818525314331055f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_57fb13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_57fb13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_57fb13
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.msl
index 2e03eb4..f15080b 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_93febc = func():void -> %b2 {
-  %b2 = block {
+%atan2_93febc = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.78515625h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_93febc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_93febc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_93febc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.msl
index 4303d9a..0fc831d 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_96057c = func():void -> %b2 {
-  %b2 = block {
+%atan2_96057c = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.78539818525314331055f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_96057c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_96057c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_96057c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.msl
index 3bd4e20..6d245dd 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_a70d0d = func():void -> %b2 {
-  %b2 = block {
+%atan2_a70d0d = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.78539818525314331055f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_a70d0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_a70d0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_a70d0d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.msl
index d7f7a6e..bb1dae7 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_ae713e = func():void -> %b2 {
-  %b2 = block {
+%atan2_ae713e = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.78539818525314331055f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_ae713e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_ae713e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_ae713e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.msl
index d3a5a02..8028639 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_ca698e = func():void -> %b2 {
-  %b2 = block {
+%atan2_ca698e = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.78515625h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_ca698e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_ca698e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_ca698e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.msl
index ad869ba..0c4fab0 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_d983ab = func():void -> %b2 {
-  %b2 = block {
+%atan2_d983ab = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.78515625h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atan2_d983ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atan2_d983ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atan2_d983ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.msl
index 49d782b..7467696 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_440cca = func():void -> %b2 {
-  %b2 = block {
+%atanh_440cca = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.54930615425109863281f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_440cca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_440cca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_440cca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.msl
index 7eb4393..f6900e9 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_5bf88d = func():void -> %b2 {
-  %b2 = block {
+%atanh_5bf88d = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.548828125h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_5bf88d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_5bf88d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_5bf88d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.msl
index 35d69ce..9dd2282 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_7997d8 = func():void -> %b2 {
-  %b2 = block {
+%atanh_7997d8 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.54930615425109863281f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_7997d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_7997d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_7997d8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.msl
index b63ca3b..2051e59 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_c0e634 = func():void -> %b2 {
-  %b2 = block {
+%atanh_c0e634 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.54930615425109863281f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_c0e634
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_c0e634
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_c0e634
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.msl
index 49d3d2f..326cb9e 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_d2d8cd = func():void -> %b2 {
-  %b2 = block {
+%atanh_d2d8cd = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.548828125h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_d2d8cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_d2d8cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_d2d8cd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.msl
index 544486e..5f5b10b 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_e3b450 = func():void -> %b2 {
-  %b2 = block {
+%atanh_e3b450 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.548828125h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_e3b450
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_e3b450
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_e3b450
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.msl
index f2a7240..94c5e42 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_ec4b06 = func():void -> %b2 {
-  %b2 = block {
+%atanh_ec4b06 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.548828125h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_ec4b06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_ec4b06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_ec4b06
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.msl
index 7676aff..db87360 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_f3e01b = func():void -> %b2 {
-  %b2 = block {
+%atanh_f3e01b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.54930615425109863281f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %atanh_f3e01b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %atanh_f3e01b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %atanh_f3e01b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.msl
index 8385fb6..2d8ca1e 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_794055 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_794055 = func():void {
+  $B2: {
     %4:i32 = atomicAdd %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAdd_794055
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicAdd_794055
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.msl
index 7b17382..1f492ef 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicAdd %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicAdd_8a199a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.msl
index 026bbd3..6e2f524 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicAdd %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicAdd_d32fe4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.msl
index 305e5b7..9d612a8 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_d5db1d = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d5db1d = func():void {
+  $B2: {
     %4:u32 = atomicAdd %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAdd_d5db1d
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicAdd_d5db1d
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.msl
index e3ab49d..726d92f 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_152966 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_152966 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicAnd %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicAnd_152966
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicAnd_152966
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.msl
index 5ebc2d7..1a92f2a 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_34edd3 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_34edd3 = func():void {
+  $B2: {
     %4:u32 = atomicAnd %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAnd_34edd3
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicAnd_34edd3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.msl
index 91c7b44d..e0214cd 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_45a819 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_45a819 = func():void {
+  $B2: {
     %4:i32 = atomicAnd %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicAnd_45a819
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicAnd_45a819
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.msl
index 231a009..d5f01f1 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_85a8d9 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_85a8d9 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicAnd %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicAnd_85a8d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicAnd_85a8d9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl
index 566e676..fdb0a0a 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
@@ -9,26 +9,26 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_1bd40a = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_1bd40a = func():void {
+  $B2: {
     %3:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %4:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %3, 1i, 1i
     %res:ptr<function, __atomic_compare_exchange_result_i32, read_write> = var, %4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %9:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl
index b95f55c..fa34457 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
@@ -9,26 +9,26 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_63d8e6 = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_63d8e6 = func():void {
+  $B2: {
     %3:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %4:__atomic_compare_exchange_result_u32 = atomicCompareExchangeWeak %3, 1u, 1u
     %res:ptr<function, __atomic_compare_exchange_result_u32, read_write> = var, %4
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %9:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl
index 09231af..b4e0e6d 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl
index 09231af..b4e0e6d 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.msl
index b8262bd..44b9310 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_0a5dca = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_0a5dca = func():void {
+  $B2: {
     %4:u32 = atomicExchange %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicExchange_0a5dca
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicExchange_0a5dca
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.msl
index c793ccc..2ae14ff 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_d59712 = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_d59712 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicExchange %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicExchange_d59712
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicExchange_d59712
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.msl
index 4d546b5..1c2e377 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_e114ba = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_e114ba = func():void {
+  $B2: {
     %4:i32 = atomicExchange %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicExchange_e114ba
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicExchange_e114ba
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.msl
index eff330f..be2f686 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_f2e22f = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_f2e22f = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicExchange %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicExchange_f2e22f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicExchange_f2e22f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.msl
index 93c0012..b990acb 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_0806ad = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_0806ad = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicLoad %4
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicLoad_0806ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicLoad_0806ad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.msl
index d6db186..7ae76ad 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_361bf1 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_361bf1 = func():void {
+  $B2: {
     %4:u32 = atomicLoad %arg_0
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicLoad_361bf1
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicLoad_361bf1
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.msl
index 8a2bba0..ee77bef 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_afcc03 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_afcc03 = func():void {
+  $B2: {
     %4:i32 = atomicLoad %arg_0
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicLoad_afcc03
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicLoad_afcc03
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.msl
index 0a568fb..0637775 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_fe6cc3 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_fe6cc3 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicLoad %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicLoad_fe6cc3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicLoad_fe6cc3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.msl
index dd192a4..3d571d0 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_51b9be = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_51b9be = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicMax %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicMax_51b9be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicMax_51b9be
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.msl
index 790c4ee..43f6adf 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_92aa72 = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_92aa72 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicMax %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicMax_92aa72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicMax_92aa72
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.msl
index 2d47c84..6636ef8 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_a89cc3 = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_a89cc3 = func():void {
+  $B2: {
     %4:i32 = atomicMax %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicMax_a89cc3
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicMax_a89cc3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.msl
index b882f85..6851230 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_beccfc = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_beccfc = func():void {
+  $B2: {
     %4:u32 = atomicMax %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicMax_beccfc
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicMax_beccfc
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.msl
index 284c78c..6cc3781 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_278235 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_278235 = func():void {
+  $B2: {
     %4:i32 = atomicMin %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicMin_278235
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicMin_278235
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.msl
index 8ceaf26..f1be440 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_69d383 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_69d383 = func():void {
+  $B2: {
     %4:u32 = atomicMin %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicMin_69d383
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicMin_69d383
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.msl
index 26257d6..29a3c35 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_8e38dc = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_8e38dc = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicMin %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicMin_8e38dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicMin_8e38dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.msl
index 6e1c3b9..2b50bb7 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_c67a74 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_c67a74 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicMin %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicMin_c67a74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicMin_c67a74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.msl
index e23a709..41c65f2 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_5e3d61 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_5e3d61 = func():void {
+  $B2: {
     %4:u32 = atomicOr %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicOr_5e3d61
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicOr_5e3d61
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.msl
index 7d42f92..59f2526 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_5e95d4 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_5e95d4 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicOr %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicOr_5e95d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicOr_5e95d4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.msl
index acc55aa..50c5b04 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_8d96a0 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_8d96a0 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicOr %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicOr_8d96a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicOr_8d96a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.msl
index 88215ad..11e5fe6 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_d09248 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_d09248 = func():void {
+  $B2: {
     %4:i32 = atomicOr %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicOr_d09248
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicOr_d09248
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicStore/726882.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicStore/8bea94.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.msl
index a18ad65..4d4d962 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.ir.msl
@@ -1,28 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_cdc29e = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_cdc29e = func():void {
+  $B2: {
     %3:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %4:void = atomicStore %3, 1u
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %6:void = call %atomicStore_cdc29e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %8:void = call %atomicStore_cdc29e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.msl
index 9a934bb..1e78e33 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.ir.msl
@@ -1,28 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_d1e9a6 = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_d1e9a6 = func():void {
+  $B2: {
     %3:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %4:void = atomicStore %3, 1i
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %6:void = call %atomicStore_d1e9a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %8:void = call %atomicStore_d1e9a6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.msl
index 41ef6d1..589d05f 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_051100 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_051100 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicSub %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicSub_051100
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicSub_051100
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.msl
index 80cc778..92edf6f 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_0d26c2 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_0d26c2 = func():void {
+  $B2: {
     %4:u32 = atomicSub %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicSub_0d26c2
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicSub_0d26c2
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.msl
index 56e12c6..3f68716 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_15bfc9 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_15bfc9 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicSub %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicSub_15bfc9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicSub_15bfc9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.msl
index 5596ef6..5501c49 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_77883a = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_77883a = func():void {
+  $B2: {
     %4:i32 = atomicSub %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicSub_77883a
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicSub_77883a
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.msl
index 0bcd54d..dade502 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_54510e = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_54510e = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicXor %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicXor_54510e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicXor_54510e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.msl
index a19329f..5201c68 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_75dc95 = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_75dc95 = func():void {
+  $B2: {
     %4:i32 = atomicXor %arg_0, 1i
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicXor_75dc95
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicXor_75dc95
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.msl
index b5cc82c..0d5add2 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_c1b78c = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_c1b78c = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicXor %4, 1i
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicXor_c1b78c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicXor_c1b78c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.msl
index 598e38b..6622537 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_c8e6be = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_c8e6be = func():void {
+  $B2: {
     %4:u32 = atomicXor %arg_0, 1u
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicXor_c8e6be
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicXor_c8e6be
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..97f9d1e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_0fe0c9 = func():void {
+  $B2: {
+    %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.40129846e-45f)
+    %4:vec3<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_0fe0c9
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_0fe0c9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_0fe0c9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3bc3ef4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_160c09 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_160c09
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_160c09
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_160c09
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3262b1a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_16cba4 = func():void {
+  $B2: {
+    %res:ptr<function, i32, read_write> = var, 1065353216i
+    %4:i32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_16cba4
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_16cba4
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_16cba4
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9e49682
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_1c3b31 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_1c3b31
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_1c3b31
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_1c3b31
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9af0b6e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_1df11f = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
+    %4:vec2<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_1df11f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_1df11f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_1df11f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.msl
new file mode 100644
index 0000000..389856c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_214f23 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1006648320i)
+    %4:vec2<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_214f23
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_214f23
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_214f23
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..54715d0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_23c8bd = func():void {
+  $B2: {
+    %res:ptr<function, f32, read_write> = var, 0.00782680511474609375f
+    %4:f32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_23c8bd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_23c8bd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_23c8bd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ce95bcd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2421c8 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.40129846e-45f)
+    %4:vec2<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_2421c8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_2421c8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_2421c8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8b49cfd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_287bdf = func():void {
+  $B2: {
+    %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_287bdf
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_287bdf
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_287bdf
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6984a0f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2a6e58 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.00782680511474609375f)
+    %4:vec2<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_2a6e58
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_2a6e58
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_2a6e58
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b298814
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2b05b3 = func():void {
+  $B2: {
+    %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
+    %4:vec3<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_2b05b3
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_2b05b3
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_2b05b3
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ac13230
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2b2738 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1065353216u)
+    %4:vec2<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_2b2738
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_2b2738
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_2b2738
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d0d470e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_31c080 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_31c080
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_31c080
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_31c080
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ac5c471
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_332f78 = func():void {
+  $B2: {
+    %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.40129846e-45f)
+    %4:vec3<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_332f78
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_332f78
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_332f78
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6c58816
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_3e7b47 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
+    %4:vec4<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_3e7b47
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_3e7b47
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_3e7b47
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2821d47
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_3f7437 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_3f7437
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_3f7437
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_3f7437
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3394e6e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_3fdacd = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.40129846e-45f)
+    %4:vec4<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_3fdacd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_3fdacd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_3fdacd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.msl
new file mode 100644
index 0000000..83e50d5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_429d64 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0h, 1.875h, 0.0h, 1.875h)
+    %4:vec4<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_429d64
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_429d64
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_429d64
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.msl
new file mode 100644
index 0000000..324115c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_436211 = func():void {
+  $B2: {
+    %res:ptr<function, f16, read_write> = var, 1.0h
+    %4:f16 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_436211
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_436211
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_436211
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.msl
new file mode 100644
index 0000000..484a59e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_5081ed = func():void {
+  $B2: {
+    %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
+    %4:vec3<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_5081ed
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_5081ed
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_5081ed
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2c01bd2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_56266e = func():void {
+  $B2: {
+    %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1065353216u)
+    %4:vec3<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_56266e
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_56266e
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_56266e
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..a9bfd27
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_66e93d = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.00000005960464477539h, 0.0h)
+    %4:vec2<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_66e93d
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_66e93d
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_66e93d
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.msl
new file mode 100644
index 0000000..757a1ed
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_674557 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.00000005960464477539h, 0.0h)
+    %4:vec2<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_674557
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_674557
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_674557
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ab0d927
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_6ac6f9 = func():void {
+  $B2: {
+    %res:ptr<function, i32, read_write> = var, 1006648320i
+    %4:i32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_6ac6f9
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_6ac6f9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_6ac6f9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..26ae3e4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_6de2bd = func():void {
+  $B2: {
+    %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1065353216i)
+    %4:vec4<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_6de2bd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_6de2bd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_6de2bd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5a11cf6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_70b121 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_70b121
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_70b121
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_70b121
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6ad99f2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_71c92a = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.00000005960464477539h, 0.0h, 0.00000005960464477539h, 0.0h)
+    %4:vec4<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_71c92a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_71c92a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_71c92a
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.msl
new file mode 100644
index 0000000..eb1dd9b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_745b27 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %4:vec4<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_745b27
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_745b27
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_745b27
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3a818b8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_7e67cc = func():void {
+  $B2: {
+    %res:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_7e67cc
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_7e67cc
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_7e67cc
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..785cace
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_7ffa9c = func():void {
+  $B2: {
+    %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_7ffa9c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_7ffa9c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_7ffa9c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.msl
new file mode 100644
index 0000000..274f9ba
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_81c5f5 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1006648320u)
+    %4:vec2<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_81c5f5
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_81c5f5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_81c5f5
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9dcc50e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_8318a8 = func():void {
+  $B2: {
+    %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_8318a8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_8318a8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_8318a8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..21f6360
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_879dc9 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_879dc9
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_879dc9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_879dc9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5b0f3a3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_899e50 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1065353216i)
+    %4:vec2<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_899e50
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_899e50
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_899e50
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e7e9650
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_8d184c = func():void {
+  $B2: {
+    %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1065353216u)
+    %4:vec4<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_8d184c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_8d184c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_8d184c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7af01da
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_9bcf71 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
+    %4:vec2<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_9bcf71
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_9bcf71
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_9bcf71
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..589e7e1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_9ca42c = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h, 1.875h)
+    %4:vec2<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_9ca42c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_9ca42c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_9ca42c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.msl
new file mode 100644
index 0000000..15831c1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_9eee21 = func():void {
+  $B2: {
+    %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %4:vec3<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_9eee21
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_9eee21
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_9eee21
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.msl
new file mode 100644
index 0000000..21dd042
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a4b290 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.40129846e-45f)
+    %4:vec4<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_a4b290
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_a4b290
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_a4b290
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7ca3d4e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a58b50 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1006648320u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_a58b50
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_a58b50
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_a58b50
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.msl
new file mode 100644
index 0000000..834f6ac
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a5c539 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_a5c539
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_a5c539
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_a5c539
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5d1e123
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a8c93f = func():void {
+  $B2: {
+    %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_a8c93f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_a8c93f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_a8c93f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fb8ada2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a8ea1b = func():void {
+  $B2: {
+    %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %4:vec3<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_a8ea1b
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_a8ea1b
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_a8ea1b
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.msl
new file mode 100644
index 0000000..54569d7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_ac09d0 = func():void {
+  $B2: {
+    %res:ptr<function, f32, read_write> = var, 1.0f
+    %4:f32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_ac09d0
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_ac09d0
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_ac09d0
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.msl
new file mode 100644
index 0000000..cf00a70
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_ad4b05 = func():void {
+  $B2: {
+    %res:ptr<function, f32, read_write> = var, 1.40129846e-45f
+    %4:f32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_ad4b05
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_ad4b05
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_ad4b05
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..79ffc40
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_b28cbd = func():void {
+  $B2: {
+    %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1065353216i)
+    %4:vec3<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_b28cbd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_b28cbd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_b28cbd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b7772d8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_b77573 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.40129846e-45f)
+    %4:vec2<f32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_b77573
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_b77573
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_b77573
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d9edf5d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_bc3994 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.00000005960464477539h, 0.0h, 0.00000005960464477539h, 0.0h)
+    %4:vec4<f16> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_bc3994
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_bc3994
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_bc3994
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.msl
new file mode 100644
index 0000000..cd60bfa
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_c69aaf = func():void {
+  $B2: {
+    %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_c69aaf
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_c69aaf
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_c69aaf
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b0389d8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_ca5c3f = func():void {
+  $B2: {
+    %res:ptr<function, f32, read_write> = var, 1.40129846e-45f
+    %4:f32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_ca5c3f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_ca5c3f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_ca5c3f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7f3917e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_cc7aa7 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_cc7aa7
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_cc7aa7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_cc7aa7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0cd2dba
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_d29765 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_d29765
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_d29765
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_d29765
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.msl
new file mode 100644
index 0000000..65e6789
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_dce842 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_dce842
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_dce842
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_dce842
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b6e2a13
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_e61c57 = func():void {
+  $B2: {
+    %res:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_e61c57
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_e61c57
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_e61c57
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5ceb43e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_e6c18f = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1065353216u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_e6c18f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_e6c18f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_e6c18f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..be39e07
--- /dev/null
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_f756cd = func():void {
+  $B2: {
+    %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_f756cd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_f756cd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_f756cd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.msl
index 04ffae9..cb0af2e 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_09bf52 = func():void -> %b2 {
-  %b2 = block {
+%ceil_09bf52 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_09bf52
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_09bf52
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_09bf52
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.msl
index d79faea..450cf52 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_18c240 = func():void -> %b2 {
-  %b2 = block {
+%ceil_18c240 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_18c240
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_18c240
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_18c240
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.msl
index 54391a9..fc7c7da 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_34064b = func():void -> %b2 {
-  %b2 = block {
+%ceil_34064b = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_34064b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_34064b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_34064b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.msl
index d6ba665..f7dfc07 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_4bca2a = func():void -> %b2 {
-  %b2 = block {
+%ceil_4bca2a = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_4bca2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_4bca2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_4bca2a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.msl
index 7b1cd1f..df6dd2a 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_678655 = func():void -> %b2 {
-  %b2 = block {
+%ceil_678655 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_678655
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_678655
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_678655
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.msl
index 3c5d606..3fa73e3 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_96f597 = func():void -> %b2 {
-  %b2 = block {
+%ceil_96f597 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_96f597
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_96f597
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_96f597
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.msl
index 1c92bf9..a75e584 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_b74c16 = func():void -> %b2 {
-  %b2 = block {
+%ceil_b74c16 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_b74c16
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_b74c16
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_b74c16
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.msl
index d1c23a6..58d8770 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_f3f889 = func():void -> %b2 {
-  %b2 = block {
+%ceil_f3f889 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ceil_f3f889
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ceil_f3f889
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ceil_f3f889
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.msl
index 9c83cd4..744722d 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_0acf8f = func():void -> %b2 {
-  %b2 = block {
+%clamp_0acf8f = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_0acf8f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_0acf8f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_0acf8f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.msl
index 4894886..8131b61 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_1a32e3 = func():void -> %b2 {
-  %b2 = block {
+%clamp_1a32e3 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_1a32e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_1a32e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_1a32e3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.msl
index d2a412e..f8430e1 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_235b29 = func():void -> %b2 {
-  %b2 = block {
+%clamp_235b29 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_235b29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_235b29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_235b29
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.msl
index 8820f63..278d8a5 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_2bd567 = func():void -> %b2 {
-  %b2 = block {
+%clamp_2bd567 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_2bd567
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_2bd567
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_2bd567
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.msl
index b29d531..a3c2507 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_2bde41 = func():void -> %b2 {
-  %b2 = block {
+%clamp_2bde41 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_2bde41
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_2bde41
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_2bde41
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.msl
index 8bb64e2..a2ed8b1 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_2c251b = func():void -> %b2 {
-  %b2 = block {
+%clamp_2c251b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_2c251b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_2c251b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_2c251b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.msl
index dba2fa3..cefe9bc 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_548fc7 = func():void -> %b2 {
-  %b2 = block {
+%clamp_548fc7 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_548fc7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_548fc7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_548fc7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.msl
index 8a71d76..3547c96 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_553ffb = func():void -> %b2 {
-  %b2 = block {
+%clamp_553ffb = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_553ffb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_553ffb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_553ffb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.msl
index 632e4cd..bc20786 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_5f0819 = func():void -> %b2 {
-  %b2 = block {
+%clamp_5f0819 = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_5f0819
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_5f0819
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_5f0819
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.msl
index 8bbcc0c..9f66e57 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_6c1749 = func():void -> %b2 {
-  %b2 = block {
+%clamp_6c1749 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_6c1749
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_6c1749
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_6c1749
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.msl
index d9878b1..5195b7a 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_7706d7 = func():void -> %b2 {
-  %b2 = block {
+%clamp_7706d7 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_7706d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_7706d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_7706d7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.msl
index f6ef6f2..1e11eec 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_867397 = func():void -> %b2 {
-  %b2 = block {
+%clamp_867397 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_867397
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_867397
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_867397
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.msl
index 7bb9b3d..d0bbda6 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_a2de25 = func():void -> %b2 {
-  %b2 = block {
+%clamp_a2de25 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_a2de25
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_a2de25
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_a2de25
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.msl
index 2cb583a..863bcde 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_b07c65 = func():void -> %b2 {
-  %b2 = block {
+%clamp_b07c65 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_b07c65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_b07c65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_b07c65
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.msl
index b014534..25bbaa4 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_b195eb = func():void -> %b2 {
-  %b2 = block {
+%clamp_b195eb = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_b195eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_b195eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_b195eb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.msl
index d2fec03..6932a36 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_bd43ce = func():void -> %b2 {
-  %b2 = block {
+%clamp_bd43ce = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %clamp_bd43ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %clamp_bd43ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %clamp_bd43ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.msl
index 4124b27..b323c26 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_0835a8 = func():void -> %b2 {
-  %b2 = block {
+%cos_0835a8 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_0835a8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_0835a8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_0835a8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.msl
index 31a9e3b..6bd3a28 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_0a89f7 = func():void -> %b2 {
-  %b2 = block {
+%cos_0a89f7 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_0a89f7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_0a89f7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_0a89f7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.msl
index 8447f42..0c91334 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_16dc15 = func():void -> %b2 {
-  %b2 = block {
+%cos_16dc15 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_16dc15
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_16dc15
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_16dc15
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.msl
index 91a1c80..5fe42c8 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_29d66d = func():void -> %b2 {
-  %b2 = block {
+%cos_29d66d = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_29d66d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_29d66d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_29d66d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.msl
index 1743af8..595285b 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_5bc2c6 = func():void -> %b2 {
-  %b2 = block {
+%cos_5bc2c6 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_5bc2c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_5bc2c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_5bc2c6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.msl
index 48fd94a..d5bee61 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_c3b486 = func():void -> %b2 {
-  %b2 = block {
+%cos_c3b486 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_c3b486
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_c3b486
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_c3b486
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.msl
index 8c67e39..f6f9e7c 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%cos_c5c28e = func():void -> %b2 {
-  %b2 = block {
+%cos_c5c28e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_c5c28e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_c5c28e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_c5c28e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.msl
index 6ebe11e..f6a7058 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%cos_fc047d = func():void -> %b2 {
-  %b2 = block {
+%cos_fc047d = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cos_fc047d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cos_fc047d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cos_fc047d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.msl
index cfd663e..9e28d57 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_2ed778 = func():void -> %b2 {
-  %b2 = block {
+%cosh_2ed778 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_2ed778
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_2ed778
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_2ed778
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.msl
index aa894c6..fc9db4e 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_377652 = func():void -> %b2 {
-  %b2 = block {
+%cosh_377652 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_377652
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_377652
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_377652
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.msl
index 7f1c367..228b46f 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_3b7bbf = func():void -> %b2 {
-  %b2 = block {
+%cosh_3b7bbf = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_3b7bbf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_3b7bbf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_3b7bbf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.msl
index e2fe279..b9141f6 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_43b672 = func():void -> %b2 {
-  %b2 = block {
+%cosh_43b672 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_43b672
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_43b672
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_43b672
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.msl
index ed24d65..e40d2a4 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_b1b8a0 = func():void -> %b2 {
-  %b2 = block {
+%cosh_b1b8a0 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_b1b8a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_b1b8a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_b1b8a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.msl
index 22b3529..0b0a20d 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_c13756 = func():void -> %b2 {
-  %b2 = block {
+%cosh_c13756 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_c13756
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_c13756
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_c13756
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.msl
index 55c82a7..bbc76c4 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_da92dd = func():void -> %b2 {
-  %b2 = block {
+%cosh_da92dd = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_da92dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_da92dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_da92dd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.msl
index a6ac15b..3fa03d0 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_e0c1de = func():void -> %b2 {
-  %b2 = block {
+%cosh_e0c1de = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cosh_e0c1de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cosh_e0c1de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cosh_e0c1de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.msl
index 4e8d92e..7b16c66 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_208d46 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_208d46 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 31u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_208d46
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_208d46
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_208d46
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.msl
index 3726890..f00a512 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_6d4656 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_6d4656 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 31i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_6d4656
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_6d4656
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_6d4656
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.msl
index 44063ed..877ed3f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_70783f = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_70783f = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(31u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_70783f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_70783f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_70783f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.msl
index 5194c2a..014eec5 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_7c38a6 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_7c38a6 = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(31i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_7c38a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_7c38a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_7c38a6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.msl
index d5c4325..f4367ad 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_858d40 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_858d40 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(31i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_858d40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_858d40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_858d40
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.msl
index 55bd5dd..6b4e08f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_ab6345 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_ab6345 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(31u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_ab6345
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_ab6345
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_ab6345
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.msl
index 7e19d7c..9ac6475 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_eab32b = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_eab32b = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(31i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_eab32b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_eab32b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_eab32b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.msl
index 1b03c00..53bf941 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_f70103 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_f70103 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(31u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countLeadingZeros_f70103
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countLeadingZeros_f70103
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countLeadingZeros_f70103
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.msl
index 25e745a..d960057 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_0d0e46 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_0d0e46 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_0d0e46
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_0d0e46
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_0d0e46
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.msl
index ef683c1..446cd6a 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_0f7980 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_0f7980 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_0f7980
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_0f7980
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_0f7980
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.msl
index 3da4826..db213b7 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_65d2ae = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_65d2ae = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_65d2ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_65d2ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_65d2ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.msl
index b31fb27..61293cf 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_690cfc = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_690cfc = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_690cfc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_690cfc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_690cfc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.msl
index bd99f2e..a79b4dc 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_94fd81 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_94fd81 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_94fd81
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_94fd81
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_94fd81
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.msl
index 7a4f991..4d06d68 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_ae44f9 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_ae44f9 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_ae44f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_ae44f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_ae44f9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.msl
index e0b167e..8722955 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_af90e2 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_af90e2 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_af90e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_af90e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_af90e2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.msl
index 008eac7..31c6f40 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_fd88b2 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_fd88b2 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countOneBits_fd88b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countOneBits_fd88b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countOneBits_fd88b2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.msl
index 31ba2c3..5aa4bdc 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_1ad138 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_1ad138 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(0u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_1ad138
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_1ad138
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_1ad138
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.msl
index 87f4c2c..dd5f1af 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_1dc84a = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_1dc84a = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(0i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_1dc84a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_1dc84a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_1dc84a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.msl
index 8a6de3f..509e755 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_21e394 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_21e394 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_21e394
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_21e394
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_21e394
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.msl
index ad6a5e5..0397cf3 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_327c37 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_327c37 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(0i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_327c37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_327c37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_327c37
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.msl
index 1098b1f..f18d316 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_42fed6 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_42fed6 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_42fed6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_42fed6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_42fed6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.msl
index 3800ee9..a2334a5 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_8ed26f = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_8ed26f = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(0u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_8ed26f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_8ed26f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_8ed26f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.msl
index 7e844df..6e8d1e2 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_acfacb = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_acfacb = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(0i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_acfacb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_acfacb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_acfacb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl
index b37b9ca..11d2846 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_d2b4a0 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_d2b4a0 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(0u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %countTrailingZeros_d2b4a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %countTrailingZeros_d2b4a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %countTrailingZeros_d2b4a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.msl
index ae2e05e..2a70cd0 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cross_041cb0 = func():void -> %b2 {
-  %b2 = block {
+%cross_041cb0 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cross_041cb0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cross_041cb0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cross_041cb0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.msl
index 9bc4604..5e59e1e 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cross_9857cb = func():void -> %b2 {
-  %b2 = block {
+%cross_9857cb = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %cross_9857cb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %cross_9857cb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %cross_9857cb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.msl
index a41911b..f0d467e 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_0d170c = func():void -> %b2 {
-  %b2 = block {
+%degrees_0d170c = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(57.2957763671875f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_0d170c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_0d170c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_0d170c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.msl
index 9d87881..a2731d6 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_1ad5df = func():void -> %b2 {
-  %b2 = block {
+%degrees_1ad5df = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(57.2957763671875f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_1ad5df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_1ad5df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_1ad5df
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.msl
index bfb85d8..1780616 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_2af623 = func():void -> %b2 {
-  %b2 = block {
+%degrees_2af623 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(57.2957763671875f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_2af623
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_2af623
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_2af623
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.msl
index cdb36d4..bbc4216 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_3055d3 = func():void -> %b2 {
-  %b2 = block {
+%degrees_3055d3 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(57.3125h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_3055d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_3055d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_3055d3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.msl
index a74c285..7f7c0dd 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_51f705 = func():void -> %b2 {
-  %b2 = block {
+%degrees_51f705 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 57.2957763671875f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_51f705
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_51f705
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_51f705
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.msl
index 534fc9a..3b25593 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_5e9805 = func():void -> %b2 {
-  %b2 = block {
+%degrees_5e9805 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 57.3125h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_5e9805
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_5e9805
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_5e9805
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.msl
index fd825c5..d6eca91 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_dfe8f4 = func():void -> %b2 {
-  %b2 = block {
+%degrees_dfe8f4 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(57.3125h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_dfe8f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_dfe8f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_dfe8f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.msl
index 6fdef6d..fb976de 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_f59715 = func():void -> %b2 {
-  %b2 = block {
+%degrees_f59715 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(57.3125h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %degrees_f59715
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %degrees_f59715
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %degrees_f59715
     ret
   }
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.msl
index 03a310c..9df2f04 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_2b62ba = func():void -> %b2 {
-  %b2 = block {
+%determinant_2b62ba = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %determinant_2b62ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %determinant_2b62ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %determinant_2b62ba
     ret
   }
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.msl
index 4825ba4..e75c120 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_32bfde = func():void -> %b2 {
-  %b2 = block {
+%determinant_32bfde = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %determinant_32bfde
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %determinant_32bfde
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %determinant_32bfde
     ret
   }
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.msl
index aeb56f6..2e0d308 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_a0a87c = func():void -> %b2 {
-  %b2 = block {
+%determinant_a0a87c = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %determinant_a0a87c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %determinant_a0a87c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %determinant_a0a87c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.msl
index 9442c60..274863b 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_d7c86f = func():void -> %b2 {
-  %b2 = block {
+%determinant_d7c86f = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %determinant_d7c86f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %determinant_d7c86f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %determinant_d7c86f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.msl
index 66cb3ce..4a41cc3 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_e19305 = func():void -> %b2 {
-  %b2 = block {
+%determinant_e19305 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %determinant_e19305
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %determinant_e19305
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %determinant_e19305
     ret
   }
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.msl
index e4f7d7b..6154bba 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_fc12a5 = func():void -> %b2 {
-  %b2 = block {
+%determinant_fc12a5 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %determinant_fc12a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %determinant_fc12a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %determinant_fc12a5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.msl
index dc717cc..78a2556 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_0657d4 = func():void -> %b2 {
-  %b2 = block {
+%distance_0657d4 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_0657d4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_0657d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_0657d4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.msl
index fd2aa8b..8a0343b 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_7272f3 = func():void -> %b2 {
-  %b2 = block {
+%distance_7272f3 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_7272f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_7272f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_7272f3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.msl
index 83215be..85c9d8f 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_7d201f = func():void -> %b2 {
-  %b2 = block {
+%distance_7d201f = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_7d201f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_7d201f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_7d201f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.msl
index 3595ed9..9ae524c 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_892a5d = func():void -> %b2 {
-  %b2 = block {
+%distance_892a5d = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_892a5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_892a5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_892a5d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.msl
index 8a764b0..ca0afc3 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_928fa0 = func():void -> %b2 {
-  %b2 = block {
+%distance_928fa0 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_928fa0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_928fa0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_928fa0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.msl
index 8a01b19..0570269 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_9646ea = func():void -> %b2 {
-  %b2 = block {
+%distance_9646ea = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_9646ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_9646ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_9646ea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.msl
index 4732ddd..fa38915 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_aa4055 = func():void -> %b2 {
-  %b2 = block {
+%distance_aa4055 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_aa4055
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_aa4055
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_aa4055
     ret
   }
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.msl
index f325352..ff4d191 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_cfed73 = func():void -> %b2 {
-  %b2 = block {
+%distance_cfed73 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %distance_cfed73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %distance_cfed73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %distance_cfed73
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.msl
index 8a679b8..8aa1c92 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_0c577b = func():void -> %b2 {
-  %b2 = block {
+%dot_0c577b = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 4.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_0c577b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_0c577b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_0c577b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.msl
index a2716c9..0834e2a 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_7548a0 = func():void -> %b2 {
-  %b2 = block {
+%dot_7548a0 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 3u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_7548a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_7548a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_7548a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.msl
index c79e78d..9c80dce 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_883f0e = func():void -> %b2 {
-  %b2 = block {
+%dot_883f0e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_883f0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_883f0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_883f0e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.msl
index 4d84fc4..f4e1747 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%dot_8e40f1 = func():void -> %b2 {
-  %b2 = block {
+%dot_8e40f1 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 3.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_8e40f1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_8e40f1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_8e40f1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.msl
index 5bdaeb3..cffc5db 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_97c7ee = func():void -> %b2 {
-  %b2 = block {
+%dot_97c7ee = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 2u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_97c7ee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_97c7ee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_97c7ee
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.msl
index 6f807f9..612a9ac 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_ba4246 = func():void -> %b2 {
-  %b2 = block {
+%dot_ba4246 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 3.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_ba4246
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_ba4246
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_ba4246
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.msl
index 14b7ffa..335ad7e 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%dot_cd5a04 = func():void -> %b2 {
-  %b2 = block {
+%dot_cd5a04 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_cd5a04
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_cd5a04
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_cd5a04
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.msl
index f8ef95f..125642e 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%dot_d0d179 = func():void -> %b2 {
-  %b2 = block {
+%dot_d0d179 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 4.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_d0d179
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_d0d179
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_d0d179
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.msl
index 5c8a7ae..418954c 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_e994c7 = func():void -> %b2 {
-  %b2 = block {
+%dot_e994c7 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 4u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_e994c7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_e994c7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_e994c7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.msl
index 383e2bc..b6235b4 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_ef6b1d = func():void -> %b2 {
-  %b2 = block {
+%dot_ef6b1d = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 4i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_ef6b1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_ef6b1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_ef6b1d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.msl
index 4fb3b12..7025b74 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_f1312c = func():void -> %b2 {
-  %b2 = block {
+%dot_f1312c = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 3i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_f1312c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_f1312c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_f1312c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.msl
index 89bad36..01a04f0 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_fc5f7c = func():void -> %b2 {
-  %b2 = block {
+%dot_fc5f7c = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 2i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %dot_fc5f7c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %dot_fc5f7c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %dot_fc5f7c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.msl
index 4fbcdec..945e756 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.ir.msl
@@ -1,33 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot4I8Packed_881e62 = func():void -> %b2 {
-  %b2 = block {
-    %3:i32 = dot4I8Packed 1u, 1u
-    %res:ptr<function, i32, read_write> = var, %3
-    %5:i32 = load %res
-    store %prevent_dce, %5
+%dot4I8Packed_881e62 = func():void {
+  $B2: {
+    %res:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %res
+    store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %7:void = call %dot4I8Packed_881e62
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %dot4I8Packed_881e62
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %dot4I8Packed_881e62
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %dot4I8Packed_881e62
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %dot4I8Packed_881e62
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %dot4I8Packed_881e62
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.msl
index 2aa916f..204d5f9 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.ir.msl
@@ -1,33 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot4U8Packed_fbed7b = func():void -> %b2 {
-  %b2 = block {
-    %3:u32 = dot4U8Packed 1u, 1u
-    %res:ptr<function, u32, read_write> = var, %3
-    %5:u32 = load %res
-    store %prevent_dce, %5
+%dot4U8Packed_fbed7b = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %res
+    store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %7:void = call %dot4U8Packed_fbed7b
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %dot4U8Packed_fbed7b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %9:void = call %dot4U8Packed_fbed7b
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %dot4U8Packed_fbed7b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %dot4U8Packed_fbed7b
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %dot4U8Packed_fbed7b
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.msl
index 435f7e8..0ca863b 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_0763f7 = func():void -> %b2 {
-  %b2 = block {
+%dpdx_0763f7 = func():void {
+  $B2: {
     %3:vec3<f32> = dpdx vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdx_0763f7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.msl
index f7057e1..e0fba5d 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_99edb1 = func():void -> %b2 {
-  %b2 = block {
+%dpdx_99edb1 = func():void {
+  $B2: {
     %3:vec2<f32> = dpdx vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdx_99edb1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.msl
index 8170fb6..9e269f9 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_c487fa = func():void -> %b2 {
-  %b2 = block {
+%dpdx_c487fa = func():void {
+  $B2: {
     %3:vec4<f32> = dpdx vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdx_c487fa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.msl
index 54e8540..a69f997 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_e263de = func():void -> %b2 {
-  %b2 = block {
+%dpdx_e263de = func():void {
+  $B2: {
     %3:f32 = dpdx 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdx_e263de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.msl
index 002df99..8ba18ce 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_029152 = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_029152 = func():void {
+  $B2: {
     %3:f32 = dpdxCoarse 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxCoarse_029152
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.msl
index 0b448aa..1be7290 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_9581cf = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_9581cf = func():void {
+  $B2: {
     %3:vec2<f32> = dpdxCoarse vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxCoarse_9581cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.msl
index 7c66502..df5d6f1 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_c28641 = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_c28641 = func():void {
+  $B2: {
     %3:vec4<f32> = dpdxCoarse vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxCoarse_c28641
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.msl
index 833067d..1a66f58 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_f64d7b = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_f64d7b = func():void {
+  $B2: {
     %3:vec3<f32> = dpdxCoarse vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxCoarse_f64d7b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.msl
index 6c56e6e..e8c4db4 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_8c5069 = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_8c5069 = func():void {
+  $B2: {
     %3:vec4<f32> = dpdxFine vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxFine_8c5069
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.msl
index 4268feb..4df38c3 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_9631de = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_9631de = func():void {
+  $B2: {
     %3:vec2<f32> = dpdxFine vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxFine_9631de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.msl
index f90fa2b..5ba2362 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_f401a2 = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_f401a2 = func():void {
+  $B2: {
     %3:f32 = dpdxFine 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxFine_f401a2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.msl
index b478bbc..e47e06e 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_f92fb6 = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_f92fb6 = func():void {
+  $B2: {
     %3:vec3<f32> = dpdxFine vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdxFine_f92fb6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.msl
index ffa5424..57691c8 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_699a05 = func():void -> %b2 {
-  %b2 = block {
+%dpdy_699a05 = func():void {
+  $B2: {
     %3:vec4<f32> = dpdy vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdy_699a05
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.msl
index 4429a8b..da25646 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_7f8d84 = func():void -> %b2 {
-  %b2 = block {
+%dpdy_7f8d84 = func():void {
+  $B2: {
     %3:f32 = dpdy 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdy_7f8d84
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.msl
index 5f73215..585d377 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_a8b56e = func():void -> %b2 {
-  %b2 = block {
+%dpdy_a8b56e = func():void {
+  $B2: {
     %3:vec2<f32> = dpdy vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdy_a8b56e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.msl
index 343d507..d260d93 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_feb40f = func():void -> %b2 {
-  %b2 = block {
+%dpdy_feb40f = func():void {
+  $B2: {
     %3:vec3<f32> = dpdy vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdy_feb40f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl
index 8a3212d..f9a4259 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_3e1ab4 = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_3e1ab4 = func():void {
+  $B2: {
     %3:vec2<f32> = dpdyCoarse vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyCoarse_3e1ab4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.msl
index 44c1511..9e6c52e 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_445d24 = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_445d24 = func():void {
+  $B2: {
     %3:vec4<f32> = dpdyCoarse vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyCoarse_445d24
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.msl
index 238da22..583e7d8 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_870a7e = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_870a7e = func():void {
+  $B2: {
     %3:f32 = dpdyCoarse 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyCoarse_870a7e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.msl
index 3452a10..db85027 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_ae1873 = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_ae1873 = func():void {
+  $B2: {
     %3:vec3<f32> = dpdyCoarse vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyCoarse_ae1873
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.msl
index 94374d3..9104ee9 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_1fb7ab = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_1fb7ab = func():void {
+  $B2: {
     %3:vec3<f32> = dpdyFine vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyFine_1fb7ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.msl
index 2ecf3cb..95f7e27 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_6eb673 = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_6eb673 = func():void {
+  $B2: {
     %3:f32 = dpdyFine 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyFine_6eb673
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.msl
index 3e62048..2bdcf10 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_d0a648 = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_d0a648 = func():void {
+  $B2: {
     %3:vec4<f32> = dpdyFine vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyFine_d0a648
     ret
   }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.msl
index fb4e547..2168616 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_df33aa = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_df33aa = func():void {
+  $B2: {
     %3:vec2<f32> = dpdyFine vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %dpdyFine_df33aa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.msl
index 76618aa..c48dffe 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_0f70eb = func():void -> %b2 {
-  %b2 = block {
+%exp_0f70eb = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.71828174591064453125f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_0f70eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_0f70eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_0f70eb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.msl
index 24a55e9..7136422 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_13806d = func():void -> %b2 {
-  %b2 = block {
+%exp_13806d = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.716796875h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_13806d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_13806d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_13806d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.msl
index 31f58b6..bef8951 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_1951e7 = func():void -> %b2 {
-  %b2 = block {
+%exp_1951e7 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.71828174591064453125f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_1951e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_1951e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_1951e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.msl
index 2cd37c3..66b76b1 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_2e08e2 = func():void -> %b2 {
-  %b2 = block {
+%exp_2e08e2 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.716796875h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_2e08e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_2e08e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_2e08e2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.msl
index a78b525..d5f6e29 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_611a87 = func():void -> %b2 {
-  %b2 = block {
+%exp_611a87 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.716796875h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_611a87
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_611a87
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_611a87
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.msl
index c7ee764..308e004 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%exp_771fd2 = func():void -> %b2 {
-  %b2 = block {
+%exp_771fd2 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.71828174591064453125f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_771fd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_771fd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_771fd2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.msl
index e991d01..f5e4681 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%exp_c18fe9 = func():void -> %b2 {
-  %b2 = block {
+%exp_c18fe9 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.716796875h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_c18fe9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_c18fe9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_c18fe9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.msl
index ce37f9b..850641c 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_d98450 = func():void -> %b2 {
-  %b2 = block {
+%exp_d98450 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.71828174591064453125f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp_d98450
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp_d98450
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp_d98450
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.msl
index 0de8be5..adab754 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_151a4c = func():void -> %b2 {
-  %b2 = block {
+%exp2_151a4c = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_151a4c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_151a4c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_151a4c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.msl
index 4f9872a..c3304fb 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_1f8680 = func():void -> %b2 {
-  %b2 = block {
+%exp2_1f8680 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_1f8680
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_1f8680
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_1f8680
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.msl
index b763fdd..a5ba82f 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_751377 = func():void -> %b2 {
-  %b2 = block {
+%exp2_751377 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_751377
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_751377
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_751377
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.msl
index c9e5abc..2545ae5 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_a9d0a7 = func():void -> %b2 {
-  %b2 = block {
+%exp2_a9d0a7 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_a9d0a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_a9d0a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_a9d0a7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.msl
index eee2702..7792ed1 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_b408e4 = func():void -> %b2 {
-  %b2 = block {
+%exp2_b408e4 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_b408e4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_b408e4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_b408e4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.msl
index 1ea6cf1..43a70cf 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_d6777c = func():void -> %b2 {
-  %b2 = block {
+%exp2_d6777c = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_d6777c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_d6777c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_d6777c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.msl
index 514c2fe..f45114c 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_dea523 = func():void -> %b2 {
-  %b2 = block {
+%exp2_dea523 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_dea523
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_dea523
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_dea523
     ret
   }
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.msl
index 58f4aa8..3b25fc4 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_ffa827 = func():void -> %b2 {
-  %b2 = block {
+%exp2_ffa827 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %exp2_ffa827
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %exp2_ffa827
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %exp2_ffa827
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.msl
index f92af1e..be9003a 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_12b197 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_12b197 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(0u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_12b197
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_12b197
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_12b197
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.msl
index a7c9afd..cd8aeff 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_249874 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_249874 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_249874
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_249874
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_249874
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.msl
index 6d8cd43..74087c6 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_631377 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_631377 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(0u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_631377
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_631377
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_631377
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.msl
index 3dd7573..059bba4 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_a99a8d = func():void -> %b2 {
-  %b2 = block {
+%extractBits_a99a8d = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(0i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_a99a8d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_a99a8d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_a99a8d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.msl
index 32faea1..6e7a578 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_ce81f8 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_ce81f8 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_ce81f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_ce81f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_ce81f8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.msl
index e6d2d5f..7d86250 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_e04f5d = func():void -> %b2 {
-  %b2 = block {
+%extractBits_e04f5d = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(0i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_e04f5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_e04f5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_e04f5d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.msl
index 785f5db..9e762ec 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_f28f69 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_f28f69 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(0u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_f28f69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_f28f69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_f28f69
     ret
   }
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.msl
index df642b2..70c6950 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_fb850f = func():void -> %b2 {
-  %b2 = block {
+%extractBits_fb850f = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(0i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %extractBits_fb850f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %extractBits_fb850f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %extractBits_fb850f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.msl
index 85a82b2..b5b3f78 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_524986 = func():void -> %b2 {
-  %b2 = block {
+%faceForward_524986 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(-1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %faceForward_524986
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %faceForward_524986
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %faceForward_524986
     ret
   }
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.msl
index 3584ed8..7d7d764 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_5afbd5 = func():void -> %b2 {
-  %b2 = block {
+%faceForward_5afbd5 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(-1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %faceForward_5afbd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %faceForward_5afbd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %faceForward_5afbd5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.msl
index 44088b4..c1758bd 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_b316e5 = func():void -> %b2 {
-  %b2 = block {
+%faceForward_b316e5 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(-1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %faceForward_b316e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %faceForward_b316e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %faceForward_b316e5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.msl
index 61fc4e1..d939e63 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_cc63dc = func():void -> %b2 {
-  %b2 = block {
+%faceForward_cc63dc = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(-1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %faceForward_cc63dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %faceForward_cc63dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %faceForward_cc63dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.msl
index ddc0d0f..59437ce 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_e6908b = func():void -> %b2 {
-  %b2 = block {
+%faceForward_e6908b = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(-1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %faceForward_e6908b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %faceForward_e6908b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %faceForward_e6908b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.msl
index 09baf19b..8b1f872 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_fb0f2e = func():void -> %b2 {
-  %b2 = block {
+%faceForward_fb0f2e = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(-1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %faceForward_fb0f2e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %faceForward_fb0f2e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %faceForward_fb0f2e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.msl
index eb9ca18..a0d6a48 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_000ff3 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_000ff3 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(0u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_000ff3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_000ff3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_000ff3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.msl
index 6758fa4..ae0b854 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_35053e = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_35053e = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(0i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_35053e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_35053e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_35053e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl
index 8496591..9e5c0d4 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_3fd7d0 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_3fd7d0 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(0u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_3fd7d0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_3fd7d0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_3fd7d0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.msl
index 3bbeea1..193ac55 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_57a1a3 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_57a1a3 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_57a1a3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_57a1a3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_57a1a3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.msl
index 3c21736..fb4f38a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_6fe804 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_6fe804 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(0u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_6fe804
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_6fe804
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_6fe804
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.msl
index 6df47bd..c599954 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_a622c2 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_a622c2 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(0i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_a622c2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_a622c2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_a622c2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.msl
index 9fadcb5..cb0d41f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_c1f940 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_c1f940 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(0i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_c1f940
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_c1f940
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_c1f940
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.msl
index 79300e6..951f937 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_f0779d = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_f0779d = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstLeadingBit_f0779d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstLeadingBit_f0779d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstLeadingBit_f0779d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.msl
index 46d9dee..a496192 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_110f2c = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_110f2c = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(0u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_110f2c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_110f2c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_110f2c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.msl
index a0883d8..9d70845 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_3a2acc = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_3a2acc = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 0i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_3a2acc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_3a2acc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_3a2acc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.msl
index dc0b5b1..84eed01 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_45eb10 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_45eb10 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(0u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_45eb10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_45eb10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_45eb10
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.msl
index 30a1f89..1079c6d 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_47d475 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_47d475 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 0u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_47d475
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_47d475
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_47d475
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.msl
index fe7c87c..054aa7a 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_50c072 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_50c072 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(0i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_50c072
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_50c072
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_50c072
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.msl
index 1ffcd06..c7d6003 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_7496d6 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_7496d6 = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(0i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_7496d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_7496d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_7496d6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.msl
index e6eca62..2a49bf3 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_86551b = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_86551b = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(0i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_86551b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_86551b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_86551b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.msl
index abd787f..c1c5b95 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_cb51ce = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_cb51ce = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(0u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %firstTrailingBit_cb51ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %firstTrailingBit_cb51ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %firstTrailingBit_cb51ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.msl
index 3039bce..174b69f 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_3802c0 = func():void -> %b2 {
-  %b2 = block {
+%floor_3802c0 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_3802c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_3802c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_3802c0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.msl
index 708ab93..1d558d0 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_3bccc4 = func():void -> %b2 {
-  %b2 = block {
+%floor_3bccc4 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_3bccc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_3bccc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_3bccc4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.msl
index ee4b0d4..6c726ec 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_5fc9ac = func():void -> %b2 {
-  %b2 = block {
+%floor_5fc9ac = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_5fc9ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_5fc9ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_5fc9ac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.msl
index 7734906..9dc18bc 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_60d7ea = func():void -> %b2 {
-  %b2 = block {
+%floor_60d7ea = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_60d7ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_60d7ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_60d7ea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.msl
index d2aabed..d55980a 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%floor_66f154 = func():void -> %b2 {
-  %b2 = block {
+%floor_66f154 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_66f154
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_66f154
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_66f154
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.msl
index c452479..abef59d 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_84658c = func():void -> %b2 {
-  %b2 = block {
+%floor_84658c = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_84658c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_84658c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_84658c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.msl
index 4cc49b3..1c58233 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_a2d31b = func():void -> %b2 {
-  %b2 = block {
+%floor_a2d31b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_a2d31b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_a2d31b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_a2d31b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.msl
index b0d099a..0820954 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%floor_b6e09c = func():void -> %b2 {
-  %b2 = block {
+%floor_b6e09c = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %floor_b6e09c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %floor_b6e09c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %floor_b6e09c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.msl
index 28266e8..63df411 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_26a7a9 = func():void -> %b2 {
-  %b2 = block {
+%fma_26a7a9 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_26a7a9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_26a7a9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_26a7a9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.msl
index 61fa6fb..9c9d0ac 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_6a3283 = func():void -> %b2 {
-  %b2 = block {
+%fma_6a3283 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_6a3283
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_6a3283
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_6a3283
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.msl
index a139194..330ef62 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_ab7818 = func():void -> %b2 {
-  %b2 = block {
+%fma_ab7818 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_ab7818
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_ab7818
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_ab7818
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.msl
index 1e2e476..3116777 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_bf21b6 = func():void -> %b2 {
-  %b2 = block {
+%fma_bf21b6 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_bf21b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_bf21b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_bf21b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.msl
index b952784..b35d864 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fma_c10ba3 = func():void -> %b2 {
-  %b2 = block {
+%fma_c10ba3 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_c10ba3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_c10ba3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_c10ba3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.msl
index 3f809fc..bf615e1 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%fma_c8abb3 = func():void -> %b2 {
-  %b2 = block {
+%fma_c8abb3 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_c8abb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_c8abb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_c8abb3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.msl
index 7c39d15..4518ada 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_e17c5c = func():void -> %b2 {
-  %b2 = block {
+%fma_e17c5c = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_e17c5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_e17c5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_e17c5c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.msl
index f3e7e5f..df14fac 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_e7abdc = func():void -> %b2 {
-  %b2 = block {
+%fma_e7abdc = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fma_e7abdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fma_e7abdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fma_e7abdc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.msl
index 22248ea..5837693 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_181aa9 = func():void -> %b2 {
-  %b2 = block {
+%fract_181aa9 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.25h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_181aa9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_181aa9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_181aa9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.msl
index 9a7fc17..ad81009 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_498c77 = func():void -> %b2 {
-  %b2 = block {
+%fract_498c77 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.25h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_498c77
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_498c77
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_498c77
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.msl
index 8c34a04..441c5cb 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_8bc1e9 = func():void -> %b2 {
-  %b2 = block {
+%fract_8bc1e9 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.25f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_8bc1e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_8bc1e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_8bc1e9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.msl
index fa63193..503882d 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_943cb1 = func():void -> %b2 {
-  %b2 = block {
+%fract_943cb1 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.25f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_943cb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_943cb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_943cb1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.msl
index 0b3557b..312e018 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_958a1d = func():void -> %b2 {
-  %b2 = block {
+%fract_958a1d = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.25h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_958a1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_958a1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_958a1d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.msl
index 3cb9927..8903669 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_a49758 = func():void -> %b2 {
-  %b2 = block {
+%fract_a49758 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.25f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_a49758
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_a49758
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_a49758
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.msl
index 588757b..9a5bbd2 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%fract_eb38ce = func():void -> %b2 {
-  %b2 = block {
+%fract_eb38ce = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.25h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_eb38ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_eb38ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_eb38ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.msl
index ea674e9..734e936 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fract_fa5c71 = func():void -> %b2 {
-  %b2 = block {
+%fract_fa5c71 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.25f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %fract_fa5c71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %fract_fa5c71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %fract_fa5c71
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.msl
index 0600386..bcbd4d4 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_5d1b39 = func():void -> %b2 {
-  %b2 = block {
+%fwidth_5d1b39 = func():void {
+  $B2: {
     %3:vec3<f32> = fwidth vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidth_5d1b39
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.msl
index 120f411..3d835e9 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_b83ebb = func():void -> %b2 {
-  %b2 = block {
+%fwidth_b83ebb = func():void {
+  $B2: {
     %3:vec2<f32> = fwidth vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidth_b83ebb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.msl
index 98c3234..ca6b902 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_d2ab9a = func():void -> %b2 {
-  %b2 = block {
+%fwidth_d2ab9a = func():void {
+  $B2: {
     %3:vec4<f32> = fwidth vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidth_d2ab9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.msl
index ea378be..3ac6af6 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_df38ef = func():void -> %b2 {
-  %b2 = block {
+%fwidth_df38ef = func():void {
+  $B2: {
     %3:f32 = fwidth 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidth_df38ef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.msl
index acd3a57..7f5ff5a 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_159c8a = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_159c8a = func():void {
+  $B2: {
     %3:f32 = fwidthCoarse 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthCoarse_159c8a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.msl
index 181163f..f30d081 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_1e59d9 = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_1e59d9 = func():void {
+  $B2: {
     %3:vec3<f32> = fwidthCoarse vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthCoarse_1e59d9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl
index baa0650..adfb446 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_4e4fc4 = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_4e4fc4 = func():void {
+  $B2: {
     %3:vec4<f32> = fwidthCoarse vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthCoarse_4e4fc4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.msl
index 366dce1..3a2d028 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_e653f7 = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_e653f7 = func():void {
+  $B2: {
     %3:vec2<f32> = fwidthCoarse vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthCoarse_e653f7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.msl
index a33bc6e..7d01936 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_523fdc = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_523fdc = func():void {
+  $B2: {
     %3:vec3<f32> = fwidthFine vec3<f32>(1.0f)
     %res:ptr<function, vec3<f32>, read_write> = var, %3
     %5:vec3<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthFine_523fdc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.msl
index 163429fa..fcc356c 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_68f4ef = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_68f4ef = func():void {
+  $B2: {
     %3:vec4<f32> = fwidthFine vec4<f32>(1.0f)
     %res:ptr<function, vec4<f32>, read_write> = var, %3
     %5:vec4<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthFine_68f4ef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.msl
index 0b20008..79017bc 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_f1742d = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_f1742d = func():void {
+  $B2: {
     %3:f32 = fwidthFine 1.0f
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthFine_f1742d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.msl
index 91af55e..d791baf 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_ff6aa0 = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_ff6aa0 = func():void {
+  $B2: {
     %3:vec2<f32> = fwidthFine vec2<f32>(1.0f)
     %res:ptr<function, vec2<f32>, read_write> = var, %3
     %5:vec2<f32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %7:void = call %fwidthFine_ff6aa0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.msl
index 5fa7048..d721c92 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_3c7ba5 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_3c7ba5 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(3u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_3c7ba5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_3c7ba5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_3c7ba5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.msl
index ab4992d..5cd4917 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_428b0b = func():void -> %b2 {
-  %b2 = block {
+%insertBits_428b0b = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(3i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_428b0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_428b0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_428b0b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.msl
index 85927c9..dfd489d 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_51ede1 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_51ede1 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(3u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_51ede1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_51ede1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_51ede1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.msl
index 2b581b6..421f660 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_65468b = func():void -> %b2 {
-  %b2 = block {
+%insertBits_65468b = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 3i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_65468b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_65468b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_65468b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.msl
index 93a3699..2918383 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_87826b = func():void -> %b2 {
-  %b2 = block {
+%insertBits_87826b = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(3u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_87826b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_87826b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_87826b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.msl
index 7b816ff..ed61052 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_d86978 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_d86978 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(3i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_d86978
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_d86978
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_d86978
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.msl
index f71a334..7e27124 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_e3e3a2 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_e3e3a2 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 3u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_e3e3a2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_e3e3a2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_e3e3a2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.msl
index 5499105..0017091 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_fe6ba6 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_fe6ba6 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(3i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %insertBits_fe6ba6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %insertBits_fe6ba6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %insertBits_fe6ba6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.msl
index 67e08fc..ddcc179 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_440300 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_440300 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_440300
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_440300
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_440300
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.msl
index 1958773..a706a7e 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_5f51f8 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_5f51f8 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_5f51f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_5f51f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_5f51f8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.msl
index ce27a52..ab02c0f 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_84407e = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_84407e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_84407e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_84407e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_84407e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.msl
index 266809e..e4debbe 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_8f2bd2 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_8f2bd2 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_8f2bd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_8f2bd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_8f2bd2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.msl
index 19a602b..8d581d9 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_b197b1 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_b197b1 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_b197b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_b197b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_b197b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.msl
index 4fb3a0c..0442a06b 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_b85ebd = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_b85ebd = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_b85ebd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_b85ebd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_b85ebd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.msl
index 67e93d3..c0d8171 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_c22347 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_c22347 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_c22347
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_c22347
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_c22347
     ret
   }
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.msl
index f904786..8db3b8c 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_cbdc70 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_cbdc70 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %inverseSqrt_cbdc70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %inverseSqrt_cbdc70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %inverseSqrt_cbdc70
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.msl
index e162ffb..97fb35b 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_082c1f = func():void -> %b2 {
-  %b2 = block {
+%ldexp_082c1f = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_082c1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_082c1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_082c1f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.msl
index 1d4bd80..ec7120a 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_217a31 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_217a31 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_217a31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_217a31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_217a31
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.msl
index 586207d..8c9d264 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_3d90b4 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_3d90b4 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_3d90b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_3d90b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_3d90b4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.msl
index 3914a6a3..c000c5f 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_593ff3 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_593ff3 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_593ff3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_593ff3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_593ff3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.msl
index 721ce54..849c493 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_624e0c = func():void -> %b2 {
-  %b2 = block {
+%ldexp_624e0c = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_624e0c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_624e0c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_624e0c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.msl
index 812e340..2d0e3e1 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_65a7bd = func():void -> %b2 {
-  %b2 = block {
+%ldexp_65a7bd = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_65a7bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_65a7bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_65a7bd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.msl
index 3947b11..24eeb3e 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_7485ce = func():void -> %b2 {
-  %b2 = block {
+%ldexp_7485ce = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_7485ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_7485ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_7485ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.msl
index 10742c8..0374c7a 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_7fa13c = func():void -> %b2 {
-  %b2 = block {
+%ldexp_7fa13c = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_7fa13c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_7fa13c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_7fa13c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.msl
index 53cbd4a..bc51039 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_8a0c2f = func():void -> %b2 {
-  %b2 = block {
+%ldexp_8a0c2f = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_8a0c2f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_8a0c2f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_8a0c2f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.msl
index ec9a0a1..8f949ca 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_8e43e9 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_8e43e9 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_8e43e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_8e43e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_8e43e9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.msl
index 57f125d..a80f5ba 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_a22679 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_a22679 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_a22679
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_a22679
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_a22679
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.msl
index cee88f0..9f6b25a 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_a31cdc = func():void -> %b2 {
-  %b2 = block {
+%ldexp_a31cdc = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_a31cdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_a31cdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_a31cdc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.msl
index 2ad9004..f433aba 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_abd718 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_abd718 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_abd718
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_abd718
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_abd718
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.msl
index 0f49ba7..033d067 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_c9d0b7 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_c9d0b7 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_c9d0b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_c9d0b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_c9d0b7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.msl
index bc6b42b..d98ac86 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_cc9cde = func():void -> %b2 {
-  %b2 = block {
+%ldexp_cc9cde = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_cc9cde
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_cc9cde
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_cc9cde
     ret
   }
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.msl
index ebb8091..3fa8503 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_db8b49 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_db8b49 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %ldexp_db8b49
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %ldexp_db8b49
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %ldexp_db8b49
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.msl
index 3afadaa..7b91718 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_056071 = func():void -> %b2 {
-  %b2 = block {
+%length_056071 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_056071
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_056071
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_056071
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.msl
index 7b3f794..35e1a9b 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_3f0e13 = func():void -> %b2 {
-  %b2 = block {
+%length_3f0e13 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_3f0e13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_3f0e13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_3f0e13
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.msl
index 1d5b295..ae450a1 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_5b1a9b = func():void -> %b2 {
-  %b2 = block {
+%length_5b1a9b = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_5b1a9b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_5b1a9b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_5b1a9b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.msl
index 075259a..750f1f1 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_602a17 = func():void -> %b2 {
-  %b2 = block {
+%length_602a17 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_602a17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_602a17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_602a17
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.msl
index fe36e10..5547294 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_afde8b = func():void -> %b2 {
-  %b2 = block {
+%length_afde8b = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_afde8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_afde8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_afde8b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.msl
index 2244814..9c93153 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_ba16d6 = func():void -> %b2 {
-  %b2 = block {
+%length_ba16d6 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_ba16d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_ba16d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_ba16d6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.msl
index 7a9b528..1e7761c 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_becebf = func():void -> %b2 {
-  %b2 = block {
+%length_becebf = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_becebf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_becebf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_becebf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.msl
index d779c54..f9b66fc 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_c158da = func():void -> %b2 {
-  %b2 = block {
+%length_c158da = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %length_c158da
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %length_c158da
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %length_c158da
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.msl
index 2c3c70e..6972f91 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log_3da25a = func():void -> %b2 {
-  %b2 = block {
+%log_3da25a = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_3da25a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_3da25a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_3da25a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.msl
index 6f7ea71..ddb614f 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log_6ff86f = func():void -> %b2 {
-  %b2 = block {
+%log_6ff86f = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_6ff86f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_6ff86f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_6ff86f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.msl
index 7643d7e..f84ab50 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%log_7114a6 = func():void -> %b2 {
-  %b2 = block {
+%log_7114a6 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_7114a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_7114a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_7114a6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.msl
index 8483f45..e484842 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log_8f0e32 = func():void -> %b2 {
-  %b2 = block {
+%log_8f0e32 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_8f0e32
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_8f0e32
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_8f0e32
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.msl
index 9e576e3..a1bd9ad 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log_b2ce28 = func():void -> %b2 {
-  %b2 = block {
+%log_b2ce28 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_b2ce28
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_b2ce28
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_b2ce28
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.msl
index ea20b1b..5e9a89d 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%log_c9f489 = func():void -> %b2 {
-  %b2 = block {
+%log_c9f489 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_c9f489
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_c9f489
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_c9f489
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.msl
index 15862bc..71214e8 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log_cdbdc1 = func():void -> %b2 {
-  %b2 = block {
+%log_cdbdc1 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_cdbdc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_cdbdc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_cdbdc1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.msl
index 3be5315..d5e22ee 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log_f4c570 = func():void -> %b2 {
-  %b2 = block {
+%log_f4c570 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log_f4c570
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log_f4c570
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log_f4c570
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.msl
index 11d4086..0d3fc4c 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_38b478 = func():void -> %b2 {
-  %b2 = block {
+%log2_38b478 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_38b478
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_38b478
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_38b478
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.msl
index 84dcaa1..be55ae3 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%log2_4036ed = func():void -> %b2 {
-  %b2 = block {
+%log2_4036ed = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_4036ed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_4036ed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_4036ed
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.msl
index be69d7a..89ad282 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_776088 = func():void -> %b2 {
-  %b2 = block {
+%log2_776088 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_776088
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_776088
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_776088
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.msl
index 87b1c21..42d65bb 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%log2_8c10b3 = func():void -> %b2 {
-  %b2 = block {
+%log2_8c10b3 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_8c10b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_8c10b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_8c10b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.msl
index 02716d8..82282d5 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_902988 = func():void -> %b2 {
-  %b2 = block {
+%log2_902988 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_902988
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_902988
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_902988
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.msl
index b2f2b17..27ca570 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_adb233 = func():void -> %b2 {
-  %b2 = block {
+%log2_adb233 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_adb233
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_adb233
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_adb233
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.msl
index ef55927..f7028ec 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_aea659 = func():void -> %b2 {
-  %b2 = block {
+%log2_aea659 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_aea659
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_aea659
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_aea659
     ret
   }
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.msl
index 38056f4..11808b9 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_fb9f0b = func():void -> %b2 {
-  %b2 = block {
+%log2_fb9f0b = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %log2_fb9f0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %log2_fb9f0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %log2_fb9f0b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.msl
index 8bca3fb..feaa012 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%max_0c0aae = func():void -> %b2 {
-  %b2 = block {
+%max_0c0aae = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_0c0aae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_0c0aae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_0c0aae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.msl
index abc3075..8b2ea6b 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%max_111ac0 = func():void -> %b2 {
-  %b2 = block {
+%max_111ac0 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_111ac0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_111ac0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_111ac0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.msl
index 0d55f0c..194ae2d 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_25eafe = func():void -> %b2 {
-  %b2 = block {
+%max_25eafe = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_25eafe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_25eafe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_25eafe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.msl
index bc2c2ee..046997e 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_320815 = func():void -> %b2 {
-  %b2 = block {
+%max_320815 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_320815
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_320815
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_320815
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.msl
index 0857fae..55b0ad5 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%max_34956e = func():void -> %b2 {
-  %b2 = block {
+%max_34956e = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_34956e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_34956e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_34956e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.msl
index 8ed7dfe..9db9765 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%max_445169 = func():void -> %b2 {
-  %b2 = block {
+%max_445169 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_445169
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_445169
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_445169
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.msl
index 9065841..566fade 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%max_44a39d = func():void -> %b2 {
-  %b2 = block {
+%max_44a39d = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_44a39d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_44a39d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_44a39d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.msl
index 95e9d1c..e9a308a 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_453e04 = func():void -> %b2 {
-  %b2 = block {
+%max_453e04 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_453e04
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_453e04
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_453e04
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.msl
index 5dc59e6..79913a6 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_462050 = func():void -> %b2 {
-  %b2 = block {
+%max_462050 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_462050
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_462050
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_462050
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.msl
index 50ae750..ce337f1 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_4883ac = func():void -> %b2 {
-  %b2 = block {
+%max_4883ac = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_4883ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_4883ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_4883ac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.msl
index 6029013..ba92aca 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_85e6bc = func():void -> %b2 {
-  %b2 = block {
+%max_85e6bc = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_85e6bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_85e6bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_85e6bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.msl
index e2a6c3e..2df3357 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_a93419 = func():void -> %b2 {
-  %b2 = block {
+%max_a93419 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_a93419
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_a93419
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_a93419
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.msl
index 3d6c077..067837b 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_b1b73a = func():void -> %b2 {
-  %b2 = block {
+%max_b1b73a = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_b1b73a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_b1b73a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_b1b73a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.msl
index d49a043..5de5295 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%max_ce7c30 = func():void -> %b2 {
-  %b2 = block {
+%max_ce7c30 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_ce7c30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_ce7c30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_ce7c30
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.msl
index 90cbbaa..2a129ee 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%max_e14f2b = func():void -> %b2 {
-  %b2 = block {
+%max_e14f2b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_e14f2b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_e14f2b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_e14f2b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.msl
index 6e56221..97e011d 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_e8192f = func():void -> %b2 {
-  %b2 = block {
+%max_e8192f = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %max_e8192f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %max_e8192f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %max_e8192f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.msl
index b9b0fc1..78e3079 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_03c7e3 = func():void -> %b2 {
-  %b2 = block {
+%min_03c7e3 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_03c7e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_03c7e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_03c7e3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.msl
index 8e4c216..ea46645 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_0dc614 = func():void -> %b2 {
-  %b2 = block {
+%min_0dc614 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_0dc614
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_0dc614
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_0dc614
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.msl
index 0e44fff..0335d07 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_3941e1 = func():void -> %b2 {
-  %b2 = block {
+%min_3941e1 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_3941e1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_3941e1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_3941e1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.msl
index b09217a..726e91c 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%min_46c5d3 = func():void -> %b2 {
-  %b2 = block {
+%min_46c5d3 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_46c5d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_46c5d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_46c5d3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.msl
index 0774af0..6e01303 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%min_7c710a = func():void -> %b2 {
-  %b2 = block {
+%min_7c710a = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_7c710a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_7c710a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_7c710a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.msl
index 43827e5..aad1e9a 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_82b28f = func():void -> %b2 {
-  %b2 = block {
+%min_82b28f = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_82b28f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_82b28f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_82b28f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.msl
index 2192409..b19675f 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_93cfc4 = func():void -> %b2 {
-  %b2 = block {
+%min_93cfc4 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_93cfc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_93cfc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_93cfc4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.msl
index 60c1773..a83579a 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_a45171 = func():void -> %b2 {
-  %b2 = block {
+%min_a45171 = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_a45171
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_a45171
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_a45171
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.msl
index 5d160f4..c47de82 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_aa28ad = func():void -> %b2 {
-  %b2 = block {
+%min_aa28ad = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_aa28ad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_aa28ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_aa28ad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.msl
index e8b3acc..1c7be54 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%min_ab0acd = func():void -> %b2 {
-  %b2 = block {
+%min_ab0acd = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_ab0acd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_ab0acd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_ab0acd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.msl
index 5ab8552..3ad3ad6 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%min_ac84d6 = func():void -> %b2 {
-  %b2 = block {
+%min_ac84d6 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_ac84d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_ac84d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_ac84d6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.msl
index f1678bb..6724e0a 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%min_af326d = func():void -> %b2 {
-  %b2 = block {
+%min_af326d = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_af326d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_af326d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_af326d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.msl
index 6a112a3..c587fde 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_c70bb7 = func():void -> %b2 {
-  %b2 = block {
+%min_c70bb7 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_c70bb7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_c70bb7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_c70bb7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.msl
index 067568d..a2645f8 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%min_c73147 = func():void -> %b2 {
-  %b2 = block {
+%min_c73147 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_c73147
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_c73147
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_c73147
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.msl
index e1387c1..f8cdcb5 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_c76fa6 = func():void -> %b2 {
-  %b2 = block {
+%min_c76fa6 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_c76fa6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_c76fa6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_c76fa6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.msl
index c9945a4..4ae4813 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%min_e780f9 = func():void -> %b2 {
-  %b2 = block {
+%min_e780f9 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %min_e780f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %min_e780f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %min_e780f9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.msl
index 2474a4f..5d6c7e9 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_0c8c33 = func():void -> %b2 {
-  %b2 = block {
+%mix_0c8c33 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_0c8c33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_0c8c33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_0c8c33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.msl
index 2ef140e..15728d6 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_1faeb1 = func():void -> %b2 {
-  %b2 = block {
+%mix_1faeb1 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_1faeb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_1faeb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_1faeb1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.msl
index 8fc3ea2..266bac2 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_2fadab = func():void -> %b2 {
-  %b2 = block {
+%mix_2fadab = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_2fadab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_2fadab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_2fadab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.msl
index a6c37e3..1179752 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_315264 = func():void -> %b2 {
-  %b2 = block {
+%mix_315264 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_315264
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_315264
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_315264
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.msl
index 7fc1fb4..0369647 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%mix_38cbbb = func():void -> %b2 {
-  %b2 = block {
+%mix_38cbbb = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_38cbbb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_38cbbb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_38cbbb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.msl
index c5fa38b..efa8c04 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%mix_4f0b5e = func():void -> %b2 {
-  %b2 = block {
+%mix_4f0b5e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_4f0b5e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_4f0b5e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_4f0b5e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.msl
index c9d8fa9..12c5d1d 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_63f2fd = func():void -> %b2 {
-  %b2 = block {
+%mix_63f2fd = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_63f2fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_63f2fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_63f2fd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.msl
index 8a904c4..6d9aa83 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_6f8adc = func():void -> %b2 {
-  %b2 = block {
+%mix_6f8adc = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_6f8adc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_6f8adc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_6f8adc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.msl
index 2a3616c..3064ad9 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_98ee3e = func():void -> %b2 {
-  %b2 = block {
+%mix_98ee3e = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_98ee3e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_98ee3e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_98ee3e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.msl
index 34e4807..a08ac54 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_c1aec6 = func():void -> %b2 {
-  %b2 = block {
+%mix_c1aec6 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_c1aec6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_c1aec6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_c1aec6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.msl
index 64d33cd..a979cb9 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_c37ede = func():void -> %b2 {
-  %b2 = block {
+%mix_c37ede = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_c37ede
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_c37ede
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_c37ede
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.msl
index fd31446..77b2515 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_e46a83 = func():void -> %b2 {
-  %b2 = block {
+%mix_e46a83 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_e46a83
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_e46a83
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_e46a83
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.msl
index feff659..b3671fe 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_ee2468 = func():void -> %b2 {
-  %b2 = block {
+%mix_ee2468 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_ee2468
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_ee2468
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_ee2468
     ret
   }
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.msl
index 488373d..f9641d8 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_f1a543 = func():void -> %b2 {
-  %b2 = block {
+%mix_f1a543 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %mix_f1a543
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %mix_f1a543
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %mix_f1a543
     ret
   }
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.msl
index dfedcda..38fc652 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_39d5ec = func():void -> %b2 {
-  %b2 = block {
+%normalize_39d5ec = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.5771484375h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %normalize_39d5ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %normalize_39d5ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %normalize_39d5ec
     ret
   }
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.msl
index 19cce1b..c9a9e41 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_64d8c0 = func():void -> %b2 {
-  %b2 = block {
+%normalize_64d8c0 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.57735025882720947266f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %normalize_64d8c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %normalize_64d8c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %normalize_64d8c0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.msl
index d4fc8f8..9f768ce 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_7990f3 = func():void -> %b2 {
-  %b2 = block {
+%normalize_7990f3 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.70703125h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %normalize_7990f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %normalize_7990f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %normalize_7990f3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.msl
index 7ff4385..e3d378d 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_9a0aab = func():void -> %b2 {
-  %b2 = block {
+%normalize_9a0aab = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.5f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %normalize_9a0aab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %normalize_9a0aab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %normalize_9a0aab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.msl
index f6651af..f1ee83c 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_b8cb8d = func():void -> %b2 {
-  %b2 = block {
+%normalize_b8cb8d = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.5h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %normalize_b8cb8d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %normalize_b8cb8d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %normalize_b8cb8d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.msl
index 9178ea4..6a04499 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_fc2ef1 = func():void -> %b2 {
-  %b2 = block {
+%normalize_fc2ef1 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.70710676908493041992f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %normalize_fc2ef1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %normalize_fc2ef1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %normalize_fc2ef1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.msl
index 46764a3..62b7421 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack2x16float_0e97b3 = func():void -> %b2 {
-  %b2 = block {
+%pack2x16float_0e97b3 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1006648320u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pack2x16float_0e97b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pack2x16float_0e97b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pack2x16float_0e97b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.msl
index 6609970..7986bb2 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack2x16snorm_6c169b = func():void -> %b2 {
-  %b2 = block {
+%pack2x16snorm_6c169b = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 2147450879u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pack2x16snorm_6c169b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pack2x16snorm_6c169b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pack2x16snorm_6c169b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.msl
index 0cc8fc0..144a96b 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack2x16unorm_0f08e4 = func():void -> %b2 {
-  %b2 = block {
+%pack2x16unorm_0f08e4 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 4294967295u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pack2x16unorm_0f08e4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pack2x16unorm_0f08e4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pack2x16unorm_0f08e4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.msl
index f28e156..eccd8f5 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack4x8snorm_4d22e7 = func():void -> %b2 {
-  %b2 = block {
+%pack4x8snorm_4d22e7 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 2139062143u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pack4x8snorm_4d22e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pack4x8snorm_4d22e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pack4x8snorm_4d22e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.msl
index bea441f..013f3c5 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack4x8unorm_95c456 = func():void -> %b2 {
-  %b2 = block {
+%pack4x8unorm_95c456 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 4294967295u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pack4x8unorm_95c456
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pack4x8unorm_95c456
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pack4x8unorm_95c456
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.msl
new file mode 100644
index 0000000..16cd350
--- /dev/null
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xI8_bfce01 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 16843009u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %pack4xI8_bfce01
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %pack4xI8_bfce01
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %pack4xI8_bfce01
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..315f680
--- /dev/null
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xI8Clamp_e42b2a = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 16843009u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %pack4xI8Clamp_e42b2a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %pack4xI8Clamp_e42b2a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %pack4xI8Clamp_e42b2a
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b1aaea6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xU8_b70b53 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 16843009u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %pack4xU8_b70b53
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %pack4xU8_b70b53
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %pack4xU8_b70b53
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..dafd983
--- /dev/null
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xU8Clamp_6b8c1b = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 16843009u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %pack4xU8Clamp_6b8c1b
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %pack4xU8Clamp_6b8c1b
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %pack4xU8Clamp_6b8c1b
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.msl
index 2698c23..d644677 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_04a908 = func():void -> %b2 {
-  %b2 = block {
+%pow_04a908 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_04a908
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_04a908
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_04a908
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.msl
index 56c3f2c..168f07f 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%pow_46e029 = func():void -> %b2 {
-  %b2 = block {
+%pow_46e029 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_46e029
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_46e029
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_46e029
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.msl
index 4eed196..d9e9415 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_4a46c9 = func():void -> %b2 {
-  %b2 = block {
+%pow_4a46c9 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_4a46c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_4a46c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_4a46c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.msl
index c487c87..8523c4f 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_4f33b2 = func():void -> %b2 {
-  %b2 = block {
+%pow_4f33b2 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_4f33b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_4f33b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_4f33b2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.msl
index 1eaa9ba..6651ead 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%pow_ce9ef5 = func():void -> %b2 {
-  %b2 = block {
+%pow_ce9ef5 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_ce9ef5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_ce9ef5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_ce9ef5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.msl
index 4c3a685..3a6fb4f 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_e60ea5 = func():void -> %b2 {
-  %b2 = block {
+%pow_e60ea5 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_e60ea5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_e60ea5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_e60ea5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.msl
index b7bb885..06ae3de 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_f37b25 = func():void -> %b2 {
-  %b2 = block {
+%pow_f37b25 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_f37b25
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_f37b25
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_f37b25
     ret
   }
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.msl
index f92068f..8148729 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_fa5429 = func():void -> %b2 {
-  %b2 = block {
+%pow_fa5429 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %pow_fa5429
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %pow_fa5429
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %pow_fa5429
     ret
   }
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.msl
index 6a957b5..0e74e8c 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_12e50e = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_12e50e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %quantizeToF16_12e50e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %quantizeToF16_12e50e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %quantizeToF16_12e50e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.msl
index 69b0a9c..6a2a1c5 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_2cddf3 = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_2cddf3 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %quantizeToF16_2cddf3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %quantizeToF16_2cddf3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %quantizeToF16_2cddf3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.msl
index 1c14f90..c7597a6 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_cba294 = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_cba294 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %quantizeToF16_cba294
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %quantizeToF16_cba294
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %quantizeToF16_cba294
     ret
   }
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.msl
index e438505..2c24604 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_e8fd14 = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_e8fd14 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %quantizeToF16_e8fd14
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %quantizeToF16_e8fd14
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %quantizeToF16_e8fd14
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.msl
index c1df59f..848de34 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_09b7fc = func():void -> %b2 {
-  %b2 = block {
+%radians_09b7fc = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.01745329238474369049f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_09b7fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_09b7fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_09b7fc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.msl
index 1d3b4ca..6da0f4e 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%radians_208fd9 = func():void -> %b2 {
-  %b2 = block {
+%radians_208fd9 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.0174407958984375h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_208fd9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_208fd9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_208fd9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.msl
index 617e1d5..259b772 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_44f20b = func():void -> %b2 {
-  %b2 = block {
+%radians_44f20b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0174407958984375h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_44f20b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_44f20b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_44f20b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.msl
index 41c0635..ac59e94 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_61687a = func():void -> %b2 {
-  %b2 = block {
+%radians_61687a = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.01745329238474369049f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_61687a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_61687a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_61687a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.msl
index 57ec58f..4c9375d 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%radians_6b0ff2 = func():void -> %b2 {
-  %b2 = block {
+%radians_6b0ff2 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.01745329238474369049f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_6b0ff2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_6b0ff2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_6b0ff2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.msl
index 8eb55d9..6b3986d 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_7ea4c7 = func():void -> %b2 {
-  %b2 = block {
+%radians_7ea4c7 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0174407958984375h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_7ea4c7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_7ea4c7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_7ea4c7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.msl
index 4a43e1d..f316677 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_f96258 = func():void -> %b2 {
-  %b2 = block {
+%radians_f96258 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.01745329238474369049f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_f96258
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_f96258
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_f96258
     ret
   }
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.msl
index 481bee9..57b7c98 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_fbacf0 = func():void -> %b2 {
-  %b2 = block {
+%radians_fbacf0 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0174407958984375h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %radians_fbacf0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %radians_fbacf0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %radians_fbacf0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.msl
index 05dd4a2..4179b0c 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_05357e = func():void -> %b2 {
-  %b2 = block {
+%reflect_05357e = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(-7.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reflect_05357e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reflect_05357e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reflect_05357e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.msl
index 63c86ef..4583243 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_310de5 = func():void -> %b2 {
-  %b2 = block {
+%reflect_310de5 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(-7.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reflect_310de5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reflect_310de5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reflect_310de5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.msl
index 434a990..e9b088b 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_61ca21 = func():void -> %b2 {
-  %b2 = block {
+%reflect_61ca21 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(-5.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reflect_61ca21
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reflect_61ca21
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reflect_61ca21
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.msl
index 87c0ee6..d0ef78f 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_b61e10 = func():void -> %b2 {
-  %b2 = block {
+%reflect_b61e10 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(-3.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reflect_b61e10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reflect_b61e10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reflect_b61e10
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.msl
index 569f506..8b6763e 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_bb15ac = func():void -> %b2 {
-  %b2 = block {
+%reflect_bb15ac = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(-3.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reflect_bb15ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reflect_bb15ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reflect_bb15ac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.msl
index bfccefd..2afe379 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_f47fdb = func():void -> %b2 {
-  %b2 = block {
+%reflect_f47fdb = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(-5.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reflect_f47fdb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reflect_f47fdb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reflect_f47fdb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.msl
index 821fc76..b4366c8 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_0594ba = func():void -> %b2 {
-  %b2 = block {
+%refract_0594ba = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(-7.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %refract_0594ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %refract_0594ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %refract_0594ba
     ret
   }
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.msl
index 734379d..5780718 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_570cb3 = func():void -> %b2 {
-  %b2 = block {
+%refract_570cb3 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(-3.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %refract_570cb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %refract_570cb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %refract_570cb3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.msl
index f443537..64f2529 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_7e02e6 = func():void -> %b2 {
-  %b2 = block {
+%refract_7e02e6 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(-7.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %refract_7e02e6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %refract_7e02e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %refract_7e02e6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.msl
index 7dbc702..b685da1 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_8984af = func():void -> %b2 {
-  %b2 = block {
+%refract_8984af = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(-5.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %refract_8984af
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %refract_8984af
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %refract_8984af
     ret
   }
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.msl
index e5c7361..ab6cfdc 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_cbc1d2 = func():void -> %b2 {
-  %b2 = block {
+%refract_cbc1d2 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(-5.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %refract_cbc1d2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %refract_cbc1d2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %refract_cbc1d2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.msl
index 5457e7e..2781980 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_cd905f = func():void -> %b2 {
-  %b2 = block {
+%refract_cd905f = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(-3.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %refract_cd905f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %refract_cd905f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %refract_cd905f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.msl
index 433ffba..a37f516 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_222177 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_222177 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(-2147483648i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_222177
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_222177
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_222177
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.msl
index 463f56d..ee87551 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_35fea9 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_35fea9 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(2147483648u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_35fea9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_35fea9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_35fea9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.msl
index 9fefd05..9c2181c 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_4dbd6f = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_4dbd6f = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(-2147483648i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_4dbd6f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_4dbd6f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_4dbd6f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.msl
index 4a7d96a..2b75c35 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_7c4269 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_7c4269 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, -2147483648i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_7c4269
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_7c4269
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_7c4269
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.msl
index 0a9f304..b69da10 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_a6ccd4 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_a6ccd4 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(2147483648u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_a6ccd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_a6ccd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_a6ccd4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.msl
index 4d782f7..213fb35 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_c21bc1 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_c21bc1 = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(-2147483648i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_c21bc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_c21bc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_c21bc1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.msl
index dcd3cbc..501332c 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_e1f4c1 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_e1f4c1 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(2147483648u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_e1f4c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_e1f4c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_e1f4c1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.msl
index ff09b14..bc36578 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_e31adf = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_e31adf = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 2147483648u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %reverseBits_e31adf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %reverseBits_e31adf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %reverseBits_e31adf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.msl
index 4f89ffe..3938eea 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%round_106c0b = func():void -> %b2 {
-  %b2 = block {
+%round_106c0b = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(4.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_106c0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_106c0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_106c0b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.msl
index 8933eb1..e9795c0 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%round_1c7897 = func():void -> %b2 {
-  %b2 = block {
+%round_1c7897 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(4.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_1c7897
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_1c7897
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_1c7897
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.msl
index d3fb1dc..1b32278 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%round_52c84d = func():void -> %b2 {
-  %b2 = block {
+%round_52c84d = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(4.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_52c84d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_52c84d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_52c84d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.msl
index e4df2b7..4eaf8e8 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%round_9078ef = func():void -> %b2 {
-  %b2 = block {
+%round_9078ef = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 4.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_9078ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_9078ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_9078ef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.msl
index d4be21a..6a6c8a4 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%round_9edc38 = func():void -> %b2 {
-  %b2 = block {
+%round_9edc38 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 4.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_9edc38
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_9edc38
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_9edc38
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.msl
index 5393b66..747acd7 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%round_d87e84 = func():void -> %b2 {
-  %b2 = block {
+%round_d87e84 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(4.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_d87e84
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_d87e84
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_d87e84
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.msl
index 50d241e..e250256 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%round_e1bba2 = func():void -> %b2 {
-  %b2 = block {
+%round_e1bba2 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(4.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_e1bba2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_e1bba2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_e1bba2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.msl
index c48d125..c7933ed 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%round_f665b5 = func():void -> %b2 {
-  %b2 = block {
+%round_f665b5 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(4.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %round_f665b5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %round_f665b5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %round_f665b5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.msl
index c54d046..58d3885 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_270da5 = func():void -> %b2 {
-  %b2 = block {
+%saturate_270da5 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_270da5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_270da5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_270da5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.msl
index 4cda04c..b1eceda 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_462535 = func():void -> %b2 {
-  %b2 = block {
+%saturate_462535 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_462535
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_462535
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_462535
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.msl
index 69d2e8d..3ad7145 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_51567f = func():void -> %b2 {
-  %b2 = block {
+%saturate_51567f = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_51567f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_51567f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_51567f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.msl
index 8c00b2b..0c43f59 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_6bcddf = func():void -> %b2 {
-  %b2 = block {
+%saturate_6bcddf = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_6bcddf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_6bcddf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_6bcddf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.msl
index b68c541..9215e8e 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_a5b571 = func():void -> %b2 {
-  %b2 = block {
+%saturate_a5b571 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_a5b571
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_a5b571
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_a5b571
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.msl
index 261bd1e..aa621ee 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_cd2028 = func():void -> %b2 {
-  %b2 = block {
+%saturate_cd2028 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_cd2028
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_cd2028
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_cd2028
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.msl
index 618ed77..8fb98db 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_dcde71 = func():void -> %b2 {
-  %b2 = block {
+%saturate_dcde71 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_dcde71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_dcde71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_dcde71
     ret
   }
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.msl
index a0f2d25..adbf785 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_e8df56 = func():void -> %b2 {
-  %b2 = block {
+%saturate_e8df56 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %saturate_e8df56
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %saturate_e8df56
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %saturate_e8df56
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.msl
index 2f89941..6d76d88 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_00b848 = func():void -> %b2 {
-  %b2 = block {
+%select_00b848 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_00b848
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_00b848
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_00b848
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.msl
index 19bcd85..eda7dd8 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_01e2cd = func():void -> %b2 {
-  %b2 = block {
+%select_01e2cd = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_01e2cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_01e2cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_01e2cd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.msl
index 9cf4453..bcf989b 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_087ea4 = func():void -> %b2 {
-  %b2 = block {
+%select_087ea4 = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_087ea4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_087ea4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_087ea4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.msl
index 9a4bbc6..ae02b21 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%select_10e73b = func():void -> %b2 {
-  %b2 = block {
+%select_10e73b = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_10e73b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_10e73b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_10e73b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.msl
index 20feeda..1ab7e87 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_1ada2a = func():void -> %b2 {
-  %b2 = block {
+%select_1ada2a = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_1ada2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_1ada2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_1ada2a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.msl
index 456cc9c..f8d02fb 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_1e960b = func():void -> %b2 {
-  %b2 = block {
+%select_1e960b = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_1e960b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_1e960b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_1e960b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.msl
index 6ac40fd..7898e19 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_266aff = func():void -> %b2 {
-  %b2 = block {
+%select_266aff = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_266aff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_266aff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_266aff
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.msl
index 845446e..4721520 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_28a27e = func():void -> %b2 {
-  %b2 = block {
+%select_28a27e = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_28a27e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_28a27e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_28a27e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.msl
index 51a52ab..1952414 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_3c25ce = func():void -> %b2 {
-  %b2 = block {
+%select_3c25ce = func():void {
+  $B2: {
     %res:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %4:vec3<bool> = load %res
     %5:vec3<bool> = eq %4, vec3<bool>(false)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_3c25ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_3c25ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_3c25ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.msl
index 3a3eb31..2169f22 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%select_416e14 = func():void -> %b2 {
-  %b2 = block {
+%select_416e14 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_416e14
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_416e14
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_416e14
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.msl
index fae183e..3b3ad84 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_51b047 = func():void -> %b2 {
-  %b2 = block {
+%select_51b047 = func():void {
+  $B2: {
     %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_51b047
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_51b047
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_51b047
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.msl
index 97c6777..47c62ae 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_53d518 = func():void -> %b2 {
-  %b2 = block {
+%select_53d518 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_53d518
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_53d518
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_53d518
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.msl
index dae0fa0..3596694 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_713567 = func():void -> %b2 {
-  %b2 = block {
+%select_713567 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_713567
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_713567
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_713567
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.msl
index c1a45f2..7d406fa 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_78be5f = func():void -> %b2 {
-  %b2 = block {
+%select_78be5f = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_78be5f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_78be5f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_78be5f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.msl
index b964340..fd12708 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_80a9a9 = func():void -> %b2 {
-  %b2 = block {
+%select_80a9a9 = func():void {
+  $B2: {
     %res:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %4:vec3<bool> = load %res
     %5:vec3<bool> = eq %4, vec3<bool>(false)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_80a9a9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_80a9a9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_80a9a9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.msl
index 718895d..f799518 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_830dd9 = func():void -> %b2 {
-  %b2 = block {
+%select_830dd9 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_830dd9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_830dd9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_830dd9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.msl
index 456a111..1b32ae8 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_86f9bd = func():void -> %b2 {
-  %b2 = block {
+%select_86f9bd = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_86f9bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_86f9bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_86f9bd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.msl
index 7e42b51..682d6b2 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_8fa62c = func():void -> %b2 {
-  %b2 = block {
+%select_8fa62c = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_8fa62c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_8fa62c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_8fa62c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.msl
index 8dd6ed0..45d3f8a 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%select_99f883 = func():void -> %b2 {
-  %b2 = block {
+%select_99f883 = func():void {
+  $B2: {
     %res:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_99f883
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_99f883
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_99f883
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.msl
index 04a4725..d9d447f 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_a081f1 = func():void -> %b2 {
-  %b2 = block {
+%select_a081f1 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_a081f1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_a081f1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_a081f1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.msl
index 58d2952..188330d 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_a2860e = func():void -> %b2 {
-  %b2 = block {
+%select_a2860e = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_a2860e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_a2860e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_a2860e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.msl
index 24d31d4..bdb67db 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_ab069f = func():void -> %b2 {
-  %b2 = block {
+%select_ab069f = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_ab069f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_ab069f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_ab069f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.msl
index c99db1e..e989ed3 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_b04721 = func():void -> %b2 {
-  %b2 = block {
+%select_b04721 = func():void {
+  $B2: {
     %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_b04721
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_b04721
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_b04721
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.msl
index 7c3afed..d1895c3 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_bb447f = func():void -> %b2 {
-  %b2 = block {
+%select_bb447f = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_bb447f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_bb447f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_bb447f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.msl
index 5660ea2..7b14cdb 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_bb8aae = func():void -> %b2 {
-  %b2 = block {
+%select_bb8aae = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_bb8aae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_bb8aae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_bb8aae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.msl
index d19eb40..7688386 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_bf3d29 = func():void -> %b2 {
-  %b2 = block {
+%select_bf3d29 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_bf3d29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_bf3d29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_bf3d29
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.msl
index e0d6b3f..2f9ddda 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_c31f9e = func():void -> %b2 {
-  %b2 = block {
+%select_c31f9e = func():void {
+  $B2: {
     %res:ptr<function, bool, read_write> = var, true
     %4:bool = load %res
     %5:bool = eq %4, false
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_c31f9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_c31f9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_c31f9e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.msl
index 9fa2dd3..003b6da 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_c41bd1 = func():void -> %b2 {
-  %b2 = block {
+%select_c41bd1 = func():void {
+  $B2: {
     %res:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %4:vec4<bool> = load %res
     %5:vec4<bool> = eq %4, vec4<bool>(false)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_c41bd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_c41bd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_c41bd1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.msl
index 13fc35b..bd3f936 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_c4a4ef = func():void -> %b2 {
-  %b2 = block {
+%select_c4a4ef = func():void {
+  $B2: {
     %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_c4a4ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_c4a4ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_c4a4ef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.msl
index 7ea47d2..b0a4fce 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_cb9301 = func():void -> %b2 {
-  %b2 = block {
+%select_cb9301 = func():void {
+  $B2: {
     %res:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %4:vec2<bool> = load %res
     %5:vec2<bool> = eq %4, vec2<bool>(false)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_cb9301
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_cb9301
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_cb9301
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.msl
index fd050a6..d5d85a7 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_e3e028 = func():void -> %b2 {
-  %b2 = block {
+%select_e3e028 = func():void {
+  $B2: {
     %res:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %4:vec4<bool> = load %res
     %5:vec4<bool> = eq %4, vec4<bool>(false)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_e3e028
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_e3e028
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_e3e028
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.msl
index 3bbb423..8a39293 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_ebfea2 = func():void -> %b2 {
-  %b2 = block {
+%select_ebfea2 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_ebfea2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_ebfea2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_ebfea2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.msl
index b831313..8b579a4 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_ed7c13 = func():void -> %b2 {
-  %b2 = block {
+%select_ed7c13 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_ed7c13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_ed7c13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_ed7c13
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.msl
index b39d0c4..03b9041 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_ed8a15 = func():void -> %b2 {
-  %b2 = block {
+%select_ed8a15 = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %select_ed8a15
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %select_ed8a15
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %select_ed8a15
     ret
   }
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.msl
index 8c85a3b..8dda2db 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_fb7e53 = func():void -> %b2 {
-  %b2 = block {
+%select_fb7e53 = func():void {
+  $B2: {
     %res:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %4:vec2<bool> = load %res
     %5:vec2<bool> = eq %4, vec2<bool>(false)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %select_fb7e53
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %select_fb7e53
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %select_fb7e53
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.msl
index 92f156d..7e58e6e 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_159665 = func():void -> %b2 {
-  %b2 = block {
+%sign_159665 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_159665
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_159665
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_159665
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.msl
index b11441c..2efd39a 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_160933 = func():void -> %b2 {
-  %b2 = block {
+%sign_160933 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_160933
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_160933
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_160933
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.msl
index bb8db2c..208d895 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%sign_3233fa = func():void -> %b2 {
-  %b2 = block {
+%sign_3233fa = func():void {
+  $B2: {
     %res:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_3233fa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_3233fa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_3233fa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.msl
index b05ccf2..418b757 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_58d779 = func():void -> %b2 {
-  %b2 = block {
+%sign_58d779 = func():void {
+  $B2: {
     %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_58d779
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_58d779
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_58d779
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.msl
index ccf01de..d31a59f 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_5d283a = func():void -> %b2 {
-  %b2 = block {
+%sign_5d283a = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_5d283a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_5d283a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_5d283a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.msl
index 8b3d84d..ea6fb60 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sign_7c85ea = func():void -> %b2 {
-  %b2 = block {
+%sign_7c85ea = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_7c85ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_7c85ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_7c85ea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.msl
index ca91a7b..9b7633f 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_926015 = func():void -> %b2 {
-  %b2 = block {
+%sign_926015 = func():void {
+  $B2: {
     %res:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_926015
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_926015
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_926015
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.msl
index a8515b7..6efd5c3 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_9603b1 = func():void -> %b2 {
-  %b2 = block {
+%sign_9603b1 = func():void {
+  $B2: {
     %res:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_9603b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_9603b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_9603b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.msl
index 1b3ec47..5ca0fc8 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_b8f634 = func():void -> %b2 {
-  %b2 = block {
+%sign_b8f634 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_b8f634
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_b8f634
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_b8f634
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.msl
index 7f78353..71fd106 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_ccdb3c = func():void -> %b2 {
-  %b2 = block {
+%sign_ccdb3c = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_ccdb3c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_ccdb3c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_ccdb3c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.msl
index 91f48e4..758b40d 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_d065d8 = func():void -> %b2 {
-  %b2 = block {
+%sign_d065d8 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_d065d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_d065d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_d065d8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.msl
index 37ff2ee..fd44221 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sign_dd790e = func():void -> %b2 {
-  %b2 = block {
+%sign_dd790e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sign_dd790e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sign_dd790e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sign_dd790e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.msl
index ea19785..e44c9d8 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_01f241 = func():void -> %b2 {
-  %b2 = block {
+%sin_01f241 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_01f241
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_01f241
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_01f241
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.msl
index ecbac91..152835c 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_2c903b = func():void -> %b2 {
-  %b2 = block {
+%sin_2c903b = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.99951171875h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_2c903b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_2c903b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_2c903b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.msl
index 360531a..8e79366 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_3cca11 = func():void -> %b2 {
-  %b2 = block {
+%sin_3cca11 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.99951171875h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_3cca11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_3cca11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_3cca11
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.msl
index 3d9328a..c9500e0 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_4e3979 = func():void -> %b2 {
-  %b2 = block {
+%sin_4e3979 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_4e3979
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_4e3979
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_4e3979
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.msl
index 8c54ff1..165b11c 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_5c0712 = func():void -> %b2 {
-  %b2 = block {
+%sin_5c0712 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.99951171875h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_5c0712
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_5c0712
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_5c0712
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.msl
index 0896783..022f530 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sin_66a59f = func():void -> %b2 {
-  %b2 = block {
+%sin_66a59f = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.99951171875h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_66a59f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_66a59f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_66a59f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.msl
index 69e468b..583af3c 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sin_b78c91 = func():void -> %b2 {
-  %b2 = block {
+%sin_b78c91 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_b78c91
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_b78c91
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_b78c91
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.msl
index 074c7ee..f1954d5 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_fc8bc4 = func():void -> %b2 {
-  %b2 = block {
+%sin_fc8bc4 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sin_fc8bc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sin_fc8bc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sin_fc8bc4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.msl
index 54f8dee..f797d71 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_0908c1 = func():void -> %b2 {
-  %b2 = block {
+%sinh_0908c1 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.1748046875h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_0908c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_0908c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_0908c1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.msl
index 7c256d9..6203fff 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_445e33 = func():void -> %b2 {
-  %b2 = block {
+%sinh_445e33 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.17520117759704589844f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_445e33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_445e33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_445e33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.msl
index 6f31ebe..9ddebef 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_69cce2 = func():void -> %b2 {
-  %b2 = block {
+%sinh_69cce2 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.1748046875h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_69cce2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_69cce2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_69cce2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.msl
index 930447d..378c024 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_7bb598 = func():void -> %b2 {
-  %b2 = block {
+%sinh_7bb598 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.17520117759704589844f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_7bb598
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_7bb598
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_7bb598
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.msl
index f67c8dd..93d4ab5 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_924f19 = func():void -> %b2 {
-  %b2 = block {
+%sinh_924f19 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.1748046875h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_924f19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_924f19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_924f19
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.msl
index d237f4d..f8e221d 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_b9860e = func():void -> %b2 {
-  %b2 = block {
+%sinh_b9860e = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.17520117759704589844f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_b9860e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_b9860e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_b9860e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.msl
index e74b9ec..f90ff72 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_ba7e25 = func():void -> %b2 {
-  %b2 = block {
+%sinh_ba7e25 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.1748046875h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_ba7e25
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_ba7e25
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_ba7e25
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.msl
index fbce9dc..c8d2e3a 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_c9a5eb = func():void -> %b2 {
-  %b2 = block {
+%sinh_c9a5eb = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.17520117759704589844f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sinh_c9a5eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sinh_c9a5eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sinh_c9a5eb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.msl
index 663e4f8..fa3ba83 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_12c031 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_12c031 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.5h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_12c031
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_12c031
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_12c031
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.msl
index ff332d9..b5145ef 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_392c19 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_392c19 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.5f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_392c19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_392c19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_392c19
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.msl
index 20b1907..a851b91 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_40864c = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_40864c = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.5f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_40864c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_40864c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_40864c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.msl
index 940cea1..f3a7a60 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_586e12 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_586e12 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.5h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_586e12
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_586e12
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_586e12
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.msl
index 7a8ad73..5d2cd2e 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_6c4975 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_6c4975 = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.5f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_6c4975
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_6c4975
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_6c4975
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.msl
index 7afdea7..c19a8eb 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_6e7a74 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_6e7a74 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.5h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_6e7a74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_6e7a74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_6e7a74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.msl
index 23f5292..79b9b3c 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_aad1db = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_aad1db = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.5f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_aad1db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_aad1db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_aad1db
     ret
   }
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.msl
index c07b275..a777dac 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_c43ebd = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_c43ebd = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.5h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %smoothstep_c43ebd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %smoothstep_c43ebd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %smoothstep_c43ebd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.msl
index 5cd7769..f08ab08 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_20c74e = func():void -> %b2 {
-  %b2 = block {
+%sqrt_20c74e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_20c74e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_20c74e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_20c74e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.msl
index bca2421..a8611b4 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_803d1c = func():void -> %b2 {
-  %b2 = block {
+%sqrt_803d1c = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_803d1c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_803d1c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_803d1c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.msl
index 937a36b..1aa0330 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_895a0c = func():void -> %b2 {
-  %b2 = block {
+%sqrt_895a0c = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_895a0c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_895a0c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_895a0c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.msl
index 0f7ac24..2b6a953 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_8c7024 = func():void -> %b2 {
-  %b2 = block {
+%sqrt_8c7024 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_8c7024
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_8c7024
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_8c7024
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.msl
index 5bee23d..fafa6e5 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_aa0d7a = func():void -> %b2 {
-  %b2 = block {
+%sqrt_aa0d7a = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_aa0d7a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_aa0d7a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_aa0d7a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.msl
index 1dd2058..7f8f0fd 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_d9ab4d = func():void -> %b2 {
-  %b2 = block {
+%sqrt_d9ab4d = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_d9ab4d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_d9ab4d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_d9ab4d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.msl
index 26d86ee..dd03040 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_ec33e9 = func():void -> %b2 {
-  %b2 = block {
+%sqrt_ec33e9 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_ec33e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_ec33e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_ec33e9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.msl
index 5abe356..25fc369 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_f8c59a = func():void -> %b2 {
-  %b2 = block {
+%sqrt_f8c59a = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %sqrt_f8c59a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %sqrt_f8c59a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %sqrt_f8c59a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.msl
index 6e80971..c0e9c09 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%step_07cb06 = func():void -> %b2 {
-  %b2 = block {
+%step_07cb06 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_07cb06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_07cb06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_07cb06
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.msl
index e9bac3b..8344c29 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%step_0b073b = func():void -> %b2 {
-  %b2 = block {
+%step_0b073b = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_0b073b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_0b073b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_0b073b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.msl
index 255e3c0..07c20bc 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%step_19accd = func():void -> %b2 {
-  %b2 = block {
+%step_19accd = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_19accd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_19accd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_19accd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.msl
index fe65602..c8cdc21 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%step_334303 = func():void -> %b2 {
-  %b2 = block {
+%step_334303 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_334303
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_334303
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_334303
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.msl
index 20bf478..cbd9ea0 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%step_630d07 = func():void -> %b2 {
-  %b2 = block {
+%step_630d07 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_630d07
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_630d07
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_630d07
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.msl
index 2943a97..184b4e2 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%step_baa320 = func():void -> %b2 {
-  %b2 = block {
+%step_baa320 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_baa320
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_baa320
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_baa320
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.msl
index a884bd5..2a0a3d6 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%step_cc6b61 = func():void -> %b2 {
-  %b2 = block {
+%step_cc6b61 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_cc6b61
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_cc6b61
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_cc6b61
     ret
   }
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.msl
index eff242a..100b9b2 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%step_e2b337 = func():void -> %b2 {
-  %b2 = block {
+%step_e2b337 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %step_e2b337
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %step_e2b337
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %step_e2b337
     ret
   }
diff --git a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.ir.msl
index 5bf6eab..c9de677 100644
--- a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBallot_7e6d0e = func():void -> %b2 {
-  %b2 = block {
+%subgroupBallot_7e6d0e = func():void {
+  $B2: {
     %3:vec4<u32> = subgroupBallot
     %res:ptr<function, vec4<u32>, read_write> = var, %3
     %5:vec4<u32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %7:void = call %subgroupBallot_7e6d0e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9adced4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_07e2d8 = func():void {
+  $B2: {
+    %3:f16 = subgroupBroadcast 1.0h, 1u
+    %res:ptr<function, f16, read_write> = var, %3
+    %5:f16 = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_07e2d8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.msl
index 20b6e28..34c7b15 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBroadcast_08beca = func():void -> %b2 {
-  %b2 = block {
+%subgroupBroadcast_08beca = func():void {
+  $B2: {
     %3:f32 = subgroupBroadcast 1.0f, 1u
     %res:ptr<function, f32, read_write> = var, %3
     %5:f32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %7:void = call %subgroupBroadcast_08beca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..a65f913
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_0f44e2 = func():void {
+  $B2: {
+    %3:vec4<f16> = subgroupBroadcast vec4<f16>(1.0h), 1u
+    %res:ptr<function, vec4<f16>, read_write> = var, %3
+    %5:vec4<f16> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_0f44e2
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4d4ef64
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_13f36c = func():void {
+  $B2: {
+    %3:vec2<f16> = subgroupBroadcast vec2<f16>(1.0h), 1u
+    %res:ptr<function, vec2<f16>, read_write> = var, %3
+    %5:vec2<f16> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_13f36c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl
index e85fb13..63daf07 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBroadcast_1d79c7 = func():void -> %b2 {
-  %b2 = block {
+%subgroupBroadcast_1d79c7 = func():void {
+  $B2: {
     %3:i32 = subgroupBroadcast 1i, 1u
     %res:ptr<function, i32, read_write> = var, %3
     %5:i32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %7:void = call %subgroupBroadcast_1d79c7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.msl
new file mode 100644
index 0000000..679738c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_279027 = func():void {
+  $B2: {
+    %3:vec4<u32> = subgroupBroadcast vec4<u32>(1u), 1u
+    %res:ptr<function, vec4<u32>, read_write> = var, %3
+    %5:vec4<u32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_279027
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..80f19a1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_34fa3d = func():void {
+  $B2: {
+    %3:vec3<u32> = subgroupBroadcast vec3<u32>(1u), 1u
+    %res:ptr<function, vec3<u32>, read_write> = var, %3
+    %5:vec3<u32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_34fa3d
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.msl
new file mode 100644
index 0000000..35f09ee
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_3e6879 = func():void {
+  $B2: {
+    %3:vec2<i32> = subgroupBroadcast vec2<i32>(1i), 1u
+    %res:ptr<function, vec2<i32>, read_write> = var, %3
+    %5:vec2<i32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_3e6879
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ae9da25
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_41e5d7 = func():void {
+  $B2: {
+    %3:vec3<f16> = subgroupBroadcast vec3<f16>(1.0h), 1u
+    %res:ptr<function, vec3<f16>, read_write> = var, %3
+    %5:vec3<f16> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_41e5d7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.msl
new file mode 100644
index 0000000..f5c29ef
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_4a4334 = func():void {
+  $B2: {
+    %3:vec2<u32> = subgroupBroadcast vec2<u32>(1u), 1u
+    %res:ptr<function, vec2<u32>, read_write> = var, %3
+    %5:vec2<u32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_4a4334
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..01efdcb
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_5196c8 = func():void {
+  $B2: {
+    %3:vec2<f32> = subgroupBroadcast vec2<f32>(1.0f), 1u
+    %res:ptr<function, vec2<f32>, read_write> = var, %3
+    %5:vec2<f32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_5196c8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5c9af34
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_912ff5 = func():void {
+  $B2: {
+    %3:vec3<f32> = subgroupBroadcast vec3<f32>(1.0f), 1u
+    %res:ptr<function, vec3<f32>, read_write> = var, %3
+    %5:vec3<f32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_912ff5
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..a695582
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_b7e93b = func():void {
+  $B2: {
+    %3:vec4<f32> = subgroupBroadcast vec4<f32>(1.0f), 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %3
+    %5:vec4<f32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_b7e93b
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl
index 39dc1f9..17ec2f5 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBroadcast_c36fe1 = func():void -> %b2 {
-  %b2 = block {
+%subgroupBroadcast_c36fe1 = func():void {
+  $B2: {
     %3:u32 = subgroupBroadcast 1u, 1u
     %res:ptr<function, u32, read_write> = var, %3
     %5:u32 = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %7:void = call %subgroupBroadcast_c36fe1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c6955be
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_e275c8 = func():void {
+  $B2: {
+    %3:vec3<i32> = subgroupBroadcast vec3<i32>(1i), 1u
+    %res:ptr<function, vec3<i32>, read_write> = var, %3
+    %5:vec3<i32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_e275c8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c623b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.ir.msl
@@ -0,0 +1,29 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_f637f9 = func():void {
+  $B2: {
+    %3:vec4<i32> = subgroupBroadcast vec4<i32>(1i), 1u
+    %res:ptr<function, vec4<i32>, read_write> = var, %3
+    %5:vec4<i32> = load %res
+    store %prevent_dce, %5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %7:void = call %subgroupBroadcast_f637f9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.msl
index b3dcbbe..818ddd4 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_244e2a = func():void -> %b2 {
-  %b2 = block {
+%tan_244e2a = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.55740773677825927734f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_244e2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_244e2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_244e2a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.msl
index c2fe9bf..cc74f56 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%tan_2f030e = func():void -> %b2 {
-  %b2 = block {
+%tan_2f030e = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.55740773677825927734f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_2f030e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_2f030e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_2f030e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.msl
index d8dc623..95f54cc 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_539e54 = func():void -> %b2 {
-  %b2 = block {
+%tan_539e54 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.556640625h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_539e54
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_539e54
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_539e54
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.msl
index c8fbd11..e35b401 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_7ea104 = func():void -> %b2 {
-  %b2 = block {
+%tan_7ea104 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.55740773677825927734f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_7ea104
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_7ea104
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_7ea104
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.msl
index e6bfb77..a2d7872 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_8ce3e9 = func():void -> %b2 {
-  %b2 = block {
+%tan_8ce3e9 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.55740773677825927734f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_8ce3e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_8ce3e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_8ce3e9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.msl
index 0be28c4..6572bb2 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_9f7c9c = func():void -> %b2 {
-  %b2 = block {
+%tan_9f7c9c = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.556640625h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_9f7c9c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_9f7c9c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_9f7c9c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.msl
index b5e3620..c114bdb 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%tan_d4d491 = func():void -> %b2 {
-  %b2 = block {
+%tan_d4d491 = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.556640625h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_d4d491
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_d4d491
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_d4d491
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.msl
index 7dad027..1228f5f 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_db0456 = func():void -> %b2 {
-  %b2 = block {
+%tan_db0456 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.556640625h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tan_db0456
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tan_db0456
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tan_db0456
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.msl
index 0ac54a9..c5ea369 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_06a4fe = func():void -> %b2 {
-  %b2 = block {
+%tanh_06a4fe = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.76123046875h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_06a4fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_06a4fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_06a4fe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.msl
index 8999406..3bc7003 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_5663c5 = func():void -> %b2 {
-  %b2 = block {
+%tanh_5663c5 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.76159417629241943359f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_5663c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_5663c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_5663c5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.msl
index 9814c16..2dc6de2 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_5724b3 = func():void -> %b2 {
-  %b2 = block {
+%tanh_5724b3 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.76159417629241943359f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_5724b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_5724b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_5724b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.msl
index 1b967e7..f7193b9 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_5b19af = func():void -> %b2 {
-  %b2 = block {
+%tanh_5b19af = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 0.76123046875h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_5b19af
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_5b19af
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_5b19af
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.msl
index 2b535a2..54dda19 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_6d105a = func():void -> %b2 {
-  %b2 = block {
+%tanh_6d105a = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.76123046875h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_6d105a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_6d105a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_6d105a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.msl
index f817dc3..c4c0aac 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_9f9fb9 = func():void -> %b2 {
-  %b2 = block {
+%tanh_9f9fb9 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.76159417629241943359f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_9f9fb9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_9f9fb9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_9f9fb9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.msl
index df3b319..c84f3f5 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_c15fdb = func():void -> %b2 {
-  %b2 = block {
+%tanh_c15fdb = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 0.76159417629241943359f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_c15fdb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_c15fdb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_c15fdb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.msl
index 35d180a..a8db501 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_e8efb3 = func():void -> %b2 {
-  %b2 = block {
+%tanh_e8efb3 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.76123046875h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %tanh_e8efb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %tanh_e8efb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %tanh_e8efb3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..849a6c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_00229f = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read> = load %arg_0
+    %5:vec3<u32> = textureDimensions %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_00229f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_00229f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_00229f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.msl
index 8d68a23..6e14327 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_00348c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_00348c = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_00348c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_00348c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_00348c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.msl
index ffa7c60..4ef958d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_01e21e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_01e21e = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_01e21e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_01e21e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_01e21e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.msl
index f60ef0a..76d62ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_01edb1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_01edb1 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_01edb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_01edb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_01edb1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.msl
index 2dcd3a7..7232e7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_022903 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_022903 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:u32 = textureDimensions %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_022903
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_022903
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_022903
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.msl
index 4566e1d..4cfbfbf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0276ec = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0276ec = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0276ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0276ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0276ec
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.msl
index 757d7e1..b729de4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_029589 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_029589 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_029589
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_029589
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_029589
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.msl
index 8a14bb0..e8cd0aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0329b0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0329b0 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0329b0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0329b0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0329b0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.msl
index e49dfb0..66ff65b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_033195 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_033195 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_033195
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_033195
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_033195
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.msl
index 4c507bc..94e7998 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_033ea7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_033ea7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_033ea7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_033ea7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_033ea7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.msl
index 1a095bd..095c18f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_038847 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_038847 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_038847
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_038847
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_038847
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.msl
index 34ff61d..2c6ddcf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_03f81e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_03f81e = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_03f81e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_03f81e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_03f81e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.msl
index 0aa01df..7bd43fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_07f1ba = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_07f1ba = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_07f1ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_07f1ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_07f1ba
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.msl
index 9fa6c50..8b222cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_088918 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_088918 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_088918
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_088918
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_088918
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.msl
index acb375d..601df6f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0890c6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0890c6 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0890c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0890c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0890c6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.msl
index d5226e8..b091661 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_08e371 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_08e371 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_08e371
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_08e371
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_08e371
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.msl
index d24c56c..7cecfa5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_09140b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_09140b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_09140b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_09140b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_09140b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.msl
index 8ab572f..939d739 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0973c9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0973c9 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0973c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0973c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0973c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.msl
index 7d67b05..3fe3ba8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0baa0d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0baa0d = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0baa0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0baa0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0baa0d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.msl
index de886b1..2b0db04 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0c0b0c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0c0b0c = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0c0b0c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0c0b0c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0c0b0c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.msl
index 1ca0ae8..587df6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0d4a7c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0d4a7c = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0d4a7c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0d4a7c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0d4a7c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.msl
index 7a8d115..6abd491 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0de70c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0de70c = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0de70c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0de70c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0de70c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.msl
index baf1eb7..ebdcefa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0ff9a4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0ff9a4 = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0ff9a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0ff9a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0ff9a4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.msl
index fec379a..8bf1674 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_135176 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_135176 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_135176
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_135176
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_135176
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.msl
index 8f4e319..022bcd6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_13f8db = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_13f8db = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_13f8db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_13f8db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_13f8db
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.msl
index 29807be..8a98008 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1417dd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1417dd = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1417dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1417dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1417dd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.msl
index 2409c0a..0d1b2e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_15aa17 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_15aa17 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_15aa17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_15aa17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_15aa17
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.msl
index 72f2f75..a2d9dc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_15b577 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_15b577 = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_15b577
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_15b577
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_15b577
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6c1d710
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_18160d = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_18160d
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_18160d
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_18160d
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5c1e999
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_18f19f = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_18f19f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_18f19f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_18f19f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.msl
index 7cd2b86..f4d7661 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1a2be7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1a2be7 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1a2be7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1a2be7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1a2be7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.msl
index a738c11..087679b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1b720f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1b720f = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1b720f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1b720f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1b720f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.msl
index e249f83..b74d04f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1bc428 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1bc428 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1bc428
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1bc428
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1bc428
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.msl
index 9d29d4e..c3ac928 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1bd78c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1bd78c = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1bd78c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1bd78c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1bd78c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.msl
index 1a146fc..e098f08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1e4024 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1e4024 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1e4024
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1e4024
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1e4024
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.msl
index 46a827c..f40f3ce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_20eaad = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_20eaad = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_20eaad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_20eaad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_20eaad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.msl
index c4765b3..a316b4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_20ecef = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_20ecef = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_20ecef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_20ecef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_20ecef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.msl
index d514f3c..9ae2b94 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_212362 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_212362 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_212362
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_212362
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_212362
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.msl
index f0a7bc7..01a873d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_224113 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_224113 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_224113
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_224113
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_224113
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.msl
index 171ab73..62e3a16 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_22b5b6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_22b5b6 = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_22b5b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_22b5b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_22b5b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.msl
index d8558ea..a6dfb5c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_24db07 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_24db07 = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_24db07
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_24db07
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_24db07
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0da591d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_25d284 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_25d284
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_25d284
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_25d284
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.msl
index 3f48aee..d004de9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2674d8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2674d8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2674d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2674d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2674d8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.msl
index 40f698d..f3ace0c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_268ddb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_268ddb = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_268ddb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_268ddb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_268ddb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.msl
index 029b3f6..c1f845d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_26d6bf = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_26d6bf = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_26d6bf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_26d6bf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_26d6bf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.msl
new file mode 100644
index 0000000..44c95a1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_282978 = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %5:vec3<u32> = textureDimensions %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_282978
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_282978
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_282978
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.msl
index 60f523a..e76cc22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_283b58 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_283b58 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_283b58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_283b58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_283b58
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.msl
index 84f17ba..7d0faea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_284c27 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_284c27 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_284c27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_284c27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_284c27
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.msl
index fedce92..ccf4364 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2a58b7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2a58b7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2a58b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2a58b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2a58b7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.msl
index 8e066e4..9760498 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2bafdf = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2bafdf = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2bafdf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2bafdf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2bafdf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.msl
index d183f63..a95e06f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2dc5c5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2dc5c5 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2dc5c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2dc5c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2dc5c5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.msl
index 6b52791..14a2522 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2e443d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2e443d = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2e443d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2e443d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2e443d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.msl
index 20b842d..4c813e5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2fd2a4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2fd2a4 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2fd2a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2fd2a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2fd2a4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.msl
index 61ffb89..5d4bba5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2ff32a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2ff32a = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2ff32a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2ff32a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2ff32a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.msl
index 09ecd93..7ebfbd1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_305dd5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_305dd5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_305dd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_305dd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_305dd5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.msl
index da2c208..fb3c196 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_31799c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_31799c = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_31799c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_31799c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_31799c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.msl
index a3dc5be..01b52fd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_31d00d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_31d00d = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_31d00d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_31d00d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_31d00d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.msl
index c92b5fa..6163677 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_325338 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_325338 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_325338
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_325338
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_325338
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.msl
index a3fa4a8..cc3c5ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_346fee = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_346fee = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_346fee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_346fee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_346fee
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.msl
index 0673369..dac4208 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_35a7e5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_35a7e5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_35a7e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_35a7e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_35a7e5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.msl
index cec6f94..2d3dfdc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_35ee69 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_35ee69 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_35ee69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_35ee69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_35ee69
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.msl
index 63bd17a..62d243b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_36eeb7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_36eeb7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_36eeb7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_36eeb7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_36eeb7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.msl
index 697e131..3900345 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_378a65 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_378a65 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_378a65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_378a65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_378a65
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.msl
index a4dc6be..9af7332 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_382b16 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_382b16 = func():void {
+  $B2: {
     %4:texture_cube<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_382b16
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_382b16
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_382b16
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.msl
index 29b7ff2..258694e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3834f8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3834f8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3834f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3834f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3834f8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.msl
index 168752a..0a6c1af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_38c9ca = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_38c9ca = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_38c9ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_38c9ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_38c9ca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.msl
index 298feb0..8754cd9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3963d0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3963d0 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3963d0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3963d0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3963d0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.msl
index f1c6b33..1e11e55 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_397dab = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_397dab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_397dab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_397dab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_397dab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.msl
index e5e0108..a025279 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3a5bb1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3a5bb1 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3a5bb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3a5bb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3a5bb1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.msl
index 3a5a0d0..120e276 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3a7b69 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3a7b69 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3a7b69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3a7b69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3a7b69
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.msl
index ba19efe..c68bbe6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3af3e7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3af3e7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3af3e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3af3e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3af3e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.msl
index d85b497..6dacb37 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3b38f6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3b38f6 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3b38f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3b38f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3b38f6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.msl
index be36858..0b67c6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3baab5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3baab5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3baab5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3baab5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3baab5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.msl
index 86ed6ea..6d8c462 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3bf12a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3bf12a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3bf12a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3bf12a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3bf12a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.msl
index f3e19f4..2061f4b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3c66f0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3c66f0 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3c66f0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3c66f0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3c66f0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.msl
index 3a31398..4bf0dfb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3f3474 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3f3474 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3f3474
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3f3474
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3f3474
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.msl
index 83244e5..ec59950 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3fc3dc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3fc3dc = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3fc3dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3fc3dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3fc3dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.msl
index 886cdeb..c51a938 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3ff0a5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3ff0a5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3ff0a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3ff0a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3ff0a5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.msl
index 2530c03..25a3c15 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_40c671 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_40c671 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_40c671
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_40c671
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_40c671
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.msl
new file mode 100644
index 0000000..208291e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_40da20 = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_40da20
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_40da20
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_40da20
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.msl
index d33ac2d..c705907 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_40ecf4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_40ecf4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_40ecf4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_40ecf4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_40ecf4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.msl
index fc02b5c..2fa16a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_41545f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_41545f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_41545f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_41545f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_41545f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.msl
index c5ab335..53deb29 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_423519 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_423519 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_423519
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_423519
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_423519
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.msl
index 2be9ad1..656fd03 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_427f92 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_427f92 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_427f92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_427f92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_427f92
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.msl
index 094d43a..0217d47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_439651 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_439651 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_439651
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_439651
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_439651
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.msl
index a13d727..a204183 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_445376 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_445376 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_445376
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_445376
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_445376
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.msl
index a21e3e8..43f5263 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_44b358 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_44b358 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_44b358
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_44b358
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_44b358
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.msl
index 2bf2104..5745a04 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_452fc1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_452fc1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_452fc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_452fc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_452fc1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.msl
index 8cbb4ad..c3a792c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_46f0fc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_46f0fc = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_46f0fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_46f0fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_46f0fc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.msl
index 4b6334a..fd0adfb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4716a4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4716a4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4716a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4716a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4716a4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.msl
index b3328f8..ef7d399 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_475c10 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_475c10 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_475c10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_475c10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_475c10
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.msl
index f92783f..b1f3fd8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_49a067 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_49a067 = func():void {
+  $B2: {
     %4:texture_cube<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_49a067
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_49a067
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_49a067
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.msl
index 3c18d12..3c1c43b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4acec7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4acec7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4acec7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4acec7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4acec7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.msl
index 8c84fc2..50f413f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4b26ef = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4b26ef = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4b26ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4b26ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4b26ef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.msl
index fadfcf3..11f227a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4be71b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4be71b = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4be71b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4be71b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4be71b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.msl
index a7e1b4e..0dba440 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4d1f71 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4d1f71 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4d1f71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4d1f71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4d1f71
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.msl
index 367ee2b..825c86d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4d27b3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4d27b3 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4d27b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4d27b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4d27b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.msl
index 70e4cd7..d79244a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4df14c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4df14c = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4df14c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4df14c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4df14c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.msl
index 0b2237b..17dadcf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4e540a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4e540a = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4e540a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4e540a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4e540a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.msl
index 7c6eb4c..5e77cb4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_528c0e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_528c0e = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_528c0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_528c0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_528c0e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.msl
index 75a1fec..531b168 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_52cf60 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_52cf60 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_52cf60
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_52cf60
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_52cf60
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.msl
index 174cbc8..f968e3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_534ef8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_534ef8 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_534ef8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_534ef8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_534ef8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ecbc4a0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_542c62 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, write> = load %arg_0
+    %5:u32 = textureDimensions %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_542c62
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_542c62
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_542c62
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.msl
index b8de1d8..7ca2b12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_55fdeb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_55fdeb = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_55fdeb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_55fdeb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_55fdeb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.msl
index 818d6fc..c407cc0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_5703b3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_5703b3 = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_5703b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_5703b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_5703b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2e4dcc34
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_578e75 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_578e75
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_578e75
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_578e75
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.msl
index ca4afb5..5753859 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_579eee = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_579eee = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_579eee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_579eee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_579eee
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.msl
index 7993c20..2e1f885 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_58a82d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_58a82d = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_58a82d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_58a82d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_58a82d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.msl
index 0ff517d..97fd934 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_591981 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_591981 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_591981
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_591981
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_591981
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.msl
index 20826ef..25db417 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_599ab5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_599ab5 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_599ab5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_599ab5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_599ab5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.msl
index a343aac..5d70969 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_5b4b10 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_5b4b10 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_5b4b10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_5b4b10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_5b4b10
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.msl
index 291311a..18e817d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_5df042 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_5df042 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_5df042
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_5df042
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_5df042
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.msl
index 2d07a54..9e9f649 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_607979 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_607979 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_607979
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_607979
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_607979
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.msl
index 785cf3c..2a9cae2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_609d34 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_609d34 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_609d34
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_609d34
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_609d34
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.msl
index b3e28e5..a85f2fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_617dc8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_617dc8 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_617dc8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_617dc8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_617dc8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.msl
index 372dd86..3131f5a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_62cb5a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_62cb5a = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_62cb5a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_62cb5a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_62cb5a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.msl
index 594fa94..4216195 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_62e7ae = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_62e7ae = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_62e7ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_62e7ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_62e7ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.msl
index 9bd369f..75fcd8a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_64dc74 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_64dc74 = func():void {
+  $B2: {
     %4:texture_cube<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_64dc74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_64dc74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_64dc74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.msl
index a41c70f..01f1ff4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_674058 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_674058 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_674058
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_674058
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_674058
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.msl
index 4630605..adb7d86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6dae40 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6dae40 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6dae40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6dae40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6dae40
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.msl
index f0a139a..824418f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6dbef4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6dbef4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6dbef4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6dbef4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6dbef4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.msl
index 2c05cc6..f3a3e71 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6e6c7a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6e6c7a = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6e6c7a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6e6c7a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6e6c7a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.msl
index dc42636..6b1da73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6e72c5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6e72c5 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6e72c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6e72c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6e72c5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.msl
index 6a92105..d5ac0d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6f1b5d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6f1b5d = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6f1b5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6f1b5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6f1b5d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.msl
index 10e9fd9..61d2869 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_709357 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_709357 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_709357
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_709357
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_709357
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.msl
index 947df4d..84e759d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_70dd33 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_70dd33 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_70dd33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_70dd33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_70dd33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.msl
index ec49950..6e0c466 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_715917 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_715917 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_715917
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_715917
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_715917
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.msl
index 36d88d6..79806b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7228de = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7228de = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7228de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7228de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7228de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.msl
index f9fabcb..16fb52c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7327fa = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7327fa = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7327fa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7327fa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7327fa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.msl
index 1e31a38..24b58d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_740e7c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_740e7c = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_740e7c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_740e7c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_740e7c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.msl
index deb6f89..a1e6f57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_756031 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_756031 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_756031
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_756031
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_756031
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.msl
index b44d9f6..b11235e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_756304 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_756304 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_756304
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_756304
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_756304
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.msl
index 276dc5a..ac9fe31 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_790e57 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_790e57 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_790e57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_790e57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_790e57
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.msl
index cfc7070..265b2d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_795fbb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_795fbb = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_795fbb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_795fbb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_795fbb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.msl
index d970bd8..5363267 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_797c30 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_797c30 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_797c30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_797c30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_797c30
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.msl
index 47dc6f3..b9aeac2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_79d168 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_79d168 = func():void {
+  $B2: {
     %4:texture_depth_cube = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_79d168
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_79d168
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_79d168
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.msl
index 836ec32..4bacd6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7a3890 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7a3890 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7a3890
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7a3890
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7a3890
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.msl
index 8a20526..58f4d8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7a9e30 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7a9e30 = func():void {
+  $B2: {
     %4:texture_cube<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7a9e30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7a9e30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7a9e30
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.msl
index 32063f2..d4ae4d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7c753b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7c753b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7c753b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7c753b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7c753b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.msl
index 87f54bb..081b6f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7c7c64 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7c7c64 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7c7c64
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7c7c64
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7c7c64
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.msl
index d03fe02..88fcff8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7d8439 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7d8439 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7d8439
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7d8439
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7d8439
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.msl
index d0cb535..c97f9a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7ea4b5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7ea4b5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7ea4b5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7ea4b5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7ea4b5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.msl
index 1cc1ef1..eb022fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7edb05 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7edb05 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7edb05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7edb05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7edb05
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.msl
index 1bc5c53..c1ab7fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8057cb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8057cb = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8057cb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8057cb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8057cb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.msl
index f4e27e1..1ce6264 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8243a1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8243a1 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8243a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8243a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8243a1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.msl
index e8eb00f..7cf9323 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_835f90 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_835f90 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_835f90
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_835f90
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_835f90
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.msl
index 16fd29d..17df82a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_841ebe = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_841ebe = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_841ebe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_841ebe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_841ebe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.msl
index 54b0340..aa9df4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_84f363 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_84f363 = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_84f363
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_84f363
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_84f363
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.msl
index 200a725..617e797 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_867ead = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_867ead = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_867ead
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_867ead
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_867ead
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.msl
index 903525f..746ecfc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_879b73 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_879b73 = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_879b73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_879b73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_879b73
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.msl
index 4fdf484..8f63c38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_87b42d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_87b42d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_87b42d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_87b42d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_87b42d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.msl
index c0bffc9..74863db 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_881dd4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_881dd4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_881dd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_881dd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_881dd4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.msl
index 15e9426..18da2e6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8a2b17 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8a2b17 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8a2b17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8a2b17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8a2b17
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.msl
index 42d933c..c071be2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8a35f9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8a35f9 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8a35f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8a35f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8a35f9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8934ef5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_8af728 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_8af728
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_8af728
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_8af728
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.msl
index 9413450..2fc2c6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8b9906 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8b9906 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8b9906
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8b9906
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8b9906
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.msl
index 729d131..42dbc03 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8bd369 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8bd369 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8bd369
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8bd369
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8bd369
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.msl
index 65d5cd0..07f2d52 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8e15f4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8e15f4 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8e15f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8e15f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8e15f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.msl
index 4a653cc..5b50de8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8e5de6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8e5de6 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8e5de6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8e5de6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8e5de6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.msl
index 9c785b5..20db69d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8efd47 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8efd47 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8efd47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8efd47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8efd47
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.msl
index 67628d1..b32850f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_902179 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_902179 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_902179
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_902179
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_902179
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.msl
index 8cca4cb..936e48b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_904b0f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_904b0f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_904b0f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_904b0f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_904b0f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.msl
index 7d1dfe6..98ef490 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_90dd74 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_90dd74 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_90dd74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_90dd74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_90dd74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.msl
index ea729a6..f4e12c7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_91e3b4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_91e3b4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_91e3b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_91e3b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_91e3b4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.msl
index 8b07b04..698b4b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_920006 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_920006 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:u32 = textureDimensions %4, 1i
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_920006
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_920006
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_920006
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.msl
index c3f86df..94b54b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_92552e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_92552e = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_92552e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_92552e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_92552e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.msl
index 813087d..f3de2e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9573f3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9573f3 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9573f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9573f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9573f3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.msl
index 50c5d56..69d9637 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_965645 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_965645 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_965645
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_965645
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_965645
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.msl
index 99191cf..0d26142 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_98b2d3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_98b2d3 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_98b2d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_98b2d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_98b2d3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.msl
index 4833879..1d45751 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_991ea9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_991ea9 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_991ea9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_991ea9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_991ea9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.msl
index 54aa83e..ef2628f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9944d5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9944d5 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9944d5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9944d5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9944d5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.msl
index 6241d58..d9e55ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9b10a0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9b10a0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9b10a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9b10a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9b10a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.msl
index ccea5f1..cfd4e1e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9b223b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9b223b = func():void {
+  $B2: {
     %4:texture_cube<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9b223b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9b223b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9b223b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.msl
index 65e95a7..09fa746 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9baf27 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9baf27 = func():void {
+  $B2: {
     %4:texture_cube<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9baf27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9baf27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9baf27
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.msl
index b6793d4..0af581f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9c7a00 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9c7a00 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:u32 = textureDimensions %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9c7a00
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9c7a00
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9c7a00
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.msl
index 48d8c2d..07f2ef3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9cd4ca = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9cd4ca = func():void {
+  $B2: {
     %4:texture_cube<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9cd4ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9cd4ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9cd4ca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.msl
index 8371919..2cafaac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9cd8ad = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9cd8ad = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9cd8ad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9cd8ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9cd8ad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.msl
index e1c7026..112a8d0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9d0bac = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9d0bac = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9d0bac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9d0bac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9d0bac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.msl
index 38a6fd4..72d63e4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9d68b8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9d68b8 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9d68b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9d68b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9d68b8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.msl
index 921b3fd..69c15a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9dc27a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9dc27a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9dc27a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9dc27a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9dc27a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.msl
index 0b6c3c0..be32208 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9e0794 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9e0794 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9e0794
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9e0794
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9e0794
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.msl
index 64d4fb9..e3ad776 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9fcc3b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9fcc3b = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9fcc3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9fcc3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9fcc3b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.msl
index b42152d..2655353 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a105a5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a105a5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a105a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a105a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a105a5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.msl
index b65acf2..24e838d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a14386 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a14386 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a14386
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a14386
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a14386
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.msl
index 329db7f..fd21c6f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a1598a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a1598a = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a1598a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a1598a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a1598a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fd6e2c5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_a20ba2 = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, write> = load %arg_0
+    %5:vec3<u32> = textureDimensions %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_a20ba2
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_a20ba2
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_a20ba2
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.msl
index 8a7a2b3..0bb63bb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a25d9b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a25d9b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a25d9b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a25d9b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a25d9b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.msl
index 0af1f38..6dfbdf2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a2ba5e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a2ba5e = func():void {
+  $B2: {
     %4:texture_cube<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a2ba5e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a2ba5e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a2ba5e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.msl
index 63f4178..0686639 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a3ea91 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a3ea91 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a3ea91
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a3ea91
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a3ea91
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.msl
index 972e2cc..46fc59b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a48049 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a48049 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a48049
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a48049
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a48049
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.msl
index c3d5b6b..4961dc8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a4cd56 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a4cd56 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a4cd56
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a4cd56
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a4cd56
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.msl
index d24df3e..2a10b20 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a65776 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a65776 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a65776
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a65776
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a65776
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.msl
index b2ab621..5ff70c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a7ae4c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a7ae4c = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a7ae4c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a7ae4c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a7ae4c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.msl
index 11b3405..8f68441 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_aa4353 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_aa4353 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_aa4353
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_aa4353
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_aa4353
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.msl
index cbd1a4c..b4f729e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_aac604 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_aac604 = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:u32 = textureDimensions %4, 1u
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_aac604
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_aac604
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_aac604
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.msl
index 25f0baf..1a0e6ca 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ad7d3b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ad7d3b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ad7d3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ad7d3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ad7d3b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.msl
index dfecd22..84b0b21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ae4595 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ae4595 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ae4595
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ae4595
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ae4595
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.msl
index 3ca8324..efbeeed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ae75a7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ae75a7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ae75a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ae75a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ae75a7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.msl
index a11470a..949d892 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_af46ab = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_af46ab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_af46ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_af46ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_af46ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.msl
index 1336990..c75fa3e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b16352 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b16352 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b16352
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b16352
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b16352
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.msl
index bd5d7c1..55267cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b284b8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b284b8 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b284b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b284b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b284b8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.msl
index 6a6b2b3..6f5fb3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b3ab5e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b3ab5e = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b3ab5e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b3ab5e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b3ab5e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.msl
index 48f3f8d..b0652c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b46d97 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b46d97 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:u32 = textureDimensions %4, 1i
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b46d97
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b46d97
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b46d97
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.msl
index 16221ed..e4f0554 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b51345 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b51345 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b51345
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b51345
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b51345
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.msl
index a346ecd..60af298 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b56112 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b56112 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b56112
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b56112
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b56112
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.msl
index 82cfa14..34d233d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b5ba03 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b5ba03 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b5ba03
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b5ba03
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b5ba03
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.msl
index eb4dd20..7075ee4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b5d68e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b5d68e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b5d68e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b5d68e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b5d68e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.msl
index f1da8c9..e676ab1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b6bbf4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b6bbf4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b6bbf4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b6bbf4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b6bbf4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.msl
index 0f97f51..8a9bb43 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b8287f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b8287f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b8287f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b8287f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b8287f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.msl
index 1d3252f..2489e6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b9e7ef = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b9e7ef = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b9e7ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b9e7ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b9e7ef
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.msl
index 39de294..70d133a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bb95d9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bb95d9 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bb95d9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bb95d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bb95d9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.msl
index de9d6ef..499807d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bbe285 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bbe285 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bbe285
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bbe285
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bbe285
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.msl
index 4454816..0734d41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bc96f6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bc96f6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bc96f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bc96f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bc96f6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.msl
index 1b4945a..969ccbc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bd94c8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bd94c8 = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bd94c8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bd94c8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bd94c8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.msl
index 0726507..5a4f560 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bec716 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bec716 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bec716
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bec716
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bec716
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.msl
index 6846af3..c83ca85 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bf9170 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bf9170 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bf9170
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bf9170
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bf9170
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.msl
index a45498e..d2615a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c1189e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c1189e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c1189e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c1189e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c1189e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.msl
index dac5f33..514e05f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c1dbf6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c1dbf6 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c1dbf6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c1dbf6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c1dbf6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.msl
index c66c698..4d04623 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c27466 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c27466 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c27466
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c27466
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c27466
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.msl
index 1a455f3..9688623 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c2cdd3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c2cdd3 = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c2cdd3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c2cdd3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c2cdd3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.msl
index f616817..9ea7ecd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c44fc1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c44fc1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c44fc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c44fc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c44fc1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.msl
index c3fe0f8..36f79de 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c5a36e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c5a36e = func():void {
+  $B2: {
     %4:texture_depth_cube = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c5a36e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c5a36e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c5a36e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.msl
index ea1a673..c81c192 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c6b44c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c6b44c = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c6b44c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c6b44c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c6b44c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b645805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_c6b985 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %5:u32 = textureDimensions %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_c6b985
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_c6b985
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_c6b985
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.msl
index 3b1f4ea..7be61e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c7ea63 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c7ea63 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c7ea63
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c7ea63
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c7ea63
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.msl
index 37abb03..a886b56 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c82420 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c82420 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c82420
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c82420
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c82420
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.msl
index e96b120..cf61340 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c871f3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c871f3 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c871f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c871f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c871f3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.msl
index e2e6476..d198f46 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ca10cc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ca10cc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ca10cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ca10cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ca10cc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.msl
index 0edeec9..d8afa22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cad3b7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cad3b7 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cad3b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cad3b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cad3b7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.msl
index de2abf0..3f96199 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cc947b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cc947b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cc947b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cc947b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cc947b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.msl
index 4d501f1..8b882cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cd3033 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cd3033 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cd3033
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cd3033
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cd3033
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.msl
index 3623164..897a716 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.ir.msl
@@ -1,43 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureDimensions_cdc6c9() {
+  var res : vec2<u32> = textureDimensions(arg_0);
+  prevent_dce = res;
 }
 
-%textureDimensions_cdc6c9 = func():void -> %b2 {
-  %b2 = block {
-    %4:texture_external = load %arg_0
-    %5:vec2<u32> = textureDimensions %4
-    %res:ptr<function, vec2<u32>, read_write> = var, %5
-    %7:vec2<u32> = load %res
-    store %prevent_dce, %7
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %textureDimensions_cdc6c9
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %textureDimensions_cdc6c9
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %textureDimensions_cdc6c9
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cdc6c9();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureDimensions_cdc6c9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cdc6c9();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.msl
index d735d96..16fab76 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cedabd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cedabd = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cedabd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cedabd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cedabd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.msl
index 683565c7..850dbd5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cf2b50 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cf2b50 = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cf2b50
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cf2b50
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cf2b50
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.msl
index 45666e4..2766e73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d0778e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d0778e = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d0778e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d0778e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d0778e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.msl
index 69b50c4..2409557 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d08a94 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d08a94 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d08a94
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d08a94
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d08a94
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.msl
index af9946a..01afc41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d1b882 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d1b882 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d1b882
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d1b882
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d1b882
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.msl
index 27fe95a..0d009d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d3accd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d3accd = func():void {
+  $B2: {
     %4:texture_depth_cube = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d3accd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d3accd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d3accd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.msl
index 30118d1..54c3236 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d44ac3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d44ac3 = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d44ac3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d44ac3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d44ac3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.msl
index 364a79d..3bd1f75 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d44dd1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d44dd1 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d44dd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d44dd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d44dd1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.msl
index 4de5cb9..5a40033 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d63c28 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d63c28 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d63c28
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d63c28
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d63c28
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.msl
index 07430fc..3db25b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d6f3cf = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d6f3cf = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d6f3cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d6f3cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d6f3cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.msl
index ec3713d..a06d2a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d8ba68 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d8ba68 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d8ba68
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d8ba68
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d8ba68
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.msl
index 0b33a4c..ae94e9a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d8f887 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d8f887 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d8f887
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d8f887
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d8f887
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.msl
index f6a0b51..39888a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_da30d2 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_da30d2 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_da30d2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_da30d2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_da30d2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.msl
index 8711ebe..5df2122 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_daf0fe = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_daf0fe = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_daf0fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_daf0fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_daf0fe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.msl
index a4a403e..9ad882b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_db7131 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_db7131 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_db7131
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_db7131
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_db7131
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.msl
index 1fc8070..fe3c647 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_dc83ce = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_dc83ce = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_dc83ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_dc83ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_dc83ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.msl
index bde0adc..9078219 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_de03c6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_de03c6 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_de03c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_de03c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_de03c6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.msl
index 6426348..adf6260 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_deb3c0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_deb3c0 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_deb3c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_deb3c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_deb3c0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.msl
index f90b14b..5f041ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_dee461 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_dee461 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_dee461
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_dee461
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_dee461
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.msl
index 631d77b..f91ae8b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_dfdc32 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_dfdc32 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_dfdc32
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_dfdc32
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_dfdc32
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.msl
index 41a608b..9fa70a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e122fe = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e122fe = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e122fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e122fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e122fe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.msl
index ca48cf7..9d9dd71 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e18a8b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e18a8b = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e18a8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e18a8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e18a8b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.msl
index bd02c6d..fb143d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e4bfd2 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e4bfd2 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e4bfd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e4bfd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e4bfd2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.msl
index 2f00f67..dbb3087 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e4e310 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e4e310 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e4e310
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e4e310
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e4e310
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.msl
index cd67d4f..687f5e4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e4f021 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e4f021 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e4f021
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e4f021
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e4f021
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.msl
index f00ed8b..015b749 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e50eb8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e50eb8 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e50eb8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e50eb8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e50eb8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.msl
index b87eaf8..72118bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e5a203 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e5a203 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e5a203
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e5a203
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e5a203
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.msl
index 998f7c6..b50314a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e738f4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e738f4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e738f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e738f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e738f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.msl
index c80e930..f8c1124 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e824b6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e824b6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e824b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e824b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e824b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.msl
index 3fe8d5a..4f612d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e99308 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e99308 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e99308
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e99308
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e99308
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.msl
index fe39c3e..9a38d3b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ea066c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ea066c = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ea066c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ea066c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ea066c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.msl
index e249406..3941694 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ea25bc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ea25bc = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ea25bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ea25bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ea25bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.msl
index 4cb7431..8971c91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eafe19 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eafe19 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1u
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eafe19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eafe19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eafe19
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.msl
index 5491a5a..2f2c4deb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb03b1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb03b1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb03b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb03b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb03b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.msl
index 9935888..009453b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb10d6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb10d6 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb10d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb10d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb10d6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.msl
index c503142..1f20f91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb1249 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb1249 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb1249
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb1249
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb1249
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.msl
index c12ee15..92df375 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb9f4d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb9f4d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb9f4d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb9f4d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb9f4d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.msl
index 9306ad7..74ea7f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ed1030 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ed1030 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ed1030
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ed1030
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ed1030
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.msl
index 6e97d5e..1568ae4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ef2e58 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ef2e58 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ef2e58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ef2e58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ef2e58
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.msl
index 2fe4ca4..3298759 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f17acd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f17acd = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:u32 = textureDimensions %4, 1i
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f17acd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f17acd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f17acd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.msl
index 30fb118..645e567 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f264a3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f264a3 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f264a3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f264a3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f264a3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.msl
index 6b43a8f..6724bae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f3a2ac = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f3a2ac = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f3a2ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f3a2ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f3a2ac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.msl
index c019323..77a9dc8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f406ff = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f406ff = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f406ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f406ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f406ff
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.msl
index 87e3a27..6380af3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f4321c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f4321c = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f4321c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f4321c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f4321c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.msl
index c82f533..3080663 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f48886 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f48886 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f48886
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f48886
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f48886
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.msl
index f21daf5..b5b0589 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f4e469 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f4e469 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f4e469
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f4e469
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f4e469
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.msl
index 35c77f2..157d160 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f55a94 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f55a94 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f55a94
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f55a94
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f55a94
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.msl
index 7de3d5f..f7a92d3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f626b3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f626b3 = func():void {
+  $B2: {
     %4:texture_cube<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f626b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f626b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f626b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.msl
index 77d78f9..fa54e1e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f7bac5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f7bac5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f7bac5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f7bac5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f7bac5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.msl
index 5771f3e..c56b6b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f8522e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f8522e = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f8522e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f8522e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f8522e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.msl
index db60c65..f0c1f58 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f93ece = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f93ece = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f93ece
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f93ece
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f93ece
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.msl
index ae414ed..1b8912c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f94e55 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f94e55 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f94e55
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f94e55
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f94e55
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.msl
index 8aa87ad..2e6dd38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_fbb15a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_fbb15a = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_fbb15a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_fbb15a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_fbb15a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3b9fcc6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_fdbae8 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read> = load %arg_0
+    %5:u32 = textureDimensions %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_fdbae8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_fdbae8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_fdbae8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.msl
index 2a601dd..93f9861 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_fdf6e9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_fdf6e9 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4, 1i
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_fdf6e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_fdf6e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_fdf6e9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.msl
index 6849a25..2de2d4b 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_0166ec = func():void -> %b2 {
-  %b2 = block {
+%textureGather_0166ec = func():void {
+  $B2: {
     %5:texture_cube<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_0166ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_0166ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_0166ec
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.msl
index 93b90dd..357b0d4 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_04fa78 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_04fa78 = func():void {
+  $B2: {
     %5:texture_cube_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_04fa78
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_04fa78
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_04fa78
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.msl
index 6039ad1..55f9b2c 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_10c554 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_10c554 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_10c554
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_10c554
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_10c554
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.msl
index 32f9230..7b59780 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_11b2db = func():void -> %b2 {
-  %b2 = block {
+%textureGather_11b2db = func():void {
+  $B2: {
     %5:texture_cube<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_11b2db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_11b2db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_11b2db
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.msl
index e42a4c5..5aa5c90 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_17baac = func():void -> %b2 {
-  %b2 = block {
+%textureGather_17baac = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_17baac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_17baac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_17baac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.msl
index 73d84b5..b79f2f8 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_1bf0ab = func():void -> %b2 {
-  %b2 = block {
+%textureGather_1bf0ab = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_1bf0ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_1bf0ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_1bf0ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.msl
index 8055520..424dfff 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_1f7f6b = func():void -> %b2 {
-  %b2 = block {
+%textureGather_1f7f6b = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_1f7f6b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_1f7f6b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_1f7f6b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.msl
index 944bb51..a41ac3c 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_22e930 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_22e930 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_22e930
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_22e930
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_22e930
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.msl
index 0db669e..f95859f 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_238ec4 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_238ec4 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_238ec4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_238ec4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_238ec4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.msl
index c87d055..1d089d3 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_24b0bd = func():void -> %b2 {
-  %b2 = block {
+%textureGather_24b0bd = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_24b0bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_24b0bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_24b0bd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.msl
index 31c2076..3b1c41b 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_269250 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_269250 = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_269250
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_269250
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_269250
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.msl
index e223ec5..ef04a44 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_2a4f40 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_2a4f40 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_2a4f40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_2a4f40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_2a4f40
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.msl
index 538738f..1db9960 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_2cc066 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_2cc066 = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_2cc066
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_2cc066
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_2cc066
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.msl
index 56efca4..d18346d 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_2e0ed5 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_2e0ed5 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_2e0ed5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_2e0ed5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_2e0ed5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.msl
index 8a5bab2..705be42 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_32c4e8 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_32c4e8 = func():void {
+  $B2: {
     %5:texture_cube<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_32c4e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_32c4e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_32c4e8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.msl
index d9085be..63f765d 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_3b32cc = func():void -> %b2 {
-  %b2 = block {
+%textureGather_3b32cc = func():void {
+  $B2: {
     %5:texture_cube<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_3b32cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_3b32cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_3b32cc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.msl
index 7a4f5ec..1880cc9 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_43025d = func():void -> %b2 {
-  %b2 = block {
+%textureGather_43025d = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_43025d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_43025d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_43025d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.msl
index f0b729f..1cb1fba 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_445793 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_445793 = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_445793
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_445793
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_445793
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.msl
index 751830b..baca22c 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_49b07f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_49b07f = func():void {
+  $B2: {
     %5:texture_2d<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_49b07f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_49b07f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_49b07f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.msl
index 9a92e54..af27961 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_4b8103 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_4b8103 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_4b8103
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_4b8103
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_4b8103
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.msl
index cb61f79..502b00c 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_4e8ac5 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_4e8ac5 = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_4e8ac5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_4e8ac5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_4e8ac5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.msl
index eb13c08..5d2085b 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_5266da = func():void -> %b2 {
-  %b2 = block {
+%textureGather_5266da = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_5266da
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_5266da
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_5266da
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.msl
index 93de9ee..4d31bc0 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_59372a = func():void -> %b2 {
-  %b2 = block {
+%textureGather_59372a = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_59372a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_59372a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_59372a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.msl
index 867cf34..eb3d1d3 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_5ba85f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_5ba85f = func():void {
+  $B2: {
     %5:texture_cube<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_5ba85f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_5ba85f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_5ba85f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.msl
index 0d402da..222d70b 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_5bd491 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_5bd491 = func():void {
+  $B2: {
     %5:texture_2d<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_5bd491
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_5bd491
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_5bd491
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.msl
index 2ddb552..18f188e 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_6b7b74 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_6b7b74 = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_6b7b74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_6b7b74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_6b7b74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.msl
index 899776a..275c5d1 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_751f8a = func():void -> %b2 {
-  %b2 = block {
+%textureGather_751f8a = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_751f8a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_751f8a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_751f8a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.msl
index b56b9cc..dda5981 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_788010 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_788010 = func():void {
+  $B2: {
     %5:texture_cube_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_788010
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_788010
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_788010
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.msl
index da70c06..c3e2824 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_7c3828 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_7c3828 = func():void {
+  $B2: {
     %5:texture_2d<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_7c3828
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_7c3828
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_7c3828
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.msl
index 56035ce..5536d92 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_7dd226 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_7dd226 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_7dd226
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_7dd226
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_7dd226
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.msl
index ae55caf..8bca05f 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_829357 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_829357 = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_829357
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_829357
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_829357
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.msl
index 1149893..1e1a66f 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_831549 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_831549 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_831549
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_831549
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_831549
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.msl
index 2262934..fb5959d 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_8578bc = func():void -> %b2 {
-  %b2 = block {
+%textureGather_8578bc = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_8578bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_8578bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_8578bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.msl
index 35e7c64..c64f2e5 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_89680f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_89680f = func():void {
+  $B2: {
     %5:texture_cube<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_89680f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_89680f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_89680f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.msl
index ebf30d5..ac1da9b 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_8b754c = func():void -> %b2 {
-  %b2 = block {
+%textureGather_8b754c = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_8b754c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_8b754c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_8b754c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.msl
index 234b3c2..77e2b84 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_8fae00 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_8fae00 = func():void {
+  $B2: {
     %5:texture_2d<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_8fae00
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_8fae00
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_8fae00
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.msl
index 3df611d..8226fc1 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_92ea47 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_92ea47 = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_92ea47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_92ea47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_92ea47
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.msl
index b5993d9..434d6a2 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_986700 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_986700 = func():void {
+  $B2: {
     %5:texture_2d<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_986700
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_986700
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_986700
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.msl
index 67f04e4..d904d0b 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_9a6358 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_9a6358 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_9a6358
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_9a6358
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_9a6358
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.msl
index 84e8e13..00c2afb 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_9ab41e = func():void -> %b2 {
-  %b2 = block {
+%textureGather_9ab41e = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_9ab41e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_9ab41e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_9ab41e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.msl
index f76b601..2d05f68 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_a0372b = func():void -> %b2 {
-  %b2 = block {
+%textureGather_a0372b = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_a0372b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_a0372b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_a0372b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.msl
index 9606f7d..1c005b5 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_a68027 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_a68027 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_a68027
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_a68027
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_a68027
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.msl
index edeb7fd..bd352c7 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_aaf6bd = func():void -> %b2 {
-  %b2 = block {
+%textureGather_aaf6bd = func():void {
+  $B2: {
     %5:texture_cube_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_aaf6bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_aaf6bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_aaf6bd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.msl
index 2bbd6af..baf6eb5 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_af55b3 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_af55b3 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_af55b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_af55b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_af55b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.msl
index c59ba96..1e20fa8 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_bb3ac5 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_bb3ac5 = func():void {
+  $B2: {
     %5:texture_2d<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_bb3ac5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_bb3ac5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_bb3ac5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.msl
index 45ed278..cc62d57 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_bd33b6 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_bd33b6 = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_bd33b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_bd33b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_bd33b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.msl
index cda04ef..82ec8d6 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_be276f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_be276f = func():void {
+  $B2: {
     %5:texture_cube_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_be276f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_be276f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_be276f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.msl
index f0433f3..4632728 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_c0640c = func():void -> %b2 {
-  %b2 = block {
+%textureGather_c0640c = func():void {
+  $B2: {
     %5:texture_cube_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_c0640c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_c0640c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_c0640c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.msl
index a5fc7be..b601e93 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_ccadde = func():void -> %b2 {
-  %b2 = block {
+%textureGather_ccadde = func():void {
+  $B2: {
     %5:texture_2d<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_ccadde
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_ccadde
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_ccadde
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.msl
index 9749031..21a6f2d 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_ce5578 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_ce5578 = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_ce5578
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_ce5578
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_ce5578
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.msl
index f1c53ca..f54f06f 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_cf9112 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_cf9112 = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_cf9112
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_cf9112
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_cf9112
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.msl
index 225b372..f1a227f 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d1f187 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d1f187 = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_d1f187
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_d1f187
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_d1f187
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.msl
index 326d6bc..0f145e1 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d4b5c6 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d4b5c6 = func():void {
+  $B2: {
     %5:texture_cube_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_d4b5c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_d4b5c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_d4b5c6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.msl
index 4cce2e2..1c3d988 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d6507c = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d6507c = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_d6507c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_d6507c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_d6507c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.msl
index b290cae..217a253 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d8e958 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d8e958 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_d8e958
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_d8e958
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_d8e958
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.msl
index 414d148..b8bdbcc 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d90605 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d90605 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureGather %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_d90605
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_d90605
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_d90605
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.msl
index 12c286e..5a30a46 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d98d59 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d98d59 = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_d98d59
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_d98d59
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_d98d59
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.msl
index 9e614d9..6a1c24a 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_dc6661 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_dc6661 = func():void {
+  $B2: {
     %5:texture_2d<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_dc6661
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_dc6661
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_dc6661
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.msl
index 3131743..c5f2013 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_e2acac = func():void -> %b2 {
-  %b2 = block {
+%textureGather_e2acac = func():void {
+  $B2: {
     %5:texture_cube_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_e2acac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_e2acac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_e2acac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.msl
index 3cce8d3..a2fa561 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_e3165f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_e3165f = func():void {
+  $B2: {
     %5:texture_2d_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_e3165f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_e3165f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_e3165f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.msl
index 31d3b99..5e9c142 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_e9d390 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_e9d390 = func():void {
+  $B2: {
     %5:texture_2d_array<i32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<i32> = textureGather 1i, %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_e9d390
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_e9d390
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_e9d390
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.msl
index fbba23c..5923b70 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_ea8eb4 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_ea8eb4 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<f32> = textureGather 1u, %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_ea8eb4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_ea8eb4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_ea8eb4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.msl
index dddb419..6ecf246 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_f2c6e3 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_f2c6e3 = func():void {
+  $B2: {
     %5:texture_cube_array<u32> = load %arg_1
     %6:sampler = load %arg_2
     %7:vec4<u32> = textureGather 1i, %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGather_f2c6e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGather_f2c6e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGather_f2c6e3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.msl
index c155626..63517b7 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_144a9a = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_144a9a = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_144a9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_144a9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_144a9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.msl
index 2dba1a5..b442160 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_182fd4 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_182fd4 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_182fd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_182fd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_182fd4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.msl
index a06e4ac..ffa76b6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_2e409c = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_2e409c = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec3<f32>(1.0f), 1u, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_2e409c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_2e409c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_2e409c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.msl
index 4fa2a5d..1c71372 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_313add = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_313add = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_313add
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_313add
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_313add
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.msl
index c3ce65b..6c5bf4a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_60d2d1 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_60d2d1 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec3<f32>(1.0f), 1i, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_60d2d1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_60d2d1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_60d2d1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.msl
index 184cef9..2c68f64 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_6d9352 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_6d9352 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec2<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_6d9352
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_6d9352
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_6d9352
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.msl
index 0937c22..5da8d82 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_783e65 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_783e65 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec2<f32>(1.0f), 1i, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_783e65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_783e65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_783e65
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.msl
index 6e2db66..26312da 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_b5bc43 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_b5bc43 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec2<f32>(1.0f), 1u, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_b5bc43
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_b5bc43
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_b5bc43
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.msl
index 7fd0360..f5ae344 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_f585cc = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_f585cc = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:vec4<f32> = textureGatherCompare %5, %6, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureGatherCompare_f585cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureGatherCompare_f585cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureGatherCompare_f585cc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.msl
index 9a84c85..36f4d14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_012e11 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_012e11 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_012e11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_012e11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_012e11
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.msl
index e98d510..b0cad39 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_019da0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_019da0 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_019da0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_019da0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_019da0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.msl
index baa4b5f..2941dc7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_01cd01 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_01cd01 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_01cd01
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_01cd01
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_01cd01
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.msl
index dd0d8a7..a88be3d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_026217 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_026217 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_026217
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_026217
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_026217
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.msl
index 56f4896..04e2cff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_02c48d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_02c48d = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_02c48d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_02c48d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_02c48d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.msl
index 436b341..99115d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_02ef1f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_02ef1f = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_02ef1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_02ef1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_02ef1f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.msl
index ca46227..6ac4028 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_03e03e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_03e03e = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_03e03e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_03e03e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_03e03e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.msl
index 94a286f..2187362 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_045ec9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_045ec9 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_045ec9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_045ec9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_045ec9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.msl
index b5f6aa2..a0059d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_04b911 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_04b911 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1i, 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_04b911
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_04b911
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_04b911
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.msl
index 9086ebc..faf0593 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_050c33 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_050c33 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_050c33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_050c33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_050c33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.msl
index b11527f..22c060a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_054350 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_054350 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_054350
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_054350
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_054350
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.msl
index 27295cd..1095e81 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_0674b1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_0674b1 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_0674b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_0674b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_0674b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.msl
index 8d817ff..607b1dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_06ac37 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_06ac37 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_06ac37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_06ac37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_06ac37
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.msl
index aa3defa..459910a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_072e26 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_072e26 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_072e26
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_072e26
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_072e26
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.msl
index a51efa5..889d13f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_078bc4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_078bc4 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_078bc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_078bc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_078bc4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.msl
index abe638a..3a3ac6b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_0b515a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_0b515a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_0b515a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_0b515a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_0b515a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.msl
index 50161c7..0c10bb6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_0cb698 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_0cb698 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_0cb698
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_0cb698
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_0cb698
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.msl
index 0211ac9..13670e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_10db82 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_10db82 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_10db82
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_10db82
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_10db82
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.msl
index 2c04acd..bc88972 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_126466 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_126466 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_126466
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_126466
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_126466
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.msl
index 8bdb6bd..aab4faa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_127e12 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_127e12 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_127e12
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_127e12
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_127e12
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.msl
index 6681d51..eaecec0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1373dc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1373dc = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1373dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1373dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1373dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.msl
index f68a88f..63b1c97 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_13d539 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_13d539 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_13d539
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_13d539
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_13d539
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.msl
index 4aca1cc..89c884a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_13e90c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_13e90c = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_13e90c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_13e90c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_13e90c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.msl
index df4c642..5d90cd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_143d84 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_143d84 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_143d84
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_143d84
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_143d84
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.msl
index bc71973..f3d1126 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1471b8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1471b8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1471b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1471b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1471b8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.msl
index e7eb9a3..fd3831b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_14cc4c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_14cc4c = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_14cc4c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_14cc4c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_14cc4c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.msl
index 6e58a79..1869055 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1561a7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1561a7 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1561a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1561a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1561a7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.msl
index 817c87b..9160919 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_15e675 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_15e675 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_15e675
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_15e675
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_15e675
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.msl
index 31bc400..9049d66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1619bf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1619bf = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1619bf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1619bf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1619bf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.msl
index 85980ef..6595d81 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_168dc8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_168dc8 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_168dc8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_168dc8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_168dc8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.msl
index 27a32ae..77f3d10 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_170593 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_170593 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_170593
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_170593
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_170593
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.msl
index 57c83da..fb4a28d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_17095b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_17095b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_17095b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_17095b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_17095b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.msl
index 03d2314..3ae6e69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_18ac11 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_18ac11 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_18ac11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_18ac11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_18ac11
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.msl
index 03ff7c1..c498cfb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_19cf87 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_19cf87 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_19cf87
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_19cf87
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_19cf87
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.msl
index e474424..0552217 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_19d6be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_19d6be = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_19d6be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_19d6be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_19d6be
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.msl
new file mode 100644
index 0000000..f202122
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_19e5ca = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_19e5ca
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_19e5ca
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_19e5ca
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.msl
index 4f84965..481b6f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1a062f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1a062f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1a062f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1a062f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1a062f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.msl
index 3caf14d..bee8d48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1a8452 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1a8452 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1a8452
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1a8452
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1a8452
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.msl
index 462afbe..49ea59d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1aa950 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1aa950 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1aa950
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1aa950
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1aa950
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.msl
index 59e94bc..35c96bd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1b051f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1b051f = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1b051f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1b051f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1b051f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.msl
index b0c070c..17d3b3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1b4332 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1b4332 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1b4332
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1b4332
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1b4332
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.msl
index 1d6a966..f85fc6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1b8588 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1b8588 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1b8588
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1b8588
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1b8588
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.msl
index 2574d91..666c2d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1bc5ab = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1bc5ab = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1bc5ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1bc5ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1bc5ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.msl
index b88733c..a841470 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.ir.msl
@@ -1,43 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureLoad_1bfdfb() {
+  var res : vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
+  prevent_dce = res;
 }
 
-%textureLoad_1bfdfb = func():void -> %b2 {
-  %b2 = block {
-    %4:texture_external = load %arg_0
-    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
-    %res:ptr<function, vec4<f32>, read_write> = var, %5
-    %7:vec4<f32> = load %res
-    store %prevent_dce, %7
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %textureLoad_1bfdfb
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %textureLoad_1bfdfb
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %textureLoad_1bfdfb
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_1bfdfb();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureLoad_1bfdfb();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureLoad_1bfdfb();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.msl
index 70269d29..84cd7cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1c562a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1c562a = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1c562a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1c562a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1c562a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.msl
index c8a3a5b..2508a9f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1d43ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1d43ae = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1d43ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1d43ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1d43ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.msl
index 3647f87..070c77e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1e6baa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1e6baa = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1e6baa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1e6baa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1e6baa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.msl
index 0f3de80..4a0c613 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1eb93f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1eb93f = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1eb93f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1eb93f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1eb93f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.msl
index 8d35d77..b67950a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1f2016 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1f2016 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_1f2016
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_1f2016
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_1f2016
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.msl
new file mode 100644
index 0000000..431ede4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_1fde63 = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_1fde63
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_1fde63
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_1fde63
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.msl
index 0efff32..32d6780 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_206a08 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_206a08 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_206a08
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_206a08
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_206a08
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.msl
index 80ea7ea..01b255f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_20fa2f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_20fa2f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_20fa2f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_20fa2f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_20fa2f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.msl
index c251a91..b219cde 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_216c37 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_216c37 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_216c37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_216c37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_216c37
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.msl
index b9956b1..5107816 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_21d1c4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_21d1c4 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_21d1c4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_21d1c4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_21d1c4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.msl
index 886e4fb..dd111f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_223246 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_223246 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_223246
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_223246
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_223246
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.msl
index f8cdc45..84e4e09 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_22e963 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_22e963 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_22e963
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_22e963
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_22e963
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.msl
index 74d01e7..9e0d063 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_23007a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_23007a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_23007a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_23007a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_23007a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.msl
index aed9b84..7948136 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2363be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2363be = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2363be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2363be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2363be
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.msl
index 95a1fbd..4df3e00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_23ff89 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_23ff89 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_23ff89
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_23ff89
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_23ff89
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.msl
index 719d276..ff7f308 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_25b67f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_25b67f = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_25b67f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_25b67f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_25b67f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.msl
index c8af7c4..248fbd9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_26b8f6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_26b8f6 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_26b8f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_26b8f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_26b8f6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.msl
index 0958e1a..f1d12a2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_26c4f8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_26c4f8 = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_26c4f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_26c4f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_26c4f8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.msl
index 01aa255..36e390d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_26d7f1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_26d7f1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_26d7f1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_26d7f1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_26d7f1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.msl
index 7f725f5..07de33b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_272e7a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_272e7a = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_272e7a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_272e7a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_272e7a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.msl
new file mode 100644
index 0000000..19bad9b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_276643 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_276643
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_276643
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_276643
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.msl
index 72904e4..13613ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_276a2c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_276a2c = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_276a2c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_276a2c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_276a2c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.msl
index b29916f..2dee8b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2887d7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2887d7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2887d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2887d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2887d7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.msl
index afd8eb5..2d292db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2a82d9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2a82d9 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2a82d9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2a82d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2a82d9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.msl
index f0034a2..053cf2f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2ae485 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2ae485 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2ae485
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2ae485
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2ae485
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.msl
index cb198a0..4766a7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2c72ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2c72ae = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2c72ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2c72ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2c72ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.msl
index 27b05df..a27bde7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2cee30 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2cee30 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2cee30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2cee30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2cee30
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.msl
index 979e684..c7bfad3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2d479c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2d479c = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2d479c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2d479c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2d479c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.msl
index 0607e90..c086cd6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2d6cf7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2d6cf7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2d6cf7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2d6cf7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2d6cf7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.msl
index 09623a7..53cc48e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2dbfc2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2dbfc2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2dbfc2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2dbfc2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2dbfc2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.msl
index 75fb620..14bf31e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2e09aa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2e09aa = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2e09aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2e09aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2e09aa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.msl
index 3b5f868..a0e4ba0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2e3552 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2e3552 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2e3552
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2e3552
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2e3552
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.msl
index 7b3fa20..acfbd6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2eaf31 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2eaf31 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_2eaf31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_2eaf31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_2eaf31
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.msl
index 3ef2104..808e09c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_313c73 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_313c73 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_313c73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_313c73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_313c73
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.msl
index 1a0ec84..7c5de66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_31db4b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_31db4b = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_31db4b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_31db4b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_31db4b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.msl
index cd92bfa..99cdb07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_321210 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_321210 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_321210
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_321210
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_321210
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.msl
index 18a4f0f..5862e3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_32a7b8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_32a7b8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_32a7b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_32a7b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_32a7b8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.msl
index 9aeb2ce..bb59bec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_33d3aa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_33d3aa = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_33d3aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_33d3aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_33d3aa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.msl
index dac976d..3c5c63b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_348827 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_348827 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_348827
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_348827
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_348827
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.msl
index 9fe2308..57a2154 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_34d97c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_34d97c = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_34d97c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_34d97c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_34d97c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0cb056c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_35a5e2 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, 1i
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_35a5e2
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_35a5e2
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_35a5e2
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.msl
new file mode 100644
index 0000000..51e6d05
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_35d464 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_35d464
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_35d464
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_35d464
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.msl
index 0d29089..269ad4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_374351 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_374351 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_374351
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_374351
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_374351
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.msl
index 7dca7b5..4032148 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_388688 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_388688 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_388688
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_388688
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_388688
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.msl
index 83b4f2d..5c378ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_38f8ab = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_38f8ab = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_38f8ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_38f8ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_38f8ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.msl
index 5e0fa37..95a5676 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_39016c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_39016c = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_39016c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_39016c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_39016c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.msl
index 9ec5d41..e290aaa4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_395447 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_395447 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_395447
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_395447
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_395447
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.msl
index 770901e..d53f2c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_39ef40 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_39ef40 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_39ef40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_39ef40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_39ef40
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.msl
index 98d9273..b768de9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3a2350 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3a2350 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3a2350
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3a2350
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3a2350
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.msl
index 3b1d90e..a7591e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3aea13 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3aea13 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3aea13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3aea13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3aea13
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.msl
index 9845b56..6546e9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3bbc2b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3bbc2b = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3bbc2b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3bbc2b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3bbc2b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.msl
index 821d5af..89b2c0b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3c0d9e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3c0d9e = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3c0d9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3c0d9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3c0d9e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.msl
index 43a9043..722851c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3c9587 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3c9587 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3c9587
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3c9587
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3c9587
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.msl
index 77e95fa..622fddd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3c96e8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3c96e8 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3c96e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3c96e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3c96e8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.msl
index 7c24b4b..ad554c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3cfb9c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3cfb9c = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3cfb9c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3cfb9c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3cfb9c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.msl
index 1f55ea2..66e2708 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3d001b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3d001b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3d001b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3d001b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3d001b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.msl
index cfea600..809bc48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3d3fd1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3d3fd1 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3d3fd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3d3fd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3d3fd1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.msl
index a4f2581..d62f3d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3d9c90 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3d9c90 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3d9c90
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3d9c90
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3d9c90
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.msl
index 504f918..e4ac3ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3da3ed = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3da3ed = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3da3ed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3da3ed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3da3ed
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0a9215c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_3e16a8 = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_3e16a8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_3e16a8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_3e16a8
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.msl
index df73283..fa4b726 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3e5f6a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3e5f6a = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_3e5f6a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_3e5f6a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_3e5f6a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.msl
index 5b1157a..88f39bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_40ee8b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_40ee8b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_40ee8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_40ee8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_40ee8b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.msl
index 32890a9..337caa4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4212a1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4212a1 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4212a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4212a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4212a1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.msl
index 34501bd..79a8d0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_424afd = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_424afd = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_424afd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_424afd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_424afd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.msl
index 6d45457..2cb44a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_42a631 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_42a631 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_42a631
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_42a631
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_42a631
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.msl
index 88b36ec..686c9d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_43484a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_43484a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_43484a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_43484a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_43484a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.msl
index 2f59e1f..5666880 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_439e2a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_439e2a = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_439e2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_439e2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_439e2a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.msl
index 82e9a84..4e1eee8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_43cd86 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_43cd86 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_43cd86
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_43cd86
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_43cd86
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.msl
index a10fc8e..40b8325 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_44c826 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_44c826 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_44c826
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_44c826
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_44c826
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.msl
index f7fa71f..c2dbf78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4542ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4542ae = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4542ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4542ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4542ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.msl
index 1812709..068ebf9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_454347 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_454347 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_454347
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_454347
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_454347
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.msl
index 6b09316..167dfda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4638a0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4638a0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4638a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4638a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4638a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.msl
index 52731a0..d257383 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_469912 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_469912 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_469912
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_469912
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_469912
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.msl
index 97307eb..9cbc5cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_46a93f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_46a93f = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_46a93f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_46a93f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_46a93f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.msl
index 28f3305..264ed48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_46dbf5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_46dbf5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_46dbf5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_46dbf5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_46dbf5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.msl
index 1a23dc3..a719930 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_473d3e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_473d3e = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_473d3e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_473d3e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_473d3e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.msl
index 17d66ed..7228c4b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_47e818 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_47e818 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_47e818
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_47e818
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_47e818
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.msl
index f3b64e0..87b0bc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_482627 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_482627 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_482627
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_482627
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_482627
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.msl
index 29b827d..df4aedd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_484344 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_484344 = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_484344
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_484344
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_484344
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.msl
new file mode 100644
index 0000000..34d23a1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_4951bb = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_4951bb
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_4951bb
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_4951bb
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.msl
index e9e8b4e..c22805d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_49f76f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_49f76f = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_49f76f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_49f76f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_49f76f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.msl
index b97e5b4..78f317f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4a5c55 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4a5c55 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4a5c55
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4a5c55
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4a5c55
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.msl
index 4ceab3e..55b2f42 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4acb64 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4acb64 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4acb64
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4acb64
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4acb64
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.msl
index d2c3288..affca29 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c15b2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c15b2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4c15b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4c15b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4c15b2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.msl
index 04dfd28..04f2f00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c1a1e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c1a1e = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4c1a1e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4c1a1e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4c1a1e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.msl
index 82cdb48..828593d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c423f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c423f = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4c423f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4c423f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4c423f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.msl
index 7158bd4..405a5b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c67be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c67be = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4c67be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4c67be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4c67be
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.msl
index 5fa1e17..7e0d8b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4ccf9a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4ccf9a = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4ccf9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4ccf9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4ccf9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.msl
index d50c278..9d564ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4cdca5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4cdca5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4cdca5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4cdca5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4cdca5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.msl
index 62ee79d..483bc80 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4db25c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4db25c = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4db25c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4db25c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4db25c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.msl
index c973c0a..2da6a58 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4e2c5c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4e2c5c = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4e2c5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4e2c5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4e2c5c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.msl
index 5fd7141..68f8866 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4f5496 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4f5496 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4f5496
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4f5496
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4f5496
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.msl
index 4e402b7..edede64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4f90bb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4f90bb = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4f90bb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4f90bb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4f90bb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.msl
index 66a6eca..35779be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4fa6ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4fa6ae = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4fa6ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4fa6ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4fa6ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.msl
index 04e2911..f25271d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4fd803 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4fd803 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_4fd803
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_4fd803
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_4fd803
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.msl
index c907289..6342e69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_505aa2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_505aa2 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_505aa2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_505aa2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_505aa2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.msl
index bf02d58..5540f51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_50915c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_50915c = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_50915c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_50915c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_50915c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.msl
index 371b590..5878178 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5154e1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5154e1 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5154e1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5154e1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5154e1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.msl
index 38daaa0..380c0dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_519ab5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_519ab5 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_519ab5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_519ab5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_519ab5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.msl
index 31ef95d..6d87cb6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_53378a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_53378a = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_53378a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_53378a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_53378a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.msl
index 205c1b5..b621f87 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_53941c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_53941c = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_53941c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_53941c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_53941c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.msl
index b3c3574..3895c337 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_53e142 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_53e142 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_53e142
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_53e142
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_53e142
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.msl
index 4694795..beb958a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_54a59b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_54a59b = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_54a59b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_54a59b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_54a59b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.msl
index cbedfd5..c1c2618 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_54e0ce = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_54e0ce = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_54e0ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_54e0ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_54e0ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.msl
index 5845938..c5edd80 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_54fb38 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_54fb38 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_54fb38
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_54fb38
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_54fb38
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.msl
index 63a270c..2030c91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_55e745 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_55e745 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_55e745
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_55e745
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_55e745
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.msl
index de7e09f..e9b19e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_560573 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_560573 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_560573
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_560573
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_560573
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.msl
index 871f335..deb7dc4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_56a000 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_56a000 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_56a000
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_56a000
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_56a000
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.msl
index a557083..332c9bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_582015 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_582015 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_582015
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_582015
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_582015
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.msl
index 0ea352b..5a51603 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_589eaa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_589eaa = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_589eaa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_589eaa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_589eaa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.msl
index ec32baa..d8265ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5a2f9d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5a2f9d = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5a2f9d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5a2f9d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5a2f9d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.msl
index 6ec1117..eb42d17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5abbf2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5abbf2 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5abbf2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5abbf2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5abbf2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.msl
index 1e18c3f..40c3fcf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5b0f5b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5b0f5b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5b0f5b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5b0f5b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5b0f5b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.msl
index b67bd9d..660229d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5b4947 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5b4947 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5b4947
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5b4947
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5b4947
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.msl
index 6e8235e..ad4b629 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5bb7fb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5bb7fb = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5bb7fb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5bb7fb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5bb7fb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.msl
index a99da6b..f3b127a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5c69f8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5c69f8 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5c69f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5c69f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5c69f8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.msl
index 2631d2d..f99e355 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5cd3fc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5cd3fc = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5cd3fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5cd3fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5cd3fc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.msl
index 2f57579..0b34c99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5cee3b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5cee3b = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5cee3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5cee3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5cee3b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.msl
index 3e7559c..12dfe1a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5d0a2f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5d0a2f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5d0a2f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5d0a2f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5d0a2f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.msl
index f6130dd..802bf66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5d4042 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5d4042 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5d4042
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5d4042
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5d4042
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7beae48
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_5dd4c7 = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_5dd4c7
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_5dd4c7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_5dd4c7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.msl
index 2f87f71..07196d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5e17a7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5e17a7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5e17a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5e17a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5e17a7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.msl
index 0062014..a7cb53e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5e1843 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5e1843 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5e1843
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5e1843
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5e1843
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.msl
index 2162824..26dd53e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5e8d3f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5e8d3f = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5e8d3f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5e8d3f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5e8d3f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c7837c2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_5ed6ad = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_5ed6ad
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_5ed6ad
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_5ed6ad
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.msl
index 5a54772..a60d3d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5f4473 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5f4473 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5f4473
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5f4473
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5f4473
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.msl
index c545ff9..3c073dcc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5feb4d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5feb4d = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_5feb4d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_5feb4d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_5feb4d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.msl
index c74976a..aad49a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6154d4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6154d4 = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6154d4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6154d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6154d4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.msl
index c0fa36b..e537c69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_61e2e8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_61e2e8 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_61e2e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_61e2e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_61e2e8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.msl
index b66d99f..4066e62 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_620caa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_620caa = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_620caa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_620caa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_620caa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.msl
index 8e83dde..63b010e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_622278 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_622278 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_622278
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_622278
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_622278
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.msl
index 02b9751..1b025a5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6273b1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6273b1 = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6273b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6273b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6273b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.msl
index 16b7fc6..329824a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_62d125 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_62d125 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_62d125
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_62d125
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_62d125
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.msl
index 615c7fa..1361258 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_62d1de = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_62d1de = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_62d1de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_62d1de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_62d1de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.msl
index ac5f78f..b8f31f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_639962 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_639962 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_639962
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_639962
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_639962
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.msl
index 5b1a2dc..1a84876 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_63be18 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_63be18 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_63be18
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_63be18
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_63be18
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.msl
index 5c6c32b..5fcc2b13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_64c372 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_64c372 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_64c372
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_64c372
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_64c372
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.msl
index 08d79a9..d48aa3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_656d76 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_656d76 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_656d76
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_656d76
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_656d76
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.msl
index c378756..3870e28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_65a4d0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_65a4d0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_65a4d0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_65a4d0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_65a4d0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.msl
index 025a6bc..9b1ca6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_666010 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_666010 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_666010
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_666010
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_666010
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.msl
index dc14945..97f1ec6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6678b6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6678b6 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6678b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6678b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6678b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.msl
index 3984f8a..ebca3b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_66be47 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_66be47 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1u, 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_66be47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_66be47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_66be47
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.msl
index 5e75fe5..7510956 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_67d826 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_67d826 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_67d826
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_67d826
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_67d826
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.msl
index 7db1efd..3c31810 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_67edca = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_67edca = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_67edca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_67edca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_67edca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.msl
index 213622f..f780015 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_68d273 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_68d273 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_68d273
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_68d273
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_68d273
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.msl
index 1c15a6f..88e55e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6925bc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6925bc = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6925bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6925bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6925bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.msl
index c72c61d..b534d2f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_69fee5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_69fee5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_69fee5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_69fee5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_69fee5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.msl
index b18269a..c279818 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6a6871 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6a6871 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6a6871
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6a6871
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6a6871
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.msl
index 7df4cfd..0e781b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6b77d4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6b77d4 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6b77d4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6b77d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6b77d4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.msl
index c0c17f2..9c44ee2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6b8ba6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6b8ba6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6b8ba6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6b8ba6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6b8ba6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.msl
index bfaadf8..523b21b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6ba9ab = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6ba9ab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6ba9ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6ba9ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6ba9ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.msl
index d70268b..2824e8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6bf3e2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6bf3e2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6bf3e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6bf3e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6bf3e2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.msl
index 88d00b2..8faaca7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6bf4b7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6bf4b7 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6bf4b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6bf4b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6bf4b7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.msl
index e463c9e..f61bed4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6d1fb4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6d1fb4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6d1fb4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6d1fb4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6d1fb4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.msl
index 7ff4aa9..aac0511 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6d376a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6d376a = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6d376a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6d376a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6d376a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.msl
index 3e97e35..a608662 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6d7bb5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6d7bb5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6d7bb5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6d7bb5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6d7bb5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.msl
index 0084c8a..21c12b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6e903f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6e903f = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6e903f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6e903f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6e903f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.msl
new file mode 100644
index 0000000..cf44be0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_6f0370 = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_6f0370
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_6f0370
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_6f0370
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.msl
index 9015bd7..8e534af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6f0ea8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6f0ea8 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6f0ea8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6f0ea8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6f0ea8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.msl
index 3688e2c..220391c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6f1750 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6f1750 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6f1750
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6f1750
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6f1750
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.msl
index d579817..55c08e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6f8927 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6f8927 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_6f8927
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_6f8927
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_6f8927
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.msl
index a97631b..bc6ca20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_714471 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_714471 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_714471
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_714471
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_714471
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.msl
index 66267b6..a6a770f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_72bb3c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_72bb3c = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_72bb3c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_72bb3c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_72bb3c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.msl
new file mode 100644
index 0000000..50edd72
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_72c9c3 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_72c9c3
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_72c9c3
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_72c9c3
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.msl
index 33d6b7d..3c3360b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_742f1b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_742f1b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_742f1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_742f1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_742f1b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.msl
index dcc92a3..fd9e305 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_749704 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_749704 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_749704
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_749704
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_749704
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.msl
index 6bd86e3..38ab8bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_74a387 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_74a387 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_74a387
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_74a387
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_74a387
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.msl
index 4a5383f..9d839ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_773c46 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_773c46 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_773c46
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_773c46
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_773c46
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.msl
index 1f7acd5..0ee1502 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_789045 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_789045 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_789045
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_789045
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_789045
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.msl
index 8bc2c31..b79d9be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_79e697 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_79e697 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_79e697
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_79e697
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_79e697
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.msl
index 8414ed1..f8937af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7ab4df = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7ab4df = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7ab4df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7ab4df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7ab4df
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.msl
index c0554cd..24d1510 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7b63e0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7b63e0 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1u, 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7b63e0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7b63e0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7b63e0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.msl
index e4851a6..ce5659f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7bee94 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7bee94 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7bee94
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7bee94
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7bee94
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.msl
index c90e5d1..593dcd7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7c90e5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7c90e5 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7c90e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7c90e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7c90e5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.msl
index 646be13..c5f9219 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7dab57 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7dab57 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7dab57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7dab57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7dab57
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5c5568f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_7dd3d5 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_7dd3d5
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_7dd3d5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_7dd3d5
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.msl
index db92a3d..541d482 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7e5cbc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7e5cbc = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7e5cbc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7e5cbc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7e5cbc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.msl
index d28b080..876fe08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7fd822 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7fd822 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_7fd822
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_7fd822
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_7fd822
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.msl
index 6fb7fdd..67877ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_80dae1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_80dae1 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_80dae1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_80dae1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_80dae1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.msl
index aa9279d..a87e262 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_81c381 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_81c381 = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_81c381
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_81c381
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_81c381
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.msl
index 7cf74b0..e127d71 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_83162f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_83162f = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_83162f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_83162f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_83162f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.msl
index 2ca72b4..36201f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_83cea4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_83cea4 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_83cea4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_83cea4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_83cea4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.msl
index 5a63978..8b7e0e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_83d6e3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_83d6e3 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_83d6e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_83d6e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_83d6e3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.msl
index 517d61e..086dc08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_848d85 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_848d85 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_848d85
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_848d85
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_848d85
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.msl
index 948d86b..93fe4ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_84a438 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_84a438 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_84a438
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_84a438
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_84a438
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.msl
index 529a2a9..8d30b75 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_84c728 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_84c728 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_84c728
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_84c728
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_84c728
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.msl
index 1d6031f..86adac7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_84dee1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_84dee1 = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_84dee1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_84dee1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_84dee1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.msl
index f5c610b..d130d1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8527b1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8527b1 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8527b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8527b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8527b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.msl
index 9dfbed2..d6b1eaa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_862833 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_862833 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_862833
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_862833
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_862833
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.msl
index 3baa88b..a158444 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_878e24 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_878e24 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_878e24
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_878e24
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_878e24
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.msl
index 3c81419..a798143 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_87be85 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_87be85 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_87be85
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_87be85
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_87be85
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.msl
index 778bad7..5316b0c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_87f0a6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_87f0a6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_87f0a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_87f0a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_87f0a6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.msl
index a078400..6cd5b21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_881349 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_881349 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_881349
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_881349
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_881349
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.msl
index e497a4e..b1d0924 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_89620b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_89620b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_89620b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_89620b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_89620b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.msl
index 84fb1ae..ec0358a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_897cf3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_897cf3 = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_897cf3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_897cf3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_897cf3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.msl
index 1079603..f38e79a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8a291b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8a291b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8a291b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8a291b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8a291b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.msl
index dc8bce5..f9d5e8d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8a9988 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8a9988 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8a9988
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8a9988
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8a9988
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.msl
index ca37f21..56a26d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.ir.msl
@@ -1,43 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureLoad_8acf41() {
+  var res : vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
+  prevent_dce = res;
 }
 
-%textureLoad_8acf41 = func():void -> %b2 {
-  %b2 = block {
-    %4:texture_external = load %arg_0
-    %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
-    %res:ptr<function, vec4<f32>, read_write> = var, %5
-    %7:vec4<f32> = load %res
-    store %prevent_dce, %7
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %textureLoad_8acf41
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %textureLoad_8acf41
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %textureLoad_8acf41
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_8acf41();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureLoad_8acf41();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureLoad_8acf41();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.msl
index 3ede8bb..339de64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8b62fb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8b62fb = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8b62fb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8b62fb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8b62fb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.msl
index cf611cb..24acecf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8bf8c2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8bf8c2 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8bf8c2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8bf8c2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8bf8c2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.msl
index e090e92..f807ae2c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8c6176 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8c6176 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8c6176
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8c6176
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8c6176
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.msl
index d48ea45..dacc21b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8ccbe3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8ccbe3 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8ccbe3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8ccbe3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8ccbe3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.msl
index 3cc0bf9..36150fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8d64c3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8d64c3 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8d64c3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8d64c3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8d64c3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.msl
index 51037e8..d0f057b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8db0ce = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8db0ce = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8db0ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8db0ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8db0ce
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.msl
index ab3caa8..7efd290 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8e5032 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8e5032 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8e5032
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8e5032
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8e5032
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.msl
index 6ff4674..e217833 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8e68c9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8e68c9 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8e68c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8e68c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8e68c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.msl
index e1df6b9..93197bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8fc29b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8fc29b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8fc29b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8fc29b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8fc29b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.msl
index b801e90..c3131d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8ff033 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8ff033 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_8ff033
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_8ff033
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_8ff033
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.msl
index 4de7ffe..8da8dfa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_91ede5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_91ede5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_91ede5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_91ede5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_91ede5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.msl
index 40519db..22fe693 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9242e7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9242e7 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9242e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9242e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9242e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fbfd174
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_92dd61 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_92dd61
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_92dd61
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_92dd61
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.msl
index 93655fd..ff44fb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_92eb1f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_92eb1f = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_92eb1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_92eb1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_92eb1f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.msl
index 3e562aa..786e875 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_936952 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_936952 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_936952
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_936952
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_936952
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.msl
index 3264bc6..35abf55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_93f23e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_93f23e = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_93f23e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_93f23e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_93f23e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.msl
new file mode 100644
index 0000000..27ac0dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_947107 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, 1i
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_947107
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_947107
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_947107
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.msl
index 2c37b36..aa022c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_96efd5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_96efd5 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_96efd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_96efd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_96efd5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.msl
index e0a7cbb..2f78a21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_970308 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_970308 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_970308
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_970308
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_970308
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.msl
index 7fcf783..bc2b583 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9885b0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9885b0 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9885b0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9885b0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9885b0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5951782
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_99d8fa = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_99d8fa
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_99d8fa
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_99d8fa
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.msl
index fb061f9..9264fe3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9a7c90 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9a7c90 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9a7c90
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9a7c90
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9a7c90
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.msl
index 30a4999..d3c972e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9a8c1e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9a8c1e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9a8c1e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9a8c1e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9a8c1e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.msl
index e3b25d7..b685bdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9aa733 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9aa733 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9aa733
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9aa733
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9aa733
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.msl
index 9c73897..657f962 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9b2667 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9b2667 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1i, 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9b2667
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9b2667
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9b2667
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.msl
index 824a28f..a958fdc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9b5343 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9b5343 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9b5343
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9b5343
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9b5343
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.msl
index 680025b..8923e9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9c2376 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9c2376 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9c2376
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9c2376
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9c2376
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.msl
index 54c47fa..dbc0a91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9c2a14 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9c2a14 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9c2a14
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9c2a14
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9c2a14
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.msl
index 90518cf..7a3f1e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9cf7df = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9cf7df = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9cf7df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9cf7df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9cf7df
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.msl
index 8b9bdd3..d651c3a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9d70e9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9d70e9 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9d70e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9d70e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9d70e9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.msl
index aa6aa0a..7e8b8dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9de6f5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9de6f5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9de6f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9de6f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9de6f5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.msl
index 4618590..e49047c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9ed19e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9ed19e = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9ed19e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9ed19e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9ed19e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.msl
index c9082cd..66712a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9fa9fd = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9fa9fd = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9fa9fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9fa9fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9fa9fd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.msl
index a4ebe9c..7656b0e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9fbfd9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9fbfd9 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9fbfd9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9fbfd9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9fbfd9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.msl
index d1e6db0..d26ea73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9fd7be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9fd7be = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_9fd7be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_9fd7be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_9fd7be
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.msl
index ea71403..06b4078 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a03af1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a03af1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a03af1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a03af1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a03af1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.msl
index 8e05c90..a9abec1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a24be1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a24be1 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a24be1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a24be1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a24be1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.msl
index a7e7924..e9e3672 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a2b3f4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a2b3f4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a2b3f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a2b3f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a2b3f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.msl
index ca5221c..f35cbc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a3733f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a3733f = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a3733f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a3733f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a3733f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.msl
index 050e40d..99edb67 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a3f122 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a3f122 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a3f122
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a3f122
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a3f122
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.msl
index 4e592ea..1c28420 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a548a8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a548a8 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a548a8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a548a8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a548a8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.msl
index 5522638..1f6a241 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a54e11 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a54e11 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a54e11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a54e11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a54e11
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.msl
index 509b6bb..c4a1a40 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a583c9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a583c9 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a583c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a583c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a583c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.msl
index 499fdf4..6f5519e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a5c4e2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a5c4e2 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a5c4e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a5c4e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a5c4e2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.msl
index 54a02d9..b563f06 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a5e0a5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a5e0a5 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a5e0a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a5e0a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a5e0a5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.msl
index 655f5d4..5a6a2c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a64b1d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a64b1d = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a64b1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a64b1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a64b1d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.msl
index 58c8d2c..d3bde8f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a6a85a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a6a85a = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a6a85a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a6a85a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a6a85a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.msl
index 0284deb..39cdf2e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a6b61d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a6b61d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a6b61d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a6b61d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a6b61d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.msl
index 00726a7..aa24f88 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7444c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7444c = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a7444c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a7444c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a7444c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.msl
index af77ada..3631495 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7a3c3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7a3c3 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a7a3c3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a7a3c3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a7a3c3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.msl
index 854e568..83bffa6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7bcb4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7bcb4 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a7bcb4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a7bcb4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a7bcb4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.msl
index c08e96b..dfa6eb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7c171 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7c171 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a7c171
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a7c171
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a7c171
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.msl
index c0a987a..75d08d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a8549b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a8549b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a8549b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a8549b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a8549b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.msl
index 0d1b7f2..2ac9a5a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a92b18 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a92b18 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a92b18
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a92b18
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a92b18
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.msl
index 069b02a..766cb3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a9a9f5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a9a9f5 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_a9a9f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_a9a9f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_a9a9f5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.msl
index 63816df..94fc625 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aa2579 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aa2579 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aa2579
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aa2579
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aa2579
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.msl
index cf6dbc9..8e4ea28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aa6130 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aa6130 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aa6130
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aa6130
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aa6130
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.msl
index 1525be1..32ac8c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aa8a0d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aa8a0d = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aa8a0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aa8a0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aa8a0d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.msl
index ab9a002..af86248 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aae7f6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aae7f6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aae7f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aae7f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aae7f6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.msl
index 283afee..9cf8d46 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aae9c3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aae9c3 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aae9c3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aae9c3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aae9c3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.msl
index 42b9fc0..919dbfa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ac64f7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ac64f7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ac64f7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ac64f7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ac64f7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.msl
index 5956b36..ac0613e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_acf22f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_acf22f = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_acf22f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_acf22f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_acf22f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.msl
index acd331a..5a66c2f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ad551e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ad551e = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ad551e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ad551e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ad551e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.msl
index 8285ddd..3b74ba0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aeae73 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aeae73 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aeae73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aeae73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aeae73
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.msl
index f4c6d9e..93d9359 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aebc09 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aebc09 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_aebc09
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_aebc09
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_aebc09
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.msl
index 7f3ecbf..f36566f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_af0507 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_af0507 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_af0507
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_af0507
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_af0507
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.msl
index a4ad418..f6788af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b1bf79 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b1bf79 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b1bf79
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b1bf79
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b1bf79
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.msl
index 22047d0..ce65533 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b1ca35 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b1ca35 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b1ca35
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b1ca35
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b1ca35
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.msl
index e0c1568..d522e90 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b24d27 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b24d27 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b24d27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b24d27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b24d27
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.msl
index 0652e83..8901c34 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b25644 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b25644 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b25644
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b25644
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b25644
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.msl
index 2e67e8a..1a4af67 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b27c33 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b27c33 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b27c33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b27c33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b27c33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.msl
index 1951b4e..b37a726 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b29f71 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b29f71 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b29f71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b29f71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b29f71
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.msl
index a3ea9aa..f2cf4e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b4d6c4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b4d6c4 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b4d6c4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b4d6c4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b4d6c4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.msl
index 537397e..21a0f23 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b58c6d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b58c6d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b58c6d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b58c6d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b58c6d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.msl
index a919246..2cb0a28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b60a86 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b60a86 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b60a86
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b60a86
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b60a86
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.msl
index 1750607..0ca1b7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b60db7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b60db7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b60db7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b60db7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b60db7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.msl
index c8914a0..9c59788 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b6ba5d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b6ba5d = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1i, 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b6ba5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b6ba5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b6ba5d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.msl
index a5f8605..b32f44f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b6c458 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b6c458 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b6c458
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b6c458
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b6c458
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.msl
index a2ee627..b076e89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b73f6b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b73f6b = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b73f6b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b73f6b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b73f6b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.msl
index 72ce08e..5bc056f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b75c8f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b75c8f = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b75c8f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b75c8f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b75c8f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.msl
index b5b664e..c584e6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b75d4a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b75d4a = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b75d4a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b75d4a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b75d4a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.msl
index 832de8e..19d4723 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b7f74f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b7f74f = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b7f74f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b7f74f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b7f74f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.msl
index 7d38b64..4a8333f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b80e7e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b80e7e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b80e7e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b80e7e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b80e7e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.msl
index 02445ec..bc22772 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b94d15 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b94d15 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_b94d15
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_b94d15
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_b94d15
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.msl
index 904d1a7..5950a6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ba023a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ba023a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ba023a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ba023a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ba023a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.msl
index ca50c00..e7ce55e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ba74b2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ba74b2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ba74b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ba74b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ba74b2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.msl
index 7bd8397..156a9d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_babdf3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_babdf3 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_babdf3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_babdf3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_babdf3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.msl
index 0940ee8..8b29a93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bba04a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bba04a = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bba04a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bba04a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bba04a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.msl
index 0bbe53b..baccd6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bbb762 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bbb762 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bbb762
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bbb762
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bbb762
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.msl
index e50a1d6..7ef0b47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bc3201 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bc3201 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1u, 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bc3201
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bc3201
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bc3201
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..cd77fce
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_bc882d = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_bc882d
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_bc882d
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_bc882d
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.msl
index abc6e6f..1722046 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bcbb3c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bcbb3c = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bcbb3c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bcbb3c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bcbb3c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.msl
index 9ad98b2..d6b8e19 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bd990a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bd990a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bd990a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bd990a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bd990a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.msl
index c2cfd44..5d78ff3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bdc67a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bdc67a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bdc67a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bdc67a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bdc67a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.msl
index be3e299..a70e5f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bfd154 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bfd154 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_bfd154
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_bfd154
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_bfd154
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.msl
index 2d6ed2f..9af0807 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c02b74 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c02b74 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c02b74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c02b74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c02b74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.msl
index 68e2d75..2c98c0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c07013 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c07013 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c07013
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c07013
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c07013
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.msl
index 05c0b9d..a74b48f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c16e00 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c16e00 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1u, 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c16e00
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c16e00
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c16e00
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.msl
index 8566c7b..7d9bc5d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c21b33 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c21b33 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c21b33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c21b33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c21b33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.msl
index 3a6b9b4..ec2db07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c2a480 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c2a480 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c2a480
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c2a480
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c2a480
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.msl
index 2183cf7..fac51c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c2d09a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c2d09a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c2d09a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c2d09a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c2d09a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.msl
index aff1851..64b7702 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c378ee = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c378ee = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c378ee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c378ee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c378ee
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.msl
index da744b65..925d054 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c40dcb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c40dcb = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c40dcb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c40dcb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c40dcb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.msl
index deadade..8f1a849 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c456bc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c456bc = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c456bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c456bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c456bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.msl
index 54769ae..b6008ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c5791b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c5791b = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c5791b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c5791b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c5791b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.msl
index f600e75..8dd64a1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c5c86d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c5c86d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c5c86d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c5c86d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c5c86d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.msl
index 8bd25bb..36aed4b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c66b20 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c66b20 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c66b20
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c66b20
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c66b20
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.msl
index 25e81f7..80ae590 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c7cbed = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c7cbed = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c7cbed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c7cbed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c7cbed
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.msl
index c3d0059..d3bace1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c7e313 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c7e313 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c7e313
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c7e313
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c7e313
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.msl
index 7714f72..78b79c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c80691 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c80691 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c80691
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c80691
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c80691
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.msl
index 7f56c77..812efdd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c8ed19 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c8ed19 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c8ed19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c8ed19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c8ed19
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.msl
index 112675c..883e014 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c98bf4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c98bf4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c98bf4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c98bf4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c98bf4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.msl
index 37e252f..e65dae8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c9b083 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c9b083 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c9b083
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c9b083
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c9b083
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.msl
index bdf99ba..5d85f55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c9cc40 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c9cc40 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c9cc40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c9cc40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c9cc40
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.msl
index 5dfaa7f..856150f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c9f310 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c9f310 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_c9f310
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_c9f310
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_c9f310
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.msl
index d56a234..188b447 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cac876 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cac876 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cac876
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cac876
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cac876
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.msl
index 2b6c745..8d8e06b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cad5f2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cad5f2 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cad5f2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cad5f2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cad5f2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.msl
index 34faae6..b1193d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cb57c2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cb57c2 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1u, 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cb57c2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cb57c2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cb57c2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.msl
index 6095dc8..c5bd0d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cdbcf6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cdbcf6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cdbcf6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cdbcf6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cdbcf6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.msl
index 34334c1..bc35718 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cdccd2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cdccd2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cdccd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cdccd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cdccd2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.msl
index f7d87c3..ad5237a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cdd343 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cdd343 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cdd343
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cdd343
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cdd343
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.msl
index a4462e0..4dad871 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cddf6b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cddf6b = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cddf6b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cddf6b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cddf6b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.msl
index 48fd857..e971bf5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cec477 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cec477 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_cec477
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_cec477
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_cec477
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..aa36909
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_cece6c = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_cece6c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_cece6c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_cece6c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.msl
index 3179c22..2fb613e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d02afc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d02afc = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d02afc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d02afc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d02afc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.msl
index 494b18e..a2bc7ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d0e351 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d0e351 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d0e351
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d0e351
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d0e351
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.msl
index 9bd1cd9..1457236 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d357bb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d357bb = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d357bb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d357bb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d357bb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.msl
index 3b1b21a..ccebd7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d37a08 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d37a08 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d37a08
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d37a08
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d37a08
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.msl
index 4cc4f4f..5379dc2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d3d8fc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d3d8fc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d3d8fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d3d8fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d3d8fc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.msl
index 5d1da92..0a2ec03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d41c72 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d41c72 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d41c72
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d41c72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d41c72
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.msl
index 761d17c..bf6cd20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d4df19 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d4df19 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d4df19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d4df19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d4df19
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.msl
index 09fae3c..767876e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d5c48d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d5c48d = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d5c48d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d5c48d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d5c48d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.msl
index fb7b1ff..540687a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d72de9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d72de9 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d72de9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d72de9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d72de9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.msl
index 00be350..0b38564 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d7996a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d7996a = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d7996a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d7996a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d7996a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.msl
index e7ab98a..a01bb0c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d79c5c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d79c5c = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d79c5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d79c5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d79c5c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.msl
index 8e30b99..7b06dc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d80ff3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d80ff3 = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d80ff3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d80ff3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d80ff3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.msl
index eb2dda8..4bdb5e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d81c57 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d81c57 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d81c57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d81c57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d81c57
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.msl
index fce8368..37e2b6f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d85d61 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d85d61 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d85d61
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d85d61
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d85d61
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.msl
index d04fca5..3f12b50 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d8617f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d8617f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d8617f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d8617f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d8617f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.msl
index ef60486..dd3a098 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d8be5a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d8be5a = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d8be5a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d8be5a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d8be5a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.msl
index 6aa279c..396bd95 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d91f37 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d91f37 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_d91f37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_d91f37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_d91f37
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.msl
index baf10d0..5b2f066 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dab04f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dab04f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_dab04f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_dab04f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_dab04f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.msl
index 41baf43..aafc6e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dbd554 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dbd554 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_dbd554
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_dbd554
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_dbd554
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.msl
index 4b8cc2e..ccc0163 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dd5859 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dd5859 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_dd5859
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_dd5859
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_dd5859
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.msl
index 0480a28..a5f48ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dd8776 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dd8776 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_dd8776
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_dd8776
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_dd8776
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.msl
index cb9ddd5..c5e4e5f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ddeed3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ddeed3 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ddeed3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ddeed3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ddeed3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.msl
index c922a56..f49ee54 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_de5a0e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_de5a0e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_de5a0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_de5a0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_de5a0e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.msl
index ca6ba6a..f45d679 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dee8e7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dee8e7 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_dee8e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_dee8e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_dee8e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.msl
index 0da75c9..7c0ffca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_defd9a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_defd9a = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_defd9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_defd9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_defd9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.msl
index 10133b6..78dd06f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dfdf3b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dfdf3b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_dfdf3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_dfdf3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_dfdf3b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.msl
index e0caaac..42c883d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e1c3cf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e1c3cf = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e1c3cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e1c3cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e1c3cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.msl
index e2b8a8e..1b105c1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e2292f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e2292f = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e2292f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e2292f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e2292f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.msl
index 342b243..efeb5df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e2b3a1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e2b3a1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e2b3a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e2b3a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e2b3a1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.msl
index 5308b29..743241e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e2d7da = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e2d7da = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e2d7da
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e2d7da
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e2d7da
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.msl
index b46ce8d..54efcbf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e33285 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e33285 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e33285
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e33285
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e33285
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.msl
index 0d7c0ef..92376e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e35f72 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e35f72 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e35f72
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e35f72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e35f72
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.msl
index abd02a4..58d28bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e3b08b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e3b08b = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e3b08b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e3b08b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e3b08b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.msl
index 30167d2..616e1f7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e3d2cc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e3d2cc = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e3d2cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e3d2cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e3d2cc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3f9494e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_e4051a = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_e4051a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_e4051a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_e4051a
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.msl
index 4c77f50..0d70e7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e57e92 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e57e92 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e57e92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e57e92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e57e92
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.msl
index 1e6fb37..ea988c2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e59fdf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e59fdf = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e59fdf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e59fdf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e59fdf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.msl
index 2485735..df3e69d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e65916 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e65916 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e65916
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e65916
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e65916
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.msl
index 413360d..90540ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e893d7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e893d7 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e893d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e893d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e893d7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.msl
index 76dc3ff..a4343c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e92dd0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e92dd0 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e92dd0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e92dd0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e92dd0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.msl
index 68e0a10..806832c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e9eb65 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e9eb65 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_e9eb65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_e9eb65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_e9eb65
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.msl
index 688c886..2d7fd7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ea2abd = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ea2abd = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ea2abd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ea2abd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ea2abd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.msl
index 305ee90..9f5c0d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_eb573b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_eb573b = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_eb573b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_eb573b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_eb573b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.msl
index e8dc388..4b8f2de 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ebfb92 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ebfb92 = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ebfb92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ebfb92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ebfb92
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.msl
index fe526bf..67eb68e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ecc823 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ecc823 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ecc823
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ecc823
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ecc823
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.msl
index ca4026b..2ab426c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ed55a8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ed55a8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ed55a8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ed55a8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ed55a8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.msl
index 0af0bfe..080a4fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ee33c5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ee33c5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec3<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ee33c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ee33c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ee33c5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.msl
index ccc0759..b0412d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_eecf7d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_eecf7d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_eecf7d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_eecf7d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_eecf7d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.msl
index 092f83e..e392cd0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ef2ec3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ef2ec3 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ef2ec3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ef2ec3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ef2ec3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.msl
index 6ca8940..e5fdbef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ef5405 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ef5405 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ef5405
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ef5405
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ef5405
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.msl
index 11c9ac1..75cd72d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_efa787 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_efa787 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_efa787
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_efa787
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_efa787
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.msl
index 549c96e..f189ff2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f0514a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f0514a = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f0514a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f0514a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f0514a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.msl
index 11ce828..2d7ef74 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f06b69 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f06b69 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f06b69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f06b69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f06b69
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.msl
index 77cf536..37273b2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f0abad = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f0abad = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f0abad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f0abad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f0abad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.msl
index e0cbd2c..5c82944 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f1c549 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f1c549 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f1c549
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f1c549
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f1c549
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.msl
index ea63ff1..9d7184e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f2a7ff = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f2a7ff = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f2a7ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f2a7ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f2a7ff
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3844916
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_f2bdd4 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_f2bdd4
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_f2bdd4
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_f2bdd4
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.msl
index 44a03a5..1d79e03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f2c311 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f2c311 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f2c311
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f2c311
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f2c311
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.msl
index 214be32..9355c5d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f348d9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f348d9 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f348d9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f348d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f348d9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.msl
index d6869b5..6176b1e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f35ac7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f35ac7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f35ac7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f35ac7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f35ac7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.msl
index 502a2c3..276cdb5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f379e2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f379e2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f379e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f379e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f379e2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.msl
index 7d9f57b..e91d6df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f56e6f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f56e6f = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f56e6f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f56e6f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f56e6f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9b87695
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_f5aee2 = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read> = load %arg_0
+    %5:vec4<f32> = textureLoad %4, vec2<u32>(1u)
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureLoad_f5aee2
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureLoad_f5aee2
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureLoad_f5aee2
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.msl
index 6cbd280..e26d4e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f5fbc6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f5fbc6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f5fbc6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f5fbc6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f5fbc6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.msl
index 68e4682..32029de 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f74bd8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f74bd8 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f74bd8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f74bd8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f74bd8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.msl
index 2c6c123..52f24e1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f7f3bc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f7f3bc = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f7f3bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f7f3bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f7f3bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.msl
index 8f5fbde..432d1a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f7f936 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f7f936 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f7f936
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f7f936
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f7f936
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.msl
index 93c9047..3aecc6e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f81792 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f81792 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f81792
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f81792
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f81792
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.msl
index 62664b6..ef5fea6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f82eb2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f82eb2 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1u
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f82eb2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f82eb2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f82eb2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.msl
index 285d044..1d42ef5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f85291 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f85291 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f85291
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f85291
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f85291
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.msl
index 6709502..cb691af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f8a2e8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f8a2e8 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f8a2e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f8a2e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f8a2e8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.msl
index 8f4953c..0f784ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f92c2d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f92c2d = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f92c2d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f92c2d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f92c2d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.msl
index ad741d3..68e0e77 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f9eaaf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f9eaaf = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, 1u
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_f9eaaf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_f9eaaf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_f9eaaf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.msl
index 5396b22..2e53fa3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fc47ff = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fc47ff = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fc47ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fc47ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fc47ff
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.msl
index 5179022..bfc353e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fc6d36 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fc6d36 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:vec4<i32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<i32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fc6d36
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fc6d36
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fc6d36
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.msl
index cf294ce..557e089 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fcd23d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fcd23d = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:f32 = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fcd23d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fcd23d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fcd23d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.msl
index 087b175..fb6d3f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fd6442 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fd6442 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u)
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fd6442
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fd6442
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fd6442
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.msl
index 705c19f..2d7d731 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fd9606 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fd9606 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fd9606
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fd9606
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fd9606
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.msl
index 6b826b5..7f6aacb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fdebd0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fdebd0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fdebd0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fdebd0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fdebd0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.msl
index 89e8120..facbfe5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fe0565 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fe0565 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<u32>(1u), 1i
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fe0565
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fe0565
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fe0565
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.msl
index 7ef38e2..bf7ec25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fe222a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fe222a = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, 1i
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fe222a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fe222a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fe222a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.msl
index ba57662..7ceec82 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fe2c1b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fe2c1b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:vec4<u32> = textureLoad %4, vec2<i32>(1i), 1u
     %res:ptr<function, vec4<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_fe2c1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_fe2c1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_fe2c1b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.msl
index bedaf9f..6878fe7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_feab99 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_feab99 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read> = load %arg_0
     %5:vec4<f32> = textureLoad %4, vec3<i32>(1i)
     %res:ptr<function, vec4<f32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_feab99
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_feab99
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_feab99
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.msl
index d79b291..4faa327 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ff1119 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ff1119 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:f32 = textureLoad %4, vec2<i32>(1i), 1i, 1u
     %res:ptr<function, f32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureLoad_ff1119
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureLoad_ff1119
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureLoad_ff1119
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.msl
index 0fb4467..9281d71 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_014a3b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_014a3b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_014a3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_014a3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_014a3b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.msl
index d8c57e4..9550c71 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_071ebc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_071ebc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_071ebc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_071ebc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_071ebc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.msl
index c3e4aa9..68eca19 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_0856ae = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_0856ae = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_0856ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_0856ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_0856ae
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.msl
index 5f6ac22..3523e3c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_0ec222 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_0ec222 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_0ec222
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_0ec222
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_0ec222
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.msl
index 3d4483f..87cf3db 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_0fe8dc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_0fe8dc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_0fe8dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_0fe8dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_0fe8dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.msl
index 602e6ce..33363af 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_17ccad = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_17ccad = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_17ccad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_17ccad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_17ccad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.msl
index 14b4671..c6bbf24 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_1f858a = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_1f858a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_1f858a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_1f858a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_1f858a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.msl
index 0d09b42..94a6240 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_24d572 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_24d572 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_24d572
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_24d572
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_24d572
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.msl
index 4bc2217..ff5efc6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_26c9f9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_26c9f9 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_26c9f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_26c9f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_26c9f9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.msl
index 504cd1e..6ec8cad 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_2a48dc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_2a48dc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_2a48dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_2a48dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_2a48dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.msl
index f6417fc..7694de3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_2d95ea = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_2d95ea = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_2d95ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_2d95ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_2d95ea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.msl
index 353c19b..7dbf2d3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_327d70 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_327d70 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_327d70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_327d70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_327d70
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.msl
index 609eb8e..af43135 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_32ca10 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_32ca10 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_32ca10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_32ca10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_32ca10
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.msl
index 0330bd1..cc22260 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3465ec = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3465ec = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3465ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3465ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3465ec
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.msl
index c2e34b0..b0a4cfa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_34cefa = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_34cefa = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_34cefa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_34cefa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_34cefa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.msl
index 86480f4..1a0d751 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3580ab = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3580ab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3580ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3580ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3580ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.msl
index 260b649..a5c5c2e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_379cc5 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_379cc5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_379cc5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_379cc5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_379cc5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.msl
index 8479b30..463d2f6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_37bc8a = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_37bc8a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_37bc8a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_37bc8a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_37bc8a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.msl
index e3d0f43..71f562e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_380a60 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_380a60 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_380a60
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_380a60
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_380a60
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.msl
index e88ff34..8949315f0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3ad143 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3ad143 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3ad143
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3ad143
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3ad143
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.msl
index 230a024..ebc5e74 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3eff89 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3eff89 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3eff89
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3eff89
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3eff89
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.msl
index 7f7f953..50ccfdd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_485774 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_485774 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_485774
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_485774
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_485774
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.msl
index daf683a..398ad9e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_48ef47 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_48ef47 = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_48ef47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_48ef47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_48ef47
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.msl
index 9b34cd3..a34320e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_4adaad = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_4adaad = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_4adaad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_4adaad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_4adaad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.msl
index 9295af0..f0f4aef 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_4c4333 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_4c4333 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_4c4333
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_4c4333
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_4c4333
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.msl
index ec06518..93cd92d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_520086 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_520086 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_520086
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_520086
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_520086
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.msl
index b23e61c..628dfa8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_52dfc5 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_52dfc5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_52dfc5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_52dfc5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_52dfc5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.msl
index 403b305..4172f70 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_54a654 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_54a654 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_54a654
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_54a654
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_54a654
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.msl
index ec1e35a..67d85a3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_555f67 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_555f67 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_555f67
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_555f67
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_555f67
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.msl
new file mode 100644
index 0000000..31c332d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureNumLayers_59cc27 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:u32 = textureNumLayers %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureNumLayers_59cc27
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureNumLayers_59cc27
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureNumLayers_59cc27
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.msl
index 21c8365..ae46337 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_59eb57 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_59eb57 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_59eb57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_59eb57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_59eb57
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.msl
index c3958c3..f6ecd8e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_5ee8f2 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_5ee8f2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_5ee8f2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_5ee8f2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_5ee8f2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.msl
index 7ea0e55..2cfeb83 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_5f20d1 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_5f20d1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_5f20d1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_5f20d1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_5f20d1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.msl
index 0ba22a3..f132ef9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_61bd23 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_61bd23 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_61bd23
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_61bd23
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_61bd23
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.msl
index ab2e549..ad88e15 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_622aa2 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_622aa2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_622aa2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_622aa2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_622aa2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.msl
index f93dc1e..faa0303 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_6b4321 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_6b4321 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_6b4321
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_6b4321
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_6b4321
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.msl
index dc1f22c..cfe2770 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_6da0eb = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_6da0eb = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_6da0eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_6da0eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_6da0eb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.msl
index c3b006e..dd12182 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_77be7b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_77be7b = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_77be7b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_77be7b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_77be7b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.msl
index ac4abcf..e36e51d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_7895f4 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_7895f4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_7895f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_7895f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_7895f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.msl
index 14e579f..f6948ca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_7f28cf = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_7f28cf = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_7f28cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_7f28cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_7f28cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..1d18a30
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureNumLayers_8356f7 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, write> = load %arg_0
+    %5:u32 = textureNumLayers %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureNumLayers_8356f7
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureNumLayers_8356f7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureNumLayers_8356f7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.msl
index dece494..4b13efe 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_878dea = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_878dea = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_878dea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_878dea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_878dea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.msl
index b9c1c72..ad9cf95 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_87faad = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_87faad = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_87faad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_87faad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_87faad
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.msl
index dfb1202..0ff3e5a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8ac32a = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8ac32a = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8ac32a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8ac32a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8ac32a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.msl
index 6ef41e6..a19cbca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8bd987 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8bd987 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8bd987
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8bd987
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8bd987
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.msl
index f1592e9..50af50b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8dbf23 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8dbf23 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8dbf23
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8dbf23
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8dbf23
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.msl
index 7585c82..24fbd07 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8e1bd0 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8e1bd0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8e1bd0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8e1bd0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8e1bd0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.msl
index fd3222a..082e72b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_90b8cc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_90b8cc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_90b8cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_90b8cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_90b8cc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.msl
index 6cdb31d..9534498 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_9695c6 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_9695c6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_9695c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_9695c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_9695c6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.msl
index 1bde369..d4ebae1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_98a9cf = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_98a9cf = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_98a9cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_98a9cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_98a9cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.msl
index d1146ee..020f2c2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_9c60e3 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_9c60e3 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_9c60e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_9c60e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_9c60e3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.msl
index dc774f4..7d7ae36 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_a54655 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_a54655 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_a54655
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_a54655
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_a54655
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.msl
index a484d5a..596843d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_a9d3f5 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_a9d3f5 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_a9d3f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_a9d3f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_a9d3f5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.msl
new file mode 100644
index 0000000..971a269
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureNumLayers_aac630 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:u32 = textureNumLayers %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureNumLayers_aac630
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureNumLayers_aac630
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureNumLayers_aac630
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.msl
index 62bb7e5..60413c7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_bf2f76 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_bf2f76 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_bf2f76
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_bf2f76
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_bf2f76
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.msl
index 67e92b9..e34b6e8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_c1eca9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_c1eca9 = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_c1eca9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_c1eca9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_c1eca9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.msl
index 8ccfa7b..541a1c1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_d3e21f = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_d3e21f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_d3e21f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_d3e21f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_d3e21f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.msl
index 89fc94d..2658710 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_d3f655 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_d3f655 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_d3f655
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_d3f655
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_d3f655
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.msl
index 4aeac8b..411e681 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_d75a0b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_d75a0b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_d75a0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_d75a0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_d75a0b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.msl
index 5d387dd..e4517d4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_de8087 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_de8087 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_de8087
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_de8087
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_de8087
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.msl
index 72222a7..89f70d4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_e47aac = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_e47aac = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_e47aac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_e47aac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_e47aac
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.msl
index c8ba250..55270ec 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_f1783f = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_f1783f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_f1783f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_f1783f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_f1783f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.msl
index adbe171..1d6870d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_181090 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_181090 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_181090
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_181090
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_181090
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.msl
index 130bc45..add0e08 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_1a3fa9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_1a3fa9 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_1a3fa9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_1a3fa9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_1a3fa9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.msl
index 206b34d..0e2d138 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_1a7fc3 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_1a7fc3 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_1a7fc3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_1a7fc3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_1a7fc3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.msl
index c8278c6..b5543c7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_2267d8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_2267d8 = func():void {
+  $B2: {
     %4:texture_cube<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_2267d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_2267d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_2267d8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.msl
index 49a6b03..df3f5f9 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_24b2c6 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_24b2c6 = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_24b2c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_24b2c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_24b2c6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.msl
index b5cdd15..c2a98e4 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_2bea6c = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_2bea6c = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_2bea6c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_2bea6c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_2bea6c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.msl
index 53c278b..9562080 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_2df1ab = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_2df1ab = func():void {
+  $B2: {
     %4:texture_cube<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_2df1ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_2df1ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_2df1ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.msl
index e793891..7cf81ff 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_46dbd8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_46dbd8 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_46dbd8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_46dbd8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_46dbd8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.msl
index 9803878..51be4e4 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_60d9b8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_60d9b8 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_60d9b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_60d9b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_60d9b8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.msl
index 8ce3591..cdb68aa 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_903920 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_903920 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_903920
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_903920
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_903920
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.msl
index 849c832..56868d8 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_9a1a65 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_9a1a65 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_9a1a65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_9a1a65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_9a1a65
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.msl
index d86d8b3..358b38a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_adc783 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_adc783 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_adc783
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_adc783
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_adc783
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.msl
index 49ed517..352fc7f 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_ae911c = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_ae911c = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_ae911c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_ae911c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_ae911c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.msl
index 45c4581..a381977 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_c386c8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_c386c8 = func():void {
+  $B2: {
     %4:texture_cube<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_c386c8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_c386c8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_c386c8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.msl
index 627c314..ab8b06c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_c399f9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_c399f9 = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_c399f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_c399f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_c399f9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.msl
index 2c5037c..ac6bf19 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_c8c25c = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_c8c25c = func():void {
+  $B2: {
     %4:texture_depth_cube = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_c8c25c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_c8c25c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_c8c25c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.msl
index 5cb28c7..a3f9b35 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_d63126 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_d63126 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_d63126
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_d63126
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_d63126
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.msl
index 0c5b086..73607e8 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_d8f73b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_d8f73b = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_d8f73b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_d8f73b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_d8f73b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.msl
index dacd1be..52292ff 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_ef7944 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_ef7944 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_ef7944
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_ef7944
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_ef7944
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.msl
index ed91d52..0d6eac8 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_efd6df = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_efd6df = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_efd6df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_efd6df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_efd6df
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.msl
index 5a8b34c..d26c684 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_f742c0 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_f742c0 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_f742c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_f742c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_f742c0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.msl
index 699cb9a..7ee8eef 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_fe2171 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_fe2171 = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_fe2171
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_fe2171
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_fe2171
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.msl
index 861bc63..2747d7a 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_50f399 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_50f399 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_50f399
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_50f399
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_50f399
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.msl
index 5b7e65d..78c82ff 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_c1a777 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_c1a777 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_c1a777
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_c1a777
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_c1a777
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.msl
index d3e0ac4..033d432 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_dbb799 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_dbb799 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_dbb799
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_dbb799
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_dbb799
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.msl
index 37385e4..c03f5a1 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_ecd321 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_ecd321 = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_ecd321
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_ecd321
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_ecd321
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.msl
index 9bed604..55819ad 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_0dff6c = func():void -> %b2 {
-  %b2 = block {
+%textureSample_0dff6c = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_0dff6c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.msl
index d0e6abd..1da17ad 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_17e988 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_17e988 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_17e988
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.msl
index 86c7ec9..ae6b1e6 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_193203 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_193203 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_193203
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.msl
index d3df5f1..a0e7fe3 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_1a4e1b = func():void -> %b2 {
-  %b2 = block {
+%textureSample_1a4e1b = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec2<f32>(1.0f), 1u
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_1a4e1b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.msl
index 4d39cdd..8b191d3 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_2149ec = func():void -> %b2 {
-  %b2 = block {
+%textureSample_2149ec = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec3<f32>(1.0f), vec3<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_2149ec
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.msl
index eed3b0c..a4a4204 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_38bbb9 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_38bbb9 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec2<f32>(1.0f)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_38bbb9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.msl
index d126d83..3f682f9 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_3b50bd = func():void -> %b2 {
-  %b2 = block {
+%textureSample_3b50bd = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec3<f32>(1.0f)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_3b50bd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.msl
index 74f1742..979bf90 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_4703d0 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_4703d0 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_4703d0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.msl
index 94709bb..9ebb5c2 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_4dd1bf = func():void -> %b2 {
-  %b2 = block {
+%textureSample_4dd1bf = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec3<f32>(1.0f), 1i
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_4dd1bf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.msl
index e08c6cb..e019e2b 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_51b514 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_51b514 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec2<f32>(1.0f)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_51b514
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.msl
index 8f3e779..03697ed 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_60bf45 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_60bf45 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_60bf45
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.msl
index 906ce62..c5d638e 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_6717ca = func():void -> %b2 {
-  %b2 = block {
+%textureSample_6717ca = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec2<f32>(1.0f), 1i
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_6717ca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.msl
index 07c6455..a3c0665 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_6e64fb = func():void -> %b2 {
-  %b2 = block {
+%textureSample_6e64fb = func():void {
+  $B2: {
     %5:texture_1d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_6e64fb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.msl
index d68dec6..203f61c 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_7e9ffd = func():void -> %b2 {
-  %b2 = block {
+%textureSample_7e9ffd = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec2<f32>(1.0f), 1i
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_7e9ffd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.msl
index 5b57034..f6d8f84 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_7fd8cb = func():void -> %b2 {
-  %b2 = block {
+%textureSample_7fd8cb = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec3<f32>(1.0f), 1u
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_7fd8cb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.msl
index 9455e36..df38079 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_85c4ba = func():void -> %b2 {
-  %b2 = block {
+%textureSample_85c4ba = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_85c4ba
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.msl
index 3b9d158..63be6d6 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_bc7477 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_bc7477 = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec3<f32>(1.0f), 1u
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_bc7477
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.msl
index 12eb8be..cc9e0ac 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_c2f4e8 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_c2f4e8 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec3<f32>(1.0f), 1i
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_c2f4e8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.msl
index 7f33603..d663331 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_d6b281 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_d6b281 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec2<f32>(1.0f), 1u
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_d6b281
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.msl
index cdcd1fb..3babe54 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_e53267 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_e53267 = func():void {
+  $B2: {
     %5:texture_cube<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSample %5, %6, vec3<f32>(1.0f)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_e53267
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.msl
index e0bf650..62669b6 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_ea7030 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_ea7030 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSample %5, %6, vec3<f32>(1.0f)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSample_ea7030
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl
index 34b8561..7139838 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl
@@ -1,45 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
-  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+@group(1) @binding(1) var arg_1 : sampler;
+
+fn textureSampleBaseClampToEdge_7c04e6() {
+  var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.0f));
+  prevent_dce = res;
 }
 
-%textureSampleBaseClampToEdge_7c04e6 = func():void -> %b2 {
-  %b2 = block {
-    %5:texture_external = load %arg_0
-    %6:sampler = load %arg_1
-    %7:vec4<f32> = textureSampleBaseClampToEdge %5, %6, vec2<f32>(1.0f)
-    %res:ptr<function, vec4<f32>, read_write> = var, %7
-    %9:vec4<f32> = load %res
-    store %prevent_dce, %9
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %11:void = call %textureSampleBaseClampToEdge_7c04e6
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %13:void = call %textureSampleBaseClampToEdge_7c04e6
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %15:void = call %textureSampleBaseClampToEdge_7c04e6
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleBaseClampToEdge_7c04e6();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureSampleBaseClampToEdge_7c04e6();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureSampleBaseClampToEdge_7c04e6();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl
index 7e5f997..e63ac89 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl
@@ -1,37 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBaseClampToEdge_9ca02c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBaseClampToEdge_9ca02c = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
-    %6:sampler = load %arg_1
-    %7:vec4<f32> = textureSampleBaseClampToEdge %5, %6, vec2<f32>(1.0f)
-    %res:ptr<function, vec4<f32>, read_write> = var, %7
-    %9:vec4<f32> = load %res
-    store %prevent_dce, %9
+    %6:texture_2d<f32> = let %5
+    %7:sampler = load %arg_1
+    %8:sampler = let %7
+    %9:vec2<u32> = textureDimensions %6
+    %10:vec2<f32> = convert %9
+    %11:vec2<f32> = div vec2<f32>(0.5f), %10
+    %12:vec2<f32> = let %11
+    %13:vec2<f32> = sub vec2<f32>(1.0f), %12
+    %14:vec2<f32> = clamp vec2<f32>(1.0f), %12, %13
+    %15:vec4<f32> = textureSampleLevel %6, %8, %14, 0.0f
+    %res:ptr<function, vec4<f32>, read_write> = var, %15
+    %17:vec4<f32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %11:void = call %textureSampleBaseClampToEdge_9ca02c
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %textureSampleBaseClampToEdge_9ca02c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %13:void = call %textureSampleBaseClampToEdge_9ca02c
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %textureSampleBaseClampToEdge_9ca02c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %15:void = call %textureSampleBaseClampToEdge_9ca02c
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %textureSampleBaseClampToEdge_9ca02c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.msl
index d7028d4..53a45bc 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_1c707e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_1c707e = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec2<f32>(1.0f), 1u, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_1c707e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.msl
index 5c9983b..685c790 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_53b9f7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_53b9f7 = func():void {
+  $B2: {
     %5:texture_cube<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_53b9f7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.msl
index 3069aa8..41233e3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_594824 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_594824 = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec3<f32>(1.0f), 1.0f, vec3<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_594824
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.msl
index efd1138..567b678 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_6a9113 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_6a9113 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec2<f32>(1.0f), 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_6a9113
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.msl
index f0614c5..c6e57f3 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_80e579 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_80e579 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec2<f32>(1.0f), 1i, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_80e579
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.msl
index 4fb3e10..c1c72c8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_87915c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_87915c = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_87915c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.msl
index 58da570..a48a502 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_9dbb51 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_9dbb51 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_9dbb51
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.msl
index 8e68aff..ce7e988 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_a161cf = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_a161cf = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_a161cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.msl
index 616acee..9a0ba94 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_c6953d = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_c6953d = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec3<f32>(1.0f), 1u, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_c6953d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.msl
index d3847a6..d59ec6c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_d3fa1b = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_d3fa1b = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_d3fa1b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.msl
index 10bfbaa..fc8e2f6 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_eed7c4 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_eed7c4 = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleBias %5, %6, vec3<f32>(1.0f), 1i, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleBias_eed7c4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.msl
index e26070c..44f772a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_1912e5 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_1912e5 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec3<f32>(1.0f), 1u, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_1912e5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.msl
index a416397..de3c917 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_3a5923 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_3a5923 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_3a5923
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.msl
index 19cc5f8..fe74bcd 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_63fb83 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_63fb83 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_63fb83
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.msl
index 12d221e..2028910 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_7b5025 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_7b5025 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_7b5025
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.msl
index 746c862..5f5bc65 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_90ae56 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_90ae56 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1u, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_90ae56
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl
index 8b710b7..841edcc 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_a3ca7e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_a3ca7e = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec3<f32>(1.0f), 1i, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_a3ca7e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.msl
index 513895d4..8407c89 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_af1051 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_af1051 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_af1051
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.msl
index 564f0da..dd01922 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_dd431d = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_dd431d = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1i, 1.0f
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_dd431d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.msl
index 414f059..5c98ac6 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_dec064 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_dec064 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompare %5, %6, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i)
@@ -17,8 +17,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %textureSampleCompare_dec064
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl
index daa9d29..32ad9bc 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_1116ed = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_1116ed = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec2<f32>(1.0f), 1i, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_1116ed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_1116ed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_1116ed
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl
index 2f09d0c..d1b7778 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_1568e3 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_1568e3 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_1568e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_1568e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_1568e3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl
index b82dff9..db9bb2c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_2ad2b1 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_2ad2b1 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec2<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_2ad2b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_2ad2b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_2ad2b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl
index 4235a87..d5c0d62 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_4cf3a2 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_4cf3a2 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec3<f32>(1.0f), 1i, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_4cf3a2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_4cf3a2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_4cf3a2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl
index 17df9a9..4d0b81a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_7dc3c0 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_7dc3c0 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec2<f32>(1.0f), 1u, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_7dc3c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_7dc3c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_7dc3c0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl
index 70bff04..2b5e824 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_7f2b9a = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_7f2b9a = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_7f2b9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_7f2b9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_7f2b9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl
index ea12e0a..bfa24b4 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_958c87 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_958c87 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec3<f32>(1.0f), 1u, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_958c87
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_958c87
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_958c87
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl
index 482e062..56b75ff 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_b6e47c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_b6e47c = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_b6e47c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_b6e47c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_b6e47c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl
index 537982b..1d421ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_bcb3dd = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_bcb3dd = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler_comparison = load %arg_1
     %7:f32 = textureSampleCompareLevel %5, %6, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleCompareLevel_bcb3dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleCompareLevel_bcb3dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleCompareLevel_bcb3dd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.msl
index fb98059..7e92af2 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_21402b = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_21402b = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_21402b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_21402b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_21402b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl
index 212141b..fb90410 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_2ecd8f = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_2ecd8f = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec2<f32>(1.0f), 1i, vec2<f32>(1.0f), vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_2ecd8f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_2ecd8f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_2ecd8f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.msl
index c695bd3..5dcd64d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_521263 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_521263 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_521263
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_521263
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_521263
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.msl
index b640f6b..bc9965c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_5312f4 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_5312f4 = func():void {
+  $B2: {
     %5:texture_cube<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_5312f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_5312f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_5312f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.msl
index 8757e0c..b0063b5 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_5884dd = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_5884dd = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_5884dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_5884dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_5884dd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.msl
index 15534c9..d323764 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_7cd6de = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_7cd6de = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec2<f32>(1.0f), 1u, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_7cd6de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_7cd6de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_7cd6de
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.msl
index 49a4c7a..34702ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_a09131 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_a09131 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec2<f32>(1.0f), 1u, vec2<f32>(1.0f), vec2<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_a09131
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_a09131
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_a09131
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.msl
index ebd6492..ce6b693 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_bbb58f = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_bbb58f = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec3<f32>(1.0f), 1u, vec3<f32>(1.0f), vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_bbb58f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_bbb58f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_bbb58f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl
index 6b70929..78bef3c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_d4e3c5 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_d4e3c5 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_d4e3c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_d4e3c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_d4e3c5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.msl
index 02b81e5..88364c9 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_d65515 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_d65515 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec2<f32>(1.0f), 1i, vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_d65515
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_d65515
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_d65515
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.msl
index 3cd9e38..affbda2 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_e383db = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_e383db = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleGrad %5, %6, vec3<f32>(1.0f), 1i, vec3<f32>(1.0f), vec3<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleGrad_e383db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleGrad_e383db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleGrad_e383db
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.msl
index dcf4b71..5fa56cf 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_02be59 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_02be59 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_02be59
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_02be59
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_02be59
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl
index 5f9bc7a..f6678dd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_0b0a1b = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_0b0a1b = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_0b0a1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_0b0a1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_0b0a1b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl
index 75596d2..05d280a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_0bdd9a = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_0bdd9a = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1i, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_0bdd9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_0bdd9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_0bdd9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.msl
index b5f8396..5d2dcc9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_1b0291 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_1b0291 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_1b0291
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_1b0291
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_1b0291
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.msl
index cb95780..4186450 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_1bf73e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_1bf73e = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_1bf73e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_1bf73e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_1bf73e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.msl
index fb6a2a1..fed51d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_265cc7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_265cc7 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_265cc7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_265cc7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_265cc7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.msl
index d0a4bf2..05b9d3e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_2974eb = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_2974eb = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_2974eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_2974eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_2974eb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.msl
index fae05de..db2c003 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_302be4 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_302be4 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_302be4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_302be4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_302be4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.msl
index 67f2f3c..a80c7e1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_36780e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_36780e = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_36780e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_36780e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_36780e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.msl
index 3261a97..47c29e3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_36f0d3 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_36f0d3 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_36f0d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_36f0d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_36f0d3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.msl
index 69925a7..a04d36c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_3c3442 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_3c3442 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_3c3442
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_3c3442
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_3c3442
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.msl
index 5eddcd0..af54a08 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_615583 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_615583 = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_615583
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_615583
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_615583
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.msl
index de203d3..8be7331 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_73e892 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_73e892 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_73e892
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_73e892
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_73e892
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.msl
index 046a160..e19ee04 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_749baf = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_749baf = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_749baf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_749baf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_749baf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.msl
index ac3547d..178f030 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_941a53 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_941a53 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1u, 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_941a53
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_941a53
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_941a53
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.msl
index 92c4c2e..e4604cc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_a12142 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_a12142 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1i, 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_a12142
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_a12142
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_a12142
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.msl
index ce1f246..ab114e6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_aab3b9 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_aab3b9 = func():void {
+  $B2: {
     %5:texture_cube_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1u, 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_aab3b9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_aab3b9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_aab3b9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.msl
index 696f514..adc28a7 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_abfcc0 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_abfcc0 = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_abfcc0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_abfcc0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_abfcc0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.msl
index b26bc4b..6823dba 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_ae5e39 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_ae5e39 = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1i, 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_ae5e39
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_ae5e39
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_ae5e39
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.msl
index f827ed2..3d0c2f4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_ae92a2 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_ae92a2 = func():void {
+  $B2: {
     %5:texture_depth_cube = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1u
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_ae92a2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_ae92a2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_ae92a2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.msl
index 9b9650d..6bcddb2 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_b7c55c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_b7c55c = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1i, 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_b7c55c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_b7c55c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_b7c55c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.msl
index 1f92372..80c8b4a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_c32df7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_c32df7 = func():void {
+  $B2: {
     %5:texture_cube<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_c32df7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_c32df7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_c32df7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.msl
index a51c5df..d7f8271 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_c6aca6 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_c6aca6 = func():void {
+  $B2: {
     %5:texture_2d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1.0f
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_c6aca6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_c6aca6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_c6aca6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl
index b634e56..076b1c9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_cdfe0f = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_cdfe0f = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_cdfe0f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_cdfe0f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_cdfe0f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.msl
index 9f40ef8..b903fa9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_dcbecb = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_dcbecb = func():void {
+  $B2: {
     %5:texture_3d<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1.0f, vec3<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_dcbecb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_dcbecb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_dcbecb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl
index ec73842..75bfa63 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_e6ce9e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_e6ce9e = func():void {
+  $B2: {
     %5:texture_depth_2d_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, 1i, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_e6ce9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_e6ce9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_e6ce9e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl
index 52a72f0..a14e215 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_f3b2c8 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_f3b2c8 = func():void {
+  $B2: {
     %5:texture_depth_2d = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_f3b2c8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_f3b2c8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_f3b2c8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.msl
index 2dd5c21..ccecf6f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_faa6d7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_faa6d7 = func():void {
+  $B2: {
     %5:texture_2d_array<f32> = load %arg_0
     %6:sampler = load %arg_1
     %7:vec4<f32> = textureSampleLevel %5, %6, vec2<f32>(1.0f), 1u, 1.0f, vec2<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_faa6d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_faa6d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_faa6d7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.msl
index 7b4d3b0..b6b1184 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_ff11bc = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_ff11bc = func():void {
+  $B2: {
     %5:texture_depth_cube_array = load %arg_0
     %6:sampler = load %arg_1
     %7:f32 = textureSampleLevel %5, %6, vec3<f32>(1.0f), 1u, 1i
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureSampleLevel_ff11bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureSampleLevel_ff11bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureSampleLevel_ff11bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/00ca64.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0148bd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.msl
index 55fcee8..bbe33ef 100644
--- a/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/031506.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_031506 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_031506 = func():void {
+  $B2: {
     %3:texture_storage_2d<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_031506
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_031506
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_031506
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.msl
index be4a489..8eec2f9 100644
--- a/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/036d0e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_036d0e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_036d0e = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_036d0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_036d0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_036d0e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.msl
index 80535dc..bc30d0d 100644
--- a/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/03e7a0.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_03e7a0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_03e7a0 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_03e7a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_03e7a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_03e7a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.msl
index c33c9a6..3172261 100644
--- a/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/042b06.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_042b06 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_042b06 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_042b06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_042b06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_042b06
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.msl
index a128c9a..1f5e66c 100644
--- a/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/052a4e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_052a4e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_052a4e = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_052a4e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_052a4e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_052a4e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.msl
index 85d0990..5a7e50a 100644
--- a/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/053664.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_053664 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_053664 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_053664
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_053664
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_053664
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/05ce15.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/064c7f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/068641.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/06e49c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/07548b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.msl
index 1d3b517..211abf2 100644
--- a/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/09e4d5.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_09e4d5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_09e4d5 = func():void {
+  $B2: {
     %3:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_09e4d5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_09e4d5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_09e4d5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0a1a79.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.msl
new file mode 100644
index 0000000..818c31f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/0ad124.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_0ad124 = func():void {
+  $B2: {
+    %3:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_0ad124
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_0ad124
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_0ad124
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.msl
index 4f5c692..a04feb9 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0ade9a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_0ade9a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_0ade9a = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_0ade9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_0ade9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_0ade9a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0af6b5.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0c3dff.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0cc825.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.msl
index 369e03e..2877d6d 100644
--- a/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/0ff97a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_0ff97a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_0ff97a = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_0ff97a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_0ff97a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_0ff97a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.msl
index 046b1e7..34a713c 100644
--- a/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/101325.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_101325 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_101325 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_101325
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_101325
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_101325
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/102722.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.msl
index e36d49b..0404fd8 100644
--- a/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/145061.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_145061 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_145061 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_145061
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_145061
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_145061
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/158cf0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.msl
index dc58b50..e5f72bf 100644
--- a/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/178e69.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_178e69 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_178e69 = func():void {
+  $B2: {
     %3:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_178e69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_178e69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_178e69
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1839f2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.msl
index 07a83fb..942b4cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/195d1b.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_195d1b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_195d1b = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_195d1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_195d1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_195d1b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.msl
index 5d4e43d..0934c57 100644
--- a/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/197637.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_197637 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_197637 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_197637
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_197637
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_197637
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.msl
similarity index 75%
rename from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
rename to test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a264d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.msl
index b4dd0e4..bd8673c 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a6c0b.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1a6c0b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1a6c0b = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_1a6c0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_1a6c0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_1a6c0b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1a7d35.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.msl
index 76d5b56..0266535 100644
--- a/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1af236.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1af236 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1af236 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_1af236
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_1af236
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_1af236
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1bbd08.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1c02e7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1dc954.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e20f2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e79f0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.msl
index 397cb93..9353add 100644
--- a/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1e9fbd.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1e9fbd = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1e9fbd = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_1e9fbd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_1e9fbd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_1e9fbd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1efc36.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1f1ef8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.msl
index 0702bf3..693f553 100644
--- a/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/1fef04.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1fef04 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1fef04 = func():void {
+  $B2: {
     %3:texture_storage_1d<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_1fef04
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_1fef04
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_1fef04
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.msl
index 5857574..07fa7a6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2046db.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2046db = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2046db = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_2046db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_2046db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_2046db
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/207fdd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.msl
index f7a86e5..645ab03 100644
--- a/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2173fd.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2173fd = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2173fd = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_2173fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_2173fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_2173fd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/22d955.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/22f045.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2383fc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.msl
index e12b06a..8b73497 100644
--- a/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/24e6b7.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_24e6b7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_24e6b7 = func():void {
+  $B2: {
     %3:texture_storage_3d<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_24e6b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_24e6b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_24e6b7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/258ab0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.msl
index af94646..228bd7c 100644
--- a/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/26a26d.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_26a26d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_26a26d = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_26a26d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_26a26d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_26a26d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/26bf70.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/27063a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7f54cc5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/272f5a.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_272f5a = func():void {
+  $B2: {
+    %3:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_272f5a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_272f5a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_272f5a
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2796b4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/285218.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/28a7ec.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.msl
index 491ae5a..b1ce0d9 100644
--- a/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/28e109.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_28e109 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_28e109 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_28e109
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_28e109
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_28e109
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.msl
index c8d831b..fdec6c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2a60c9.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2a60c9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2a60c9 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_2a60c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_2a60c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_2a60c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2ac6c7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.msl
index 95f9052..82b6db3 100644
--- a/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2addd6.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2addd6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2addd6 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_2addd6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_2addd6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_2addd6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.msl
index ffac80e..847edd3 100644
--- a/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2c76db.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2c76db = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2c76db = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_2c76db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_2c76db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_2c76db
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2d2835.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2e4245.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..87b746f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/2e512f.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_2e512f = func():void {
+  $B2: {
+    %3:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_2e512f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_2e512f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_2e512f
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2e6102.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2eb2a4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2ed2a3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.msl
index c47539d..757a9f5 100644
--- a/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/2f29ea.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2f29ea = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2f29ea = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_2f29ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_2f29ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_2f29ea
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/30b0b0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.msl
index bca2770..477aa39 100644
--- a/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/312f27.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_312f27 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_312f27 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_312f27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_312f27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_312f27
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/31745b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/319029.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.msl
index f84cfc6..7813a9d 100644
--- a/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/32d3d6.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_32d3d6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_32d3d6 = func():void {
+  $B2: {
     %3:texture_storage_1d<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_32d3d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_32d3d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_32d3d6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/32f368.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/330b7c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.msl
index cc6aaf9..b5ff31e 100644
--- a/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3310d3.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3310d3 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3310d3 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_3310d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_3310d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_3310d3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/331aee.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/33cec0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.msl
index 1030450..5393bfd 100644
--- a/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/345332.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_345332 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_345332 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_345332
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_345332
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_345332
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/37eeef.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/37ffd4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/38e8d7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3a52ac.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3bb7a1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3bec15.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3c1937.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.msl
index 7ec4abc..6858e00 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d1ebe.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3d1ebe = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3d1ebe = func():void {
+  $B2: {
     %3:texture_storage_2d<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_3d1ebe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_3d1ebe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_3d1ebe
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d6f01.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.msl
index 0889fcd..6f074c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3d96a4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3d96a4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3d96a4 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_3d96a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_3d96a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_3d96a4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.msl
index 7388f8b..bc9a5c1 100644
--- a/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3e0dc4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3e0dc4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3e0dc4 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_3e0dc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_3e0dc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_3e0dc4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.msl
index d6901b4..ff0ae1b 100644
--- a/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3f61ca.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3f61ca = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3f61ca = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_3f61ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_3f61ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_3f61ca
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/3fb31f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/40c455.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4288fc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b852d69
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/43d1df.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_43d1df = func():void {
+  $B2: {
+    %3:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_43d1df
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_43d1df
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_43d1df
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.msl
index 1bfcf41..44b3828 100644
--- a/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/441222.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_441222 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_441222 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_441222
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_441222
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_441222
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/441ba8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.msl
index 041461c..1658b1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4483e7.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4483e7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4483e7 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_4483e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_4483e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_4483e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.msl
index b436b1d..c958470 100644
--- a/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/44b372.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_44b372 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_44b372 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_44b372
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_44b372
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_44b372
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/44daa7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.msl
index e80ce3f..9ba0477 100644
--- a/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/473ead.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_473ead = func():void -> %b2 {
-  %b2 = block {
+%textureStore_473ead = func():void {
+  $B2: {
     %3:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_473ead
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_473ead
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_473ead
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.msl
index f3b216f..5be639f 100644
--- a/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/47bd70.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_47bd70 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_47bd70 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_47bd70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_47bd70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_47bd70
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/486500.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.msl
index 2c28184..25f9a8d 100644
--- a/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/48cb56.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_48cb56 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_48cb56 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_48cb56
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_48cb56
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_48cb56
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/48eae1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.msl
index 1c112b6..0239fee 100644
--- a/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4bf1fd.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4bf1fd = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4bf1fd = func():void {
+  $B2: {
     %3:texture_storage_2d<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_4bf1fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_4bf1fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_4bf1fd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4c454f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.msl
index 2e049de..c18392f 100644
--- a/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4c76b7.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4c76b7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4c76b7 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_4c76b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_4c76b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_4c76b7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.msl
index c76b4bf..61f3b4c 100644
--- a/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4cce74.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4cce74 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4cce74 = func():void {
+  $B2: {
     %3:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_4cce74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_4cce74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_4cce74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4d359d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.msl
index dac878f..6c09869 100644
--- a/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4ddf52.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4ddf52 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4ddf52 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_4ddf52
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_4ddf52
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_4ddf52
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.msl
index 199e165..3ce2f27 100644
--- a/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4e2b3a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4e2b3a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4e2b3a = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_4e2b3a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_4e2b3a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_4e2b3a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/4fc057.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.msl
index 0b84d77..85929e5 100644
--- a/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5030f5.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5030f5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5030f5 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5030f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5030f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5030f5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/506a71.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.msl
index 9ef9366..3ad0935 100644
--- a/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/51ec82.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_51ec82 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_51ec82 = func():void {
+  $B2: {
     %3:texture_storage_1d<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_51ec82
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_51ec82
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_51ec82
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.msl
index 2e44965..32ce08a 100644
--- a/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5246b4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5246b4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5246b4 = func():void {
+  $B2: {
     %3:texture_storage_3d<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5246b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5246b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5246b4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/52f503.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.msl
index d09c74b..d84ecd0 100644
--- a/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/53a68b.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_53a68b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_53a68b = func():void {
+  $B2: {
     %3:texture_storage_3d<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_53a68b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_53a68b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_53a68b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.msl
index 98ba7c6..05ca46d 100644
--- a/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5425ab.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5425ab = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5425ab = func():void {
+  $B2: {
     %3:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5425ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5425ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5425ab
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.msl
index bb88a23..8936663 100644
--- a/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/544f06.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_544f06 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_544f06 = func():void {
+  $B2: {
     %3:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_544f06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_544f06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_544f06
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.msl
index 7b28084..80d5b8e 100644
--- a/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/55f9dc.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_55f9dc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_55f9dc = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_55f9dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_55f9dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_55f9dc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.msl
index e0271ed..83cf013 100644
--- a/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/574a31.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_574a31 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_574a31 = func():void {
+  $B2: {
     %3:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_574a31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_574a31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_574a31
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.msl
index add4392..f2070ba 100644
--- a/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/579b93.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_579b93 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_579b93 = func():void {
+  $B2: {
     %3:texture_storage_2d<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_579b93
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_579b93
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_579b93
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5841f8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.msl
index 69c5183..375e6e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/58fc35.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_58fc35 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_58fc35 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_58fc35
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_58fc35
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_58fc35
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/59a0ab.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5a2f8f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.msl
index 879d644..4632423 100644
--- a/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5a8b41.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5a8b41 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5a8b41 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5a8b41
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5a8b41
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5a8b41
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.msl
index f1a1f86..3c604d0 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5b17eb.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5b17eb = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5b17eb = func():void {
+  $B2: {
     %3:texture_storage_2d<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5b17eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5b17eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5b17eb
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.msl
index 8089a25..fc2a5a7 100644
--- a/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5b4522.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5b4522 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5b4522 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5b4522
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5b4522
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5b4522
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5bc4f3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ddc61.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.msl
index b100834..59a8df5 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ec6b2.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5ec6b2 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5ec6b2 = func():void {
+  $B2: {
     %3:texture_storage_3d<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5ec6b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5ec6b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5ec6b2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.msl
index 5674b4c..7e2da69 100644
--- a/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5ee194.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5ee194 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5ee194 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_5ee194
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_5ee194
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_5ee194
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/5f9a49.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/602b5a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/60975f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.msl
index 18d79fe..5777b67 100644
--- a/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/614b58.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_614b58 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_614b58 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_614b58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_614b58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_614b58
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.msl
index be2e584..428d45d 100644
--- a/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/635584.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_635584 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_635584 = func():void {
+  $B2: {
     %3:texture_storage_1d<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_635584
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_635584
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_635584
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.msl
index e56ce54..5403af3 100644
--- a/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/63f34a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_63f34a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_63f34a = func():void {
+  $B2: {
     %3:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_63f34a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_63f34a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_63f34a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.msl
index e8ded03..5f76504 100644
--- a/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/646dbc.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_646dbc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_646dbc = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_646dbc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_646dbc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_646dbc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/658a74.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.msl
index 168d126..8e25743 100644
--- a/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/65b6aa.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_65b6aa = func():void -> %b2 {
-  %b2 = block {
+%textureStore_65b6aa = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_65b6aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_65b6aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_65b6aa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c1c500b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/65ba8b.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_65ba8b = func():void {
+  $B2: {
+    %3:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_65ba8b
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_65ba8b
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_65ba8b
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/682fd6.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/699a1b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6b75c3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6b80d2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.msl
index a7814b0..86333e3 100644
--- a/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6be9e0.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6be9e0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6be9e0 = func():void {
+  $B2: {
     %3:texture_storage_3d<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6be9e0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6be9e0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6be9e0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.msl
index b3b83e2..fb606a2 100644
--- a/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6c4a70.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6c4a70 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6c4a70 = func():void {
+  $B2: {
     %3:texture_storage_2d<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6c4a70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6c4a70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6c4a70
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6cff2e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.msl
index b6c8110..92d193f 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6d1809.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6d1809 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6d1809 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6d1809
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6d1809
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6d1809
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.msl
index 4e08486..53e68a4 100644
--- a/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6d259f.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6d259f = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6d259f = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6d259f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6d259f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6d259f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6da692.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.msl
index 2745c49..15e2053 100644
--- a/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6e6cc0.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6e6cc0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6e6cc0 = func():void {
+  $B2: {
     %3:texture_storage_1d<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6e6cc0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6e6cc0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6e6cc0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c0ea989
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/6f0c92.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_6f0c92 = func():void {
+  $B2: {
+    %3:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_6f0c92
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_6f0c92
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_6f0c92
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.msl
index 9f4a93d..c8419b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6f3542.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6f3542 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6f3542 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6f3542
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6f3542
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6f3542
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6f8642.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.msl
index a9f02cd..eb90406 100644
--- a/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6fb99b.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6fb99b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6fb99b = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_6fb99b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_6fb99b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_6fb99b
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/6fd2b1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.msl
index 7f6d9cb..ea067ff 100644
--- a/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/704e1f.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_704e1f = func():void -> %b2 {
-  %b2 = block {
+%textureStore_704e1f = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_704e1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_704e1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_704e1f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.msl
index 1fbcc34..371f4b7 100644
--- a/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/706236.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_706236 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_706236 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_706236
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_706236
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_706236
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.msl
index ccccb31..2380b1e 100644
--- a/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/706560.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_706560 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_706560 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_706560
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_706560
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_706560
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/726472.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.msl
index a16887f..a4e6ce8 100644
--- a/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/726d6d.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_726d6d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_726d6d = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_726d6d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_726d6d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_726d6d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/72fa64.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/731349.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.msl
index 6d95d21..9da11f0 100644
--- a/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/73a735.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_73a735 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_73a735 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_73a735
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_73a735
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_73a735
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/73bbbc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/74886f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.msl
index 529f432..582856e 100644
--- a/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/751256.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_751256 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_751256 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_751256
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_751256
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_751256
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/752da6.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.msl
index 8b399d9..1c580fd 100644
--- a/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/75bbd5.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_75bbd5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_75bbd5 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_75bbd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_75bbd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_75bbd5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/76affd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.msl
index 9a2ad34..b1399f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7792fa.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7792fa = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7792fa = func():void {
+  $B2: {
     %3:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_7792fa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_7792fa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_7792fa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/779d14.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/77c0ae.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.msl
index 1e89b74..74b9040 100644
--- a/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7b8f86.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7b8f86 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7b8f86 = func():void {
+  $B2: {
     %3:texture_storage_3d<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_7b8f86
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_7b8f86
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_7b8f86
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7bb211.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7cec8d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7cf6e7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.msl
index f9f1840..f55840b 100644
--- a/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7d10e0.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7d10e0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7d10e0 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_7d10e0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_7d10e0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_7d10e0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.msl
index d7e6cc1..33aa100 100644
--- a/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7dd042.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7dd042 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7dd042 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_7dd042
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_7dd042
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_7dd042
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.msl
index 829af7c..3136246 100644
--- a/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7e787a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7e787a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7e787a = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_7e787a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_7e787a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_7e787a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/7f7fae.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.msl
new file mode 100644
index 0000000..03fc8e8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/803a10.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_803a10 = func():void {
+  $B2: {
+    %3:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_803a10
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_803a10
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_803a10
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/804942.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/805dae.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.msl
index 569a094..2e850de 100644
--- a/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/80bf1d.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_80bf1d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_80bf1d = func():void {
+  $B2: {
     %3:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_80bf1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_80bf1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_80bf1d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.msl
index d370f68..710f14c 100644
--- a/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/818df6.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_818df6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_818df6 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_818df6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_818df6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_818df6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.msl
index 09fdbf7..74b9fdc 100644
--- a/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/81ae31.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_81ae31 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_81ae31 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_81ae31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_81ae31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_81ae31
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.msl
index 5a75078..f986a9a 100644
--- a/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/820272.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_820272 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_820272 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_820272
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_820272
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_820272
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/83bcc1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.msl
index e041d66..e4f3eec 100644
--- a/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/84d435.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_84d435 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_84d435 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_84d435
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_84d435
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_84d435
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.msl
index 7a7266b..bc86db9 100644
--- a/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/84f4f4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_84f4f4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_84f4f4 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_84f4f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_84f4f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_84f4f4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.msl
index 4d86f51..4ca237c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8676c9.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8676c9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8676c9 = func():void {
+  $B2: {
     %3:texture_storage_1d<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8676c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8676c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8676c9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.msl
index da72d6d..39ac939 100644
--- a/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/86f713.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_86f713 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_86f713 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_86f713
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_86f713
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_86f713
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/872747.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.msl
index c2817e4..c8d0780 100644
--- a/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/877c92.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_877c92 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_877c92 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_877c92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_877c92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_877c92
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.msl
index ecc278e..9dd6d504 100644
--- a/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8815b1.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8815b1 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8815b1 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8815b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8815b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8815b1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.msl
index 092d018..1679f62 100644
--- a/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/885921.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_885921 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_885921 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_885921
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_885921
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_885921
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.msl
index 1ff7529..177dd5c 100644
--- a/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/88ce7e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_88ce7e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_88ce7e = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_88ce7e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_88ce7e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_88ce7e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.msl
index 1813e96..5736334 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a16b0.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a16b0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a16b0 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8a16b0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8a16b0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8a16b0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.msl
index 4fb095c..c62062c 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a46ff.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a46ff = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a46ff = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8a46ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8a46ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8a46ff
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.msl
index 43a30ca..9ca0cf7 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a85b9.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a85b9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a85b9 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8a85b9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8a85b9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8a85b9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.msl
index 8469e7e..f6cda78 100644
--- a/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8a8681.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a8681 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a8681 = func():void {
+  $B2: {
     %3:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8a8681
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8a8681
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8a8681
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.msl
index 2e67176..aee9074 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ae0bc.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8ae0bc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8ae0bc = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8ae0bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8ae0bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8ae0bc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8b9310.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8bb287.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8c76e9.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd611.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.msl
index f182163..e734118 100644
--- a/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8cd841.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8cd841 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8cd841 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8cd841
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8cd841
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8cd841
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8dc54f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8e0479.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.msl
index a555e82..b5c2a12 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ebdc9.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8ebdc9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8ebdc9 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_8ebdc9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_8ebdc9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_8ebdc9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ed9f8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8f71a1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/8ff674.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.msl
index ec59fb4..899f8b4 100644
--- a/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/90960e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_90960e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_90960e = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_90960e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_90960e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_90960e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.msl
index ab54cf7..e233fbe 100644
--- a/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/90a553.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_90a553 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_90a553 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_90a553
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_90a553
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_90a553
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/958353.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/959d94.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/95e452.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/969534.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.msl
index aca9814..cfffe30 100644
--- a/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/976636.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_976636 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_976636 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_976636
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_976636
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_976636
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9938b7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9a3ecc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9aedd3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.msl
index 1d37ed8..a25776a 100644
--- a/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9ba5c1.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_9ba5c1 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_9ba5c1 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_9ba5c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_9ba5c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_9ba5c1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.msl
index 1150c4e..5636c1f 100644
--- a/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9cea9e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_9cea9e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_9cea9e = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_9cea9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_9cea9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_9cea9e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.msl
index 89490d8..37bac20 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d7c62.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_9d7c62 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_9d7c62 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_9d7c62
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_9d7c62
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_9d7c62
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d8668.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9d9cd5.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9e3ec5.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9e5bc2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9f5318.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/9f7cea.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.msl
index fad3e8b..38a40c9 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a0022f.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a0022f = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a0022f = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a0022f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a0022f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a0022f
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a0f96e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a1352c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.msl
index 3199543..0074ea5 100644
--- a/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a14041.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a14041 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a14041 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a14041
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a14041
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a14041
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a165b8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.msl
index a8c70a1..75a6be8 100644
--- a/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a19a12.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a19a12 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a19a12 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a19a12
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a19a12
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a19a12
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.msl
index 9d65d2b..68fcfad 100644
--- a/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a24491.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a24491 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a24491 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a24491
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a24491
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a24491
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a4c338.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.msl
index 4c45bb1..a418b74 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5b88e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a5b88e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a5b88e = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a5b88e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a5b88e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a5b88e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.msl
index 3553c4f..21f5454 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5c925.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a5c925 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a5c925 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a5c925
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a5c925
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a5c925
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a5e80d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.msl
index 299d29b..c4e76fe 100644
--- a/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a66ca4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a66ca4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a66ca4 = func():void {
+  $B2: {
     %3:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a66ca4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a66ca4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a66ca4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a6a986.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a6e78f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.msl
index 98bd7e1..cef39ea 100644
--- a/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a702b6.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a702b6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a702b6 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a702b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a702b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a702b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.msl
new file mode 100644
index 0000000..09e3732
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/a7fc47.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_a7fc47 = func():void {
+  $B2: {
+    %3:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_a7fc47
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_a7fc47
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_a7fc47
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.msl
index af49adb..8c694b5 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a9298c.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a9298c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a9298c = func():void {
+  $B2: {
     %3:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_a9298c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_a9298c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_a9298c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/a9426c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.msl
index 9ddba8d..a49d67a 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ab03b6.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ab03b6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ab03b6 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ab03b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ab03b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ab03b6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.msl
index ba02744..81e3ec0 100644
--- a/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ab788e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ab788e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ab788e = func():void {
+  $B2: {
     %3:texture_storage_2d<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ab788e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ab788e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ab788e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.msl
index 0c556e0..9f68be7 100644
--- a/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/abdd21.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_abdd21 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_abdd21 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_abdd21
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_abdd21
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_abdd21
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.msl
index a35801d..09b997d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ac0a55.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ac0a55 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ac0a55 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ac0a55
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ac0a55
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ac0a55
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ac67aa.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0bac92e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/ae6a2a.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_ae6a2a = func():void {
+  $B2: {
+    %3:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_ae6a2a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_ae6a2a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_ae6a2a
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/aeb38a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.msl
index 910116e..1033809 100644
--- a/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/aedea3.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_aedea3 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_aedea3 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_aedea3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_aedea3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_aedea3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.msl
index 717d2d7..f4fe414 100644
--- a/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b16110.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b16110 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b16110 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b16110
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b16110
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b16110
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.msl
index 840542c..2b717c4 100644
--- a/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b286b4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b286b4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b286b4 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b286b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b286b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b286b4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.msl
index 051f0ec..b5586e4 100644
--- a/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b36bc1.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b36bc1 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b36bc1 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b36bc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b36bc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b36bc1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b42fd3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.msl
index 82e564f..c59af0a 100644
--- a/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b4389e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b4389e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b4389e = func():void {
+  $B2: {
     %3:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b4389e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b4389e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b4389e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b706b1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b70ded.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.msl
index dee9782..09885a5 100644
--- a/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b71c13.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b71c13 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b71c13 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b71c13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b71c13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b71c13
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.msl
index b1d9f88..f636376 100644
--- a/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b7232c.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b7232c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b7232c = func():void {
+  $B2: {
     %3:texture_storage_1d<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b7232c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b7232c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b7232c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b76ff3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b77161.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.msl
index 49690af..4c2e579 100644
--- a/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b89ffb.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b89ffb = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b89ffb = func():void {
+  $B2: {
     %3:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b89ffb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b89ffb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b89ffb
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b91b86.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.msl
index 09b6c43..ae15d5e 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b9c81a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b9c81a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b9c81a = func():void {
+  $B2: {
     %3:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b9c81a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b9c81a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b9c81a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.msl
index 394cf08..12cd07f 100644
--- a/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/b9d863.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b9d863 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b9d863 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_b9d863
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_b9d863
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_b9d863
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bbcb7f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.msl
index 8121eca..d3cdf75 100644
--- a/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bc1423.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_bc1423 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_bc1423 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_bc1423
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_bc1423
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_bc1423
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.msl
index 505ca96..a09afd9 100644
--- a/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bcc97a.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_bcc97a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_bcc97a = func():void {
+  $B2: {
     %3:texture_storage_2d<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_bcc97a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_bcc97a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_bcc97a
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.msl
index 5741091..97b7f93 100644
--- a/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bd6602.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_bd6602 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_bd6602 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_bd6602
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_bd6602
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_bd6602
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/be6e30.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bedbfc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/bf775c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.msl
index b1388b4..fe4ca3e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c06463.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c06463 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c06463 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c06463
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c06463
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c06463
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.msl
index 895bb0b..42882cb 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1c664.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c1c664 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c1c664 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c1c664
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c1c664
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c1c664
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f29e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.msl
index 54aa592..f911f3e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c1f760.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c1f760 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c1f760 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c1f760
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c1f760
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c1f760
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c2ca46.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c32905.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.msl
index ac7b7c2..22e7a69 100644
--- a/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c33478.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c33478 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c33478 = func():void {
+  $B2: {
     %3:texture_storage_3d<rg32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c33478
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c33478
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c33478
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.msl
index cd8ee14..f80f8cd 100644
--- a/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c35268.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c35268 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c35268 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c35268
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c35268
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c35268
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c5af1e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.msl
index 371a946..a24e662 100644
--- a/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c63f05.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c63f05 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c63f05 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c63f05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c63f05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c63f05
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.msl
index 34cac56..198956e 100644
--- a/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c79451.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c79451 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c79451 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_c79451
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_c79451
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_c79451
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c863be.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/c9d780.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/cb3b0b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.msl
index fb962c7..b35917d 100644
--- a/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ccac20.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ccac20 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ccac20 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ccac20
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ccac20
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ccac20
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/cd6755.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.msl
index 1f79543..4bd44f7 100644
--- a/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ceb832.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ceb832 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ceb832 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ceb832
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ceb832
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ceb832
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.msl
index cd844ec16..2c0c22a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d0d62c.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d0d62c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d0d62c = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_d0d62c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_d0d62c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_d0d62c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.msl
index 63810da..9e45831 100644
--- a/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d0fadc.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d0fadc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d0fadc = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_d0fadc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_d0fadc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_d0fadc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.msl
index ebb7f82..52ec638 100644
--- a/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d19db4.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d19db4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d19db4 = func():void {
+  $B2: {
     %3:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<i32>(1i), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_d19db4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_d19db4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_d19db4
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.msl
index 0eac9f2..de4d75b 100644
--- a/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d1ab82.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d1ab82 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d1ab82 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_d1ab82
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_d1ab82
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_d1ab82
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d26166.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d2b565.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.msl
index b818438..4bc5fe7 100644
--- a/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d3a22b.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d3a22b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d3a22b = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_d3a22b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_d3a22b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_d3a22b
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d4aa95.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d55e65.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d73b5c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d82b0a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.msl
index 01690f6..cd4ad3a 100644
--- a/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/d86d33.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d86d33 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d86d33 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_d86d33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_d86d33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_d86d33
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.msl
index 487637f..e966878 100644
--- a/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/da530c.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_da530c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_da530c = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_da530c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_da530c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_da530c
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.msl
index 233f4e7..6ab468a 100644
--- a/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/db5128.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_db5128 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_db5128 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_db5128
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_db5128
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_db5128
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/db92a2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.msl
index ea22e97..6ee0143 100644
--- a/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dce0e2.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_dce0e2 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_dce0e2 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_dce0e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_dce0e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_dce0e2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dd7d81.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.msl
index af0c31d..3d23822 100644
--- a/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dd8b29.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_dd8b29 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_dd8b29 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_dd8b29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_dd8b29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_dd8b29
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dde364.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.msl
index 8f03bf8..65c1671 100644
--- a/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/de38e5.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_de38e5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_de38e5 = func():void {
+  $B2: {
     %3:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_de38e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_de38e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_de38e5
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/de4b94.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.msl
index 3c77f81..d0105fc 100644
--- a/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/df0c51.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_df0c51 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_df0c51 = func():void {
+  $B2: {
     %3:texture_storage_3d<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec3<u32>(1u), vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_df0c51
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_df0c51
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_df0c51
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/df2ca4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dfa9a1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/dffb13.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.msl
index 5a5fd87..0ceadf3 100644
--- a/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e077e7.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e077e7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e077e7 = func():void {
+  $B2: {
     %3:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_e077e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_e077e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_e077e7
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e0b666.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.msl
index e9fcf7d..da82960 100644
--- a/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e1784d.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e1784d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e1784d = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_e1784d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_e1784d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_e1784d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e38281.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.msl
index 0f9c612..d0c8fc1 100644
--- a/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e46fd8.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e46fd8 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e46fd8 = func():void {
+  $B2: {
     %3:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_e46fd8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_e46fd8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_e46fd8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.msl
index e0d04ba..405c746 100644
--- a/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e72bdc.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e72bdc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e72bdc = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_e72bdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_e72bdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_e72bdc
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e7c6d8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.msl
index ca6f79a..0dd0320 100644
--- a/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e87f6e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e87f6e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e87f6e = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_e87f6e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_e87f6e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_e87f6e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e885e8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/e8cbf7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.msl
index 6ec9e68..f5ad660 100644
--- a/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ea30d2.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ea30d2 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ea30d2 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ea30d2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ea30d2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ea30d2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/eb702f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/eb78b9.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d466bd5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureStore/ed6198.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_ed6198 = func():void {
+  $B2: {
+    %3:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %4:void = textureStore %3, vec3<i32>(1i), vec4<f32>(1.0f)
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %textureStore_ed6198
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %textureStore_ed6198
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %textureStore_ed6198
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ee6acc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ef9f2f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.msl
index 5ddfb33..012fee8 100644
--- a/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f05928.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f05928 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f05928 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1u, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_f05928
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_f05928
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_f05928
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f1e6d3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.msl
index 469e261..e3c57ac 100644
--- a/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f64d69.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f64d69 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f64d69 = func():void {
+  $B2: {
     %3:texture_storage_1d<r32sint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_f64d69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_f64d69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_f64d69
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.msl
index b300462..89a285b 100644
--- a/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f6f392.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f6f392 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f6f392 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_f6f392
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_f6f392
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_f6f392
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f7b0ab.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.msl
index 1e48fc6..8e36399 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f8aaf9.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f8aaf9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f8aaf9 = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), 1i, vec4<i32>(1i)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_f8aaf9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_f8aaf9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_f8aaf9
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f8dead.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.msl
index 2a6b0a9..8ac603b 100644
--- a/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f975a0.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f975a0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f975a0 = func():void {
+  $B2: {
     %3:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<i32>(1i), vec4<f32>(1.0f)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_f975a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_f975a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_f975a0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/f9be83.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fb9a8f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fbf53f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.msl
index 57041d5..cc3903b 100644
--- a/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fc916e.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_fc916e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_fc916e = func():void {
+  $B2: {
     %3:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %4:void = textureStore %3, vec2<u32>(1u), 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_fc916e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_fc916e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_fc916e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fcbe66.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/fd350c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.msl
index bdcdd25..da43bcf 100644
--- a/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/textureStore/ff23b3.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ff23b3 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ff23b3 = func():void {
+  $B2: {
     %3:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %4:void = textureStore %3, 1i, vec4<u32>(1u)
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %textureStore_ff23b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %textureStore_ff23b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %textureStore_ff23b3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.msl
index 3999fea..2ae2d2a 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.ir.msl
@@ -1,32 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_06794e = func():void -> %b2 {
-  %b2 = block {
+%transpose_06794e = func():void {
+  $B2: {
     %res:ptr<function, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(1.0h))
     %4:mat3x3<f16> = load %res
-    store %prevent_dce, %4
+    %5:void = call %tint_store_and_preserve_padding, %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %6:void = call %transpose_06794e
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %8:void = call %transpose_06794e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %8:void = call %transpose_06794e
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %transpose_06794e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %10:void = call %transpose_06794e
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:void = call %transpose_06794e
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B6: {
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %16:vec3<f16> = access %value_param, 0u
+    store %15, %16
+    %17:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %18:vec3<f16> = access %value_param, 1u
+    store %17, %18
+    %19:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %20:vec3<f16> = access %value_param, 2u
+    store %19, %20
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.msl
index 432fcff..857b8dd 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_2585cd = func():void -> %b2 {
-  %b2 = block {
+%transpose_2585cd = func():void {
+  $B2: {
     %res:ptr<function, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(1.0f))
     %4:mat3x4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_2585cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_2585cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_2585cd
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.msl
index 87a5d94..17a5ecb 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_31d679 = func():void -> %b2 {
-  %b2 = block {
+%transpose_31d679 = func():void {
+  $B2: {
     %res:ptr<function, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(1.0f))
     %4:mat2x2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_31d679
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_31d679
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_31d679
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.msl
index b5961e3..41b0ab2 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_31e37e = func():void -> %b2 {
-  %b2 = block {
+%transpose_31e37e = func():void {
+  $B2: {
     %res:ptr<function, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(1.0f))
     %4:mat2x4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_31e37e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_31e37e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_31e37e
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.msl
index ccd76d3..0790be4 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_4ce359 = func():void -> %b2 {
-  %b2 = block {
+%transpose_4ce359 = func():void {
+  $B2: {
     %res:ptr<function, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(1.0f))
     %4:mat4x2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_4ce359
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_4ce359
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_4ce359
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.msl
index 5cda6cf..29e88bf 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_4dc9a1 = func():void -> %b2 {
-  %b2 = block {
+%transpose_4dc9a1 = func():void {
+  $B2: {
     %res:ptr<function, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(1.0f))
     %4:mat3x2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_4dc9a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_4dc9a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_4dc9a1
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.msl
index 2e1fb73..54d482b 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_5edd96 = func():void -> %b2 {
-  %b2 = block {
+%transpose_5edd96 = func():void {
+  $B2: {
     %res:ptr<function, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(1.0h))
     %4:mat2x4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_5edd96
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_5edd96
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_5edd96
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.msl
index e1835a8..2703a21 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_5f36bf = func():void -> %b2 {
-  %b2 = block {
+%transpose_5f36bf = func():void {
+  $B2: {
     %res:ptr<function, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(1.0h))
     %4:mat3x4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_5f36bf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_5f36bf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_5f36bf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.msl
index 638c52c..a9e74ea 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_7be8b2 = func():void -> %b2 {
-  %b2 = block {
+%transpose_7be8b2 = func():void {
+  $B2: {
     %res:ptr<function, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(1.0h))
     %4:mat2x2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_7be8b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_7be8b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_7be8b2
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.msl
index 917f96f..c49b14f 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_844869 = func():void -> %b2 {
-  %b2 = block {
+%transpose_844869 = func():void {
+  $B2: {
     %res:ptr<function, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(1.0h))
     %4:mat4x4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_844869
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_844869
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_844869
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.msl
index 1667a79..5374f9f 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.ir.msl
@@ -1,32 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_854336 = func():void -> %b2 {
-  %b2 = block {
+%transpose_854336 = func():void {
+  $B2: {
     %res:ptr<function, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(1.0f))
     %4:mat3x3<f32> = load %res
-    store %prevent_dce, %4
+    %5:void = call %tint_store_and_preserve_padding, %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %6:void = call %transpose_854336
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %8:void = call %transpose_854336
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %8:void = call %transpose_854336
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %transpose_854336
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %10:void = call %transpose_854336
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:void = call %transpose_854336
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B6: {
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %16:vec3<f32> = access %value_param, 0u
+    store %15, %16
+    %17:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %18:vec3<f32> = access %value_param, 1u
+    store %17, %18
+    %19:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %20:vec3<f32> = access %value_param, 2u
+    store %19, %20
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.msl
index fa2c344..ea6b819 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.ir.msl
@@ -1,32 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_8c06ce = func():void -> %b2 {
-  %b2 = block {
+%transpose_8c06ce = func():void {
+  $B2: {
     %res:ptr<function, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(1.0h))
     %4:mat4x3<f16> = load %res
-    store %prevent_dce, %4
+    %5:void = call %tint_store_and_preserve_padding, %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %6:void = call %transpose_8c06ce
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %8:void = call %transpose_8c06ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %8:void = call %transpose_8c06ce
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %transpose_8c06ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %10:void = call %transpose_8c06ce
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:void = call %transpose_8c06ce
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B6: {
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %16:vec3<f16> = access %value_param, 0u
+    store %15, %16
+    %17:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %18:vec3<f16> = access %value_param, 1u
+    store %17, %18
+    %19:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %20:vec3<f16> = access %value_param, 2u
+    store %19, %20
+    %21:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %22:vec3<f16> = access %value_param, 3u
+    store %21, %22
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.msl
index 04b8314..3315a2d 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.ir.msl
@@ -1,32 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_b9ad1f = func():void -> %b2 {
-  %b2 = block {
+%transpose_b9ad1f = func():void {
+  $B2: {
     %res:ptr<function, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(1.0h))
     %4:mat2x3<f16> = load %res
-    store %prevent_dce, %4
+    %5:void = call %tint_store_and_preserve_padding, %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %6:void = call %transpose_b9ad1f
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %8:void = call %transpose_b9ad1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %8:void = call %transpose_b9ad1f
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %transpose_b9ad1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %10:void = call %transpose_b9ad1f
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:void = call %transpose_b9ad1f
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B6: {
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %16:vec3<f16> = access %value_param, 0u
+    store %15, %16
+    %17:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %18:vec3<f16> = access %value_param, 1u
+    store %17, %18
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.msl
index 6d1b89f..292e5b2 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_c1b600 = func():void -> %b2 {
-  %b2 = block {
+%transpose_c1b600 = func():void {
+  $B2: {
     %res:ptr<function, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(1.0f))
     %4:mat4x4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_c1b600
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_c1b600
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_c1b600
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.msl
index d832ae2..f18f396 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_d6faec = func():void -> %b2 {
-  %b2 = block {
+%transpose_d6faec = func():void {
+  $B2: {
     %res:ptr<function, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(1.0h))
     %4:mat3x2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_d6faec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_d6faec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_d6faec
     ret
   }
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.msl
index a2c664f..f4a72c3 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.ir.msl
@@ -1,32 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_d8f8ba = func():void -> %b2 {
-  %b2 = block {
+%transpose_d8f8ba = func():void {
+  $B2: {
     %res:ptr<function, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(1.0f))
     %4:mat4x3<f32> = load %res
-    store %prevent_dce, %4
+    %5:void = call %tint_store_and_preserve_padding, %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %6:void = call %transpose_d8f8ba
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %8:void = call %transpose_d8f8ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %8:void = call %transpose_d8f8ba
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %transpose_d8f8ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %10:void = call %transpose_d8f8ba
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:void = call %transpose_d8f8ba
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B6: {
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %16:vec3<f32> = access %value_param, 0u
+    store %15, %16
+    %17:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %18:vec3<f32> = access %value_param, 1u
+    store %17, %18
+    %19:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %20:vec3<f32> = access %value_param, 2u
+    store %19, %20
+    %21:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %22:vec3<f32> = access %value_param, 3u
+    store %21, %22
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.msl
index b3b40ea..bbd817b 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.ir.msl
@@ -1,32 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_ed4bdc = func():void -> %b2 {
-  %b2 = block {
+%transpose_ed4bdc = func():void {
+  $B2: {
     %res:ptr<function, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(1.0f))
     %4:mat2x3<f32> = load %res
-    store %prevent_dce, %4
+    %5:void = call %tint_store_and_preserve_padding, %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %6:void = call %transpose_ed4bdc
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %8:void = call %transpose_ed4bdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %8:void = call %transpose_ed4bdc
+%fragment_main = @fragment func():void {
+  $B4: {
+    %10:void = call %transpose_ed4bdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %10:void = call %transpose_ed4bdc
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %12:void = call %transpose_ed4bdc
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B6: {
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %16:vec3<f32> = access %value_param, 0u
+    store %15, %16
+    %17:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %18:vec3<f32> = access %value_param, 1u
+    store %17, %18
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.msl
index 78d7168..49f4e35 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_faeb05 = func():void -> %b2 {
-  %b2 = block {
+%transpose_faeb05 = func():void {
+  $B2: {
     %res:ptr<function, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(1.0h))
     %4:mat4x2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %transpose_faeb05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %transpose_faeb05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %transpose_faeb05
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.msl
index c89fa47..1fc3b67 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_103ab8 = func():void -> %b2 {
-  %b2 = block {
+%trunc_103ab8 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_103ab8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_103ab8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_103ab8
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.msl
index a02125e..8ec4a9a 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_562d05 = func():void -> %b2 {
-  %b2 = block {
+%trunc_562d05 = func():void {
+  $B2: {
     %res:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_562d05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_562d05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_562d05
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.msl
index 5e9158d..f80644a 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_a56109 = func():void -> %b2 {
-  %b2 = block {
+%trunc_a56109 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_a56109
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_a56109
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_a56109
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.msl
index b012ef3..63d8cac 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_cc2b0d = func():void -> %b2 {
-  %b2 = block {
+%trunc_cc2b0d = func():void {
+  $B2: {
     %res:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_cc2b0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_cc2b0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_cc2b0d
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.msl
index e855bd0..a13987b 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_ce7c17 = func():void -> %b2 {
-  %b2 = block {
+%trunc_ce7c17 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_ce7c17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_ce7c17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_ce7c17
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.msl
index 3215da6..50f66f8 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_e183aa = func():void -> %b2 {
-  %b2 = block {
+%trunc_e183aa = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_e183aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_e183aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_e183aa
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.msl
index 6677f62..5f0df2f 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_eb83df = func():void -> %b2 {
-  %b2 = block {
+%trunc_eb83df = func():void {
+  $B2: {
     %res:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_eb83df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_eb83df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_eb83df
     ret
   }
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.msl
index 85602f5..f4dd5a4 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_f370d3 = func():void -> %b2 {
-  %b2 = block {
+%trunc_f370d3 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %trunc_f370d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %trunc_f370d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %trunc_f370d3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.msl
index 424c533..e8f39d6 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack2x16float_32a5cf = func():void -> %b2 {
-  %b2 = block {
+%unpack2x16float_32a5cf = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.00000005960464477539f, 0.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %unpack2x16float_32a5cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %unpack2x16float_32a5cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %unpack2x16float_32a5cf
     ret
   }
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl
index 3bad6cd..82affab 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack2x16snorm_b4aea6 = func():void -> %b2 {
-  %b2 = block {
+%unpack2x16snorm_b4aea6 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.00003051850944757462f, 0.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %unpack2x16snorm_b4aea6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %unpack2x16snorm_b4aea6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %unpack2x16snorm_b4aea6
     ret
   }
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.msl
index 600253b..4b88d53 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack2x16unorm_7699c0 = func():void -> %b2 {
-  %b2 = block {
+%unpack2x16unorm_7699c0 = func():void {
+  $B2: {
     %res:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.00001525902189314365f, 0.0f)
     %4:vec2<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %unpack2x16unorm_7699c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %unpack2x16unorm_7699c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %unpack2x16unorm_7699c0
     ret
   }
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.msl
index 21fb2b1..0da466d 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack4x8snorm_523fb3 = func():void -> %b2 {
-  %b2 = block {
+%unpack4x8snorm_523fb3 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.00787401571869850159f, 0.0f, 0.0f, 0.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %unpack4x8snorm_523fb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %unpack4x8snorm_523fb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %unpack4x8snorm_523fb3
     ret
   }
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.msl
index d63cb8f..b9feaba 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.ir.msl
@@ -1,31 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack4x8unorm_750c74 = func():void -> %b2 {
-  %b2 = block {
+%unpack4x8unorm_750c74 = func():void {
+  $B2: {
     %res:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0039215688593685627f, 0.0f, 0.0f, 0.0f)
     %4:vec4<f32> = load %res
     store %prevent_dce, %4
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %6:void = call %unpack4x8unorm_750c74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %8:void = call %unpack4x8unorm_750c74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %10:void = call %unpack4x8unorm_750c74
     ret
   }
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.msl
new file mode 100644
index 0000000..937165e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%unpack4xI8_830900 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i, 0i, 0i, 0i)
+    %4:vec4<i32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %unpack4xI8_830900
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %unpack4xI8_830900
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %unpack4xI8_830900
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7dec3c3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%unpack4xU8_a5ea55 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u, 0u, 0u, 0u)
+    %4:vec4<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %unpack4xU8_a5ea55
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %unpack4xU8_a5ea55
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %unpack4xU8_a5ea55
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.msl
index 959bbd3..f8281db 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, u32, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_37307c = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_37307c = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:u32 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, u32, read_write> = var, %5
-    %8:u32 = load %res
-    store %prevent_dce, %8
+    %6:u32 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, u32, read_write> = var, %6
+    %9:u32 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_37307c
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_37307c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl
index 2529246..e2eb2fb 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, f32, read_write> = var
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_7a857c = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_7a857c = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:f32 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, f32, read_write> = var, %5
-    %8:f32 = load %res
-    store %prevent_dce, %8
+    %6:f32 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, f32, read_write> = var, %6
+    %9:f32 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_7a857c
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0.0f
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_7a857c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl
index 89dabfa..3bb3f44 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, i32, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_9d33de = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_9d33de = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:i32 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, i32, read_write> = var, %5
-    %8:i32 = load %res
-    store %prevent_dce, %8
+    %6:i32 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, i32, read_write> = var, %6
+    %9:i32 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_9d33de
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_9d33de
     ret
   }
 }
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl
index 036773d..bd29073 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, f16, read_write> = var
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_e07d08 = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_e07d08 = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:f16 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, f16, read_write> = var, %5
-    %8:f16 = load %res
-    store %prevent_dce, %8
+    %6:f16 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, f16, read_write> = var, %6
+    %9:f16 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_e07d08
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0.0h
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_e07d08
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.msl
index ee1413d..6a1ed9c 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_002533 = func():void -> %b2 {
-  %b2 = block {
+%abs_002533 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_002533
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_002533
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_002533
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.msl
index 7499b6d..b8d13b3 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_005174 = func():void -> %b2 {
-  %b2 = block {
+%abs_005174 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_005174
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_005174
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_005174
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.msl
index 1fc6474..862821a 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_1ce782 = func():void -> %b2 {
-  %b2 = block {
+%abs_1ce782 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
     %5:vec4<u32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_1ce782
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_1ce782
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_1ce782
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.msl
index acde0dc..39da404 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_1e9d53 = func():void -> %b2 {
-  %b2 = block {
+%abs_1e9d53 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_1e9d53
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_1e9d53
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_1e9d53
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.msl
index 165e282..c78e031 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_421ca3 = func():void -> %b2 {
-  %b2 = block {
+%abs_421ca3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_421ca3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_421ca3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_421ca3
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.msl
index f81468d..2eb143b 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%abs_467cd1 = func():void -> %b2 {
-  %b2 = block {
+%abs_467cd1 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:u32 = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_467cd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_467cd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_467cd1
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.msl
index 4282277..30ee360 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%abs_4ad288 = func():void -> %b2 {
-  %b2 = block {
+%abs_4ad288 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_4ad288
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_4ad288
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_4ad288
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.msl
index 155e1f3..88baa00 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_538d29 = func():void -> %b2 {
-  %b2 = block {
+%abs_538d29 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_538d29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_538d29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_538d29
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.msl
index d0d4ffa..de31a2a 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_5ad50a = func():void -> %b2 {
-  %b2 = block {
+%abs_5ad50a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
     %5:vec3<i32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_5ad50a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_5ad50a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_5ad50a
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.msl
index 99cf2a5..6af8aca 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_5ae4fe = func():void -> %b2 {
-  %b2 = block {
+%abs_5ae4fe = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_5ae4fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_5ae4fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_5ae4fe
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.msl
index 1476a29..a9cb089 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_7326de = func():void -> %b2 {
-  %b2 = block {
+%abs_7326de = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
     %5:vec3<u32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_7326de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_7326de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_7326de
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.msl
index 4f7cb19..6a73091 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_7f28e6 = func():void -> %b2 {
-  %b2 = block {
+%abs_7f28e6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
     %5:vec2<u32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_7f28e6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_7f28e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_7f28e6
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.msl
index 1f10465..ea399d8 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_7faa9e = func():void -> %b2 {
-  %b2 = block {
+%abs_7faa9e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
     %5:vec2<i32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_7faa9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_7faa9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_7faa9e
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.msl
index 8948fac..3f15419 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%abs_9c80a6 = func():void -> %b2 {
-  %b2 = block {
+%abs_9c80a6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
     %5:vec4<i32> = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_9c80a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_9c80a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_9c80a6
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.msl
index c135cae..2a9a611 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%abs_b96037 = func():void -> %b2 {
-  %b2 = block {
+%abs_b96037 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_b96037
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_b96037
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_b96037
     ret
   }
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.msl
index f483a18..29a17c3 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%abs_fd247f = func():void -> %b2 {
-  %b2 = block {
+%abs_fd247f = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = abs %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %abs_fd247f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %abs_fd247f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %abs_fd247f
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.msl
index 2f0d2d3..9290487 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_004aff = func():void -> %b2 {
-  %b2 = block {
+%acos_004aff = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.96875h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_004aff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_004aff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_004aff
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.msl
index fc1b044..033eee4 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_203628 = func():void -> %b2 {
-  %b2 = block {
+%acos_203628 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.96875h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_203628
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_203628
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_203628
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.msl
index fb17b97..9921179 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%acos_303e3d = func():void -> %b2 {
-  %b2 = block {
+%acos_303e3d = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.96875h
     %4:f16 = load %arg_0
     %5:f16 = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_303e3d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_303e3d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_303e3d
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.msl
index bfa1c42..c141ca9 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%acos_489247 = func():void -> %b2 {
-  %b2 = block {
+%acos_489247 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 0.96891242265701293945f
     %4:f32 = load %arg_0
     %5:f32 = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_489247
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_489247
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_489247
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.msl
index 7422beb..8d7b1cf 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_8e2acf = func():void -> %b2 {
-  %b2 = block {
+%acos_8e2acf = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.96891242265701293945f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_8e2acf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_8e2acf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_8e2acf
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.msl
index 0a1a00c..9d2a2f4 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_a610c4 = func():void -> %b2 {
-  %b2 = block {
+%acos_a610c4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.96891242265701293945f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_a610c4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_a610c4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_a610c4
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.msl
index 75f5b8b..1e0875f 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_dfc915 = func():void -> %b2 {
-  %b2 = block {
+%acos_dfc915 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.96891242265701293945f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_dfc915
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_dfc915
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_dfc915
     ret
   }
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.msl
index 1f9e5ca..d49b44f 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acos_f47057 = func():void -> %b2 {
-  %b2 = block {
+%acos_f47057 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.96875h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = acos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acos_f47057
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acos_f47057
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acos_f47057
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.msl
index 3273020..89dd483 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_5f49d8 = func():void -> %b2 {
-  %b2 = block {
+%acosh_5f49d8 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.54296875h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_5f49d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_5f49d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_5f49d8
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.msl
index 5835f68..95b285d 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_640883 = func():void -> %b2 {
-  %b2 = block {
+%acosh_640883 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.54308068752288818359f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_640883
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_640883
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_640883
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.msl
index e382bee..8e4ca01 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_a37dfe = func():void -> %b2 {
-  %b2 = block {
+%acosh_a37dfe = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.54296875h
     %4:f16 = load %arg_0
     %5:f16 = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_a37dfe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_a37dfe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_a37dfe
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.msl
index d0d9072..d138155 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_d51ccb = func():void -> %b2 {
-  %b2 = block {
+%acosh_d51ccb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.54308068752288818359f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_d51ccb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_d51ccb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_d51ccb
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.msl
index 9a39783..b18ea4c 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_de60d8 = func():void -> %b2 {
-  %b2 = block {
+%acosh_de60d8 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.54296875h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_de60d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_de60d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_de60d8
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.msl
index 4f2f436..91170a3 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_e38f5c = func():void -> %b2 {
-  %b2 = block {
+%acosh_e38f5c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.54308068752288818359f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_e38f5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_e38f5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_e38f5c
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.msl
index 60d6b61..bf781bc 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_ecf2d1 = func():void -> %b2 {
-  %b2 = block {
+%acosh_ecf2d1 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.54308068752288818359f
     %4:f32 = load %arg_0
     %5:f32 = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_ecf2d1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_ecf2d1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_ecf2d1
     ret
   }
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.msl
index 57deff5..824746f 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%acosh_f56574 = func():void -> %b2 {
-  %b2 = block {
+%acosh_f56574 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.54296875h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = acosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %acosh_f56574
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %acosh_f56574
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %acosh_f56574
     ret
   }
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.msl
index 7bd5428..3a3730a 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_353d6a = func():void -> %b2 {
-  %b2 = block {
+%all_353d6a = func():void {
+  $B2: {
     %arg_0:ptr<function, bool, read_write> = var, true
     %4:bool = load %arg_0
     %5:bool = all %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %all_353d6a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %all_353d6a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %all_353d6a
     ret
   }
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.msl
index 60319c6..6f18af5 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_986c7b = func():void -> %b2 {
-  %b2 = block {
+%all_986c7b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %4:vec4<bool> = load %arg_0
     %5:bool = all %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %all_986c7b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %all_986c7b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %all_986c7b
     ret
   }
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.msl
index 98b320b..44e3c30 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_bd2dba = func():void -> %b2 {
-  %b2 = block {
+%all_bd2dba = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %4:vec3<bool> = load %arg_0
     %5:bool = all %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %all_bd2dba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %all_bd2dba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %all_bd2dba
     ret
   }
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.msl
index 3c61548..e82ee7a 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%all_f46790 = func():void -> %b2 {
-  %b2 = block {
+%all_f46790 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %4:vec2<bool> = load %arg_0
     %5:bool = all %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %all_f46790
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %all_f46790
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %all_f46790
     ret
   }
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.msl
index 681ba57..022f147 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_083428 = func():void -> %b2 {
-  %b2 = block {
+%any_083428 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %4:vec4<bool> = load %arg_0
     %5:bool = any %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %any_083428
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %any_083428
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %any_083428
     ret
   }
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.msl
index ce7cfbc..4eb3003 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_0e3e58 = func():void -> %b2 {
-  %b2 = block {
+%any_0e3e58 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %4:vec2<bool> = load %arg_0
     %5:bool = any %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %any_0e3e58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %any_0e3e58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %any_0e3e58
     ret
   }
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.msl
index 0f028fa..4d4adfd 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_2ab91a = func():void -> %b2 {
-  %b2 = block {
+%any_2ab91a = func():void {
+  $B2: {
     %arg_0:ptr<function, bool, read_write> = var, true
     %4:bool = load %arg_0
     %5:bool = any %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %any_2ab91a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %any_2ab91a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %any_2ab91a
     ret
   }
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.msl
index e57f112..529c520 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%any_e755c1 = func():void -> %b2 {
-  %b2 = block {
+%any_e755c1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %4:vec3<bool> = load %arg_0
     %5:bool = any %4
@@ -18,20 +18,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %any_e755c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %any_e755c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %any_e755c1
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl
index b4a5e32..6a20a8a 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(4) {
   arg_0:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_1588cd = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_1588cd = func():void {
+  $B2: {
     %4:ptr<storage, array<i32>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_1588cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_1588cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_1588cd
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl
index c984c30..7f449f6 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_61b1c7 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_61b1c7 = func():void {
+  $B2: {
     %4:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_61b1c7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_61b1c7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_61b1c7
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl
index af17f38..f062c57 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(2) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(2) {
   arg_0:array<f16> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_8421b9 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_8421b9 = func():void {
+  $B2: {
     %4:ptr<storage, array<f16>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_8421b9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_8421b9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_8421b9
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl
index 502bcb1..a48951d 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(4) {
   arg_0:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_a0f5ca = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_a0f5ca = func():void {
+  $B2: {
     %4:ptr<storage, array<f32>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_a0f5ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_a0f5ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_a0f5ca
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl
index 5794de2..818bebf 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(2) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(2) {
   arg_0:array<f16> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_cbd6b5 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_cbd6b5 = func():void {
+  $B2: {
     %4:ptr<storage, array<f16>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_cbd6b5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_cbd6b5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_cbd6b5
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl
index d3348fb..bbdda44 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_cdd123 = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_cdd123 = func():void {
+  $B2: {
     %4:ptr<storage, array<f32>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_cdd123
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_cdd123
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_cdd123
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl
index e381c84..f320d12 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RO = struct @align(4) {
   arg_0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_ro:ptr<storage, SB_RO, read> = var @binding_point(0, 1)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_cfca0a = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_cfca0a = func():void {
+  $B2: {
     %4:ptr<storage, array<u32>, read> = access %sb_ro, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_cfca0a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_cfca0a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_cfca0a
     ret
   }
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl
index 900b8d0..b07c58a 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%arrayLength_eb510f = func():void -> %b2 {
-  %b2 = block {
+%arrayLength_eb510f = func():void {
+  $B2: {
     %4:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = arrayLength %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %arrayLength_eb510f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %arrayLength_eb510f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %arrayLength_eb510f
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.msl
index dd628a6..a41816a 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_064953 = func():void -> %b2 {
-  %b2 = block {
+%asin_064953 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.47942554950714111328f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_064953
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_064953
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_064953
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.msl
index d694940..26cd65b 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%asin_11dfda = func():void -> %b2 {
-  %b2 = block {
+%asin_11dfda = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.479248046875h
     %4:f16 = load %arg_0
     %5:f16 = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_11dfda
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_11dfda
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_11dfda
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.msl
index f71f921..0ead735 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_2d8e29 = func():void -> %b2 {
-  %b2 = block {
+%asin_2d8e29 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.479248046875h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_2d8e29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_2d8e29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_2d8e29
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.msl
index 618f26c..be8699f 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_3cfbd4 = func():void -> %b2 {
-  %b2 = block {
+%asin_3cfbd4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.479248046875h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_3cfbd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_3cfbd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_3cfbd4
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.msl
index 5b26c78..f30db80 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_7b6a44 = func():void -> %b2 {
-  %b2 = block {
+%asin_7b6a44 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.47942554950714111328f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_7b6a44
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_7b6a44
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_7b6a44
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.msl
index 296bdc3..92b6188 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_8cd9c9 = func():void -> %b2 {
-  %b2 = block {
+%asin_8cd9c9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.47942554950714111328f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_8cd9c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_8cd9c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_8cd9c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.msl
index dcad49c..4ec4659 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asin_b4aced = func():void -> %b2 {
-  %b2 = block {
+%asin_b4aced = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.479248046875h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_b4aced
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_b4aced
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_b4aced
     ret
   }
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.msl
index 0b15ec6..5de31fb 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%asin_c0c272 = func():void -> %b2 {
-  %b2 = block {
+%asin_c0c272 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 0.47942554950714111328f
     %4:f32 = load %arg_0
     %5:f32 = asin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asin_c0c272
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asin_c0c272
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asin_c0c272
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.msl
index cc644ba..9170e51 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_157447 = func():void -> %b2 {
-  %b2 = block {
+%asinh_157447 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_157447
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_157447
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_157447
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.msl
index e20e4b2..8da41f2 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_2265ee = func():void -> %b2 {
-  %b2 = block {
+%asinh_2265ee = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_2265ee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_2265ee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_2265ee
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.msl
index 9599d43..cdd2f8f 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_468a48 = func():void -> %b2 {
-  %b2 = block {
+%asinh_468a48 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_468a48
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_468a48
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_468a48
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.msl
index ebb9127..bb6c0cf 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_4a2226 = func():void -> %b2 {
-  %b2 = block {
+%asinh_4a2226 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_4a2226
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_4a2226
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_4a2226
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.msl
index 1756f2a..0c55edb 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_8d2e51 = func():void -> %b2 {
-  %b2 = block {
+%asinh_8d2e51 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_8d2e51
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_8d2e51
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_8d2e51
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.msl
index 7722651..b758841 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_95ab2b = func():void -> %b2 {
-  %b2 = block {
+%asinh_95ab2b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_95ab2b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_95ab2b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_95ab2b
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.msl
index 15d38ee..0723f1b 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_ad8f8b = func():void -> %b2 {
-  %b2 = block {
+%asinh_ad8f8b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_ad8f8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_ad8f8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_ad8f8b
     ret
   }
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.msl
index 3b84944..605b105 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%asinh_fb5e8c = func():void -> %b2 {
-  %b2 = block {
+%asinh_fb5e8c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = asinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %asinh_fb5e8c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %asinh_fb5e8c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %asinh_fb5e8c
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.msl
index cd39d38..29ffb53 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%atan_02979a = func():void -> %b2 {
-  %b2 = block {
+%atan_02979a = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_02979a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_02979a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_02979a
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.msl
index 1c1b3af..c0c624d 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_19faea = func():void -> %b2 {
-  %b2 = block {
+%atan_19faea = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_19faea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_19faea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_19faea
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.msl
index e3d9515..2df5a3e 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_1e1764 = func():void -> %b2 {
-  %b2 = block {
+%atan_1e1764 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_1e1764
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_1e1764
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_1e1764
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.msl
index 066a83b..02c54c4 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_331e6d = func():void -> %b2 {
-  %b2 = block {
+%atan_331e6d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_331e6d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_331e6d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_331e6d
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.msl
index 3a72511..d5ab0e8 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_a5f421 = func():void -> %b2 {
-  %b2 = block {
+%atan_a5f421 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_a5f421
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_a5f421
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_a5f421
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.msl
index 18a5705..30940d5 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%atan_a7ba61 = func():void -> %b2 {
-  %b2 = block {
+%atan_a7ba61 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_a7ba61
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_a7ba61
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_a7ba61
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.msl
index 214e08b..6cbb3b7 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_a8b696 = func():void -> %b2 {
-  %b2 = block {
+%atan_a8b696 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_a8b696
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_a8b696
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_a8b696
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.msl
index a75dd95..5c79624 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan_ad96e4 = func():void -> %b2 {
-  %b2 = block {
+%atan_ad96e4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = atan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atan_ad96e4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atan_ad96e4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atan_ad96e4
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.msl
index ff76a15..5eb4fe0 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_21dfea = func():void -> %b2 {
-  %b2 = block {
+%atan2_21dfea = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_21dfea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_21dfea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_21dfea
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.msl
index d938d76..914fb95 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_57fb13 = func():void -> %b2 {
-  %b2 = block {
+%atan2_57fb13 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_57fb13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_57fb13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_57fb13
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.msl
index c64655e..28e491b 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_93febc = func():void -> %b2 {
-  %b2 = block {
+%atan2_93febc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_93febc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_93febc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_93febc
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.msl
index f689e30..5d5b6e9 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_96057c = func():void -> %b2 {
-  %b2 = block {
+%atan2_96057c = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_96057c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_96057c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_96057c
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.msl
index b68b5f0..fdb0d0f 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_a70d0d = func():void -> %b2 {
-  %b2 = block {
+%atan2_a70d0d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_a70d0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_a70d0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_a70d0d
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.msl
index d88a904..b69ca4b 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_ae713e = func():void -> %b2 {
-  %b2 = block {
+%atan2_ae713e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_ae713e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_ae713e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_ae713e
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.msl
index 5282def..8e9ab53 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_ca698e = func():void -> %b2 {
-  %b2 = block {
+%atan2_ca698e = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_ca698e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_ca698e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_ca698e
     ret
   }
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.msl
index 5bcd549..7d3dde6 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atan2_d983ab = func():void -> %b2 {
-  %b2 = block {
+%atan2_d983ab = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %atan2_d983ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %atan2_d983ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %atan2_d983ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.msl
index 589f89b..30c0afa 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_440cca = func():void -> %b2 {
-  %b2 = block {
+%atanh_440cca = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.5f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_440cca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_440cca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_440cca
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.msl
index 89f49fc..f9cedd7 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_5bf88d = func():void -> %b2 {
-  %b2 = block {
+%atanh_5bf88d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.5h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_5bf88d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_5bf88d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_5bf88d
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.msl
index 4559796..937886f 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_7997d8 = func():void -> %b2 {
-  %b2 = block {
+%atanh_7997d8 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 0.5f
     %4:f32 = load %arg_0
     %5:f32 = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_7997d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_7997d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_7997d8
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.msl
index df5364e..36e7fee 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_c0e634 = func():void -> %b2 {
-  %b2 = block {
+%atanh_c0e634 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.5f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_c0e634
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_c0e634
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_c0e634
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.msl
index 9245b77..801ce66 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_d2d8cd = func():void -> %b2 {
-  %b2 = block {
+%atanh_d2d8cd = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.5h
     %4:f16 = load %arg_0
     %5:f16 = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_d2d8cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_d2d8cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_d2d8cd
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.msl
index cd11597..2a736aa 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_e3b450 = func():void -> %b2 {
-  %b2 = block {
+%atanh_e3b450 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.5h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_e3b450
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_e3b450
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_e3b450
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.msl
index ef9123d..73e8145 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_ec4b06 = func():void -> %b2 {
-  %b2 = block {
+%atanh_ec4b06 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.5h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_ec4b06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_ec4b06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_ec4b06
     ret
   }
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.msl
index 378044b..7d4ae12 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%atanh_f3e01b = func():void -> %b2 {
-  %b2 = block {
+%atanh_f3e01b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.5f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = atanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %atanh_f3e01b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %atanh_f3e01b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %atanh_f3e01b
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.msl
index bac8efc..b0e458b 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_794055 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_794055 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicAdd %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicAdd_794055
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicAdd_794055
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.msl
index 9942344..e02fd62 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_8a199a = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_8a199a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicAdd_8a199a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicAdd_8a199a
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.msl
index 8a966a4..a986677 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_d32fe4 = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d32fe4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicAdd_d32fe4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicAdd_d32fe4
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.msl
index 4b871f1..1eaa8da 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAdd_d5db1d = func():void -> %b2 {
-  %b2 = block {
+%atomicAdd_d5db1d = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicAdd %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicAdd_d5db1d
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicAdd_d5db1d
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.msl
index 5404076..a1ba11d 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_152966 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_152966 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicAnd_152966
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicAnd_152966
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.msl
index fd71518..1f18321 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_34edd3 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_34edd3 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicAnd %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicAnd_34edd3
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicAnd_34edd3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.msl
index 9e197c5..fb95c90 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_45a819 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_45a819 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicAnd %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicAnd_45a819
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicAnd_45a819
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.msl
index 03df253..b7fc583 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicAnd_85a8d9 = func():void -> %b2 {
-  %b2 = block {
+%atomicAnd_85a8d9 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicAnd_85a8d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicAnd_85a8d9
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl
index b9b64ed..f516df8 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
@@ -9,12 +9,12 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_1bd40a = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_1bd40a = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
@@ -25,14 +25,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicCompareExchangeWeak_1bd40a
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl
index 3a1c251..b6a731b 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
@@ -9,12 +9,12 @@
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicCompareExchangeWeak_63d8e6 = func():void -> %b2 {
-  %b2 = block {
+%atomicCompareExchangeWeak_63d8e6 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
@@ -25,14 +25,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicCompareExchangeWeak_63d8e6
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl
index 09231af..b4e0e6d 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/83580d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl
index 09231af..b4e0e6d 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/e88938.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicCompareExchangeWeak
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.msl
index e52b45a..01fb28e 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_0a5dca = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_0a5dca = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicExchange %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicExchange_0a5dca
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicExchange_0a5dca
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.msl
index 0d18043..6cce0f2 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_d59712 = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_d59712 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicExchange_d59712
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicExchange_d59712
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.msl
index 3c46ca2..6834d7d 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_e114ba = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_e114ba = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicExchange %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicExchange_e114ba
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicExchange_e114ba
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.msl
index 6a1ff27..4150b9e 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicExchange_f2e22f = func():void -> %b2 {
-  %b2 = block {
+%atomicExchange_f2e22f = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicExchange_f2e22f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicExchange_f2e22f
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.msl
index 93c0012..b990acb 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_0806ad = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_0806ad = func():void {
+  $B2: {
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = atomicLoad %4
     %res:ptr<function, i32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicLoad_0806ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicLoad_0806ad
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.msl
index d6db186..7ae76ad 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_361bf1 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_361bf1 = func():void {
+  $B2: {
     %4:u32 = atomicLoad %arg_0
     %res:ptr<function, u32, read_write> = var, %4
     %6:u32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicLoad_361bf1
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicLoad_361bf1
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.msl
index 8a2bba0..ee77bef 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_afcc03 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_afcc03 = func():void {
+  $B2: {
     %4:i32 = atomicLoad %arg_0
     %res:ptr<function, i32, read_write> = var, %4
     %6:i32 = load %res
@@ -14,9 +14,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %8:void = call %atomicLoad_afcc03
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %9:bool = eq %tint_local_index, 0u
+    if %9 [t: $B4] {  # if_1
+      $B4: {  # true
+        %10:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %11:void = msl.threadgroup_barrier 4u
+    %12:void = call %atomicLoad_afcc03
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.msl
index 0a568fb..0637775 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicLoad_fe6cc3 = func():void -> %b2 {
-  %b2 = block {
+%atomicLoad_fe6cc3 = func():void {
+  $B2: {
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = atomicLoad %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -19,14 +19,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %atomicLoad_fe6cc3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %11:void = call %atomicLoad_fe6cc3
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.msl
index 0092159..1f0f423 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_51b9be = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_51b9be = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicMax_51b9be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicMax_51b9be
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.msl
index 6fd81ce..94e0ee9 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_92aa72 = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_92aa72 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicMax_92aa72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicMax_92aa72
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.msl
index fdf6a3b..562e7ee 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_a89cc3 = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_a89cc3 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicMax %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicMax_a89cc3
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicMax_a89cc3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.msl
index 20816ab..d1b0c9d 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMax_beccfc = func():void -> %b2 {
-  %b2 = block {
+%atomicMax_beccfc = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicMax %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicMax_beccfc
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicMax_beccfc
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.msl
index cbf4ba9..0f2fbc8 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_278235 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_278235 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicMin %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicMin_278235
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicMin_278235
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.msl
index dc79801..bcceaf4 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_69d383 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_69d383 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicMin %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicMin_69d383
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicMin_69d383
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.msl
index ecf7242..2ba247f 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_8e38dc = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_8e38dc = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicMin_8e38dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicMin_8e38dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.msl
index 134d87c..b73dd5e 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicMin_c67a74 = func():void -> %b2 {
-  %b2 = block {
+%atomicMin_c67a74 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicMin_c67a74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicMin_c67a74
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.msl
index 877e6da..674263e 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_5e3d61 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_5e3d61 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicOr %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicOr_5e3d61
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicOr_5e3d61
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.msl
index 652a30c..55439a1 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_5e95d4 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_5e95d4 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicOr_5e95d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicOr_5e95d4
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.msl
index ae3aa4f..676e025 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_8d96a0 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_8d96a0 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicOr_8d96a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicOr_8d96a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.msl
index 00a18f6..9411bde 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicOr_d09248 = func():void -> %b2 {
-  %b2 = block {
+%atomicOr_d09248 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicOr %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicOr_d09248
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicOr_d09248
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicStore/726882.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.msl
index 40823e3..92c0fdd 100644
--- a/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicStore/8bea94.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: atomicStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.msl
index f3c5739..c1a5cdb 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_cdc29e = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_cdc29e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %4:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %5:u32 = load %arg_1
@@ -17,14 +17,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %8:void = call %atomicStore_cdc29e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %10:void = call %atomicStore_cdc29e
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.msl
index db767d4..9e419f8 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
 }
 
-%atomicStore_d1e9a6 = func():void -> %b2 {
-  %b2 = block {
+%atomicStore_d1e9a6 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %4:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %5:i32 = load %arg_1
@@ -17,14 +17,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %8:void = call %atomicStore_d1e9a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %10:void = call %atomicStore_d1e9a6
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.msl
index 681bc12..4c11fa3 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_051100 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_051100 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicSub_051100
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicSub_051100
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.msl
index 7a85c2a..d2ef285 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_0d26c2 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_0d26c2 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicSub %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicSub_0d26c2
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicSub_0d26c2
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.msl
index 2b75d6d..f2b9e5d 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_15bfc9 = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_15bfc9 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicSub_15bfc9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicSub_15bfc9
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.msl
index 2209109..08c3396 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicSub_77883a = func():void -> %b2 {
-  %b2 = block {
+%atomicSub_77883a = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicSub %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicSub_77883a
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicSub_77883a
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.msl
index c65f07f..098fa82 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_54510e = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_54510e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:ptr<storage, atomic<u32>, read_write> = access %sb_rw, 0u
     %6:u32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicXor_54510e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicXor_54510e
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.msl
index 2080a0d..7006b95 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<i32>, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_75dc95 = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_75dc95 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_1
     %6:i32 = atomicXor %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicXor_75dc95
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicXor_75dc95
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.msl
index f3129fd..8f0769e 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: SB_RW = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SB_RW = struct @align(4) {
   arg_0:atomic<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %sb_rw:ptr<storage, SB_RW, read_write> = var @binding_point(0, 0)
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_c1b78c = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_c1b78c = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:ptr<storage, atomic<i32>, read_write> = access %sb_rw, 0u
     %6:i32 = load %arg_1
@@ -21,14 +21,14 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %11:void = call %atomicXor_c1b78c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b4 {
-  %b4 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B4: {
     %13:void = call %atomicXor_c1b78c
     ret
   }
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.msl
index 8f604ef..add516e 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, atomic<u32>, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%atomicXor_c8e6be = func():void -> %b2 {
-  %b2 = block {
+%atomicXor_c8e6be = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_1
     %6:u32 = atomicXor %arg_0, %5
@@ -16,9 +16,17 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %atomicXor_c8e6be
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %11:bool = eq %tint_local_index, 0u
+    if %11 [t: $B4] {  # if_1
+      $B4: {  # true
+        %12:void = atomicStore %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %atomicXor_c8e6be
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8f69339
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_0fe0c9 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %arg_0
+    %5:vec3<f32> = bitcast %4
+    %res:ptr<function, vec3<f32>, read_write> = var, %5
+    %7:vec3<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_0fe0c9
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_0fe0c9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_0fe0c9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3bc3ef4
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_160c09 = func():void {
+  $B2: {
+    %res:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_160c09
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_160c09
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_160c09
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.msl
new file mode 100644
index 0000000..73abc25
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_16cba4 = func():void {
+  $B2: {
+    %arg_0:ptr<function, f32, read_write> = var, 1.0f
+    %4:f32 = load %arg_0
+    %5:i32 = bitcast %4
+    %res:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_16cba4
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_16cba4
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_16cba4
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4e4b6f4
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_1c3b31 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %arg_0
+    %5:vec2<u32> = bitcast %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_1c3b31
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_1c3b31
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_1c3b31
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..a6ff8e1
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_1df11f = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
+    %4:vec2<f16> = load %arg_0
+    %5:vec2<f16> = bitcast %4
+    %res:ptr<function, vec2<f16>, read_write> = var, %5
+    %7:vec2<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_1df11f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_1df11f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_1df11f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3224687
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_214f23 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
+    %4:vec4<f16> = load %arg_0
+    %5:vec2<i32> = bitcast %4
+    %res:ptr<function, vec2<i32>, read_write> = var, %5
+    %7:vec2<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_214f23
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_214f23
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_214f23
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c224a52
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_23c8bd = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
+    %4:vec2<f16> = load %arg_0
+    %5:f32 = bitcast %4
+    %res:ptr<function, f32, read_write> = var, %5
+    %7:f32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_23c8bd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_23c8bd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_23c8bd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0d5fc30
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2421c8 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %arg_0
+    %5:vec2<f32> = bitcast %4
+    %res:ptr<function, vec2<f32>, read_write> = var, %5
+    %7:vec2<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_2421c8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_2421c8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_2421c8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.msl
new file mode 100644
index 0000000..a0dd331
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_287bdf = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %4:vec3<i32> = load %arg_0
+    %5:vec3<u32> = bitcast %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_287bdf
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_287bdf
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_287bdf
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e8b86d1
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2a6e58 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
+    %4:vec4<f16> = load %arg_0
+    %5:vec2<f32> = bitcast %4
+    %res:ptr<function, vec2<f32>, read_write> = var, %5
+    %7:vec2<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_2a6e58
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_2a6e58
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_2a6e58
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.msl
new file mode 100644
index 0000000..f24eef3
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2b05b3 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
+    %4:vec3<f32> = load %arg_0
+    %5:vec3<f32> = bitcast %4
+    %res:ptr<function, vec3<f32>, read_write> = var, %5
+    %7:vec3<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_2b05b3
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_2b05b3
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_2b05b3
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0355a57
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_2b2738 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
+    %4:vec2<f32> = load %arg_0
+    %5:vec2<u32> = bitcast %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_2b2738
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_2b2738
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_2b2738
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.msl
new file mode 100644
index 0000000..36d608f
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_31c080 = func():void {
+  $B2: {
+    %arg_0:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %arg_0
+    %5:u32 = bitcast %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_31c080
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_31c080
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_31c080
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8deaf83
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_332f78 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %4:vec3<i32> = load %arg_0
+    %5:vec3<f32> = bitcast %4
+    %res:ptr<function, vec3<f32>, read_write> = var, %5
+    %7:vec3<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_332f78
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_332f78
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_332f78
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b7b950e
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_3e7b47 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
+    %4:vec4<f16> = load %arg_0
+    %5:vec4<f16> = bitcast %4
+    %res:ptr<function, vec4<f16>, read_write> = var, %5
+    %7:vec4<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_3e7b47
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_3e7b47
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_3e7b47
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e0ae4c0
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_3f7437 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %arg_0
+    %5:vec4<i32> = bitcast %4
+    %res:ptr<function, vec4<i32>, read_write> = var, %5
+    %7:vec4<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_3f7437
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_3f7437
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_3f7437
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..1bab90a
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_3fdacd = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %arg_0
+    %5:vec4<f32> = bitcast %4
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_3fdacd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_3fdacd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_3fdacd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.msl
new file mode 100644
index 0000000..302376f
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_429d64 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
+    %4:vec2<f32> = load %arg_0
+    %5:vec4<f16> = bitcast %4
+    %res:ptr<function, vec4<f16>, read_write> = var, %5
+    %7:vec4<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_429d64
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_429d64
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_429d64
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0b77eed
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_436211 = func():void {
+  $B2: {
+    %arg_0:ptr<function, f16, read_write> = var, 1.0h
+    %4:f16 = load %arg_0
+    %5:f16 = bitcast %4
+    %res:ptr<function, f16, read_write> = var, %5
+    %7:f16 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_436211
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_436211
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_436211
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6fbca43
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_5081ed = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
+    %4:vec3<f16> = load %arg_0
+    %5:vec3<f16> = bitcast %4
+    %res:ptr<function, vec3<f16>, read_write> = var, %5
+    %7:vec3<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_5081ed
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_5081ed
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_5081ed
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.msl
new file mode 100644
index 0000000..37d76ca
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_56266e = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
+    %4:vec3<f32> = load %arg_0
+    %5:vec3<u32> = bitcast %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_56266e
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_56266e
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_56266e
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b980939
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_66e93d = func():void {
+  $B2: {
+    %arg_0:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %arg_0
+    %5:vec2<f16> = bitcast %4
+    %res:ptr<function, vec2<f16>, read_write> = var, %5
+    %7:vec2<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_66e93d
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_66e93d
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_66e93d
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.msl
new file mode 100644
index 0000000..10c8c1c
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_674557 = func():void {
+  $B2: {
+    %arg_0:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %arg_0
+    %5:vec2<f16> = bitcast %4
+    %res:ptr<function, vec2<f16>, read_write> = var, %5
+    %7:vec2<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_674557
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_674557
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_674557
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3903be1
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_6ac6f9 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
+    %4:vec2<f16> = load %arg_0
+    %5:i32 = bitcast %4
+    %res:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_6ac6f9
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_6ac6f9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_6ac6f9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..75088ccd
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_6de2bd = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %4:vec4<f32> = load %arg_0
+    %5:vec4<i32> = bitcast %4
+    %res:ptr<function, vec4<i32>, read_write> = var, %5
+    %7:vec4<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_6de2bd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_6de2bd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_6de2bd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5a11cf6
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_70b121 = func():void {
+  $B2: {
+    %res:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_70b121
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_70b121
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_70b121
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2f33f9d
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_71c92a = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %arg_0
+    %5:vec4<f16> = bitcast %4
+    %res:ptr<function, vec4<f16>, read_write> = var, %5
+    %7:vec4<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_71c92a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_71c92a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_71c92a
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5de8567
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_745b27 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %4:vec4<f32> = load %arg_0
+    %5:vec4<f32> = bitcast %4
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_745b27
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_745b27
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_745b27
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7b41ec2
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_7e67cc = func():void {
+  $B2: {
+    %arg_0:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %arg_0
+    %5:i32 = bitcast %4
+    %res:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_7e67cc
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_7e67cc
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_7e67cc
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..33d25ac
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_7ffa9c = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %arg_0
+    %5:vec4<u32> = bitcast %4
+    %res:ptr<function, vec4<u32>, read_write> = var, %5
+    %7:vec4<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_7ffa9c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_7ffa9c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_7ffa9c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.msl
new file mode 100644
index 0000000..beeb8f4
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_81c5f5 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
+    %4:vec4<f16> = load %arg_0
+    %5:vec2<u32> = bitcast %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_81c5f5
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_81c5f5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_81c5f5
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9481752
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_8318a8 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %arg_0
+    %5:vec3<u32> = bitcast %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_8318a8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_8318a8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_8318a8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..21f6360
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_879dc9 = func():void {
+  $B2: {
+    %res:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_879dc9
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_879dc9
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_879dc9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3d5901a
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_899e50 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
+    %4:vec2<f32> = load %arg_0
+    %5:vec2<i32> = bitcast %4
+    %res:ptr<function, vec2<i32>, read_write> = var, %5
+    %7:vec2<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_899e50
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_899e50
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_899e50
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0b8b043
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_8d184c = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %4:vec4<f32> = load %arg_0
+    %5:vec4<u32> = bitcast %4
+    %res:ptr<function, vec4<u32>, read_write> = var, %5
+    %7:vec4<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_8d184c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_8d184c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_8d184c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9ddc8fe
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_9bcf71 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
+    %4:vec2<f32> = load %arg_0
+    %5:vec2<f32> = bitcast %4
+    %res:ptr<function, vec2<f32>, read_write> = var, %5
+    %7:vec2<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_9bcf71
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_9bcf71
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_9bcf71
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9f12f8d
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_9ca42c = func():void {
+  $B2: {
+    %arg_0:ptr<function, f32, read_write> = var, 1.0f
+    %4:f32 = load %arg_0
+    %5:vec2<f16> = bitcast %4
+    %res:ptr<function, vec2<f16>, read_write> = var, %5
+    %7:vec2<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_9ca42c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_9ca42c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_9ca42c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0aed783
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_9eee21 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %4:vec3<i32> = load %arg_0
+    %5:vec3<i32> = bitcast %4
+    %res:ptr<function, vec3<i32>, read_write> = var, %5
+    %7:vec3<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_9eee21
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_9eee21
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_9eee21
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.msl
new file mode 100644
index 0000000..de13cfd
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a4b290 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %arg_0
+    %5:vec4<f32> = bitcast %4
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_a4b290
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_a4b290
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_a4b290
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ba225e9
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a58b50 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
+    %4:vec2<f16> = load %arg_0
+    %5:u32 = bitcast %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_a58b50
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_a58b50
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_a58b50
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5132cd1
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a5c539 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %arg_0
+    %5:vec4<i32> = bitcast %4
+    %res:ptr<function, vec4<i32>, read_write> = var, %5
+    %7:vec4<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_a5c539
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_a5c539
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_a5c539
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..147242f
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a8c93f = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %arg_0
+    %5:vec4<u32> = bitcast %4
+    %res:ptr<function, vec4<u32>, read_write> = var, %5
+    %7:vec4<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_a8c93f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_a8c93f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_a8c93f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e30d2fa
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_a8ea1b = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %arg_0
+    %5:vec3<i32> = bitcast %4
+    %res:ptr<function, vec3<i32>, read_write> = var, %5
+    %7:vec3<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_a8ea1b
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_a8ea1b
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_a8ea1b
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fd5bbda
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_ac09d0 = func():void {
+  $B2: {
+    %arg_0:ptr<function, f32, read_write> = var, 1.0f
+    %4:f32 = load %arg_0
+    %5:f32 = bitcast %4
+    %res:ptr<function, f32, read_write> = var, %5
+    %7:f32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_ac09d0
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_ac09d0
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_ac09d0
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d5df97e
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_ad4b05 = func():void {
+  $B2: {
+    %arg_0:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %arg_0
+    %5:f32 = bitcast %4
+    %res:ptr<function, f32, read_write> = var, %5
+    %7:f32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_ad4b05
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_ad4b05
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_ad4b05
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..535ebc1
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_b28cbd = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
+    %4:vec3<f32> = load %arg_0
+    %5:vec3<i32> = bitcast %4
+    %res:ptr<function, vec3<i32>, read_write> = var, %5
+    %7:vec3<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_b28cbd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_b28cbd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_b28cbd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.msl
new file mode 100644
index 0000000..59c56c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_b77573 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %arg_0
+    %5:vec2<f32> = bitcast %4
+    %res:ptr<function, vec2<f32>, read_write> = var, %5
+    %7:vec2<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_b77573
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_b77573
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_b77573
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ddaaea8
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_bc3994 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %arg_0
+    %5:vec4<f16> = bitcast %4
+    %res:ptr<function, vec4<f16>, read_write> = var, %5
+    %7:vec4<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_bc3994
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_bc3994
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_bc3994
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4c420af
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_c69aaf = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %arg_0
+    %5:vec2<i32> = bitcast %4
+    %res:ptr<function, vec2<i32>, read_write> = var, %5
+    %7:vec2<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_c69aaf
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_c69aaf
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_c69aaf
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fcff441
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_ca5c3f = func():void {
+  $B2: {
+    %arg_0:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %arg_0
+    %5:f32 = bitcast %4
+    %res:ptr<function, f32, read_write> = var, %5
+    %7:f32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_ca5c3f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_ca5c3f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_ca5c3f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..befcd85
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_cc7aa7 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %arg_0
+    %5:vec2<i32> = bitcast %4
+    %res:ptr<function, vec2<i32>, read_write> = var, %5
+    %7:vec2<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_cc7aa7
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_cc7aa7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_cc7aa7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9130589
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_d29765 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %arg_0
+    %5:vec2<u32> = bitcast %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_d29765
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_d29765
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_d29765
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.msl
new file mode 100644
index 0000000..df8dd02
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_dce842 = func():void {
+  $B2: {
+    %arg_0:ptr<function, i32, read_write> = var, 1i
+    %4:i32 = load %arg_0
+    %5:u32 = bitcast %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_dce842
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_dce842
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_dce842
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0aef928
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_e61c57 = func():void {
+  $B2: {
+    %arg_0:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %arg_0
+    %5:i32 = bitcast %4
+    %res:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_e61c57
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_e61c57
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_e61c57
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..26286a0
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_e6c18f = func():void {
+  $B2: {
+    %arg_0:ptr<function, f32, read_write> = var, 1.0f
+    %4:f32 = load %arg_0
+    %5:u32 = bitcast %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %bitcast_e6c18f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %bitcast_e6c18f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %bitcast_e6c18f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.msl
new file mode 100644
index 0000000..be39e07
--- /dev/null
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.ir.msl
@@ -0,0 +1,40 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%bitcast_f756cd = func():void {
+  $B2: {
+    %res:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %res
+    store %prevent_dce, %4
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %6:void = call %bitcast_f756cd
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %8:void = call %bitcast_f756cd
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %10:void = call %bitcast_f756cd
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.msl
index ae973dc..cbaf635 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_09bf52 = func():void -> %b2 {
-  %b2 = block {
+%ceil_09bf52 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.5h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_09bf52
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_09bf52
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_09bf52
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.msl
index f17ccc3..31069bf 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_18c240 = func():void -> %b2 {
-  %b2 = block {
+%ceil_18c240 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.5h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_18c240
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_18c240
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_18c240
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.msl
index 10cce88..2752308 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_34064b = func():void -> %b2 {
-  %b2 = block {
+%ceil_34064b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.5f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_34064b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_34064b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_34064b
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.msl
index c7f1e60..76b4825 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_4bca2a = func():void -> %b2 {
-  %b2 = block {
+%ceil_4bca2a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.5h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_4bca2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_4bca2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_4bca2a
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.msl
index f3b2ceb..7f3c625 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_678655 = func():void -> %b2 {
-  %b2 = block {
+%ceil_678655 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.5f
     %4:f32 = load %arg_0
     %5:f32 = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_678655
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_678655
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_678655
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.msl
index b163813..de82b9f 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_96f597 = func():void -> %b2 {
-  %b2 = block {
+%ceil_96f597 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.5f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_96f597
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_96f597
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_96f597
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.msl
index eec2866..b0ca642 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_b74c16 = func():void -> %b2 {
-  %b2 = block {
+%ceil_b74c16 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.5f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_b74c16
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_b74c16
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_b74c16
     ret
   }
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.msl
index 7eade12..c4060ff 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%ceil_f3f889 = func():void -> %b2 {
-  %b2 = block {
+%ceil_f3f889 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.5h
     %4:f16 = load %arg_0
     %5:f16 = ceil %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ceil_f3f889
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ceil_f3f889
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ceil_f3f889
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.msl
index 433d0dc..4b952a9 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_0acf8f = func():void -> %b2 {
-  %b2 = block {
+%clamp_0acf8f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_0acf8f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_0acf8f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_0acf8f
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.msl
index bc95846..c0557d7 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_1a32e3 = func():void -> %b2 {
-  %b2 = block {
+%clamp_1a32e3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %6:vec4<i32> = load %arg_0
     %7:vec4<i32> = load %arg_1
     %8:vec4<i32> = load %arg_2
-    %9:vec4<i32> = clamp %6, %7, %8
-    %res:ptr<function, vec4<i32>, read_write> = var, %9
-    %11:vec4<i32> = load %res
-    store %prevent_dce, %11
+    %9:vec4<i32> = let %8
+    %10:vec4<i32> = max %6, %7
+    %11:vec4<i32> = min %10, %9
+    %res:ptr<function, vec4<i32>, read_write> = var, %11
+    %13:vec4<i32> = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_1a32e3
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_1a32e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_1a32e3
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_1a32e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_1a32e3
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_1a32e3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.msl
index 3a3a343..8379ec8 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_235b29 = func():void -> %b2 {
-  %b2 = block {
+%clamp_235b29 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_235b29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_235b29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_235b29
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.msl
index b491e1d..a567d0d 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_2bd567 = func():void -> %b2 {
-  %b2 = block {
+%clamp_2bd567 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_2bd567
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_2bd567
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_2bd567
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.msl
index a1aa8d7..bbb1e4a 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_2bde41 = func():void -> %b2 {
-  %b2 = block {
+%clamp_2bde41 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_2bde41
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_2bde41
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_2bde41
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.msl
index 184e48f..3da7fdf 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_2c251b = func():void -> %b2 {
-  %b2 = block {
+%clamp_2c251b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_2c251b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_2c251b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_2c251b
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.msl
index 4ad74e6..787fa10 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_548fc7 = func():void -> %b2 {
-  %b2 = block {
+%clamp_548fc7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %6:vec3<u32> = load %arg_0
     %7:vec3<u32> = load %arg_1
     %8:vec3<u32> = load %arg_2
-    %9:vec3<u32> = clamp %6, %7, %8
-    %res:ptr<function, vec3<u32>, read_write> = var, %9
-    %11:vec3<u32> = load %res
-    store %prevent_dce, %11
+    %9:vec3<u32> = let %8
+    %10:vec3<u32> = max %6, %7
+    %11:vec3<u32> = min %10, %9
+    %res:ptr<function, vec3<u32>, read_write> = var, %11
+    %13:vec3<u32> = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_548fc7
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_548fc7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_548fc7
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_548fc7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_548fc7
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_548fc7
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.msl
index 5fb10b9..8ef14fd 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_553ffb = func():void -> %b2 {
-  %b2 = block {
+%clamp_553ffb = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_553ffb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_553ffb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_553ffb
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.msl
index a8ac9a5..1f183f9 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_5f0819 = func():void -> %b2 {
-  %b2 = block {
+%clamp_5f0819 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %6:vec3<i32> = load %arg_0
     %7:vec3<i32> = load %arg_1
     %8:vec3<i32> = load %arg_2
-    %9:vec3<i32> = clamp %6, %7, %8
-    %res:ptr<function, vec3<i32>, read_write> = var, %9
-    %11:vec3<i32> = load %res
-    store %prevent_dce, %11
+    %9:vec3<i32> = let %8
+    %10:vec3<i32> = max %6, %7
+    %11:vec3<i32> = min %10, %9
+    %res:ptr<function, vec3<i32>, read_write> = var, %11
+    %13:vec3<i32> = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_5f0819
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_5f0819
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_5f0819
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_5f0819
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_5f0819
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_5f0819
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.msl
index 408888b..d599483 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_6c1749 = func():void -> %b2 {
-  %b2 = block {
+%clamp_6c1749 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %6:vec2<i32> = load %arg_0
     %7:vec2<i32> = load %arg_1
     %8:vec2<i32> = load %arg_2
-    %9:vec2<i32> = clamp %6, %7, %8
-    %res:ptr<function, vec2<i32>, read_write> = var, %9
-    %11:vec2<i32> = load %res
-    store %prevent_dce, %11
+    %9:vec2<i32> = let %8
+    %10:vec2<i32> = max %6, %7
+    %11:vec2<i32> = min %10, %9
+    %res:ptr<function, vec2<i32>, read_write> = var, %11
+    %13:vec2<i32> = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_6c1749
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_6c1749
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_6c1749
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_6c1749
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_6c1749
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_6c1749
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.msl
index 84ca0c5..e126b0a 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_7706d7 = func():void -> %b2 {
-  %b2 = block {
+%clamp_7706d7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %6:vec2<u32> = load %arg_0
     %7:vec2<u32> = load %arg_1
     %8:vec2<u32> = load %arg_2
-    %9:vec2<u32> = clamp %6, %7, %8
-    %res:ptr<function, vec2<u32>, read_write> = var, %9
-    %11:vec2<u32> = load %res
-    store %prevent_dce, %11
+    %9:vec2<u32> = let %8
+    %10:vec2<u32> = max %6, %7
+    %11:vec2<u32> = min %10, %9
+    %res:ptr<function, vec2<u32>, read_write> = var, %11
+    %13:vec2<u32> = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_7706d7
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_7706d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_7706d7
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_7706d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_7706d7
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_7706d7
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.msl
index 11fdd8c..68a7d40 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_867397 = func():void -> %b2 {
-  %b2 = block {
+%clamp_867397 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_867397
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_867397
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_867397
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.msl
index e4367ca..cc2bedb 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_a2de25 = func():void -> %b2 {
-  %b2 = block {
+%clamp_a2de25 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:u32 = load %arg_0
     %7:u32 = load %arg_1
     %8:u32 = load %arg_2
-    %9:u32 = clamp %6, %7, %8
-    %res:ptr<function, u32, read_write> = var, %9
-    %11:u32 = load %res
-    store %prevent_dce, %11
+    %9:u32 = let %8
+    %10:u32 = max %6, %7
+    %11:u32 = min %10, %9
+    %res:ptr<function, u32, read_write> = var, %11
+    %13:u32 = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_a2de25
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_a2de25
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_a2de25
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_a2de25
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_a2de25
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_a2de25
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.msl
index 528724f..b2d9963 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_b07c65 = func():void -> %b2 {
-  %b2 = block {
+%clamp_b07c65 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:i32 = load %arg_0
     %7:i32 = load %arg_1
     %8:i32 = load %arg_2
-    %9:i32 = clamp %6, %7, %8
-    %res:ptr<function, i32, read_write> = var, %9
-    %11:i32 = load %res
-    store %prevent_dce, %11
+    %9:i32 = let %8
+    %10:i32 = max %6, %7
+    %11:i32 = min %10, %9
+    %res:ptr<function, i32, read_write> = var, %11
+    %13:i32 = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_b07c65
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_b07c65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_b07c65
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_b07c65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_b07c65
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_b07c65
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.msl
index b8447f6..2a2c14b 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_b195eb = func():void -> %b2 {
-  %b2 = block {
+%clamp_b195eb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %clamp_b195eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %clamp_b195eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %clamp_b195eb
     ret
   }
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.msl
index 56e44d6..2036f4e 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.ir.msl
@@ -1,39 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%clamp_bd43ce = func():void -> %b2 {
-  %b2 = block {
+%clamp_bd43ce = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %6:vec4<u32> = load %arg_0
     %7:vec4<u32> = load %arg_1
     %8:vec4<u32> = load %arg_2
-    %9:vec4<u32> = clamp %6, %7, %8
-    %res:ptr<function, vec4<u32>, read_write> = var, %9
-    %11:vec4<u32> = load %res
-    store %prevent_dce, %11
+    %9:vec4<u32> = let %8
+    %10:vec4<u32> = max %6, %7
+    %11:vec4<u32> = min %10, %9
+    %res:ptr<function, vec4<u32>, read_write> = var, %11
+    %13:vec4<u32> = load %res
+    store %prevent_dce, %13
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %clamp_bd43ce
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %15:void = call %clamp_bd43ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %clamp_bd43ce
+%fragment_main = @fragment func():void {
+  $B4: {
+    %17:void = call %clamp_bd43ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %clamp_bd43ce
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %19:void = call %clamp_bd43ce
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.msl
index c2f985d..8b8ef827 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_0835a8 = func():void -> %b2 {
-  %b2 = block {
+%cos_0835a8 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_0835a8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_0835a8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_0835a8
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.msl
index d5f0174..f1a498a 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_0a89f7 = func():void -> %b2 {
-  %b2 = block {
+%cos_0a89f7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_0a89f7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_0a89f7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_0a89f7
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.msl
index e05558a..c989ffb 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_16dc15 = func():void -> %b2 {
-  %b2 = block {
+%cos_16dc15 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_16dc15
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_16dc15
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_16dc15
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.msl
index f2b612c..1f90d5b 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_29d66d = func():void -> %b2 {
-  %b2 = block {
+%cos_29d66d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_29d66d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_29d66d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_29d66d
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.msl
index 0abebfc..ebc0227 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_5bc2c6 = func():void -> %b2 {
-  %b2 = block {
+%cos_5bc2c6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_5bc2c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_5bc2c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_5bc2c6
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.msl
index 4d21419..f111de7 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cos_c3b486 = func():void -> %b2 {
-  %b2 = block {
+%cos_c3b486 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_c3b486
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_c3b486
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_c3b486
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.msl
index e2b2867..3e56c13 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%cos_c5c28e = func():void -> %b2 {
-  %b2 = block {
+%cos_c5c28e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %arg_0
     %5:f32 = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_c5c28e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_c5c28e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_c5c28e
     ret
   }
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.msl
index 502f58d..3820c7f 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%cos_fc047d = func():void -> %b2 {
-  %b2 = block {
+%cos_fc047d = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %arg_0
     %5:f16 = cos %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cos_fc047d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cos_fc047d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cos_fc047d
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.msl
index ed121b0..462884c 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_2ed778 = func():void -> %b2 {
-  %b2 = block {
+%cosh_2ed778 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %arg_0
     %5:f16 = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_2ed778
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_2ed778
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_2ed778
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.msl
index c147f12..5db6769 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_377652 = func():void -> %b2 {
-  %b2 = block {
+%cosh_377652 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_377652
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_377652
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_377652
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.msl
index fa776caa9..256b96a 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_3b7bbf = func():void -> %b2 {
-  %b2 = block {
+%cosh_3b7bbf = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_3b7bbf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_3b7bbf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_3b7bbf
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.msl
index 90ffbd1..2919630 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_43b672 = func():void -> %b2 {
-  %b2 = block {
+%cosh_43b672 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_43b672
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_43b672
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_43b672
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.msl
index 38fc295..aaedb1e 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_b1b8a0 = func():void -> %b2 {
-  %b2 = block {
+%cosh_b1b8a0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_b1b8a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_b1b8a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_b1b8a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.msl
index 63aeacd..08f15c7 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_c13756 = func():void -> %b2 {
-  %b2 = block {
+%cosh_c13756 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_c13756
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_c13756
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_c13756
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.msl
index f73c47f..fbc323c 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_da92dd = func():void -> %b2 {
-  %b2 = block {
+%cosh_da92dd = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %arg_0
     %5:f32 = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_da92dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_da92dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_da92dd
     ret
   }
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.msl
index 79d2fbf..8fe2e12 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cosh_e0c1de = func():void -> %b2 {
-  %b2 = block {
+%cosh_e0c1de = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = cosh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %cosh_e0c1de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %cosh_e0c1de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %cosh_e0c1de
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.msl
index 0a37cea..f78c43d 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_208d46 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_208d46 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:u32 = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_208d46
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_208d46
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_208d46
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.msl
index 6aea24d..20e2bb9 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_6d4656 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_6d4656 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_6d4656
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_6d4656
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_6d4656
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.msl
index ad28b86..6779730 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_70783f = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_70783f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
     %5:vec2<u32> = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_70783f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_70783f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_70783f
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.msl
index b28c0ed..d553603 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_7c38a6 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_7c38a6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
     %5:vec3<i32> = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_7c38a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_7c38a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_7c38a6
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.msl
index b77efa3..7a43878 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_858d40 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_858d40 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
     %5:vec2<i32> = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_858d40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_858d40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_858d40
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.msl
index 565b333..f05b12a 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_ab6345 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_ab6345 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
     %5:vec3<u32> = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_ab6345
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_ab6345
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_ab6345
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.msl
index e7dc342..34db708 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_eab32b = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_eab32b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
     %5:vec4<i32> = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_eab32b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_eab32b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_eab32b
     ret
   }
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.msl
index dabb622..b048ae0 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countLeadingZeros_f70103 = func():void -> %b2 {
-  %b2 = block {
+%countLeadingZeros_f70103 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
     %5:vec4<u32> = countLeadingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countLeadingZeros_f70103
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countLeadingZeros_f70103
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countLeadingZeros_f70103
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.msl
index 6563ebc..c2dcf06 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_0d0e46 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_0d0e46 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
     %5:vec4<u32> = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_0d0e46
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_0d0e46
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_0d0e46
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.msl
index dca6ba8..6c50856 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_0f7980 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_0f7980 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
     %5:vec4<i32> = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_0f7980
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_0f7980
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_0f7980
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.msl
index 3b2698c..767b61e 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_65d2ae = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_65d2ae = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
     %5:vec3<i32> = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_65d2ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_65d2ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_65d2ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.msl
index a5f238c..9ffbb82 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_690cfc = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_690cfc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
     %5:vec3<u32> = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_690cfc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_690cfc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_690cfc
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.msl
index 2ca42c8..202a66a 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_94fd81 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_94fd81 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
     %5:vec2<u32> = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_94fd81
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_94fd81
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_94fd81
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.msl
index 22caf9b..caa73ce 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_ae44f9 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_ae44f9 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:u32 = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_ae44f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_ae44f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_ae44f9
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.msl
index d5452ca..97655bb 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_af90e2 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_af90e2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
     %5:vec2<i32> = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_af90e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_af90e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_af90e2
     ret
   }
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.msl
index ef0bcdf..68e35d3 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%countOneBits_fd88b2 = func():void -> %b2 {
-  %b2 = block {
+%countOneBits_fd88b2 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = countOneBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countOneBits_fd88b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countOneBits_fd88b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countOneBits_fd88b2
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.msl
index a7adecd..c0b588c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_1ad138 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_1ad138 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
     %5:vec2<u32> = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_1ad138
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_1ad138
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_1ad138
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.msl
index 980b6cd..0c43f1f 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_1dc84a = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_1dc84a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
     %5:vec4<i32> = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_1dc84a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_1dc84a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_1dc84a
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.msl
index 171a41e..9e37cdc 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_21e394 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_21e394 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:u32 = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_21e394
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_21e394
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_21e394
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.msl
index c730c70..7170c77 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_327c37 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_327c37 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
     %5:vec2<i32> = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_327c37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_327c37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_327c37
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.msl
index 43b2d70..22109af 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_42fed6 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_42fed6 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_42fed6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_42fed6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_42fed6
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.msl
index 5171466..ef0218c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_8ed26f = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_8ed26f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
     %5:vec3<u32> = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_8ed26f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_8ed26f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_8ed26f
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.msl
index 812d396..0bb4f4e 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_acfacb = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_acfacb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
     %5:vec3<i32> = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_acfacb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_acfacb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_acfacb
     ret
   }
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl
index 027df62..373c504 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%countTrailingZeros_d2b4a0 = func():void -> %b2 {
-  %b2 = block {
+%countTrailingZeros_d2b4a0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
     %5:vec4<u32> = countTrailingZeros %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %countTrailingZeros_d2b4a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %countTrailingZeros_d2b4a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %countTrailingZeros_d2b4a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.msl
index cf9217c..1aaf80d 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%cross_041cb0 = func():void -> %b2 {
-  %b2 = block {
+%cross_041cb0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %cross_041cb0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %cross_041cb0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %cross_041cb0
     ret
   }
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.msl
index e080950..7efca35 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%cross_9857cb = func():void -> %b2 {
-  %b2 = block {
+%cross_9857cb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %cross_9857cb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %cross_9857cb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %cross_9857cb
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.msl
index be2dacc..f6516f9 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_0d170c = func():void -> %b2 {
-  %b2 = block {
+%degrees_0d170c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_0d170c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_0d170c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_0d170c
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.msl
index ef4f6b4..74cda5e 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_1ad5df = func():void -> %b2 {
-  %b2 = block {
+%degrees_1ad5df = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_1ad5df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_1ad5df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_1ad5df
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.msl
index cec0079..f9f1fb8 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_2af623 = func():void -> %b2 {
-  %b2 = block {
+%degrees_2af623 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_2af623
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_2af623
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_2af623
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.msl
index 2e23065..036c9f4 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_3055d3 = func():void -> %b2 {
-  %b2 = block {
+%degrees_3055d3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_3055d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_3055d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_3055d3
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.msl
index 4907ce5..3e931a4 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_51f705 = func():void -> %b2 {
-  %b2 = block {
+%degrees_51f705 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_51f705
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_51f705
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_51f705
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.msl
index 4ede4bd..ea9f15f 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_5e9805 = func():void -> %b2 {
-  %b2 = block {
+%degrees_5e9805 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_5e9805
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_5e9805
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_5e9805
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.msl
index 42a53d4..4c30577 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_dfe8f4 = func():void -> %b2 {
-  %b2 = block {
+%degrees_dfe8f4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_dfe8f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_dfe8f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_dfe8f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.msl
index 176875d..994b8d3 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%degrees_f59715 = func():void -> %b2 {
-  %b2 = block {
+%degrees_f59715 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = degrees %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %degrees_f59715
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %degrees_f59715
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %degrees_f59715
     ret
   }
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.msl
index e7a4585..abf9485 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_2b62ba = func():void -> %b2 {
-  %b2 = block {
+%determinant_2b62ba = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(1.0f))
     %4:mat3x3<f32> = load %arg_0
     %5:f32 = determinant %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %determinant_2b62ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %determinant_2b62ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %determinant_2b62ba
     ret
   }
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.msl
index 0abd867..0d95a2d 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_32bfde = func():void -> %b2 {
-  %b2 = block {
+%determinant_32bfde = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(1.0h))
     %4:mat4x4<f16> = load %arg_0
     %5:f16 = determinant %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %determinant_32bfde
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %determinant_32bfde
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %determinant_32bfde
     ret
   }
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.msl
index 4c99eb6..e1ef5da 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_a0a87c = func():void -> %b2 {
-  %b2 = block {
+%determinant_a0a87c = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(1.0f))
     %4:mat4x4<f32> = load %arg_0
     %5:f32 = determinant %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %determinant_a0a87c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %determinant_a0a87c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %determinant_a0a87c
     ret
   }
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.msl
index 3325d82..f9af38a 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_d7c86f = func():void -> %b2 {
-  %b2 = block {
+%determinant_d7c86f = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(1.0h))
     %4:mat3x3<f16> = load %arg_0
     %5:f16 = determinant %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %determinant_d7c86f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %determinant_d7c86f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %determinant_d7c86f
     ret
   }
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.msl
index f12283a..ea38e69 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_e19305 = func():void -> %b2 {
-  %b2 = block {
+%determinant_e19305 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(1.0f))
     %4:mat2x2<f32> = load %arg_0
     %5:f32 = determinant %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %determinant_e19305
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %determinant_e19305
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %determinant_e19305
     ret
   }
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.msl
index fb2606d..8e16d1f 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%determinant_fc12a5 = func():void -> %b2 {
-  %b2 = block {
+%determinant_fc12a5 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(1.0h))
     %4:mat2x2<f16> = load %arg_0
     %5:f16 = determinant %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %determinant_fc12a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %determinant_fc12a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %determinant_fc12a5
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.msl
index 652d46d..9039640 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_0657d4 = func():void -> %b2 {
-  %b2 = block {
+%distance_0657d4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_0657d4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_0657d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_0657d4
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.msl
index 8d62f58..4011b03 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_7272f3 = func():void -> %b2 {
-  %b2 = block {
+%distance_7272f3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_7272f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_7272f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_7272f3
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.msl
index e18ef88..191e2a4 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_7d201f = func():void -> %b2 {
-  %b2 = block {
+%distance_7d201f = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_7d201f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_7d201f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_7d201f
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.msl
index 08437a7..747068c 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_892a5d = func():void -> %b2 {
-  %b2 = block {
+%distance_892a5d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_892a5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_892a5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_892a5d
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.msl
index 222b456..d82d9bc 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%distance_928fa0 = func():void -> %b2 {
-  %b2 = block {
+%distance_928fa0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_928fa0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_928fa0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_928fa0
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.msl
index fb598cc..1a8b1cc 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_9646ea = func():void -> %b2 {
-  %b2 = block {
+%distance_9646ea = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_9646ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_9646ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_9646ea
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.msl
index 5a0e618..a672973 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_aa4055 = func():void -> %b2 {
-  %b2 = block {
+%distance_aa4055 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_aa4055
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_aa4055
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_aa4055
     ret
   }
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.msl
index bf77dfe..e238d18 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%distance_cfed73 = func():void -> %b2 {
-  %b2 = block {
+%distance_cfed73 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %distance_cfed73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %distance_cfed73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %distance_cfed73
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.msl
index 0bdf0de..98d607a 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_0c577b = func():void -> %b2 {
-  %b2 = block {
+%dot_0c577b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_0c577b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_0c577b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_0c577b
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.msl
index a207bc4..0d58a72 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_7548a0 = func():void -> %b2 {
-  %b2 = block {
+%dot_7548a0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:vec3<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_7548a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_7548a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_7548a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.msl
index cfc067c..4ba0669 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_883f0e = func():void -> %b2 {
-  %b2 = block {
+%dot_883f0e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_883f0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_883f0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_883f0e
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.msl
index 981c39b..59ba8e4 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%dot_8e40f1 = func():void -> %b2 {
-  %b2 = block {
+%dot_8e40f1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_8e40f1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_8e40f1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_8e40f1
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.msl
index a3b8066..e50a72d 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_97c7ee = func():void -> %b2 {
-  %b2 = block {
+%dot_97c7ee = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:vec2<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_97c7ee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_97c7ee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_97c7ee
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.msl
index b327953..95efaf3 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_ba4246 = func():void -> %b2 {
-  %b2 = block {
+%dot_ba4246 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_ba4246
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_ba4246
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_ba4246
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.msl
index 3b066f0..c06f542 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%dot_cd5a04 = func():void -> %b2 {
-  %b2 = block {
+%dot_cd5a04 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_cd5a04
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_cd5a04
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_cd5a04
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.msl
index 5915335..5f9317e 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%dot_d0d179 = func():void -> %b2 {
-  %b2 = block {
+%dot_d0d179 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_d0d179
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_d0d179
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_d0d179
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.msl
index 3e5d686..b54bb20 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_e994c7 = func():void -> %b2 {
-  %b2 = block {
+%dot_e994c7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:vec4<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_e994c7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_e994c7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_e994c7
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.msl
index d80eb92..c791587 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_ef6b1d = func():void -> %b2 {
-  %b2 = block {
+%dot_ef6b1d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:vec4<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_ef6b1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_ef6b1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_ef6b1d
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.msl
index 0004a83..4796545 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_f1312c = func():void -> %b2 {
-  %b2 = block {
+%dot_f1312c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:vec3<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_f1312c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_f1312c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_f1312c
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.msl
index 2c691f5..596c52e 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot_fc5f7c = func():void -> %b2 {
-  %b2 = block {
+%dot_fc5f7c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:vec2<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot_fc5f7c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot_fc5f7c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot_fc5f7c
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.msl
index c62274e..0f67064 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%dot4I8Packed_881e62 = func():void -> %b2 {
-  %b2 = block {
+%dot4I8Packed_881e62 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot4I8Packed_881e62
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot4I8Packed_881e62
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot4I8Packed_881e62
     ret
   }
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.msl
index 73af54e..49416f8 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%dot4U8Packed_fbed7b = func():void -> %b2 {
-  %b2 = block {
+%dot4U8Packed_fbed7b = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %dot4U8Packed_fbed7b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %dot4U8Packed_fbed7b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %dot4U8Packed_fbed7b
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.msl
index a7668ff8..77e74a7 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_0763f7 = func():void -> %b2 {
-  %b2 = block {
+%dpdx_0763f7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = dpdx %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdx_0763f7
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.msl
index 42b8329..3b24933 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_99edb1 = func():void -> %b2 {
-  %b2 = block {
+%dpdx_99edb1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = dpdx %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdx_99edb1
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.msl
index ee15634..10c1dd2 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_c487fa = func():void -> %b2 {
-  %b2 = block {
+%dpdx_c487fa = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = dpdx %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdx_c487fa
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.msl
index 5f79859..9b5fa43 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdx_e263de = func():void -> %b2 {
-  %b2 = block {
+%dpdx_e263de = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = dpdx %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdx_e263de
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.msl
index 2c426ee..46b92b4 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_029152 = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_029152 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = dpdxCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxCoarse_029152
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.msl
index d7dd4c7..6901848 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_9581cf = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_9581cf = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = dpdxCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxCoarse_9581cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.msl
index 032b91c..56f17df 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_c28641 = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_c28641 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = dpdxCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxCoarse_c28641
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.msl
index f432ec6..32c632f 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxCoarse_f64d7b = func():void -> %b2 {
-  %b2 = block {
+%dpdxCoarse_f64d7b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = dpdxCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxCoarse_f64d7b
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.msl
index 3ca2191..58c89f9 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_8c5069 = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_8c5069 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = dpdxFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxFine_8c5069
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.msl
index aafd4ef..0f66004 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_9631de = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_9631de = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = dpdxFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxFine_9631de
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.msl
index ede1310..ed80b3f 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_f401a2 = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_f401a2 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = dpdxFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxFine_f401a2
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.msl
index 49ea532a..1f85d0a 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdxFine_f92fb6 = func():void -> %b2 {
-  %b2 = block {
+%dpdxFine_f92fb6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = dpdxFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdxFine_f92fb6
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.msl
index 0e92850..8772d24 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_699a05 = func():void -> %b2 {
-  %b2 = block {
+%dpdy_699a05 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = dpdy %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdy_699a05
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.msl
index 2e9b5e0..eeacda5 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_7f8d84 = func():void -> %b2 {
-  %b2 = block {
+%dpdy_7f8d84 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = dpdy %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdy_7f8d84
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.msl
index b695649..ddcf808 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_a8b56e = func():void -> %b2 {
-  %b2 = block {
+%dpdy_a8b56e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = dpdy %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdy_a8b56e
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.msl
index 59f3dd2..aafd81a 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdy_feb40f = func():void -> %b2 {
-  %b2 = block {
+%dpdy_feb40f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = dpdy %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdy_feb40f
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl
index 91a612a..bbbd56b 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_3e1ab4 = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_3e1ab4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = dpdyCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyCoarse_3e1ab4
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.msl
index 519ea78..3e14a29 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_445d24 = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_445d24 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = dpdyCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyCoarse_445d24
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.msl
index 5e219bf..c85e414 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_870a7e = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_870a7e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = dpdyCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyCoarse_870a7e
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.msl
index f44827f..9ed9024 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyCoarse_ae1873 = func():void -> %b2 {
-  %b2 = block {
+%dpdyCoarse_ae1873 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = dpdyCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyCoarse_ae1873
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.msl
index 1190b31..106c2a6 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_1fb7ab = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_1fb7ab = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = dpdyFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyFine_1fb7ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.msl
index fe7e707..bf02b2e 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_6eb673 = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_6eb673 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = dpdyFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyFine_6eb673
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.msl
index f4af85f..68fca90 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_d0a648 = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_d0a648 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = dpdyFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyFine_d0a648
     ret
   }
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.msl
index 2e104f7..74579f7 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%dpdyFine_df33aa = func():void -> %b2 {
-  %b2 = block {
+%dpdyFine_df33aa = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = dpdyFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %dpdyFine_df33aa
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.msl
index 45acd9b..ac71538 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_0f70eb = func():void -> %b2 {
-  %b2 = block {
+%exp_0f70eb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_0f70eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_0f70eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_0f70eb
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.msl
index 1b62498..ba27483 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_13806d = func():void -> %b2 {
-  %b2 = block {
+%exp_13806d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_13806d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_13806d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_13806d
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.msl
index aa3fe7e..ba90a5b 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_1951e7 = func():void -> %b2 {
-  %b2 = block {
+%exp_1951e7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_1951e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_1951e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_1951e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.msl
index e0b7316..c72ccea 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_2e08e2 = func():void -> %b2 {
-  %b2 = block {
+%exp_2e08e2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_2e08e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_2e08e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_2e08e2
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.msl
index 7ecfd2a..fd33b71 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_611a87 = func():void -> %b2 {
-  %b2 = block {
+%exp_611a87 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_611a87
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_611a87
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_611a87
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.msl
index e4fce63..cdb7c97 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%exp_771fd2 = func():void -> %b2 {
-  %b2 = block {
+%exp_771fd2 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_771fd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_771fd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_771fd2
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.msl
index 50467d1..68d4e53 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%exp_c18fe9 = func():void -> %b2 {
-  %b2 = block {
+%exp_c18fe9 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_c18fe9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_c18fe9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_c18fe9
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.msl
index 65c0756..ba8a527 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp_d98450 = func():void -> %b2 {
-  %b2 = block {
+%exp_d98450 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = exp %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp_d98450
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp_d98450
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp_d98450
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.msl
index 3247205..172fb64 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_151a4c = func():void -> %b2 {
-  %b2 = block {
+%exp2_151a4c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_151a4c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_151a4c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_151a4c
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.msl
index ba05d0b..63cf705 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_1f8680 = func():void -> %b2 {
-  %b2 = block {
+%exp2_1f8680 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_1f8680
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_1f8680
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_1f8680
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.msl
index 3616624..c62d385 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_751377 = func():void -> %b2 {
-  %b2 = block {
+%exp2_751377 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_751377
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_751377
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_751377
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.msl
index 76fbba3..3869a1e 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_a9d0a7 = func():void -> %b2 {
-  %b2 = block {
+%exp2_a9d0a7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_a9d0a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_a9d0a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_a9d0a7
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.msl
index a0834ef..8d66ab8 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_b408e4 = func():void -> %b2 {
-  %b2 = block {
+%exp2_b408e4 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_b408e4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_b408e4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_b408e4
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.msl
index 24c88fb..d47f914 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_d6777c = func():void -> %b2 {
-  %b2 = block {
+%exp2_d6777c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_d6777c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_d6777c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_d6777c
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.msl
index 1de33db..9da7c77 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_dea523 = func():void -> %b2 {
-  %b2 = block {
+%exp2_dea523 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_dea523
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_dea523
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_dea523
     ret
   }
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.msl
index 2abe6e0..ef5868a 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%exp2_ffa827 = func():void -> %b2 {
-  %b2 = block {
+%exp2_ffa827 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = exp2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %exp2_ffa827
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %exp2_ffa827
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %exp2_ffa827
     ret
   }
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.msl
index 312384f..fa79d1a 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_12b197 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_12b197 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:vec3<u32> = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:vec3<u32> = extractBits %6, %7, %8
-    %res:ptr<function, vec3<u32>, read_write> = var, %9
-    %11:vec3<u32> = load %res
-    store %prevent_dce, %11
+    %7:vec3<u32> = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:vec3<u32> = extractBits %7, %12, %14
+    %res:ptr<function, vec3<u32>, read_write> = var, %15
+    %17:vec3<u32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_12b197
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_12b197
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_12b197
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_12b197
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_12b197
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_12b197
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.msl
index 246bdfb..eb66449 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_249874 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_249874 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:i32 = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:i32 = extractBits %6, %7, %8
-    %res:ptr<function, i32, read_write> = var, %9
-    %11:i32 = load %res
-    store %prevent_dce, %11
+    %7:i32 = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:i32 = extractBits %7, %12, %14
+    %res:ptr<function, i32, read_write> = var, %15
+    %17:i32 = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_249874
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_249874
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_249874
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_249874
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_249874
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_249874
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.msl
index 54ec83d..e0e22af 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_631377 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_631377 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:vec4<u32> = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:vec4<u32> = extractBits %6, %7, %8
-    %res:ptr<function, vec4<u32>, read_write> = var, %9
-    %11:vec4<u32> = load %res
-    store %prevent_dce, %11
+    %7:vec4<u32> = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:vec4<u32> = extractBits %7, %12, %14
+    %res:ptr<function, vec4<u32>, read_write> = var, %15
+    %17:vec4<u32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_631377
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_631377
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_631377
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_631377
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_631377
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_631377
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.msl
index 3f5e60e..9767fd2 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_a99a8d = func():void -> %b2 {
-  %b2 = block {
+%extractBits_a99a8d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:vec2<i32> = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:vec2<i32> = extractBits %6, %7, %8
-    %res:ptr<function, vec2<i32>, read_write> = var, %9
-    %11:vec2<i32> = load %res
-    store %prevent_dce, %11
+    %7:vec2<i32> = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:vec2<i32> = extractBits %7, %12, %14
+    %res:ptr<function, vec2<i32>, read_write> = var, %15
+    %17:vec2<i32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_a99a8d
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_a99a8d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_a99a8d
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_a99a8d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_a99a8d
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_a99a8d
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.msl
index 4d2a933..3dc80c7 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_ce81f8 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_ce81f8 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:u32 = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:u32 = extractBits %6, %7, %8
-    %res:ptr<function, u32, read_write> = var, %9
-    %11:u32 = load %res
-    store %prevent_dce, %11
+    %7:u32 = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:u32 = extractBits %7, %12, %14
+    %res:ptr<function, u32, read_write> = var, %15
+    %17:u32 = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_ce81f8
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_ce81f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_ce81f8
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_ce81f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_ce81f8
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_ce81f8
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.msl
index b1524ca..3138dd4 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_e04f5d = func():void -> %b2 {
-  %b2 = block {
+%extractBits_e04f5d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:vec3<i32> = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:vec3<i32> = extractBits %6, %7, %8
-    %res:ptr<function, vec3<i32>, read_write> = var, %9
-    %11:vec3<i32> = load %res
-    store %prevent_dce, %11
+    %7:vec3<i32> = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:vec3<i32> = extractBits %7, %12, %14
+    %res:ptr<function, vec3<i32>, read_write> = var, %15
+    %17:vec3<i32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_e04f5d
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_e04f5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_e04f5d
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_e04f5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_e04f5d
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_e04f5d
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.msl
index 82da1e8..d605beb 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_f28f69 = func():void -> %b2 {
-  %b2 = block {
+%extractBits_f28f69 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:vec2<u32> = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:vec2<u32> = extractBits %6, %7, %8
-    %res:ptr<function, vec2<u32>, read_write> = var, %9
-    %11:vec2<u32> = load %res
-    store %prevent_dce, %11
+    %7:vec2<u32> = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:vec2<u32> = extractBits %7, %12, %14
+    %res:ptr<function, vec2<u32>, read_write> = var, %15
+    %17:vec2<u32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_f28f69
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_f28f69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_f28f69
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_f28f69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_f28f69
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_f28f69
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.msl
index 77f8413..292ff46 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.ir.msl
@@ -1,39 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%extractBits_fb850f = func():void -> %b2 {
-  %b2 = block {
+%extractBits_fb850f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:vec4<i32> = load %arg_0
-    %7:u32 = load %arg_1
-    %8:u32 = load %arg_2
-    %9:vec4<i32> = extractBits %6, %7, %8
-    %res:ptr<function, vec4<i32>, read_write> = var, %9
-    %11:vec4<i32> = load %res
-    store %prevent_dce, %11
+    %7:vec4<i32> = let %6
+    %8:u32 = load %arg_1
+    %9:u32 = load %arg_2
+    %10:u32 = let %9
+    %11:u32 = min %8, 32u
+    %12:u32 = let %11
+    %13:u32 = sub 32u, %12
+    %14:u32 = min %10, %13
+    %15:vec4<i32> = extractBits %7, %12, %14
+    %res:ptr<function, vec4<i32>, read_write> = var, %15
+    %17:vec4<i32> = load %res
+    store %prevent_dce, %17
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %extractBits_fb850f
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %19:void = call %extractBits_fb850f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %extractBits_fb850f
+%fragment_main = @fragment func():void {
+  $B4: {
+    %21:void = call %extractBits_fb850f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %extractBits_fb850f
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %23:void = call %extractBits_fb850f
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.msl
index db98d05..d69df78 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_524986 = func():void -> %b2 {
-  %b2 = block {
+%faceForward_524986 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %faceForward_524986
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %faceForward_524986
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %faceForward_524986
     ret
   }
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.msl
index 4e91fb4..22b13e6 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_5afbd5 = func():void -> %b2 {
-  %b2 = block {
+%faceForward_5afbd5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %faceForward_5afbd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %faceForward_5afbd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %faceForward_5afbd5
     ret
   }
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.msl
index 67031a4..1ae842e 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_b316e5 = func():void -> %b2 {
-  %b2 = block {
+%faceForward_b316e5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %faceForward_b316e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %faceForward_b316e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %faceForward_b316e5
     ret
   }
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.msl
index e2b56b2..4d95c4c 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_cc63dc = func():void -> %b2 {
-  %b2 = block {
+%faceForward_cc63dc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %faceForward_cc63dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %faceForward_cc63dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %faceForward_cc63dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.msl
index b736d01..7a14c48 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_e6908b = func():void -> %b2 {
-  %b2 = block {
+%faceForward_e6908b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %faceForward_e6908b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %faceForward_e6908b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %faceForward_e6908b
     ret
   }
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.msl
index 9855b1c..a0babaa 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%faceForward_fb0f2e = func():void -> %b2 {
-  %b2 = block {
+%faceForward_fb0f2e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %faceForward_fb0f2e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %faceForward_fb0f2e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %faceForward_fb0f2e
     ret
   }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.msl
index cdca2ad..b9251a0 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_000ff3 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_000ff3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
-    %5:vec4<u32> = firstLeadingBit %4
-    %res:ptr<function, vec4<u32>, read_write> = var, %5
-    %7:vec4<u32> = load %res
-    store %prevent_dce, %7
+    %5:vec4<u32> = let %4
+    %6:vec4<u32> = and %5, vec4<u32>(4294901760u)
+    %7:vec4<bool> = eq %6, vec4<u32>(0u)
+    %8:vec4<u32> = select vec4<u32>(16u), vec4<u32>(0u), %7
+    %9:vec4<u32> = let %8
+    %10:vec4<u32> = shr %5, %9
+    %11:vec4<u32> = and %10, vec4<u32>(65280u)
+    %12:vec4<bool> = eq %11, vec4<u32>(0u)
+    %13:vec4<u32> = select vec4<u32>(8u), vec4<u32>(0u), %12
+    %14:vec4<u32> = let %13
+    %15:vec4<u32> = shr %10, %14
+    %16:vec4<u32> = and %15, vec4<u32>(240u)
+    %17:vec4<bool> = eq %16, vec4<u32>(0u)
+    %18:vec4<u32> = select vec4<u32>(4u), vec4<u32>(0u), %17
+    %19:vec4<u32> = let %18
+    %20:vec4<u32> = shr %15, %19
+    %21:vec4<u32> = and %20, vec4<u32>(12u)
+    %22:vec4<bool> = eq %21, vec4<u32>(0u)
+    %23:vec4<u32> = select vec4<u32>(2u), vec4<u32>(0u), %22
+    %24:vec4<u32> = let %23
+    %25:vec4<u32> = shr %20, %24
+    %26:vec4<u32> = and %25, vec4<u32>(2u)
+    %27:vec4<bool> = eq %26, vec4<u32>(0u)
+    %28:vec4<u32> = select vec4<u32>(1u), vec4<u32>(0u), %27
+    %29:vec4<u32> = or %24, %28
+    %30:vec4<u32> = or %19, %29
+    %31:vec4<u32> = or %14, %30
+    %32:vec4<u32> = or %9, %31
+    %33:vec4<bool> = eq %25, vec4<u32>(0u)
+    %34:vec4<u32> = select %32, vec4<u32>(4294967295u), %33
+    %res:ptr<function, vec4<u32>, read_write> = var, %34
+    %36:vec4<u32> = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_000ff3
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstLeadingBit_000ff3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_000ff3
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstLeadingBit_000ff3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_000ff3
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstLeadingBit_000ff3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.msl
index 073a350..225bd64 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.ir.msl
@@ -1,35 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_35053e = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_35053e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
-    %5:vec3<i32> = firstLeadingBit %4
-    %res:ptr<function, vec3<i32>, read_write> = var, %5
-    %7:vec3<i32> = load %res
-    store %prevent_dce, %7
+    %5:vec3<u32> = bitcast %4
+    %6:vec3<u32> = let %5
+    %7:vec3<u32> = complement %6
+    %8:vec3<bool> = lt %6, vec3<u32>(2147483648u)
+    %9:vec3<u32> = select %7, %6, %8
+    %10:vec3<u32> = let %9
+    %11:vec3<u32> = and %10, vec3<u32>(4294901760u)
+    %12:vec3<bool> = eq %11, vec3<u32>(0u)
+    %13:vec3<u32> = select vec3<u32>(16u), vec3<u32>(0u), %12
+    %14:vec3<u32> = let %13
+    %15:vec3<u32> = shr %10, %14
+    %16:vec3<u32> = and %15, vec3<u32>(65280u)
+    %17:vec3<bool> = eq %16, vec3<u32>(0u)
+    %18:vec3<u32> = select vec3<u32>(8u), vec3<u32>(0u), %17
+    %19:vec3<u32> = let %18
+    %20:vec3<u32> = shr %15, %19
+    %21:vec3<u32> = and %20, vec3<u32>(240u)
+    %22:vec3<bool> = eq %21, vec3<u32>(0u)
+    %23:vec3<u32> = select vec3<u32>(4u), vec3<u32>(0u), %22
+    %24:vec3<u32> = let %23
+    %25:vec3<u32> = shr %20, %24
+    %26:vec3<u32> = and %25, vec3<u32>(12u)
+    %27:vec3<bool> = eq %26, vec3<u32>(0u)
+    %28:vec3<u32> = select vec3<u32>(2u), vec3<u32>(0u), %27
+    %29:vec3<u32> = let %28
+    %30:vec3<u32> = shr %25, %29
+    %31:vec3<u32> = and %30, vec3<u32>(2u)
+    %32:vec3<bool> = eq %31, vec3<u32>(0u)
+    %33:vec3<u32> = select vec3<u32>(1u), vec3<u32>(0u), %32
+    %34:vec3<u32> = or %29, %33
+    %35:vec3<u32> = or %24, %34
+    %36:vec3<u32> = or %19, %35
+    %37:vec3<u32> = or %14, %36
+    %38:vec3<bool> = eq %30, vec3<u32>(0u)
+    %39:vec3<u32> = select %37, vec3<u32>(4294967295u), %38
+    %40:vec3<i32> = bitcast %39
+    %res:ptr<function, vec3<i32>, read_write> = var, %40
+    %42:vec3<i32> = load %res
+    store %prevent_dce, %42
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_35053e
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %44:void = call %firstLeadingBit_35053e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_35053e
+%fragment_main = @fragment func():void {
+  $B4: {
+    %46:void = call %firstLeadingBit_35053e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_35053e
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %48:void = call %firstLeadingBit_35053e
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl
index d734e2b..1282e64 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_3fd7d0 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_3fd7d0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
-    %5:vec3<u32> = firstLeadingBit %4
-    %res:ptr<function, vec3<u32>, read_write> = var, %5
-    %7:vec3<u32> = load %res
-    store %prevent_dce, %7
+    %5:vec3<u32> = let %4
+    %6:vec3<u32> = and %5, vec3<u32>(4294901760u)
+    %7:vec3<bool> = eq %6, vec3<u32>(0u)
+    %8:vec3<u32> = select vec3<u32>(16u), vec3<u32>(0u), %7
+    %9:vec3<u32> = let %8
+    %10:vec3<u32> = shr %5, %9
+    %11:vec3<u32> = and %10, vec3<u32>(65280u)
+    %12:vec3<bool> = eq %11, vec3<u32>(0u)
+    %13:vec3<u32> = select vec3<u32>(8u), vec3<u32>(0u), %12
+    %14:vec3<u32> = let %13
+    %15:vec3<u32> = shr %10, %14
+    %16:vec3<u32> = and %15, vec3<u32>(240u)
+    %17:vec3<bool> = eq %16, vec3<u32>(0u)
+    %18:vec3<u32> = select vec3<u32>(4u), vec3<u32>(0u), %17
+    %19:vec3<u32> = let %18
+    %20:vec3<u32> = shr %15, %19
+    %21:vec3<u32> = and %20, vec3<u32>(12u)
+    %22:vec3<bool> = eq %21, vec3<u32>(0u)
+    %23:vec3<u32> = select vec3<u32>(2u), vec3<u32>(0u), %22
+    %24:vec3<u32> = let %23
+    %25:vec3<u32> = shr %20, %24
+    %26:vec3<u32> = and %25, vec3<u32>(2u)
+    %27:vec3<bool> = eq %26, vec3<u32>(0u)
+    %28:vec3<u32> = select vec3<u32>(1u), vec3<u32>(0u), %27
+    %29:vec3<u32> = or %24, %28
+    %30:vec3<u32> = or %19, %29
+    %31:vec3<u32> = or %14, %30
+    %32:vec3<u32> = or %9, %31
+    %33:vec3<bool> = eq %25, vec3<u32>(0u)
+    %34:vec3<u32> = select %32, vec3<u32>(4294967295u), %33
+    %res:ptr<function, vec3<u32>, read_write> = var, %34
+    %36:vec3<u32> = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_3fd7d0
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstLeadingBit_3fd7d0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_3fd7d0
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstLeadingBit_3fd7d0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_3fd7d0
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstLeadingBit_3fd7d0
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.msl
index 9cfe1a1..58eb576 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.ir.msl
@@ -1,35 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_57a1a3 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_57a1a3 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
-    %5:i32 = firstLeadingBit %4
-    %res:ptr<function, i32, read_write> = var, %5
-    %7:i32 = load %res
-    store %prevent_dce, %7
+    %5:u32 = bitcast %4
+    %6:u32 = let %5
+    %7:u32 = complement %6
+    %8:bool = lt %6, 2147483648u
+    %9:u32 = select %7, %6, %8
+    %10:u32 = let %9
+    %11:u32 = and %10, 4294901760u
+    %12:bool = eq %11, 0u
+    %13:u32 = select 16u, 0u, %12
+    %14:u32 = let %13
+    %15:u32 = shr %10, %14
+    %16:u32 = and %15, 65280u
+    %17:bool = eq %16, 0u
+    %18:u32 = select 8u, 0u, %17
+    %19:u32 = let %18
+    %20:u32 = shr %15, %19
+    %21:u32 = and %20, 240u
+    %22:bool = eq %21, 0u
+    %23:u32 = select 4u, 0u, %22
+    %24:u32 = let %23
+    %25:u32 = shr %20, %24
+    %26:u32 = and %25, 12u
+    %27:bool = eq %26, 0u
+    %28:u32 = select 2u, 0u, %27
+    %29:u32 = let %28
+    %30:u32 = shr %25, %29
+    %31:u32 = and %30, 2u
+    %32:bool = eq %31, 0u
+    %33:u32 = select 1u, 0u, %32
+    %34:u32 = or %29, %33
+    %35:u32 = or %24, %34
+    %36:u32 = or %19, %35
+    %37:u32 = or %14, %36
+    %38:bool = eq %30, 0u
+    %39:u32 = select %37, 4294967295u, %38
+    %40:i32 = bitcast %39
+    %res:ptr<function, i32, read_write> = var, %40
+    %42:i32 = load %res
+    store %prevent_dce, %42
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_57a1a3
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %44:void = call %firstLeadingBit_57a1a3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_57a1a3
+%fragment_main = @fragment func():void {
+  $B4: {
+    %46:void = call %firstLeadingBit_57a1a3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_57a1a3
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %48:void = call %firstLeadingBit_57a1a3
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.msl
index d35b315..3c7e062 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_6fe804 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_6fe804 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
-    %5:vec2<u32> = firstLeadingBit %4
-    %res:ptr<function, vec2<u32>, read_write> = var, %5
-    %7:vec2<u32> = load %res
-    store %prevent_dce, %7
+    %5:vec2<u32> = let %4
+    %6:vec2<u32> = and %5, vec2<u32>(4294901760u)
+    %7:vec2<bool> = eq %6, vec2<u32>(0u)
+    %8:vec2<u32> = select vec2<u32>(16u), vec2<u32>(0u), %7
+    %9:vec2<u32> = let %8
+    %10:vec2<u32> = shr %5, %9
+    %11:vec2<u32> = and %10, vec2<u32>(65280u)
+    %12:vec2<bool> = eq %11, vec2<u32>(0u)
+    %13:vec2<u32> = select vec2<u32>(8u), vec2<u32>(0u), %12
+    %14:vec2<u32> = let %13
+    %15:vec2<u32> = shr %10, %14
+    %16:vec2<u32> = and %15, vec2<u32>(240u)
+    %17:vec2<bool> = eq %16, vec2<u32>(0u)
+    %18:vec2<u32> = select vec2<u32>(4u), vec2<u32>(0u), %17
+    %19:vec2<u32> = let %18
+    %20:vec2<u32> = shr %15, %19
+    %21:vec2<u32> = and %20, vec2<u32>(12u)
+    %22:vec2<bool> = eq %21, vec2<u32>(0u)
+    %23:vec2<u32> = select vec2<u32>(2u), vec2<u32>(0u), %22
+    %24:vec2<u32> = let %23
+    %25:vec2<u32> = shr %20, %24
+    %26:vec2<u32> = and %25, vec2<u32>(2u)
+    %27:vec2<bool> = eq %26, vec2<u32>(0u)
+    %28:vec2<u32> = select vec2<u32>(1u), vec2<u32>(0u), %27
+    %29:vec2<u32> = or %24, %28
+    %30:vec2<u32> = or %19, %29
+    %31:vec2<u32> = or %14, %30
+    %32:vec2<u32> = or %9, %31
+    %33:vec2<bool> = eq %25, vec2<u32>(0u)
+    %34:vec2<u32> = select %32, vec2<u32>(4294967295u), %33
+    %res:ptr<function, vec2<u32>, read_write> = var, %34
+    %36:vec2<u32> = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_6fe804
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstLeadingBit_6fe804
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_6fe804
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstLeadingBit_6fe804
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_6fe804
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstLeadingBit_6fe804
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.msl
index 2113f76..2232065 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.ir.msl
@@ -1,35 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_a622c2 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_a622c2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
-    %5:vec2<i32> = firstLeadingBit %4
-    %res:ptr<function, vec2<i32>, read_write> = var, %5
-    %7:vec2<i32> = load %res
-    store %prevent_dce, %7
+    %5:vec2<u32> = bitcast %4
+    %6:vec2<u32> = let %5
+    %7:vec2<u32> = complement %6
+    %8:vec2<bool> = lt %6, vec2<u32>(2147483648u)
+    %9:vec2<u32> = select %7, %6, %8
+    %10:vec2<u32> = let %9
+    %11:vec2<u32> = and %10, vec2<u32>(4294901760u)
+    %12:vec2<bool> = eq %11, vec2<u32>(0u)
+    %13:vec2<u32> = select vec2<u32>(16u), vec2<u32>(0u), %12
+    %14:vec2<u32> = let %13
+    %15:vec2<u32> = shr %10, %14
+    %16:vec2<u32> = and %15, vec2<u32>(65280u)
+    %17:vec2<bool> = eq %16, vec2<u32>(0u)
+    %18:vec2<u32> = select vec2<u32>(8u), vec2<u32>(0u), %17
+    %19:vec2<u32> = let %18
+    %20:vec2<u32> = shr %15, %19
+    %21:vec2<u32> = and %20, vec2<u32>(240u)
+    %22:vec2<bool> = eq %21, vec2<u32>(0u)
+    %23:vec2<u32> = select vec2<u32>(4u), vec2<u32>(0u), %22
+    %24:vec2<u32> = let %23
+    %25:vec2<u32> = shr %20, %24
+    %26:vec2<u32> = and %25, vec2<u32>(12u)
+    %27:vec2<bool> = eq %26, vec2<u32>(0u)
+    %28:vec2<u32> = select vec2<u32>(2u), vec2<u32>(0u), %27
+    %29:vec2<u32> = let %28
+    %30:vec2<u32> = shr %25, %29
+    %31:vec2<u32> = and %30, vec2<u32>(2u)
+    %32:vec2<bool> = eq %31, vec2<u32>(0u)
+    %33:vec2<u32> = select vec2<u32>(1u), vec2<u32>(0u), %32
+    %34:vec2<u32> = or %29, %33
+    %35:vec2<u32> = or %24, %34
+    %36:vec2<u32> = or %19, %35
+    %37:vec2<u32> = or %14, %36
+    %38:vec2<bool> = eq %30, vec2<u32>(0u)
+    %39:vec2<u32> = select %37, vec2<u32>(4294967295u), %38
+    %40:vec2<i32> = bitcast %39
+    %res:ptr<function, vec2<i32>, read_write> = var, %40
+    %42:vec2<i32> = load %res
+    store %prevent_dce, %42
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_a622c2
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %44:void = call %firstLeadingBit_a622c2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_a622c2
+%fragment_main = @fragment func():void {
+  $B4: {
+    %46:void = call %firstLeadingBit_a622c2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_a622c2
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %48:void = call %firstLeadingBit_a622c2
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.msl
index 8485065..45f4401 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.ir.msl
@@ -1,35 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_c1f940 = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_c1f940 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
-    %5:vec4<i32> = firstLeadingBit %4
-    %res:ptr<function, vec4<i32>, read_write> = var, %5
-    %7:vec4<i32> = load %res
-    store %prevent_dce, %7
+    %5:vec4<u32> = bitcast %4
+    %6:vec4<u32> = let %5
+    %7:vec4<u32> = complement %6
+    %8:vec4<bool> = lt %6, vec4<u32>(2147483648u)
+    %9:vec4<u32> = select %7, %6, %8
+    %10:vec4<u32> = let %9
+    %11:vec4<u32> = and %10, vec4<u32>(4294901760u)
+    %12:vec4<bool> = eq %11, vec4<u32>(0u)
+    %13:vec4<u32> = select vec4<u32>(16u), vec4<u32>(0u), %12
+    %14:vec4<u32> = let %13
+    %15:vec4<u32> = shr %10, %14
+    %16:vec4<u32> = and %15, vec4<u32>(65280u)
+    %17:vec4<bool> = eq %16, vec4<u32>(0u)
+    %18:vec4<u32> = select vec4<u32>(8u), vec4<u32>(0u), %17
+    %19:vec4<u32> = let %18
+    %20:vec4<u32> = shr %15, %19
+    %21:vec4<u32> = and %20, vec4<u32>(240u)
+    %22:vec4<bool> = eq %21, vec4<u32>(0u)
+    %23:vec4<u32> = select vec4<u32>(4u), vec4<u32>(0u), %22
+    %24:vec4<u32> = let %23
+    %25:vec4<u32> = shr %20, %24
+    %26:vec4<u32> = and %25, vec4<u32>(12u)
+    %27:vec4<bool> = eq %26, vec4<u32>(0u)
+    %28:vec4<u32> = select vec4<u32>(2u), vec4<u32>(0u), %27
+    %29:vec4<u32> = let %28
+    %30:vec4<u32> = shr %25, %29
+    %31:vec4<u32> = and %30, vec4<u32>(2u)
+    %32:vec4<bool> = eq %31, vec4<u32>(0u)
+    %33:vec4<u32> = select vec4<u32>(1u), vec4<u32>(0u), %32
+    %34:vec4<u32> = or %29, %33
+    %35:vec4<u32> = or %24, %34
+    %36:vec4<u32> = or %19, %35
+    %37:vec4<u32> = or %14, %36
+    %38:vec4<bool> = eq %30, vec4<u32>(0u)
+    %39:vec4<u32> = select %37, vec4<u32>(4294967295u), %38
+    %40:vec4<i32> = bitcast %39
+    %res:ptr<function, vec4<i32>, read_write> = var, %40
+    %42:vec4<i32> = load %res
+    store %prevent_dce, %42
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_c1f940
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %44:void = call %firstLeadingBit_c1f940
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_c1f940
+%fragment_main = @fragment func():void {
+  $B4: {
+    %46:void = call %firstLeadingBit_c1f940
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_c1f940
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %48:void = call %firstLeadingBit_c1f940
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.msl
index be2175b..5392912 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%firstLeadingBit_f0779d = func():void -> %b2 {
-  %b2 = block {
+%firstLeadingBit_f0779d = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
-    %5:u32 = firstLeadingBit %4
-    %res:ptr<function, u32, read_write> = var, %5
-    %7:u32 = load %res
-    store %prevent_dce, %7
+    %5:u32 = let %4
+    %6:u32 = and %5, 4294901760u
+    %7:bool = eq %6, 0u
+    %8:u32 = select 16u, 0u, %7
+    %9:u32 = let %8
+    %10:u32 = shr %5, %9
+    %11:u32 = and %10, 65280u
+    %12:bool = eq %11, 0u
+    %13:u32 = select 8u, 0u, %12
+    %14:u32 = let %13
+    %15:u32 = shr %10, %14
+    %16:u32 = and %15, 240u
+    %17:bool = eq %16, 0u
+    %18:u32 = select 4u, 0u, %17
+    %19:u32 = let %18
+    %20:u32 = shr %15, %19
+    %21:u32 = and %20, 12u
+    %22:bool = eq %21, 0u
+    %23:u32 = select 2u, 0u, %22
+    %24:u32 = let %23
+    %25:u32 = shr %20, %24
+    %26:u32 = and %25, 2u
+    %27:bool = eq %26, 0u
+    %28:u32 = select 1u, 0u, %27
+    %29:u32 = or %24, %28
+    %30:u32 = or %19, %29
+    %31:u32 = or %14, %30
+    %32:u32 = or %9, %31
+    %33:bool = eq %25, 0u
+    %34:u32 = select %32, 4294967295u, %33
+    %res:ptr<function, u32, read_write> = var, %34
+    %36:u32 = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstLeadingBit_f0779d
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstLeadingBit_f0779d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstLeadingBit_f0779d
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstLeadingBit_f0779d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstLeadingBit_f0779d
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstLeadingBit_f0779d
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.msl
index cfe846c..7bb011e 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_110f2c = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_110f2c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
-    %5:vec4<u32> = firstTrailingBit %4
-    %res:ptr<function, vec4<u32>, read_write> = var, %5
-    %7:vec4<u32> = load %res
-    store %prevent_dce, %7
+    %5:vec4<u32> = let %4
+    %6:vec4<u32> = and %5, vec4<u32>(65535u)
+    %7:vec4<bool> = eq %6, vec4<u32>(0u)
+    %8:vec4<u32> = select vec4<u32>(0u), vec4<u32>(16u), %7
+    %9:vec4<u32> = let %8
+    %10:vec4<u32> = shr %5, %9
+    %11:vec4<u32> = and %10, vec4<u32>(255u)
+    %12:vec4<bool> = eq %11, vec4<u32>(0u)
+    %13:vec4<u32> = select vec4<u32>(0u), vec4<u32>(8u), %12
+    %14:vec4<u32> = let %13
+    %15:vec4<u32> = shr %10, %14
+    %16:vec4<u32> = and %15, vec4<u32>(15u)
+    %17:vec4<bool> = eq %16, vec4<u32>(0u)
+    %18:vec4<u32> = select vec4<u32>(0u), vec4<u32>(4u), %17
+    %19:vec4<u32> = let %18
+    %20:vec4<u32> = shr %15, %19
+    %21:vec4<u32> = and %20, vec4<u32>(3u)
+    %22:vec4<bool> = eq %21, vec4<u32>(0u)
+    %23:vec4<u32> = select vec4<u32>(0u), vec4<u32>(2u), %22
+    %24:vec4<u32> = let %23
+    %25:vec4<u32> = shr %20, %24
+    %26:vec4<u32> = and %25, vec4<u32>(1u)
+    %27:vec4<bool> = eq %26, vec4<u32>(0u)
+    %28:vec4<u32> = select vec4<u32>(0u), vec4<u32>(1u), %27
+    %29:vec4<u32> = or %24, %28
+    %30:vec4<u32> = or %19, %29
+    %31:vec4<u32> = or %14, %30
+    %32:vec4<u32> = or %9, %31
+    %33:vec4<bool> = eq %25, vec4<u32>(0u)
+    %34:vec4<u32> = select %32, vec4<u32>(4294967295u), %33
+    %res:ptr<function, vec4<u32>, read_write> = var, %34
+    %36:vec4<u32> = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_110f2c
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstTrailingBit_110f2c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_110f2c
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstTrailingBit_110f2c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_110f2c
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstTrailingBit_110f2c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.msl
index 6d8374f..3b34436 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.ir.msl
@@ -1,35 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_3a2acc = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_3a2acc = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
-    %5:i32 = firstTrailingBit %4
-    %res:ptr<function, i32, read_write> = var, %5
-    %7:i32 = load %res
-    store %prevent_dce, %7
+    %5:u32 = bitcast %4
+    %6:u32 = let %5
+    %7:u32 = and %6, 65535u
+    %8:bool = eq %7, 0u
+    %9:u32 = select 0u, 16u, %8
+    %10:u32 = let %9
+    %11:u32 = shr %6, %10
+    %12:u32 = and %11, 255u
+    %13:bool = eq %12, 0u
+    %14:u32 = select 0u, 8u, %13
+    %15:u32 = let %14
+    %16:u32 = shr %11, %15
+    %17:u32 = and %16, 15u
+    %18:bool = eq %17, 0u
+    %19:u32 = select 0u, 4u, %18
+    %20:u32 = let %19
+    %21:u32 = shr %16, %20
+    %22:u32 = and %21, 3u
+    %23:bool = eq %22, 0u
+    %24:u32 = select 0u, 2u, %23
+    %25:u32 = let %24
+    %26:u32 = shr %21, %25
+    %27:u32 = and %26, 1u
+    %28:bool = eq %27, 0u
+    %29:u32 = select 0u, 1u, %28
+    %30:u32 = or %25, %29
+    %31:u32 = or %20, %30
+    %32:u32 = or %15, %31
+    %33:u32 = or %10, %32
+    %34:bool = eq %26, 0u
+    %35:u32 = select %33, 4294967295u, %34
+    %36:i32 = bitcast %35
+    %res:ptr<function, i32, read_write> = var, %36
+    %38:i32 = load %res
+    store %prevent_dce, %38
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_3a2acc
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %40:void = call %firstTrailingBit_3a2acc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_3a2acc
+%fragment_main = @fragment func():void {
+  $B4: {
+    %42:void = call %firstTrailingBit_3a2acc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_3a2acc
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %44:void = call %firstTrailingBit_3a2acc
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.msl
index ad42f58..5c2abb7 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_45eb10 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_45eb10 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
-    %5:vec2<u32> = firstTrailingBit %4
-    %res:ptr<function, vec2<u32>, read_write> = var, %5
-    %7:vec2<u32> = load %res
-    store %prevent_dce, %7
+    %5:vec2<u32> = let %4
+    %6:vec2<u32> = and %5, vec2<u32>(65535u)
+    %7:vec2<bool> = eq %6, vec2<u32>(0u)
+    %8:vec2<u32> = select vec2<u32>(0u), vec2<u32>(16u), %7
+    %9:vec2<u32> = let %8
+    %10:vec2<u32> = shr %5, %9
+    %11:vec2<u32> = and %10, vec2<u32>(255u)
+    %12:vec2<bool> = eq %11, vec2<u32>(0u)
+    %13:vec2<u32> = select vec2<u32>(0u), vec2<u32>(8u), %12
+    %14:vec2<u32> = let %13
+    %15:vec2<u32> = shr %10, %14
+    %16:vec2<u32> = and %15, vec2<u32>(15u)
+    %17:vec2<bool> = eq %16, vec2<u32>(0u)
+    %18:vec2<u32> = select vec2<u32>(0u), vec2<u32>(4u), %17
+    %19:vec2<u32> = let %18
+    %20:vec2<u32> = shr %15, %19
+    %21:vec2<u32> = and %20, vec2<u32>(3u)
+    %22:vec2<bool> = eq %21, vec2<u32>(0u)
+    %23:vec2<u32> = select vec2<u32>(0u), vec2<u32>(2u), %22
+    %24:vec2<u32> = let %23
+    %25:vec2<u32> = shr %20, %24
+    %26:vec2<u32> = and %25, vec2<u32>(1u)
+    %27:vec2<bool> = eq %26, vec2<u32>(0u)
+    %28:vec2<u32> = select vec2<u32>(0u), vec2<u32>(1u), %27
+    %29:vec2<u32> = or %24, %28
+    %30:vec2<u32> = or %19, %29
+    %31:vec2<u32> = or %14, %30
+    %32:vec2<u32> = or %9, %31
+    %33:vec2<bool> = eq %25, vec2<u32>(0u)
+    %34:vec2<u32> = select %32, vec2<u32>(4294967295u), %33
+    %res:ptr<function, vec2<u32>, read_write> = var, %34
+    %36:vec2<u32> = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_45eb10
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstTrailingBit_45eb10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_45eb10
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstTrailingBit_45eb10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_45eb10
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstTrailingBit_45eb10
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.msl
index c65785b..cdaebf9 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_47d475 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_47d475 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
-    %5:u32 = firstTrailingBit %4
-    %res:ptr<function, u32, read_write> = var, %5
-    %7:u32 = load %res
-    store %prevent_dce, %7
+    %5:u32 = let %4
+    %6:u32 = and %5, 65535u
+    %7:bool = eq %6, 0u
+    %8:u32 = select 0u, 16u, %7
+    %9:u32 = let %8
+    %10:u32 = shr %5, %9
+    %11:u32 = and %10, 255u
+    %12:bool = eq %11, 0u
+    %13:u32 = select 0u, 8u, %12
+    %14:u32 = let %13
+    %15:u32 = shr %10, %14
+    %16:u32 = and %15, 15u
+    %17:bool = eq %16, 0u
+    %18:u32 = select 0u, 4u, %17
+    %19:u32 = let %18
+    %20:u32 = shr %15, %19
+    %21:u32 = and %20, 3u
+    %22:bool = eq %21, 0u
+    %23:u32 = select 0u, 2u, %22
+    %24:u32 = let %23
+    %25:u32 = shr %20, %24
+    %26:u32 = and %25, 1u
+    %27:bool = eq %26, 0u
+    %28:u32 = select 0u, 1u, %27
+    %29:u32 = or %24, %28
+    %30:u32 = or %19, %29
+    %31:u32 = or %14, %30
+    %32:u32 = or %9, %31
+    %33:bool = eq %25, 0u
+    %34:u32 = select %32, 4294967295u, %33
+    %res:ptr<function, u32, read_write> = var, %34
+    %36:u32 = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_47d475
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstTrailingBit_47d475
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_47d475
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstTrailingBit_47d475
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_47d475
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstTrailingBit_47d475
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.msl
index f5de6c2..087ea96 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.ir.msl
@@ -1,35 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_50c072 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_50c072 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
-    %5:vec2<i32> = firstTrailingBit %4
-    %res:ptr<function, vec2<i32>, read_write> = var, %5
-    %7:vec2<i32> = load %res
-    store %prevent_dce, %7
+    %5:vec2<u32> = bitcast %4
+    %6:vec2<u32> = let %5
+    %7:vec2<u32> = and %6, vec2<u32>(65535u)
+    %8:vec2<bool> = eq %7, vec2<u32>(0u)
+    %9:vec2<u32> = select vec2<u32>(0u), vec2<u32>(16u), %8
+    %10:vec2<u32> = let %9
+    %11:vec2<u32> = shr %6, %10
+    %12:vec2<u32> = and %11, vec2<u32>(255u)
+    %13:vec2<bool> = eq %12, vec2<u32>(0u)
+    %14:vec2<u32> = select vec2<u32>(0u), vec2<u32>(8u), %13
+    %15:vec2<u32> = let %14
+    %16:vec2<u32> = shr %11, %15
+    %17:vec2<u32> = and %16, vec2<u32>(15u)
+    %18:vec2<bool> = eq %17, vec2<u32>(0u)
+    %19:vec2<u32> = select vec2<u32>(0u), vec2<u32>(4u), %18
+    %20:vec2<u32> = let %19
+    %21:vec2<u32> = shr %16, %20
+    %22:vec2<u32> = and %21, vec2<u32>(3u)
+    %23:vec2<bool> = eq %22, vec2<u32>(0u)
+    %24:vec2<u32> = select vec2<u32>(0u), vec2<u32>(2u), %23
+    %25:vec2<u32> = let %24
+    %26:vec2<u32> = shr %21, %25
+    %27:vec2<u32> = and %26, vec2<u32>(1u)
+    %28:vec2<bool> = eq %27, vec2<u32>(0u)
+    %29:vec2<u32> = select vec2<u32>(0u), vec2<u32>(1u), %28
+    %30:vec2<u32> = or %25, %29
+    %31:vec2<u32> = or %20, %30
+    %32:vec2<u32> = or %15, %31
+    %33:vec2<u32> = or %10, %32
+    %34:vec2<bool> = eq %26, vec2<u32>(0u)
+    %35:vec2<u32> = select %33, vec2<u32>(4294967295u), %34
+    %36:vec2<i32> = bitcast %35
+    %res:ptr<function, vec2<i32>, read_write> = var, %36
+    %38:vec2<i32> = load %res
+    store %prevent_dce, %38
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_50c072
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %40:void = call %firstTrailingBit_50c072
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_50c072
+%fragment_main = @fragment func():void {
+  $B4: {
+    %42:void = call %firstTrailingBit_50c072
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_50c072
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %44:void = call %firstTrailingBit_50c072
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.msl
index 9344b9a..7f110cc 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.ir.msl
@@ -1,35 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_7496d6 = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_7496d6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
-    %5:vec3<i32> = firstTrailingBit %4
-    %res:ptr<function, vec3<i32>, read_write> = var, %5
-    %7:vec3<i32> = load %res
-    store %prevent_dce, %7
+    %5:vec3<u32> = bitcast %4
+    %6:vec3<u32> = let %5
+    %7:vec3<u32> = and %6, vec3<u32>(65535u)
+    %8:vec3<bool> = eq %7, vec3<u32>(0u)
+    %9:vec3<u32> = select vec3<u32>(0u), vec3<u32>(16u), %8
+    %10:vec3<u32> = let %9
+    %11:vec3<u32> = shr %6, %10
+    %12:vec3<u32> = and %11, vec3<u32>(255u)
+    %13:vec3<bool> = eq %12, vec3<u32>(0u)
+    %14:vec3<u32> = select vec3<u32>(0u), vec3<u32>(8u), %13
+    %15:vec3<u32> = let %14
+    %16:vec3<u32> = shr %11, %15
+    %17:vec3<u32> = and %16, vec3<u32>(15u)
+    %18:vec3<bool> = eq %17, vec3<u32>(0u)
+    %19:vec3<u32> = select vec3<u32>(0u), vec3<u32>(4u), %18
+    %20:vec3<u32> = let %19
+    %21:vec3<u32> = shr %16, %20
+    %22:vec3<u32> = and %21, vec3<u32>(3u)
+    %23:vec3<bool> = eq %22, vec3<u32>(0u)
+    %24:vec3<u32> = select vec3<u32>(0u), vec3<u32>(2u), %23
+    %25:vec3<u32> = let %24
+    %26:vec3<u32> = shr %21, %25
+    %27:vec3<u32> = and %26, vec3<u32>(1u)
+    %28:vec3<bool> = eq %27, vec3<u32>(0u)
+    %29:vec3<u32> = select vec3<u32>(0u), vec3<u32>(1u), %28
+    %30:vec3<u32> = or %25, %29
+    %31:vec3<u32> = or %20, %30
+    %32:vec3<u32> = or %15, %31
+    %33:vec3<u32> = or %10, %32
+    %34:vec3<bool> = eq %26, vec3<u32>(0u)
+    %35:vec3<u32> = select %33, vec3<u32>(4294967295u), %34
+    %36:vec3<i32> = bitcast %35
+    %res:ptr<function, vec3<i32>, read_write> = var, %36
+    %38:vec3<i32> = load %res
+    store %prevent_dce, %38
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_7496d6
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %40:void = call %firstTrailingBit_7496d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_7496d6
+%fragment_main = @fragment func():void {
+  $B4: {
+    %42:void = call %firstTrailingBit_7496d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_7496d6
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %44:void = call %firstTrailingBit_7496d6
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.msl
index d98c93a..be6f04a 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.ir.msl
@@ -1,35 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_86551b = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_86551b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
-    %5:vec4<i32> = firstTrailingBit %4
-    %res:ptr<function, vec4<i32>, read_write> = var, %5
-    %7:vec4<i32> = load %res
-    store %prevent_dce, %7
+    %5:vec4<u32> = bitcast %4
+    %6:vec4<u32> = let %5
+    %7:vec4<u32> = and %6, vec4<u32>(65535u)
+    %8:vec4<bool> = eq %7, vec4<u32>(0u)
+    %9:vec4<u32> = select vec4<u32>(0u), vec4<u32>(16u), %8
+    %10:vec4<u32> = let %9
+    %11:vec4<u32> = shr %6, %10
+    %12:vec4<u32> = and %11, vec4<u32>(255u)
+    %13:vec4<bool> = eq %12, vec4<u32>(0u)
+    %14:vec4<u32> = select vec4<u32>(0u), vec4<u32>(8u), %13
+    %15:vec4<u32> = let %14
+    %16:vec4<u32> = shr %11, %15
+    %17:vec4<u32> = and %16, vec4<u32>(15u)
+    %18:vec4<bool> = eq %17, vec4<u32>(0u)
+    %19:vec4<u32> = select vec4<u32>(0u), vec4<u32>(4u), %18
+    %20:vec4<u32> = let %19
+    %21:vec4<u32> = shr %16, %20
+    %22:vec4<u32> = and %21, vec4<u32>(3u)
+    %23:vec4<bool> = eq %22, vec4<u32>(0u)
+    %24:vec4<u32> = select vec4<u32>(0u), vec4<u32>(2u), %23
+    %25:vec4<u32> = let %24
+    %26:vec4<u32> = shr %21, %25
+    %27:vec4<u32> = and %26, vec4<u32>(1u)
+    %28:vec4<bool> = eq %27, vec4<u32>(0u)
+    %29:vec4<u32> = select vec4<u32>(0u), vec4<u32>(1u), %28
+    %30:vec4<u32> = or %25, %29
+    %31:vec4<u32> = or %20, %30
+    %32:vec4<u32> = or %15, %31
+    %33:vec4<u32> = or %10, %32
+    %34:vec4<bool> = eq %26, vec4<u32>(0u)
+    %35:vec4<u32> = select %33, vec4<u32>(4294967295u), %34
+    %36:vec4<i32> = bitcast %35
+    %res:ptr<function, vec4<i32>, read_write> = var, %36
+    %38:vec4<i32> = load %res
+    store %prevent_dce, %38
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_86551b
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %40:void = call %firstTrailingBit_86551b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_86551b
+%fragment_main = @fragment func():void {
+  $B4: {
+    %42:void = call %firstTrailingBit_86551b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_86551b
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %44:void = call %firstTrailingBit_86551b
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.msl
index e6a4110..40e8482 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.ir.msl
@@ -1,35 +1,64 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%firstTrailingBit_cb51ce = func():void -> %b2 {
-  %b2 = block {
+%firstTrailingBit_cb51ce = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
-    %5:vec3<u32> = firstTrailingBit %4
-    %res:ptr<function, vec3<u32>, read_write> = var, %5
-    %7:vec3<u32> = load %res
-    store %prevent_dce, %7
+    %5:vec3<u32> = let %4
+    %6:vec3<u32> = and %5, vec3<u32>(65535u)
+    %7:vec3<bool> = eq %6, vec3<u32>(0u)
+    %8:vec3<u32> = select vec3<u32>(0u), vec3<u32>(16u), %7
+    %9:vec3<u32> = let %8
+    %10:vec3<u32> = shr %5, %9
+    %11:vec3<u32> = and %10, vec3<u32>(255u)
+    %12:vec3<bool> = eq %11, vec3<u32>(0u)
+    %13:vec3<u32> = select vec3<u32>(0u), vec3<u32>(8u), %12
+    %14:vec3<u32> = let %13
+    %15:vec3<u32> = shr %10, %14
+    %16:vec3<u32> = and %15, vec3<u32>(15u)
+    %17:vec3<bool> = eq %16, vec3<u32>(0u)
+    %18:vec3<u32> = select vec3<u32>(0u), vec3<u32>(4u), %17
+    %19:vec3<u32> = let %18
+    %20:vec3<u32> = shr %15, %19
+    %21:vec3<u32> = and %20, vec3<u32>(3u)
+    %22:vec3<bool> = eq %21, vec3<u32>(0u)
+    %23:vec3<u32> = select vec3<u32>(0u), vec3<u32>(2u), %22
+    %24:vec3<u32> = let %23
+    %25:vec3<u32> = shr %20, %24
+    %26:vec3<u32> = and %25, vec3<u32>(1u)
+    %27:vec3<bool> = eq %26, vec3<u32>(0u)
+    %28:vec3<u32> = select vec3<u32>(0u), vec3<u32>(1u), %27
+    %29:vec3<u32> = or %24, %28
+    %30:vec3<u32> = or %19, %29
+    %31:vec3<u32> = or %14, %30
+    %32:vec3<u32> = or %9, %31
+    %33:vec3<bool> = eq %25, vec3<u32>(0u)
+    %34:vec3<u32> = select %32, vec3<u32>(4294967295u), %33
+    %res:ptr<function, vec3<u32>, read_write> = var, %34
+    %36:vec3<u32> = load %res
+    store %prevent_dce, %36
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %firstTrailingBit_cb51ce
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %38:void = call %firstTrailingBit_cb51ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %firstTrailingBit_cb51ce
+%fragment_main = @fragment func():void {
+  $B4: {
+    %40:void = call %firstTrailingBit_cb51ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %firstTrailingBit_cb51ce
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %42:void = call %firstTrailingBit_cb51ce
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.msl
index eb620c3..12f230d 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_3802c0 = func():void -> %b2 {
-  %b2 = block {
+%floor_3802c0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.5h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_3802c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_3802c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_3802c0
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.msl
index 9f96005..b6b85f8 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_3bccc4 = func():void -> %b2 {
-  %b2 = block {
+%floor_3bccc4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.5f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_3bccc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_3bccc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_3bccc4
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.msl
index 95e13ee..01eda4e 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_5fc9ac = func():void -> %b2 {
-  %b2 = block {
+%floor_5fc9ac = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.5f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_5fc9ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_5fc9ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_5fc9ac
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.msl
index 8a2f895..3366cdc 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_60d7ea = func():void -> %b2 {
-  %b2 = block {
+%floor_60d7ea = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.5f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_60d7ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_60d7ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_60d7ea
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.msl
index 191bd5a..a033a2f5 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%floor_66f154 = func():void -> %b2 {
-  %b2 = block {
+%floor_66f154 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.5f
     %4:f32 = load %arg_0
     %5:f32 = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_66f154
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_66f154
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_66f154
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.msl
index 123f10a..2420c6e 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_84658c = func():void -> %b2 {
-  %b2 = block {
+%floor_84658c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.5h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_84658c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_84658c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_84658c
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.msl
index 1760967..c4c5252 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%floor_a2d31b = func():void -> %b2 {
-  %b2 = block {
+%floor_a2d31b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.5h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_a2d31b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_a2d31b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_a2d31b
     ret
   }
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.msl
index 12c4cd7..f5f3ac4 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%floor_b6e09c = func():void -> %b2 {
-  %b2 = block {
+%floor_b6e09c = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.5h
     %4:f16 = load %arg_0
     %5:f16 = floor %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %floor_b6e09c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %floor_b6e09c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %floor_b6e09c
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.msl
index bf40153..936329a 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_26a7a9 = func():void -> %b2 {
-  %b2 = block {
+%fma_26a7a9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_26a7a9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_26a7a9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_26a7a9
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.msl
index 1910ad0..a7a2534 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_6a3283 = func():void -> %b2 {
-  %b2 = block {
+%fma_6a3283 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_6a3283
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_6a3283
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_6a3283
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.msl
index e73a991..99c3c5d 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_ab7818 = func():void -> %b2 {
-  %b2 = block {
+%fma_ab7818 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_ab7818
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_ab7818
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_ab7818
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.msl
index a8a59ad..9f83d66 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_bf21b6 = func():void -> %b2 {
-  %b2 = block {
+%fma_bf21b6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_bf21b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_bf21b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_bf21b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.msl
index c9eab4d..5859743 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fma_c10ba3 = func():void -> %b2 {
-  %b2 = block {
+%fma_c10ba3 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_c10ba3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_c10ba3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_c10ba3
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.msl
index 674f899..7a91b27 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%fma_c8abb3 = func():void -> %b2 {
-  %b2 = block {
+%fma_c8abb3 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_c8abb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_c8abb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_c8abb3
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.msl
index 0e4bf36..b64eea0 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_e17c5c = func():void -> %b2 {
-  %b2 = block {
+%fma_e17c5c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_e17c5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_e17c5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_e17c5c
     ret
   }
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.msl
index e1eeff7..6970e0c 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fma_e7abdc = func():void -> %b2 {
-  %b2 = block {
+%fma_e7abdc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %fma_e7abdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %fma_e7abdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %fma_e7abdc
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.msl
index f636cf7..a5f0b4e 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_181aa9 = func():void -> %b2 {
-  %b2 = block {
+%fract_181aa9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.25h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_181aa9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_181aa9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_181aa9
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.msl
index a5899c0..7548531 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_498c77 = func():void -> %b2 {
-  %b2 = block {
+%fract_498c77 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.25h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_498c77
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_498c77
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_498c77
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.msl
index 280da15..2aebd35 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_8bc1e9 = func():void -> %b2 {
-  %b2 = block {
+%fract_8bc1e9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.25f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_8bc1e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_8bc1e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_8bc1e9
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.msl
index db5b13f..27f3625 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_943cb1 = func():void -> %b2 {
-  %b2 = block {
+%fract_943cb1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.25f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_943cb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_943cb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_943cb1
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.msl
index 9eb6f20..055722d 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_958a1d = func():void -> %b2 {
-  %b2 = block {
+%fract_958a1d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.25h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_958a1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_958a1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_958a1d
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.msl
index 27dc16e..59fc0ce 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fract_a49758 = func():void -> %b2 {
-  %b2 = block {
+%fract_a49758 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.25f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_a49758
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_a49758
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_a49758
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.msl
index 4fa7b70..29710e2 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%fract_eb38ce = func():void -> %b2 {
-  %b2 = block {
+%fract_eb38ce = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.25h
     %4:f16 = load %arg_0
     %5:f16 = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_eb38ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_eb38ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_eb38ce
     ret
   }
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.msl
index ea4271b..4a90150 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fract_fa5c71 = func():void -> %b2 {
-  %b2 = block {
+%fract_fa5c71 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.25f
     %4:f32 = load %arg_0
     %5:f32 = fract %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %fract_fa5c71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %fract_fa5c71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %fract_fa5c71
     ret
   }
diff --git a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/3dd21e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/4b2200.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/5257dd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/5f47bf.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/77af93.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/979800.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/ae4a66.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.msl
index 4b0600b..1423d26 100644
--- a/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/frexp/eb2421.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: frexp
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: frexp
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.msl
index f54ec4b..bfa53f8 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_5d1b39 = func():void -> %b2 {
-  %b2 = block {
+%fwidth_5d1b39 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = fwidth %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidth_5d1b39
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.msl
index c2bea5d..6a2f226 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_b83ebb = func():void -> %b2 {
-  %b2 = block {
+%fwidth_b83ebb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = fwidth %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidth_b83ebb
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.msl
index fe34479..ee4019b 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_d2ab9a = func():void -> %b2 {
-  %b2 = block {
+%fwidth_d2ab9a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = fwidth %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidth_d2ab9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.msl
index 8d42cbf..6f11de3 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fwidth_df38ef = func():void -> %b2 {
-  %b2 = block {
+%fwidth_df38ef = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = fwidth %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidth_df38ef
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.msl
index a8646b8..271aa4a 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_159c8a = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_159c8a = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = fwidthCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthCoarse_159c8a
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.msl
index a5d4016..fa7b458 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_1e59d9 = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_1e59d9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = fwidthCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthCoarse_1e59d9
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl
index 85fa55e..6abf6c0 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_4e4fc4 = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_4e4fc4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = fwidthCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthCoarse_4e4fc4
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.msl
index 9f7edc3..9d8ea01 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthCoarse_e653f7 = func():void -> %b2 {
-  %b2 = block {
+%fwidthCoarse_e653f7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = fwidthCoarse %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthCoarse_e653f7
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.msl
index 68b77eb..7cea757 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_523fdc = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_523fdc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = fwidthFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthFine_523fdc
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.msl
index 6d37679..6c05b53 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_68f4ef = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_68f4ef = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = fwidthFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthFine_68f4ef
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.msl
index 3df09b8..fc30376 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_f1742d = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_f1742d = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = fwidthFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthFine_f1742d
     ret
   }
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.msl
index b2683aa..e6ec81c 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%fwidthFine_ff6aa0 = func():void -> %b2 {
-  %b2 = block {
+%fwidthFine_ff6aa0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = fwidthFine %4
@@ -15,8 +15,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %9:void = call %fwidthFine_ff6aa0
     ret
   }
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.msl
index 6e4321b..9f7a806 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_3c7ba5 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_3c7ba5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:vec2<u32> = load %arg_0
-    %8:vec2<u32> = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:vec2<u32> = insertBits %7, %8, %9, %10
-    %res:ptr<function, vec2<u32>, read_write> = var, %11
-    %13:vec2<u32> = load %res
-    store %prevent_dce, %13
+    %8:vec2<u32> = let %7
+    %9:vec2<u32> = load %arg_1
+    %10:vec2<u32> = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:vec2<u32> = insertBits %8, %10, %15, %17
+    %res:ptr<function, vec2<u32>, read_write> = var, %18
+    %20:vec2<u32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_3c7ba5
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_3c7ba5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_3c7ba5
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_3c7ba5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_3c7ba5
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_3c7ba5
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.msl
index 4512c1a..2870ac6 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_428b0b = func():void -> %b2 {
-  %b2 = block {
+%insertBits_428b0b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:vec3<i32> = load %arg_0
-    %8:vec3<i32> = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:vec3<i32> = insertBits %7, %8, %9, %10
-    %res:ptr<function, vec3<i32>, read_write> = var, %11
-    %13:vec3<i32> = load %res
-    store %prevent_dce, %13
+    %8:vec3<i32> = let %7
+    %9:vec3<i32> = load %arg_1
+    %10:vec3<i32> = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:vec3<i32> = insertBits %8, %10, %15, %17
+    %res:ptr<function, vec3<i32>, read_write> = var, %18
+    %20:vec3<i32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_428b0b
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_428b0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_428b0b
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_428b0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_428b0b
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_428b0b
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.msl
index c511729..ffe2673 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_51ede1 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_51ede1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:vec4<u32> = load %arg_0
-    %8:vec4<u32> = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:vec4<u32> = insertBits %7, %8, %9, %10
-    %res:ptr<function, vec4<u32>, read_write> = var, %11
-    %13:vec4<u32> = load %res
-    store %prevent_dce, %13
+    %8:vec4<u32> = let %7
+    %9:vec4<u32> = load %arg_1
+    %10:vec4<u32> = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:vec4<u32> = insertBits %8, %10, %15, %17
+    %res:ptr<function, vec4<u32>, read_write> = var, %18
+    %20:vec4<u32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_51ede1
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_51ede1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_51ede1
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_51ede1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_51ede1
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_51ede1
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.msl
index b53b133..383f3b3 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_65468b = func():void -> %b2 {
-  %b2 = block {
+%insertBits_65468b = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:i32 = load %arg_0
-    %8:i32 = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:i32 = insertBits %7, %8, %9, %10
-    %res:ptr<function, i32, read_write> = var, %11
-    %13:i32 = load %res
-    store %prevent_dce, %13
+    %8:i32 = let %7
+    %9:i32 = load %arg_1
+    %10:i32 = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:i32 = insertBits %8, %10, %15, %17
+    %res:ptr<function, i32, read_write> = var, %18
+    %20:i32 = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_65468b
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_65468b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_65468b
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_65468b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_65468b
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_65468b
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.msl
index 2bff6d7..b3de742 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_87826b = func():void -> %b2 {
-  %b2 = block {
+%insertBits_87826b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:vec3<u32> = load %arg_0
-    %8:vec3<u32> = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:vec3<u32> = insertBits %7, %8, %9, %10
-    %res:ptr<function, vec3<u32>, read_write> = var, %11
-    %13:vec3<u32> = load %res
-    store %prevent_dce, %13
+    %8:vec3<u32> = let %7
+    %9:vec3<u32> = load %arg_1
+    %10:vec3<u32> = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:vec3<u32> = insertBits %8, %10, %15, %17
+    %res:ptr<function, vec3<u32>, read_write> = var, %18
+    %20:vec3<u32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_87826b
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_87826b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_87826b
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_87826b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_87826b
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_87826b
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.msl
index db7d388..e02fd5b 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_d86978 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_d86978 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:vec4<i32> = load %arg_0
-    %8:vec4<i32> = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:vec4<i32> = insertBits %7, %8, %9, %10
-    %res:ptr<function, vec4<i32>, read_write> = var, %11
-    %13:vec4<i32> = load %res
-    store %prevent_dce, %13
+    %8:vec4<i32> = let %7
+    %9:vec4<i32> = load %arg_1
+    %10:vec4<i32> = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:vec4<i32> = insertBits %8, %10, %15, %17
+    %res:ptr<function, vec4<i32>, read_write> = var, %18
+    %20:vec4<i32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_d86978
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_d86978
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_d86978
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_d86978
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_d86978
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_d86978
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.msl
index f3ec1f4..afb16eb 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_e3e3a2 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_e3e3a2 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:u32 = load %arg_0
-    %8:u32 = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:u32 = insertBits %7, %8, %9, %10
-    %res:ptr<function, u32, read_write> = var, %11
-    %13:u32 = load %res
-    store %prevent_dce, %13
+    %8:u32 = let %7
+    %9:u32 = load %arg_1
+    %10:u32 = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:u32 = insertBits %8, %10, %15, %17
+    %res:ptr<function, u32, read_write> = var, %18
+    %20:u32 = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_e3e3a2
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_e3e3a2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_e3e3a2
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_e3e3a2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_e3e3a2
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_e3e3a2
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.msl
index 75ae83f..284d7e3 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.ir.msl
@@ -1,41 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%insertBits_fe6ba6 = func():void -> %b2 {
-  %b2 = block {
+%insertBits_fe6ba6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:vec2<i32> = load %arg_0
-    %8:vec2<i32> = load %arg_1
-    %9:u32 = load %arg_2
-    %10:u32 = load %arg_3
-    %11:vec2<i32> = insertBits %7, %8, %9, %10
-    %res:ptr<function, vec2<i32>, read_write> = var, %11
-    %13:vec2<i32> = load %res
-    store %prevent_dce, %13
+    %8:vec2<i32> = let %7
+    %9:vec2<i32> = load %arg_1
+    %10:vec2<i32> = let %9
+    %11:u32 = load %arg_2
+    %12:u32 = load %arg_3
+    %13:u32 = let %12
+    %14:u32 = min %11, 32u
+    %15:u32 = let %14
+    %16:u32 = sub 32u, %15
+    %17:u32 = min %13, %16
+    %18:vec2<i32> = insertBits %8, %10, %15, %17
+    %res:ptr<function, vec2<i32>, read_write> = var, %18
+    %20:vec2<i32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %15:void = call %insertBits_fe6ba6
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %insertBits_fe6ba6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %17:void = call %insertBits_fe6ba6
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %insertBits_fe6ba6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %19:void = call %insertBits_fe6ba6
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %insertBits_fe6ba6
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.msl
index f5bf230..f25d3ee 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_440300 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_440300 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_440300
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_440300
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_440300
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.msl
index dc1fee3..f8fbfaf 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_5f51f8 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_5f51f8 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_5f51f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_5f51f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_5f51f8
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.msl
index fac232a..d4afaa8 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_84407e = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_84407e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_84407e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_84407e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_84407e
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.msl
index 7a3c695..6a4c8e2 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_8f2bd2 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_8f2bd2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_8f2bd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_8f2bd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_8f2bd2
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.msl
index deaa16b..859d28f 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_b197b1 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_b197b1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_b197b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_b197b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_b197b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.msl
index a205c2a..1155726 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_b85ebd = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_b85ebd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_b85ebd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_b85ebd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_b85ebd
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.msl
index 02d8d60..2eac11b 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_c22347 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_c22347 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_c22347
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_c22347
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_c22347
     ret
   }
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.msl
index eae7420..ab8e2e3 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%inverseSqrt_cbdc70 = func():void -> %b2 {
-  %b2 = block {
+%inverseSqrt_cbdc70 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = inverseSqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %inverseSqrt_cbdc70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %inverseSqrt_cbdc70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %inverseSqrt_cbdc70
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.msl
index 1e85268..1b4f5f2 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_082c1f = func():void -> %b2 {
-  %b2 = block {
+%ldexp_082c1f = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = ldexp %4, 1i
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_082c1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_082c1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_082c1f
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.msl
index 3358897..6abced5 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_217a31 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_217a31 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = ldexp %4, vec2<i32>(1i)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_217a31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_217a31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_217a31
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.msl
index aa8f13a..0606c84 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_3d90b4 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_3d90b4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_3d90b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_3d90b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_3d90b4
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.msl
index 298a887..2aed51e 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_593ff3 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_593ff3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = ldexp %4, vec3<i32>(1i)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_593ff3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_593ff3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_593ff3
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.msl
index 2b143d1..5ab7660 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_624e0c = func():void -> %b2 {
-  %b2 = block {
+%ldexp_624e0c = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_624e0c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_624e0c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_624e0c
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.msl
index 8535667..568b34a 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_65a7bd = func():void -> %b2 {
-  %b2 = block {
+%ldexp_65a7bd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = ldexp %4, vec4<i32>(1i)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_65a7bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_65a7bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_65a7bd
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.msl
index a55991e..6462700 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_7485ce = func():void -> %b2 {
-  %b2 = block {
+%ldexp_7485ce = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_7485ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_7485ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_7485ce
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.msl
index ab163ba..40c82ad 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_7fa13c = func():void -> %b2 {
-  %b2 = block {
+%ldexp_7fa13c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_7fa13c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_7fa13c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_7fa13c
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.msl
index fcb8b27..b880f13 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_8a0c2f = func():void -> %b2 {
-  %b2 = block {
+%ldexp_8a0c2f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = ldexp %4, vec4<i32>(1i)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_8a0c2f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_8a0c2f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_8a0c2f
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.msl
index d348024..a0bbce0 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_8e43e9 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_8e43e9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = ldexp %4, vec3<i32>(1i)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_8e43e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_8e43e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_8e43e9
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.msl
index 30a2f87..d9062dd 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_a22679 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_a22679 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = ldexp %4, vec2<i32>(1i)
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_a22679
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_a22679
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_a22679
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.msl
index fca71e7..5e0688e 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_a31cdc = func():void -> %b2 {
-  %b2 = block {
+%ldexp_a31cdc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_a31cdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_a31cdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_a31cdc
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.msl
index 6074eb0..f3e515a 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_abd718 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_abd718 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_abd718
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_abd718
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_abd718
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.msl
index ba63271..d8ede5c 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_c9d0b7 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_c9d0b7 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = ldexp %4, 1i
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %ldexp_c9d0b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %ldexp_c9d0b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %ldexp_c9d0b7
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.msl
index bfad74b..8563df5 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_cc9cde = func():void -> %b2 {
-  %b2 = block {
+%ldexp_cc9cde = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_cc9cde
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_cc9cde
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_cc9cde
     ret
   }
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.msl
index a1c42a7..612fd50 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%ldexp_db8b49 = func():void -> %b2 {
-  %b2 = block {
+%ldexp_db8b49 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %ldexp_db8b49
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %ldexp_db8b49
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %ldexp_db8b49
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.msl
index 863be46..e95f9e4 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_056071 = func():void -> %b2 {
-  %b2 = block {
+%length_056071 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(0.0f)
     %4:vec3<f32> = load %arg_0
     %5:f32 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_056071
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_056071
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_056071
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.msl
index bf4e99f..35357a6 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_3f0e13 = func():void -> %b2 {
-  %b2 = block {
+%length_3f0e13 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(0.0h)
     %4:vec2<f16> = load %arg_0
     %5:f16 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_3f0e13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_3f0e13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_3f0e13
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.msl
index 3524c44..2c0d70d 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_5b1a9b = func():void -> %b2 {
-  %b2 = block {
+%length_5b1a9b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(0.0h)
     %4:vec4<f16> = load %arg_0
     %5:f16 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_5b1a9b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_5b1a9b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_5b1a9b
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.msl
index eaa7796..7a2defb 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_602a17 = func():void -> %b2 {
-  %b2 = block {
+%length_602a17 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 0.0f
     %4:f32 = load %arg_0
     %5:f32 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_602a17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_602a17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_602a17
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.msl
index e5a38c6..85bcbc5d 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_afde8b = func():void -> %b2 {
-  %b2 = block {
+%length_afde8b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %4:vec2<f32> = load %arg_0
     %5:f32 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_afde8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_afde8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_afde8b
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.msl
index 0ef6b56..3c41bbf 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_ba16d6 = func():void -> %b2 {
-  %b2 = block {
+%length_ba16d6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(0.0h)
     %4:vec3<f16> = load %arg_0
     %5:f16 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_ba16d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_ba16d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_ba16d6
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.msl
index 1fdfce4..642a661 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%length_becebf = func():void -> %b2 {
-  %b2 = block {
+%length_becebf = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
     %4:vec4<f32> = load %arg_0
     %5:f32 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_becebf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_becebf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_becebf
     ret
   }
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.msl
index 224ed46..016229a 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%length_c158da = func():void -> %b2 {
-  %b2 = block {
+%length_c158da = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 0.0h
     %4:f16 = load %arg_0
     %5:f16 = length %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %length_c158da
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %length_c158da
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %length_c158da
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.msl
index 85e4e74..5eef4a2 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log_3da25a = func():void -> %b2 {
-  %b2 = block {
+%log_3da25a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_3da25a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_3da25a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_3da25a
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.msl
index 983307b..fae22b8 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log_6ff86f = func():void -> %b2 {
-  %b2 = block {
+%log_6ff86f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_6ff86f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_6ff86f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_6ff86f
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.msl
index 0e592ee..e946e94 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%log_7114a6 = func():void -> %b2 {
-  %b2 = block {
+%log_7114a6 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_7114a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_7114a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_7114a6
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.msl
index 927a123..cb15115 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log_8f0e32 = func():void -> %b2 {
-  %b2 = block {
+%log_8f0e32 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_8f0e32
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_8f0e32
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_8f0e32
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.msl
index 103312e..643e4b0 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log_b2ce28 = func():void -> %b2 {
-  %b2 = block {
+%log_b2ce28 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_b2ce28
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_b2ce28
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_b2ce28
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.msl
index f16fc0e..ab9f9f0 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%log_c9f489 = func():void -> %b2 {
-  %b2 = block {
+%log_c9f489 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_c9f489
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_c9f489
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_c9f489
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.msl
index 0e6f4d1..0cc9552 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log_cdbdc1 = func():void -> %b2 {
-  %b2 = block {
+%log_cdbdc1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_cdbdc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_cdbdc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_cdbdc1
     ret
   }
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.msl
index 0e466a0..5a04e6e 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log_f4c570 = func():void -> %b2 {
-  %b2 = block {
+%log_f4c570 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = log %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log_f4c570
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log_f4c570
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log_f4c570
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.msl
index 2930754..5926a34 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_38b478 = func():void -> %b2 {
-  %b2 = block {
+%log2_38b478 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_38b478
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_38b478
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_38b478
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.msl
index cd0e2bb..4d1be75 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%log2_4036ed = func():void -> %b2 {
-  %b2 = block {
+%log2_4036ed = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_4036ed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_4036ed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_4036ed
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.msl
index 972e620..4127f4e 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_776088 = func():void -> %b2 {
-  %b2 = block {
+%log2_776088 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_776088
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_776088
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_776088
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.msl
index 9914830..81a2294 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%log2_8c10b3 = func():void -> %b2 {
-  %b2 = block {
+%log2_8c10b3 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_8c10b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_8c10b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_8c10b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.msl
index 378e8b1..6f6f237 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_902988 = func():void -> %b2 {
-  %b2 = block {
+%log2_902988 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_902988
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_902988
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_902988
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.msl
index 9a03150..d8d20ec 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_adb233 = func():void -> %b2 {
-  %b2 = block {
+%log2_adb233 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_adb233
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_adb233
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_adb233
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.msl
index 5299a21..d22e0f4 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_aea659 = func():void -> %b2 {
-  %b2 = block {
+%log2_aea659 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_aea659
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_aea659
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_aea659
     ret
   }
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.msl
index 1bbabfd..8e44561 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%log2_fb9f0b = func():void -> %b2 {
-  %b2 = block {
+%log2_fb9f0b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = log2 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %log2_fb9f0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %log2_fb9f0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %log2_fb9f0b
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.msl
index e7fd6d4..42205d5 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%max_0c0aae = func():void -> %b2 {
-  %b2 = block {
+%max_0c0aae = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_0c0aae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_0c0aae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_0c0aae
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.msl
index 8b5a30b..6a34953 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%max_111ac0 = func():void -> %b2 {
-  %b2 = block {
+%max_111ac0 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_111ac0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_111ac0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_111ac0
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.msl
index cc03377..284b967 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_25eafe = func():void -> %b2 {
-  %b2 = block {
+%max_25eafe = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:vec3<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_25eafe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_25eafe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_25eafe
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.msl
index 6d478db..f37df09 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_320815 = func():void -> %b2 {
-  %b2 = block {
+%max_320815 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:vec2<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_320815
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_320815
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_320815
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.msl
index 1f1f8eb..502cf23 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%max_34956e = func():void -> %b2 {
-  %b2 = block {
+%max_34956e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_34956e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_34956e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_34956e
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.msl
index 448aad1..bbc95b7 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%max_445169 = func():void -> %b2 {
-  %b2 = block {
+%max_445169 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_445169
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_445169
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_445169
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.msl
index 3d79aad..992d41f 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%max_44a39d = func():void -> %b2 {
-  %b2 = block {
+%max_44a39d = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_44a39d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_44a39d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_44a39d
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.msl
index 0fccda7..f614d96 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_453e04 = func():void -> %b2 {
-  %b2 = block {
+%max_453e04 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:vec4<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_453e04
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_453e04
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_453e04
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.msl
index 0d31575..2a0f47c 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_462050 = func():void -> %b2 {
-  %b2 = block {
+%max_462050 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_462050
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_462050
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_462050
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.msl
index 91ebf04..f46ed4c 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_4883ac = func():void -> %b2 {
-  %b2 = block {
+%max_4883ac = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_4883ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_4883ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_4883ac
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.msl
index 2c20d93..023b4b7 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_85e6bc = func():void -> %b2 {
-  %b2 = block {
+%max_85e6bc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:vec4<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_85e6bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_85e6bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_85e6bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.msl
index 00788d9..8819b3a 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_a93419 = func():void -> %b2 {
-  %b2 = block {
+%max_a93419 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_a93419
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_a93419
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_a93419
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.msl
index e0c17dd..28f7ea7 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_b1b73a = func():void -> %b2 {
-  %b2 = block {
+%max_b1b73a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:vec3<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_b1b73a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_b1b73a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_b1b73a
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.msl
index 9ef1567..264afe5 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%max_ce7c30 = func():void -> %b2 {
-  %b2 = block {
+%max_ce7c30 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_ce7c30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_ce7c30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_ce7c30
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.msl
index 4f4fa97..d8612f2 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%max_e14f2b = func():void -> %b2 {
-  %b2 = block {
+%max_e14f2b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_e14f2b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_e14f2b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_e14f2b
     ret
   }
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.msl
index 814db98..ee228be 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%max_e8192f = func():void -> %b2 {
-  %b2 = block {
+%max_e8192f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:vec2<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %max_e8192f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %max_e8192f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %max_e8192f
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.msl
index e4296e9..5688d7a 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_03c7e3 = func():void -> %b2 {
-  %b2 = block {
+%min_03c7e3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:vec2<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_03c7e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_03c7e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_03c7e3
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.msl
index 509af58..87bf497 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_0dc614 = func():void -> %b2 {
-  %b2 = block {
+%min_0dc614 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:vec4<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_0dc614
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_0dc614
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_0dc614
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.msl
index 77d9b27..8595f0e 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_3941e1 = func():void -> %b2 {
-  %b2 = block {
+%min_3941e1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:vec4<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_3941e1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_3941e1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_3941e1
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.msl
index 11a3018..9a14261 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%min_46c5d3 = func():void -> %b2 {
-  %b2 = block {
+%min_46c5d3 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:u32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_46c5d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_46c5d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_46c5d3
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.msl
index 812ce84..46ff55e 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%min_7c710a = func():void -> %b2 {
-  %b2 = block {
+%min_7c710a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_7c710a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_7c710a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_7c710a
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.msl
index 2a32fe3..ef545f0 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_82b28f = func():void -> %b2 {
-  %b2 = block {
+%min_82b28f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:vec2<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_82b28f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_82b28f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_82b28f
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.msl
index 845ff16..2a9a278 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_93cfc4 = func():void -> %b2 {
-  %b2 = block {
+%min_93cfc4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_93cfc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_93cfc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_93cfc4
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.msl
index 1b355f8..273db93 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_a45171 = func():void -> %b2 {
-  %b2 = block {
+%min_a45171 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:vec3<i32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_a45171
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_a45171
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_a45171
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.msl
index 724806b..7f3f049 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_aa28ad = func():void -> %b2 {
-  %b2 = block {
+%min_aa28ad = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_aa28ad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_aa28ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_aa28ad
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.msl
index 3813715..72b5a8d 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%min_ab0acd = func():void -> %b2 {
-  %b2 = block {
+%min_ab0acd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_ab0acd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_ab0acd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_ab0acd
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.msl
index a126212..37292f0 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%min_ac84d6 = func():void -> %b2 {
-  %b2 = block {
+%min_ac84d6 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_ac84d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_ac84d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_ac84d6
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.msl
index 9851de6..c505a27 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%min_af326d = func():void -> %b2 {
-  %b2 = block {
+%min_af326d = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_af326d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_af326d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_af326d
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.msl
index 62ccd48..2cf9b05 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_c70bb7 = func():void -> %b2 {
-  %b2 = block {
+%min_c70bb7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:vec3<u32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_c70bb7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_c70bb7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_c70bb7
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.msl
index 8669bf3..22d0af0 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%min_c73147 = func():void -> %b2 {
-  %b2 = block {
+%min_c73147 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:i32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_c73147
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_c73147
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_c73147
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.msl
index 8c8dde5..0762bef 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%min_c76fa6 = func():void -> %b2 {
-  %b2 = block {
+%min_c76fa6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_c76fa6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_c76fa6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_c76fa6
     ret
   }
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.msl
index 56a71ec..ebd0e21 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%min_e780f9 = func():void -> %b2 {
-  %b2 = block {
+%min_e780f9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %min_e780f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %min_e780f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %min_e780f9
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.msl
index 0660144..aeb0010 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_0c8c33 = func():void -> %b2 {
-  %b2 = block {
+%mix_0c8c33 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_0c8c33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_0c8c33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_0c8c33
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.msl
index afce720..1b060d7 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_1faeb1 = func():void -> %b2 {
-  %b2 = block {
+%mix_1faeb1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_1faeb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_1faeb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_1faeb1
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.msl
index eee31a2..005198c 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_2fadab = func():void -> %b2 {
-  %b2 = block {
+%mix_2fadab = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_2fadab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_2fadab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_2fadab
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.msl
index fdd1391..39af80e 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_315264 = func():void -> %b2 {
-  %b2 = block {
+%mix_315264 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_315264
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_315264
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_315264
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.msl
index 1b68b61..bdf101f 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%mix_38cbbb = func():void -> %b2 {
-  %b2 = block {
+%mix_38cbbb = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_38cbbb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_38cbbb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_38cbbb
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.msl
index 9cb1e9a..ec6e3e6 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%mix_4f0b5e = func():void -> %b2 {
-  %b2 = block {
+%mix_4f0b5e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_4f0b5e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_4f0b5e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_4f0b5e
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.msl
index 6338703..b79aba10 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_63f2fd = func():void -> %b2 {
-  %b2 = block {
+%mix_63f2fd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_63f2fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_63f2fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_63f2fd
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.msl
index 9ecbfa8..a9484c0 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_6f8adc = func():void -> %b2 {
-  %b2 = block {
+%mix_6f8adc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_6f8adc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_6f8adc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_6f8adc
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.msl
index a4c9b9f..fa632b2 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_98ee3e = func():void -> %b2 {
-  %b2 = block {
+%mix_98ee3e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_98ee3e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_98ee3e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_98ee3e
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.msl
index e6e5db3..b0ef4cf 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_c1aec6 = func():void -> %b2 {
-  %b2 = block {
+%mix_c1aec6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_c1aec6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_c1aec6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_c1aec6
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.msl
index 9ab5cb3..b47d596 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_c37ede = func():void -> %b2 {
-  %b2 = block {
+%mix_c37ede = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_c37ede
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_c37ede
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_c37ede
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.msl
index 58ff410..49ae0ec 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_e46a83 = func():void -> %b2 {
-  %b2 = block {
+%mix_e46a83 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_e46a83
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_e46a83
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_e46a83
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.msl
index ba9e9a0..a5c2ec6 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_ee2468 = func():void -> %b2 {
-  %b2 = block {
+%mix_ee2468 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_ee2468
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_ee2468
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_ee2468
     ret
   }
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.msl
index 2de3231..f239fa5 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%mix_f1a543 = func():void -> %b2 {
-  %b2 = block {
+%mix_f1a543 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %mix_f1a543
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %mix_f1a543
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %mix_f1a543
     ret
   }
diff --git a/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/2d50da.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/45005f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/4bfced.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/5ea256.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/8dbbbf.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/995934.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/a545b9.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/modf/bbf7f7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.msl
index c7322ed..96a12e7 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_39d5ec = func():void -> %b2 {
-  %b2 = block {
+%normalize_39d5ec = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = normalize %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %normalize_39d5ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %normalize_39d5ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %normalize_39d5ec
     ret
   }
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.msl
index cca50e0..5032c0d 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_64d8c0 = func():void -> %b2 {
-  %b2 = block {
+%normalize_64d8c0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = normalize %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %normalize_64d8c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %normalize_64d8c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %normalize_64d8c0
     ret
   }
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.msl
index 850b960..9139b6a 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_7990f3 = func():void -> %b2 {
-  %b2 = block {
+%normalize_7990f3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = normalize %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %normalize_7990f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %normalize_7990f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %normalize_7990f3
     ret
   }
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.msl
index 7cab235..e129cb5 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_9a0aab = func():void -> %b2 {
-  %b2 = block {
+%normalize_9a0aab = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = normalize %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %normalize_9a0aab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %normalize_9a0aab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %normalize_9a0aab
     ret
   }
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.msl
index 1084331..3c03f38 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_b8cb8d = func():void -> %b2 {
-  %b2 = block {
+%normalize_b8cb8d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = normalize %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %normalize_b8cb8d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %normalize_b8cb8d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %normalize_b8cb8d
     ret
   }
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.msl
index d204597..3b602b7 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%normalize_fc2ef1 = func():void -> %b2 {
-  %b2 = block {
+%normalize_fc2ef1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = normalize %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %normalize_fc2ef1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %normalize_fc2ef1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %normalize_fc2ef1
     ret
   }
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.msl
index cf4ccbc..aaa5944 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack2x16float_0e97b3 = func():void -> %b2 {
-  %b2 = block {
+%pack2x16float_0e97b3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:u32 = pack2x16float %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %pack2x16float_0e97b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %pack2x16float_0e97b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %pack2x16float_0e97b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.msl
index bd32ca4..206b592 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack2x16snorm_6c169b = func():void -> %b2 {
-  %b2 = block {
+%pack2x16snorm_6c169b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:u32 = pack2x16snorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %pack2x16snorm_6c169b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %pack2x16snorm_6c169b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %pack2x16snorm_6c169b
     ret
   }
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.msl
index cdc07a8..59c7894 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack2x16unorm_0f08e4 = func():void -> %b2 {
-  %b2 = block {
+%pack2x16unorm_0f08e4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:u32 = pack2x16unorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %pack2x16unorm_0f08e4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %pack2x16unorm_0f08e4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %pack2x16unorm_0f08e4
     ret
   }
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.msl
index dfcff03..020f7f6 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack4x8snorm_4d22e7 = func():void -> %b2 {
-  %b2 = block {
+%pack4x8snorm_4d22e7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:u32 = pack4x8snorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %pack4x8snorm_4d22e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %pack4x8snorm_4d22e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %pack4x8snorm_4d22e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.msl
index b078e2e..cad827a 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%pack4x8unorm_95c456 = func():void -> %b2 {
-  %b2 = block {
+%pack4x8unorm_95c456 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:u32 = pack4x8unorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %pack4x8unorm_95c456
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %pack4x8unorm_95c456
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %pack4x8unorm_95c456
     ret
   }
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6de1757
--- /dev/null
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xI8_bfce01 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %arg_0
+    %5:u32 = pack4xI8 %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %pack4xI8_bfce01
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %pack4xI8_bfce01
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %pack4xI8_bfce01
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..09252b5
--- /dev/null
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xI8Clamp_e42b2a = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %arg_0
+    %5:u32 = pack4xI8Clamp %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %pack4xI8Clamp_e42b2a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %pack4xI8Clamp_e42b2a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %pack4xI8Clamp_e42b2a
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6a8baa9
--- /dev/null
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xU8_b70b53 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %arg_0
+    %5:u32 = pack4xU8 %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %pack4xU8_b70b53
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %pack4xU8_b70b53
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %pack4xU8_b70b53
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6d1c228
--- /dev/null
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%pack4xU8Clamp_6b8c1b = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %arg_0
+    %5:u32 = pack4xU8Clamp %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %pack4xU8Clamp_6b8c1b
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %pack4xU8Clamp_6b8c1b
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %pack4xU8Clamp_6b8c1b
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.msl
index ce1c07c..f4fc973 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_04a908 = func():void -> %b2 {
-  %b2 = block {
+%pow_04a908 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_04a908
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_04a908
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_04a908
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.msl
index 7ed90ec..217cf24 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%pow_46e029 = func():void -> %b2 {
-  %b2 = block {
+%pow_46e029 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_46e029
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_46e029
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_46e029
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.msl
index d7166dd..52adb59 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_4a46c9 = func():void -> %b2 {
-  %b2 = block {
+%pow_4a46c9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_4a46c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_4a46c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_4a46c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.msl
index 53eb347..0df94f1 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_4f33b2 = func():void -> %b2 {
-  %b2 = block {
+%pow_4f33b2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_4f33b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_4f33b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_4f33b2
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.msl
index bb1ecec..dc2a161 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%pow_ce9ef5 = func():void -> %b2 {
-  %b2 = block {
+%pow_ce9ef5 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_ce9ef5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_ce9ef5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_ce9ef5
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.msl
index 7682e33..d514778 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_e60ea5 = func():void -> %b2 {
-  %b2 = block {
+%pow_e60ea5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_e60ea5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_e60ea5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_e60ea5
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.msl
index 7f9e964..0601ac2 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_f37b25 = func():void -> %b2 {
-  %b2 = block {
+%pow_f37b25 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_f37b25
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_f37b25
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_f37b25
     ret
   }
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.msl
index 4771bbb..2a55345 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%pow_fa5429 = func():void -> %b2 {
-  %b2 = block {
+%pow_fa5429 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %pow_fa5429
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %pow_fa5429
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %pow_fa5429
     ret
   }
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.msl
index fe83564..ec7fec1 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_12e50e = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_12e50e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = quantizeToF16 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %quantizeToF16_12e50e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %quantizeToF16_12e50e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %quantizeToF16_12e50e
     ret
   }
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.msl
index f6a6225..97979d6 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_2cddf3 = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_2cddf3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = quantizeToF16 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %quantizeToF16_2cddf3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %quantizeToF16_2cddf3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %quantizeToF16_2cddf3
     ret
   }
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.msl
index a7f3219..f4fe649 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_cba294 = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_cba294 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = quantizeToF16 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %quantizeToF16_cba294
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %quantizeToF16_cba294
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %quantizeToF16_cba294
     ret
   }
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.msl
index 81aecc1..1e11ec8 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%quantizeToF16_e8fd14 = func():void -> %b2 {
-  %b2 = block {
+%quantizeToF16_e8fd14 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = quantizeToF16 %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %quantizeToF16_e8fd14
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %quantizeToF16_e8fd14
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %quantizeToF16_e8fd14
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.msl
index 6dd9efe..1b0ccd9 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_09b7fc = func():void -> %b2 {
-  %b2 = block {
+%radians_09b7fc = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_09b7fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_09b7fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_09b7fc
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.msl
index 8313df0..5d51491 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%radians_208fd9 = func():void -> %b2 {
-  %b2 = block {
+%radians_208fd9 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_208fd9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_208fd9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_208fd9
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.msl
index bf6e1c2..0d55368 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_44f20b = func():void -> %b2 {
-  %b2 = block {
+%radians_44f20b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_44f20b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_44f20b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_44f20b
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.msl
index b49809e..caa2be9 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_61687a = func():void -> %b2 {
-  %b2 = block {
+%radians_61687a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_61687a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_61687a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_61687a
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.msl
index ec03f97..ea20885 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%radians_6b0ff2 = func():void -> %b2 {
-  %b2 = block {
+%radians_6b0ff2 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_6b0ff2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_6b0ff2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_6b0ff2
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.msl
index 426a218..5f9034c 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_7ea4c7 = func():void -> %b2 {
-  %b2 = block {
+%radians_7ea4c7 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_7ea4c7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_7ea4c7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_7ea4c7
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.msl
index d508c60..d0772e5 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_f96258 = func():void -> %b2 {
-  %b2 = block {
+%radians_f96258 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_f96258
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_f96258
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_f96258
     ret
   }
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.msl
index a29e934..f5ae88a 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%radians_fbacf0 = func():void -> %b2 {
-  %b2 = block {
+%radians_fbacf0 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = radians %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %radians_fbacf0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %radians_fbacf0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %radians_fbacf0
     ret
   }
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.msl
index e138133..75689f3 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_05357e = func():void -> %b2 {
-  %b2 = block {
+%reflect_05357e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %reflect_05357e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %reflect_05357e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %reflect_05357e
     ret
   }
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.msl
index 91a10d5..c27379c 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_310de5 = func():void -> %b2 {
-  %b2 = block {
+%reflect_310de5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %reflect_310de5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %reflect_310de5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %reflect_310de5
     ret
   }
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.msl
index 0f8ffd5..4fdf6f1 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_61ca21 = func():void -> %b2 {
-  %b2 = block {
+%reflect_61ca21 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %reflect_61ca21
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %reflect_61ca21
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %reflect_61ca21
     ret
   }
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.msl
index db8d31d..d5d1cc9 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_b61e10 = func():void -> %b2 {
-  %b2 = block {
+%reflect_b61e10 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %reflect_b61e10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %reflect_b61e10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %reflect_b61e10
     ret
   }
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.msl
index 41ea2d2..bcfce1d 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_bb15ac = func():void -> %b2 {
-  %b2 = block {
+%reflect_bb15ac = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %reflect_bb15ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %reflect_bb15ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %reflect_bb15ac
     ret
   }
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.msl
index 04dcd4d..35a6fc8 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%reflect_f47fdb = func():void -> %b2 {
-  %b2 = block {
+%reflect_f47fdb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %reflect_f47fdb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %reflect_f47fdb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %reflect_f47fdb
     ret
   }
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.msl
index 2de59b5..c76effc 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_0594ba = func():void -> %b2 {
-  %b2 = block {
+%refract_0594ba = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %refract_0594ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %refract_0594ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %refract_0594ba
     ret
   }
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.msl
index 2b7dcaa..5cfbc2e 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_570cb3 = func():void -> %b2 {
-  %b2 = block {
+%refract_570cb3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %refract_570cb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %refract_570cb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %refract_570cb3
     ret
   }
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.msl
index b0a172a..8b366c9 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_7e02e6 = func():void -> %b2 {
-  %b2 = block {
+%refract_7e02e6 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %refract_7e02e6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %refract_7e02e6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %refract_7e02e6
     ret
   }
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.msl
index 04b492c..3f22a37 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_8984af = func():void -> %b2 {
-  %b2 = block {
+%refract_8984af = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, f16, read_write> = var, 1.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %refract_8984af
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %refract_8984af
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %refract_8984af
     ret
   }
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.msl
index c034470..f862ccd 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_cbc1d2 = func():void -> %b2 {
-  %b2 = block {
+%refract_cbc1d2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %refract_cbc1d2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %refract_cbc1d2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %refract_cbc1d2
     ret
   }
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.msl
index 3d63be8..fbaa36b 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%refract_cd905f = func():void -> %b2 {
-  %b2 = block {
+%refract_cd905f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %refract_cd905f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %refract_cd905f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %refract_cd905f
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.msl
index 7581b9c..9d12e5a 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_222177 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_222177 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
     %5:vec2<i32> = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_222177
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_222177
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_222177
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.msl
index 66c1f8f..18ac66b 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_35fea9 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_35fea9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %4:vec4<u32> = load %arg_0
     %5:vec4<u32> = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_35fea9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_35fea9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_35fea9
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.msl
index 49b9ad4..4fdc773 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_4dbd6f = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_4dbd6f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
     %5:vec4<i32> = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_4dbd6f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_4dbd6f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_4dbd6f
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.msl
index 35c89e1..cecca3a 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_7c4269 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_7c4269 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_7c4269
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_7c4269
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_7c4269
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.msl
index d96a075..2cd63ee 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_a6ccd4 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_a6ccd4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %4:vec3<u32> = load %arg_0
     %5:vec3<u32> = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_a6ccd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_a6ccd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_a6ccd4
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.msl
index 39175dd..e15dc81 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_c21bc1 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_c21bc1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
     %5:vec3<i32> = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_c21bc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_c21bc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_c21bc1
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.msl
index 9c4cd96..e93ffff 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_e1f4c1 = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_e1f4c1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %4:vec2<u32> = load %arg_0
     %5:vec2<u32> = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_e1f4c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_e1f4c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_e1f4c1
     ret
   }
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.msl
index 05ed830..85718ee 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%reverseBits_e31adf = func():void -> %b2 {
-  %b2 = block {
+%reverseBits_e31adf = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:u32 = reverseBits %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %reverseBits_e31adf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %reverseBits_e31adf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %reverseBits_e31adf
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.msl
index 9ee1cce..dcf1d25 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%round_106c0b = func():void -> %b2 {
-  %b2 = block {
+%round_106c0b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(3.5f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_106c0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_106c0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_106c0b
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.msl
index dd4f2ee..2dbfd2e 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%round_1c7897 = func():void -> %b2 {
-  %b2 = block {
+%round_1c7897 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(3.5f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_1c7897
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_1c7897
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_1c7897
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.msl
index b130df5..999ee07 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%round_52c84d = func():void -> %b2 {
-  %b2 = block {
+%round_52c84d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(3.5f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_52c84d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_52c84d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_52c84d
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.msl
index 67be028..3930685 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%round_9078ef = func():void -> %b2 {
-  %b2 = block {
+%round_9078ef = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 3.5h
     %4:f16 = load %arg_0
     %5:f16 = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_9078ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_9078ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_9078ef
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.msl
index 91d5bcc..aa7db0c 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%round_9edc38 = func():void -> %b2 {
-  %b2 = block {
+%round_9edc38 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 3.5f
     %4:f32 = load %arg_0
     %5:f32 = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_9edc38
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_9edc38
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_9edc38
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.msl
index 92e89f9..797c05f 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%round_d87e84 = func():void -> %b2 {
-  %b2 = block {
+%round_d87e84 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(3.5h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_d87e84
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_d87e84
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_d87e84
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.msl
index 3ae93e9..a5c7b1b 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%round_e1bba2 = func():void -> %b2 {
-  %b2 = block {
+%round_e1bba2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(3.5h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_e1bba2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_e1bba2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_e1bba2
     ret
   }
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.msl
index bd7c77a..fa30809 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%round_f665b5 = func():void -> %b2 {
-  %b2 = block {
+%round_f665b5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(3.5h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = round %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %round_f665b5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %round_f665b5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %round_f665b5
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.msl
index ea06738..e6e7a19 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_270da5 = func():void -> %b2 {
-  %b2 = block {
+%saturate_270da5 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 2.0f
     %4:f32 = load %arg_0
     %5:f32 = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_270da5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_270da5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_270da5
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.msl
index 40c633e..5d87372 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_462535 = func():void -> %b2 {
-  %b2 = block {
+%saturate_462535 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_462535
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_462535
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_462535
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.msl
index f666a7c..635b753 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_51567f = func():void -> %b2 {
-  %b2 = block {
+%saturate_51567f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_51567f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_51567f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_51567f
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.msl
index ee8d1d5..3d9cbe0 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_6bcddf = func():void -> %b2 {
-  %b2 = block {
+%saturate_6bcddf = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_6bcddf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_6bcddf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_6bcddf
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.msl
index e21b738..df4f811 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_a5b571 = func():void -> %b2 {
-  %b2 = block {
+%saturate_a5b571 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_a5b571
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_a5b571
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_a5b571
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.msl
index 5f6f7dc..e1ce087 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_cd2028 = func():void -> %b2 {
-  %b2 = block {
+%saturate_cd2028 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_cd2028
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_cd2028
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_cd2028
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.msl
index ae69e93..cfef079 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_dcde71 = func():void -> %b2 {
-  %b2 = block {
+%saturate_dcde71 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_dcde71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_dcde71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_dcde71
     ret
   }
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.msl
index 5d84d1a..7e1cc52 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%saturate_e8df56 = func():void -> %b2 {
-  %b2 = block {
+%saturate_e8df56 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 2.0h
     %4:f16 = load %arg_0
     %5:f16 = saturate %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %saturate_e8df56
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %saturate_e8df56
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %saturate_e8df56
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.msl
index 226777b..473c1b7 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_00b848 = func():void -> %b2 {
-  %b2 = block {
+%select_00b848 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_00b848
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_00b848
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_00b848
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.msl
index da68814..5f4508c 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_01e2cd = func():void -> %b2 {
-  %b2 = block {
+%select_01e2cd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_01e2cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_01e2cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_01e2cd
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.msl
index 33e3c94..ca45189 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_087ea4 = func():void -> %b2 {
-  %b2 = block {
+%select_087ea4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_087ea4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_087ea4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_087ea4
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.msl
index fcf5607..e478b41 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%select_10e73b = func():void -> %b2 {
-  %b2 = block {
+%select_10e73b = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_10e73b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_10e73b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_10e73b
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.msl
index 6efaac5..2c8e6c7 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_1ada2a = func():void -> %b2 {
-  %b2 = block {
+%select_1ada2a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_1ada2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_1ada2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_1ada2a
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.msl
index 0ea7f75..ac6c03d 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_1e960b = func():void -> %b2 {
-  %b2 = block {
+%select_1e960b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_1e960b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_1e960b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_1e960b
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.msl
index a6dc72a..c8a0441 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_266aff = func():void -> %b2 {
-  %b2 = block {
+%select_266aff = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_266aff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_266aff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_266aff
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.msl
index fcd2b5e..26f4b6a 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_28a27e = func():void -> %b2 {
-  %b2 = block {
+%select_28a27e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_28a27e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_28a27e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_28a27e
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.msl
index dc881ba..a0eef48 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_3c25ce = func():void -> %b2 {
-  %b2 = block {
+%select_3c25ce = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %arg_1:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_3c25ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_3c25ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_3c25ce
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.msl
index 78777a6..e008134 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%select_416e14 = func():void -> %b2 {
-  %b2 = block {
+%select_416e14 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_416e14
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_416e14
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_416e14
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.msl
index f427605..d5f0315 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_51b047 = func():void -> %b2 {
-  %b2 = block {
+%select_51b047 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_51b047
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_51b047
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_51b047
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.msl
index bc27cff..4f80447 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_53d518 = func():void -> %b2 {
-  %b2 = block {
+%select_53d518 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_2:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_53d518
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_53d518
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_53d518
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.msl
index 569c43a..2b27364 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_713567 = func():void -> %b2 {
-  %b2 = block {
+%select_713567 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_713567
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_713567
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_713567
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.msl
index 5b63a4a..2088f2ef 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_78be5f = func():void -> %b2 {
-  %b2 = block {
+%select_78be5f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_78be5f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_78be5f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_78be5f
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.msl
index 7a46890..6fd3737 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_80a9a9 = func():void -> %b2 {
-  %b2 = block {
+%select_80a9a9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %arg_1:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
     %arg_2:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_80a9a9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_80a9a9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_80a9a9
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.msl
index 96e7f68..527ef6a 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_830dd9 = func():void -> %b2 {
-  %b2 = block {
+%select_830dd9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_830dd9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_830dd9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_830dd9
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.msl
index a0bef15..3cad55d 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_86f9bd = func():void -> %b2 {
-  %b2 = block {
+%select_86f9bd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_86f9bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_86f9bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_86f9bd
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.msl
index f8289fa..08be126 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_8fa62c = func():void -> %b2 {
-  %b2 = block {
+%select_8fa62c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_8fa62c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_8fa62c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_8fa62c
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.msl
index 1cecef5..e51b3c8 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%select_99f883 = func():void -> %b2 {
-  %b2 = block {
+%select_99f883 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_99f883
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_99f883
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_99f883
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.msl
index 739381e..93c0009 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_a081f1 = func():void -> %b2 {
-  %b2 = block {
+%select_a081f1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_2:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_a081f1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_a081f1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_a081f1
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.msl
index 4b02bfa..2f2ea14 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_a2860e = func():void -> %b2 {
-  %b2 = block {
+%select_a2860e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_2:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_a2860e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_a2860e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_a2860e
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.msl
index a3c34eb..3b21dd6 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_ab069f = func():void -> %b2 {
-  %b2 = block {
+%select_ab069f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_1:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_ab069f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_ab069f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_ab069f
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.msl
index ea4e980..115ae90 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_b04721 = func():void -> %b2 {
-  %b2 = block {
+%select_b04721 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_b04721
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_b04721
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_b04721
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.msl
index bcd8b07..2317f05 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_bb447f = func():void -> %b2 {
-  %b2 = block {
+%select_bb447f = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_bb447f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_bb447f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_bb447f
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.msl
index 0f9ea99..ce9e36c 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_bb8aae = func():void -> %b2 {
-  %b2 = block {
+%select_bb8aae = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_2:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_bb8aae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_bb8aae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_bb8aae
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.msl
index f7f3885..28f58c2 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_bf3d29 = func():void -> %b2 {
-  %b2 = block {
+%select_bf3d29 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_bf3d29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_bf3d29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_bf3d29
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.msl
index db4234d..d147d7b 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_c31f9e = func():void -> %b2 {
-  %b2 = block {
+%select_c31f9e = func():void {
+  $B2: {
     %arg_0:ptr<function, bool, read_write> = var, true
     %arg_1:ptr<function, bool, read_write> = var, true
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_c31f9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_c31f9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_c31f9e
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.msl
index 1f6530c..a7274ef 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_c41bd1 = func():void -> %b2 {
-  %b2 = block {
+%select_c41bd1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %arg_1:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_c41bd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_c41bd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_c41bd1
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.msl
index de14746..1608310 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_c4a4ef = func():void -> %b2 {
-  %b2 = block {
+%select_c4a4ef = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_1:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %arg_2:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_c4a4ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_c4a4ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_c4a4ef
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.msl
index 4a0b24f..82ab349 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_cb9301 = func():void -> %b2 {
-  %b2 = block {
+%select_cb9301 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %arg_1:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %arg_2:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_cb9301
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_cb9301
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_cb9301
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.msl
index 50d57de..ce9ca97 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_e3e028 = func():void -> %b2 {
-  %b2 = block {
+%select_e3e028 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %arg_1:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
     %arg_2:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(true)
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_e3e028
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_e3e028
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_e3e028
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.msl
index afc1ad51..51ee2c3 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%select_ebfea2 = func():void -> %b2 {
-  %b2 = block {
+%select_ebfea2 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_2:ptr<function, vec3<bool>, read_write> = var, vec3<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_ebfea2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_ebfea2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_ebfea2
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.msl
index 8525370..3bafce6 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%select_ed7c13 = func():void -> %b2 {
-  %b2 = block {
+%select_ed7c13 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_2:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_ed7c13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_ed7c13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_ed7c13
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.msl
index bf5054a..6b3157d 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_ed8a15 = func():void -> %b2 {
-  %b2 = block {
+%select_ed8a15 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %select_ed8a15
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %select_ed8a15
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %select_ed8a15
     ret
   }
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.msl
index a398853..42adc09 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%select_fb7e53 = func():void -> %b2 {
-  %b2 = block {
+%select_fb7e53 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %arg_1:ptr<function, vec2<bool>, read_write> = var, vec2<bool>(true)
     %arg_2:ptr<function, bool, read_write> = var, true
@@ -22,20 +22,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %16:void = call %select_fb7e53
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %18:void = call %select_fb7e53
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %20:void = call %select_fb7e53
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.msl
index 6002b60..5a9a2da 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_159665 = func():void -> %b2 {
-  %b2 = block {
+%sign_159665 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_159665
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_159665
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_159665
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.msl
index 3d723bd..162958d 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_160933 = func():void -> %b2 {
-  %b2 = block {
+%sign_160933 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_160933
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_160933
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_160933
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.msl
index 1200207..3e352fd 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%sign_3233fa = func():void -> %b2 {
-  %b2 = block {
+%sign_3233fa = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_3233fa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_3233fa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_3233fa
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.msl
index 1ab01a3..87daa61 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_58d779 = func():void -> %b2 {
-  %b2 = block {
+%sign_58d779 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %4:vec4<i32> = load %arg_0
     %5:vec4<i32> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_58d779
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_58d779
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_58d779
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.msl
index 25e57d8..1fabbf9 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_5d283a = func():void -> %b2 {
-  %b2 = block {
+%sign_5d283a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_5d283a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_5d283a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_5d283a
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.msl
index 04cc283..04c153b 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sign_7c85ea = func():void -> %b2 {
-  %b2 = block {
+%sign_7c85ea = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_7c85ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_7c85ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_7c85ea
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.msl
index 36314cd..b7f5378 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_926015 = func():void -> %b2 {
-  %b2 = block {
+%sign_926015 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %4:vec2<i32> = load %arg_0
     %5:vec2<i32> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_926015
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_926015
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_926015
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.msl
index 22b3219..3ccbe81 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_9603b1 = func():void -> %b2 {
-  %b2 = block {
+%sign_9603b1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %4:vec3<i32> = load %arg_0
     %5:vec3<i32> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_9603b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_9603b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_9603b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.msl
index de57aea..b92315f 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_b8f634 = func():void -> %b2 {
-  %b2 = block {
+%sign_b8f634 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_b8f634
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_b8f634
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_b8f634
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.msl
index 07cf60c..8d3e3f0 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_ccdb3c = func():void -> %b2 {
-  %b2 = block {
+%sign_ccdb3c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_ccdb3c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_ccdb3c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_ccdb3c
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.msl
index eebfaad..879c635 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sign_d065d8 = func():void -> %b2 {
-  %b2 = block {
+%sign_d065d8 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_d065d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_d065d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_d065d8
     ret
   }
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.msl
index 8298e2d..42a2757 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sign_dd790e = func():void -> %b2 {
-  %b2 = block {
+%sign_dd790e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = sign %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sign_dd790e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sign_dd790e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sign_dd790e
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.msl
index 1ca61d8..49c3ca3 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_01f241 = func():void -> %b2 {
-  %b2 = block {
+%sin_01f241 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.57079637050628662109f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_01f241
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_01f241
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_01f241
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.msl
index 6c2f7ee..8729c61 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_2c903b = func():void -> %b2 {
-  %b2 = block {
+%sin_2c903b = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.5703125h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_2c903b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_2c903b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_2c903b
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.msl
index fbc565e..7886ef4 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_3cca11 = func():void -> %b2 {
-  %b2 = block {
+%sin_3cca11 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.5703125h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_3cca11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_3cca11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_3cca11
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.msl
index a539c5f..549b117 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_4e3979 = func():void -> %b2 {
-  %b2 = block {
+%sin_4e3979 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.57079637050628662109f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_4e3979
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_4e3979
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_4e3979
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.msl
index 4660de9..f625cf9 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_5c0712 = func():void -> %b2 {
-  %b2 = block {
+%sin_5c0712 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.5703125h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_5c0712
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_5c0712
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_5c0712
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.msl
index dd54ae8..8771b75 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sin_66a59f = func():void -> %b2 {
-  %b2 = block {
+%sin_66a59f = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.5703125h
     %4:f16 = load %arg_0
     %5:f16 = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_66a59f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_66a59f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_66a59f
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.msl
index 8dd7c77..9444a90 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sin_b78c91 = func():void -> %b2 {
-  %b2 = block {
+%sin_b78c91 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.57079637050628662109f
     %4:f32 = load %arg_0
     %5:f32 = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_b78c91
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_b78c91
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_b78c91
     ret
   }
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.msl
index 16eeb2e..8b0ea0a 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sin_fc8bc4 = func():void -> %b2 {
-  %b2 = block {
+%sin_fc8bc4 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.57079637050628662109f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = sin %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sin_fc8bc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sin_fc8bc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sin_fc8bc4
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.msl
index 22f1152..9228a17 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_0908c1 = func():void -> %b2 {
-  %b2 = block {
+%sinh_0908c1 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_0908c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_0908c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_0908c1
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.msl
index 8115800..0606302 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_445e33 = func():void -> %b2 {
-  %b2 = block {
+%sinh_445e33 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_445e33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_445e33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_445e33
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.msl
index 5e7c794..0c7f4bf 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_69cce2 = func():void -> %b2 {
-  %b2 = block {
+%sinh_69cce2 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_69cce2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_69cce2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_69cce2
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.msl
index 53dcc18..8860a73 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_7bb598 = func():void -> %b2 {
-  %b2 = block {
+%sinh_7bb598 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_7bb598
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_7bb598
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_7bb598
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.msl
index 5880100..38afa99 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_924f19 = func():void -> %b2 {
-  %b2 = block {
+%sinh_924f19 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_924f19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_924f19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_924f19
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.msl
index 250e6c4..f30b4e6 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_b9860e = func():void -> %b2 {
-  %b2 = block {
+%sinh_b9860e = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_b9860e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_b9860e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_b9860e
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.msl
index a2c8520..1622cb5 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_ba7e25 = func():void -> %b2 {
-  %b2 = block {
+%sinh_ba7e25 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_ba7e25
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_ba7e25
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_ba7e25
     ret
   }
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.msl
index eaa2819..1c68067 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sinh_c9a5eb = func():void -> %b2 {
-  %b2 = block {
+%sinh_c9a5eb = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = sinh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sinh_c9a5eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sinh_c9a5eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sinh_c9a5eb
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.msl
index 82f0da2..888ad07 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_12c031 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_12c031 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(2.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(4.0h)
     %arg_2:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(3.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_12c031
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_12c031
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_12c031
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.msl
index e3dba36..f287a5a 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_392c19 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_392c19 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(2.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(4.0f)
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(3.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_392c19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_392c19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_392c19
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.msl
index ca12060..b4506a9 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_40864c = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_40864c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(2.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(4.0f)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(3.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_40864c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_40864c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_40864c
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.msl
index cac8fd5..c47c494 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_586e12 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_586e12 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 2.0h
     %arg_1:ptr<function, f16, read_write> = var, 4.0h
     %arg_2:ptr<function, f16, read_write> = var, 3.0h
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_586e12
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_586e12
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_586e12
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.msl
index dc9f310..5ac7acc 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_6c4975 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_6c4975 = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 2.0f
     %arg_1:ptr<function, f32, read_write> = var, 4.0f
     %arg_2:ptr<function, f32, read_write> = var, 3.0f
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_6c4975
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_6c4975
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_6c4975
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.msl
index 61c8fb0..adca0d7 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_6e7a74 = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_6e7a74 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(2.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(4.0h)
     %arg_2:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(3.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_6e7a74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_6e7a74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_6e7a74
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.msl
index 3d4868e..dd28c77 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_aad1db = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_aad1db = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(2.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(4.0f)
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(3.0f)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_aad1db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_aad1db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_aad1db
     ret
   }
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.msl
index e413cd19..ac939c4 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%smoothstep_c43ebd = func():void -> %b2 {
-  %b2 = block {
+%smoothstep_c43ebd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(2.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(4.0h)
     %arg_2:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(3.0h)
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %smoothstep_c43ebd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %smoothstep_c43ebd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %smoothstep_c43ebd
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.msl
index 911c3a3..52d1ca3 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_20c74e = func():void -> %b2 {
-  %b2 = block {
+%sqrt_20c74e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_20c74e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_20c74e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_20c74e
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.msl
index 0086214..b5ba61d 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_803d1c = func():void -> %b2 {
-  %b2 = block {
+%sqrt_803d1c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_803d1c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_803d1c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_803d1c
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.msl
index b35e5eb..134a9ac 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_895a0c = func():void -> %b2 {
-  %b2 = block {
+%sqrt_895a0c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_895a0c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_895a0c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_895a0c
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.msl
index 06980b2..b08e923 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_8c7024 = func():void -> %b2 {
-  %b2 = block {
+%sqrt_8c7024 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_8c7024
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_8c7024
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_8c7024
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.msl
index 5f01fec..0bcbe40 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_aa0d7a = func():void -> %b2 {
-  %b2 = block {
+%sqrt_aa0d7a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_aa0d7a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_aa0d7a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_aa0d7a
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.msl
index 39e0a8a..32d4546 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_d9ab4d = func():void -> %b2 {
-  %b2 = block {
+%sqrt_d9ab4d = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_d9ab4d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_d9ab4d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_d9ab4d
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.msl
index e1ed549..14e52ff 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_ec33e9 = func():void -> %b2 {
-  %b2 = block {
+%sqrt_ec33e9 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_ec33e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_ec33e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_ec33e9
     ret
   }
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.msl
index d4ac308..6f6b5c9 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%sqrt_f8c59a = func():void -> %b2 {
-  %b2 = block {
+%sqrt_f8c59a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = sqrt %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %sqrt_f8c59a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %sqrt_f8c59a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %sqrt_f8c59a
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.msl
index 6dcbbca..b47ef2e 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%step_07cb06 = func():void -> %b2 {
-  %b2 = block {
+%step_07cb06 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %arg_1:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %5:vec2<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_07cb06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_07cb06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_07cb06
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.msl
index 954c79c..d7e2286 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%step_0b073b = func():void -> %b2 {
-  %b2 = block {
+%step_0b073b = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %arg_1:ptr<function, f32, read_write> = var, 1.0f
     %5:f32 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_0b073b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_0b073b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_0b073b
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.msl
index 82efced..67bcf1b 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%step_19accd = func():void -> %b2 {
-  %b2 = block {
+%step_19accd = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_1:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %5:vec2<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_19accd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_19accd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_19accd
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.msl
index 836b6cf..4c972d9 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%step_334303 = func():void -> %b2 {
-  %b2 = block {
+%step_334303 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_1:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %5:vec3<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_334303
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_334303
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_334303
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.msl
index 58d4ff3..96e266c 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%step_630d07 = func():void -> %b2 {
-  %b2 = block {
+%step_630d07 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %arg_1:ptr<function, f16, read_write> = var, 1.0h
     %5:f16 = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_630d07
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_630d07
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_630d07
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.msl
index a2c0b87..ac9ea8f 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%step_baa320 = func():void -> %b2 {
-  %b2 = block {
+%step_baa320 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %arg_1:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %5:vec4<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_baa320
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_baa320
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_baa320
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.msl
index e9fad23..f4e39fb 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%step_cc6b61 = func():void -> %b2 {
-  %b2 = block {
+%step_cc6b61 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %arg_1:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %5:vec3<f16> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_cc6b61
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_cc6b61
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_cc6b61
     ret
   }
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.msl
index 8867606..5c957da 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%step_e2b337 = func():void -> %b2 {
-  %b2 = block {
+%step_e2b337 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %arg_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:vec4<f32> = load %arg_0
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %step_e2b337
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %step_e2b337
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %step_e2b337
     ret
   }
diff --git a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.msl
index 06ccebb..ec0ade4 100644
--- a/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/storageBarrier/d87211.wgsl.expected.ir.msl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: storageBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void storageBarrier_d87211() {
+  threadgroup_barrier(mem_flags::mem_device);
+}
+kernel void compute_main() {
+  storageBarrier_d87211();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.ir.msl
index 5bf6eab..c9de677 100644
--- a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBallot_7e6d0e = func():void -> %b2 {
-  %b2 = block {
+%subgroupBallot_7e6d0e = func():void {
+  $B2: {
     %3:vec4<u32> = subgroupBallot
     %res:ptr<function, vec4<u32>, read_write> = var, %3
     %5:vec4<u32> = load %res
@@ -13,8 +13,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %7:void = call %subgroupBallot_7e6d0e
     ret
   }
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5b5d7df
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_07e2d8 = func():void {
+  $B2: {
+    %arg_0:ptr<function, f16, read_write> = var, 1.0h
+    %4:f16 = load %arg_0
+    %5:f16 = subgroupBroadcast %4, 1u
+    %res:ptr<function, f16, read_write> = var, %5
+    %7:f16 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_07e2d8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.msl
index a85f12b..379fa27 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBroadcast_08beca = func():void -> %b2 {
-  %b2 = block {
+%subgroupBroadcast_08beca = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = subgroupBroadcast %4, 1u
@@ -15,8 +15,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %9:void = call %subgroupBroadcast_08beca
     ret
   }
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..170bb64
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_0f44e2 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
+    %4:vec4<f16> = load %arg_0
+    %5:vec4<f16> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec4<f16>, read_write> = var, %5
+    %7:vec4<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_0f44e2
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d9cba9e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_13f36c = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
+    %4:vec2<f16> = load %arg_0
+    %5:vec2<f16> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec2<f16>, read_write> = var, %5
+    %7:vec2<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_13f36c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl
index d4a401f..844ebfd 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBroadcast_1d79c7 = func():void -> %b2 {
-  %b2 = block {
+%subgroupBroadcast_1d79c7 = func():void {
+  $B2: {
     %arg_0:ptr<function, i32, read_write> = var, 1i
     %4:i32 = load %arg_0
     %5:i32 = subgroupBroadcast %4, 1u
@@ -15,8 +15,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %9:void = call %subgroupBroadcast_1d79c7
     ret
   }
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.msl
new file mode 100644
index 0000000..aac624f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_279027 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
+    %4:vec4<u32> = load %arg_0
+    %5:vec4<u32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec4<u32>, read_write> = var, %5
+    %7:vec4<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_279027
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0ad39ef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_34fa3d = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %4:vec3<u32> = load %arg_0
+    %5:vec3<u32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_34fa3d
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4a15724
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_3e6879 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %4:vec2<i32> = load %arg_0
+    %5:vec2<i32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec2<i32>, read_write> = var, %5
+    %7:vec2<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_3e6879
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..aac9e92
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_41e5d7 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
+    %4:vec3<f16> = load %arg_0
+    %5:vec3<f16> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec3<f16>, read_write> = var, %5
+    %7:vec3<f16> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_41e5d7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.msl
new file mode 100644
index 0000000..84907de
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_4a4334 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %4:vec2<u32> = load %arg_0
+    %5:vec2<u32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_4a4334
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8ac7365
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_5196c8 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
+    %4:vec2<f32> = load %arg_0
+    %5:vec2<f32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec2<f32>, read_write> = var, %5
+    %7:vec2<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_5196c8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5881aad
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_912ff5 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
+    %4:vec3<f32> = load %arg_0
+    %5:vec3<f32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec3<f32>, read_write> = var, %5
+    %7:vec3<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_912ff5
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..be4e672
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_b7e93b = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %4:vec4<f32> = load %arg_0
+    %5:vec4<f32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec4<f32>, read_write> = var, %5
+    %7:vec4<f32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_b7e93b
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl
index 65e1b35..ce1b390 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%subgroupBroadcast_c36fe1 = func():void -> %b2 {
-  %b2 = block {
+%subgroupBroadcast_c36fe1 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:u32 = subgroupBroadcast %4, 1u
@@ -15,8 +15,8 @@
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %9:void = call %subgroupBroadcast_c36fe1
     ret
   }
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b243846
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec3<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_e275c8 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %4:vec3<i32> = load %arg_0
+    %5:vec3<i32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec3<i32>, read_write> = var, %5
+    %7:vec3<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_e275c8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2dda944
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.ir.msl
@@ -0,0 +1,31 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%subgroupBroadcast_f637f9 = func():void {
+  $B2: {
+    %arg_0:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
+    %4:vec4<i32> = load %arg_0
+    %5:vec4<i32> = subgroupBroadcast %4, 1u
+    %res:ptr<function, vec4<i32>, read_write> = var, %5
+    %7:vec4<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %9:void = call %subgroupBroadcast_f637f9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.msl
index 115e444..5b86f72 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_244e2a = func():void -> %b2 {
-  %b2 = block {
+%tan_244e2a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_244e2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_244e2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_244e2a
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.msl
index 9189830..f1b9e9c 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%tan_2f030e = func():void -> %b2 {
-  %b2 = block {
+%tan_2f030e = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_2f030e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_2f030e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_2f030e
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.msl
index 22f7322..a03f089 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_539e54 = func():void -> %b2 {
-  %b2 = block {
+%tan_539e54 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_539e54
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_539e54
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_539e54
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.msl
index 9bbcd2d..a77fd63 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_7ea104 = func():void -> %b2 {
-  %b2 = block {
+%tan_7ea104 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_7ea104
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_7ea104
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_7ea104
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.msl
index 162ebe2..3faa8c9 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_8ce3e9 = func():void -> %b2 {
-  %b2 = block {
+%tan_8ce3e9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_8ce3e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_8ce3e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_8ce3e9
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.msl
index 5e3f50c..43387ff 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_9f7c9c = func():void -> %b2 {
-  %b2 = block {
+%tan_9f7c9c = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_9f7c9c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_9f7c9c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_9f7c9c
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.msl
index a3b9ff4..d3b03ca 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%tan_d4d491 = func():void -> %b2 {
-  %b2 = block {
+%tan_d4d491 = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_d4d491
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_d4d491
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_d4d491
     ret
   }
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.msl
index 6f51fa7..289579e 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tan_db0456 = func():void -> %b2 {
-  %b2 = block {
+%tan_db0456 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = tan %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tan_db0456
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tan_db0456
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tan_db0456
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.msl
index 78cf024..f9ce377 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_06a4fe = func():void -> %b2 {
-  %b2 = block {
+%tanh_06a4fe = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.0h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_06a4fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_06a4fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_06a4fe
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.msl
index 6698f73..f7c0d06 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_5663c5 = func():void -> %b2 {
-  %b2 = block {
+%tanh_5663c5 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_5663c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_5663c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_5663c5
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.msl
index deadc3f..9b2f253 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_5724b3 = func():void -> %b2 {
-  %b2 = block {
+%tanh_5724b3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_5724b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_5724b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_5724b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.msl
index 84fcdcf..3d455c3 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_5b19af = func():void -> %b2 {
-  %b2 = block {
+%tanh_5b19af = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.0h
     %4:f16 = load %arg_0
     %5:f16 = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_5b19af
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_5b19af
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_5b19af
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.msl
index 79428ed..a0a001f 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_6d105a = func():void -> %b2 {
-  %b2 = block {
+%tanh_6d105a = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.0h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_6d105a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_6d105a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_6d105a
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.msl
index 8e341a2..2880a7e 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_9f9fb9 = func():void -> %b2 {
-  %b2 = block {
+%tanh_9f9fb9 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_9f9fb9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_9f9fb9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_9f9fb9
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.msl
index 1429384..115b35d 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_c15fdb = func():void -> %b2 {
-  %b2 = block {
+%tanh_c15fdb = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.0f
     %4:f32 = load %arg_0
     %5:f32 = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_c15fdb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_c15fdb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_c15fdb
     ret
   }
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.msl
index fc8e221..5f17487 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%tanh_e8efb3 = func():void -> %b2 {
-  %b2 = block {
+%tanh_e8efb3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.0h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = tanh %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %tanh_e8efb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %tanh_e8efb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %tanh_e8efb3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.msl
index cdf158b..f556d81 100644
--- a/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureBarrier/3d0f7e.wgsl.expected.ir.msl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void textureBarrier_3d0f7e() {
+  threadgroup_barrier(mem_flags::mem_texture);
+}
+kernel void compute_main() {
+  textureBarrier_3d0f7e();
+}
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..849a6c6
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_00229f = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read> = load %arg_0
+    %5:vec3<u32> = textureDimensions %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_00229f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_00229f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_00229f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.msl
index 8d68a23..6e14327 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_00348c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_00348c = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_00348c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_00348c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_00348c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.msl
index ffa7c60..4ef958d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_01e21e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_01e21e = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_01e21e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_01e21e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_01e21e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.msl
index f60ef0a..76d62ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_01edb1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_01edb1 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_01edb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_01edb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_01edb1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.msl
index 8aa7d89..b11b4aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_022903 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_022903 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_1d<i32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_022903
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_022903
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_022903
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.msl
index 4566e1d..4cfbfbf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0276ec = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0276ec = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0276ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0276ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0276ec
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.msl
index 757d7e1..b729de4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_029589 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_029589 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_029589
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_029589
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_029589
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.msl
index 8a14bb0..e8cd0aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0329b0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0329b0 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0329b0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0329b0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0329b0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.msl
index e49dfb0..66ff65b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_033195 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_033195 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_033195
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_033195
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_033195
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.msl
index 4c507bc..94e7998 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_033ea7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_033ea7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_033ea7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_033ea7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_033ea7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.msl
index 1a095bd..095c18f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_038847 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_038847 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_038847
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_038847
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_038847
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.msl
index 34ff61d..2c6ddcf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_03f81e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_03f81e = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_03f81e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_03f81e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_03f81e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.msl
index 0aa01df..7bd43fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_07f1ba = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_07f1ba = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_07f1ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_07f1ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_07f1ba
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.msl
index 9fa6c50..8b222cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_088918 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_088918 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_088918
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_088918
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_088918
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.msl
index e4c3082..6cec13e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0890c6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0890c6 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_3d<f32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_0890c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_0890c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_0890c6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.msl
index d5226e8..b091661 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_08e371 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_08e371 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_08e371
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_08e371
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_08e371
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.msl
index d24c56c..7cecfa5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_09140b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_09140b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_09140b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_09140b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_09140b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.msl
index 8ab572f..939d739 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0973c9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0973c9 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0973c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0973c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0973c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.msl
index 7d67b05..3fe3ba8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0baa0d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0baa0d = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0baa0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0baa0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0baa0d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.msl
index de886b1..2b0db04 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0c0b0c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0c0b0c = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0c0b0c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0c0b0c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0c0b0c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.msl
index 1ca0ae8..587df6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0d4a7c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0d4a7c = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0d4a7c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0d4a7c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0d4a7c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.msl
index 7a8d115..6abd491 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0de70c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0de70c = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_0de70c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_0de70c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_0de70c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.msl
index b8ac386..9674681 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_0ff9a4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_0ff9a4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_depth_cube_array = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_0ff9a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_0ff9a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_0ff9a4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.msl
index fec379a..8bf1674 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_135176 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_135176 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_135176
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_135176
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_135176
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.msl
index 3ecb6ef..8bf539b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_13f8db = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_13f8db = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_2d<f32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_13f8db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_13f8db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_13f8db
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.msl
index 29807be..8a98008 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1417dd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1417dd = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1417dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1417dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1417dd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.msl
index 2409c0a..0d1b2e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_15aa17 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_15aa17 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_15aa17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_15aa17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_15aa17
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.msl
index 1942ee8..df6e3c2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_15b577 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_15b577 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_2d<u32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_15b577
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_15b577
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_15b577
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6c1d710
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_18160d = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_18160d
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_18160d
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_18160d
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..5c1e999
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_18f19f = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_18f19f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_18f19f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_18f19f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.msl
index 7cd2b86..f4d7661 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1a2be7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1a2be7 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1a2be7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1a2be7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1a2be7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.msl
index a738c11..087679b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1b720f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1b720f = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1b720f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1b720f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1b720f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.msl
index a68b1dd..f731c83 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1bc428 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1bc428 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_3d<f32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_1bc428
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_1bc428
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_1bc428
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.msl
index 8e949e2..ceb7d16 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1bd78c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1bd78c = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_2d<f32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_1bd78c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_1bd78c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_1bd78c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.msl
index 1a146fc..e098f08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_1e4024 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_1e4024 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_1e4024
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_1e4024
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_1e4024
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.msl
index 46a827c..f40f3ce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_20eaad = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_20eaad = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_20eaad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_20eaad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_20eaad
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.msl
index c4765b3..a316b4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_20ecef = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_20ecef = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_20ecef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_20ecef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_20ecef
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.msl
index d514f3c..9ae2b94 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_212362 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_212362 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_212362
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_212362
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_212362
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.msl
index f0a7bc7..01a873d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_224113 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_224113 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_224113
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_224113
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_224113
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.msl
index f9989c1..448dd16 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_22b5b6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_22b5b6 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_cube_array<u32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_22b5b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_22b5b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_22b5b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.msl
index d8558ea..a6dfb5c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_24db07 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_24db07 = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_24db07
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_24db07
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_24db07
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0da591d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_25d284 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_25d284
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_25d284
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_25d284
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.msl
index 3f48aee..d004de9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2674d8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2674d8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2674d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2674d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2674d8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.msl
index 40f698d..f3ace0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_268ddb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_268ddb = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_268ddb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_268ddb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_268ddb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.msl
index 029b3f6..c1f845d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_26d6bf = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_26d6bf = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_26d6bf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_26d6bf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_26d6bf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.msl
new file mode 100644
index 0000000..44c95a1
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_282978 = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %5:vec3<u32> = textureDimensions %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_282978
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_282978
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_282978
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.msl
index 60f523a..e76cc22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_283b58 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_283b58 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_283b58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_283b58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_283b58
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.msl
index 84f17ba..7d0faea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_284c27 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_284c27 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_284c27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_284c27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_284c27
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.msl
index fedce92..ccf4364 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2a58b7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2a58b7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2a58b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2a58b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2a58b7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.msl
index 8e066e4..9760498 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2bafdf = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2bafdf = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2bafdf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2bafdf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2bafdf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.msl
index d183f63..a95e06f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2dc5c5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2dc5c5 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2dc5c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2dc5c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2dc5c5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.msl
index 74fd598..e43cfec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2e443d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2e443d = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_2d<i32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_2e443d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_2e443d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_2e443d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.msl
index 9db47a5..d3407e6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2fd2a4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2fd2a4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_2d_array<f32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_2fd2a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_2fd2a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_2fd2a4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.msl
index 61ffb89..5d4bba5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_2ff32a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_2ff32a = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_2ff32a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_2ff32a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_2ff32a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.msl
index 09ecd93..7ebfbd1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_305dd5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_305dd5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_305dd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_305dd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_305dd5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.msl
index da2c208..fb3c196 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_31799c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_31799c = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_31799c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_31799c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_31799c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.msl
index a3dc5be..01b52fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_31d00d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_31d00d = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_31d00d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_31d00d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_31d00d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.msl
index c92b5fa..6163677 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_325338 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_325338 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_325338
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_325338
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_325338
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.msl
index ca1efaf..35f9e32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_346fee = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_346fee = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_cube_array<u32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_346fee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_346fee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_346fee
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.msl
index 0673369..dac4208 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_35a7e5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_35a7e5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_35a7e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_35a7e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_35a7e5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.msl
index cec6f94..2d3dfdc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_35ee69 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_35ee69 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_35ee69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_35ee69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_35ee69
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.msl
index 63bd17a..62d243b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_36eeb7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_36eeb7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_36eeb7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_36eeb7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_36eeb7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.msl
index 697e131..3900345 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_378a65 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_378a65 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_378a65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_378a65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_378a65
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.msl
index ee50c25..4ca193c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_382b16 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_382b16 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_cube<f32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_382b16
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_382b16
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_382b16
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.msl
index 29b7ff2..258694e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3834f8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3834f8 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3834f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3834f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3834f8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.msl
index 168752a..0a6c1af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_38c9ca = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_38c9ca = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_38c9ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_38c9ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_38c9ca
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.msl
index f04c426..ca082b8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3963d0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3963d0 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_cube_array<i32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_3963d0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_3963d0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_3963d0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.msl
index f1c6b33..1e11e55 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_397dab = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_397dab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_397dab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_397dab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_397dab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.msl
index e5e0108..a025279 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3a5bb1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3a5bb1 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3a5bb1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3a5bb1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3a5bb1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.msl
index 3a5a0d0..120e276 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3a7b69 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3a7b69 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3a7b69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3a7b69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3a7b69
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.msl
index ba19efe..c68bbe6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3af3e7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3af3e7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3af3e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3af3e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3af3e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.msl
index d85b497..6dacb37 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3b38f6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3b38f6 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3b38f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3b38f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3b38f6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.msl
index be36858..0b67c6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3baab5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3baab5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3baab5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3baab5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3baab5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.msl
index 86ed6ea..6d8c462 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3bf12a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3bf12a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3bf12a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3bf12a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3bf12a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.msl
index 069f91c..2c15c17 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3c66f0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3c66f0 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_cube_array<i32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_3c66f0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_3c66f0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_3c66f0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.msl
index 3a31398..4bf0dfb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3f3474 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3f3474 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3f3474
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3f3474
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3f3474
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.msl
index 00b3e10..54978b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3fc3dc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3fc3dc = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_2d_array<f32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_3fc3dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_3fc3dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_3fc3dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.msl
index 886cdeb..c51a938 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_3ff0a5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_3ff0a5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_3ff0a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_3ff0a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_3ff0a5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.msl
index 2530c03..25a3c15 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_40c671 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_40c671 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_40c671
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_40c671
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_40c671
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.msl
new file mode 100644
index 0000000..208291e
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_40da20 = func():void {
+  $B2: {
+    %4:texture_storage_2d<r8unorm, read> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_40da20
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_40da20
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_40da20
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.msl
index d33ac2d..c705907 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_40ecf4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_40ecf4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_40ecf4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_40ecf4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_40ecf4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.msl
index fc02b5c..2fa16a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_41545f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_41545f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_41545f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_41545f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_41545f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.msl
index c5ab335..53deb29 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_423519 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_423519 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_423519
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_423519
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_423519
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.msl
index 2be9ad1..656fd03 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_427f92 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_427f92 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_427f92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_427f92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_427f92
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.msl
index 094d43a..0217d47 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_439651 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_439651 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_439651
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_439651
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_439651
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.msl
index a13d727..a204183 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_445376 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_445376 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_445376
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_445376
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_445376
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.msl
index a21e3e8..43f5263 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_44b358 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_44b358 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_44b358
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_44b358
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_44b358
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.msl
index 2bf2104..5745a04 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_452fc1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_452fc1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_452fc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_452fc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_452fc1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.msl
index 8cbb4ad..c3a792c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_46f0fc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_46f0fc = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_46f0fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_46f0fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_46f0fc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.msl
index 4b6334a..fd0adfb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4716a4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4716a4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4716a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4716a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4716a4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.msl
index b3328f8..ef7d399 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_475c10 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_475c10 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_475c10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_475c10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_475c10
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.msl
index d385d94..4794aa5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_49a067 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_49a067 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_cube<f32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_49a067
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_49a067
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_49a067
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.msl
index 3c18d12..3c1c43b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4acec7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4acec7 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4acec7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4acec7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4acec7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.msl
index 8c84fc2..50f413f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4b26ef = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4b26ef = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4b26ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4b26ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4b26ef
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.msl
index fadfcf3..11f227a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4be71b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4be71b = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4be71b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4be71b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4be71b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.msl
index a7e1b4e..0dba440 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4d1f71 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4d1f71 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4d1f71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4d1f71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4d1f71
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.msl
index 367ee2b..825c86d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4d27b3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4d27b3 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4d27b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4d27b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4d27b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.msl
index 70e4cd7..d79244a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4df14c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4df14c = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4df14c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4df14c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4df14c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.msl
index 0b2237b..17dadcf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_4e540a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_4e540a = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_4e540a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_4e540a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_4e540a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.msl
index da85e15..ea69984 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_528c0e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_528c0e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_2d_array<u32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_528c0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_528c0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_528c0e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.msl
index 75a1fec..531b168 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_52cf60 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_52cf60 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_52cf60
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_52cf60
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_52cf60
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.msl
index 174cbc8..f968e3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_534ef8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_534ef8 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_534ef8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_534ef8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_534ef8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ecbc4a0
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_542c62 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, write> = load %arg_0
+    %5:u32 = textureDimensions %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_542c62
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_542c62
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_542c62
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.msl
index b8de1d8..7ca2b12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_55fdeb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_55fdeb = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_55fdeb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_55fdeb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_55fdeb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.msl
index 818d6fc..c407cc0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_5703b3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_5703b3 = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_5703b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_5703b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_5703b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2e4dcc34
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_578e75 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_578e75
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_578e75
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_578e75
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.msl
index ca4afb5..5753859 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_579eee = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_579eee = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_579eee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_579eee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_579eee
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.msl
index 7993c20..2e1f885 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_58a82d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_58a82d = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_58a82d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_58a82d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_58a82d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.msl
index 0ff517d..97fd934 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_591981 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_591981 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_591981
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_591981
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_591981
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.msl
index 20826ef..25db417 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_599ab5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_599ab5 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_599ab5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_599ab5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_599ab5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.msl
index a343aac..5d70969 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_5b4b10 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_5b4b10 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_5b4b10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_5b4b10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_5b4b10
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.msl
index 291311a..18e817d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_5df042 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_5df042 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_5df042
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_5df042
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_5df042
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.msl
index 2d07a54..9e9f649 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_607979 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_607979 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_607979
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_607979
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_607979
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.msl
index 785cf3c..2a9cae2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_609d34 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_609d34 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_609d34
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_609d34
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_609d34
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.msl
index b3e28e5..a85f2fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_617dc8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_617dc8 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_617dc8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_617dc8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_617dc8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.msl
index 372dd86..3131f5a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_62cb5a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_62cb5a = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_62cb5a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_62cb5a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_62cb5a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.msl
index 594fa94..4216195 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_62e7ae = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_62e7ae = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_62e7ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_62e7ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_62e7ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.msl
index c6ee3d2..09cccb3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_64dc74 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_64dc74 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_cube<i32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_64dc74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_64dc74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_64dc74
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.msl
index a41c70f..01f1ff4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_674058 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_674058 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_674058
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_674058
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_674058
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.msl
index 4630605..adb7d86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6dae40 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6dae40 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6dae40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6dae40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6dae40
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.msl
index f0a139a..824418f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6dbef4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6dbef4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6dbef4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6dbef4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6dbef4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.msl
index 74e82ba..f03e383 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6e6c7a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6e6c7a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_3d<u32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_6e6c7a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_6e6c7a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_6e6c7a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.msl
index dc42636..6b1da73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6e72c5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6e72c5 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_6e72c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_6e72c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_6e72c5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.msl
index 68d2da4..b6fe6bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_6f1b5d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_6f1b5d = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_depth_2d = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_6f1b5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_6f1b5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_6f1b5d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.msl
index 10e9fd9..61d2869 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_709357 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_709357 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_709357
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_709357
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_709357
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.msl
index 947df4d..84e759d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_70dd33 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_70dd33 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_70dd33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_70dd33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_70dd33
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.msl
index ec49950..6e0c466 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_715917 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_715917 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_715917
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_715917
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_715917
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.msl
index 36d88d6..79806b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7228de = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7228de = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7228de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7228de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7228de
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.msl
index f9fabcb..16fb52c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7327fa = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7327fa = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7327fa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7327fa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7327fa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.msl
index 1e31a38..24b58d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_740e7c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_740e7c = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_740e7c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_740e7c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_740e7c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.msl
index b385506..3bf5462 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_756031 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_756031 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_3d<i32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_756031
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_756031
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_756031
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.msl
index b44d9f6..b11235e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_756304 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_756304 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_756304
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_756304
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_756304
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.msl
index 276dc5a..ac9fe31 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_790e57 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_790e57 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_790e57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_790e57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_790e57
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.msl
index cfc7070..265b2d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_795fbb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_795fbb = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_795fbb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_795fbb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_795fbb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.msl
index d970bd8..5363267 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_797c30 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_797c30 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_797c30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_797c30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_797c30
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.msl
index 56c3654..b3b95cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_79d168 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_79d168 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_depth_cube = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_79d168
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_79d168
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_79d168
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.msl
index 836ec32..4bacd6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7a3890 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7a3890 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7a3890
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7a3890
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7a3890
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.msl
index 8a20526..58f4d8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7a9e30 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7a9e30 = func():void {
+  $B2: {
     %4:texture_cube<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7a9e30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7a9e30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7a9e30
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.msl
index 32063f2..d4ae4d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7c753b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7c753b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7c753b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7c753b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7c753b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.msl
index 87f54bb..081b6f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7c7c64 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7c7c64 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7c7c64
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7c7c64
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7c7c64
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.msl
index d03fe02..88fcff8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7d8439 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7d8439 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7d8439
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7d8439
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7d8439
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.msl
index d0cb535..c97f9a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7ea4b5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7ea4b5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7ea4b5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7ea4b5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7ea4b5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.msl
index 1cc1ef1..eb022fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_7edb05 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_7edb05 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_7edb05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_7edb05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_7edb05
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.msl
index 1bc5c53..c1ab7fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8057cb = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8057cb = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8057cb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8057cb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8057cb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.msl
index f4e27e1..1ce6264 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8243a1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8243a1 = func():void {
+  $B2: {
     %4:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8243a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8243a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8243a1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.msl
index e8eb00f..7cf9323 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_835f90 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_835f90 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_835f90
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_835f90
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_835f90
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.msl
index 16fd29d..17df82a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_841ebe = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_841ebe = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_841ebe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_841ebe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_841ebe
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.msl
index 54b0340..aa9df4d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_84f363 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_84f363 = func():void {
+  $B2: {
     %4:texture_storage_1d<bgra8unorm, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_84f363
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_84f363
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_84f363
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.msl
index 200a725..617e797 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_867ead = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_867ead = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_867ead
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_867ead
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_867ead
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.msl
index 903525f..746ecfc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_879b73 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_879b73 = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_879b73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_879b73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_879b73
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.msl
index 4fdf484..8f63c38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_87b42d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_87b42d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_87b42d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_87b42d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_87b42d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.msl
index c0bffc9..74863db 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_881dd4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_881dd4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_881dd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_881dd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_881dd4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.msl
index 15e9426..18da2e6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8a2b17 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8a2b17 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8a2b17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8a2b17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8a2b17
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.msl
index 42d933c..c071be2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8a35f9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8a35f9 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8a35f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8a35f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8a35f9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8934ef5
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_8af728 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:vec2<u32> = textureDimensions %4
+    %res:ptr<function, vec2<u32>, read_write> = var, %5
+    %7:vec2<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_8af728
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_8af728
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_8af728
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.msl
index 9413450..2fc2c6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8b9906 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8b9906 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8b9906
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8b9906
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8b9906
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.msl
index 729d131..42dbc03 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8bd369 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8bd369 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8bd369
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8bd369
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8bd369
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.msl
index 65d5cd0..07f2d52 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8e15f4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8e15f4 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8e15f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8e15f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8e15f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.msl
index 4a653cc..5b50de8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8e5de6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8e5de6 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8e5de6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8e5de6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8e5de6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.msl
index 9c785b5..20db69d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_8efd47 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_8efd47 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_8efd47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_8efd47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_8efd47
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.msl
index 67628d1..b32850f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_902179 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_902179 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_902179
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_902179
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_902179
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.msl
index 8cca4cb..936e48b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_904b0f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_904b0f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_904b0f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_904b0f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_904b0f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.msl
index 7d1dfe6..98ef490 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_90dd74 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_90dd74 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_90dd74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_90dd74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_90dd74
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.msl
index ea729a6..f4e12c7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_91e3b4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_91e3b4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_91e3b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_91e3b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_91e3b4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.msl
index e849f573..956be95 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_920006 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_920006 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_1d<u32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_920006
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_920006
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_920006
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.msl
index c3f86df..94b54b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_92552e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_92552e = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_92552e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_92552e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_92552e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.msl
index 813087d..f3de2e7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9573f3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9573f3 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9573f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9573f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9573f3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.msl
index 50c5d56..69d9637 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_965645 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_965645 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_965645
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_965645
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_965645
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.msl
index 99191cf..0d26142 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_98b2d3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_98b2d3 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_98b2d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_98b2d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_98b2d3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.msl
index 25ccb7b..534a380 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_991ea9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_991ea9 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_depth_2d = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_991ea9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_991ea9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_991ea9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.msl
index 54aa83e..ef2628f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9944d5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9944d5 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9944d5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9944d5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9944d5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.msl
index 6241d58..d9e55ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9b10a0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9b10a0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9b10a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9b10a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9b10a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.msl
index ccea5f1..cfd4e1e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9b223b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9b223b = func():void {
+  $B2: {
     %4:texture_cube<f32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9b223b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9b223b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9b223b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.msl
index 38cafb5..3e47169 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9baf27 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9baf27 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_cube<u32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_9baf27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_9baf27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_9baf27
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.msl
index 0f60737..04ab59b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9c7a00 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9c7a00 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_1d<u32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_9c7a00
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_9c7a00
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_9c7a00
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.msl
index 7736080..e1be989 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9cd4ca = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9cd4ca = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_cube<u32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_9cd4ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_9cd4ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_9cd4ca
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.msl
index 8371919..2cafaac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9cd8ad = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9cd8ad = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9cd8ad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9cd8ad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9cd8ad
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.msl
index e1c7026..112a8d0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9d0bac = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9d0bac = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9d0bac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9d0bac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9d0bac
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.msl
index 38a6fd4..72d63e4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9d68b8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9d68b8 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9d68b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9d68b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9d68b8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.msl
index 921b3fd..69c15a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9dc27a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9dc27a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9dc27a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9dc27a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9dc27a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.msl
index 6cba563..0f787e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9e0794 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9e0794 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_2d_array<u32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_9e0794
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_9e0794
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_9e0794
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.msl
index 64d4fb9..e3ad776 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_9fcc3b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_9fcc3b = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_9fcc3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_9fcc3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_9fcc3b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.msl
index b42152d..2655353 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a105a5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a105a5 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a105a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a105a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a105a5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.msl
index b65acf2..24e838d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a14386 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a14386 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a14386
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a14386
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a14386
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.msl
index 329db7f..fd21c6f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a1598a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a1598a = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a1598a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a1598a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a1598a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..fd6e2c5
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_a20ba2 = func():void {
+  $B2: {
+    %4:texture_storage_3d<r8unorm, write> = load %arg_0
+    %5:vec3<u32> = textureDimensions %4
+    %res:ptr<function, vec3<u32>, read_write> = var, %5
+    %7:vec3<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_a20ba2
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_a20ba2
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_a20ba2
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.msl
index 8a7a2b3..0bb63bb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a25d9b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a25d9b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8unorm, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a25d9b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a25d9b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a25d9b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.msl
index 237925f..42501a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a2ba5e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a2ba5e = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_cube<i32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_a2ba5e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_a2ba5e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_a2ba5e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.msl
index 63f4178..0686639 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a3ea91 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a3ea91 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a3ea91
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a3ea91
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a3ea91
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.msl
index ddfbfac..902d599 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a48049 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a48049 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_2d<i32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_a48049
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_a48049
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_a48049
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.msl
index c3d5b6b..4961dc8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a4cd56 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a4cd56 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a4cd56
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a4cd56
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a4cd56
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.msl
index d24df3e..2a10b20 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a65776 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a65776 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a65776
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a65776
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a65776
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.msl
index b2ab621..5ff70c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_a7ae4c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_a7ae4c = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_a7ae4c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_a7ae4c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_a7ae4c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.msl
index 11b3405..8f68441 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_aa4353 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_aa4353 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_aa4353
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_aa4353
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_aa4353
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.msl
index b87d4eb..93050c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_aac604 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_aac604 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_1d<f32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_aac604
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_aac604
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_aac604
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.msl
index 25f0baf..1a0e6ca 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ad7d3b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ad7d3b = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ad7d3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ad7d3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ad7d3b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.msl
index dfecd22..84b0b21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ae4595 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ae4595 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ae4595
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ae4595
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ae4595
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.msl
index 3ca8324..efbeeed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ae75a7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ae75a7 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ae75a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ae75a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ae75a7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.msl
index a11470a..949d892 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_af46ab = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_af46ab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_af46ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_af46ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_af46ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.msl
index 1336990..c75fa3e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b16352 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b16352 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b16352
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b16352
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b16352
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.msl
index bd5d7c1..55267cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b284b8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b284b8 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b284b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b284b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b284b8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.msl
index 9e81001..9677743 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b3ab5e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b3ab5e = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_cube_array<f32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_b3ab5e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_b3ab5e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_b3ab5e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.msl
index f14197e..4c390fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b46d97 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b46d97 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_1d<i32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_b46d97
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_b46d97
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_b46d97
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.msl
index 16221ed..e4f0554 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b51345 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b51345 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b51345
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b51345
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b51345
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.msl
index a346ecd..60af298 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b56112 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b56112 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b56112
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b56112
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b56112
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.msl
index 82cfa14..34d233d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b5ba03 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b5ba03 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16float, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b5ba03
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b5ba03
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b5ba03
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.msl
index eb4dd20..7075ee4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b5d68e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b5d68e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b5d68e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b5d68e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b5d68e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.msl
index f1da8c9..e676ab1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b6bbf4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b6bbf4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b6bbf4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b6bbf4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b6bbf4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.msl
index 0f97f51..8a9bb43 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b8287f = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b8287f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b8287f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b8287f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b8287f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.msl
index 1d3252f..2489e6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_b9e7ef = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_b9e7ef = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_b9e7ef
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_b9e7ef
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_b9e7ef
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.msl
index 39de294..70d133a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bb95d9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bb95d9 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bb95d9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bb95d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bb95d9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.msl
index de9d6ef..499807d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bbe285 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bbe285 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bbe285
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bbe285
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bbe285
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.msl
index 4454816..0734d41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bc96f6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bc96f6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bc96f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bc96f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bc96f6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.msl
index b277d1a..2ea5677 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bd94c8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bd94c8 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_depth_cube_array = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_bd94c8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_bd94c8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_bd94c8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.msl
index 0726507..5a4f560 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bec716 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bec716 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bec716
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bec716
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bec716
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.msl
index 6846af3..c83ca85 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_bf9170 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_bf9170 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_bf9170
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_bf9170
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_bf9170
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.msl
index a45498e..d2615a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c1189e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c1189e = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c1189e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c1189e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c1189e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.msl
index dac5f33..514e05f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c1dbf6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c1dbf6 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c1dbf6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c1dbf6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c1dbf6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.msl
index c66c698..4d04623 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c27466 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c27466 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c27466
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c27466
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c27466
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.msl
index 1a455f3..9688623 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c2cdd3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c2cdd3 = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c2cdd3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c2cdd3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c2cdd3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.msl
index f616817..9ea7ecd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c44fc1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c44fc1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c44fc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c44fc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c44fc1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.msl
index c3fe0f8..36f79de 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c5a36e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c5a36e = func():void {
+  $B2: {
     %4:texture_depth_cube = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c5a36e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c5a36e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c5a36e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.msl
index ea1a673..c81c192 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c6b44c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c6b44c = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c6b44c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c6b44c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c6b44c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b645805
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_c6b985 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %5:u32 = textureDimensions %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_c6b985
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_c6b985
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_c6b985
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.msl
index 3b1f4ea..7be61e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c7ea63 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c7ea63 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32float, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c7ea63
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c7ea63
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c7ea63
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.msl
index 37abb03..a886b56 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c82420 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c82420 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_c82420
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_c82420
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_c82420
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.msl
index 88285d4..272ba89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_c871f3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_c871f3 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_3d<i32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_c871f3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_c871f3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_c871f3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.msl
index e2e6476..d198f46 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ca10cc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ca10cc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ca10cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ca10cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ca10cc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.msl
index 0edeec9..d8afa22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cad3b7 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cad3b7 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cad3b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cad3b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cad3b7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.msl
index de2abf0..3f96199 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cc947b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cc947b = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cc947b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cc947b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cc947b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.msl
index 4d501f1..8b882cd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cd3033 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cd3033 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cd3033
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cd3033
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cd3033
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.msl
index 3623164..897a716 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.ir.msl
@@ -1,43 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureDimensions_cdc6c9() {
+  var res : vec2<u32> = textureDimensions(arg_0);
+  prevent_dce = res;
 }
 
-%textureDimensions_cdc6c9 = func():void -> %b2 {
-  %b2 = block {
-    %4:texture_external = load %arg_0
-    %5:vec2<u32> = textureDimensions %4
-    %res:ptr<function, vec2<u32>, read_write> = var, %5
-    %7:vec2<u32> = load %res
-    store %prevent_dce, %7
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %textureDimensions_cdc6c9
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %textureDimensions_cdc6c9
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %textureDimensions_cdc6c9
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureDimensions_cdc6c9();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureDimensions_cdc6c9();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureDimensions_cdc6c9();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.msl
index d735d96..16fab76 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cedabd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cedabd = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_cedabd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_cedabd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_cedabd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.msl
index 3179be5..f76754e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_cf2b50 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_cf2b50 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_cube_array<f32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_cf2b50
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_cf2b50
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_cf2b50
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.msl
index 45666e4..2766e73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d0778e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d0778e = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32uint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d0778e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d0778e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d0778e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.msl
index 69b50c4..2409557 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d08a94 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d08a94 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba16sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d08a94
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d08a94
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d08a94
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.msl
index af9946a..01afc41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d1b882 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d1b882 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d1b882
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d1b882
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d1b882
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.msl
index d153dd9..21b96b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d3accd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d3accd = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_depth_cube = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_d3accd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_d3accd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_d3accd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.msl
index 30118d1..54c3236 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d44ac3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d44ac3 = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d44ac3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d44ac3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d44ac3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.msl
index 364a79d..3bd1f75 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d44dd1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d44dd1 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d44dd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d44dd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d44dd1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.msl
index 4de5cb9..5a40033 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d63c28 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d63c28 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d63c28
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d63c28
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d63c28
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.msl
index 07430fc..3db25b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d6f3cf = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d6f3cf = func():void {
+  $B2: {
     %4:texture_storage_2d<r32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d6f3cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d6f3cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d6f3cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.msl
index ec3713d..a06d2a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d8ba68 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d8ba68 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d8ba68
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d8ba68
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d8ba68
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.msl
index 0b33a4c..ae94e9a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_d8f887 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_d8f887 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8uint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_d8f887
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_d8f887
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_d8f887
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.msl
index f6a0b51..39888a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_da30d2 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_da30d2 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_da30d2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_da30d2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_da30d2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.msl
index 8711ebe..5df2122 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_daf0fe = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_daf0fe = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_daf0fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_daf0fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_daf0fe
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.msl
index a4a403e..9ad882b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_db7131 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_db7131 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_db7131
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_db7131
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_db7131
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.msl
index 1fc8070..fe3c647 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_dc83ce = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_dc83ce = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_dc83ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_dc83ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_dc83ce
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.msl
index bde0adc..9078219 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_de03c6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_de03c6 = func():void {
+  $B2: {
     %4:texture_storage_1d<r32uint, read> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_de03c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_de03c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_de03c6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.msl
index 6426348..adf6260 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_deb3c0 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_deb3c0 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_deb3c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_deb3c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_deb3c0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.msl
index f90b14b..5f041ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_dee461 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_dee461 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8snorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_dee461
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_dee461
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_dee461
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.msl
index 5df58e7..fced1c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_dfdc32 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_dfdc32 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_depth_2d_array = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_dfdc32
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_dfdc32
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_dfdc32
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.msl
index 41a608b..9fa70a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e122fe = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e122fe = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8snorm, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e122fe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e122fe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e122fe
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.msl
index 6f40cd0..3e5f9f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e18a8b = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e18a8b = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_2d<u32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_e18a8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_e18a8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_e18a8b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.msl
index bd02c6d..fb143d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e4bfd2 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e4bfd2 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e4bfd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e4bfd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e4bfd2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.msl
index d29e1ce..971041e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e4e310 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e4e310 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_2d_array<i32> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_e4e310
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_e4e310
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_e4e310
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.msl
index cd67d4f..687f5e4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e4f021 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e4f021 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e4f021
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e4f021
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e4f021
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.msl
index f00ed8b..015b749 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e50eb8 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e50eb8 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e50eb8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e50eb8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e50eb8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.msl
index cdb9b93..eb65aa1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e5a203 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e5a203 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_3d<u32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_e5a203
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_e5a203
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_e5a203
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.msl
index 998f7c6..b50314a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e738f4 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e738f4 = func():void {
+  $B2: {
     %4:texture_storage_3d<rg32sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e738f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e738f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e738f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.msl
index c80e930..f8c1124 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e824b6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e824b6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e824b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e824b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e824b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.msl
index 3fe8d5a..4f612d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_e99308 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_e99308 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba16uint, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_e99308
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_e99308
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_e99308
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.msl
index fe39c3e..9a38d3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ea066c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ea066c = func():void {
+  $B2: {
     %4:texture_storage_1d<r32float, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ea066c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ea066c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ea066c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.msl
index e249406..3941694 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ea25bc = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ea25bc = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32uint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ea25bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ea25bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ea25bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.msl
index 31c8f1f..14ca50f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eafe19 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eafe19 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_depth_2d_array = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_eafe19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_eafe19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_eafe19
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.msl
index 5491a5a..2f2c4deb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb03b1 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb03b1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb03b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb03b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb03b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.msl
index 9935888..009453b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb10d6 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb10d6 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb10d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb10d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb10d6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.msl
index c503142..1f20f91 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb1249 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb1249 = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb1249
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb1249
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb1249
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.msl
index c12ee15..92df375 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_eb9f4d = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_eb9f4d = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_eb9f4d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_eb9f4d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_eb9f4d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.msl
index 9306ad7..74ea7f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ed1030 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ed1030 = func():void {
+  $B2: {
     %4:texture_storage_2d<r32uint, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ed1030
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ed1030
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ed1030
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.msl
index 6e97d5e..1568ae4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_ef2e58 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_ef2e58 = func():void {
+  $B2: {
     %4:texture_storage_3d<r32sint, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_ef2e58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_ef2e58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_ef2e58
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.msl
index c1af3d4..e047280 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f17acd = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f17acd = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_1d<f32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_f17acd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_f17acd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_f17acd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.msl
index 30fb118..645e567 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f264a3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f264a3 = func():void {
+  $B2: {
     %4:texture_storage_1d<rg32sint, write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f264a3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f264a3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f264a3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.msl
index 6b43a8f..6724bae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f3a2ac = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f3a2ac = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba16float, write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f3a2ac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f3a2ac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f3a2ac
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.msl
index c019323..77a9dc8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f406ff = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f406ff = func():void {
+  $B2: {
     %4:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %5:u32 = textureDimensions %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f406ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f406ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f406ff
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.msl
index 87e3a27..6380af3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f4321c = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f4321c = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32sint, read> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f4321c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f4321c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f4321c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.msl
index c82f533..3080663 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f48886 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f48886 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f48886
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f48886
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f48886
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.msl
index f21daf5..b5b0589 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f4e469 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f4e469 = func():void {
+  $B2: {
     %4:texture_storage_2d<rgba32float, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f4e469
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f4e469
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f4e469
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.msl
index 35c77f2..157d160 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f55a94 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f55a94 = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f55a94
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f55a94
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f55a94
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.msl
index 7de3d5f..f7a92d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f626b3 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f626b3 = func():void {
+  $B2: {
     %4:texture_cube<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f626b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f626b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f626b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.msl
index 77d78f9..fa54e1e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f7bac5 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f7bac5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f7bac5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f7bac5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f7bac5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.msl
index 5771f3e..c56b6b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f8522e = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f8522e = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f8522e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f8522e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f8522e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.msl
index db60c65..f0c1f58 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec3<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f93ece = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f93ece = func():void {
+  $B2: {
     %4:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %5:vec3<u32> = textureDimensions %4
     %res:ptr<function, vec3<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f93ece
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f93ece
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f93ece
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.msl
index ae414ed..1b8912c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_f94e55 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_f94e55 = func():void {
+  $B2: {
     %4:texture_storage_2d<rg32float, read_write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_f94e55
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_f94e55
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_f94e55
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.msl
index 8aa87ad..2e6dd38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_fbb15a = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_fbb15a = func():void {
+  $B2: {
     %4:texture_storage_2d<bgra8unorm, write> = load %arg_0
     %5:vec2<u32> = textureDimensions %4
     %res:ptr<function, vec2<u32>, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureDimensions_fbb15a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureDimensions_fbb15a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureDimensions_fbb15a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..3b9fcc6
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureDimensions_fdbae8 = func():void {
+  $B2: {
+    %4:texture_storage_1d<r8unorm, read> = load %arg_0
+    %5:u32 = textureDimensions %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureDimensions_fdbae8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureDimensions_fdbae8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureDimensions_fdbae8
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.msl
index 64ed017..7f04ceb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec2<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureDimensions_fdf6e9 = func():void -> %b2 {
-  %b2 = block {
+%textureDimensions_fdf6e9 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_2d_array<i32> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureDimensions_fdf6e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureDimensions_fdf6e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureDimensions_fdf6e9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.msl
index fd85250..0a0d1d0 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_0166ec = func():void -> %b2 {
-  %b2 = block {
+%textureGather_0166ec = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<i32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_0166ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_0166ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_0166ec
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.msl
index 81c3b65..229bbe9 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_04fa78 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_04fa78 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_04fa78
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_04fa78
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_04fa78
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.msl
index c83f2f3..ef033bf 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_10c554 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_10c554 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_depth_cube = load %arg_0
     %7:sampler = load %arg_1
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_10c554
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_10c554
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_10c554
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.msl
index cdc3850..b11b306 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_11b2db = func():void -> %b2 {
-  %b2 = block {
+%textureGather_11b2db = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<f32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_11b2db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_11b2db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_11b2db
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.msl
index f8d22ce..6aa26dc 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_17baac = func():void -> %b2 {
-  %b2 = block {
+%textureGather_17baac = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_17baac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_17baac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_17baac
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.msl
index 0267737..0d2e909 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_1bf0ab = func():void -> %b2 {
-  %b2 = block {
+%textureGather_1bf0ab = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_1bf0ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_1bf0ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_1bf0ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.msl
index 153d797..ff53ee2 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_1f7f6b = func():void -> %b2 {
-  %b2 = block {
+%textureGather_1f7f6b = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_depth_2d = load %arg_0
     %7:sampler = load %arg_1
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_1f7f6b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_1f7f6b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_1f7f6b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.msl
index 79e6e79..c5ad7ea 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_22e930 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_22e930 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_22e930
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_22e930
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_22e930
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.msl
index 94767c0..f0fc8ea 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_238ec4 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_238ec4 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_238ec4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_238ec4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_238ec4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.msl
index 8393693..727d472 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_24b0bd = func():void -> %b2 {
-  %b2 = block {
+%textureGather_24b0bd = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_24b0bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_24b0bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_24b0bd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.msl
index 23aa451..b0630eb 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_269250 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_269250 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_269250
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_269250
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_269250
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.msl
index cf4cf94..01eb908 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_2a4f40 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_2a4f40 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_2d_array = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_2a4f40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_2a4f40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_2a4f40
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.msl
index ed58bc5..7ab8ec2 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_2cc066 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_2cc066 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_2cc066
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_2cc066
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_2cc066
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.msl
index bb65cc2..a7d28dd 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_2e0ed5 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_2e0ed5 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_depth_2d = load %arg_0
     %7:sampler = load %arg_1
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_2e0ed5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_2e0ed5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_2e0ed5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.msl
index fb4a7d5..cb030a7 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_32c4e8 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_32c4e8 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<f32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_32c4e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_32c4e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_32c4e8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.msl
index c7f048d..982d4be 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_3b32cc = func():void -> %b2 {
-  %b2 = block {
+%textureGather_3b32cc = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<u32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_3b32cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_3b32cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_3b32cc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.msl
index e6cad7b..81c0970 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_43025d = func():void -> %b2 {
-  %b2 = block {
+%textureGather_43025d = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_cube_array = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_43025d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_43025d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_43025d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.msl
index 49652c2..4553438 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_445793 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_445793 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_445793
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_445793
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_445793
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.msl
index 3daeb14..8a1cf74 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_49b07f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_49b07f = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<u32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_49b07f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_49b07f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_49b07f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.msl
index 98b58e2..9c6c33c 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_4b8103 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_4b8103 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_4b8103
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_4b8103
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_4b8103
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.msl
index e91fc75..27a67e6 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_4e8ac5 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_4e8ac5 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_4e8ac5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_4e8ac5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_4e8ac5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.msl
index d62b781..8cf9066 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_5266da = func():void -> %b2 {
-  %b2 = block {
+%textureGather_5266da = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_5266da
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_5266da
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_5266da
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.msl
index b2df564..e87ec4c 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_59372a = func():void -> %b2 {
-  %b2 = block {
+%textureGather_59372a = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_59372a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_59372a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_59372a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.msl
index 9cfb5db..69aaac6 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_5ba85f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_5ba85f = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<i32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_5ba85f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_5ba85f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_5ba85f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.msl
index 5e0ebf8..d378fdc 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_5bd491 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_5bd491 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<u32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_5bd491
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_5bd491
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_5bd491
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.msl
index 968908e..7319534 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_6b7b74 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_6b7b74 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_6b7b74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_6b7b74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_6b7b74
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.msl
index 12337f4..59a73ac 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_751f8a = func():void -> %b2 {
-  %b2 = block {
+%textureGather_751f8a = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_751f8a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_751f8a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_751f8a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.msl
index f93202d..7a0e7a3 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_788010 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_788010 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_788010
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_788010
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_788010
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.msl
index 1c0d8bf..f5a0d69 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_7c3828 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_7c3828 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<i32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_7c3828
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_7c3828
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_7c3828
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.msl
index 3ce4abc..860315c 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_7dd226 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_7dd226 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_cube_array = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_7dd226
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_7dd226
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_7dd226
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.msl
index 106c368..8bab0a9 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_829357 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_829357 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_829357
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_829357
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_829357
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.msl
index aaa451f..ce87c7e 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_831549 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_831549 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_831549
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_831549
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_831549
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.msl
index 555d6f8..027b3b5 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_8578bc = func():void -> %b2 {
-  %b2 = block {
+%textureGather_8578bc = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_8578bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_8578bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_8578bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.msl
index 6b27647..e8db19a 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_89680f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_89680f = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<u32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_89680f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_89680f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_89680f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.msl
index 591fc0e..3660d14 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_8b754c = func():void -> %b2 {
-  %b2 = block {
+%textureGather_8b754c = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_8b754c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_8b754c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_8b754c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.msl
index 151e267..4b6fea4 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_8fae00 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_8fae00 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<u32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_8fae00
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_8fae00
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_8fae00
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.msl
index f0cca42..b18e2e9 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_92ea47 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_92ea47 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_92ea47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_92ea47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_92ea47
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.msl
index ddd1c46..726c7b1 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_986700 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_986700 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<u32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_986700
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_986700
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_986700
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.msl
index 598d6fe..75afaa1 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_9a6358 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_9a6358 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_2d_array = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_9a6358
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_9a6358
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_9a6358
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.msl
index d3c54e4..1427357d 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_9ab41e = func():void -> %b2 {
-  %b2 = block {
+%textureGather_9ab41e = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_9ab41e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_9ab41e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_9ab41e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.msl
index 3418f60..b3062d0 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_a0372b = func():void -> %b2 {
-  %b2 = block {
+%textureGather_a0372b = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_a0372b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_a0372b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_a0372b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.msl
index cf1f4fa..0d51eda 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_a68027 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_a68027 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_2d_array = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_a68027
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_a68027
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_a68027
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.msl
index aa21993..5397c2b 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_aaf6bd = func():void -> %b2 {
-  %b2 = block {
+%textureGather_aaf6bd = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_aaf6bd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_aaf6bd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_aaf6bd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.msl
index 727f603..a0b980f 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_af55b3 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_af55b3 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_af55b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_af55b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_af55b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.msl
index b2dfc9c..62ae680 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_bb3ac5 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_bb3ac5 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<i32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_bb3ac5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_bb3ac5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_bb3ac5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.msl
index 96a1737..8a55701 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_bd33b6 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_bd33b6 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_bd33b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_bd33b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_bd33b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.msl
index c33bb62..fb74bf3 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_be276f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_be276f = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_be276f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_be276f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_be276f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.msl
index 5cad5e6..e5c2304 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_c0640c = func():void -> %b2 {
-  %b2 = block {
+%textureGather_c0640c = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_c0640c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_c0640c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_c0640c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.msl
index 1f1a751..a5c5323 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_ccadde = func():void -> %b2 {
-  %b2 = block {
+%textureGather_ccadde = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<i32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_ccadde
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_ccadde
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_ccadde
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.msl
index e9eabf7..4204735 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_ce5578 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_ce5578 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_ce5578
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_ce5578
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_ce5578
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.msl
index ac08a80..fa90e63 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_cf9112 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_cf9112 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_cf9112
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_cf9112
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_cf9112
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.msl
index 907660e..8fe8b33 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d1f187 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d1f187 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_d1f187
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_d1f187
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_d1f187
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.msl
index 04b8911..2113aa6 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d4b5c6 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d4b5c6 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_d4b5c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_d4b5c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_d4b5c6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.msl
index a21a995..61f568d 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d6507c = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d6507c = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_d6507c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_d6507c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_d6507c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.msl
index 23e90be..f4203cb 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d8e958 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d8e958 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_d8e958
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_d8e958
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_d8e958
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.msl
index dce6889..a9b0cce 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d90605 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d90605 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_2d_array = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_d90605
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_d90605
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_d90605
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.msl
index 47b37c2..c14280e 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_d98d59 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_d98d59 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_d98d59
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_d98d59
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_d98d59
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.msl
index a131224..d100c7f 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_dc6661 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_dc6661 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<i32> = load %arg_1
     %7:sampler = load %arg_2
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureGather_dc6661
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureGather_dc6661
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureGather_dc6661
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.msl
index 32aa737..c1f105d 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_e2acac = func():void -> %b2 {
-  %b2 = block {
+%textureGather_e2acac = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_e2acac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_e2acac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_e2acac
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.msl
index 16226f0..cfcd183 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_e3165f = func():void -> %b2 {
-  %b2 = block {
+%textureGather_e3165f = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_e3165f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_e3165f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_e3165f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.msl
index 3851687..a863aab 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_e9d390 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_e9d390 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<i32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_e9d390
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_e9d390
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_e9d390
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.msl
index 0271793..ffc8493 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_ea8eb4 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_ea8eb4 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<f32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_ea8eb4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_ea8eb4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_ea8eb4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.msl
index af007b1..53444e8 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_1:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 1)
   %arg_2:ptr<handle, sampler, read> = var @binding_point(1, 2)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGather_f2c6e3 = func():void -> %b2 {
-  %b2 = block {
+%textureGather_f2c6e3 = func():void {
+  $B2: {
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<u32> = load %arg_1
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGather_f2c6e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGather_f2c6e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGather_f2c6e3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.msl
index 87cf08e..f4983aa 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_144a9a = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_144a9a = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureGatherCompare_144a9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureGatherCompare_144a9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureGatherCompare_144a9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.msl
index c3df8cb..0ff52f9 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_182fd4 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_182fd4 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_cube = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGatherCompare_182fd4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGatherCompare_182fd4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGatherCompare_182fd4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.msl
index c0bf526..c182aed 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_2e409c = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_2e409c = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureGatherCompare_2e409c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureGatherCompare_2e409c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureGatherCompare_2e409c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.msl
index a0de746..76a8459 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_313add = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_313add = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGatherCompare_313add
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGatherCompare_313add
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGatherCompare_313add
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.msl
index 4d8a5c9..049f816 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_60d2d1 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_60d2d1 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureGatherCompare_60d2d1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureGatherCompare_60d2d1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureGatherCompare_60d2d1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.msl
index aca419f..063b409 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_6d9352 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_6d9352 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureGatherCompare_6d9352
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureGatherCompare_6d9352
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureGatherCompare_6d9352
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.msl
index 3648790..8be1f8f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_783e65 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_783e65 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureGatherCompare_783e65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureGatherCompare_783e65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureGatherCompare_783e65
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.msl
index 0fe3aab..32f6841 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_b5bc43 = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_b5bc43 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureGatherCompare_b5bc43
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureGatherCompare_b5bc43
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureGatherCompare_b5bc43
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.msl
index e0d3f69..cea3df6 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureGatherCompare_f585cc = func():void -> %b2 {
-  %b2 = block {
+%textureGatherCompare_f585cc = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureGatherCompare_f585cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureGatherCompare_f585cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureGatherCompare_f585cc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.msl
index 2f377ff..cc8429b 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_012e11 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_012e11 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_012e11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_012e11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_012e11
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.msl
index b765d71..115b8cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_019da0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_019da0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_3d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_019da0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_019da0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_019da0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.msl
index 81e3ff2..c922f21 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_01cd01 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_01cd01 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_01cd01
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_01cd01
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_01cd01
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.msl
index 993c3b1..dbe5f5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_026217 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_026217 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_026217
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_026217
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_026217
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.msl
index 19d99ec..17f4ca1 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_02c48d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_02c48d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_02c48d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_02c48d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_02c48d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.msl
index 9bad2bf..1181c7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_02ef1f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_02ef1f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<r32uint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_02ef1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_02ef1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_02ef1f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.msl
index e4ef4e9..6d76c99 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_03e03e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_03e03e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_03e03e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_03e03e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_03e03e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.msl
index 6b10039..8af7b14 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_045ec9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_045ec9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8sint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_045ec9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_045ec9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_045ec9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.msl
index 4c00f7e..f1ccaea 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_04b911 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_04b911 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_04b911
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_04b911
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_04b911
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.msl
index 7a47d9f..130e39b 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_050c33 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_050c33 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rg32uint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_050c33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_050c33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_050c33
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.msl
index dec349b..eefdc77 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_054350 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_054350 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_054350
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_054350
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_054350
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.msl
index 058ee6a..5472f2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_0674b1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_0674b1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8snorm, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_0674b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_0674b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_0674b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.msl
index a4760e0..66800f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_06ac37 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_06ac37 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_06ac37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_06ac37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_06ac37
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.msl
index 1946ed5..9783701 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_072e26 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_072e26 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_072e26
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_072e26
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_072e26
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.msl
index 929f3d6..8874238 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_078bc4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_078bc4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8snorm, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_078bc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_078bc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_078bc4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.msl
index 3a9e12b..6ed4eb2 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_0b515a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_0b515a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_0b515a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_0b515a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_0b515a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.msl
index 79e3996..d0b6e50 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_0cb698 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_0cb698 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_1d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_0cb698
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_0cb698
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_0cb698
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.msl
index 17d02d3..73feb04 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_10db82 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_10db82 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_10db82
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_10db82
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_10db82
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.msl
index fa81220..5b13617 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_126466 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_126466 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rg32float, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_126466
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_126466
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_126466
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.msl
index 87436f9..ff1ffb8 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_127e12 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_127e12 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_127e12
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_127e12
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_127e12
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.msl
index 7862102..d6ceef6 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1373dc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1373dc = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_1d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1373dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1373dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1373dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.msl
index bb5e517..4cf24d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_13d539 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_13d539 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_13d539
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_13d539
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_13d539
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.msl
index e54f7c8..ae3236f 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_13e90c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_13e90c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_13e90c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_13e90c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_13e90c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.msl
index 6b2994f7..b9c267f 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_143d84 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_143d84 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_143d84
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_143d84
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_143d84
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.msl
index 8164f87..0e19713 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1471b8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1471b8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1471b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1471b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1471b8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.msl
index 5621fe8..8536f98 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_14cc4c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_14cc4c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_14cc4c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_14cc4c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_14cc4c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.msl
index c4ee29a..ceef1a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1561a7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1561a7 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<r32uint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1561a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1561a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1561a7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.msl
index ac4150a..c1bd4e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_15e675 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_15e675 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_15e675
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_15e675
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_15e675
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.msl
index 7aec287..fe32a9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1619bf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1619bf = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1619bf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1619bf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1619bf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.msl
index 4c70abe..8e096de 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_168dc8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_168dc8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_168dc8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_168dc8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_168dc8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.msl
index d792bb7..157e4d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_170593 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_170593 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_170593
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_170593
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_170593
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.msl
index 08cfbfd..801b064 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_17095b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_17095b = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_17095b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_17095b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_17095b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.msl
index a8f6d99..589efd0 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_18ac11 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_18ac11 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rg32sint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_18ac11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_18ac11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_18ac11
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.msl
index 71e7c52..b24852b 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_19cf87 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_19cf87 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_depth_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_19cf87
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_19cf87
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_19cf87
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.msl
index d0f3623..f6596bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_19d6be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_19d6be = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<r32uint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_19d6be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_19d6be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_19d6be
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.msl
new file mode 100644
index 0000000..763cd86
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_19e5ca = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, u32, read_write> = var, 1u
+    %6:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %7:vec2<i32> = load %arg_1
+    %8:u32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_19e5ca
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_19e5ca
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_19e5ca
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.msl
index 64cc199..791991d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1a062f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1a062f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1a062f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1a062f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1a062f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.msl
index 82fea84..c90adee 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1a8452 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1a8452 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8uint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1a8452
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1a8452
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1a8452
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.msl
index 91196b3..8af08f3 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1aa950 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1aa950 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1aa950
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1aa950
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1aa950
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.msl
index 0ba13a4..777589c 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1b051f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1b051f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_1b051f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_1b051f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_1b051f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.msl
index cbf629d..605d7a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1b4332 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1b4332 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<r32uint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1b4332
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1b4332
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1b4332
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.msl
index 4137734..a8637a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1b8588 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1b8588 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_1d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1b8588
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1b8588
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1b8588
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.msl
index 4e1c2fe..05e6d8b 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1bc5ab = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1bc5ab = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1bc5ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1bc5ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1bc5ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.msl
index 846e5c0..2dce6f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.ir.msl
@@ -1,45 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureLoad_1bfdfb() {
+  var arg_1 = vec2<u32>(1u);
+  var res : vec4<f32> = textureLoad(arg_0, arg_1);
+  prevent_dce = res;
 }
 
-%textureLoad_1bfdfb = func():void -> %b2 {
-  %b2 = block {
-    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
-    %5:texture_external = load %arg_0
-    %6:vec2<u32> = load %arg_1
-    %7:vec4<f32> = textureLoad %5, %6
-    %res:ptr<function, vec4<f32>, read_write> = var, %7
-    %9:vec4<f32> = load %res
-    store %prevent_dce, %9
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %11:void = call %textureLoad_1bfdfb
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %13:void = call %textureLoad_1bfdfb
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %15:void = call %textureLoad_1bfdfb
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_1bfdfb();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureLoad_1bfdfb();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureLoad_1bfdfb();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.msl
index 2f5d432..c789701 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1c562a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1c562a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_3d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1c562a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1c562a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1c562a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.msl
index 59c5be6..53e49cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1d43ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1d43ae = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1d43ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1d43ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1d43ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.msl
index ca38c2b..71bbae9 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1e6baa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1e6baa = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rg32float, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1e6baa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1e6baa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1e6baa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.msl
index 30e2a58..eec8787 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1eb93f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1eb93f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rg32float, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_1eb93f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_1eb93f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_1eb93f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.msl
index 7e66056..459c3fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_1f2016 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_1f2016 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_3d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_1f2016
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_1f2016
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_1f2016
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.msl
new file mode 100644
index 0000000..60474a4
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_1fde63 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %5:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %6:vec3<u32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_1fde63
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_1fde63
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_1fde63
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.msl
index d462fcf..46a7dba 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_206a08 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_206a08 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8uint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_206a08
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_206a08
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_206a08
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.msl
index 8449099..5436f2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_20fa2f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_20fa2f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_20fa2f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_20fa2f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_20fa2f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.msl
index 7ec21e5..8a5d801 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_216c37 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_216c37 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_1d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_216c37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_216c37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_216c37
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.msl
index 4a30866..83ac922 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_21d1c4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_21d1c4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_3d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_21d1c4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_21d1c4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_21d1c4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.msl
index 0ce4dae..5f04918 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_223246 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_223246 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_3d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_223246
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_223246
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_223246
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.msl
index 75cc17d..236ceba 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_22e963 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_22e963 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_22e963
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_22e963
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_22e963
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.msl
index 483e849..e21be84 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_23007a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_23007a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_23007a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_23007a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_23007a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.msl
index c55533c..12cf3ea 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2363be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2363be = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_2363be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_2363be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_2363be
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.msl
index 17267c3..f64b6de 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_23ff89 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_23ff89 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_23ff89
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_23ff89
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_23ff89
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.msl
index d1bf58e..dc80cf5 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_25b67f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_25b67f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_25b67f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_25b67f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_25b67f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.msl
index 9dd4d92..6087d97 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_26b8f6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_26b8f6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_26b8f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_26b8f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_26b8f6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.msl
index 0fc9bf8..4160cbf 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_26c4f8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_26c4f8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<bgra8unorm, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_26c4f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_26c4f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_26c4f8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.msl
index 38a53e4..b723bdc 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_26d7f1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_26d7f1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_26d7f1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_26d7f1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_26d7f1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.msl
index a3e186e..23c0818 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_272e7a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_272e7a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<r32float, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_272e7a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_272e7a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_272e7a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e317b52
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_276643 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_storage_1d<r8unorm, read> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_276643
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_276643
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_276643
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.msl
index b689ccc..d3ef2b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_276a2c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_276a2c = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba32uint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_276a2c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_276a2c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_276a2c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.msl
index 6247d6a..17f1b0c 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2887d7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2887d7 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba32float, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_2887d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_2887d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_2887d7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.msl
index e23b23b..8bd0afd 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2a82d9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2a82d9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_2a82d9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_2a82d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_2a82d9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.msl
index 64e1b80..3bbd27f 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2ae485 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2ae485 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba16sint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_2ae485
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_2ae485
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_2ae485
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.msl
index 58f11e4..329f1f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2c72ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2c72ae = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba32sint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_2c72ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_2c72ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_2c72ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.msl
index 7eb82bf..3f05ea7 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2cee30 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2cee30 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_2cee30
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_2cee30
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_2cee30
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.msl
index a822db0..c3965ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2d479c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2d479c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_2d479c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_2d479c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_2d479c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.msl
index 75e559b..0b67a02 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2d6cf7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2d6cf7 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rg32sint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_2d6cf7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_2d6cf7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_2d6cf7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.msl
index 13dde32..f150f56 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2dbfc2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2dbfc2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_2dbfc2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_2dbfc2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_2dbfc2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.msl
index 9723222..7fc52c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2e09aa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2e09aa = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_multisampled_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_2e09aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_2e09aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_2e09aa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.msl
index 52e3202..b13796f 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2e3552 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2e3552 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_2e3552
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_2e3552
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_2e3552
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.msl
index 06c268d..bfcaf9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_2eaf31 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_2eaf31 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_2eaf31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_2eaf31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_2eaf31
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.msl
index c44bc1d..893b74b 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_313c73 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_313c73 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_313c73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_313c73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_313c73
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.msl
index 8af9080..34289a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_31db4b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_31db4b = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<r32uint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_31db4b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_31db4b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_31db4b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.msl
index 5199187..bfd37c7 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_321210 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_321210 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_321210
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_321210
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_321210
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.msl
index b3483e7..5d17ae5 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_32a7b8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_32a7b8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_32a7b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_32a7b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_32a7b8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.msl
index 20ecdb5..014c93a 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_33d3aa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_33d3aa = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba32sint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_33d3aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_33d3aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_33d3aa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.msl
index 815cfd6..a4c328b 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_348827 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_348827 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_348827
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_348827
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_348827
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.msl
index 92af813..1c3443a 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_34d97c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_34d97c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_34d97c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_34d97c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_34d97c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..38eac06
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_35a5e2 = func():void {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_35a5e2
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_35a5e2
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_35a5e2
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e3fbc9b
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_35d464 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, i32, read_write> = var, 1i
+    %6:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %7:vec2<i32> = load %arg_1
+    %8:i32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_35d464
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_35d464
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_35d464
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.msl
index 81dc6f8..7499b44 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_374351 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_374351 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba16uint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_374351
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_374351
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_374351
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.msl
index c7030fe..55e16d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_388688 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_388688 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8snorm, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_388688
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_388688
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_388688
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.msl
index f8779c5..dd24f9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_38f8ab = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_38f8ab = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_multisampled_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_38f8ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_38f8ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_38f8ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.msl
index 088fab7..284a48d 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_39016c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_39016c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_39016c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_39016c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_39016c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.msl
index 3c1415c..83a083d 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_395447 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_395447 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_395447
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_395447
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_395447
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.msl
index 96e258d..a8d5922 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_39ef40 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_39ef40 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba16float, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_39ef40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_39ef40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_39ef40
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.msl
index 9f650f2..7402469 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3a2350 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3a2350 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_3a2350
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_3a2350
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_3a2350
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.msl
index 687976d..3b8b443 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3aea13 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3aea13 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_3aea13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_3aea13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_3aea13
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.msl
index 637eb46..092c140 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3bbc2b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3bbc2b = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<r32float, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3bbc2b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3bbc2b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3bbc2b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.msl
index 9b70d71..56c9743 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3c0d9e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3c0d9e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8uint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3c0d9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3c0d9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3c0d9e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.msl
index 8b18af1..e671e36 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3c9587 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3c9587 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8unorm, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3c9587
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3c9587
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3c9587
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.msl
index ac9d595..38b717e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3c96e8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3c96e8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_3c96e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_3c96e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_3c96e8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.msl
index 49788d2..177df6e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3cfb9c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3cfb9c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8uint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3cfb9c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3cfb9c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3cfb9c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.msl
index 3775d0b..ee2833b 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3d001b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3d001b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8sint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3d001b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3d001b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3d001b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.msl
index 930a8e0..3880586 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3d3fd1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3d3fd1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_3d3fd1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_3d3fd1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_3d3fd1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.msl
index d09f96a..b2074e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3d9c90 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3d9c90 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba32float, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3d9c90
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3d9c90
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3d9c90
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.msl
index 6c0ffd3..e2fd7b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3da3ed = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3da3ed = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_1d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_3da3ed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_3da3ed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_3da3ed
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.msl
new file mode 100644
index 0000000..25463ec
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_3e16a8 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %5:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %6:vec2<i32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_3e16a8
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_3e16a8
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_3e16a8
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.msl
index 9d440e9..da1add5 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_3e5f6a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_3e5f6a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba16float, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_3e5f6a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_3e5f6a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_3e5f6a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.msl
index 02a4d2e..fce3062 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_40ee8b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_40ee8b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_40ee8b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_40ee8b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_40ee8b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.msl
index e77f7b3..07c3f7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4212a1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4212a1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4212a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4212a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4212a1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.msl
index c9cf251..310bcdd 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_424afd = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_424afd = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_424afd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_424afd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_424afd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.msl
index 944fff7..5756f18 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_42a631 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_42a631 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_42a631
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_42a631
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_42a631
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.msl
index 25d30d4..28224ea 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_43484a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_43484a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_43484a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_43484a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_43484a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.msl
index d5244ea..de367b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_439e2a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_439e2a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_439e2a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_439e2a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_439e2a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.msl
index f2d793d..b42780e 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_43cd86 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_43cd86 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_43cd86
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_43cd86
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_43cd86
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.msl
index a7af8b9..4f7c8df 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_44c826 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_44c826 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rg32uint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_44c826
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_44c826
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_44c826
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.msl
index 29e2f36..559a3ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4542ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4542ae = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4542ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4542ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4542ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.msl
index 10be7b0..cfcc76b 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_454347 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_454347 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba32uint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_454347
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_454347
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_454347
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.msl
index 1a08a8e..574a520 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4638a0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4638a0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4638a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4638a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4638a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.msl
index daf1e16..1b6aa80 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_469912 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_469912 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_469912
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_469912
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_469912
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.msl
index b996b4e..d66db07 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_46a93f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_46a93f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_46a93f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_46a93f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_46a93f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.msl
index d9ac1c9..e30f515 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_46dbf5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_46dbf5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8unorm, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_46dbf5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_46dbf5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_46dbf5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.msl
index ec973c2..1d47fd3 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_473d3e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_473d3e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_473d3e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_473d3e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_473d3e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.msl
index dc80f67..8720931 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_47e818 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_47e818 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_3d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_47e818
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_47e818
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_47e818
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.msl
index f55ab58..30f8c21 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_482627 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_482627 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_482627
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_482627
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_482627
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.msl
index c54a31d..8102f2a 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_484344 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_484344 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_484344
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_484344
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_484344
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.msl
new file mode 100644
index 0000000..cdd33b6
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_4951bb = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, i32, read_write> = var, 1i
+    %6:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %7:vec2<u32> = load %arg_1
+    %8:i32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_4951bb
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_4951bb
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_4951bb
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.msl
index cef642f..1584dfd 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_49f76f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_49f76f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_multisampled_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_49f76f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_49f76f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_49f76f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.msl
index c8c984c..13d184b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4a5c55 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4a5c55 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4a5c55
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4a5c55
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4a5c55
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.msl
index a67b351..b2fc88a 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4acb64 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4acb64 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_4acb64
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_4acb64
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_4acb64
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.msl
index b4d118e..3cf1040 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c15b2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c15b2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4c15b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4c15b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4c15b2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.msl
index 093bae2..e9c823d 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c1a1e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c1a1e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4c1a1e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4c1a1e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4c1a1e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.msl
index dde71e6..e4b523a 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c423f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c423f = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_1d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4c423f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4c423f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4c423f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.msl
index 5281860..4d50435 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4c67be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4c67be = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<r32float, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4c67be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4c67be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4c67be
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.msl
index 416facc..415d25f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4ccf9a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4ccf9a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rg32uint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4ccf9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4ccf9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4ccf9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.msl
index d75b6df..5fbe847 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4cdca5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4cdca5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4cdca5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4cdca5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4cdca5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.msl
index 20238124..8312b88 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4db25c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4db25c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_depth_multisampled_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4db25c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4db25c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4db25c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.msl
index 60955f6..d0fc62d 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4e2c5c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4e2c5c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4e2c5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4e2c5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4e2c5c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.msl
index 3ccab53..3af0548 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4f5496 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4f5496 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4f5496
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4f5496
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4f5496
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.msl
index d218696..9dd0f75 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4f90bb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4f90bb = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4f90bb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4f90bb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4f90bb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.msl
index 08157a2..2a0ac64 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4fa6ae = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4fa6ae = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<bgra8unorm, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_4fa6ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_4fa6ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_4fa6ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.msl
index f2ef633..c94237e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_4fd803 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_4fd803 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_3d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_4fd803
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_4fd803
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_4fd803
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.msl
index ea25526..2c6c194 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_505aa2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_505aa2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<r32sint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_505aa2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_505aa2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_505aa2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.msl
index cc35cc9..2c967e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_50915c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_50915c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8uint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_50915c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_50915c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_50915c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.msl
index ddb5c8d..f486810 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5154e1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5154e1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba32float, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5154e1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5154e1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5154e1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.msl
index 224f347..b2aec90 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_519ab5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_519ab5 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8unorm, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_519ab5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_519ab5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_519ab5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.msl
index 81a8466..a4fafa6 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_53378a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_53378a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rg32sint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_53378a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_53378a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_53378a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.msl
index 324e3c7..7f0ae96 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_53941c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_53941c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_53941c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_53941c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_53941c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.msl
index 44e4d9c..a94c0c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_53e142 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_53e142 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_53e142
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_53e142
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_53e142
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.msl
index eb907a4..c1f318a 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_54a59b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_54a59b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_54a59b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_54a59b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_54a59b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.msl
index b009e8c..360ae48 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_54e0ce = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_54e0ce = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<bgra8unorm, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_54e0ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_54e0ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_54e0ce
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.msl
index d3e863d..66fff71 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_54fb38 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_54fb38 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_54fb38
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_54fb38
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_54fb38
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.msl
index 24f14f0..efb7192 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_55e745 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_55e745 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_55e745
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_55e745
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_55e745
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.msl
index 50ebbc6..68ac74a 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_560573 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_560573 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_560573
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_560573
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_560573
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.msl
index 8f6d99b..fb9f9ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_56a000 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_56a000 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rg32float, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_56a000
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_56a000
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_56a000
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.msl
index a8ecc86..39ab9c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_582015 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_582015 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_582015
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_582015
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_582015
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.msl
index ca742a1..bec7f7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_589eaa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_589eaa = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba16float, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_589eaa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_589eaa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_589eaa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.msl
index 82b0920..219ef48 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5a2f9d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5a2f9d = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_1d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_5a2f9d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_5a2f9d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_5a2f9d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.msl
index a61a0a5..719d934 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5abbf2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5abbf2 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rg32float, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5abbf2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5abbf2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5abbf2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.msl
index ab7d2b6..76637c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5b0f5b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5b0f5b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba16uint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5b0f5b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5b0f5b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5b0f5b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.msl
index 3d52b11..31ba638 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5b4947 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5b4947 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5b4947
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5b4947
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5b4947
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.msl
index 78c4a87..e6713b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5bb7fb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5bb7fb = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rg32uint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5bb7fb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5bb7fb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5bb7fb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.msl
index 6950826..ea3adc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5c69f8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5c69f8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5c69f8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5c69f8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5c69f8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.msl
index 3830fb7..b585143 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5cd3fc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5cd3fc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<r32sint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5cd3fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5cd3fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5cd3fc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.msl
index 81f968a..0daed4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5cee3b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5cee3b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<r32uint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5cee3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5cee3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5cee3b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.msl
index 029755e..a7c3d77 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5d0a2f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5d0a2f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_5d0a2f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_5d0a2f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_5d0a2f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.msl
index 7632186..dcef503 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5d4042 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5d4042 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_5d4042
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_5d4042
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_5d4042
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b840a43
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_5dd4c7 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %5:texture_storage_2d<r8unorm, read> = load %arg_0
+    %6:vec2<i32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_5dd4c7
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_5dd4c7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_5dd4c7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.msl
index 32a80e2..f93484c 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5e17a7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5e17a7 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5e17a7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5e17a7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5e17a7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.msl
index 051c981..bb5aac6 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5e1843 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5e1843 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_5e1843
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_5e1843
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_5e1843
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.msl
index 1cb327d..58c5c84 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5e8d3f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5e8d3f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<r32sint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5e8d3f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5e8d3f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5e8d3f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.msl
new file mode 100644
index 0000000..d6b3f48
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_5ed6ad = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, u32, read_write> = var, 1u
+    %6:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %7:vec2<u32> = load %arg_1
+    %8:u32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_5ed6ad
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_5ed6ad
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_5ed6ad
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.msl
index 678cf98..f9f13bf 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5f4473 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5f4473 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba32uint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5f4473
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5f4473
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5f4473
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.msl
index c6a3283..d61bb5b 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_5feb4d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_5feb4d = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<r32float, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_5feb4d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_5feb4d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_5feb4d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.msl
index 2a26949..d2c4dd7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6154d4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6154d4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6154d4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6154d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6154d4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.msl
index bfd0aaf..8611505 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_61e2e8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_61e2e8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_61e2e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_61e2e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_61e2e8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.msl
index cd1501c..2fae076 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_620caa = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_620caa = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rg32sint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_620caa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_620caa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_620caa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.msl
index 6664389..40ec67f 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_622278 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_622278 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_622278
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_622278
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_622278
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.msl
index 97d5bed..ce48978 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6273b1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6273b1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_depth_multisampled_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6273b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6273b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6273b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.msl
index 2f3ff896..ed92598 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_62d125 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_62d125 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8snorm, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_62d125
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_62d125
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_62d125
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.msl
index 432a7b9..ad3258d 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_62d1de = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_62d1de = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_1d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_62d1de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_62d1de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_62d1de
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.msl
index 8b8dc98..dda2571 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_639962 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_639962 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_multisampled_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_639962
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_639962
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_639962
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.msl
index dd4adcd..04aba10 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_63be18 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_63be18 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_63be18
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_63be18
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_63be18
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.msl
index 4380853..07b5c2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_64c372 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_64c372 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_64c372
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_64c372
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_64c372
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.msl
index c5b9584..e069fae 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_656d76 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_656d76 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_656d76
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_656d76
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_656d76
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.msl
index 230f1ec..38d79fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_65a4d0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_65a4d0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_65a4d0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_65a4d0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_65a4d0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.msl
index 4bb0abf..0524b7b 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_666010 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_666010 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_666010
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_666010
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_666010
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.msl
index 06d70bb..505ab3b 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6678b6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6678b6 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba16sint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_6678b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_6678b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_6678b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.msl
index 32e6a6c..09fb9fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_66be47 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_66be47 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_66be47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_66be47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_66be47
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.msl
index 778b7f0..756e595 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_67d826 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_67d826 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_67d826
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_67d826
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_67d826
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.msl
index 39df1fd..523719c 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_67edca = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_67edca = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba32uint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_67edca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_67edca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_67edca
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.msl
index e0b90d1..8276858 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_68d273 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_68d273 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba16sint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_68d273
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_68d273
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_68d273
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.msl
index 5764735..c0e775a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6925bc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6925bc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_depth_multisampled_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6925bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6925bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6925bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.msl
index ed89f68c6..65eb84e 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_69fee5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_69fee5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_69fee5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_69fee5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_69fee5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.msl
index 1f572e1..48854d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6a6871 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6a6871 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba32float, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_6a6871
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_6a6871
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_6a6871
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.msl
index d37ae09..66a9d20 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6b77d4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6b77d4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_1d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6b77d4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6b77d4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6b77d4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.msl
index d32e0f4..27d97c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6b8ba6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6b8ba6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6b8ba6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6b8ba6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6b8ba6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.msl
index 9a912b9..5e431d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6ba9ab = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6ba9ab = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6ba9ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6ba9ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6ba9ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.msl
index 837ee79..f0542fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6bf3e2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6bf3e2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6bf3e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6bf3e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6bf3e2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.msl
index 1e73c75..5ead07e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6bf4b7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6bf4b7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_3d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6bf4b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6bf4b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6bf4b7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.msl
index 5e10c2b..25444b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6d1fb4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6d1fb4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6d1fb4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6d1fb4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6d1fb4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.msl
index bbcde81..49cf4c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6d376a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6d376a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_1d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6d376a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6d376a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6d376a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.msl
index cc9c729..8ebb6f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6d7bb5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6d7bb5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6d7bb5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6d7bb5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6d7bb5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.msl
index c15583e..2110de9 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6e903f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6e903f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8sint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_6e903f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_6e903f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_6e903f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.msl
new file mode 100644
index 0000000..226165f
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_6f0370 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %5:texture_storage_3d<r8unorm, read> = load %arg_0
+    %6:vec3<u32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_6f0370
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_6f0370
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_6f0370
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.msl
index 82293fa..6307856 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6f0ea8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6f0ea8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_6f0ea8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_6f0ea8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_6f0ea8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.msl
index 8c5e752..873d5a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6f1750 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6f1750 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6f1750
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6f1750
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6f1750
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.msl
index b43d644..db63453 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_6f8927 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_6f8927 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_6f8927
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_6f8927
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_6f8927
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.msl
index 4adac1a..eaac8b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_714471 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_714471 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_714471
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_714471
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_714471
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.msl
index 4bcf00d..f861597 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_72bb3c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_72bb3c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_72bb3c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_72bb3c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_72bb3c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ada8331
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_72c9c3 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, u32, read_write> = var, 1u
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<i32> = load %arg_1
+    %8:u32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_72c9c3
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_72c9c3
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_72c9c3
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.msl
index 5274d70..726dab2 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_742f1b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_742f1b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba16float, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_742f1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_742f1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_742f1b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.msl
index 0c1ebec..f05d19c 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_749704 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_749704 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<r32uint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_749704
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_749704
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_749704
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.msl
index c6abca8..d6ba41d 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_74a387 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_74a387 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8sint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_74a387
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_74a387
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_74a387
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.msl
index ee9aca0..1cccab3 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_773c46 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_773c46 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rg32uint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_773c46
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_773c46
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_773c46
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.msl
index b5e8c94..d969e01 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_789045 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_789045 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_789045
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_789045
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_789045
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.msl
index 699bc00..a22a214 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_79e697 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_79e697 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_79e697
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_79e697
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_79e697
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.msl
index 70ad554..c447fb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7ab4df = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7ab4df = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_7ab4df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_7ab4df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_7ab4df
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.msl
index f49e891..84eae31 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7b63e0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7b63e0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_7b63e0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_7b63e0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_7b63e0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.msl
index c933c65..1f30506 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7bee94 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7bee94 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_multisampled_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_7bee94
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_7bee94
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_7bee94
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.msl
index a81a524..3f6532c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7c90e5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7c90e5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_7c90e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_7c90e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_7c90e5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.msl
index 260a330..9e66eec 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7dab57 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7dab57 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_7dab57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_7dab57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_7dab57
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b08d6d9
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_7dd3d5 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, i32, read_write> = var, 1i
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<i32> = load %arg_1
+    %8:i32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_7dd3d5
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_7dd3d5
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_7dd3d5
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.msl
index 7e28c85..9cd480d 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7e5cbc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7e5cbc = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_7e5cbc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_7e5cbc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_7e5cbc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.msl
index c05fa86..52b39ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_7fd822 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_7fd822 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_depth_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_7fd822
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_7fd822
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_7fd822
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.msl
index aac6702..e74885f 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_80dae1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_80dae1 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_80dae1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_80dae1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_80dae1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.msl
index 213d612..1f19de3 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_81c381 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_81c381 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_1d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_81c381
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_81c381
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_81c381
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.msl
index 3c6da0f..1e37af2 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_83162f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_83162f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rg32float, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_83162f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_83162f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_83162f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.msl
index 8db86e0..ceaa9b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_83cea4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_83cea4 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba16uint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_83cea4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_83cea4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_83cea4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.msl
index 47bdb06..fde7e44 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_83d6e3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_83d6e3 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<r32uint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_83d6e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_83d6e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_83d6e3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.msl
index f2e6346..72691f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_848d85 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_848d85 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_848d85
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_848d85
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_848d85
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.msl
index dc4cb31..f65d0bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_84a438 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_84a438 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8uint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_84a438
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_84a438
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_84a438
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.msl
index defa345..8d22db2 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_84c728 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_84c728 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba32float, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_84c728
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_84c728
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_84c728
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.msl
index fc9239f..8ca984c 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_84dee1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_84dee1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_84dee1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_84dee1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_84dee1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.msl
index 3fb1962..ee3e1c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8527b1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8527b1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_8527b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_8527b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_8527b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.msl
index 4b1a1dc..1bda51e 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_862833 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_862833 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_862833
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_862833
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_862833
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.msl
index 4db1e22..4006d28 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_878e24 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_878e24 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_878e24
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_878e24
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_878e24
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.msl
index e0e6dad..f6af7c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_87be85 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_87be85 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_87be85
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_87be85
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_87be85
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.msl
index fb877ad..1c855b1 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_87f0a6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_87f0a6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_87f0a6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_87f0a6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_87f0a6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.msl
index f122edd..cf18074 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_881349 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_881349 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_881349
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_881349
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_881349
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.msl
index e7bc195..4af7e77 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_89620b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_89620b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_89620b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_89620b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_89620b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.msl
index a9a6b93..4cfdc84 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_897cf3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_897cf3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_897cf3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_897cf3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_897cf3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.msl
index c7c73e1..4613819 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8a291b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8a291b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_8a291b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_8a291b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_8a291b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.msl
index 1bccc49..3ca9e7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8a9988 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8a9988 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rg32sint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8a9988
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8a9988
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8a9988
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.msl
index 11b3b55..26574a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.ir.msl
@@ -1,45 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureLoad_8acf41() {
+  var arg_1 = vec2<i32>(1i);
+  var res : vec4<f32> = textureLoad(arg_0, arg_1);
+  prevent_dce = res;
 }
 
-%textureLoad_8acf41 = func():void -> %b2 {
-  %b2 = block {
-    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
-    %5:texture_external = load %arg_0
-    %6:vec2<i32> = load %arg_1
-    %7:vec4<f32> = textureLoad %5, %6
-    %res:ptr<function, vec4<f32>, read_write> = var, %7
-    %9:vec4<f32> = load %res
-    store %prevent_dce, %9
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %11:void = call %textureLoad_8acf41
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %13:void = call %textureLoad_8acf41
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %15:void = call %textureLoad_8acf41
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureLoad_8acf41();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureLoad_8acf41();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureLoad_8acf41();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.msl
index e5c54ff..00b512d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8b62fb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8b62fb = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8b62fb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8b62fb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8b62fb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.msl
index 0aba4f3..98214c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8bf8c2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8bf8c2 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<r32float, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8bf8c2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8bf8c2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8bf8c2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.msl
index 03cdb17..fb5ce82 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8c6176 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8c6176 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8c6176
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8c6176
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8c6176
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.msl
index 9ec22fe..7bcf6ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8ccbe3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8ccbe3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_depth_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_8ccbe3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_8ccbe3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_8ccbe3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.msl
index d562443..7c0ae6a 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8d64c3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8d64c3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rg32uint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8d64c3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8d64c3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8d64c3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.msl
index 8dbcbf7..25f3b07 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8db0ce = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8db0ce = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_8db0ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_8db0ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_8db0ce
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.msl
index 2779c9e..e693dc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8e5032 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8e5032 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_8e5032
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_8e5032
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_8e5032
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.msl
index 74288d9..8b07739 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8e68c9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8e68c9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8e68c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8e68c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8e68c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.msl
index 089076d..e6cd140 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8fc29b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8fc29b = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8fc29b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8fc29b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8fc29b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.msl
index fe47948..de89b7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_8ff033 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_8ff033 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8snorm, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_8ff033
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_8ff033
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_8ff033
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.msl
index fc5aacb..cd617e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_91ede5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_91ede5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rg32float, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_91ede5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_91ede5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_91ede5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.msl
index 8a6e3c9..1f0910d 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9242e7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9242e7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_9242e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_9242e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_9242e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.msl
new file mode 100644
index 0000000..400f5a3
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_92dd61 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %5:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_92dd61
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_92dd61
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_92dd61
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.msl
index 157a746..e605ac2 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_92eb1f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_92eb1f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_3d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_92eb1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_92eb1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_92eb1f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.msl
index a466be7..8eff80d 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_936952 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_936952 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_936952
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_936952
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_936952
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.msl
index b85b678..16f79c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_93f23e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_93f23e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<r32uint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_93f23e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_93f23e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_93f23e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.msl
new file mode 100644
index 0000000..eb75db0
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_947107 = func():void {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %5:texture_storage_1d<r8unorm, read> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_947107
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_947107
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_947107
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.msl
index 2903d7f..633abfc 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_96efd5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_96efd5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_96efd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_96efd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_96efd5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.msl
index 1ada896..fea9ec7 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_970308 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_970308 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_970308
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_970308
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_970308
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.msl
index 3569aac..929fd7b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9885b0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9885b0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_9885b0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_9885b0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_9885b0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.msl
new file mode 100644
index 0000000..da7ff57
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_99d8fa = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %5:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %6:vec3<i32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_99d8fa
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_99d8fa
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_99d8fa
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.msl
index a9449ec..ae7761f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9a7c90 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9a7c90 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8uint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_9a7c90
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_9a7c90
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_9a7c90
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.msl
index e769bdb..0573637 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9a8c1e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9a8c1e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9a8c1e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9a8c1e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9a8c1e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.msl
index 1253ab2..754b55b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9aa733 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9aa733 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9aa733
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9aa733
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9aa733
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.msl
index c069fe6..3b4aef7 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9b2667 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9b2667 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_9b2667
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_9b2667
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_9b2667
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.msl
index 4850cfd..c2c2c48 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9b5343 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9b5343 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9b5343
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9b5343
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9b5343
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.msl
index 584c474..f8f3967 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9c2376 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9c2376 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9c2376
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9c2376
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9c2376
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.msl
index a4f3703..29782a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9c2a14 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9c2a14 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rg32float, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_9c2a14
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_9c2a14
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_9c2a14
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.msl
index 136c090..e4f14a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9cf7df = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9cf7df = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9cf7df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9cf7df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9cf7df
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.msl
index 312df02..2b42333 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9d70e9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9d70e9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_9d70e9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_9d70e9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_9d70e9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.msl
index 13cc552..287934c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9de6f5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9de6f5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9de6f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9de6f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9de6f5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.msl
index 49c5be0..f2ff8a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9ed19e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9ed19e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_depth_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9ed19e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9ed19e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9ed19e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.msl
index 4ce4933..2466663 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9fa9fd = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9fa9fd = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba32uint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_9fa9fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_9fa9fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_9fa9fd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.msl
index e30a16c..8458741 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9fbfd9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9fbfd9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_9fbfd9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_9fbfd9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_9fbfd9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.msl
index 94859ff..9847543 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_9fd7be = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_9fd7be = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_9fd7be
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_9fd7be
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_9fd7be
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.msl
index 1989c6d..eb3b0d5 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a03af1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a03af1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a03af1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a03af1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a03af1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.msl
index 9679763..260dc40 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a24be1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a24be1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_a24be1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_a24be1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_a24be1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.msl
index e6bd334..c001e1e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a2b3f4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a2b3f4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a2b3f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a2b3f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a2b3f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.msl
index db54efe..753ef45 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a3733f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a3733f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba16uint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a3733f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a3733f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a3733f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.msl
index e4bd225..ff4e250 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a3f122 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a3f122 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a3f122
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a3f122
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a3f122
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.msl
index b880de0..195d6a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a548a8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a548a8 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8uint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a548a8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a548a8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a548a8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.msl
index bea3a67..f21fdf5 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a54e11 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a54e11 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a54e11
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a54e11
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a54e11
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.msl
index babf865..b204085 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a583c9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a583c9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_multisampled_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a583c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a583c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a583c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.msl
index 390e7cc..67956bf 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a5c4e2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a5c4e2 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a5c4e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a5c4e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a5c4e2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.msl
index 1588146..8087106 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a5e0a5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a5e0a5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<r32float, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a5e0a5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a5e0a5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a5e0a5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.msl
index 9281d39..fa37dbd 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a64b1d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a64b1d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a64b1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a64b1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a64b1d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.msl
index d42282e..52221b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a6a85a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a6a85a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8unorm, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a6a85a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a6a85a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a6a85a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.msl
index a0e79fe..d3777d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a6b61d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a6b61d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a6b61d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a6b61d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a6b61d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.msl
index f58055b..10a9447 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7444c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7444c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a7444c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a7444c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a7444c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.msl
index b0127b2..fd6522a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7a3c3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7a3c3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba16sint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a7a3c3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a7a3c3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a7a3c3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.msl
index 0c2a284..6b85d93 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7bcb4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7bcb4 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a7bcb4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a7bcb4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a7bcb4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.msl
index 1ed08a3..01c1c2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a7c171 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a7c171 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a7c171
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a7c171
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a7c171
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.msl
index 96fc788..492a6d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a8549b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a8549b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba32float, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_a8549b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_a8549b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_a8549b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.msl
index 6ce27a3..4262762 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a92b18 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a92b18 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a92b18
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a92b18
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a92b18
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.msl
index 3138f39..25ac913 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_a9a9f5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_a9a9f5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_3d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_a9a9f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_a9a9f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_a9a9f5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.msl
index aa1291c..bd211b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aa2579 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aa2579 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_aa2579
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_aa2579
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_aa2579
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.msl
index c4560ff..62ac9db 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aa6130 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aa6130 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rg32sint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_aa6130
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_aa6130
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_aa6130
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.msl
index 3447310..514d7c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aa8a0d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aa8a0d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba16uint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_aa8a0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_aa8a0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_aa8a0d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.msl
index 7b4bff4..0fb1fa5 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aae7f6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aae7f6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_aae7f6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_aae7f6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_aae7f6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.msl
index f8e3164..83b9e49 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aae9c3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aae9c3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_aae9c3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_aae9c3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_aae9c3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.msl
index 405b123..f491ce0 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ac64f7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ac64f7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_ac64f7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_ac64f7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_ac64f7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.msl
index f38c7a5..2e623a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_acf22f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_acf22f = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba16float, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_acf22f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_acf22f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_acf22f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.msl
index 3254d65..1fb1bac 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ad551e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ad551e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<r32uint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ad551e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ad551e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ad551e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.msl
index 0e91818..d7cf912 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aeae73 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aeae73 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_aeae73
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_aeae73
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_aeae73
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.msl
index 68ebe7e..3e5635e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_aebc09 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_aebc09 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba16uint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_aebc09
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_aebc09
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_aebc09
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.msl
index 59a632b..500c8c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_af0507 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_af0507 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_af0507
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_af0507
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_af0507
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.msl
index 2a09c66..55bbd47 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b1bf79 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b1bf79 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba32sint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b1bf79
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b1bf79
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b1bf79
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.msl
index 16fdfa3..29673be 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b1ca35 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b1ca35 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b1ca35
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b1ca35
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b1ca35
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.msl
index 7028ab8..5ded4ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b24d27 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b24d27 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8sint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b24d27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b24d27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b24d27
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.msl
index e4a426b..07190e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b25644 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b25644 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<r32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b25644
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b25644
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b25644
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.msl
index 7396c20..9f00df9 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b27c33 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b27c33 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<r32sint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b27c33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b27c33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b27c33
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.msl
index 64733fa..d6c5a15 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b29f71 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b29f71 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_b29f71
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_b29f71
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_b29f71
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.msl
index a278b90..2a63f15 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b4d6c4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b4d6c4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rg32float, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b4d6c4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b4d6c4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b4d6c4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.msl
index f7acf18..4c63ed9 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b58c6d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b58c6d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b58c6d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b58c6d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b58c6d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.msl
index e3eeedd..0fd499b 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b60a86 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b60a86 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba32uint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b60a86
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b60a86
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b60a86
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.msl
index 2d57a9d..2bbf773 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b60db7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b60db7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b60db7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b60db7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b60db7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.msl
index bcb1f3f..9c1e62f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b6ba5d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b6ba5d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_b6ba5d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_b6ba5d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_b6ba5d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.msl
index f2a38f1..d574d5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b6c458 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b6c458 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba32uint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b6c458
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b6c458
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b6c458
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.msl
index 8a91005..6bee101 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b73f6b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b73f6b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b73f6b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b73f6b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b73f6b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.msl
index 5a60d4f..4d5f8d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b75c8f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b75c8f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<r32sint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b75c8f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b75c8f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b75c8f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.msl
index 9c84d58..2a38e81 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b75d4a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b75d4a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_multisampled_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b75d4a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b75d4a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b75d4a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.msl
index 9f78a74..773975c 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b7f74f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b7f74f = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<bgra8unorm, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_b7f74f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_b7f74f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_b7f74f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.msl
index acc979c..8460602 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b80e7e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b80e7e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b80e7e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b80e7e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b80e7e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.msl
index d941dd5..ab28022 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_b94d15 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_b94d15 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_b94d15
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_b94d15
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_b94d15
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.msl
index f8c43a1..45263f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ba023a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ba023a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_ba023a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_ba023a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_ba023a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.msl
index 0b51e24..6343376 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ba74b2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ba74b2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_ba74b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_ba74b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_ba74b2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.msl
index 7aec5b3..6859935 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_babdf3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_babdf3 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_babdf3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_babdf3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_babdf3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.msl
index fe73bfe..54c5d35 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bba04a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bba04a = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rg32uint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_bba04a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_bba04a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_bba04a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.msl
index 0a49fb9..e42cc5f 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bbb762 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bbb762 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba32sint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_bbb762
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_bbb762
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_bbb762
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.msl
index fb1c320..f1ef492 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bc3201 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bc3201 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_1d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_bc3201
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_bc3201
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_bc3201
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.msl
new file mode 100644
index 0000000..23ed61d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_bc882d = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, i32, read_write> = var, 1i
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<u32> = load %arg_1
+    %8:i32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_bc882d
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_bc882d
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_bc882d
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.msl
index 13daa15..1aab06f 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bcbb3c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bcbb3c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_3d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_bcbb3c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_bcbb3c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_bcbb3c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.msl
index 4053e83..69af03a 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bd990a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bd990a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_bd990a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_bd990a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_bd990a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.msl
index 44b925c..eaabb36 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bdc67a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bdc67a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_bdc67a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_bdc67a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_bdc67a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.msl
index 6bcbe8a..25f57b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_bfd154 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_bfd154 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<r32uint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_bfd154
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_bfd154
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_bfd154
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.msl
index 4ddf1cd..54adc0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c02b74 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c02b74 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba16float, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c02b74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c02b74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c02b74
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.msl
index def6560..1df9d3b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c07013 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c07013 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<r32float, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c07013
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c07013
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c07013
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.msl
index 22267ad..e227263 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c16e00 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c16e00 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_c16e00
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_c16e00
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_c16e00
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.msl
index 997ce95..101bb89 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c21b33 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c21b33 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c21b33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c21b33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c21b33
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.msl
index 1f920e4..7740f66 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c2a480 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c2a480 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c2a480
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c2a480
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c2a480
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.msl
index c44cb52..b95ee4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c2d09a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c2d09a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c2d09a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c2d09a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c2d09a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.msl
index 706fd7f..31eafe6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c378ee = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c378ee = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_multisampled_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c378ee
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c378ee
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c378ee
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.msl
index b6d2251..ea46d64 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c40dcb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c40dcb = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c40dcb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c40dcb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c40dcb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.msl
index 088c69d..7634a64 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c456bc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c456bc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<r32float, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c456bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c456bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c456bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.msl
index 3add21c..20e4a6c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c5791b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c5791b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba16sint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c5791b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c5791b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c5791b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.msl
index 8a6e9b4..49fbf15 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c5c86d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c5c86d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c5c86d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c5c86d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c5c86d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.msl
index e5f1d3e..fad3f79 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c66b20 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c66b20 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<r32sint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c66b20
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c66b20
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c66b20
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.msl
index 8ecc3e4..b2ec05b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c7cbed = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c7cbed = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<r32float, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c7cbed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c7cbed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c7cbed
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.msl
index fac7b08..eabe65c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c7e313 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c7e313 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba32uint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c7e313
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c7e313
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c7e313
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.msl
index f6327e8..479441c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c80691 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c80691 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<r32sint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c80691
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c80691
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c80691
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.msl
index 572c189..6a6cf44 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c8ed19 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c8ed19 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c8ed19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c8ed19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c8ed19
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.msl
index 81ec0d1..9d4020f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c98bf4 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c98bf4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c98bf4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c98bf4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c98bf4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.msl
index dcc662b..aedda19 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c9b083 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c9b083 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_c9b083
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_c9b083
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_c9b083
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.msl
index 26def5c..5ca9499 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c9cc40 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c9cc40 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8sint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c9cc40
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c9cc40
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c9cc40
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.msl
index e682956..07f6707 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_c9f310 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_c9f310 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<r32sint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_c9f310
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_c9f310
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_c9f310
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.msl
index 5ea7fe5..559f6ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cac876 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cac876 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba32sint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_cac876
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_cac876
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_cac876
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.msl
index de55b70..113adbf 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cad5f2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cad5f2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_multisampled_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_cad5f2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_cad5f2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_cad5f2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.msl
index 58b69cb..cdb18f3 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cb57c2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cb57c2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_cb57c2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_cb57c2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_cb57c2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.msl
index 41b3a1a..5362734 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cdbcf6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cdbcf6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_cdbcf6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_cdbcf6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_cdbcf6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.msl
index 65711bf..1457bd5 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cdccd2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cdccd2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_cdccd2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_cdccd2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_cdccd2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.msl
index c05f8c7..d4c19e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cdd343 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cdd343 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_cdd343
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_cdd343
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_cdd343
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.msl
index 12debc0..75b807c 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cddf6b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cddf6b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_cddf6b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_cddf6b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_cddf6b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.msl
index 271891a..4fcff4c 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_cec477 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_cec477 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<r32sint, read_write> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_cec477
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_cec477
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_cec477
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.msl
new file mode 100644
index 0000000..bf7321d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_cece6c = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %5:texture_storage_3d<r8unorm, read> = load %arg_0
+    %6:vec3<i32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_cece6c
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_cece6c
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_cece6c
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.msl
index 585d862..48435c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d02afc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d02afc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba32sint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d02afc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d02afc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d02afc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.msl
index bc3c307..aea3df2 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d0e351 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d0e351 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_d0e351
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_d0e351
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_d0e351
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.msl
index 1aa4a8c..686e9fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d357bb = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d357bb = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<bgra8unorm, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d357bb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d357bb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d357bb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.msl
index 3591fe0..27fa1fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d37a08 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d37a08 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_d37a08
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_d37a08
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_d37a08
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.msl
index df4aa1c..d60134e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d3d8fc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d3d8fc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_d3d8fc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_d3d8fc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_d3d8fc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.msl
index 2b66488..506b6c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d41c72 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d41c72 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rg32sint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d41c72
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d41c72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d41c72
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.msl
index e722502..c28b1a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d4df19 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d4df19 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<r32uint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d4df19
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d4df19
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d4df19
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.msl
index df99495..808f810 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d5c48d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d5c48d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba32float, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d5c48d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d5c48d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d5c48d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.msl
index 2a1d180..c1d3360 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d72de9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d72de9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d72de9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d72de9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d72de9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.msl
index 33325ce..cd015fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d7996a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d7996a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba32sint, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d7996a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d7996a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d7996a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.msl
index 306d38a..78179ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d79c5c = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d79c5c = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba16uint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d79c5c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d79c5c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d79c5c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.msl
index 282ae15..f87db72 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d80ff3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d80ff3 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d80ff3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d80ff3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d80ff3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.msl
index c7980ab..27f3156 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d81c57 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d81c57 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rg32float, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d81c57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d81c57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d81c57
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.msl
index 5538821..fa8e6d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d85d61 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d85d61 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba32uint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d85d61
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d85d61
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d85d61
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.msl
index 2d4ca31..1d9e51f 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d8617f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d8617f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_d8617f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_d8617f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_d8617f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.msl
index d68fce5..485bfca 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d8be5a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d8be5a = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba16sint, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_d8be5a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_d8be5a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_d8be5a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.msl
index 2e644d2..962c4ae 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_d91f37 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_d91f37 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_d91f37
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_d91f37
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_d91f37
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.msl
index 6a2e0ea..6c4e9b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dab04f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dab04f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_dab04f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_dab04f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_dab04f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.msl
index b38d29a..fce81ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dbd554 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dbd554 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba32sint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_dbd554
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_dbd554
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_dbd554
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.msl
index eae7e46..9e694b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dd5859 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dd5859 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_dd5859
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_dd5859
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_dd5859
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.msl
index c55d7bc..7a702b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dd8776 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dd8776 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32float, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_dd8776
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_dd8776
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_dd8776
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.msl
index 8984247..6fd3ed8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ddeed3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ddeed3 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba32sint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ddeed3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ddeed3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ddeed3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.msl
index 57148d0..b51169f 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_de5a0e = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_de5a0e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_de5a0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_de5a0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_de5a0e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.msl
index 78b7bbe..f387280 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dee8e7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dee8e7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba8sint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_dee8e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_dee8e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_dee8e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.msl
index f133328..caa579a 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_defd9a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_defd9a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rg32float, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_defd9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_defd9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_defd9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.msl
index 328f9b3..03f3405 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_dfdf3b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_dfdf3b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_dfdf3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_dfdf3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_dfdf3b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.msl
index f2e6232..ef26697 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e1c3cf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e1c3cf = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba16float, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e1c3cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e1c3cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e1c3cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.msl
index 9b69191..5573478 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e2292f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e2292f = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<r32sint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e2292f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e2292f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e2292f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.msl
index d792efd..fa62d98 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e2b3a1 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e2b3a1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_e2b3a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_e2b3a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_e2b3a1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.msl
index 83ae5e4..9e4dd89 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e2d7da = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e2d7da = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_e2d7da
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_e2d7da
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_e2d7da
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.msl
index 88ecbb0..e700e9d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e33285 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e33285 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba16sint, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e33285
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e33285
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e33285
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.msl
index af8caf8..e2865b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e35f72 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e35f72 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_3d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_e35f72
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_e35f72
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_e35f72
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.msl
index c809f33..4bc276f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e3b08b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e3b08b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<r32float, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e3b08b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e3b08b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e3b08b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.msl
index ffbf55a..401481a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e3d2cc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e3d2cc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_multisampled_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_e3d2cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_e3d2cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_e3d2cc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8ae583b
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_e4051a = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %5:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %6:vec2<u32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_e4051a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_e4051a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_e4051a
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.msl
index 3e0c217..048eb9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e57e92 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e57e92 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_e57e92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_e57e92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_e57e92
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.msl
index f8c053e..a5ed438 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e59fdf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e59fdf = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rg32uint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e59fdf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e59fdf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e59fdf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.msl
index b1c5333..234d806 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e65916 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e65916 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rg32sint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e65916
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e65916
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e65916
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.msl
index d37d708..bfdda0a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e893d7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e893d7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba16float, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e893d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e893d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e893d7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.msl
index a1f0c02..a892000 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e92dd0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e92dd0 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8unorm, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_e92dd0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_e92dd0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_e92dd0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.msl
index cae4ac1..472db5b 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_e9eb65 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_e9eb65 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_e9eb65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_e9eb65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_e9eb65
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.msl
index da01092..c2670fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ea2abd = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ea2abd = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba32float, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ea2abd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ea2abd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ea2abd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.msl
index d7e02e6..e7347a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_eb573b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_eb573b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<r32sint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_eb573b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_eb573b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_eb573b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.msl
index 9705d67..cf516cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ebfb92 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ebfb92 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_ebfb92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_ebfb92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_ebfb92
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.msl
index 4a7221d..c849d86 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ecc823 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ecc823 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<rgba16uint, read> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ecc823
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ecc823
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ecc823
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.msl
index 2e58223..2385f1d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ed55a8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ed55a8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_ed55a8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_ed55a8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_ed55a8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.msl
index 0a3fc33..0957634 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ee33c5 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ee33c5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %5:texture_storage_3d<rgba16sint, read> = load %arg_0
     %6:vec3<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ee33c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ee33c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ee33c5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.msl
index 3dd69e5..c98de05 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_eecf7d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_eecf7d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rg32uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_eecf7d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_eecf7d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_eecf7d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.msl
index 1dc2e04..b706fca 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ef2ec3 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ef2ec3 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rg32sint, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ef2ec3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ef2ec3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ef2ec3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.msl
index a4e2e80..bfedc28 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ef5405 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ef5405 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rg32uint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_ef5405
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_ef5405
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_ef5405
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.msl
index 3322251..72c600f 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_efa787 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_efa787 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_efa787
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_efa787
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_efa787
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.msl
index e15bbed..c72eb33 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f0514a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f0514a = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f0514a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f0514a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f0514a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.msl
index f441c22..d13fdab 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f06b69 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f06b69 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<r32sint, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f06b69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f06b69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f06b69
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.msl
index da1eef3..ff4e4bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f0abad = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f0abad = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_multisampled_2d<f32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f0abad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f0abad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f0abad
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.msl
index 89ce434..ff63ef5 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f1c549 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f1c549 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<r32float, read_write> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f1c549
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f1c549
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f1c549
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.msl
index 2d7c04e..96a5ccb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f2a7ff = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f2a7ff = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8unorm, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f2a7ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f2a7ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f2a7ff
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.msl
new file mode 100644
index 0000000..1d01b14
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_f2bdd4 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, u32, read_write> = var, 1u
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<u32> = load %arg_1
+    %8:u32 = load %arg_2
+    %9:vec4<f32> = textureLoad %6, %7, %8
+    %res:ptr<function, vec4<f32>, read_write> = var, %9
+    %11:vec4<f32> = load %res
+    store %prevent_dce, %11
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %13:void = call %textureLoad_f2bdd4
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %15:void = call %textureLoad_f2bdd4
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %17:void = call %textureLoad_f2bdd4
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.msl
index 27dac46..07381d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f2c311 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f2c311 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f2c311
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f2c311
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f2c311
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.msl
index 5cb50ac..8493181 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f348d9 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f348d9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, i32, read_write> = var, 1i
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_f348d9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_f348d9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_f348d9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.msl
index ebc161f..87d6a3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f35ac7 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f35ac7 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba8sint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f35ac7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f35ac7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f35ac7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.msl
index b06414c..d44374f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f379e2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f379e2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f379e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f379e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f379e2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.msl
index 5cf32a9..bb5a4f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f56e6f = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f56e6f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba16uint, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f56e6f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f56e6f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f56e6f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.msl
new file mode 100644
index 0000000..1fcd15f
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+}
+
+%textureLoad_f5aee2 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %5:texture_storage_2d<r8unorm, read> = load %arg_0
+    %6:vec2<u32> = load %arg_1
+    %7:vec4<f32> = textureLoad %5, %6
+    %res:ptr<function, vec4<f32>, read_write> = var, %7
+    %9:vec4<f32> = load %res
+    store %prevent_dce, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %textureLoad_f5aee2
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %textureLoad_f5aee2
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %textureLoad_f5aee2
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.msl
index b8d6499..847d2f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f5fbc6 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f5fbc6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f5fbc6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f5fbc6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f5fbc6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.msl
index 0c244f4..c0379c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f74bd8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f74bd8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rg32float, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f74bd8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f74bd8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f74bd8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.msl
index 200d34a..95bb81d 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f7f3bc = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f7f3bc = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f7f3bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f7f3bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f7f3bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.msl
index 4dc6b46..538e6e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f7f936 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f7f936 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f7f936
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f7f936
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f7f936
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.msl
index f640849..cea8440 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f81792 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f81792 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<r32float, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f81792
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f81792
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f81792
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.msl
index e7a05fe..66f2493 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f82eb2 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f82eb2 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba32float, read_write> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f82eb2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f82eb2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f82eb2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.msl
index bd33ab0..78bff90 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f85291 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f85291 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_2d<i32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_f85291
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_f85291
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_f85291
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.msl
index b4e85aa..10129f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f8a2e8 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f8a2e8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<bgra8unorm, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f8a2e8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f8a2e8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f8a2e8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.msl
index a97446e..d847959 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f92c2d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f92c2d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %5:texture_storage_2d<r32float, read_write> = load %arg_0
     %6:vec2<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f92c2d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f92c2d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f92c2d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.msl
index e829079..4a754b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_f9eaaf = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_f9eaaf = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %5:texture_storage_1d<rgba16sint, read> = load %arg_0
     %6:u32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_f9eaaf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_f9eaaf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_f9eaaf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.msl
index be393c4..a9928a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fc47ff = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fc47ff = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8sint, read_write> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_fc47ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_fc47ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_fc47ff
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.msl
index e93f537..c9c8500 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fc6d36 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fc6d36 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba16sint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_fc6d36
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_fc6d36
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_fc6d36
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.msl
index c1d46d6..3a75af4 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fcd23d = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fcd23d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_depth_multisampled_2d = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_fcd23d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_fcd23d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_fcd23d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.msl
index a466c1a5..07459d5 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fd6442 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fd6442 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %5:texture_storage_2d<rgba8uint, read> = load %arg_0
     %6:vec2<u32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_fd6442
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_fd6442
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_fd6442
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.msl
index f48dadb..c3aaff8 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fd9606 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fd9606 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_fd9606
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_fd9606
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_fd9606
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.msl
index 8713d91..5050a7c 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fdebd0 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fdebd0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_storage_2d_array<rgba8uint, read> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_fdebd0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_fdebd0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_fdebd0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.msl
index 8bbb780..498b3f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fe0565 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fe0565 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %6:texture_multisampled_2d<u32> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_fe0565
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_fe0565
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_fe0565
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.msl
index d78e914..11b2e44 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fe222a = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fe222a = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %5:texture_storage_1d<rgba8snorm, read> = load %arg_0
     %6:i32 = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_fe222a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_fe222a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_fe222a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.msl
index ce90a34..e9a98c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_fe2c1b = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_fe2c1b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %6:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
@@ -19,20 +19,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %13:void = call %textureLoad_fe2c1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %15:void = call %textureLoad_fe2c1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %17:void = call %textureLoad_fe2c1b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.msl
index d8a15c2..ba0c9ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_feab99 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_feab99 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %5:texture_storage_3d<rgba16float, read> = load %arg_0
     %6:vec3<i32> = load %arg_1
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %11:void = call %textureLoad_feab99
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %13:void = call %textureLoad_feab99
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %15:void = call %textureLoad_feab99
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.msl
index 6d80b41..33a7cfe 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureLoad_ff1119 = func():void -> %b2 {
-  %b2 = block {
+%textureLoad_ff1119 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, u32, read_write> = var, 1u
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureLoad_ff1119
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureLoad_ff1119
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureLoad_ff1119
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.msl
index 0fb4467..9281d71 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_014a3b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_014a3b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_014a3b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_014a3b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_014a3b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.msl
index d8c57e4..9550c71 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_071ebc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_071ebc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_071ebc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_071ebc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_071ebc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.msl
index c3e4aa9..68eca19 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_0856ae = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_0856ae = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_0856ae
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_0856ae
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_0856ae
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.msl
index 5f6ac22..3523e3c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_0ec222 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_0ec222 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_0ec222
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_0ec222
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_0ec222
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.msl
index 3d4483f..87cf3db 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_0fe8dc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_0fe8dc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_0fe8dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_0fe8dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_0fe8dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.msl
index 602e6ce..33363af 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_17ccad = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_17ccad = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_17ccad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_17ccad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_17ccad
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.msl
index 14b4671..c6bbf24 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_1f858a = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_1f858a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_1f858a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_1f858a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_1f858a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.msl
index 0d09b42..94a6240 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_24d572 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_24d572 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_24d572
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_24d572
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_24d572
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.msl
index 4bc2217..ff5efc6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_26c9f9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_26c9f9 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_26c9f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_26c9f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_26c9f9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.msl
index 504cd1e..6ec8cad 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_2a48dc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_2a48dc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_2a48dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_2a48dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_2a48dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.msl
index f6417fc..7694de3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_2d95ea = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_2d95ea = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_2d95ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_2d95ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_2d95ea
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.msl
index 353c19b..7dbf2d3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_327d70 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_327d70 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_327d70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_327d70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_327d70
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.msl
index 609eb8e..af43135 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_32ca10 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_32ca10 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_32ca10
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_32ca10
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_32ca10
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.msl
index 0330bd1..cc22260 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3465ec = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3465ec = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3465ec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3465ec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3465ec
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.msl
index c2e34b0..b0a4cfa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_34cefa = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_34cefa = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_34cefa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_34cefa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_34cefa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.msl
index 86480f4..1a0d751 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3580ab = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3580ab = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3580ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3580ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3580ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.msl
index 260b649..a5c5c2e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_379cc5 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_379cc5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_379cc5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_379cc5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_379cc5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.msl
index 8479b30..463d2f6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_37bc8a = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_37bc8a = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_37bc8a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_37bc8a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_37bc8a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.msl
index e3d0f43..71f562e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_380a60 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_380a60 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_380a60
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_380a60
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_380a60
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.msl
index e88ff34..8949315f0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3ad143 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3ad143 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3ad143
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3ad143
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3ad143
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.msl
index 230a024..ebc5e74 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_3eff89 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_3eff89 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_3eff89
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_3eff89
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_3eff89
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.msl
index 7f7f953..50ccfdd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_485774 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_485774 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_485774
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_485774
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_485774
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.msl
index daf683a..398ad9e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_48ef47 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_48ef47 = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_48ef47
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_48ef47
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_48ef47
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.msl
index 9b34cd3..a34320e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_4adaad = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_4adaad = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_4adaad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_4adaad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_4adaad
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.msl
index 9295af0..f0f4aef 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_4c4333 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_4c4333 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_4c4333
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_4c4333
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_4c4333
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.msl
index ec06518..93cd92d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_520086 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_520086 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_520086
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_520086
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_520086
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.msl
index b23e61c..628dfa8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_52dfc5 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_52dfc5 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_52dfc5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_52dfc5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_52dfc5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.msl
index 403b305..4172f70 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_54a654 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_54a654 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_54a654
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_54a654
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_54a654
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.msl
index ec1e35a..67d85a3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_555f67 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_555f67 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_555f67
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_555f67
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_555f67
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.msl
new file mode 100644
index 0000000..31c332d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureNumLayers_59cc27 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read> = load %arg_0
+    %5:u32 = textureNumLayers %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureNumLayers_59cc27
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureNumLayers_59cc27
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureNumLayers_59cc27
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.msl
index 21c8365..ae46337 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_59eb57 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_59eb57 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_59eb57
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_59eb57
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_59eb57
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.msl
index c3958c3..f6ecd8e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_5ee8f2 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_5ee8f2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_5ee8f2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_5ee8f2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_5ee8f2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.msl
index 7ea0e55..2cfeb83 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_5f20d1 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_5f20d1 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_5f20d1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_5f20d1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_5f20d1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.msl
index 0ba22a3..f132ef9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_61bd23 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_61bd23 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_61bd23
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_61bd23
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_61bd23
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.msl
index ab2e549..ad88e15 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_622aa2 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_622aa2 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_622aa2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_622aa2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_622aa2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.msl
index f93dc1e..faa0303 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_6b4321 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_6b4321 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_6b4321
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_6b4321
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_6b4321
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.msl
index dc1f22c..cfe2770 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_6da0eb = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_6da0eb = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_6da0eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_6da0eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_6da0eb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.msl
index c3b006e..dd12182 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_77be7b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_77be7b = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_77be7b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_77be7b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_77be7b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.msl
index ac4abcf..e36e51d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_7895f4 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_7895f4 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_7895f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_7895f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_7895f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.msl
index 14e579f..f6948ca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_7f28cf = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_7f28cf = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_7f28cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_7f28cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_7f28cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.msl
new file mode 100644
index 0000000..1d18a30
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureNumLayers_8356f7 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, write> = load %arg_0
+    %5:u32 = textureNumLayers %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureNumLayers_8356f7
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureNumLayers_8356f7
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureNumLayers_8356f7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.msl
index dece494..4b13efe 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_878dea = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_878dea = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_878dea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_878dea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_878dea
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.msl
index b9c1c72..ad9cf95 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_87faad = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_87faad = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_87faad
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_87faad
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_87faad
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.msl
index dfb1202..0ff3e5a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8ac32a = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8ac32a = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8ac32a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8ac32a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8ac32a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.msl
index 6ef41e6..a19cbca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8bd987 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8bd987 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8bd987
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8bd987
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8bd987
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.msl
index f1592e9..50af50b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8dbf23 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8dbf23 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8unorm, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8dbf23
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8dbf23
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8dbf23
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.msl
index 7585c82..24fbd07 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_8e1bd0 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_8e1bd0 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<r32sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_8e1bd0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_8e1bd0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_8e1bd0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.msl
index fd3222a..082e72b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_90b8cc = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_90b8cc = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_90b8cc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_90b8cc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_90b8cc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.msl
index 6cdb31d..9534498 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_9695c6 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_9695c6 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_9695c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_9695c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_9695c6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.msl
index 1bde369..d4ebae1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_98a9cf = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_98a9cf = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_98a9cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_98a9cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_98a9cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.msl
index d1146ee..020f2c2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_9c60e3 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_9c60e3 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_9c60e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_9c60e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_9c60e3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.msl
index dc774f4..7d7ae36 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_a54655 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_a54655 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<bgra8unorm, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_a54655
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_a54655
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_a54655
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.msl
index a484d5a..596843d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_a9d3f5 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_a9d3f5 = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_a9d3f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_a9d3f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_a9d3f5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.msl
new file mode 100644
index 0000000..971a269
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+  %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
+}
+
+%textureNumLayers_aac630 = func():void {
+  $B2: {
+    %4:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %5:u32 = textureNumLayers %4
+    %res:ptr<function, u32, read_write> = var, %5
+    %7:u32 = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %textureNumLayers_aac630
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %textureNumLayers_aac630
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %textureNumLayers_aac630
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.msl
index 62bb7e5..60413c7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_bf2f76 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_bf2f76 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rg32sint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_bf2f76
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_bf2f76
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_bf2f76
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.msl
index 67e92b9..e34b6e8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_c1eca9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_c1eca9 = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_c1eca9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_c1eca9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_c1eca9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.msl
index 8ccfa7b..541a1c1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_d3e21f = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_d3e21f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8uint, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_d3e21f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_d3e21f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_d3e21f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.msl
index 89fc94d..2658710 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_d3f655 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_d3f655 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32sint, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_d3f655
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_d3f655
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_d3f655
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.msl
index 4aeac8b..411e681 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_d75a0b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_d75a0b = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba32float, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_d75a0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_d75a0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_d75a0b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.msl
index 5d387dd..e4517d4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_de8087 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_de8087 = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16sint, write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_de8087
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_de8087
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_de8087
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.msl
index 72222a7..89f70d4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_e47aac = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_e47aac = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba8snorm, read_write> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_e47aac
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_e47aac
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_e47aac
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.msl
index c8ba250..55270ec 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLayers_f1783f = func():void -> %b2 {
-  %b2 = block {
+%textureNumLayers_f1783f = func():void {
+  $B2: {
     %4:texture_storage_2d_array<rgba16float, read> = load %arg_0
     %5:u32 = textureNumLayers %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLayers_f1783f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLayers_f1783f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLayers_f1783f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.msl
index adbe171..1d6870d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_181090 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_181090 = func():void {
+  $B2: {
     %4:texture_2d_array<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_181090
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_181090
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_181090
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.msl
index 130bc45..add0e08 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_1a3fa9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_1a3fa9 = func():void {
+  $B2: {
     %4:texture_2d<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_1a3fa9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_1a3fa9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_1a3fa9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.msl
index 206b34d..0e2d138 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_1a7fc3 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_1a7fc3 = func():void {
+  $B2: {
     %4:texture_1d<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_1a7fc3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_1a7fc3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_1a7fc3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.msl
index c8278c6..b5543c7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_2267d8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_2267d8 = func():void {
+  $B2: {
     %4:texture_cube<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_2267d8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_2267d8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_2267d8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.msl
index 49a6b03..df3f5f9 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_24b2c6 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_24b2c6 = func():void {
+  $B2: {
     %4:texture_2d<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_24b2c6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_24b2c6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_24b2c6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.msl
index b5cdd15..c2a98e4 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_2bea6c = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_2bea6c = func():void {
+  $B2: {
     %4:texture_depth_cube_array = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_2bea6c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_2bea6c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_2bea6c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.msl
index 53c278b..9562080 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_2df1ab = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_2df1ab = func():void {
+  $B2: {
     %4:texture_cube<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_2df1ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_2df1ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_2df1ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.msl
index e793891..7cf81ff 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_46dbd8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_46dbd8 = func():void {
+  $B2: {
     %4:texture_2d_array<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_46dbd8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_46dbd8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_46dbd8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.msl
index 9803878..51be4e4 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_60d9b8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_60d9b8 = func():void {
+  $B2: {
     %4:texture_3d<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_60d9b8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_60d9b8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_60d9b8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.msl
index 8ce3591..cdb68aa 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_903920 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_903920 = func():void {
+  $B2: {
     %4:texture_cube_array<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_903920
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_903920
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_903920
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.msl
index 849c832..56868d8 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_9a1a65 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_9a1a65 = func():void {
+  $B2: {
     %4:texture_3d<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_9a1a65
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_9a1a65
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_9a1a65
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.msl
index d86d8b3..358b38a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_adc783 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_adc783 = func():void {
+  $B2: {
     %4:texture_2d_array<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_adc783
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_adc783
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_adc783
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.msl
index 49ed517..352fc7f 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_ae911c = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_ae911c = func():void {
+  $B2: {
     %4:texture_depth_2d_array = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_ae911c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_ae911c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_ae911c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.msl
index 45c4581..a381977 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_c386c8 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_c386c8 = func():void {
+  $B2: {
     %4:texture_cube<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_c386c8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_c386c8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_c386c8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.msl
index 627c314..ab8b06c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_c399f9 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_c399f9 = func():void {
+  $B2: {
     %4:texture_1d<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_c399f9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_c399f9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_c399f9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.msl
index 2c5037c..ac6bf19 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_c8c25c = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_c8c25c = func():void {
+  $B2: {
     %4:texture_depth_cube = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_c8c25c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_c8c25c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_c8c25c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.msl
index 5cb28c7..a3f9b35 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_d63126 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_d63126 = func():void {
+  $B2: {
     %4:texture_depth_2d = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_d63126
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_d63126
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_d63126
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.msl
index 0c5b086..73607e8 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_d8f73b = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_d8f73b = func():void {
+  $B2: {
     %4:texture_cube_array<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_d8f73b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_d8f73b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_d8f73b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.msl
index dacd1be..52292ff 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_ef7944 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_ef7944 = func():void {
+  $B2: {
     %4:texture_3d<f32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_ef7944
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_ef7944
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_ef7944
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.msl
index ed91d52..0d6eac8 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_efd6df = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_efd6df = func():void {
+  $B2: {
     %4:texture_2d<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_efd6df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_efd6df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_efd6df
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.msl
index 5a8b34c..d26c684 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_f742c0 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_f742c0 = func():void {
+  $B2: {
     %4:texture_1d<i32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_f742c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_f742c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_f742c0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.msl
index 699cb9a..7ee8eef 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumLevels_fe2171 = func():void -> %b2 {
-  %b2 = block {
+%textureNumLevels_fe2171 = func():void {
+  $B2: {
     %4:texture_cube_array<u32> = load %arg_0
     %5:u32 = textureNumLevels %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumLevels_fe2171
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumLevels_fe2171
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumLevels_fe2171
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.msl
index 861bc63..2747d7a 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<u32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_50f399 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_50f399 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<u32> = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_50f399
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_50f399
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_50f399
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.msl
index 5b7e65d..78c82ff 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<i32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_c1a777 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_c1a777 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<i32> = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_c1a777
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_c1a777
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_c1a777
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.msl
index d3e0ac4..033d432 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_multisampled_2d<f32>, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_dbb799 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_dbb799 = func():void {
+  $B2: {
     %4:texture_multisampled_2d<f32> = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_dbb799
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_dbb799
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_dbb799
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.msl
index 37385e4..c03f5a1 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_multisampled_2d, read> = var @binding_point(1, 0)
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%textureNumSamples_ecd321 = func():void -> %b2 {
-  %b2 = block {
+%textureNumSamples_ecd321 = func():void {
+  $B2: {
     %4:texture_depth_multisampled_2d = load %arg_0
     %5:u32 = textureNumSamples %4
     %res:ptr<function, u32, read_write> = var, %5
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %textureNumSamples_ecd321
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %textureNumSamples_ecd321
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %textureNumSamples_ecd321
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.msl
index b1b6608..3c40846 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_0dff6c = func():void -> %b2 {
-  %b2 = block {
+%textureSample_0dff6c = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_depth_2d = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_0dff6c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.msl
index adb049b..5f62935 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_17e988 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_17e988 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_17e988
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.msl
index 0f03297..b0393af 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_193203 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_193203 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_193203
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.msl
index 6f9ed7a..ddca6b6 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_1a4e1b = func():void -> %b2 {
-  %b2 = block {
+%textureSample_1a4e1b = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_2d_array = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_1a4e1b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.msl
index ba3da68..4ad8af4 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_2149ec = func():void -> %b2 {
-  %b2 = block {
+%textureSample_2149ec = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_3d<f32> = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_2149ec
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.msl
index 8f1f008..a113cd4 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_38bbb9 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_38bbb9 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_depth_2d = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_38bbb9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.msl
index 4376c92..6e29909 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_3b50bd = func():void -> %b2 {
-  %b2 = block {
+%textureSample_3b50bd = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_3d<f32> = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_3b50bd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.msl
index e3689cb..17b17fa 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_4703d0 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_4703d0 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_2d_array = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_4703d0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.msl
index 07fb9a4..b021b59 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_4dd1bf = func():void -> %b2 {
-  %b2 = block {
+%textureSample_4dd1bf = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_cube_array<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_4dd1bf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.msl
index 6b36397..aa66ed2 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_51b514 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_51b514 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_51b514
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.msl
index 5b584b6..31b95cf 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_60bf45 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_60bf45 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_2d_array = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_60bf45
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.msl
index 79ad843..3adc780 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_6717ca = func():void -> %b2 {
-  %b2 = block {
+%textureSample_6717ca = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_2d_array<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_6717ca
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.msl
index ca26ab0..2d7a629 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_1d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_6e64fb = func():void -> %b2 {
-  %b2 = block {
+%textureSample_6e64fb = func():void {
+  $B2: {
     %arg_2:ptr<function, f32, read_write> = var, 1.0f
     %6:texture_1d<f32> = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_6e64fb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.msl
index 5a7a2f9..2ff2807 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_7e9ffd = func():void -> %b2 {
-  %b2 = block {
+%textureSample_7e9ffd = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_2d_array = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_7e9ffd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.msl
index 41aea3a..cba8a48 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_7fd8cb = func():void -> %b2 {
-  %b2 = block {
+%textureSample_7fd8cb = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_cube_array = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_7fd8cb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.msl
index dc58161..4515efb 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_85c4ba = func():void -> %b2 {
-  %b2 = block {
+%textureSample_85c4ba = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_85c4ba
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.msl
index 5e2a01a..6f235ed 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_bc7477 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_bc7477 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_cube_array<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_bc7477
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.msl
index 93d9f33..5e96887 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_c2f4e8 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_c2f4e8 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_cube_array = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_c2f4e8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.msl
index 9105ba9..465b0e7 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_d6b281 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_d6b281 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_2d_array<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSample_d6b281
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.msl
index d03c5f5..8c1cd90 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_e53267 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_e53267 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_cube<f32> = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_e53267
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.msl
index ab38178..0962884 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSample_ea7030 = func():void -> %b2 {
-  %b2 = block {
+%textureSample_ea7030 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %6:texture_depth_cube = load %arg_0
     %7:sampler = load %arg_1
@@ -19,8 +19,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %13:void = call %textureSample_ea7030
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl
index 25d5993..2cba1d7 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.ir.msl
@@ -1,47 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
-  %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
-  %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+@group(1) @binding(1) var arg_1 : sampler;
+
+fn textureSampleBaseClampToEdge_7c04e6() {
+  var arg_2 = vec2<f32>(1.0f);
+  var res : vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
+  prevent_dce = res;
 }
 
-%textureSampleBaseClampToEdge_7c04e6 = func():void -> %b2 {
-  %b2 = block {
-    %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
-    %6:texture_external = load %arg_0
-    %7:sampler = load %arg_1
-    %8:vec2<f32> = load %arg_2
-    %9:vec4<f32> = textureSampleBaseClampToEdge %6, %7, %8
-    %res:ptr<function, vec4<f32>, read_write> = var, %9
-    %11:vec4<f32> = load %res
-    store %prevent_dce, %11
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %textureSampleBaseClampToEdge_7c04e6
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %textureSampleBaseClampToEdge_7c04e6
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %textureSampleBaseClampToEdge_7c04e6
-    ret
-  }
+@group(2) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  textureSampleBaseClampToEdge_7c04e6();
+  return vec4<f32>();
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@fragment
+fn fragment_main() {
+  textureSampleBaseClampToEdge_7c04e6();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  textureSampleBaseClampToEdge_7c04e6();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl
index b788a4c..d3c8c2f 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.ir.msl
@@ -1,39 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBaseClampToEdge_9ca02c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBaseClampToEdge_9ca02c = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %6:texture_2d<f32> = load %arg_0
-    %7:sampler = load %arg_1
-    %8:vec2<f32> = load %arg_2
-    %9:vec4<f32> = textureSampleBaseClampToEdge %6, %7, %8
-    %res:ptr<function, vec4<f32>, read_write> = var, %9
-    %11:vec4<f32> = load %res
-    store %prevent_dce, %11
+    %7:texture_2d<f32> = let %6
+    %8:sampler = load %arg_1
+    %9:sampler = let %8
+    %10:vec2<f32> = load %arg_2
+    %11:vec2<f32> = let %10
+    %12:vec2<u32> = textureDimensions %7
+    %13:vec2<f32> = convert %12
+    %14:vec2<f32> = div vec2<f32>(0.5f), %13
+    %15:vec2<f32> = let %14
+    %16:vec2<f32> = sub vec2<f32>(1.0f), %15
+    %17:vec2<f32> = clamp %11, %15, %16
+    %18:vec4<f32> = textureSampleLevel %7, %9, %17, 0.0f
+    %res:ptr<function, vec4<f32>, read_write> = var, %18
+    %20:vec4<f32> = load %res
+    store %prevent_dce, %20
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %13:void = call %textureSampleBaseClampToEdge_9ca02c
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %22:void = call %textureSampleBaseClampToEdge_9ca02c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %15:void = call %textureSampleBaseClampToEdge_9ca02c
+%fragment_main = @fragment func():void {
+  $B4: {
+    %24:void = call %textureSampleBaseClampToEdge_9ca02c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %17:void = call %textureSampleBaseClampToEdge_9ca02c
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %26:void = call %textureSampleBaseClampToEdge_9ca02c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.msl
index 33b4d81..ba32ce5 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_1c707e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_1c707e = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleBias_1c707e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.msl
index a1dab08..fdba1d3 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_53b9f7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_53b9f7 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_cube<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleBias_53b9f7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.msl
index 247e86e..042c9aa 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_594824 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_594824 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_3d<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleBias_594824
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.msl
index dc8eb49..53bd2d1 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_6a9113 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_6a9113 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_2d<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleBias_6a9113
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.msl
index 4183d65..aebc2fb 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_80e579 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_80e579 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleBias_80e579
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.msl
index 8910a2b..de5f67f 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_87915c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_87915c = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleBias_87915c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.msl
index 14602ed..c6c78c6 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_9dbb51 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_9dbb51 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleBias_9dbb51
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.msl
index 3f31c5d..f4a00b4 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_a161cf = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_a161cf = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_2d<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleBias_a161cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.msl
index 6e1c4f6..6c59e32 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_c6953d = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_c6953d = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleBias_c6953d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.msl
index b71ef9c..36a611b 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_d3fa1b = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_d3fa1b = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_3d<f32> = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleBias_d3fa1b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.msl
index d1ae5b0..600eeb2 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleBias_eed7c4 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleBias_eed7c4 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleBias_eed7c4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.msl
index 08f3f89..6d43ab6 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_1912e5 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_1912e5 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleCompare_1912e5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.msl
index 710a2b2..54b7da4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_3a5923 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_3a5923 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_2d = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleCompare_3a5923
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.msl
index 43def4b..f613406 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_63fb83 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_63fb83 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_cube = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleCompare_63fb83
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.msl
index c787009..f429ece 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_7b5025 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_7b5025 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleCompare_7b5025
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.msl
index b39cb06..9e4f6a8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_90ae56 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_90ae56 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleCompare_90ae56
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl
index bb08d1f..00db39e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_a3ca7e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_a3ca7e = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleCompare_a3ca7e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.msl
index 7b538c7..19485be 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_af1051 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_af1051 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleCompare_af1051
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.msl
index 9b3f23c..a272cb7 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_dd431d = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_dd431d = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,8 +23,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %17:void = call %textureSampleCompare_dd431d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.msl
index 3c7f472..e7bf2cd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompare_dec064 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompare_dec064 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_2d = load %arg_0
@@ -21,8 +21,8 @@
     ret
   }
 }
-%fragment_main = @fragment func():void -> %b3 {
-  %b3 = block {
+%fragment_main = @fragment func():void {
+  $B3: {
     %15:void = call %textureSampleCompare_dec064
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl
index 4d57303..e858897 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_1116ed = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_1116ed = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleCompareLevel_1116ed
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleCompareLevel_1116ed
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleCompareLevel_1116ed
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl
index a0080ea..dca0fd3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_1568e3 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_1568e3 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_cube = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleCompareLevel_1568e3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleCompareLevel_1568e3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleCompareLevel_1568e3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl
index 7de52b6..50be548 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_2ad2b1 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_2ad2b1 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleCompareLevel_2ad2b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleCompareLevel_2ad2b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleCompareLevel_2ad2b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl
index f505af9..4a9df88 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_4cf3a2 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_4cf3a2 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleCompareLevel_4cf3a2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleCompareLevel_4cf3a2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleCompareLevel_4cf3a2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl
index 6b8d3a1..8e6f626 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_7dc3c0 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_7dc3c0 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleCompareLevel_7dc3c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleCompareLevel_7dc3c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleCompareLevel_7dc3c0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl
index 162b998..b4e1932 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_7f2b9a = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_7f2b9a = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleCompareLevel_7f2b9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleCompareLevel_7f2b9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleCompareLevel_7f2b9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl
index d3a766d..e8e8d35 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_958c87 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_958c87 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleCompareLevel_958c87
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleCompareLevel_958c87
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleCompareLevel_958c87
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl
index d6340df..7d63c65 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_b6e47c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_b6e47c = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleCompareLevel_b6e47c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleCompareLevel_b6e47c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleCompareLevel_b6e47c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl
index ede2e60..0eeb62e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler_comparison, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleCompareLevel_bcb3dd = func():void -> %b2 {
-  %b2 = block {
+%textureSampleCompareLevel_bcb3dd = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleCompareLevel_bcb3dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleCompareLevel_bcb3dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleCompareLevel_bcb3dd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.msl
index 9de32c8..13ed79d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_21402b = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_21402b = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleGrad_21402b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleGrad_21402b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleGrad_21402b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl
index 5d21289..89150db 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_2ecd8f = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_2ecd8f = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -25,20 +25,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %19:void = call %textureSampleGrad_2ecd8f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %21:void = call %textureSampleGrad_2ecd8f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %23:void = call %textureSampleGrad_2ecd8f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.msl
index 88f3792..bd1624b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_521263 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_521263 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleGrad_521263
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleGrad_521263
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleGrad_521263
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.msl
index 78e848b..2ade175 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_5312f4 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_5312f4 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleGrad_5312f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleGrad_5312f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleGrad_5312f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.msl
index f6395e1..13c6384 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_5884dd = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_5884dd = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_4:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleGrad_5884dd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleGrad_5884dd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleGrad_5884dd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.msl
index 16f06ae..f08a74a 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_7cd6de = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_7cd6de = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -25,20 +25,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %19:void = call %textureSampleGrad_7cd6de
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %21:void = call %textureSampleGrad_7cd6de
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %23:void = call %textureSampleGrad_7cd6de
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.msl
index 34422ec..3109635 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_a09131 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_a09131 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -25,20 +25,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %19:void = call %textureSampleGrad_a09131
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %21:void = call %textureSampleGrad_a09131
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %23:void = call %textureSampleGrad_a09131
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.msl
index 7d36750..aa6adf7 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_bbb58f = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_bbb58f = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -25,20 +25,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %19:void = call %textureSampleGrad_bbb58f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %21:void = call %textureSampleGrad_bbb58f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %23:void = call %textureSampleGrad_bbb58f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl
index abbd62b..82880bc 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_d4e3c5 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_d4e3c5 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_4:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleGrad_d4e3c5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleGrad_d4e3c5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleGrad_d4e3c5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.msl
index b952e1c..ec8b2ec 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_d65515 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_d65515 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
@@ -25,20 +25,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %19:void = call %textureSampleGrad_d65515
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %21:void = call %textureSampleGrad_d65515
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %23:void = call %textureSampleGrad_d65515
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.msl
index cb9c9ff..34dfdff 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleGrad_e383db = func():void -> %b2 {
-  %b2 = block {
+%textureSampleGrad_e383db = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
@@ -25,20 +25,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %19:void = call %textureSampleGrad_e383db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %21:void = call %textureSampleGrad_e383db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %23:void = call %textureSampleGrad_e383db
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.msl
index ebe3ad5..f636a1e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_02be59 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_02be59 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_02be59
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_02be59
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_02be59
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl
index 6329742..93c08bb 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_0b0a1b = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_0b0a1b = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_2d<f32> = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_0b0a1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_0b0a1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_0b0a1b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl
index 5134101..26e7592 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_0bdd9a = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_0bdd9a = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_0bdd9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_0bdd9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_0bdd9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.msl
index 941fd91..493a608 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_1b0291 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_1b0291 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_cube = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_1b0291
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_1b0291
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_1b0291
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.msl
index e94e664..ff9ed6a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_1bf73e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_1bf73e = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, i32, read_write> = var, 1i
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_1bf73e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_1bf73e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_1bf73e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.msl
index 00fa751..ffe7d11 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_265cc7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_265cc7 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_265cc7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_265cc7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_265cc7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.msl
index 508de8b..a00c0ab 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_2974eb = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_2974eb = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, u32, read_write> = var, 1u
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_2974eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_2974eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_2974eb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.msl
index 147f11d..aa7c693 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_302be4 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_302be4 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_302be4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_302be4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_302be4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.msl
index 1e5c00c..b277f87 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_36780e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_36780e = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, i32, read_write> = var, 1i
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_36780e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_36780e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_36780e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.msl
index b776c07..0767259 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_36f0d3 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_36f0d3 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, u32, read_write> = var, 1u
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_36f0d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_36f0d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_36f0d3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.msl
index d9b1b67..a36a9f6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_3c3442 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_3c3442 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, i32, read_write> = var, 1i
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_3c3442
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_3c3442
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_3c3442
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.msl
index 8b708ad..18e6868 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_615583 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_615583 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, u32, read_write> = var, 1u
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_615583
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_615583
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_615583
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.msl
index e00afc4..0768be4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_73e892 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_73e892 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_73e892
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_73e892
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_73e892
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.msl
index 74f15f7..c6ea513 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_749baf = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_749baf = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_749baf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_749baf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_749baf
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.msl
index f85b91e..1646df6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_941a53 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_941a53 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, u32, read_write> = var, 1u
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_941a53
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_941a53
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_941a53
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.msl
index 6b7792a..f5fac29 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_a12142 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_a12142 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, u32, read_write> = var, 1u
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_a12142
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_a12142
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_a12142
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.msl
index 51387a2..c9fa989 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_aab3b9 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_aab3b9 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_aab3b9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_aab3b9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_aab3b9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.msl
index dfcc61c..794ad6f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_abfcc0 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_abfcc0 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_3d<f32> = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_abfcc0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_abfcc0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_abfcc0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.msl
index 499712a..db5749f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_ae5e39 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_ae5e39 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, i32, read_write> = var, 1i
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_ae5e39
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_ae5e39
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_ae5e39
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.msl
index 51b488e..fee4a3e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_ae92a2 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_ae92a2 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_cube = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_ae92a2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_ae92a2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_ae92a2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.msl
index d0c9983..7d18dc0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_b7c55c = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_b7c55c = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, i32, read_write> = var, 1i
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_b7c55c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_b7c55c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_b7c55c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.msl
index 5ac545a..c0418b3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_cube<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_c32df7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_c32df7 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_cube<f32> = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_c32df7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_c32df7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_c32df7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.msl
index d1c0d09..ad808bc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_c6aca6 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_c6aca6 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_2d<f32> = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_c6aca6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_c6aca6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_c6aca6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl
index 3f5adb9..bf7cc92 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_cdfe0f = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_cdfe0f = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, u32, read_write> = var, 1u
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_cdfe0f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_cdfe0f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_cdfe0f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.msl
index 3cb29e8..d8ab40c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_3d<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_dcbecb = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_dcbecb = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, f32, read_write> = var, 1.0f
     %7:texture_3d<f32> = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_dcbecb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_dcbecb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_dcbecb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl
index ce3c523..6dfcba4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_e6ce9e = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_e6ce9e = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, i32, read_write> = var, 1i
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_e6ce9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_e6ce9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_e6ce9e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl
index 0588c68..4f84a49 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_2d, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_f3b2c8 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_f3b2c8 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %7:texture_depth_2d = load %arg_0
@@ -21,20 +21,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %15:void = call %textureSampleLevel_f3b2c8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %17:void = call %textureSampleLevel_f3b2c8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %19:void = call %textureSampleLevel_f3b2c8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.msl
index 294b071..0a6daf2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_2d_array<f32>, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_faa6d7 = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_faa6d7 = func():void {
+  $B2: {
     %arg_2:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, f32, read_write> = var, 1.0f
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_faa6d7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_faa6d7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_faa6d7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.msl
index 55f69f5..548ac4e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.ir.msl
@@ -1,13 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_depth_cube_array, read> = var @binding_point(1, 0)
   %arg_1:ptr<handle, sampler, read> = var @binding_point(1, 1)
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%textureSampleLevel_ff11bc = func():void -> %b2 {
-  %b2 = block {
+%textureSampleLevel_ff11bc = func():void {
+  $B2: {
     %arg_2:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.0f)
     %arg_3:ptr<function, u32, read_write> = var, 1u
     %arg_4:ptr<function, i32, read_write> = var, 1i
@@ -23,20 +23,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %17:void = call %textureSampleLevel_ff11bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %19:void = call %textureSampleLevel_ff11bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %21:void = call %textureSampleLevel_ff11bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/00ca64.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0148bd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.msl
index e349c38..1a9f15b 100644
--- a/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/031506.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_031506 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_031506 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<r32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_031506
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_031506
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_031506
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.msl
index 1a42492..770b286 100644
--- a/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/036d0e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_036d0e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_036d0e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_036d0e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_036d0e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_036d0e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.msl
index 7728329..49adaf9 100644
--- a/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/03e7a0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_03e7a0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_03e7a0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rgba16uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_03e7a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_03e7a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_03e7a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.msl
index 68fdef6..cd6458a 100644
--- a/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/042b06.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_042b06 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_042b06 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_042b06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_042b06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_042b06
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.msl
index 6f0a754..dd07330 100644
--- a/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/052a4e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_052a4e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_052a4e = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_052a4e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_052a4e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_052a4e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.msl
index 40eb785..5f306fb 100644
--- a/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/053664.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_053664 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_053664 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_053664
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_053664
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_053664
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/05ce15.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/064c7f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/068641.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/06e49c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/07548b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.msl
index a2cc970..3a40e3a 100644
--- a/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/09e4d5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_09e4d5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_09e4d5 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_09e4d5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_09e4d5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_09e4d5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0a1a79.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0d98c68
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/0ad124.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_0ad124 = func():void {
+  $B2: {
+    %arg_1:ptr<function, i32, read_write> = var, 1i
+    %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %5:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %6:i32 = load %arg_1
+    %7:vec4<f32> = load %arg_2
+    %8:void = textureStore %5, %6, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %10:void = call %textureStore_0ad124
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %12:void = call %textureStore_0ad124
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:void = call %textureStore_0ad124
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.msl
index ac09e7e..b810d24 100644
--- a/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0ade9a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_0ade9a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_0ade9a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_0ade9a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_0ade9a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_0ade9a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0af6b5.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0c3dff.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0cc825.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.msl
index 6e1fb3c..8222399 100644
--- a/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/0ff97a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_0ff97a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_0ff97a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_0ff97a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_0ff97a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_0ff97a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.msl
index cffe3b4..52e456f 100644
--- a/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/101325.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_101325 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_101325 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rgba16uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_101325
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_101325
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_101325
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/102722.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.msl
index 843037f..0048053 100644
--- a/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/145061.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_145061 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_145061 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rgba16uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_145061
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_145061
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_145061
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/158cf0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.msl
index 2100fdb..9c29733 100644
--- a/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/178e69.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_178e69 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_178e69 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<bgra8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_178e69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_178e69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_178e69
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1839f2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.msl
index 3dd1697..e19a985 100644
--- a/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/195d1b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_195d1b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_195d1b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_195d1b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_195d1b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_195d1b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.msl
index 76b2ccc..cea31e8 100644
--- a/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/197637.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_197637 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_197637 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_197637
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_197637
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_197637
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a264d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.msl
index 77d2f58..0cdb6f7 100644
--- a/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a6c0b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1a6c0b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1a6c0b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_1a6c0b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_1a6c0b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_1a6c0b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1a7d35.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.msl
index eace132..4637a26 100644
--- a/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1af236.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1af236 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1af236 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_1af236
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_1af236
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_1af236
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1bbd08.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1c02e7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1dc954.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e20f2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e79f0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.msl
index 24a8f95..8dbedec 100644
--- a/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1e9fbd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1e9fbd = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1e9fbd = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_1e9fbd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_1e9fbd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_1e9fbd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1efc36.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1f1ef8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.msl
index 0c27d5c..a03a8b97 100644
--- a/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/1fef04.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_1fef04 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_1fef04 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<r32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_1fef04
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_1fef04
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_1fef04
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.msl
index c57ec4b..e1856f1 100644
--- a/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2046db.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2046db = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2046db = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_2046db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_2046db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_2046db
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/207fdd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.msl
index 33b4ea7..eed9603 100644
--- a/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2173fd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2173fd = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2173fd = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rgba32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_2173fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_2173fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_2173fd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/22d955.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/22f045.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2383fc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.msl
index 4c41eea..24c6eac 100644
--- a/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/24e6b7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_24e6b7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_24e6b7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<r32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_24e6b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_24e6b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_24e6b7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/258ab0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.msl
index 8bfc70c..14a1c69 100644
--- a/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/26a26d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_26a26d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_26a26d = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_26a26d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_26a26d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_26a26d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/26bf70.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/27063a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..eb6f06b
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/272f5a.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_272f5a = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, u32, read_write> = var, 1u
+    %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<i32> = load %arg_1
+    %8:u32 = load %arg_2
+    %9:vec4<f32> = load %arg_3
+    %10:void = textureStore %6, %7, %8, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %12:void = call %textureStore_272f5a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %textureStore_272f5a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %16:void = call %textureStore_272f5a
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2796b4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/285218.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/28a7ec.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.msl
index 2e14f5c..232c6c1 100644
--- a/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/28e109.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_28e109 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_28e109 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rgba8sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_28e109
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_28e109
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_28e109
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.msl
index 5583dbf..28cb358 100644
--- a/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2a60c9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2a60c9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2a60c9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_2a60c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_2a60c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_2a60c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2ac6c7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.msl
index 080beb5..6a12ad7 100644
--- a/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2addd6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2addd6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2addd6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_2addd6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_2addd6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_2addd6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.msl
index c6560e1..19654fb 100644
--- a/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2c76db.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2c76db = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2c76db = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_2c76db
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_2c76db
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_2c76db
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2d2835.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2e4245.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6eacff7
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/2e512f.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_2e512f = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %5:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %6:vec2<u32> = load %arg_1
+    %7:vec4<f32> = load %arg_2
+    %8:void = textureStore %5, %6, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %10:void = call %textureStore_2e512f
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %12:void = call %textureStore_2e512f
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:void = call %textureStore_2e512f
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2e6102.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2eb2a4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2ed2a3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.msl
index 327cf95..054d228 100644
--- a/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/2f29ea.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_2f29ea = func():void -> %b2 {
-  %b2 = block {
+%textureStore_2f29ea = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rgba32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_2f29ea
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_2f29ea
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_2f29ea
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/30b0b0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.msl
index d4e52a0..f78ff10 100644
--- a/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/312f27.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_312f27 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_312f27 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_312f27
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_312f27
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_312f27
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/31745b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/319029.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.msl
index 0b46a7d..1df4ada 100644
--- a/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/32d3d6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_32d3d6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_32d3d6 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<r32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_32d3d6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_32d3d6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_32d3d6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/32f368.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/330b7c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.msl
index 00f2ff5..6e8e0c3 100644
--- a/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3310d3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3310d3 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3310d3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_3310d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_3310d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_3310d3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/331aee.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/33cec0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.msl
index 6f0d3a1..84f5c73 100644
--- a/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/345332.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_345332 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_345332 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rgba8uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_345332
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_345332
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_345332
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/37eeef.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/37ffd4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/38e8d7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3a52ac.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3bb7a1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3bec15.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3c1937.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.msl
index bf38e9c..3fc29a2 100644
--- a/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d1ebe.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3d1ebe = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3d1ebe = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<r32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_3d1ebe
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_3d1ebe
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_3d1ebe
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d6f01.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.msl
index aa55869..979d34ff 100644
--- a/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3d96a4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3d96a4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3d96a4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rgba32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_3d96a4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_3d96a4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_3d96a4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.msl
index e087fe0..3ed6786 100644
--- a/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3e0dc4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3e0dc4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3e0dc4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_3e0dc4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_3e0dc4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_3e0dc4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.msl
index b176daa..2907fe9 100644
--- a/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3f61ca.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_3f61ca = func():void -> %b2 {
-  %b2 = block {
+%textureStore_3f61ca = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_3f61ca
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_3f61ca
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_3f61ca
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/3fb31f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/40c455.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4288fc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4b1a6fc
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/43d1df.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_43d1df = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, i32, read_write> = var, 1i
+    %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<i32> = load %arg_1
+    %8:i32 = load %arg_2
+    %9:vec4<f32> = load %arg_3
+    %10:void = textureStore %6, %7, %8, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %12:void = call %textureStore_43d1df
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %textureStore_43d1df
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %16:void = call %textureStore_43d1df
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.msl
index 693bb6c..b1bd42e 100644
--- a/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/441222.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_441222 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_441222 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rgba32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_441222
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_441222
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_441222
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/441ba8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.msl
index 7015713..5cfba14 100644
--- a/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4483e7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4483e7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4483e7 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rgba32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_4483e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_4483e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_4483e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.msl
index cacd44e..ca5c54b 100644
--- a/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/44b372.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_44b372 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_44b372 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rgba16sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_44b372
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_44b372
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_44b372
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/44daa7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.msl
index eba0155..31a9294 100644
--- a/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/473ead.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_473ead = func():void -> %b2 {
-  %b2 = block {
+%textureStore_473ead = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rg32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_473ead
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_473ead
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_473ead
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.msl
index 4a69401..be541c7 100644
--- a/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/47bd70.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_47bd70 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_47bd70 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_47bd70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_47bd70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_47bd70
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/486500.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.msl
index 2ebf795..187eadd 100644
--- a/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/48cb56.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_48cb56 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_48cb56 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_48cb56
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_48cb56
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_48cb56
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/48eae1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.msl
index b3cf4c3..0f638d7 100644
--- a/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4bf1fd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4bf1fd = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4bf1fd = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<r32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_4bf1fd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_4bf1fd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_4bf1fd
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4c454f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.msl
index 9f20d43..a0c2b48 100644
--- a/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4c76b7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4c76b7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4c76b7 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_4c76b7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_4c76b7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_4c76b7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.msl
index 7744e8a..1bdcc28 100644
--- a/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4cce74.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4cce74 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4cce74 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rg32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_4cce74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_4cce74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_4cce74
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4d359d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.msl
index ff64d14..3a6ff7b 100644
--- a/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4ddf52.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4ddf52 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4ddf52 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rgba16sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_4ddf52
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_4ddf52
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_4ddf52
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.msl
index d6799c8..4876340 100644
--- a/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4e2b3a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_4e2b3a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_4e2b3a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_4e2b3a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_4e2b3a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_4e2b3a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/4fc057.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.msl
index 1dda17b..658b24d 100644
--- a/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5030f5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5030f5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5030f5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_5030f5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_5030f5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_5030f5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/506a71.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.msl
index 972d464..a352962 100644
--- a/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/51ec82.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_51ec82 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_51ec82 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rg32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_51ec82
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_51ec82
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_51ec82
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.msl
index 803e019..5a0c87c 100644
--- a/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5246b4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5246b4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5246b4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<r32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_5246b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_5246b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_5246b4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/52f503.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.msl
index 2f80d29..9bb503b 100644
--- a/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/53a68b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_53a68b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_53a68b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<r32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_53a68b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_53a68b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_53a68b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.msl
index fae5827..248d50f 100644
--- a/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5425ab.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5425ab = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5425ab = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rg32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_5425ab
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_5425ab
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_5425ab
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.msl
index 9c7b97b..6b786d3 100644
--- a/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/544f06.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_544f06 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_544f06 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_544f06
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_544f06
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_544f06
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.msl
index c23110f..3aef58f 100644
--- a/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/55f9dc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_55f9dc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_55f9dc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_55f9dc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_55f9dc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_55f9dc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.msl
index 13d3405..59d8f7e 100644
--- a/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/574a31.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_574a31 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_574a31 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rg32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_574a31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_574a31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_574a31
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.msl
index e2f47df..c56c9fd 100644
--- a/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/579b93.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_579b93 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_579b93 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<r32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_579b93
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_579b93
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_579b93
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5841f8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.msl
index 7e70197..ee3dda9 100644
--- a/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/58fc35.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_58fc35 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_58fc35 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba16float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_58fc35
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_58fc35
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_58fc35
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/59a0ab.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5a2f8f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.msl
index 4b00360..28a696e 100644
--- a/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5a8b41.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5a8b41 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5a8b41 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_5a8b41
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_5a8b41
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_5a8b41
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.msl
index d5e6f64..760b399 100644
--- a/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5b17eb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5b17eb = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5b17eb = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rg32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_5b17eb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_5b17eb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_5b17eb
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.msl
index 5761f4c..1eceebb 100644
--- a/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5b4522.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5b4522 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5b4522 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rgba8uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_5b4522
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_5b4522
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_5b4522
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5bc4f3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ddc61.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.msl
index 22b86bc..8d754b2 100644
--- a/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ec6b2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5ec6b2 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5ec6b2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<r32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_5ec6b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_5ec6b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_5ec6b2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.msl
index 9d69716..632e903 100644
--- a/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5ee194.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_5ee194 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_5ee194 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_5ee194
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_5ee194
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_5ee194
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/5f9a49.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/602b5a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/60975f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.msl
index 0fb5db2..de843b2 100644
--- a/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/614b58.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_614b58 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_614b58 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_614b58
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_614b58
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_614b58
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.msl
index b6bd850..d42b23d 100644
--- a/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/635584.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_635584 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_635584 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rg32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_635584
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_635584
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_635584
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.msl
index 53f0903..bd4b7a2 100644
--- a/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/63f34a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_63f34a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_63f34a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rg32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_63f34a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_63f34a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_63f34a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.msl
index e1190de..311dd0a 100644
--- a/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/646dbc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_646dbc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_646dbc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rgba32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_646dbc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_646dbc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_646dbc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/658a74.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.msl
index 4440f43..29ad191 100644
--- a/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/65b6aa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_65b6aa = func():void -> %b2 {
-  %b2 = block {
+%textureStore_65b6aa = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rgba8sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_65b6aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_65b6aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_65b6aa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.msl
new file mode 100644
index 0000000..6ddedc4
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/65ba8b.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_65ba8b = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
+    %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %5:texture_storage_2d<r8unorm, read_write> = load %arg_0
+    %6:vec2<i32> = load %arg_1
+    %7:vec4<f32> = load %arg_2
+    %8:void = textureStore %5, %6, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %10:void = call %textureStore_65ba8b
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %12:void = call %textureStore_65ba8b
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:void = call %textureStore_65ba8b
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/682fd6.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/699a1b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6b75c3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6b80d2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.msl
index 14eefcc..8d9c752 100644
--- a/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6be9e0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6be9e0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6be9e0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<r32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_6be9e0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_6be9e0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_6be9e0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.msl
index e339e04..b2cea3d 100644
--- a/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6c4a70.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6c4a70 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6c4a70 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<r32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_6c4a70
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_6c4a70
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_6c4a70
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6cff2e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.msl
index 0a9db49..9f48a35 100644
--- a/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6d1809.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6d1809 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6d1809 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_6d1809
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_6d1809
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_6d1809
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.msl
index e248aed..5dc1c35 100644
--- a/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6d259f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6d259f = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6d259f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rgba32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_6d259f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_6d259f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_6d259f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6da692.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.msl
index b9db9ad..493fb80 100644
--- a/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6e6cc0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6e6cc0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6e6cc0 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<r32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_6e6cc0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_6e6cc0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_6e6cc0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9fdb806
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/6f0c92.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_6f0c92 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, i32, read_write> = var, 1i
+    %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<u32> = load %arg_1
+    %8:i32 = load %arg_2
+    %9:vec4<f32> = load %arg_3
+    %10:void = textureStore %6, %7, %8, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %12:void = call %textureStore_6f0c92
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %textureStore_6f0c92
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %16:void = call %textureStore_6f0c92
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.msl
index 163295b..316f7e5 100644
--- a/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6f3542.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6f3542 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6f3542 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rgba16uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_6f3542
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_6f3542
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_6f3542
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6f8642.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.msl
index d491e44..5b21ca4 100644
--- a/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6fb99b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_6fb99b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_6fb99b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba16float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_6fb99b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_6fb99b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_6fb99b
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/6fd2b1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.msl
index 74d67f6..b3d5e18 100644
--- a/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/704e1f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_704e1f = func():void -> %b2 {
-  %b2 = block {
+%textureStore_704e1f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_704e1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_704e1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_704e1f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.msl
index 562e342..2d33612 100644
--- a/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/706236.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_706236 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_706236 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_706236
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_706236
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_706236
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.msl
index a125562..41aab47 100644
--- a/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/706560.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_706560 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_706560 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_706560
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_706560
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_706560
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/726472.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.msl
index 6efbf58..f869430 100644
--- a/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/726d6d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_726d6d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_726d6d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba16float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_726d6d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_726d6d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_726d6d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/72fa64.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/731349.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.msl
index ffd496f..cdc8572 100644
--- a/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/73a735.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_73a735 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_73a735 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_73a735
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_73a735
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_73a735
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/73bbbc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/74886f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.msl
index 69d6ecdd..56b34f5 100644
--- a/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/751256.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_751256 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_751256 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rgba32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_751256
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_751256
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_751256
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/752da6.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.msl
index fcb23d0..9c6ff1a 100644
--- a/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/75bbd5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_75bbd5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_75bbd5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_75bbd5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_75bbd5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_75bbd5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/76affd.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.msl
index d70c408..235dda1 100644
--- a/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7792fa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7792fa = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7792fa = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rg32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_7792fa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_7792fa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_7792fa
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/779d14.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/77c0ae.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.msl
index 9b01cf0..5ffbb81 100644
--- a/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7b8f86.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7b8f86 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7b8f86 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rg32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_7b8f86
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_7b8f86
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_7b8f86
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7bb211.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7cec8d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7cf6e7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.msl
index 1f39a83..1f417e6 100644
--- a/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7d10e0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7d10e0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7d10e0 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_7d10e0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_7d10e0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_7d10e0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.msl
index e277572..65df419 100644
--- a/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7dd042.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7dd042 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7dd042 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_7dd042
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_7dd042
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_7dd042
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.msl
index f59c20b..697cffc 100644
--- a/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7e787a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_7e787a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_7e787a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_7e787a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_7e787a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_7e787a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/7f7fae.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.msl
new file mode 100644
index 0000000..81af8cd
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/803a10.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_803a10 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
+    %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %5:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %6:vec3<u32> = load %arg_1
+    %7:vec4<f32> = load %arg_2
+    %8:void = textureStore %5, %6, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %10:void = call %textureStore_803a10
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %12:void = call %textureStore_803a10
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:void = call %textureStore_803a10
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/804942.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/805dae.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.msl
index 7300e68..6a21585 100644
--- a/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/80bf1d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_80bf1d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_80bf1d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rg32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_80bf1d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_80bf1d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_80bf1d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.msl
index 74d1612..c9e4cf1 100644
--- a/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/818df6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_818df6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_818df6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba16float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_818df6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_818df6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_818df6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.msl
index 5ff9e63..593c30e0 100644
--- a/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/81ae31.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_81ae31 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_81ae31 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_81ae31
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_81ae31
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_81ae31
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.msl
index 8a4d54a..b8a9be7 100644
--- a/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/820272.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_820272 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_820272 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_820272
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_820272
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_820272
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/83bcc1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.msl
index daab066..06aa231 100644
--- a/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/84d435.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_84d435 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_84d435 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_84d435
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_84d435
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_84d435
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.msl
index 369ee03..e72f8ea 100644
--- a/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/84f4f4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_84f4f4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_84f4f4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_84f4f4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_84f4f4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_84f4f4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.msl
index 1eba9ea..d08badd 100644
--- a/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8676c9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8676c9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8676c9 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<r32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_8676c9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_8676c9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_8676c9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.msl
index 5461a48..97c7879 100644
--- a/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/86f713.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_86f713 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_86f713 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rgba16sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_86f713
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_86f713
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_86f713
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/872747.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.msl
index 289f283..6eb3de5 100644
--- a/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/877c92.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_877c92 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_877c92 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba8snorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_877c92
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_877c92
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_877c92
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.msl
index 0db24d8..dc5eea5 100644
--- a/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8815b1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8815b1 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8815b1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_8815b1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_8815b1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_8815b1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.msl
index cd4f388..6a57211 100644
--- a/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/885921.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_885921 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_885921 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_885921
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_885921
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_885921
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.msl
index 05ae2c5..57ad9c7 100644
--- a/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/88ce7e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_88ce7e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_88ce7e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rgba8sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_88ce7e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_88ce7e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_88ce7e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.msl
index acd4c11..a6e5e09 100644
--- a/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a16b0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a16b0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a16b0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_8a16b0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_8a16b0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_8a16b0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.msl
index 71df8a8..01d8c5d 100644
--- a/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a46ff.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a46ff = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a46ff = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba16float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_8a46ff
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_8a46ff
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_8a46ff
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.msl
index bbea7ee..fa89898 100644
--- a/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a85b9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a85b9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a85b9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_8a85b9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_8a85b9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_8a85b9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.msl
index 285b614..73faffe 100644
--- a/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8a8681.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8a8681 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8a8681 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rg32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_8a8681
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_8a8681
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_8a8681
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.msl
index f890d16..bc62be0 100644
--- a/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ae0bc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8ae0bc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8ae0bc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_8ae0bc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_8ae0bc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_8ae0bc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8b9310.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8bb287.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8c76e9.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8cd611.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.msl
index 9864975..c3bb67f 100644
--- a/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8cd841.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8cd841 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8cd841 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_8cd841
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_8cd841
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_8cd841
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8dc54f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8e0479.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.msl
index f1d3caa..e8185bd 100644
--- a/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ebdc9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_8ebdc9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_8ebdc9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_8ebdc9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_8ebdc9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_8ebdc9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ed9f8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8f71a1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/8ff674.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.msl
index d6aad96..05a064d 100644
--- a/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/90960e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_90960e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_90960e = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<rgba16float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_90960e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_90960e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_90960e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.msl
index d02e681..09e53ea 100644
--- a/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/90a553.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_90a553 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_90a553 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_90a553
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_90a553
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_90a553
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/958353.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/959d94.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/95e452.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/969534.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.msl
index 6179792..68a6ef1 100644
--- a/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/976636.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_976636 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_976636 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rgba8sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_976636
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_976636
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_976636
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9938b7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9a3ecc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9aedd3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.msl
index a073882..8474c2a 100644
--- a/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9ba5c1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_9ba5c1 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_9ba5c1 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rgba16uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_9ba5c1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_9ba5c1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_9ba5c1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.msl
index abd147d..e2fd58c 100644
--- a/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9cea9e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_9cea9e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_9cea9e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_9cea9e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_9cea9e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_9cea9e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.msl
index 0fcdab4..a3e9738 100644
--- a/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d7c62.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_9d7c62 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_9d7c62 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rgba8uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_9d7c62
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_9d7c62
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_9d7c62
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d8668.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9d9cd5.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9e3ec5.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9e5bc2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9f5318.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/9f7cea.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.msl
index 776dff5..c38b0f3 100644
--- a/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a0022f.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a0022f = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a0022f = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_a0022f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_a0022f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_a0022f
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a0f96e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a1352c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.msl
index 8b3e1ac..0d50008 100644
--- a/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a14041.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a14041 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a14041 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rgba32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a14041
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a14041
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a14041
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a165b8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.msl
index 218abcc..22c4ace 100644
--- a/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a19a12.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a19a12 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a19a12 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rgba32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a19a12
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a19a12
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a19a12
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.msl
index 50af0d1..3fceba8 100644
--- a/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a24491.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a24491 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a24491 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rgba32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a24491
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a24491
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a24491
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a4c338.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.msl
index 676ff61..358786b 100644
--- a/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5b88e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a5b88e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a5b88e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rgba16sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a5b88e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a5b88e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a5b88e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.msl
index f7b69db..5826dcd 100644
--- a/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5c925.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a5c925 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a5c925 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rgba8sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a5c925
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a5c925
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a5c925
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a5e80d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.msl
index b7d4a25..ed7a079 100644
--- a/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a66ca4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a66ca4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a66ca4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a66ca4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a66ca4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a66ca4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a6a986.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a6e78f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.msl
index 82f2def..22dddfcd 100644
--- a/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a702b6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a702b6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a702b6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_a702b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_a702b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_a702b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ec8286d
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/a7fc47.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_1d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_a7fc47 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var, 1u
+    %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %5:texture_storage_1d<r8unorm, read_write> = load %arg_0
+    %6:u32 = load %arg_1
+    %7:vec4<f32> = load %arg_2
+    %8:void = textureStore %5, %6, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %10:void = call %textureStore_a7fc47
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %12:void = call %textureStore_a7fc47
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:void = call %textureStore_a7fc47
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.msl
index 7c07e34..c17d72f 100644
--- a/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a9298c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_a9298c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_a9298c = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rg32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_a9298c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_a9298c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_a9298c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/a9426c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.msl
index 3f7bc5c..53e75cc 100644
--- a/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ab03b6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ab03b6 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ab03b6 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rgba8uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_ab03b6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_ab03b6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_ab03b6
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.msl
index 85b9d24..8fc165a 100644
--- a/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ab788e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ab788e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ab788e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rg32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_ab788e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_ab788e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_ab788e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.msl
index 5977758..290374d 100644
--- a/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/abdd21.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_abdd21 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_abdd21 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_abdd21
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_abdd21
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_abdd21
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.msl
index af0d753..3efd58c 100644
--- a/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ac0a55.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ac0a55 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ac0a55 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_ac0a55
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_ac0a55
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_ac0a55
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ac67aa.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.msl
new file mode 100644
index 0000000..1173988
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/ae6a2a.wgsl.expected.ir.msl
@@ -0,0 +1,45 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_2d_array<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_ae6a2a = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
+    %arg_2:ptr<function, u32, read_write> = var, 1u
+    %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %6:texture_storage_2d_array<r8unorm, read_write> = load %arg_0
+    %7:vec2<u32> = load %arg_1
+    %8:u32 = load %arg_2
+    %9:vec4<f32> = load %arg_3
+    %10:void = textureStore %6, %7, %8, %9
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %12:void = call %textureStore_ae6a2a
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %14:void = call %textureStore_ae6a2a
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %16:void = call %textureStore_ae6a2a
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/aeb38a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.msl
index 98b66d6..15c86a2 100644
--- a/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/aedea3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_aedea3 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_aedea3 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_aedea3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_aedea3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_aedea3
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.msl
index 45702b2..d929329 100644
--- a/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b16110.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b16110 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b16110 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_b16110
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_b16110
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_b16110
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.msl
index c9cf444..258e7bd 100644
--- a/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b286b4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b286b4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b286b4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_b286b4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_b286b4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_b286b4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.msl
index 1221d61..779c300 100644
--- a/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b36bc1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b36bc1 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b36bc1 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rgba8uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_b36bc1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_b36bc1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_b36bc1
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b42fd3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.msl
index 1febae8..c5974ca 100644
--- a/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b4389e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b4389e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b4389e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<bgra8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_b4389e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_b4389e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_b4389e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b706b1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b70ded.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.msl
index 9b401c6..c382699 100644
--- a/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b71c13.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b71c13 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b71c13 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_b71c13
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_b71c13
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_b71c13
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.msl
index 6967566..3ed1419 100644
--- a/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b7232c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b7232c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b7232c = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_1d<r32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_b7232c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_b7232c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_b7232c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b76ff3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b77161.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.msl
index 7e0fd89..2132dfa 100644
--- a/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b89ffb.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b89ffb = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b89ffb = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_b89ffb
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_b89ffb
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_b89ffb
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b91b86.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.msl
index 0fc35f2..d5d067c 100644
--- a/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b9c81a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b9c81a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b9c81a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rg32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_b9c81a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_b9c81a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_b9c81a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.msl
index 070d4f0..fe8edf3 100644
--- a/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/b9d863.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_b9d863 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_b9d863 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_b9d863
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_b9d863
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_b9d863
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/bbcb7f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.msl
index 609d67e..4053435 100644
--- a/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/bc1423.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_bc1423 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_bc1423 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_bc1423
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_bc1423
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_bc1423
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.msl
index c5f4726..40aaf04 100644
--- a/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/bcc97a.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_bcc97a = func():void -> %b2 {
-  %b2 = block {
+%textureStore_bcc97a = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<r32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_bcc97a
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_bcc97a
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_bcc97a
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.msl
index fe365c0..4a04008 100644
--- a/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/bd6602.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_bd6602 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_bd6602 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_bd6602
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_bd6602
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_bd6602
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/be6e30.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/bedbfc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/bf775c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.msl
index fd0b4a2..c1bfa49 100644
--- a/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c06463.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c06463 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c06463 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_c06463
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_c06463
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_c06463
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.msl
index e0efb98..9664c4e 100644
--- a/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1c664.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c1c664 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c1c664 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_c1c664
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_c1c664
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_c1c664
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1f29e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.msl
index 277d55f..0c47a39 100644
--- a/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c1f760.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c1f760 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c1f760 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_c1f760
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_c1f760
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_c1f760
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c2ca46.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c32905.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.msl
index a988839..f692c7a 100644
--- a/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c33478.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c33478 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c33478 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rg32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_c33478
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_c33478
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_c33478
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.msl
index c29ed43..fedc056 100644
--- a/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c35268.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c35268 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c35268 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_c35268
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_c35268
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_c35268
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c5af1e.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.msl
index 1d3dd99..fa0aeb6 100644
--- a/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c63f05.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c63f05 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c63f05 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_c63f05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_c63f05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_c63f05
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.msl
index eae648d..c549203 100644
--- a/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c79451.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_c79451 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_c79451 = func():void {
+  $B2: {
     %arg_1:ptr<function, u32, read_write> = var, 1u
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rgba16sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_c79451
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_c79451
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_c79451
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c863be.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/c9d780.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/cb3b0b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.msl
index 53dc735..f5d4d71 100644
--- a/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ccac20.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ccac20 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ccac20 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba32float, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_ccac20
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_ccac20
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_ccac20
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/cd6755.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.msl
index b19f38c..a2cddf8 100644
--- a/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ceb832.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ceb832 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ceb832 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_ceb832
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_ceb832
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_ceb832
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.msl
index bc53eed..8a8aeae5 100644
--- a/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d0d62c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d0d62c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d0d62c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_2d<rgba8uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_d0d62c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_d0d62c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_d0d62c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.msl
index 8875e75..93b597d 100644
--- a/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d0fadc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d0fadc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d0fadc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_d0fadc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_d0fadc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_d0fadc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.msl
index 55d0702..9731f92 100644
--- a/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d19db4.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d19db4 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d19db4 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<rg32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_d19db4
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_d19db4
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_d19db4
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.msl
index 8a9d678..dbf2afd 100644
--- a/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d1ab82.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d1ab82 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d1ab82 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_d1ab82
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_d1ab82
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_d1ab82
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d26166.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d2b565.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.msl
index edd30e8..b549a6d 100644
--- a/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d3a22b.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d3a22b = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d3a22b = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_3d<rgba32uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_d3a22b
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_d3a22b
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_d3a22b
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d4aa95.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d55e65.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d73b5c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d82b0a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.msl
index 9655d33..55e1d40 100644
--- a/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/d86d33.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_d86d33 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_d86d33 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_d86d33
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_d86d33
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_d86d33
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.msl
index 8d65137..4119885 100644
--- a/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/da530c.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_da530c = func():void -> %b2 {
-  %b2 = block {
+%textureStore_da530c = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_2d<rgba8sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_da530c
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_da530c
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_da530c
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.msl
index 0270ad3..1e12a3d 100644
--- a/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/db5128.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_db5128 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_db5128 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_db5128
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_db5128
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_db5128
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/db92a2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.msl
index 90c5098..cf76d73 100644
--- a/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/dce0e2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<r32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_dce0e2 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_dce0e2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_dce0e2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_dce0e2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_dce0e2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/dd7d81.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.msl
index a363af6..3609c74 100644
--- a/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/dd8b29.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_dd8b29 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_dd8b29 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_dd8b29
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_dd8b29
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_dd8b29
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/dde364.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.msl
index 6dda126..e86a4f9 100644
--- a/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/de38e5.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_de38e5 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_de38e5 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_3d<rgba8snorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_de38e5
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_de38e5
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_de38e5
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/de4b94.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.msl
index d47e934..fa083ce 100644
--- a/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/df0c51.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_3d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_df0c51 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_df0c51 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec3<u32>, read_write> = var, vec3<u32>(1u)
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_3d<r32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_df0c51
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_df0c51
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_df0c51
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/df2ca4.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/dfa9a1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/dffb13.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.msl
index 6ae5e01..3778928 100644
--- a/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e077e7.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e077e7 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e077e7 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rg32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_e077e7
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_e077e7
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_e077e7
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e0b666.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.msl
index 3ba81ce..06d5068 100644
--- a/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e1784d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e1784d = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e1784d = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_e1784d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_e1784d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_e1784d
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e38281.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.msl
index fc54acc..48ef92f 100644
--- a/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e46fd8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<bgra8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e46fd8 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e46fd8 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<bgra8unorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_e46fd8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_e46fd8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_e46fd8
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.msl
index 143063b..2c62ba2 100644
--- a/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e72bdc.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba16float, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e72bdc = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e72bdc = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_e72bdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_e72bdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_e72bdc
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e7c6d8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.msl
index 3d3f1aa..4b22641 100644
--- a/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e87f6e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_e87f6e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_e87f6e = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<rgba16sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_e87f6e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_e87f6e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_e87f6e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e885e8.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/e8cbf7.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.msl
index c4f8cbc..62be2a5 100644
--- a/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ea30d2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rg32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ea30d2 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ea30d2 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_ea30d2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_ea30d2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_ea30d2
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/eb702f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/eb78b9.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ca81700
--- /dev/null
+++ b/test/tint/builtins/gen/var/textureStore/ed6198.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
+  %arg_0:ptr<handle, texture_storage_3d<r8unorm, read_write>, read> = var @binding_point(1, 0)
+}
+
+%textureStore_ed6198 = func():void {
+  $B2: {
+    %arg_1:ptr<function, vec3<i32>, read_write> = var, vec3<i32>(1i)
+    %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
+    %5:texture_storage_3d<r8unorm, read_write> = load %arg_0
+    %6:vec3<i32> = load %arg_1
+    %7:vec4<f32> = load %arg_2
+    %8:void = textureStore %5, %6, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %10:void = call %textureStore_ed6198
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %12:void = call %textureStore_ed6198
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %14:void = call %textureStore_ed6198
+    ret
+  }
+}
+
+invalid access control for storage texture
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ee6acc.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ef9f2f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.msl
index 3c30775..f8f8682 100644
--- a/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f05928.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f05928 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f05928 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, u32, read_write> = var, 1u
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_f05928
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_f05928
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_f05928
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f1e6d3.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.msl
index b3832f7..485768a 100644
--- a/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f64d69.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<r32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f64d69 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f64d69 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
     %5:texture_storage_1d<r32sint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_f64d69
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_f64d69
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_f64d69
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.msl
index a7dd882..145d90c 100644
--- a/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f6f392.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba8unorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f6f392 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f6f392 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_f6f392
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_f6f392
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_f6f392
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.msl
similarity index 75%
copy from test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
copy to test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_6.spvasm.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f7b0ab.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.msl
index 0751f30..1ed0c01 100644
--- a/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f8aaf9.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32sint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f8aaf9 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f8aaf9 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<i32>, read_write> = var, vec4<i32>(1i)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_f8aaf9
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_f8aaf9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_f8aaf9
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f8dead.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.msl
index 3f4afe3..8c3de5d 100644
--- a/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f975a0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d<rgba8snorm, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_f975a0 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_f975a0 = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<i32>, read_write> = var, vec2<i32>(1i)
     %arg_2:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.0f)
     %5:texture_storage_2d<rgba8snorm, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_f975a0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_f975a0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_f975a0
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/f9be83.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/fb9a8f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/fbf53f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.msl
index 87840e7..4453e5c 100644
--- a/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/fc916e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_2d_array<rgba32uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_fc916e = func():void -> %b2 {
-  %b2 = block {
+%textureStore_fc916e = func():void {
+  $B2: {
     %arg_1:ptr<function, vec2<u32>, read_write> = var, vec2<u32>(1u)
     %arg_2:ptr<function, i32, read_write> = var, 1i
     %arg_3:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
@@ -17,20 +17,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %12:void = call %textureStore_fc916e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %14:void = call %textureStore_fc916e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %16:void = call %textureStore_fc916e
     ret
   }
diff --git a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/fcbe66.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/fd350c.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.msl
index 5f6de3d..ce9e3bb 100644
--- a/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/textureStore/ff23b3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %arg_0:ptr<handle, texture_storage_1d<rgba16uint, read_write>, read> = var @binding_point(1, 0)
 }
 
-%textureStore_ff23b3 = func():void -> %b2 {
-  %b2 = block {
+%textureStore_ff23b3 = func():void {
+  $B2: {
     %arg_1:ptr<function, i32, read_write> = var, 1i
     %arg_2:ptr<function, vec4<u32>, read_write> = var, vec4<u32>(1u)
     %5:texture_storage_1d<rgba16uint, read_write> = load %arg_0
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %10:void = call %textureStore_ff23b3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %12:void = call %textureStore_ff23b3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %14:void = call %textureStore_ff23b3
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.msl
index c183f92..261fed0 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.ir.msl
@@ -1,35 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_06794e = func():void -> %b2 {
-  %b2 = block {
+%transpose_06794e = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(1.0h))
     %4:mat3x3<f16> = load %arg_0
     %5:mat3x3<f16> = transpose %4
     %res:ptr<function, mat3x3<f16>, read_write> = var, %5
     %7:mat3x3<f16> = load %res
-    store %prevent_dce, %7
+    %8:void = call %tint_store_and_preserve_padding, %prevent_dce, %7
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %transpose_06794e
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %transpose_06794e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %transpose_06794e
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %transpose_06794e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %transpose_06794e
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %transpose_06794e
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B6: {
+    %18:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %19:vec3<f16> = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %21:vec3<f16> = access %value_param, 1u
+    store %20, %21
+    %22:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %23:vec3<f16> = access %value_param, 2u
+    store %22, %23
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.msl
index 80fb064..311ca78 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_2585cd = func():void -> %b2 {
-  %b2 = block {
+%transpose_2585cd = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(1.0f))
     %4:mat4x3<f32> = load %arg_0
     %5:mat3x4<f32> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_2585cd
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_2585cd
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_2585cd
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.msl
index 42e7ce8..9263541 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_31d679 = func():void -> %b2 {
-  %b2 = block {
+%transpose_31d679 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(1.0f))
     %4:mat2x2<f32> = load %arg_0
     %5:mat2x2<f32> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_31d679
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_31d679
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_31d679
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.msl
index 9e9726a..6313de0 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_31e37e = func():void -> %b2 {
-  %b2 = block {
+%transpose_31e37e = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(1.0f))
     %4:mat4x2<f32> = load %arg_0
     %5:mat2x4<f32> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_31e37e
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_31e37e
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_31e37e
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.msl
index db12a04..ad91d30 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_4ce359 = func():void -> %b2 {
-  %b2 = block {
+%transpose_4ce359 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(1.0f))
     %4:mat2x4<f32> = load %arg_0
     %5:mat4x2<f32> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_4ce359
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_4ce359
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_4ce359
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.msl
index 180cf5f..29afba3 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_4dc9a1 = func():void -> %b2 {
-  %b2 = block {
+%transpose_4dc9a1 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(1.0f))
     %4:mat2x3<f32> = load %arg_0
     %5:mat3x2<f32> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_4dc9a1
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_4dc9a1
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_4dc9a1
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.msl
index 79506a6..359592b 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_5edd96 = func():void -> %b2 {
-  %b2 = block {
+%transpose_5edd96 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(1.0h))
     %4:mat4x2<f16> = load %arg_0
     %5:mat2x4<f16> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_5edd96
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_5edd96
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_5edd96
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.msl
index 06fac36..044ac83 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_5f36bf = func():void -> %b2 {
-  %b2 = block {
+%transpose_5f36bf = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(1.0h))
     %4:mat4x3<f16> = load %arg_0
     %5:mat3x4<f16> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_5f36bf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_5f36bf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_5f36bf
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.msl
index bad8bed..8a1ed4f 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_7be8b2 = func():void -> %b2 {
-  %b2 = block {
+%transpose_7be8b2 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(1.0h))
     %4:mat2x2<f16> = load %arg_0
     %5:mat2x2<f16> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_7be8b2
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_7be8b2
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_7be8b2
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.msl
index e40f90b..e306750 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_844869 = func():void -> %b2 {
-  %b2 = block {
+%transpose_844869 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(1.0h))
     %4:mat4x4<f16> = load %arg_0
     %5:mat4x4<f16> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_844869
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_844869
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_844869
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.msl
index e20d360..2657ea6 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.ir.msl
@@ -1,35 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_854336 = func():void -> %b2 {
-  %b2 = block {
+%transpose_854336 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(1.0f))
     %4:mat3x3<f32> = load %arg_0
     %5:mat3x3<f32> = transpose %4
     %res:ptr<function, mat3x3<f32>, read_write> = var, %5
     %7:mat3x3<f32> = load %res
-    store %prevent_dce, %7
+    %8:void = call %tint_store_and_preserve_padding, %prevent_dce, %7
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %transpose_854336
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %transpose_854336
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %transpose_854336
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %transpose_854336
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %transpose_854336
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %transpose_854336
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B6: {
+    %18:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %19:vec3<f32> = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %21:vec3<f32> = access %value_param, 1u
+    store %20, %21
+    %22:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %23:vec3<f32> = access %value_param, 2u
+    store %22, %23
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.msl
index f8be219..97b23bd 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.ir.msl
@@ -1,35 +1,52 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_8c06ce = func():void -> %b2 {
-  %b2 = block {
+%transpose_8c06ce = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(1.0h))
     %4:mat3x4<f16> = load %arg_0
     %5:mat4x3<f16> = transpose %4
     %res:ptr<function, mat4x3<f16>, read_write> = var, %5
     %7:mat4x3<f16> = load %res
-    store %prevent_dce, %7
+    %8:void = call %tint_store_and_preserve_padding, %prevent_dce, %7
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %transpose_8c06ce
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %transpose_8c06ce
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %transpose_8c06ce
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %transpose_8c06ce
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %transpose_8c06ce
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %transpose_8c06ce
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B6: {
+    %18:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %19:vec3<f16> = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %21:vec3<f16> = access %value_param, 1u
+    store %20, %21
+    %22:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %23:vec3<f16> = access %value_param, 2u
+    store %22, %23
+    %24:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %25:vec3<f16> = access %value_param, 3u
+    store %24, %25
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.msl
index 49c4ef8..78b0244 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.ir.msl
@@ -1,35 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_b9ad1f = func():void -> %b2 {
-  %b2 = block {
+%transpose_b9ad1f = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(1.0h))
     %4:mat3x2<f16> = load %arg_0
     %5:mat2x3<f16> = transpose %4
     %res:ptr<function, mat2x3<f16>, read_write> = var, %5
     %7:mat2x3<f16> = load %res
-    store %prevent_dce, %7
+    %8:void = call %tint_store_and_preserve_padding, %prevent_dce, %7
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %transpose_b9ad1f
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %transpose_b9ad1f
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %transpose_b9ad1f
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %transpose_b9ad1f
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %transpose_b9ad1f
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %transpose_b9ad1f
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B6: {
+    %18:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %19:vec3<f16> = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %21:vec3<f16> = access %value_param, 1u
+    store %20, %21
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.msl
index 949e665..1efa863 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_c1b600 = func():void -> %b2 {
-  %b2 = block {
+%transpose_c1b600 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(1.0f))
     %4:mat4x4<f32> = load %arg_0
     %5:mat4x4<f32> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_c1b600
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_c1b600
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_c1b600
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.msl
index 5711dd9..5356256 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_d6faec = func():void -> %b2 {
-  %b2 = block {
+%transpose_d6faec = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(1.0h))
     %4:mat2x3<f16> = load %arg_0
     %5:mat3x2<f16> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_d6faec
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_d6faec
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_d6faec
     ret
   }
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.msl
index 30bb8e1..cec83cb 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.ir.msl
@@ -1,35 +1,52 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_d8f8ba = func():void -> %b2 {
-  %b2 = block {
+%transpose_d8f8ba = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(1.0f))
     %4:mat3x4<f32> = load %arg_0
     %5:mat4x3<f32> = transpose %4
     %res:ptr<function, mat4x3<f32>, read_write> = var, %5
     %7:mat4x3<f32> = load %res
-    store %prevent_dce, %7
+    %8:void = call %tint_store_and_preserve_padding, %prevent_dce, %7
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %transpose_d8f8ba
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %transpose_d8f8ba
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %transpose_d8f8ba
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %transpose_d8f8ba
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %transpose_d8f8ba
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %transpose_d8f8ba
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B6: {
+    %18:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %19:vec3<f32> = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %21:vec3<f32> = access %value_param, 1u
+    store %20, %21
+    %22:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %23:vec3<f32> = access %value_param, 2u
+    store %22, %23
+    %24:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %25:vec3<f32> = access %value_param, 3u
+    store %24, %25
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.msl
index 4c57aaa..0959c68 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.ir.msl
@@ -1,35 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_ed4bdc = func():void -> %b2 {
-  %b2 = block {
+%transpose_ed4bdc = func():void {
+  $B2: {
     %arg_0:ptr<function, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(1.0f))
     %4:mat3x2<f32> = load %arg_0
     %5:mat2x3<f32> = transpose %4
     %res:ptr<function, mat2x3<f32>, read_write> = var, %5
     %7:mat2x3<f32> = load %res
-    store %prevent_dce, %7
+    %8:void = call %tint_store_and_preserve_padding, %prevent_dce, %7
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
-    %9:void = call %transpose_ed4bdc
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %11:void = call %transpose_ed4bdc
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
-    %11:void = call %transpose_ed4bdc
+%fragment_main = @fragment func():void {
+  $B4: {
+    %13:void = call %transpose_ed4bdc
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %transpose_ed4bdc
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %15:void = call %transpose_ed4bdc
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B6: {
+    %18:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %19:vec3<f32> = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %21:vec3<f32> = access %value_param, 1u
+    store %20, %21
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.msl
index 47b0f85..5ad9494 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%transpose_faeb05 = func():void -> %b2 {
-  %b2 = block {
+%transpose_faeb05 = func():void {
+  $B2: {
     %arg_0:ptr<function, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(1.0h))
     %4:mat2x4<f16> = load %arg_0
     %5:mat4x2<f16> = transpose %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %transpose_faeb05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %transpose_faeb05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %transpose_faeb05
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.msl
index a65d3b6..5d4dd5d 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_103ab8 = func():void -> %b2 {
-  %b2 = block {
+%trunc_103ab8 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f16>, read_write> = var, vec3<f16>(1.5h)
     %4:vec3<f16> = load %arg_0
     %5:vec3<f16> = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_103ab8
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_103ab8
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_103ab8
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.msl
index 2fd8f1c..b5a2a06 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec3<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_562d05 = func():void -> %b2 {
-  %b2 = block {
+%trunc_562d05 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec3<f32>, read_write> = var, vec3<f32>(1.5f)
     %4:vec3<f32> = load %arg_0
     %5:vec3<f32> = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_562d05
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_562d05
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_562d05
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.msl
index 790a3c6..e5831e0 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_a56109 = func():void -> %b2 {
-  %b2 = block {
+%trunc_a56109 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f16>, read_write> = var, vec2<f16>(1.5h)
     %4:vec2<f16> = load %arg_0
     %5:vec2<f16> = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_a56109
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_a56109
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_a56109
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.msl
index ecb34c3..080e32e 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_cc2b0d = func():void -> %b2 {
-  %b2 = block {
+%trunc_cc2b0d = func():void {
+  $B2: {
     %arg_0:ptr<function, f16, read_write> = var, 1.5h
     %4:f16 = load %arg_0
     %5:f16 = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_cc2b0d
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_cc2b0d
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_cc2b0d
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.msl
index 432ef96..974ed09 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f16>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_ce7c17 = func():void -> %b2 {
-  %b2 = block {
+%trunc_ce7c17 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f16>, read_write> = var, vec4<f16>(1.5h)
     %4:vec4<f16> = load %arg_0
     %5:vec4<f16> = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_ce7c17
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_ce7c17
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_ce7c17
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.msl
index ae0dc76..9147f0c 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_e183aa = func():void -> %b2 {
-  %b2 = block {
+%trunc_e183aa = func():void {
+  $B2: {
     %arg_0:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(1.5f)
     %4:vec4<f32> = load %arg_0
     %5:vec4<f32> = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_e183aa
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_e183aa
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_e183aa
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.msl
index 375a5b3..5e9ad23 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_eb83df = func():void -> %b2 {
-  %b2 = block {
+%trunc_eb83df = func():void {
+  $B2: {
     %arg_0:ptr<function, f32, read_write> = var, 1.5f
     %4:f32 = load %arg_0
     %5:f32 = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_eb83df
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_eb83df
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_eb83df
     ret
   }
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.msl
index 800a3f1..8be7106 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%trunc_f370d3 = func():void -> %b2 {
-  %b2 = block {
+%trunc_f370d3 = func():void {
+  $B2: {
     %arg_0:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(1.5f)
     %4:vec2<f32> = load %arg_0
     %5:vec2<f32> = trunc %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %trunc_f370d3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %trunc_f370d3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %trunc_f370d3
     ret
   }
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.msl
index 8fcb6bc..03355e9 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack2x16float_32a5cf = func():void -> %b2 {
-  %b2 = block {
+%unpack2x16float_32a5cf = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:vec2<f32> = unpack2x16float %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %unpack2x16float_32a5cf
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %unpack2x16float_32a5cf
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %unpack2x16float_32a5cf
     ret
   }
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl
index 62de467..b1436dc 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack2x16snorm_b4aea6 = func():void -> %b2 {
-  %b2 = block {
+%unpack2x16snorm_b4aea6 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:vec2<f32> = unpack2x16snorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %unpack2x16snorm_b4aea6
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %unpack2x16snorm_b4aea6
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %unpack2x16snorm_b4aea6
     ret
   }
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.msl
index 1e32846..9e0567e 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec2<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack2x16unorm_7699c0 = func():void -> %b2 {
-  %b2 = block {
+%unpack2x16unorm_7699c0 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:vec2<f32> = unpack2x16unorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %unpack2x16unorm_7699c0
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %unpack2x16unorm_7699c0
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %unpack2x16unorm_7699c0
     ret
   }
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.msl
index 6852926..555db7f 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack4x8snorm_523fb3 = func():void -> %b2 {
-  %b2 = block {
+%unpack4x8snorm_523fb3 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:vec4<f32> = unpack4x8snorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %unpack4x8snorm_523fb3
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %unpack4x8snorm_523fb3
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %unpack4x8snorm_523fb3
     ret
   }
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.msl
index 6116f3e..463fb4c 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %prevent_dce:ptr<storage, vec4<f32>, read_write> = var @binding_point(2, 0)
 }
 
-%unpack4x8unorm_750c74 = func():void -> %b2 {
-  %b2 = block {
+%unpack4x8unorm_750c74 = func():void {
+  $B2: {
     %arg_0:ptr<function, u32, read_write> = var, 1u
     %4:u32 = load %arg_0
     %5:vec4<f32> = unpack4x8unorm %4
@@ -15,20 +15,20 @@
     ret
   }
 }
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b3 {
-  %b3 = block {
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
     %9:void = call %unpack4x8unorm_750c74
     ret vec4<f32>(0.0f)
   }
 }
-%fragment_main = @fragment func():void -> %b4 {
-  %b4 = block {
+%fragment_main = @fragment func():void {
+  $B4: {
     %11:void = call %unpack4x8unorm_750c74
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
     %13:void = call %unpack4x8unorm_750c74
     ret
   }
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9aa3ccd
--- /dev/null
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<i32>, read_write> = var @binding_point(2, 0)
+}
+
+%unpack4xI8_830900 = func():void {
+  $B2: {
+    %arg_0:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %arg_0
+    %5:vec4<i32> = unpack4xI8 %4
+    %res:ptr<function, vec4<i32>, read_write> = var, %5
+    %7:vec4<i32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %unpack4xI8_830900
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %unpack4xI8_830900
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %unpack4xI8_830900
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.msl
new file mode 100644
index 0000000..c483088
--- /dev/null
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %prevent_dce:ptr<storage, vec4<u32>, read_write> = var @binding_point(2, 0)
+}
+
+%unpack4xU8_a5ea55 = func():void {
+  $B2: {
+    %arg_0:ptr<function, u32, read_write> = var, 1u
+    %4:u32 = load %arg_0
+    %5:vec4<u32> = unpack4xU8 %4
+    %res:ptr<function, vec4<u32>, read_write> = var, %5
+    %7:vec4<u32> = load %res
+    store %prevent_dce, %7
+    ret
+  }
+}
+%vertex_main = @vertex func():vec4<f32> [@position] {
+  $B3: {
+    %9:void = call %unpack4xU8_a5ea55
+    ret vec4<f32>(0.0f)
+  }
+}
+%fragment_main = @fragment func():void {
+  $B4: {
+    %11:void = call %unpack4xU8_a5ea55
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %unpack4xU8_a5ea55
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.msl
index c34ab0a..96b8d6d 100644
--- a/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/workgroupBarrier/a17f7f.wgsl.expected.ir.msl
@@ -1,9 +1,9 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+void workgroupBarrier_a17f7f() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+}
+kernel void compute_main() {
+  workgroupBarrier_a17f7f();
+}
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.msl
index 959bbd3..f8281db 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, u32, read_write> = var
   %prevent_dce:ptr<storage, u32, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_37307c = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_37307c = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:u32 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, u32, read_write> = var, %5
-    %8:u32 = load %res
-    store %prevent_dce, %8
+    %6:u32 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, u32, read_write> = var, %6
+    %9:u32 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_37307c
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0u
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_37307c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl
index 2529246..e2eb2fb 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, f32, read_write> = var
   %prevent_dce:ptr<storage, f32, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_7a857c = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_7a857c = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:f32 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, f32, read_write> = var, %5
-    %8:f32 = load %res
-    store %prevent_dce, %8
+    %6:f32 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, f32, read_write> = var, %6
+    %9:f32 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_7a857c
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0.0f
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_7a857c
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl
index 89dabfa..3bb3f44 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, i32, read_write> = var
   %prevent_dce:ptr<storage, i32, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_9d33de = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_9d33de = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:i32 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, i32, read_write> = var, %5
-    %8:i32 = load %res
-    store %prevent_dce, %8
+    %6:i32 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, i32, read_write> = var, %6
+    %9:i32 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_9d33de
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0i
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_9d33de
     ret
   }
 }
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl
index 036773d..bd29073 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.ir.msl
@@ -1,24 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:469 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %arg_0:ptr<workgroup, f16, read_write> = var
   %prevent_dce:ptr<storage, f16, read_write> = var @binding_point(2, 0)
 }
 
-%workgroupUniformLoad_e07d08 = func():void -> %b2 {
-  %b2 = block {
-    %4:void = workgroupBarrier
+%workgroupUniformLoad_e07d08 = func():void {
+  $B2: {
+    %4:void = msl.threadgroup_barrier 4u
     %5:f16 = load %arg_0
-    %6:void = workgroupBarrier
-    %res:ptr<function, f16, read_write> = var, %5
-    %8:f16 = load %res
-    store %prevent_dce, %8
+    %6:f16 = let %5
+    %7:void = msl.threadgroup_barrier 4u
+    %res:ptr<function, f16, read_write> = var, %6
+    %9:f16 = load %res
+    store %prevent_dce, %9
     ret
   }
 }
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %10:void = call %workgroupUniformLoad_e07d08
+%compute_main = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    %12:bool = eq %tint_local_index, 0u
+    if %12 [t: $B4] {  # if_1
+      $B4: {  # true
+        store %arg_0, 0.0h
+        exit_if  # if_1
+      }
+    }
+    %13:void = msl.threadgroup_barrier 4u
+    %14:void = call %workgroupUniformLoad_e07d08
     ret
   }
 }
diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.msl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.msl
index 8978199..40ec97c 100644
--- a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.ir.msl
@@ -1,13 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  int v = 0;
-  int n = 0;
-  uint offset_1 = 0u;
-  uint count = 0u;
-  int const x_15 = insert_bits(v, n, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.msl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.msl
index 0714695..40ec97c 100644
--- a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.ir.msl
@@ -1,13 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  uint v = 0u;
-  uint n = 0u;
-  uint offset_1 = 0u;
-  uint count = 0u;
-  uint const x_12 = insert_bits(v, n, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.msl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.msl
index d37365c..40ec97c 100644
--- a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.ir.msl
@@ -1,13 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  int3 v = int3(0);
-  int3 n = int3(0);
-  uint offset_1 = 0u;
-  uint count = 0u;
-  int3 const x_16 = insert_bits(v, n, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.msl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.msl
index 60b6649..40ec97c 100644
--- a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.msl
+++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.ir.msl
@@ -1,13 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f_1() {
-  uint3 v = uint3(0u);
-  uint3 n = uint3(0u);
-  uint offset_1 = 0u;
-  uint count = 0u;
-  uint3 const x_15 = insert_bits(v, n, offset_1, count);
-}
-kernel void f() {
-  f_1();
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.msl b/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/modf/scalar/mixed.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.msl b/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.msl
+++ b/test/tint/builtins/modf/scalar/runtime.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.msl b/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.msl
+++ b/test/tint/builtins/modf/vector/mixed.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.msl b/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.msl
index 03c2230..edd7e27e 100644
--- a/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.msl
+++ b/test/tint/builtins/modf/vector/runtime.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: modf
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: modf
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/radians.spvasm.expected.ir.msl b/test/tint/builtins/radians.spvasm.expected.ir.msl
index efdd3b1..8220f22 100644
--- a/test/tint/builtins/radians.spvasm.expected.ir.msl
+++ b/test/tint/builtins/radians.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: radians
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/repeated_use.wgsl.expected.ir.msl b/test/tint/builtins/repeated_use.wgsl.expected.ir.msl
index 2d453a7..52f1705 100644
--- a/test/tint/builtins/repeated_use.wgsl.expected.ir.msl
+++ b/test/tint/builtins/repeated_use.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: degrees
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: degrees
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.msl b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.msl
+++ b/test/tint/builtins/textureDimensions/depth_ms.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/f32/alpha.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/f32/blue.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/f32/green.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/f32/red.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/i32/alpha.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/i32/blue.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/i32/green.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/i32/red.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/u32/alpha.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/u32/blue.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/u32/green.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.msl b/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.msl
index ed005c1..8de8451 100644
--- a/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureGather/u32/red.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureGather
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.msl b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.msl
+++ b/test/tint/builtins/textureLoad/depth_ms.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.msl b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.msl
index 63ccb0d..f58a518 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.ir.msl
@@ -1,46 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1057 internal compiler error: %b1 = block {  # root
-  %arg_0:ptr<handle, texture_external, read> = var @binding_point(1, 0)
+
+@group(1) @binding(0) var arg_0 : texture_external;
+
+fn textureLoad2d(tint_symbol : texture_external, coords : vec2<i32>) -> vec4<f32> {
+  return textureLoad(tint_symbol, coords);
 }
 
-%textureLoad2d = func(%tint_symbol:texture_external, %coords:vec2<i32>):vec4<f32> -> %b2 {
-  %b2 = block {
-    %5:vec4<f32> = textureLoad %tint_symbol, %coords
-    ret %5
-  }
-}
-%doTextureLoad = func():void -> %b3 {
-  %b3 = block {
-    %7:texture_external = load %arg_0
-    %8:vec4<f32> = call %textureLoad2d, %7, vec2<i32>(0i)
-    %res:ptr<function, vec4<f32>, read_write> = var, %8
-    ret
-  }
-}
-%vertex_main = @vertex func():vec4<f32> [@position] -> %b4 {
-  %b4 = block {
-    %11:void = call %doTextureLoad
-    ret vec4<f32>(0.0f)
-  }
-}
-%fragment_main = @fragment func():void -> %b5 {
-  %b5 = block {
-    %13:void = call %doTextureLoad
-    ret
-  }
-}
-%compute_main = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %15:void = call %doTextureLoad
-    ret
-  }
+fn doTextureLoad() {
+  var res : vec4<f32> = textureLoad2d(arg_0, vec2<i32>());
 }
 
-Multiplanar external texture transform was not run.
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+@vertex
+fn vertex_main() -> @builtin(position) vec4<f32> {
+  doTextureLoad();
+  return vec4<f32>();
+}
+
+@fragment
+fn fragment_main() {
+  doTextureLoad();
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  doTextureLoad();
+}
+
+Failed to generate: error: ExternalTextureOptions missing binding entry for [group: 1, binding: 0]
diff --git a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.msl b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.msl
index b263553..ee65b2d 100644
--- a/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureLoad/texture_param.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.msl b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.msl
index b38060a..8b02481 100644
--- a/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.msl
+++ b/test/tint/builtins/textureNumSamples/depth_ms.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.msl b/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.msl
index da59f48..877ebc6 100644
--- a/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureStore/bgraunorm.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.msl b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.msl
index 5660214..d480901 100644
--- a/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.msl
+++ b/test/tint/builtins/textureStore/loop_continuing_read_write_texture.wgsl.expected.ir.msl
@@ -1,33 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:1110 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:1164 internal compiler error: $B1: {  # root
   %tex:ptr<handle, texture_storage_2d<r32sint, read_write>, read> = var @binding_point(0, 2)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+%foo = func():void {
+  $B2: {
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %i:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %4:i32 = load %i
         %5:bool = lt %4, 3i
-        if %5 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %5 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
+      $B5: {  # continuing
         %6:texture_storage_2d<r32sint, read_write> = load %tex
         %7:void = textureStore %6, vec2<i32>(0i), vec4<i32>(0i)
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
     }
     ret
diff --git a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.msl
index c34ab0a..a1f0594 100644
--- a/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/array.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+threadgroup tint_array<int, 4> v;
+tint_array<int, 4> foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  tint_array<int, 4> const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1;
+}
+program_source:16:32: error: program scope variable must reside in constant address space
+threadgroup tint_array<int, 4> v;
+                               ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.msl
index c34ab0a..bdcbf5f 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+threadgroup tint_array<int, 128> v;
+int foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  tint_array<int, 128> const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1[0];
+}
+program_source:16:34: error: program scope variable must reside in constant address space
+threadgroup tint_array<int, 128> v;
+                                 ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.msl
index c34ab0a..bdcbf5f 100644
--- a/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/array_overridable_count_aliased.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+threadgroup tint_array<int, 128> v;
+int foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  tint_array<int, 128> const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1[0];
+}
+program_source:16:34: error: program scope variable must reside in constant address space
+threadgroup tint_array<int, 128> v;
+                                 ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl
index c34ab0a..7fee66a 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup bool v;
+bool foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  bool const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1;
+}
+program_source:4:18: error: program scope variable must reside in constant address space
+threadgroup bool v;
+                 ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.msl
index c34ab0a..644f07b 100644
--- a/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/for_loop.wgsl.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int a;
+threadgroup int b;
+void foo() {
+  {
+    int i = 0;
+    while(true) {
+      int const v = i;
+      threadgroup_barrier(mem_flags::mem_threadgroup);
+      int const v_1 = a;
+      threadgroup_barrier(mem_flags::mem_threadgroup);
+      if ((v < v_1)) {
+      } else {
+        break;
+      }
+      threadgroup_barrier(mem_flags::mem_threadgroup);
+      int const v_2 = b;
+      threadgroup_barrier(mem_flags::mem_threadgroup);
+      i = (i + v_2);
+      continue;
+    }
+  }
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int a;
+                ^
+program_source:5:17: error: program scope variable must reside in constant address space
+threadgroup int b;
+                ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl
index c34ab0a..4184af3 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup bool v;
+int foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  bool const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  if (v_1) {
+    return 42;
+  }
+  return 0;
+}
+program_source:4:18: error: program scope variable must reside in constant address space
+threadgroup bool v;
+                 ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.msl
index c34ab0a..a0c6ee9 100644
--- a/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/matrix.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float3x3 v;
+float3x3 foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  float3x3 const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1;
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float3x3 v;
+                     ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.msl
index c34ab0a..4366a3a 100644
--- a/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/structures.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct Inner {
+  bool b;
+  int4 v;
+  float3x3 m;
+};
+struct Outer {
+  tint_array<Inner, 4> a;
+};
+
+threadgroup Outer v;
+Outer foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  Outer const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1;
+}
+program_source:24:19: error: program scope variable must reside in constant address space
+threadgroup Outer v;
+                  ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.msl
index c34ab0a..f1ea9ea 100644
--- a/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/vec.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float4 v;
+float4 foo() {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  float4 const v_1 = v;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1;
+}
+program_source:4:20: error: program scope variable must reside in constant address space
+threadgroup float4 v;
+                   ^
+
diff --git a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.msl
index c34ab0a..849f561 100644
--- a/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/via_param.wgsl.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:861 internal compiler error: TINT_UNREACHABLE unhandled: workgroupBarrier
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+threadgroup tint_array<int, 4> v;
+int foo(threadgroup int* const p) {
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  int const v_1 = p;
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  return v_1;
+}
+int bar() {
+  return foo(v[0]);
+}
+program_source:16:32: error: program scope variable must reside in constant address space
+threadgroup tint_array<int, 4> v;
+                               ^
+program_source:19:13: error: cannot initialize a variable of type 'const int' with an lvalue of type 'threadgroup int *const'
+  int const v_1 = p;
+            ^     ~
+
diff --git a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.msl
index 8d9d5ed..14f9fde 100644
--- a/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/case_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   switch (i32(x)) {
               ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.msl
index fba0915..36bb0939 100644
--- a/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/compound_statement_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
     if (x > 0) {
         ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.msl
index c295ae9..3790f50 100644
--- a/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/default_case_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   switch (i32(x)) {
               ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.msl
index c0b06dd..5a1ef83 100644
--- a/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/directive.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.msl
index d67bbbd..a49460b 100644
--- a/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/else_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.msl
index 62762b3..74ecb5a 100644
--- a/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/else_if_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.msl
index e5392a0..16c3b89 100644
--- a/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/for_loop_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   for (; x > v.x && dpdx(1.0) > 0.0; ) {
                     ^^^^^^^^^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:385 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.msl
index 7186005..b0a68a3 100644
--- a/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/for_loop_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.msl
index 747c93d..47e965a 100644
--- a/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/function_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.msl
index b2b4f25..2c424b1 100644
--- a/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/function_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.msl
index ff99c12..4e582b6 100644
--- a/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/if_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   if (x > 0) @diagnostic(warning, derivative_uniformity) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.msl
index a07f2cc..c2ecf9b 100644
--- a/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/if_statement_attribute.wgsl.expected.ir.msl
@@ -12,10 +12,26 @@
   if (x > 0) {
       ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+texture2d<float, access::sample> t;
+sampler s;
+fragment void tint_symbol(float x) {
+  if ((x > 0.0f)) {
+  } else {
+    if ((dfdx(1.0f) > 0.0f)) {
+    }
+  }
+}
+program_source:4:34: error: program scope variable must reside in constant address space
+texture2d<float, access::sample> t;
+                                 ^
+program_source:5:1: error: constant sampler must be declared constexpr
+sampler s;
+^
+constexpr 
+program_source:6:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x) {
+                          ^~~~~~~
+
diff --git a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.msl
index 1b4eddd..2f23951 100644
--- a/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/loop_attribute.wgsl.expected.ir.msl
@@ -12,10 +12,19 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol(float x) {
+  {
+    while(true) {
+      dfdx(1.0f);
+      if (x > 0.0f) { break; }
+      continue;
+    }
+  }
+}
+program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x) {
+                          ^~~~~~~
+
diff --git a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.msl
index 0f0f566..2e38f84 100644
--- a/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/loop_body_attribute.wgsl.expected.ir.msl
@@ -12,10 +12,19 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol(float x) {
+  {
+    while(true) {
+      dfdx(1.0f);
+      if (x > 0.0f) { break; }
+      continue;
+    }
+  }
+}
+program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x) {
+                          ^~~~~~~
+
diff --git a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.msl
index cc7391d..c5a7652 100644
--- a/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/loop_continuing_attribute.wgsl.expected.ir.msl
@@ -12,10 +12,19 @@
       break if x > 0.0;
                ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol(float x) {
+  {
+    while(true) {
+      dfdx(1.0f);
+      if (x > 0.0f) { break; }
+      continue;
+    }
+  }
+}
+program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x) {
+                          ^~~~~~~
+
diff --git a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.msl
index 3981779..18738cf 100644
--- a/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/switch_body_attribute.wgsl.expected.ir.msl
@@ -12,10 +12,22 @@
   switch (i32(x)) @diagnostic(warning, derivative_uniformity) {
               ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol(float x) {
+  switch(tint_f32_to_i32(x)) {
+    default:
+    {
+      dfdx(1.0f);
+      break;
+    }
+  }
+}
+int tint_f32_to_i32(float value) {
+  return select(2147483647, select((-2147483647 - 1), int(value), (value >= -2147483648.0f)), (value <= 2147483520.0f));
+}
+program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x) {
+                          ^~~~~~~
+
diff --git a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.msl
index d95b6c4..de7f4c6 100644
--- a/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl.expected.ir.msl
@@ -4,15 +4,15 @@
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
                           ^^^^^^^^^
 
-<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:24 note: control flow depends on possibly non-uniform value
+<dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: control flow depends on possibly non-uniform value
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
-                       ^^
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 <dawn>/test/tint/diagnostic_filtering/switch_statement_attribute.wgsl:7:15 note: user-defined input 'x' of 'main' may be non-uniform
   switch (i32(x == 0.0 && dpdx(1.0) == 0.0)) {
               ^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:385 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.msl
index dd6a23a..92ffe0e 100644
--- a/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/while_loop_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
   while (x > 0.0 && dpdx(1.0) > 0.0)  {
                     ^^^^^^^^^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:385 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.msl b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.msl
index 9e9a013..930218e 100644
--- a/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.msl
+++ b/test/tint/diagnostic_filtering/while_loop_body_attribute.wgsl.expected.ir.msl
@@ -12,7 +12,7 @@
     v = textureSample(t, s, vec2(0, 0));
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.msl
index a46d769..cd92c60 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 1;
   int const b = 2;
-  int const r = (a / b);
+  int const r = tint_div_i32(a, b);
 }
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_div_i32'
+  int const r = tint_div_i32(a, b);
+                ^
+
diff --git a/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.msl
index 38f4f2e..048f61e 100644
--- a/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 1u;
   uint const b = 2u;
-  uint const r = (a / b);
+  uint const r = tint_div_u32(a, b);
 }
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / select(rhs, 1u, (rhs == 0u)));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_u32'
+  uint const r = tint_div_u32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.msl
index 4530bf7..2fa961a 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 4;
   int3 const b = int3(1, 2, 3);
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(int3(a), b);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(int3(a), b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.msl
index 0c2ddac..e836cce 100644
--- a/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 4u;
   uint3 const b = uint3(1u, 2u, 3u);
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(uint3(a), b);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(uint3(a), b);
+                  ^
+
diff --git a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.msl
index 3b2dc31..574b1c1 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int const b = 4;
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(a, int3(b));
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(a, int3(b));
+                 ^
+
diff --git a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.msl
index 5878f55..db9d145 100644
--- a/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint const b = 4u;
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(a, uint3(b));
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(a, uint3(b));
+                  ^
+
diff --git a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.msl
index decef76..2755ecd 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int3 const b = int3(4, 5, 6);
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(a, b);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.msl
index 72bb62d..1baed17 100644
--- a/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint3 const b = uint3(4u, 5u, 6u);
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(a, b);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(a, b);
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl
index fe0ba8e..2266c21 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 1;
   int const b = 0;
-  int const r = (a / b);
+  int const r = tint_div_i32(a, b);
 }
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_div_i32'
+  int const r = tint_div_i32(a, b);
+                ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl
index b68125b..738eeab 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 1u;
   uint const b = 0u;
-  uint const r = (a / b);
+  uint const r = tint_div_u32(a, b);
 }
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / select(rhs, 1u, (rhs == 0u)));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_u32'
+  uint const r = tint_div_u32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl
index 0e80b79..162982e 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 4;
   int3 const b = int3(0, 2, 0);
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(int3(a), b);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(int3(a), b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl
index af44bfe..0231a4e 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 4u;
   uint3 const b = uint3(0u, 2u, 0u);
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(uint3(a), b);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(uint3(a), b);
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl
index 2fa5c24..b96f324 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int const b = 0;
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(a, int3(b));
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(a, int3(b));
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl
index 3c45515..8904fcc 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint const b = 0u;
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(a, uint3(b));
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(a, uint3(b));
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl
index e6d18eb..3a14a9d 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int3 const b = int3(0, 5, 0);
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(a, b);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl
index d9761ce..3c7663c 100644
--- a/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint3 const b = uint3(0u, 5u, 0u);
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(a, b);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(a, b);
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl
index 5d5bce1..0c3ce11 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 1;
   int b = 0;
-  int const r = (a / (b + b));
+  int const r = tint_div_i32(a, (b + b));
 }
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_div_i32'
+  int const r = tint_div_i32(a, (b + b));
+                ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl
index b8f37ec..d0fe939 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 1u;
   uint b = 0u;
-  uint const r = (a / (b + b));
+  uint const r = tint_div_u32(a, (b + b));
 }
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / select(rhs, 1u, (rhs == 0u)));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_u32'
+  uint const r = tint_div_u32(a, (b + b));
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl
index 5053dcb..885624b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 const r = (a / (b + b));
+  int3 const v = (b + b);
+  int3 const r = tint_div_v3i32(int3(a), v);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(int3(a), v);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl
index 4dd10b9..8608a64 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 const r = (a / (b + b));
+  uint3 const v = (b + b);
+  uint3 const r = tint_div_v3u32(uint3(a), v);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(uint3(a), v);
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl
index 6fb6226..45a199e 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 const r = (a / (b + b));
+  int3 const v = a;
+  int3 const r = tint_div_v3i32(v, int3((b + b)));
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(v, int3((b + b)));
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl
index 98d02fa..230534b 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 const r = (a / (b + b));
+  uint3 const v = a;
+  uint3 const r = tint_div_v3u32(v, uint3((b + b)));
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(v, uint3((b + b)));
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl
index 337e13a..84fd79e 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 const r = (a / (b + b));
+  int3 const r = tint_div_v3i32(a, (b + b));
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(a, (b + b));
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl
index dc7f626..f7d3fe3 100644
--- a/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 const r = (a / (b + b));
+  uint3 const r = tint_div_v3u32(a, (b + b));
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(a, (b + b));
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl
index 4150d3c..b984663 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 1;
   int b = 0;
-  int const r = (a / b);
+  int const r = tint_div_i32(a, b);
 }
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_div_i32'
+  int const r = tint_div_i32(a, b);
+                ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl
index 68d8d84..9ca11a6 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 1u;
   uint b = 0u;
-  uint const r = (a / b);
+  uint const r = tint_div_u32(a, b);
 }
+uint tint_div_u32(uint lhs, uint rhs) {
+  return (lhs / select(rhs, 1u, (rhs == 0u)));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_u32'
+  uint const r = tint_div_u32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl
index 647886e..e2bbf6c 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 const r = (a / b);
+  int3 const v = b;
+  int3 const r = tint_div_v3i32(int3(a), v);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(int3(a), v);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl
index e3f0dc4..a3bfb50 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 const r = (a / b);
+  uint3 const v = b;
+  uint3 const r = tint_div_v3u32(uint3(a), v);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(uint3(a), v);
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl
index 0759f7d..4e52ba9 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 const r = (a / b);
+  int3 const v = a;
+  int3 const r = tint_div_v3i32(v, int3(b));
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(v, int3(b));
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl
index b23b7b9..ea03857 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 const r = (a / b);
+  uint3 const v = a;
+  uint3 const r = tint_div_v3u32(v, uint3(b));
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(v, uint3(b));
+                  ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl
index 0ee1a3b..f604b15 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 const r = (a / b);
+  int3 const r = tint_div_v3i32(a, b);
 }
+int3 tint_div_v3i32(int3 lhs, int3 rhs) {
+  return (lhs / select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1))))));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_div_v3i32'
+  int3 const r = tint_div_v3i32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl
index 9de2d1c..5b8af54 100644
--- a/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/div_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,17 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 const r = (a / b);
+  uint3 const r = tint_div_v3u32(a, b);
 }
+uint3 tint_div_v3u32(uint3 lhs, uint3 rhs) {
+  return (lhs / select(rhs, uint3(1u), (rhs == uint3(0u))));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_div_v3u32'
+  uint3 const r = tint_div_v3u32(a, b);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.msl
index e4f9a08..09b1ef2 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 1;
   int const b = 2;
-  int const r = (a % b);
+  int const r = tint_mod_i32(a, b);
 }
+int tint_mod_i32(int lhs, int rhs) {
+  int const v = select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_mod_i32'
+  int const r = tint_mod_i32(a, b);
+                ^
+
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.msl
index 11edaf7..b1b4a6f 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 1u;
   uint const b = 2u;
-  uint const r = (a % b);
+  uint const r = tint_mod_u32(a, b);
 }
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint const v = select(rhs, 1u, (rhs == 0u));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_u32'
+  uint const r = tint_mod_u32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.msl
index 3dc9d7d..d0ad189 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 4;
   int3 const b = int3(1, 2, 3);
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(int3(a), b);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(int3(a), b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.msl
index f81a5c0..c0e4d0b 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 4u;
   uint3 const b = uint3(1u, 2u, 3u);
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(uint3(a), b);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(uint3(a), b);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.msl
index 5f229b2..8ac3f73 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int const b = 4;
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(a, int3(b));
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(a, int3(b));
+                 ^
+
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.msl
index 4aae403..f815457 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint const b = 4u;
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(a, uint3(b));
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(a, uint3(b));
+                  ^
+
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.msl
index 2787c03..51bb608 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int3 const b = int3(4, 5, 6);
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(a, b);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.msl
index 6b26bee..59cfca7 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint3 const b = uint3(4u, 5u, 6u);
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(a, b);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(a, b);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl
index b1f22a6..39862e7 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 1;
   int const b = 0;
-  int const r = (a % b);
+  int const r = tint_mod_i32(a, b);
 }
+int tint_mod_i32(int lhs, int rhs) {
+  int const v = select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_mod_i32'
+  int const r = tint_mod_i32(a, b);
+                ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl
index e285831..d3132b1 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 1u;
   uint const b = 0u;
-  uint const r = (a % b);
+  uint const r = tint_mod_u32(a, b);
 }
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint const v = select(rhs, 1u, (rhs == 0u));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_u32'
+  uint const r = tint_mod_u32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl
index 7094ad2..42118c6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int const a = 4;
   int3 const b = int3(0, 2, 0);
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(int3(a), b);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(int3(a), b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl
index d04a463..175880b 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint const a = 4u;
   uint3 const b = uint3(0u, 2u, 0u);
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(uint3(a), b);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(uint3(a), b);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl
index 61e0d37..34063d1 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int const b = 0;
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(a, int3(b));
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(a, int3(b));
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl
index 3e576ac..ae9e090 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint const b = 0u;
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(a, uint3(b));
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(a, uint3(b));
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl
index 3516f0a..f7be78a 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 const a = int3(1, 2, 3);
   int3 const b = int3(0, 5, 0);
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(a, b);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl
index 4ea3362..8e25d40 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 const a = uint3(1u, 2u, 3u);
   uint3 const b = uint3(0u, 5u, 0u);
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(a, b);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(a, b);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl
index c03572b..42df4ee 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 1;
   int b = 0;
-  int const r = (a % (b + b));
+  int const r = tint_mod_i32(a, (b + b));
 }
+int tint_mod_i32(int lhs, int rhs) {
+  int const v = select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_mod_i32'
+  int const r = tint_mod_i32(a, (b + b));
+                ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl
index 7674377..5f6496a 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 1u;
   uint b = 0u;
-  uint const r = (a % (b + b));
+  uint const r = tint_mod_u32(a, (b + b));
 }
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint const v = select(rhs, 1u, (rhs == 0u));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_u32'
+  uint const r = tint_mod_u32(a, (b + b));
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl
index f8722fe..4395b07 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 const r = (a % (b + b));
+  int3 const v = (b + b);
+  int3 const r = tint_mod_v3i32(int3(a), v);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v_1 = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(int3(a), v);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl
index 37e677e..23fa120 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 const r = (a % (b + b));
+  uint3 const v = (b + b);
+  uint3 const r = tint_mod_v3u32(uint3(a), v);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v_1 = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(uint3(a), v);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl
index 3614af6..b8ab3e9 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 const r = (a % (b + b));
+  int3 const v = a;
+  int3 const r = tint_mod_v3i32(v, int3((b + b)));
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v_1 = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(v, int3((b + b)));
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl
index 15e8303..c63c2cb 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 const r = (a % (b + b));
+  uint3 const v = a;
+  uint3 const r = tint_mod_v3u32(v, uint3((b + b)));
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v_1 = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(v, uint3((b + b)));
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl
index b8d1373..a9eca17 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 const r = (a % (b + b));
+  int3 const r = tint_mod_v3i32(a, (b + b));
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(a, (b + b));
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl
index 735dc67..8b388fa 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 const r = (a % (b + b));
+  uint3 const r = tint_mod_v3u32(a, (b + b));
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(a, (b + b));
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl
index d9dcdcb..e6fd9e8 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 1;
   int b = 0;
-  int const r = (a % b);
+  int const r = tint_mod_i32(a, b);
 }
+int tint_mod_i32(int lhs, int rhs) {
+  int const v = select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:17: error: use of undeclared identifier 'tint_mod_i32'
+  int const r = tint_mod_i32(a, b);
+                ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl
index 2d86764..bbd1107 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 1u;
   uint b = 0u;
-  uint const r = (a % b);
+  uint const r = tint_mod_u32(a, b);
 }
+uint tint_mod_u32(uint lhs, uint rhs) {
+  uint const v = select(rhs, 1u, (rhs == 0u));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_u32'
+  uint const r = tint_mod_u32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl
index 4d180b6..2231a73 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int a = 4;
   int3 b = int3(0, 2, 0);
-  int3 const r = (a % b);
+  int3 const v = b;
+  int3 const r = tint_mod_v3i32(int3(a), v);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v_1 = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(int3(a), v);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl
index f222dd4..5b1ca58 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint a = 4u;
   uint3 b = uint3(0u, 2u, 0u);
-  uint3 const r = (a % b);
+  uint3 const v = b;
+  uint3 const r = tint_mod_v3u32(uint3(a), v);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v_1 = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(uint3(a), v);
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl
index ddf4813..a6017c7 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/i32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int b = 0;
-  int3 const r = (a % b);
+  int3 const v = a;
+  int3 const r = tint_mod_v3i32(v, int3(b));
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v_1 = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(v, int3(b));
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl
index c732010..96355d9 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-scalar/u32.wgsl.expected.ir.msl
@@ -1,8 +1,19 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint b = 0u;
-  uint3 const r = (a % b);
+  uint3 const v = a;
+  uint3 const r = tint_mod_v3u32(v, uint3(b));
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v_1 = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v_1) * v_1));
+}
+program_source:8:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(v, uint3(b));
+                  ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl
index 7deac92..a7c66f5 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/i32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   int3 a = int3(1, 2, 3);
   int3 b = int3(0, 5, 0);
-  int3 const r = (a % b);
+  int3 const r = tint_mod_v3i32(a, b);
 }
+int3 tint_mod_v3i32(int3 lhs, int3 rhs) {
+  int3 const v = select(rhs, int3(1), ((rhs == int3(0)) | ((lhs == int3((-2147483647 - 1))) & (rhs == int3(-1)))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:18: error: use of undeclared identifier 'tint_mod_v3i32'
+  int3 const r = tint_mod_v3i32(a, b);
+                 ^
+
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl
index ef26674..60ddeeb 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/u32.wgsl.expected.ir.msl
@@ -1,8 +1,18 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
 kernel void f() {
   uint3 a = uint3(1u, 2u, 3u);
   uint3 b = uint3(0u, 5u, 0u);
-  uint3 const r = (a % b);
+  uint3 const r = tint_mod_v3u32(a, b);
 }
+uint3 tint_mod_v3u32(uint3 lhs, uint3 rhs) {
+  uint3 const v = select(rhs, uint3(1u), (rhs == uint3(0u)));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:7:19: error: use of undeclared identifier 'tint_mod_v3u32'
+  uint3 const r = tint_mod_v3u32(a, b);
+                  ^
+
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl
index c341420..cc9d7eb 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   tint_symbol:mat3x2<f16> @offset(0)
   vector:vec3<f16> @offset(16)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, mat3x2<f16>, read> = access %data, 0u
     %4:mat3x2<f16> = load %3
     %5:ptr<uniform, vec3<f16>, read> = access %data, 1u
     %6:vec3<f16> = load %5
-    %x:vec2<f16> = mul %4, %6
+    %7:vec2<f16> = mul %4, %6
+    %x:vec2<f16> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl
index d036b32..d076ee9 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   tint_symbol:mat3x2<f32> @offset(0)
   vector:vec3<f32> @offset(32)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, mat3x2<f32>, read> = access %data, 0u
     %4:mat3x2<f32> = load %3
     %5:ptr<uniform, vec3<f32>, read> = access %data, 1u
     %6:vec3<f32> = load %5
-    %x:vec2<f32> = mul %4, %6
+    %7:vec2<f32> = mul %4, %6
+    %x:vec2<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl
index e7299d2..63113e5 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   tint_symbol:mat3x3<f16> @offset(0)
   vector:vec3<f16> @offset(24)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, mat3x3<f16>, read> = access %data, 0u
     %4:mat3x3<f16> = load %3
     %5:ptr<uniform, vec3<f16>, read> = access %data, 1u
     %6:vec3<f16> = load %5
-    %x:vec3<f16> = mul %4, %6
+    %7:vec3<f16> = mul %4, %6
+    %x:vec3<f16> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl
index 3e4f5ff..bfc5a7a 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   tint_symbol:mat3x3<f32> @offset(0)
   vector:vec3<f32> @offset(48)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, mat3x3<f32>, read> = access %data, 0u
     %4:mat3x3<f32> = load %3
     %5:ptr<uniform, vec3<f32>, read> = access %data, 1u
     %6:vec3<f32> = load %5
-    %x:vec3<f32> = mul %4, %6
+    %7:vec3<f32> = mul %4, %6
+    %x:vec3<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl
index 2ceba0e..860bcf5 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   tint_symbol:mat3x3<f16> @offset(0)
   vector:vec3<f16> @offset(24)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, vec3<f16>, read> = access %data, 1u
     %4:vec3<f16> = load %3
     %5:ptr<uniform, mat3x3<f16>, read> = access %data, 0u
     %6:mat3x3<f16> = load %5
-    %x:vec3<f16> = mul %4, %6
+    %7:vec3<f16> = mul %4, %6
+    %x:vec3<f16> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl
index 4e38b05..7f4cc24 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   tint_symbol:mat3x3<f32> @offset(0)
   vector:vec3<f32> @offset(48)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, vec3<f32>, read> = access %data, 1u
     %4:vec3<f32> = load %3
     %5:ptr<uniform, mat3x3<f32>, read> = access %data, 0u
     %6:mat3x3<f32> = load %5
-    %x:vec3<f32> = mul %4, %6
+    %7:vec3<f32> = mul %4, %6
+    %x:vec3<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl
index ddd9a22..8af14af 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   tint_symbol:mat4x3<f16> @offset(0)
   vector:vec3<f16> @offset(32)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, vec3<f16>, read> = access %data, 1u
     %4:vec3<f16> = load %3
     %5:ptr<uniform, mat4x3<f16>, read> = access %data, 0u
     %6:mat4x3<f16> = load %5
-    %x:vec4<f16> = mul %4, %6
+    %7:vec4<f16> = mul %4, %6
+    %x:vec4<f16> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl
index 4c5ce73..09ac2b9 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.ir.msl
@@ -1,21 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:383 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   tint_symbol:mat4x3<f32> @offset(0)
   vector:vec3<f32> @offset(64)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol_1 = @fragment func():void -> %b2 {
-  %b2 = block {
+%tint_symbol_1 = @fragment func():void {
+  $B2: {
     %3:ptr<uniform, vec3<f32>, read> = access %data, 1u
     %4:vec3<f32> = load %3
     %5:ptr<uniform, mat4x3<f32>, read> = access %data, 0u
     %6:mat4x3<f32> = load %5
-    %x:vec4<f32> = mul %4, %6
+    %7:vec4<f32> = mul %4, %6
+    %x:vec4<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.msl
index 2125482..06e17d1 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   v:vec3<f16> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<uniform, vec3<f16>, read> = access %U, 0u
     %4:vec3<f16> = load %3
     %v:ptr<function, vec3<f16>, read_write> = var, %4
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.msl
index cedacce..b5bdd28 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<uniform, vec3<f32>, read> = access %U, 0u
     %4:vec3<f32> = load %3
     %v:ptr<function, vec3<f32>, read_write> = var, %4
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.msl
index 59aa9d0..37e6cd7 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<uniform, vec3<i32>, read> = access %U, 0u
     %4:vec3<i32> = load %3
     %v:ptr<function, vec3<i32>, read_write> = var, %4
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.msl
index c744736..5e60691 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<uniform, vec3<u32>, read> = access %U, 0u
     %4:vec3<u32> = load %3
     %v:ptr<function, vec3<u32>, read_write> = var, %4
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.msl
index 75b0647..d020c19 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   v:vec3<f16> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<storage, vec3<f16>, read_write> = access %U, 0u
     store %3, vec3<f16>(1.0h, 2.0h, 3.0h)
     %4:ptr<storage, vec3<f16>, read_write> = access %U, 0u
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.msl
index 9409642..aec9b83 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<storage, vec3<f32>, read_write> = access %U, 0u
     store %3, vec3<f32>(1.0f, 2.0f, 3.0f)
     %4:ptr<storage, vec3<f32>, read_write> = access %U, 0u
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.msl
index b71cd03..8384aa5 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<storage, vec3<i32>, read_write> = access %U, 0u
     store %3, vec3<i32>(1i, 2i, 3i)
     %4:ptr<storage, vec3<i32>, read_write> = access %U, 0u
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.msl b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.msl
index 0919737..eb26cf5 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:458 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   v:vec3<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %U:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%f = func():void -> %b2 {
-  %b2 = block {
+%f = func():void {
+  $B2: {
     %3:ptr<storage, vec3<u32>, read_write> = access %U, 0u
     store %3, vec3<u32>(1u, 2u, 3u)
     %4:ptr<storage, vec3<u32>, read_write> = access %U, 0u
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..6c452e1 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2x2 m() {
+  t = (t + 1.0h);
+  return half2x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h));
+}
+void f() {
+  float2x2 v = float2x2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float2x2 v = float2x2(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..6db60e1 100644
--- a/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x2/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2x2 m() {
+  t = (t + 1.0f);
+  return float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+}
+void f() {
+  half2x2 v = half2x2(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half2x2 v = half2x2(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.msl
index f476304..5627742 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.msl
index 32c02a5..bf5ccd5 100644
--- a/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x2/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2x2 u = half2x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half2x2 u = half2x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..8c6dba6 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2x2 u = half2x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h));
+void f() {
+  float2x2 v = float2x2(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half2x2 u = half2x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float2x2 v = float2x2(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..a8a49ff 100644
--- a/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x2/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+void f() {
+  half2x2 v = half2x2(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x2 u = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half2x2 v = half2x2(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..23033dd 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2x3 m() {
+  t = (t + 1.0h);
+  return half2x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h));
+}
+void f() {
+  float2x3 v = float2x3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float2x3 v = float2x3(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..6920b55 100644
--- a/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x3/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2x3 m() {
+  t = (t + 1.0f);
+  return float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+}
+void f() {
+  half2x3 v = half2x3(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half2x3 v = half2x3(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.msl
index e275a8b..3395466 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.msl
index 112f78c..0a827c4 100644
--- a/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x3/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2x3 u = half2x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half2x3 u = half2x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..d2ce968 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2x3 u = half2x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h));
+void f() {
+  float2x3 v = float2x3(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half2x3 u = half2x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float2x3 v = float2x3(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..d214a8a 100644
--- a/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x3/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+void f() {
+  half2x3 v = half2x3(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x3 u = float2x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half2x3 v = half2x3(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..7932d8f 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2x4 m() {
+  t = (t + 1.0h);
+  return half2x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h));
+}
+void f() {
+  float2x4 v = float2x4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float2x4 v = float2x4(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..90ec16c 100644
--- a/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x4/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2x4 m() {
+  t = (t + 1.0f);
+  return float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+}
+void f() {
+  half2x4 v = half2x4(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half2x4 v = half2x4(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.msl
index 4989270..95e1ff1 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.msl
index 5e79b85..4d3818b 100644
--- a/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x4/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2x4 u = half2x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half2x4 u = half2x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..e32b520 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2x4 u = half2x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h));
+void f() {
+  float2x4 v = float2x4(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half2x4 u = half2x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float2x4 v = float2x4(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..7808a05 100644
--- a/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat2x4/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+void f() {
+  half2x4 v = half2x4(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x4 u = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half2x4 v = half2x4(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..190aac7 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3x2 m() {
+  t = (t + 1.0h);
+  return half3x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h));
+}
+void f() {
+  float3x2 v = float3x2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float3x2 v = float3x2(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..86f0ba9 100644
--- a/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x2/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3x2 m() {
+  t = (t + 1.0f);
+  return float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+}
+void f() {
+  half3x2 v = half3x2(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half3x2 v = half3x2(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.msl
index 109ca80..8459fa6 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.msl
index 7f3eb76..a1ea545 100644
--- a/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x2/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3x2 u = half3x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half3x2 u = half3x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..3c8fe4f 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3x2 u = half3x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h));
+void f() {
+  float3x2 v = float3x2(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half3x2 u = half3x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float3x2 v = float3x2(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..9d715d3 100644
--- a/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x2/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+void f() {
+  half3x2 v = half3x2(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x2 u = float3x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half3x2 v = half3x2(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..3e4edfc 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3x3 m() {
+  t = (t + 1.0h);
+  return half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h));
+}
+void f() {
+  float3x3 v = float3x3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float3x3 v = float3x3(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..05ec66a 100644
--- a/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x3/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3x3 m() {
+  t = (t + 1.0f);
+  return float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+}
+void f() {
+  half3x3 v = half3x3(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half3x3 v = half3x3(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.msl
index 98944b6..26e06c0 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.msl
index 7f70be3..18e1af4 100644
--- a/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x3/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3x3 u = half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half3x3 u = half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..28b1b91 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3x3 u = half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h));
+void f() {
+  float3x3 v = float3x3(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half3x3 u = half3x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float3x3 v = float3x3(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..67868da 100644
--- a/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x3/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+void f() {
+  half3x3 v = half3x3(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x3 u = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half3x3 v = half3x3(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..334d887 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3x4 m() {
+  t = (t + 1.0h);
+  return half3x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h));
+}
+void f() {
+  float3x4 v = float3x4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float3x4 v = float3x4(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..8d8625c 100644
--- a/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x4/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3x4 m() {
+  t = (t + 1.0f);
+  return float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+}
+void f() {
+  half3x4 v = half3x4(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half3x4 v = half3x4(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.msl
index 6a0cf8e..1e799db 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3x4 u = float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x4 u = float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.msl
index 9edd653..87b4e1d 100644
--- a/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x4/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3x4 u = half3x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half3x4 u = half3x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..d043073 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3x4 u = half3x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h));
+void f() {
+  float3x4 v = float3x4(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half3x4 u = half3x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float3x4 v = float3x4(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..8b3da37 100644
--- a/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat3x4/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x4 u = float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+void f() {
+  half3x4 v = half3x4(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x4 u = float3x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half3x4 v = half3x4(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..f25d56b 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4x2 m() {
+  t = (t + 1.0h);
+  return half4x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h), half2(7.0h, 8.0h));
+}
+void f() {
+  float4x2 v = float4x2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float4x2 v = float4x2(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..88b0d2c 100644
--- a/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x2/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4x2 m() {
+  t = (t + 1.0f);
+  return float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+}
+void f() {
+  half4x2 v = half4x2(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half4x2 v = half4x2(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.msl
index eea749f..cd3acca 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.msl
index 30e3527..e8dcd7d 100644
--- a/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x2/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4x2 u = half4x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h), half2(7.0h, 8.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half4x2 u = half4x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h), half2(7.0h, 8.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..1f0f180 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4x2 u = half4x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h), half2(7.0h, 8.0h));
+void f() {
+  float4x2 v = float4x2(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half4x2 u = half4x2(half2(1.0h, 2.0h), half2(3.0h, 4.0h), half2(5.0h, 6.0h), half2(7.0h, 8.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float4x2 v = float4x2(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..71a5408 100644
--- a/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x2/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+void f() {
+  half4x2 v = half4x2(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float4x2 u = float4x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f), float2(5.0f, 6.0f), float2(7.0f, 8.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half4x2 v = half4x2(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..73a9b26 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4x3 m() {
+  t = (t + 1.0h);
+  return half4x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h), half3(10.0h, 11.0h, 12.0h));
+}
+void f() {
+  float4x3 v = float4x3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float4x3 v = float4x3(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..d114c7e 100644
--- a/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x3/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4x3 m() {
+  t = (t + 1.0f);
+  return float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+}
+void f() {
+  half4x3 v = half4x3(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half4x3 v = half4x3(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.msl
index 67a2e51..ae07c18 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4x3 u = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float4x3 u = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.msl
index ffb2c81..3b45939 100644
--- a/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x3/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4x3 u = half4x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h), half3(10.0h, 11.0h, 12.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half4x3 u = half4x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h), half3(10.0h, 11.0h, 12.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..194b990 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4x3 u = half4x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h), half3(10.0h, 11.0h, 12.0h));
+void f() {
+  float4x3 v = float4x3(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half4x3 u = half4x3(half3(1.0h, 2.0h, 3.0h), half3(4.0h, 5.0h, 6.0h), half3(7.0h, 8.0h, 9.0h), half3(10.0h, 11.0h, 12.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float4x3 v = float4x3(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..14eb949 100644
--- a/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x3/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4x3 u = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+void f() {
+  half4x3 v = half4x3(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float4x3 u = float4x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f), float3(10.0f, 11.0f, 12.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half4x3 v = half4x3(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..3a778cc 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4x4 m() {
+  t = (t + 1.0h);
+  return half4x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h), half4(13.0h, 14.0h, 15.0h, 16.0h));
+}
+void f() {
+  float4x4 v = float4x4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: warning: unused variable 'v' [-Wunused-variable]
+  float4x4 v = float4x4(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..7a1413d 100644
--- a/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x4/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4x4 m() {
+  t = (t + 1.0f);
+  return float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+}
+void f() {
+  half4x4 v = half4x4(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: warning: unused variable 'v' [-Wunused-variable]
+  half4x4 v = half4x4(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.msl
index 675c2ec..776b0de 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4x4 u = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float4x4 u = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+                ^
+
diff --git a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.msl
index 1b90074..5b7f4b4 100644
--- a/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x4/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4x4 u = half4x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h), half4(13.0h, 14.0h, 15.0h, 16.0h));
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half4x4 u = half4x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h), half4(13.0h, 14.0h, 15.0h, 16.0h));
+               ^
+
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..b61f23a 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4x4 u = half4x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h), half4(13.0h, 14.0h, 15.0h, 16.0h));
+void f() {
+  float4x4 v = float4x4(u);
+}
+program_source:4:16: error: program scope variable must reside in constant address space
+thread half4x4 u = half4x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h), half4(13.0h, 14.0h, 15.0h, 16.0h));
+               ^
+program_source:6:12: warning: unused variable 'v' [-Wunused-variable]
+  float4x4 v = float4x4(u);
+           ^
+
diff --git a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..c7875aa3 100644
--- a/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/mat4x4/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4x4 u = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+void f() {
+  half4x4 v = half4x4(u);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float4x4 u = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
+                ^
+program_source:6:11: warning: unused variable 'v' [-Wunused-variable]
+  half4x4 v = half4x4(u);
+          ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.msl
index efdd3b1..78dcb64 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+void f() {
+  half v = half(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  half v = half(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.msl
index efdd3b1..24c12d2 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+void f() {
+  float v = float(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  float v = float(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.msl
index efdd3b1..d514d77 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+void f() {
+  int v = int(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:7: warning: unused variable 'v' [-Wunused-variable]
+  int v = int(m());
+      ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.msl
index efdd3b1..96dea8f 100644
--- a/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool m() {
+  t = true;
+  return bool(t);
+}
+void f() {
+  uint v = uint(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  uint v = uint(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.msl
index efdd3b1..d3ee187 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half m() {
+  t = 1.0h;
+  return half(t);
+}
+void f() {
+  bool v = bool(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  bool v = bool(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..564ef4d 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half m() {
+  t = 1.0h;
+  return half(t);
+}
+void f() {
+  float v = float(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  float v = float(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.msl
index efdd3b1..e68341c 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half m() {
+  t = 1.0h;
+  return half(t);
+}
+void f() {
+  int v = tint_f16_to_i32(m());
+}
+int tint_f16_to_i32(half value) {
+  return select(2147483647, select((-2147483647 - 1), int(value), (value >= -65504.0h)), (value <= 65504.0h));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:11: error: use of undeclared identifier 'tint_f16_to_i32'
+  int v = tint_f16_to_i32(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.msl
index efdd3b1..68eb209 100644
--- a/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half m() {
+  t = 1.0h;
+  return half(t);
+}
+void f() {
+  uint v = tint_f16_to_u32(m());
+}
+uint tint_f16_to_u32(half value) {
+  return select(4294967295u, select(0u, uint(value), (value >= 0.0h)), (value <= 65504.0h));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: error: use of undeclared identifier 'tint_f16_to_u32'
+  uint v = tint_f16_to_u32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.msl
index efdd3b1..ad3f327 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+void f() {
+  bool v = bool(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  bool v = bool(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..aa75a86 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+void f() {
+  half v = half(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  half v = half(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.msl
index efdd3b1..adb9d94 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+void f() {
+  int v = tint_f32_to_i32(m());
+}
+int tint_f32_to_i32(float value) {
+  return select(2147483647, select((-2147483647 - 1), int(value), (value >= -2147483648.0f)), (value <= 2147483520.0f));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:11: error: use of undeclared identifier 'tint_f32_to_i32'
+  int v = tint_f32_to_i32(m());
+          ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.msl
index efdd3b1..39a5e78 100644
--- a/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float m() {
+  t = 1.0f;
+  return float(t);
+}
+void f() {
+  uint v = tint_f32_to_u32(m());
+}
+uint tint_f32_to_u32(float value) {
+  return select(4294967295u, select(0u, uint(value), (value >= 0.0f)), (value <= 4294967040.0f));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:12: error: use of undeclared identifier 'tint_f32_to_u32'
+  uint v = tint_f32_to_u32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.msl
index efdd3b1..5612162 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+void f() {
+  bool v = bool(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  bool v = bool(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.msl
index efdd3b1..5fd4bbe 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+void f() {
+  half v = half(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  half v = half(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.msl
index efdd3b1..ee12374 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+void f() {
+  float v = float(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  float v = float(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.msl
index efdd3b1..02f7b22 100644
--- a/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int m() {
+  t = 1;
+  return int(t);
+}
+void f() {
+  uint v = uint(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  uint v = uint(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.msl
index efdd3b1..1d846fd 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+void f() {
+  bool v = bool(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  bool v = bool(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.msl
index efdd3b1..fc7c978 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+void f() {
+  half v = half(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  half v = half(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.msl
index efdd3b1..3e47710 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+void f() {
+  float v = float(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  float v = float(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.msl
index efdd3b1..17d1d2d 100644
--- a/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/function/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint m() {
+  t = 1u;
+  return uint(t);
+}
+void f() {
+  int v = int(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:7: warning: unused variable 'v' [-Wunused-variable]
+  int v = int(m());
+      ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.msl
index 570be9b..0537133 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half u = 1.0h;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.msl
index 9db9db8..98e1b9e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float u = 1.0f;
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.msl
index 47bca0d..909370a 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int u = 1;
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.msl
index 3126801..92c1dc7 100644
--- a/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/bool-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint u = 1u;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.msl
index c4b1953..741bd6e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool u = true;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.msl
index 9db9db8..98e1b9e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float u = 1.0f;
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.msl
index 47bca0d..909370a 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int u = 1;
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.msl
index 3126801..92c1dc7 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f16-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint u = 1u;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.msl
index c4b1953..741bd6e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool u = true;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.msl
index 570be9b..0537133 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half u = 1.0h;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.msl
index 47bca0d..909370a 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int u = 1;
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.msl
index 3126801..92c1dc7 100644
--- a/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/f32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint u = 1u;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.msl
index c4b1953..741bd6e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool u = true;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.msl
index 570be9b..0537133 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half u = 1.0h;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.msl
index 9db9db8..98e1b9e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float u = 1.0f;
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.msl
index 3126801..92c1dc7 100644
--- a/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/i32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint u = 1u;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.msl
index c4b1953..741bd6e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool u = true;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.msl
index 570be9b..0537133 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half u = 1.0h;
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.msl
index 9db9db8..98e1b9e 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float u = 1.0f;
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.msl
index 47bca0d..909370a 100644
--- a/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/literal/u32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int u = 1;
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.msl
index 47c8fbc..9a7c7a3 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool u = true;
+void f() {
+  half const v = half(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  half const v = half(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.msl
index 47c8fbc..7a39c4e 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool u = true;
+void f() {
+  float const v = float(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  float const v = float(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.msl
index 47c8fbc..a1bd4a1 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool u = true;
+void f() {
+  int const v = int(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+program_source:6:13: warning: unused variable 'v' [-Wunused-variable]
+  int const v = int(u);
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.msl
index 47c8fbc..6ac5d0b 100644
--- a/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool u = true;
+void f() {
+  uint const v = uint(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool u = true;
+            ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  uint const v = uint(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.msl
index 47c8fbc..c47e547 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half u = 1.0h;
+void f() {
+  bool const v = bool(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  bool const v = bool(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..5cae5f8 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half u = 1.0h;
+void f() {
+  float const v = float(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  float const v = float(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.msl
index 47c8fbc..1ac2537 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half u = 1.0h;
+void f() {
+  int const v = tint_f16_to_i32(u);
+}
+int tint_f16_to_i32(half value) {
+  return select(2147483647, select((-2147483647 - 1), int(value), (value >= -65504.0h)), (value <= 65504.0h));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+program_source:6:13: warning: unused variable 'v' [-Wunused-variable]
+  int const v = tint_f16_to_i32(u);
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.msl
index 47c8fbc..15500f0 100644
--- a/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half u = 1.0h;
+void f() {
+  uint const v = tint_f16_to_u32(u);
+}
+uint tint_f16_to_u32(half value) {
+  return select(4294967295u, select(0u, uint(value), (value >= 0.0h)), (value <= 65504.0h));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half u = 1.0h;
+            ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  uint const v = tint_f16_to_u32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.msl
index 47c8fbc..f08bb37 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float u = 1.0f;
+void f() {
+  bool const v = bool(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  bool const v = bool(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..416fc94 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float u = 1.0f;
+void f() {
+  half const v = half(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  half const v = half(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.msl
index 47c8fbc..0b8ec9b 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float u = 1.0f;
+void f() {
+  int const v = tint_f32_to_i32(u);
+}
+int tint_f32_to_i32(float value) {
+  return select(2147483647, select((-2147483647 - 1), int(value), (value >= -2147483648.0f)), (value <= 2147483520.0f));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+program_source:6:13: warning: unused variable 'v' [-Wunused-variable]
+  int const v = tint_f32_to_i32(u);
+            ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.msl
index 47c8fbc..63e7c30 100644
--- a/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float u = 1.0f;
+void f() {
+  uint const v = tint_f32_to_u32(u);
+}
+uint tint_f32_to_u32(float value) {
+  return select(4294967295u, select(0u, uint(value), (value >= 0.0f)), (value <= 4294967040.0f));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float u = 1.0f;
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  uint const v = tint_f32_to_u32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.msl
index 47c8fbc..a7223d2 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int u = 1;
+void f() {
+  bool const v = bool(u);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  bool const v = bool(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.msl
index 47c8fbc..c3c8bd3 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int u = 1;
+void f() {
+  half const v = half(u);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  half const v = half(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.msl
index 47c8fbc..2ed4a9f 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int u = 1;
+void f() {
+  float const v = float(u);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  float const v = float(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.msl
index 47c8fbc..60d815a 100644
--- a/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int u = 1;
+void f() {
+  uint const v = uint(u);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int u = 1;
+           ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  uint const v = uint(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.msl
index 47c8fbc..eb0f0cf 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint u = 1u;
+void f() {
+  bool const v = bool(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  bool const v = bool(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.msl
index 47c8fbc..a78cc38 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint u = 1u;
+void f() {
+  half const v = half(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  half const v = half(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.msl
index 47c8fbc..4c78dc5 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint u = 1u;
+void f() {
+  float const v = float(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  float const v = float(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.msl
index 47c8fbc..64fe8bd 100644
--- a/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/scalar/var/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint u = 1u;
+void f() {
+  int const v = int(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint u = 1u;
+            ^
+program_source:6:13: warning: unused variable 'v' [-Wunused-variable]
+  int const v = int(u);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.msl
index efdd3b1..c262dd1 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool2 m() {
+  t = true;
+  return bool2(t);
+}
+void f() {
+  half2 v = half2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half2 v = half2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.msl
index efdd3b1..ca2cdfd 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool2 m() {
+  t = true;
+  return bool2(t);
+}
+void f() {
+  float2 v = float2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float2 v = float2(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.msl
index efdd3b1..3e19b0d 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool2 m() {
+  t = true;
+  return bool2(t);
+}
+void f() {
+  int2 v = int2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  int2 v = int2(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.msl
index efdd3b1..43dba17 100644
--- a/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool2 m() {
+  t = true;
+  return bool2(t);
+}
+void f() {
+  uint2 v = uint2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  uint2 v = uint2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.msl
index efdd3b1..f8b94b4 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2 m() {
+  t = 1.0h;
+  return half2(t);
+}
+void f() {
+  bool2 v = bool2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool2 v = bool2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..fece1f4 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2 m() {
+  t = 1.0h;
+  return half2(t);
+}
+void f() {
+  float2 v = float2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float2 v = float2(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.msl
index efdd3b1..c0e0044 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2 m() {
+  t = 1.0h;
+  return half2(t);
+}
+void f() {
+  int2 v = tint_v2f16_to_v2i32(m());
+}
+int2 tint_v2f16_to_v2i32(half2 value) {
+  return select(int2(2147483647), select(int2((-2147483647 - 1)), int2(value), (value >= half2(-65504.0h))), (value <= half2(65504.0h)));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: error: use of undeclared identifier 'tint_v2f16_to_v2i32'
+  int2 v = tint_v2f16_to_v2i32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.msl
index efdd3b1..cbb012e 100644
--- a/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half2 m() {
+  t = 1.0h;
+  return half2(t);
+}
+void f() {
+  uint2 v = tint_v2f16_to_v2u32(m());
+}
+uint2 tint_v2f16_to_v2u32(half2 value) {
+  return select(uint2(4294967295u), select(uint2(0u), uint2(value), (value >= half2(0.0h))), (value <= half2(65504.0h)));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:13: error: use of undeclared identifier 'tint_v2f16_to_v2u32'
+  uint2 v = tint_v2f16_to_v2u32(m());
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.msl
index efdd3b1..04cd450 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2(t);
+}
+void f() {
+  bool2 v = bool2(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool2 v = bool2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..0facd6b 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2(t);
+}
+void f() {
+  half2 v = half2(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half2 v = half2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.msl
index efdd3b1..dfc7adb 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2(t);
+}
+void f() {
+  int2 v = tint_v2f32_to_v2i32(m());
+}
+int2 tint_v2f32_to_v2i32(float2 value) {
+  return select(int2(2147483647), select(int2((-2147483647 - 1)), int2(value), (value >= float2(-2147483648.0f))), (value <= float2(2147483520.0f)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:12: error: use of undeclared identifier 'tint_v2f32_to_v2i32'
+  int2 v = tint_v2f32_to_v2i32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.msl
index efdd3b1..3d47e8d 100644
--- a/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float2 m() {
+  t = 1.0f;
+  return float2(t);
+}
+void f() {
+  uint2 v = tint_v2f32_to_v2u32(m());
+}
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return select(uint2(4294967295u), select(uint2(0u), uint2(value), (value >= float2(0.0f))), (value <= float2(4294967040.0f)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:13: error: use of undeclared identifier 'tint_v2f32_to_v2u32'
+  uint2 v = tint_v2f32_to_v2u32(m());
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.msl
index efdd3b1..a9f5542 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int2 m() {
+  t = 1;
+  return int2(t);
+}
+void f() {
+  bool2 v = bool2(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool2 v = bool2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.msl
index efdd3b1..efb482f 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int2 m() {
+  t = 1;
+  return int2(t);
+}
+void f() {
+  half2 v = half2(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half2 v = half2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.msl
index efdd3b1..6c9a42f 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int2 m() {
+  t = 1;
+  return int2(t);
+}
+void f() {
+  float2 v = float2(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float2 v = float2(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.msl
index efdd3b1..b5a1283 100644
--- a/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int2 m() {
+  t = 1;
+  return int2(t);
+}
+void f() {
+  uint2 v = uint2(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  uint2 v = uint2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.msl
index efdd3b1..e986a96 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2(t);
+}
+void f() {
+  bool2 v = bool2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool2 v = bool2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.msl
index efdd3b1..8ca1118 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2(t);
+}
+void f() {
+  half2 v = half2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half2 v = half2(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.msl
index efdd3b1..25abd48 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2(t);
+}
+void f() {
+  float2 v = float2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float2 v = float2(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.msl
index efdd3b1..57e6e8d 100644
--- a/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/function/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint2 m() {
+  t = 1u;
+  return uint2(t);
+}
+void f() {
+  int2 v = int2(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  int2 v = int2(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.msl
index 7bf2352..c40812b 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2 u = half2(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.msl
index b470051..8fbe300 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 u = float2(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.msl
index a32b883..b792e98 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 u = int2(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.msl
index 6bfac8e..c263abf 100644
--- a/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/bool-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint2 u = uint2(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.msl
index a616059..fe06240 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool2 u = bool2(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.msl
index b470051..8fbe300 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 u = float2(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.msl
index a32b883..b792e98 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 u = int2(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.msl
index 6bfac8e..c263abf 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f16-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint2 u = uint2(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.msl
index a616059..fe06240 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool2 u = bool2(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.msl
index 7bf2352..c40812b 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2 u = half2(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.msl
index a32b883..b792e98 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 u = int2(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.msl
index 6bfac8e..c263abf 100644
--- a/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/f32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint2 u = uint2(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.msl
index a616059..fe06240 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool2 u = bool2(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.msl
index 7bf2352..c40812b 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2 u = half2(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.msl
index b470051..8fbe300 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 u = float2(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.msl
index 6bfac8e..c263abf 100644
--- a/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/i32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint2 u = uint2(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.msl
index a616059..fe06240 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool2 u = bool2(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.msl
index 7bf2352..c40812b 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2 u = half2(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.msl
index b470051..8fbe300 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 u = float2(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.msl
index a32b883..b792e98 100644
--- a/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/literal/u32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 u = int2(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.msl
index 47c8fbc..1a5995a 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool2 u = bool2(true);
+void f() {
+  half2 const v = half2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half2 const v = half2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.msl
index 47c8fbc..e706de1 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool2 u = bool2(true);
+void f() {
+  float2 const v = float2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float2 const v = float2(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.msl
index 47c8fbc..5fc4c3a 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool2 u = bool2(true);
+void f() {
+  int2 const v = int2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int2 const v = int2(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.msl
index 47c8fbc..109a7aa 100644
--- a/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool2 u = bool2(true);
+void f() {
+  uint2 const v = uint2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 u = bool2(true);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint2 const v = uint2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.msl
index 47c8fbc..9201bc2 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2 u = half2(1.0h);
+void f() {
+  bool2 const v = bool2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool2 const v = bool2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..87084ed 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2 u = half2(1.0h);
+void f() {
+  float2 const v = float2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float2 const v = float2(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.msl
index 47c8fbc..5b84480 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2 u = half2(1.0h);
+void f() {
+  int2 const v = tint_v2f16_to_v2i32(u);
+}
+int2 tint_v2f16_to_v2i32(half2 value) {
+  return select(int2(2147483647), select(int2((-2147483647 - 1)), int2(value), (value >= half2(-65504.0h))), (value <= half2(65504.0h)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int2 const v = tint_v2f16_to_v2i32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.msl
index 47c8fbc..e95e7b0 100644
--- a/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half2 u = half2(1.0h);
+void f() {
+  uint2 const v = tint_v2f16_to_v2u32(u);
+}
+uint2 tint_v2f16_to_v2u32(half2 value) {
+  return select(uint2(4294967295u), select(uint2(0u), uint2(value), (value >= half2(0.0h))), (value <= half2(65504.0h)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 u = half2(1.0h);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint2 const v = tint_v2f16_to_v2u32(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.msl
index 47c8fbc..ed83e61 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 u = float2(1.0f);
+void f() {
+  bool2 const v = bool2(u);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool2 const v = bool2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..8c74b04 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 u = float2(1.0f);
+void f() {
+  half2 const v = half2(u);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half2 const v = half2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.msl
index 47c8fbc..9a98687 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 u = float2(1.0f);
+void f() {
+  int2 const v = tint_v2f32_to_v2i32(u);
+}
+int2 tint_v2f32_to_v2i32(float2 value) {
+  return select(int2(2147483647), select(int2((-2147483647 - 1)), int2(value), (value >= float2(-2147483648.0f))), (value <= float2(2147483520.0f)));
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int2 const v = tint_v2f32_to_v2i32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.msl
index 47c8fbc..5b30270 100644
--- a/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 u = float2(1.0f);
+void f() {
+  uint2 const v = tint_v2f32_to_v2u32(u);
+}
+uint2 tint_v2f32_to_v2u32(float2 value) {
+  return select(uint2(4294967295u), select(uint2(0u), uint2(value), (value >= float2(0.0f))), (value <= float2(4294967040.0f)));
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 u = float2(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint2 const v = tint_v2f32_to_v2u32(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.msl
index 47c8fbc..30d4554 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int2 u = int2(1);
+void f() {
+  bool2 const v = bool2(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool2 const v = bool2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.msl
index 47c8fbc..e24f750 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int2 u = int2(1);
+void f() {
+  half2 const v = half2(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half2 const v = half2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.msl
index 47c8fbc..ef6c69a 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int2 u = int2(1);
+void f() {
+  float2 const v = float2(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float2 const v = float2(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.msl
index 47c8fbc..7ece230 100644
--- a/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int2 u = int2(1);
+void f() {
+  uint2 const v = uint2(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 u = int2(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint2 const v = uint2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.msl
index 47c8fbc..80d56d6 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint2 u = uint2(1u);
+void f() {
+  bool2 const v = bool2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool2 const v = bool2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.msl
index 47c8fbc..8f4df73 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint2 u = uint2(1u);
+void f() {
+  half2 const v = half2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half2 const v = half2(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.msl
index 47c8fbc..9f13f4f 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint2 u = uint2(1u);
+void f() {
+  float2 const v = float2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float2 const v = float2(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.msl
index 47c8fbc..ae43f15 100644
--- a/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec2/var/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint2 u = uint2(1u);
+void f() {
+  int2 const v = int2(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(1u);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int2 const v = int2(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.msl
index efdd3b1..bf54750 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool3 m() {
+  t = true;
+  return bool3(t);
+}
+void f() {
+  half3 v = half3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half3 v = half3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.msl
index efdd3b1..bb165f6 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool3 m() {
+  t = true;
+  return bool3(t);
+}
+void f() {
+  float3 v = float3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float3 v = float3(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.msl
index efdd3b1..844ae7a 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool3 m() {
+  t = true;
+  return bool3(t);
+}
+void f() {
+  int3 v = int3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  int3 v = int3(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.msl
index efdd3b1..2f0b369 100644
--- a/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool3 m() {
+  t = true;
+  return bool3(t);
+}
+void f() {
+  uint3 v = uint3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  uint3 v = uint3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.msl
index efdd3b1..3def4e4 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3 m() {
+  t = 1.0h;
+  return half3(t);
+}
+void f() {
+  bool3 v = bool3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool3 v = bool3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..0ae8001 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3 m() {
+  t = 1.0h;
+  return half3(t);
+}
+void f() {
+  float3 v = float3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float3 v = float3(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.msl
index efdd3b1..d4bc367 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3 m() {
+  t = 1.0h;
+  return half3(t);
+}
+void f() {
+  int3 v = tint_v3f16_to_v3i32(m());
+}
+int3 tint_v3f16_to_v3i32(half3 value) {
+  return select(int3(2147483647), select(int3((-2147483647 - 1)), int3(value), (value >= half3(-65504.0h))), (value <= half3(65504.0h)));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: error: use of undeclared identifier 'tint_v3f16_to_v3i32'
+  int3 v = tint_v3f16_to_v3i32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.msl
index efdd3b1..1efe82d 100644
--- a/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half3 m() {
+  t = 1.0h;
+  return half3(t);
+}
+void f() {
+  uint3 v = tint_v3f16_to_v3u32(m());
+}
+uint3 tint_v3f16_to_v3u32(half3 value) {
+  return select(uint3(4294967295u), select(uint3(0u), uint3(value), (value >= half3(0.0h))), (value <= half3(65504.0h)));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:13: error: use of undeclared identifier 'tint_v3f16_to_v3u32'
+  uint3 v = tint_v3f16_to_v3u32(m());
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.msl
index efdd3b1..13c4b62 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3(t);
+}
+void f() {
+  bool3 v = bool3(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool3 v = bool3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..0ea1407 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3(t);
+}
+void f() {
+  half3 v = half3(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half3 v = half3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.msl
index efdd3b1..fe64085 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3(t);
+}
+void f() {
+  int3 v = tint_v3f32_to_v3i32(m());
+}
+int3 tint_v3f32_to_v3i32(float3 value) {
+  return select(int3(2147483647), select(int3((-2147483647 - 1)), int3(value), (value >= float3(-2147483648.0f))), (value <= float3(2147483520.0f)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:12: error: use of undeclared identifier 'tint_v3f32_to_v3i32'
+  int3 v = tint_v3f32_to_v3i32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.msl
index efdd3b1..15b7591 100644
--- a/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float3 m() {
+  t = 1.0f;
+  return float3(t);
+}
+void f() {
+  uint3 v = tint_v3f32_to_v3u32(m());
+}
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return select(uint3(4294967295u), select(uint3(0u), uint3(value), (value >= float3(0.0f))), (value <= float3(4294967040.0f)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:13: error: use of undeclared identifier 'tint_v3f32_to_v3u32'
+  uint3 v = tint_v3f32_to_v3u32(m());
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.msl
index efdd3b1..0266ae4 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int3 m() {
+  t = 1;
+  return int3(t);
+}
+void f() {
+  bool3 v = bool3(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool3 v = bool3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.msl
index efdd3b1..39dccf2 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int3 m() {
+  t = 1;
+  return int3(t);
+}
+void f() {
+  half3 v = half3(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half3 v = half3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.msl
index efdd3b1..e6eded8 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int3 m() {
+  t = 1;
+  return int3(t);
+}
+void f() {
+  float3 v = float3(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float3 v = float3(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.msl
index efdd3b1..a08fb57 100644
--- a/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int3 m() {
+  t = 1;
+  return int3(t);
+}
+void f() {
+  uint3 v = uint3(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  uint3 v = uint3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.msl
index efdd3b1..e7557f0 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3(t);
+}
+void f() {
+  bool3 v = bool3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool3 v = bool3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.msl
index efdd3b1..3a19e1c 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3(t);
+}
+void f() {
+  half3 v = half3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half3 v = half3(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.msl
index efdd3b1..d17e18e 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3(t);
+}
+void f() {
+  float3 v = float3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float3 v = float3(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.msl
index efdd3b1..0dda7ac 100644
--- a/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/function/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint3 m() {
+  t = 1u;
+  return uint3(t);
+}
+void f() {
+  int3 v = int3(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  int3 v = int3(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.msl
index 1fe00b9..8b87f52 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3 u = half3(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.msl
index b47b481..b56bf5e 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 u = float3(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.msl
index 5c2d75f..d496a7d 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 u = int3(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.msl
index ac08e95..1a58077 100644
--- a/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/bool-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint3 u = uint3(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.msl
index 9256549..11124d1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool3 u = bool3(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.msl
index b47b481..b56bf5e 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 u = float3(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.msl
index 5c2d75f..d496a7d 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 u = int3(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.msl
index ac08e95..1a58077 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f16-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint3 u = uint3(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.msl
index 9256549..11124d1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool3 u = bool3(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.msl
index 1fe00b9..8b87f52 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3 u = half3(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.msl
index 5c2d75f..d496a7d 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 u = int3(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.msl
index ac08e95..1a58077 100644
--- a/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/f32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint3 u = uint3(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.msl
index 9256549..11124d1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool3 u = bool3(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.msl
index 1fe00b9..8b87f52 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3 u = half3(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.msl
index b47b481..b56bf5e 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 u = float3(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.msl
index ac08e95..1a58077 100644
--- a/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/i32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint3 u = uint3(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.msl
index 9256549..11124d1 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool3 u = bool3(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.msl
index 1fe00b9..8b87f52 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3 u = half3(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.msl
index b47b481..b56bf5e 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 u = float3(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.msl
index 5c2d75f..d496a7d 100644
--- a/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/literal/u32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 u = int3(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.msl
index 47c8fbc..d64b875 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool3 u = bool3(true);
+void f() {
+  half3 const v = half3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half3 const v = half3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.msl
index 47c8fbc..0c66595 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool3 u = bool3(true);
+void f() {
+  float3 const v = float3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float3 const v = float3(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.msl
index 47c8fbc..54dc6c7 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool3 u = bool3(true);
+void f() {
+  int3 const v = int3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int3 const v = int3(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.msl
index 47c8fbc..b9c2e9f 100644
--- a/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool3 u = bool3(true);
+void f() {
+  uint3 const v = uint3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 u = bool3(true);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint3 const v = uint3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.msl
index 47c8fbc..db580cb 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3 u = half3(1.0h);
+void f() {
+  bool3 const v = bool3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool3 const v = bool3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..fa83c74 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3 u = half3(1.0h);
+void f() {
+  float3 const v = float3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float3 const v = float3(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.msl
index 47c8fbc..bdd22f9 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3 u = half3(1.0h);
+void f() {
+  int3 const v = tint_v3f16_to_v3i32(u);
+}
+int3 tint_v3f16_to_v3i32(half3 value) {
+  return select(int3(2147483647), select(int3((-2147483647 - 1)), int3(value), (value >= half3(-65504.0h))), (value <= half3(65504.0h)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int3 const v = tint_v3f16_to_v3i32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.msl
index 47c8fbc..6ef6399 100644
--- a/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half3 u = half3(1.0h);
+void f() {
+  uint3 const v = tint_v3f16_to_v3u32(u);
+}
+uint3 tint_v3f16_to_v3u32(half3 value) {
+  return select(uint3(4294967295u), select(uint3(0u), uint3(value), (value >= half3(0.0h))), (value <= half3(65504.0h)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 u = half3(1.0h);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint3 const v = tint_v3f16_to_v3u32(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.msl
index 47c8fbc..6e61818 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3 u = float3(1.0f);
+void f() {
+  bool3 const v = bool3(u);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool3 const v = bool3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..fce9964 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3 u = float3(1.0f);
+void f() {
+  half3 const v = half3(u);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half3 const v = half3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.msl
index 47c8fbc..90a82a1 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3 u = float3(1.0f);
+void f() {
+  int3 const v = tint_v3f32_to_v3i32(u);
+}
+int3 tint_v3f32_to_v3i32(float3 value) {
+  return select(int3(2147483647), select(int3((-2147483647 - 1)), int3(value), (value >= float3(-2147483648.0f))), (value <= float3(2147483520.0f)));
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int3 const v = tint_v3f32_to_v3i32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.msl
index 47c8fbc..08f0a5f 100644
--- a/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3 u = float3(1.0f);
+void f() {
+  uint3 const v = tint_v3f32_to_v3u32(u);
+}
+uint3 tint_v3f32_to_v3u32(float3 value) {
+  return select(uint3(4294967295u), select(uint3(0u), uint3(value), (value >= float3(0.0f))), (value <= float3(4294967040.0f)));
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 u = float3(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint3 const v = tint_v3f32_to_v3u32(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.msl
index 47c8fbc..75afebc 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 u = int3(1);
+void f() {
+  bool3 const v = bool3(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool3 const v = bool3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.msl
index 47c8fbc..322ccfe 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 u = int3(1);
+void f() {
+  half3 const v = half3(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half3 const v = half3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.msl
index 47c8fbc..87f86ab 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 u = int3(1);
+void f() {
+  float3 const v = float3(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float3 const v = float3(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.msl
index 47c8fbc..b054a1c 100644
--- a/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 u = int3(1);
+void f() {
+  uint3 const v = uint3(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 u = int3(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint3 const v = uint3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.msl
index 47c8fbc..f46bf61 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 u = uint3(1u);
+void f() {
+  bool3 const v = bool3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool3 const v = bool3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.msl
index 47c8fbc..267905c 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 u = uint3(1u);
+void f() {
+  half3 const v = half3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half3 const v = half3(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.msl
index 47c8fbc..3991655 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 u = uint3(1u);
+void f() {
+  float3 const v = float3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float3 const v = float3(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.msl
index 47c8fbc..0d5302d 100644
--- a/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec3/var/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 u = uint3(1u);
+void f() {
+  int3 const v = int3(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(1u);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int3 const v = int3(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.msl
index efdd3b1..f80ff7a 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool4 m() {
+  t = true;
+  return bool4(t);
+}
+void f() {
+  half4 v = half4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half4 v = half4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.msl
index efdd3b1..2eabe06 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool4 m() {
+  t = true;
+  return bool4(t);
+}
+void f() {
+  float4 v = float4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float4 v = float4(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.msl
index efdd3b1..85816d1 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool4 m() {
+  t = true;
+  return bool4(t);
+}
+void f() {
+  int4 v = int4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  int4 v = int4(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.msl
index efdd3b1..7635de9 100644
--- a/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool t = false;
+bool4 m() {
+  t = true;
+  return bool4(t);
+}
+void f() {
+  uint4 v = uint4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool t = false;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  uint4 v = uint4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.msl
index efdd3b1..79b149a 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4 m() {
+  t = 1.0h;
+  return half4(t);
+}
+void f() {
+  bool4 v = bool4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool4 v = bool4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.msl
index efdd3b1..21dac4d 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4 m() {
+  t = 1.0h;
+  return half4(t);
+}
+void f() {
+  float4 v = float4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float4 v = float4(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.msl
index efdd3b1..8b1cd78 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4 m() {
+  t = 1.0h;
+  return half4(t);
+}
+void f() {
+  int4 v = tint_v4f16_to_v4i32(m());
+}
+int4 tint_v4f16_to_v4i32(half4 value) {
+  return select(int4(2147483647), select(int4((-2147483647 - 1)), int4(value), (value >= half4(-65504.0h))), (value <= half4(65504.0h)));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:12: error: use of undeclared identifier 'tint_v4f16_to_v4i32'
+  int4 v = tint_v4f16_to_v4i32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.msl
index efdd3b1..719daff 100644
--- a/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half t = 0.0h;
+half4 m() {
+  t = 1.0h;
+  return half4(t);
+}
+void f() {
+  uint4 v = tint_v4f16_to_v4u32(m());
+}
+uint4 tint_v4f16_to_v4u32(half4 value) {
+  return select(uint4(4294967295u), select(uint4(0u), uint4(value), (value >= half4(0.0h))), (value <= half4(65504.0h)));
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread half t = 0.0h;
+            ^
+program_source:10:13: error: use of undeclared identifier 'tint_v4f16_to_v4u32'
+  uint4 v = tint_v4f16_to_v4u32(m());
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.msl
index efdd3b1..d13ad6f 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4(t);
+}
+void f() {
+  bool4 v = bool4(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool4 v = bool4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.msl
index efdd3b1..ede73c8 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4(t);
+}
+void f() {
+  half4 v = half4(m());
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half4 v = half4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.msl
index efdd3b1..7b854b5 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4(t);
+}
+void f() {
+  int4 v = tint_v4f32_to_v4i32(m());
+}
+int4 tint_v4f32_to_v4i32(float4 value) {
+  return select(int4(2147483647), select(int4((-2147483647 - 1)), int4(value), (value >= float4(-2147483648.0f))), (value <= float4(2147483520.0f)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:12: error: use of undeclared identifier 'tint_v4f32_to_v4i32'
+  int4 v = tint_v4f32_to_v4i32(m());
+           ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.msl
index efdd3b1..6279399 100644
--- a/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float t = 0.0f;
+float4 m() {
+  t = 1.0f;
+  return float4(t);
+}
+void f() {
+  uint4 v = tint_v4f32_to_v4u32(m());
+}
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return select(uint4(4294967295u), select(uint4(0u), uint4(value), (value >= float4(0.0f))), (value <= float4(4294967040.0f)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float t = 0.0f;
+             ^
+program_source:10:13: error: use of undeclared identifier 'tint_v4f32_to_v4u32'
+  uint4 v = tint_v4f32_to_v4u32(m());
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.msl
index efdd3b1..ad0f1ac 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int4 m() {
+  t = 1;
+  return int4(t);
+}
+void f() {
+  bool4 v = bool4(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool4 v = bool4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.msl
index efdd3b1..055382a 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int4 m() {
+  t = 1;
+  return int4(t);
+}
+void f() {
+  half4 v = half4(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half4 v = half4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.msl
index efdd3b1..4ea3701 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int4 m() {
+  t = 1;
+  return int4(t);
+}
+void f() {
+  float4 v = float4(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float4 v = float4(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.msl
index efdd3b1..c930eac 100644
--- a/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int t = 0;
+int4 m() {
+  t = 1;
+  return int4(t);
+}
+void f() {
+  uint4 v = uint4(m());
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int t = 0;
+           ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  uint4 v = uint4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.msl
index efdd3b1..5f41f0f 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4(t);
+}
+void f() {
+  bool4 v = bool4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  bool4 v = bool4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.msl
index efdd3b1..c553f60 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4(t);
+}
+void f() {
+  half4 v = half4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:9: warning: unused variable 'v' [-Wunused-variable]
+  half4 v = half4(m());
+        ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.msl
index efdd3b1..e547733 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4(t);
+}
+void f() {
+  float4 v = float4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:10: warning: unused variable 'v' [-Wunused-variable]
+  float4 v = float4(m());
+         ^
+
diff --git a/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.msl
index efdd3b1..33b2a17 100644
--- a/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/function/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint t = 0u;
+uint4 m() {
+  t = 1u;
+  return uint4(t);
+}
+void f() {
+  int4 v = int4(m());
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint t = 0u;
+            ^
+program_source:10:8: warning: unused variable 'v' [-Wunused-variable]
+  int4 v = int4(m());
+       ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.msl
index 7d9d594..d6d554f 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4 u = half4(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.msl
index a87ee3f..b8efcf6 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 u = float4(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.msl
index 785cd97..f2de93d 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 u = int4(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.msl
index d1e3c40..0dabadb 100644
--- a/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/bool-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint4 u = uint4(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.msl
index df7652e..7757036 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool4 u = bool4(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.msl
index a87ee3f..b8efcf6 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 u = float4(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.msl
index 785cd97..f2de93d 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 u = int4(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.msl
index d1e3c40..0dabadb 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f16-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint4 u = uint4(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.msl
index df7652e..7757036 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool4 u = bool4(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.msl
index 7d9d594..d6d554f 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4 u = half4(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.msl
index 785cd97..f2de93d 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 u = int4(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.msl
index d1e3c40..0dabadb 100644
--- a/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/f32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint4 u = uint4(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.msl
index df7652e..7757036 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool4 u = bool4(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.msl
index 7d9d594..d6d554f 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4 u = half4(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.msl
index a87ee3f..b8efcf6 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 u = float4(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.msl
index d1e3c40..0dabadb 100644
--- a/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/i32-u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint4 u = uint4(1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.msl
index df7652e..7757036 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool4 u = bool4(true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.msl
index 7d9d594..d6d554f 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4 u = half4(1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.msl
index a87ee3f..b8efcf6 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 u = float4(1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.msl
index 785cd97..f2de93d 100644
--- a/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/literal/u32-i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 u = int4(1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.msl
index 47c8fbc..80e5be0 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool4 u = bool4(true);
+void f() {
+  half4 const v = half4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half4 const v = half4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.msl
index 47c8fbc..2835fc0f 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool4 u = bool4(true);
+void f() {
+  float4 const v = float4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float4 const v = float4(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.msl
index 47c8fbc..0b2308e 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool4 u = bool4(true);
+void f() {
+  int4 const v = int4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int4 const v = int4(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.msl
index 47c8fbc..209ce75 100644
--- a/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/bool-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool4 u = bool4(true);
+void f() {
+  uint4 const v = uint4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 u = bool4(true);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint4 const v = uint4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.msl
index 47c8fbc..6b7ba30 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4 u = half4(1.0h);
+void f() {
+  bool4 const v = bool4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool4 const v = bool4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.msl
index 47c8fbc..3a602fd 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4 u = half4(1.0h);
+void f() {
+  float4 const v = float4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float4 const v = float4(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.msl
index 47c8fbc..06fec5e 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4 u = half4(1.0h);
+void f() {
+  int4 const v = tint_v4f16_to_v4i32(u);
+}
+int4 tint_v4f16_to_v4i32(half4 value) {
+  return select(int4(2147483647), select(int4((-2147483647 - 1)), int4(value), (value >= half4(-65504.0h))), (value <= half4(65504.0h)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int4 const v = tint_v4f16_to_v4i32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.msl
index 47c8fbc..4e96090 100644
--- a/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f16-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread half4 u = half4(1.0h);
+void f() {
+  uint4 const v = tint_v4f16_to_v4u32(u);
+}
+uint4 tint_v4f16_to_v4u32(half4 value) {
+  return select(uint4(4294967295u), select(uint4(0u), uint4(value), (value >= half4(0.0h))), (value <= half4(65504.0h)));
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 u = half4(1.0h);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint4 const v = tint_v4f16_to_v4u32(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.msl
index 47c8fbc..cd08f418 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4 u = float4(1.0f);
+void f() {
+  bool4 const v = bool4(u);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool4 const v = bool4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.msl
index 47c8fbc..ff7720d 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4 u = float4(1.0f);
+void f() {
+  half4 const v = half4(u);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half4 const v = half4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.msl
index 47c8fbc..03dd661 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4 u = float4(1.0f);
+void f() {
+  int4 const v = tint_v4f32_to_v4i32(u);
+}
+int4 tint_v4f32_to_v4i32(float4 value) {
+  return select(int4(2147483647), select(int4((-2147483647 - 1)), int4(value), (value >= float4(-2147483648.0f))), (value <= float4(2147483520.0f)));
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int4 const v = tint_v4f32_to_v4i32(u);
+             ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.msl
index 47c8fbc..bbdd99a 100644
--- a/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/f32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4 u = float4(1.0f);
+void f() {
+  uint4 const v = tint_v4f32_to_v4u32(u);
+}
+uint4 tint_v4f32_to_v4u32(float4 value) {
+  return select(uint4(4294967295u), select(uint4(0u), uint4(value), (value >= float4(0.0f))), (value <= float4(4294967040.0f)));
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 u = float4(1.0f);
+              ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint4 const v = tint_v4f32_to_v4u32(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.msl
index 47c8fbc..b7ad5c7 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int4 u = int4(1);
+void f() {
+  bool4 const v = bool4(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool4 const v = bool4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.msl
index 47c8fbc..eab4e3c 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int4 u = int4(1);
+void f() {
+  half4 const v = half4(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half4 const v = half4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.msl
index 47c8fbc..7f6383b 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int4 u = int4(1);
+void f() {
+  float4 const v = float4(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float4 const v = float4(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.msl
index 47c8fbc..8fabc17 100644
--- a/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/i32-u32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int4 u = int4(1);
+void f() {
+  uint4 const v = uint4(u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 u = int4(1);
+            ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  uint4 const v = uint4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.msl
index 47c8fbc..64fd31c 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-bool.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint4 u = uint4(1u);
+void f() {
+  bool4 const v = bool4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  bool4 const v = bool4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.msl
index 47c8fbc..740a71e 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f16.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint4 u = uint4(1u);
+void f() {
+  half4 const v = half4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+program_source:6:15: warning: unused variable 'v' [-Wunused-variable]
+  half4 const v = half4(u);
+              ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.msl
index 47c8fbc..739a9f3 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-f32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint4 u = uint4(1u);
+void f() {
+  float4 const v = float4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+program_source:6:16: warning: unused variable 'v' [-Wunused-variable]
+  float4 const v = float4(u);
+               ^
+
diff --git a/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.msl
index 47c8fbc..bec07b0 100644
--- a/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_conv/vec4/var/u32-i32.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint4 u = uint4(1u);
+void f() {
+  int4 const v = int4(u);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(1u);
+             ^
+program_source:6:14: warning: unused variable 'v' [-Wunused-variable]
+  int4 const v = int4(u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.msl
index a9a8928..c81ca4f 100644
--- a/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float, 2> v = arr;
 }
+program_source:16:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 2> arr = tint_array<float, 2>{1.0f, 2.0f};
+                            ^
+program_source:18:24: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float, 2> v = arr;
+                       ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.msl
index 308730b..b447ff1 100644
--- a/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/array/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<tint_array<float, 2>, 2> v = arr;
 }
+program_source:16:44: error: program scope variable must reside in constant address space
+thread tint_array<tint_array<float, 2>, 2> arr = tint_array<tint_array<float, 2>, 2>{tint_array<float, 2>{1.0f, 2.0f}, tint_array<float, 2>{3.0f, 4.0f}};
+                                           ^
+program_source:18:39: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<tint_array<float, 2>, 2> v = arr;
+                                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.msl
index 308730b..b447ff1 100644
--- a/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/array/f32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<tint_array<float, 2>, 2> v = arr;
 }
+program_source:16:44: error: program scope variable must reside in constant address space
+thread tint_array<tint_array<float, 2>, 2> arr = tint_array<tint_array<float, 2>, 2>{tint_array<float, 2>{1.0f, 2.0f}, tint_array<float, 2>{3.0f, 4.0f}};
+                                           ^
+program_source:18:39: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<tint_array<float, 2>, 2> v = arr;
+                                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.msl
index a9a8928..c81ca4f 100644
--- a/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/f32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float, 2> v = arr;
 }
+program_source:16:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 2> arr = tint_array<float, 2>{1.0f, 2.0f};
+                            ^
+program_source:18:24: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float, 2> v = arr;
+                       ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.msl
index ff91c2d..74ea049 100644
--- a/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/i32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<int, 2> v = arr;
 }
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 2> arr = tint_array<int, 2>{1, 2};
+                          ^
+program_source:18:22: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<int, 2> v = arr;
+                     ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.msl
index eebeaad..2e3b058 100644
--- a/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/mat2x2/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,7 @@
 void f() {
   tint_array<float2x2, 2> v = arr;
 }
+program_source:16:32: error: program scope variable must reside in constant address space
+thread tint_array<float2x2, 2> arr = tint_array<float2x2, 2>{float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+                               ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.msl
index eebeaad..2e3b058 100644
--- a/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/mat2x2/f32.wgsl.expected.ir.msl
@@ -19,3 +19,7 @@
 void f() {
   tint_array<float2x2, 2> v = arr;
 }
+program_source:16:32: error: program scope variable must reside in constant address space
+thread tint_array<float2x2, 2> arr = tint_array<float2x2, 2>{float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+                               ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.msl
index 7c73df8..16cfda7 100644
--- a/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/u32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<uint, 2> v = arr;
 }
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 2> arr = tint_array<uint, 2>{1u, 2u};
+                           ^
+program_source:18:23: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<uint, 2> v = arr;
+                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.msl
index fe1c892..c97df58 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float2, 2> v = arr;
 }
+program_source:16:30: error: program scope variable must reside in constant address space
+thread tint_array<float2, 2> arr = tint_array<float2, 2>{float2(1.0f), float2(2.0f)};
+                             ^
+program_source:18:25: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float2, 2> v = arr;
+                        ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.msl
index fe1c892..c97df58 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/f32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float2, 2> v = arr;
 }
+program_source:16:30: error: program scope variable must reside in constant address space
+thread tint_array<float2, 2> arr = tint_array<float2, 2>{float2(1.0f), float2(2.0f)};
+                             ^
+program_source:18:25: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float2, 2> v = arr;
+                        ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.msl
index 44f2746..a679881 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/i32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<int2, 2> v = arr;
 }
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<int2, 2> arr = tint_array<int2, 2>{int2(1), int2(2)};
+                           ^
+program_source:18:23: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<int2, 2> v = arr;
+                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.msl
index e7de8f2..fc73b45 100644
--- a/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/explicit/vec2/u32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<uint2, 2> v = arr;
 }
+program_source:16:29: error: program scope variable must reside in constant address space
+thread tint_array<uint2, 2> arr = tint_array<uint2, 2>{uint2(1u), uint2(2u)};
+                            ^
+program_source:18:24: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<uint2, 2> v = arr;
+                       ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.msl
index ff91c2d..74ea049 100644
--- a/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<int, 2> v = arr;
 }
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 2> arr = tint_array<int, 2>{1, 2};
+                          ^
+program_source:18:22: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<int, 2> v = arr;
+                     ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.msl
index 6373c40..1fac236 100644
--- a/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/array/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<tint_array<int, 2>, 2> v = arr;
 }
+program_source:16:42: error: program scope variable must reside in constant address space
+thread tint_array<tint_array<int, 2>, 2> arr = tint_array<tint_array<int, 2>, 2>{tint_array<int, 2>{1, 2}, tint_array<int, 2>{3, 4}};
+                                         ^
+program_source:18:37: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<tint_array<int, 2>, 2> v = arr;
+                                    ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.msl
index 308730b..b447ff1 100644
--- a/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/array/f32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<tint_array<float, 2>, 2> v = arr;
 }
+program_source:16:44: error: program scope variable must reside in constant address space
+thread tint_array<tint_array<float, 2>, 2> arr = tint_array<tint_array<float, 2>, 2>{tint_array<float, 2>{1.0f, 2.0f}, tint_array<float, 2>{3.0f, 4.0f}};
+                                           ^
+program_source:18:39: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<tint_array<float, 2>, 2> v = arr;
+                                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.msl
index a9a8928..c81ca4f 100644
--- a/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/f32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float, 2> v = arr;
 }
+program_source:16:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 2> arr = tint_array<float, 2>{1.0f, 2.0f};
+                            ^
+program_source:18:24: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float, 2> v = arr;
+                       ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.msl
index ff91c2d..74ea049 100644
--- a/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/i32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<int, 2> v = arr;
 }
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 2> arr = tint_array<int, 2>{1, 2};
+                          ^
+program_source:18:22: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<int, 2> v = arr;
+                     ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.msl
index eebeaad..2e3b058 100644
--- a/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/mat2x2/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,7 @@
 void f() {
   tint_array<float2x2, 2> v = arr;
 }
+program_source:16:32: error: program scope variable must reside in constant address space
+thread tint_array<float2x2, 2> arr = tint_array<float2x2, 2>{float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+                               ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.msl
index eebeaad..2e3b058 100644
--- a/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/mat2x2/f32.wgsl.expected.ir.msl
@@ -19,3 +19,7 @@
 void f() {
   tint_array<float2x2, 2> v = arr;
 }
+program_source:16:32: error: program scope variable must reside in constant address space
+thread tint_array<float2x2, 2> arr = tint_array<float2x2, 2>{float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)), float2x2(float2(5.0f, 6.0f), float2(7.0f, 8.0f))};
+                               ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.msl
index 7c73df8..16cfda7 100644
--- a/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/u32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<uint, 2> v = arr;
 }
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 2> arr = tint_array<uint, 2>{1u, 2u};
+                           ^
+program_source:18:23: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<uint, 2> v = arr;
+                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.msl
index fe1c892..c97df58 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/abstract.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float2, 2> v = arr;
 }
+program_source:16:30: error: program scope variable must reside in constant address space
+thread tint_array<float2, 2> arr = tint_array<float2, 2>{float2(1.0f), float2(2.0f)};
+                             ^
+program_source:18:25: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float2, 2> v = arr;
+                        ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.msl
index fe1c892..c97df58 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/f32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<float2, 2> v = arr;
 }
+program_source:16:30: error: program scope variable must reside in constant address space
+thread tint_array<float2, 2> arr = tint_array<float2, 2>{float2(1.0f), float2(2.0f)};
+                             ^
+program_source:18:25: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<float2, 2> v = arr;
+                        ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.msl
index 44f2746..a679881 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/i32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<int2, 2> v = arr;
 }
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<int2, 2> arr = tint_array<int2, 2>{int2(1), int2(2)};
+                           ^
+program_source:18:23: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<int2, 2> v = arr;
+                      ^
+
diff --git a/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.msl
index e7de8f2..fc73b45 100644
--- a/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/array/inferred/vec2/u32.wgsl.expected.ir.msl
@@ -19,3 +19,10 @@
 void f() {
   tint_array<uint2, 2> v = arr;
 }
+program_source:16:29: error: program scope variable must reside in constant address space
+thread tint_array<uint2, 2> arr = tint_array<uint2, 2>{uint2(1u), uint2(2u)};
+                            ^
+program_source:18:24: warning: unused variable 'v' [-Wunused-variable]
+  tint_array<uint2, 2> v = arr;
+                       ^
+
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl
index 1b8138d..281487e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     %5:mat2x2<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl
index af87ad3..4dda801 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     %5:mat2x2<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl
index dbcfc76..42b86c1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl
index 19f7708..3f4a245 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl
index dbcfc76..42b86c1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl
index 19f7708..3f4a245 100644
--- a/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl
index 1b8138d..281487e 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     %5:mat2x2<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl
index af87ad3..4dda801 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     %5:mat2x2<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 7dbf1ae..d7f3dcc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl
index dbcfc76..42b86c1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl
index 19f7708..3f4a245 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 7dbf1ae..d7f3dcc 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl
index dbcfc76..42b86c1 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl
index 19f7708..3f4a245 100644
--- a/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl
index 21d5876..9363978 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h))
     %4:mat2x2<f16> = load %m
     %5:mat2x2<f16> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl
index ee37481..c0e5971 100644
--- a/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/load/f32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f))
     %4:mat2x2<f32> = load %m
     %5:mat2x2<f32> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl
index 7a8f45b..4099885 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f16>, read_write> = var, mat2x2<f16>(vec2<f16>(0.0h))
   %out:ptr<storage, mat2x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl
index 433bac4..0680fbe 100644
--- a/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x2/zero/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x2<f32>, read_write> = var, mat2x2<f32>(vec2<f32>(0.0f))
   %out:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl
index 48571dc..2619ee2 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,15 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
     %5:mat2x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl
index a1ec7ea..3bdeb77 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,15 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
     %5:mat2x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl
index b3b7e3b..8bd65fe 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl
index 99c7a2c..6de92fb 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl
index b3b7e3b..8bd65fe 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl
index 99c7a2c..6de92fb 100644
--- a/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl
index 48571dc..2619ee2 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,15 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
     %5:mat2x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl
index a1ec7ea..3bdeb77 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,15 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
     %5:mat2x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index add2812..ae5af58 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,12 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    store %out, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:void = call %tint_store_and_preserve_padding, %out, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %7:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %8:vec3<f32> = access %value_param, 0u
+    store %7, %8
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %10:vec3<f32> = access %value_param, 1u
+    store %9, %10
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl
index b3b7e3b..8bd65fe 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl
index 99c7a2c..6de92fb 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index add2812..ae5af58 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,12 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    store %out, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:void = call %tint_store_and_preserve_padding, %out, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %7:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %8:vec3<f32> = access %value_param, 0u
+    store %7, %8
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %10:vec3<f32> = access %value_param, 1u
+    store %9, %10
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl
index b3b7e3b..8bd65fe 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl
index 99c7a2c..6de92fb 100644
--- a/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl
index 3b62155..cfbb960 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f16.wgsl.expected.ir.msl
@@ -1,15 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h))
     %4:mat2x3<f16> = load %m
     %5:mat2x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl
index 244cd44..32137a0 100644
--- a/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/load/f32.wgsl.expected.ir.msl
@@ -1,15 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f))
     %4:mat2x3<f32> = load %m
     %5:mat2x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl
index dbfa2ab..f77c475 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f16.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f16>, read_write> = var, mat2x3<f16>(vec3<f16>(0.0h))
   %out:ptr<storage, mat2x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f16>, read_write>, %value_param:mat2x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl
index 629f609..70ad078 100644
--- a/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x3/zero/f32.wgsl.expected.ir.msl
@@ -1,14 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x3<f32>, read_write> = var, mat2x3<f32>(vec3<f32>(0.0f))
   %out:ptr<storage, mat2x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat2x3<f32>, read_write>, %value_param:mat2x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl
index 2f53f28..1597cd9 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     %5:mat2x4<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl
index f0cccab..602e3f6 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     %5:mat2x4<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl
index f4def4f..483754b 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl
index dccd922..a902608 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl
index f4def4f..483754b 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl
index dccd922..a902608 100644
--- a/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl
index 2f53f28..1597cd9 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     %5:mat2x4<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl
index f0cccab..602e3f6 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     %5:mat2x4<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index e7021c0..fae26aa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl
index f4def4f..483754b 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl
index dccd922..a902608 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index e7021c0..fae26aa 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl
index f4def4f..483754b 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl
index dccd922..a902608 100644
--- a/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl
index 45742ff..515c6cf 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h))
     %4:mat2x4<f16> = load %m
     %5:mat2x4<f16> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl
index 5139465..83c77f5 100644
--- a/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/load/f32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f))
     %4:mat2x4<f32> = load %m
     %5:mat2x4<f32> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl
index 5269b43..18cc1f7 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f16>, read_write> = var, mat2x4<f16>(vec4<f16>(0.0h))
   %out:ptr<storage, mat2x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl
index 3c27509..7225b73 100644
--- a/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat2x4/zero/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f))
   %out:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat2x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl
index 7dfd287..68d8372b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     %5:mat3x2<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl
index 761084b..e0de70d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     %5:mat3x2<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl
index 8c4a5a0..a0d7871 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl
index da69e9d..53e8af3 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl
index 8c4a5a0..a0d7871 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl
index da69e9d..53e8af3 100644
--- a/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl
index 7dfd287..68d8372b 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     %5:mat3x2<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl
index 761084b..e0de70d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     %5:mat3x2<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 59128da..35f38c8 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl
index 8c4a5a0..a0d7871 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl
index da69e9d..53e8af3 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 59128da..35f38c8 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl
index 8c4a5a0..a0d7871 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl
index da69e9d..53e8af3 100644
--- a/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl
index 6bfe91c..9c00151 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h))
     %4:mat3x2<f16> = load %m
     %5:mat3x2<f16> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl
index cb339a9..82b31bb 100644
--- a/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/load/f32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f))
     %4:mat3x2<f32> = load %m
     %5:mat3x2<f32> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl
index 9e000bd..de3e5f4 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f16>, read_write> = var, mat3x2<f16>(vec2<f16>(0.0h))
   %out:ptr<storage, mat3x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl
index da12c60..81a9b6d 100644
--- a/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x2/zero/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x2<f32>, read_write> = var, mat3x2<f32>(vec2<f32>(0.0f))
   %out:ptr<storage, mat3x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl
index 9b9fcc7..713b725 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,15 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
     %5:mat3x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl
index 0962c0c..b261ad3 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,15 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
     %5:mat3x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl
index d9cf8a6..d193a29 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl
index caa41f6..671fd01 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl
index d9cf8a6..d193a29 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl
index caa41f6..671fd01 100644
--- a/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl
index 9b9fcc7..713b725 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,15 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
     %5:mat3x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl
index 0962c0c..b261ad3 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,15 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
     %5:mat3x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index d2f234f..d51d719 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,12 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    store %out, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:void = call %tint_store_and_preserve_padding, %out, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %7:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %8:vec3<f32> = access %value_param, 0u
+    store %7, %8
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %10:vec3<f32> = access %value_param, 1u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %12:vec3<f32> = access %value_param, 2u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl
index d9cf8a6..d193a29 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl
index caa41f6..671fd01 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index d2f234f..d51d719 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,12 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    store %out, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:void = call %tint_store_and_preserve_padding, %out, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %7:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %8:vec3<f32> = access %value_param, 0u
+    store %7, %8
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %10:vec3<f32> = access %value_param, 1u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %12:vec3<f32> = access %value_param, 2u
+    store %11, %12
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl
index d9cf8a6..d193a29 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl
index caa41f6..671fd01 100644
--- a/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl
index 58fa955..2d84436 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f16.wgsl.expected.ir.msl
@@ -1,15 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h))
     %4:mat3x3<f16> = load %m
     %5:mat3x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl
index fc07dc5..4835e49 100644
--- a/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/load/f32.wgsl.expected.ir.msl
@@ -1,15 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f))
     %4:mat3x3<f32> = load %m
     %5:mat3x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl
index 8bf3ec3..6aaeeca 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f16.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f16>, read_write> = var, mat3x3<f16>(vec3<f16>(0.0h))
   %out:ptr<storage, mat3x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f16>, read_write>, %value_param:mat3x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl
index e1c1c6e..4b7f717 100644
--- a/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x3/zero/f32.wgsl.expected.ir.msl
@@ -1,14 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x3<f32>, read_write> = var, mat3x3<f32>(vec3<f32>(0.0f))
   %out:ptr<storage, mat3x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat3x3<f32>, read_write>, %value_param:mat3x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl
index abd23cb..b2749f3 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     %5:mat3x4<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl
index 2ad890b..bfad518 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     %5:mat3x4<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl
index 835ab69..622dcd5 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl
index 581b29f..eabe5e4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl
index 835ab69..622dcd5 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl
index 581b29f..eabe5e4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl
index abd23cb..b2749f3 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     %5:mat3x4<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl
index 2ad890b..bfad518 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     %5:mat3x4<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 2c7b060..ba5564e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl
index 835ab69..622dcd5 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl
index 581b29f..eabe5e4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 2c7b060..ba5564e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl
index 835ab69..622dcd5 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl
index 581b29f..eabe5e4 100644
--- a/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl
index 7892ddd..eee4a1e 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h))
     %4:mat3x4<f16> = load %m
     %5:mat3x4<f16> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl
index 3e168ef..0a1a884 100644
--- a/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/load/f32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f))
     %4:mat3x4<f32> = load %m
     %5:mat3x4<f32> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl
index 400ec40..02d09d0 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f16>, read_write> = var, mat3x4<f16>(vec4<f16>(0.0h))
   %out:ptr<storage, mat3x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl
index 011460f..cdc34e6 100644
--- a/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat3x4/zero/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat3x4<f32>, read_write> = var, mat3x4<f32>(vec4<f32>(0.0f))
   %out:ptr<storage, mat3x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat3x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl
index c4a58925..838e0cf 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h), vec2<f16>(6.0h, 7.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     %5:mat4x2<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl
index 27c966d..635f09a 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     %5:mat4x2<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl
index d6cf5fd..2a6e7ab 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h), vec2<f16>(6.0h, 7.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl
index 8bc52e2..aa889aa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl
index d6cf5fd..2a6e7ab 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h), vec2<f16>(6.0h, 7.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl
index 8bc52e2..aa889aa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl
index c4a58925..838e0cf 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h), vec2<f16>(6.0h, 7.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     %5:mat4x2<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl
index 27c966d..635f09a 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     %5:mat4x2<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 2e06ac1..343fbe3 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl
index d6cf5fd..2a6e7ab 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h), vec2<f16>(6.0h, 7.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl
index 8bc52e2..aa889aa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 2e06ac1..343fbe3 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl
index d6cf5fd..2a6e7ab 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h, 1.0h), vec2<f16>(2.0h, 3.0h), vec2<f16>(4.0h, 5.0h), vec2<f16>(6.0h, 7.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl
index 8bc52e2..aa889aa 100644
--- a/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f, 1.0f), vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), vec2<f32>(6.0f, 7.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl
index 651d527..588c5c4 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h))
     %4:mat4x2<f16> = load %m
     %5:mat4x2<f16> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl
index 1ad8293..de58a0b 100644
--- a/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/load/f32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f))
     %4:mat4x2<f32> = load %m
     %5:mat4x2<f32> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl
index 7b6b4bc..f6160a4 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f16>, read_write> = var, mat4x2<f16>(vec2<f16>(0.0h))
   %out:ptr<storage, mat4x2<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl
index aaefcf7..f001a30 100644
--- a/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x2/zero/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var, mat4x2<f32>(vec2<f32>(0.0f))
   %out:ptr<storage, mat4x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x2<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl
index aad66ee..84cc74e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,15 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h), vec3<f16>(9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
     %5:mat4x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %17:vec3<f16> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl
index 382d216..e834e13 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,15 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
     %5:mat4x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %17:vec3<f32> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl
index 2d5ff92..df6b7ce 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h), vec3<f16>(9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %16:vec3<f16> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl
index def93a3..e65757c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %16:vec3<f32> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl
index 2d5ff92..df6b7ce 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h), vec3<f16>(9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %16:vec3<f16> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl
index def93a3..e65757c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %16:vec3<f32> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl
index aad66ee..84cc74e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,15 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h), vec3<f16>(9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
     %5:mat4x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %17:vec3<f16> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl
index 382d216..e834e13 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,15 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
     %5:mat4x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %17:vec3<f32> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 40594c0..9ac57da 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,12 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    store %out, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:void = call %tint_store_and_preserve_padding, %out, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %7:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %8:vec3<f32> = access %value_param, 0u
+    store %7, %8
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %10:vec3<f32> = access %value_param, 1u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %12:vec3<f32> = access %value_param, 2u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %14:vec3<f32> = access %value_param, 3u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl
index 2d5ff92..df6b7ce 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h), vec3<f16>(9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %16:vec3<f16> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl
index def93a3..e65757c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %16:vec3<f32> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 40594c0..9ac57da 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,12 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    store %out, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:void = call %tint_store_and_preserve_padding, %out, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %7:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %8:vec3<f32> = access %value_param, 0u
+    store %7, %8
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %10:vec3<f32> = access %value_param, 1u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %12:vec3<f32> = access %value_param, 2u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %14:vec3<f32> = access %value_param, 3u
+    store %13, %14
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl
index 2d5ff92..df6b7ce 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h, 1.0h, 2.0h), vec3<f16>(3.0h, 4.0h, 5.0h), vec3<f16>(6.0h, 7.0h, 8.0h), vec3<f16>(9.0h, 10.0h, 11.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %16:vec3<f16> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl
index def93a3..e65757c 100644
--- a/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f, 1.0f, 2.0f), vec3<f32>(3.0f, 4.0f, 5.0f), vec3<f32>(6.0f, 7.0f, 8.0f), vec3<f32>(9.0f, 10.0f, 11.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %16:vec3<f32> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl
index fae6ba5..b2d5c8a 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f16.wgsl.expected.ir.msl
@@ -1,15 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h))
     %4:mat4x3<f16> = load %m
     %5:mat4x3<f16> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %11:vec3<f16> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %13:vec3<f16> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %15:vec3<f16> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %17:vec3<f16> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl
index f53ee99..e70076e 100644
--- a/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/load/f32.wgsl.expected.ir.msl
@@ -1,15 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f))
     %4:mat4x3<f32> = load %m
     %5:mat4x3<f32> = construct %4
-    store %out, %5
+    %6:void = call %tint_store_and_preserve_padding, %out, %5
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %10:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %11:vec3<f32> = access %value_param, 0u
+    store %10, %11
+    %12:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %13:vec3<f32> = access %value_param, 1u
+    store %12, %13
+    %14:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %15:vec3<f32> = access %value_param, 2u
+    store %14, %15
+    %16:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %17:vec3<f32> = access %value_param, 3u
+    store %16, %17
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl
index 7819e7a..c92d020 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f16.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f16>, read_write> = var, mat4x3<f16>(vec3<f16>(0.0h))
   %out:ptr<storage, mat4x3<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f16> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f16>, read_write>, %value_param:mat4x3<f16>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f16>, read_write> = access %target, 0u
+    %10:vec3<f16> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f16>, read_write> = access %target, 1u
+    %12:vec3<f16> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f16>, read_write> = access %target, 2u
+    %14:vec3<f16> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f16>, read_write> = access %target, 3u
+    %16:vec3<f16> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl
index eb3927a..e9865f9 100644
--- a/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x3/zero/f32.wgsl.expected.ir.msl
@@ -1,14 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x3<f32>, read_write> = var, mat4x3<f32>(vec3<f32>(0.0f))
   %out:ptr<storage, mat4x3<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x3<f32> = load %m
-    store %out, %4
+    %5:void = call %tint_store_and_preserve_padding, %out, %4
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, mat4x3<f32>, read_write>, %value_param:mat4x3<f32>):void {
+  $B3: {
+    %9:ptr<storage, vec3<f32>, read_write> = access %target, 0u
+    %10:vec3<f32> = access %value_param, 0u
+    store %9, %10
+    %11:ptr<storage, vec3<f32>, read_write> = access %target, 1u
+    %12:vec3<f32> = access %value_param, 1u
+    store %11, %12
+    %13:ptr<storage, vec3<f32>, read_write> = access %target, 2u
+    %14:vec3<f32> = access %value_param, 2u
+    store %13, %14
+    %15:ptr<storage, vec3<f32>, read_write> = access %target, 3u
+    %16:vec3<f32> = access %value_param, 3u
+    store %15, %16
     ret
   }
 }
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl
index 5a1ae8f..3eba67e 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h), vec4<f16>(12.0h, 13.0h, 14.0h, 15.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     %5:mat4x4<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl
index 2375b5c..250a01c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     %5:mat4x4<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl
index 04103f0..e8a0c48 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h), vec4<f16>(12.0h, 13.0h, 14.0h, 15.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl
index 35d7bd1..b143f20 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl
index 04103f0..e8a0c48 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h), vec4<f16>(12.0h, 13.0h, 14.0h, 15.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl
index 35d7bd1..b143f20 100644
--- a/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/explicit/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl
index 5a1ae8f..3eba67e 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h), vec4<f16>(12.0h, 13.0h, 14.0h, 15.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     %5:mat4x4<f16> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl
index 2375b5c..250a01c 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/identity/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     %5:mat4x4<f32> = construct %4
     store %out, %5
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
index 72097b7..c0e6669 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl
index 04103f0..e8a0c48 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h), vec4<f16>(12.0h, 13.0h, 14.0h, 15.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl
index 35d7bd1..b143f20 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/scalars/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
index 72097b7..c0e6669 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/abstract-float.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     store %out, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
     ret
   }
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl
index 04103f0..e8a0c48 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h, 1.0h, 2.0h, 3.0h), vec4<f16>(4.0h, 5.0h, 6.0h, 7.0h), vec4<f16>(8.0h, 9.0h, 10.0h, 11.0h), vec4<f16>(12.0h, 13.0h, 14.0h, 15.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl
index 35d7bd1..b143f20 100644
--- a/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/inferred/vectors/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f, 1.0f, 2.0f, 3.0f), vec4<f32>(4.0f, 5.0f, 6.0f, 7.0f), vec4<f32>(8.0f, 9.0f, 10.0f, 11.0f), vec4<f32>(12.0f, 13.0f, 14.0f, 15.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl
index 466b7f4..1c8cd6e 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f16.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h))
     %4:mat4x4<f16> = load %m
     %5:mat4x4<f16> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl
index 33844f4..46c9871 100644
--- a/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/load/f32.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %m:ptr<function, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f))
     %4:mat4x4<f32> = load %m
     %5:mat4x4<f32> = construct %4
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl
index 1a01a44..c8a0634 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f16.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f16>, read_write> = var, mat4x4<f16>(vec4<f16>(0.0h))
   %out:ptr<storage, mat4x4<f16>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f16> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl
index 7e841a0..4d5a209 100644
--- a/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/mat4x4/zero/f32.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %m:ptr<private, mat4x4<f32>, read_write> = var, mat4x4<f32>(vec4<f32>(0.0f))
   %out:ptr<storage, mat4x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %4:mat4x4<f32> = load %m
     store %out, %4
     ret
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.msl
index 33cf2d8..7b62745 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool2 v = bool2(false, true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 v = bool2(false, true);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.msl
index 1159ffb..5987ec4 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2 v = half2(0.0h, 1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 v = half2(0.0h, 1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.msl
index 956ec80..bdf0225 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 v = float2(0.0f, 1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 v = float2(0.0f, 1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.msl
index 0ddb857..55694ee 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 v = int2(0, 1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 v = int2(0, 1);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.msl
index ece0809..b401bc2 100644
--- a/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/explicit/u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint2 v = uint2(0u, 1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 v = uint2(0u, 1u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.msl
index 956ec80..bdf0225 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-float.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 v = float2(0.0f, 1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 v = float2(0.0f, 1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.msl
index 0ddb857..55694ee 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/abstract-int.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 v = int2(0, 1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 v = int2(0, 1);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.msl
index 33cf2d8..7b62745 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool2 v = bool2(false, true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 v = bool2(false, true);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.msl
index 1159ffb..5987ec4 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half2 v = half2(0.0h, 1.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half2 v = half2(0.0h, 1.0h);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.msl
index 956ec80..bdf0225 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float2 v = float2(0.0f, 1.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 v = float2(0.0f, 1.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.msl
index 0ddb857..55694ee 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int2 v = int2(0, 1);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 v = int2(0, 1);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.msl
index ece0809..b401bc2 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint2 v = uint2(0u, 1u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 v = uint2(0u, 1u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.msl
index 1254737..318d3c8 100644
--- a/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec2/inferred/zero.wgsl.expected.ir.msl
@@ -6,3 +6,13 @@
 thread float2 f = float2(0.0f);
 thread int2 i = int2(0);
 thread uint2 u = uint2(0u);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 f = float2(0.0f);
+              ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread int2 i = int2(0);
+            ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread uint2 u = uint2(0u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.msl
index 885d513..fda0abd 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool3 v = bool3(false, true, false);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 v = bool3(false, true, false);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.msl
index 0cb8cf8..4878360 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3 v = half3(0.0h, 1.0h, 2.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 v = half3(0.0h, 1.0h, 2.0h);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.msl
index 4101d05..ae4219e 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 v = float3(0.0f, 1.0f, 2.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 v = float3(0.0f, 1.0f, 2.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.msl
index b49329d..5926229 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 v = int3(0, 1, 2);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 v = int3(0, 1, 2);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.msl
index 4815de2..85e3de6 100644
--- a/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/explicit/u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint3 v = uint3(0u, 1u, 2u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 v = uint3(0u, 1u, 2u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.msl
index 4101d05..ae4219e 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-float.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 v = float3(0.0f, 1.0f, 2.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 v = float3(0.0f, 1.0f, 2.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.msl
index b49329d..5926229 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/abstract-int.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 v = int3(0, 1, 2);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 v = int3(0, 1, 2);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.msl
index 885d513..fda0abd 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool3 v = bool3(false, true, false);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool3 v = bool3(false, true, false);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.msl
index 0cb8cf8..4878360 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half3 v = half3(0.0h, 1.0h, 2.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half3 v = half3(0.0h, 1.0h, 2.0h);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.msl
index 4101d05..ae4219e 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float3 v = float3(0.0f, 1.0f, 2.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 v = float3(0.0f, 1.0f, 2.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.msl
index b49329d..5926229 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int3 v = int3(0, 1, 2);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 v = int3(0, 1, 2);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.msl
index 4815de2..85e3de6 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint3 v = uint3(0u, 1u, 2u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 v = uint3(0u, 1u, 2u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.msl
index 93371a1..616e341 100644
--- a/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec3/inferred/zero.wgsl.expected.ir.msl
@@ -6,3 +6,13 @@
 thread float3 f = float3(0.0f);
 thread int3 i = int3(0);
 thread uint3 u = uint3(0u);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float3 f = float3(0.0f);
+              ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread int3 i = int3(0);
+            ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread uint3 u = uint3(0u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.msl
index 3a81db9..14791f3 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool4 v = bool4(false, true, false, true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 v = bool4(false, true, false, true);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.msl
index 6847244..e921eea 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4 v = half4(0.0h, 1.0h, 2.0h, 3.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 v = half4(0.0h, 1.0h, 2.0h, 3.0h);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.msl
index 7c24508..1f86fd9 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.msl
index d90e99d..9e7a354 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 v = int4(0, 1, 2, 3);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 v = int4(0, 1, 2, 3);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.msl
index 65cdb85..20aca2d 100644
--- a/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/explicit/u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint4 v = uint4(0u, 1u, 2u, 3u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 v = uint4(0u, 1u, 2u, 3u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.msl
index 7c24508..1f86fd9 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-float.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.msl
index d90e99d..9e7a354 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/abstract-int.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 v = int4(0, 1, 2, 3);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 v = int4(0, 1, 2, 3);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.msl
index 3a81db9..14791f3 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/bool.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread bool4 v = bool4(false, true, false, true);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool4 v = bool4(false, true, false, true);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.msl
index 6847244..e921eea 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f16.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread half4 v = half4(0.0h, 1.0h, 2.0h, 3.0h);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread half4 v = half4(0.0h, 1.0h, 2.0h, 3.0h);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.msl
index 7c24508..1f86fd9 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/f32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 v = float4(0.0f, 1.0f, 2.0f, 3.0f);
+              ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.msl
index d90e99d..9e7a354 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/i32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread int4 v = int4(0, 1, 2, 3);
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int4 v = int4(0, 1, 2, 3);
+            ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.msl
index 65cdb85..20aca2d 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/u32.wgsl.expected.ir.msl
@@ -4,3 +4,7 @@
 using namespace metal;
 
 thread uint4 v = uint4(0u, 1u, 2u, 3u);
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 v = uint4(0u, 1u, 2u, 3u);
+             ^
+
diff --git a/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.msl
index acd7234..ab28cbc 100644
--- a/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.msl
+++ b/test/tint/expressions/type_ctor/vec4/inferred/zero.wgsl.expected.ir.msl
@@ -6,3 +6,13 @@
 thread float4 f = float4(0.0f);
 thread int4 i = int4(0);
 thread uint4 u = uint4(0u);
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 f = float4(0.0f);
+              ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread int4 i = int4(0);
+            ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread uint4 u = uint4(0u);
+             ^
+
diff --git a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.msl b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.msl
index 61be630..aec4537 100644
--- a/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.msl
+++ b/test/tint/extensions/dual_source_blending/input_output.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragOutput = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragOutput = struct @align(16) {
   color:vec4<f32> @offset(0), @location(0)
   blend:vec4<f32> @offset(16), @location(0)
 }
@@ -10,8 +10,8 @@
   b:vec4<f32> @offset(16), @location(1)
 }
 
-%frag_main = @fragment func(%in:FragInput):FragOutput -> %b1 {
-  %b1 = block {
+%frag_main = @fragment func(%in:FragInput):FragOutput {
+  $B1: {
     %output:ptr<function, FragOutput, read_write> = var
     %4:ptr<function, vec4<f32>, read_write> = access %output, 0u
     %5:vec4<f32> = access %in, 0u
diff --git a/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.msl b/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.msl
index a84b419..fbf0e25 100644
--- a/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.msl
+++ b/test/tint/extensions/dual_source_blending/output.wgsl.expected.ir.msl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragOutput = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragOutput = struct @align(16) {
   color:vec4<f32> @offset(0), @location(0)
   blend:vec4<f32> @offset(16), @location(0)
 }
 
-%frag_main = @fragment func():FragOutput -> %b1 {
-  %b1 = block {
+%frag_main = @fragment func():FragOutput {
+  $B1: {
     %output:ptr<function, FragOutput, read_write> = var
     %3:ptr<function, vec4<f32>, read_write> = access %output, 0u
     store %3, vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f)
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.msl
index e7ada6e..daa7f40 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin.wgsl.expected.ir.msl
@@ -1,26 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%pos:vec4<f32> [@position]):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%pos:vec4<f32> [@position]):void {
+  $B2: {
     %4:ptr<pixel_local, u32, read_write> = access %P, 0u
     %5:f32 = access %pos, 0u
-    %6:u32 = convert %5
-    %7:u32 = load %4
-    %8:u32 = add %7, %6
-    store %4, %8
+    %6:u32 = call %tint_f32_to_u32, %5
+    %8:u32 = load %4
+    %9:u32 = add %8, %6
+    store %4, %9
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %11:u32 = convert %value
+    %12:bool = gte %value, 0.0f
+    %13:u32 = select 0u, %11, %12
+    %14:bool = lte %value, 4294967040.0f
+    %15:u32 = select 4294967295u, %13, %14
+    ret %15
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.msl
index 40618a6..0fbaef7 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location.wgsl.expected.ir.msl
@@ -1,29 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%pos:vec4<f32> [@position], %uv:vec4<f32> [@location(0)]):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%pos:vec4<f32> [@position], %uv:vec4<f32> [@location(0)]):void {
+  $B2: {
     %5:ptr<pixel_local, u32, read_write> = access %P, 0u
     %6:f32 = access %pos, 0u
-    %7:u32 = convert %6
-    %8:f32 = access %uv, 0u
-    %9:u32 = convert %8
-    %10:u32 = add %7, %9
-    %11:u32 = load %5
-    %12:u32 = add %11, %10
-    store %5, %12
+    %7:u32 = call %tint_f32_to_u32, %6
+    %9:u32 = let %7
+    %10:f32 = access %uv, 0u
+    %11:u32 = call %tint_f32_to_u32, %10
+    %12:u32 = add %9, %11
+    %13:u32 = load %5
+    %14:u32 = add %13, %12
+    store %5, %14
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %16:u32 = convert %value
+    %17:bool = gte %value, 0.0f
+    %18:u32 = select 0u, %16, %17
+    %19:bool = lte %value, 4294967040.0f
+    %20:u32 = select 4294967295u, %18, %19
+    ret %20
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.msl
index 7775417..01f4152 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_and_location_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -10,24 +10,35 @@
   uv:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%pos:vec4<f32> [@position], %in:In):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%pos:vec4<f32> [@position], %in:In):void {
+  $B2: {
     %5:ptr<pixel_local, u32, read_write> = access %P, 0u
     %6:f32 = access %pos, 0u
-    %7:u32 = convert %6
-    %8:f32 = access %in, 0u, 0u
-    %9:u32 = convert %8
-    %10:u32 = add %7, %9
-    %11:u32 = load %5
-    %12:u32 = add %11, %10
-    store %5, %12
+    %7:u32 = call %tint_f32_to_u32, %6
+    %9:u32 = let %7
+    %10:f32 = access %in, 0u, 0u
+    %11:u32 = call %tint_f32_to_u32, %10
+    %12:u32 = add %9, %11
+    %13:u32 = load %5
+    %14:u32 = add %13, %12
+    store %5, %14
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %16:u32 = convert %value
+    %17:bool = gte %value, 0.0f
+    %18:u32 = select 0u, %16, %17
+    %19:bool = lte %value, 4294967040.0f
+    %20:u32 = select 4294967295u, %18, %19
+    ret %20
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.msl
index 3381a8c..1a5f2b1 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -10,21 +10,31 @@
   pos:vec4<f32> @offset(0), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%in:In):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%in:In):void {
+  $B2: {
     %4:ptr<pixel_local, u32, read_write> = access %P, 0u
     %5:f32 = access %in, 0u, 0u
-    %6:u32 = convert %5
-    %7:u32 = load %4
-    %8:u32 = add %7, %6
-    store %4, %8
+    %6:u32 = call %tint_f32_to_u32, %5
+    %8:u32 = load %4
+    %9:u32 = add %8, %6
+    store %4, %9
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %11:u32 = convert %value
+    %12:bool = gte %value, 0.0f
+    %13:u32 = select 0u, %11, %12
+    %14:bool = lte %value, 4294967040.0f
+    %15:u32 = select 4294967295u, %13, %14
+    ret %15
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.msl
index 16b3bd2..cc9f265 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -10,24 +10,35 @@
   pos:vec4<f32> @offset(0), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%in:In, %uv:vec4<f32> [@location(0)]):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%in:In, %uv:vec4<f32> [@location(0)]):void {
+  $B2: {
     %5:ptr<pixel_local, u32, read_write> = access %P, 0u
     %6:f32 = access %in, 0u, 0u
-    %7:u32 = convert %6
-    %8:f32 = access %uv, 0u
-    %9:u32 = convert %8
-    %10:u32 = add %7, %9
-    %11:u32 = load %5
-    %12:u32 = add %11, %10
-    store %5, %12
+    %7:u32 = call %tint_f32_to_u32, %6
+    %9:u32 = let %7
+    %10:f32 = access %uv, 0u
+    %11:u32 = call %tint_f32_to_u32, %10
+    %12:u32 = add %9, %11
+    %13:u32 = load %5
+    %14:u32 = add %13, %12
+    store %5, %14
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %16:u32 = convert %value
+    %17:bool = gte %value, 0.0f
+    %18:u32 = select 0u, %16, %17
+    %19:bool = lte %value, 4294967040.0f
+    %20:u32 = select 4294967295u, %18, %19
+    ret %20
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.msl
index 1bb2067..2a1a2d6 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/builtin_in_struct_and_location_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -11,24 +11,35 @@
   uv:vec4<f32> @offset(16), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%in:In):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%in:In):void {
+  $B2: {
     %4:ptr<pixel_local, u32, read_write> = access %P, 0u
     %5:f32 = access %in, 0u, 0u
-    %6:u32 = convert %5
-    %7:f32 = access %in, 1u, 0u
-    %8:u32 = convert %7
-    %9:u32 = add %6, %8
-    %10:u32 = load %4
-    %11:u32 = add %10, %9
-    store %4, %11
+    %6:u32 = call %tint_f32_to_u32, %5
+    %8:u32 = let %6
+    %9:f32 = access %in, 1u, 0u
+    %10:u32 = call %tint_f32_to_u32, %9
+    %11:u32 = add %8, %10
+    %12:u32 = load %4
+    %13:u32 = add %12, %11
+    store %4, %13
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %15:u32 = convert %value
+    %16:bool = gte %value, 0.0f
+    %17:u32 = select 0u, %15, %16
+    %18:bool = lte %value, 4294967040.0f
+    %19:u32 = select 4294967295u, %17, %18
+    ret %19
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.msl
index 8878b91..202fd6e 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin.wgsl.expected.ir.msl
@@ -1,26 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%pos:vec4<f32> [@invariant, @position]):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%pos:vec4<f32> [@invariant, @position]):void {
+  $B2: {
     %4:ptr<pixel_local, u32, read_write> = access %P, 0u
     %5:f32 = access %pos, 0u
-    %6:u32 = convert %5
-    %7:u32 = load %4
-    %8:u32 = add %7, %6
-    store %4, %8
+    %6:u32 = call %tint_f32_to_u32, %5
+    %8:u32 = load %4
+    %9:u32 = add %8, %6
+    store %4, %9
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %11:u32 = convert %value
+    %12:bool = gte %value, 0.0f
+    %13:u32 = select 0u, %11, %12
+    %14:bool = lte %value, 4294967040.0f
+    %15:u32 = select 4294967295u, %13, %14
+    ret %15
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.msl
index ae557e8..25b2032 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/invariant_builtin_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -10,21 +10,31 @@
   pos:vec4<f32> @offset(0), @invariant, @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%in:In):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%in:In):void {
+  $B2: {
     %4:ptr<pixel_local, u32, read_write> = access %P, 0u
     %5:f32 = access %in, 0u, 0u
-    %6:u32 = convert %5
-    %7:u32 = load %4
-    %8:u32 = add %7, %6
-    store %4, %8
+    %6:u32 = call %tint_f32_to_u32, %5
+    %8:u32 = load %4
+    %9:u32 = add %8, %6
+    store %4, %9
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %11:u32 = convert %value
+    %12:bool = gte %value, 0.0f
+    %13:u32 = select 0u, %11, %12
+    %14:bool = lte %value, 4294967040.0f
+    %15:u32 = select 4294967295u, %13, %14
+    ret %15
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.msl
index 7431847..2eec7ef 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location.wgsl.expected.ir.msl
@@ -1,29 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%a:vec4<f32> [@location(0)], %b:vec4<f32> [@location(1), @interpolate(flat)]):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%a:vec4<f32> [@location(0)], %b:vec4<f32> [@location(1), @interpolate(flat)]):void {
+  $B2: {
     %5:ptr<pixel_local, u32, read_write> = access %P, 0u
     %6:f32 = access %a, 0u
-    %7:u32 = convert %6
-    %8:f32 = access %b, 1u
-    %9:u32 = convert %8
-    %10:u32 = add %7, %9
-    %11:u32 = load %5
-    %12:u32 = add %11, %10
-    store %5, %12
+    %7:u32 = call %tint_f32_to_u32, %6
+    %9:u32 = let %7
+    %10:f32 = access %b, 1u
+    %11:u32 = call %tint_f32_to_u32, %10
+    %12:u32 = add %9, %11
+    %13:u32 = load %5
+    %14:u32 = add %13, %12
+    store %5, %14
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %16:u32 = convert %value
+    %17:bool = gte %value, 0.0f
+    %18:u32 = select 0u, %16, %17
+    %19:bool = lte %value, 4294967040.0f
+    %20:u32 = select 4294967295u, %18, %19
+    ret %20
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.msl
index d049786..9dcd924 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/additional_params/location_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -11,24 +11,35 @@
   b:vec4<f32> @offset(16), @location(1), @interpolate(flat)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func(%in:In):void -> %b2 {
-  %b2 = block {
+%f = @fragment func(%in:In):void {
+  $B2: {
     %4:ptr<pixel_local, u32, read_write> = access %P, 0u
     %5:f32 = access %in, 0u, 0u
-    %6:u32 = convert %5
-    %7:f32 = access %in, 1u, 1u
-    %8:u32 = convert %7
-    %9:u32 = add %6, %8
-    %10:u32 = load %4
-    %11:u32 = add %10, %9
-    store %4, %11
+    %6:u32 = call %tint_f32_to_u32, %5
+    %8:u32 = let %6
+    %9:f32 = access %in, 1u, 1u
+    %10:u32 = call %tint_f32_to_u32, %9
+    %11:u32 = add %8, %10
+    %12:u32 = load %4
+    %13:u32 = add %12, %11
+    store %4, %13
     ret
   }
 }
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B3: {
+    %15:u32 = convert %value
+    %16:bool = gte %value, 0.0f
+    %17:u32 = select 0u, %15, %16
+    %18:bool = lte %value, 4294967040.0f
+    %19:u32 = select 4294967295u, %17, %18
+    ret %19
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl
index cf623cd..fac2676 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -12,12 +12,12 @@
   z:vec4<f32> @offset(32), @location(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():Out -> %b2 {
-  %b2 = block {
+%f = @fragment func():Out {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 42u
diff --git a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl
index 9158200..0bc6ae6 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
@@ -10,12 +10,12 @@
   z:vec4<f32> @offset(32), @location(3)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():Out -> %b2 {
-  %b2 = block {
+%f = @fragment func():Out {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 42u
diff --git a/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.msl
index 4bdd79e..d347bf0 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/one_output/multiple_attachments.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():vec4<f32> [@location(0)] -> %b2 {
-  %b2 = block {
+%f = @fragment func():vec4<f32> [@location(0)] {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 42u
diff --git a/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.msl
index 363261a..e156d14 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/one_output/single_attachment.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():vec4<f32> [@location(0)] -> %b2 {
-  %b2 = block {
+%f = @fragment func():vec4<f32> [@location(0)] {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 42u
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl
index 3c112b4..8a944e4 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():void -> %b2 {
-  %b2 = block {
+%f = @fragment func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 42u
diff --git a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.msl
index 1a481e2..9238a99 100644
--- a/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/entry_point_use/zero_outputs/single_attachment.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():void -> %b2 {
-  %b2 = block {
+%f = @fragment func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 42u
diff --git a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl
index 343fecb..e5098f2 100644
--- a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/multiple_attachments.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
@@ -12,12 +12,12 @@
   z:vec4<f32> @offset(32), @location(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f0 = func():void -> %b2 {
-  %b2 = block {
+%f0 = func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 9u
@@ -25,8 +25,8 @@
     ret
   }
 }
-%f1 = func():void -> %b3 {
-  %b3 = block {
+%f1 = func():void {
+  $B3: {
     %7:void = call %f0
     %8:ptr<pixel_local, u32, read_write> = access %P, 0u
     %9:u32 = load %8
@@ -35,8 +35,8 @@
     ret
   }
 }
-%f2 = func():void -> %b4 {
-  %b4 = block {
+%f2 = func():void {
+  $B4: {
     %12:ptr<pixel_local, u32, read_write> = access %P, 0u
     %13:u32 = load %12
     %14:u32 = add %13, 7u
@@ -45,8 +45,8 @@
     ret
   }
 }
-%f = @fragment func():Out -> %b5 {
-  %b5 = block {
+%f = @fragment func():Out {
+  $B5: {
     %17:void = call %f2
     ret Out(vec4<f32>(10.0f), vec4<f32>(20.0f), vec4<f32>(30.0f))
   }
diff --git a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl
index 4b7a792..4c01294 100644
--- a/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/indirect_use/multiple_outputs/single_attachment.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
@@ -10,12 +10,12 @@
   z:vec4<f32> @offset(32), @location(3)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f0 = func():void -> %b2 {
-  %b2 = block {
+%f0 = func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 9u
@@ -23,8 +23,8 @@
     ret
   }
 }
-%f1 = func():void -> %b3 {
-  %b3 = block {
+%f1 = func():void {
+  $B3: {
     %7:void = call %f0
     %8:ptr<pixel_local, u32, read_write> = access %P, 0u
     %9:u32 = load %8
@@ -33,8 +33,8 @@
     ret
   }
 }
-%f2 = func():void -> %b4 {
-  %b4 = block {
+%f2 = func():void {
+  $B4: {
     %12:ptr<pixel_local, u32, read_write> = access %P, 0u
     %13:u32 = load %12
     %14:u32 = add %13, 7u
@@ -43,8 +43,8 @@
     ret
   }
 }
-%f = @fragment func():Out -> %b5 {
-  %b5 = block {
+%f = @fragment func():Out {
+  $B5: {
     %17:void = call %f2
     ret Out(vec4<f32>(10.0f), vec4<f32>(20.0f), vec4<f32>(30.0f))
   }
diff --git a/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.msl
index bb9a04c..e834677 100644
--- a/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/indirect_use/one_output/multiple_attachments.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f0 = func():void -> %b2 {
-  %b2 = block {
+%f0 = func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 9u
@@ -19,8 +19,8 @@
     ret
   }
 }
-%f1 = func():void -> %b3 {
-  %b3 = block {
+%f1 = func():void {
+  $B3: {
     %7:void = call %f0
     %8:ptr<pixel_local, u32, read_write> = access %P, 0u
     %9:u32 = load %8
@@ -29,8 +29,8 @@
     ret
   }
 }
-%f2 = func():void -> %b4 {
-  %b4 = block {
+%f2 = func():void {
+  $B4: {
     %12:ptr<pixel_local, u32, read_write> = access %P, 0u
     %13:u32 = load %12
     %14:u32 = add %13, 7u
@@ -39,8 +39,8 @@
     ret
   }
 }
-%f = @fragment func():vec4<f32> [@location(0)] -> %b5 {
-  %b5 = block {
+%f = @fragment func():vec4<f32> [@location(0)] {
+  $B5: {
     %17:void = call %f2
     ret vec4<f32>(2.0f)
   }
diff --git a/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.msl
index 353ceff..f43997e 100644
--- a/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/indirect_use/one_output/single_attachment.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f0 = func():void -> %b2 {
-  %b2 = block {
+%f0 = func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 9u
@@ -17,8 +17,8 @@
     ret
   }
 }
-%f1 = func():void -> %b3 {
-  %b3 = block {
+%f1 = func():void {
+  $B3: {
     %7:void = call %f0
     %8:ptr<pixel_local, u32, read_write> = access %P, 0u
     %9:u32 = load %8
@@ -27,8 +27,8 @@
     ret
   }
 }
-%f2 = func():void -> %b4 {
-  %b4 = block {
+%f2 = func():void {
+  $B4: {
     %12:ptr<pixel_local, u32, read_write> = access %P, 0u
     %13:u32 = load %12
     %14:u32 = add %13, 7u
@@ -37,8 +37,8 @@
     ret
   }
 }
-%f = @fragment func():vec4<f32> [@location(0)] -> %b5 {
-  %b5 = block {
+%f = @fragment func():vec4<f32> [@location(0)] {
+  $B5: {
     %17:void = call %f2
     ret vec4<f32>(2.0f)
   }
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl
index 98b3e61..7de01ba 100644
--- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/multiple_attachments.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
   b:i32 @offset(4)
   c:f32 @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f0 = func():void -> %b2 {
-  %b2 = block {
+%f0 = func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 9u
@@ -19,8 +19,8 @@
     ret
   }
 }
-%f1 = func():void -> %b3 {
-  %b3 = block {
+%f1 = func():void {
+  $B3: {
     %7:void = call %f0
     %8:ptr<pixel_local, u32, read_write> = access %P, 0u
     %9:u32 = load %8
@@ -29,8 +29,8 @@
     ret
   }
 }
-%f2 = func():void -> %b4 {
-  %b4 = block {
+%f2 = func():void {
+  $B4: {
     %12:ptr<pixel_local, u32, read_write> = access %P, 0u
     %13:u32 = load %12
     %14:u32 = add %13, 7u
@@ -39,8 +39,8 @@
     ret
   }
 }
-%f = @fragment func():void -> %b5 {
-  %b5 = block {
+%f = @fragment func():void {
+  $B5: {
     %17:void = call %f2
     ret
   }
diff --git a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.msl
index 1c86fd3..709ddbe 100644
--- a/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/indirect_use/zero_outputs/single_attachment.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %P:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f0 = func():void -> %b2 {
-  %b2 = block {
+%f0 = func():void {
+  $B2: {
     %3:ptr<pixel_local, u32, read_write> = access %P, 0u
     %4:u32 = load %3
     %5:u32 = add %4, 9u
@@ -17,8 +17,8 @@
     ret
   }
 }
-%f1 = func():void -> %b3 {
-  %b3 = block {
+%f1 = func():void {
+  $B3: {
     %7:void = call %f0
     %8:ptr<pixel_local, u32, read_write> = access %P, 0u
     %9:u32 = load %8
@@ -27,8 +27,8 @@
     ret
   }
 }
-%f2 = func():void -> %b4 {
-  %b4 = block {
+%f2 = func():void {
+  $B4: {
     %12:ptr<pixel_local, u32, read_write> = access %P, 0u
     %13:u32 = load %12
     %14:u32 = add %13, 7u
@@ -37,8 +37,8 @@
     ret
   }
 }
-%f = @fragment func():void -> %b5 {
-  %b5 = block {
+%f = @fragment func():void {
+  $B5: {
     %17:void = call %f2
     ret
   }
diff --git a/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.msl b/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.msl
index 997f37f..e8d531e 100644
--- a/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.msl
+++ b/test/tint/extensions/pixel_local/ptr/local.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: PixelLocal = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: PixelLocal = struct @align(4) {
   a:u32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %V:ptr<pixel_local, PixelLocal, read_write> = var
 }
 
-%f = @fragment func():void -> %b2 {
-  %b2 = block {
+%f = @fragment func():void {
+  $B2: {
     %p:ptr<pixel_local, PixelLocal, read_write> = let %V
     %4:ptr<pixel_local, u32, read_write> = access %p, 0u
     store %4, 42u
diff --git a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/a.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/b.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl
index 28251dc..0871e97 100644
--- a/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/c.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: In = struct @align(16) {
+  pos:vec4<f32> @offset(0), @builtin(position)
+  uv:vec4<f32> @offset(16), @location(0)
+  fbf:vec4<f32> @offset(32)
+}
+
+%g = func(%a:f32, %b:f32, %c:f32):void {
+  $B1: {
+    ret
+  }
+}
+%f = @fragment func(%in:In):void {
+  $B2: {
+    %7:f32 = access %in, 0u, 0u
+    %8:f32 = access %in, 1u, 0u
+    %9:f32 = access %in, 2u, 1u
+    %10:void = call %g, %7, %8, %9
+    ret
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/d.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl
index 28251dc..45e271b 100644
--- a/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/e.wgsl.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct In {
+  int4 fbf;
+  float4 pos [[position]];
+};
+
+void g(int a, float b) {
+}
+fragment void f(In in) {
+  g(in.fbf[3u], in.pos[0u]);
+}
+program_source:10:17: error: invalid type 'In' for input declaration in a fragment function
+fragment void f(In in) {
+                ^~~~~
+program_source:5:3: note: type 'float4' (vector of 4 'float' values) cannot be used in struct of resources/colors
+  float4 pos [[position]];
+  ^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/f.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/g.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl
index 28251dc..59f332f 100644
--- a/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/h.wgsl.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct FBF {
+  float4 c1;
+  int4 c3;
+};
+
+void g(float a, float b, int c) {
+}
+fragment void f(float4 pos [[position]], FBF fbf) {
+  g(fbf.c1[0u], pos[1u], fbf.c3[2u]);
+}
+program_source:10:42: error: invalid type 'FBF' for input declaration in a fragment function
+fragment void f(float4 pos [[position]], FBF fbf) {
+                                         ^~~~~~~
+program_source:4:10: note: 'color' attribute must be made explicit
+  float4 c1;
+         ^
+program_source:5:8: note: 'color' attribute must be made explicit
+  int4 c3;
+       ^
+
diff --git a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl
index 28251dc..c3951f8 100644
--- a/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/i.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: In = struct @align(16) {
+  a:vec4<f32> @offset(0), @location(0)
+  b:vec4<f32> @offset(16), @location(1), @interpolate(flat)
+  fbf:vec4<i32> @offset(32)
+}
+
+%g = func(%a:f32, %b:f32, %c:i32):void {
+  $B1: {
+    ret
+  }
+}
+%f = @fragment func(%in:In):void {
+  $B2: {
+    %7:f32 = access %in, 0u, 0u
+    %8:f32 = access %in, 1u, 1u
+    %9:i32 = access %in, 2u, 0u
+    %10:void = call %g, %7, %8, %9
+    ret
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/additional_params/j.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/multiple_inputs.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/multiple_outputs/single_input.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/one_output/multiple_inputs.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/one_output/single_input.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/multiple_inputs.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl
index e6213cf..814dc06 100644
--- a/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl
+++ b/test/tint/extensions/texel_fetch/zero_outputs/single_input.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:463 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
+../../src/tint/lang/wgsl/reader/program_to_ir/program_to_ir.cc:384 internal compiler error: TINT_UNIMPLEMENTED IR does not currently support texel fetch extension
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl
index e815e60..02ab5e8 100644
--- a/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/alias.wgsl.expected.ir.msl
@@ -1,7 +1,25 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
-  int c = 0;
-  int d = 0;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %c:ptr<function, i32, read_write> = var
+    %d:ptr<function, i32, read_write> = var
+    %5:i32 = load %c
+    %6:i32 = load %d
+    %7:i32 = add %5, %6
+    store %s, %7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl
index 0f7ec1f..2414db8 100644
--- a/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/const.wgsl.expected.ir.msl
@@ -1,5 +1,20 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    store %s, 3i
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.msl
index 220cfbf..368b677 100644
--- a/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/fn.wgsl.expected.ir.msl
@@ -11,3 +11,7 @@
 void b__() {
   a__();
 }
+kernel void tint_symbol() {
+  b();
+  b__();
+}
diff --git a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl
index 1fb355b..d4a08cd 100644
--- a/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/let.wgsl.expected.ir.msl
@@ -1,9 +1,27 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
-  int const a = 1;
-  int const a__ = a;
-  int const b = a;
-  int const b__ = a__;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %a:i32 = let 1i
+    %a__:i32 = let %a
+    %b:i32 = let %a
+    %b__:i32 = let %a__
+    %7:i32 = add %a, %a__
+    %8:i32 = add %7, %b
+    %9:i32 = add %8, %b__
+    store %s, %9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl
index d66f9b2..14a631f 100644
--- a/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/parameter.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f(int a__) {
-  int const b = a__;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = func(%a__:i32):void {
+  $B2: {
+    %b:i32 = let %a__
+    store %s, %b
+    ret
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:void = call %f, 1i
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl
index 30fd019..16e0624 100644
--- a/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/struct.wgsl.expected.ir.msl
@@ -1,10 +1,29 @@
-#include <metal_stdlib>
-using namespace metal;
-struct a__ {
-  int b__;
-};
+SKIP: FAILED
 
-void f() {
-  a__ const c = a__{};
-  int const d = c.b__;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: a__ = struct @align(4) {
+  b__:i32 @offset(0)
 }
+
+$B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+}
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %c:a__ = let a__(0i)
+    %4:i32 = access %c, 0u
+    %d:i32 = let %4
+    %6:i32 = access %c, 0u
+    %7:i32 = add %6, %d
+    store %s, %7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl
index 5ff7f9f..d017af5 100644
--- a/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/double/var.wgsl.expected.ir.msl
@@ -1,11 +1,29 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-thread int a = 1;
-thread int a__ = 2;
-void f() {
-  int b = a;
-  int b__ = a__;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+  %a:ptr<private, i32, read_write> = var, 1i
+  %a__:ptr<private, i32, read_write> = var, 2i
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:i32 = load %a
+    %b:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %a__
+    %b__:ptr<function, i32, read_write> = var, %7
+    %9:i32 = load %b
+    %10:i32 = load %b__
+    %11:i32 = add %9, %10
+    store %s, %11
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl
index e815e60..02ab5e8 100644
--- a/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/alias.wgsl.expected.ir.msl
@@ -1,7 +1,25 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
-  int c = 0;
-  int d = 0;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %c:ptr<function, i32, read_write> = var
+    %d:ptr<function, i32, read_write> = var
+    %5:i32 = load %c
+    %6:i32 = load %d
+    %7:i32 = add %5, %6
+    store %s, %7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl
index 0f7ec1f..2414db8 100644
--- a/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/const.wgsl.expected.ir.msl
@@ -1,5 +1,20 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    store %s, 3i
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.msl
index 52a673e..b638f54 100644
--- a/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/fn.wgsl.expected.ir.msl
@@ -11,3 +11,7 @@
 void _b() {
   _a();
 }
+kernel void tint_symbol() {
+  b();
+  _b();
+}
diff --git a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl
index 41a3f3d..1a3ece5 100644
--- a/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/let.wgsl.expected.ir.msl
@@ -1,9 +1,27 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
-  int const a = 1;
-  int const _a = a;
-  int const b = a;
-  int const _b = _a;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %a:i32 = let 1i
+    %_a:i32 = let %a
+    %b:i32 = let %a
+    %_b:i32 = let %_a
+    %7:i32 = add %a, %_a
+    %8:i32 = add %7, %b
+    %9:i32 = add %8, %_b
+    store %s, %9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl
index 7c012b7..6e35dc2 100644
--- a/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/parameter.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f(int _a) {
-  int const b = _a;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = func(%_a:i32):void {
+  $B2: {
+    %b:i32 = let %_a
+    store %s, %b
+    ret
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:void = call %f, 1i
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl
index 6af4145..b13e311 100644
--- a/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/struct.wgsl.expected.ir.msl
@@ -1,10 +1,29 @@
-#include <metal_stdlib>
-using namespace metal;
-struct _a {
-  int _b;
-};
+SKIP: FAILED
 
-void f() {
-  _a const c = _a{};
-  int const d = c._b;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: _a = struct @align(4) {
+  _b:i32 @offset(0)
 }
+
+$B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+}
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %c:_a = let _a(0i)
+    %4:i32 = access %c, 0u
+    %d:i32 = let %4
+    %6:i32 = access %c, 0u
+    %7:i32 = add %6, %d
+    store %s, %7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl
index f00abbc..9605c8b 100644
--- a/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/lower/var.wgsl.expected.ir.msl
@@ -1,11 +1,29 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-thread int a = 1;
-thread int _a = 2;
-void f() {
-  int b = a;
-  int _b = _a;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+  %a:ptr<private, i32, read_write> = var, 1i
+  %_a:ptr<private, i32, read_write> = var, 2i
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:i32 = load %a
+    %b:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %_a
+    %_b:ptr<function, i32, read_write> = var, %7
+    %9:i32 = load %b
+    %10:i32 = load %_b
+    %11:i32 = add %9, %10
+    store %s, %11
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl
index e815e60..02ab5e8 100644
--- a/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/alias.wgsl.expected.ir.msl
@@ -1,7 +1,25 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
-  int c = 0;
-  int d = 0;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %c:ptr<function, i32, read_write> = var
+    %d:ptr<function, i32, read_write> = var
+    %5:i32 = load %c
+    %6:i32 = load %d
+    %7:i32 = add %5, %6
+    store %s, %7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.msl
index c6e0288..216dd43 100644
--- a/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/fn.wgsl.expected.ir.msl
@@ -11,3 +11,7 @@
 void _B() {
   _A();
 }
+kernel void tint_symbol() {
+  B();
+  _B();
+}
diff --git a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl
index ec0d03b..7eee399 100644
--- a/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/let.wgsl.expected.ir.msl
@@ -1,9 +1,27 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f() {
-  int const A = 1;
-  int const _A = 2;
-  int const B = A;
-  int const _B = _A;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %A:i32 = let 1i
+    %_A:i32 = let 2i
+    %B:i32 = let %A
+    %_B:i32 = let %_A
+    %7:i32 = add %A, %_A
+    %8:i32 = add %7, %B
+    %9:i32 = add %8, %_B
+    store %s, %9
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl
index fff4151..db464a8 100644
--- a/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/parameter.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-void f(int _A) {
-  int const B = _A;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
+
+%f = func(%_A:i32):void {
+  $B2: {
+    %B:i32 = let %_A
+    store %s, %B
+    ret
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:void = call %f, 1i
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl
index 853b504..b912fa9 100644
--- a/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/struct.wgsl.expected.ir.msl
@@ -1,10 +1,29 @@
-#include <metal_stdlib>
-using namespace metal;
-struct _A {
-  int _B;
-};
+SKIP: FAILED
 
-void f() {
-  _A const c = _A{};
-  int const d = c._B;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: _A = struct @align(4) {
+  _B:i32 @offset(0)
 }
+
+$B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+}
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %c:_A = let _A(0i)
+    %4:i32 = access %c, 0u
+    %d:i32 = let %4
+    %6:i32 = access %c, 0u
+    %7:i32 = add %6, %d
+    store %s, %7
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl
index a588ec6..7c016a8 100644
--- a/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl
+++ b/test/tint/identifiers/underscore/prefix/upper/var.wgsl.expected.ir.msl
@@ -1,11 +1,29 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-thread int A = 1;
-thread int _A = 2;
-void f() {
-  int B = A;
-  int _B = _A;
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %s:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+  %A:ptr<private, i32, read_write> = var, 1i
+  %_A:ptr<private, i32, read_write> = var, 2i
 }
+
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %5:i32 = load %A
+    %B:ptr<function, i32, read_write> = var, %5
+    %7:i32 = load %_A
+    %_B:ptr<function, i32, read_write> = var, %7
+    %9:i32 = load %B
+    %10:i32 = load %_B
+    %11:i32 = add %9, %10
+    store %s, %11
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl
index d366fbc..8429213 100644
--- a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl
+++ b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SSBO = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SSBO = struct @align(8) {
   m:mat2x2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ssbo:ptr<storage, SSBO, read_write> = var @binding_point(0, 0)
 }
 
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, mat2x2<f32>, read_write> = access %ssbo, 0u
-    %v:mat2x2<f32> = load %3
-    %5:ptr<storage, mat2x2<f32>, read_write> = access %ssbo, 0u
-    store %5, %v
+    %4:mat2x2<f32> = load %3
+    %v:mat2x2<f32> = let %4
+    %6:ptr<storage, mat2x2<f32>, read_write> = access %ssbo, 0u
+    store %6, %v
     ret
   }
 }
diff --git a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.msl b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.msl
index 37ab89e..503c46a 100644
--- a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.msl
+++ b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(8) {
   el:vec2<f32> @offset(0)
 }
 
@@ -8,42 +8,77 @@
   m:array<strided_arr, 2> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %ssbo:ptr<storage, SSBO, read_write> = var @binding_point(0, 0)
 }
 
-%mat2x2_stride_16_to_arr = func(%m:mat2x2<f32>):array<strided_arr, 2> -> %b2 {
-  %b2 = block {
+%mat2x2_stride_16_to_arr = func(%m:mat2x2<f32>):array<strided_arr, 2> {
+  $B2: {
     %4:vec2<f32> = access %m, 0u
     %5:strided_arr = construct %4
-    %6:vec2<f32> = access %m, 1u
-    %7:strided_arr = construct %6
-    %8:array<strided_arr, 2> = construct %5, %7
-    ret %8
+    %6:strided_arr = let %5
+    %7:vec2<f32> = access %m, 1u
+    %8:strided_arr = construct %7
+    %9:array<strided_arr, 2> = construct %6, %8
+    ret %9
   }
 }
-%arr_to_mat2x2_stride_16 = func(%arr:array<strided_arr, 2>):mat2x2<f32> -> %b3 {
-  %b3 = block {
-    %11:vec2<f32> = access %arr, 0u, 0u
-    %12:vec2<f32> = access %arr, 1u, 0u
-    %13:mat2x2<f32> = construct %11, %12
-    ret %13
+%arr_to_mat2x2_stride_16 = func(%arr:array<strided_arr, 2>):mat2x2<f32> {
+  $B3: {
+    %12:vec2<f32> = access %arr, 0u, 0u
+    %13:vec2<f32> = access %arr, 1u, 0u
+    %14:mat2x2<f32> = construct %12, %13
+    ret %14
   }
 }
-%f_1 = func():void -> %b4 {
-  %b4 = block {
-    %15:ptr<storage, array<strided_arr, 2>, read_write> = access %ssbo, 0u
+%f_1 = func():void {
+  $B4: {
     %16:ptr<storage, array<strided_arr, 2>, read_write> = access %ssbo, 0u
-    %17:array<strided_arr, 2> = load %16
-    %18:mat2x2<f32> = call %arr_to_mat2x2_stride_16, %17
-    %19:array<strided_arr, 2> = call %mat2x2_stride_16_to_arr, %18
-    store %15, %19
+    %17:ptr<storage, array<strided_arr, 2>, read_write> = access %ssbo, 0u
+    %18:array<strided_arr, 2> = load %17
+    %19:mat2x2<f32> = call %arr_to_mat2x2_stride_16, %18
+    %20:array<strided_arr, 2> = call %mat2x2_stride_16_to_arr, %19
+    %21:void = call %tint_store_and_preserve_padding, %16, %20
     ret
   }
 }
-%f = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %21:void = call %f_1
+%f = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %24:void = call %f_1
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, array<strided_arr, 2>, read_write>, %value_param:array<strided_arr, 2>):void {
+  $B6: {
+    loop [i: $B7, b: $B8, c: $B9] {  # loop_1
+      $B7: {  # initializer
+        next_iteration 0u  # -> $B8
+      }
+      $B8 (%idx:u32): {  # body
+        %28:bool = gte %idx, 2u
+        if %28 [t: $B10] {  # if_1
+          $B10: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %29:ptr<storage, strided_arr, read_write> = access %target, %idx
+        %30:strided_arr = access %value_param, %idx
+        %31:void = call %tint_store_and_preserve_padding_1, %29, %30
+        continue  # -> $B9
+      }
+      $B9: {  # continuing
+        %33:u32 = add %idx, 1u
+        next_iteration %33  # -> $B8
+      }
+    }
+    ret
+  }
+}
+%tint_store_and_preserve_padding_1 = func(%target_1:ptr<storage, strided_arr, read_write>, %value_param_1:strided_arr):void {  # %tint_store_and_preserve_padding_1: 'tint_store_and_preserve_padding', %target_1: 'target', %value_param_1: 'value_param'
+  $B11: {
+    %36:ptr<storage, vec2<f32>, read_write> = access %target_1, 0u
+    %37:vec2<f32> = access %value_param_1, 0u
+    store %36, %37
     ret
   }
 }
diff --git a/test/tint/loops/nested_loops.wgsl.expected.ir.msl b/test/tint/loops/nested_loops.wgsl.expected.ir.msl
index 4721280..70b1c91 100644
--- a/test/tint/loops/nested_loops.wgsl.expected.ir.msl
+++ b/test/tint/loops/nested_loops.wgsl.expected.ir.msl
@@ -19,7 +19,7 @@
           continue;
         }
       }
-      continue;
+      /* unreachable */
     }
   }
   /* unreachable */
diff --git a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.msl b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.msl
index 7fcf68c..8f07396 100644
--- a/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.msl
+++ b/test/tint/loops/nested_loops_with_continuing.wgsl.expected.ir.msl
@@ -18,8 +18,7 @@
           continue;
         }
       }
-      i = (i + 1);
-      continue;
+      /* unreachable */
     }
   }
   /* unreachable */
diff --git a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl
index 28251dc..61afed3 100644
--- a/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl
+++ b/test/tint/out_of_order_decls/array/alias.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<int, 4> A = {};
+fragment void f() {
+  A[0] = 1;
+}
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 4> A = {};
+                          ^
+
diff --git a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl
index 28251dc..6a4b89d 100644
--- a/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl
+++ b/test/tint/out_of_order_decls/array/struct.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  int m;
+};
+
+thread tint_array<S, 4> A = {};
+fragment void f() {
+  A[0] = S{.m=1};
+}
+program_source:19:25: error: program scope variable must reside in constant address space
+thread tint_array<S, 4> A = {};
+                        ^
+
diff --git a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl
index 5c23e22..afda7c5 100644
--- a/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl
+++ b/test/tint/out_of_order_decls/func/var.wgsl.expected.ir.msl
@@ -4,5 +4,13 @@
 using namespace metal;
 
 thread int a = 1;
-void f() {
+fragment void f() {
+  int const b = a;
 }
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int a = 1;
+           ^
+program_source:6:13: warning: unused variable 'b' [-Wunused-variable]
+  int const b = a;
+            ^
+
diff --git a/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.msl b/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.msl
index 28251dc..ab4c76f 100644
--- a/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/access/matrix.wgsl.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void tint_symbol() {
+  float3x3 m = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
+  thread float3* const v = m[1];
+  v = float3(5.0f);
+}
+program_source:6:24: error: cannot initialize a variable of type 'float3 *const' with an lvalue of type 'vec<float, 3>' (vector of 3 'float' values)
+  thread float3* const v = m[1];
+                       ^   ~~~~
+program_source:7:5: error: cannot assign to variable 'v' with const-qualified type 'float3 *const'
+  v = float3(5.0f);
+  ~ ^
+program_source:6:24: note: variable 'v' declared const here
+  thread float3* const v = m[1];
+  ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
+
diff --git a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl
index 792ab03..f08e7dd 100644
--- a/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/i32.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int I = 0;
+void main_1() {
+  int const x_11 = (I + 1);
+}
+kernel void tint_symbol() {
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int I = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_11' [-Wunused-variable]
+  int const x_11 = (I + 1);
+            ^
+
diff --git a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl
index c81019f..48870d6 100644
--- a/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/i32.wgsl.expected.ir.msl
@@ -4,5 +4,14 @@
 using namespace metal;
 
 thread int I = 0;
-void tint_symbol() {
+kernel void tint_symbol() {
+  int const i = I;
+  int const u = (i + 1);
 }
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int I = 0;
+           ^
+program_source:7:13: warning: unused variable 'u' [-Wunused-variable]
+  int const u = (i + 1);
+            ^
+
diff --git a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl
index 28251dc..ebcf5ae 100644
--- a/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/struct_field.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  int i;
+};
+
+thread S V = {};
+void main_1() {
+  int i = 0;
+  i = V.i;
+}
+kernel void tint_symbol() {
+  main_1();
+}
+program_source:7:10: error: program scope variable must reside in constant address space
+thread S V = {};
+         ^
+
diff --git a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl
index 28251dc..5941748 100644
--- a/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/global/struct_field.wgsl.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  int i;
+};
+
+thread S V = {};
+kernel void tint_symbol() {
+  int const i = V.i;
+}
+program_source:7:10: error: program scope variable must reside in constant address space
+thread S V = {};
+         ^
+program_source:9:13: warning: unused variable 'i' [-Wunused-variable]
+  int const i = V.i;
+            ^
+
diff --git a/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.msl
index 5cf693f..7eab9cb 100644
--- a/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_function.wgsl.expected.ir.msl
@@ -3,7 +3,15 @@
 #include <metal_stdlib>
 using namespace metal;
 
-void tint_symbol() {
+kernel void tint_symbol() {
   int i = 123;
   thread int* const p = i;
+  int const u = (p + 1);
 }
+program_source:6:21: error: cannot initialize a variable of type 'int *const' with an lvalue of type 'int'
+  thread int* const p = i;
+                    ^   ~
+program_source:7:13: error: cannot initialize a variable of type 'const int' with an rvalue of type 'int *'
+  int const u = (p + 1);
+            ^   ~~~~~~~
+
diff --git a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl
index 14bee98..1da1a69 100644
--- a/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_private.wgsl.expected.ir.msl
@@ -4,6 +4,14 @@
 using namespace metal;
 
 thread int i = 123;
-void tint_symbol() {
+kernel void tint_symbol() {
   thread int* const p = i;
+  int const u = (p + 1);
 }
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int i = 123;
+           ^
+program_source:7:13: error: cannot initialize a variable of type 'const int' with an rvalue of type 'int *'
+  int const u = (p + 1);
+            ^   ~~~~~~~
+
diff --git a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl
index 115bf6f..14e76e5 100644
--- a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.ir.msl
@@ -1,18 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %p:ptr<storage, i32, read_write> = access %v, 0u
-    %4:i32 = load %p
-    %u:i32 = add %4, 1i
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:ptr<storage, i32, read_write> = access %v, 0u
+    %p:ptr<storage, i32, read_write> = let %3
+    %5:i32 = load %p
+    %6:i32 = add %5, 1i
+    %u:i32 = let %6
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl
index 80bdd95..b062550 100644
--- a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.ir.msl
@@ -1,18 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
-    %p:ptr<uniform, i32, read> = access %v, 0u
-    %4:i32 = load %p
-    %u:i32 = add %4, 1i
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %3:ptr<uniform, i32, read> = access %v, 0u
+    %p:ptr<uniform, i32, read> = let %3
+    %5:i32 = load %p
+    %6:i32 = add %5, 1i
+    %u:i32 = let %6
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.msl
index efdd3b1..5a6429d 100644
--- a/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/local/ptr_workgroup.wgsl.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int i;
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    i = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  i = 123;
+  threadgroup int* const p = i;
+  int const u = (p + 1);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int i;
+                ^
+program_source:6:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:6:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:6:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:12:13: error: cannot initialize a variable of type 'const int' with an rvalue of type 'threadgroup int *'
+  int const u = (p + 1);
+            ^   ~~~~~~~
+
diff --git a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.msl
index 567c382..2206f2b 100644
--- a/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/array_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct str {
+  tint_array<int, 4> arr;
+};
+
+tint_array<int, 4> func(thread tint_array<int, 4>* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  str F = {};
+  tint_array<int, 4> const r = func(F.arr);
+}
+program_source:20:10: error: no viable conversion from returned value of type 'tint_array<int, 4> *const' to function return type 'tint_array<int, 4>'
+  return pointer;
+         ^~~~~~~
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const tint_array<int, 4> &' for 1st argument; dereference the argument with *
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const tint_array<int, 4> &' for 1st argument; dereference the argument with *
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const tint_array<int, 4> &' for 1st argument; dereference the argument with *
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const device tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const threadgroup tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const constant tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const device tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const threadgroup tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const constant tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const constant tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'device tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'threadgroup tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'device tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'threadgroup tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:24:32: error: no matching function for call to 'func'
+  tint_array<int, 4> const r = func(F.arr);
+                               ^~~~
+program_source:19:20: note: candidate function not viable: no known conversion from 'tint_array<int, 4>' to 'tint_array<int, 4> *const' for 1st argument; take the address of the argument with &
+tint_array<int, 4> func(thread tint_array<int, 4>* const pointer) {
+                   ^
+
diff --git a/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.msl
index 567c382..8fde8df 100644
--- a/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/i32.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+int func(thread int* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  int F = 0;
+  int const r = func(F);
+}
+program_source:5:10: error: cannot initialize return object of type 'int' with an lvalue of type 'int *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:17: error: no matching function for call to 'func'
+  int const r = func(F);
+                ^~~~
+program_source:4:5: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 1st argument; take the address of the argument with &
+int func(thread int* const pointer) {
+    ^
+
diff --git a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.msl
index 567c382..f23c502 100644
--- a/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/i32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+
+int func(thread int* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  str F = {};
+  int const r = func(F.i);
+}
+program_source:8:10: error: cannot initialize return object of type 'int' with an lvalue of type 'int *const'
+  return pointer;
+         ^~~~~~~
+program_source:12:17: error: no matching function for call to 'func'
+  int const r = func(F.i);
+                ^~~~
+program_source:7:5: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 1st argument; take the address of the argument with &
+int func(thread int* const pointer) {
+    ^
+
diff --git a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.msl
index 567c382..af589aa 100644
--- a/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/struct_in_array.wgsl.expected.ir.msl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+str func(thread str* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  tint_array<str, 4> F = {};
+  str const r = func(F[2]);
+}
+program_source:20:10: error: no viable conversion from returned value of type 'str *const' to function return type 'str'
+  return pointer;
+         ^~~~~~~
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const str &' for 1st argument; dereference the argument with *
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const str &' for 1st argument; dereference the argument with *
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const str &' for 1st argument; dereference the argument with *
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const device str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const threadgroup str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const constant str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const device str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const threadgroup str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const constant str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const constant str &' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'str &&' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'device str &&' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'threadgroup str &&' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'str &&' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'device str &&' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'threadgroup str &&' for 1st argument
+struct str {
+       ^
+program_source:3:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'str &&' for 1st argument
+struct str {
+       ^
+program_source:24:17: error: no matching function for call to 'func'
+  str const r = func(F[2]);
+                ^~~~
+program_source:19:5: note: candidate function not viable: no known conversion from 'str' to 'str *const' for 1st argument; take the address of the argument with &
+str func(thread str* const pointer) {
+    ^
+
diff --git a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 567c382..a2b85d0 100644
--- a/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+float2 func(thread float2* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float2x2 F = float2x2(0.0f);
+  float2 const r = func(F[1]);
+}
+program_source:5:10: error: cannot initialize return object of type 'float2' (vector of 2 'float' values) with an lvalue of type 'float2 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:20: error: no matching function for call to 'func'
+  float2 const r = func(F[1]);
+                   ^~~~
+program_source:4:8: note: candidate function not viable: no known conversion from 'vec<float, 2>' (vector of 2 'float' values) to 'float2 *const' for 1st argument; take the address of the argument with &
+float2 func(thread float2* const pointer) {
+       ^
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.msl
index 567c382..b4e02d6 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+float4 func(thread float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float4 F = 0.0f;
+  float4 const r = func(F);
+}
+program_source:5:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:20: error: no matching function for call to 'func'
+  float4 const r = func(F);
+                   ^~~~
+program_source:4:8: note: candidate function not viable: no known conversion from 'float4' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
+float4 func(thread float4* const pointer) {
+       ^
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 567c382..fdb732b 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+float4 func(thread float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float2x4 F = float2x4(0.0f);
+  float4 const r = func(F[1]);
+}
+program_source:5:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:20: error: no matching function for call to 'func'
+  float4 const r = func(F[1]);
+                   ^~~~
+program_source:4:8: note: candidate function not viable: no known conversion from 'vec<float, 4>' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
+float4 func(thread float4* const pointer) {
+       ^
+
diff --git a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl
index 567c382..40bdda9 100644
--- a/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  float4 i;
+};
+
+float4 func(thread float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  str F = {};
+  float4 const r = func(F.i);
+}
+program_source:8:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:12:20: error: no matching function for call to 'func'
+  float4 const r = func(F.i);
+                   ^~~~
+program_source:7:8: note: candidate function not viable: no known conversion from 'float4' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
+float4 func(thread float4* const pointer) {
+       ^
+
diff --git a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl
index 567c382..bccad69 100644
--- a/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/array_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct str {
+  tint_array<int, 4> arr;
+};
+
+thread str P = {};
+tint_array<int, 4> func(thread tint_array<int, 4>* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  tint_array<int, 4> const r = func(P.arr);
+}
+program_source:19:12: error: program scope variable must reside in constant address space
+thread str P = {};
+           ^
+program_source:21:10: error: no viable conversion from returned value of type 'tint_array<int, 4> *const' to function return type 'tint_array<int, 4>'
+  return pointer;
+         ^~~~~~~
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const tint_array<int, 4> &' for 1st argument; dereference the argument with *
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const tint_array<int, 4> &' for 1st argument; dereference the argument with *
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const tint_array<int, 4> &' for 1st argument; dereference the argument with *
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const device tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const threadgroup tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const constant tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const device tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const threadgroup tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const constant tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'const constant tint_array<int, 4> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'device tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'threadgroup tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'device tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'threadgroup tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'tint_array<int, 4> *const' to 'tint_array<int, 4> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:24:28: warning: unused variable 'r' [-Wunused-variable]
+  tint_array<int, 4> const r = func(P.arr);
+                           ^
+
diff --git a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl
index 567c382..3788448 100644
--- a/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/i32.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int P = 0;
+int func(thread int* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  int const r = func(P);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int P = 0;
+           ^
+program_source:6:10: error: cannot initialize return object of type 'int' with an lvalue of type 'int *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:13: warning: unused variable 'r' [-Wunused-variable]
+  int const r = func(P);
+            ^
+
diff --git a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl
index 567c382..41906b5 100644
--- a/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/i32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+
+thread str P = {};
+int func(thread int* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  int const r = func(P.i);
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread str P = {};
+           ^
+program_source:9:10: error: cannot initialize return object of type 'int' with an lvalue of type 'int *const'
+  return pointer;
+         ^~~~~~~
+program_source:12:13: warning: unused variable 'r' [-Wunused-variable]
+  int const r = func(P.i);
+            ^
+
diff --git a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl
index 567c382..808d5b3 100644
--- a/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/struct_in_array.wgsl.expected.ir.msl
@@ -1,9 +1,88 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct str {
+  int i;
+};
+
+thread tint_array<str, 4> P = {};
+str func(thread str* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  str const r = func(P[2]);
+}
+program_source:19:27: error: program scope variable must reside in constant address space
+thread tint_array<str, 4> P = {};
+                          ^
+program_source:21:10: error: no viable conversion from returned value of type 'str *const' to function return type 'str'
+  return pointer;
+         ^~~~~~~
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const str &' for 1st argument; dereference the argument with *
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const str &' for 1st argument; dereference the argument with *
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const str &' for 1st argument; dereference the argument with *
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const device str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const threadgroup str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const constant str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const device str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const threadgroup str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const constant str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'str *const' to 'const constant str &' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'str &&' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'device str &&' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'threadgroup str &&' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'str &&' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'device str &&' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'threadgroup str &&' for 1st argument
+struct str {
+       ^
+program_source:15:8: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'str *const' to 'str &&' for 1st argument
+struct str {
+       ^
+program_source:24:13: warning: unused variable 'r' [-Wunused-variable]
+  str const r = func(P[2]);
+            ^
+
diff --git a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 567c382..27f0a3c 100644
--- a/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x2 P = float2x2(0.0f);
+float2 func(thread float2* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float2 const r = func(P[1]);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x2 P = float2x2(0.0f);
+                ^
+program_source:6:10: error: cannot initialize return object of type 'float2' (vector of 2 'float' values) with an lvalue of type 'float2 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:16: warning: unused variable 'r' [-Wunused-variable]
+  float2 const r = func(P[1]);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl
index 567c382..f709c6a 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4 P = 0.0f;
+float4 func(thread float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float4 const r = func(P);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 P = 0.0f;
+              ^
+program_source:6:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:16: warning: unused variable 'r' [-Wunused-variable]
+  float4 const r = func(P);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 567c382..69bce59 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x4 P = float2x4(0.0f);
+float4 func(thread float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float4 const r = func(P[1]);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x4 P = float2x4(0.0f);
+                ^
+program_source:6:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:16: warning: unused variable 'r' [-Wunused-variable]
+  float4 const r = func(P[1]);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
index 567c382..0e67ae3 100644
--- a/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  float4 i;
+};
+
+thread str P = {};
+float4 func(thread float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol() {
+  float4 const r = func(P.i);
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread str P = {};
+           ^
+program_source:9:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:12:16: warning: unused variable 'r' [-Wunused-variable]
+  float4 const r = func(P.i);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.msl b/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.msl
index 567c382..fe78d03 100644
--- a/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/ptr.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+int func(int value, thread int* const pointer) {
+  int const x_9 = pointer;
+  return (value + x_9);
+}
+void main_1() {
+  int i = 0;
+  i = 123;
+  int const x_19 = i;
+  int const x_18 = func(x_19, i);
+}
+kernel void tint_symbol() {
+  main_1();
+}
+program_source:5:13: error: cannot initialize a variable of type 'const int' with an lvalue of type 'int *const'
+  int const x_9 = pointer;
+            ^     ~~~~~~~
+program_source:12:20: error: no matching function for call to 'func'
+  int const x_18 = func(x_19, i);
+                   ^~~~
+program_source:4:5: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 2nd argument; take the address of the argument with &
+int func(int value, thread int* const pointer) {
+    ^
+
diff --git a/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.msl
index 567c382..6d16285 100644
--- a/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/ptr.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+int func(int value, thread int* const pointer) {
+  return (value + pointer);
+}
+kernel void tint_symbol() {
+  int i = 123;
+  int const r = func(i, i);
+}
+program_source:5:10: error: cannot initialize return object of type 'int' with an rvalue of type 'int *'
+  return (value + pointer);
+         ^~~~~~~~~~~~~~~~~
+program_source:9:17: error: no matching function for call to 'func'
+  int const r = func(i, i);
+                ^~~~
+program_source:4:5: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 2nd argument; take the address of the argument with &
+int func(int value, thread int* const pointer) {
+    ^
+
diff --git a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl
index 32298b1..6472c06 100644
--- a/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/array_in_struct.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   arr:array<i32, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, str, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, array<i32, 4>, read>):array<i32, 4> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, array<i32, 4>, read>):array<i32, 4> {
+  $B2: {
     %4:array<i32, 4> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<storage, array<i32, 4>, read> = access %S, 0u
-    %r:array<i32, 4> = call %func, %6
+    %7:array<i32, 4> = call %func, %6
+    %r:array<i32, 4> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl
index 639ebdb..b8fa44a 100644
--- a/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/i32.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, i32, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, i32, read>):i32 -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, i32, read>):i32 {
+  $B2: {
     %4:i32 = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %r:i32 = call %func, %S
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:i32 = call %func, %S
+    %r:i32 = let %6
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl
index 0ea3e0f..0593dcd 100644
--- a/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/i32_in_struct.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, str, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, i32, read>):i32 -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, i32, read>):i32 {
+  $B2: {
     %4:i32 = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<storage, i32, read> = access %S, 0u
-    %r:i32 = call %func, %6
+    %7:i32 = call %func, %6
+    %r:i32 = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl
index 7b014eb..3004ce1 100644
--- a/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/struct_in_array.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, array<str, 4>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, str, read>):str -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, str, read>):str {
+  $B2: {
     %4:str = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<storage, str, read> = access %S, 2i
-    %r:str = call %func, %6
+    %7:str = call %func, %6
+    %r:str = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 3d1831c..982f9f0 100644
--- a/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, mat2x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec2<f32>, read>):vec2<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec2<f32>, read>):vec2<f32> {
+  $B2: {
     %4:vec2<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<storage, vec2<f32>, read> = access %S, 1i
-    %r:vec2<f32> = call %func, %6
+    %7:vec2<f32> = call %func, %6
+    %r:vec2<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl
index eafe2c3..8a1a501 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, vec4<f32>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec4<f32>, read>):vec4<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec4<f32>, read>):vec4<f32> {
+  $B2: {
     %4:vec4<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %r:vec4<f32> = call %func, %S
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:vec4<f32> = call %func, %S
+    %r:vec4<f32> = let %6
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 122f86e..84f0808 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, mat2x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec4<f32>, read>):vec4<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec4<f32>, read>):vec4<f32> {
+  $B2: {
     %4:vec4<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<storage, vec4<f32>, read> = access %S, 1i
-    %r:vec4<f32> = call %func, %6
+    %7:vec4<f32> = call %func, %6
+    %r:vec4<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
index cbafdd3..cada6c2 100644
--- a/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(16) {
   i:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, str, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec4<f32>, read>):vec4<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec4<f32>, read>):vec4<f32> {
+  $B2: {
     %4:vec4<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<storage, vec4<f32>, read> = access %S, 0u
-    %r:vec4<f32> = call %func, %6
+    %7:vec4<f32> = call %func, %6
+    %r:vec4<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl
index 3ce58b1..6218623 100644
--- a/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/array_in_struct.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(16) {
   arr:array<vec4<i32>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<uniform, str, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, array<vec4<i32>, 4>, read>):array<vec4<i32>, 4> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, array<vec4<i32>, 4>, read>):array<vec4<i32>, 4> {
+  $B2: {
     %4:array<vec4<i32>, 4> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<uniform, array<vec4<i32>, 4>, read> = access %S, 0u
-    %r:array<vec4<i32>, 4> = call %func, %6
+    %7:array<vec4<i32>, 4> = call %func, %6
+    %r:array<vec4<i32>, 4> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl
index 309f657..2a0a0992 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/i32.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<uniform, i32, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, i32, read>):i32 -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, i32, read>):i32 {
+  $B2: {
     %4:i32 = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %r:i32 = call %func, %S
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:i32 = call %func, %S
+    %r:i32 = let %6
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl
index e9da132..d3cb467 100644
--- a/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/i32_in_struct.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<uniform, str, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, i32, read>):i32 -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, i32, read>):i32 {
+  $B2: {
     %4:i32 = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<uniform, i32, read> = access %S, 0u
-    %r:i32 = call %func, %6
+    %7:i32 = call %func, %6
+    %r:i32 = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl
index fcbc717..e70fe7d 100644
--- a/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/struct_in_array.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(16) {
   i:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<uniform, array<str, 4>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, str, read>):str -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, str, read>):str {
+  $B2: {
     %4:str = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<uniform, str, read> = access %S, 2i
-    %r:str = call %func, %6
+    %7:str = call %func, %6
+    %r:str = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 862942b..7b92425 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<uniform, mat2x2<f32>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, vec2<f32>, read>):vec2<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, vec2<f32>, read>):vec2<f32> {
+  $B2: {
     %4:vec2<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<uniform, vec2<f32>, read> = access %S, 1i
-    %r:vec2<f32> = call %func, %6
+    %7:vec2<f32> = call %func, %6
+    %r:vec2<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl
index 18d662f..499fa01 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32.wgsl.expected.ir.msl
@@ -1,18 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<uniform, vec4<f32>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, vec4<f32>, read>):vec4<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, vec4<f32>, read>):vec4<f32> {
+  $B2: {
     %4:vec4<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %r:vec4<f32> = call %func, %S
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:vec4<f32> = call %func, %S
+    %r:vec4<f32> = let %6
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 40c620f..4edcc1e 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<uniform, mat2x4<f32>, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, vec4<f32>, read>):vec4<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, vec4<f32>, read>):vec4<f32> {
+  $B2: {
     %4:vec4<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<uniform, vec4<f32>, read> = access %S, 1i
-    %r:vec4<f32> = call %func, %6
+    %7:vec4<f32> = call %func, %6
+    %r:vec4<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl
index ff513fd..eb30111 100644
--- a/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/uniform/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,23 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(16) {
   i:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<uniform, str, read> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<uniform, vec4<f32>, read>):vec4<f32> -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<uniform, vec4<f32>, read>):vec4<f32> {
+  $B2: {
     %4:vec4<f32> = load %pointer
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %6:ptr<uniform, vec4<f32>, read> = access %S, 0u
-    %r:vec4<f32> = call %func, %6
+    %7:vec4<f32> = call %func, %6
+    %r:vec4<f32> = let %7
     ret
   }
 }
diff --git a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.msl
index 567c382..3fa6a4b 100644
--- a/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/array_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.msl
index 567c382..25d79e7 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int S;
+int func(threadgroup int* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  int const r = func(S);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int S;
+                ^
+program_source:6:10: error: cannot initialize return object of type 'int' with an lvalue of type 'threadgroup int *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:13:13: warning: unused variable 'r' [-Wunused-variable]
+  int const r = func(S);
+            ^
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.msl
index 567c382..4be387c 100644
--- a/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/i32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+
+threadgroup str S;
+int func(threadgroup int* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = str{};
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  int const r = func(S.i);
+}
+program_source:7:17: error: program scope variable must reside in constant address space
+threadgroup str S;
+                ^
+program_source:9:10: error: cannot initialize return object of type 'int' with an lvalue of type 'threadgroup int *const'
+  return pointer;
+         ^~~~~~~
+program_source:12:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:12:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:12:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:16:13: warning: unused variable 'r' [-Wunused-variable]
+  int const r = func(S.i);
+            ^
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.msl
index 567c382..3fa6a4b 100644
--- a/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/struct_in_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 567c382..6866579 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float2x2 S;
+float2 func(threadgroup float2* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = float2x2(float2(0.0f), float2(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  float2 const r = func(S[1]);
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 S;
+                     ^
+program_source:6:10: error: cannot initialize return object of type 'float2' (vector of 2 'float' values) with an lvalue of type 'threadgroup float2 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:13:16: warning: unused variable 'r' [-Wunused-variable]
+  float2 const r = func(S[1]);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.msl
index 567c382..1e11dc4 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float4 S;
+float4 func(threadgroup float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = float4(0.0f);
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  float4 const r = func(S);
+}
+program_source:4:20: error: program scope variable must reside in constant address space
+threadgroup float4 S;
+                   ^
+program_source:6:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'threadgroup float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:13:16: warning: unused variable 'r' [-Wunused-variable]
+  float4 const r = func(S);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index 567c382..a6f5b85 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float2x4 S;
+float4 func(threadgroup float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = float2x4(float4(0.0f), float4(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  float4 const r = func(S[1]);
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x4 S;
+                     ^
+program_source:6:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'threadgroup float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:13:16: warning: unused variable 'r' [-Wunused-variable]
+  float4 const r = func(S[1]);
+               ^
+
diff --git a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl
index 567c382..62142f9 100644
--- a/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/load/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  float4 i;
+};
+
+threadgroup str S;
+float4 func(threadgroup float4* const pointer) {
+  return pointer;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = str{};
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  float4 const r = func(S.i);
+}
+program_source:7:17: error: program scope variable must reside in constant address space
+threadgroup str S;
+                ^
+program_source:9:10: error: cannot initialize return object of type 'float4' (vector of 4 'float' values) with an lvalue of type 'threadgroup float4 *const'
+  return pointer;
+         ^~~~~~~
+program_source:12:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:12:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:12:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:16:16: warning: unused variable 'r' [-Wunused-variable]
+  float4 const r = func(S.i);
+               ^
+
diff --git a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl
index efdd3b1..9549b00 100644
--- a/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/store/global/i32.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int I = 0;
+void main_1() {
+  I = 123;
+  I = 123;
+}
+kernel void tint_symbol() {
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int I = 0;
+           ^
+
diff --git a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl
index efdd3b1..77f0be6 100644
--- a/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/global/i32.wgsl.expected.ir.msl
@@ -1,9 +1,14 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int I = 0;
+kernel void tint_symbol() {
+  I = 123;
+  I = 123;
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int I = 0;
+           ^
+
diff --git a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl
index 28251dc..deec3d5 100644
--- a/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl
+++ b/test/tint/ptr_ref/store/global/struct_field.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  int i;
+};
+
+thread S V = {};
+void main_1() {
+  V.i = 5;
+}
+kernel void tint_symbol() {
+  main_1();
+}
+program_source:7:10: error: program scope variable must reside in constant address space
+thread S V = {};
+         ^
+
diff --git a/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.msl
index efdd3b1..aa60be5 100644
--- a/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/local/i32.wgsl.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+kernel void tint_symbol() {
+  int i = 123;
+  thread int* const p = i;
+  p = 123;
+  p = 123;
+}
+program_source:6:21: error: cannot initialize a variable of type 'int *const' with an lvalue of type 'int'
+  thread int* const p = i;
+                    ^   ~
+program_source:7:5: error: cannot assign to variable 'p' with const-qualified type 'int *const'
+  p = 123;
+  ~ ^
+program_source:6:21: note: variable 'p' declared const here
+  thread int* const p = i;
+  ~~~~~~~~~~~~~~~~~~^~~~~
+program_source:8:5: error: cannot assign to variable 'p' with const-qualified type 'int *const'
+  p = 123;
+  ~ ^
+program_source:6:21: note: variable 'p' declared const here
+  thread int* const p = i;
+  ~~~~~~~~~~~~~~~~~~^~~~~
+
diff --git a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.msl
index efdd3b1..5af32c9 100644
--- a/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/array_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct str {
+  tint_array<int, 4> arr;
+};
+
+void func(thread tint_array<int, 4>* const pointer) {
+  pointer = tint_array<int, 4>{};
+}
+kernel void tint_symbol() {
+  str F = {};
+  func(F.arr);
+}
+program_source:20:11: error: cannot assign to variable 'pointer' with const-qualified type 'tint_array<int, 4> *const'
+  pointer = tint_array<int, 4>{};
+  ~~~~~~~ ^
+program_source:19:44: note: variable 'pointer' declared const here
+void func(thread tint_array<int, 4>* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:24:3: error: no matching function for call to 'func'
+  func(F.arr);
+  ^~~~
+program_source:19:6: note: candidate function not viable: no known conversion from 'tint_array<int, 4>' to 'tint_array<int, 4> *const' for 1st argument; take the address of the argument with &
+void func(thread tint_array<int, 4>* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.msl
index efdd3b1..55fb76d 100644
--- a/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/i32.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void func(thread int* const pointer) {
+  pointer = 42;
+}
+kernel void tint_symbol() {
+  int F = 0;
+  func(F);
+}
+program_source:5:11: error: cannot assign to variable 'pointer' with const-qualified type 'int *const'
+  pointer = 42;
+  ~~~~~~~ ^
+program_source:4:29: note: variable 'pointer' declared const here
+void func(thread int* const pointer) {
+          ~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:3: error: no matching function for call to 'func'
+  func(F);
+  ^~~~
+program_source:4:6: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 1st argument; take the address of the argument with &
+void func(thread int* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.msl
index efdd3b1..8fc6fb2 100644
--- a/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/i32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+
+void func(thread int* const pointer) {
+  pointer = 42;
+}
+kernel void tint_symbol() {
+  str F = {};
+  func(F.i);
+}
+program_source:8:11: error: cannot assign to variable 'pointer' with const-qualified type 'int *const'
+  pointer = 42;
+  ~~~~~~~ ^
+program_source:7:29: note: variable 'pointer' declared const here
+void func(thread int* const pointer) {
+          ~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:12:3: error: no matching function for call to 'func'
+  func(F.i);
+  ^~~~
+program_source:7:6: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 1st argument; take the address of the argument with &
+void func(thread int* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.msl
index efdd3b1..99bf128 100644
--- a/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/struct_in_array.wgsl.expected.ir.msl
@@ -1,9 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+void func(thread str* const pointer) {
+  pointer = str{};
+}
+kernel void tint_symbol() {
+  tint_array<str, 4> F = {};
+  func(F[2]);
+}
+program_source:20:11: error: cannot assign to variable 'pointer' with const-qualified type 'str *const'
+  pointer = str{};
+  ~~~~~~~ ^
+program_source:19:29: note: variable 'pointer' declared const here
+void func(thread str* const pointer) {
+          ~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:24:3: error: no matching function for call to 'func'
+  func(F[2]);
+  ^~~~
+program_source:19:6: note: candidate function not viable: no known conversion from 'str' to 'str *const' for 1st argument; take the address of the argument with &
+void func(thread str* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index efdd3b1..d099190 100644
--- a/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void func(thread float2* const pointer) {
+  pointer = float2(0.0f);
+}
+kernel void tint_symbol() {
+  float2x2 F = float2x2(0.0f);
+  func(F[1]);
+}
+program_source:5:11: error: cannot assign to variable 'pointer' with const-qualified type 'float2 *const'
+  pointer = float2(0.0f);
+  ~~~~~~~ ^
+program_source:4:32: note: variable 'pointer' declared const here
+void func(thread float2* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:3: error: no matching function for call to 'func'
+  func(F[1]);
+  ^~~~
+program_source:4:6: note: candidate function not viable: no known conversion from 'vec<float, 2>' (vector of 2 'float' values) to 'float2 *const' for 1st argument; take the address of the argument with &
+void func(thread float2* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.msl
index efdd3b1..9d13429 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void func(thread float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol() {
+  float4 F = 0.0f;
+  func(F);
+}
+program_source:5:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:4:32: note: variable 'pointer' declared const here
+void func(thread float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:3: error: no matching function for call to 'func'
+  func(F);
+  ^~~~
+program_source:4:6: note: candidate function not viable: no known conversion from 'float4' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
+void func(thread float4* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index efdd3b1..7769f44 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void func(thread float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol() {
+  float2x4 F = float2x4(0.0f);
+  func(F[1]);
+}
+program_source:5:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:4:32: note: variable 'pointer' declared const here
+void func(thread float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:3: error: no matching function for call to 'func'
+  func(F[1]);
+  ^~~~
+program_source:4:6: note: candidate function not viable: no known conversion from 'vec<float, 4>' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
+void func(thread float4* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl
index efdd3b1..52ece14 100644
--- a/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/function/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  float4 i;
+};
+
+void func(thread float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol() {
+  str F = {};
+  func(F.i);
+}
+program_source:8:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:7:32: note: variable 'pointer' declared const here
+void func(thread float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:12:3: error: no matching function for call to 'func'
+  func(F.i);
+  ^~~~
+program_source:7:6: note: candidate function not viable: no known conversion from 'float4' (vector of 4 'float' values) to 'float4 *const' for 1st argument; take the address of the argument with &
+void func(thread float4* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl
index efdd3b1..65761d4 100644
--- a/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/array_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct str {
+  tint_array<int, 4> arr;
+};
+
+thread str P = {};
+void func(thread tint_array<int, 4>* const pointer) {
+  pointer = tint_array<int, 4>{};
+}
+kernel void tint_symbol() {
+  func(P.arr);
+}
+program_source:19:12: error: program scope variable must reside in constant address space
+thread str P = {};
+           ^
+program_source:21:11: error: cannot assign to variable 'pointer' with const-qualified type 'tint_array<int, 4> *const'
+  pointer = tint_array<int, 4>{};
+  ~~~~~~~ ^
+program_source:20:44: note: variable 'pointer' declared const here
+void func(thread tint_array<int, 4>* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl
index efdd3b1..cd72298 100644
--- a/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/i32.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int P = 0;
+void func(thread int* const pointer) {
+  pointer = 42;
+}
+kernel void tint_symbol() {
+  func(P);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int P = 0;
+           ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'int *const'
+  pointer = 42;
+  ~~~~~~~ ^
+program_source:5:29: note: variable 'pointer' declared const here
+void func(thread int* const pointer) {
+          ~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl
index efdd3b1..b158e1e 100644
--- a/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/i32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+
+thread str P = {};
+void func(thread int* const pointer) {
+  pointer = 42;
+}
+kernel void tint_symbol() {
+  func(P.i);
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread str P = {};
+           ^
+program_source:9:11: error: cannot assign to variable 'pointer' with const-qualified type 'int *const'
+  pointer = 42;
+  ~~~~~~~ ^
+program_source:8:29: note: variable 'pointer' declared const here
+void func(thread int* const pointer) {
+          ~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl
index efdd3b1..1a51d5d 100644
--- a/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/struct_in_array.wgsl.expected.ir.msl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct str {
+  int i;
+};
+
+thread tint_array<str, 4> P = {};
+void func(thread str* const pointer) {
+  pointer = str{};
+}
+kernel void tint_symbol() {
+  func(P[2]);
+}
+program_source:19:27: error: program scope variable must reside in constant address space
+thread tint_array<str, 4> P = {};
+                          ^
+program_source:21:11: error: cannot assign to variable 'pointer' with const-qualified type 'str *const'
+  pointer = str{};
+  ~~~~~~~ ^
+program_source:20:29: note: variable 'pointer' declared const here
+void func(thread str* const pointer) {
+          ~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index efdd3b1..4489f35 100644
--- a/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x2 P = float2x2(0.0f);
+void func(thread float2* const pointer) {
+  pointer = float2(0.0f);
+}
+kernel void tint_symbol() {
+  func(P[1]);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x2 P = float2x2(0.0f);
+                ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'float2 *const'
+  pointer = float2(0.0f);
+  ~~~~~~~ ^
+program_source:5:32: note: variable 'pointer' declared const here
+void func(thread float2* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl
index efdd3b1..4f1b1bd 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float4 P = 0.0f;
+void func(thread float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol() {
+  func(P);
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float4 P = 0.0f;
+              ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:5:32: note: variable 'pointer' declared const here
+void func(thread float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index efdd3b1..3c1285d 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2x4 P = float2x4(0.0f);
+void func(thread float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol() {
+  func(P[1]);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x4 P = float2x4(0.0f);
+                ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:5:32: note: variable 'pointer' declared const here
+void func(thread float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
index efdd3b1..6e2e7f8 100644
--- a/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/private/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  float4 i;
+};
+
+thread str P = {};
+void func(thread float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol() {
+  func(P.i);
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread str P = {};
+           ^
+program_source:9:11: error: cannot assign to variable 'pointer' with const-qualified type 'float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:8:32: note: variable 'pointer' declared const here
+void func(thread float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+
diff --git a/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.msl
index efdd3b1..d91d1cd 100644
--- a/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/ptr.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void func(int value, thread int* const pointer) {
+  pointer = value;
+}
+kernel void tint_symbol() {
+  int i = 123;
+  func(123, i);
+}
+program_source:5:11: error: cannot assign to variable 'pointer' with const-qualified type 'int *const'
+  pointer = value;
+  ~~~~~~~ ^
+program_source:4:40: note: variable 'pointer' declared const here
+void func(int value, thread int* const pointer) {
+                     ~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:3: error: no matching function for call to 'func'
+  func(123, i);
+  ^~~~
+program_source:4:6: note: candidate function not viable: no known conversion from 'int' to 'int *const' for 2nd argument; take the address of the argument with &
+void func(int value, thread int* const pointer) {
+     ^
+
diff --git a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl
index e4740af..1b861a3 100644
--- a/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/array_in_struct.wgsl.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   arr:array<i32, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, str, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, array<i32, 4>, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, array<i32, 4>, read_write>):void {
+  $B2: {
     store %pointer, array<i32, 4>(0i)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:ptr<storage, array<i32, 4>, read_write> = access %S, 0u
     %6:void = call %func, %5
     ret
diff --git a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl
index 9619674..fcdbb3b 100644
--- a/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/i32.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, i32, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, i32, read_write>):void {
+  $B2: {
     store %pointer, 42i
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:void = call %func, %S
     ret
   }
diff --git a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl
index 9f0eb01..4faa5a7 100644
--- a/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/i32_in_struct.wgsl.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, str, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, i32, read_write>):void {
+  $B2: {
     store %pointer, 42i
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:ptr<storage, i32, read_write> = access %S, 0u
     %6:void = call %func, %5
     ret
diff --git a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl
index 5e2f890..6fe5e92 100644
--- a/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/struct_in_array.wgsl.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, array<str, 4>, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, str, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, str, read_write>):void {
+  $B2: {
     store %pointer, str(0i)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:ptr<storage, str, read_write> = access %S, 2i
     %6:void = call %func, %5
     ret
diff --git a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index 73ba227..32234ae 100644
--- a/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, mat2x2<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec2<f32>, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec2<f32>, read_write>):void {
+  $B2: {
     store %pointer, vec2<f32>(0.0f)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:ptr<storage, vec2<f32>, read_write> = access %S, 1i
     %6:void = call %func, %5
     ret
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl
index bb2fd01..0d2a0ce 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, vec4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec4<f32>, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec4<f32>, read_write>):void {
+  $B2: {
     store %pointer, vec4<f32>(0.0f)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:void = call %func, %S
     ret
   }
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index b316f50..b5c1b0f 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,17 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %S:ptr<storage, mat2x4<f32>, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec4<f32>, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec4<f32>, read_write>):void {
+  $B2: {
     store %pointer, vec4<f32>(0.0f)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:ptr<storage, vec4<f32>, read_write> = access %S, 1i
     %6:void = call %func, %5
     ret
diff --git a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
index 569ba51..bda7b20 100644
--- a/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/storage/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: str = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: str = struct @align(16) {
   i:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %S:ptr<storage, str, read_write> = var @binding_point(0, 0)
 }
 
-%func = func(%pointer:ptr<storage, vec4<f32>, read_write>):void -> %b2 {
-  %b2 = block {
+%func = func(%pointer:ptr<storage, vec4<f32>, read_write>):void {
+  $B2: {
     store %pointer, vec4<f32>(0.0f)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:ptr<storage, vec4<f32>, read_write> = access %S, 0u
     %6:void = call %func, %5
     ret
diff --git a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.msl
index efdd3b1..3fa6a4b 100644
--- a/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/array_in_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.msl
index efdd3b1..b5cca68 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int S;
+void func(threadgroup int* const pointer) {
+  pointer = 42;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  func(S);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int S;
+                ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'threadgroup int *const'
+  pointer = 42;
+  ~~~~~~~ ^
+program_source:5:34: note: variable 'pointer' declared const here
+void func(threadgroup int* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.msl
index efdd3b1..cc3cff5 100644
--- a/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/i32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  int i;
+};
+
+threadgroup str S;
+void func(threadgroup int* const pointer) {
+  pointer = 42;
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = str{};
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  func(S.i);
+}
+program_source:7:17: error: program scope variable must reside in constant address space
+threadgroup str S;
+                ^
+program_source:9:11: error: cannot assign to variable 'pointer' with const-qualified type 'threadgroup int *const'
+  pointer = 42;
+  ~~~~~~~ ^
+program_source:8:34: note: variable 'pointer' declared const here
+void func(threadgroup int* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:12:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:12:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:12:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.msl
index efdd3b1..3fa6a4b 100644
--- a/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/struct_in_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
index efdd3b1..ef57e5a 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec2_f32_in_mat2x2.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float2x2 S;
+void func(threadgroup float2* const pointer) {
+  pointer = float2(0.0f);
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = float2x2(float2(0.0f), float2(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  func(S[1]);
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 S;
+                     ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'threadgroup float2 *const'
+  pointer = float2(0.0f);
+  ~~~~~~~ ^
+program_source:5:37: note: variable 'pointer' declared const here
+void func(threadgroup float2* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.msl
index efdd3b1..2de34c8 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float4 S;
+void func(threadgroup float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = float4(0.0f);
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  func(S);
+}
+program_source:4:20: error: program scope variable must reside in constant address space
+threadgroup float4 S;
+                   ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'threadgroup float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:5:37: note: variable 'pointer' declared const here
+void func(threadgroup float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
index efdd3b1..0f5c1cc 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_mat2x4.wgsl.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float2x4 S;
+void func(threadgroup float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = float2x4(float4(0.0f), float4(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  func(S[1]);
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x4 S;
+                     ^
+program_source:6:11: error: cannot assign to variable 'pointer' with const-qualified type 'threadgroup float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:5:37: note: variable 'pointer' declared const here
+void func(threadgroup float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:9:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:9:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:9:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl
index efdd3b1..9017799 100644
--- a/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl
+++ b/test/tint/ptr_ref/store/param/workgroup/vec4_f32_in_struct.wgsl.expected.ir.msl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct str {
+  float4 i;
+};
+
+threadgroup str S;
+void func(threadgroup float4* const pointer) {
+  pointer = float4(0.0f);
+}
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    S = str{};
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  func(S.i);
+}
+program_source:7:17: error: program scope variable must reside in constant address space
+threadgroup str S;
+                ^
+program_source:9:11: error: cannot assign to variable 'pointer' with const-qualified type 'threadgroup float4 *const'
+  pointer = float4(0.0f);
+  ~~~~~~~ ^
+program_source:8:37: note: variable 'pointer' declared const here
+void func(threadgroup float4* const pointer) {
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
+program_source:12:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:12:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:12:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/ptr_sugar/array.wgsl.expected.ir.msl b/test/tint/ptr_sugar/array.wgsl.expected.ir.msl
new file mode 100644
index 0000000..bdb6bf8
--- /dev/null
+++ b/test/tint/ptr_sugar/array.wgsl.expected.ir.msl
@@ -0,0 +1,330 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+void deref_const() {
+  tint_array<int, 10> a = {};
+  thread tint_array<int, 10>* const p = a;
+  int b = p[0];
+  p[0] = 42;
+}
+void no_deref_const() {
+  tint_array<int, 10> a = {};
+  thread tint_array<int, 10>* const p = a;
+  int b = p[0];
+  p[0] = 42;
+}
+void deref_let() {
+  tint_array<int, 10> a = {};
+  thread tint_array<int, 10>* const p = a;
+  int const i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+void no_deref_let() {
+  tint_array<int, 10> a = {};
+  thread tint_array<int, 10>* const p = a;
+  int const i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+void deref_var() {
+  tint_array<int, 10> a = {};
+  thread tint_array<int, 10>* const p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+void no_deref_var() {
+  tint_array<int, 10> a = {};
+  thread tint_array<int, 10>* const p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+kernel void tint_symbol() {
+  deref_const();
+  no_deref_const();
+  deref_let();
+  no_deref_let();
+  deref_var();
+  no_deref_var();
+}
+program_source:18:37: error: no viable conversion from 'tint_array<int, 10>' to 'tint_array<int, 10> *const'
+  thread tint_array<int, 10>* const p = a;
+                                    ^   ~
+program_source:19:7: error: no viable conversion from 'tint_array<int, 10>' to 'int'
+  int b = p[0];
+      ^   ~~~~
+program_source:20:8: error: no viable overloaded '='
+  p[0] = 42;
+  ~~~~ ^ ~~
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const device tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const threadgroup tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const constant tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'device tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'threadgroup tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:24:37: error: no viable conversion from 'tint_array<int, 10>' to 'tint_array<int, 10> *const'
+  thread tint_array<int, 10>* const p = a;
+                                    ^   ~
+program_source:25:7: error: no viable conversion from 'tint_array<int, 10>' to 'int'
+  int b = p[0];
+      ^   ~~~~
+program_source:26:8: error: no viable overloaded '='
+  p[0] = 42;
+  ~~~~ ^ ~~
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const device tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const threadgroup tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const constant tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'device tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'threadgroup tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:30:37: error: no viable conversion from 'tint_array<int, 10>' to 'tint_array<int, 10> *const'
+  thread tint_array<int, 10>* const p = a;
+                                    ^   ~
+program_source:32:7: error: no viable conversion from 'tint_array<int, 10>' to 'int'
+  int b = p[i];
+      ^   ~~~~
+program_source:33:8: error: no viable overloaded '='
+  p[0] = 42;
+  ~~~~ ^ ~~
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const device tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const threadgroup tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const constant tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'device tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'threadgroup tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:37:37: error: no viable conversion from 'tint_array<int, 10>' to 'tint_array<int, 10> *const'
+  thread tint_array<int, 10>* const p = a;
+                                    ^   ~
+program_source:39:7: error: no viable conversion from 'tint_array<int, 10>' to 'int'
+  int b = p[i];
+      ^   ~~~~
+program_source:40:8: error: no viable overloaded '='
+  p[0] = 42;
+  ~~~~ ^ ~~
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const device tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const threadgroup tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const constant tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'device tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'threadgroup tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:44:37: error: no viable conversion from 'tint_array<int, 10>' to 'tint_array<int, 10> *const'
+  thread tint_array<int, 10>* const p = a;
+                                    ^   ~
+program_source:46:7: error: no viable conversion from 'tint_array<int, 10>' to 'int'
+  int b = p[i];
+      ^   ~~~~
+program_source:47:8: error: no viable overloaded '='
+  p[0] = 42;
+  ~~~~ ^ ~~
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const device tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const threadgroup tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const constant tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'device tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'threadgroup tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:51:37: error: no viable conversion from 'tint_array<int, 10>' to 'tint_array<int, 10> *const'
+  thread tint_array<int, 10>* const p = a;
+                                    ^   ~
+program_source:53:7: error: no viable conversion from 'tint_array<int, 10>' to 'int'
+  int b = p[i];
+      ^   ~~~~
+program_source:54:8: error: no viable overloaded '='
+  p[0] = 42;
+  ~~~~ ^ ~~
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const device tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const threadgroup tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'int' to 'const constant tint_array<int, 10> &' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'tint_array<int, 10>' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'device tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'int' to 'threadgroup tint_array<int, 10> &&' for 1st argument
+struct tint_array {
+       ^
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+
diff --git a/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.msl b/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2090c9a
--- /dev/null
+++ b/test/tint/ptr_sugar/builtin_struct.wgsl.expected.ir.msl
@@ -0,0 +1,88 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+struct modf_result_f32 {
+  float fract;
+  float whole;
+};
+struct frexp_result_f32 {
+  float fract;
+  int exp;
+};
+
+void deref_modf() {
+  modf_result_f32 a = modf_result_f32{.fract=0.5f, .whole=1.0f};
+  thread modf_result_f32* const p = a;
+  float fract = p.fract;
+  float whole = p.whole;
+}
+void no_deref_modf() {
+  modf_result_f32 a = modf_result_f32{.fract=0.5f, .whole=1.0f};
+  thread modf_result_f32* const p = a;
+  float fract = p.fract;
+  float whole = p.whole;
+}
+void deref_frexp() {
+  frexp_result_f32 a = frexp_result_f32{.fract=0.75f, .exp=1};
+  thread frexp_result_f32* const p = a;
+  float fract = p.fract;
+  int exp = p.exp;
+}
+void no_deref_frexp() {
+  frexp_result_f32 a = frexp_result_f32{.fract=0.75f, .exp=1};
+  thread frexp_result_f32* const p = a;
+  float fract = p.fract;
+  int exp = p.exp;
+}
+kernel void tint_symbol() {
+  deref_modf();
+  no_deref_modf();
+  deref_frexp();
+  no_deref_frexp();
+}
+program_source:14:33: error: no viable conversion from 'modf_result_f32' to 'modf_result_f32 *const'
+  thread modf_result_f32* const p = a;
+                                ^   ~
+program_source:15:18: error: member reference type 'modf_result_f32 *const' is a pointer; did you mean to use '->'?
+  float fract = p.fract;
+                ~^
+                 ->
+program_source:16:18: error: member reference type 'modf_result_f32 *const' is a pointer; did you mean to use '->'?
+  float whole = p.whole;
+                ~^
+                 ->
+program_source:20:33: error: no viable conversion from 'modf_result_f32' to 'modf_result_f32 *const'
+  thread modf_result_f32* const p = a;
+                                ^   ~
+program_source:21:18: error: member reference type 'modf_result_f32 *const' is a pointer; did you mean to use '->'?
+  float fract = p.fract;
+                ~^
+                 ->
+program_source:22:18: error: member reference type 'modf_result_f32 *const' is a pointer; did you mean to use '->'?
+  float whole = p.whole;
+                ~^
+                 ->
+program_source:26:34: error: no viable conversion from 'frexp_result_f32' to 'frexp_result_f32 *const'
+  thread frexp_result_f32* const p = a;
+                                 ^   ~
+program_source:27:18: error: member reference type 'frexp_result_f32 *const' is a pointer; did you mean to use '->'?
+  float fract = p.fract;
+                ~^
+                 ->
+program_source:28:14: error: member reference type 'frexp_result_f32 *const' is a pointer; did you mean to use '->'?
+  int exp = p.exp;
+            ~^
+             ->
+program_source:32:34: error: no viable conversion from 'frexp_result_f32' to 'frexp_result_f32 *const'
+  thread frexp_result_f32* const p = a;
+                                 ^   ~
+program_source:33:18: error: member reference type 'frexp_result_f32 *const' is a pointer; did you mean to use '->'?
+  float fract = p.fract;
+                ~^
+                 ->
+program_source:34:14: error: member reference type 'frexp_result_f32 *const' is a pointer; did you mean to use '->'?
+  int exp = p.exp;
+            ~^
+             ->
+
diff --git a/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.msl b/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7442043
--- /dev/null
+++ b/test/tint/ptr_sugar/compound_assign_index.wgsl.expected.ir.msl
@@ -0,0 +1,44 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+void deref() {
+  int3 a = 0;
+  thread int3* const p = a;
+  p[0] = (p[0] + 42);
+}
+void no_deref() {
+  int3 a = 0;
+  thread int3* const p = a;
+  p[0] = (p[0] + 42);
+}
+void deref_inc() {
+  int3 a = 0;
+  thread int3* const p = a;
+  p[0] = (p[0] + 1);
+}
+void no_deref_inc() {
+  int3 a = 0;
+  thread int3* const p = a;
+  p[0] = (p[0] + 1);
+}
+kernel void tint_symbol() {
+  deref();
+  no_deref();
+  deref_inc();
+  no_deref_inc();
+}
+program_source:6:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:11:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:16:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:21:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+
diff --git a/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.msl b/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.msl
new file mode 100644
index 0000000..0c742d4
--- /dev/null
+++ b/test/tint/ptr_sugar/compound_assign_member.wgsl.expected.ir.msl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+void deref() {
+  int3 a = 0;
+  thread int3* const p = a;
+  p[0u] = (p[0u] + 42);
+}
+void no_deref() {
+  int3 a = 0;
+  thread int3* const p = a;
+  p[0u] = (p[0u] + 42);
+}
+kernel void tint_symbol() {
+  deref();
+  no_deref();
+}
+program_source:6:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:11:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+
diff --git a/test/tint/ptr_sugar/matrix.wgsl.expected.ir.msl b/test/tint/ptr_sugar/matrix.wgsl.expected.ir.msl
new file mode 100644
index 0000000..b9a3275
--- /dev/null
+++ b/test/tint/ptr_sugar/matrix.wgsl.expected.ir.msl
@@ -0,0 +1,68 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+void deref() {
+  float2x3 a = float2x3(0.0f);
+  thread float2x3* const p = a;
+  float3 b = p[0];
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+}
+void no_deref() {
+  float2x3 a = float2x3(0.0f);
+  thread float2x3* const p = a;
+  float3 b = p[0];
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+}
+kernel void tint_symbol() {
+  deref();
+  no_deref();
+}
+program_source:6:26: error: no viable conversion from 'metal::float2x3' (aka 'matrix<float, 2, 3>') to 'metal::float2x3 *const' (aka 'matrix<float, 2, 3> *const')
+  thread float2x3* const p = a;
+                         ^   ~
+program_source:7:10: error: no viable conversion from 'metal::float2x3' (aka 'matrix<float, 2, 3>') to 'float3' (vector of 3 'float' values)
+  float3 b = p[0];
+         ^   ~~~~
+program_source:8:8: error: no viable overloaded '='
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+  ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const metal::matrix<float, 2, 3, void>' for 1st argument
+struct matrix
+       ^
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const device metal::matrix<float, 2, 3, void> &' for 1st argument
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const threadgroup metal::matrix<float, 2, 3, void> &' for 1st argument
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const constant metal::matrix<float, 2, 3, void> &' for 1st argument
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+program_source:12:26: error: no viable conversion from 'metal::float2x3' (aka 'matrix<float, 2, 3>') to 'metal::float2x3 *const' (aka 'matrix<float, 2, 3> *const')
+  thread float2x3* const p = a;
+                         ^   ~
+program_source:13:10: error: no viable conversion from 'metal::float2x3' (aka 'matrix<float, 2, 3>') to 'float3' (vector of 3 'float' values)
+  float3 b = p[0];
+         ^   ~~~~
+program_source:14:8: error: no viable overloaded '='
+  p[0] = float3(1.0f, 2.0f, 3.0f);
+  ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const metal::matrix<float, 2, 3, void>' for 1st argument
+struct matrix
+       ^
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const device metal::matrix<float, 2, 3, void> &' for 1st argument
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const threadgroup metal::matrix<float, 2, 3, void> &' for 1st argument
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'float3' (vector of 3 'float' values) to 'const constant metal::matrix<float, 2, 3, void> &' for 1st argument
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'device'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/32023/Libraries/lib/clang/32023.194/include/metal/metal_matrix:21:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' object is in default address space, but method expects object in address space 'threadgroup'
+
diff --git a/test/tint/ptr_sugar/struct.wgsl.expected.ir.msl b/test/tint/ptr_sugar/struct.wgsl.expected.ir.msl
new file mode 100644
index 0000000..709c93d
--- /dev/null
+++ b/test/tint/ptr_sugar/struct.wgsl.expected.ir.msl
@@ -0,0 +1,47 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  int x;
+};
+
+void deref() {
+  S a = {};
+  thread S* const p = a;
+  int b = p.x;
+  p.x = 42;
+}
+void no_deref() {
+  S a = {};
+  thread S* const p = a;
+  int b = p.x;
+  p.x = 42;
+}
+kernel void tint_symbol() {
+  deref();
+  no_deref();
+}
+program_source:9:19: error: no viable conversion from 'S' to 'S *const'
+  thread S* const p = a;
+                  ^   ~
+program_source:10:12: error: member reference type 'S *const' is a pointer; did you mean to use '->'?
+  int b = p.x;
+          ~^
+           ->
+program_source:11:4: error: member reference type 'S *const' is a pointer; did you mean to use '->'?
+  p.x = 42;
+  ~^
+   ->
+program_source:15:19: error: no viable conversion from 'S' to 'S *const'
+  thread S* const p = a;
+                  ^   ~
+program_source:16:12: error: member reference type 'S *const' is a pointer; did you mean to use '->'?
+  int b = p.x;
+          ~^
+           ->
+program_source:17:4: error: member reference type 'S *const' is a pointer; did you mean to use '->'?
+  p.x = 42;
+  ~^
+   ->
+
diff --git a/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.msl b/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.msl
new file mode 100644
index 0000000..8404a69
--- /dev/null
+++ b/test/tint/ptr_sugar/vector_index.wgsl.expected.ir.msl
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+void deref_const() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int b = p[0];
+  p[0] = 42;
+}
+void no_deref_const() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int b = p[0];
+  p[0] = 42;
+}
+void deref_let() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int const i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+void no_deref_let() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int const i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+void deref_var() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+void no_deref_var() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int const i = 0;
+  int b = p[i];
+  p[0] = 42;
+}
+kernel void tint_symbol() {
+  deref_const();
+  no_deref_const();
+  deref_let();
+  no_deref_let();
+  deref_var();
+  no_deref_var();
+}
+program_source:6:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:7:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[0];
+      ^   ~~~~
+program_source:12:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:13:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[0];
+      ^   ~~~~
+program_source:18:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:20:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[i];
+      ^   ~~~~
+program_source:25:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:27:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[i];
+      ^   ~~~~
+program_source:32:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:34:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[i];
+      ^   ~~~~
+program_source:39:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:41:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[i];
+      ^   ~~~~
+
diff --git a/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.msl b/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4039c66
--- /dev/null
+++ b/test/tint/ptr_sugar/vector_member.wgsl.expected.ir.msl
@@ -0,0 +1,34 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+void deref() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int b = p[0u];
+  p[0u] = 42;
+}
+void no_deref() {
+  int3 a = 0;
+  thread int3* const p = a;
+  int b = p[0u];
+  p[0u] = 42;
+}
+kernel void tint_symbol() {
+  deref();
+  no_deref();
+}
+program_source:6:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:7:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[0u];
+      ^   ~~~~~
+program_source:12:22: error: cannot initialize a variable of type 'int3 *const' with an lvalue of type 'int3' (vector of 3 'int' values)
+  thread int3* const p = a;
+                     ^   ~
+program_source:13:7: error: cannot initialize a variable of type 'int' with an lvalue of type 'int3' (vector of 3 'int' values)
+  int b = p[0u];
+      ^   ~~~~~
+
diff --git a/test/tint/samples/compute_boids.wgsl.expected.ir.msl b/test/tint/samples/compute_boids.wgsl.expected.ir.msl
index 413bbcb..6a0272f 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.ir.msl
+++ b/test/tint/samples/compute_boids.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: SimParams = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: SimParams = struct @align(4) {
   deltaT:f32 @offset(0)
   rule1Distance:f32 @offset(4)
   rule2Distance:f32 @offset(8)
@@ -19,14 +19,14 @@
   particles:array<Particle, 5> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %params:ptr<uniform, SimParams, read> = var @binding_point(0, 0)
   %particlesA:ptr<storage, Particles, read_write> = var @binding_point(0, 1)
   %particlesB:ptr<storage, Particles, read_write> = var @binding_point(0, 2)
 }
 
-%vert_main = @vertex func(%a_particlePos:vec2<f32> [@location(0)], %a_particleVel:vec2<f32> [@location(1)], %a_pos:vec2<f32> [@location(2)]):vec4<f32> [@position] -> %b2 {
-  %b2 = block {
+%vert_main = @vertex func(%a_particlePos:vec2<f32> [@location(0)], %a_particleVel:vec2<f32> [@location(1)], %a_pos:vec2<f32> [@location(2)]):vec4<f32> [@position] {
+  $B2: {
     %8:f32 = access %a_particleVel, 0u
     %9:f32 = access %a_particleVel, 1u
     %10:f32 = atan2 %8, %9
@@ -36,52 +36,55 @@
     %14:f32 = load %angle
     %15:f32 = cos %14
     %16:f32 = mul %13, %15
-    %17:f32 = access %a_pos, 1u
-    %18:f32 = load %angle
-    %19:f32 = sin %18
-    %20:f32 = mul %17, %19
-    %21:f32 = sub %16, %20
-    %22:f32 = access %a_pos, 0u
-    %23:f32 = load %angle
-    %24:f32 = sin %23
-    %25:f32 = mul %22, %24
-    %26:f32 = access %a_pos, 1u
-    %27:f32 = load %angle
-    %28:f32 = cos %27
-    %29:f32 = mul %26, %28
-    %30:f32 = add %25, %29
-    %31:vec2<f32> = construct %21, %30
-    %pos:ptr<function, vec2<f32>, read_write> = var, %31
-    %33:vec2<f32> = load %pos
-    %34:vec2<f32> = add %33, %a_particlePos
-    %35:vec4<f32> = construct %34, 0.0f, 1.0f
-    ret %35
+    %17:f32 = let %16
+    %18:f32 = access %a_pos, 1u
+    %19:f32 = load %angle
+    %20:f32 = sin %19
+    %21:f32 = mul %18, %20
+    %22:f32 = sub %17, %21
+    %23:f32 = let %22
+    %24:f32 = access %a_pos, 0u
+    %25:f32 = load %angle
+    %26:f32 = sin %25
+    %27:f32 = mul %24, %26
+    %28:f32 = let %27
+    %29:f32 = access %a_pos, 1u
+    %30:f32 = load %angle
+    %31:f32 = cos %30
+    %32:f32 = mul %29, %31
+    %33:f32 = add %28, %32
+    %34:vec2<f32> = construct %23, %33
+    %pos:ptr<function, vec2<f32>, read_write> = var, %34
+    %36:vec2<f32> = load %pos
+    %37:vec2<f32> = add %36, %a_particlePos
+    %38:vec4<f32> = construct %37, 0.0f, 1.0f
+    ret %38
   }
 }
-%frag_main = @fragment func():vec4<f32> [@location(0)] -> %b3 {
-  %b3 = block {
+%frag_main = @fragment func():vec4<f32> [@location(0)] {
+  $B3: {
     ret vec4<f32>(1.0f)
   }
 }
-%comp_main = @compute @workgroup_size(1, 1, 1) func(%gl_GlobalInvocationID:vec3<u32> [@global_invocation_id]):void -> %b4 {
-  %b4 = block {
-    %39:u32 = access %gl_GlobalInvocationID, 0u
-    %index:ptr<function, u32, read_write> = var, %39
-    %41:u32 = load %index
-    %42:bool = gte %41, 5u
-    if %42 [t: %b5] {  # if_1
-      %b5 = block {  # true
+%comp_main = @compute @workgroup_size(1, 1, 1) func(%gl_GlobalInvocationID:vec3<u32> [@global_invocation_id]):void {
+  $B4: {
+    %42:u32 = access %gl_GlobalInvocationID, 0u
+    %index:ptr<function, u32, read_write> = var, %42
+    %44:u32 = load %index
+    %45:bool = gte %44, 5u
+    if %45 [t: $B5] {  # if_1
+      $B5: {  # true
         ret
       }
     }
-    %43:u32 = load %index
-    %44:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %43, 0u
-    %45:vec2<f32> = load %44
-    %vPos:ptr<function, vec2<f32>, read_write> = var, %45
-    %47:u32 = load %index
-    %48:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %47, 1u
-    %49:vec2<f32> = load %48
-    %vVel:ptr<function, vec2<f32>, read_write> = var, %49
+    %46:u32 = load %index
+    %47:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %46, 0u
+    %48:vec2<f32> = load %47
+    %vPos:ptr<function, vec2<f32>, read_write> = var, %48
+    %50:u32 = load %index
+    %51:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %50, 1u
+    %52:vec2<f32> = load %51
+    %vVel:ptr<function, vec2<f32>, read_write> = var, %52
     %cMass:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %cVel:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
     %colVel:ptr<function, vec2<f32>, read_write> = var, vec2<f32>(0.0f)
@@ -89,205 +92,210 @@
     %cVelCount:ptr<function, i32, read_write> = var, 0i
     %pos_1:ptr<function, vec2<f32>, read_write> = var  # %pos_1: 'pos'
     %vel:ptr<function, vec2<f32>, read_write> = var
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
         %i:ptr<function, u32, read_write> = var, 0u
-        next_iteration %b7
+        next_iteration  # -> $B7
       }
-      %b7 = block {  # body
-        %59:u32 = load %i
-        %60:bool = lt %59, 5u
-        if %60 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+      $B7: {  # body
+        %62:u32 = load %i
+        %63:bool = lt %62, 5u
+        if %63 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_1
           }
         }
-        %61:u32 = load %i
-        %62:u32 = load %index
-        %63:bool = eq %61, %62
-        if %63 [t: %b11] {  # if_3
-          %b11 = block {  # true
-            continue %b8
+        %64:u32 = load %i
+        %65:u32 = load %index
+        %66:bool = eq %64, %65
+        if %66 [t: $B11] {  # if_3
+          $B11: {  # true
+            continue  # -> $B8
           }
         }
-        %64:u32 = load %i
-        %65:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %64, 0u
-        %66:vec2<f32> = load %65
-        %67:vec2<f32> = swizzle %66, xy
-        store %pos_1, %67
-        %68:u32 = load %i
-        %69:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %68, 1u
-        %70:vec2<f32> = load %69
-        %71:vec2<f32> = swizzle %70, xy
-        store %vel, %71
-        %72:vec2<f32> = load %pos_1
-        %73:vec2<f32> = load %vPos
-        %74:f32 = distance %72, %73
-        %75:ptr<uniform, f32, read> = access %params, 1u
-        %76:f32 = load %75
-        %77:bool = lt %74, %76
-        if %77 [t: %b12] {  # if_4
-          %b12 = block {  # true
-            %78:vec2<f32> = load %cMass
-            %79:vec2<f32> = load %pos_1
-            %80:vec2<f32> = add %78, %79
-            store %cMass, %80
-            %81:i32 = load %cMassCount
-            %82:i32 = add %81, 1i
-            store %cMassCount, %82
+        %67:u32 = load %i
+        %68:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %67, 0u
+        %69:vec2<f32> = load %68
+        %70:vec2<f32> = swizzle %69, xy
+        store %pos_1, %70
+        %71:u32 = load %i
+        %72:ptr<storage, vec2<f32>, read_write> = access %particlesA, 0u, %71, 1u
+        %73:vec2<f32> = load %72
+        %74:vec2<f32> = swizzle %73, xy
+        store %vel, %74
+        %75:vec2<f32> = load %pos_1
+        %76:vec2<f32> = load %vPos
+        %77:f32 = distance %75, %76
+        %78:ptr<uniform, f32, read> = access %params, 1u
+        %79:f32 = load %78
+        %80:bool = lt %77, %79
+        if %80 [t: $B12] {  # if_4
+          $B12: {  # true
+            %81:vec2<f32> = load %cMass
+            %82:vec2<f32> = load %pos_1
+            %83:vec2<f32> = add %81, %82
+            store %cMass, %83
+            %84:i32 = load %cMassCount
+            %85:i32 = add %84, 1i
+            store %cMassCount, %85
             exit_if  # if_4
           }
         }
-        %83:vec2<f32> = load %pos_1
-        %84:vec2<f32> = load %vPos
-        %85:f32 = distance %83, %84
-        %86:ptr<uniform, f32, read> = access %params, 2u
-        %87:f32 = load %86
-        %88:bool = lt %85, %87
-        if %88 [t: %b13] {  # if_5
-          %b13 = block {  # true
-            %89:vec2<f32> = load %colVel
-            %90:vec2<f32> = load %pos_1
-            %91:vec2<f32> = load %vPos
-            %92:vec2<f32> = sub %90, %91
-            %93:vec2<f32> = sub %89, %92
-            store %colVel, %93
+        %86:vec2<f32> = load %pos_1
+        %87:vec2<f32> = load %vPos
+        %88:f32 = distance %86, %87
+        %89:ptr<uniform, f32, read> = access %params, 2u
+        %90:f32 = load %89
+        %91:bool = lt %88, %90
+        if %91 [t: $B13] {  # if_5
+          $B13: {  # true
+            %92:vec2<f32> = load %colVel
+            %93:vec2<f32> = load %pos_1
+            %94:vec2<f32> = load %vPos
+            %95:vec2<f32> = sub %93, %94
+            %96:vec2<f32> = sub %92, %95
+            store %colVel, %96
             exit_if  # if_5
           }
         }
-        %94:vec2<f32> = load %pos_1
-        %95:vec2<f32> = load %vPos
-        %96:f32 = distance %94, %95
-        %97:ptr<uniform, f32, read> = access %params, 3u
-        %98:f32 = load %97
-        %99:bool = lt %96, %98
-        if %99 [t: %b14] {  # if_6
-          %b14 = block {  # true
-            %100:vec2<f32> = load %cVel
-            %101:vec2<f32> = load %vel
-            %102:vec2<f32> = add %100, %101
-            store %cVel, %102
-            %103:i32 = load %cVelCount
-            %104:i32 = add %103, 1i
-            store %cVelCount, %104
+        %97:vec2<f32> = load %pos_1
+        %98:vec2<f32> = load %vPos
+        %99:f32 = distance %97, %98
+        %100:ptr<uniform, f32, read> = access %params, 3u
+        %101:f32 = load %100
+        %102:bool = lt %99, %101
+        if %102 [t: $B14] {  # if_6
+          $B14: {  # true
+            %103:vec2<f32> = load %cVel
+            %104:vec2<f32> = load %vel
+            %105:vec2<f32> = add %103, %104
+            store %cVel, %105
+            %106:i32 = load %cVelCount
+            %107:i32 = add %106, 1i
+            store %cVelCount, %107
             exit_if  # if_6
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %105:u32 = load %i
-        %106:u32 = add %105, 1u
-        store %i, %106
-        next_iteration %b7
+      $B8: {  # continuing
+        %108:u32 = load %i
+        %109:u32 = add %108, 1u
+        store %i, %109
+        next_iteration  # -> $B7
       }
     }
-    %107:i32 = load %cMassCount
-    %108:bool = gt %107, 0i
-    if %108 [t: %b15] {  # if_7
-      %b15 = block {  # true
-        %109:vec2<f32> = load %cMass
-        %110:i32 = load %cMassCount
-        %111:f32 = convert %110
-        %112:i32 = load %cMassCount
-        %113:f32 = convert %112
-        %114:vec2<f32> = construct %111, %113
-        %115:vec2<f32> = div %109, %114
-        %116:vec2<f32> = load %vPos
-        %117:vec2<f32> = sub %115, %116
-        store %cMass, %117
+    %110:i32 = load %cMassCount
+    %111:bool = gt %110, 0i
+    if %111 [t: $B15] {  # if_7
+      $B15: {  # true
+        %112:vec2<f32> = load %cMass
+        %113:vec2<f32> = let %112
+        %114:i32 = load %cMassCount
+        %115:f32 = convert %114
+        %116:f32 = let %115
+        %117:i32 = load %cMassCount
+        %118:f32 = convert %117
+        %119:vec2<f32> = construct %116, %118
+        %120:vec2<f32> = div %113, %119
+        %121:vec2<f32> = load %vPos
+        %122:vec2<f32> = sub %120, %121
+        store %cMass, %122
         exit_if  # if_7
       }
     }
-    %118:i32 = load %cVelCount
-    %119:bool = gt %118, 0i
-    if %119 [t: %b16] {  # if_8
-      %b16 = block {  # true
-        %120:vec2<f32> = load %cVel
-        %121:i32 = load %cVelCount
-        %122:f32 = convert %121
-        %123:i32 = load %cVelCount
-        %124:f32 = convert %123
-        %125:vec2<f32> = construct %122, %124
-        %126:vec2<f32> = div %120, %125
-        store %cVel, %126
+    %123:i32 = load %cVelCount
+    %124:bool = gt %123, 0i
+    if %124 [t: $B16] {  # if_8
+      $B16: {  # true
+        %125:vec2<f32> = load %cVel
+        %126:vec2<f32> = let %125
+        %127:i32 = load %cVelCount
+        %128:f32 = convert %127
+        %129:f32 = let %128
+        %130:i32 = load %cVelCount
+        %131:f32 = convert %130
+        %132:vec2<f32> = construct %129, %131
+        %133:vec2<f32> = div %126, %132
+        store %cVel, %133
         exit_if  # if_8
       }
     }
-    %127:vec2<f32> = load %vVel
-    %128:vec2<f32> = load %cMass
-    %129:ptr<uniform, f32, read> = access %params, 4u
-    %130:f32 = load %129
-    %131:vec2<f32> = mul %128, %130
-    %132:vec2<f32> = add %127, %131
-    %133:vec2<f32> = load %colVel
-    %134:ptr<uniform, f32, read> = access %params, 5u
-    %135:f32 = load %134
-    %136:vec2<f32> = mul %133, %135
-    %137:vec2<f32> = add %132, %136
-    %138:vec2<f32> = load %cVel
-    %139:ptr<uniform, f32, read> = access %params, 6u
-    %140:f32 = load %139
-    %141:vec2<f32> = mul %138, %140
-    %142:vec2<f32> = add %137, %141
-    store %vVel, %142
-    %143:vec2<f32> = load %vVel
-    %144:vec2<f32> = normalize %143
-    %145:vec2<f32> = load %vVel
-    %146:f32 = length %145
-    %147:f32 = clamp %146, 0.0f, 0.10000000149011611938f
-    %148:vec2<f32> = mul %144, %147
-    store %vVel, %148
-    %149:vec2<f32> = load %vPos
+    %134:vec2<f32> = load %vVel
+    %135:vec2<f32> = load %cMass
+    %136:ptr<uniform, f32, read> = access %params, 4u
+    %137:f32 = load %136
+    %138:vec2<f32> = mul %135, %137
+    %139:vec2<f32> = add %134, %138
+    %140:vec2<f32> = load %colVel
+    %141:ptr<uniform, f32, read> = access %params, 5u
+    %142:f32 = load %141
+    %143:vec2<f32> = mul %140, %142
+    %144:vec2<f32> = add %139, %143
+    %145:vec2<f32> = load %cVel
+    %146:ptr<uniform, f32, read> = access %params, 6u
+    %147:f32 = load %146
+    %148:vec2<f32> = mul %145, %147
+    %149:vec2<f32> = add %144, %148
+    store %vVel, %149
     %150:vec2<f32> = load %vVel
-    %151:ptr<uniform, f32, read> = access %params, 0u
-    %152:f32 = load %151
-    %153:vec2<f32> = mul %150, %152
-    %154:vec2<f32> = add %149, %153
-    store %vPos, %154
-    %155:f32 = load_vector_element %vPos, 0u
-    %156:bool = lt %155, -1.0f
-    if %156 [t: %b17] {  # if_9
-      %b17 = block {  # true
+    %151:vec2<f32> = normalize %150
+    %152:vec2<f32> = let %151
+    %153:vec2<f32> = load %vVel
+    %154:f32 = length %153
+    %155:f32 = clamp %154, 0.0f, 0.10000000149011611938f
+    %156:vec2<f32> = mul %152, %155
+    store %vVel, %156
+    %157:vec2<f32> = load %vPos
+    %158:vec2<f32> = load %vVel
+    %159:ptr<uniform, f32, read> = access %params, 0u
+    %160:f32 = load %159
+    %161:vec2<f32> = mul %158, %160
+    %162:vec2<f32> = add %157, %161
+    store %vPos, %162
+    %163:f32 = load_vector_element %vPos, 0u
+    %164:bool = lt %163, -1.0f
+    if %164 [t: $B17] {  # if_9
+      $B17: {  # true
         store_vector_element %vPos, 0u, 1.0f
         exit_if  # if_9
       }
     }
-    %157:f32 = load_vector_element %vPos, 0u
-    %158:bool = gt %157, 1.0f
-    if %158 [t: %b18] {  # if_10
-      %b18 = block {  # true
+    %165:f32 = load_vector_element %vPos, 0u
+    %166:bool = gt %165, 1.0f
+    if %166 [t: $B18] {  # if_10
+      $B18: {  # true
         store_vector_element %vPos, 0u, -1.0f
         exit_if  # if_10
       }
     }
-    %159:f32 = load_vector_element %vPos, 1u
-    %160:bool = lt %159, -1.0f
-    if %160 [t: %b19] {  # if_11
-      %b19 = block {  # true
+    %167:f32 = load_vector_element %vPos, 1u
+    %168:bool = lt %167, -1.0f
+    if %168 [t: $B19] {  # if_11
+      $B19: {  # true
         store_vector_element %vPos, 1u, 1.0f
         exit_if  # if_11
       }
     }
-    %161:f32 = load_vector_element %vPos, 1u
-    %162:bool = gt %161, 1.0f
-    if %162 [t: %b20] {  # if_12
-      %b20 = block {  # true
+    %169:f32 = load_vector_element %vPos, 1u
+    %170:bool = gt %169, 1.0f
+    if %170 [t: $B20] {  # if_12
+      $B20: {  # true
         store_vector_element %vPos, 1u, -1.0f
         exit_if  # if_12
       }
     }
-    %163:u32 = load %index
-    %164:ptr<storage, vec2<f32>, read_write> = access %particlesB, 0u, %163, 0u
-    %165:vec2<f32> = load %vPos
-    store %164, %165
-    %166:u32 = load %index
-    %167:ptr<storage, vec2<f32>, read_write> = access %particlesB, 0u, %166, 1u
-    %168:vec2<f32> = load %vVel
-    store %167, %168
+    %171:u32 = load %index
+    %172:ptr<storage, vec2<f32>, read_write> = access %particlesB, 0u, %171, 0u
+    %173:vec2<f32> = load %vPos
+    store %172, %173
+    %174:u32 = load %index
+    %175:ptr<storage, vec2<f32>, read_write> = access %particlesB, 0u, %174, 1u
+    %176:vec2<f32> = load %vVel
+    store %175, %176
     ret
   }
 }
diff --git a/test/tint/samples/cube.wgsl.expected.ir.msl b/test/tint/samples/cube.wgsl.expected.ir.msl
index 192894b..c869a00 100644
--- a/test/tint/samples/cube.wgsl.expected.ir.msl
+++ b/test/tint/samples/cube.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(16) {
   modelViewProjectionMatrix:mat4x4<f32> @offset(0)
 }
 
@@ -14,12 +14,12 @@
   color:vec4<f32> @offset(16), @location(1)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(0, 0)
 }
 
-%vtx_main = @vertex func(%input:VertexInput):VertexOutput -> %b2 {
-  %b2 = block {
+%vtx_main = @vertex func(%input:VertexInput):VertexOutput {
+  $B2: {
     %output:ptr<function, VertexOutput, read_write> = var
     %5:ptr<function, vec4<f32>, read_write> = access %output, 1u
     %6:ptr<uniform, mat4x4<f32>, read> = access %uniforms, 0u
@@ -34,8 +34,8 @@
     ret %12
   }
 }
-%frag_main = @fragment func(%fragColor:vec4<f32> [@location(0)]):vec4<f32> [@location(0)] -> %b3 {
-  %b3 = block {
+%frag_main = @fragment func(%fragColor:vec4<f32> [@location(0)]):vec4<f32> [@location(0)] {
+  $B3: {
     ret %fragColor
   }
 }
diff --git a/test/tint/samples/simple_vertex.spvasm.expected.ir.msl b/test/tint/samples/simple_vertex.spvasm.expected.ir.msl
index efdd3b1..7dba87b 100644
--- a/test/tint/samples/simple_vertex.spvasm.expected.ir.msl
+++ b/test/tint/samples/simple_vertex.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  gl_Position = float4(0.0f);
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/samples/triangle.wgsl.expected.ir.msl b/test/tint/samples/triangle.wgsl.expected.ir.msl
index 28251dc..6f0c683 100644
--- a/test/tint/samples/triangle.wgsl.expected.ir.msl
+++ b/test/tint/samples/triangle.wgsl.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+vertex float4 vtx_main(uint VertexIndex [[]]) {
+  return float4(tint_array<float2, 3>{float2(0.0f, 0.5f), float2(-0.5f), float2(0.5f, -0.5f)}[VertexIndex], 0.0f, 1.0f);
+}
+fragment float4 frag_main() {
+  return float4(1.0f, 0.0f, 0.0f, 1.0f);
+}
+program_source:16:24: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 vtx_main(uint VertexIndex [[]]) {
+                       ^~~~~~~~~~~~~~~~
+
diff --git a/test/tint/shadowing/alias/let.wgsl.expected.ir.msl b/test/tint/shadowing/alias/let.wgsl.expected.ir.msl
index 8ccc0c2..8381a90 100644
--- a/test/tint/shadowing/alias/let.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/alias/let.wgsl.expected.ir.msl
@@ -9,3 +9,16 @@
   int const a = 0;
   int const b = a;
 }
+program_source:7:13: error: redefinition of 'a'
+  int const a = 0;
+            ^
+program_source:5:13: note: previous definition is here
+  int const a = 0;
+            ^
+program_source:8:13: error: redefinition of 'b'
+  int const b = a;
+            ^
+program_source:6:13: note: previous definition is here
+  int const b = a;
+            ^
+
diff --git a/test/tint/shadowing/alias/var.wgsl.expected.ir.msl b/test/tint/shadowing/alias/var.wgsl.expected.ir.msl
index d76e035..935ca6c 100644
--- a/test/tint/shadowing/alias/var.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/alias/var.wgsl.expected.ir.msl
@@ -9,3 +9,16 @@
   int a = 0;
   int b = a;
 }
+program_source:7:7: error: redefinition of 'a'
+  int a = 0;
+      ^
+program_source:5:7: note: previous definition is here
+  int a = 0;
+      ^
+program_source:8:7: error: redefinition of 'b'
+  int b = a;
+      ^
+program_source:6:7: note: previous definition is here
+  int b = a;
+      ^
+
diff --git a/test/tint/shadowing/function/let.wgsl.expected.ir.msl b/test/tint/shadowing/function/let.wgsl.expected.ir.msl
index c523995..3c9002b 100644
--- a/test/tint/shadowing/function/let.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/function/let.wgsl.expected.ir.msl
@@ -9,3 +9,16 @@
   int const a = 1;
   int const b = a;
 }
+program_source:7:13: error: redefinition of 'a' with a different type: 'const int' vs 'int'
+  int const a = 1;
+            ^
+program_source:5:7: note: previous definition is here
+  int a = 1;
+      ^
+program_source:8:13: error: redefinition of 'b' with a different type: 'const int' vs 'int'
+  int const b = a;
+            ^
+program_source:6:7: note: previous definition is here
+  int b = a;
+      ^
+
diff --git a/test/tint/shadowing/function/var.wgsl.expected.ir.msl b/test/tint/shadowing/function/var.wgsl.expected.ir.msl
index 3def775..efcece0 100644
--- a/test/tint/shadowing/function/var.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/function/var.wgsl.expected.ir.msl
@@ -12,3 +12,48 @@
   a a = a{};
   a b = a;
 }
+program_source:8:10: error: expected ';' at end of declaration
+  a a = a{};
+         ^
+         ;
+program_source:9:3: error: must use 'struct' tag to refer to type 'a' in this scope
+  a b = a;
+  ^
+  struct 
+program_source:8:5: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a a = a{};
+    ^
+program_source:10:3: error: must use 'struct' tag to refer to type 'a' in this scope
+  a a = a{};
+  ^
+  struct 
+program_source:8:5: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a a = a{};
+    ^
+program_source:10:5: error: redefinition of 'a'
+  a a = a{};
+    ^
+program_source:8:5: note: previous definition is here
+  a a = a{};
+    ^
+program_source:10:10: error: expected ';' at end of declaration
+  a a = a{};
+         ^
+         ;
+program_source:11:3: error: must use 'struct' tag to refer to type 'a' in this scope
+  a b = a;
+  ^
+  struct 
+program_source:8:5: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a a = a{};
+    ^
+program_source:11:5: error: redefinition of 'b'
+  a b = a;
+    ^
+program_source:9:5: note: previous definition is here
+  a b = a;
+    ^
+program_source:8:9: warning: variable 'a' is uninitialized when used within its own initialization [-Wuninitialized]
+  a a = a{};
+    ~   ^
+
diff --git a/test/tint/shadowing/param/function.wgsl.expected.ir.msl b/test/tint/shadowing/param/function.wgsl.expected.ir.msl
index 567c382..6994929 100644
--- a/test/tint/shadowing/param/function.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/param/function.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void a(int a) {
+  int a = a;
+  int b = a;
+}
+program_source:5:7: error: redefinition of 'a'
+  int a = a;
+      ^
+program_source:4:12: note: previous definition is here
+void a(int a) {
+           ^
+
diff --git a/test/tint/shadowing/param/let.wgsl.expected.ir.msl b/test/tint/shadowing/param/let.wgsl.expected.ir.msl
index 567c382..2a218ea 100644
--- a/test/tint/shadowing/param/let.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/param/let.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void f(int a) {
+  int const a = a;
+  int const b = a;
+}
+program_source:5:13: error: redefinition of 'a' with a different type: 'const int' vs 'int'
+  int const a = a;
+            ^
+program_source:4:12: note: previous definition is here
+void f(int a) {
+           ^
+
diff --git a/test/tint/shadowing/param/var.wgsl.expected.ir.msl b/test/tint/shadowing/param/var.wgsl.expected.ir.msl
index 567c382..af03ffc 100644
--- a/test/tint/shadowing/param/var.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/param/var.wgsl.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void f(int a) {
+  int a = a;
+  int b = a;
+}
+program_source:5:7: error: redefinition of 'a'
+  int a = a;
+      ^
+program_source:4:12: note: previous definition is here
+void f(int a) {
+           ^
+
diff --git a/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.msl b/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.msl
index 47c8fbc..27db5c1 100644
--- a/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/short_names/renamer/function.wgsl.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+int vec4f() {
+  return 0;
+}
+float vec2f(int i) {
+  return float(i);
+}
+bool vec2i(float f) {
+  return bool(f);
+}
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
+  return select(float4(0.0f), float4(1.0f), vec2i(vec2f(vec4f())));
+}
+program_source:13:27: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
+                          ^~~~~~~~~~~~~~~~
+
diff --git a/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.msl b/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.msl
index 7be8f30..378203b 100644
--- a/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/short_names/renamer/renamer.wgsl.expected.ir.msl
@@ -3,6 +3,10 @@
 #include <metal_stdlib>
 using namespace metal;
 
-float4 tint_symbol() {
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
   return float4(0.0f, 0.0f, 0.0f, 1.0f);
 }
+program_source:4:27: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
+                          ^~~~~~~~~~~~~~~~
+
diff --git a/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.msl b/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.msl
index 28251dc..4767398 100644
--- a/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/short_names/renamer/type.wgsl.expected.ir.msl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct vec4f {
+  int i;
+};
+
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
+  vec4f const s = vec4f{.i=1};
+  float const f = float(s.i);
+  bool const b = bool(f);
+  return select(float4(0.0f), float4(1.0f), b);
+}
+program_source:7:27: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
+                          ^~~~~~~~~~~~~~~~
+
diff --git a/test/tint/shadowing/struct/let.wgsl.expected.ir.msl b/test/tint/shadowing/struct/let.wgsl.expected.ir.msl
index 2660268..b9a8650 100644
--- a/test/tint/shadowing/struct/let.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/struct/let.wgsl.expected.ir.msl
@@ -12,3 +12,48 @@
   a const a = a{};
   a const b = a;
 }
+program_source:8:16: error: expected ';' at end of declaration
+  a const a = a{};
+               ^
+               ;
+program_source:9:4: error: expected ';' after expression
+  a const b = a;
+   ^
+   ;
+program_source:9:11: error: C++ requires a type specifier for all declarations
+  a const b = a;
+    ~~~~~ ^
+program_source:10:4: error: expected ';' after expression
+  a const a = a{};
+   ^
+   ;
+program_source:10:11: error: must use 'struct' tag to refer to type 'a' in this scope
+  a const a = a{};
+          ^
+          struct 
+program_source:8:11: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a const a = a{};
+          ^
+program_source:10:13: error: expected unqualified-id
+  a const a = a{};
+            ^
+program_source:11:4: error: expected ';' after expression
+  a const b = a;
+   ^
+   ;
+program_source:11:11: error: C++ requires a type specifier for all declarations
+  a const b = a;
+    ~~~~~ ^
+program_source:8:15: warning: variable 'a' is uninitialized when used within its own initialization [-Wuninitialized]
+  a const a = a{};
+          ~   ^
+program_source:9:3: warning: expression result unused [-Wunused-value]
+  a const b = a;
+  ^
+program_source:10:3: warning: expression result unused [-Wunused-value]
+  a const a = a{};
+  ^
+program_source:11:3: warning: expression result unused [-Wunused-value]
+  a const b = a;
+  ^
+
diff --git a/test/tint/shadowing/struct/param.wgsl.expected.ir.msl b/test/tint/shadowing/struct/param.wgsl.expected.ir.msl
index 567c382..30d3088 100644
--- a/test/tint/shadowing/struct/param.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/struct/param.wgsl.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct a {
+  int a;
+};
+
+void f(a a) {
+  a const b = a;
+}
+program_source:8:4: error: expected ';' after expression
+  a const b = a;
+   ^
+   ;
+program_source:8:11: error: C++ requires a type specifier for all declarations
+  a const b = a;
+    ~~~~~ ^
+program_source:8:3: warning: expression result unused [-Wunused-value]
+  a const b = a;
+  ^
+
diff --git a/test/tint/shadowing/struct/var.wgsl.expected.ir.msl b/test/tint/shadowing/struct/var.wgsl.expected.ir.msl
index 3def775..efcece0 100644
--- a/test/tint/shadowing/struct/var.wgsl.expected.ir.msl
+++ b/test/tint/shadowing/struct/var.wgsl.expected.ir.msl
@@ -12,3 +12,48 @@
   a a = a{};
   a b = a;
 }
+program_source:8:10: error: expected ';' at end of declaration
+  a a = a{};
+         ^
+         ;
+program_source:9:3: error: must use 'struct' tag to refer to type 'a' in this scope
+  a b = a;
+  ^
+  struct 
+program_source:8:5: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a a = a{};
+    ^
+program_source:10:3: error: must use 'struct' tag to refer to type 'a' in this scope
+  a a = a{};
+  ^
+  struct 
+program_source:8:5: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a a = a{};
+    ^
+program_source:10:5: error: redefinition of 'a'
+  a a = a{};
+    ^
+program_source:8:5: note: previous definition is here
+  a a = a{};
+    ^
+program_source:10:10: error: expected ';' at end of declaration
+  a a = a{};
+         ^
+         ;
+program_source:11:3: error: must use 'struct' tag to refer to type 'a' in this scope
+  a b = a;
+  ^
+  struct 
+program_source:8:5: note: struct 'a' is hidden by a non-type declaration of 'a' here
+  a a = a{};
+    ^
+program_source:11:5: error: redefinition of 'b'
+  a b = a;
+    ^
+program_source:9:5: note: previous definition is here
+  a b = a;
+    ^
+program_source:8:9: warning: variable 'a' is uninitialized when used within its own initialization [-Wuninitialized]
+  a a = a{};
+    ~   ^
+
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.msl
index 95a5789..85fa6d0 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,27 +12,27 @@
   a1:array<InnerS, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %i:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %6:i32 = load %i
         %7:bool = lt %6, 4i
-        if %7 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %7 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
@@ -41,13 +41,13 @@
         %10:ptr<function, InnerS, read_write> = access %s1, 0u, %9
         %11:InnerS = load %v
         store %10, %11
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
+      $B5: {  # continuing
         %12:i32 = load %i
         %13:i32 = add %12, 1i
         store %i, %13
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
     }
     ret
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.msl
index d2344f1..1b45f1c 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,42 +12,42 @@
   a1:array<InnerS, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %i:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %6:i32 = load %i
         %7:bool = lt %6, 4i
-        if %7 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %7 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
         %8:i32 = load %i
         %9:i32 = add %8, 1i
         store %i, %9
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
+      $B5: {  # continuing
         %10:ptr<uniform, u32, read> = access %uniforms, 0u
         %11:u32 = load %10
         %12:ptr<function, InnerS, read_write> = access %s1, 0u, %11
         %13:InnerS = load %v
         store %12, %13
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
     }
     ret
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.msl
index 27368e5..67592eb 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,42 +12,42 @@
   a1:array<InnerS, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %i:ptr<function, i32, read_write> = var, 0i
-    loop [i: %b3, b: %b4, c: %b5] {  # loop_1
-      %b3 = block {  # initializer
+    loop [i: $B3, b: $B4, c: $B5] {  # loop_1
+      $B3: {  # initializer
         %6:ptr<uniform, u32, read> = access %uniforms, 0u
         %7:u32 = load %6
         %8:ptr<function, InnerS, read_write> = access %s1, 0u, %7
         %9:InnerS = load %v
         store %8, %9
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %10:i32 = load %i
         %11:bool = lt %10, 4i
-        if %11 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %11 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
+      $B5: {  # continuing
         %12:i32 = load %i
         %13:i32 = add %12, 1i
         store %i, %13
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
     }
     ret
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.msl
index 47576c6..f9ea47d 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
@@ -17,13 +17,13 @@
   a1:array<S1, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %nextIndex:ptr<private, u32, read_write> = var
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%getNextIndex = func():u32 -> %b2 {
-  %b2 = block {
+%getNextIndex = func():u32 {
+  $B2: {
     %4:u32 = load %nextIndex
     %5:u32 = add %4, 1u
     store %nextIndex, %5
@@ -31,8 +31,8 @@
     ret %6
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %v:ptr<function, InnerS, read_write> = var
     %s:ptr<function, OuterS, read_write> = var
     %10:u32 = call %getNextIndex
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.msl
index fbe5543..d012c12 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,12 +12,12 @@
   a1:array<InnerS, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.msl
index c17a0bc..f0e4240 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
@@ -13,12 +13,12 @@
   a1:array<array<InnerS, 8>, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.msl
index 99e50f7..9ae981a 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -16,12 +16,12 @@
   a1:array<S1, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.msl
index 189af0d..ef33361 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
@@ -17,12 +17,12 @@
   a1:array<S1, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.msl
index aa7ab75..35d20bc 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   a1:array<InnerS> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %s1:ptr<storage, OuterS, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
     %6:u32 = load %5
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.msl
index e155666..52d754a 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
   j:u32 @offset(4)
 }
@@ -17,13 +17,13 @@
   a1:array<S1> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
   %s:ptr<storage, OuterS, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
     %6:u32 = load %5
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.msl
index 42a6f9c..c09b9ac 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -8,12 +8,12 @@
   m1:mat2x4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %s1:ptr<function, OuterS, read_write> = var
     %4:ptr<uniform, u32, read> = access %uniforms, 0u
     %5:u32 = load %4
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.msl
index eb60a91..eebc54e 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -13,12 +13,12 @@
   a2:array<InnerS, 8> @offset(32)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.msl
index e417912..b7fb051 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -16,12 +16,12 @@
   s2:S1 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.msl
index 996c480..d9e8175 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -8,12 +8,12 @@
   v1:vec3<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %s1:ptr<function, OuterS, read_write> = var
     %4:ptr<function, vec3<f32>, read_write> = access %s1, 0u
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.msl
index 3af72df..b136b18 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -8,18 +8,18 @@
   a1:array<u32, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%f = func(%i:u32):u32 -> %b2 {
-  %b2 = block {
+%f = func(%i:u32):u32 {
+  $B2: {
     %4:u32 = add %i, 1u
     ret %4
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %s1:ptr<function, OuterS, read_write> = var
     %v:ptr<function, vec3<f32>, read_write> = var
     %8:ptr<uniform, u32, read> = access %uniforms, 0u
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.msl
index 4a6da6b..bc00b8c 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,19 +12,20 @@
   a1:array<InnerS, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %s1:ptr<function, OuterS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
     %6:u32 = load %5
-    %p:ptr<function, InnerS, read_write> = access %s1, 0u, %6
-    %8:InnerS = load %v
-    store %p, %8
+    %7:ptr<function, InnerS, read_write> = access %s1, 0u, %6
+    %p:ptr<function, InnerS, read_write> = let %7
+    %9:InnerS = load %v
+    store %p, %9
     ret
   }
 }
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.msl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.msl
index 01c44e2..281a01ca 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Uniforms = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Uniforms = struct @align(4) {
   i:u32 @offset(0)
 }
 
@@ -12,12 +12,12 @@
   a1:array<InnerS, 8> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %uniforms:ptr<uniform, Uniforms, read> = var @binding_point(1, 4)
 }
 
-%f = func(%p:ptr<function, OuterS, read_write>):void -> %b2 {
-  %b2 = block {
+%f = func(%p:ptr<function, OuterS, read_write>):void {
+  $B2: {
     %v:ptr<function, InnerS, read_write> = var
     %5:ptr<uniform, u32, read> = access %uniforms, 0u
     %6:u32 = load %5
@@ -27,8 +27,8 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %s1:ptr<function, OuterS, read_write> = var
     %11:void = call %f, %s1
     ret
diff --git a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.msl
index b9d5d0e..8a7cb59 100644
--- a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   arr:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     ret
   }
 }
diff --git a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl
index 65507b9..862a349 100644
--- a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   arr:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:ptr<storage, array<i32>, read_write> = access %s, 0u
     ret
   }
diff --git a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
index 458845a..a176483 100644
--- a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:S = load %s
     %4:ptr<storage, i32, read_write> = access %s, 0u
     %5:i32 = load %4
diff --git a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
index 61ef3ab..d5ae925 100644
--- a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
+++ b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   i:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %u:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
     %3:S = load %u
     %4:ptr<uniform, i32, read> = access %u, 0u
     %5:i32 = load %4
diff --git a/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.msl
index efdd3b1..5e20a80 100644
--- a/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/complex_lhs.wgsl.expected.ir.msl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  tint_array<int4, 4> a;
+};
+
+thread int counter = 0;
+int foo() {
+  counter = (counter + 1);
+  return counter;
+}
+int bar() {
+  counter = (counter + 2);
+  return counter;
+}
+void tint_symbol() {
+  S x = S{};
+  thread S* const p = x;
+  thread int4* const v = p.a[foo()];
+  int const v_1 = bar();
+  v[v_1] = (v[v_1] + 5);
+}
+program_source:19:12: error: program scope variable must reside in constant address space
+thread int counter = 0;
+           ^
+program_source:30:19: error: no viable conversion from 'S' to 'S *const'
+  thread S* const p = x;
+                  ^   ~
+program_source:31:27: error: member reference type 'S *const' is a pointer; did you mean to use '->'?
+  thread int4* const v = p.a[foo()];
+                         ~^
+                          ->
+program_source:31:22: error: cannot initialize a variable of type 'int4 *const' with an lvalue of type 'int __attribute__((ext_vector_type(4)))' (vector of 4 'int' values)
+  thread int4* const v = p.a[foo()];
+                     ^   ~~~~~~~~~~
+
diff --git a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.msl
index efdd3b1..764b348 100644
--- a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int a = 0;
+thread float b = 0.0f;
+void foo(int maybe_zero) {
+  a = tint_div_i32(a, 0);
+  a = tint_mod_i32(a, 0);
+  a = tint_div_i32(a, maybe_zero);
+  a = tint_mod_i32(a, maybe_zero);
+  b = (b / 0.0f);
+  b = (b % 0.0f);
+  b = (b / float(maybe_zero));
+  b = (b % float(maybe_zero));
+}
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+int tint_mod_i32(int lhs, int rhs) {
+  int const v = select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1))));
+  return (lhs - ((lhs / v) * v));
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int a = 0;
+           ^
+program_source:5:14: error: program scope variable must reside in constant address space
+thread float b = 0.0f;
+             ^
+
diff --git a/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.msl
index 457c63a..0cad888 100644
--- a/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/for_loop.wgsl.expected.ir.msl
@@ -1,74 +1,76 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:i32 @offset(0)
   b:vec4<f32> @offset(16)
   c:mat2x2<f32> @offset(32)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %i:ptr<private, u32, read_write> = var
 }
 
-%idx1 = func():i32 -> %b2 {
-  %b2 = block {
+%idx1 = func():i32 {
+  $B2: {
     %4:u32 = load %i
     %5:u32 = add %4, 1u
     store %i, %5
     ret 1i
   }
 }
-%idx2 = func():i32 -> %b3 {
-  %b3 = block {
+%idx2 = func():i32 {
+  $B3: {
     %7:u32 = load %i
     %8:u32 = add %7, 2u
     store %i, %8
     ret 1i
   }
 }
-%idx3 = func():i32 -> %b4 {
-  %b4 = block {
+%idx3 = func():i32 {
+  $B4: {
     %10:u32 = load %i
     %11:u32 = add %10, 3u
     store %i, %11
     ret 1i
   }
 }
-%foo = func():void -> %b5 {
-  %b5 = block {
+%foo = func():void {
+  $B5: {
     %a:ptr<function, array<f32, 4>, read_write> = var, array<f32, 4>(0.0f)
-    loop [i: %b6, b: %b7, c: %b8] {  # loop_1
-      %b6 = block {  # initializer
+    loop [i: $B6, b: $B7, c: $B8] {  # loop_1
+      $B6: {  # initializer
         %14:i32 = call %idx1
         %15:ptr<function, f32, read_write> = access %a, %14
-        %16:f32 = load %15
-        %17:f32 = mul %16, 2.0f
-        store %15, %17
-        next_iteration %b7
+        %16:ptr<function, f32, read_write> = let %15
+        %17:f32 = load %16
+        %18:f32 = mul %17, 2.0f
+        store %16, %18
+        next_iteration  # -> $B7
       }
-      %b7 = block {  # body
-        %18:i32 = call %idx2
-        %19:ptr<function, f32, read_write> = access %a, %18
-        %20:f32 = load %19
-        %21:bool = lt %20, 10.0f
-        if %21 [t: %b9, f: %b10] {  # if_1
-          %b9 = block {  # true
+      $B7: {  # body
+        %19:i32 = call %idx2
+        %20:ptr<function, f32, read_write> = access %a, %19
+        %21:f32 = load %20
+        %22:bool = lt %21, 10.0f
+        if %22 [t: $B9, f: $B10] {  # if_1
+          $B9: {  # true
             exit_if  # if_1
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %22:i32 = call %idx3
-        %23:ptr<function, f32, read_write> = access %a, %22
-        %24:f32 = load %23
-        %25:f32 = add %24, 1.0f
-        store %23, %25
-        next_iteration %b7
+      $B8: {  # continuing
+        %23:i32 = call %idx3
+        %24:ptr<function, f32, read_write> = access %a, %23
+        %25:ptr<function, f32, read_write> = let %24
+        %26:f32 = load %25
+        %27:f32 = add %26, 1.0f
+        store %25, %27
+        next_iteration  # -> $B7
       }
     }
     ret
diff --git a/test/tint/statements/compound_assign/function.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/function.wgsl.expected.ir.msl
index 77453be..e7169f7 100644
--- a/test/tint/statements/compound_assign/function.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/function.wgsl.expected.ir.msl
@@ -1,3 +1,5 @@
+SKIP: FAILED
+
 #include <metal_stdlib>
 using namespace metal;
 
@@ -5,7 +7,14 @@
   int a = 0;
   float4 b = 0.0f;
   float2x2 c = float2x2(0.0f);
-  a = (a / 2);
+  a = tint_div_i32(a, 2);
   b = (b * float4x4(float4(0.0f), float4(0.0f), float4(0.0f), float4(0.0f)));
   c = (c * 2.0f);
 }
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:8:7: error: use of undeclared identifier 'tint_div_i32'
+  a = tint_div_i32(a, 2);
+      ^
+
diff --git a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.msl
index 4dedd5c..16766aa 100644
--- a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:mat4x4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, mat4x4<f32>, read_write> = access %v, 0u
     %4:mat4x4<f32> = load %3
     %5:mat4x4<f32> = sub %4, mat4x4<f32>(vec4<f32>(0.0f))
diff --git a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.msl
index 26799cf..618b4be 100644
--- a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:mat4x4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, mat4x4<f32>, read_write> = access %v, 0u
     %4:mat4x4<f32> = load %3
     %5:mat4x4<f32> = add %4, mat4x4<f32>(vec4<f32>(0.0f))
diff --git a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.msl
index 5c704ea..782a03f 100644
--- a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:mat4x4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, mat4x4<f32>, read_write> = access %v, 0u
     %4:mat4x4<f32> = load %3
     %5:mat4x4<f32> = mul %4, 2.0f
diff --git a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.msl
index c3c6578..82f7729 100644
--- a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:mat4x4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, mat4x4<f32>, read_write> = access %v, 0u
     %4:mat4x4<f32> = load %3
     %5:mat4x4<f32> = mul %4, mat4x4<f32>(vec4<f32>(0.0f))
diff --git a/test/tint/statements/compound_assign/private.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/private.wgsl.expected.ir.msl
index efdd3b1..acff416 100644
--- a/test/tint/statements/compound_assign/private.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/private.wgsl.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int a = 0;
+thread float4 b = 0.0f;
+thread float2x2 c = float2x2(0.0f);
+void foo() {
+  a = tint_div_i32(a, 2);
+  b = (b * float4x4(float4(0.0f), float4(0.0f), float4(0.0f), float4(0.0f)));
+  c = (c * 2.0f);
+}
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int a = 0;
+           ^
+program_source:5:15: error: program scope variable must reside in constant address space
+thread float4 b = 0.0f;
+              ^
+program_source:6:17: error: program scope variable must reside in constant address space
+thread float2x2 c = float2x2(0.0f);
+                ^
+
diff --git a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.msl
index 9320fb0..4fd5a35 100644
--- a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
     %5:i32 = and %4, 2i
diff --git a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.msl
index 54988fe..b447b48 100644
--- a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.ir.msl
@@ -1,22 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
-    %5:i32 = div %4, 2i
+    %5:i32 = call %tint_div_i32, %4, 2i
     store %3, %5
     ret
   }
 }
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B3: {
+    %9:bool = eq %rhs, 0i
+    %10:bool = eq %lhs, -2147483648i
+    %11:bool = eq %rhs, -1i
+    %12:bool = and %10, %11
+    %13:bool = or %9, %12
+    %14:i32 = select %rhs, 1i, %13
+    %15:i32 = div %lhs, %14
+    ret %15
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.msl
index a43b092..21b1ae8 100644
--- a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
     %5:i32 = sub %4, 2i
diff --git a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.msl
index f43c8d3..576802c 100644
--- a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.ir.msl
@@ -1,22 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
-    %5:i32 = mod %4, 2i
+    %5:i32 = call %tint_mod_i32, %4, 2i
     store %3, %5
     ret
   }
 }
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B3: {
+    %9:bool = eq %rhs, 0i
+    %10:bool = eq %lhs, -2147483648i
+    %11:bool = eq %rhs, -1i
+    %12:bool = and %10, %11
+    %13:bool = or %9, %12
+    %14:i32 = select %rhs, 1i, %13
+    %15:i32 = let %14
+    %16:i32 = div %lhs, %15
+    %17:i32 = mul %16, %15
+    %18:i32 = sub %lhs, %17
+    ret %18
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.msl
index ee64dbc..3a756ab 100644
--- a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
     %5:i32 = or %4, 2i
diff --git a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.msl
index 7ae3e40..9bd6a64 100644
--- a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
     %5:i32 = add %4, 2i
diff --git a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.msl
index 580d0a3..f51a6e5 100644
--- a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
-    %5:i32 = shiftl %4, 2u
-    store %3, %5
+    %5:u32 = and 2u, 31u
+    %6:i32 = shl %4, %5
+    store %3, %6
     ret
   }
 }
diff --git a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.msl
index 51d3bd5..1619a15 100644
--- a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
-    %5:i32 = shiftr %4, 2u
-    store %3, %5
+    %5:u32 = and 2u, 31u
+    %6:i32 = shr %4, %5
+    store %3, %6
     ret
   }
 }
diff --git a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.msl
index de73bd6..b32922d 100644
--- a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
     %5:i32 = mul %4, 2i
diff --git a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.msl
index d069bd7..b4259c7 100644
--- a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   a:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, i32, read_write> = access %v, 0u
     %4:i32 = load %3
     %5:i32 = xor %4, 2i
diff --git a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.msl
index 60f879e..c09bc08 100644
--- a/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/and.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
     %5:vec4<i32> = and %4, vec4<i32>(2i)
diff --git a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.msl
index 37991b1..cbb1ce9 100644
--- a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %v, 0u
     %4:vec4<f32> = load %3
     %5:vec4<f32> = div %4, 2.0f
diff --git a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.msl
index 06612d6..8586de1 100644
--- a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.ir.msl
@@ -1,22 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
-    %5:vec4<i32> = div %4, vec4<i32>(2i)
+    %5:vec4<i32> = call %tint_div_v4i32, %4, vec4<i32>(2i)
     store %3, %5
     ret
   }
 }
+%tint_div_v4i32 = func(%lhs:vec4<i32>, %rhs:vec4<i32>):vec4<i32> {
+  $B3: {
+    %9:vec4<bool> = eq %rhs, vec4<i32>(0i)
+    %10:vec4<bool> = eq %lhs, vec4<i32>(-2147483648i)
+    %11:vec4<bool> = eq %rhs, vec4<i32>(-1i)
+    %12:vec4<bool> = and %10, %11
+    %13:vec4<bool> = or %9, %12
+    %14:vec4<i32> = select %rhs, vec4<i32>(1i), %13
+    %15:vec4<i32> = div %lhs, %14
+    ret %15
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.msl
index e478555..caa16e9 100644
--- a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %v, 0u
     %4:vec4<f32> = load %3
     %5:vec4<f32> = sub %4, 2.0f
diff --git a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.msl
index 52642e9..79432d8 100644
--- a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
     %5:vec4<i32> = sub %4, vec4<i32>(2i)
diff --git a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.msl
index 2709a13..8d83ed2 100644
--- a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.ir.msl
@@ -1,22 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
-    %5:vec4<i32> = mod %4, 2i
-    store %3, %5
+    %5:vec4<i32> = let %4
+    %6:vec4<i32> = construct 2i
+    %7:vec4<i32> = call %tint_mod_v4i32, %5, %6
+    store %3, %7
     ret
   }
 }
+%tint_mod_v4i32 = func(%lhs:vec4<i32>, %rhs:vec4<i32>):vec4<i32> {
+  $B3: {
+    %11:vec4<bool> = eq %rhs, vec4<i32>(0i)
+    %12:vec4<bool> = eq %lhs, vec4<i32>(-2147483648i)
+    %13:vec4<bool> = eq %rhs, vec4<i32>(-1i)
+    %14:vec4<bool> = and %12, %13
+    %15:vec4<bool> = or %11, %14
+    %16:vec4<i32> = select %rhs, vec4<i32>(1i), %15
+    %17:vec4<i32> = let %16
+    %18:vec4<i32> = div %lhs, %17
+    %19:vec4<i32> = mul %18, %17
+    %20:vec4<i32> = sub %lhs, %19
+    ret %20
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.msl
index f790983..391a18f 100644
--- a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.ir.msl
@@ -1,22 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
-    %5:vec4<i32> = mod %4, vec4<i32>(2i)
+    %5:vec4<i32> = call %tint_mod_v4i32, %4, vec4<i32>(2i)
     store %3, %5
     ret
   }
 }
+%tint_mod_v4i32 = func(%lhs:vec4<i32>, %rhs:vec4<i32>):vec4<i32> {
+  $B3: {
+    %9:vec4<bool> = eq %rhs, vec4<i32>(0i)
+    %10:vec4<bool> = eq %lhs, vec4<i32>(-2147483648i)
+    %11:vec4<bool> = eq %rhs, vec4<i32>(-1i)
+    %12:vec4<bool> = and %10, %11
+    %13:vec4<bool> = or %9, %12
+    %14:vec4<i32> = select %rhs, vec4<i32>(1i), %13
+    %15:vec4<i32> = let %14
+    %16:vec4<i32> = div %lhs, %15
+    %17:vec4<i32> = mul %16, %15
+    %18:vec4<i32> = sub %lhs, %17
+    ret %18
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.msl
index 699c875..c8f7bf1 100644
--- a/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/or.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
     %5:vec4<i32> = or %4, vec4<i32>(2i)
diff --git a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.msl
index f09bd92..e5358ab 100644
--- a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %v, 0u
     %4:vec4<f32> = load %3
     %5:vec4<f32> = add %4, 2.0f
diff --git a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.msl
index b3ef263..6023992 100644
--- a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
     %5:vec4<i32> = add %4, vec4<i32>(2i)
diff --git a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.msl
index 10f65ae..176b2ed 100644
--- a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
-    %5:vec4<i32> = shiftl %4, vec4<u32>(2u)
-    store %3, %5
+    %5:vec4<u32> = and vec4<u32>(2u), vec4<u32>(31u)
+    %6:vec4<i32> = shl %4, %5
+    store %3, %6
     ret
   }
 }
diff --git a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.msl
index 0a81833..d5163d3 100644
--- a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.ir.msl
@@ -1,19 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
-    %5:vec4<i32> = shiftr %4, vec4<u32>(2u)
-    store %3, %5
+    %5:vec4<u32> = and vec4<u32>(2u), vec4<u32>(31u)
+    %6:vec4<i32> = shr %4, %5
+    store %3, %6
     ret
   }
 }
diff --git a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.msl
index 106f0e0..7b9ab58 100644
--- a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %v, 0u
     %4:vec4<f32> = load %3
     %5:vec4<f32> = mul %4, mat4x4<f32>(vec4<f32>(0.0f))
diff --git a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.msl
index c3598ed..bbaef43 100644
--- a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %v, 0u
     %4:vec4<f32> = load %3
     %5:vec4<f32> = mul %4, 2.0f
diff --git a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.msl
index 0d0e984..f77d642 100644
--- a/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/times.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
     %5:vec4<i32> = mul %4, vec4<i32>(2i)
diff --git a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.msl
index 3212ca5..0f5c119 100644
--- a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:vec4<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %v:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
+%foo = func():void {
+  $B2: {
     %3:ptr<storage, vec4<i32>, read_write> = access %v, 0u
     %4:vec4<i32> = load %3
     %5:vec4<i32> = xor %4, vec4<i32>(2i)
diff --git a/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.msl b/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.msl
index efdd3b1..e523a83 100644
--- a/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/statements/compound_assign/workgroup.wgsl.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int a;
+threadgroup float4 b;
+threadgroup float2x2 c;
+void foo() {
+  a = tint_div_i32(a, 2);
+  b = (b * float4x4(float4(0.0f), float4(0.0f), float4(0.0f), float4(0.0f)));
+  c = (c * 2.0f);
+}
+int tint_div_i32(int lhs, int rhs) {
+  return (lhs / select(rhs, 1, ((rhs == 0) | ((lhs == (-2147483647 - 1)) & (rhs == -1)))));
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int a;
+                ^
+program_source:5:20: error: program scope variable must reside in constant address space
+threadgroup float4 b;
+                   ^
+program_source:6:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 c;
+                     ^
+
diff --git a/test/tint/statements/decrement/array_element.wgsl.expected.ir.msl b/test/tint/statements/decrement/array_element.wgsl.expected.ir.msl
index 9f206da..3812675 100644
--- a/test/tint/statements/decrement/array_element.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/array_element.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = func():void {
+  $B2: {
     %3:ptr<storage, u32, read_write> = access %a, 1i
     %4:u32 = load %3
     %5:u32 = sub %4, 1u
diff --git a/test/tint/statements/decrement/complex.wgsl.expected.ir.msl b/test/tint/statements/decrement/complex.wgsl.expected.ir.msl
index ab04e49..83c21fd 100644
--- a/test/tint/statements/decrement/complex.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/complex.wgsl.expected.ir.msl
@@ -1,97 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:array<vec4<i32>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tint_symbol:ptr<storage, array<S>, read_write> = var @binding_point(0, 0)
   %v:ptr<private, u32, read_write> = var
 }
 
-%idx1 = func():i32 -> %b2 {
-  %b2 = block {
+%idx1 = func():i32 {
+  $B2: {
     %4:u32 = load %v
     %5:u32 = sub %4, 1u
     store %v, %5
     ret 1i
   }
 }
-%idx2 = func():i32 -> %b3 {
-  %b3 = block {
+%idx2 = func():i32 {
+  $B3: {
     %7:u32 = load %v
     %8:u32 = sub %7, 1u
     store %v, %8
     ret 2i
   }
 }
-%idx3 = func():i32 -> %b4 {
-  %b4 = block {
+%idx3 = func():i32 {
+  $B4: {
     %10:u32 = load %v
     %11:u32 = sub %10, 1u
     store %v, %11
     ret 3i
   }
 }
-%idx4 = func():i32 -> %b5 {
-  %b5 = block {
+%idx4 = func():i32 {
+  $B5: {
     %13:u32 = load %v
     %14:u32 = sub %13, 1u
     store %v, %14
     ret 4i
   }
 }
-%idx5 = func():i32 -> %b6 {
-  %b6 = block {
+%idx5 = func():i32 {
+  $B6: {
     %16:u32 = load %v
     %17:u32 = sub %16, 1u
     store %v, %17
     ret 0i
   }
 }
-%idx6 = func():i32 -> %b7 {
-  %b7 = block {
+%idx6 = func():i32 {
+  $B7: {
     %19:u32 = load %v
     %20:u32 = sub %19, 1u
     store %v, %20
     ret 2i
   }
 }
-%tint_symbol_1 = func():void -> %b8 {
-  %b8 = block {
-    loop [i: %b9, b: %b10, c: %b11] {  # loop_1
-      %b9 = block {  # initializer
+%tint_symbol_1 = func():void {
+  $B8: {
+    loop [i: $B9, b: $B10, c: $B11] {  # loop_1
+      $B9: {  # initializer
         %22:i32 = call %idx1
-        %23:i32 = call %idx2
-        %24:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %22, 0u, %23
-        %25:i32 = call %idx3
-        %26:i32 = load_vector_element %24, %25
-        %27:i32 = sub %26, 1i
-        store_vector_element %24, %25, %27
-        next_iteration %b10
+        %23:i32 = let %22
+        %24:i32 = call %idx2
+        %25:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %23, 0u, %24
+        %26:ptr<storage, vec4<i32>, read_write> = let %25
+        %27:i32 = call %idx3
+        %28:i32 = let %27
+        %29:i32 = load_vector_element %26, %28
+        %30:i32 = sub %29, 1i
+        store_vector_element %26, %28, %30
+        next_iteration  # -> $B10
       }
-      %b10 = block {  # body
-        %28:u32 = load %v
-        %29:bool = lt %28, 10u
-        if %29 [t: %b12, f: %b13] {  # if_1
-          %b12 = block {  # true
+      $B10: {  # body
+        %31:u32 = load %v
+        %32:bool = lt %31, 10u
+        if %32 [t: $B12, f: $B13] {  # if_1
+          $B12: {  # true
             exit_if  # if_1
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %30:i32 = call %idx4
-        %31:i32 = call %idx5
-        %32:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %30, 0u, %31
-        %33:i32 = call %idx6
-        %34:i32 = load_vector_element %32, %33
-        %35:i32 = sub %34, 1i
-        store_vector_element %32, %33, %35
-        next_iteration %b10
+      $B11: {  # continuing
+        %33:i32 = call %idx4
+        %34:i32 = let %33
+        %35:i32 = call %idx5
+        %36:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %34, 0u, %35
+        %37:ptr<storage, vec4<i32>, read_write> = let %36
+        %38:i32 = call %idx6
+        %39:i32 = let %38
+        %40:i32 = load_vector_element %37, %39
+        %41:i32 = sub %40, 1i
+        store_vector_element %37, %39, %41
+        next_iteration  # -> $B10
       }
     }
     ret
diff --git a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.msl b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.msl
index 321af9a..238e237 100644
--- a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %i:ptr<storage, u32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%tint_symbol = func():void {
+  $B2: {
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %3:u32 = load %i
         %4:bool = lt %3, 10u
-        if %4 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %4 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %5:u32 = load %i
         %6:u32 = sub %5, 1u
         store %i, %6
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     ret
diff --git a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.msl b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.msl
index 5467d85..1288b7a 100644
--- a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %i:ptr<storage, u32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
-    loop [i: %b3, b: %b4] {  # loop_1
-      %b3 = block {  # initializer
+%tint_symbol = func():void {
+  $B2: {
+    loop [i: $B3, b: $B4] {  # loop_1
+      $B3: {  # initializer
         %3:u32 = load %i
         %4:u32 = sub %3, 1u
         store %i, %4
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %5:u32 = load %i
         %6:bool = lt %5, 10u
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
     }
     ret
diff --git a/test/tint/statements/decrement/private.wgsl.expected.ir.msl b/test/tint/statements/decrement/private.wgsl.expected.ir.msl
index efdd3b1..45fa6de 100644
--- a/test/tint/statements/decrement/private.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/private.wgsl.expected.ir.msl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int i = 0;
+void tint_symbol() {
+  i = (i - 1);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int i = 0;
+           ^
+
diff --git a/test/tint/statements/decrement/storage.wgsl.expected.ir.msl b/test/tint/statements/decrement/storage.wgsl.expected.ir.msl
index 920e263..2794193 100644
--- a/test/tint/statements/decrement/storage.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/storage.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %i:ptr<storage, u32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = func():void {
+  $B2: {
     %3:u32 = load %i
     %4:u32 = sub %3, 1u
     store %i, %4
diff --git a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl
index 808227b..8147c38 100644
--- a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<storage, vec4<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = func():void {
+  $B2: {
     %3:u32 = load_vector_element %a, 1i
     %4:u32 = sub %3, 1u
     store_vector_element %a, 1i, %4
diff --git a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl
index efdd3b1..8be9fea 100644
--- a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int i;
+void tint_symbol() {
+  i = (i - 1);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int i;
+                ^
+
diff --git a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.msl b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.msl
index 501e33c..69ed314 100644
--- a/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/atomic_cmpxchg.wgsl.expected.ir.msl
@@ -1,29 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: __atomic_compare_exchange_result_i32 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: __atomic_compare_exchange_result_i32 = struct @align(4) {
   old_value:i32 @offset(0)
   exchanged:bool @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %a:ptr<storage, atomic<i32>, read_write> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%foo = @fragment func():i32 [@location(0)] -> %b2 {
-  %b2 = block {
-    discard
+%foo = @fragment func():i32 [@location(0)] {
+  $B2: {
+    store %continue_execution, false
     %x:ptr<function, i32, read_write> = var, 0i
-    %result:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a, 0i, 1i
-    %5:bool = access %result, 1u
-    if %5 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %6:i32 = access %result, 0u
-        store %x, %6
-        exit_if  # if_1
+    %5:bool = load %continue_execution
+    %6:__atomic_compare_exchange_result_i32 = if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        %7:__atomic_compare_exchange_result_i32 = atomicCompareExchangeWeak %a, 0i, 1i
+        exit_if %7  # if_1
+      }
+      # implicit false block: exit_if undef
+    }
+    %result:__atomic_compare_exchange_result_i32 = let %6
+    %9:bool = access %result, 1u
+    if %9 [t: $B4] {  # if_2
+      $B4: {  # true
+        %10:i32 = access %result, 0u
+        store %x, %10
+        exit_if  # if_2
       }
     }
-    %7:i32 = load %x
-    ret %7
+    %11:i32 = load %x
+    %12:bool = load %continue_execution
+    %13:bool = eq %12, false
+    if %13 [t: $B5] {  # if_3
+      $B5: {  # true
+        terminate_invocation
+      }
+    }
+    ret %11
   }
 }
 
diff --git a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.msl b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.msl
index edb6355..4a13f56 100644
--- a/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/atomic_in_for_loop_continuing.wgsl.expected.ir.msl
@@ -1,56 +1,81 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %t:ptr<handle, texture_2d<f32>, read> = var @binding_point(0, 0)
   %s:ptr<handle, sampler, read> = var @binding_point(0, 1)
   %a:ptr<storage, atomic<i32>, read_write> = var @binding_point(0, 2)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%foo = @fragment func(%in:f32 [@location(0)], %coord:vec2<f32> [@location(1)]):i32 [@location(0)] -> %b2 {
-  %b2 = block {
-    %7:bool = eq %in, 0.0f
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%foo = @fragment func(%in:f32 [@location(0)], %coord:vec2<f32> [@location(1)]):i32 [@location(0)] {
+  $B2: {
+    %8:bool = eq %in, 0.0f
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %8:texture_2d<f32> = load %t
-    %9:sampler = load %s
-    %10:vec4<f32> = textureSample %8, %9, %coord
-    %11:f32 = access %10, 0u
-    %12:i32 = convert %11
-    %result:ptr<function, i32, read_write> = var, %12
-    loop [i: %b4, b: %b5, c: %b6] {  # loop_1
-      %b4 = block {  # initializer
+    %9:texture_2d<f32> = load %t
+    %10:sampler = load %s
+    %11:vec4<f32> = textureSample %9, %10, %coord
+    %12:f32 = access %11, 0u
+    %13:i32 = call %tint_f32_to_i32, %12
+    %result:ptr<function, i32, read_write> = var, %13
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
         %i:ptr<function, i32, read_write> = var, 0i
-        next_iteration %b5
+        next_iteration  # -> $B5
       }
-      %b5 = block {  # body
-        %15:i32 = load %i
-        %16:bool = lt %15, 10i
-        if %16 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+      $B5: {  # body
+        %17:i32 = load %i
+        %18:bool = lt %17, 10i
+        if %18 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %17:i32 = load %i
-        %18:i32 = load %result
-        %19:i32 = add %18, %17
-        store %result, %19
-        continue %b6
+        %19:i32 = load %i
+        %20:i32 = load %result
+        %21:i32 = add %20, %19
+        store %result, %21
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %20:i32 = atomicAdd %a, 1i
-        store %i, %20
-        next_iteration %b5
+      $B6: {  # continuing
+        %22:bool = load %continue_execution
+        %23:i32 = if %22 [t: $B9] {  # if_3
+          $B9: {  # true
+            %24:i32 = atomicAdd %a, 1i
+            exit_if %24  # if_3
+          }
+          # implicit false block: exit_if undef
+        }
+        store %i, %23
+        next_iteration  # -> $B5
       }
     }
-    %21:i32 = load %result
-    ret %21
+    %25:i32 = load %result
+    %26:bool = load %continue_execution
+    %27:bool = eq %26, false
+    if %27 [t: $B10] {  # if_4
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %25
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %29:i32 = convert %value
+    %30:bool = gte %value, -2147483648.0f
+    %31:i32 = select -2147483648i, %29, %30
+    %32:bool = lte %value, 2147483520.0f
+    %33:i32 = select 2147483647i, %31, %32
+    ret %33
   }
 }
 
diff --git a/test/tint/statements/discard/discard_return.wgsl.expected.ir.msl b/test/tint/statements/discard/discard_return.wgsl.expected.ir.msl
new file mode 100644
index 0000000..2e04a91
--- /dev/null
+++ b/test/tint/statements/discard/discard_return.wgsl.expected.ir.msl
@@ -0,0 +1,13 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool continue_execution = true;
+void f() {
+  continue_execution = false;
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl
index 8f6bba6..3c42091 100644
--- a/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/helper_functions.wgsl.expected.ir.msl
@@ -1,34 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %non_uniform_global:ptr<storage, i32, read_write> = var @binding_point(0, 0)
   %output:ptr<storage, f32, read_write> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%foo = func():void -> %b2 {
-  %b2 = block {
-    %4:i32 = load %non_uniform_global
-    %5:bool = lt %4, 0i
-    if %5 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%foo = func():void {
+  $B2: {
+    %5:i32 = load %non_uniform_global
+    %6:bool = lt %5, 0i
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%bar = func():void -> %b4 {
-  %b4 = block {
-    %7:f32 = dpdx 1.0f
-    store %output, %7
+%bar = func():void {
+  $B4: {
+    %8:f32 = dpdx 1.0f
+    %9:f32 = let %8
+    %10:bool = load %continue_execution
+    if %10 [t: $B5] {  # if_2
+      $B5: {  # true
+        store %output, %9
+        exit_if  # if_2
+      }
+    }
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b5 {
-  %b5 = block {
-    %9:void = call %foo
-    %10:void = call %bar
+%tint_symbol = @fragment func():void {
+  $B6: {
+    %12:void = call %foo
+    %13:void = call %bar
+    %14:bool = load %continue_execution
+    %15:bool = eq %14, false
+    if %15 [t: $B7] {  # if_3
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.msl b/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.msl
new file mode 100644
index 0000000..361b224
--- /dev/null
+++ b/test/tint/statements/discard/if_discard_return.wgsl.expected.ir.msl
@@ -0,0 +1,16 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool continue_execution = true;
+void f(bool cond) {
+  if (cond) {
+    continue_execution = false;
+    return;
+  }
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.msl b/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.msl
new file mode 100644
index 0000000..e9dfc0a
--- /dev/null
+++ b/test/tint/statements/discard/loop_discard_return.wgsl.expected.ir.msl
@@ -0,0 +1,19 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool continue_execution = true;
+void f() {
+  {
+    while(true) {
+      continue_execution = false;
+      return;
+    }
+  }
+  /* unreachable */
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl
index 06df248..b5636b4 100644
--- a/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/multiple_returns.wgsl.expected.ir.msl
@@ -1,55 +1,92 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %non_uniform_global:ptr<storage, i32, read_write> = var @binding_point(0, 0)
   %output:ptr<storage, f32, read_write> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%tint_symbol = @fragment func():void -> %b2 {
-  %b2 = block {
-    %4:i32 = load %non_uniform_global
-    %5:bool = lt %4, 0i
-    if %5 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%tint_symbol = @fragment func():void {
+  $B2: {
+    %5:i32 = load %non_uniform_global
+    %6:bool = lt %5, 0i
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %6:f32 = dpdx 1.0f
-    store %output, %6
-    %7:f32 = load %output
-    %8:bool = lt %7, 0.0f
-    if %8 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %7:f32 = dpdx 1.0f
+    %8:f32 = let %7
+    %9:bool = load %continue_execution
+    if %9 [t: $B4] {  # if_2
+      $B4: {  # true
+        store %output, %8
+        exit_if  # if_2
+      }
+    }
+    %10:f32 = load %output
+    %11:bool = lt %10, 0.0f
+    if %11 [t: $B5] {  # if_3
+      $B5: {  # true
         %i:ptr<function, i32, read_write> = var, 0i
-        loop [b: %b5, c: %b6] {  # loop_1
-          %b5 = block {  # body
-            %10:f32 = load %output
-            %11:i32 = load %i
-            %12:f32 = convert %11
-            %13:bool = gt %10, %12
-            if %13 [t: %b7] {  # if_3
-              %b7 = block {  # true
-                %14:i32 = load %i
-                %15:f32 = convert %14
-                store %output, %15
+        loop [b: $B6, c: $B7] {  # loop_1
+          $B6: {  # body
+            %13:f32 = load %output
+            %14:f32 = let %13
+            %15:i32 = load %i
+            %16:f32 = convert %15
+            %17:bool = gt %14, %16
+            if %17 [t: $B8] {  # if_4
+              $B8: {  # true
+                %18:i32 = load %i
+                %19:f32 = convert %18
+                %20:f32 = let %19
+                %21:bool = load %continue_execution
+                if %21 [t: $B9] {  # if_5
+                  $B9: {  # true
+                    store %output, %20
+                    exit_if  # if_5
+                  }
+                }
+                %22:bool = load %continue_execution
+                %23:bool = eq %22, false
+                if %23 [t: $B10] {  # if_6
+                  $B10: {  # true
+                    terminate_invocation
+                  }
+                }
                 ret
               }
             }
-            continue %b6
+            continue  # -> $B7
           }
-          %b6 = block {  # continuing
-            %16:i32 = load %i
-            %17:i32 = add %16, 1i
-            store %i, %17
-            %18:i32 = load %i
-            %19:bool = eq %18, 5i
-            break_if %19 %b5
+          $B7: {  # continuing
+            %24:i32 = load %i
+            %25:i32 = add %24, 1i
+            store %i, %25
+            %26:i32 = load %i
+            %27:bool = eq %26, 5i
+            break_if %27  # -> [t: exit_loop loop_1, f: $B6]
+          }
+        }
+        %28:bool = load %continue_execution
+        %29:bool = eq %28, false
+        if %29 [t: $B11] {  # if_7
+          $B11: {  # true
+            terminate_invocation
           }
         }
         ret
       }
     }
+    %30:bool = load %continue_execution
+    %31:bool = eq %30, false
+    if %31 [t: $B12] {  # if_8
+      $B12: {  # true
+        terminate_invocation
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl b/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl
index 56b1a4b..0e324d8 100644
--- a/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/nested_return.wgsl.expected.ir.msl
@@ -1,19 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %non_uniform_global:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%tint_symbol = @fragment func():void -> %b2 {
-  %b2 = block {
-    %3:i32 = load %non_uniform_global
-    %4:bool = lt %3, 0i
-    if %4 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%tint_symbol = @fragment func():void {
+  $B2: {
+    %4:i32 = load %non_uniform_global
+    %5:bool = lt %4, 0i
+    if %5 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
+    %6:bool = load %continue_execution
+    %7:bool = eq %6, false
+    if %7 [t: $B4] {  # if_2
+      $B4: {  # true
+        terminate_invocation
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl
index d0a0ee9..b3ed894 100644
--- a/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl
+++ b/test/tint/statements/discard/non_uniform.wgsl.expected.ir.msl
@@ -1,22 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %non_uniform_global:ptr<storage, i32, read_write> = var @binding_point(0, 0)
   %output:ptr<storage, f32, read_write> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%tint_symbol = @fragment func():void -> %b2 {
-  %b2 = block {
-    %4:i32 = load %non_uniform_global
-    %5:bool = lt %4, 0i
-    if %5 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%tint_symbol = @fragment func():void {
+  $B2: {
+    %5:i32 = load %non_uniform_global
+    %6:bool = lt %5, 0i
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %6:f32 = dpdx 1.0f
-    store %output, %6
+    %7:f32 = dpdx 1.0f
+    %8:f32 = let %7
+    %9:bool = load %continue_execution
+    if %9 [t: $B4] {  # if_2
+      $B4: {  # true
+        store %output, %8
+        exit_if  # if_2
+      }
+    }
+    %10:bool = load %continue_execution
+    %11:bool = eq %10, false
+    if %11 [t: $B5] {  # if_3
+      $B5: {  # true
+        terminate_invocation
+      }
+    }
     ret
   }
 }
diff --git a/test/tint/statements/for/complex.wgsl.expected.ir.msl b/test/tint/statements/for/complex.wgsl.expected.ir.msl
index cdbf128..0e49291 100644
--- a/test/tint/statements/for/complex.wgsl.expected.ir.msl
+++ b/test/tint/statements/for/complex.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:385 internal compiler error: Switch() matched no cases. Type: tint::core::ir::If
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/statements/increment/array_element.wgsl.expected.ir.msl b/test/tint/statements/increment/array_element.wgsl.expected.ir.msl
index 6ed4076..9795a66 100644
--- a/test/tint/statements/increment/array_element.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/array_element.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = func():void {
+  $B2: {
     %3:ptr<storage, u32, read_write> = access %a, 1i
     %4:u32 = load %3
     %5:u32 = add %4, 1u
diff --git a/test/tint/statements/increment/complex.wgsl.expected.ir.msl b/test/tint/statements/increment/complex.wgsl.expected.ir.msl
index cfb842a..da42c84 100644
--- a/test/tint/statements/increment/complex.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/complex.wgsl.expected.ir.msl
@@ -1,97 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   a:array<vec4<i32>, 4> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tint_symbol:ptr<storage, array<S>, read_write> = var @binding_point(0, 0)
   %v:ptr<private, u32, read_write> = var
 }
 
-%idx1 = func():i32 -> %b2 {
-  %b2 = block {
+%idx1 = func():i32 {
+  $B2: {
     %4:u32 = load %v
     %5:u32 = add %4, 1u
     store %v, %5
     ret 1i
   }
 }
-%idx2 = func():i32 -> %b3 {
-  %b3 = block {
+%idx2 = func():i32 {
+  $B3: {
     %7:u32 = load %v
     %8:u32 = add %7, 1u
     store %v, %8
     ret 2i
   }
 }
-%idx3 = func():i32 -> %b4 {
-  %b4 = block {
+%idx3 = func():i32 {
+  $B4: {
     %10:u32 = load %v
     %11:u32 = add %10, 1u
     store %v, %11
     ret 3i
   }
 }
-%idx4 = func():i32 -> %b5 {
-  %b5 = block {
+%idx4 = func():i32 {
+  $B5: {
     %13:u32 = load %v
     %14:u32 = add %13, 1u
     store %v, %14
     ret 4i
   }
 }
-%idx5 = func():i32 -> %b6 {
-  %b6 = block {
+%idx5 = func():i32 {
+  $B6: {
     %16:u32 = load %v
     %17:u32 = add %16, 1u
     store %v, %17
     ret 0i
   }
 }
-%idx6 = func():i32 -> %b7 {
-  %b7 = block {
+%idx6 = func():i32 {
+  $B7: {
     %19:u32 = load %v
     %20:u32 = add %19, 1u
     store %v, %20
     ret 2i
   }
 }
-%tint_symbol_1 = func():void -> %b8 {
-  %b8 = block {
-    loop [i: %b9, b: %b10, c: %b11] {  # loop_1
-      %b9 = block {  # initializer
+%tint_symbol_1 = func():void {
+  $B8: {
+    loop [i: $B9, b: $B10, c: $B11] {  # loop_1
+      $B9: {  # initializer
         %22:i32 = call %idx1
-        %23:i32 = call %idx2
-        %24:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %22, 0u, %23
-        %25:i32 = call %idx3
-        %26:i32 = load_vector_element %24, %25
-        %27:i32 = add %26, 1i
-        store_vector_element %24, %25, %27
-        next_iteration %b10
+        %23:i32 = let %22
+        %24:i32 = call %idx2
+        %25:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %23, 0u, %24
+        %26:ptr<storage, vec4<i32>, read_write> = let %25
+        %27:i32 = call %idx3
+        %28:i32 = let %27
+        %29:i32 = load_vector_element %26, %28
+        %30:i32 = add %29, 1i
+        store_vector_element %26, %28, %30
+        next_iteration  # -> $B10
       }
-      %b10 = block {  # body
-        %28:u32 = load %v
-        %29:bool = lt %28, 10u
-        if %29 [t: %b12, f: %b13] {  # if_1
-          %b12 = block {  # true
+      $B10: {  # body
+        %31:u32 = load %v
+        %32:bool = lt %31, 10u
+        if %32 [t: $B12, f: $B13] {  # if_1
+          $B12: {  # true
             exit_if  # if_1
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %30:i32 = call %idx4
-        %31:i32 = call %idx5
-        %32:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %30, 0u, %31
-        %33:i32 = call %idx6
-        %34:i32 = load_vector_element %32, %33
-        %35:i32 = add %34, 1i
-        store_vector_element %32, %33, %35
-        next_iteration %b10
+      $B11: {  # continuing
+        %33:i32 = call %idx4
+        %34:i32 = let %33
+        %35:i32 = call %idx5
+        %36:ptr<storage, vec4<i32>, read_write> = access %tint_symbol, %34, 0u, %35
+        %37:ptr<storage, vec4<i32>, read_write> = let %36
+        %38:i32 = call %idx6
+        %39:i32 = let %38
+        %40:i32 = load_vector_element %37, %39
+        %41:i32 = add %40, 1i
+        store_vector_element %37, %39, %41
+        next_iteration  # -> $B10
       }
     }
     ret
diff --git a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.msl b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.msl
index d3167ff..f54b041 100644
--- a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %i:ptr<storage, u32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%tint_symbol = func():void {
+  $B2: {
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %3:u32 = load %i
         %4:bool = lt %3, 10u
-        if %4 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %4 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %5:u32 = load %i
         %6:u32 = add %5, 1u
         store %i, %6
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     ret
diff --git a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.msl b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.msl
index c50c6b8..f24a049 100644
--- a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.ir.msl
@@ -1,30 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %i:ptr<storage, u32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
-    loop [i: %b3, b: %b4] {  # loop_1
-      %b3 = block {  # initializer
+%tint_symbol = func():void {
+  $B2: {
+    loop [i: $B3, b: $B4] {  # loop_1
+      $B3: {  # initializer
         %3:u32 = load %i
         %4:u32 = add %3, 1u
         store %i, %4
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
-      %b4 = block {  # body
+      $B4: {  # body
         %5:u32 = load %i
         %6:bool = lt %5, 10u
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
     }
     ret
diff --git a/test/tint/statements/increment/private.wgsl.expected.ir.msl b/test/tint/statements/increment/private.wgsl.expected.ir.msl
index efdd3b1..550fb50 100644
--- a/test/tint/statements/increment/private.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/private.wgsl.expected.ir.msl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int i = 0;
+void tint_symbol() {
+  i = (i + 1);
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int i = 0;
+           ^
+
diff --git a/test/tint/statements/increment/storage.wgsl.expected.ir.msl b/test/tint/statements/increment/storage.wgsl.expected.ir.msl
index d2d8eb5..b554868 100644
--- a/test/tint/statements/increment/storage.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/storage.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %i:ptr<storage, u32, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = func():void {
+  $B2: {
     %3:u32 = load %i
     %4:u32 = add %3, 1u
     store %i, %4
diff --git a/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl b/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl
index d155d5d..28047f5 100644
--- a/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<storage, vec4<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = func():void -> %b2 {
-  %b2 = block {
+%tint_symbol = func():void {
+  $B2: {
     %3:u32 = load_vector_element %a, 1i
     %4:u32 = add %3, 1u
     store_vector_element %a, 1i, %4
diff --git a/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl b/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl
index efdd3b1..29d6518 100644
--- a/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl
@@ -1,9 +1,13 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int i;
+void tint_symbol() {
+  i = (i + 1);
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int i;
+                ^
+
diff --git a/test/tint/struct/type_initializer.wgsl.expected.ir.msl b/test/tint/struct/type_initializer.wgsl.expected.ir.msl
index 28251dc..5ceced0 100644
--- a/test/tint/struct/type_initializer.wgsl.expected.ir.msl
+++ b/test/tint/struct/type_initializer.wgsl.expected.ir.msl
@@ -1,9 +1,75 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S1 {
+  int a;
+  int b;
+  int c;
+  int d;
+};
+struct S2 {
+  int e;
+  S1 f;
+};
+struct S3 {
+  int g;
+  S1 h;
+  S2 i;
+};
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct T {
+  tint_array<int, 2> a;
+};
+
+kernel void tint_symbol() {
+  int const x = 42;
+  S1 const empty = S1{};
+  S1 const nonempty = S1{.a=1, .b=2, .c=3, .d=4};
+  S1 const nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d};
+  S3 const nested_empty = S3{};
+  S3 const nested_nonempty = S3{.g=1, .h=S1{.a=2, .b=3, .c=4, .d=5}, .i=S2{.e=6, .f=S1{.a=7, .b=8, .c=9, .d=10}}};
+  S1 const v = {.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d};
+  S3 const nested_nonempty_with_expr = {.g=1, .h=v, .i={.e=6, .f=nonempty}};
+  int const subexpr_empty = 0;
+  int const subexpr_nonempty = 2;
+  int const subexpr_nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
+  S1 const subexpr_nested_empty = S1{};
+  S1 const subexpr_nested_nonempty = S1{.a=2, .b=3, .c=4, .d=5};
+  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
+  tint_array<T, 2> const aosoa_empty = tint_array<T, 2>{};
+  tint_array<T, 2> const aosoa_nonempty = tint_array<T, 2>{T{.a=tint_array<int, 2>{1, 2}}, T{.a=tint_array<int, 2>{3, 4}}};
+  tint_array<T, 2> const aosoa_nonempty_with_expr = tint_array<T, 2>{{.a=tint_array<int, 2>{1, (aosoa_nonempty[0].a[0] + 1)}}, aosoa_nonempty[1]};
+}
+program_source:45:13: error: excess elements in scalar initializer
+  int const subexpr_nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
+            ^                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+program_source:45:81: error: expected ';' at end of declaration
+  int const subexpr_nonempty_with_expr = {.a=1, .b=x, .c=(x + 1), .d=nonempty.d}.c;
+                                                                                ^
+                                                                                ;
+program_source:48:50: error: field designator 'e' does not refer to any field in type 'const S1'
+  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
+                                                 ^
+program_source:48:56: error: field designator 'f' does not refer to any field in type 'const S1'
+  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
+                                                       ^
+program_source:48:109: error: expected ';' at end of declaration
+  S1 const subexpr_nested_nonempty_with_expr = {.e=1, .f={.a=2, .b=x, .c=(x + 1), .d=nested_nonempty.i.f.d}}.f;
+                                                                                                            ^
+                                                                                                            ;
+program_source:51:71: error: field designator cannot initialize a non-class type 'T[2]'
+  tint_array<T, 2> const aosoa_nonempty_with_expr = tint_array<T, 2>{{.a=tint_array<int, 2>{1, (aosoa_nonempty[0].a[0] + 1)}}, aosoa_nonempty[1]};
+                                                                      ^
+
diff --git a/test/tint/types/buffers/storage.wgsl.expected.ir.msl b/test/tint/types/buffers/storage.wgsl.expected.ir.msl
new file mode 100644
index 0000000..be7c43f
--- /dev/null
+++ b/test/tint/types/buffers/storage.wgsl.expected.ir.msl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %weights:ptr<storage, array<f32>, read> = var @binding_point(0, 0)
+}
+
+%tint_symbol = @fragment func():void {
+  $B2: {
+    %3:ptr<storage, f32, read> = access %weights, 0i
+    %4:f32 = load %3
+    %a:ptr<function, f32, read_write> = var, %4
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/buffers/uniform.wgsl.expected.ir.msl b/test/tint/types/buffers/uniform.wgsl.expected.ir.msl
new file mode 100644
index 0000000..884bf09
--- /dev/null
+++ b/test/tint/types/buffers/uniform.wgsl.expected.ir.msl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %weights:ptr<uniform, vec2<f32>, read> = var @binding_point(0, 0)
+}
+
+%tint_symbol = @fragment func():void {
+  $B2: {
+    %3:f32 = load_vector_element %weights, 0i
+    %a:ptr<function, f32, read_write> = var, %3
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/function_scope_declarations.wgsl.expected.ir.msl b/test/tint/types/function_scope_declarations.wgsl.expected.ir.msl
index 73340f8..11a6ade 100644
--- a/test/tint/types/function_scope_declarations.wgsl.expected.ir.msl
+++ b/test/tint/types/function_scope_declarations.wgsl.expected.ir.msl
@@ -18,7 +18,7 @@
   float a;
 };
 
-void tint_symbol() {
+kernel void tint_symbol() {
   bool bool_var = false;
   bool const bool_let = false;
   int i32_var = 0;
@@ -43,3 +43,13 @@
   thread float4* const ptr_vec = v4f32_var;
   thread tint_array<float, 4>* const ptr_arr = arr_var;
 }
+program_source:40:23: error: cannot initialize a variable of type 'float *const' with an lvalue of type 'float'
+  thread float* const ptr_f32 = f32_var;
+                      ^         ~~~~~~~
+program_source:41:24: error: cannot initialize a variable of type 'float4 *const' with an lvalue of type 'float4' (vector of 4 'float' values)
+  thread float4* const ptr_vec = v4f32_var;
+                       ^         ~~~~~~~~~
+program_source:42:38: error: no viable conversion from 'tint_array<float, 4>' to 'tint_array<float, 4> *const'
+  thread tint_array<float, 4>* const ptr_arr = arr_var;
+                                     ^         ~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl
index 28251dc..e0848ac 100644
--- a/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/compute_input_builtins_struct.wgsl.expected.ir.msl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct ComputeInputs {
+  uint3 local_invocation_id [[thread_position_in_threadgroup]];
+  uint local_invocation_index [[thread_index_in_threadgroup]];
+  uint3 global_invocation_id [[thread_position_in_grid]];
+  uint3 workgroup_id [[threadgroup_position_in_grid]];
+  uint3 num_workgroups [[threadgroups_per_grid]];
+};
+
+kernel void tint_symbol(ComputeInputs inputs) {
+  uint const foo = ((((inputs.local_invocation_id[0u] + inputs.local_invocation_index) + inputs.global_invocation_id[0u]) + inputs.workgroup_id[0u]) + inputs.num_workgroups[0u]);
+}
+program_source:4:31: error: 'thread_position_in_threadgroup' attribute only applies to parameters and global builtin variables
+  uint3 local_invocation_id [[thread_position_in_threadgroup]];
+                              ^
+program_source:5:33: error: 'thread_index_in_threadgroup' attribute only applies to parameters and global builtin variables
+  uint local_invocation_index [[thread_index_in_threadgroup]];
+                                ^
+program_source:6:32: error: 'thread_position_in_grid' attribute only applies to parameters and global builtin variables
+  uint3 global_invocation_id [[thread_position_in_grid]];
+                               ^
+program_source:7:24: error: 'threadgroup_position_in_grid' attribute only applies to parameters and global builtin variables
+  uint3 workgroup_id [[threadgroup_position_in_grid]];
+                       ^
+program_source:8:26: error: 'threadgroups_per_grid' attribute only applies to parameters and global builtin variables
+  uint3 num_workgroups [[threadgroups_per_grid]];
+                         ^
+program_source:11:25: error: invalid type 'ComputeInputs' for input declaration in a kernel function
+kernel void tint_symbol(ComputeInputs inputs) {
+                        ^~~~~~~~~~~~~~~~~~~~
+program_source:4:3: note: type 'uint3' (vector of 3 'unsigned int' values) cannot be used in struct of resources/colors
+  uint3 local_invocation_id [[thread_position_in_threadgroup]];
+  ^
+program_source:5:3: note: type 'uint' (aka 'unsigned int') cannot be used in struct of resources/colors
+  uint local_invocation_index [[thread_index_in_threadgroup]];
+  ^
+program_source:6:3: note: type 'uint3' (vector of 3 'unsigned int' values) cannot be used in struct of resources/colors
+  uint3 global_invocation_id [[thread_position_in_grid]];
+  ^
+program_source:7:3: note: type 'uint3' (vector of 3 'unsigned int' values) cannot be used in struct of resources/colors
+  uint3 workgroup_id [[threadgroup_position_in_grid]];
+  ^
+program_source:8:3: note: type 'uint3' (vector of 3 'unsigned int' values) cannot be used in struct of resources/colors
+  uint3 num_workgroups [[threadgroups_per_grid]];
+  ^
+
diff --git a/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.msl
index 28251dc..cd0ca11 100644
--- a/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/compute_input_mixed.wgsl.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct ComputeInputs0 {
+  uint3 local_invocation_id [[thread_position_in_threadgroup]];
+};
+struct ComputeInputs1 {
+  uint3 workgroup_id [[threadgroup_position_in_grid]];
+};
+
+kernel void tint_symbol(ComputeInputs0 inputs0, uint local_invocation_index [[thread_index_in_threadgroup]], uint3 global_invocation_id [[thread_position_in_grid]], ComputeInputs1 inputs1) {
+  uint const foo = (((inputs0.local_invocation_id[0u] + local_invocation_index) + global_invocation_id[0u]) + inputs1.workgroup_id[0u]);
+}
+program_source:4:31: error: 'thread_position_in_threadgroup' attribute only applies to parameters and global builtin variables
+  uint3 local_invocation_id [[thread_position_in_threadgroup]];
+                              ^
+program_source:7:24: error: 'threadgroup_position_in_grid' attribute only applies to parameters and global builtin variables
+  uint3 workgroup_id [[threadgroup_position_in_grid]];
+                       ^
+program_source:10:25: error: invalid type 'ComputeInputs0' for input declaration in a kernel function
+kernel void tint_symbol(ComputeInputs0 inputs0, uint local_invocation_index [[thread_index_in_threadgroup]], uint3 global_invocation_id [[thread_position_in_grid]], ComputeInputs1 inputs1) {
+                        ^~~~~~~~~~~~~~~~~~~~~~
+program_source:4:3: note: type 'uint3' (vector of 3 'unsigned int' values) cannot be used in struct of resources/colors
+  uint3 local_invocation_id [[thread_position_in_threadgroup]];
+  ^
+program_source:10:166: error: invalid type 'ComputeInputs1' for input declaration in a kernel function
+kernel void tint_symbol(ComputeInputs0 inputs0, uint local_invocation_index [[thread_index_in_threadgroup]], uint3 global_invocation_id [[thread_position_in_grid]], ComputeInputs1 inputs1) {
+                                                                                                                                                                     ^~~~~~~~~~~~~~~~~~~~~~
+program_source:7:3: note: type 'uint3' (vector of 3 'unsigned int' values) cannot be used in struct of resources/colors
+  uint3 workgroup_id [[threadgroup_position_in_grid]];
+  ^
+
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl
index c5bb04d..00d40a5 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins.wgsl.expected.ir.msl
@@ -1,11 +1,11 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %output:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%subgroup_invocation_id:u32 [@subgroup_invocation_id], %subgroup_size:u32 [@subgroup_size]):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%subgroup_invocation_id:u32 [@subgroup_invocation_id], %subgroup_size:u32 [@subgroup_size]):void {
+  $B2: {
     %5:ptr<storage, u32, read_write> = access %output, %subgroup_invocation_id
     store %5, %subgroup_size
     ret
diff --git a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl
index 8cbd2e9..44e90b8 100644
--- a/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/compute_subgroup_builtins_struct.wgsl.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: ComputeInputs = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: ComputeInputs = struct @align(4) {
   subgroup_invocation_id:u32 @offset(0), @builtin(subgroup_invocation_id)
   subgroup_size:u32 @offset(4), @builtin(subgroup_size)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %output:ptr<storage, array<u32>, read_write> = var @binding_point(0, 0)
 }
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%inputs:ComputeInputs):void -> %b2 {
-  %b2 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%inputs:ComputeInputs):void {
+  $B2: {
     %4:u32 = access %inputs, 0u
     %5:ptr<storage, u32, read_write> = access %output, %4
     %6:u32 = access %inputs, 1u
diff --git a/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.msl
new file mode 100644
index 0000000..90f4c65
--- /dev/null
+++ b/test/tint/types/functions/shader_io/fragment_f16_io_polyfill.wgsl.expected.ir.msl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Outputs = struct @align(8) {
+  a:f16 @offset(0), @location(1)
+  b:vec4<f16> @offset(8), @location(2)
+}
+
+%frag_main = @fragment func(%loc1:f16 [@location(1)], %loc2:vec4<f16> [@location(2)]):Outputs {
+  $B1: {
+    %4:f16 = mul %loc1, 2.0h
+    %5:vec4<f16> = mul %loc2, 3.0h
+    %6:Outputs = construct %4, %5
+    ret %6
+  }
+}
+
+invalid entry point IO struct uses
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl
index 28251dc..6010b39 100644
--- a/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_builtins_struct.wgsl.expected.ir.msl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct FragmentInputs {
+  float4 position [[position]];
+  bool front_facing [[front_facing]];
+  uint sample_index [[sample_id]];
+  uint sample_mask [[sample_mask]];
+};
+
+fragment void tint_symbol(FragmentInputs inputs) {
+  if (inputs.front_facing) {
+    float4 const foo = inputs.position;
+    uint const bar = (inputs.sample_index + inputs.sample_mask);
+  }
+}
+program_source:10:27: error: invalid type 'FragmentInputs' for input declaration in a fragment function
+fragment void tint_symbol(FragmentInputs inputs) {
+                          ^~~~~~~~~~~~~~~~~~~~~
+program_source:4:3: note: type 'float4' (vector of 4 'float' values) cannot be used in struct of resources/colors
+  float4 position [[position]];
+  ^
+program_source:5:3: note: type 'bool' cannot be used in struct of resources/colors
+  bool front_facing [[front_facing]];
+  ^
+program_source:6:3: note: type 'uint' (aka 'unsigned int') cannot be used in struct of resources/colors
+  uint sample_index [[sample_id]];
+  ^
+program_source:7:3: note: type 'uint' (aka 'unsigned int') cannot be used in struct of resources/colors
+  uint sample_mask [[sample_mask]];
+  ^
+program_source:12:18: warning: unused variable 'foo' [-Wunused-variable]
+    float4 const foo = inputs.position;
+                 ^
+program_source:13:16: warning: unused variable 'bar' [-Wunused-variable]
+    uint const bar = (inputs.sample_index + inputs.sample_mask);
+               ^
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.msl
index 567c382..1604463 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations.wgsl.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+  int const i = loc0;
+  uint const u = loc1;
+  float const f = loc2;
+  float4 const v = loc3;
+}
+program_source:4:27: error: invalid type 'int' for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                          ^~~~~~~~
+program_source:4:37: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                                    ^~~~~~~~~
+program_source:4:48: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                                               ^~~~~~~~~~
+program_source:4:60: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                                                           ^~~~~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl
index 567c382..8f1f86c 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_f16.wgsl.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+  int const i = loc0;
+  uint const u = loc1;
+  float const f = loc2;
+  float4 const v = loc3;
+  half const x = loc4;
+  half3 const y = loc5;
+}
+program_source:4:27: error: invalid type 'int' for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                          ^~~~~~~~
+program_source:4:37: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                    ^~~~~~~~~
+program_source:4:48: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                               ^~~~~~~~~~
+program_source:4:60: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                                           ^~~~~~~~~~~
+program_source:4:73: error: invalid type 'half' for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                                                        ^~~~~~~~~
+program_source:4:84: error: invalid type 'half3' (vector of 3 'half' values) for input declaration in a fragment function
+fragment void tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                                                                   ^~~~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl
index 28251dc..7bce765 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_struct.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentInputs = struct @align(16) {
+  loc0:i32 @offset(0), @location(0), @interpolate(flat)
+  loc1:u32 @offset(4), @location(1), @interpolate(flat)
+  loc2:f32 @offset(8), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+}
+
+%tint_symbol = @fragment func(%inputs:FragmentInputs):void {
+  $B1: {
+    %3:i32 = access %inputs, 0u
+    %i:i32 = let %3
+    %5:u32 = access %inputs, 1u
+    %u:u32 = let %5
+    %7:f32 = access %inputs, 2u
+    %f:f32 = let %7
+    %9:vec4<f32> = access %inputs, 3u
+    %v:vec4<f32> = let %9
+    ret
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl
index 28251dc..f757f2d 100644
--- a/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_locations_struct_f16.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentInputs = struct @align(16) {
+  loc0:i32 @offset(0), @location(0), @interpolate(flat)
+  loc1:u32 @offset(4), @location(1), @interpolate(flat)
+  loc2:f32 @offset(8), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+  loc4:f16 @offset(32), @location(4)
+  loc5:vec3<f16> @offset(40), @location(5)
+}
+
+%tint_symbol = @fragment func(%inputs:FragmentInputs):void {
+  $B1: {
+    %3:i32 = access %inputs, 0u
+    %i:i32 = let %3
+    %5:u32 = access %inputs, 1u
+    %u:u32 = let %5
+    %7:f32 = access %inputs, 2u
+    %f:f32 = let %7
+    %9:vec4<f32> = access %inputs, 3u
+    %v:vec4<f32> = let %9
+    %11:f16 = access %inputs, 4u
+    %x:f16 = let %11
+    %13:vec3<f16> = access %inputs, 5u
+    %y:vec3<f16> = let %13
+    ret
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.msl
index 567c382..11fe312 100644
--- a/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_mixed.wgsl.expected.ir.msl
@@ -1,6 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentInputs0 = struct @align(16) {
+  position:vec4<f32> @offset(0), @builtin(position)
+  loc0:i32 @offset(16), @location(0), @interpolate(flat)
+}
+
+FragmentInputs1 = struct @align(16) {
+  loc3:vec4<f32> @offset(0), @location(3)
+  sample_mask:u32 @offset(16), @builtin(sample_mask)
+}
+
+%tint_symbol = @fragment func(%inputs0:FragmentInputs0, %front_facing:bool [@front_facing], %loc1:u32 [@location(1), @interpolate(flat)], %sample_index:u32 [@sample_index], %inputs1:FragmentInputs1, %loc2:f32 [@location(2)]):void {
+  $B1: {
+    if %front_facing [t: $B2] {  # if_1
+      $B2: {  # true
+        %8:vec4<f32> = access %inputs0, 0u
+        %foo:vec4<f32> = let %8
+        %10:u32 = access %inputs1, 1u
+        %11:u32 = add %sample_index, %10
+        %bar:u32 = let %11
+        %13:i32 = access %inputs0, 1u
+        %i:i32 = let %13
+        %u:u32 = let %loc1
+        %f:f32 = let %loc2
+        %17:vec4<f32> = access %inputs1, 0u
+        %v:vec4<f32> = let %17
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl
index 567c382..1eae703 100644
--- a/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_input_mixed_f16.wgsl.expected.ir.msl
@@ -1,6 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentInputs0 = struct @align(16) {
+  position:vec4<f32> @offset(0), @builtin(position)
+  loc0:i32 @offset(16), @location(0), @interpolate(flat)
+}
+
+FragmentInputs1 = struct @align(16) {
+  loc3:vec4<f32> @offset(0), @location(3)
+  loc5:vec3<f16> @offset(16), @location(5)
+  sample_mask:u32 @offset(24), @builtin(sample_mask)
+}
+
+%tint_symbol = @fragment func(%inputs0:FragmentInputs0, %front_facing:bool [@front_facing], %loc1:u32 [@location(1), @interpolate(flat)], %sample_index:u32 [@sample_index], %inputs1:FragmentInputs1, %loc2:f32 [@location(2)], %loc4:f16 [@location(4)]):void {
+  $B1: {
+    if %front_facing [t: $B2] {  # if_1
+      $B2: {  # true
+        %9:vec4<f32> = access %inputs0, 0u
+        %foo:vec4<f32> = let %9
+        %11:u32 = access %inputs1, 2u
+        %12:u32 = add %sample_index, %11
+        %bar:u32 = let %12
+        %14:i32 = access %inputs0, 1u
+        %i:i32 = let %14
+        %u:u32 = let %loc1
+        %f:f32 = let %loc2
+        %18:vec4<f32> = access %inputs1, 0u
+        %v:vec4<f32> = let %18
+        %x:f16 = let %loc4
+        %21:vec3<f16> = access %inputs1, 1u
+        %y:vec3<f16> = let %21
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
index 30e0bd9..f289cfb 100644
--- a/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_builtins.wgsl.expected.ir.msl
@@ -1,7 +1,3 @@
-SKIP: FAILED
-
-### Missing output value
-
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl
index c26064f..6d20c629 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations.wgsl.expected.ir.msl
@@ -1,7 +1,3 @@
-SKIP FAILED
-
-### Missing locations
-
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
index 1e9c88b..148a978 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_f16.wgsl.expected.ir.msl
@@ -1,7 +1,3 @@
-SKIP: FAILED
-
-### Missing locations
-
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl
index 3d43d26..6497ed5 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_struct.wgsl.expected.ir.msl
@@ -1,14 +1,14 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragmentOutputs = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentOutputs = struct @align(16) {
   loc0:i32 @offset(0), @location(0)
   loc1:u32 @offset(4), @location(1)
   loc2:f32 @offset(8), @location(2)
   loc3:vec4<f32> @offset(16), @location(3)
 }
 
-%tint_symbol = @fragment func():FragmentOutputs -> %b1 {
-  %b1 = block {
+%tint_symbol = @fragment func():FragmentOutputs {
+  $B1: {
     ret FragmentOutputs(1i, 1u, 1.0f, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f))
   }
 }
diff --git a/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl
index 5bc20a1..d88c911 100644
--- a/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_locations_struct_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragmentOutputs = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentOutputs = struct @align(16) {
   loc0:i32 @offset(0), @location(0)
   loc1:u32 @offset(4), @location(1)
   loc2:f32 @offset(8), @location(2)
@@ -9,8 +9,8 @@
   loc5:vec3<f16> @offset(40), @location(5)
 }
 
-%tint_symbol = @fragment func():FragmentOutputs -> %b1 {
-  %b1 = block {
+%tint_symbol = @fragment func():FragmentOutputs {
+  $B1: {
     ret FragmentOutputs(1i, 1u, 1.0f, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f), 2.25h, vec3<f16>(3.0h, 5.0h, 8.0h))
   }
 }
diff --git a/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.msl
index 33eb5fc..ecc9c82 100644
--- a/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_mixed.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragmentOutputs = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentOutputs = struct @align(16) {
   loc0:i32 @offset(0), @location(0)
   frag_depth:f32 @offset(4), @builtin(frag_depth)
   loc1:u32 @offset(8), @location(1)
@@ -9,8 +9,8 @@
   loc3:vec4<f32> @offset(32), @location(3)
 }
 
-%tint_symbol = @fragment func():FragmentOutputs -> %b1 {
-  %b1 = block {
+%tint_symbol = @fragment func():FragmentOutputs {
+  $B1: {
     ret FragmentOutputs(1i, 2.0f, 1u, 1.0f, 2u, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f))
   }
 }
diff --git a/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl
index d30fbb6..65c3bdc 100644
--- a/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/fragment_output_mixed_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: FragmentOutputs = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: FragmentOutputs = struct @align(16) {
   loc0:i32 @offset(0), @location(0)
   frag_depth:f32 @offset(4), @builtin(frag_depth)
   loc1:u32 @offset(8), @location(1)
@@ -11,8 +11,8 @@
   loc5:vec3<f16> @offset(56), @location(5)
 }
 
-%tint_symbol = @fragment func():FragmentOutputs -> %b1 {
-  %b1 = block {
+%tint_symbol = @fragment func():FragmentOutputs {
+  $B1: {
     ret FragmentOutputs(1i, 2.0f, 1u, 1.0f, 2u, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f), 2.25h, vec3<f16>(3.0h, 5.0h, 8.0h))
   }
 }
diff --git a/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl
index f925a33..b293228 100644
--- a/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/interpolate_input_parameters.wgsl.expected.ir.msl
@@ -3,5 +3,36 @@
 #include <metal_stdlib>
 using namespace metal;
 
-void tint_symbol() {
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
 }
+program_source:4:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                          ^~~~~~~~~~
+program_source:4:39: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                      ^~~~~~~~~~
+program_source:4:51: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                  ^~~~~~~~~~~~~~~~~~~~~~~~
+program_source:4:77: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
+program_source:4:105: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~
+program_source:4:131: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                                                                                  ^~~~~~~~~~~~~~~~~~~
+program_source:4:152: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                                                                                                       ^~~~~~~~~~~~~~~~~~~~~
+program_source:4:175: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                                                                                                                              ^~~~~~~~~~~~~~~~~~~
+program_source:4:196: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                                                                                                                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
+program_source:4:223: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float none, float flat, float perspective_center, float perspective_centroid, float perspective_sample, float linear_center, float linear_centroid, float linear_sample, float perspective_default, float linear_default) {
+                                                                                                                                                                                                                              ^~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.msl
index f925a33..e1d10c7 100644
--- a/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/interpolate_input_struct.wgsl.expected.ir.msl
@@ -1,7 +1,28 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-void tint_symbol() {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: In = struct @align(4) {
+  none:f32 @offset(0), @location(0)
+  flat:f32 @offset(4), @location(1), @interpolate(flat)
+  perspective_center:f32 @offset(8), @location(2), @interpolate(perspective, center)
+  perspective_centroid:f32 @offset(12), @location(3), @interpolate(perspective, centroid)
+  perspective_sample:f32 @offset(16), @location(4), @interpolate(perspective, sample)
+  linear_center:f32 @offset(20), @location(5), @interpolate(linear, center)
+  linear_centroid:f32 @offset(24), @location(6), @interpolate(linear, centroid)
+  linear_sample:f32 @offset(28), @location(7), @interpolate(linear, sample)
+  perspective_default:f32 @offset(32), @location(8), @interpolate(perspective)
+  linear_default:f32 @offset(36), @location(9), @interpolate(linear)
 }
+
+%tint_symbol = @fragment func(%in:In):void {
+  $B1: {
+    ret
+  }
+}
+
+invalid entry point IO struct uses
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.msl
index 265ab26..6e4a62e 100644
--- a/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/interpolate_integers.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Interface = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Interface = struct @align(16) {
   i:i32 @offset(0), @location(0), @interpolate(flat)
   u:u32 @offset(4), @location(1), @interpolate(flat)
   vi:vec4<i32> @offset(16), @location(2), @interpolate(flat)
@@ -8,13 +8,13 @@
   pos:vec4<f32> @offset(48), @builtin(position)
 }
 
-%vert_main = @vertex func():Interface -> %b1 {
-  %b1 = block {
+%vert_main = @vertex func():Interface {
+  $B1: {
     ret Interface(0i, 0u, vec4<i32>(0i), vec4<u32>(0u), vec4<f32>(0.0f))
   }
 }
-%frag_main = @fragment func(%inputs:Interface):i32 [@location(0)] -> %b2 {
-  %b2 = block {
+%frag_main = @fragment func(%inputs:Interface):i32 [@location(0)] {
+  $B2: {
     %4:i32 = access %inputs, 0u
     ret %4
   }
diff --git a/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.msl
index e83a9ef..26d0382 100644
--- a/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/interpolate_return_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Out = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Out = struct @align(16) {
   pos:vec4<f32> @offset(0), @builtin(position)
   none:f32 @offset(16), @location(0)
   flat:f32 @offset(20), @location(1), @interpolate(flat)
@@ -12,8 +12,8 @@
   linear_sample:f32 @offset(44), @location(7), @interpolate(linear, sample)
 }
 
-%tint_symbol = @vertex func():Out -> %b1 {
-  %b1 = block {
+%tint_symbol = @vertex func():Out {
+  $B1: {
     ret Out(vec4<f32>(0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f)
   }
 }
diff --git a/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl
index 6cea9ca..453e2ef 100644
--- a/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/invariant.wgsl.expected.ir.msl
@@ -1,7 +1,3 @@
-SKIP: FAILED
-
-### Missing invariant
-
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.msl
index db7f2fc..4189aec 100644
--- a/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/invariant_struct_member.wgsl.expected.ir.msl
@@ -6,6 +6,11 @@
   float4 pos [[position]] TINT_INVARIANT;
 };
 
-Out tint_symbol() {
+vertex Out tint_symbol() {
   return Out{};
 }
+program_source:4:26: error: expected ';' at end of declaration list
+  float4 pos [[position]] TINT_INVARIANT;
+                         ^
+                         ;
+
diff --git a/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl
index 2c4667c..8a9e1f0 100644
--- a/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/shared_struct_different_stages.wgsl.expected.ir.msl
@@ -1,20 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Interface = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Interface = struct @align(16) {
   col1:f32 @offset(0), @location(1)
   col2:f32 @offset(4), @location(2)
   pos:vec4<f32> @offset(16), @builtin(position)
 }
 
-%vert_main = @vertex func():Interface -> %b1 {
-  %b1 = block {
+%vert_main = @vertex func():Interface {
+  $B1: {
     ret Interface(0.40000000596046447754f, 0.60000002384185791016f, vec4<f32>(0.0f))
   }
 }
-%frag_main = @fragment func(%colors:Interface):void -> %b2 {
-  %b2 = block {
-    %r:f32 = access %colors, 0u
-    %g:f32 = access %colors, 1u
+%frag_main = @fragment func(%colors:Interface):void {
+  $B2: {
+    %4:f32 = access %colors, 0u
+    %r:f32 = let %4
+    %6:f32 = access %colors, 1u
+    %g:f32 = let %6
     ret
   }
 }
diff --git a/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl
index 0892dcd..3856fce 100644
--- a/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/shared_struct_different_stages_f16.wgsl.expected.ir.msl
@@ -1,20 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Interface = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Interface = struct @align(16) {
   col1:f32 @offset(0), @location(1)
   col2:f16 @offset(4), @location(2)
   pos:vec4<f32> @offset(16), @builtin(position)
 }
 
-%vert_main = @vertex func():Interface -> %b1 {
-  %b1 = block {
+%vert_main = @vertex func():Interface {
+  $B1: {
     ret Interface(0.40000000596046447754f, 0.599609375h, vec4<f32>(0.0f))
   }
 }
-%frag_main = @fragment func(%colors:Interface):void -> %b2 {
-  %b2 = block {
-    %r:f32 = access %colors, 0u
-    %g:f16 = access %colors, 1u
+%frag_main = @fragment func(%colors:Interface):void {
+  $B2: {
+    %4:f32 = access %colors, 0u
+    %r:f32 = let %4
+    %6:f16 = access %colors, 1u
+    %g:f16 = let %6
     ret
   }
 }
diff --git a/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl
index 6fafce0..a1641db 100644
--- a/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/shared_struct_helper_function.wgsl.expected.ir.msl
@@ -1,25 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: VertexOutput = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexOutput = struct @align(16) {
   pos:vec4<f32> @offset(0), @builtin(position)
   loc0:i32 @offset(16), @location(0), @interpolate(flat)
 }
 
-%foo = func(%x:f32):VertexOutput -> %b1 {
-  %b1 = block {
+%foo = func(%x:f32):VertexOutput {
+  $B1: {
     %3:vec4<f32> = construct %x, %x, %x, 1.0f
     %4:VertexOutput = construct %3, 42i
     ret %4
   }
 }
-%vert_main1 = @vertex func():VertexOutput -> %b2 {
-  %b2 = block {
+%vert_main1 = @vertex func():VertexOutput {
+  $B2: {
     %6:VertexOutput = call %foo, 0.5f
     ret %6
   }
 }
-%vert_main2 = @vertex func():VertexOutput -> %b3 {
-  %b3 = block {
+%vert_main2 = @vertex func():VertexOutput {
+  $B3: {
     %8:VertexOutput = call %foo, 0.25f
     ret %8
   }
diff --git a/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl
index ef5ab3a..6beb0b4 100644
--- a/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/shared_struct_storage_buffer.wgsl.expected.ir.msl
@@ -1,21 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(128) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(128) {
   f:f32 @offset(0), @location(0)
   u:u32 @offset(4), @location(1), @interpolate(flat)
   v:vec4<f32> @offset(128), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %output:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%frag_main = @fragment func(%input:S):void -> %b2 {
-  %b2 = block {
-    %f:f32 = access %input, 0u
-    %u:u32 = access %input, 1u
-    %v:vec4<f32> = access %input, 2u
-    store %output, %input
+%frag_main = @fragment func(%input:S):void {
+  $B2: {
+    %4:f32 = access %input, 0u
+    %f:f32 = let %4
+    %6:u32 = access %input, 1u
+    %u:u32 = let %6
+    %8:vec4<f32> = access %input, 2u
+    %v:vec4<f32> = let %8
+    %10:void = call %tint_store_and_preserve_padding, %output, %input
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, S, read_write>, %value_param:S):void {
+  $B3: {
+    %14:ptr<storage, f32, read_write> = access %target, 0u
+    %15:f32 = access %value_param, 0u
+    store %14, %15
+    %16:ptr<storage, u32, read_write> = access %target, 1u
+    %17:u32 = access %value_param, 1u
+    store %16, %17
+    %18:ptr<storage, vec4<f32>, read_write> = access %target, 2u
+    %19:vec4<f32> = access %value_param, 2u
+    store %18, %19
     ret
   }
 }
diff --git a/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl
index a74ca7f..d88216e 100644
--- a/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/shared_struct_storage_buffer_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(128) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(128) {
   f:f32 @offset(0), @location(0)
   u:u32 @offset(4), @location(1), @interpolate(flat)
   v:vec4<f32> @offset(128), @builtin(position)
@@ -8,18 +8,43 @@
   y:vec3<f16> @offset(192), @location(3)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %output:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%frag_main = @fragment func(%input:S):void -> %b2 {
-  %b2 = block {
-    %f:f32 = access %input, 0u
-    %u:u32 = access %input, 1u
-    %v:vec4<f32> = access %input, 2u
-    %x:f16 = access %input, 3u
-    %y:vec3<f16> = access %input, 4u
-    store %output, %input
+%frag_main = @fragment func(%input:S):void {
+  $B2: {
+    %4:f32 = access %input, 0u
+    %f:f32 = let %4
+    %6:u32 = access %input, 1u
+    %u:u32 = let %6
+    %8:vec4<f32> = access %input, 2u
+    %v:vec4<f32> = let %8
+    %10:f16 = access %input, 3u
+    %x:f16 = let %10
+    %12:vec3<f16> = access %input, 4u
+    %y:vec3<f16> = let %12
+    %14:void = call %tint_store_and_preserve_padding, %output, %input
+    ret
+  }
+}
+%tint_store_and_preserve_padding = func(%target:ptr<storage, S, read_write>, %value_param:S):void {
+  $B3: {
+    %18:ptr<storage, f32, read_write> = access %target, 0u
+    %19:f32 = access %value_param, 0u
+    store %18, %19
+    %20:ptr<storage, u32, read_write> = access %target, 1u
+    %21:u32 = access %value_param, 1u
+    store %20, %21
+    %22:ptr<storage, vec4<f32>, read_write> = access %target, 2u
+    %23:vec4<f32> = access %value_param, 2u
+    store %22, %23
+    %24:ptr<storage, f16, read_write> = access %target, 3u
+    %25:f16 = access %value_param, 3u
+    store %24, %25
+    %26:ptr<storage, vec3<f16>, read_write> = access %target, 4u
+    %27:vec3<f16> = access %value_param, 4u
+    store %26, %27
     ret
   }
 }
diff --git a/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.msl
index 9618b5e..9d003a2 100644
--- a/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_builtins.wgsl.expected.ir.msl
@@ -3,6 +3,14 @@
 #include <metal_stdlib>
 using namespace metal;
 
-float4 tint_symbol() {
+vertex float4 tint_symbol(uint vertex_index [[]], uint instance_index [[]]) {
+  uint const foo = (vertex_index + instance_index);
   return float4(0.0f);
 }
+program_source:4:27: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint vertex_index [[]], uint instance_index [[]]) {
+                          ^~~~~~~~~~~~~~~~~
+program_source:4:51: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint vertex_index [[]], uint instance_index [[]]) {
+                                                  ^~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl
index 28251dc..823fe70 100644
--- a/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_builtins_struct.wgsl.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct VertexInputs {
+  uint vertex_index [[vertex_id]];
+  uint instance_index [[instance_id]];
+};
+
+vertex float4 tint_symbol(VertexInputs inputs) {
+  uint const foo = (inputs.vertex_index + inputs.instance_index);
+  return float4(0.0f);
+}
+program_source:4:23: error: 'vertex_id' attribute only applies to parameters
+  uint vertex_index [[vertex_id]];
+                      ^
+program_source:5:25: error: 'instance_id' attribute only applies to parameters
+  uint instance_index [[instance_id]];
+                        ^
+program_source:8:27: error: invalid type 'VertexInputs' for input declaration in a vertex function
+vertex float4 tint_symbol(VertexInputs inputs) {
+                          ^~~~~~~~~~~~~~~~~~~
+program_source:4:3: note: type 'uint' (aka 'unsigned int') cannot be used in struct of resources/colors
+  uint vertex_index [[vertex_id]];
+  ^
+program_source:5:3: note: type 'uint' (aka 'unsigned int') cannot be used in struct of resources/colors
+  uint instance_index [[instance_id]];
+  ^
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.msl
index 567c382..cebd0d9 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations.wgsl.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+  int const i = loc0;
+  uint const u = loc1;
+  float const f = loc2;
+  float4 const v = loc3;
+  return float4(0.0f);
+}
+program_source:4:27: error: invalid type 'int' for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                          ^~~~~~~~
+program_source:4:37: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                                    ^~~~~~~~~
+program_source:4:48: error: invalid type 'float' for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                                               ^~~~~~~~~~
+program_source:4:60: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3) {
+                                                           ^~~~~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl
index 567c382..a544d6c 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_f16.wgsl.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:270 internal compiler error: Switch() matched no cases. Type: tint::core::ir::FunctionParam
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+  int const i = loc0;
+  uint const u = loc1;
+  float const f = loc2;
+  float4 const v = loc3;
+  half const x = loc4;
+  half3 const y = loc5;
+  return float4(0.0f);
+}
+program_source:4:27: error: invalid type 'int' for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                          ^~~~~~~~
+program_source:4:37: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                    ^~~~~~~~~
+program_source:4:48: error: invalid type 'float' for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                               ^~~~~~~~~~
+program_source:4:60: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                                           ^~~~~~~~~~~
+program_source:4:73: error: invalid type 'half' for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                                                        ^~~~~~~~~
+program_source:4:84: error: invalid type 'half3' (vector of 3 'half' values) for input declaration in a vertex function
+vertex float4 tint_symbol(int loc0, uint loc1, float loc2, float4 loc3, half loc4, half3 loc5) {
+                                                                                   ^~~~~~~~~~
+
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl
index 28251dc..4fa2af2 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_struct.wgsl.expected.ir.msl
@@ -1,6 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexInputs = struct @align(16) {
+  loc0:i32 @offset(0), @location(0)
+  loc1:u32 @offset(4), @location(1)
+  loc2:f32 @offset(8), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+}
+
+%tint_symbol = @vertex func(%inputs:VertexInputs):vec4<f32> [@position] {
+  $B1: {
+    %3:i32 = access %inputs, 0u
+    %i:i32 = let %3
+    %5:u32 = access %inputs, 1u
+    %u:u32 = let %5
+    %7:f32 = access %inputs, 2u
+    %f:f32 = let %7
+    %9:vec4<f32> = access %inputs, 3u
+    %v:vec4<f32> = let %9
+    ret vec4<f32>(0.0f)
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl
index 28251dc..ef6136c 100644
--- a/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_locations_struct_f16.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexInputs = struct @align(16) {
+  loc0:i32 @offset(0), @location(0)
+  loc1:u32 @offset(4), @location(1)
+  loc2:f32 @offset(8), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+  loc4:f16 @offset(32), @location(4)
+  loc5:vec3<f16> @offset(40), @location(5)
+}
+
+%tint_symbol = @vertex func(%inputs:VertexInputs):vec4<f32> [@position] {
+  $B1: {
+    %3:i32 = access %inputs, 0u
+    %i:i32 = let %3
+    %5:u32 = access %inputs, 1u
+    %u:u32 = let %5
+    %7:f32 = access %inputs, 2u
+    %f:f32 = let %7
+    %9:vec4<f32> = access %inputs, 3u
+    %v:vec4<f32> = let %9
+    %11:f16 = access %inputs, 4u
+    %x:f16 = let %11
+    %13:vec3<f16> = access %inputs, 5u
+    %y:vec3<f16> = let %13
+    ret vec4<f32>(0.0f)
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.msl
index 28251dc..db54d4a 100644
--- a/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_mixed.wgsl.expected.ir.msl
@@ -1,6 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexInputs0 = struct @align(4) {
+  vertex_index:u32 @offset(0), @builtin(vertex_index)
+  loc0:i32 @offset(4), @location(0)
+}
+
+VertexInputs1 = struct @align(16) {
+  loc2:f32 @offset(0), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+}
+
+%tint_symbol = @vertex func(%inputs0:VertexInputs0, %loc1:u32 [@location(1)], %instance_index:u32 [@instance_index], %inputs1:VertexInputs1):vec4<f32> [@position] {
+  $B1: {
+    %6:u32 = access %inputs0, 0u
+    %7:u32 = add %6, %instance_index
+    %foo:u32 = let %7
+    %9:i32 = access %inputs0, 1u
+    %i:i32 = let %9
+    %u:u32 = let %loc1
+    %12:f32 = access %inputs1, 0u
+    %f:f32 = let %12
+    %14:vec4<f32> = access %inputs1, 1u
+    %v:vec4<f32> = let %14
+    ret vec4<f32>(0.0f)
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl
index 28251dc..d697490 100644
--- a/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_input_mixed_f16.wgsl.expected.ir.msl
@@ -1,6 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexInputs0 = struct @align(4) {
+  vertex_index:u32 @offset(0), @builtin(vertex_index)
+  loc0:i32 @offset(4), @location(0)
+}
+
+VertexInputs1 = struct @align(16) {
+  loc2:f32 @offset(0), @location(2)
+  loc3:vec4<f32> @offset(16), @location(3)
+  loc5:vec3<f16> @offset(32), @location(5)
+}
+
+%tint_symbol = @vertex func(%inputs0:VertexInputs0, %loc1:u32 [@location(1)], %instance_index:u32 [@instance_index], %inputs1:VertexInputs1, %loc4:f16 [@location(4)]):vec4<f32> [@position] {
+  $B1: {
+    %7:u32 = access %inputs0, 0u
+    %8:u32 = add %7, %instance_index
+    %foo:u32 = let %8
+    %10:i32 = access %inputs0, 1u
+    %i:i32 = let %10
+    %u:u32 = let %loc1
+    %13:f32 = access %inputs1, 0u
+    %f:f32 = let %13
+    %15:vec4<f32> = access %inputs1, 1u
+    %v:vec4<f32> = let %15
+    %x:f16 = let %loc4
+    %18:vec3<f16> = access %inputs1, 2u
+    %y:vec3<f16> = let %18
+    ret vec4<f32>(0.0f)
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
index 7db3005..8fa24ea 100644
--- a/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_output_builtins.wgsl.expected.ir.msl
@@ -1,7 +1,3 @@
-SKIP: FAILED
-
-### Missing builtins
-
 #include <metal_stdlib>
 using namespace metal;
 
diff --git a/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl
index d6a72a1..b753a22 100644
--- a/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_output_locations_struct.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: VertexOutputs = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexOutputs = struct @align(16) {
   loc0:i32 @offset(0), @location(0), @interpolate(flat)
   loc1:u32 @offset(4), @location(1), @interpolate(flat)
   loc2:f32 @offset(8), @location(2)
@@ -8,8 +8,8 @@
   position:vec4<f32> @offset(32), @builtin(position)
 }
 
-%tint_symbol = @vertex func():VertexOutputs -> %b1 {
-  %b1 = block {
+%tint_symbol = @vertex func():VertexOutputs {
+  $B1: {
     ret VertexOutputs(1i, 1u, 1.0f, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f), vec4<f32>(0.0f))
   }
 }
diff --git a/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl
index 1331fbc..5f83c26 100644
--- a/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl
+++ b/test/tint/types/functions/shader_io/vertex_output_locations_struct_f16.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: VertexOutputs = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: VertexOutputs = struct @align(16) {
   loc0:i32 @offset(0), @location(0), @interpolate(flat)
   loc1:u32 @offset(4), @location(1), @interpolate(flat)
   loc2:f32 @offset(8), @location(2)
@@ -10,8 +10,8 @@
   loc5:vec3<f16> @offset(56), @location(5)
 }
 
-%tint_symbol = @vertex func():VertexOutputs -> %b1 {
-  %b1 = block {
+%tint_symbol = @vertex func():VertexOutputs {
+  $B1: {
     ret VertexOutputs(1i, 1u, 1.0f, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f), vec4<f32>(0.0f), 2.25h, vec3<f16>(3.0h, 5.0h, 8.0h))
   }
 }
diff --git a/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl
new file mode 100644
index 0000000..7e87012
--- /dev/null
+++ b/test/tint/types/module_scope_private_initializers.wgsl.expected.ir.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+thread float a = 1.0f;
+thread float b = 0.0f;
+kernel void tint_symbol() {
+  float const x = (a + b);
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float a = 1.0f;
+             ^
+program_source:5:14: error: program scope variable must reside in constant address space
+thread float b = 0.0f;
+             ^
+program_source:7:15: warning: unused variable 'x' [-Wunused-variable]
+  float const x = (a + b);
+              ^
+
diff --git a/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.msl b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.msl
new file mode 100644
index 0000000..85e0261
--- /dev/null
+++ b/test/tint/types/module_scope_used_in_functions.wgsl.expected.ir.msl
@@ -0,0 +1,63 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %p:ptr<private, f32, read_write> = var
+  %w:ptr<workgroup, f32, read_write> = var
+  %uniforms:ptr<storage, vec2<f32>, read> = var @binding_point(0, 1)
+  %storages:ptr<storage, array<f32>, read_write> = var @binding_point(0, 0)
+}
+
+%no_uses = func():void {
+  $B2: {
+    ret
+  }
+}
+%zoo = func():void {
+  $B3: {
+    %7:f32 = load %p
+    %8:f32 = mul %7, 2.0f
+    store %p, %8
+    ret
+  }
+}
+%bar = func(%a:f32, %b:f32):void {
+  $B4: {
+    store %p, %a
+    store %w, %b
+    %12:ptr<storage, f32, read_write> = access %storages, 0i
+    %13:f32 = load_vector_element %uniforms, 0u
+    store %12, %13
+    %14:void = call %zoo
+    ret
+  }
+}
+%foo = func(%a_1:f32):void {  # %a_1: 'a'
+  $B5: {
+    %b_1:f32 = let 2.0f  # %b_1: 'b'
+    %18:void = call %bar, %a_1, %b_1
+    %19:void = call %no_uses
+    ret
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B6: {
+    %22:bool = eq %tint_local_index, 0u
+    if %22 [t: $B7] {  # if_1
+      $B7: {  # true
+        store %w, 0.0f
+        exit_if  # if_1
+      }
+    }
+    %23:void = msl.threadgroup_barrier 4u
+    %24:void = call %foo, 1.0f
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/module_scope_var.wgsl.expected.ir.msl b/test/tint/types/module_scope_var.wgsl.expected.ir.msl
index efdd3b1..e3cf1cd 100644
--- a/test/tint/types/module_scope_var.wgsl.expected.ir.msl
+++ b/test/tint/types/module_scope_var.wgsl.expected.ir.msl
@@ -1,9 +1,92 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  float a;
+};
+
+thread bool bool_var = false;
+thread int i32_var = 0;
+thread uint u32_var = 0u;
+thread float f32_var = 0.0f;
+thread int2 v2i32_var = 0;
+thread uint3 v3u32_var = 0u;
+thread float4 v4f32_var = 0.0f;
+thread float2x3 m2x3_var = float2x3(0.0f);
+thread tint_array<float, 4> arr_var = {};
+thread S struct_var = {};
+threadgroup float wg_var;
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    wg_var = 0.0f;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  bool_var = false;
+  i32_var = 0;
+  u32_var = 0u;
+  f32_var = 0.0f;
+  v2i32_var = int2(0);
+  v3u32_var = uint3(0u);
+  v4f32_var = float4(0.0f);
+  m2x3_var = float2x3(float3(0.0f), float3(0.0f));
+  arr_var = tint_array<float, 4>{};
+  struct_var = S{};
+  wg_var = 42.0f;
+}
+program_source:19:13: error: program scope variable must reside in constant address space
+thread bool bool_var = false;
+            ^
+program_source:20:12: error: program scope variable must reside in constant address space
+thread int i32_var = 0;
+           ^
+program_source:21:13: error: program scope variable must reside in constant address space
+thread uint u32_var = 0u;
+            ^
+program_source:22:14: error: program scope variable must reside in constant address space
+thread float f32_var = 0.0f;
+             ^
+program_source:23:13: error: program scope variable must reside in constant address space
+thread int2 v2i32_var = 0;
+            ^
+program_source:24:14: error: program scope variable must reside in constant address space
+thread uint3 v3u32_var = 0u;
+             ^
+program_source:25:15: error: program scope variable must reside in constant address space
+thread float4 v4f32_var = 0.0f;
+              ^
+program_source:26:17: error: program scope variable must reside in constant address space
+thread float2x3 m2x3_var = float2x3(0.0f);
+                ^
+program_source:27:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 4> arr_var = {};
+                            ^
+program_source:28:10: error: program scope variable must reside in constant address space
+thread S struct_var = {};
+         ^
+program_source:29:19: error: program scope variable must reside in constant address space
+threadgroup float wg_var;
+                  ^
+program_source:31:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:31:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:31:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl
index efdd3b1..3487698 100644
--- a/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl
+++ b/test/tint/types/module_scope_var_conversions.wgsl.expected.ir.msl
@@ -1,9 +1,108 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool bool_var1 = true;
+thread bool bool_var2 = true;
+thread bool bool_var3 = true;
+thread int i32_var1 = 1;
+thread int i32_var2 = 1;
+thread int i32_var3 = 1;
+thread uint u32_var1 = 1u;
+thread uint u32_var2 = 1u;
+thread uint u32_var3 = 1u;
+thread bool3 v3bool_var1 = bool3(true);
+thread bool3 v3bool_var2 = bool3(true);
+thread bool3 v3bool_var3 = bool3(true);
+thread int3 v3i32_var1 = int3(1);
+thread int3 v3i32_var2 = int3(1);
+thread int3 v3i32_var3 = int3(1);
+thread uint3 v3u32_var1 = uint3(1u);
+thread uint3 v3u32_var2 = uint3(1u);
+thread uint3 v3u32_var3 = uint3(1u);
+thread bool3 v3bool_var4 = bool3(true);
+thread bool4 v4bool_var5 = bool4(true, false, true, false);
+kernel void tint_symbol() {
+  bool_var1 = false;
+  bool_var2 = false;
+  bool_var3 = false;
+  i32_var1 = 0;
+  i32_var2 = 0;
+  i32_var3 = 0;
+  u32_var1 = 0u;
+  u32_var2 = 0u;
+  u32_var3 = 0u;
+  v3bool_var1 = bool3(false);
+  v3bool_var2 = bool3(false);
+  v3bool_var3 = bool3(false);
+  v3bool_var4 = bool3(false);
+  v4bool_var5 = bool4(false);
+  v3i32_var1 = int3(0);
+  v3i32_var2 = int3(0);
+  v3i32_var3 = int3(0);
+  v3u32_var1 = uint3(0u);
+  v3u32_var2 = uint3(0u);
+  v3u32_var3 = uint3(0u);
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool bool_var1 = true;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool bool_var2 = true;
+            ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread bool bool_var3 = true;
+            ^
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int i32_var1 = 1;
+           ^
+program_source:8:12: error: program scope variable must reside in constant address space
+thread int i32_var2 = 1;
+           ^
+program_source:9:12: error: program scope variable must reside in constant address space
+thread int i32_var3 = 1;
+           ^
+program_source:10:13: error: program scope variable must reside in constant address space
+thread uint u32_var1 = 1u;
+            ^
+program_source:11:13: error: program scope variable must reside in constant address space
+thread uint u32_var2 = 1u;
+            ^
+program_source:12:13: error: program scope variable must reside in constant address space
+thread uint u32_var3 = 1u;
+            ^
+program_source:13:14: error: program scope variable must reside in constant address space
+thread bool3 v3bool_var1 = bool3(true);
+             ^
+program_source:14:14: error: program scope variable must reside in constant address space
+thread bool3 v3bool_var2 = bool3(true);
+             ^
+program_source:15:14: error: program scope variable must reside in constant address space
+thread bool3 v3bool_var3 = bool3(true);
+             ^
+program_source:16:13: error: program scope variable must reside in constant address space
+thread int3 v3i32_var1 = int3(1);
+            ^
+program_source:17:13: error: program scope variable must reside in constant address space
+thread int3 v3i32_var2 = int3(1);
+            ^
+program_source:18:13: error: program scope variable must reside in constant address space
+thread int3 v3i32_var3 = int3(1);
+            ^
+program_source:19:14: error: program scope variable must reside in constant address space
+thread uint3 v3u32_var1 = uint3(1u);
+             ^
+program_source:20:14: error: program scope variable must reside in constant address space
+thread uint3 v3u32_var2 = uint3(1u);
+             ^
+program_source:21:14: error: program scope variable must reside in constant address space
+thread uint3 v3u32_var3 = uint3(1u);
+             ^
+program_source:22:14: error: program scope variable must reside in constant address space
+thread bool3 v3bool_var4 = bool3(true);
+             ^
+program_source:23:14: error: program scope variable must reside in constant address space
+thread bool4 v4bool_var5 = bool4(true, false, true, false);
+             ^
+
diff --git a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl
index efdd3b1..b889680 100644
--- a/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl
+++ b/test/tint/types/module_scope_var_initializers.wgsl.expected.ir.msl
@@ -1,9 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  float a;
+};
+
+thread bool bool_var = false;
+thread int i32_var = 0;
+thread uint u32_var = 0u;
+thread float f32_var = 0.0f;
+thread int2 v2i32_var = int2(0);
+thread uint3 v3u32_var = uint3(0u);
+thread float4 v4f32_var = float4(0.0f);
+thread float2x3 m2x3_var = float2x3(float3(0.0f), float3(0.0f));
+thread tint_array<float, 4> arr_var = tint_array<float, 4>{};
+thread S struct_var = S{};
+kernel void tint_symbol() {
+  bool_var = false;
+  i32_var = 0;
+  u32_var = 0u;
+  f32_var = 0.0f;
+  v2i32_var = int2(0);
+  v3u32_var = uint3(0u);
+  v4f32_var = float4(0.0f);
+  m2x3_var = float2x3(float3(0.0f), float3(0.0f));
+  arr_var = tint_array<float, 4>{};
+  struct_var = S{};
+}
+program_source:19:13: error: program scope variable must reside in constant address space
+thread bool bool_var = false;
+            ^
+program_source:20:12: error: program scope variable must reside in constant address space
+thread int i32_var = 0;
+           ^
+program_source:21:13: error: program scope variable must reside in constant address space
+thread uint u32_var = 0u;
+            ^
+program_source:22:14: error: program scope variable must reside in constant address space
+thread float f32_var = 0.0f;
+             ^
+program_source:23:13: error: program scope variable must reside in constant address space
+thread int2 v2i32_var = int2(0);
+            ^
+program_source:24:14: error: program scope variable must reside in constant address space
+thread uint3 v3u32_var = uint3(0u);
+             ^
+program_source:25:15: error: program scope variable must reside in constant address space
+thread float4 v4f32_var = float4(0.0f);
+              ^
+program_source:26:17: error: program scope variable must reside in constant address space
+thread float2x3 m2x3_var = float2x3(float3(0.0f), float3(0.0f));
+                ^
+program_source:27:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 4> arr_var = tint_array<float, 4>{};
+                            ^
+program_source:28:10: error: program scope variable must reside in constant address space
+thread S struct_var = S{};
+         ^
+
diff --git a/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.msl b/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.msl
new file mode 100644
index 0000000..68d0820
--- /dev/null
+++ b/test/tint/types/module_scope_vars_pointers.wgsl.expected.ir.msl
@@ -0,0 +1,43 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+thread float p = 0.0f;
+threadgroup float w;
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    w = 0.0f;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  thread float* const p_ptr = p;
+  threadgroup float* const w_ptr = w;
+  float const x = (p_ptr + w_ptr);
+  p_ptr = x;
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float p = 0.0f;
+             ^
+program_source:5:19: error: program scope variable must reside in constant address space
+threadgroup float w;
+                  ^
+program_source:7:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:7:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:7:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:13:26: error: invalid operands to binary expression ('float *const' and 'threadgroup float *const')
+  float const x = (p_ptr + w_ptr);
+                   ~~~~~ ^ ~~~~~
+program_source:14:9: error: cannot assign to variable 'p_ptr' with const-qualified type 'float *const'
+  p_ptr = x;
+  ~~~~~ ^
+program_source:11:23: note: variable 'p_ptr' declared const here
+  thread float* const p_ptr = p;
+  ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
+
diff --git a/test/tint/types/sampler.wgsl.expected.ir.msl b/test/tint/types/sampler.wgsl.expected.ir.msl
index c3942d3..3543919 100644
--- a/test/tint/types/sampler.wgsl.expected.ir.msl
+++ b/test/tint/types/sampler.wgsl.expected.ir.msl
@@ -1,9 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-sampler s;
-sampler sc;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/short_names/short_names.wgsl.expected.ir.msl b/test/tint/types/short_names/short_names.wgsl.expected.ir.msl
index 7be8f30..378203b 100644
--- a/test/tint/types/short_names/short_names.wgsl.expected.ir.msl
+++ b/test/tint/types/short_names/short_names.wgsl.expected.ir.msl
@@ -3,6 +3,10 @@
 #include <metal_stdlib>
 using namespace metal;
 
-float4 tint_symbol() {
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
   return float4(0.0f, 0.0f, 0.0f, 1.0f);
 }
+program_source:4:27: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint VertexIndex [[]]) {
+                          ^~~~~~~~~~~~~~~~
+
diff --git a/test/tint/types/texture/depth/2d.wgsl.expected.ir.msl b/test/tint/types/texture/depth/2d.wgsl.expected.ir.msl
index df40174..9a1e6cb 100644
--- a/test/tint/types/texture/depth/2d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/depth/2d.wgsl.expected.ir.msl
@@ -1,8 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-depth2d<float, access::sample> t_f;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.msl b/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.msl
index 864933a..9a1e6cb 100644
--- a/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/depth/2d_array.wgsl.expected.ir.msl
@@ -1,8 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-depth2d_array<float, access::sample> t_f;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/depth/cube.wgsl.expected.ir.msl b/test/tint/types/texture/depth/cube.wgsl.expected.ir.msl
index 35a54bc..9a1e6cb 100644
--- a/test/tint/types/texture/depth/cube.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/depth/cube.wgsl.expected.ir.msl
@@ -1,8 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-depthcube<float, access::sample> t_f;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.msl b/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.msl
index ae64100..9a1e6cb 100644
--- a/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/depth/cube_array.wgsl.expected.ir.msl
@@ -1,8 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-depthcube_array<float, access::sample> t_f;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.msl b/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.msl
index 7a873c5..9a1e6cb 100644
--- a/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/multisampled/2d.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture2d_ms<float, access::read> t_f;
-texture2d_ms<int, access::read> t_i;
-texture2d_ms<uint, access::read> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/sampled/1d.wgsl.expected.ir.msl b/test/tint/types/texture/sampled/1d.wgsl.expected.ir.msl
index de8963b..9a1e6cb 100644
--- a/test/tint/types/texture/sampled/1d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/sampled/1d.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture1d<float, access::sample> t_f;
-texture1d<int, access::sample> t_i;
-texture1d<uint, access::sample> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/sampled/2d.wgsl.expected.ir.msl b/test/tint/types/texture/sampled/2d.wgsl.expected.ir.msl
index 249fc21..9a1e6cb 100644
--- a/test/tint/types/texture/sampled/2d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/sampled/2d.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture2d<float, access::sample> t_f;
-texture2d<int, access::sample> t_i;
-texture2d<uint, access::sample> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.msl b/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.msl
index 5a91806..9a1e6cb 100644
--- a/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/sampled/2d_array.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture2d_array<float, access::sample> t_f;
-texture2d_array<int, access::sample> t_i;
-texture2d_array<uint, access::sample> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/sampled/3d.wgsl.expected.ir.msl b/test/tint/types/texture/sampled/3d.wgsl.expected.ir.msl
index 16cef6c..9a1e6cb 100644
--- a/test/tint/types/texture/sampled/3d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/sampled/3d.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture3d<float, access::sample> t_f;
-texture3d<int, access::sample> t_i;
-texture3d<uint, access::sample> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/sampled/cube.wgsl.expected.ir.msl b/test/tint/types/texture/sampled/cube.wgsl.expected.ir.msl
index a9be39c..9a1e6cb 100644
--- a/test/tint/types/texture/sampled/cube.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/sampled/cube.wgsl.expected.ir.msl
@@ -1,8 +1,9 @@
-#include <metal_stdlib>
-using namespace metal;
+SKIP: FAILED
 
-texturecube<float, access::sample> t_f;
-texturecube<int, access::sample> t_i;
-texturecube<uint, access::sample> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.msl b/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.msl
index 773b17f..9a1e6cb 100644
--- a/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/sampled/cube_array.wgsl.expected.ir.msl
@@ -1,10 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texturecube_array<float, access::sample> t_f;
-texturecube_array<int, access::sample> t_i;
-texturecube_array<uint, access::sample> t_u;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/storage/1d.wgsl.expected.ir.msl b/test/tint/types/texture/storage/1d.wgsl.expected.ir.msl
index c2b9c9d..9a1e6cb 100644
--- a/test/tint/types/texture/storage/1d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/storage/1d.wgsl.expected.ir.msl
@@ -1,23 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture1d<float, access::write> t_rgba8unorm;
-texture1d<float, access::write> t_rgba8snorm;
-texture1d<uint, access::write> t_rgba8uint;
-texture1d<int, access::write> t_rgba8sint;
-texture1d<uint, access::write> t_rgba16uint;
-texture1d<int, access::write> t_rgba16sint;
-texture1d<float, access::write> t_rgba16float;
-texture1d<uint, access::write> t_r32uint;
-texture1d<int, access::write> t_r32sint;
-texture1d<float, access::write> t_r32float;
-texture1d<uint, access::write> t_rg32uint;
-texture1d<int, access::write> t_rg32sint;
-texture1d<float, access::write> t_rg32float;
-texture1d<uint, access::write> t_rgba32uint;
-texture1d<int, access::write> t_rgba32sint;
-texture1d<float, access::write> t_rgba32float;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/storage/2d.wgsl.expected.ir.msl b/test/tint/types/texture/storage/2d.wgsl.expected.ir.msl
index 597f501..9a1e6cb 100644
--- a/test/tint/types/texture/storage/2d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/storage/2d.wgsl.expected.ir.msl
@@ -1,23 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture2d<float, access::write> t_rgba8unorm;
-texture2d<float, access::write> t_rgba8snorm;
-texture2d<uint, access::write> t_rgba8uint;
-texture2d<int, access::write> t_rgba8sint;
-texture2d<uint, access::write> t_rgba16uint;
-texture2d<int, access::write> t_rgba16sint;
-texture2d<float, access::write> t_rgba16float;
-texture2d<uint, access::write> t_r32uint;
-texture2d<int, access::write> t_r32sint;
-texture2d<float, access::write> t_r32float;
-texture2d<uint, access::write> t_rg32uint;
-texture2d<int, access::write> t_rg32sint;
-texture2d<float, access::write> t_rg32float;
-texture2d<uint, access::write> t_rgba32uint;
-texture2d<int, access::write> t_rgba32sint;
-texture2d<float, access::write> t_rgba32float;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.msl b/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.msl
index ed693ca..9a1e6cb 100644
--- a/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/storage/2d_array.wgsl.expected.ir.msl
@@ -1,23 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture2d_array<float, access::write> t_rgba8unorm;
-texture2d_array<float, access::write> t_rgba8snorm;
-texture2d_array<uint, access::write> t_rgba8uint;
-texture2d_array<int, access::write> t_rgba8sint;
-texture2d_array<uint, access::write> t_rgba16uint;
-texture2d_array<int, access::write> t_rgba16sint;
-texture2d_array<float, access::write> t_rgba16float;
-texture2d_array<uint, access::write> t_r32uint;
-texture2d_array<int, access::write> t_r32sint;
-texture2d_array<float, access::write> t_r32float;
-texture2d_array<uint, access::write> t_rg32uint;
-texture2d_array<int, access::write> t_rg32sint;
-texture2d_array<float, access::write> t_rg32float;
-texture2d_array<uint, access::write> t_rgba32uint;
-texture2d_array<int, access::write> t_rgba32sint;
-texture2d_array<float, access::write> t_rgba32float;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/types/texture/storage/3d.wgsl.expected.ir.msl b/test/tint/types/texture/storage/3d.wgsl.expected.ir.msl
index 805775a..9a1e6cb 100644
--- a/test/tint/types/texture/storage/3d.wgsl.expected.ir.msl
+++ b/test/tint/types/texture/storage/3d.wgsl.expected.ir.msl
@@ -1,23 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-
-texture3d<float, access::write> t_rgba8unorm;
-texture3d<float, access::write> t_rgba8snorm;
-texture3d<uint, access::write> t_rgba8uint;
-texture3d<int, access::write> t_rgba8sint;
-texture3d<uint, access::write> t_rgba16uint;
-texture3d<int, access::write> t_rgba16sint;
-texture3d<float, access::write> t_rgba16float;
-texture3d<uint, access::write> t_r32uint;
-texture3d<int, access::write> t_r32sint;
-texture3d<float, access::write> t_r32float;
-texture3d<uint, access::write> t_rg32uint;
-texture3d<int, access::write> t_rg32sint;
-texture3d<float, access::write> t_rg32float;
-texture3d<uint, access::write> t_rgba32uint;
-texture3d<int, access::write> t_rgba32sint;
-texture3d<float, access::write> t_rgba32float;
-void tint_symbol() {
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertResultSignedness_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index 94e248c..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index 94e248c..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index 94e248c..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index 47c8fbc..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl
index 47c8fbc..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ConvertUintCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Convert
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_1D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_2DArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_2D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_3D_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_CubeArray_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Good_Cube_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_DepthMultisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_Depth_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_ConvertSampleOperand_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_Multisampled_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageFetch_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQueryLevels_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..8b02481 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySamples_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..8b02481 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySamples_UnsignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_Arrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySizeLod_NonArrayed_SignedResult_SignedLevel_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySize_Arrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageQuerySize_NonArrayed_SignedResult_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageRead_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index 94e248c..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index b38060a..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
index 94e248c..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefExplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index 94e248c..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index 94e248c..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
index 94e248c..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingGrad_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index 94e248c..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleExplicitLod_UsingLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_BothDrefAndNonDref_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
index b38060a..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
index 94e248c..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
index b38060a..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_6.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl
index b38060a..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_7.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl
index 94e248c..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_8.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index 94e248c..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index 94e248c..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index 94e248c..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index 94e248c..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..0241c1a 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleGrad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index 94e248c..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..d62b699 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index 94e248c..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index 94e248c..10e5141 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleBias
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
index 28251dc..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_6.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Arity_SpvParserHandleTest_ImageAccessTest_Variable_7.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_SameSignedness_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_ConvertTexelOperand_Signedness_AndWidening_SpvParserHandleTest_ImageAccessTest_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/ImageWrite_OptionalParams_SpvParserHandleTest_ImageAccessTest_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
index 792ab03..6149064 100644
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+texture1d<float, access::sample> x_10;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_10;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.msl
index 792ab03..6149064 100644
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+texture1d<float, access::sample> x_10;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_10;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.msl
index 792ab03..6b7be62 100644
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+texture1d<float, access::write> x_10;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:33: error: program scope variable must reside in constant address space
+texture1d<float, access::write> x_10;
+                                ^
+
diff --git a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.msl
index b38060a..8b02481 100644
--- a/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Multisampled_Only2DNonArrayedIsValid_SpvParserHandleTest_ImageDeclTest_DeclareAndUseHandle_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index 94e248c..3543919 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index 94e248c..d62b699 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index 94e248c..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
index b38060a..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveFloatCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index 94e248c..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index 94e248c..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index 94e248c..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_Arrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/PreserveIntCoords_NonArrayed_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
index 792ab03..ff8fa45 100644
--- a/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+sampler x_10;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:1: error: constant sampler must be declared constexpr
+sampler x_10;
+^
+constexpr 
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.msl
index efdd3b1..44b8dae 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_0.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  uint const x_2 = x_1;
+}
+kernel void tint_symbol(uint x_1_param [[thread_index_in_threadgroup]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.msl
index 7e344ef..19dc07f 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_1.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+  int const x_2 = x_1;
+}
+kernel void tint_symbol(uint x_1_param [[thread_index_in_threadgroup]]) {
+  x_1 = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_1;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.msl
index efdd3b1..7658eae 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_2.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 x_1 = 0u;
+void main_1() {
+  uint3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_threadgroup]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 x_1 = 0u;
+             ^
+program_source:6:15: warning: unused variable 'x_2' [-Wunused-variable]
+  uint3 const x_2 = x_1;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.msl
index 7e344ef..49922e8 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_3.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 x_1 = 0;
+void main_1() {
+  int3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_threadgroup]]) {
+  x_1 = as_type<int3>(x_1_param);
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 x_1 = 0;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  int3 const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.msl
index efdd3b1..2d802fa 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_4.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 x_1 = 0u;
+void main_1() {
+  uint3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_grid]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 x_1 = 0u;
+             ^
+program_source:6:15: warning: unused variable 'x_2' [-Wunused-variable]
+  uint3 const x_2 = x_1;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.msl
index 7e344ef..47e466f 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_5.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 x_1 = 0;
+void main_1() {
+  int3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_grid]]) {
+  x_1 = as_type<int3>(x_1_param);
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 x_1 = 0;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  int3 const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.msl
deleted file mode 100644
index 7e344ef..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_AccessChain_7.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.msl
index efdd3b1..44b8dae 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_0.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  uint const x_2 = x_1;
+}
+kernel void tint_symbol(uint x_1_param [[thread_index_in_threadgroup]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.msl
index 7e344ef..19dc07f 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_1.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+  int const x_2 = x_1;
+}
+kernel void tint_symbol(uint x_1_param [[thread_index_in_threadgroup]]) {
+  x_1 = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_1;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.msl
index efdd3b1..7658eae 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_2.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 x_1 = 0u;
+void main_1() {
+  uint3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_threadgroup]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 x_1 = 0u;
+             ^
+program_source:6:15: warning: unused variable 'x_2' [-Wunused-variable]
+  uint3 const x_2 = x_1;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.msl
index 7e344ef..49922e8 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_3.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 x_1 = 0;
+void main_1() {
+  int3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_threadgroup]]) {
+  x_1 = as_type<int3>(x_1_param);
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 x_1 = 0;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  int3 const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.msl
index efdd3b1..2d802fa 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_4.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 x_1 = 0u;
+void main_1() {
+  uint3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_grid]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 x_1 = 0u;
+             ^
+program_source:6:15: warning: unused variable 'x_2' [-Wunused-variable]
+  uint3 const x_2 = x_1;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.msl
index 7e344ef..47e466f 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_5.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 x_1 = 0;
+void main_1() {
+  int3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_grid]]) {
+  x_1 = as_type<int3>(x_1_param);
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 x_1 = 0;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  int3 const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.msl
deleted file mode 100644
index efdd3b1..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_6.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.msl
deleted file mode 100644
index 7e344ef..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_CopyObject_7.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.msl
index efdd3b1..44b8dae 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_0.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  uint const x_2 = x_1;
+}
+kernel void tint_symbol(uint x_1_param [[thread_index_in_threadgroup]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.msl
index 7e344ef..19dc07f 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_1.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+  int const x_2 = x_1;
+}
+kernel void tint_symbol(uint x_1_param [[thread_index_in_threadgroup]]) {
+  x_1 = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_1;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.msl
index efdd3b1..7658eae 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_2.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 x_1 = 0u;
+void main_1() {
+  uint3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_threadgroup]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 x_1 = 0u;
+             ^
+program_source:6:15: warning: unused variable 'x_2' [-Wunused-variable]
+  uint3 const x_2 = x_1;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.msl
index 7e344ef..49922e8 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_3.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 x_1 = 0;
+void main_1() {
+  int3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_threadgroup]]) {
+  x_1 = as_type<int3>(x_1_param);
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 x_1 = 0;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  int3 const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.msl
index efdd3b1..2d802fa 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_4.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint3 x_1 = 0u;
+void main_1() {
+  uint3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_grid]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint3 x_1 = 0u;
+             ^
+program_source:6:15: warning: unused variable 'x_2' [-Wunused-variable]
+  uint3 const x_2 = x_1;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.msl
index 7e344ef..47e466f 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_5.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int3 x_1 = 0;
+void main_1() {
+  int3 const x_2 = x_1;
+}
+kernel void tint_symbol(uint3 x_1_param [[thread_position_in_grid]]) {
+  x_1 = as_type<int3>(x_1_param);
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 x_1 = 0;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  int3 const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.msl
deleted file mode 100644
index efdd3b1..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_6.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.msl
deleted file mode 100644
index 7e344ef..0000000
--- a/test/tint/unittest/reader/spirv/Samples_SpvModuleScopeVarParserTest_ComputeBuiltin_Load_Direct_7.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,9 +0,0 @@
-SKIP: FAILED
-
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.msl
index b38060a..877ebc6 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.msl
index b38060a..ee65b2d 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.msl
index b38060a..9a1e6cb 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureDimensions
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.msl
index b38060a..c341f8a 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_5.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumLevels
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.msl
index b38060a..8b02481 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_RawImage_Variable_6.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureNumSamples
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_3.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.msl
index b38060a..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_4.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_6.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.msl
index b38060a..d62b699 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_7.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.msl
index b38060a..ca3ca5e 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_8.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompare
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.msl
index b38060a..e9d3747 100644
--- a/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/Samples_SpvParserHandleTest_RegisterHandleUsage_SampledImage_Variable_9.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSampleCompareLevel
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl
index 792ab03..b161ee6 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float x_52;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:19: error: program scope variable must reside in constant address space
+threadgroup float x_52;
+                  ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.msl
index 792ab03..2f1f4a4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 2> x_200 = tint_array<uint, 2>{1u, 2u};
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 2> x_200 = tint_array<uint, 2>{1u, 2u};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.msl
index 792ab03..9a7e534 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 2> x_200 = tint_array<uint, 2>{};
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 2> x_200 = tint_array<uint, 2>{};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.msl
index 152c872..57c0c07 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.msl
@@ -1,22 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:f32 @offset(4)
   field2:array<u32, 2> @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<storage, S, read_write> = var @binding_point(0, 3)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.msl
index efdd3b1..8b257a0 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_ReadReplaced_Vertex.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread float4 x_2 = 0.0f;
+thread float x_900 = 0.0f;
+void main_1() {
+  x_900 = 1.0f;
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+program_source:8:14: error: program scope variable must reside in constant address space
+thread float x_900 = 0.0f;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.msl
index 792ab03..c466e7d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_Write1_IsErased.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl
index 792ab03..c466e7d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.msl
index 792ab03..c466e7d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Loose_WriteViaCopyObjectPriorAccess_Erased.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.msl
index efdd3b1..3bc136b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_ReadReplaced.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float x_900 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  x_900 = 1.0f;
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:14: error: program scope variable must reside in constant address space
+thread float x_900 = 0.0f;
+             ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.msl
index 792ab03..4644812 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_Write1_IsErased.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl
index 792ab03..4644812 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPointSize_WriteViaCopyObjectPostAccessChainErased.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.msl
index 792ab03..4644812 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.msl
index 792ab03..d89d0b8 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_BuiltIn_Position_Initializer.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = float4(1.0f, 2.0f, 3.0f, 4.0f);
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = float4(1.0f, 2.0f, 3.0f, 4.0f);
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.msl
index efdd3b1..7dba87b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  gl_Position = float4(0.0f);
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.msl
index 3440042..17378a1 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_OneAccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  gl_Position[1u] = 0.0f;
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.msl
index 3440042..17378a1 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePositionMember_TwoAccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  gl_Position[1u] = 0.0f;
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.msl
index efdd3b1..7dba87b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinPosition_StorePosition_PerVertexStructOutOfOrderDecl.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  gl_Position = float4(0.0f);
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.msl
index efdd3b1..e28cd5b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BuiltinVertexIndex.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread uint x_2 = 0u;
+thread float4 position_1 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol(uint x_2_param [[]]) {
+  x_2 = x_2_param;
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_2 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:11:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_2_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
index 792ab03..6ae8046 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.msl
index 792ab03..e31977d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
index 792ab03..27ac679 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<int, 1> x_1 = tint_array<int, 1>{14};
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = tint_array<int, 1>{14};
+                          ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.msl
index 792ab03..f947593 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 1> x_1 = tint_array<uint, 1>{2u};
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = tint_array<uint, 1>{2u};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.msl
index 609fca4..86c0be0 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.msl
@@ -1,20 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   field0:mat3x2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl
index 2c35b0a..a5a00d7 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl
@@ -1,22 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:f32 @offset(4)
   field2:array<u32, 2> @offset(8)
 }
 
-%b1 = block {  # root
-  %x_1:ptr<storage, S, read_write> = var @binding_point(3, 9)
+$B1: {  # root
+  %x_1:ptr<storage, S, read_write> = var @binding_point(0, 9)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.msl
index 792ab03..c308d35 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_FragDepth_Out_Initializer.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float x_1_1 [[depth(any)]];
+};
+
+thread float x_1 = 0.0f;
+void main_1() {
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:14: error: program scope variable must reside in constant address space
+thread float x_1 = 0.0f;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.msl
index 7e344ef..26b2fe4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_OppositeSignedness.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.msl
index efdd3b1..d8f55f7 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_Input_SameSignedness.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_4_1 [[position]];
+};
+
+thread uint x_1 = 0u;
+thread float4 x_4 = 0.0f;
+void main_1() {
+  uint const x_2 = x_1;
+}
+vertex main_out tint_symbol(uint x_1_param [[]]) {
+  x_1 = x_1_param;
+  main_1();
+  return {.x_4_1=x_4};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_4 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_1_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.msl
index 28251dc..477924d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Signed.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.msl
index 28251dc..867570d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_In_Unsigned.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = x_1_param;
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.msl
index 792ab03..4f1417f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Signed_Initializer.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<int, 1> x_1 = tint_array<int, 1>{};
+void main_1() {
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=as_type<uint>(x_1[0])};
+}
+program_source:19:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = tint_array<int, 1>{};
+                          ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.msl
index 792ab03..672fbd1 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_BuiltinVar_SampleMask_Out_Unsigned_Initializer.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<uint, 1> x_1 = tint_array<uint, 1>{};
+void main_1() {
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=x_1[0]};
+}
+program_source:19:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = tint_array<uint, 1>{};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.msl
index 28251dc..44b3e4e 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Flat_Fragment_In.spvasm.expected.ir.msl
@@ -1,9 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  float field0;
+  float field1;
+};
+
+thread tint_array<float, 2> x_1 = {};
+thread S x_2 = {};
+void main_1() {
+}
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_2_param, float x_2_param_1) {
+  x_1[0] = x_1_param;
+  x_1[1] = x_1_param_1;
+  x_2.field0 = x_2_param;
+  x_2.field1 = x_2_param_1;
+  main_1();
+}
+program_source:20:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 2> x_1 = {};
+                            ^
+program_source:21:10: error: program scope variable must reside in constant address space
+thread S x_2 = {};
+         ^
+program_source:24:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_2_param, float x_2_param_1) {
+                          ^~~~~~~~~~~~~~~
+program_source:24:44: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_2_param, float x_2_param_1) {
+                                           ^~~~~~~~~~~~~~~~~
+program_source:24:63: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_2_param, float x_2_param_1) {
+                                                              ^~~~~~~~~~~~~~~
+program_source:24:80: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_2_param, float x_2_param_1) {
+                                                                               ^~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl
index 28251dc..3ca8ddf 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  float field0;
+  float field1;
+  float field2;
+  float field3;
+  float field4;
+  float field5;
+};
+
+thread S x_1 = {};
+void main_1() {
+}
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+  x_1.field0 = x_1_param;
+  x_1.field1 = x_1_param_1;
+  x_1.field2 = x_1_param_2;
+  x_1.field3 = x_1_param_3;
+  x_1.field4 = x_1_param_4;
+  x_1.field5 = x_1_param_5;
+  main_1();
+}
+program_source:12:10: error: program scope variable must reside in constant address space
+thread S x_1 = {};
+         ^
+program_source:15:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+                          ^~~~~~~~~~~~~~~
+program_source:15:44: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+                                           ^~~~~~~~~~~~~~~~~
+program_source:15:63: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+                                                              ^~~~~~~~~~~~~~~~~
+program_source:15:82: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+                                                                                 ^~~~~~~~~~~~~~~~~
+program_source:15:101: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+                                                                                                    ^~~~~~~~~~~~~~~~~
+program_source:15:120: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2, float x_1_param_3, float x_1_param_4, float x_1_param_5) {
+                                                                                                                       ^~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.msl
index c1e9400..5810b6d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Flatten_Interpolation_Floating_Fragment_Out.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: S = struct @align(4) {
   field0:f32 @offset(0)
   field1:f32 @offset(4)
   field2:f32 @offset(8)
@@ -18,17 +18,17 @@
   x_1_6:f32 @offset(20), @location(6), @interpolate(linear, sample)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, S, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():main_out {
+  $B3: {
     %4:void = call %main_1
     %5:ptr<private, f32, read_write> = access %x_1, 0u
     %6:f32 = load %5
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.msl
index 3c34d6f..babb809 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_IOLocations.spvasm.expected.ir.msl
@@ -1,24 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: main_out = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
   x_2_1:u32 @offset(0), @location(0), @interpolate(flat)
   x_4_1:u32 @offset(4), @location(6), @interpolate(flat)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, u32, read_write> = var
   %x_2:ptr<private, u32, read_write> = var
   %x_3:ptr<private, u32, read_write> = var
   %x_4:ptr<private, u32, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func(%x_1_param:u32 [@location(0), @interpolate(flat)], %x_3_param:u32 [@location(30), @interpolate(flat)]):main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func(%x_1_param:u32 [@location(0), @interpolate(flat)], %x_3_param:u32 [@location(30), @interpolate(flat)]):main_out {
+  $B3: {
     store %x_1, %x_1_param
     store %x_3, %x_3_param
     %9:void = call %main_1
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.msl
index cf37ab0..fc2046ba 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Flat_Vertex_Output.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: main_out = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
   x_1_1:u32 @offset(0), @location(1), @interpolate(flat)
   x_2_1:vec2<u32> @offset(8), @location(2), @interpolate(flat)
   x_3_1:i32 @offset(16), @location(3), @interpolate(flat)
@@ -10,7 +10,7 @@
   x_8_1:vec4<f32> @offset(48), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, u32, read_write> = var
   %x_2:ptr<private, vec2<u32>, read_write> = var
   %x_3:ptr<private, i32, read_write> = var
@@ -20,13 +20,13 @@
   %x_8:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @vertex func():main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func():main_out {
+  $B3: {
     %10:void = call %main_1
     %11:u32 = load %x_1
     %12:vec2<u32> = load %x_2
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl
index efdd3b1..5b47adb 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_EntryPointWrapping_Interpolation_Floating_Fragment_In.spvasm.expected.ir.msl
@@ -1,9 +1,59 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float x_1 = 0.0f;
+thread float x_2 = 0.0f;
+thread float x_3 = 0.0f;
+thread float x_4 = 0.0f;
+thread float x_5 = 0.0f;
+thread float x_6 = 0.0f;
+void main_1() {
+}
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+  x_1 = x_1_param;
+  x_2 = x_2_param;
+  x_3 = x_3_param;
+  x_4 = x_4_param;
+  x_5 = x_5_param;
+  x_6 = x_6_param;
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float x_1 = 0.0f;
+             ^
+program_source:5:14: error: program scope variable must reside in constant address space
+thread float x_2 = 0.0f;
+             ^
+program_source:6:14: error: program scope variable must reside in constant address space
+thread float x_3 = 0.0f;
+             ^
+program_source:7:14: error: program scope variable must reside in constant address space
+thread float x_4 = 0.0f;
+             ^
+program_source:8:14: error: program scope variable must reside in constant address space
+thread float x_5 = 0.0f;
+             ^
+program_source:9:14: error: program scope variable must reside in constant address space
+thread float x_6 = 0.0f;
+             ^
+program_source:12:27: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+                          ^~~~~~~~~~~~~~~
+program_source:12:44: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+                                           ^~~~~~~~~~~~~~~
+program_source:12:61: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+                                                            ^~~~~~~~~~~~~~~
+program_source:12:78: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+                                                                             ^~~~~~~~~~~~~~~
+program_source:12:95: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+                                                                                              ^~~~~~~~~~~~~~~
+program_source:12:112: error: invalid type 'float' for input declaration in a fragment function
+fragment void tint_symbol(float x_1_param, float x_2_param, float x_3_param, float x_4_param, float x_5_param, float x_6_param) {
+                                                                                                               ^~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.msl
index eaf415d..c60f491 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_FlattenStruct_LocOnMembers.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Communicators = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Communicators = struct @align(16) {
   alice:f32 @offset(0)
   bob:vec4<f32> @offset(16)
 }
@@ -11,19 +11,19 @@
   x_3_2:vec4<f32> @offset(32), @location(11)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, Communicators, read_write> = var
   %x_3:ptr<private, Communicators, read_write> = var
   %x_2:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @vertex func(%x_1_param:f32 [@location(9)], %x_1_param_1:vec4<f32> [@location(11)]):main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func(%x_1_param:f32 [@location(9)], %x_1_param_1:vec4<f32> [@location(11)]):main_out {
+  $B3: {
     %8:ptr<private, f32, read_write> = access %x_1, 0u
     store %8, %x_1_param
     %9:ptr<private, vec4<f32>, read_write> = access %x_1, 1u
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl
index 792ab03..e31977d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.msl
index 28251dc..155c743 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenArray_OneLevel.spvasm.expected.ir.msl
@@ -1,9 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread tint_array<float, 3> x_1 = {};
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2) {
+  x_1[0] = x_1_param;
+  x_1[1] = x_1_param_1;
+  x_1[2] = x_1_param_2;
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:19:29: error: program scope variable must reside in constant address space
+thread tint_array<float, 3> x_1 = {};
+                            ^
+program_source:20:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+program_source:23:29: error: invalid type 'float' for input declaration in a vertex function
+vertex main_out tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2) {
+                            ^~~~~~~~~~~~~~~
+program_source:23:46: error: invalid type 'float' for input declaration in a vertex function
+vertex main_out tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2) {
+                                             ^~~~~~~~~~~~~~~~~
+program_source:23:65: error: invalid type 'float' for input declaration in a vertex function
+vertex main_out tint_symbol(float x_1_param, float x_1_param_1, float x_1_param_2) {
+                                                                ^~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.msl
index 28251dc..3481cc9 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenMatrix.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread float2x4 x_1 = float2x4(0.0f);
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1) {
+  x_1[0] = x_1_param;
+  x_1[1] = x_1_param_1;
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:7:17: error: program scope variable must reside in constant address space
+thread float2x4 x_1 = float2x4(0.0f);
+                ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+program_source:11:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1) {
+                            ^~~~~~~~~~~~~~~~
+program_source:11:47: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1) {
+                                              ^~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.msl
index 28251dc..6587e16 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenNested.spvasm.expected.ir.msl
@@ -1,9 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread tint_array<float2x4, 2> x_1 = {};
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1, float4 x_1_param_2, float4 x_1_param_3) {
+  x_1[0][0] = x_1_param;
+  x_1[0][1] = x_1_param_1;
+  x_1[1][0] = x_1_param_2;
+  x_1[1][1] = x_1_param_3;
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:19:32: error: program scope variable must reside in constant address space
+thread tint_array<float2x4, 2> x_1 = {};
+                               ^
+program_source:20:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+program_source:23:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1, float4 x_1_param_2, float4 x_1_param_3) {
+                            ^~~~~~~~~~~~~~~~
+program_source:23:47: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1, float4 x_1_param_2, float4 x_1_param_3) {
+                                              ^~~~~~~~~~~~~~~~~~
+program_source:23:67: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1, float4 x_1_param_2, float4 x_1_param_3) {
+                                                                  ^~~~~~~~~~~~~~~~~~
+program_source:23:87: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 x_1_param, float4 x_1_param_1, float4 x_1_param_2, float4 x_1_param_3) {
+                                                                                      ^~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl
index 28251dc..37f6774 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Input_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct Communicators {
+  float alice;
+  float4 bob;
+};
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread Communicators x_1 = {};
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol(float x_1_param, float4 x_1_param_1) {
+  x_1.alice = x_1_param;
+  x_1.bob = x_1_param_1;
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:11:22: error: program scope variable must reside in constant address space
+thread Communicators x_1 = {};
+                     ^
+program_source:12:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+program_source:15:29: error: invalid type 'float' for input declaration in a vertex function
+vertex main_out tint_symbol(float x_1_param, float4 x_1_param_1) {
+                            ^~~~~~~~~~~~~~~
+program_source:15:46: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float x_1_param, float4 x_1_param_1) {
+                                             ^~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.msl
index 7e344ef..530ef2f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 position_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.msl
index 7e344ef..530ef2f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 position_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.msl
index 7e344ef..530ef2f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_I32_Load_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 position_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.msl
index efdd3b1..44dc2a7 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread uint x_4 = 0u;
+thread float4 position_1 = 0.0f;
+void main_1() {
+  uint const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = x_4_param;
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_4;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.msl
index efdd3b1..44dc2a7 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread uint x_4 = 0u;
+thread float4 position_1 = 0.0f;
+void main_1() {
+  uint const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = x_4_param;
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_4;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.msl
index efdd3b1..44dc2a7 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InstanceIndex_U32_Load_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 position_1_1 [[position]];
+};
+
+thread uint x_4 = 0u;
+thread float4 position_1 = 0.0f;
+void main_1() {
+  uint const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = x_4_param;
+  main_1();
+  return {.position_1_1=position_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_4;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.msl
index 792ab03..5814a1d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x2 x_200 = float3x2(float2(1.5f, 2.0f), float2(2.0f, 3.0f), float2(3.0f, 4.0f));
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x2 x_200 = float3x2(float2(1.5f, 2.0f), float2(2.0f, 3.0f), float2(3.0f, 4.0f));
+                ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.msl
index 792ab03..93d73d9 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x2 x_200 = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x2 x_200 = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
+                ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.msl
index 58b7620..f6dd7a2 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(8) {
   el:vec2<f32> @offset(0)
 }
 
@@ -8,17 +8,17 @@
   field0:array<strided_arr, 3> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl
index 609fca4..86c0be0 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl
@@ -1,20 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   field0:mat3x2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.msl
index 609fca4..86c0be0 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.msl
@@ -1,20 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
   field0:mat3x2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl
index 792ab03..abd7f35 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float the_counter;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:19: error: program scope variable must reside in constant address space
+threadgroup float the_counter;
+                  ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.msl
index 792ab03..e31977d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.msl
index 792ab03..6740c31 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 1u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 1u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.msl
index 25d539b..3f3ae39 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenArray_OneLevel.spvasm.expected.ir.msl
@@ -1,24 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: main_out = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
   x_1_1:f32 @offset(0), @location(4)
   x_1_2:f32 @offset(4), @location(5)
   x_1_3:f32 @offset(8), @location(6)
   x_2_1:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, array<f32, 3>, read_write> = var
   %x_2:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @vertex func():main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func():main_out {
+  $B3: {
     %5:void = call %main_1
     %6:ptr<private, f32, read_write> = access %x_1, 0i
     %7:f32 = load %6
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.msl
index de939c4..f18b1a9 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenMatrix.spvasm.expected.ir.msl
@@ -1,23 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: main_out = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
   x_1_1:vec4<f32> @offset(0), @location(9)
   x_1_2:vec4<f32> @offset(16), @location(10)
   x_2_1:vec4<f32> @offset(32), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, mat2x4<f32>, read_write> = var
   %x_2:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @vertex func():main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func():main_out {
+  $B3: {
     %5:void = call %main_1
     %6:ptr<private, vec4<f32>, read_write> = access %x_1, 0i
     %7:vec4<f32> = load %6
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl
index cf35c0e..ff6f92b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Output_FlattenStruct_LocOnVariable.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:775 internal compiler error: Communicators = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: Communicators = struct @align(16) {
   alice:f32 @offset(0)
   bob:vec4<f32> @offset(16)
 }
@@ -11,18 +11,18 @@
   x_2_1:vec4<f32> @offset(32), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<private, Communicators, read_write> = var
   %x_2:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @vertex func():main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func():main_out {
+  $B3: {
     %5:void = call %main_1
     %6:ptr<private, f32, read_write> = access %x_1, 0u
     %7:f32 = load %6
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.msl
index 792ab03..1d1579a 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float my_own_private_idaho = 0.0f;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread float my_own_private_idaho = 0.0f;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.msl
index 7e344ef..30d865d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+  int const x_2 = x_1;
+}
+fragment void tint_symbol(uint x_1_param [[sample_id]]) {
+  x_1 = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_1;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.msl
index 7e344ef..30d865d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+  int const x_2 = x_1;
+}
+fragment void tint_symbol(uint x_1_param [[sample_id]]) {
+  x_1 = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_1;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.msl
index 7e344ef..30d865d 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_I32_Load_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int x_1 = 0;
+void main_1() {
+  int const x_2 = x_1;
+}
+fragment void tint_symbol(uint x_1_param [[sample_id]]) {
+  x_1 = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int x_1 = 0;
+           ^
+program_source:6:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_1;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.msl
index efdd3b1..1179f38 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  uint const x_2 = x_1;
+}
+fragment void tint_symbol(uint x_1_param [[sample_id]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.msl
index efdd3b1..1179f38 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  uint const x_2 = x_1;
+}
+fragment void tint_symbol(uint x_1_param [[sample_id]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.msl
index efdd3b1..1179f38 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleId_U32_Load_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  uint const x_2 = x_1;
+}
+fragment void tint_symbol(uint x_1_param [[sample_id]]) {
+  x_1 = x_1_param;
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:6:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_1;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.msl
index 28251dc..73a87d1 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+  int const x_4 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+program_source:18:13: warning: unused variable 'x_4' [-Wunused-variable]
+  int const x_4 = x_1[0];
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.msl
index 28251dc..73a87d1 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+  int const x_4 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+program_source:18:13: warning: unused variable 'x_4' [-Wunused-variable]
+  int const x_4 = x_1[0];
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.msl
index 28251dc..a26b371 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_I32_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+  int const x_3 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = as_type<int>(x_1_param);
+  main_1();
+}
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+program_source:18:13: warning: unused variable 'x_3' [-Wunused-variable]
+  int const x_3 = x_1[0];
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.msl
index 28251dc..cea308f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  uint const x_4 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = x_1_param;
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+program_source:18:14: warning: unused variable 'x_4' [-Wunused-variable]
+  uint const x_4 = x_1[0];
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.msl
index 28251dc..cea308f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  uint const x_4 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = x_1_param;
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+program_source:18:14: warning: unused variable 'x_4' [-Wunused-variable]
+  uint const x_4 = x_1[0];
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.msl
index 28251dc..514dce4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_U32_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  uint const x_3 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = x_1_param;
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+program_source:18:14: warning: unused variable 'x_3' [-Wunused-variable]
+  uint const x_3 = x_1[0];
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.msl
index 28251dc..514dce4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_In_WithStride.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  uint const x_3 = x_1[0];
+}
+fragment void tint_symbol(uint x_1_param [[sample_mask]]) {
+  x_1[0] = x_1_param;
+  main_1();
+}
+program_source:16:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+program_source:18:14: warning: unused variable 'x_3' [-Wunused-variable]
+  uint const x_3 = x_1[0];
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.msl
index 28251dc..6c43e76 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 12;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=as_type<uint>(x_1[0])};
+}
+program_source:19:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.msl
index 28251dc..6c43e76 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 12;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=as_type<uint>(x_1[0])};
+}
+program_source:19:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.msl
index 28251dc..6c43e76 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_I32_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<int, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 12;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=as_type<uint>(x_1[0])};
+}
+program_source:19:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 1> x_1 = {};
+                          ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.msl
index 28251dc..a9c8a36 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 0u;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=x_1[0]};
+}
+program_source:19:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.msl
index 28251dc..a9c8a36 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 0u;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=x_1[0]};
+}
+program_source:19:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.msl
index 28251dc..a9c8a36 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_U32_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 0u;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=x_1[0]};
+}
+program_source:19:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.msl
index 28251dc..a9c8a36 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_SampleMask_Out_WithStride.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct main_out {
+  uint x_1_1 [[sample_mask]];
+};
+
+thread tint_array<uint, 1> x_1 = {};
+void main_1() {
+  x_1[0] = 0u;
+}
+fragment main_out tint_symbol() {
+  main_1();
+  return {.x_1_1=x_1[0]};
+}
+program_source:19:28: error: program scope variable must reside in constant address space
+thread tint_array<uint, 1> x_1 = {};
+                           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.msl
index 792ab03..86d5c10 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool x_1 = true;
+thread bool x_2 = false;
+thread int x_3 = -1;
+thread uint x_4 = 1u;
+thread float x_5 = 1.5f;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool x_1 = true;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool x_2 = false;
+            ^
+program_source:6:12: error: program scope variable must reside in constant address space
+thread int x_3 = -1;
+           ^
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 1u;
+            ^
+program_source:8:14: error: program scope variable must reside in constant address space
+thread float x_5 = 1.5f;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.msl
index 792ab03..ae5c499 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool x_1 = false;
+thread int x_2 = 0;
+thread uint x_3 = 0u;
+thread float x_4 = 0.0f;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread bool x_1 = false;
+            ^
+program_source:5:12: error: program scope variable must reside in constant address space
+thread int x_2 = 0;
+           ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread uint x_3 = 0u;
+            ^
+program_source:7:14: error: program scope variable must reside in constant address space
+thread float x_4 = 0.0f;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.msl
index de19871..a145007 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:f32 @offset(0)
   field1:f32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<storage, S, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.msl
index 4c74815..4e68937 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:f32 @offset(0)
   field1:f32 @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl
index 792ab03..365e656 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  uint field0;
+  float field1;
+  tint_array<uint, 2> field2;
+};
+
+thread S x_200 = S{.field0=1u, .field1=1.5f, .field2=tint_array<uint, 2>{1u, 2u}};
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:21:10: error: program scope variable must reside in constant address space
+thread S x_200 = S{.field0=1u, .field1=1.5f, .field2=tint_array<uint, 2>{1u, 2u}};
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.msl
index e10667b..01adc83 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.msl
@@ -1,22 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:f32 @offset(4)
   field2:array<u32, 2> @offset(8)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_1:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl
index 792ab03..5d0837f 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct S {
+  uint field0;
+  float field1;
+  tint_array<uint, 2> field2;
+};
+
+thread S x_200 = S{};
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:21:10: error: program scope variable must reside in constant address space
+thread S x_200 = S{};
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.msl
index 792ab03..5128b8c 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread bool2 x_200 = bool2(false);
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread bool2 x_200 = bool2(false);
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.msl
index 792ab03..de2c791 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 x_200 = float2(0.0f);
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 x_200 = float2(0.0f);
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.msl
index 792ab03..c10b4e8 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float2 x_200 = float2(1.5f, 2.0f);
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:15: error: program scope variable must reside in constant address space
+thread float2 x_200 = float2(1.5f, 2.0f);
+              ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.msl
index 792ab03..3ecf261 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int2 x_200 = int2(0);
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int2 x_200 = int2(0);
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.msl
index 792ab03..710f436 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint2 x_200 = uint2(0u);
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint2 x_200 = uint2(0u);
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.msl
index 7e344ef..26b2fe4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.msl
index 7e344ef..26b2fe4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.msl
index 7e344ef..26b2fe4 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_I32_Load_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Bitcast
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread int x_4 = 0;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  int const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = as_type<int>(x_4_param);
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:12: error: program scope variable must reside in constant address space
+thread int x_4 = 0;
+           ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:13: warning: unused variable 'x_2' [-Wunused-variable]
+  int const x_2 = x_4;
+            ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.msl
index efdd3b1..465cc9b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_AccessChain.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread uint x_4 = 0u;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  uint const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = x_4_param;
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_4;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.msl
index efdd3b1..465cc9b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread uint x_4 = 0u;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  uint const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = x_4_param;
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_4;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.msl
index efdd3b1..465cc9b 100644
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VertexIndex_U32_Load_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_1_1 [[position]];
+};
+
+thread uint x_4 = 0u;
+thread float4 x_1 = 0.0f;
+void main_1() {
+  uint const x_2 = x_4;
+}
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+  x_4 = x_4_param;
+  main_1();
+  return {.x_1_1=x_1};
+}
+program_source:7:13: error: program scope variable must reside in constant address space
+thread uint x_4 = 0u;
+            ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 x_1 = 0.0f;
+              ^
+program_source:10:14: warning: unused variable 'x_2' [-Wunused-variable]
+  uint const x_2 = x_4;
+             ^
+program_source:12:29: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex main_out tint_symbol(uint x_4_param [[]]) {
+                            ^~~~~~~~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
index efdd3b1..9746a4d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  bool guard10 = true;
+  if (false) {
+    guard10 = false;
+  } else {
+    if (guard10) {
+      if (true) {
+        guard10 = false;
+      }
+      if (guard10) {
+        guard10 = false;
+      }
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
index efdd3b1..ffa9f65 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  bool guard10 = true;
+  if (false) {
+    if (true) {
+      guard10 = false;
+    }
+    if (guard10) {
+      guard10 = false;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.msl
index cdbf128..78425ed 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructHeader.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if false { break; }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:12:10: error: expected '(' after 'if'
+      if false { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.msl
index cdbf128..78425ed 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromContinueConstructTail.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if false { break; }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:12:10: error: expected '(' after 'if'
+      if false { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.msl
index cdbf128..e98865c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.msl
index cdbf128..141bcf5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.msl
index cdbf128..165d2f3 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        if (false) {
+          break;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.msl
index cdbf128..be7a64d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.msl
index cdbf128..f7e927c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.msl
index cdbf128..31012f3 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        if (true) {
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.msl
index cdbf128..5d7fa76 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        continue;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.msl
index cdbf128..2c7e429 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      switch(42u) {
+        case 40u:
+        {
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.msl
index cdbf128..5890bb1 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.msl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      switch(42u) {
+        default:
+        {
+          if (true) {
+            continue;
+          }
+          break;
+        }
+        case 79u:
+        {
+          break;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.msl
index cdbf128..cf1b356 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      switch(42u) {
+        default:
+        {
+          continue;
+        }
+        case 79u:
+        {
+          break;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.msl
index 792ab03..512d8bf 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  if (true) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.msl
index 2b8690e6..aafb266 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      if (false) {
+        if (true) {
+          break;
+        }
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.msl
index 2b8690e6..09c3acb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      if (false) {
+        break;
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.msl
index 2b8690e6..fde6906 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    default:
+    {
+      break;
+    }
+    case 20u:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.msl
index 792ab03..3efab94 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_KillIsDeadEnd.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+thread bool continue_execution = true;
+void main_1() {
+  continue_execution = false;
+}
+fragment void tint_symbol() {
+  main_1();
+  if (!(continue_execution)) {
+    discard_fragment();
+  }
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.msl
index cdbf128..141bcf5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.msl
index cdbf128..be7a64d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.msl
index cdbf128..e98865c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.msl
index cdbf128..5d7fa76 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        continue;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.msl
index cdbf128..41cad46 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      } else {
+        continue;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.msl
index cdbf128..0a60e1a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.msl
index cdbf128..be7a64d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.msl
index cdbf128..5d7fa76 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+        continue;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.msl
index cdbf128..43c9fd8 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.msl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      switch(42u) {
+        case 45u:
+        {
+          break;
+        }
+        case 40u:
+        {
+          break;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.msl
index cdbf128..72755b4 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.msl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      switch(42u) {
+        case 45u:
+        {
+          break;
+        }
+        case 40u:
+        {
+          continue;
+        }
+        default:
+        {
+          break;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.msl
index cdbf128..0a60e1a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.msl
index cdbf128..65ae433 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakIf.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if true { break; }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:12:10: error: expected '(' after 'if'
+      if true { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.msl
index cdbf128..78425ed 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_HasBreakUnless.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if false { break; }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:12:10: error: expected '(' after 'if'
+      if false { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.msl
index cdbf128..f7e927c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.msl
index cdbf128..175cf2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        while(true) {
+          if (true) {
+          } else {
+            break;
+          }
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.msl
index cdbf128..a9ee5984 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.msl
@@ -1,9 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        while(true) {
+          if (true) {
+          } else {
+            break;
+          }
+          if (false) {
+            break;
+          }
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.msl
index cdbf128..b24dc6d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.msl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        while(true) {
+          if (true) {
+          } else {
+            break;
+          }
+          if (false) {
+          } else {
+            break;
+          }
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.msl
index cdbf128..cc2c2b2 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinueBreaks.spvasm.expected.ir.msl
@@ -1,9 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        while(true) {
+          if (true) {
+          } else {
+            break;
+          }
+          if true { break; }
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:18:14: error: expected '(' after 'if'
+          if true { break; }
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.msl
index 2b8690e6..5fc66c6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      if (false) {
+        break;
+      }
+      break;
+    }
+    case 50u:
+    default:
+    {
+      if (false) {
+      } else {
+        break;
+      }
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.msl
index 792ab03..6d4f650 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    if (false) {
+    }
+  } else {
+    if (false) {
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.msl
index 2b8690e6..187f62f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      if (false) {
+      }
+      break;
+    }
+    case 50u:
+    default:
+    {
+      if (false) {
+      }
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.msl
index 792ab03..60a2ca8 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  if (true) {
+    return;
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.msl
index 792ab03..e83434a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  } else {
+    return;
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.msl
index 2b8690e6..b3c78bf 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 30u:
+    {
+      return;
+    }
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.msl
index 2b8690e6..b3c78bf 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 30u:
+    {
+      return;
+    }
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.msl
index 2b8690e6..5d0094e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 40u:
+    {
+      break;
+    }
+    case 20u:
+    {
+      break;
+    }
+    case 30u:
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl
index efdd3b1..b8d2ef0 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if true { break; }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:10:10: error: expected '(' after 'if'
+      if true { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl
index efdd3b1..83119f8 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_MultiBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if false { break; }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:10:10: error: expected '(' after 'if'
+      if false { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl
index efdd3b1..78df30e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnFalse.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl
index efdd3b1..bb63b4d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Back_SingleBlock_LoopBreak_OnTrue.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.msl
index efdd3b1..325db3e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_Forward_Forward_Same.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  var_1 = 2u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.msl
index efdd3b1..92775e8 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_IfBreak_IfBreak_Same.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.msl
index efdd3b1..ac791f1 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnFalse.spvasm.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (true) {
+        var_1 = 2u;
+        if (false) {
+          break;
+        } else {
+          var_1 = 4u;
+          continue;
+        }
+      }
+      var_1 = 3u;
+      var_1 = 4u;
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.msl
index efdd3b1..0ba35db 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Continue_OnTrue.spvasm.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (true) {
+        var_1 = 2u;
+        if (false) {
+          var_1 = 4u;
+          continue;
+        } else {
+          break;
+        }
+      }
+      var_1 = 3u;
+      var_1 = 4u;
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.msl
index efdd3b1..f11023d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnFalse.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      var_1 = 2u;
+      if (false) {
+        break;
+      }
+      var_1 = 3u;
+      var_1 = 4u;
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.msl
index efdd3b1..c382531 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_Forward_OnTrue.spvasm.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      var_1 = 2u;
+      if (false) {
+      } else {
+        break;
+      }
+      var_1 = 3u;
+      var_1 = 4u;
+      continue;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.msl
index efdd3b1..991b423 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_MultiBlock_LoopBreak.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      var_1 = 2u;
+      break;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.msl
index efdd3b1..369d438 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_LoopBreak_SingleBlock_LoopBreak.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      break;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.msl
index efdd3b1..1920aa9 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnFalse.spvasm.expected.ir.msl
@@ -1,9 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      if (false) {
+        break;
+      }
+      var_1 = 30u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 8u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.msl
index efdd3b1..78b9430 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_Forward_OnTrue.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      if (false) {
+      } else {
+        break;
+      }
+      var_1 = 30u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 8u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.msl
index efdd3b1..608fd45 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_LastInCase.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl
index efdd3b1..847475b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_BranchConditional_SwitchBreak_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      if (false) {
+        var_1 = 40u;
+        break;
+      }
+      var_1 = 50u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.msl
index efdd3b1..325db3e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_Forward.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  var_1 = 2u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.msl
index efdd3b1..f413dff 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromElse.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  } else {
+    var_1 = 1u;
+  }
+  var_1 = 2u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.msl
index efdd3b1..6c47222 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_IfBreak_FromThen.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    var_1 = 1u;
+  }
+  var_1 = 2u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.msl
index cdbf128..c2ca74b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromBody.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.msl
index cdbf128..048f51b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_LoopBreak_MultiBlockLoop_FromContinueConstructEnd_Conditional.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if true { break; }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:9:10: error: expected '(' after 'if'
+      if true { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.msl
index efdd3b1..608fd45 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_LastInCase.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl
index efdd3b1..847475b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Branch_SwitchBreak_NotLastInCase.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      if (false) {
+        var_1 = 40u;
+        break;
+      }
+      var_1 = 50u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.msl
index 2b8690e6..45c9ba6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(20u) {
+    case 20u:
+    {
+      if (false) {
+      } else {
+        break;
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
index efdd3b1..7949a67 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  bool guard10 = true;
+  if (false) {
+    var_1 = 2u;
+    guard10 = false;
+  } else {
+    if (guard10) {
+      var_1 = 3u;
+      if (true) {
+        guard10 = false;
+      }
+      if (guard10) {
+        var_1 = 4u;
+        guard10 = false;
+      }
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.msl
index efdd3b1..9da2f13 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThenWithForward_FromElseWithForward_AlsoPremerge.spvasm.expected.ir.msl
@@ -1,9 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  bool guard10 = true;
+  if (false) {
+    var_1 = 2u;
+    if (true) {
+    } else {
+      guard10 = false;
+    }
+    if (guard10) {
+      var_1 = 3u;
+    }
+  } else {
+    if (guard10) {
+      var_1 = 4u;
+      if (true) {
+        guard10 = false;
+      }
+      if (guard10) {
+        var_1 = 5u;
+      }
+    }
+  }
+  if (guard10) {
+    var_1 = 6u;
+    if (false) {
+    } else {
+      guard10 = false;
+    }
+    if (guard10) {
+      var_1 = 7u;
+      guard10 = false;
+    }
+  }
+  var_1 = 8u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
index efdd3b1..73224a6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  bool guard10 = true;
+  if (false) {
+    var_1 = 2u;
+    if (true) {
+      guard10 = false;
+    }
+    if (guard10) {
+      var_1 = 3u;
+      guard10 = false;
+    }
+  } else {
+    if (guard10) {
+      var_1 = 4u;
+      guard10 = false;
+    }
+  }
+  var_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl
index cdbf128..f7e927c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.msl
index efdd3b1..e95dde7 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Else_Premerge.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+  } else {
+    var_1 = 1u;
+  }
+  if (true) {
+    var_1 = 3u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.msl
index efdd3b1..01230eb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Nest_If.spvasm.expected.ir.msl
@@ -1,9 +1,31 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+    var_1 = 1u;
+    if (true) {
+      var_1 = 2u;
+    }
+    var_1 = 3u;
+  } else {
+    var_1 = 4u;
+    if (true) {
+    } else {
+      var_1 = 5u;
+    }
+    var_1 = 6u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.msl
index efdd3b1..28528c9 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_NoThen_Else.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+  } else {
+    var_1 = 1u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.msl
index efdd3b1..7c67b8b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+    var_1 = 1u;
+  } else {
+    var_1 = 2u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.msl
index efdd3b1..7c82786 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Else_Premerge.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+    var_1 = 1u;
+  } else {
+    var_1 = 2u;
+  }
+  if (true) {
+    var_1 = 3u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.msl
index efdd3b1..130801e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_NoElse.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+    var_1 = 1u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.msl
index efdd3b1..24f931f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Then_Premerge.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  if (false) {
+    var_1 = 1u;
+  }
+  if (true) {
+    var_1 = 3u;
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.msl
index 792ab03..f2acce2 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_InsideIf.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+thread bool continue_execution = true;
+void main_1() {
+  if (false) {
+    continue_execution = false;
+  }
+  continue_execution = false;
+}
+fragment void tint_symbol() {
+  main_1();
+  if (!(continue_execution)) {
+    discard_fragment();
+  }
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.msl
index 792ab03..3efab94 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Kill_TopLevel.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+thread bool continue_execution = true;
+void main_1() {
+  continue_execution = false;
+}
+fragment void tint_symbol() {
+  main_1();
+  if (!(continue_execution)) {
+    discard_fragment();
+  }
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.msl
index cdbf128..c2ca74b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyAlwaysBreaks.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.msl
index cdbf128..c4b5587 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+      } else {
+        break;
+      }
+      var_1 = 2u;
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.msl
index cdbf128..4a68870 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromFalse_Early.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+      } else {
+        break;
+      }
+      var_1 = 3u;
+      var_1 = 2u;
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.msl
index cdbf128..fc8bc94 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      var_1 = 2u;
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.msl
index cdbf128..65067ed 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_BodyConditionallyBreaks_FromTrue_Early.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      var_1 = 3u;
+      var_1 = 2u;
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.msl
index cdbf128..6b65e15 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_FalseToBody_TrueBreaks.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+      } else {
+        break;
+      }
+      var_1 = 2u;
+      var_1 = 3u;
+      continue;
+    }
+  }
+  var_1 = 4u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.msl
index cdbf128..82ff151 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_Never.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      break;
+    }
+  }
+  var_1 = 3u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.msl
index efdd3b1..a0d777f 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_FalseBackedge.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+        break;
+      }
+      continue;
+    }
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.msl
index efdd3b1..88c1d20 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_SingleBlock_TrueBackedge.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 0u;
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+  var_1 = 999u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.msl
index cdbf128..6b65e15 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Loop_TrueToBody_FalseBreaks.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      var_1 = 1u;
+      if (false) {
+      } else {
+        break;
+      }
+      var_1 = 2u;
+      var_1 = 3u;
+      continue;
+    }
+  }
+  var_1 = 4u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.msl
index 792ab03..1016bf8 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+uint x_200() {
+  if (false) {
+    return 2u;
+  }
+  return 3u;
+}
+void main_1() {
+  uint const x_11 = x_200();
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:12:14: warning: unused variable 'x_11' [-Wunused-variable]
+  uint const x_11 = x_200();
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.msl
index cdbf128..f5d433e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+uint x_200() {
+  {
+    while(true) {
+      return 2u;
+    }
+  }
+  /* unreachable */
+}
+void main_1() {
+  uint const x_11 = x_200();
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:14:14: warning: unused variable 'x_11' [-Wunused-variable]
+  uint const x_11 = x_200();
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.msl
index 792ab03..104a428 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+uint x_200() {
+  return 2u;
+}
+void main_1() {
+  uint const x_11 = x_200();
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:9:14: warning: unused variable 'x_11' [-Wunused-variable]
+  uint const x_11 = x_200();
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.msl
index 792ab03..e5a47f3 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.msl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    return;
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.msl
index cdbf128..c857a56 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      return;
+    }
+  }
+  /* unreachable */
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.msl
index efdd3b1..1f6278e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_SintValue.spvasm.expected.ir.msl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42) {
+    case -294967296:
+    {
+      var_1 = 40u;
+      break;
+    }
+    case 2000000000:
+    {
+      var_1 = 30u;
+      break;
+    }
+    case 20:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.msl
index efdd3b1..46877d5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_Case_UintValue.spvasm.expected.ir.msl
@@ -1,9 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 50u:
+    {
+      var_1 = 40u;
+      break;
+    }
+    case 2000000000u:
+    {
+      var_1 = 30u;
+      break;
+    }
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.msl
index efdd3b1..d06442a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_NoDupCases.spvasm.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 40u:
+    {
+      var_1 = 40u;
+      break;
+    }
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      var_1 = 30u;
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.msl
index efdd3b1..d03b891 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsCase_WithDupCase.spvasm.expected.ir.msl
@@ -1,9 +1,35 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 40u:
+    {
+      var_1 = 40u;
+      break;
+    }
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    case 30u:
+    default:
+    {
+      var_1 = 30u;
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.msl
index efdd3b1..f540627 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_CasesWithDup.spvasm.expected.ir.msl
@@ -1,9 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 30u:
+    {
+      var_1 = 30u;
+      break;
+    }
+    case 20u:
+    case 40u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.msl
index efdd3b1..83e03bc 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_NoCases.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.msl
index efdd3b1..608fd45 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_OneCase.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.msl
index efdd3b1..296ff46 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Switch_DefaultIsMerge_TwoCases.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  var_1 = 1u;
+  switch(42u) {
+    case 30u:
+    {
+      var_1 = 30u;
+      break;
+    }
+    case 20u:
+    {
+      var_1 = 20u;
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+  var_1 = 7u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.msl
index 2b8690e6..55f028d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(20u) {
+    case 20u:
+    {
+      if (false) {
+        break;
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.msl
index 792ab03..3733ffd 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+uint x_200() {
+  return 0u;
+}
+void main_1() {
+  uint const x_11 = x_200();
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:9:14: warning: unused variable 'x_11' [-Wunused-variable]
+  uint const x_11 = x_200();
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.msl
index 792ab03..e5a47f3 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.msl
@@ -1,9 +1,18 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    return;
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.msl
index cdbf128..c857a56 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      return;
+    }
+  }
+  /* unreachable */
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
index 2b8690e6..45c9ba6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(20u) {
+    case 20u:
+    {
+      if (false) {
+      } else {
+        break;
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.msl
index 792ab03..512d8bf 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  if (true) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.msl
index 792ab03..512d8bf 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  if (true) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.msl
index 792ab03..512d8bf 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  if (true) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.msl
index cdbf128..f7e927c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
index 2b8690e6..55f028d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(20u) {
+    case 20u:
+    {
+      if (false) {
+        break;
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.msl
index 2b8690e6..9202ead 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 200u:
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.msl
index 2b8690e6..2aae9b4 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 200u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.msl
index 2b8690e6..4dc3242 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 200u:
+    case 300u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.msl
index cdbf128..75e0c7d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.msl
index cdbf128..75e0c7d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.msl
index 792ab03..6d4f650 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.msl
@@ -1,9 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    if (false) {
+    }
+  } else {
+    if (false) {
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.msl
index cdbf128..7b2b9e7 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    {
+      while(true) {
+        if (false) {
+        } else {
+          break;
+        }
+        continue;
+      }
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.msl
index cdbf128..7b2b9e7 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    {
+      while(true) {
+        if (false) {
+        } else {
+          break;
+        }
+        continue;
+      }
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.msl
index 2b8690e6..f8423a7 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.msl
@@ -1,9 +1,27 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+    switch(42u) {
+      case 20u:
+      {
+        break;
+      }
+      default:
+      {
+        break;
+      }
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.msl
index cdbf128..0a60e1a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.msl
index cdbf128..0a60e1a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.msl
@@ -1,9 +1,26 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      if (true) {
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.msl
index cdbf128..175cf2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      {
+        while(true) {
+          if (true) {
+          } else {
+            break;
+          }
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.msl
index 2b8690e6..0d9ebc0 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.msl
@@ -1,9 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 50u:
+    {
+      if (false) {
+      }
+      break;
+    }
+    case 20u:
+    {
+      if (false) {
+      }
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.msl
index 2b8690e6..72b1d22 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 30u:
+    {
+      break;
+    }
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.msl
index 2b8690e6..c611a2b 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.msl
@@ -1,9 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  switch(42u) {
+    case 20u:
+    {
+      break;
+    }
+    default:
+    {
+      break;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.msl
index 792ab03..3efab94 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Kill.spvasm.expected.ir.msl
@@ -1,9 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+thread bool continue_execution = true;
+void main_1() {
+  continue_execution = false;
+}
+fragment void tint_symbol() {
+  main_1();
+  if (!(continue_execution)) {
+    discard_fragment();
+  }
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool continue_execution = true;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.msl
index 792ab03..fa708ac 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.msl
@@ -1,9 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.msl
index 792ab03..0282ee5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  if (false) {
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.msl
index cdbf128..8f0e2fb 100644
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.msl
@@ -1,9 +1,24 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint var_1 = 0u;
+void main_1() {
+  {
+    while(true) {
+      if (false) {
+      } else {
+        break;
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint var_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.msl
index efdd3b1..7825db0 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_DefConstruct_DoesNotEncloseAllUses.spvasm.expected.ir.msl
@@ -1,9 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  x_1 = 0u;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      x_1 = 1u;
+      if (false) {
+        break;
+      }
+      x_1 = 3u;
+      if (true) {
+        x_2 = 2u;
+      } else {
+        return;
+      }
+      x_1 = x_2;
+      x_1 = 4u;
+      if false { break; }
+      continue;
+    }
+  }
+  x_1 = 5u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:22:10: error: expected '(' after 'if'
+      if false { break; }
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.msl
index efdd3b1..7bfb0d1 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InFunction.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_200 = 0u;
+void main_1() {
+  uint const x_1 = 1u;
+  if (true) {
+  }
+  x_200 = x_1;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_200 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.msl
index efdd3b1..07175b6 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockIf_InIf.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_200 = 0u;
+void main_1() {
+  if (true) {
+    uint const x_1 = 1u;
+    if (true) {
+    }
+    x_200 = x_1;
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_200 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.msl
index 2b8690e6..bb9b93c 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_CombinatorialNonPointer_Hoisting_DefFirstBlockSwitch_InIf.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_200 = 0u;
+void main_1() {
+  if (true) {
+    uint const x_1 = 1u;
+    switch(1u) {
+      case 0u:
+      {
+        break;
+      }
+      default:
+      {
+        break;
+      }
+    }
+    x_200 = x_1;
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_200 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.msl
index cdbf128..a553db5 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromElseAndThen.spvasm.expected.ir.msl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+thread bool x_7 = false;
+thread bool x_8 = false;
+void main_1() {
+  bool const x_101 = x_7;
+  bool const x_102 = x_8;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      if (x_101) {
+        break;
+      }
+      if (x_102) {
+        x_2 = 0u;
+        x_1 = x_2;
+        continue;
+      } else {
+        x_2 = 1u;
+        x_1 = x_2;
+        continue;
+      }
+      /* unreachable */
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool x_7 = false;
+            ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread bool x_8 = false;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.msl
index cdbf128..cfe0493 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_FromHeaderAndThen.spvasm.expected.ir.msl
@@ -1,9 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+thread bool x_7 = false;
+thread bool x_8 = false;
+void main_1() {
+  bool const x_101 = x_7;
+  bool const x_102 = x_8;
+  {
+    while(true) {
+      uint x_2 = 0u;
+      if (x_101) {
+        break;
+      }
+      x_2 = 0u;
+      if (x_102) {
+        x_2 = 1u;
+        x_1 = x_2;
+        continue;
+      } else {
+        x_1 = x_2;
+        continue;
+      }
+      /* unreachable */
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool x_7 = false;
+            ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread bool x_8 = false;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.msl
index cdbf128..f0271db 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_MultiBlockLoopIndex.spvasm.expected.ir.msl
@@ -1,9 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+thread bool x_7 = false;
+thread bool x_8 = false;
+void main_1() {
+  {
+    while(true) {
+      uint x_2 = 0u;
+      uint x_3 = 0u;
+      bool const x_101 = x_7;
+      bool const x_102 = x_8;
+      x_2 = 0u;
+      x_3 = 1u;
+      if (x_101) {
+        break;
+      }
+      {
+        while(true) {
+          uint x_4 = 0u;
+          if (x_102) {
+            break;
+          }
+          x_4 = (x_2 + 1u);
+          uint const x_3_c30 = x_3;
+          x_2 = x_4;
+          x_3 = x_3_c30;
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool x_7 = false;
+            ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread bool x_8 = false;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.msl
index cdbf128..cf4d222 100644
--- a/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserFunctionVarTest_EmitStatement_Phi_SingleBlockLoopIndex.spvasm.expected.ir.msl
@@ -1,9 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+thread bool x_7 = false;
+thread bool x_8 = false;
+void main_1() {
+  {
+    while(true) {
+      uint x_2 = 0u;
+      uint x_3 = 0u;
+      bool const x_101 = x_7;
+      bool const x_102 = x_8;
+      x_2 = 0u;
+      x_3 = 1u;
+      if (x_101) {
+        break;
+      }
+      {
+        while(true) {
+          uint const x_3_c20 = x_3;
+          x_2 = (x_2 + 1u);
+          x_3 = x_3_c20;
+          if (x_102) {
+            break;
+          }
+          continue;
+        }
+      }
+      continue;
+    }
+  }
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+program_source:5:13: error: program scope variable must reside in constant address space
+thread bool x_7 = false;
+            ^
+program_source:6:13: error: program scope variable must reside in constant address space
+thread bool x_8 = false;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl
index 792ab03..4cae946 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+sampler x_10;
+texture1d<float, access::sample> x_20;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:1: error: constant sampler must be declared constexpr
+sampler x_10;
+^
+constexpr 
+program_source:5:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_20;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.msl
index 792ab03..4cae946 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+sampler x_10;
+texture1d<float, access::sample> x_20;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:1: error: constant sampler must be declared constexpr
+sampler x_10;
+^
+constexpr 
+program_source:5:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_20;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.msl
index 792ab03..4cae946 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+sampler x_10;
+texture1d<float, access::sample> x_20;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:1: error: constant sampler must be declared constexpr
+sampler x_10;
+^
+constexpr 
+program_source:5:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_20;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.msl
index 792ab03..4cae946 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+sampler x_10;
+texture1d<float, access::sample> x_20;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:1: error: constant sampler must be declared constexpr
+sampler x_10;
+^
+constexpr 
+program_source:5:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_20;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.msl
index 792ab03..4cae946 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+sampler x_10;
+texture1d<float, access::sample> x_20;
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:1: error: constant sampler must be declared constexpr
+sampler x_10;
+^
+constexpr 
+program_source:5:34: error: program scope variable must reside in constant address space
+texture1d<float, access::sample> x_20;
+                                 ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.msl
index b38060a..3543919 100644
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserHandleTest_NeverGenerateConstDeclForHandle_UseVariableDirectly.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::CoreBuiltinCall
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureSample
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.msl
index c3e6052a..d0e3ec7 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromAccessChain.spvasm.expected.ir.msl
@@ -1,24 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   first:u32 @offset(0)
   rtarr:array<u32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, array<u32>, read_write> = access %myvar, 1u
-    %x_1:u32 = arrayLength %3
+    %4:u32 = arrayLength %3
+    %x_1:u32 = let %4
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
-    %6:void = call %main_1
+%tint_symbol = @fragment func():void {
+  $B3: {
+    %7:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.msl
index c3e6052a..d0e3ec7 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_ArrayLength_FromVar.spvasm.expected.ir.msl
@@ -1,24 +1,25 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   first:u32 @offset(0)
   rtarr:array<u32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, array<u32>, read_write> = access %myvar, 1u
-    %x_1:u32 = arrayLength %3
+    %4:u32 = arrayLength %3
+    %x_1:u32 = let %4
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
-    %6:void = call %main_1
+%tint_symbol = @fragment func():void {
+  $B3: {
+    %7:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.msl
index 28251dc..157278d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Array.spvasm.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x4 myvar = float3x4(0.0f);
+void main_1() {
+  myvar[2u] = float4(42.0f);
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x4 myvar = float3x4(0.0f);
+                ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.msl
index 28251dc..ebc2e6e 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Compound_Matrix_Vector.spvasm.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x4 myvar = float3x4(0.0f);
+void main_1() {
+  myvar[2u][3u] = 42.0f;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x4 myvar = float3x4(0.0f);
+                ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.msl
index 2e88a5f..75c2765 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_DereferenceBase.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+void x_200(thread uint2* const x_1) {
+  uint const x_3 = x_1[0u];
+}
+void main_1() {
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:5:14: error: cannot initialize a variable of type 'const uint' (aka 'const unsigned int') with an lvalue of type 'uint2' (vector of 2 'unsigned int' values)
+  uint const x_3 = x_1[0u];
+             ^     ~~~~~~~
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.msl
index 28251dc..157278d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Matrix.spvasm.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread float3x4 myvar = float3x4(0.0f);
+void main_1() {
+  myvar[2u] = float4(42.0f);
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float3x4 myvar = float3x4(0.0f);
+                ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.msl
index 28251dc..54af741 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct.spvasm.expected.ir.msl
@@ -1,9 +1,20 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  float field0;
+  float age;
+};
+
+thread S myvar = {};
+void main_1() {
+  myvar.age = 42.0f;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:8:10: error: program scope variable must reside in constant address space
+thread S myvar = {};
+         ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.msl
index 28251dc..0d90226 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_DifferOnlyMemberName.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  float field0;
+  float age;
+};
+struct S_1 {
+  float field0;
+  float ancientness;
+};
+
+thread S myvar = {};
+thread S_1 myvar2 = {};
+void main_1() {
+  myvar.age = 42.0f;
+  myvar2.ancientness = 420.0f;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:12:10: error: program scope variable must reside in constant address space
+thread S myvar = {};
+         ^
+program_source:13:12: error: program scope variable must reside in constant address space
+thread S_1 myvar2 = {};
+           ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.msl
index 05a514a..9a4bd54 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_Struct_RuntimeArray.spvasm.expected.ir.msl
@@ -1,23 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:f32 @offset(0)
   age:array<f32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, f32, read_write> = access %myvar, 1u, 2u
     store %3, 42.0f
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %5:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.msl
index 2e88a5f..0d8d319 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorNonConstIndex.spvasm.expected.ir.msl
@@ -1,9 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint4 myvar = 0u;
+thread uint4 x_10 = 0u;
+void main_1() {
+  uint const a_dynamic_index = x_10[2u];
+  myvar[a_dynamic_index] = 42u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 myvar = 0u;
+             ^
+program_source:5:14: error: program scope variable must reside in constant address space
+thread uint4 x_10 = 0u;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.msl
index 3440042..366cfc3 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_AccessChain_VectorSwizzle.spvasm.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::StoreVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint4 myvar = 0u;
+void main_1() {
+  myvar[2u] = 42u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:14: error: program scope variable must reside in constant address space
+thread uint4 myvar = 0u;
+             ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.msl
index efdd3b1..80b39e4 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_CopyMemory_Scalar_Function_To_Private.spvasm.expected.ir.msl
@@ -1,9 +1,17 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_2 = 0u;
+void main_1() {
+  uint x_1 = 0u;
+  x_2 = x_1;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_2 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.msl
index efdd3b1..fb8955a 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_EmitStatement_StoreToModuleScopeVar.spvasm.expected.ir.msl
@@ -1,9 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread uint x_1 = 0u;
+void main_1() {
+  x_1 = 42u;
+}
+fragment void tint_symbol() {
+  main_1();
+}
+program_source:4:13: error: program scope variable must reside in constant address space
+thread uint x_1 = 0u;
+            ^
+
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.msl
index a81061d..8800a72 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_Cascaded.spvasm.expected.ir.msl
@@ -1,23 +1,23 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:array<u32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, u32, read_write> = access %myvar, 1u, 1u
     store %3, 0u
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %5:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.msl
index 6d440b6..690eeb2 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded.spvasm.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:array<u32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, u32, read_write> = access %myvar, 0u
     store %3, 0u
     %4:ptr<storage, u32, read_write> = access %myvar, 1u, 1u
@@ -18,8 +18,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %6:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.msl
index 6d440b6..690eeb2 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_ThroughAccessChain_NonCascaded_InBoundsAccessChain.spvasm.expected.ir.msl
@@ -1,16 +1,16 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:array<u32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, u32, read_write> = access %myvar, 0u
     store %3, 0u
     %4:ptr<storage, u32, read_write> = access %myvar, 1u, 1u
@@ -18,8 +18,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %6:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl
index 2cf4cf2..e543add 100644
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl
@@ -1,21 +1,21 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:u32 @offset(0)
   field1:array<u32> @offset(4)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     ret
   }
 }
-%tint_symbol = @fragment func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @fragment func():void {
+  $B3: {
     %4:void = call %main_1
     ret
   }
diff --git a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.msl
index 792ab03..c466e7d 100644
--- a/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.msl
+++ b/test/tint/unittest/reader/spirv/SpvParserTest_EmitFunctions_Function_EntryPoint_Vertex.spvasm.expected.ir.msl
@@ -1,9 +1,19 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 x_2_1 [[position]];
+};
+
+thread float4 x_2 = 0.0f;
+void main_1() {
+}
+vertex main_out tint_symbol() {
+  main_1();
+  return {.x_2_1=x_2};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 x_2 = 0.0f;
+              ^
+
diff --git a/test/tint/var/inferred/global.wgsl.expected.ir.msl b/test/tint/var/inferred/global.wgsl.expected.ir.msl
index b147a04..d60fbc5 100644
--- a/test/tint/var/inferred/global.wgsl.expected.ir.msl
+++ b/test/tint/var/inferred/global.wgsl.expected.ir.msl
@@ -34,5 +34,118 @@
 thread tint_array<float, 10> v14 = tint_array<float, 10>{};
 thread int3 v15 = int3(1, 2, 3);
 thread float3 v16 = float3(1.0f, 2.0f, 3.0f);
-void f() {
+kernel void f() {
+  int const l1 = v1;
+  uint const l2 = v2;
+  float const l3 = v3;
+  int3 const l4 = v4;
+  uint3 const l5 = v5;
+  float3 const l6 = v6;
+  MyStruct const l7 = v7;
+  tint_array<float, 10> const l8 = v8;
+  int const l9 = v9;
+  uint const l10 = v10;
+  float const l11 = v11;
+  MyStruct const l12 = v12;
+  MyStruct const l13 = v13;
+  tint_array<float, 10> const l14 = v14;
+  int3 const l15 = v15;
+  float3 const l16 = v16;
 }
+program_source:19:12: error: program scope variable must reside in constant address space
+thread int v1 = 1;
+           ^
+program_source:20:13: error: program scope variable must reside in constant address space
+thread uint v2 = 1u;
+            ^
+program_source:21:14: error: program scope variable must reside in constant address space
+thread float v3 = 1.0f;
+             ^
+program_source:22:13: error: program scope variable must reside in constant address space
+thread int3 v4 = int3(1);
+            ^
+program_source:23:14: error: program scope variable must reside in constant address space
+thread uint3 v5 = uint3(1u, 2u, 3u);
+             ^
+program_source:24:15: error: program scope variable must reside in constant address space
+thread float3 v6 = float3(1.0f, 2.0f, 3.0f);
+              ^
+program_source:25:17: error: program scope variable must reside in constant address space
+thread MyStruct v7 = MyStruct{.f1=1.0f};
+                ^
+program_source:26:30: error: program scope variable must reside in constant address space
+thread tint_array<float, 10> v8 = tint_array<float, 10>{};
+                             ^
+program_source:27:12: error: program scope variable must reside in constant address space
+thread int v9 = 0;
+           ^
+program_source:28:13: error: program scope variable must reside in constant address space
+thread uint v10 = 0u;
+            ^
+program_source:29:14: error: program scope variable must reside in constant address space
+thread float v11 = 0.0f;
+             ^
+program_source:30:17: error: program scope variable must reside in constant address space
+thread MyStruct v12 = MyStruct{};
+                ^
+program_source:31:17: error: program scope variable must reside in constant address space
+thread MyStruct v13 = MyStruct{};
+                ^
+program_source:32:30: error: program scope variable must reside in constant address space
+thread tint_array<float, 10> v14 = tint_array<float, 10>{};
+                             ^
+program_source:33:13: error: program scope variable must reside in constant address space
+thread int3 v15 = int3(1, 2, 3);
+            ^
+program_source:34:15: error: program scope variable must reside in constant address space
+thread float3 v16 = float3(1.0f, 2.0f, 3.0f);
+              ^
+program_source:36:13: warning: unused variable 'l1' [-Wunused-variable]
+  int const l1 = v1;
+            ^
+program_source:37:14: warning: unused variable 'l2' [-Wunused-variable]
+  uint const l2 = v2;
+             ^
+program_source:38:15: warning: unused variable 'l3' [-Wunused-variable]
+  float const l3 = v3;
+              ^
+program_source:39:14: warning: unused variable 'l4' [-Wunused-variable]
+  int3 const l4 = v4;
+             ^
+program_source:40:15: warning: unused variable 'l5' [-Wunused-variable]
+  uint3 const l5 = v5;
+              ^
+program_source:41:16: warning: unused variable 'l6' [-Wunused-variable]
+  float3 const l6 = v6;
+               ^
+program_source:42:18: warning: unused variable 'l7' [-Wunused-variable]
+  MyStruct const l7 = v7;
+                 ^
+program_source:43:31: warning: unused variable 'l8' [-Wunused-variable]
+  tint_array<float, 10> const l8 = v8;
+                              ^
+program_source:44:13: warning: unused variable 'l9' [-Wunused-variable]
+  int const l9 = v9;
+            ^
+program_source:45:14: warning: unused variable 'l10' [-Wunused-variable]
+  uint const l10 = v10;
+             ^
+program_source:46:15: warning: unused variable 'l11' [-Wunused-variable]
+  float const l11 = v11;
+              ^
+program_source:47:18: warning: unused variable 'l12' [-Wunused-variable]
+  MyStruct const l12 = v12;
+                 ^
+program_source:48:18: warning: unused variable 'l13' [-Wunused-variable]
+  MyStruct const l13 = v13;
+                 ^
+program_source:49:31: warning: unused variable 'l14' [-Wunused-variable]
+  tint_array<float, 10> const l14 = v14;
+                              ^
+program_source:50:14: warning: unused variable 'l15' [-Wunused-variable]
+  int3 const l15 = v15;
+             ^
+program_source:51:16: warning: unused variable 'l16' [-Wunused-variable]
+  float3 const l16 = v16;
+               ^
+
diff --git a/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl
new file mode 100644
index 0000000..ff8cfd2
--- /dev/null
+++ b/test/tint/var/initialization/function/nested_structs.wgsl.expected.ir.msl
@@ -0,0 +1,39 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S1 = struct @align(4) {
+  i:i32 @offset(0)
+}
+
+S2 = struct @align(4) {
+  s1:S1 @offset(0)
+}
+
+S3 = struct @align(4) {
+  s2:S2 @offset(0)
+}
+
+$B1: {  # root
+  %out:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+}
+
+%f = func(%s3:S3):i32 {
+  $B2: {
+    %4:i32 = access %s3, 0u, 0u, 0u
+    ret %4
+  }
+}
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %6:i32 = call %f, S3(S2(S1(42i)))
+    store %out, %6
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl
index eec5fd3..9f98115 100644
--- a/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/array/array_i32.wgsl.expected.ir.msl
@@ -17,7 +17,20 @@
 
 thread tint_array<tint_array<int, 3>, 2> zero = {};
 thread tint_array<tint_array<int, 3>, 2> init = tint_array<tint_array<int, 3>, 2>{tint_array<int, 3>{1, 2, 3}, tint_array<int, 3>{4, 5, 6}};
-void tint_symbol() {
+kernel void tint_symbol() {
   tint_array<tint_array<int, 3>, 2> v0 = zero;
   tint_array<tint_array<int, 3>, 2> v1 = init;
 }
+program_source:16:42: error: program scope variable must reside in constant address space
+thread tint_array<tint_array<int, 3>, 2> zero = {};
+                                         ^
+program_source:17:42: error: program scope variable must reside in constant address space
+thread tint_array<tint_array<int, 3>, 2> init = tint_array<tint_array<int, 3>, 2>{tint_array<int, 3>{1, 2, 3}, tint_array<int, 3>{4, 5, 6}};
+                                         ^
+program_source:19:37: warning: unused variable 'v0' [-Wunused-variable]
+  tint_array<tint_array<int, 3>, 2> v0 = zero;
+                                    ^
+program_source:20:37: warning: unused variable 'v1' [-Wunused-variable]
+  tint_array<tint_array<int, 3>, 2> v1 = init;
+                                    ^
+
diff --git a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl
index c1da198..92d7aa1 100644
--- a/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/array/i32.wgsl.expected.ir.msl
@@ -17,7 +17,20 @@
 
 thread tint_array<int, 3> zero = {};
 thread tint_array<int, 3> init = tint_array<int, 3>{1, 2, 3};
-void tint_symbol() {
+kernel void tint_symbol() {
   tint_array<int, 3> v0 = zero;
   tint_array<int, 3> v1 = init;
 }
+program_source:16:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 3> zero = {};
+                          ^
+program_source:17:27: error: program scope variable must reside in constant address space
+thread tint_array<int, 3> init = tint_array<int, 3>{1, 2, 3};
+                          ^
+program_source:19:22: warning: unused variable 'v0' [-Wunused-variable]
+  tint_array<int, 3> v0 = zero;
+                     ^
+program_source:20:22: warning: unused variable 'v1' [-Wunused-variable]
+  tint_array<int, 3> v1 = init;
+                     ^
+
diff --git a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
index 187732e..13c597d 100644
--- a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
@@ -4,5 +4,9 @@
 using namespace metal;
 
 thread float2x3 v = float2x3(0.0f);
-void tint_symbol() {
+kernel void tint_symbol() {
 }
+program_source:4:17: error: program scope variable must reside in constant address space
+thread float2x3 v = float2x3(0.0f);
+                ^
+
diff --git a/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl
new file mode 100644
index 0000000..35028b3
--- /dev/null
+++ b/test/tint/var/initialization/private/nested_structs.wgsl.expected.ir.msl
@@ -0,0 +1,35 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S1 = struct @align(4) {
+  i:i32 @offset(0)
+}
+
+S2 = struct @align(4) {
+  s1:S1 @offset(0)
+}
+
+S3 = struct @align(4) {
+  s2:S2 @offset(0)
+}
+
+$B1: {  # root
+  %P:ptr<private, S3, read_write> = var, S3(S2(S1(42i)))
+  %out:ptr<storage, i32, read_write> = var @binding_point(0, 0)
+}
+
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B2: {
+    %4:ptr<private, i32, read_write> = access %P, 0u, 0u, 0u
+    %5:i32 = load %4
+    store %out, %5
+    ret
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
index 2a27538..65ac9c4 100644
--- a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
@@ -4,5 +4,9 @@
 using namespace metal;
 
 thread int v = 0;
-void tint_symbol() {
+kernel void tint_symbol() {
 }
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int v = 0;
+           ^
+
diff --git a/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl b/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
index aeed8b1..9550c53 100644
--- a/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
@@ -8,5 +8,9 @@
 };
 
 thread S v = {};
-void tint_symbol() {
+kernel void tint_symbol() {
 }
+program_source:8:10: error: program scope variable must reside in constant address space
+thread S v = {};
+         ^
+
diff --git a/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl b/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
index cdca7cd..b18e5a5 100644
--- a/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
@@ -4,5 +4,9 @@
 using namespace metal;
 
 thread int3 v = 0;
-void tint_symbol() {
+kernel void tint_symbol() {
 }
+program_source:4:13: error: program scope variable must reside in constant address space
+thread int3 v = 0;
+            ^
+
diff --git a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.msl b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.msl
index 031bb7c..3fa6a4b 100644
--- a/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/workgroup/array/array_i32.wgsl.expected.ir.msl
@@ -1,21 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-
-threadgroup tint_array<tint_array<int, 3>, 2> zero;
-void tint_symbol() {
-  tint_array<tint_array<int, 3>, 2> v = zero;
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.msl b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.msl
index 32c5bf6..3fa6a4b 100644
--- a/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/workgroup/array/i32.wgsl.expected.ir.msl
@@ -1,21 +1,9 @@
 SKIP: FAILED
 
-#include <metal_stdlib>
-using namespace metal;
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-
-threadgroup tint_array<int, 3> zero;
-void tint_symbol() {
-  tint_array<int, 3> v = zero;
-}
+../../src/tint/lang/msl/writer/printer/printer.cc:388 internal compiler error: Switch() matched no cases. Type: tint::core::ir::BlockParam
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.msl b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.msl
index c034870..a1c80e0 100644
--- a/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/workgroup/matrix.wgsl.expected.ir.msl
@@ -4,5 +4,23 @@
 using namespace metal;
 
 threadgroup float2x3 v;
-void tint_symbol() {
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    v = float2x3(float3(0.0f), float3(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
 }
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x3 v;
+                     ^
+program_source:6:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:6:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:6:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.msl b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.msl
index e655faa..e1f46e9 100644
--- a/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/workgroup/scalar.wgsl.expected.ir.msl
@@ -4,5 +4,27 @@
 using namespace metal;
 
 threadgroup int v;
-void tint_symbol() {
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    v = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  int const i = v;
 }
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int v;
+                ^
+program_source:6:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:6:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:6:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:10:13: warning: unused variable 'i' [-Wunused-variable]
+  int const i = v;
+            ^
+
diff --git a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.msl b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.msl
index 90e81f0..6655af9 100644
--- a/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/workgroup/struct.wgsl.expected.ir.msl
@@ -8,5 +8,23 @@
 };
 
 threadgroup S v;
-void tint_symbol() {
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    v = S{};
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
 }
+program_source:8:15: error: program scope variable must reside in constant address space
+threadgroup S v;
+              ^
+program_source:10:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:10:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:10:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.msl b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.msl
index b55a175..a8308b3 100644
--- a/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/workgroup/vector.wgsl.expected.ir.msl
@@ -4,5 +4,23 @@
 using namespace metal;
 
 threadgroup int3 v;
-void tint_symbol() {
+kernel void tint_symbol(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    v = int3(0);
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
 }
+program_source:4:18: error: program scope variable must reside in constant address space
+threadgroup int3 v;
+                 ^
+program_source:6:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:6:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:6:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/var/uses/instance_index.wgsl.expected.ir.msl b/test/tint/var/uses/instance_index.wgsl.expected.ir.msl
new file mode 100644
index 0000000..69f37a7
--- /dev/null
+++ b/test/tint/var/uses/instance_index.wgsl.expected.ir.msl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+#include <metal_stdlib>
+using namespace metal;
+
+vertex float4 tint_symbol(uint b [[]]) {
+  return float4(float(b));
+}
+program_source:4:27: error: invalid type 'uint' (aka 'unsigned int') for input declaration in a vertex function
+vertex float4 tint_symbol(uint b [[]]) {
+                          ^~~~~~
+
diff --git a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.msl b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.msl
index 28251dc..81f00cc 100644
--- a/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.msl
+++ b/test/tint/var/uses/many_workgroup_vars.wgsl.expected.ir.msl
@@ -1,9 +1,621 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup float2x2 m00;
+threadgroup float2x2 m01;
+threadgroup float2x2 m02;
+threadgroup float2x2 m03;
+threadgroup float2x2 m04;
+threadgroup float2x2 m05;
+threadgroup float2x2 m06;
+threadgroup float2x2 m07;
+threadgroup float2x2 m08;
+threadgroup float2x2 m09;
+threadgroup float2x2 m10;
+threadgroup float2x2 m11;
+threadgroup float2x2 m12;
+threadgroup float2x2 m13;
+threadgroup float2x2 m14;
+threadgroup float2x2 m15;
+threadgroup float2x2 m16;
+threadgroup float2x2 m17;
+threadgroup float2x2 m18;
+threadgroup float2x2 m19;
+threadgroup float2x2 m20;
+threadgroup float2x2 m21;
+threadgroup float2x2 m22;
+threadgroup float2x2 m23;
+threadgroup float2x2 m24;
+threadgroup float2x2 m25;
+threadgroup float2x2 m26;
+threadgroup float2x2 m27;
+threadgroup float2x2 m28;
+threadgroup float2x2 m29;
+threadgroup float2x2 m30;
+threadgroup float2x2 m31;
+threadgroup float2x2 m32;
+threadgroup float2x2 m33;
+threadgroup float2x2 m34;
+threadgroup float2x2 m35;
+threadgroup float2x2 m36;
+threadgroup float2x2 m37;
+threadgroup float2x2 m38;
+threadgroup float2x2 m39;
+threadgroup float2x2 m40;
+threadgroup float2x2 m41;
+threadgroup float2x2 m42;
+threadgroup float2x2 m43;
+threadgroup float2x2 m44;
+threadgroup float2x2 m45;
+threadgroup float2x2 m46;
+threadgroup float2x2 m47;
+threadgroup float2x2 m48;
+threadgroup float2x2 m49;
+threadgroup float2x2 m50;
+threadgroup float2x2 m51;
+threadgroup float2x2 m52;
+threadgroup float2x2 m53;
+threadgroup float2x2 m54;
+threadgroup float2x2 m55;
+threadgroup float2x2 m56;
+threadgroup float2x2 m57;
+threadgroup float2x2 m58;
+threadgroup float2x2 m59;
+threadgroup float2x2 m60;
+threadgroup float2x2 m61;
+threadgroup float2x2 m62;
+threadgroup float2x2 m63;
+threadgroup float2x2 m64;
+threadgroup float2x2 m65;
+threadgroup float2x2 m66;
+threadgroup float2x2 m67;
+threadgroup float2x2 m68;
+threadgroup float2x2 m69;
+threadgroup float2x2 m70;
+threadgroup float2x2 m71;
+threadgroup float2x2 m72;
+threadgroup float2x2 m73;
+threadgroup float2x2 m74;
+threadgroup float2x2 m75;
+threadgroup float2x2 m76;
+threadgroup float2x2 m77;
+threadgroup float2x2 m78;
+threadgroup float2x2 m79;
+threadgroup float2x2 m80;
+threadgroup float2x2 m81;
+threadgroup float2x2 m82;
+threadgroup float2x2 m83;
+threadgroup float2x2 m84;
+threadgroup float2x2 m85;
+threadgroup float2x2 m86;
+threadgroup float2x2 m87;
+threadgroup float2x2 m88;
+threadgroup float2x2 m89;
+threadgroup float2x2 m90;
+threadgroup float2x2 m91;
+threadgroup float2x2 m92;
+threadgroup float2x2 m93;
+threadgroup float2x2 m94;
+threadgroup float2x2 m95;
+threadgroup float2x2 m96;
+threadgroup float2x2 m97;
+threadgroup float2x2 m98;
+threadgroup float2x2 m99;
+kernel void tint_symbol(uint idx [[thread_index_in_threadgroup]]) {
+  if ((idx == 0u)) {
+    m00 = float2x2(float2(0.0f), float2(0.0f));
+    m01 = float2x2(float2(0.0f), float2(0.0f));
+    m02 = float2x2(float2(0.0f), float2(0.0f));
+    m03 = float2x2(float2(0.0f), float2(0.0f));
+    m04 = float2x2(float2(0.0f), float2(0.0f));
+    m05 = float2x2(float2(0.0f), float2(0.0f));
+    m06 = float2x2(float2(0.0f), float2(0.0f));
+    m07 = float2x2(float2(0.0f), float2(0.0f));
+    m08 = float2x2(float2(0.0f), float2(0.0f));
+    m09 = float2x2(float2(0.0f), float2(0.0f));
+    m10 = float2x2(float2(0.0f), float2(0.0f));
+    m11 = float2x2(float2(0.0f), float2(0.0f));
+    m12 = float2x2(float2(0.0f), float2(0.0f));
+    m13 = float2x2(float2(0.0f), float2(0.0f));
+    m14 = float2x2(float2(0.0f), float2(0.0f));
+    m15 = float2x2(float2(0.0f), float2(0.0f));
+    m16 = float2x2(float2(0.0f), float2(0.0f));
+    m17 = float2x2(float2(0.0f), float2(0.0f));
+    m18 = float2x2(float2(0.0f), float2(0.0f));
+    m19 = float2x2(float2(0.0f), float2(0.0f));
+    m20 = float2x2(float2(0.0f), float2(0.0f));
+    m21 = float2x2(float2(0.0f), float2(0.0f));
+    m22 = float2x2(float2(0.0f), float2(0.0f));
+    m23 = float2x2(float2(0.0f), float2(0.0f));
+    m24 = float2x2(float2(0.0f), float2(0.0f));
+    m25 = float2x2(float2(0.0f), float2(0.0f));
+    m26 = float2x2(float2(0.0f), float2(0.0f));
+    m27 = float2x2(float2(0.0f), float2(0.0f));
+    m28 = float2x2(float2(0.0f), float2(0.0f));
+    m29 = float2x2(float2(0.0f), float2(0.0f));
+    m30 = float2x2(float2(0.0f), float2(0.0f));
+    m31 = float2x2(float2(0.0f), float2(0.0f));
+    m32 = float2x2(float2(0.0f), float2(0.0f));
+    m33 = float2x2(float2(0.0f), float2(0.0f));
+    m34 = float2x2(float2(0.0f), float2(0.0f));
+    m35 = float2x2(float2(0.0f), float2(0.0f));
+    m36 = float2x2(float2(0.0f), float2(0.0f));
+    m37 = float2x2(float2(0.0f), float2(0.0f));
+    m38 = float2x2(float2(0.0f), float2(0.0f));
+    m39 = float2x2(float2(0.0f), float2(0.0f));
+    m40 = float2x2(float2(0.0f), float2(0.0f));
+    m41 = float2x2(float2(0.0f), float2(0.0f));
+    m42 = float2x2(float2(0.0f), float2(0.0f));
+    m43 = float2x2(float2(0.0f), float2(0.0f));
+    m44 = float2x2(float2(0.0f), float2(0.0f));
+    m45 = float2x2(float2(0.0f), float2(0.0f));
+    m46 = float2x2(float2(0.0f), float2(0.0f));
+    m47 = float2x2(float2(0.0f), float2(0.0f));
+    m48 = float2x2(float2(0.0f), float2(0.0f));
+    m49 = float2x2(float2(0.0f), float2(0.0f));
+    m50 = float2x2(float2(0.0f), float2(0.0f));
+    m51 = float2x2(float2(0.0f), float2(0.0f));
+    m52 = float2x2(float2(0.0f), float2(0.0f));
+    m53 = float2x2(float2(0.0f), float2(0.0f));
+    m54 = float2x2(float2(0.0f), float2(0.0f));
+    m55 = float2x2(float2(0.0f), float2(0.0f));
+    m56 = float2x2(float2(0.0f), float2(0.0f));
+    m57 = float2x2(float2(0.0f), float2(0.0f));
+    m58 = float2x2(float2(0.0f), float2(0.0f));
+    m59 = float2x2(float2(0.0f), float2(0.0f));
+    m60 = float2x2(float2(0.0f), float2(0.0f));
+    m61 = float2x2(float2(0.0f), float2(0.0f));
+    m62 = float2x2(float2(0.0f), float2(0.0f));
+    m63 = float2x2(float2(0.0f), float2(0.0f));
+    m64 = float2x2(float2(0.0f), float2(0.0f));
+    m65 = float2x2(float2(0.0f), float2(0.0f));
+    m66 = float2x2(float2(0.0f), float2(0.0f));
+    m67 = float2x2(float2(0.0f), float2(0.0f));
+    m68 = float2x2(float2(0.0f), float2(0.0f));
+    m69 = float2x2(float2(0.0f), float2(0.0f));
+    m70 = float2x2(float2(0.0f), float2(0.0f));
+    m71 = float2x2(float2(0.0f), float2(0.0f));
+    m72 = float2x2(float2(0.0f), float2(0.0f));
+    m73 = float2x2(float2(0.0f), float2(0.0f));
+    m74 = float2x2(float2(0.0f), float2(0.0f));
+    m75 = float2x2(float2(0.0f), float2(0.0f));
+    m76 = float2x2(float2(0.0f), float2(0.0f));
+    m77 = float2x2(float2(0.0f), float2(0.0f));
+    m78 = float2x2(float2(0.0f), float2(0.0f));
+    m79 = float2x2(float2(0.0f), float2(0.0f));
+    m80 = float2x2(float2(0.0f), float2(0.0f));
+    m81 = float2x2(float2(0.0f), float2(0.0f));
+    m82 = float2x2(float2(0.0f), float2(0.0f));
+    m83 = float2x2(float2(0.0f), float2(0.0f));
+    m84 = float2x2(float2(0.0f), float2(0.0f));
+    m85 = float2x2(float2(0.0f), float2(0.0f));
+    m86 = float2x2(float2(0.0f), float2(0.0f));
+    m87 = float2x2(float2(0.0f), float2(0.0f));
+    m88 = float2x2(float2(0.0f), float2(0.0f));
+    m89 = float2x2(float2(0.0f), float2(0.0f));
+    m90 = float2x2(float2(0.0f), float2(0.0f));
+    m91 = float2x2(float2(0.0f), float2(0.0f));
+    m92 = float2x2(float2(0.0f), float2(0.0f));
+    m93 = float2x2(float2(0.0f), float2(0.0f));
+    m94 = float2x2(float2(0.0f), float2(0.0f));
+    m95 = float2x2(float2(0.0f), float2(0.0f));
+    m96 = float2x2(float2(0.0f), float2(0.0f));
+    m97 = float2x2(float2(0.0f), float2(0.0f));
+    m98 = float2x2(float2(0.0f), float2(0.0f));
+    m99 = float2x2(float2(0.0f), float2(0.0f));
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  m00[0][0] = 1.0f;
+  m01[0][0] = 1.0f;
+  m02[0][0] = 1.0f;
+  m03[0][0] = 1.0f;
+  m04[0][0] = 1.0f;
+  m05[0][0] = 1.0f;
+  m06[0][0] = 1.0f;
+  m07[0][0] = 1.0f;
+  m08[0][0] = 1.0f;
+  m09[0][0] = 1.0f;
+  m10[0][0] = 1.0f;
+  m11[0][0] = 1.0f;
+  m12[0][0] = 1.0f;
+  m13[0][0] = 1.0f;
+  m14[0][0] = 1.0f;
+  m15[0][0] = 1.0f;
+  m16[0][0] = 1.0f;
+  m17[0][0] = 1.0f;
+  m18[0][0] = 1.0f;
+  m19[0][0] = 1.0f;
+  m20[0][0] = 1.0f;
+  m21[0][0] = 1.0f;
+  m22[0][0] = 1.0f;
+  m23[0][0] = 1.0f;
+  m24[0][0] = 1.0f;
+  m25[0][0] = 1.0f;
+  m26[0][0] = 1.0f;
+  m27[0][0] = 1.0f;
+  m28[0][0] = 1.0f;
+  m29[0][0] = 1.0f;
+  m30[0][0] = 1.0f;
+  m31[0][0] = 1.0f;
+  m32[0][0] = 1.0f;
+  m33[0][0] = 1.0f;
+  m34[0][0] = 1.0f;
+  m35[0][0] = 1.0f;
+  m36[0][0] = 1.0f;
+  m37[0][0] = 1.0f;
+  m38[0][0] = 1.0f;
+  m39[0][0] = 1.0f;
+  m40[0][0] = 1.0f;
+  m41[0][0] = 1.0f;
+  m42[0][0] = 1.0f;
+  m43[0][0] = 1.0f;
+  m44[0][0] = 1.0f;
+  m45[0][0] = 1.0f;
+  m46[0][0] = 1.0f;
+  m47[0][0] = 1.0f;
+  m48[0][0] = 1.0f;
+  m49[0][0] = 1.0f;
+  m50[0][0] = 1.0f;
+  m51[0][0] = 1.0f;
+  m52[0][0] = 1.0f;
+  m53[0][0] = 1.0f;
+  m54[0][0] = 1.0f;
+  m55[0][0] = 1.0f;
+  m56[0][0] = 1.0f;
+  m57[0][0] = 1.0f;
+  m58[0][0] = 1.0f;
+  m59[0][0] = 1.0f;
+  m60[0][0] = 1.0f;
+  m61[0][0] = 1.0f;
+  m62[0][0] = 1.0f;
+  m63[0][0] = 1.0f;
+  m64[0][0] = 1.0f;
+  m65[0][0] = 1.0f;
+  m66[0][0] = 1.0f;
+  m67[0][0] = 1.0f;
+  m68[0][0] = 1.0f;
+  m69[0][0] = 1.0f;
+  m70[0][0] = 1.0f;
+  m71[0][0] = 1.0f;
+  m72[0][0] = 1.0f;
+  m73[0][0] = 1.0f;
+  m74[0][0] = 1.0f;
+  m75[0][0] = 1.0f;
+  m76[0][0] = 1.0f;
+  m77[0][0] = 1.0f;
+  m78[0][0] = 1.0f;
+  m79[0][0] = 1.0f;
+  m80[0][0] = 1.0f;
+  m81[0][0] = 1.0f;
+  m82[0][0] = 1.0f;
+  m83[0][0] = 1.0f;
+  m84[0][0] = 1.0f;
+  m85[0][0] = 1.0f;
+  m86[0][0] = 1.0f;
+  m87[0][0] = 1.0f;
+  m88[0][0] = 1.0f;
+  m89[0][0] = 1.0f;
+  m90[0][0] = 1.0f;
+  m91[0][0] = 1.0f;
+  m92[0][0] = 1.0f;
+  m93[0][0] = 1.0f;
+  m94[0][0] = 1.0f;
+  m95[0][0] = 1.0f;
+  m96[0][0] = 1.0f;
+  m97[0][0] = 1.0f;
+  m98[0][0] = 1.0f;
+  m99[0][0] = 1.0f;
+}
+program_source:4:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m00;
+                     ^
+program_source:5:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m01;
+                     ^
+program_source:6:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m02;
+                     ^
+program_source:7:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m03;
+                     ^
+program_source:8:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m04;
+                     ^
+program_source:9:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m05;
+                     ^
+program_source:10:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m06;
+                     ^
+program_source:11:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m07;
+                     ^
+program_source:12:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m08;
+                     ^
+program_source:13:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m09;
+                     ^
+program_source:14:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m10;
+                     ^
+program_source:15:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m11;
+                     ^
+program_source:16:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m12;
+                     ^
+program_source:17:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m13;
+                     ^
+program_source:18:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m14;
+                     ^
+program_source:19:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m15;
+                     ^
+program_source:20:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m16;
+                     ^
+program_source:21:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m17;
+                     ^
+program_source:22:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m18;
+                     ^
+program_source:23:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m19;
+                     ^
+program_source:24:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m20;
+                     ^
+program_source:25:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m21;
+                     ^
+program_source:26:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m22;
+                     ^
+program_source:27:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m23;
+                     ^
+program_source:28:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m24;
+                     ^
+program_source:29:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m25;
+                     ^
+program_source:30:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m26;
+                     ^
+program_source:31:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m27;
+                     ^
+program_source:32:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m28;
+                     ^
+program_source:33:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m29;
+                     ^
+program_source:34:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m30;
+                     ^
+program_source:35:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m31;
+                     ^
+program_source:36:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m32;
+                     ^
+program_source:37:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m33;
+                     ^
+program_source:38:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m34;
+                     ^
+program_source:39:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m35;
+                     ^
+program_source:40:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m36;
+                     ^
+program_source:41:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m37;
+                     ^
+program_source:42:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m38;
+                     ^
+program_source:43:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m39;
+                     ^
+program_source:44:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m40;
+                     ^
+program_source:45:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m41;
+                     ^
+program_source:46:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m42;
+                     ^
+program_source:47:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m43;
+                     ^
+program_source:48:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m44;
+                     ^
+program_source:49:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m45;
+                     ^
+program_source:50:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m46;
+                     ^
+program_source:51:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m47;
+                     ^
+program_source:52:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m48;
+                     ^
+program_source:53:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m49;
+                     ^
+program_source:54:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m50;
+                     ^
+program_source:55:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m51;
+                     ^
+program_source:56:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m52;
+                     ^
+program_source:57:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m53;
+                     ^
+program_source:58:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m54;
+                     ^
+program_source:59:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m55;
+                     ^
+program_source:60:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m56;
+                     ^
+program_source:61:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m57;
+                     ^
+program_source:62:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m58;
+                     ^
+program_source:63:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m59;
+                     ^
+program_source:64:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m60;
+                     ^
+program_source:65:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m61;
+                     ^
+program_source:66:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m62;
+                     ^
+program_source:67:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m63;
+                     ^
+program_source:68:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m64;
+                     ^
+program_source:69:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m65;
+                     ^
+program_source:70:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m66;
+                     ^
+program_source:71:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m67;
+                     ^
+program_source:72:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m68;
+                     ^
+program_source:73:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m69;
+                     ^
+program_source:74:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m70;
+                     ^
+program_source:75:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m71;
+                     ^
+program_source:76:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m72;
+                     ^
+program_source:77:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m73;
+                     ^
+program_source:78:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m74;
+                     ^
+program_source:79:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m75;
+                     ^
+program_source:80:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m76;
+                     ^
+program_source:81:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m77;
+                     ^
+program_source:82:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m78;
+                     ^
+program_source:83:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m79;
+                     ^
+program_source:84:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m80;
+                     ^
+program_source:85:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m81;
+                     ^
+program_source:86:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m82;
+                     ^
+program_source:87:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m83;
+                     ^
+program_source:88:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m84;
+                     ^
+program_source:89:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m85;
+                     ^
+program_source:90:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m86;
+                     ^
+program_source:91:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m87;
+                     ^
+program_source:92:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m88;
+                     ^
+program_source:93:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m89;
+                     ^
+program_source:94:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m90;
+                     ^
+program_source:95:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m91;
+                     ^
+program_source:96:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m92;
+                     ^
+program_source:97:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m93;
+                     ^
+program_source:98:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m94;
+                     ^
+program_source:99:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m95;
+                     ^
+program_source:100:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m96;
+                     ^
+program_source:101:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m97;
+                     ^
+program_source:102:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m98;
+                     ^
+program_source:103:22: error: program scope variable must reside in constant address space
+threadgroup float2x2 m99;
+                     ^
+program_source:105:12: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((idx == 0u)) {
+       ~~~~^~~~~
+program_source:105:12: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((idx == 0u)) {
+      ~    ^    ~
+program_source:105:12: note: use '=' to turn this equality comparison into an assignment
+  if ((idx == 0u)) {
+           ^~
+           =
+
diff --git a/test/tint/var/uses/private.wgsl.expected.ir.msl b/test/tint/var/uses/private.wgsl.expected.ir.msl
index efdd3b1..76b0ba4 100644
--- a/test/tint/var/uses/private.wgsl.expected.ir.msl
+++ b/test/tint/var/uses/private.wgsl.expected.ir.msl
@@ -1,9 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+thread int a = 0;
+thread int b = 0;
+thread int c = 0;
+void uses_a() {
+  a = (a + 1);
+}
+void uses_b() {
+  b = (b * 2);
+}
+void uses_a_and_b() {
+  b = a;
+}
+void no_uses() {
+}
+void outer() {
+  a = 0;
+  uses_a();
+  uses_a_and_b();
+  uses_b();
+  no_uses();
+}
+kernel void main1() {
+  a = 42;
+  uses_a();
+}
+kernel void main2() {
+  b = 7;
+  uses_b();
+}
+kernel void main3() {
+  outer();
+  no_uses();
+}
+kernel void main4() {
+  no_uses();
+}
+program_source:4:12: error: program scope variable must reside in constant address space
+thread int a = 0;
+           ^
+program_source:5:12: error: program scope variable must reside in constant address space
+thread int b = 0;
+           ^
+program_source:6:12: error: program scope variable must reside in constant address space
+thread int c = 0;
+           ^
+
diff --git a/test/tint/var/uses/push_constant.wgsl.expected.ir.msl b/test/tint/var/uses/push_constant.wgsl.expected.ir.msl
index 09c2a25..1d684b4 100644
--- a/test/tint/var/uses/push_constant.wgsl.expected.ir.msl
+++ b/test/tint/var/uses/push_constant.wgsl.expected.ir.msl
@@ -1,49 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: %b1 = block {  # root
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
   %a:ptr<push_constant, i32, read_write> = var
   %b:ptr<push_constant, i32, read_write> = var
   %c:ptr<push_constant, i32, read_write> = var
 }
 
-%uses_a = func():void -> %b2 {
-  %b2 = block {
-    %foo:i32 = load %a
+%uses_a = func():void {
+  $B2: {
+    %5:i32 = load %a
+    %foo:i32 = let %5
     ret
   }
 }
-%uses_uses_a = func():void -> %b3 {
-  %b3 = block {
-    %7:void = call %uses_a
+%uses_uses_a = func():void {
+  $B3: {
+    %8:void = call %uses_a
     ret
   }
 }
-%uses_b = func():void -> %b4 {
-  %b4 = block {
-    %foo_1:i32 = load %b  # %foo_1: 'foo'
+%uses_b = func():void {
+  $B4: {
+    %10:i32 = load %b
+    %foo_1:i32 = let %10  # %foo_1: 'foo'
     ret
   }
 }
-%main1 = @compute @workgroup_size(1, 1, 1) func():void -> %b5 {
-  %b5 = block {
-    %11:void = call %uses_a
+%main1 = @compute @workgroup_size(1, 1, 1) func():void {
+  $B5: {
+    %13:void = call %uses_a
     ret
   }
 }
-%main2 = @compute @workgroup_size(1, 1, 1) func():void -> %b6 {
-  %b6 = block {
-    %13:void = call %uses_uses_a
+%main2 = @compute @workgroup_size(1, 1, 1) func():void {
+  $B6: {
+    %15:void = call %uses_uses_a
     ret
   }
 }
-%main3 = @compute @workgroup_size(1, 1, 1) func():void -> %b7 {
-  %b7 = block {
-    %15:void = call %uses_b
+%main3 = @compute @workgroup_size(1, 1, 1) func():void {
+  $B7: {
+    %17:void = call %uses_b
     ret
   }
 }
-%main4 = @compute @workgroup_size(1, 1, 1) func():void -> %b8 {
-  %b8 = block {
+%main4 = @compute @workgroup_size(1, 1, 1) func():void {
+  $B8: {
     ret
   }
 }
diff --git a/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.msl b/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.msl
new file mode 100644
index 0000000..9d5b08e
--- /dev/null
+++ b/test/tint/var/uses/push_constant_and_instance_index.wgsl.expected.ir.msl
@@ -0,0 +1,24 @@
+SKIP: FAILED
+
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: $B1: {  # root
+  %a:ptr<push_constant, f32, read_write> = var
+}
+
+%tint_symbol = @vertex func(%b:u32 [@instance_index]):vec4<f32> [@position] {
+  $B2: {
+    %4:f32 = load %a
+    %5:f32 = let %4
+    %6:f32 = convert %b
+    %7:f32 = add %5, %6
+    %8:vec4<f32> = construct %7
+    ret %8
+  }
+}
+
+unhandled variable address space
+********************************************************************
+*  The tint shader compiler has encountered an unexpected error.   *
+*                                                                  *
+*  Please help us fix this issue by submitting a bug report at     *
+*  crbug.com/tint with the source program that triggered the bug.  *
+********************************************************************
diff --git a/test/tint/var/uses/workgroup.wgsl.expected.ir.msl b/test/tint/var/uses/workgroup.wgsl.expected.ir.msl
index efdd3b1..2d8fe86 100644
--- a/test/tint/var/uses/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/var/uses/workgroup.wgsl.expected.ir.msl
@@ -1,9 +1,94 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+
+threadgroup int a;
+threadgroup int b;
+threadgroup int c;
+void uses_a() {
+  a = (a + 1);
+}
+void uses_b() {
+  b = (b * 2);
+}
+void uses_a_and_b() {
+  b = a;
+}
+void no_uses() {
+}
+void outer() {
+  a = 0;
+  uses_a();
+  uses_a_and_b();
+  uses_b();
+  no_uses();
+}
+kernel void main1(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    a = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  a = 42;
+  uses_a();
+}
+kernel void main2(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    b = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  b = 7;
+  uses_b();
+}
+kernel void main3(uint tint_local_index [[thread_index_in_threadgroup]]) {
+  if ((tint_local_index == 0u)) {
+    a = 0;
+    b = 0;
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  outer();
+  no_uses();
+}
+kernel void main4() {
+  no_uses();
+}
+program_source:4:17: error: program scope variable must reside in constant address space
+threadgroup int a;
+                ^
+program_source:5:17: error: program scope variable must reside in constant address space
+threadgroup int b;
+                ^
+program_source:6:17: error: program scope variable must reside in constant address space
+threadgroup int c;
+                ^
+program_source:26:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:26:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:26:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:34:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:34:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:34:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+program_source:42:25: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
+  if ((tint_local_index == 0u)) {
+       ~~~~~~~~~~~~~~~~~^~~~~
+program_source:42:25: note: remove extraneous parentheses around the comparison to silence this warning
+  if ((tint_local_index == 0u)) {
+      ~                 ^    ~
+program_source:42:25: note: use '=' to turn this equality comparison into an assignment
+  if ((tint_local_index == 0u)) {
+                        ^~
+                        =
+
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.msl
index 2a2e113..9fbc5d1 100644
--- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: result = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: result = struct @align(4) {
   res0:i32 @offset(0)
   res1:i32 @offset(4)
   res2:i32 @offset(8)
@@ -18,15 +18,15 @@
   data2:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, result, read_write> = var @binding_point(0, 3)
   %x_6:ptr<uniform, block0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, block1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, block2, read> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %6:ptr<storage, i32, read_write> = access %x_4, 0u
     %7:ptr<uniform, i32, read> = access %x_6, 0u
     %8:i32 = load %7
@@ -42,8 +42,8 @@
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %16:void = call %main_1
     ret
   }
diff --git a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.msl
index 69ea851..11752b8 100644
--- a/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/api/descriptor_set/descriptor_set_layout_binding/layout_binding_order/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: result = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: result = struct @align(4) {
   res0:i32 @offset(0)
   res1:i32 @offset(4)
   res2:i32 @offset(8)
@@ -18,33 +18,36 @@
   data2:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, result, read_write> = var @binding_point(0, 3)
   %x_6:ptr<uniform, block0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, block1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, block2, read> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %6:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_25:i32 = load %6
-    %8:ptr<storage, i32, read_write> = access %x_4, 0u
-    store %8, %x_25
-    %9:ptr<uniform, i32, read> = access %x_8, 0u
-    %x_28:i32 = load %9
-    %11:ptr<storage, i32, read_write> = access %x_4, 1u
-    store %11, %x_28
-    %12:ptr<uniform, i32, read> = access %x_10, 0u
-    %x_31:i32 = load %12
-    %14:ptr<storage, i32, read_write> = access %x_4, 2u
-    store %14, %x_31
+    %7:i32 = load %6
+    %x_25:i32 = let %7
+    %9:ptr<storage, i32, read_write> = access %x_4, 0u
+    store %9, %x_25
+    %10:ptr<uniform, i32, read> = access %x_8, 0u
+    %11:i32 = load %10
+    %x_28:i32 = let %11
+    %13:ptr<storage, i32, read_write> = access %x_4, 1u
+    store %13, %x_28
+    %14:ptr<uniform, i32, read> = access %x_10, 0u
+    %15:i32 = load %14
+    %x_31:i32 = let %15
+    %17:ptr<storage, i32, read_write> = access %x_4, 2u
+    store %17, %x_31
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
-    %16:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
+    %19:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.msl
index 23a32b4..2cee44b 100644
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.spvasm.expected.ir.msl
@@ -1,22 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: block0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: block0 = struct @align(16) {
   data:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, block0, read_write> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %x_4, 0u
     store %3, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:void = call %main_1
     ret
   }
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.msl
index 23a32b4..2cee44b 100644
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_compute/0.wgsl.expected.ir.msl
@@ -1,22 +1,22 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: block0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: block0 = struct @align(16) {
   data:vec4<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, block0, read_write> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %3:ptr<storage, vec4<f32>, read_write> = access %x_4, 0u
     store %3, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f)
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B3: {
     %5:void = call %main_1
     ret
   }
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.msl
index b35e11c..f0eaa7c 100644
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: block0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: block0 = struct @align(16) {
   in_color:vec4<f32> @offset(0)
 }
 
@@ -9,15 +9,15 @@
   frag_color_1:vec4<f32> @offset(16), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %position_1:ptr<private, vec4<f32>, read_write> = var
   %frag_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, block0, read> = var @binding_point(0, 1)
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %6:vec4<f32> = load %position_1
     store %gl_Position, %6
     %7:ptr<uniform, vec4<f32>, read> = access %x_8, 0u
@@ -26,8 +26,8 @@
     ret
   }
 }
-%tint_symbol = @vertex func(%position_1_param:vec4<f32> [@location(0)]):main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func(%position_1_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
     store %position_1, %position_1_param
     %11:void = call %main_1
     %12:vec4<f32> = load %gl_Position
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.msl
index b239463..90abc54 100644
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: block0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: block0 = struct @align(16) {
   in_color:vec4<f32> @offset(0)
 }
 
@@ -9,31 +9,33 @@
   frag_color_1:vec4<f32> @offset(16), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %pos:ptr<private, vec4<f32>, read_write> = var
   %frag_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, block0, read> = var @binding_point(0, 1)
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_24:vec4<f32> = load %pos
+%main_1 = func():void {
+  $B2: {
+    %6:vec4<f32> = load %pos
+    %x_24:vec4<f32> = let %6
     store %gl_Position, %x_24
-    %7:ptr<uniform, vec4<f32>, read> = access %x_8, 0u
-    %x_27:vec4<f32> = load %7
+    %8:ptr<uniform, vec4<f32>, read> = access %x_8, 0u
+    %9:vec4<f32> = load %8
+    %x_27:vec4<f32> = let %9
     store %frag_color, %x_27
     ret
   }
 }
-%tint_symbol = @vertex func(%position_param:vec4<f32> [@location(0)]):main_out -> %b3 {
-  %b3 = block {
+%tint_symbol = @vertex func(%position_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
     store %pos, %position_param
-    %11:void = call %main_1
-    %12:vec4<f32> = load %gl_Position
-    %13:vec4<f32> = load %frag_color
-    %14:main_out = construct %12, %13
-    ret %14
+    %13:void = call %main_1
+    %14:vec4<f32> = load %gl_Position
+    %15:vec4<f32> = load %frag_color
+    %16:main_out = construct %14, %15
+    ret %16
   }
 }
 
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.msl
index efdd3b1..992ba70 100644
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.spvasm.expected.ir.msl
@@ -1,6 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  final_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %final_color:ptr<private, vec4<f32>, read_write> = var
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:vec4<f32> = load %frag_color
+    store %final_color, %4
+    ret
+  }
+}
+%tint_symbol = @fragment func(%frag_color_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %frag_color, %frag_color_param
+    %7:void = call %main_1
+    %8:vec4<f32> = load %final_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.msl
index efdd3b1..08031a5 100644
--- a/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/binding_model/dynamic_offset/shader_reuse_differing_layout_graphics/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  final_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %final_color:ptr<private, vec4<f32>, read_write> = var
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:vec4<f32> = load %frag_color
+    %x_12:vec4<f32> = let %4
+    store %final_color, %x_12
+    ret
+  }
+}
+%tint_symbol = @fragment func(%frag_color_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %frag_color, %frag_color_param
+    %8:void = call %main_1
+    %9:vec4<f32> = load %final_color
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.msl
index efdd3b1..a3036cb 100644
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  gl_Position:vec4<f32> @offset(0), @builtin(position)
+  frag_color_1:vec4<f32> @offset(16), @location(1)
+}
+
+$B1: {  # root
+  %position_1:ptr<private, vec4<f32>, read_write> = var
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %position_1
+    store %gl_Position, %5
+    %6:vec4<f32> = load %position_1
+    %7:vec4<f32> = mul %6, 0.5f
+    store %frag_color, %7
+    ret
+  }
+}
+%tint_symbol = @vertex func(%position_1_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %position_1, %position_1_param
+    %10:void = call %main_1
+    %11:vec4<f32> = load %gl_Position
+    %12:vec4<f32> = load %frag_color
+    %13:main_out = construct %11, %12
+    ret %13
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.msl
index efdd3b1..b4d04a0 100644
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/combined_operations/negintdivand/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  gl_Position:vec4<f32> @offset(0), @builtin(position)
+  frag_color_1:vec4<f32> @offset(16), @location(1)
+}
+
+$B1: {  # root
+  %pos:ptr<private, vec4<f32>, read_write> = var
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %pos
+    %x_21:vec4<f32> = let %5
+    store %gl_Position, %x_21
+    %7:vec4<f32> = load %pos
+    %x_23:vec4<f32> = let %7
+    %9:vec4<f32> = mul %x_23, 0.5f
+    store %frag_color, %9
+    ret
+  }
+}
+%tint_symbol = @vertex func(%position_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %pos, %position_param
+    %12:void = call %main_1
+    %13:vec4<f32> = load %gl_Position
+    %14:vec4<f32> = load %frag_color
+    %15:main_out = construct %13, %14
+    ret %15
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.msl
index 94e248c..3562db2 100644
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.spvasm.expected.ir.msl
@@ -1,6 +1,72 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %iv:ptr<function, vec2<i32>, read_write> = var
+    %5:vec4<f32> = load %frag_color
+    %6:vec2<f32> = swizzle %5, xy
+    %7:vec2<f32> = mul %6, 256.0f
+    %8:vec2<i32> = call %tint_v2f32_to_v2i32, %7
+    store %iv, %8
+    %10:i32 = load_vector_element %iv, 1u
+    %11:i32 = call %tint_div_i32, %10, 2i
+    %13:i32 = and %11, 64i
+    %14:bool = eq %13, 64i
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %color_out, vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%frag_color_param:vec4<f32> [@location(1)]):main_out {
+  $B5: {
+    store %frag_color, %frag_color_param
+    %17:void = call %main_1
+    %18:vec4<f32> = load %color_out
+    %19:main_out = construct %18
+    ret %19
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %22:bool = eq %rhs, 0i
+    %23:bool = eq %lhs, -2147483648i
+    %24:bool = eq %rhs, -1i
+    %25:bool = and %23, %24
+    %26:bool = or %22, %25
+    %27:i32 = select %rhs, 1i, %26
+    %28:i32 = div %lhs, %27
+    ret %28
+  }
+}
+%tint_v2f32_to_v2i32 = func(%value:vec2<f32>):vec2<i32> {
+  $B7: {
+    %30:vec2<i32> = convert %value
+    %31:vec2<bool> = gte %value, vec2<f32>(-2147483648.0f)
+    %32:vec2<i32> = select vec2<i32>(-2147483648i), %30, %31
+    %33:vec2<bool> = lte %value, vec2<f32>(2147483520.0f)
+    %34:vec2<i32> = select vec2<i32>(2147483647i), %32, %33
+    ret %34
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.msl
index 28251dc..792cc4a 100644
--- a/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/combined_operations/negintdivand/1.wgsl.expected.ir.msl
@@ -1,6 +1,76 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %iv:ptr<function, vec2<i32>, read_write> = var
+    %5:vec4<f32> = load %frag_color
+    %x_28:vec4<f32> = let %5
+    %7:f32 = access %x_28, 0u
+    %8:f32 = access %x_28, 1u
+    %9:vec2<f32> = construct %7, %8
+    %10:vec2<f32> = mul %9, 256.0f
+    %11:vec2<i32> = call %tint_v2f32_to_v2i32, %10
+    store %iv, %11
+    %13:i32 = load_vector_element %iv, 1u
+    %x_33:i32 = let %13
+    %15:i32 = call %tint_div_i32, %x_33, 2i
+    %17:i32 = and %15, 64i
+    %18:bool = eq %17, 64i
+    if %18 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %color_out, vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%frag_color_param:vec4<f32> [@location(1)]):main_out {
+  $B5: {
+    store %frag_color, %frag_color_param
+    %21:void = call %main_1
+    %22:vec4<f32> = load %color_out
+    %23:main_out = construct %22
+    ret %23
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %26:bool = eq %rhs, 0i
+    %27:bool = eq %lhs, -2147483648i
+    %28:bool = eq %rhs, -1i
+    %29:bool = and %27, %28
+    %30:bool = or %26, %29
+    %31:i32 = select %rhs, 1i, %30
+    %32:i32 = div %lhs, %31
+    ret %32
+  }
+}
+%tint_v2f32_to_v2i32 = func(%value:vec2<f32>):vec2<i32> {
+  $B7: {
+    %34:vec2<i32> = convert %value
+    %35:vec2<bool> = gte %value, vec2<f32>(-2147483648.0f)
+    %36:vec2<i32> = select vec2<i32>(-2147483648i), %34, %35
+    %37:vec2<bool> = lte %value, vec2<f32>(2147483520.0f)
+    %38:vec2<i32> = select vec2<i32>(2147483647i), %36, %37
+    ret %38
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.msl
index efdd3b1..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.msl
index efdd3b1..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/access-new-vector-inside-if-condition/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.msl
index 2918302..0a7eaed 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,13 +12,14 @@
   nmb:array<i32, 1> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_24:ptr<function, array<i32, 1>, read_write> = var
     %x_68:ptr<function, bool, read_write> = var, false
     %x_17:ptr<function, i32, read_write> = var
@@ -28,49 +29,52 @@
     %x_69:ptr<function, bool, read_write> = var, false
     %tmp_float:ptr<function, f32, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_79:ptr<function, bool, read_write> = var
         %x_25:ptr<function, i32, read_write> = var
         %x_26:ptr<function, i32, read_write> = var
         %x_101:ptr<function, vec3<f32>, read_write> = var
-        %17:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-        %x_75:f32 = load_vector_element %17, 1u
+        %18:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+        %19:f32 = load_vector_element %18, 1u
+        %x_75:f32 = let %19
         store %tmp_float, %x_75
-        %x_76:vec3<f32> = construct %x_75
+        %21:vec3<f32> = construct %x_75
+        %x_76:vec3<f32> = let %21
         store %color, %x_76
         store %x_24, array<i32, 1>(0i)
         store %x_68, false
         store %x_79, false
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
             %x_21:ptr<function, i32, read_write> = var
             %x_93:ptr<function, bool, read_write> = var
             store %x_18, 1i
             store %x_21, 1i
-            loop [b: %b7, c: %b8] {  # loop_3
-              %b7 = block {  # body
+            loop [b: $B5, c: $B6] {  # loop_3
+              $B5: {  # body
                 store %x_25, 0i
-                %22:bool = load %x_79
-                store %x_93, %22
-                %23:i32 = load %x_21
-                %24:bool = gt %23, 10i
-                if %24 [t: %b9, f: %b10] {  # if_1
-                  %b9 = block {  # true
+                %25:bool = load %x_79
+                store %x_93, %25
+                %26:i32 = load %x_21
+                %27:bool = gt %26, 10i
+                if %27 [t: $B7, f: $B8] {  # if_1
+                  $B7: {  # true
                     exit_if  # if_1
                   }
-                  %b10 = block {  # false
+                  $B8: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %25:i32 = load %x_21
-                %x_22:i32 = sub %25, 1i
+                %28:i32 = load %x_21
+                %29:i32 = sub %28, 1i
+                %x_22:i32 = let %29
                 store %x_19, %x_22
-                %27:ptr<function, i32, read_write> = access %x_24, %x_22
-                %28:i32 = load %27
-                %29:bool = eq %28, 1i
-                if %29 [t: %b11] {  # if_2
-                  %b11 = block {  # true
+                %31:ptr<function, i32, read_write> = access %x_24, %x_22
+                %32:i32 = load %31
+                %33:bool = eq %32, 1i
+                if %33 [t: $B9] {  # if_2
+                  $B9: {  # true
                     store %x_68, true
                     store %x_17, 1i
                     store %x_25, 1i
@@ -79,18 +83,18 @@
                   }
                 }
                 store %x_18, %x_22
-                continue %b8
+                continue  # -> $B6
               }
-              %b8 = block {  # continuing
+              $B6: {  # continuing
                 store %x_21, %x_22
-                next_iteration %b7
+                next_iteration  # -> $B5
               }
             }
-            %30:i32 = load %x_25
-            store %x_26, %30
-            %31:bool = load %x_93
-            if %31 [t: %b12] {  # if_3
-              %b12 = block {  # true
+            %34:i32 = load %x_25
+            store %x_26, %34
+            %35:bool = load %x_93
+            if %35 [t: $B10] {  # if_3
+              $B10: {  # true
                 exit_loop  # loop_2
               }
             }
@@ -99,35 +103,31 @@
             store %x_26, -1i
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
-            store %x_79, false
-            next_iteration %b5
-          }
         }
-        %32:i32 = load %x_26
-        store %x_20, %32
-        %33:i32 = load %x_26
-        %34:bool = eq %33, -1i
-        if %34 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
-            discard
+        %36:i32 = load %x_26
+        store %x_20, %36
+        %37:i32 = load %x_26
+        %38:bool = eq %37, -1i
+        if %38 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
+            store %continue_execution, false
             exit_if  # if_4
           }
-          %b14 = block {  # false
+          $B12: {  # false
             store %x_GLF_color, vec4<f32>(0.0f)
-            %35:f32 = access %x_76, 0u
-            %36:vec2<f32> = swizzle %x_76, yz
-            %37:vec2<f32> = add %36, vec2<f32>(1.0f)
-            %38:vec2<f32> = swizzle %37, xy
-            %39:vec3<f32> = construct %35, %38
-            store %x_101, %39
-            %40:vec3<f32> = load %x_101
-            store %color, %40
-            %41:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-            %42:f32 = load_vector_element %41, 0u
-            %43:bool = gt %42, 1.0f
-            if %43 [t: %b15] {  # if_5
-              %b15 = block {  # true
+            %39:f32 = access %x_76, 0u
+            %40:vec2<f32> = swizzle %x_76, yz
+            %41:vec2<f32> = add %40, vec2<f32>(1.0f)
+            %42:vec2<f32> = swizzle %41, xy
+            %43:vec3<f32> = construct %39, %42
+            store %x_101, %43
+            %44:vec3<f32> = load %x_101
+            store %color, %44
+            %45:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+            %46:f32 = load_vector_element %45, 0u
+            %47:bool = gt %46, 1.0f
+            if %47 [t: $B13] {  # if_5
+              $B13: {  # true
                 store %x_69, true
                 exit_loop  # loop_1
               }
@@ -135,31 +135,35 @@
             exit_if  # if_4
           }
         }
-        %44:f32 = load_vector_element %x_101, 0u
-        %45:f32 = load_vector_element %x_101, 1u
-        %46:f32 = load_vector_element %x_101, 2u
-        %47:vec4<f32> = construct %44, %45, %46, 1.0f
-        store %x_GLF_color, %47
+        %48:f32 = load_vector_element %x_101, 0u
+        %49:f32 = load_vector_element %x_101, 1u
+        %50:f32 = load_vector_element %x_101, 2u
+        %51:vec4<f32> = construct %48, %49, %50, 1.0f
+        store %x_GLF_color, %51
         store %x_69, true
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %53:void = call %main_1
+    %54:vec4<f32> = load %x_GLF_color
+    %55:main_out = construct %54
+    %56:bool = load %continue_execution
+    %57:bool = eq %56, false
+    if %57 [t: $B15] {  # if_6
+      $B15: {  # true
+        terminate_invocation
+      }
+    }
+    ret %55
   }
 }
-%binarySearch_struct_tmp_struct_i1_1_1_ = func(%obj:ptr<function, tmp_struct, read_write>):i32 -> %b17 {
-  %b17 = block {
+%binarySearch_struct_tmp_struct_i1_1_1_ = func(%obj:ptr<function, tmp_struct, read_write>):i32 {
+  $B16: {
     %x_112:ptr<function, bool, read_write> = var, false
     %x_16:ptr<function, i32, read_write> = var
     %one:ptr<function, i32, read_write> = var
@@ -168,35 +172,36 @@
     %x_27:ptr<function, i32, read_write> = var
     %x_28:ptr<function, i32, read_write> = var
     store %x_114, false
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
+    loop [b: $B17] {  # loop_4
+      $B17: {  # body
         %x_15:ptr<function, i32, read_write> = var
         %x_128:ptr<function, bool, read_write> = var
         store %one, 1i
         store %x_15, 1i
-        loop [b: %b20, c: %b21] {  # loop_5
-          %b20 = block {  # body
+        loop [b: $B18, c: $B19] {  # loop_5
+          $B18: {  # body
             store %x_27, 0i
-            %63:bool = load %x_114
-            store %x_128, %63
-            %64:i32 = load %x_15
-            %65:bool = gt %64, 10i
-            if %65 [t: %b22, f: %b23] {  # if_6
-              %b22 = block {  # true
-                exit_if  # if_6
+            %69:bool = load %x_114
+            store %x_128, %69
+            %70:i32 = load %x_15
+            %71:bool = gt %70, 10i
+            if %71 [t: $B20, f: $B21] {  # if_7
+              $B20: {  # true
+                exit_if  # if_7
               }
-              %b23 = block {  # false
+              $B21: {  # false
                 exit_loop  # loop_5
               }
             }
-            %66:i32 = load %x_15
-            %x_13:i32 = sub %66, 1i
+            %72:i32 = load %x_15
+            %73:i32 = sub %72, 1i
+            %x_13:i32 = let %73
             store %zero, %x_13
-            %68:ptr<function, i32, read_write> = access %obj, 0u, %x_13
-            %69:i32 = load %68
-            %70:bool = eq %69, 1i
-            if %70 [t: %b24] {  # if_7
-              %b24 = block {  # true
+            %75:ptr<function, i32, read_write> = access %obj, 0u, %x_13
+            %76:i32 = load %75
+            %77:bool = eq %76, 1i
+            if %77 [t: $B22] {  # if_8
+              $B22: {  # true
                 store %x_112, true
                 store %x_16, 1i
                 store %x_27, 1i
@@ -205,18 +210,18 @@
               }
             }
             store %one, %x_13
-            continue %b21
+            continue  # -> $B19
           }
-          %b21 = block {  # continuing
+          $B19: {  # continuing
             store %x_15, %x_13
-            next_iteration %b20
+            next_iteration  # -> $B18
           }
         }
-        %71:i32 = load %x_27
-        store %x_28, %71
-        %72:bool = load %x_128
-        if %72 [t: %b25] {  # if_8
-          %b25 = block {  # true
+        %78:i32 = load %x_27
+        store %x_28, %78
+        %79:bool = load %x_128
+        if %79 [t: $B23] {  # if_9
+          $B23: {  # true
             exit_loop  # loop_4
           }
         }
@@ -225,13 +230,9 @@
         store %x_28, -1i
         exit_loop  # loop_4
       }
-      %b19 = block {  # continuing
-        store %x_114, false
-        next_iteration %b18
-      }
     }
-    %73:i32 = load %x_28
-    ret %73
+    %80:i32 = load %x_28
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.msl
index 5bc8e15..eeebc2a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/always-discarding-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,13 +12,14 @@
   nmb:array<i32, 1> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_24:ptr<function, array<i32, 1>, read_write> = var
     %x_68:ptr<function, bool, read_write> = var, false
     %x_17:ptr<function, i32, read_write> = var
@@ -28,49 +29,55 @@
     %x_69:ptr<function, bool, read_write> = var, false
     %tmp_float:ptr<function, f32, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_25:ptr<function, i32, read_write> = var
         %x_101:ptr<function, vec3<f32>, read_write> = var
         %x_79_phi:ptr<function, bool, read_write> = var
         %x_26_phi:ptr<function, i32, read_write> = var
-        %17:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-        %x_75:f32 = load_vector_element %17, 1u
+        %18:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+        %19:f32 = load_vector_element %18, 1u
+        %x_75:f32 = let %19
         store %tmp_float, %x_75
-        %x_76:vec3<f32> = construct %x_75, %x_75, %x_75
+        %21:vec3<f32> = construct %x_75, %x_75, %x_75
+        %x_76:vec3<f32> = let %21
         store %color, %x_76
         store %x_24, array<i32, 1>(0i)
         store %x_68, false
         store %x_79_phi, false
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
             %x_21_phi:ptr<function, i32, read_write> = var
             %x_25_phi:ptr<function, i32, read_write> = var
             %x_93_phi:ptr<function, bool, read_write> = var
-            %x_79:bool = load %x_79_phi
+            %26:bool = load %x_79_phi
+            %x_79:bool = let %26
             store %x_18, 1i
             store %x_21_phi, 1i
-            loop [b: %b7, c: %b8] {  # loop_3
-              %b7 = block {  # body
-                %x_21:i32 = load %x_21_phi
+            loop [b: $B5, c: $B6] {  # loop_3
+              $B5: {  # body
+                %28:i32 = load %x_21_phi
+                %x_21:i32 = let %28
                 store %x_25_phi, 0i
                 store %x_93_phi, %x_79
-                %25:bool = gt %x_21, 10i
-                if %25 [t: %b9, f: %b10] {  # if_1
-                  %b9 = block {  # true
+                %30:bool = gt %x_21, 10i
+                if %30 [t: $B7, f: $B8] {  # if_1
+                  $B7: {  # true
                     exit_if  # if_1
                   }
-                  %b10 = block {  # false
+                  $B8: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %x_22:i32 = sub %x_21, 1i
+                %31:i32 = sub %x_21, 1i
+                %x_22:i32 = let %31
                 store %x_19, %x_22
-                %27:ptr<function, i32, read_write> = access %x_24, %x_22
-                %x_23:i32 = load %27
-                %29:bool = eq %x_23, 1i
-                if %29 [t: %b11] {  # if_2
-                  %b11 = block {  # true
+                %33:ptr<function, i32, read_write> = access %x_24, %x_22
+                %34:i32 = load %33
+                %x_23:i32 = let %34
+                %36:bool = eq %x_23, 1i
+                if %36 [t: $B9] {  # if_2
+                  $B9: {  # true
                     store %x_68, true
                     store %x_17, 1i
                     store %x_25_phi, 1i
@@ -79,20 +86,21 @@
                   }
                 }
                 store %x_18, %x_22
-                continue %b8
+                continue  # -> $B6
               }
-              %b8 = block {  # continuing
+              $B6: {  # continuing
                 store %x_21_phi, %x_22
-                next_iteration %b7
+                next_iteration  # -> $B5
               }
             }
-            %30:i32 = load %x_25_phi
-            store %x_25, %30
-            %x_93:bool = load %x_93_phi
-            %32:i32 = load %x_25
-            store %x_26_phi, %32
-            if %x_93 [t: %b12] {  # if_3
-              %b12 = block {  # true
+            %37:i32 = load %x_25_phi
+            store %x_25, %37
+            %38:bool = load %x_93_phi
+            %x_93:bool = let %38
+            %40:i32 = load %x_25
+            store %x_26_phi, %40
+            if %x_93 [t: $B10] {  # if_3
+              $B10: {  # true
                 exit_loop  # loop_2
               }
             }
@@ -101,37 +109,36 @@
             store %x_26_phi, -1i
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
-            store %x_79_phi, false
-            next_iteration %b5
-          }
         }
-        %x_26:i32 = load %x_26_phi
+        %41:i32 = load %x_26_phi
+        %x_26:i32 = let %41
         store %x_20, %x_26
-        %34:bool = eq %x_26, -1i
-        if %34 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
-            discard
+        %43:bool = eq %x_26, -1i
+        if %43 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
+            store %continue_execution, false
             exit_if  # if_4
           }
-          %b14 = block {  # false
+          $B12: {  # false
             store %x_GLF_color, vec4<f32>(0.0f)
-            %35:f32 = access %x_76, 1u
-            %36:f32 = access %x_76, 2u
-            %37:vec2<f32> = construct %35, %36
-            %x_100:vec2<f32> = add %37, vec2<f32>(1.0f)
-            %39:f32 = access %x_76, 0u
-            %40:f32 = access %x_100, 0u
-            %41:f32 = access %x_100, 1u
-            %42:vec3<f32> = construct %39, %40, %41
-            store %x_101, %42
-            %43:vec3<f32> = load %x_101
-            store %color, %43
-            %44:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-            %x_103:f32 = load_vector_element %44, 0u
-            %46:bool = gt %x_103, 1.0f
-            if %46 [t: %b15] {  # if_5
-              %b15 = block {  # true
+            %44:f32 = access %x_76, 1u
+            %45:f32 = access %x_76, 2u
+            %46:vec2<f32> = construct %44, %45
+            %47:vec2<f32> = add %46, vec2<f32>(1.0f)
+            %x_100:vec2<f32> = let %47
+            %49:f32 = access %x_76, 0u
+            %50:f32 = access %x_100, 0u
+            %51:f32 = access %x_100, 1u
+            %52:vec3<f32> = construct %49, %50, %51
+            store %x_101, %52
+            %53:vec3<f32> = load %x_101
+            store %color, %53
+            %54:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+            %55:f32 = load_vector_element %54, 0u
+            %x_103:f32 = let %55
+            %57:bool = gt %x_103, 1.0f
+            if %57 [t: $B13] {  # if_5
+              $B13: {  # true
                 store %x_69, true
                 exit_loop  # loop_1
               }
@@ -139,31 +146,35 @@
             exit_if  # if_4
           }
         }
-        %47:f32 = load_vector_element %x_101, 0u
-        %48:f32 = load_vector_element %x_101, 1u
-        %49:f32 = load_vector_element %x_101, 2u
-        %50:vec4<f32> = construct %47, %48, %49, 1.0f
-        store %x_GLF_color, %50
+        %58:f32 = load_vector_element %x_101, 0u
+        %59:f32 = load_vector_element %x_101, 1u
+        %60:f32 = load_vector_element %x_101, 2u
+        %61:vec4<f32> = construct %58, %59, %60, 1.0f
+        store %x_GLF_color, %61
         store %x_69, true
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    %66:bool = load %continue_execution
+    %67:bool = eq %66, false
+    if %67 [t: $B15] {  # if_6
+      $B15: {  # true
+        terminate_invocation
+      }
+    }
+    ret %65
   }
 }
-%binarySearch_struct_tmp_struct_i1_1_1_ = func(%obj:ptr<function, tmp_struct, read_write>):i32 -> %b17 {
-  %b17 = block {
+%binarySearch_struct_tmp_struct_i1_1_1_ = func(%obj:ptr<function, tmp_struct, read_write>):i32 {
+  $B16: {
     %x_112:ptr<function, bool, read_write> = var, false
     %x_16:ptr<function, i32, read_write> = var
     %one:ptr<function, i32, read_write> = var
@@ -172,35 +183,39 @@
     %x_114_phi:ptr<function, bool, read_write> = var
     %x_28_phi:ptr<function, i32, read_write> = var
     store %x_114_phi, false
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
+    loop [b: $B17] {  # loop_4
+      $B17: {  # body
         %x_15_phi:ptr<function, i32, read_write> = var
         %x_27_phi:ptr<function, i32, read_write> = var
         %x_128_phi:ptr<function, bool, read_write> = var
-        %x_114:bool = load %x_114_phi
+        %80:bool = load %x_114_phi
+        %x_114:bool = let %80
         store %one, 1i
         store %x_15_phi, 1i
-        loop [b: %b20, c: %b21] {  # loop_5
-          %b20 = block {  # body
-            %x_15:i32 = load %x_15_phi
+        loop [b: $B18, c: $B19] {  # loop_5
+          $B18: {  # body
+            %82:i32 = load %x_15_phi
+            %x_15:i32 = let %82
             store %x_27_phi, 0i
             store %x_128_phi, %x_114
-            %69:bool = gt %x_15, 10i
-            if %69 [t: %b22, f: %b23] {  # if_6
-              %b22 = block {  # true
-                exit_if  # if_6
+            %84:bool = gt %x_15, 10i
+            if %84 [t: $B20, f: $B21] {  # if_7
+              $B20: {  # true
+                exit_if  # if_7
               }
-              %b23 = block {  # false
+              $B21: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_13:i32 = sub %x_15, 1i
+            %85:i32 = sub %x_15, 1i
+            %x_13:i32 = let %85
             store %zero, %x_13
-            %71:ptr<function, i32, read_write> = access %obj, 0u, %x_13
-            %x_14:i32 = load %71
-            %73:bool = eq %x_14, 1i
-            if %73 [t: %b24] {  # if_7
-              %b24 = block {  # true
+            %87:ptr<function, i32, read_write> = access %obj, 0u, %x_13
+            %88:i32 = load %87
+            %x_14:i32 = let %88
+            %90:bool = eq %x_14, 1i
+            if %90 [t: $B22] {  # if_8
+              $B22: {  # true
                 store %x_112, true
                 store %x_16, 1i
                 store %x_27_phi, 1i
@@ -209,20 +224,21 @@
               }
             }
             store %one, %x_13
-            continue %b21
+            continue  # -> $B19
           }
-          %b21 = block {  # continuing
+          $B19: {  # continuing
             store %x_15_phi, %x_13
-            next_iteration %b20
+            next_iteration  # -> $B18
           }
         }
-        %74:i32 = load %x_27_phi
-        store %x_27, %74
-        %x_128:bool = load %x_128_phi
-        %76:i32 = load %x_27
-        store %x_28_phi, %76
-        if %x_128 [t: %b25] {  # if_8
-          %b25 = block {  # true
+        %91:i32 = load %x_27_phi
+        store %x_27, %91
+        %92:bool = load %x_128_phi
+        %x_128:bool = let %92
+        %94:i32 = load %x_27
+        store %x_28_phi, %94
+        if %x_128 [t: $B23] {  # if_9
+          $B23: {  # true
             exit_loop  # loop_4
           }
         }
@@ -231,12 +247,9 @@
         store %x_28_phi, -1i
         exit_loop  # loop_4
       }
-      %b19 = block {  # continuing
-        store %x_114_phi, false
-        next_iteration %b18
-      }
     }
-    %x_28:i32 = load %x_28_phi
+    %95:i32 = load %x_28_phi
+    %x_28:i32 = let %95
     ret %x_28
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.msl
index 3398f27..d5c6ad1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,34 +12,36 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_30:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %8:i32 = load %i
     %9:ptr<private, i32, read_write> = access %obj, 0u, %8
     %10:i32 = load %9
     store %temp, %10
-    %x_95:i32 = load %i
-    %12:ptr<private, i32, read_write> = access %obj, 0u, %x_95
-    %13:i32 = load %j
-    %14:ptr<private, i32, read_write> = access %obj, 0u, %13
-    %15:i32 = load %14
-    store %12, %15
-    %x_100:i32 = load %j
-    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_100
-    %18:i32 = load %temp
-    store %17, %18
+    %11:i32 = load %i
+    %x_95:i32 = let %11
+    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_95
+    %14:i32 = load %j
+    %15:ptr<private, i32, read_write> = access %obj, 0u, %14
+    %16:i32 = load %15
+    store %13, %16
+    %17:i32 = load %j
+    %x_100:i32 = let %17
+    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_100
+    %20:i32 = load %temp
+    store %19, %20
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -47,69 +49,70 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %29:i32 = load %h
-    %30:ptr<private, i32, read_write> = access %obj, 0u, %29
-    %31:i32 = load %30
-    store %pivot, %31
-    %32:i32 = load %l
-    %33:i32 = sub %32, 1i
-    store %i_1, %33
+    %31:i32 = load %h
+    %32:ptr<private, i32, read_write> = access %obj, 0u, %31
+    %33:i32 = load %32
+    store %pivot, %33
     %34:i32 = load %l
-    store %j_1, %34
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %35:i32 = load %j_1
-        %36:i32 = load %h
-        %37:i32 = sub %36, 1i
-        %38:bool = lte %35, %37
-        if %38 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %35:i32 = sub %34, 1i
+    store %i_1, %35
+    %36:i32 = load %l
+    store %j_1, %36
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %37:i32 = load %j_1
+        %38:i32 = load %h
+        %39:i32 = sub %38, 1i
+        %40:bool = lte %37, %39
+        if %40 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %39:i32 = load %j_1
-        %40:ptr<private, i32, read_write> = access %obj, 0u, %39
-        %41:i32 = load %40
-        %42:i32 = load %pivot
-        %43:bool = lte %41, %42
-        if %43 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %44:i32 = load %i_1
-            %45:i32 = add %44, 1i
-            store %i_1, %45
+        %41:i32 = load %j_1
+        %42:ptr<private, i32, read_write> = access %obj, 0u, %41
+        %43:i32 = load %42
+        %44:i32 = load %pivot
+        %45:bool = lte %43, %44
+        if %45 [t: $B8] {  # if_2
+          $B8: {  # true
             %46:i32 = load %i_1
-            store %param, %46
-            %47:i32 = load %j_1
-            store %param_1, %47
-            %48:void = call %swap_i1_i1_, %param, %param_1
+            %47:i32 = add %46, 1i
+            store %i_1, %47
+            %48:i32 = load %i_1
+            store %param, %48
+            %49:i32 = load %j_1
+            store %param_1, %49
+            %50:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %49:i32 = load %j_1
-        %50:i32 = add %49, 1i
-        store %j_1, %50
-        next_iteration %b4
+      $B5: {  # continuing
+        %51:i32 = load %j_1
+        %52:i32 = add %51, 1i
+        store %j_1, %52
+        next_iteration  # -> $B4
       }
     }
-    %51:i32 = load %i_1
-    %52:i32 = add %51, 1i
-    store %param_2, %52
-    %53:i32 = load %h
-    store %param_3, %53
-    %54:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_137:i32 = load %i_1
-    %56:i32 = add %x_137, 1i
-    ret %56
+    %53:i32 = load %i_1
+    %54:i32 = add %53, 1i
+    store %param_2, %54
+    %55:i32 = load %h
+    store %param_3, %55
+    %56:void = call %swap_i1_i1_, %param_2, %param_3
+    %57:i32 = load %i_1
+    %x_137:i32 = let %57
+    %59:i32 = add %x_137, 1i
+    ret %59
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -120,155 +123,166 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %65:i32 = load %top
-    %x_141:i32 = add %65, 1i
+    %68:i32 = load %top
+    %69:i32 = add %68, 1i
+    %x_141:i32 = let %69
     store %top, %x_141
-    %67:ptr<function, i32, read_write> = access %stack, %x_141
-    %68:i32 = load %l_1
-    store %67, %68
-    %69:i32 = load %top
-    %x_145:i32 = add %69, 1i
-    store %top, %x_145
-    %71:ptr<function, i32, read_write> = access %stack, %x_145
-    %72:i32 = load %h_1
+    %71:ptr<function, i32, read_write> = access %stack, %x_141
+    %72:i32 = load %l_1
     store %71, %72
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %73:i32 = load %top
-        %74:bool = gte %73, 0i
-        if %74 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %73:i32 = load %top
+    %74:i32 = add %73, 1i
+    %x_145:i32 = let %74
+    store %top, %x_145
+    %76:ptr<function, i32, read_write> = access %stack, %x_145
+    %77:i32 = load %h_1
+    store %76, %77
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %78:i32 = load %top
+        %79:bool = gte %78, 0i
+        if %79 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_155:i32 = load %top
-        %76:i32 = load %top
-        %77:i32 = sub %76, 1i
-        store %top, %77
-        %78:ptr<function, i32, read_write> = access %stack, %x_155
-        %79:i32 = load %78
-        store %h_1, %79
-        %x_159:i32 = load %top
-        %81:i32 = load %top
-        %82:i32 = sub %81, 1i
-        store %top, %82
-        %83:ptr<function, i32, read_write> = access %stack, %x_159
-        %84:i32 = load %83
-        store %l_1, %84
-        %85:i32 = load %l_1
-        store %param_4, %85
-        %86:i32 = load %h_1
-        store %param_5, %86
-        %x_165:i32 = call %performPartition_i1_i1_, %param_4, %param_5
-        store %p, %x_165
-        %88:i32 = load %p
+        %80:i32 = load %top
+        %x_155:i32 = let %80
+        %82:i32 = load %top
+        %83:i32 = sub %82, 1i
+        store %top, %83
+        %84:ptr<function, i32, read_write> = access %stack, %x_155
+        %85:i32 = load %84
+        store %h_1, %85
+        %86:i32 = load %top
+        %x_159:i32 = let %86
+        %88:i32 = load %top
         %89:i32 = sub %88, 1i
-        %90:i32 = load %l_1
-        %91:bool = gt %89, %90
-        if %91 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %92:i32 = load %top
-            %x_173:i32 = add %92, 1i
+        store %top, %89
+        %90:ptr<function, i32, read_write> = access %stack, %x_159
+        %91:i32 = load %90
+        store %l_1, %91
+        %92:i32 = load %l_1
+        store %param_4, %92
+        %93:i32 = load %h_1
+        store %param_5, %93
+        %94:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_165:i32 = let %94
+        store %p, %x_165
+        %96:i32 = load %p
+        %97:i32 = sub %96, 1i
+        %98:i32 = load %l_1
+        %99:bool = gt %97, %98
+        if %99 [t: $B14] {  # if_4
+          $B14: {  # true
+            %100:i32 = load %top
+            %101:i32 = add %100, 1i
+            %x_173:i32 = let %101
             store %top, %x_173
-            %94:ptr<function, i32, read_write> = access %stack, %x_173
-            %95:i32 = load %l_1
-            store %94, %95
-            %96:i32 = load %top
-            %x_177:i32 = add %96, 1i
+            %103:ptr<function, i32, read_write> = access %stack, %x_173
+            %104:i32 = load %l_1
+            store %103, %104
+            %105:i32 = load %top
+            %106:i32 = add %105, 1i
+            %x_177:i32 = let %106
             store %top, %x_177
-            %98:ptr<function, i32, read_write> = access %stack, %x_177
-            %99:i32 = load %p
-            %100:i32 = sub %99, 1i
-            store %98, %100
+            %108:ptr<function, i32, read_write> = access %stack, %x_177
+            %109:i32 = load %p
+            %110:i32 = sub %109, 1i
+            store %108, %110
             exit_if  # if_4
           }
         }
-        %101:i32 = load %p
-        %102:i32 = add %101, 1i
-        %103:i32 = load %h_1
-        %104:bool = lt %102, %103
-        if %104 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %105:i32 = load %top
-            %x_188:i32 = add %105, 1i
+        %111:i32 = load %p
+        %112:i32 = add %111, 1i
+        %113:i32 = load %h_1
+        %114:bool = lt %112, %113
+        if %114 [t: $B15] {  # if_5
+          $B15: {  # true
+            %115:i32 = load %top
+            %116:i32 = add %115, 1i
+            %x_188:i32 = let %116
             store %top, %x_188
-            %107:ptr<function, i32, read_write> = access %stack, %x_188
-            %108:i32 = load %p
-            %109:i32 = add %108, 1i
-            store %107, %109
-            %110:i32 = load %top
-            %x_193:i32 = add %110, 1i
+            %118:ptr<function, i32, read_write> = access %stack, %x_188
+            %119:i32 = load %p
+            %120:i32 = add %119, 1i
+            store %118, %120
+            %121:i32 = load %top
+            %122:i32 = add %121, 1i
+            %x_193:i32 = let %122
             store %top, %x_193
-            %112:ptr<function, i32, read_write> = access %stack, %x_193
-            %113:i32 = load %h_1
-            store %112, %113
+            %124:ptr<function, i32, read_write> = access %stack, %x_193
+            %125:i32 = load %h_1
+            store %124, %125
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %116:i32 = load %i_2
-        %117:bool = lt %116, 10i
-        if %117 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %128:i32 = load %i_2
+        %129:bool = lt %128, 10i
+        if %129 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_67:i32 = load %i_2
-        %119:ptr<private, i32, read_write> = access %obj, 0u, %x_67
-        %120:i32 = load %i_2
-        %121:i32 = sub 10i, %120
-        store %119, %121
-        %x_71:i32 = load %i_2
-        %123:ptr<private, i32, read_write> = access %obj, 0u, %x_71
-        %124:i32 = load %i_2
-        %125:ptr<private, i32, read_write> = access %obj, 0u, %124
-        %126:i32 = load %125
-        %127:i32 = load %i_2
-        %128:ptr<private, i32, read_write> = access %obj, 0u, %127
-        %129:i32 = load %128
-        %130:i32 = mul %126, %129
-        store %123, %130
-        continue %b18
+        %130:i32 = load %i_2
+        %x_67:i32 = let %130
+        %132:ptr<private, i32, read_write> = access %obj, 0u, %x_67
+        %133:i32 = load %i_2
+        %134:i32 = sub 10i, %133
+        store %132, %134
+        %135:i32 = load %i_2
+        %x_71:i32 = let %135
+        %137:ptr<private, i32, read_write> = access %obj, 0u, %x_71
+        %138:i32 = load %i_2
+        %139:ptr<private, i32, read_write> = access %obj, 0u, %138
+        %140:i32 = load %139
+        %141:i32 = load %i_2
+        %142:ptr<private, i32, read_write> = access %obj, 0u, %141
+        %143:i32 = load %142
+        %144:i32 = mul %140, %143
+        store %137, %144
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %131:i32 = load %i_2
-        %132:i32 = add %131, 1i
-        store %i_2, %132
-        next_iteration %b17
+      $B18: {  # continuing
+        %145:i32 = load %i_2
+        %146:i32 = add %145, 1i
+        store %i_2, %146
+        next_iteration  # -> $B17
       }
     }
-    %133:void = call %quicksort_
-    %134:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %135:i32 = load %134
-    %136:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %137:i32 = load %136
-    %138:bool = lt %135, %137
-    if %138 [t: %b21, f: %b22] {  # if_7
-      %b21 = block {  # true
+    %147:void = call %quicksort_
+    %148:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %149:i32 = load %148
+    %150:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %151:i32 = load %150
+    %152:bool = lt %149, %151
+    if %152 [t: $B21, f: $B22] {  # if_7
+      $B21: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b22 = block {  # false
+      $B22: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -276,12 +290,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b23 {
-  %b23 = block {
-    %140:void = call %main_1
-    %141:vec4<f32> = load %x_GLF_color
-    %142:main_out = construct %141
-    ret %142
+%tint_symbol = @fragment func():main_out {
+  $B23: {
+    %154:void = call %main_1
+    %155:vec4<f32> = load %x_GLF_color
+    %156:main_out = construct %155
+    ret %156
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.msl
index c08d3e0..67e4926 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/arr-value-set-to-arr-value-squared/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,34 +12,41 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_30:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_92:i32 = load %i
-    %9:ptr<private, i32, read_write> = access %obj, 0u, %x_92
-    %x_94:i32 = load %9
+    %8:i32 = load %i
+    %x_92:i32 = let %8
+    %10:ptr<private, i32, read_write> = access %obj, 0u, %x_92
+    %11:i32 = load %10
+    %x_94:i32 = let %11
     store %temp, %x_94
-    %x_95:i32 = load %i
-    %x_96:i32 = load %j
-    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_96
-    %x_98:i32 = load %13
-    %15:ptr<private, i32, read_write> = access %obj, 0u, %x_95
-    store %15, %x_98
-    %x_100:i32 = load %j
-    %x_101:i32 = load %temp
-    %18:ptr<private, i32, read_write> = access %obj, 0u, %x_100
-    store %18, %x_101
+    %13:i32 = load %i
+    %x_95:i32 = let %13
+    %15:i32 = load %j
+    %x_96:i32 = let %15
+    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_96
+    %18:i32 = load %17
+    %x_98:i32 = let %18
+    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_95
+    store %20, %x_98
+    %21:i32 = load %j
+    %x_100:i32 = let %21
+    %23:i32 = load %temp
+    %x_101:i32 = let %23
+    %25:ptr<private, i32, read_write> = access %obj, 0u, %x_100
+    store %25, %x_101
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -47,69 +54,85 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_104:i32 = load %h
-    %30:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-    %x_106:i32 = load %30
+    %36:i32 = load %h
+    %x_104:i32 = let %36
+    %38:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+    %39:i32 = load %38
+    %x_106:i32 = let %39
     store %pivot, %x_106
-    %x_107:i32 = load %l
-    %33:i32 = sub %x_107, 1i
-    store %i_1, %33
-    %x_109:i32 = load %l
+    %41:i32 = load %l
+    %x_107:i32 = let %41
+    %43:i32 = sub %x_107, 1i
+    store %i_1, %43
+    %44:i32 = load %l
+    %x_109:i32 = let %44
     store %j_1, %x_109
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_114:i32 = load %j_1
-        %x_115:i32 = load %h
-        %37:i32 = sub %x_115, 1i
-        %38:bool = lte %x_114, %37
-        if %38 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %46:i32 = load %j_1
+        %x_114:i32 = let %46
+        %48:i32 = load %h
+        %x_115:i32 = let %48
+        %50:i32 = sub %x_115, 1i
+        %51:bool = lte %x_114, %50
+        if %51 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_119:i32 = load %j_1
-        %40:ptr<private, i32, read_write> = access %obj, 0u, %x_119
-        %x_121:i32 = load %40
-        %x_122:i32 = load %pivot
-        %43:bool = lte %x_121, %x_122
-        if %43 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_126:i32 = load %i_1
-            %45:i32 = add %x_126, 1i
-            store %i_1, %45
-            %x_128:i32 = load %i_1
+        %52:i32 = load %j_1
+        %x_119:i32 = let %52
+        %54:ptr<private, i32, read_write> = access %obj, 0u, %x_119
+        %55:i32 = load %54
+        %x_121:i32 = let %55
+        %57:i32 = load %pivot
+        %x_122:i32 = let %57
+        %59:bool = lte %x_121, %x_122
+        if %59 [t: $B8] {  # if_2
+          $B8: {  # true
+            %60:i32 = load %i_1
+            %x_126:i32 = let %60
+            %62:i32 = add %x_126, 1i
+            store %i_1, %62
+            %63:i32 = load %i_1
+            %x_128:i32 = let %63
             store %param, %x_128
-            %x_129:i32 = load %j_1
+            %65:i32 = load %j_1
+            %x_129:i32 = let %65
             store %param_1, %x_129
-            %48:void = call %swap_i1_i1_, %param, %param_1
+            %67:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_131:i32 = load %j_1
-        %50:i32 = add %x_131, 1i
-        store %j_1, %50
-        next_iteration %b4
+      $B5: {  # continuing
+        %68:i32 = load %j_1
+        %x_131:i32 = let %68
+        %70:i32 = add %x_131, 1i
+        store %j_1, %70
+        next_iteration  # -> $B4
       }
     }
-    %x_133:i32 = load %i_1
-    %52:i32 = add %x_133, 1i
-    store %param_2, %52
-    %x_135:i32 = load %h
+    %71:i32 = load %i_1
+    %x_133:i32 = let %71
+    %73:i32 = add %x_133, 1i
+    store %param_2, %73
+    %74:i32 = load %h
+    %x_135:i32 = let %74
     store %param_3, %x_135
-    %54:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_137:i32 = load %i_1
-    %56:i32 = add %x_137, 1i
-    ret %56
+    %76:void = call %swap_i1_i1_, %param_2, %param_3
+    %77:i32 = load %i_1
+    %x_137:i32 = let %77
+    %79:i32 = add %x_137, 1i
+    ret %79
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -120,153 +143,194 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_140:i32 = load %top
-    %x_141:i32 = add %x_140, 1i
+    %88:i32 = load %top
+    %x_140:i32 = let %88
+    %90:i32 = add %x_140, 1i
+    %x_141:i32 = let %90
     store %top, %x_141
-    %x_142:i32 = load %l_1
-    %68:ptr<function, i32, read_write> = access %stack, %x_141
-    store %68, %x_142
-    %x_144:i32 = load %top
-    %x_145:i32 = add %x_144, 1i
+    %92:i32 = load %l_1
+    %x_142:i32 = let %92
+    %94:ptr<function, i32, read_write> = access %stack, %x_141
+    store %94, %x_142
+    %95:i32 = load %top
+    %x_144:i32 = let %95
+    %97:i32 = add %x_144, 1i
+    %x_145:i32 = let %97
     store %top, %x_145
-    %x_146:i32 = load %h_1
-    %72:ptr<function, i32, read_write> = access %stack, %x_145
-    store %72, %x_146
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_152:i32 = load %top
-        %74:bool = gte %x_152, 0i
-        if %74 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %99:i32 = load %h_1
+    %x_146:i32 = let %99
+    %101:ptr<function, i32, read_write> = access %stack, %x_145
+    store %101, %x_146
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %102:i32 = load %top
+        %x_152:i32 = let %102
+        %104:bool = gte %x_152, 0i
+        if %104 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_155:i32 = load %top
-        %76:i32 = sub %x_155, 1i
-        store %top, %76
-        %77:ptr<function, i32, read_write> = access %stack, %x_155
-        %x_158:i32 = load %77
+        %105:i32 = load %top
+        %x_155:i32 = let %105
+        %107:i32 = sub %x_155, 1i
+        store %top, %107
+        %108:ptr<function, i32, read_write> = access %stack, %x_155
+        %109:i32 = load %108
+        %x_158:i32 = let %109
         store %h_1, %x_158
-        %x_159:i32 = load %top
-        %80:i32 = sub %x_159, 1i
-        store %top, %80
-        %81:ptr<function, i32, read_write> = access %stack, %x_159
-        %x_162:i32 = load %81
+        %111:i32 = load %top
+        %x_159:i32 = let %111
+        %113:i32 = sub %x_159, 1i
+        store %top, %113
+        %114:ptr<function, i32, read_write> = access %stack, %x_159
+        %115:i32 = load %114
+        %x_162:i32 = let %115
         store %l_1, %x_162
-        %x_163:i32 = load %l_1
+        %117:i32 = load %l_1
+        %x_163:i32 = let %117
         store %param_4, %x_163
-        %x_164:i32 = load %h_1
+        %119:i32 = load %h_1
+        %x_164:i32 = let %119
         store %param_5, %x_164
-        %x_165:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %121:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_165:i32 = let %121
         store %p, %x_165
-        %x_166:i32 = load %p
-        %x_168:i32 = load %l_1
-        %88:i32 = sub %x_166, 1i
-        %89:bool = gt %88, %x_168
-        if %89 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %x_172:i32 = load %top
-            %x_173:i32 = add %x_172, 1i
+        %123:i32 = load %p
+        %x_166:i32 = let %123
+        %125:i32 = load %l_1
+        %x_168:i32 = let %125
+        %127:i32 = sub %x_166, 1i
+        %128:bool = gt %127, %x_168
+        if %128 [t: $B14] {  # if_4
+          $B14: {  # true
+            %129:i32 = load %top
+            %x_172:i32 = let %129
+            %131:i32 = add %x_172, 1i
+            %x_173:i32 = let %131
             store %top, %x_173
-            %x_174:i32 = load %l_1
-            %93:ptr<function, i32, read_write> = access %stack, %x_173
-            store %93, %x_174
-            %x_176:i32 = load %top
-            %x_177:i32 = add %x_176, 1i
+            %133:i32 = load %l_1
+            %x_174:i32 = let %133
+            %135:ptr<function, i32, read_write> = access %stack, %x_173
+            store %135, %x_174
+            %136:i32 = load %top
+            %x_176:i32 = let %136
+            %138:i32 = add %x_176, 1i
+            %x_177:i32 = let %138
             store %top, %x_177
-            %x_178:i32 = load %p
-            %97:ptr<function, i32, read_write> = access %stack, %x_177
-            %98:i32 = sub %x_178, 1i
-            store %97, %98
+            %140:i32 = load %p
+            %x_178:i32 = let %140
+            %142:ptr<function, i32, read_write> = access %stack, %x_177
+            %143:i32 = sub %x_178, 1i
+            store %142, %143
             exit_if  # if_4
           }
         }
-        %x_181:i32 = load %p
-        %x_183:i32 = load %h_1
-        %101:i32 = add %x_181, 1i
-        %102:bool = lt %101, %x_183
-        if %102 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %x_187:i32 = load %top
-            %x_188:i32 = add %x_187, 1i
+        %144:i32 = load %p
+        %x_181:i32 = let %144
+        %146:i32 = load %h_1
+        %x_183:i32 = let %146
+        %148:i32 = add %x_181, 1i
+        %149:bool = lt %148, %x_183
+        if %149 [t: $B15] {  # if_5
+          $B15: {  # true
+            %150:i32 = load %top
+            %x_187:i32 = let %150
+            %152:i32 = add %x_187, 1i
+            %x_188:i32 = let %152
             store %top, %x_188
-            %x_189:i32 = load %p
-            %106:ptr<function, i32, read_write> = access %stack, %x_188
-            %107:i32 = add %x_189, 1i
-            store %106, %107
-            %x_192:i32 = load %top
-            %x_193:i32 = add %x_192, 1i
+            %154:i32 = load %p
+            %x_189:i32 = let %154
+            %156:ptr<function, i32, read_write> = access %stack, %x_188
+            %157:i32 = add %x_189, 1i
+            store %156, %157
+            %158:i32 = load %top
+            %x_192:i32 = let %158
+            %160:i32 = add %x_192, 1i
+            %x_193:i32 = let %160
             store %top, %x_193
-            %x_194:i32 = load %h_1
-            %111:ptr<function, i32, read_write> = access %stack, %x_193
-            store %111, %x_194
+            %162:i32 = load %h_1
+            %x_194:i32 = let %162
+            %164:ptr<function, i32, read_write> = access %stack, %x_193
+            store %164, %x_194
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_64:i32 = load %i_2
-        %115:bool = lt %x_64, 10i
-        if %115 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %167:i32 = load %i_2
+        %x_64:i32 = let %167
+        %169:bool = lt %x_64, 10i
+        if %169 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_67:i32 = load %i_2
-        %x_68:i32 = load %i_2
-        %118:ptr<private, i32, read_write> = access %obj, 0u, %x_67
-        %119:i32 = sub 10i, %x_68
-        store %118, %119
-        %x_71:i32 = load %i_2
-        %x_72:i32 = load %i_2
-        %122:ptr<private, i32, read_write> = access %obj, 0u, %x_72
-        %x_74:i32 = load %122
-        %x_75:i32 = load %i_2
-        %125:ptr<private, i32, read_write> = access %obj, 0u, %x_75
-        %x_77:i32 = load %125
-        %127:ptr<private, i32, read_write> = access %obj, 0u, %x_71
-        %128:i32 = mul %x_74, %x_77
-        store %127, %128
-        continue %b18
+        %170:i32 = load %i_2
+        %x_67:i32 = let %170
+        %172:i32 = load %i_2
+        %x_68:i32 = let %172
+        %174:ptr<private, i32, read_write> = access %obj, 0u, %x_67
+        %175:i32 = sub 10i, %x_68
+        store %174, %175
+        %176:i32 = load %i_2
+        %x_71:i32 = let %176
+        %178:i32 = load %i_2
+        %x_72:i32 = let %178
+        %180:ptr<private, i32, read_write> = access %obj, 0u, %x_72
+        %181:i32 = load %180
+        %x_74:i32 = let %181
+        %183:i32 = load %i_2
+        %x_75:i32 = let %183
+        %185:ptr<private, i32, read_write> = access %obj, 0u, %x_75
+        %186:i32 = load %185
+        %x_77:i32 = let %186
+        %188:ptr<private, i32, read_write> = access %obj, 0u, %x_71
+        %189:i32 = mul %x_74, %x_77
+        store %188, %189
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %x_80:i32 = load %i_2
-        %130:i32 = add %x_80, 1i
-        store %i_2, %130
-        next_iteration %b17
+      $B18: {  # continuing
+        %190:i32 = load %i_2
+        %x_80:i32 = let %190
+        %192:i32 = add %x_80, 1i
+        store %i_2, %192
+        next_iteration  # -> $B17
       }
     }
-    %131:void = call %quicksort_
-    %132:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_84:i32 = load %132
-    %134:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_86:i32 = load %134
-    %136:bool = lt %x_84, %x_86
-    if %136 [t: %b21, f: %b22] {  # if_7
-      %b21 = block {  # true
+    %193:void = call %quicksort_
+    %194:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %195:i32 = load %194
+    %x_84:i32 = let %195
+    %197:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %198:i32 = load %197
+    %x_86:i32 = let %198
+    %200:bool = lt %x_84, %x_86
+    if %200 [t: $B21, f: $B22] {  # if_7
+      $B21: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b22 = block {  # false
+      $B22: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -274,12 +338,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b23 {
-  %b23 = block {
-    %138:void = call %main_1
-    %139:vec4<f32> = load %x_GLF_color
-    %140:main_out = construct %139
-    ret %140
+%tint_symbol = @fragment func():main_out {
+  $B23: {
+    %202:void = call %main_1
+    %203:vec4<f32> = load %x_GLF_color
+    %204:main_out = construct %203
+    ret %204
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.msl
index 42dd95e..e3753ab 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,19 +8,19 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %x:ptr<function, i32, read_write> = var
     %6:f32 = load_vector_element %gl_FragCoord, 0u
     %7:bool = lt %6, 1.0f
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 5.0f
       }
     }
@@ -29,145 +29,162 @@
     %10:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %11:f32 = load_vector_element %10, 1u
     %12:bool = gt %9, %11
-    if %12 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %12 [t: $B4] {  # if_2
+      $B4: {  # true
         ret 1.0f
       }
     }
     %13:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %14:f32 = load_vector_element %13, 0u
-    %15:i32 = convert %14
+    %15:i32 = call %tint_f32_to_i32, %14
     store %x, %15
-    %16:i32 = load %x
-    %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %18:f32 = load_vector_element %17, 0u
-    %19:f32 = clamp %18, 0.0f, 1.0f
-    %20:i32 = convert %19
-    %21:i32 = mul %20, 3i
-    %22:i32 = add %16, %21
-    store %x, %22
-    %x_120:i32 = load %x
-    %24:f32 = convert %x_120
-    %25:f32 = add 5.0f, %24
-    ret %25
+    %17:i32 = load %x
+    %18:i32 = let %17
+    %19:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %20:f32 = load_vector_element %19, 0u
+    %21:f32 = clamp %20, 0.0f, 1.0f
+    %22:i32 = call %tint_f32_to_i32, %21
+    %23:i32 = mul %22, 3i
+    %24:i32 = add %18, %23
+    store %x, %24
+    %25:i32 = load %x
+    %x_120:i32 = let %25
+    %27:f32 = convert %x_120
+    %28:f32 = add 5.0f, %27
+    ret %28
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %data:ptr<function, array<vec2<f32>, 17>, read_write> = var
     store %i, 0i
-    loop [b: %b6, c: %b7] {  # loop_1
-      %b6 = block {  # body
-        %30:i32 = load %i
-        %31:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %32:f32 = load_vector_element %31, 0u
-        %33:i32 = convert %32
-        %34:i32 = add 4i, %33
-        %35:bool = lt %30, %34
-        if %35 [t: %b8, f: %b9] {  # if_3
-          %b8 = block {  # true
+    loop [b: $B6, c: $B7] {  # loop_1
+      $B6: {  # body
+        %33:i32 = load %i
+        %34:i32 = let %33
+        %35:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %36:f32 = load_vector_element %35, 0u
+        %37:i32 = call %tint_f32_to_i32, %36
+        %38:i32 = add 4i, %37
+        %39:bool = lt %34, %38
+        if %39 [t: $B8, f: $B9] {  # if_3
+          $B8: {  # true
             exit_if  # if_3
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %36:f32 = load_vector_element %gl_FragCoord, 0u
-        %37:bool = gte %36, 0.0f
-        if %37 [t: %b10] {  # if_4
-          %b10 = block {  # true
+        %40:f32 = load_vector_element %gl_FragCoord, 0u
+        %41:bool = gte %40, 0.0f
+        if %41 [t: $B10] {  # if_4
+          $B10: {  # true
             store %j, 0i
-            loop [b: %b11, c: %b12] {  # loop_2
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_2
+              $B11: {  # body
                 %x_81:ptr<function, bool, read_write> = var
                 %x_82:ptr<function, bool, read_write> = var
-                %40:i32 = load %j
-                %41:bool = lt %40, 4i
-                if %41 [t: %b13, f: %b14] {  # if_5
-                  %b13 = block {  # true
+                %44:i32 = load %j
+                %45:bool = lt %44, 4i
+                if %45 [t: $B13, f: $B14] {  # if_5
+                  $B13: {  # true
                     exit_if  # if_5
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                %x_67:i32 = load %j
-                %x_69:i32 = load %i
-                %x_71:f32 = call %func_
-                %45:i32 = mul 4i, %x_67
-                %46:i32 = add %45, %x_69
-                %47:ptr<function, vec2<f32>, read_write> = access %data, %46
-                store_vector_element %47, 0u, %x_71
-                %48:ptr<function, vec2<f32>, read_write> = access %data, 0i
-                %49:f32 = load_vector_element %48, 0u
-                %x_75:bool = eq %49, 5.0f
+                %46:i32 = load %j
+                %x_67:i32 = let %46
+                %48:i32 = load %i
+                %x_69:i32 = let %48
+                %50:f32 = call %func_
+                %x_71:f32 = let %50
+                %52:i32 = mul 4i, %x_67
+                %53:i32 = add %52, %x_69
+                %54:ptr<function, vec2<f32>, read_write> = access %data, %53
+                store_vector_element %54, 0u, %x_71
+                %55:ptr<function, vec2<f32>, read_write> = access %data, 0i
+                %56:f32 = load_vector_element %55, 0u
+                %57:bool = eq %56, 5.0f
+                %x_75:bool = let %57
                 store %x_82, %x_75
-                %51:bool = eq %x_75, false
-                if %51 [t: %b15] {  # if_6
-                  %b15 = block {  # true
-                    %52:ptr<function, vec2<f32>, read_write> = access %data, 15i
-                    %53:f32 = load_vector_element %52, 0u
-                    %54:bool = eq %53, 5.0f
-                    store %x_81, %54
-                    %55:bool = load %x_81
-                    store %x_82, %55
+                %59:bool = eq %x_75, false
+                if %59 [t: $B15] {  # if_6
+                  $B15: {  # true
+                    %60:ptr<function, vec2<f32>, read_write> = access %data, 15i
+                    %61:f32 = load_vector_element %60, 0u
+                    %62:bool = eq %61, 5.0f
+                    store %x_81, %62
+                    %63:bool = load %x_81
+                    store %x_82, %63
                     exit_if  # if_6
                   }
                 }
-                %56:bool = load %x_82
-                if %56 [t: %b16, f: %b17] {  # if_7
-                  %b16 = block {  # true
+                %64:bool = load %x_82
+                if %64 [t: $B16, f: $B17] {  # if_7
+                  $B16: {  # true
                     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                     exit_if  # if_7
                   }
-                  %b17 = block {  # false
+                  $B17: {  # false
                     store %x_GLF_color, vec4<f32>(0.0f)
                     exit_if  # if_7
                   }
                 }
-                %57:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-                %58:f32 = load_vector_element %57, 0u
-                %59:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-                %60:f32 = load_vector_element %59, 1u
-                %61:bool = gt %58, %60
-                if %61 [t: %b18] {  # if_8
-                  %b18 = block {  # true
+                %65:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+                %66:f32 = load_vector_element %65, 0u
+                %67:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+                %68:f32 = load_vector_element %67, 1u
+                %69:bool = gt %66, %68
+                if %69 [t: $B18] {  # if_8
+                  $B18: {  # true
                     ret
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %62:i32 = load %j
-                %63:i32 = add %62, 1i
-                store %j, %63
-                next_iteration %b11
+              $B12: {  # continuing
+                %70:i32 = load %j
+                %71:i32 = add %70, 1i
+                store %j, %71
+                next_iteration  # -> $B11
               }
             }
             exit_if  # if_4
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %64:i32 = load %i
-        %65:i32 = add %64, 1i
-        store %i, %65
-        next_iteration %b6
+      $B7: {  # continuing
+        %72:i32 = load %i
+        %73:i32 = add %72, 1i
+        store %i, %73
+        next_iteration  # -> $B6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+    %76:void = call %main_1
+    %77:vec4<f32> = load %x_GLF_color
+    %78:main_out = construct %77
+    ret %78
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %80:i32 = convert %value
+    %81:bool = gte %value, -2147483648.0f
+    %82:i32 = select -2147483648i, %80, %81
+    %83:bool = lte %value, 2147483520.0f
+    %84:i32 = select 2147483647i, %82, %83
+    ret %84
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.msl
index 59880b5..82260ba 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/array-idx-multiplied-by-for-loop-idx/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,166 +8,198 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %x:ptr<function, i32, read_write> = var
-    %x_99:f32 = load_vector_element %gl_FragCoord, 0u
-    %7:bool = lt %x_99, 1.0f
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_99:f32 = let %6
+    %8:bool = lt %x_99, 1.0f
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 5.0f
       }
     }
-    %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_104:f32 = load_vector_element %8, 0u
-    %10:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_106:f32 = load_vector_element %10, 1u
-    %12:bool = gt %x_104, %x_106
-    if %12 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %9:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %10:f32 = load_vector_element %9, 0u
+    %x_104:f32 = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %13:f32 = load_vector_element %12, 1u
+    %x_106:f32 = let %13
+    %15:bool = gt %x_104, %x_106
+    if %15 [t: $B4] {  # if_2
+      $B4: {  # true
         ret 1.0f
       }
     }
-    %13:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_111:f32 = load_vector_element %13, 0u
-    %15:i32 = convert %x_111
-    store %x, %15
     %16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_114:f32 = load_vector_element %16, 0u
-    %x_118:i32 = load %x
-    %19:f32 = clamp %x_114, 0.0f, 1.0f
-    %20:i32 = convert %19
-    %21:i32 = mul %20, 3i
-    %22:i32 = add %x_118, %21
-    store %x, %22
-    %x_120:i32 = load %x
-    %24:f32 = convert %x_120
-    %25:f32 = add 5.0f, %24
-    ret %25
+    %17:f32 = load_vector_element %16, 0u
+    %x_111:f32 = let %17
+    %19:i32 = call %tint_f32_to_i32, %x_111
+    store %x, %19
+    %21:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %22:f32 = load_vector_element %21, 0u
+    %x_114:f32 = let %22
+    %24:i32 = load %x
+    %x_118:i32 = let %24
+    %26:f32 = clamp %x_114, 0.0f, 1.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:i32 = mul %27, 3i
+    %29:i32 = add %x_118, %28
+    store %x, %29
+    %30:i32 = load %x
+    %x_120:i32 = let %30
+    %32:f32 = convert %x_120
+    %33:f32 = add 5.0f, %32
+    ret %33
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %data:ptr<function, array<vec2<f32>, 17>, read_write> = var
     store %i, 0i
-    loop [b: %b6, c: %b7] {  # loop_1
-      %b6 = block {  # body
-        %x_48:i32 = load %i
-        %31:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_50:f32 = load_vector_element %31, 0u
-        %33:i32 = convert %x_50
-        %34:i32 = add 4i, %33
-        %35:bool = lt %x_48, %34
-        if %35 [t: %b8, f: %b9] {  # if_3
-          %b8 = block {  # true
+    loop [b: $B6, c: $B7] {  # loop_1
+      $B6: {  # body
+        %38:i32 = load %i
+        %x_48:i32 = let %38
+        %40:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %41:f32 = load_vector_element %40, 0u
+        %x_50:f32 = let %41
+        %43:i32 = call %tint_f32_to_i32, %x_50
+        %44:i32 = add 4i, %43
+        %45:bool = lt %x_48, %44
+        if %45 [t: $B8, f: $B9] {  # if_3
+          $B8: {  # true
             exit_if  # if_3
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_56:f32 = load_vector_element %gl_FragCoord, 0u
-        %37:bool = gte %x_56, 0.0f
-        if %37 [t: %b10] {  # if_4
-          %b10 = block {  # true
+        %46:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_56:f32 = let %46
+        %48:bool = gte %x_56, 0.0f
+        if %48 [t: $B10] {  # if_4
+          $B10: {  # true
             store %j, 0i
-            loop [b: %b11, c: %b12] {  # loop_2
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_2
+              $B11: {  # body
                 %x_81:ptr<function, bool, read_write> = var
                 %x_82_phi:ptr<function, bool, read_write> = var
-                %x_64:i32 = load %j
-                %41:bool = lt %x_64, 4i
-                if %41 [t: %b13, f: %b14] {  # if_5
-                  %b13 = block {  # true
+                %51:i32 = load %j
+                %x_64:i32 = let %51
+                %53:bool = lt %x_64, 4i
+                if %53 [t: $B13, f: $B14] {  # if_5
+                  $B13: {  # true
                     exit_if  # if_5
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                %x_67:i32 = load %j
-                %x_69:i32 = load %i
-                %x_71:f32 = call %func_
-                %45:i32 = mul 4i, %x_67
-                %46:i32 = add %45, %x_69
-                %47:ptr<function, vec2<f32>, read_write> = access %data, %46
-                store_vector_element %47, 0u, %x_71
-                %48:ptr<function, vec2<f32>, read_write> = access %data, 0i
-                %x_74:f32 = load_vector_element %48, 0u
-                %x_75:bool = eq %x_74, 5.0f
+                %54:i32 = load %j
+                %x_67:i32 = let %54
+                %56:i32 = load %i
+                %x_69:i32 = let %56
+                %58:f32 = call %func_
+                %x_71:f32 = let %58
+                %60:i32 = mul 4i, %x_67
+                %61:i32 = add %60, %x_69
+                %62:ptr<function, vec2<f32>, read_write> = access %data, %61
+                store_vector_element %62, 0u, %x_71
+                %63:ptr<function, vec2<f32>, read_write> = access %data, 0i
+                %64:f32 = load_vector_element %63, 0u
+                %x_74:f32 = let %64
+                %66:bool = eq %x_74, 5.0f
+                %x_75:bool = let %66
                 store %x_82_phi, %x_75
-                %51:bool = eq %x_75, false
-                if %51 [t: %b15] {  # if_6
-                  %b15 = block {  # true
-                    %52:ptr<function, vec2<f32>, read_write> = access %data, 15i
-                    %x_80:f32 = load_vector_element %52, 0u
-                    %54:bool = eq %x_80, 5.0f
-                    store %x_81, %54
-                    %55:bool = load %x_81
-                    store %x_82_phi, %55
+                %68:bool = eq %x_75, false
+                if %68 [t: $B15] {  # if_6
+                  $B15: {  # true
+                    %69:ptr<function, vec2<f32>, read_write> = access %data, 15i
+                    %70:f32 = load_vector_element %69, 0u
+                    %x_80:f32 = let %70
+                    %72:bool = eq %x_80, 5.0f
+                    store %x_81, %72
+                    %73:bool = load %x_81
+                    store %x_82_phi, %73
                     exit_if  # if_6
                   }
                 }
-                %x_82:bool = load %x_82_phi
-                if %x_82 [t: %b16, f: %b17] {  # if_7
-                  %b16 = block {  # true
+                %74:bool = load %x_82_phi
+                %x_82:bool = let %74
+                if %x_82 [t: $B16, f: $B17] {  # if_7
+                  $B16: {  # true
                     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                     exit_if  # if_7
                   }
-                  %b17 = block {  # false
+                  $B17: {  # false
                     store %x_GLF_color, vec4<f32>(0.0f)
                     exit_if  # if_7
                   }
                 }
-                %57:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-                %x_87:f32 = load_vector_element %57, 0u
-                %59:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-                %x_89:f32 = load_vector_element %59, 1u
-                %61:bool = gt %x_87, %x_89
-                if %61 [t: %b18] {  # if_8
-                  %b18 = block {  # true
+                %76:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+                %77:f32 = load_vector_element %76, 0u
+                %x_87:f32 = let %77
+                %79:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+                %80:f32 = load_vector_element %79, 1u
+                %x_89:f32 = let %80
+                %82:bool = gt %x_87, %x_89
+                if %82 [t: $B18] {  # if_8
+                  $B18: {  # true
                     ret
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_93:i32 = load %j
-                %63:i32 = add %x_93, 1i
-                store %j, %63
-                next_iteration %b11
+              $B12: {  # continuing
+                %83:i32 = load %j
+                %x_93:i32 = let %83
+                %85:i32 = add %x_93, 1i
+                store %j, %85
+                next_iteration  # -> $B11
               }
             }
             exit_if  # if_4
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %x_95:i32 = load %i
-        %65:i32 = add %x_95, 1i
-        store %i, %65
-        next_iteration %b6
+      $B7: {  # continuing
+        %86:i32 = load %i
+        %x_95:i32 = let %86
+        %88:i32 = add %x_95, 1i
+        store %i, %88
+        next_iteration  # -> $B6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    ret %93
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %95:i32 = convert %value
+    %96:bool = gte %value, -2147483648.0f
+    %97:i32 = select -2147483648i, %95, %96
+    %98:bool = lte %value, 2147483520.0f
+    %99:i32 = select 2147483647i, %97, %98
+    ret %99
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.msl
index efdd3b1..dec6571 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,193 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %data:ptr<private, array<i32, 9>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %temp:ptr<private, array<i32, 7>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_i1_ = func(%a:ptr<function, i32, read_write>):f32 {
+  $B2: {
+    %b:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %x_115:ptr<function, bool, read_write> = var
+    %x_116:ptr<function, bool, read_write> = var
+    store %b, 0i
+    %11:ptr<private, i32, read_write> = access %data, 0i
+    store %11, 5i
+    %12:ptr<private, i32, read_write> = access %data, 2i
+    store %12, 0i
+    %13:ptr<private, i32, read_write> = access %data, 4i
+    store %13, 0i
+    %14:ptr<private, i32, read_write> = access %data, 6i
+    store %14, 0i
+    %15:ptr<private, i32, read_write> = access %data, 8i
+    store %15, 0i
+    %16:f32 = load_vector_element %gl_FragCoord, 0u
+    %17:bool = gte %16, 0.0f
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %18:i32 = load %b
+            %19:i32 = load %a
+            %20:bool = lte %18, %19
+            if %20 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                exit_if  # if_2
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            %21:i32 = load %b
+            %22:bool = lte %21, 5i
+            if %22 [t: $B8] {  # if_3
+              $B8: {  # true
+                %23:i32 = load %b
+                %x_87:i32 = let %23
+                %25:ptr<private, i32, read_write> = access %temp, %x_87
+                %26:i32 = load %b
+                %27:ptr<private, i32, read_write> = access %data, %26
+                %28:i32 = load %27
+                store %25, %28
+                %29:i32 = load %b
+                %30:i32 = add %29, 2i
+                store %b, %30
+                exit_if  # if_3
+              }
+            }
+            continue  # -> $B5
+          }
+          $B5: {  # continuing
+            next_iteration  # -> $B4
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    store %i, 0i
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %31:i32 = load %i
+        %32:bool = lt %31, 3i
+        if %32 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
+            exit_if  # if_4
+          }
+          $B12: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %33:i32 = load %i
+        %x_101:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_101
+        %36:ptr<private, i32, read_write> = access %temp, 0i
+        %37:i32 = load %36
+        %38:i32 = add %37, 1i
+        store %35, %38
+        continue  # -> $B10
+      }
+      $B10: {  # continuing
+        %39:i32 = load %i
+        %40:i32 = add %39, 1i
+        store %i, %40
+        next_iteration  # -> $B9
+      }
+    }
+    %41:ptr<private, i32, read_write> = access %temp, 0i
+    %42:i32 = load %41
+    %43:bool = eq %42, 5i
+    %x_110:bool = let %43
+    store %x_116, %x_110
+    if %x_110 [t: $B13] {  # if_5
+      $B13: {  # true
+        %45:ptr<private, i32, read_write> = access %data, 0i
+        %46:i32 = load %45
+        %47:bool = eq %46, 6i
+        store %x_115, %47
+        %48:bool = load %x_115
+        store %x_116, %48
+        exit_if  # if_5
+      }
+    }
+    %49:bool = load %x_116
+    if %49 [t: $B14, f: $B15] {  # if_6
+      $B14: {  # true
+        ret 1.0f
+      }
+      $B15: {  # false
+        ret 0.0f
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B16: {
+    %i_1:ptr<function, i32, read_write> = var
+    %param:ptr<function, i32, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    store %i_1, 0i
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %54:i32 = load %i_1
+        %55:bool = lt %54, 6i
+        if %55 [t: $B19, f: $B20] {  # if_7
+          $B19: {  # true
+            exit_if  # if_7
+          }
+          $B20: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %56:i32 = load %i_1
+        store %param, %56
+        %57:f32 = call %func_i1_, %param
+        %x_55:f32 = let %57
+        %59:i32 = load %i_1
+        store %param_1, %59
+        %60:f32 = call %func_i1_, %param_1
+        %x_57:f32 = let %60
+        %62:bool = eq %x_57, 1.0f
+        if %62 [t: $B21, f: $B22] {  # if_8
+          $B21: {  # true
+            store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+            exit_if  # if_8
+          }
+          $B22: {  # false
+            store %x_GLF_color, vec4<f32>(0.0f)
+            exit_if  # if_8
+          }
+        }
+        continue  # -> $B18
+      }
+      $B18: {  # continuing
+        %63:i32 = load %i_1
+        %64:i32 = add %63, 1i
+        store %i_1, %64
+        next_iteration  # -> $B17
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B23: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.msl
index efdd3b1..7e94404 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array-2/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,210 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %data:ptr<private, array<i32, 9>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %temp:ptr<private, array<i32, 7>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_i1_ = func(%a:ptr<function, i32, read_write>):f32 {
+  $B2: {
+    %b:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %x_115:ptr<function, bool, read_write> = var
+    %x_116_phi:ptr<function, bool, read_write> = var
+    store %b, 0i
+    %11:ptr<private, i32, read_write> = access %data, 0i
+    store %11, 5i
+    %12:ptr<private, i32, read_write> = access %data, 2i
+    store %12, 0i
+    %13:ptr<private, i32, read_write> = access %data, 4i
+    store %13, 0i
+    %14:ptr<private, i32, read_write> = access %data, 6i
+    store %14, 0i
+    %15:ptr<private, i32, read_write> = access %data, 8i
+    store %15, 0i
+    %16:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_71:f32 = let %16
+    %18:bool = gte %x_71, 0.0f
+    if %18 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %19:i32 = load %b
+            %x_79:i32 = let %19
+            %21:i32 = load %a
+            %x_80:i32 = let %21
+            %23:bool = lte %x_79, %x_80
+            if %23 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                exit_if  # if_2
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            %24:i32 = load %b
+            %x_83:i32 = let %24
+            %26:bool = lte %x_83, 5i
+            if %26 [t: $B8] {  # if_3
+              $B8: {  # true
+                %27:i32 = load %b
+                %x_87:i32 = let %27
+                %29:i32 = load %b
+                %x_88:i32 = let %29
+                %31:ptr<private, i32, read_write> = access %data, %x_88
+                %32:i32 = load %31
+                %x_90:i32 = let %32
+                %34:ptr<private, i32, read_write> = access %temp, %x_87
+                store %34, %x_90
+                %35:i32 = load %b
+                %x_92:i32 = let %35
+                %37:i32 = add %x_92, 2i
+                store %b, %37
+                exit_if  # if_3
+              }
+            }
+            continue  # -> $B5
+          }
+          $B5: {  # continuing
+            next_iteration  # -> $B4
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    store %i, 0i
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %38:i32 = load %i
+        %x_98:i32 = let %38
+        %40:bool = lt %x_98, 3i
+        if %40 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
+            exit_if  # if_4
+          }
+          $B12: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %41:i32 = load %i
+        %x_101:i32 = let %41
+        %43:ptr<private, i32, read_write> = access %temp, 0i
+        %44:i32 = load %43
+        %x_103:i32 = let %44
+        %46:ptr<private, i32, read_write> = access %data, %x_101
+        %47:i32 = add %x_103, 1i
+        store %46, %47
+        continue  # -> $B10
+      }
+      $B10: {  # continuing
+        %48:i32 = load %i
+        %x_106:i32 = let %48
+        %50:i32 = add %x_106, 1i
+        store %i, %50
+        next_iteration  # -> $B9
+      }
+    }
+    %51:ptr<private, i32, read_write> = access %temp, 0i
+    %52:i32 = load %51
+    %x_109:i32 = let %52
+    %54:bool = eq %x_109, 5i
+    %x_110:bool = let %54
+    store %x_116_phi, %x_110
+    if %x_110 [t: $B13] {  # if_5
+      $B13: {  # true
+        %56:ptr<private, i32, read_write> = access %data, 0i
+        %57:i32 = load %56
+        %x_114:i32 = let %57
+        %59:bool = eq %x_114, 6i
+        store %x_115, %59
+        %60:bool = load %x_115
+        store %x_116_phi, %60
+        exit_if  # if_5
+      }
+    }
+    %61:bool = load %x_116_phi
+    %x_116:bool = let %61
+    if %x_116 [t: $B14, f: $B15] {  # if_6
+      $B14: {  # true
+        ret 1.0f
+      }
+      $B15: {  # false
+        ret 0.0f
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B16: {
+    %i_1:ptr<function, i32, read_write> = var
+    %param:ptr<function, i32, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    store %i_1, 0i
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %67:i32 = load %i_1
+        %x_51:i32 = let %67
+        %69:bool = lt %x_51, 6i
+        if %69 [t: $B19, f: $B20] {  # if_7
+          $B19: {  # true
+            exit_if  # if_7
+          }
+          $B20: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %70:i32 = load %i_1
+        %x_54:i32 = let %70
+        store %param, %x_54
+        %72:f32 = call %func_i1_, %param
+        %x_55:f32 = let %72
+        %74:i32 = load %i_1
+        %x_56:i32 = let %74
+        store %param_1, %x_56
+        %76:f32 = call %func_i1_, %param_1
+        %x_57:f32 = let %76
+        %78:bool = eq %x_57, 1.0f
+        if %78 [t: $B21, f: $B22] {  # if_8
+          $B21: {  # true
+            store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+            exit_if  # if_8
+          }
+          $B22: {  # false
+            store %x_GLF_color, vec4<f32>(0.0f)
+            exit_if  # if_8
+          }
+        }
+        continue  # -> $B18
+      }
+      $B18: {  # continuing
+        %79:i32 = load %i_1
+        %x_62:i32 = let %79
+        %81:i32 = add %x_62, 1i
+        store %i_1, %81
+        next_iteration  # -> $B17
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B23: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %84:void = call %main_1
+    %85:vec4<f32> = load %x_GLF_color
+    %86:main_out = construct %85
+    ret %86
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.msl
index efdd3b1..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.msl
index efdd3b1..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/assign-array-value-to-another-array/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.msl
index a6bf2d8..40762c2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,30 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %GLF_live12c5:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
         %6:f32 = load_vector_element %5, 1u
         %7:bool = lt %6, 0.0f
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if %7 [t: $B5] {  # if_1
+          $B5: {  # true
             store %GLF_live12c5, false
             %8:bool = load %GLF_live12c5
-            if %8 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
-                continue %b4
+            if %8 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                continue  # -> $B4
               }
-              %b7 = block {  # false
-                continue %b4
+              $B7: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_1
@@ -39,15 +39,15 @@
         }
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        break_if true %b3
+      $B4: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func():main_out {
+  $B8: {
     %10:void = call %main_1
     %11:vec4<f32> = load %x_GLF_color
     %12:main_out = construct %11
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.msl
index 67cf7b6..721ee9c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/break-in-do-while-with-nested-if/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,30 +8,32 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %GLF_live12c5:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_31:f32 = load_vector_element %5, 1u
-        %7:bool = lt %x_31, 0.0f
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %6:f32 = load_vector_element %5, 1u
+        %x_31:f32 = let %6
+        %8:bool = lt %x_31, 0.0f
+        if %8 [t: $B5] {  # if_1
+          $B5: {  # true
             store %GLF_live12c5, false
-            %x_35:bool = load %GLF_live12c5
-            if %x_35 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
-                continue %b4
+            %9:bool = load %GLF_live12c5
+            %x_35:bool = let %9
+            if %x_35 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                continue  # -> $B4
               }
-              %b7 = block {  # false
-                continue %b4
+              $B7: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_1
@@ -39,19 +41,19 @@
         }
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        break_if true %b3
+      $B4: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.msl
index 83ac9c4..d1d328e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,55 +8,63 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_ = func():void -> %b2 {
-  %b2 = block {
-    %4:ptr<uniform, f32, read> = access %x_6, 0u
-    %5:f32 = load %4
-    %6:bool = gt 1.0f, %5
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%func_ = func():void {
+  $B2: {
+    %5:ptr<uniform, f32, read> = access %x_6, 0u
+    %6:f32 = load %5
+    %7:bool = gt 1.0f, %6
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     store %x_GLF_color, vec4<f32>(0.0f)
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %8:void = call %func_
-        if false [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %9:void = call %func_
+        if false [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    %14:bool = load %continue_execution
+    %15:bool = eq %14, false
+    if %15 [t: $B10] {  # if_3
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %13
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.msl
index 6b609e2..37b38b9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/call-function-with-discard/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,55 +8,64 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_ = func():void -> %b2 {
-  %b2 = block {
-    %4:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_28:f32 = load %4
-    %6:bool = gt 1.0f, %x_28
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%func_ = func():void {
+  $B2: {
+    %5:ptr<uniform, f32, read> = access %x_6, 0u
+    %6:f32 = load %5
+    %x_28:f32 = let %6
+    %8:bool = gt 1.0f, %x_28
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     store %x_GLF_color, vec4<f32>(0.0f)
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %8:void = call %func_
-        if false [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %10:void = call %func_
+        if false [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    %15:bool = load %continue_execution
+    %16:bool = eq %15, false
+    if %16 [t: $B10] {  # if_3
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %14
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.msl
index e4a351b..dca61b7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_26:f32 = load_vector_element %4, 0u
-    %6:bool = gt %x_26, 1.0f
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %5:f32 = load_vector_element %4, 0u
+    %x_26:f32 = let %5
+    %7:bool = gt %x_26, 1.0f
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4] {  # loop_1
+          $B4: {  # body
             store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
             exit_loop  # loop_1
           }
-          %b5 = block {  # continuing
-            next_iteration %b4
-          }
         }
         ret
       }
@@ -36,12 +34,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %8:void = call %main_1
-    %9:vec4<f32> = load %x_GLF_color
-    %10:main_out = construct %9
-    ret %10
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.msl
index cdbf128..78d98a1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,121 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: S = struct @align(16) {
+  f0:i32 @offset(0)
+  f1:mat4x3<f32> @offset(16)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_51:ptr<function, i32, read_write> = var
+    %x_12:ptr<function, i32, read_write> = var
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %x_45:ptr<function, S, read_write> = var
+        %x_11:ptr<function, i32, read_write> = var
+        store %x_45, S(0i, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f)))
+        store %x_11, 0i
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
+            %x_46:ptr<function, S, read_write> = var
+            %x_9:ptr<function, i32, read_write> = var
+            %10:f32 = load_vector_element %gl_FragCoord, 0u
+            %11:bool = eq %10, 0.0f
+            %12:i32 = select 2i, 1i, %11
+            store %x_51, %12
+            %13:i32 = load %x_11
+            %14:i32 = load %x_51
+            %15:bool = lt %13, %14
+            if %15 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
+                exit_if  # if_1
+              }
+              $B7: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            continue  # -> $B5
+          }
+          $B5: {  # continuing
+            store %x_GLF_color, vec4<f32>(1.0f)
+            %16:S = load %x_45
+            store %x_46, %16
+            %17:ptr<function, i32, read_write> = access %x_46, 0u
+            %18:ptr<function, i32, read_write> = access %x_45, 0u
+            %19:i32 = load %18
+            %20:i32 = add %19, 1i
+            store %17, %20
+            %21:i32 = load %x_11
+            %22:i32 = add %21, 1i
+            store %x_9, %22
+            %23:S = load %x_46
+            store %x_45, %23
+            %24:i32 = load %x_9
+            store %x_11, %24
+            next_iteration  # -> $B4
+          }
+        }
+        %25:ptr<function, i32, read_write> = access %x_45, 0u
+        %26:i32 = load %25
+        %27:bool = lt %26, 1000i
+        if %27 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        exit_loop  # loop_1
+      }
+    }
+    store %x_12, 0i
+    loop [b: $B9, c: $B10] {  # loop_3
+      $B9: {  # body
+        %x_6:ptr<function, i32, read_write> = var
+        %29:i32 = load %x_12
+        %30:i32 = load %x_51
+        %31:bool = lt %29, %30
+        if %31 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
+            exit_if  # if_3
+          }
+          $B12: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        continue  # -> $B10
+      }
+      $B10: {  # continuing
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        %32:i32 = load %x_12
+        %33:i32 = add %32, 1i
+        store %x_6, %33
+        %34:i32 = load %x_6
+        store %x_12, %34
+        next_iteration  # -> $B9
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.msl
index cdbf128..a8ab4b0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/color-write-in-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,125 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: S = struct @align(16) {
+  f0:i32 @offset(0)
+  f1:mat4x3<f32> @offset(16)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_51:ptr<function, i32, read_write> = var
+    %x_12_phi:ptr<function, i32, read_write> = var
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %x_45:ptr<function, S, read_write> = var
+        %x_45_phi:ptr<function, S, read_write> = var
+        %x_11_phi:ptr<function, i32, read_write> = var
+        store %x_45_phi, S(0i, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f)))
+        store %x_11_phi, 0i
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
+            %x_46:ptr<function, S, read_write> = var
+            %x_9:ptr<function, i32, read_write> = var
+            %11:S = load %x_45_phi
+            store %x_45, %11
+            %12:i32 = load %x_11_phi
+            %x_11:i32 = let %12
+            %14:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_49:f32 = let %14
+            %16:bool = eq %x_49, 0.0f
+            %17:i32 = select 2i, 1i, %16
+            store %x_51, %17
+            %18:i32 = load %x_51
+            %19:bool = lt %x_11, %18
+            if %19 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
+                exit_if  # if_1
+              }
+              $B7: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            continue  # -> $B5
+          }
+          $B5: {  # continuing
+            store %x_GLF_color, vec4<f32>(1.0f)
+            %20:S = load %x_45
+            store %x_46, %20
+            %21:ptr<function, i32, read_write> = access %x_46, 0u
+            %22:ptr<function, i32, read_write> = access %x_45, 0u
+            %23:i32 = load %22
+            %24:i32 = add %23, 1i
+            store %21, %24
+            %25:i32 = add %x_11, 1i
+            store %x_9, %25
+            %26:S = load %x_46
+            store %x_45_phi, %26
+            %27:i32 = load %x_9
+            store %x_11_phi, %27
+            next_iteration  # -> $B4
+          }
+        }
+        %28:ptr<function, i32, read_write> = access %x_45, 0u
+        %29:i32 = load %28
+        %30:bool = lt %29, 1000i
+        if %30 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        exit_loop  # loop_1
+      }
+    }
+    store %x_12_phi, 0i
+    loop [b: $B9, c: $B10] {  # loop_3
+      $B9: {  # body
+        %x_6:ptr<function, i32, read_write> = var
+        %32:i32 = load %x_12_phi
+        %x_12:i32 = let %32
+        %34:i32 = load %x_51
+        %35:bool = lt %x_12, %34
+        if %35 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
+            exit_if  # if_3
+          }
+          $B12: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        continue  # -> $B10
+      }
+      $B10: {  # continuing
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        %36:i32 = add %x_12, 1i
+        store %x_6, %36
+        %37:i32 = load %x_6
+        store %x_12_phi, %37
+        next_iteration  # -> $B9
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.msl
index 932579f..9b7a2f3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %GLF_live6tree:ptr<private, array<i32, 10>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%GLF_live6search_ = func():i32 -> %b2 {
-  %b2 = block {
+%GLF_live6search_ = func():i32 {
+  $B2: {
     %GLF_live6index:ptr<function, i32, read_write> = var
     %GLF_live6currentNode:ptr<function, i32, read_write> = var
     store %GLF_live6index, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -35,29 +35,30 @@
         store %GLF_live6currentNode, %9
         %10:i32 = load %GLF_live6currentNode
         %11:bool = neq %10, 1i
-        if %11 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %11 [t: $B7] {  # if_2
+          $B7: {  # true
             ret 1i
           }
         }
         store %GLF_live6index, 1i
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %13:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
     %14:f32 = load_vector_element %13, 0u
     %15:bool = gt %14, 1.0f
-    if %15 [t: %b9] {  # if_3
-      %b9 = block {  # true
-        %x_13:i32 = call %GLF_live6search_
+    if %15 [t: $B9] {  # if_3
+      $B9: {  # true
+        %16:i32 = call %GLF_live6search_
+        %x_13:i32 = let %16
         exit_if  # if_3
       }
     }
@@ -65,12 +66,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.msl
index 2461ede..5d2305a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/conditional-return-in-infinite-while/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,56 +8,61 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %GLF_live6tree:ptr<private, array<i32, 10>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%GLF_live6search_ = func():i32 -> %b2 {
-  %b2 = block {
+%GLF_live6search_ = func():i32 {
+  $B2: {
     %GLF_live6index:ptr<function, i32, read_write> = var
     %GLF_live6currentNode:ptr<function, i32, read_write> = var
     store %GLF_live6index, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_10:i32 = load %GLF_live6index
-        %8:ptr<private, i32, read_write> = access %GLF_live6tree, %x_10
-        %x_11:i32 = load %8
+        %7:i32 = load %GLF_live6index
+        %x_10:i32 = let %7
+        %9:ptr<private, i32, read_write> = access %GLF_live6tree, %x_10
+        %10:i32 = load %9
+        %x_11:i32 = let %10
         store %GLF_live6currentNode, %x_11
-        %x_12:i32 = load %GLF_live6currentNode
-        %11:bool = neq %x_12, 1i
-        if %11 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %12:i32 = load %GLF_live6currentNode
+        %x_12:i32 = let %12
+        %14:bool = neq %x_12, 1i
+        if %14 [t: $B7] {  # if_2
+          $B7: {  # true
             ret 1i
           }
         }
         store %GLF_live6index, 1i
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
-    %13:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_40:f32 = load_vector_element %13, 0u
-    %15:bool = gt %x_40, 1.0f
-    if %15 [t: %b9] {  # if_3
-      %b9 = block {  # true
-        %x_13:i32 = call %GLF_live6search_
+%main_1 = func():void {
+  $B8: {
+    %16:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %17:f32 = load_vector_element %16, 0u
+    %x_40:f32 = let %17
+    %19:bool = gt %x_40, 1.0f
+    if %19 [t: $B9] {  # if_3
+      $B9: {  # true
+        %20:i32 = call %GLF_live6search_
+        %x_13:i32 = let %20
         exit_if  # if_3
       }
     }
@@ -65,12 +70,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.msl
index 60c4b27..22296ab 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_25:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%drawShape_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):vec3<f32> -> %b2 {
-  %b2 = block {
+%drawShape_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):vec3<f32> {
+  $B2: {
     %c2:ptr<function, bool, read_write> = var
     %c3:ptr<function, bool, read_write> = var
     %c4:ptr<function, bool, read_write> = var
@@ -46,8 +46,8 @@
     %33:bool = gt %32, 1.0f
     store %c2, %33
     %34:bool = load %c2
-    if %34 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %34 [t: $B3] {  # if_1
+      $B3: {  # true
         ret vec3<f32>(1.0f)
       }
     }
@@ -55,8 +55,8 @@
     %36:bool = lt %35, 1.0f
     store %c3, %36
     %37:bool = load %c3
-    if %37 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %37 [t: $B4] {  # if_2
+      $B4: {  # true
         ret vec3<f32>(1.0f)
       }
     }
@@ -64,8 +64,8 @@
     %39:bool = gt %38, 1.0f
     store %c4, %39
     %40:bool = load %c4
-    if %40 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    if %40 [t: $B5] {  # if_3
+      $B5: {  # true
         ret vec3<f32>(1.0f)
       }
     }
@@ -73,8 +73,8 @@
     %42:bool = lt %41, 1.0f
     store %c5, %42
     %43:bool = load %c5
-    if %43 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    if %43 [t: $B6] {  # if_4
+      $B6: {  # true
         ret vec3<f32>(1.0f)
       }
     }
@@ -83,28 +83,28 @@
     %46:bool = gt %45, 1.0f
     store %c6, %46
     %47:bool = load %c6
-    if %47 [t: %b7] {  # if_5
-      %b7 = block {  # true
+    if %47 [t: $B7] {  # if_5
+      $B7: {  # true
         ret vec3<f32>(1.0f)
       }
     }
     store %GLF_live4i, 0i
-    loop [b: %b8, c: %b9] {  # loop_1
-      %b8 = block {  # body
+    loop [b: $B8, c: $B9] {  # loop_1
+      $B8: {  # body
         %48:i32 = load %GLF_live4i
         %49:bool = lt %48, 4i
-        if %49 [t: %b10, f: %b11] {  # if_6
-          %b10 = block {  # true
+        if %49 [t: $B10, f: $B11] {  # if_6
+          $B10: {  # true
             exit_if  # if_6
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_1
           }
         }
         %50:i32 = load %GLF_live4_looplimiter5
         %51:bool = gte %50, 7i
-        if %51 [t: %b12] {  # if_7
-          %b12 = block {  # true
+        if %51 [t: $B12] {  # if_7
+          $B12: {  # true
             exit_loop  # loop_1
           }
         }
@@ -114,22 +114,22 @@
         store %GLF_live7m42, mat4x2<f32>(vec2<f32>(1.0f, 0.0f), vec2<f32>(0.0f, 1.0f), vec2<f32>(0.0f), vec2<f32>(1.0f, 0.0f))
         store %GLF_live7m33, mat3x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f))
         store %GLF_live7cols, 2i
-        loop [b: %b13, c: %b14] {  # loop_2
-          %b13 = block {  # body
+        loop [b: $B13, c: $B14] {  # loop_2
+          $B13: {  # body
             %54:i32 = load %GLF_live7cols
             %55:bool = lt %54, 4i
-            if %55 [t: %b15, f: %b16] {  # if_8
-              %b15 = block {  # true
+            if %55 [t: $B15, f: $B16] {  # if_8
+              $B15: {  # true
                 exit_if  # if_8
               }
-              %b16 = block {  # false
+              $B16: {  # false
                 exit_loop  # loop_2
               }
             }
             %56:i32 = load %GLF_live7_looplimiter3
             %57:bool = gte %56, 7i
-            if %57 [t: %b17] {  # if_9
-              %b17 = block {  # true
+            if %57 [t: $B17] {  # if_9
+              $B17: {  # true
                 exit_loop  # loop_2
               }
             }
@@ -137,22 +137,22 @@
             %59:i32 = add %58, 1i
             store %GLF_live7_looplimiter3, %59
             store %GLF_live7rows, 2i
-            loop [b: %b18, c: %b19] {  # loop_3
-              %b18 = block {  # body
+            loop [b: $B18, c: $B19] {  # loop_3
+              $B18: {  # body
                 %60:i32 = load %GLF_live7rows
                 %61:bool = lt %60, 4i
-                if %61 [t: %b20, f: %b21] {  # if_10
-                  %b20 = block {  # true
+                if %61 [t: $B20, f: $B21] {  # if_10
+                  $B20: {  # true
                     exit_if  # if_10
                   }
-                  %b21 = block {  # false
+                  $B21: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %62:i32 = load %GLF_live7_looplimiter2
                 %63:bool = gte %62, 7i
-                if %63 [t: %b22] {  # if_11
-                  %b22 = block {  # true
+                if %63 [t: $B22] {  # if_11
+                  $B22: {  # true
                     exit_loop  # loop_3
                   }
                 }
@@ -161,22 +161,22 @@
                 store %GLF_live7_looplimiter2, %65
                 store %GLF_live7_looplimiter1, 0i
                 store %GLF_live7c, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
                     %66:i32 = load %GLF_live7c
                     %67:bool = lt %66, 3i
-                    if %67 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                    if %67 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
                     %68:i32 = load %GLF_live7_looplimiter1
                     %69:bool = gte %68, 7i
-                    if %69 [t: %b27] {  # if_13
-                      %b27 = block {  # true
+                    if %69 [t: $B27] {  # if_13
+                      $B27: {  # true
                         exit_loop  # loop_4
                       }
                     }
@@ -184,306 +184,332 @@
                     %71:i32 = add %70, 1i
                     store %GLF_live7_looplimiter1, %71
                     store %GLF_live7r, 0i
-                    loop [b: %b28, c: %b29] {  # loop_5
-                      %b28 = block {  # body
+                    loop [b: $B28, c: $B29] {  # loop_5
+                      $B28: {  # body
                         %72:i32 = load %GLF_live7r
                         %73:bool = lt %72, 2i
-                        if %73 [t: %b30, f: %b31] {  # if_14
-                          %b30 = block {  # true
+                        if %73 [t: $B30, f: $B31] {  # if_14
+                          $B30: {  # true
                             exit_if  # if_14
                           }
-                          %b31 = block {  # false
+                          $B31: {  # false
                             exit_loop  # loop_5
                           }
                         }
                         %74:i32 = load %GLF_live7_looplimiter0
                         %75:bool = gte %74, 7i
-                        if %75 [t: %b32] {  # if_15
-                          %b32 = block {  # true
+                        if %75 [t: $B32] {  # if_15
+                          $B32: {  # true
                             exit_loop  # loop_5
                           }
                         }
                         %76:i32 = load %GLF_live7_looplimiter0
                         %77:i32 = add %76, 1i
                         store %GLF_live7_looplimiter0, %77
-                        %x_59:i32 = load %GLF_live7c
-                        %x_60:i32 = load %GLF_live7c
-                        %x_61:i32 = load %GLF_live7c
-                        %x_62:i32 = load %GLF_live7r
-                        %x_63:i32 = load %GLF_live7r
-                        %x_64:i32 = load %GLF_live7r
-                        %84:bool = gte %x_59, 0i
-                        %85:bool = lt %x_60, 3i
-                        %86:bool = and %84, %85
-                        %87:i32 = select 0i, %x_61, %86
-                        %88:ptr<function, vec3<f32>, read_write> = access %GLF_live7m33, %87
-                        %89:bool = gte %x_62, 0i
-                        %90:bool = lt %x_63, 3i
-                        %91:bool = and %89, %90
-                        %92:i32 = select 0i, %x_64, %91
-                        store_vector_element %88, %92, 1.0f
-                        %93:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
-                        %94:f32 = load_vector_element %93, 1u
-                        %95:bool = gt 0.0f, %94
-                        if %95 [t: %b33, f: %b34] {  # if_16
-                          %b33 = block {  # true
+                        %78:i32 = load %GLF_live7c
+                        %x_59:i32 = let %78
+                        %80:i32 = load %GLF_live7c
+                        %x_60:i32 = let %80
+                        %82:i32 = load %GLF_live7c
+                        %x_61:i32 = let %82
+                        %84:i32 = load %GLF_live7r
+                        %x_62:i32 = let %84
+                        %86:i32 = load %GLF_live7r
+                        %x_63:i32 = let %86
+                        %88:i32 = load %GLF_live7r
+                        %x_64:i32 = let %88
+                        %90:bool = gte %x_59, 0i
+                        %91:bool = lt %x_60, 3i
+                        %92:bool = and %90, %91
+                        %93:i32 = select 0i, %x_61, %92
+                        %94:ptr<function, vec3<f32>, read_write> = access %GLF_live7m33, %93
+                        %95:ptr<function, vec3<f32>, read_write> = let %94
+                        %96:bool = gte %x_62, 0i
+                        %97:bool = lt %x_63, 3i
+                        %98:bool = and %96, %97
+                        %99:i32 = select 0i, %x_64, %98
+                        store_vector_element %95, %99, 1.0f
+                        %100:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
+                        %101:f32 = load_vector_element %100, 1u
+                        %102:bool = gt 0.0f, %101
+                        if %102 [t: $B33, f: $B34] {  # if_16
+                          $B33: {  # true
                             exit_if  # if_16
                           }
-                          %b34 = block {  # false
-                            %x_65:i32 = load %GLF_live7c
-                            %x_66:i32 = load %GLF_live7c
-                            %x_67:i32 = load %GLF_live7c
-                            %x_68:i32 = load %GLF_live7r
-                            %x_69:i32 = load %GLF_live7r
-                            %x_70:i32 = load %GLF_live7r
-                            %102:bool = gte %x_65, 0i
-                            %103:bool = lt %x_66, 4i
-                            %104:bool = and %102, %103
-                            %105:i32 = select 0i, %x_67, %104
-                            %106:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, %105
-                            %107:bool = gte %x_68, 0i
-                            %108:bool = lt %x_69, 2i
-                            %109:bool = and %107, %108
-                            %110:i32 = select 0i, %x_70, %109
-                            store_vector_element %106, %110, 1.0f
+                          $B34: {  # false
+                            %103:i32 = load %GLF_live7c
+                            %x_65:i32 = let %103
+                            %105:i32 = load %GLF_live7c
+                            %x_66:i32 = let %105
+                            %107:i32 = load %GLF_live7c
+                            %x_67:i32 = let %107
+                            %109:i32 = load %GLF_live7r
+                            %x_68:i32 = let %109
+                            %111:i32 = load %GLF_live7r
+                            %x_69:i32 = let %111
+                            %113:i32 = load %GLF_live7r
+                            %x_70:i32 = let %113
+                            %115:bool = gte %x_65, 0i
+                            %116:bool = lt %x_66, 4i
+                            %117:bool = and %115, %116
+                            %118:i32 = select 0i, %x_67, %117
+                            %119:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, %118
+                            %120:ptr<function, vec2<f32>, read_write> = let %119
+                            %121:bool = gte %x_68, 0i
+                            %122:bool = lt %x_69, 2i
+                            %123:bool = and %121, %122
+                            %124:i32 = select 0i, %x_70, %123
+                            store_vector_element %120, %124, 1.0f
                             exit_if  # if_16
                           }
                         }
-                        continue %b29
+                        continue  # -> $B29
                       }
-                      %b29 = block {  # continuing
-                        %111:i32 = load %GLF_live7r
-                        %112:i32 = add %111, 1i
-                        store %GLF_live7r, %112
-                        next_iteration %b28
+                      $B29: {  # continuing
+                        %125:i32 = load %GLF_live7r
+                        %126:i32 = add %125, 1i
+                        store %GLF_live7r, %126
+                        next_iteration  # -> $B28
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %113:i32 = load %GLF_live7c
-                    %114:i32 = add %113, 1i
-                    store %GLF_live7c, %114
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %127:i32 = load %GLF_live7c
+                    %128:i32 = add %127, 1i
+                    store %GLF_live7c, %128
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b19
+                continue  # -> $B19
               }
-              %b19 = block {  # continuing
-                %115:i32 = load %GLF_live7rows
-                %116:i32 = add %115, 1i
-                store %GLF_live7rows, %116
-                next_iteration %b18
+              $B19: {  # continuing
+                %129:i32 = load %GLF_live7rows
+                %130:i32 = add %129, 1i
+                store %GLF_live7rows, %130
+                next_iteration  # -> $B18
               }
             }
-            continue %b14
+            continue  # -> $B14
           }
-          %b14 = block {  # continuing
-            %117:i32 = load %GLF_live7cols
-            %118:i32 = add %117, 1i
-            store %GLF_live7cols, %118
-            next_iteration %b13
+          $B14: {  # continuing
+            %131:i32 = load %GLF_live7cols
+            %132:i32 = add %131, 1i
+            store %GLF_live7cols, %132
+            next_iteration  # -> $B13
           }
         }
         store %GLF_live7sum_index, 0i
         store %GLF_live7_looplimiter7, 0i
         store %GLF_live7cols_1, 2i
-        loop [b: %b35, c: %b36] {  # loop_6
-          %b35 = block {  # body
-            %119:i32 = load %GLF_live7cols_1
-            %120:bool = lt %119, 4i
-            if %120 [t: %b37, f: %b38] {  # if_17
-              %b37 = block {  # true
+        loop [b: $B35, c: $B36] {  # loop_6
+          $B35: {  # body
+            %133:i32 = load %GLF_live7cols_1
+            %134:bool = lt %133, 4i
+            if %134 [t: $B37, f: $B38] {  # if_17
+              $B37: {  # true
                 exit_if  # if_17
               }
-              %b38 = block {  # false
+              $B38: {  # false
                 exit_loop  # loop_6
               }
             }
-            %121:i32 = load %GLF_live7_looplimiter7
-            %122:bool = gte %121, 7i
-            if %122 [t: %b39] {  # if_18
-              %b39 = block {  # true
+            %135:i32 = load %GLF_live7_looplimiter7
+            %136:bool = gte %135, 7i
+            if %136 [t: $B39] {  # if_18
+              $B39: {  # true
                 exit_loop  # loop_6
               }
             }
-            %123:i32 = load %GLF_live7_looplimiter7
-            %124:i32 = add %123, 1i
-            store %GLF_live7_looplimiter7, %124
+            %137:i32 = load %GLF_live7_looplimiter7
+            %138:i32 = add %137, 1i
+            store %GLF_live7_looplimiter7, %138
             store %GLF_live7rows_1, 2i
-            %x_83:i32 = load %GLF_live7sum_index
-            %x_84:i32 = load %GLF_live7sum_index
-            %x_85:i32 = load %GLF_live7sum_index
-            %128:bool = gte %x_83, 0i
-            %129:bool = lt %x_84, 9i
-            %130:bool = and %128, %129
-            %131:i32 = select 0i, %x_85, %130
-            %132:ptr<function, f32, read_write> = access %GLF_live7sums, %131
-            store %132, 0.0f
+            %139:i32 = load %GLF_live7sum_index
+            %x_83:i32 = let %139
+            %141:i32 = load %GLF_live7sum_index
+            %x_84:i32 = let %141
+            %143:i32 = load %GLF_live7sum_index
+            %x_85:i32 = let %143
+            %145:bool = gte %x_83, 0i
+            %146:bool = lt %x_84, 9i
+            %147:bool = and %145, %146
+            %148:i32 = select 0i, %x_85, %147
+            %149:ptr<function, f32, read_write> = access %GLF_live7sums, %148
+            store %149, 0.0f
             store %GLF_live7c_1, 0i
-            loop [b: %b40, c: %b41] {  # loop_7
-              %b40 = block {  # body
-                %133:i32 = load %GLF_live7c_1
-                %134:bool = lt %133, 1i
-                if %134 [t: %b42, f: %b43] {  # if_19
-                  %b42 = block {  # true
+            loop [b: $B40, c: $B41] {  # loop_7
+              $B40: {  # body
+                %150:i32 = load %GLF_live7c_1
+                %151:bool = lt %150, 1i
+                if %151 [t: $B42, f: $B43] {  # if_19
+                  $B42: {  # true
                     exit_if  # if_19
                   }
-                  %b43 = block {  # false
+                  $B43: {  # false
                     exit_loop  # loop_7
                   }
                 }
                 store %GLF_live7r_1, 0i
-                loop [b: %b44, c: %b45] {  # loop_8
-                  %b44 = block {  # body
-                    %135:i32 = load %GLF_live7r_1
-                    %136:i32 = load %GLF_live7rows_1
-                    %137:bool = lt %135, %136
-                    if %137 [t: %b46, f: %b47] {  # if_20
-                      %b46 = block {  # true
+                loop [b: $B44, c: $B45] {  # loop_8
+                  $B44: {  # body
+                    %152:i32 = load %GLF_live7r_1
+                    %153:i32 = load %GLF_live7rows_1
+                    %154:bool = lt %152, %153
+                    if %154 [t: $B46, f: $B47] {  # if_20
+                      $B46: {  # true
                         exit_if  # if_20
                       }
-                      %b47 = block {  # false
+                      $B47: {  # false
                         exit_loop  # loop_8
                       }
                     }
-                    %138:i32 = load %GLF_live7sum_index
-                    %139:i32 = load %GLF_live7sum_index
-                    %140:bool = gte %139, 0i
-                    %141:i32 = load %GLF_live7sum_index
-                    %142:bool = lt %141, 9i
-                    %143:bool = and %140, %142
-                    %x_310:i32 = select 0i, %138, %143
-                    %145:mat3x3<f32> = load %GLF_live7m33
-                    %x_312:mat3x3<f32> = transpose %145
-                    %147:i32 = load %GLF_live7c_1
-                    %148:bool = lt %147, 3i
-                    if %148 [t: %b48, f: %b49] {  # if_21
-                      %b48 = block {  # true
+                    %155:i32 = load %GLF_live7sum_index
+                    %156:i32 = load %GLF_live7sum_index
+                    %157:bool = gte %156, 0i
+                    %158:i32 = load %GLF_live7sum_index
+                    %159:bool = lt %158, 9i
+                    %160:bool = and %157, %159
+                    %161:i32 = select 0i, %155, %160
+                    %x_310:i32 = let %161
+                    %163:mat3x3<f32> = load %GLF_live7m33
+                    %164:mat3x3<f32> = transpose %163
+                    %x_312:mat3x3<f32> = let %164
+                    %166:i32 = load %GLF_live7c_1
+                    %167:bool = lt %166, 3i
+                    if %167 [t: $B48, f: $B49] {  # if_21
+                      $B48: {  # true
                         store %x_180, 1i
                         exit_if  # if_21
                       }
-                      %b49 = block {  # false
-                        %149:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
-                        %150:f32 = load_vector_element %149, 0u
-                        %151:i32 = convert %150
-                        store %x_180, %151
+                      $B49: {  # false
+                        %168:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
+                        %169:f32 = load_vector_element %168, 0u
+                        %170:i32 = call %tint_f32_to_i32, %169
+                        store %x_180, %170
                         exit_if  # if_21
                       }
                     }
-                    %x_320:i32 = load %x_180
-                    %x_93:i32 = load %GLF_live7r_1
+                    %172:i32 = load %x_180
+                    %x_320:i32 = let %172
+                    %174:i32 = load %GLF_live7r_1
+                    %x_93:i32 = let %174
                     store %indexable, %x_312
-                    %154:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
-                    %155:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
-                    %156:f32 = load %155
-                    %157:ptr<function, vec3<f32>, read_write> = access %indexable, %x_320
-                    %158:bool = lt %x_93, 3i
-                    %159:i32 = select 0i, 1i, %158
-                    %160:f32 = load_vector_element %157, %159
-                    %161:f32 = add %156, %160
-                    store %154, %161
-                    %162:i32 = load %GLF_live7sum_index
-                    %163:i32 = load %GLF_live7sum_index
-                    %164:bool = gte %163, 0i
-                    %165:i32 = load %GLF_live7sum_index
-                    %166:bool = lt %165, 9i
-                    %167:bool = and %164, %166
-                    %x_332:i32 = select 0i, %162, %167
-                    %169:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
-                    %170:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
-                    %171:f32 = load %170
-                    %172:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, 1i
-                    %173:i32 = load %GLF_live7r_1
-                    %174:f32 = load_vector_element %172, %173
-                    %175:f32 = add %171, %174
-                    store %169, %175
-                    continue %b45
+                    %176:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
+                    %177:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
+                    %178:f32 = load %177
+                    %179:f32 = let %178
+                    %180:ptr<function, vec3<f32>, read_write> = access %indexable, %x_320
+                    %181:bool = lt %x_93, 3i
+                    %182:i32 = select 0i, 1i, %181
+                    %183:f32 = load_vector_element %180, %182
+                    %184:f32 = add %179, %183
+                    store %176, %184
+                    %185:i32 = load %GLF_live7sum_index
+                    %186:i32 = load %GLF_live7sum_index
+                    %187:bool = gte %186, 0i
+                    %188:i32 = load %GLF_live7sum_index
+                    %189:bool = lt %188, 9i
+                    %190:bool = and %187, %189
+                    %191:i32 = select 0i, %185, %190
+                    %x_332:i32 = let %191
+                    %193:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
+                    %194:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
+                    %195:f32 = load %194
+                    %196:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, 1i
+                    %197:i32 = load %GLF_live7r_1
+                    %198:f32 = load_vector_element %196, %197
+                    %199:f32 = add %195, %198
+                    store %193, %199
+                    continue  # -> $B45
                   }
-                  %b45 = block {  # continuing
-                    %176:i32 = load %GLF_live7r_1
-                    %177:i32 = add %176, 1i
-                    store %GLF_live7r_1, %177
-                    next_iteration %b44
+                  $B45: {  # continuing
+                    %200:i32 = load %GLF_live7r_1
+                    %201:i32 = add %200, 1i
+                    store %GLF_live7r_1, %201
+                    next_iteration  # -> $B44
                   }
                 }
-                continue %b41
+                continue  # -> $B41
               }
-              %b41 = block {  # continuing
-                %178:i32 = load %GLF_live7c_1
-                %179:i32 = add %178, 1i
-                store %GLF_live7c_1, %179
-                next_iteration %b40
+              $B41: {  # continuing
+                %202:i32 = load %GLF_live7c_1
+                %203:i32 = add %202, 1i
+                store %GLF_live7c_1, %203
+                next_iteration  # -> $B40
               }
             }
-            %180:i32 = load %GLF_live7sum_index
-            %181:i32 = add %180, 1i
-            store %GLF_live7sum_index, %181
-            continue %b36
+            %204:i32 = load %GLF_live7sum_index
+            %205:i32 = add %204, 1i
+            store %GLF_live7sum_index, %205
+            continue  # -> $B36
           }
-          %b36 = block {  # continuing
-            %182:i32 = load %GLF_live7cols_1
-            %183:i32 = add %182, 1i
-            store %GLF_live7cols_1, %183
-            next_iteration %b35
+          $B36: {  # continuing
+            %206:i32 = load %GLF_live7cols_1
+            %207:i32 = add %206, 1i
+            store %GLF_live7cols_1, %207
+            next_iteration  # -> $B35
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %184:i32 = load %GLF_live4i
-        %185:i32 = add %184, 1i
-        store %GLF_live4i, %185
-        next_iteration %b8
+      $B9: {  # continuing
+        %208:i32 = load %GLF_live4i
+        %209:i32 = add %208, 1i
+        store %GLF_live4i, %209
+        next_iteration  # -> $B8
       }
     }
     ret vec3<f32>(1.0f)
   }
 }
-%main_1 = func():void -> %b50 {
-  %b50 = block {
+%main_1 = func():void {
+  $B50: {
     %position_1:ptr<function, vec2<f32>, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %param_1:ptr<function, vec2<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %192:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
-    %193:f32 = load_vector_element %192, 0u
-    %194:bool = gte %193, 2.0f
-    if %194 [t: %b51] {  # if_22
-      %b51 = block {  # true
-        %195:vec4<f32> = load %gl_FragCoord
-        %196:vec2<f32> = swizzle %195, xy
-        store %position_1, %196
-        %197:vec2<f32> = load %position_1
-        store %param, %197
-        %x_168:vec3<f32> = call %drawShape_vf2_, %param
-        %199:vec2<f32> = load %position_1
-        store %param_1, %199
-        %x_170:vec3<f32> = call %drawShape_vf2_, %param_1
+    %216:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
+    %217:f32 = load_vector_element %216, 0u
+    %218:bool = gte %217, 2.0f
+    if %218 [t: $B51] {  # if_22
+      $B51: {  # true
+        %219:vec4<f32> = load %gl_FragCoord
+        %220:vec2<f32> = swizzle %219, xy
+        store %position_1, %220
+        %221:vec2<f32> = load %position_1
+        store %param, %221
+        %222:vec3<f32> = call %drawShape_vf2_, %param
+        %x_168:vec3<f32> = let %222
+        %224:vec2<f32> = load %position_1
+        store %param_1, %224
+        %225:vec3<f32> = call %drawShape_vf2_, %param_1
+        %x_170:vec3<f32> = let %225
         store %i, 25i
-        loop [b: %b52, c: %b53] {  # loop_9
-          %b52 = block {  # body
-            %201:i32 = load %i
-            %202:bool = gt %201, 0i
-            if %202 [t: %b54, f: %b55] {  # if_23
-              %b54 = block {  # true
+        loop [b: $B52, c: $B53] {  # loop_9
+          $B52: {  # body
+            %227:i32 = load %i
+            %228:bool = gt %227, 0i
+            if %228 [t: $B54, f: $B55] {  # if_23
+              $B54: {  # true
                 exit_if  # if_23
               }
-              %b55 = block {  # false
+              $B55: {  # false
                 exit_loop  # loop_9
               }
             }
-            %203:vec2<f32> = load %position_1
-            store %param_2, %203
-            %x_178:vec3<f32> = call %drawShape_vf2_, %param_2
-            continue %b53
+            %229:vec2<f32> = load %position_1
+            store %param_2, %229
+            %230:vec3<f32> = call %drawShape_vf2_, %param_2
+            %x_178:vec3<f32> = let %230
+            continue  # -> $B53
           }
-          %b53 = block {  # continuing
-            %205:i32 = load %i
-            %206:i32 = sub %205, 1i
-            store %i, %206
-            next_iteration %b52
+          $B53: {  # continuing
+            %232:i32 = load %i
+            %233:i32 = sub %232, 1i
+            store %i, %233
+            next_iteration  # -> $B52
           }
         }
         exit_if  # if_22
@@ -493,13 +519,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b56 {
-  %b56 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B56: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %209:void = call %main_1
-    %210:vec4<f32> = load %x_GLF_color
-    %211:main_out = construct %210
-    ret %211
+    %236:void = call %main_1
+    %237:vec4<f32> = load %x_GLF_color
+    %238:main_out = construct %237
+    ret %238
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B57: {
+    %240:i32 = convert %value
+    %241:bool = gte %value, -2147483648.0f
+    %242:i32 = select -2147483648i, %240, %241
+    %243:bool = lte %value, 2147483520.0f
+    %244:i32 = select 2147483647i, %242, %243
+    ret %244
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.msl
index 54c2790..0d82f34 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/control-flow-in-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_25:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%drawShape_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):vec3<f32> -> %b2 {
-  %b2 = block {
+%drawShape_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):vec3<f32> {
+  $B2: {
     %c2:ptr<function, bool, read_write> = var
     %c3:ptr<function, bool, read_write> = var
     %c4:ptr<function, bool, read_write> = var
@@ -42,450 +42,537 @@
     %GLF_live7r_1:ptr<function, i32, read_write> = var
     %x_180:ptr<function, i32, read_write> = var
     %indexable:ptr<function, mat3x3<f32>, read_write> = var
-    %x_182:f32 = load_vector_element %pos, 0u
-    %33:bool = gt %x_182, 1.0f
-    store %c2, %33
-    %x_184:bool = load %c2
-    if %x_184 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %32:f32 = load_vector_element %pos, 0u
+    %x_182:f32 = let %32
+    %34:bool = gt %x_182, 1.0f
+    store %c2, %34
+    %35:bool = load %c2
+    %x_184:bool = let %35
+    if %x_184 [t: $B3] {  # if_1
+      $B3: {  # true
         ret vec3<f32>(1.0f)
       }
     }
-    %x_188:f32 = load_vector_element %pos, 1u
-    %36:bool = lt %x_188, 1.0f
-    store %c3, %36
-    %x_190:bool = load %c3
-    if %x_190 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %37:f32 = load_vector_element %pos, 1u
+    %x_188:f32 = let %37
+    %39:bool = lt %x_188, 1.0f
+    store %c3, %39
+    %40:bool = load %c3
+    %x_190:bool = let %40
+    if %x_190 [t: $B4] {  # if_2
+      $B4: {  # true
         ret vec3<f32>(1.0f)
       }
     }
-    %x_194:f32 = load_vector_element %pos, 1u
-    %39:bool = gt %x_194, 1.0f
-    store %c4, %39
-    %x_196:bool = load %c4
-    if %x_196 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %42:f32 = load_vector_element %pos, 1u
+    %x_194:f32 = let %42
+    %44:bool = gt %x_194, 1.0f
+    store %c4, %44
+    %45:bool = load %c4
+    %x_196:bool = let %45
+    if %x_196 [t: $B5] {  # if_3
+      $B5: {  # true
         ret vec3<f32>(1.0f)
       }
     }
-    %x_200:f32 = load_vector_element %pos, 0u
-    %42:bool = lt %x_200, 1.0f
-    store %c5, %42
-    %x_202:bool = load %c5
-    if %x_202 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %47:f32 = load_vector_element %pos, 0u
+    %x_200:f32 = let %47
+    %49:bool = lt %x_200, 1.0f
+    store %c5, %49
+    %50:bool = load %c5
+    %x_202:bool = let %50
+    if %x_202 [t: $B6] {  # if_4
+      $B6: {  # true
         ret vec3<f32>(1.0f)
       }
     }
-    %x_206:f32 = load_vector_element %pos, 0u
-    %45:f32 = add %x_206, 1.0f
-    %46:bool = gt %45, 1.0f
-    store %c6, %46
-    %x_209:bool = load %c6
-    if %x_209 [t: %b7] {  # if_5
-      %b7 = block {  # true
+    %52:f32 = load_vector_element %pos, 0u
+    %x_206:f32 = let %52
+    %54:f32 = add %x_206, 1.0f
+    %55:bool = gt %54, 1.0f
+    store %c6, %55
+    %56:bool = load %c6
+    %x_209:bool = let %56
+    if %x_209 [t: $B7] {  # if_5
+      $B7: {  # true
         ret vec3<f32>(1.0f)
       }
     }
     store %GLF_live4i, 0i
-    loop [b: %b8, c: %b9] {  # loop_1
-      %b8 = block {  # body
-        %x_39:i32 = load %GLF_live4i
-        %49:bool = lt %x_39, 4i
-        if %49 [t: %b10, f: %b11] {  # if_6
-          %b10 = block {  # true
+    loop [b: $B8, c: $B9] {  # loop_1
+      $B8: {  # body
+        %58:i32 = load %GLF_live4i
+        %x_39:i32 = let %58
+        %60:bool = lt %x_39, 4i
+        if %60 [t: $B10, f: $B11] {  # if_6
+          $B10: {  # true
             exit_if  # if_6
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_40:i32 = load %GLF_live4_looplimiter5
-        %51:bool = gte %x_40, 7i
-        if %51 [t: %b12] {  # if_7
-          %b12 = block {  # true
+        %61:i32 = load %GLF_live4_looplimiter5
+        %x_40:i32 = let %61
+        %63:bool = gte %x_40, 7i
+        if %63 [t: $B12] {  # if_7
+          $B12: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_41:i32 = load %GLF_live4_looplimiter5
-        %53:i32 = add %x_41, 1i
-        store %GLF_live4_looplimiter5, %53
+        %64:i32 = load %GLF_live4_looplimiter5
+        %x_41:i32 = let %64
+        %66:i32 = add %x_41, 1i
+        store %GLF_live4_looplimiter5, %66
         store %GLF_live7m42, mat4x2<f32>(vec2<f32>(1.0f, 0.0f), vec2<f32>(0.0f, 1.0f), vec2<f32>(0.0f), vec2<f32>(1.0f, 0.0f))
         store %GLF_live7m33, mat3x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f))
         store %GLF_live7cols, 2i
-        loop [b: %b13, c: %b14] {  # loop_2
-          %b13 = block {  # body
-            %x_43:i32 = load %GLF_live7cols
-            %55:bool = lt %x_43, 4i
-            if %55 [t: %b15, f: %b16] {  # if_8
-              %b15 = block {  # true
+        loop [b: $B13, c: $B14] {  # loop_2
+          $B13: {  # body
+            %67:i32 = load %GLF_live7cols
+            %x_43:i32 = let %67
+            %69:bool = lt %x_43, 4i
+            if %69 [t: $B15, f: $B16] {  # if_8
+              $B15: {  # true
                 exit_if  # if_8
               }
-              %b16 = block {  # false
+              $B16: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_44:i32 = load %GLF_live7_looplimiter3
-            %57:bool = gte %x_44, 7i
-            if %57 [t: %b17] {  # if_9
-              %b17 = block {  # true
+            %70:i32 = load %GLF_live7_looplimiter3
+            %x_44:i32 = let %70
+            %72:bool = gte %x_44, 7i
+            if %72 [t: $B17] {  # if_9
+              $B17: {  # true
                 exit_loop  # loop_2
               }
             }
-            %x_45:i32 = load %GLF_live7_looplimiter3
-            %59:i32 = add %x_45, 1i
-            store %GLF_live7_looplimiter3, %59
+            %73:i32 = load %GLF_live7_looplimiter3
+            %x_45:i32 = let %73
+            %75:i32 = add %x_45, 1i
+            store %GLF_live7_looplimiter3, %75
             store %GLF_live7rows, 2i
-            loop [b: %b18, c: %b19] {  # loop_3
-              %b18 = block {  # body
-                %x_47:i32 = load %GLF_live7rows
-                %61:bool = lt %x_47, 4i
-                if %61 [t: %b20, f: %b21] {  # if_10
-                  %b20 = block {  # true
+            loop [b: $B18, c: $B19] {  # loop_3
+              $B18: {  # body
+                %76:i32 = load %GLF_live7rows
+                %x_47:i32 = let %76
+                %78:bool = lt %x_47, 4i
+                if %78 [t: $B20, f: $B21] {  # if_10
+                  $B20: {  # true
                     exit_if  # if_10
                   }
-                  %b21 = block {  # false
+                  $B21: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %x_48:i32 = load %GLF_live7_looplimiter2
-                %63:bool = gte %x_48, 7i
-                if %63 [t: %b22] {  # if_11
-                  %b22 = block {  # true
+                %79:i32 = load %GLF_live7_looplimiter2
+                %x_48:i32 = let %79
+                %81:bool = gte %x_48, 7i
+                if %81 [t: $B22] {  # if_11
+                  $B22: {  # true
                     exit_loop  # loop_3
                   }
                 }
-                %x_49:i32 = load %GLF_live7_looplimiter2
-                %65:i32 = add %x_49, 1i
-                store %GLF_live7_looplimiter2, %65
+                %82:i32 = load %GLF_live7_looplimiter2
+                %x_49:i32 = let %82
+                %84:i32 = add %x_49, 1i
+                store %GLF_live7_looplimiter2, %84
                 store %GLF_live7_looplimiter1, 0i
                 store %GLF_live7c, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %x_51:i32 = load %GLF_live7c
-                    %67:bool = lt %x_51, 3i
-                    if %67 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %85:i32 = load %GLF_live7c
+                    %x_51:i32 = let %85
+                    %87:bool = lt %x_51, 3i
+                    if %87 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_52:i32 = load %GLF_live7_looplimiter1
-                    %69:bool = gte %x_52, 7i
-                    if %69 [t: %b27] {  # if_13
-                      %b27 = block {  # true
+                    %88:i32 = load %GLF_live7_looplimiter1
+                    %x_52:i32 = let %88
+                    %90:bool = gte %x_52, 7i
+                    if %90 [t: $B27] {  # if_13
+                      $B27: {  # true
                         exit_loop  # loop_4
                       }
                     }
-                    %x_53:i32 = load %GLF_live7_looplimiter1
-                    %71:i32 = add %x_53, 1i
-                    store %GLF_live7_looplimiter1, %71
+                    %91:i32 = load %GLF_live7_looplimiter1
+                    %x_53:i32 = let %91
+                    %93:i32 = add %x_53, 1i
+                    store %GLF_live7_looplimiter1, %93
                     store %GLF_live7r, 0i
-                    loop [b: %b28, c: %b29] {  # loop_5
-                      %b28 = block {  # body
-                        %x_55:i32 = load %GLF_live7r
-                        %73:bool = lt %x_55, 2i
-                        if %73 [t: %b30, f: %b31] {  # if_14
-                          %b30 = block {  # true
+                    loop [b: $B28, c: $B29] {  # loop_5
+                      $B28: {  # body
+                        %94:i32 = load %GLF_live7r
+                        %x_55:i32 = let %94
+                        %96:bool = lt %x_55, 2i
+                        if %96 [t: $B30, f: $B31] {  # if_14
+                          $B30: {  # true
                             exit_if  # if_14
                           }
-                          %b31 = block {  # false
+                          $B31: {  # false
                             exit_loop  # loop_5
                           }
                         }
-                        %x_56:i32 = load %GLF_live7_looplimiter0
-                        %75:bool = gte %x_56, 7i
-                        if %75 [t: %b32] {  # if_15
-                          %b32 = block {  # true
+                        %97:i32 = load %GLF_live7_looplimiter0
+                        %x_56:i32 = let %97
+                        %99:bool = gte %x_56, 7i
+                        if %99 [t: $B32] {  # if_15
+                          $B32: {  # true
                             exit_loop  # loop_5
                           }
                         }
-                        %x_57:i32 = load %GLF_live7_looplimiter0
-                        %77:i32 = add %x_57, 1i
-                        store %GLF_live7_looplimiter0, %77
-                        %x_59:i32 = load %GLF_live7c
-                        %x_60:i32 = load %GLF_live7c
-                        %x_61:i32 = load %GLF_live7c
-                        %x_62:i32 = load %GLF_live7r
-                        %x_63:i32 = load %GLF_live7r
-                        %x_64:i32 = load %GLF_live7r
-                        %84:bool = gte %x_59, 0i
-                        %85:bool = lt %x_60, 3i
-                        %86:bool = and %84, %85
-                        %87:i32 = select 0i, %x_61, %86
-                        %88:ptr<function, vec3<f32>, read_write> = access %GLF_live7m33, %87
-                        %89:bool = gte %x_62, 0i
-                        %90:bool = lt %x_63, 3i
-                        %91:bool = and %89, %90
-                        %92:i32 = select 0i, %x_64, %91
-                        store_vector_element %88, %92, 1.0f
-                        %93:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
-                        %x_267:f32 = load_vector_element %93, 1u
-                        %95:bool = gt 0.0f, %x_267
-                        if %95 [t: %b33, f: %b34] {  # if_16
-                          %b33 = block {  # true
+                        %100:i32 = load %GLF_live7_looplimiter0
+                        %x_57:i32 = let %100
+                        %102:i32 = add %x_57, 1i
+                        store %GLF_live7_looplimiter0, %102
+                        %103:i32 = load %GLF_live7c
+                        %x_59:i32 = let %103
+                        %105:i32 = load %GLF_live7c
+                        %x_60:i32 = let %105
+                        %107:i32 = load %GLF_live7c
+                        %x_61:i32 = let %107
+                        %109:i32 = load %GLF_live7r
+                        %x_62:i32 = let %109
+                        %111:i32 = load %GLF_live7r
+                        %x_63:i32 = let %111
+                        %113:i32 = load %GLF_live7r
+                        %x_64:i32 = let %113
+                        %115:bool = gte %x_59, 0i
+                        %116:bool = lt %x_60, 3i
+                        %117:bool = and %115, %116
+                        %118:i32 = select 0i, %x_61, %117
+                        %119:ptr<function, vec3<f32>, read_write> = access %GLF_live7m33, %118
+                        %120:ptr<function, vec3<f32>, read_write> = let %119
+                        %121:bool = gte %x_62, 0i
+                        %122:bool = lt %x_63, 3i
+                        %123:bool = and %121, %122
+                        %124:i32 = select 0i, %x_64, %123
+                        store_vector_element %120, %124, 1.0f
+                        %125:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
+                        %126:f32 = load_vector_element %125, 1u
+                        %x_267:f32 = let %126
+                        %128:bool = gt 0.0f, %x_267
+                        if %128 [t: $B33, f: $B34] {  # if_16
+                          $B33: {  # true
                             exit_if  # if_16
                           }
-                          %b34 = block {  # false
-                            %x_65:i32 = load %GLF_live7c
-                            %x_66:i32 = load %GLF_live7c
-                            %x_67:i32 = load %GLF_live7c
-                            %x_68:i32 = load %GLF_live7r
-                            %x_69:i32 = load %GLF_live7r
-                            %x_70:i32 = load %GLF_live7r
-                            %102:bool = gte %x_65, 0i
-                            %103:bool = lt %x_66, 4i
-                            %104:bool = and %102, %103
-                            %105:i32 = select 0i, %x_67, %104
-                            %106:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, %105
-                            %107:bool = gte %x_68, 0i
-                            %108:bool = lt %x_69, 2i
-                            %109:bool = and %107, %108
-                            %110:i32 = select 0i, %x_70, %109
-                            store_vector_element %106, %110, 1.0f
+                          $B34: {  # false
+                            %129:i32 = load %GLF_live7c
+                            %x_65:i32 = let %129
+                            %131:i32 = load %GLF_live7c
+                            %x_66:i32 = let %131
+                            %133:i32 = load %GLF_live7c
+                            %x_67:i32 = let %133
+                            %135:i32 = load %GLF_live7r
+                            %x_68:i32 = let %135
+                            %137:i32 = load %GLF_live7r
+                            %x_69:i32 = let %137
+                            %139:i32 = load %GLF_live7r
+                            %x_70:i32 = let %139
+                            %141:bool = gte %x_65, 0i
+                            %142:bool = lt %x_66, 4i
+                            %143:bool = and %141, %142
+                            %144:i32 = select 0i, %x_67, %143
+                            %145:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, %144
+                            %146:ptr<function, vec2<f32>, read_write> = let %145
+                            %147:bool = gte %x_68, 0i
+                            %148:bool = lt %x_69, 2i
+                            %149:bool = and %147, %148
+                            %150:i32 = select 0i, %x_70, %149
+                            store_vector_element %146, %150, 1.0f
                             exit_if  # if_16
                           }
                         }
-                        continue %b29
+                        continue  # -> $B29
                       }
-                      %b29 = block {  # continuing
-                        %x_71:i32 = load %GLF_live7r
-                        %112:i32 = add %x_71, 1i
-                        store %GLF_live7r, %112
-                        next_iteration %b28
+                      $B29: {  # continuing
+                        %151:i32 = load %GLF_live7r
+                        %x_71:i32 = let %151
+                        %153:i32 = add %x_71, 1i
+                        store %GLF_live7r, %153
+                        next_iteration  # -> $B28
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %x_73:i32 = load %GLF_live7c
-                    %114:i32 = add %x_73, 1i
-                    store %GLF_live7c, %114
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %154:i32 = load %GLF_live7c
+                    %x_73:i32 = let %154
+                    %156:i32 = add %x_73, 1i
+                    store %GLF_live7c, %156
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b19
+                continue  # -> $B19
               }
-              %b19 = block {  # continuing
-                %x_75:i32 = load %GLF_live7rows
-                %116:i32 = add %x_75, 1i
-                store %GLF_live7rows, %116
-                next_iteration %b18
+              $B19: {  # continuing
+                %157:i32 = load %GLF_live7rows
+                %x_75:i32 = let %157
+                %159:i32 = add %x_75, 1i
+                store %GLF_live7rows, %159
+                next_iteration  # -> $B18
               }
             }
-            continue %b14
+            continue  # -> $B14
           }
-          %b14 = block {  # continuing
-            %x_77:i32 = load %GLF_live7cols
-            %118:i32 = add %x_77, 1i
-            store %GLF_live7cols, %118
-            next_iteration %b13
+          $B14: {  # continuing
+            %160:i32 = load %GLF_live7cols
+            %x_77:i32 = let %160
+            %162:i32 = add %x_77, 1i
+            store %GLF_live7cols, %162
+            next_iteration  # -> $B13
           }
         }
         store %GLF_live7sum_index, 0i
         store %GLF_live7_looplimiter7, 0i
         store %GLF_live7cols_1, 2i
-        loop [b: %b35, c: %b36] {  # loop_6
-          %b35 = block {  # body
-            %x_79:i32 = load %GLF_live7cols_1
-            %120:bool = lt %x_79, 4i
-            if %120 [t: %b37, f: %b38] {  # if_17
-              %b37 = block {  # true
+        loop [b: $B35, c: $B36] {  # loop_6
+          $B35: {  # body
+            %163:i32 = load %GLF_live7cols_1
+            %x_79:i32 = let %163
+            %165:bool = lt %x_79, 4i
+            if %165 [t: $B37, f: $B38] {  # if_17
+              $B37: {  # true
                 exit_if  # if_17
               }
-              %b38 = block {  # false
+              $B38: {  # false
                 exit_loop  # loop_6
               }
             }
-            %x_80:i32 = load %GLF_live7_looplimiter7
-            %122:bool = gte %x_80, 7i
-            if %122 [t: %b39] {  # if_18
-              %b39 = block {  # true
+            %166:i32 = load %GLF_live7_looplimiter7
+            %x_80:i32 = let %166
+            %168:bool = gte %x_80, 7i
+            if %168 [t: $B39] {  # if_18
+              $B39: {  # true
                 exit_loop  # loop_6
               }
             }
-            %x_81:i32 = load %GLF_live7_looplimiter7
-            %124:i32 = add %x_81, 1i
-            store %GLF_live7_looplimiter7, %124
+            %169:i32 = load %GLF_live7_looplimiter7
+            %x_81:i32 = let %169
+            %171:i32 = add %x_81, 1i
+            store %GLF_live7_looplimiter7, %171
             store %GLF_live7rows_1, 2i
-            %x_83:i32 = load %GLF_live7sum_index
-            %x_84:i32 = load %GLF_live7sum_index
-            %x_85:i32 = load %GLF_live7sum_index
-            %128:bool = gte %x_83, 0i
-            %129:bool = lt %x_84, 9i
-            %130:bool = and %128, %129
-            %131:i32 = select 0i, %x_85, %130
-            %132:ptr<function, f32, read_write> = access %GLF_live7sums, %131
-            store %132, 0.0f
+            %172:i32 = load %GLF_live7sum_index
+            %x_83:i32 = let %172
+            %174:i32 = load %GLF_live7sum_index
+            %x_84:i32 = let %174
+            %176:i32 = load %GLF_live7sum_index
+            %x_85:i32 = let %176
+            %178:bool = gte %x_83, 0i
+            %179:bool = lt %x_84, 9i
+            %180:bool = and %178, %179
+            %181:i32 = select 0i, %x_85, %180
+            %182:ptr<function, f32, read_write> = access %GLF_live7sums, %181
+            store %182, 0.0f
             store %GLF_live7c_1, 0i
-            loop [b: %b40, c: %b41] {  # loop_7
-              %b40 = block {  # body
-                %x_86:i32 = load %GLF_live7c_1
-                %134:bool = lt %x_86, 1i
-                if %134 [t: %b42, f: %b43] {  # if_19
-                  %b42 = block {  # true
+            loop [b: $B40, c: $B41] {  # loop_7
+              $B40: {  # body
+                %183:i32 = load %GLF_live7c_1
+                %x_86:i32 = let %183
+                %185:bool = lt %x_86, 1i
+                if %185 [t: $B42, f: $B43] {  # if_19
+                  $B42: {  # true
                     exit_if  # if_19
                   }
-                  %b43 = block {  # false
+                  $B43: {  # false
                     exit_loop  # loop_7
                   }
                 }
                 store %GLF_live7r_1, 0i
-                loop [b: %b44, c: %b45] {  # loop_8
-                  %b44 = block {  # body
-                    %x_87:i32 = load %GLF_live7r_1
-                    %x_88:i32 = load %GLF_live7rows_1
-                    %137:bool = lt %x_87, %x_88
-                    if %137 [t: %b46, f: %b47] {  # if_20
-                      %b46 = block {  # true
+                loop [b: $B44, c: $B45] {  # loop_8
+                  $B44: {  # body
+                    %186:i32 = load %GLF_live7r_1
+                    %x_87:i32 = let %186
+                    %188:i32 = load %GLF_live7rows_1
+                    %x_88:i32 = let %188
+                    %190:bool = lt %x_87, %x_88
+                    if %190 [t: $B46, f: $B47] {  # if_20
+                      $B46: {  # true
                         exit_if  # if_20
                       }
-                      %b47 = block {  # false
+                      $B47: {  # false
                         exit_loop  # loop_8
                       }
                     }
-                    %x_89:i32 = load %GLF_live7sum_index
-                    %x_90:i32 = load %GLF_live7sum_index
-                    %x_91:i32 = load %GLF_live7sum_index
-                    %141:bool = gte %x_89, 0i
-                    %142:bool = lt %x_90, 9i
-                    %143:bool = and %141, %142
-                    %x_310:i32 = select 0i, %x_91, %143
-                    %x_311:mat3x3<f32> = load %GLF_live7m33
-                    %x_312:mat3x3<f32> = transpose %x_311
-                    %x_92:i32 = load %GLF_live7c_1
-                    %148:bool = lt %x_92, 3i
-                    if %148 [t: %b48, f: %b49] {  # if_21
-                      %b48 = block {  # true
+                    %191:i32 = load %GLF_live7sum_index
+                    %x_89:i32 = let %191
+                    %193:i32 = load %GLF_live7sum_index
+                    %x_90:i32 = let %193
+                    %195:i32 = load %GLF_live7sum_index
+                    %x_91:i32 = let %195
+                    %197:bool = gte %x_89, 0i
+                    %198:bool = lt %x_90, 9i
+                    %199:bool = and %197, %198
+                    %200:i32 = select 0i, %x_91, %199
+                    %x_310:i32 = let %200
+                    %202:mat3x3<f32> = load %GLF_live7m33
+                    %x_311:mat3x3<f32> = let %202
+                    %204:mat3x3<f32> = transpose %x_311
+                    %x_312:mat3x3<f32> = let %204
+                    %206:i32 = load %GLF_live7c_1
+                    %x_92:i32 = let %206
+                    %208:bool = lt %x_92, 3i
+                    if %208 [t: $B48, f: $B49] {  # if_21
+                      $B48: {  # true
                         store %x_180, 1i
                         exit_if  # if_21
                       }
-                      %b49 = block {  # false
-                        %149:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
-                        %x_318:f32 = load_vector_element %149, 0u
-                        %151:i32 = convert %x_318
-                        store %x_180, %151
+                      $B49: {  # false
+                        %209:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
+                        %210:f32 = load_vector_element %209, 0u
+                        %x_318:f32 = let %210
+                        %212:i32 = call %tint_f32_to_i32, %x_318
+                        store %x_180, %212
                         exit_if  # if_21
                       }
                     }
-                    %x_320:i32 = load %x_180
-                    %x_93:i32 = load %GLF_live7r_1
+                    %214:i32 = load %x_180
+                    %x_320:i32 = let %214
+                    %216:i32 = load %GLF_live7r_1
+                    %x_93:i32 = let %216
                     store %indexable, %x_312
-                    %154:ptr<function, vec3<f32>, read_write> = access %indexable, %x_320
-                    %155:bool = lt %x_93, 3i
-                    %156:i32 = select 0i, 1i, %155
-                    %x_324:f32 = load_vector_element %154, %156
-                    %158:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
-                    %x_326:f32 = load %158
-                    %160:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
-                    %161:f32 = add %x_326, %x_324
-                    store %160, %161
-                    %x_94:i32 = load %GLF_live7sum_index
-                    %x_95:i32 = load %GLF_live7sum_index
-                    %x_96:i32 = load %GLF_live7sum_index
-                    %165:bool = gte %x_94, 0i
-                    %166:bool = lt %x_95, 9i
-                    %167:bool = and %165, %166
-                    %x_332:i32 = select 0i, %x_96, %167
-                    %x_97:i32 = load %GLF_live7r_1
-                    %170:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, 1i
-                    %x_334:f32 = load_vector_element %170, %x_97
-                    %172:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
-                    %x_336:f32 = load %172
-                    %174:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
-                    %175:f32 = add %x_336, %x_334
-                    store %174, %175
-                    continue %b45
+                    %218:ptr<function, vec3<f32>, read_write> = access %indexable, %x_320
+                    %219:bool = lt %x_93, 3i
+                    %220:i32 = select 0i, 1i, %219
+                    %221:f32 = load_vector_element %218, %220
+                    %x_324:f32 = let %221
+                    %223:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
+                    %224:f32 = load %223
+                    %x_326:f32 = let %224
+                    %226:ptr<function, f32, read_write> = access %GLF_live7sums, %x_310
+                    %227:f32 = add %x_326, %x_324
+                    store %226, %227
+                    %228:i32 = load %GLF_live7sum_index
+                    %x_94:i32 = let %228
+                    %230:i32 = load %GLF_live7sum_index
+                    %x_95:i32 = let %230
+                    %232:i32 = load %GLF_live7sum_index
+                    %x_96:i32 = let %232
+                    %234:bool = gte %x_94, 0i
+                    %235:bool = lt %x_95, 9i
+                    %236:bool = and %234, %235
+                    %237:i32 = select 0i, %x_96, %236
+                    %x_332:i32 = let %237
+                    %239:i32 = load %GLF_live7r_1
+                    %x_97:i32 = let %239
+                    %241:ptr<function, vec2<f32>, read_write> = access %GLF_live7m42, 1i
+                    %242:f32 = load_vector_element %241, %x_97
+                    %x_334:f32 = let %242
+                    %244:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
+                    %245:f32 = load %244
+                    %x_336:f32 = let %245
+                    %247:ptr<function, f32, read_write> = access %GLF_live7sums, %x_332
+                    %248:f32 = add %x_336, %x_334
+                    store %247, %248
+                    continue  # -> $B45
                   }
-                  %b45 = block {  # continuing
-                    %x_98:i32 = load %GLF_live7r_1
-                    %177:i32 = add %x_98, 1i
-                    store %GLF_live7r_1, %177
-                    next_iteration %b44
+                  $B45: {  # continuing
+                    %249:i32 = load %GLF_live7r_1
+                    %x_98:i32 = let %249
+                    %251:i32 = add %x_98, 1i
+                    store %GLF_live7r_1, %251
+                    next_iteration  # -> $B44
                   }
                 }
-                continue %b41
+                continue  # -> $B41
               }
-              %b41 = block {  # continuing
-                %x_100:i32 = load %GLF_live7c_1
-                %179:i32 = add %x_100, 1i
-                store %GLF_live7c_1, %179
-                next_iteration %b40
+              $B41: {  # continuing
+                %252:i32 = load %GLF_live7c_1
+                %x_100:i32 = let %252
+                %254:i32 = add %x_100, 1i
+                store %GLF_live7c_1, %254
+                next_iteration  # -> $B40
               }
             }
-            %x_102:i32 = load %GLF_live7sum_index
-            %181:i32 = add %x_102, 1i
-            store %GLF_live7sum_index, %181
-            continue %b36
+            %255:i32 = load %GLF_live7sum_index
+            %x_102:i32 = let %255
+            %257:i32 = add %x_102, 1i
+            store %GLF_live7sum_index, %257
+            continue  # -> $B36
           }
-          %b36 = block {  # continuing
-            %x_104:i32 = load %GLF_live7cols_1
-            %183:i32 = add %x_104, 1i
-            store %GLF_live7cols_1, %183
-            next_iteration %b35
+          $B36: {  # continuing
+            %258:i32 = load %GLF_live7cols_1
+            %x_104:i32 = let %258
+            %260:i32 = add %x_104, 1i
+            store %GLF_live7cols_1, %260
+            next_iteration  # -> $B35
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %x_106:i32 = load %GLF_live4i
-        %185:i32 = add %x_106, 1i
-        store %GLF_live4i, %185
-        next_iteration %b8
+      $B9: {  # continuing
+        %261:i32 = load %GLF_live4i
+        %x_106:i32 = let %261
+        %263:i32 = add %x_106, 1i
+        store %GLF_live4i, %263
+        next_iteration  # -> $B8
       }
     }
     ret vec3<f32>(1.0f)
   }
 }
-%main_1 = func():void -> %b50 {
-  %b50 = block {
+%main_1 = func():void {
+  $B50: {
     %position:ptr<function, vec2<f32>, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %param_1:ptr<function, vec2<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %192:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
-    %x_161:f32 = load_vector_element %192, 0u
-    %194:bool = gte %x_161, 2.0f
-    if %194 [t: %b51] {  # if_22
-      %b51 = block {  # true
-        %x_165:vec4<f32> = load %gl_FragCoord
-        %196:f32 = access %x_165, 0u
-        %197:f32 = access %x_165, 1u
-        %198:vec2<f32> = construct %196, %197
-        store %position, %198
-        %x_167:vec2<f32> = load %position
+    %270:ptr<uniform, vec2<f32>, read> = access %x_25, 0u
+    %271:f32 = load_vector_element %270, 0u
+    %x_161:f32 = let %271
+    %273:bool = gte %x_161, 2.0f
+    if %273 [t: $B51] {  # if_22
+      $B51: {  # true
+        %274:vec4<f32> = load %gl_FragCoord
+        %x_165:vec4<f32> = let %274
+        %276:f32 = access %x_165, 0u
+        %277:f32 = access %x_165, 1u
+        %278:vec2<f32> = construct %276, %277
+        store %position, %278
+        %279:vec2<f32> = load %position
+        %x_167:vec2<f32> = let %279
         store %param, %x_167
-        %x_168:vec3<f32> = call %drawShape_vf2_, %param
-        %x_169:vec2<f32> = load %position
+        %281:vec3<f32> = call %drawShape_vf2_, %param
+        %x_168:vec3<f32> = let %281
+        %283:vec2<f32> = load %position
+        %x_169:vec2<f32> = let %283
         store %param_1, %x_169
-        %x_170:vec3<f32> = call %drawShape_vf2_, %param_1
+        %285:vec3<f32> = call %drawShape_vf2_, %param_1
+        %x_170:vec3<f32> = let %285
         store %i, 25i
-        loop [b: %b52, c: %b53] {  # loop_9
-          %b52 = block {  # body
-            %x_108:i32 = load %i
-            %204:bool = gt %x_108, 0i
-            if %204 [t: %b54, f: %b55] {  # if_23
-              %b54 = block {  # true
+        loop [b: $B52, c: $B53] {  # loop_9
+          $B52: {  # body
+            %287:i32 = load %i
+            %x_108:i32 = let %287
+            %289:bool = gt %x_108, 0i
+            if %289 [t: $B54, f: $B55] {  # if_23
+              $B54: {  # true
                 exit_if  # if_23
               }
-              %b55 = block {  # false
+              $B55: {  # false
                 exit_loop  # loop_9
               }
             }
-            %x_177:vec2<f32> = load %position
+            %290:vec2<f32> = load %position
+            %x_177:vec2<f32> = let %290
             store %param_2, %x_177
-            %x_178:vec3<f32> = call %drawShape_vf2_, %param_2
-            continue %b53
+            %292:vec3<f32> = call %drawShape_vf2_, %param_2
+            %x_178:vec3<f32> = let %292
+            continue  # -> $B53
           }
-          %b53 = block {  # continuing
-            %x_109:i32 = load %i
-            %208:i32 = sub %x_109, 1i
-            store %i, %208
-            next_iteration %b52
+          $B53: {  # continuing
+            %294:i32 = load %i
+            %x_109:i32 = let %294
+            %296:i32 = sub %x_109, 1i
+            store %i, %296
+            next_iteration  # -> $B52
           }
         }
         exit_if  # if_22
@@ -495,13 +582,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b56 {
-  %b56 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B56: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %211:void = call %main_1
-    %212:vec4<f32> = load %x_GLF_color
-    %213:main_out = construct %212
-    ret %213
+    %299:void = call %main_1
+    %300:vec4<f32> = load %x_GLF_color
+    %301:main_out = construct %300
+    ret %301
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B57: {
+    %303:i32 = convert %value
+    %304:bool = gte %value, -2147483648.0f
+    %305:i32 = select -2147483648i, %303, %304
+    %306:bool = lte %value, 2147483520.0f
+    %307:i32 = select 2147483647i, %305, %306
+    ret %307
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.msl
index 5938e04..c627809 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,95 +20,103 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %numbers:ptr<function, array<i32, 3>, read_write> = var
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %8
-    %10:ptr<function, i32, read_write> = access %numbers, %x_38
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %12:i32 = load %11
-    store %10, %12
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_43:i32 = load %13
-    %15:ptr<function, i32, read_write> = access %numbers, %x_43
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %17:i32 = load %16
-    store %15, %17
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_48:i32 = load %18
-    %20:ptr<function, i32, read_write> = access %numbers, %x_48
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %22:i32 = load %21
-    store %20, %22
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %24:i32 = load %23
-    %25:f32 = convert %24
-    %26:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %27:f32 = load %26
-    %28:bool = lt 0.0f, %27
-    %29:i32 = select 2i, 1i, %28
-    %30:ptr<function, i32, read_write> = access %numbers, %29
-    %31:i32 = load %30
-    %32:f32 = convert %31
-    %33:vec2<f32> = construct %25, %32
-    store %a, %33
-    %34:vec2<f32> = load %a
-    %35:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %36:f32 = load %35
-    %37:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %38:f32 = load %37
-    %39:vec2<f32> = construct %36, %38
-    %40:f32 = dot %34, %39
-    store %b, %40
-    %41:f32 = load %b
-    %42:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %9:i32 = load %8
+    %x_38:i32 = let %9
+    %11:ptr<function, i32, read_write> = access %numbers, %x_38
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %13:i32 = load %12
+    store %11, %13
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_43:i32 = let %15
+    %17:ptr<function, i32, read_write> = access %numbers, %x_43
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %19:i32 = load %18
+    store %17, %19
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %21:i32 = load %20
+    %x_48:i32 = let %21
+    %23:ptr<function, i32, read_write> = access %numbers, %x_48
+    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %25:i32 = load %24
+    store %23, %25
+    %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %27:i32 = load %26
+    %28:f32 = convert %27
+    %29:f32 = let %28
+    %30:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %31:f32 = load %30
+    %32:bool = lt 0.0f, %31
+    %33:i32 = select 2i, 1i, %32
+    %34:ptr<function, i32, read_write> = access %numbers, %33
+    %35:i32 = load %34
+    %36:f32 = convert %35
+    %37:vec2<f32> = construct %29, %36
+    store %a, %37
+    %38:vec2<f32> = load %a
+    %39:vec2<f32> = let %38
+    %40:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %41:f32 = load %40
+    %42:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
     %43:f32 = load %42
-    %44:bool = eq %41, %43
-    if %44 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %44:vec2<f32> = construct %41, %43
+    %45:f32 = dot %39, %44
+    store %b, %45
+    %46:f32 = load %b
+    %47:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %48:f32 = load %47
+    %49:bool = eq %46, %48
+    if %49 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %51:i32 = load %50
+        %52:f32 = convert %51
+        %53:f32 = let %52
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %55:i32 = load %54
         %56:f32 = convert %55
-        %57:vec4<f32> = construct %47, %50, %53, %56
-        store %x_GLF_color, %57
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
+        %57:f32 = let %56
         %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %59:i32 = load %58
         %60:f32 = convert %59
-        %61:vec4<f32> = construct %60
-        store %x_GLF_color, %61
+        %61:f32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %63:i32 = load %62
+        %64:f32 = convert %63
+        %65:vec4<f32> = construct %53, %57, %61, %64
+        store %x_GLF_color, %65
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        %66:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %67:i32 = load %66
+        %68:f32 = convert %67
+        %69:vec4<f32> = construct %68
+        store %x_GLF_color, %69
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %71:void = call %main_1
+    %72:vec4<f32> = load %x_GLF_color
+    %73:main_out = construct %72
+    ret %73
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.msl
index 008b825..bdac3c1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-access-array-dot/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,95 +20,119 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %numbers:ptr<function, array<i32, 3>, read_write> = var
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:i32 = load %10
-    %12:ptr<function, i32, read_write> = access %numbers, %x_38
-    store %12, %x_40
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_43:i32 = load %13
+    %9:i32 = load %8
+    %x_38:i32 = let %9
+    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_40:i32 = let %12
+    %14:ptr<function, i32, read_write> = access %numbers, %x_38
+    store %14, %x_40
     %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_45:i32 = load %15
-    %17:ptr<function, i32, read_write> = access %numbers, %x_43
-    store %17, %x_45
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_48:i32 = load %18
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_50:i32 = load %20
-    %22:ptr<function, i32, read_write> = access %numbers, %x_48
-    store %22, %x_50
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_53:i32 = load %23
-    %25:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %x_56:f32 = load %25
-    %27:bool = lt 0.0f, %x_56
-    %28:i32 = select 2i, 1i, %27
-    %29:ptr<function, i32, read_write> = access %numbers, %28
-    %x_60:i32 = load %29
-    %31:f32 = convert %x_53
-    %32:f32 = convert %x_60
-    %33:vec2<f32> = construct %31, %32
-    store %a, %33
-    %x_63:vec2<f32> = load %a
-    %35:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_65:f32 = load %35
-    %37:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_67:f32 = load %37
-    %39:vec2<f32> = construct %x_65, %x_67
-    %40:f32 = dot %x_63, %39
-    store %b, %40
-    %x_70:f32 = load %b
-    %42:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_72:f32 = load %42
-    %44:bool = eq %x_70, %x_72
-    if %44 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_78:i32 = load %45
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_81:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_84:i32 = load %49
-        %51:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_87:i32 = load %51
-        %53:f32 = convert %x_78
-        %54:f32 = convert %x_81
-        %55:f32 = convert %x_84
-        %56:f32 = convert %x_87
-        %57:vec4<f32> = construct %53, %54, %55, %56
-        store %x_GLF_color, %57
+    %16:i32 = load %15
+    %x_43:i32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %19:i32 = load %18
+    %x_45:i32 = let %19
+    %21:ptr<function, i32, read_write> = access %numbers, %x_43
+    store %21, %x_45
+    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %23:i32 = load %22
+    %x_48:i32 = let %23
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %26:i32 = load %25
+    %x_50:i32 = let %26
+    %28:ptr<function, i32, read_write> = access %numbers, %x_48
+    store %28, %x_50
+    %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %30:i32 = load %29
+    %x_53:i32 = let %30
+    %32:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %33:f32 = load %32
+    %x_56:f32 = let %33
+    %35:bool = lt 0.0f, %x_56
+    %36:i32 = select 2i, 1i, %35
+    %37:ptr<function, i32, read_write> = access %numbers, %36
+    %38:i32 = load %37
+    %x_60:i32 = let %38
+    %40:f32 = convert %x_53
+    %41:f32 = let %40
+    %42:f32 = convert %x_60
+    %43:vec2<f32> = construct %41, %42
+    store %a, %43
+    %44:vec2<f32> = load %a
+    %x_63:vec2<f32> = let %44
+    %46:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %47:f32 = load %46
+    %x_65:f32 = let %47
+    %49:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %50:f32 = load %49
+    %x_67:f32 = let %50
+    %52:vec2<f32> = construct %x_65, %x_67
+    %53:f32 = dot %x_63, %52
+    store %b, %53
+    %54:f32 = load %b
+    %x_70:f32 = let %54
+    %56:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %57:f32 = load %56
+    %x_72:f32 = let %57
+    %59:bool = eq %x_70, %x_72
+    if %59 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %60:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %61:i32 = load %60
+        %x_78:i32 = let %61
+        %63:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %64:i32 = load %63
+        %x_81:i32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %67:i32 = load %66
+        %x_84:i32 = let %67
+        %69:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %70:i32 = load %69
+        %x_87:i32 = let %70
+        %72:f32 = convert %x_78
+        %73:f32 = let %72
+        %74:f32 = convert %x_81
+        %75:f32 = let %74
+        %76:f32 = convert %x_84
+        %77:f32 = let %76
+        %78:f32 = convert %x_87
+        %79:vec4<f32> = construct %73, %75, %77, %78
+        store %x_GLF_color, %79
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_91:i32 = load %58
-        %x_92:f32 = convert %x_91
-        %61:vec4<f32> = construct %x_92, %x_92, %x_92, %x_92
-        store %x_GLF_color, %61
+      $B4: {  # false
+        %80:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %81:i32 = load %80
+        %x_91:i32 = let %81
+        %83:f32 = convert %x_91
+        %x_92:f32 = let %83
+        %85:vec4<f32> = construct %x_92, %x_92, %x_92, %x_92
+        store %x_GLF_color, %85
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %87:void = call %main_1
+    %88:vec4<f32> = load %x_GLF_color
+    %89:main_out = construct %88
+    ret %89
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.msl
index 32bcd37..9b0b8cd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,95 +8,99 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %s:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     store %s, 2.0f
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %7:i32 = load %i
-        %8:ptr<uniform, i32, read> = access %x_8, 0u
-        %9:i32 = load %8
-        %10:i32 = add %9, 1i
-        %11:bool = lt %7, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %8:i32 = load %i
+        %9:ptr<uniform, i32, read> = access %x_8, 0u
+        %10:i32 = load %9
+        %11:i32 = add %10, 1i
+        %12:bool = lt %8, %11
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %12:f32 = load %s
-        %13:f32 = add %12, 3.0f
-        store %s, %13
+        %13:f32 = load %s
+        %14:f32 = add %13, 3.0f
+        store %s, %14
         store %j, 0i
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %14:i32 = load %j
-            %15:bool = lt %14, 10i
-            if %15 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %15:i32 = load %j
+            %16:bool = lt %15, 10i
+            if %16 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %16:ptr<uniform, i32, read> = access %x_8, 0u
-            %17:i32 = load %16
-            %18:bool = eq %17, 1i
-            if %18 [t: %b11] {  # if_3
-              %b11 = block {  # true
-                discard
+            %17:ptr<uniform, i32, read> = access %x_8, 0u
+            %18:i32 = load %17
+            %19:bool = eq %18, 1i
+            if %19 [t: $B11] {  # if_3
+              $B11: {  # true
+                store %continue_execution, false
                 exit_if  # if_3
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %19:i32 = load %j
-            %20:i32 = add %19, 1i
-            store %j, %20
-            next_iteration %b7
+          $B8: {  # continuing
+            %20:i32 = load %j
+            %21:i32 = add %20, 1i
+            store %j, %21
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %21:i32 = load %i
-        %22:i32 = add %21, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %22:i32 = load %i
+        %23:i32 = add %22, 1i
+        store %i, %23
+        next_iteration  # -> $B3
       }
     }
-    %x_71:f32 = load %s
+    %24:f32 = load %s
+    %x_71:f32 = let %24
     ret %x_71
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %c:ptr<function, vec4<f32>, read_write> = var
-    %x_34:f32 = call %func_
-    %27:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
-    store %c, %27
-    %x_36:f32 = call %func_
-    %29:bool = eq %x_36, 5.0f
-    if %29 [t: %b13, f: %b14] {  # if_4
-      %b13 = block {  # true
-        %30:vec4<f32> = load %c
-        store %x_GLF_color, %30
+    %28:f32 = call %func_
+    %x_34:f32 = let %28
+    %30:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
+    store %c, %30
+    %31:f32 = call %func_
+    %x_36:f32 = let %31
+    %33:bool = eq %x_36, 5.0f
+    if %33 [t: $B13, f: $B14] {  # if_4
+      $B13: {  # true
+        %34:vec4<f32> = load %c
+        store %x_GLF_color, %34
         exit_if  # if_4
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -104,12 +108,19 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    %39:bool = load %continue_execution
+    %40:bool = eq %39, false
+    if %40 [t: $B16] {  # if_5
+      $B16: {  # true
+        terminate_invocation
+      }
+    }
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.msl
index 555d0bc..407c888 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-analysis-reachable-from-many/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,95 +8,107 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %s:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     store %s, 2.0f
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_47:i32 = load %i
-        %8:ptr<uniform, i32, read> = access %x_8, 0u
-        %x_49:i32 = load %8
-        %10:i32 = add %x_49, 1i
-        %11:bool = lt %x_47, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %8:i32 = load %i
+        %x_47:i32 = let %8
+        %10:ptr<uniform, i32, read> = access %x_8, 0u
+        %11:i32 = load %10
+        %x_49:i32 = let %11
+        %13:i32 = add %x_49, 1i
+        %14:bool = lt %x_47, %13
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_53:f32 = load %s
-        %13:f32 = add %x_53, 3.0f
-        store %s, %13
+        %15:f32 = load %s
+        %x_53:f32 = let %15
+        %17:f32 = add %x_53, 3.0f
+        store %s, %17
         store %j, 0i
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_59:i32 = load %j
-            %15:bool = lt %x_59, 10i
-            if %15 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %18:i32 = load %j
+            %x_59:i32 = let %18
+            %20:bool = lt %x_59, 10i
+            if %20 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %16:ptr<uniform, i32, read> = access %x_8, 0u
-            %x_63:i32 = load %16
-            %18:bool = eq %x_63, 1i
-            if %18 [t: %b11] {  # if_3
-              %b11 = block {  # true
-                discard
+            %21:ptr<uniform, i32, read> = access %x_8, 0u
+            %22:i32 = load %21
+            %x_63:i32 = let %22
+            %24:bool = eq %x_63, 1i
+            if %24 [t: $B11] {  # if_3
+              $B11: {  # true
+                store %continue_execution, false
                 exit_if  # if_3
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_67:i32 = load %j
-            %20:i32 = add %x_67, 1i
-            store %j, %20
-            next_iteration %b7
+          $B8: {  # continuing
+            %25:i32 = load %j
+            %x_67:i32 = let %25
+            %27:i32 = add %x_67, 1i
+            store %j, %27
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_69:i32 = load %i
-        %22:i32 = add %x_69, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %28:i32 = load %i
+        %x_69:i32 = let %28
+        %30:i32 = add %x_69, 1i
+        store %i, %30
+        next_iteration  # -> $B3
       }
     }
-    %x_71:f32 = load %s
+    %31:f32 = load %s
+    %x_71:f32 = let %31
     ret %x_71
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %c:ptr<function, vec4<f32>, read_write> = var
-    %x_34:f32 = call %func_
-    %27:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
-    store %c, %27
-    %x_36:f32 = call %func_
-    %29:bool = eq %x_36, 5.0f
-    if %29 [t: %b13, f: %b14] {  # if_4
-      %b13 = block {  # true
-        %x_41:vec4<f32> = load %c
+    %35:f32 = call %func_
+    %x_34:f32 = let %35
+    %37:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
+    store %c, %37
+    %38:f32 = call %func_
+    %x_36:f32 = let %38
+    %40:bool = eq %x_36, 5.0f
+    if %40 [t: $B13, f: $B14] {  # if_4
+      $B13: {  # true
+        %41:vec4<f32> = load %c
+        %x_41:vec4<f32> = let %41
         store %x_GLF_color, %x_41
         exit_if  # if_4
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -104,12 +116,19 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    %47:bool = load %continue_execution
+    %48:bool = eq %47, false
+    if %48 [t: $B16] {  # if_5
+      $B16: {  # true
+        terminate_invocation
+      }
+    }
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.msl
index 771d7ba..4ffda10 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,22 +20,22 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<i32>, read_write> = var
     %7:f32 = load_vector_element %gl_FragCoord, 1u
     %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %9:f32 = load %8
     %10:bool = lt %7, %9
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %11:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
         %12:i32 = load %11
         %13:f32 = convert %12
@@ -43,52 +43,65 @@
         store %x_GLF_color, %14
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %15:vec4<f32> = load %gl_FragCoord
         %16:vec2<f32> = swizzle %15, xy
-        %17:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %18:f32 = load %17
-        %19:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %20:f32 = load %19
-        %21:vec2<f32> = construct %18, %20
-        %22:vec2<f32> = sub %16, %21
-        %23:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %24:f32 = load %23
-        %25:vec2<f32> = mul %22, %24
-        %26:vec2<i32> = convert %25
-        store %v, %26
-        %27:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %28:f32 = load %27
-        %29:i32 = load_vector_element %v, 1u
-        %30:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %31:i32 = load %30
-        %32:i32 = sub %29, %31
+        %17:vec2<f32> = let %16
+        %18:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %19:f32 = load %18
+        %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %21:f32 = load %20
+        %22:vec2<f32> = construct %19, %21
+        %23:vec2<f32> = sub %17, %22
+        %24:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %25:f32 = load %24
+        %26:vec2<f32> = mul %23, %25
+        %27:vec2<i32> = call %tint_v2f32_to_v2i32, %26
+        store %v, %27
+        %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %30:f32 = load %29
+        %31:f32 = let %30
+        %32:i32 = load_vector_element %v, 1u
         %33:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
         %34:i32 = load %33
-        %35:i32 = and %32, %34
-        %36:f32 = convert %35
-        %37:i32 = load_vector_element %v, 0u
-        %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:i32 = and %37, %39
-        %41:f32 = convert %40
-        %42:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %43:f32 = load %42
-        %44:vec4<f32> = construct %28, %36, %41, %43
-        store %x_GLF_color, %44
+        %35:i32 = sub %32, %34
+        %36:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %37:i32 = load %36
+        %38:i32 = and %35, %37
+        %39:f32 = convert %38
+        %40:f32 = let %39
+        %41:i32 = load_vector_element %v, 0u
+        %42:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %43:i32 = load %42
+        %44:i32 = and %41, %43
+        %45:f32 = convert %44
+        %46:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %47:f32 = load %46
+        %48:vec4<f32> = construct %31, %40, %45, %47
+        store %x_GLF_color, %48
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
+  }
+}
+%tint_v2f32_to_v2i32 = func(%value:vec2<f32>):vec2<i32> {
+  $B6: {
+    %55:vec2<i32> = convert %value
+    %56:vec2<bool> = gte %value, vec2<f32>(-2147483648.0f)
+    %57:vec2<i32> = select vec2<i32>(-2147483648i), %55, %56
+    %58:vec2<bool> = lte %value, vec2<f32>(2147483520.0f)
+    %59:vec2<i32> = select vec2<i32>(2147483647i), %57, %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.msl
index 1c9b5a0..5976c12 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-and-even-numbers-from-fragcoord/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,77 +20,104 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<i32>, read_write> = var
-    %x_39:f32 = load_vector_element %gl_FragCoord, 1u
-    %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_41:f32 = load %8
-    %10:bool = lt %x_39, %x_41
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %11:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_47:i32 = load %11
-        %x_48:f32 = convert %x_47
-        %14:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
-        store %x_GLF_color, %14
+    %7:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_39:f32 = let %7
+    %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %10:f32 = load %9
+    %x_41:f32 = let %10
+    %12:bool = lt %x_39, %x_41
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %14:i32 = load %13
+        %x_47:i32 = let %14
+        %16:f32 = convert %x_47
+        %x_48:f32 = let %16
+        %18:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
+        store %x_GLF_color, %18
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_50:vec4<f32> = load %gl_FragCoord
-        %16:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_53:f32 = load %16
-        %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_55:f32 = load %18
-        %20:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_59:f32 = load %20
-        %22:f32 = access %x_50, 0u
-        %23:f32 = access %x_50, 1u
-        %24:vec2<f32> = construct %22, %23
-        %25:vec2<f32> = construct %x_53, %x_55
-        %26:vec2<f32> = sub %24, %25
-        %27:vec2<f32> = mul %26, %x_59
-        %28:vec2<i32> = convert %27
-        store %v, %28
-        %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_63:f32 = load %29
-        %x_65:i32 = load_vector_element %v, 1u
-        %32:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_67:i32 = load %32
-        %34:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_70:i32 = load %34
-        %x_74:i32 = load_vector_element %v, 0u
-        %37:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_76:i32 = load %37
+      $B4: {  # false
+        %19:vec4<f32> = load %gl_FragCoord
+        %x_50:vec4<f32> = let %19
+        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %22:f32 = load %21
+        %x_53:f32 = let %22
+        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %25:f32 = load %24
+        %x_55:f32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %28:f32 = load %27
+        %x_59:f32 = let %28
+        %30:f32 = access %x_50, 0u
+        %31:f32 = access %x_50, 1u
+        %32:vec2<f32> = construct %30, %31
+        %33:vec2<f32> = let %32
+        %34:vec2<f32> = construct %x_53, %x_55
+        %35:vec2<f32> = sub %33, %34
+        %36:vec2<f32> = mul %35, %x_59
+        %37:vec2<i32> = call %tint_v2f32_to_v2i32, %36
+        store %v, %37
         %39:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_80:f32 = load %39
-        %41:i32 = sub %x_65, %x_67
-        %42:i32 = and %41, %x_70
-        %43:f32 = convert %42
-        %44:i32 = and %x_74, %x_76
-        %45:f32 = convert %44
-        %46:vec4<f32> = construct %x_63, %43, %45, %x_80
-        store %x_GLF_color, %46
+        %40:f32 = load %39
+        %x_63:f32 = let %40
+        %42:i32 = load_vector_element %v, 1u
+        %x_65:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %45:i32 = load %44
+        %x_67:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %48:i32 = load %47
+        %x_70:i32 = let %48
+        %50:i32 = load_vector_element %v, 0u
+        %x_74:i32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %53:i32 = load %52
+        %x_76:i32 = let %53
+        %55:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %56:f32 = load %55
+        %x_80:f32 = let %56
+        %58:i32 = sub %x_65, %x_67
+        %59:i32 = and %58, %x_70
+        %60:f32 = convert %59
+        %61:f32 = let %60
+        %62:i32 = and %x_74, %x_76
+        %63:f32 = convert %62
+        %64:vec4<f32> = construct %x_63, %61, %63, %x_80
+        store %x_GLF_color, %64
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
+  }
+}
+%tint_v2f32_to_v2i32 = func(%value:vec2<f32>):vec2<i32> {
+  $B6: {
+    %71:vec2<i32> = convert %value
+    %72:vec2<bool> = gte %value, vec2<f32>(-2147483648.0f)
+    %73:vec2<i32> = select vec2<i32>(-2147483648i), %71, %72
+    %74:vec2<bool> = lte %value, vec2<f32>(2147483520.0f)
+    %75:vec2<i32> = select vec2<i32>(2147483647i), %73, %74
+    ret %75
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.msl
index 412297b..3621034 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %d:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u
@@ -28,12 +28,12 @@
     store %d, %12
     %13:f32 = load %d
     %14:bool = lt %13, 0.00999999977648258209f
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -41,8 +41,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %16:void = call %main_1
     %17:vec4<f32> = load %x_GLF_color
     %18:main_out = construct %17
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.msl
index 7a56ae2..4e0bafd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-acos-ldexp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:i32 @offset(0)
 }
 
@@ -8,32 +8,35 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %d:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_35:i32 = load %6
-    %8:vec2<i32> = construct %x_35, 3i
-    %9:vec2<f32> = ldexp vec2<f32>(0.10000000149011611938f), %8
-    %10:vec2<f32> = acos %9
-    store %v, %10
-    %x_39:vec2<f32> = load %v
-    %12:f32 = distance %x_39, vec2<f32>(1.15927994251251220703f, 0.64349997043609619141f)
-    store %d, %12
-    %x_41:f32 = load %d
-    %14:bool = lt %x_41, 0.00999999977648258209f
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:i32 = load %6
+    %x_35:i32 = let %7
+    %9:vec2<i32> = construct %x_35, 3i
+    %10:vec2<f32> = ldexp vec2<f32>(0.10000000149011611938f), %9
+    %11:vec2<f32> = acos %10
+    store %v, %11
+    %12:vec2<f32> = load %v
+    %x_39:vec2<f32> = let %12
+    %14:f32 = distance %x_39, vec2<f32>(1.15927994251251220703f, 0.64349997043609619141f)
+    store %d, %14
+    %15:f32 = load %d
+    %x_41:f32 = let %15
+    %17:bool = lt %x_41, 0.00999999977648258209f
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -41,12 +44,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.msl
index c823ef1..42cc65e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %undefined:ptr<function, f32, read_write> = var
     %x_51:ptr<function, bool, read_write> = var
     %x_52:ptr<function, bool, read_write> = var
@@ -39,58 +39,62 @@
     %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %13:i32 = load %12
     %14:i32 = add %11, %13
-    %x_44:bool = eq %9, %14
+    %15:bool = eq %9, %14
+    %x_44:bool = let %15
     store %x_52, %x_44
-    %16:bool = eq %x_44, false
-    if %16 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %17:f32 = load %undefined
-        %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %19:f32 = load %18
-        %20:bool = gt %17, %19
-        store %x_51, %20
-        %21:bool = load %x_51
-        store %x_52, %21
+    %17:bool = eq %x_44, false
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:f32 = load %undefined
+        %19:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %20:f32 = load %19
+        %21:bool = gt %18, %20
+        store %x_51, %21
+        %22:bool = load %x_51
+        store %x_52, %22
         exit_if  # if_1
       }
     }
-    %22:bool = load %x_52
-    if %22 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %23:bool = load %x_52
+    if %23 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %33:i32 = load %32
         %34:f32 = convert %33
-        %35:vec4<f32> = construct %25, %28, %31, %34
-        store %x_GLF_color, %35
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %38
+        %39:vec4<f32> = construct %27, %31, %35, %38
         store %x_GLF_color, %39
         exit_if  # if_2
       }
+      $B5: {  # false
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %42
+        store %x_GLF_color, %43
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.msl
index c82e579..c09a209 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-mod-zero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,77 +20,93 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %undefined:ptr<function, f32, read_write> = var
     %x_51:ptr<function, bool, read_write> = var
     %x_52_phi:ptr<function, bool, read_write> = var
     store %undefined, 5.0f
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_10:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_11:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_12:i32 = load %12
-    %14:i32 = add %x_11, %x_12
-    %x_44:bool = eq %x_10, %14
+    %9:i32 = load %8
+    %x_10:i32 = let %9
+    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_11:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_12:i32 = let %15
+    %17:i32 = add %x_11, %x_12
+    %18:bool = eq %x_10, %17
+    %x_44:bool = let %18
     store %x_52_phi, %x_44
-    %16:bool = eq %x_44, false
-    if %16 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_48:f32 = load %undefined
-        %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_50:f32 = load %18
-        %20:bool = gt %x_48, %x_50
-        store %x_51, %20
-        %21:bool = load %x_51
-        store %x_52_phi, %21
+    %20:bool = eq %x_44, false
+    if %20 [t: $B3] {  # if_1
+      $B3: {  # true
+        %21:f32 = load %undefined
+        %x_48:f32 = let %21
+        %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %24:f32 = load %23
+        %x_50:f32 = let %24
+        %26:bool = gt %x_48, %x_50
+        store %x_51, %26
+        %27:bool = load %x_51
+        store %x_52_phi, %27
         exit_if  # if_1
       }
     }
-    %x_52:bool = load %x_52_phi
-    if %x_52 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_15:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_16:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_17:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_18:i32 = load %29
-        %31:f32 = convert %x_15
-        %32:f32 = convert %x_16
-        %33:f32 = convert %x_17
-        %34:f32 = convert %x_18
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_GLF_color, %35
+    %28:bool = load %x_52_phi
+    %x_52:bool = let %28
+    if %x_52 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %31:i32 = load %30
+        %x_15:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_16:i32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %37:i32 = load %36
+        %x_17:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %40:i32 = load %39
+        %x_18:i32 = let %40
+        %42:f32 = convert %x_15
+        %43:f32 = let %42
+        %44:f32 = convert %x_16
+        %45:f32 = let %44
+        %46:f32 = convert %x_17
+        %47:f32 = let %46
+        %48:f32 = convert %x_18
+        %49:vec4<f32> = construct %43, %45, %47, %48
+        store %x_GLF_color, %49
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_19:i32 = load %36
-        %x_66:f32 = convert %x_19
-        %39:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
-        store %x_GLF_color, %39
+      $B5: {  # false
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %51:i32 = load %50
+        %x_19:i32 = let %51
+        %53:f32 = convert %x_19
+        %x_66:f32 = let %53
+        %55:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
+        store %x_GLF_color, %55
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.msl
index 473acf7..81acf81 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %I:ptr<function, vec4<f32>, read_write> = var
     %N:ptr<function, vec4<f32>, read_write> = var
     %R:ptr<function, vec4<f32>, read_write> = var
@@ -35,75 +35,83 @@
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %10:i32 = load %9
     %11:u32 = bitcast %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %13:i32 = load %12
-    %14:u32 = bitcast %13
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %16:i32 = load %15
-    %17:u32 = bitcast %16
-    %18:vec4<u32> = construct %11, %14, %17, 92985u
-    %19:vec4<f32> = bitcast %18
-    store %I, %19
-    %20:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %21:f32 = load %20
-    %22:vec4<f32> = construct %21
-    store %N, %22
-    %23:vec4<f32> = load %I
-    %24:vec4<f32> = reflect %23, vec4<f32>(0.5f)
-    store %R, %24
+    %12:u32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %14:i32 = load %13
+    %15:u32 = bitcast %14
+    %16:u32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %18:i32 = load %17
+    %19:u32 = bitcast %18
+    %20:vec4<u32> = construct %12, %16, %19, 92985u
+    %21:vec4<f32> = bitcast %20
+    store %I, %21
+    %22:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %23:f32 = load %22
+    %24:vec4<f32> = construct %23
+    store %N, %24
     %25:vec4<f32> = load %I
-    %26:vec4<f32> = load %N
-    %27:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %28:f32 = load %27
+    %26:vec4<f32> = reflect %25, vec4<f32>(0.5f)
+    store %R, %26
+    %27:vec4<f32> = load %I
+    %28:vec4<f32> = let %27
     %29:vec4<f32> = load %N
-    %30:vec4<f32> = load %I
-    %31:f32 = dot %29, %30
-    %32:f32 = mul %28, %31
-    %33:vec4<f32> = mul %26, %32
-    %34:vec4<f32> = sub %25, %33
-    store %r, %34
-    %35:vec4<f32> = load %R
-    %36:vec4<f32> = load %r
-    %37:f32 = distance %35, %36
-    %38:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %39:f32 = load %38
-    %40:bool = lt %37, %39
-    if %40 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %48:i32 = load %47
-        %49:f32 = convert %48
-        %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %30:vec4<f32> = let %29
+    %31:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %32:f32 = load %31
+    %33:f32 = let %32
+    %34:vec4<f32> = load %N
+    %35:vec4<f32> = load %I
+    %36:f32 = dot %34, %35
+    %37:f32 = mul %33, %36
+    %38:vec4<f32> = mul %30, %37
+    %39:vec4<f32> = sub %28, %38
+    store %r, %39
+    %40:vec4<f32> = load %R
+    %41:vec4<f32> = load %r
+    %42:f32 = distance %40, %41
+    %43:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %44:f32 = load %43
+    %45:bool = lt %42, %44
+    if %45 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %47:i32 = load %46
+        %48:f32 = convert %47
+        %49:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %51:i32 = load %50
         %52:f32 = convert %51
-        %53:vec4<f32> = construct %43, %46, %49, %52
-        store %x_GLF_color, %53
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
+        %53:f32 = let %52
         %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %55:i32 = load %54
         %56:f32 = convert %55
-        %57:vec4<f32> = construct %56
-        store %x_GLF_color, %57
+        %57:f32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:vec4<f32> = construct %49, %53, %57, %60
+        store %x_GLF_color, %61
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %63:i32 = load %62
+        %64:f32 = convert %63
+        %65:vec4<f32> = construct %64
+        store %x_GLF_color, %65
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.msl
index f17773a..59492a1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-reflect-denorm/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,90 +20,114 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %I:ptr<function, vec4<f32>, read_write> = var
     %N:ptr<function, vec4<f32>, read_write> = var
     %R:ptr<function, vec4<f32>, read_write> = var
     %r:ptr<function, vec4<f32>, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_40:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_43:i32 = load %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_46:i32 = load %13
-    %15:u32 = bitcast %x_40
-    %16:u32 = bitcast %x_43
-    %17:u32 = bitcast %x_46
-    %18:vec4<u32> = construct %15, %16, %17, 92985u
-    %19:vec4<f32> = bitcast %18
-    store %I, %19
-    %20:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_51:f32 = load %20
-    %22:vec4<f32> = construct %x_51, %x_51, %x_51, %x_51
-    store %N, %22
-    %x_53:vec4<f32> = load %I
-    %24:vec4<f32> = reflect %x_53, vec4<f32>(0.5f)
-    store %R, %24
-    %x_55:vec4<f32> = load %I
-    %26:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %x_57:f32 = load %26
-    %x_58:vec4<f32> = load %N
-    %x_59:vec4<f32> = load %I
-    %x_62:vec4<f32> = load %N
-    %31:f32 = dot %x_58, %x_59
-    %32:f32 = mul %x_57, %31
-    %33:vec4<f32> = mul %x_62, %32
-    %34:vec4<f32> = sub %x_55, %33
-    store %r, %34
-    %x_65:vec4<f32> = load %R
-    %x_66:vec4<f32> = load %r
-    %37:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_69:f32 = load %37
-    %39:f32 = distance %x_65, %x_66
-    %40:bool = lt %39, %x_69
-    if %40 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_75:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_78:i32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_81:i32 = load %45
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_84:i32 = load %47
-        %49:f32 = convert %x_75
-        %50:f32 = convert %x_78
-        %51:f32 = convert %x_81
-        %52:f32 = convert %x_84
-        %53:vec4<f32> = construct %49, %50, %51, %52
-        store %x_GLF_color, %53
+    %10:i32 = load %9
+    %x_40:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %13:i32 = load %12
+    %x_43:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %16:i32 = load %15
+    %x_46:i32 = let %16
+    %18:u32 = bitcast %x_40
+    %19:u32 = let %18
+    %20:u32 = bitcast %x_43
+    %21:u32 = let %20
+    %22:u32 = bitcast %x_46
+    %23:vec4<u32> = construct %19, %21, %22, 92985u
+    %24:vec4<f32> = bitcast %23
+    store %I, %24
+    %25:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %26:f32 = load %25
+    %x_51:f32 = let %26
+    %28:vec4<f32> = construct %x_51, %x_51, %x_51, %x_51
+    store %N, %28
+    %29:vec4<f32> = load %I
+    %x_53:vec4<f32> = let %29
+    %31:vec4<f32> = reflect %x_53, vec4<f32>(0.5f)
+    store %R, %31
+    %32:vec4<f32> = load %I
+    %x_55:vec4<f32> = let %32
+    %34:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %35:f32 = load %34
+    %x_57:f32 = let %35
+    %37:vec4<f32> = load %N
+    %x_58:vec4<f32> = let %37
+    %39:vec4<f32> = load %I
+    %x_59:vec4<f32> = let %39
+    %41:vec4<f32> = load %N
+    %x_62:vec4<f32> = let %41
+    %43:f32 = dot %x_58, %x_59
+    %44:f32 = mul %x_57, %43
+    %45:vec4<f32> = mul %x_62, %44
+    %46:vec4<f32> = sub %x_55, %45
+    store %r, %46
+    %47:vec4<f32> = load %R
+    %x_65:vec4<f32> = let %47
+    %49:vec4<f32> = load %r
+    %x_66:vec4<f32> = let %49
+    %51:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %52:f32 = load %51
+    %x_69:f32 = let %52
+    %54:f32 = distance %x_65, %x_66
+    %55:bool = lt %54, %x_69
+    if %55 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %57:i32 = load %56
+        %x_75:i32 = let %57
+        %59:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %60:i32 = load %59
+        %x_78:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %63:i32 = load %62
+        %x_81:i32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %66:i32 = load %65
+        %x_84:i32 = let %66
+        %68:f32 = convert %x_75
+        %69:f32 = let %68
+        %70:f32 = convert %x_78
+        %71:f32 = let %70
+        %72:f32 = convert %x_81
+        %73:f32 = let %72
+        %74:f32 = convert %x_84
+        %75:vec4<f32> = construct %69, %71, %73, %74
+        store %x_GLF_color, %75
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_88:i32 = load %54
-        %x_89:f32 = convert %x_88
-        %57:vec4<f32> = construct %x_89, %x_89, %x_89, %x_89
-        store %x_GLF_color, %57
+      $B4: {  # false
+        %76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %77:i32 = load %76
+        %x_88:i32 = let %77
+        %79:f32 = convert %x_88
+        %x_89:f32 = let %79
+        %81:vec4<f32> = construct %x_89, %x_89, %x_89, %x_89
+        store %x_GLF_color, %81
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %83:void = call %main_1
+    %84:vec4<f32> = load %x_GLF_color
+    %85:main_out = construct %84
+    ret %85
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.msl
index 8da40f0..285e784 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,72 +20,76 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %undefined:ptr<function, f32, read_write> = var
     %x_45:ptr<function, bool, read_write> = var
     %x_46:ptr<function, bool, read_write> = var
     store %undefined, 1.17520117759704589844f
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %9:i32 = load %8
-    %x_38:bool = eq 1i, %9
+    %10:bool = eq 1i, %9
+    %x_38:bool = let %10
     store %x_46, %x_38
-    %11:bool = eq %x_38, false
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %12:f32 = load %undefined
-        %13:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %14:f32 = load %13
-        %15:bool = gt %12, %14
-        store %x_45, %15
-        %16:bool = load %x_45
-        store %x_46, %16
+    %12:bool = eq %x_38, false
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
+        %13:f32 = load %undefined
+        %14:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %15:f32 = load %14
+        %16:bool = gt %13, %15
+        store %x_45, %16
+        %17:bool = load %x_45
+        store %x_46, %17
         exit_if  # if_1
       }
     }
-    %17:bool = load %x_46
-    if %17 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %19:i32 = load %18
-        %20:f32 = convert %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %18:bool = load %x_46
+    if %18 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %28:i32 = load %27
         %29:f32 = convert %28
-        %30:vec4<f32> = construct %20, %23, %26, %29
-        store %x_GLF_color, %30
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %30:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %32:i32 = load %31
         %33:f32 = convert %32
-        %34:vec4<f32> = construct %33
+        %34:vec4<f32> = construct %22, %26, %30, %33
         store %x_GLF_color, %34
         exit_if  # if_2
       }
+      $B5: {  # false
+        %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:vec4<f32> = construct %37
+        store %x_GLF_color, %38
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.msl
index 45e073b..624a150 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-sinh-negative-log2/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,72 +20,86 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %undefined:ptr<function, f32, read_write> = var
     %x_45:ptr<function, bool, read_write> = var
     %x_46_phi:ptr<function, bool, read_write> = var
     store %undefined, 1.17520117759704589844f
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_10:i32 = load %8
-    %x_38:bool = eq 1i, %x_10
+    %9:i32 = load %8
+    %x_10:i32 = let %9
+    %11:bool = eq 1i, %x_10
+    %x_38:bool = let %11
     store %x_46_phi, %x_38
-    %11:bool = eq %x_38, false
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_42:f32 = load %undefined
-        %13:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_44:f32 = load %13
-        %15:bool = gt %x_42, %x_44
-        store %x_45, %15
-        %16:bool = load %x_45
-        store %x_46_phi, %16
+    %13:bool = eq %x_38, false
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:f32 = load %undefined
+        %x_42:f32 = let %14
+        %16:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %17:f32 = load %16
+        %x_44:f32 = let %17
+        %19:bool = gt %x_42, %x_44
+        store %x_45, %19
+        %20:bool = load %x_45
+        store %x_46_phi, %20
         exit_if  # if_1
       }
     }
-    %x_46:bool = load %x_46_phi
-    if %x_46 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_12:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_13:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_14:i32 = load %22
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_15:i32 = load %24
-        %26:f32 = convert %x_12
-        %27:f32 = convert %x_13
-        %28:f32 = convert %x_14
-        %29:f32 = convert %x_15
-        %30:vec4<f32> = construct %26, %27, %28, %29
-        store %x_GLF_color, %30
+    %21:bool = load %x_46_phi
+    %x_46:bool = let %21
+    if %x_46 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_12:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %27:i32 = load %26
+        %x_13:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %30:i32 = load %29
+        %x_14:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_15:i32 = let %33
+        %35:f32 = convert %x_12
+        %36:f32 = let %35
+        %37:f32 = convert %x_13
+        %38:f32 = let %37
+        %39:f32 = convert %x_14
+        %40:f32 = let %39
+        %41:f32 = convert %x_15
+        %42:vec4<f32> = construct %36, %38, %40, %41
+        store %x_GLF_color, %42
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_16:i32 = load %31
-        %x_60:f32 = convert %x_16
-        %34:vec4<f32> = construct %x_60, %x_60, %x_60, %x_60
-        store %x_GLF_color, %34
+      $B5: {  # false
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %44:i32 = load %43
+        %x_16:i32 = let %44
+        %46:f32 = convert %x_16
+        %x_60:f32 = let %46
+        %48:vec4<f32> = construct %x_60, %x_60, %x_60, %x_60
+        store %x_GLF_color, %48
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.msl
index efdd3b1..71c5ec1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: distance
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.msl
index efdd3b1..71c5ec1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-tanh/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: distance
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.msl
index f3c299b..d504532 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_15:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m0:ptr<function, mat3x4<f32>, read_write> = var
     %m1:ptr<function, mat3x4<f32>, read_write> = var
     %undefined:ptr<function, vec3<f32>, read_write> = var
@@ -39,122 +39,138 @@
     %13:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
     %14:i32 = load %13
     %15:f32 = convert %14
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %17:i32 = load %16
-    %18:f32 = convert %17
-    %19:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %20:i32 = load %19
-    %21:f32 = convert %20
-    %22:vec4<f32> = construct %15, %18, %21, 4.0f
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %24:i32 = load %23
-    %25:f32 = convert %24
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %16:f32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %18:i32 = load %17
+    %19:f32 = convert %18
+    %20:f32 = let %19
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %22:i32 = load %21
+    %23:f32 = convert %22
+    %24:vec4<f32> = construct %16, %20, %23, 4.0f
+    %25:vec4<f32> = let %24
+    %26:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
     %27:i32 = load %26
     %28:f32 = convert %27
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %30:i32 = load %29
-    %31:f32 = convert %30
-    %32:vec4<f32> = construct %25, %28, %31, 8.0f
-    %33:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %34:i32 = load %33
-    %35:f32 = convert %34
-    %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %37:i32 = load %36
-    %38:f32 = convert %37
-    %39:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %29:f32 = let %28
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %31:i32 = load %30
+    %32:f32 = convert %31
+    %33:f32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %35:i32 = load %34
+    %36:f32 = convert %35
+    %37:vec4<f32> = construct %29, %33, %36, 8.0f
+    %38:vec4<f32> = let %37
+    %39:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %40:i32 = load %39
     %41:f32 = convert %40
-    %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %43:i32 = load %42
-    %44:f32 = convert %43
-    %45:vec4<f32> = construct %35, %38, %41, %44
-    %46:mat3x4<f32> = construct %22, %32, %45
-    store %m0, %46
-    %47:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %42:f32 = let %41
+    %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %44:i32 = load %43
+    %45:f32 = convert %44
+    %46:f32 = let %45
+    %47:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %48:i32 = load %47
-    %x_104:f32 = convert %48
-    %50:vec4<f32> = construct %x_104, 0.0f, 0.0f, 0.0f
-    %51:vec4<f32> = construct 0.0f, %x_104, 0.0f, 0.0f
-    %52:vec4<f32> = construct 0.0f, 0.0f, %x_104, 0.0f
-    %53:mat3x4<f32> = construct %50, %51, %52
-    store %m1, %53
+    %49:f32 = convert %48
+    %50:f32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %52:i32 = load %51
+    %53:f32 = convert %52
+    %54:vec4<f32> = construct %42, %46, %50, %53
+    %55:mat3x4<f32> = construct %25, %38, %54
+    store %m0, %55
+    %56:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %57:i32 = load %56
+    %58:f32 = convert %57
+    %x_104:f32 = let %58
+    %60:vec4<f32> = construct %x_104, 0.0f, 0.0f, 0.0f
+    %61:vec4<f32> = let %60
+    %62:vec4<f32> = construct 0.0f, %x_104, 0.0f, 0.0f
+    %63:vec4<f32> = let %62
+    %64:vec4<f32> = construct 0.0f, 0.0f, %x_104, 0.0f
+    %65:mat3x4<f32> = construct %61, %63, %64
+    store %m1, %65
     store %undefined, vec3<f32>(2.0f)
-    %54:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %55:i32 = load %54
-    %56:f32 = convert %55
-    %57:vec3<f32> = construct %56
-    %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %59:i32 = load %58
-    %60:vec3<i32> = construct %59
-    %61:vec3<f32> = ldexp %57, %60
-    store %defined, %61
-    %62:mat3x4<f32> = load %m0
-    %63:vec3<f32> = load %undefined
-    %64:vec4<f32> = mul %62, %63
-    store %v0, %64
-    %65:mat3x4<f32> = load %m1
-    %66:vec3<f32> = load %undefined
-    %67:vec4<f32> = mul %65, %66
-    store %v1, %67
-    %68:mat3x4<f32> = load %m0
-    %69:vec3<f32> = load %defined
-    %70:vec4<f32> = mul %68, %69
-    store %v2, %70
-    %71:mat3x4<f32> = load %m1
-    %72:vec3<f32> = load %defined
-    %73:vec4<f32> = mul %71, %72
-    store %v3, %73
-    %74:f32 = load_vector_element %v2, 0u
-    %75:f32 = load_vector_element %v3, 0u
-    %76:bool = gt %74, %75
-    if %76 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %77:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %78:i32 = load %77
-        %79:f32 = convert %78
-        %80:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-        %81:i32 = load %80
-        %82:f32 = convert %81
-        %83:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-        %84:i32 = load %83
-        %85:f32 = convert %84
-        %86:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %87:i32 = load %86
-        %88:f32 = convert %87
-        %89:vec4<f32> = construct %79, %82, %85, %88
-        store %x_GLF_color, %89
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %90:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %66:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %67:i32 = load %66
+    %68:f32 = convert %67
+    %69:vec3<f32> = construct %68
+    %70:vec3<f32> = let %69
+    %71:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %72:i32 = load %71
+    %73:vec3<i32> = construct %72
+    %74:vec3<f32> = ldexp %70, %73
+    store %defined, %74
+    %75:mat3x4<f32> = load %m0
+    %76:vec3<f32> = load %undefined
+    %77:vec4<f32> = mul %75, %76
+    store %v0, %77
+    %78:mat3x4<f32> = load %m1
+    %79:vec3<f32> = load %undefined
+    %80:vec4<f32> = mul %78, %79
+    store %v1, %80
+    %81:mat3x4<f32> = load %m0
+    %82:vec3<f32> = load %defined
+    %83:vec4<f32> = mul %81, %82
+    store %v2, %83
+    %84:mat3x4<f32> = load %m1
+    %85:vec3<f32> = load %defined
+    %86:vec4<f32> = mul %84, %85
+    store %v3, %86
+    %87:f32 = load_vector_element %v2, 0u
+    %88:f32 = load_vector_element %v3, 0u
+    %89:bool = gt %87, %88
+    if %89 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %90:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
         %91:i32 = load %90
         %92:f32 = convert %91
-        %93:vec4<f32> = construct %92
-        store %x_GLF_color, %93
+        %93:f32 = let %92
+        %94:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+        %95:i32 = load %94
+        %96:f32 = convert %95
+        %97:f32 = let %96
+        %98:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+        %99:i32 = load %98
+        %100:f32 = convert %99
+        %101:f32 = let %100
+        %102:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %103:i32 = load %102
+        %104:f32 = convert %103
+        %105:vec4<f32> = construct %93, %97, %101, %104
+        store %x_GLF_color, %105
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        %106:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+        %107:i32 = load %106
+        %108:f32 = convert %107
+        %109:vec4<f32> = construct %108
+        store %x_GLF_color, %109
         exit_if  # if_1
       }
     }
-    %94:f32 = load_vector_element %v0, 0u
-    %95:f32 = load_vector_element %v1, 0u
-    %96:bool = lt %94, %95
-    if %96 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %97:ptr<uniform, f32, read> = access %x_15, 0u, 0i, 0u
-        %98:f32 = load %97
-        store_vector_element %x_GLF_color, 1u, %98
+    %110:f32 = load_vector_element %v0, 0u
+    %111:f32 = load_vector_element %v1, 0u
+    %112:bool = lt %110, %111
+    if %112 [t: $B5] {  # if_2
+      $B5: {  # true
+        %113:ptr<uniform, f32, read> = access %x_15, 0u, 0i, 0u
+        %114:f32 = load %113
+        store_vector_element %x_GLF_color, 1u, %114
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %100:void = call %main_1
-    %101:vec4<f32> = load %x_GLF_color
-    %102:main_out = construct %101
-    ret %102
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %116:void = call %main_1
+    %117:vec4<f32> = load %x_GLF_color
+    %118:main_out = construct %117
+    ret %118
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.msl
index b16e7e0..233ec3c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-undefined-matrix-mul/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_15:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m0:ptr<function, mat3x4<f32>, read_write> = var
     %m1:ptr<function, mat3x4<f32>, read_write> = var
     %undefined:ptr<function, vec3<f32>, read_write> = var
@@ -37,111 +37,160 @@
     %v2:ptr<function, vec4<f32>, read_write> = var
     %v3:ptr<function, vec4<f32>, read_write> = var
     %13:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_17:i32 = load %13
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_18:i32 = load %15
-    %17:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_19:i32 = load %17
-    %19:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %x_20:i32 = load %19
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-    %x_21:i32 = load %21
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_22:i32 = load %23
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_23:i32 = load %25
-    %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_24:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_25:i32 = load %29
-    %31:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_26:i32 = load %31
-    %33:f32 = convert %x_17
-    %34:f32 = convert %x_18
-    %35:f32 = convert %x_19
-    %36:vec4<f32> = construct %33, %34, %35, 4.0f
-    %37:f32 = convert %x_20
-    %38:f32 = convert %x_21
-    %39:f32 = convert %x_22
-    %40:vec4<f32> = construct %37, %38, %39, 8.0f
-    %41:f32 = convert %x_23
-    %42:f32 = convert %x_24
-    %43:f32 = convert %x_25
-    %44:f32 = convert %x_26
-    %45:vec4<f32> = construct %41, %42, %43, %44
-    %46:mat3x4<f32> = construct %36, %40, %45
-    store %m0, %46
-    %47:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_27:i32 = load %47
-    %x_104:f32 = convert %x_27
-    %50:vec4<f32> = construct %x_104, 0.0f, 0.0f, 0.0f
-    %51:vec4<f32> = construct 0.0f, %x_104, 0.0f, 0.0f
-    %52:vec4<f32> = construct 0.0f, 0.0f, %x_104, 0.0f
-    %53:mat3x4<f32> = construct %50, %51, %52
-    store %m1, %53
+    %14:i32 = load %13
+    %x_17:i32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %17:i32 = load %16
+    %x_18:i32 = let %17
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %20:i32 = load %19
+    %x_19:i32 = let %20
+    %22:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %23:i32 = load %22
+    %x_20:i32 = let %23
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %26:i32 = load %25
+    %x_21:i32 = let %26
+    %28:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %29:i32 = load %28
+    %x_22:i32 = let %29
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %32:i32 = load %31
+    %x_23:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %35:i32 = load %34
+    %x_24:i32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %38:i32 = load %37
+    %x_25:i32 = let %38
+    %40:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %41:i32 = load %40
+    %x_26:i32 = let %41
+    %43:f32 = convert %x_17
+    %44:f32 = let %43
+    %45:f32 = convert %x_18
+    %46:f32 = let %45
+    %47:f32 = convert %x_19
+    %48:vec4<f32> = construct %44, %46, %47, 4.0f
+    %49:vec4<f32> = let %48
+    %50:f32 = convert %x_20
+    %51:f32 = let %50
+    %52:f32 = convert %x_21
+    %53:f32 = let %52
+    %54:f32 = convert %x_22
+    %55:vec4<f32> = construct %51, %53, %54, 8.0f
+    %56:vec4<f32> = let %55
+    %57:f32 = convert %x_23
+    %58:f32 = let %57
+    %59:f32 = convert %x_24
+    %60:f32 = let %59
+    %61:f32 = convert %x_25
+    %62:f32 = let %61
+    %63:f32 = convert %x_26
+    %64:vec4<f32> = construct %58, %60, %62, %63
+    %65:mat3x4<f32> = construct %49, %56, %64
+    store %m0, %65
+    %66:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %67:i32 = load %66
+    %x_27:i32 = let %67
+    %69:f32 = convert %x_27
+    %x_104:f32 = let %69
+    %71:vec4<f32> = construct %x_104, 0.0f, 0.0f, 0.0f
+    %72:vec4<f32> = let %71
+    %73:vec4<f32> = construct 0.0f, %x_104, 0.0f, 0.0f
+    %74:vec4<f32> = let %73
+    %75:vec4<f32> = construct 0.0f, 0.0f, %x_104, 0.0f
+    %76:mat3x4<f32> = construct %72, %74, %75
+    store %m1, %76
     store %undefined, vec3<f32>(2.0f)
-    %54:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_28:i32 = load %54
-    %x_111:f32 = convert %x_28
-    %57:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:i32 = load %57
-    %59:vec3<f32> = construct %x_111, %x_111, %x_111
-    %60:vec3<i32> = construct %x_29, %x_29, %x_29
-    %61:vec3<f32> = ldexp %59, %60
-    store %defined, %61
-    %x_116:mat3x4<f32> = load %m0
-    %x_117:vec3<f32> = load %undefined
-    %64:vec4<f32> = mul %x_116, %x_117
-    store %v0, %64
-    %x_119:mat3x4<f32> = load %m1
-    %x_120:vec3<f32> = load %undefined
-    %67:vec4<f32> = mul %x_119, %x_120
-    store %v1, %67
-    %x_122:mat3x4<f32> = load %m0
-    %x_123:vec3<f32> = load %defined
-    %70:vec4<f32> = mul %x_122, %x_123
-    store %v2, %70
-    %x_125:mat3x4<f32> = load %m1
-    %x_126:vec3<f32> = load %defined
-    %73:vec4<f32> = mul %x_125, %x_126
-    store %v3, %73
-    %x_129:f32 = load_vector_element %v2, 0u
-    %x_131:f32 = load_vector_element %v3, 0u
-    %76:bool = gt %x_129, %x_131
-    if %76 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %77:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_30:i32 = load %77
-        %79:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-        %x_31:i32 = load %79
-        %81:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-        %x_32:i32 = load %81
-        %83:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_33:i32 = load %83
-        %85:f32 = convert %x_30
-        %86:f32 = convert %x_31
-        %87:f32 = convert %x_32
-        %88:f32 = convert %x_33
-        %89:vec4<f32> = construct %85, %86, %87, %88
-        store %x_GLF_color, %89
+    %77:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %78:i32 = load %77
+    %x_28:i32 = let %78
+    %80:f32 = convert %x_28
+    %x_111:f32 = let %80
+    %82:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %83:i32 = load %82
+    %x_29:i32 = let %83
+    %85:vec3<f32> = construct %x_111, %x_111, %x_111
+    %86:vec3<f32> = let %85
+    %87:vec3<i32> = construct %x_29, %x_29, %x_29
+    %88:vec3<f32> = ldexp %86, %87
+    store %defined, %88
+    %89:mat3x4<f32> = load %m0
+    %x_116:mat3x4<f32> = let %89
+    %91:vec3<f32> = load %undefined
+    %x_117:vec3<f32> = let %91
+    %93:vec4<f32> = mul %x_116, %x_117
+    store %v0, %93
+    %94:mat3x4<f32> = load %m1
+    %x_119:mat3x4<f32> = let %94
+    %96:vec3<f32> = load %undefined
+    %x_120:vec3<f32> = let %96
+    %98:vec4<f32> = mul %x_119, %x_120
+    store %v1, %98
+    %99:mat3x4<f32> = load %m0
+    %x_122:mat3x4<f32> = let %99
+    %101:vec3<f32> = load %defined
+    %x_123:vec3<f32> = let %101
+    %103:vec4<f32> = mul %x_122, %x_123
+    store %v2, %103
+    %104:mat3x4<f32> = load %m1
+    %x_125:mat3x4<f32> = let %104
+    %106:vec3<f32> = load %defined
+    %x_126:vec3<f32> = let %106
+    %108:vec4<f32> = mul %x_125, %x_126
+    store %v3, %108
+    %109:f32 = load_vector_element %v2, 0u
+    %x_129:f32 = let %109
+    %111:f32 = load_vector_element %v3, 0u
+    %x_131:f32 = let %111
+    %113:bool = gt %x_129, %x_131
+    if %113 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %114:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %115:i32 = load %114
+        %x_30:i32 = let %115
+        %117:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+        %118:i32 = load %117
+        %x_31:i32 = let %118
+        %120:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+        %121:i32 = load %120
+        %x_32:i32 = let %121
+        %123:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %124:i32 = load %123
+        %x_33:i32 = let %124
+        %126:f32 = convert %x_30
+        %127:f32 = let %126
+        %128:f32 = convert %x_31
+        %129:f32 = let %128
+        %130:f32 = convert %x_32
+        %131:f32 = let %130
+        %132:f32 = convert %x_33
+        %133:vec4<f32> = construct %127, %129, %131, %132
+        store %x_GLF_color, %133
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %90:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-        %x_34:i32 = load %90
-        %x_146:f32 = convert %x_34
-        %93:vec4<f32> = construct %x_146, %x_146, %x_146, %x_146
-        store %x_GLF_color, %93
+      $B4: {  # false
+        %134:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+        %135:i32 = load %134
+        %x_34:i32 = let %135
+        %137:f32 = convert %x_34
+        %x_146:f32 = let %137
+        %139:vec4<f32> = construct %x_146, %x_146, %x_146, %x_146
+        store %x_GLF_color, %139
         exit_if  # if_1
       }
     }
-    %x_149:f32 = load_vector_element %v0, 0u
-    %x_151:f32 = load_vector_element %v1, 0u
-    %96:bool = lt %x_149, %x_151
-    if %96 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %97:ptr<uniform, f32, read> = access %x_15, 0u, 0i, 0u
-        %x_156:f32 = load %97
+    %140:f32 = load_vector_element %v0, 0u
+    %x_149:f32 = let %140
+    %142:f32 = load_vector_element %v1, 0u
+    %x_151:f32 = let %142
+    %144:bool = lt %x_149, %x_151
+    if %144 [t: $B5] {  # if_2
+      $B5: {  # true
+        %145:ptr<uniform, f32, read> = access %x_15, 0u, 0i, 0u
+        %146:f32 = load %145
+        %x_156:f32 = let %146
         store_vector_element %x_GLF_color, 1u, %x_156
         exit_if  # if_2
       }
@@ -149,12 +198,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %100:void = call %main_1
-    %101:vec4<f32> = load %x_GLF_color
-    %102:main_out = construct %101
-    ret %102
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %149:void = call %main_1
+    %150:vec4<f32> = load %x_GLF_color
+    %151:main_out = construct %150
+    ret %151
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.msl
index 2362bd1..ea04e59 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,79 +12,92 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %7:i32 = load %6
     store %i, %7
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:i32 = load %i
         %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %10:i32 = load %9
         %11:bool = lt %8, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %v, vec4<f32>(0.39215686917304992676f, 0.0f, 0.0f, 0.0f)
         %12:f32 = load_vector_element %v, 0u
-        %13:i32 = convert %12
-        %14:i32 = load %i
-        %15:bool = gt %13, %14
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %17:i32 = load %16
-            %18:f32 = convert %17
-            %19:vec4<f32> = construct %18
-            store %x_GLF_color, %19
+        %13:i32 = call %tint_f32_to_i32, %12
+        %15:i32 = load %i
+        %16:bool = gt %13, %15
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
+            %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %18:i32 = load %17
+            %19:f32 = convert %18
+            %20:vec4<f32> = construct %19
+            store %x_GLF_color, %20
             ret
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %20:i32 = load %i
-        %21:i32 = add %20, 1i
-        store %i, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %21:i32 = load %i
+        %22:i32 = add %21, 1i
+        store %i, %22
+        next_iteration  # -> $B3
       }
     }
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %23:i32 = load %22
-    %24:f32 = convert %23
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %26:i32 = load %25
-    %27:f32 = convert %26
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %29:i32 = load %28
-    %30:f32 = convert %29
-    %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %24:i32 = load %23
+    %25:f32 = convert %24
+    %26:f32 = let %25
+    %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %28:i32 = load %27
+    %29:f32 = convert %28
+    %30:f32 = let %29
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %32:i32 = load %31
     %33:f32 = convert %32
-    %34:vec4<f32> = construct %24, %27, %30, %33
-    store %x_GLF_color, %34
+    %34:f32 = let %33
+    %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %36:i32 = load %35
+    %37:f32 = convert %36
+    %38:vec4<f32> = construct %26, %30, %34, %37
+    store %x_GLF_color, %38
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B9: {
+    %44:i32 = convert %value
+    %45:bool = gte %value, -2147483648.0f
+    %46:i32 = select -2147483648i, %44, %45
+    %47:bool = lte %value, 2147483520.0f
+    %48:i32 = select 2147483647i, %46, %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.msl
index 89116ae..1f86fe3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-apfloat-unpackunorm-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,79 +12,104 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_30:i32 = load %6
+    %7:i32 = load %6
+    %x_30:i32 = let %7
     store %i, %x_30
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_35:i32 = load %i
-        %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_37:i32 = load %9
-        %11:bool = lt %x_35, %x_37
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_35:i32 = let %9
+        %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %12:i32 = load %11
+        %x_37:i32 = let %12
+        %14:bool = lt %x_35, %x_37
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %v, vec4<f32>(0.39215686917304992676f, 0.0f, 0.0f, 0.0f)
-        %x_42:f32 = load_vector_element %v, 0u
-        %x_44:i32 = load %i
-        %14:i32 = convert %x_42
-        %15:bool = gt %14, %x_44
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_49:i32 = load %16
-            %x_50:f32 = convert %x_49
-            %19:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
-            store %x_GLF_color, %19
+        %15:f32 = load_vector_element %v, 0u
+        %x_42:f32 = let %15
+        %17:i32 = load %i
+        %x_44:i32 = let %17
+        %19:i32 = call %tint_f32_to_i32, %x_42
+        %21:bool = gt %19, %x_44
+        if %21 [t: $B7] {  # if_2
+          $B7: {  # true
+            %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %23:i32 = load %22
+            %x_49:i32 = let %23
+            %25:f32 = convert %x_49
+            %x_50:f32 = let %25
+            %27:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
+            store %x_GLF_color, %27
             ret
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_52:i32 = load %i
-        %21:i32 = add %x_52, 1i
-        store %i, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %28:i32 = load %i
+        %x_52:i32 = let %28
+        %30:i32 = add %x_52, 1i
+        store %i, %30
+        next_iteration  # -> $B3
       }
     }
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_55:i32 = load %22
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_58:i32 = load %24
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_61:i32 = load %26
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_64:i32 = load %28
-    %30:f32 = convert %x_55
-    %31:f32 = convert %x_58
-    %32:f32 = convert %x_61
-    %33:f32 = convert %x_64
-    %34:vec4<f32> = construct %30, %31, %32, %33
-    store %x_GLF_color, %34
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %32:i32 = load %31
+    %x_55:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %35:i32 = load %34
+    %x_58:i32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %38:i32 = load %37
+    %x_61:i32 = let %38
+    %40:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %41:i32 = load %40
+    %x_64:i32 = let %41
+    %43:f32 = convert %x_55
+    %44:f32 = let %43
+    %45:f32 = convert %x_58
+    %46:f32 = let %45
+    %47:f32 = convert %x_61
+    %48:f32 = let %47
+    %49:f32 = convert %x_64
+    %50:vec4<f32> = construct %44, %46, %48, %49
+    store %x_GLF_color, %50
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_color
+    %54:main_out = construct %53
+    ret %54
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B9: {
+    %56:i32 = convert %value
+    %57:bool = gte %value, -2147483648.0f
+    %58:i32 = select -2147483648i, %56, %57
+    %59:bool = lte %value, 2147483520.0f
+    %60:i32 = select 2147483647i, %58, %59
+    ret %60
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.msl
index 62f23cf..2d68e86 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<i32, 3>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -53,8 +53,8 @@
     %24:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
     %25:f32 = load %24
     %26:bool = lt %23, %25
-    if %26 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %26 [t: $B3] {  # if_1
+      $B3: {  # true
         %27:i32 = load %b
         %28:i32 = add %27, 1i
         store %b, %28
@@ -64,47 +64,54 @@
     %29:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
     %30:i32 = load %29
     store %c, %30
-    %x_63:i32 = load %c
-    %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_65:i32 = load %32
-    %34:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_67:i32 = load %34
-    %36:i32 = clamp %x_63, %x_65, %x_67
-    %37:ptr<function, i32, read_write> = access %arr, %36
-    %38:i32 = load %b
-    store %37, %38
-    %39:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %40:i32 = load %39
+    %31:i32 = load %c
+    %x_63:i32 = let %31
+    %33:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %34:i32 = load %33
+    %x_65:i32 = let %34
+    %36:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %37:i32 = load %36
+    %x_67:i32 = let %37
+    %39:i32 = max %x_63, %x_65
+    %40:i32 = min %39, %x_67
     %41:ptr<function, i32, read_write> = access %arr, %40
-    %42:i32 = load %41
-    %43:f32 = convert %42
-    %44:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %45:i32 = load %44
-    %46:ptr<function, i32, read_write> = access %arr, %45
-    %47:i32 = load %46
-    %48:f32 = convert %47
+    %42:i32 = load %b
+    store %41, %42
+    %43:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %44:i32 = load %43
+    %45:ptr<function, i32, read_write> = access %arr, %44
+    %46:i32 = load %45
+    %47:f32 = convert %46
+    %48:f32 = let %47
     %49:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %50:i32 = load %49
     %51:ptr<function, i32, read_write> = access %arr, %50
     %52:i32 = load %51
     %53:f32 = convert %52
-    %54:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %55:i32 = load %54
-    %56:ptr<function, i32, read_write> = access %arr, %55
-    %57:i32 = load %56
-    %58:f32 = convert %57
-    %59:vec4<f32> = construct %43, %48, %53, %58
-    store %x_GLF_color, %59
+    %54:f32 = let %53
+    %55:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %56:i32 = load %55
+    %57:ptr<function, i32, read_write> = access %arr, %56
+    %58:i32 = load %57
+    %59:f32 = convert %58
+    %60:f32 = let %59
+    %61:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %62:i32 = load %61
+    %63:ptr<function, i32, read_write> = access %arr, %62
+    %64:i32 = load %63
+    %65:f32 = convert %64
+    %66:vec4<f32> = construct %48, %54, %60, %65
+    store %x_GLF_color, %66
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B4: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %62:void = call %main_1
-    %63:vec4<f32> = load %x_GLF_color
-    %64:main_out = construct %63
-    ret %64
+    %69:void = call %main_1
+    %70:vec4<f32> = load %x_GLF_color
+    %71:main_out = construct %70
+    ret %71
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.msl
index 3273a1e..2b88ee9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-accesses-clamp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,91 +20,117 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<i32, 3>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_40:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_42:i32 = load %12
-    %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_44:i32 = load %14
-    %16:array<i32, 3> = construct %x_40, %x_42, %x_44
-    store %arr, %16
-    %17:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_47:i32 = load %17
-    %19:ptr<function, i32, read_write> = access %arr, %x_47
-    %x_49:i32 = load %19
+    %11:i32 = load %10
+    %x_40:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %14:i32 = load %13
+    %x_42:i32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %17:i32 = load %16
+    %x_44:i32 = let %17
+    %19:array<i32, 3> = construct %x_40, %x_42, %x_44
+    store %arr, %19
+    %20:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %21:i32 = load %20
+    %x_47:i32 = let %21
+    %23:ptr<function, i32, read_write> = access %arr, %x_47
+    %24:i32 = load %23
+    %x_49:i32 = let %24
     store %a, %x_49
-    %x_50:i32 = load %a
-    %22:i32 = sub %x_50, 1i
-    store %b, %22
-    %x_53:f32 = load_vector_element %gl_FragCoord, 0u
-    %24:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-    %x_55:f32 = load %24
-    %26:bool = lt %x_53, %x_55
-    if %26 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_59:i32 = load %b
-        %28:i32 = add %x_59, 1i
-        store %b, %28
+    %26:i32 = load %a
+    %x_50:i32 = let %26
+    %28:i32 = sub %x_50, 1i
+    store %b, %28
+    %29:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_53:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+    %32:f32 = load %31
+    %x_55:f32 = let %32
+    %34:bool = lt %x_53, %x_55
+    if %34 [t: $B3] {  # if_1
+      $B3: {  # true
+        %35:i32 = load %b
+        %x_59:i32 = let %35
+        %37:i32 = add %x_59, 1i
+        store %b, %37
         exit_if  # if_1
       }
     }
-    %29:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_62:i32 = load %29
+    %38:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %39:i32 = load %38
+    %x_62:i32 = let %39
     store %c, %x_62
-    %x_63:i32 = load %c
-    %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_65:i32 = load %32
-    %34:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_67:i32 = load %34
-    %x_69:i32 = load %b
-    %37:i32 = clamp %x_63, %x_65, %x_67
-    %38:ptr<function, i32, read_write> = access %arr, %37
-    store %38, %x_69
-    %39:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_72:i32 = load %39
-    %41:ptr<function, i32, read_write> = access %arr, %x_72
-    %x_74:i32 = load %41
+    %41:i32 = load %c
+    %x_63:i32 = let %41
     %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_77:i32 = load %43
-    %45:ptr<function, i32, read_write> = access %arr, %x_77
-    %x_79:i32 = load %45
-    %47:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_82:i32 = load %47
-    %49:ptr<function, i32, read_write> = access %arr, %x_82
-    %x_84:i32 = load %49
-    %51:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_87:i32 = load %51
-    %53:ptr<function, i32, read_write> = access %arr, %x_87
-    %x_89:i32 = load %53
-    %55:f32 = convert %x_74
-    %56:f32 = convert %x_79
-    %57:f32 = convert %x_84
-    %58:f32 = convert %x_89
-    %59:vec4<f32> = construct %55, %56, %57, %58
-    store %x_GLF_color, %59
+    %44:i32 = load %43
+    %x_65:i32 = let %44
+    %46:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %47:i32 = load %46
+    %x_67:i32 = let %47
+    %49:i32 = load %b
+    %x_69:i32 = let %49
+    %51:i32 = max %x_63, %x_65
+    %52:i32 = min %51, %x_67
+    %53:ptr<function, i32, read_write> = access %arr, %52
+    store %53, %x_69
+    %54:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %55:i32 = load %54
+    %x_72:i32 = let %55
+    %57:ptr<function, i32, read_write> = access %arr, %x_72
+    %58:i32 = load %57
+    %x_74:i32 = let %58
+    %60:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %61:i32 = load %60
+    %x_77:i32 = let %61
+    %63:ptr<function, i32, read_write> = access %arr, %x_77
+    %64:i32 = load %63
+    %x_79:i32 = let %64
+    %66:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %67:i32 = load %66
+    %x_82:i32 = let %67
+    %69:ptr<function, i32, read_write> = access %arr, %x_82
+    %70:i32 = load %69
+    %x_84:i32 = let %70
+    %72:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %73:i32 = load %72
+    %x_87:i32 = let %73
+    %75:ptr<function, i32, read_write> = access %arr, %x_87
+    %76:i32 = load %75
+    %x_89:i32 = let %76
+    %78:f32 = convert %x_74
+    %79:f32 = let %78
+    %80:f32 = convert %x_79
+    %81:f32 = let %80
+    %82:f32 = convert %x_84
+    %83:f32 = let %82
+    %84:f32 = convert %x_89
+    %85:vec4<f32> = construct %79, %81, %83, %84
+    store %x_GLF_color, %85
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B4: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %62:void = call %main_1
-    %63:vec4<f32> = load %x_GLF_color
-    %64:main_out = construct %63
-    ret %64
+    %88:void = call %main_1
+    %89:vec4<f32> = load %x_GLF_color
+    %90:main_out = construct %89
+    ret %90
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.msl
index d136454..a059df6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -16,14 +16,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_19:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr0:ptr<function, array<i32, 10>, read_write> = var
     %arr1:ptr<function, array<i32, 10>, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -83,34 +83,34 @@
     %59:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
     %60:i32 = load %59
     store %a, %60
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %61:i32 = load %a
         %62:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %63:i32 = load %62
         %64:bool = lt %61, %63
-        if %64 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %64 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %65:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %66:i32 = load %65
         store %limiter0, %66
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %67:i32 = load %limiter0
             %68:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
             %69:i32 = load %68
             %70:bool = lt %67, %69
-            if %70 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if %70 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
@@ -123,17 +123,17 @@
             %75:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
             %76:i32 = load %75
             store %b, %76
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
                 %77:i32 = load %b
                 %78:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
                 %79:i32 = load %78
                 %80:bool = lt %77, %79
-                if %80 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+                if %80 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
@@ -141,253 +141,261 @@
                 %82:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
                 %83:i32 = load %82
                 %84:bool = gt %81, %83
-                if %84 [t: %b15] {  # if_4
-                  %b15 = block {  # true
+                if %84 [t: $B15] {  # if_4
+                  $B15: {  # true
                     exit_loop  # loop_3
                   }
                 }
                 %85:i32 = load %limiter1
                 %86:i32 = add %85, 1i
                 store %limiter1, %86
-                %x_145:i32 = load %b
-                %88:ptr<function, i32, read_write> = access %arr0, %x_145
-                %89:i32 = load %a
-                %90:ptr<function, i32, read_write> = access %arr1, %89
-                %91:i32 = load %90
-                store %88, %91
-                continue %b12
+                %87:i32 = load %b
+                %x_145:i32 = let %87
+                %89:ptr<function, i32, read_write> = access %arr0, %x_145
+                %90:i32 = load %a
+                %91:ptr<function, i32, read_write> = access %arr1, %90
+                %92:i32 = load %91
+                store %89, %92
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %92:i32 = load %b
-                %93:i32 = add %92, 1i
-                store %b, %93
-                next_iteration %b11
+              $B12: {  # continuing
+                %93:i32 = load %b
+                %94:i32 = add %93, 1i
+                store %b, %94
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            next_iteration %b7
+          $B8: {  # continuing
+            next_iteration  # -> $B7
           }
         }
         store %limiter2, 0i
-        loop [b: %b16, c: %b17] {  # loop_4
-          %b16 = block {  # body
-            %94:i32 = load %limiter2
-            %95:bool = lt %94, 5i
-            if %95 [t: %b18, f: %b19] {  # if_5
-              %b18 = block {  # true
+        loop [b: $B16, c: $B17] {  # loop_4
+          $B16: {  # body
+            %95:i32 = load %limiter2
+            %96:bool = lt %95, 5i
+            if %96 [t: $B18, f: $B19] {  # if_5
+              $B18: {  # true
                 exit_if  # if_5
               }
-              %b19 = block {  # false
+              $B19: {  # false
                 exit_loop  # loop_4
               }
             }
-            %96:i32 = load %limiter2
-            %97:i32 = add %96, 1i
-            store %limiter2, %97
-            %98:ptr<function, i32, read_write> = access %arr0, 1i
-            %99:ptr<function, i32, read_write> = access %arr1, 1i
-            %100:i32 = load %99
-            store %98, %100
-            continue %b17
+            %97:i32 = load %limiter2
+            %98:i32 = add %97, 1i
+            store %limiter2, %98
+            %99:ptr<function, i32, read_write> = access %arr0, 1i
+            %100:ptr<function, i32, read_write> = access %arr1, 1i
+            %101:i32 = load %100
+            store %99, %101
+            continue  # -> $B17
           }
-          %b17 = block {  # continuing
-            next_iteration %b16
+          $B17: {  # continuing
+            next_iteration  # -> $B16
           }
         }
-        loop [b: %b20, c: %b21] {  # loop_5
-          %b20 = block {  # body
+        loop [b: $B20, c: $B21] {  # loop_5
+          $B20: {  # body
             store %limiter3, 0i
             store %d, 0i
-            loop [b: %b22, c: %b23] {  # loop_6
-              %b22 = block {  # body
-                %101:i32 = load %d
-                %102:bool = lt %101, 10i
-                if %102 [t: %b24, f: %b25] {  # if_6
-                  %b24 = block {  # true
+            loop [b: $B22, c: $B23] {  # loop_6
+              $B22: {  # body
+                %102:i32 = load %d
+                %103:bool = lt %102, 10i
+                if %103 [t: $B24, f: $B25] {  # if_6
+                  $B24: {  # true
                     exit_if  # if_6
                   }
-                  %b25 = block {  # false
+                  $B25: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                %103:i32 = load %limiter3
-                %104:bool = gt %103, 4i
-                if %104 [t: %b26] {  # if_7
-                  %b26 = block {  # true
+                %104:i32 = load %limiter3
+                %105:bool = gt %104, 4i
+                if %105 [t: $B26] {  # if_7
+                  $B26: {  # true
                     exit_loop  # loop_6
                   }
                 }
-                %105:i32 = load %limiter3
-                %106:i32 = add %105, 1i
-                store %limiter3, %106
-                %x_181:i32 = load %d
-                %108:ptr<function, i32, read_write> = access %arr1, %x_181
-                %109:i32 = load %d
-                %110:ptr<function, i32, read_write> = access %arr0, %109
-                %111:i32 = load %110
-                store %108, %111
-                continue %b23
+                %106:i32 = load %limiter3
+                %107:i32 = add %106, 1i
+                store %limiter3, %107
+                %108:i32 = load %d
+                %x_181:i32 = let %108
+                %110:ptr<function, i32, read_write> = access %arr1, %x_181
+                %111:i32 = load %d
+                %112:ptr<function, i32, read_write> = access %arr0, %111
+                %113:i32 = load %112
+                store %110, %113
+                continue  # -> $B23
               }
-              %b23 = block {  # continuing
-                %112:i32 = load %d
-                %113:i32 = add %112, 1i
-                store %d, %113
-                next_iteration %b22
+              $B23: {  # continuing
+                %114:i32 = load %d
+                %115:i32 = add %114, 1i
+                store %d, %115
+                next_iteration  # -> $B22
               }
             }
-            continue %b21
+            continue  # -> $B21
           }
-          %b21 = block {  # continuing
-            %114:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-            %x_189:i32 = load %114
-            %116:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_191:i32 = load %116
-            %118:bool = eq %x_189, %x_191
-            %119:bool = eq %118, false
-            break_if %119 %b20
+          $B21: {  # continuing
+            %116:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+            %117:i32 = load %116
+            %x_189:i32 = let %117
+            %119:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %120:i32 = load %119
+            %x_191:i32 = let %120
+            %122:bool = eq %x_189, %x_191
+            %123:bool = eq %122, false
+            break_if %123  # -> [t: exit_loop loop_5, f: $B20]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %120:i32 = load %a
-        %121:i32 = add %120, 1i
-        store %a, %121
-        next_iteration %b3
+      $B4: {  # continuing
+        %124:i32 = load %a
+        %125:i32 = add %124, 1i
+        store %a, %125
+        next_iteration  # -> $B3
       }
     }
-    %122:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %123:i32 = load %122
-    %124:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %125:i32 = load %124
     %126:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %127:i32 = load %126
-    %128:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %128:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
     %129:i32 = load %128
-    %130:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %130:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %131:i32 = load %130
-    %132:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %132:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
     %133:i32 = load %132
-    %134:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %134:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
     %135:i32 = load %134
-    %136:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %136:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
     %137:i32 = load %136
-    %138:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %138:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
     %139:i32 = load %138
-    %140:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %140:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
     %141:i32 = load %140
-    %142:array<i32, 10> = construct %123, %125, %127, %129, %131, %133, %135, %137, %139, %141
-    store %ref0, %142
-    %143:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %144:i32 = load %143
-    %145:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %146:i32 = load %145
+    %142:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %143:i32 = load %142
+    %144:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %145:i32 = load %144
+    %146:array<i32, 10> = construct %127, %129, %131, %133, %135, %137, %139, %141, %143, %145
+    store %ref0, %146
     %147:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %148:i32 = load %147
-    %149:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %149:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
     %150:i32 = load %149
-    %151:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %151:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %152:i32 = load %151
-    %153:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
+    %153:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
     %154:i32 = load %153
-    %155:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
+    %155:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
     %156:i32 = load %155
-    %157:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %157:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
     %158:i32 = load %157
-    %159:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+    %159:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
     %160:i32 = load %159
-    %161:ptr<uniform, i32, read> = access %x_6, 0u, 19i, 0u
+    %161:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %162:i32 = load %161
-    %163:array<i32, 10> = construct %144, %146, %148, %150, %152, %154, %156, %158, %160, %162
-    store %ref1, %163
-    %164:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %165:i32 = load %164
-    %166:f32 = convert %165
-    %167:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %168:i32 = load %167
-    %169:f32 = convert %168
-    %170:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %171:i32 = load %170
-    %172:f32 = convert %171
-    %173:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %174:i32 = load %173
-    %175:f32 = convert %174
-    %176:vec4<f32> = construct %166, %169, %172, %175
-    store %x_GLF_color, %176
-    %177:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %178:i32 = load %177
-    store %i, %178
-    loop [b: %b27, c: %b28] {  # loop_7
-      %b27 = block {  # body
+    %163:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+    %164:i32 = load %163
+    %165:ptr<uniform, i32, read> = access %x_6, 0u, 19i, 0u
+    %166:i32 = load %165
+    %167:array<i32, 10> = construct %148, %150, %152, %154, %156, %158, %160, %162, %164, %166
+    store %ref1, %167
+    %168:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %169:i32 = load %168
+    %170:f32 = convert %169
+    %171:f32 = let %170
+    %172:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %173:i32 = load %172
+    %174:f32 = convert %173
+    %175:f32 = let %174
+    %176:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %177:i32 = load %176
+    %178:f32 = convert %177
+    %179:f32 = let %178
+    %180:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %181:i32 = load %180
+    %182:f32 = convert %181
+    %183:vec4<f32> = construct %171, %175, %179, %182
+    store %x_GLF_color, %183
+    %184:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %185:i32 = load %184
+    store %i, %185
+    loop [b: $B27, c: $B28] {  # loop_7
+      $B27: {  # body
         %x_277:ptr<function, bool, read_write> = var
         %x_278:ptr<function, bool, read_write> = var
-        %181:i32 = load %i
-        %182:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %183:i32 = load %182
-        %184:bool = lt %181, %183
-        if %184 [t: %b29, f: %b30] {  # if_8
-          %b29 = block {  # true
+        %188:i32 = load %i
+        %189:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %190:i32 = load %189
+        %191:bool = lt %188, %190
+        if %191 [t: $B29, f: $B30] {  # if_8
+          $B29: {  # true
             exit_if  # if_8
           }
-          %b30 = block {  # false
+          $B30: {  # false
             exit_loop  # loop_7
           }
         }
-        %185:i32 = load %i
-        %186:ptr<function, i32, read_write> = access %arr0, %185
-        %187:i32 = load %186
-        %188:i32 = load %i
-        %189:ptr<function, i32, read_write> = access %ref0, %188
-        %190:i32 = load %189
-        %x_267:bool = neq %187, %190
+        %192:i32 = load %i
+        %193:ptr<function, i32, read_write> = access %arr0, %192
+        %194:i32 = load %193
+        %195:i32 = load %i
+        %196:ptr<function, i32, read_write> = access %ref0, %195
+        %197:i32 = load %196
+        %198:bool = neq %194, %197
+        %x_267:bool = let %198
         store %x_278, %x_267
-        %192:bool = eq %x_267, false
-        if %192 [t: %b31] {  # if_9
-          %b31 = block {  # true
-            %193:i32 = load %i
-            %194:ptr<function, i32, read_write> = access %arr1, %193
-            %195:i32 = load %194
-            %196:i32 = load %i
-            %197:ptr<function, i32, read_write> = access %ref1, %196
-            %198:i32 = load %197
-            %199:bool = neq %195, %198
-            store %x_277, %199
-            %200:bool = load %x_277
-            store %x_278, %200
+        %200:bool = eq %x_267, false
+        if %200 [t: $B31] {  # if_9
+          $B31: {  # true
+            %201:i32 = load %i
+            %202:ptr<function, i32, read_write> = access %arr1, %201
+            %203:i32 = load %202
+            %204:i32 = load %i
+            %205:ptr<function, i32, read_write> = access %ref1, %204
+            %206:i32 = load %205
+            %207:bool = neq %203, %206
+            store %x_277, %207
+            %208:bool = load %x_277
+            store %x_278, %208
             exit_if  # if_9
           }
         }
-        %201:bool = load %x_278
-        if %201 [t: %b32] {  # if_10
-          %b32 = block {  # true
-            %202:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %203:i32 = load %202
-            %204:f32 = convert %203
-            %205:vec4<f32> = construct %204
-            store %x_GLF_color, %205
+        %209:bool = load %x_278
+        if %209 [t: $B32] {  # if_10
+          $B32: {  # true
+            %210:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %211:i32 = load %210
+            %212:f32 = convert %211
+            %213:vec4<f32> = construct %212
+            store %x_GLF_color, %213
             exit_if  # if_10
           }
         }
-        continue %b28
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %206:i32 = load %i
-        %207:i32 = add %206, 1i
-        store %i, %207
-        next_iteration %b27
+      $B28: {  # continuing
+        %214:i32 = load %i
+        %215:i32 = add %214, 1i
+        store %i, %215
+        next_iteration  # -> $B27
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b33 {
-  %b33 = block {
-    %209:void = call %main_1
-    %210:vec4<f32> = load %x_GLF_color
-    %211:main_out = construct %210
-    ret %211
+%tint_symbol = @fragment func():main_out {
+  $B33: {
+    %217:void = call %main_1
+    %218:vec4<f32> = load %x_GLF_color
+    %219:main_out = construct %218
+    ret %219
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.msl
index fa567da..e491eec 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-array-copies-loops-with-limiters/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -16,14 +16,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_19:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr0:ptr<function, array<i32, 10>, read_write> = var
     %arr1:ptr<function, array<i32, 10>, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -37,357 +37,451 @@
     %ref1:ptr<function, array<i32, 10>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %17:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_59:i32 = load %17
-    %19:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_61:i32 = load %19
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_63:i32 = load %21
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_65:i32 = load %23
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_67:i32 = load %25
-    %27:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-    %x_69:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_71:i32 = load %29
-    %31:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-    %x_73:i32 = load %31
-    %33:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_75:i32 = load %33
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %x_77:i32 = load %35
-    %37:array<i32, 10> = construct %x_59, %x_61, %x_63, %x_65, %x_67, %x_69, %x_71, %x_73, %x_75, %x_77
-    store %arr0, %37
-    %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_80:i32 = load %38
-    %40:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %x_82:i32 = load %40
-    %42:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
-    %x_84:i32 = load %42
-    %44:ptr<uniform, i32, read> = access %x_6, 0u, 16i, 0u
-    %x_86:i32 = load %44
-    %46:ptr<uniform, i32, read> = access %x_6, 0u, 17i, 0u
-    %x_88:i32 = load %46
-    %48:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
-    %x_90:i32 = load %48
-    %50:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
-    %x_92:i32 = load %50
-    %52:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_94:i32 = load %52
-    %54:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
-    %x_96:i32 = load %54
-    %56:ptr<uniform, i32, read> = access %x_6, 0u, 19i, 0u
-    %x_98:i32 = load %56
-    %58:array<i32, 10> = construct %x_80, %x_82, %x_84, %x_86, %x_88, %x_90, %x_92, %x_94, %x_96, %x_98
-    store %arr1, %58
-    %59:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_101:i32 = load %59
+    %18:i32 = load %17
+    %x_59:i32 = let %18
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %21:i32 = load %20
+    %x_61:i32 = let %21
+    %23:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %24:i32 = load %23
+    %x_63:i32 = let %24
+    %26:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %27:i32 = load %26
+    %x_65:i32 = let %27
+    %29:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %30:i32 = load %29
+    %x_67:i32 = let %30
+    %32:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %33:i32 = load %32
+    %x_69:i32 = let %33
+    %35:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %36:i32 = load %35
+    %x_71:i32 = let %36
+    %38:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %39:i32 = load %38
+    %x_73:i32 = let %39
+    %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %42:i32 = load %41
+    %x_75:i32 = let %42
+    %44:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %45:i32 = load %44
+    %x_77:i32 = let %45
+    %47:array<i32, 10> = construct %x_59, %x_61, %x_63, %x_65, %x_67, %x_69, %x_71, %x_73, %x_75, %x_77
+    store %arr0, %47
+    %48:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %49:i32 = load %48
+    %x_80:i32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
+    %52:i32 = load %51
+    %x_82:i32 = let %52
+    %54:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
+    %55:i32 = load %54
+    %x_84:i32 = let %55
+    %57:ptr<uniform, i32, read> = access %x_6, 0u, 16i, 0u
+    %58:i32 = load %57
+    %x_86:i32 = let %58
+    %60:ptr<uniform, i32, read> = access %x_6, 0u, 17i, 0u
+    %61:i32 = load %60
+    %x_88:i32 = let %61
+    %63:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
+    %64:i32 = load %63
+    %x_90:i32 = let %64
+    %66:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
+    %67:i32 = load %66
+    %x_92:i32 = let %67
+    %69:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %70:i32 = load %69
+    %x_94:i32 = let %70
+    %72:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+    %73:i32 = load %72
+    %x_96:i32 = let %73
+    %75:ptr<uniform, i32, read> = access %x_6, 0u, 19i, 0u
+    %76:i32 = load %75
+    %x_98:i32 = let %76
+    %78:array<i32, 10> = construct %x_80, %x_82, %x_84, %x_86, %x_88, %x_90, %x_92, %x_94, %x_96, %x_98
+    store %arr1, %78
+    %79:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %80:i32 = load %79
+    %x_101:i32 = let %80
     store %a, %x_101
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_106:i32 = load %a
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_108:i32 = load %62
-        %64:bool = lt %x_106, %x_108
-        if %64 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %82:i32 = load %a
+        %x_106:i32 = let %82
+        %84:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %85:i32 = load %84
+        %x_108:i32 = let %85
+        %87:bool = lt %x_106, %x_108
+        if %87 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %65:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_112:i32 = load %65
+        %88:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %89:i32 = load %88
+        %x_112:i32 = let %89
         store %limiter0, %x_112
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_117:i32 = load %limiter0
-            %68:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-            %x_119:i32 = load %68
-            %70:bool = lt %x_117, %x_119
-            if %70 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %91:i32 = load %limiter0
+            %x_117:i32 = let %91
+            %93:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+            %94:i32 = load %93
+            %x_119:i32 = let %94
+            %96:bool = lt %x_117, %x_119
+            if %96 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_122:i32 = load %limiter0
-            %72:i32 = add %x_122, 1i
-            store %limiter0, %72
-            %73:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-            %x_125:i32 = load %73
+            %97:i32 = load %limiter0
+            %x_122:i32 = let %97
+            %99:i32 = add %x_122, 1i
+            store %limiter0, %99
+            %100:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+            %101:i32 = load %100
+            %x_125:i32 = let %101
             store %limiter1, %x_125
-            %75:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_127:i32 = load %75
+            %103:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %104:i32 = load %103
+            %x_127:i32 = let %104
             store %b, %x_127
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_132:i32 = load %b
-                %78:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %x_134:i32 = load %78
-                %80:bool = lt %x_132, %x_134
-                if %80 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %106:i32 = load %b
+                %x_132:i32 = let %106
+                %108:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %109:i32 = load %108
+                %x_134:i32 = let %109
+                %111:bool = lt %x_132, %x_134
+                if %111 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %x_137:i32 = load %limiter1
-                %82:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-                %x_139:i32 = load %82
-                %84:bool = gt %x_137, %x_139
-                if %84 [t: %b15] {  # if_4
-                  %b15 = block {  # true
+                %112:i32 = load %limiter1
+                %x_137:i32 = let %112
+                %114:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+                %115:i32 = load %114
+                %x_139:i32 = let %115
+                %117:bool = gt %x_137, %x_139
+                if %117 [t: $B15] {  # if_4
+                  $B15: {  # true
                     exit_loop  # loop_3
                   }
                 }
-                %x_143:i32 = load %limiter1
-                %86:i32 = add %x_143, 1i
-                store %limiter1, %86
-                %x_145:i32 = load %b
-                %x_146:i32 = load %a
-                %89:ptr<function, i32, read_write> = access %arr1, %x_146
-                %x_148:i32 = load %89
-                %91:ptr<function, i32, read_write> = access %arr0, %x_145
-                store %91, %x_148
-                continue %b12
+                %118:i32 = load %limiter1
+                %x_143:i32 = let %118
+                %120:i32 = add %x_143, 1i
+                store %limiter1, %120
+                %121:i32 = load %b
+                %x_145:i32 = let %121
+                %123:i32 = load %a
+                %x_146:i32 = let %123
+                %125:ptr<function, i32, read_write> = access %arr1, %x_146
+                %126:i32 = load %125
+                %x_148:i32 = let %126
+                %128:ptr<function, i32, read_write> = access %arr0, %x_145
+                store %128, %x_148
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_150:i32 = load %b
-                %93:i32 = add %x_150, 1i
-                store %b, %93
-                next_iteration %b11
+              $B12: {  # continuing
+                %129:i32 = load %b
+                %x_150:i32 = let %129
+                %131:i32 = add %x_150, 1i
+                store %b, %131
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            next_iteration %b7
+          $B8: {  # continuing
+            next_iteration  # -> $B7
           }
         }
         store %limiter2, 0i
-        loop [b: %b16, c: %b17] {  # loop_4
-          %b16 = block {  # body
-            %x_156:i32 = load %limiter2
-            %95:bool = lt %x_156, 5i
-            if %95 [t: %b18, f: %b19] {  # if_5
-              %b18 = block {  # true
+        loop [b: $B16, c: $B17] {  # loop_4
+          $B16: {  # body
+            %132:i32 = load %limiter2
+            %x_156:i32 = let %132
+            %134:bool = lt %x_156, 5i
+            if %134 [t: $B18, f: $B19] {  # if_5
+              $B18: {  # true
                 exit_if  # if_5
               }
-              %b19 = block {  # false
+              $B19: {  # false
                 exit_loop  # loop_4
               }
             }
-            %x_159:i32 = load %limiter2
-            %97:i32 = add %x_159, 1i
-            store %limiter2, %97
-            %98:ptr<function, i32, read_write> = access %arr1, 1i
-            %x_162:i32 = load %98
-            %100:ptr<function, i32, read_write> = access %arr0, 1i
-            store %100, %x_162
-            continue %b17
+            %135:i32 = load %limiter2
+            %x_159:i32 = let %135
+            %137:i32 = add %x_159, 1i
+            store %limiter2, %137
+            %138:ptr<function, i32, read_write> = access %arr1, 1i
+            %139:i32 = load %138
+            %x_162:i32 = let %139
+            %141:ptr<function, i32, read_write> = access %arr0, 1i
+            store %141, %x_162
+            continue  # -> $B17
           }
-          %b17 = block {  # continuing
-            next_iteration %b16
+          $B17: {  # continuing
+            next_iteration  # -> $B16
           }
         }
-        loop [b: %b20, c: %b21] {  # loop_5
-          %b20 = block {  # body
+        loop [b: $B20, c: $B21] {  # loop_5
+          $B20: {  # body
             store %limiter3, 0i
             store %d, 0i
-            loop [b: %b22, c: %b23] {  # loop_6
-              %b22 = block {  # body
-                %x_172:i32 = load %d
-                %102:bool = lt %x_172, 10i
-                if %102 [t: %b24, f: %b25] {  # if_6
-                  %b24 = block {  # true
+            loop [b: $B22, c: $B23] {  # loop_6
+              $B22: {  # body
+                %142:i32 = load %d
+                %x_172:i32 = let %142
+                %144:bool = lt %x_172, 10i
+                if %144 [t: $B24, f: $B25] {  # if_6
+                  $B24: {  # true
                     exit_if  # if_6
                   }
-                  %b25 = block {  # false
+                  $B25: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                %x_175:i32 = load %limiter3
-                %104:bool = gt %x_175, 4i
-                if %104 [t: %b26] {  # if_7
-                  %b26 = block {  # true
+                %145:i32 = load %limiter3
+                %x_175:i32 = let %145
+                %147:bool = gt %x_175, 4i
+                if %147 [t: $B26] {  # if_7
+                  $B26: {  # true
                     exit_loop  # loop_6
                   }
                 }
-                %x_179:i32 = load %limiter3
-                %106:i32 = add %x_179, 1i
-                store %limiter3, %106
-                %x_181:i32 = load %d
-                %x_182:i32 = load %d
-                %109:ptr<function, i32, read_write> = access %arr0, %x_182
-                %x_184:i32 = load %109
-                %111:ptr<function, i32, read_write> = access %arr1, %x_181
-                store %111, %x_184
-                continue %b23
+                %148:i32 = load %limiter3
+                %x_179:i32 = let %148
+                %150:i32 = add %x_179, 1i
+                store %limiter3, %150
+                %151:i32 = load %d
+                %x_181:i32 = let %151
+                %153:i32 = load %d
+                %x_182:i32 = let %153
+                %155:ptr<function, i32, read_write> = access %arr0, %x_182
+                %156:i32 = load %155
+                %x_184:i32 = let %156
+                %158:ptr<function, i32, read_write> = access %arr1, %x_181
+                store %158, %x_184
+                continue  # -> $B23
               }
-              %b23 = block {  # continuing
-                %x_186:i32 = load %d
-                %113:i32 = add %x_186, 1i
-                store %d, %113
-                next_iteration %b22
+              $B23: {  # continuing
+                %159:i32 = load %d
+                %x_186:i32 = let %159
+                %161:i32 = add %x_186, 1i
+                store %d, %161
+                next_iteration  # -> $B22
               }
             }
-            continue %b21
+            continue  # -> $B21
           }
-          %b21 = block {  # continuing
-            %114:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-            %x_189:i32 = load %114
-            %116:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_191:i32 = load %116
-            %118:bool = eq %x_189, %x_191
-            %119:bool = eq %118, false
-            break_if %119 %b20
+          $B21: {  # continuing
+            %162:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+            %163:i32 = load %162
+            %x_189:i32 = let %163
+            %165:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %166:i32 = load %165
+            %x_191:i32 = let %166
+            %168:bool = eq %x_189, %x_191
+            %169:bool = eq %168, false
+            break_if %169  # -> [t: exit_loop loop_5, f: $B20]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_193:i32 = load %a
-        %121:i32 = add %x_193, 1i
-        store %a, %121
-        next_iteration %b3
+      $B4: {  # continuing
+        %170:i32 = load %a
+        %x_193:i32 = let %170
+        %172:i32 = add %x_193, 1i
+        store %a, %172
+        next_iteration  # -> $B3
       }
     }
-    %122:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_196:i32 = load %122
-    %124:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %x_198:i32 = load %124
-    %126:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_200:i32 = load %126
-    %128:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_202:i32 = load %128
-    %130:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_204:i32 = load %130
-    %132:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-    %x_206:i32 = load %132
-    %134:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_208:i32 = load %134
-    %136:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-    %x_210:i32 = load %136
-    %138:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_212:i32 = load %138
-    %140:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %x_214:i32 = load %140
-    %142:array<i32, 10> = construct %x_196, %x_198, %x_200, %x_202, %x_204, %x_206, %x_208, %x_210, %x_212, %x_214
-    store %ref0, %142
-    %143:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_217:i32 = load %143
-    %145:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %x_219:i32 = load %145
-    %147:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_221:i32 = load %147
-    %149:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_223:i32 = load %149
-    %151:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_225:i32 = load %151
-    %153:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
-    %x_227:i32 = load %153
-    %155:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
-    %x_229:i32 = load %155
-    %157:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_231:i32 = load %157
-    %159:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
-    %x_233:i32 = load %159
-    %161:ptr<uniform, i32, read> = access %x_6, 0u, 19i, 0u
-    %x_235:i32 = load %161
-    %163:array<i32, 10> = construct %x_217, %x_219, %x_221, %x_223, %x_225, %x_227, %x_229, %x_231, %x_233, %x_235
-    store %ref1, %163
-    %164:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_238:i32 = load %164
-    %166:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_241:i32 = load %166
-    %168:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_244:i32 = load %168
-    %170:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_247:i32 = load %170
-    %172:f32 = convert %x_238
-    %173:f32 = convert %x_241
-    %174:f32 = convert %x_244
-    %175:f32 = convert %x_247
-    %176:vec4<f32> = construct %172, %173, %174, %175
-    store %x_GLF_color, %176
-    %177:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_251:i32 = load %177
+    %173:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %174:i32 = load %173
+    %x_196:i32 = let %174
+    %176:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
+    %177:i32 = load %176
+    %x_198:i32 = let %177
+    %179:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %180:i32 = load %179
+    %x_200:i32 = let %180
+    %182:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %183:i32 = load %182
+    %x_202:i32 = let %183
+    %185:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %186:i32 = load %185
+    %x_204:i32 = let %186
+    %188:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %189:i32 = load %188
+    %x_206:i32 = let %189
+    %191:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %192:i32 = load %191
+    %x_208:i32 = let %192
+    %194:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %195:i32 = load %194
+    %x_210:i32 = let %195
+    %197:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %198:i32 = load %197
+    %x_212:i32 = let %198
+    %200:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %201:i32 = load %200
+    %x_214:i32 = let %201
+    %203:array<i32, 10> = construct %x_196, %x_198, %x_200, %x_202, %x_204, %x_206, %x_208, %x_210, %x_212, %x_214
+    store %ref0, %203
+    %204:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %205:i32 = load %204
+    %x_217:i32 = let %205
+    %207:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
+    %208:i32 = load %207
+    %x_219:i32 = let %208
+    %210:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %211:i32 = load %210
+    %x_221:i32 = let %211
+    %213:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %214:i32 = load %213
+    %x_223:i32 = let %214
+    %216:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %217:i32 = load %216
+    %x_225:i32 = let %217
+    %219:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
+    %220:i32 = load %219
+    %x_227:i32 = let %220
+    %222:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
+    %223:i32 = load %222
+    %x_229:i32 = let %223
+    %225:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %226:i32 = load %225
+    %x_231:i32 = let %226
+    %228:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+    %229:i32 = load %228
+    %x_233:i32 = let %229
+    %231:ptr<uniform, i32, read> = access %x_6, 0u, 19i, 0u
+    %232:i32 = load %231
+    %x_235:i32 = let %232
+    %234:array<i32, 10> = construct %x_217, %x_219, %x_221, %x_223, %x_225, %x_227, %x_229, %x_231, %x_233, %x_235
+    store %ref1, %234
+    %235:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %236:i32 = load %235
+    %x_238:i32 = let %236
+    %238:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %239:i32 = load %238
+    %x_241:i32 = let %239
+    %241:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %242:i32 = load %241
+    %x_244:i32 = let %242
+    %244:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %245:i32 = load %244
+    %x_247:i32 = let %245
+    %247:f32 = convert %x_238
+    %248:f32 = let %247
+    %249:f32 = convert %x_241
+    %250:f32 = let %249
+    %251:f32 = convert %x_244
+    %252:f32 = let %251
+    %253:f32 = convert %x_247
+    %254:vec4<f32> = construct %248, %250, %252, %253
+    store %x_GLF_color, %254
+    %255:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %256:i32 = load %255
+    %x_251:i32 = let %256
     store %i, %x_251
-    loop [b: %b27, c: %b28] {  # loop_7
-      %b27 = block {  # body
+    loop [b: $B27, c: $B28] {  # loop_7
+      $B27: {  # body
         %x_277:ptr<function, bool, read_write> = var
         %x_278_phi:ptr<function, bool, read_write> = var
-        %x_256:i32 = load %i
-        %182:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_258:i32 = load %182
-        %184:bool = lt %x_256, %x_258
-        if %184 [t: %b29, f: %b30] {  # if_8
-          %b29 = block {  # true
+        %260:i32 = load %i
+        %x_256:i32 = let %260
+        %262:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %263:i32 = load %262
+        %x_258:i32 = let %263
+        %265:bool = lt %x_256, %x_258
+        if %265 [t: $B29, f: $B30] {  # if_8
+          $B29: {  # true
             exit_if  # if_8
           }
-          %b30 = block {  # false
+          $B30: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_261:i32 = load %i
-        %186:ptr<function, i32, read_write> = access %arr0, %x_261
-        %x_263:i32 = load %186
-        %x_264:i32 = load %i
-        %189:ptr<function, i32, read_write> = access %ref0, %x_264
-        %x_266:i32 = load %189
-        %x_267:bool = neq %x_263, %x_266
+        %266:i32 = load %i
+        %x_261:i32 = let %266
+        %268:ptr<function, i32, read_write> = access %arr0, %x_261
+        %269:i32 = load %268
+        %x_263:i32 = let %269
+        %271:i32 = load %i
+        %x_264:i32 = let %271
+        %273:ptr<function, i32, read_write> = access %ref0, %x_264
+        %274:i32 = load %273
+        %x_266:i32 = let %274
+        %276:bool = neq %x_263, %x_266
+        %x_267:bool = let %276
         store %x_278_phi, %x_267
-        %192:bool = eq %x_267, false
-        if %192 [t: %b31] {  # if_9
-          %b31 = block {  # true
-            %x_271:i32 = load %i
-            %194:ptr<function, i32, read_write> = access %arr1, %x_271
-            %x_273:i32 = load %194
-            %x_274:i32 = load %i
-            %197:ptr<function, i32, read_write> = access %ref1, %x_274
-            %x_276:i32 = load %197
-            %199:bool = neq %x_273, %x_276
-            store %x_277, %199
-            %200:bool = load %x_277
-            store %x_278_phi, %200
+        %278:bool = eq %x_267, false
+        if %278 [t: $B31] {  # if_9
+          $B31: {  # true
+            %279:i32 = load %i
+            %x_271:i32 = let %279
+            %281:ptr<function, i32, read_write> = access %arr1, %x_271
+            %282:i32 = load %281
+            %x_273:i32 = let %282
+            %284:i32 = load %i
+            %x_274:i32 = let %284
+            %286:ptr<function, i32, read_write> = access %ref1, %x_274
+            %287:i32 = load %286
+            %x_276:i32 = let %287
+            %289:bool = neq %x_273, %x_276
+            store %x_277, %289
+            %290:bool = load %x_277
+            store %x_278_phi, %290
             exit_if  # if_9
           }
         }
-        %x_278:bool = load %x_278_phi
-        if %x_278 [t: %b32] {  # if_10
-          %b32 = block {  # true
-            %202:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_282:i32 = load %202
-            %x_283:f32 = convert %x_282
-            %205:vec4<f32> = construct %x_283, %x_283, %x_283, %x_283
-            store %x_GLF_color, %205
+        %291:bool = load %x_278_phi
+        %x_278:bool = let %291
+        if %x_278 [t: $B32] {  # if_10
+          $B32: {  # true
+            %293:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %294:i32 = load %293
+            %x_282:i32 = let %294
+            %296:f32 = convert %x_282
+            %x_283:f32 = let %296
+            %298:vec4<f32> = construct %x_283, %x_283, %x_283, %x_283
+            store %x_GLF_color, %298
             exit_if  # if_10
           }
         }
-        continue %b28
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_285:i32 = load %i
-        %207:i32 = add %x_285, 1i
-        store %i, %207
-        next_iteration %b27
+      $B28: {  # continuing
+        %299:i32 = load %i
+        %x_285:i32 = let %299
+        %301:i32 = add %x_285, 1i
+        store %i, %301
+        next_iteration  # -> $B27
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b33 {
-  %b33 = block {
-    %209:void = call %main_1
-    %210:vec4<f32> = load %x_GLF_color
-    %211:main_out = construct %210
-    ret %211
+%tint_symbol = @fragment func():main_out {
+  $B33: {
+    %303:void = call %main_1
+    %304:vec4<f32> = load %x_GLF_color
+    %305:main_out = construct %304
+    ret %305
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.msl
index a28f9da..992fba1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec4<f32>, read_write> = var
     %v2:ptr<function, vec4<f32>, read_write> = var
     %v3:ptr<function, vec4<f32>, read_write> = var
@@ -57,97 +57,98 @@
     %34:f32 = load_vector_element %v4, 0u
     %35:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
     %36:f32 = load %35
-    %x_62:bool = gt %34, %36
+    %37:bool = gt %34, %36
+    %x_62:bool = let %37
     store %x_70, %x_62
-    if %x_62 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %38:f32 = load_vector_element %v4, 0u
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
-        %40:f32 = load %39
-        %41:bool = lt %38, %40
-        store %x_69, %41
-        %42:bool = load %x_69
-        store %x_70, %42
+    if %x_62 [t: $B3] {  # if_1
+      $B3: {  # true
+        %39:f32 = load_vector_element %v4, 0u
+        %40:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
+        %41:f32 = load %40
+        %42:bool = lt %39, %41
+        store %x_69, %42
+        %43:bool = load %x_69
+        store %x_70, %43
         exit_if  # if_1
       }
     }
-    %43:bool = load %x_70
-    store %x_78, %43
     %44:bool = load %x_70
-    if %44 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %45:f32 = load_vector_element %v4, 1u
-        %46:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %47:f32 = load %46
-        %48:bool = gt %45, %47
-        store %x_77, %48
-        %49:bool = load %x_77
-        store %x_78, %49
+    store %x_78, %44
+    %45:bool = load %x_70
+    if %45 [t: $B4] {  # if_2
+      $B4: {  # true
+        %46:f32 = load_vector_element %v4, 1u
+        %47:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %48:f32 = load %47
+        %49:bool = gt %46, %48
+        store %x_77, %49
+        %50:bool = load %x_77
+        store %x_78, %50
         exit_if  # if_2
       }
     }
-    %50:bool = load %x_78
-    store %x_86, %50
     %51:bool = load %x_78
-    if %51 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %52:f32 = load_vector_element %v4, 1u
-        %53:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
-        %54:f32 = load %53
-        %55:bool = lt %52, %54
-        store %x_85, %55
-        %56:bool = load %x_85
-        store %x_86, %56
+    store %x_86, %51
+    %52:bool = load %x_78
+    if %52 [t: $B5] {  # if_3
+      $B5: {  # true
+        %53:f32 = load_vector_element %v4, 1u
+        %54:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
+        %55:f32 = load %54
+        %56:bool = lt %53, %55
+        store %x_85, %56
+        %57:bool = load %x_85
+        store %x_86, %57
         exit_if  # if_3
       }
     }
-    %57:bool = load %x_86
-    store %x_94, %57
     %58:bool = load %x_86
-    if %58 [t: %b6] {  # if_4
-      %b6 = block {  # true
-        %59:f32 = load_vector_element %v4, 3u
-        %60:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %61:f32 = load %60
-        %62:bool = eq %59, %61
-        store %x_93, %62
-        %63:bool = load %x_93
-        store %x_94, %63
+    store %x_94, %58
+    %59:bool = load %x_86
+    if %59 [t: $B6] {  # if_4
+      $B6: {  # true
+        %60:f32 = load_vector_element %v4, 3u
+        %61:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %62:f32 = load %61
+        %63:bool = eq %60, %62
+        store %x_93, %63
+        %64:bool = load %x_93
+        store %x_94, %64
         exit_if  # if_4
       }
     }
-    %64:bool = load %x_94
-    if %64 [t: %b7, f: %b8] {  # if_5
-      %b7 = block {  # true
-        %65:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %66:f32 = load %65
-        %67:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %68:f32 = load %67
-        %69:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %70:f32 = load %69
-        %71:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %72:f32 = load %71
-        %73:vec4<f32> = construct %66, %68, %70, %72
-        store %x_GLF_color, %73
+    %65:bool = load %x_94
+    if %65 [t: $B7, f: $B8] {  # if_5
+      $B7: {  # true
+        %66:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %67:f32 = load %66
+        %68:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %69:f32 = load %68
+        %70:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %71:f32 = load %70
+        %72:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %73:f32 = load %72
+        %74:vec4<f32> = construct %67, %69, %71, %73
+        store %x_GLF_color, %74
         exit_if  # if_5
       }
-      %b8 = block {  # false
-        %74:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %75:f32 = load %74
-        %76:vec4<f32> = construct %75
-        store %x_GLF_color, %76
+      $B8: {  # false
+        %75:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %76:f32 = load %75
+        %77:vec4<f32> = construct %76
+        store %x_GLF_color, %77
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %78:void = call %main_1
-    %79:vec4<f32> = load %x_GLF_color
-    %80:main_out = construct %79
-    ret %80
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.msl
index 2cb4587..e8cc271 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-asin-undefined-smoothstep/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec4<f32>, read_write> = var
     %v2:ptr<function, vec4<f32>, read_write> = var
     %v3:ptr<function, vec4<f32>, read_write> = var
@@ -32,123 +32,152 @@
     %x_86_phi:ptr<function, bool, read_write> = var
     %x_94_phi:ptr<function, bool, read_write> = var
     %16:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_41:f32 = load %16
-    %18:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_43:f32 = load %18
-    %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_45:f32 = load %20
-    %22:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_47:f32 = load %22
-    %24:vec4<f32> = construct %x_41, %x_43, %x_45, %x_47
-    store %v1, %24
+    %17:f32 = load %16
+    %x_41:f32 = let %17
+    %19:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %20:f32 = load %19
+    %x_43:f32 = let %20
+    %22:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_45:f32 = let %23
+    %25:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %26:f32 = load %25
+    %x_47:f32 = let %26
+    %28:vec4<f32> = construct %x_41, %x_43, %x_45, %x_47
+    store %v1, %28
     store %v2, vec4<f32>(1.57079637050628662109f, 1.11976957321166992188f, 1.0f, 0.92729520797729492188f)
-    %25:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_50:f32 = load %25
-    %27:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
-    store %v3, %27
-    %x_52:vec4<f32> = load %v1
-    %x_53:vec4<f32> = load %v2
-    %x_54:vec4<f32> = load %v3
-    %31:vec4<f32> = smoothstep %x_52, %x_53, %x_54
-    store %v4, %31
-    %x_56:vec4<f32> = load %v4
-    %33:f32 = access %x_56, 0u
-    %34:f32 = access %x_56, 1u
-    %35:f32 = access %x_56, 3u
-    %36:f32 = access %x_56, 0u
-    %37:vec4<f32> = construct %33, %34, %35, %36
-    store %x_GLF_color, %37
-    %x_59:f32 = load_vector_element %v4, 0u
-    %39:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-    %x_61:f32 = load %39
-    %x_62:bool = gt %x_59, %x_61
+    %29:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %30:f32 = load %29
+    %x_50:f32 = let %30
+    %32:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
+    store %v3, %32
+    %33:vec4<f32> = load %v1
+    %x_52:vec4<f32> = let %33
+    %35:vec4<f32> = load %v2
+    %x_53:vec4<f32> = let %35
+    %37:vec4<f32> = load %v3
+    %x_54:vec4<f32> = let %37
+    %39:vec4<f32> = smoothstep %x_52, %x_53, %x_54
+    store %v4, %39
+    %40:vec4<f32> = load %v4
+    %x_56:vec4<f32> = let %40
+    %42:f32 = access %x_56, 0u
+    %43:f32 = access %x_56, 1u
+    %44:f32 = access %x_56, 3u
+    %45:f32 = access %x_56, 0u
+    %46:vec4<f32> = construct %42, %43, %44, %45
+    store %x_GLF_color, %46
+    %47:f32 = load_vector_element %v4, 0u
+    %x_59:f32 = let %47
+    %49:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+    %50:f32 = load %49
+    %x_61:f32 = let %50
+    %52:bool = gt %x_59, %x_61
+    %x_62:bool = let %52
     store %x_70_phi, %x_62
-    if %x_62 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_66:f32 = load_vector_element %v4, 0u
-        %43:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
-        %x_68:f32 = load %43
-        %45:bool = lt %x_66, %x_68
-        store %x_69, %45
-        %46:bool = load %x_69
-        store %x_70_phi, %46
+    if %x_62 [t: $B3] {  # if_1
+      $B3: {  # true
+        %54:f32 = load_vector_element %v4, 0u
+        %x_66:f32 = let %54
+        %56:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
+        %57:f32 = load %56
+        %x_68:f32 = let %57
+        %59:bool = lt %x_66, %x_68
+        store %x_69, %59
+        %60:bool = load %x_69
+        store %x_70_phi, %60
         exit_if  # if_1
       }
     }
-    %x_70:bool = load %x_70_phi
+    %61:bool = load %x_70_phi
+    %x_70:bool = let %61
     store %x_78_phi, %x_70
-    if %x_70 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %x_74:f32 = load_vector_element %v4, 1u
-        %49:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_76:f32 = load %49
-        %51:bool = gt %x_74, %x_76
-        store %x_77, %51
-        %52:bool = load %x_77
-        store %x_78_phi, %52
+    if %x_70 [t: $B4] {  # if_2
+      $B4: {  # true
+        %63:f32 = load_vector_element %v4, 1u
+        %x_74:f32 = let %63
+        %65:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %66:f32 = load %65
+        %x_76:f32 = let %66
+        %68:bool = gt %x_74, %x_76
+        store %x_77, %68
+        %69:bool = load %x_77
+        store %x_78_phi, %69
         exit_if  # if_2
       }
     }
-    %x_78:bool = load %x_78_phi
+    %70:bool = load %x_78_phi
+    %x_78:bool = let %70
     store %x_86_phi, %x_78
-    if %x_78 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %x_82:f32 = load_vector_element %v4, 1u
-        %55:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
-        %x_84:f32 = load %55
-        %57:bool = lt %x_82, %x_84
-        store %x_85, %57
-        %58:bool = load %x_85
-        store %x_86_phi, %58
+    if %x_78 [t: $B5] {  # if_3
+      $B5: {  # true
+        %72:f32 = load_vector_element %v4, 1u
+        %x_82:f32 = let %72
+        %74:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
+        %75:f32 = load %74
+        %x_84:f32 = let %75
+        %77:bool = lt %x_82, %x_84
+        store %x_85, %77
+        %78:bool = load %x_85
+        store %x_86_phi, %78
         exit_if  # if_3
       }
     }
-    %x_86:bool = load %x_86_phi
+    %79:bool = load %x_86_phi
+    %x_86:bool = let %79
     store %x_94_phi, %x_86
-    if %x_86 [t: %b6] {  # if_4
-      %b6 = block {  # true
-        %x_90:f32 = load_vector_element %v4, 3u
-        %61:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_92:f32 = load %61
-        %63:bool = eq %x_90, %x_92
-        store %x_93, %63
-        %64:bool = load %x_93
-        store %x_94_phi, %64
+    if %x_86 [t: $B6] {  # if_4
+      $B6: {  # true
+        %81:f32 = load_vector_element %v4, 3u
+        %x_90:f32 = let %81
+        %83:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %84:f32 = load %83
+        %x_92:f32 = let %84
+        %86:bool = eq %x_90, %x_92
+        store %x_93, %86
+        %87:bool = load %x_93
+        store %x_94_phi, %87
         exit_if  # if_4
       }
     }
-    %x_94:bool = load %x_94_phi
-    if %x_94 [t: %b7, f: %b8] {  # if_5
-      %b7 = block {  # true
-        %66:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_99:f32 = load %66
-        %68:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_101:f32 = load %68
-        %70:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_103:f32 = load %70
-        %72:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_105:f32 = load %72
-        %74:vec4<f32> = construct %x_99, %x_101, %x_103, %x_105
-        store %x_GLF_color, %74
+    %88:bool = load %x_94_phi
+    %x_94:bool = let %88
+    if %x_94 [t: $B7, f: $B8] {  # if_5
+      $B7: {  # true
+        %90:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %91:f32 = load %90
+        %x_99:f32 = let %91
+        %93:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %94:f32 = load %93
+        %x_101:f32 = let %94
+        %96:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %97:f32 = load %96
+        %x_103:f32 = let %97
+        %99:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %100:f32 = load %99
+        %x_105:f32 = let %100
+        %102:vec4<f32> = construct %x_99, %x_101, %x_103, %x_105
+        store %x_GLF_color, %102
         exit_if  # if_5
       }
-      %b8 = block {  # false
-        %75:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_108:f32 = load %75
-        %77:vec4<f32> = construct %x_108, %x_108, %x_108, %x_108
-        store %x_GLF_color, %77
+      $B8: {  # false
+        %103:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %104:f32 = load %103
+        %x_108:f32 = let %104
+        %106:vec4<f32> = construct %x_108, %x_108, %x_108, %x_108
+        store %x_GLF_color, %106
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %79:void = call %main_1
-    %80:vec4<f32> = load %x_GLF_color
-    %81:main_out = construct %80
-    ret %81
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %108:void = call %main_1
+    %109:vec4<f32> = load %x_GLF_color
+    %110:main_out = construct %109
+    ret %110
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.msl
index d106aa1..b6b6c05 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %f:ptr<function, f32, read_write> = var
     %x_56:ptr<function, bool, read_write> = var
@@ -35,75 +35,81 @@
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %10:i32 = load %9
     %11:f32 = convert %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %13:i32 = load %12
-    %14:f32 = convert %13
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %16:i32 = load %15
-    %17:f32 = convert %16
-    %18:vec4<f32> = construct %11, %14, -621.59600830078125f, %17
-    store %v, %18
-    %19:vec4<f32> = load %v
-    %20:vec4<f32> = trunc %19
-    %21:vec4<f32> = atan %20
-    %22:f32 = access %21, 2u
-    store %f, %22
-    %23:f32 = load %f
-    %24:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %25:f32 = load %24
-    %26:f32 = negation %25
-    %x_49:bool = gt %23, %26
+    %12:f32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %14:i32 = load %13
+    %15:f32 = convert %14
+    %16:f32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %18:i32 = load %17
+    %19:f32 = convert %18
+    %20:vec4<f32> = construct %12, %16, -621.59600830078125f, %19
+    store %v, %20
+    %21:vec4<f32> = load %v
+    %22:vec4<f32> = trunc %21
+    %23:vec4<f32> = atan %22
+    %24:f32 = access %23, 2u
+    store %f, %24
+    %25:f32 = load %f
+    %26:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %27:f32 = load %26
+    %28:f32 = negation %27
+    %29:bool = gt %25, %28
+    %x_49:bool = let %29
     store %x_57, %x_49
-    if %x_49 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %28:f32 = load %f
-        %29:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %30:f32 = load %29
-        %31:f32 = negation %30
-        %32:bool = lt %28, %31
-        store %x_56, %32
-        %33:bool = load %x_56
-        store %x_57, %33
+    if %x_49 [t: $B3] {  # if_1
+      $B3: {  # true
+        %31:f32 = load %f
+        %32:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %33:f32 = load %32
+        %34:f32 = negation %33
+        %35:bool = lt %31, %34
+        store %x_56, %35
+        %36:bool = load %x_56
+        store %x_57, %36
         exit_if  # if_1
       }
     }
-    %34:bool = load %x_57
-    if %34 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %37:bool = load %x_57
+    if %37 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %39:i32 = load %38
         %40:f32 = convert %39
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
-        %47:vec4<f32> = construct %37, %40, %43, %46
-        store %x_GLF_color, %47
+        %41:f32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:f32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %47:i32 = load %46
+        %48:f32 = convert %47
+        %49:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %51:i32 = load %50
+        %52:f32 = convert %51
+        %53:vec4<f32> = construct %41, %45, %49, %52
+        store %x_GLF_color, %53
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:vec4<f32> = construct %50
-        store %x_GLF_color, %51
+      $B5: {  # false
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:vec4<f32> = construct %56
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %53:void = call %main_1
-    %54:vec4<f32> = load %x_GLF_color
-    %55:main_out = construct %54
-    ret %55
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.msl
index 3d057c0..e9f9284 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-atan-trunc-vec4/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,90 +20,111 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %f:ptr<function, f32, read_write> = var
     %x_56:ptr<function, bool, read_write> = var
     %x_57_phi:ptr<function, bool, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_32:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:i32 = load %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %13
-    %15:f32 = convert %x_32
-    %16:f32 = convert %x_35
-    %17:f32 = convert %x_38
-    %18:vec4<f32> = construct %15, %16, -621.59600830078125f, %17
-    store %v, %18
-    %x_41:vec4<f32> = load %v
-    %20:vec4<f32> = trunc %x_41
-    %21:vec4<f32> = atan %20
-    %22:f32 = access %21, 2u
-    store %f, %22
-    %x_45:f32 = load %f
-    %24:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_47:f32 = load %24
-    %26:f32 = negation %x_47
-    %x_49:bool = gt %x_45, %26
+    %10:i32 = load %9
+    %x_32:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %13:i32 = load %12
+    %x_35:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %16:i32 = load %15
+    %x_38:i32 = let %16
+    %18:f32 = convert %x_32
+    %19:f32 = let %18
+    %20:f32 = convert %x_35
+    %21:f32 = let %20
+    %22:f32 = convert %x_38
+    %23:vec4<f32> = construct %19, %21, -621.59600830078125f, %22
+    store %v, %23
+    %24:vec4<f32> = load %v
+    %x_41:vec4<f32> = let %24
+    %26:vec4<f32> = trunc %x_41
+    %27:vec4<f32> = atan %26
+    %28:f32 = access %27, 2u
+    store %f, %28
+    %29:f32 = load %f
+    %x_45:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %32:f32 = load %31
+    %x_47:f32 = let %32
+    %34:f32 = negation %x_47
+    %35:bool = gt %x_45, %34
+    %x_49:bool = let %35
     store %x_57_phi, %x_49
-    if %x_49 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_52:f32 = load %f
-        %29:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %x_54:f32 = load %29
-        %31:f32 = negation %x_54
-        %32:bool = lt %x_52, %31
-        store %x_56, %32
-        %33:bool = load %x_56
-        store %x_57_phi, %33
+    if %x_49 [t: $B3] {  # if_1
+      $B3: {  # true
+        %37:f32 = load %f
+        %x_52:f32 = let %37
+        %39:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %40:f32 = load %39
+        %x_54:f32 = let %40
+        %42:f32 = negation %x_54
+        %43:bool = lt %x_52, %42
+        store %x_56, %43
+        %44:bool = load %x_56
+        store %x_57_phi, %44
         exit_if  # if_1
       }
     }
-    %x_57:bool = load %x_57_phi
-    if %x_57 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:i32 = load %35
-        %37:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_65:i32 = load %37
-        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_68:i32 = load %39
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_71:i32 = load %41
-        %43:f32 = convert %x_62
-        %44:f32 = convert %x_65
-        %45:f32 = convert %x_68
-        %46:f32 = convert %x_71
-        %47:vec4<f32> = construct %43, %44, %45, %46
-        store %x_GLF_color, %47
+    %45:bool = load %x_57_phi
+    %x_57:bool = let %45
+    if %x_57 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %48:i32 = load %47
+        %x_62:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %51:i32 = load %50
+        %x_65:i32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %54:i32 = load %53
+        %x_68:i32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %57:i32 = load %56
+        %x_71:i32 = let %57
+        %59:f32 = convert %x_62
+        %60:f32 = let %59
+        %61:f32 = convert %x_65
+        %62:f32 = let %61
+        %63:f32 = convert %x_68
+        %64:f32 = let %63
+        %65:f32 = convert %x_71
+        %66:vec4<f32> = construct %60, %62, %64, %65
+        store %x_GLF_color, %66
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_75:i32 = load %48
-        %x_76:f32 = convert %x_75
-        %51:vec4<f32> = construct %x_76, %x_76, %x_76, %x_76
-        store %x_GLF_color, %51
+      $B5: {  # false
+        %67:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %68:i32 = load %67
+        %x_75:i32 = let %68
+        %70:f32 = convert %x_75
+        %x_76:f32 = let %70
+        %72:vec4<f32> = construct %x_76, %x_76, %x_76, %x_76
+        store %x_GLF_color, %72
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %53:void = call %main_1
-    %54:vec4<f32> = load %x_GLF_color
-    %55:main_out = construct %54
-    ret %55
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %74:void = call %main_1
+    %75:vec4<f32> = load %x_GLF_color
+    %76:main_out = construct %75
+    ret %76
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.msl
index 2a45dc4..774d05d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,72 +8,76 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
-    %5:i32 = load %x
-    %6:bool = eq %5, 10i
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 {
+  $B2: {
+    %6:i32 = load %x
+    %7:bool = eq %6, 10i
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %x_49:i32 = load %x
+    %8:i32 = load %x
+    %x_49:i32 = let %8
     ret %x_49
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %x_35:ptr<function, i32, read_write> = var
     %x_37:ptr<function, i32, read_write> = var
     store %a, 0i
-    %14:ptr<uniform, i32, read> = access %x_9, 0u
-    %x_33:i32 = load %14
+    %16:ptr<uniform, i32, read> = access %x_9, 0u
+    %17:i32 = load %16
+    %x_33:i32 = let %17
     store %b, %x_33
     store %x_35, %x_33
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %16:i32 = load %x_35
-        store %param, %16
-        %17:i32 = call %func_i1_, %param
-        store %x_37, %17
-        %18:i32 = load %x_37
-        store %a, %18
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
         %19:i32 = load %x_35
-        %x_36:i32 = add %19, 1i
+        store %param, %19
+        %20:i32 = call %func_i1_, %param
+        store %x_37, %20
+        %21:i32 = load %x_37
+        store %a, %21
+        %22:i32 = load %x_35
+        %23:i32 = add %22, 1i
+        %x_36:i32 = let %23
         store %b, %x_36
         store %x_35, %x_36
-        %21:bool = lt %x_36, 4i
-        if %21 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        %25:bool = lt %x_36, 4i
+        if %25 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
-    %22:i32 = load %x_37
-    %23:bool = eq %22, 3i
-    if %23 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %26:i32 = load %x_37
+    %27:bool = eq %26, 3i
+    if %27 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -81,12 +85,19 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %29:void = call %main_1
+    %30:vec4<f32> = load %x_GLF_color
+    %31:main_out = construct %30
+    %32:bool = load %continue_execution
+    %33:bool = eq %32, false
+    if %33 [t: $B12] {  # if_4
+      $B12: {  # true
+        terminate_invocation
+      }
+    }
+    ret %31
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.msl
index 95960d1..c991ad9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-basic-block-discard-in-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,71 +8,77 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
-    %x_45:i32 = load %x
-    %6:bool = eq %x_45, 10i
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 {
+  $B2: {
+    %6:i32 = load %x
+    %x_45:i32 = let %6
+    %8:bool = eq %x_45, 10i
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %x_49:i32 = load %x
+    %9:i32 = load %x
+    %x_49:i32 = let %9
     ret %x_49
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %x_37:ptr<function, i32, read_write> = var
     %x_35_phi:ptr<function, i32, read_write> = var
     store %a, 0i
-    %14:ptr<uniform, i32, read> = access %x_9, 0u
-    %x_33:i32 = load %14
+    %17:ptr<uniform, i32, read> = access %x_9, 0u
+    %18:i32 = load %17
+    %x_33:i32 = let %18
     store %b, %x_33
     store %x_35_phi, %x_33
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_35:i32 = load %x_35_phi
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %20:i32 = load %x_35_phi
+        %x_35:i32 = let %20
         store %param, %x_35
-        %17:i32 = call %func_i1_, %param
-        store %x_37, %17
-        %18:i32 = load %x_37
-        store %a, %18
-        %x_36:i32 = add %x_35, 1i
+        %22:i32 = call %func_i1_, %param
+        store %x_37, %22
+        %23:i32 = load %x_37
+        store %a, %23
+        %24:i32 = add %x_35, 1i
+        %x_36:i32 = let %24
         store %b, %x_36
         store %x_35_phi, %x_36
-        %20:bool = lt %x_36, 4i
-        if %20 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        %26:bool = lt %x_36, 4i
+        if %26 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
-    %21:i32 = load %x_37
-    %22:bool = eq %21, 3i
-    if %22 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %27:i32 = load %x_37
+    %28:bool = eq %27, 3i
+    if %28 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -80,12 +86,19 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %24:void = call %main_1
-    %25:vec4<f32> = load %x_GLF_color
-    %26:main_out = construct %25
-    ret %26
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %30:void = call %main_1
+    %31:vec4<f32> = load %x_GLF_color
+    %32:main_out = construct %31
+    %33:bool = load %continue_execution
+    %34:bool = eq %33, false
+    if %34 [t: $B12] {  # if_4
+      $B12: {  # true
+        terminate_invocation
+      }
+    }
+    ret %32
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.msl
index e0d0933..c0df4e0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f1_ = func():i32 -> %b2 {
-  %b2 = block {
+%f1_ = func():i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 256i
@@ -36,8 +36,8 @@
     %9:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
     %10:f32 = load %9
     %11:bool = gt %8, %10
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         %12:i32 = load %a
         %13:i32 = add %12, 1i
         store %a, %13
@@ -51,63 +51,69 @@
     %17:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
     %18:i32 = load %17
     %19:bool = lt %16, %18
-    if %19 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %19 [t: $B4] {  # if_2
+      $B4: {  # true
         %20:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_82:i32 = load %20
+        %21:i32 = load %20
+        %x_82:i32 = let %21
         ret %x_82
       }
     }
-    %x_83:i32 = load %i
+    %23:i32 = load %i
+    %x_83:i32 = let %23
     ret %x_83
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %a_1:ptr<function, i32, read_write> = var
-    %x_38:i32 = call %f1_
+    %27:i32 = call %f1_
+    %x_38:i32 = let %27
     store %a_1, %x_38
-    %26:i32 = load %a_1
-    %27:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-    %28:i32 = load %27
-    %29:bool = eq %26, %28
-    if %29 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %30:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+    %29:i32 = load %a_1
+    %30:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+    %31:i32 = load %30
+    %32:bool = eq %29, %31
+    if %32 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %33:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
         %34:i32 = load %33
         %35:f32 = convert %34
-        %36:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:vec4<f32> = construct %32, %35, %38, %41
-        store %x_GLF_color, %42
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:f32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:f32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %46:i32 = load %45
+        %47:f32 = convert %46
+        %48:vec4<f32> = construct %36, %40, %44, %47
+        store %x_GLF_color, %48
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %43:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %44:i32 = load %43
-        %45:f32 = convert %44
-        %46:vec4<f32> = construct %45
-        store %x_GLF_color, %46
+      $B7: {  # false
+        %49:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %50:i32 = load %49
+        %51:f32 = convert %50
+        %52:vec4<f32> = construct %51
+        store %x_GLF_color, %52
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+    %55:void = call %main_1
+    %56:vec4<f32> = load %x_GLF_color
+    %57:main_out = construct %56
+    ret %57
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.msl
index 7100815..dcb7d6b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitcount/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,94 +20,114 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f1_ = func():i32 -> %b2 {
-  %b2 = block {
+%f1_ = func():i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 256i
-    %x_65:f32 = load_vector_element %gl_FragCoord, 1u
-    %9:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_67:f32 = load %9
-    %11:bool = gt %x_65, %x_67
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_71:i32 = load %a
-        %13:i32 = add %x_71, 1i
-        store %a, %13
+    %8:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_65:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_67:f32 = let %11
+    %13:bool = gt %x_65, %x_67
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:i32 = load %a
+        %x_71:i32 = let %14
+        %16:i32 = add %x_71, 1i
+        store %a, %16
         exit_if  # if_1
       }
     }
-    %x_73:i32 = load %a
-    %15:i32 = countOneBits %x_73
-    store %i, %15
-    %x_75:i32 = load %i
-    %17:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-    %x_77:i32 = load %17
-    %19:bool = lt %x_75, %x_77
-    if %19 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %20:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_82:i32 = load %20
+    %17:i32 = load %a
+    %x_73:i32 = let %17
+    %19:i32 = countOneBits %x_73
+    store %i, %19
+    %20:i32 = load %i
+    %x_75:i32 = let %20
+    %22:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+    %23:i32 = load %22
+    %x_77:i32 = let %23
+    %25:bool = lt %x_75, %x_77
+    if %25 [t: $B4] {  # if_2
+      $B4: {  # true
+        %26:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %27:i32 = load %26
+        %x_82:i32 = let %27
         ret %x_82
       }
     }
-    %x_83:i32 = load %i
+    %29:i32 = load %i
+    %x_83:i32 = let %29
     ret %x_83
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %a_1:ptr<function, i32, read_write> = var
-    %x_38:i32 = call %f1_
+    %33:i32 = call %f1_
+    %x_38:i32 = let %33
     store %a_1, %x_38
-    %x_39:i32 = load %a_1
-    %27:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-    %x_41:i32 = load %27
-    %29:bool = eq %x_39, %x_41
-    if %29 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %30:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_47:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_50:i32 = load %32
-        %34:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_53:i32 = load %34
-        %36:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_56:i32 = load %36
-        %38:f32 = convert %x_47
-        %39:f32 = convert %x_50
-        %40:f32 = convert %x_53
-        %41:f32 = convert %x_56
-        %42:vec4<f32> = construct %38, %39, %40, %41
-        store %x_GLF_color, %42
+    %35:i32 = load %a_1
+    %x_39:i32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+    %38:i32 = load %37
+    %x_41:i32 = let %38
+    %40:bool = eq %x_39, %x_41
+    if %40 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %41:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %42:i32 = load %41
+        %x_47:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %45:i32 = load %44
+        %x_50:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %48:i32 = load %47
+        %x_53:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %51:i32 = load %50
+        %x_56:i32 = let %51
+        %53:f32 = convert %x_47
+        %54:f32 = let %53
+        %55:f32 = convert %x_50
+        %56:f32 = let %55
+        %57:f32 = convert %x_53
+        %58:f32 = let %57
+        %59:f32 = convert %x_56
+        %60:vec4<f32> = construct %54, %56, %58, %59
+        store %x_GLF_color, %60
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %43:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_60:i32 = load %43
-        %x_61:f32 = convert %x_60
-        %46:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
-        store %x_GLF_color, %46
+      $B7: {  # false
+        %61:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %62:i32 = load %61
+        %x_60:i32 = let %62
+        %64:f32 = convert %x_60
+        %x_61:f32 = let %64
+        %66:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
+        store %x_GLF_color, %66
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+    %69:void = call %main_1
+    %70:vec4<f32> = load %x_GLF_color
+    %71:main_out = construct %70
+    ret %71
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.msl
index 8dc4287..f9f3ca5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_28:ptr<function, i32, read_write> = var
     %x_31:ptr<function, i32, read_write> = var
     %x_29:ptr<function, i32, read_write> = var
@@ -28,19 +28,19 @@
     %10:i32 = load %9
     store %x_28, %10
     store %x_31, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_32:ptr<function, i32, read_write> = var
         %12:i32 = load %x_28
         store %x_42, %12
         %13:i32 = load %x_31
         %14:i32 = sub %x_24, 1i
         %15:bool = lte %13, %14
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -51,16 +51,16 @@
         %19:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
         %20:i32 = load %19
         %21:bool = eq %20, 1i
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %21 [t: $B7] {  # if_2
+          $B7: {  # true
             %22:i32 = load %x_29
             store %x_42, %22
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %23:i32 = load %x_31
         %24:i32 = add %23, 1i
         store %x_32, %24
@@ -68,43 +68,45 @@
         store %x_28, %25
         %26:i32 = load %x_32
         store %x_31, %26
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %27:i32 = load %x_42
     %28:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
     %29:i32 = load %28
     %30:bool = eq %27, %29
-    if %30 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    if %30 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         %31:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
         %32:i32 = load %31
-        %x_51:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %35:i32 = load %34
-        %x_54:f32 = convert %35
-        %37:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
-        store %x_GLF_color, %37
+        %33:f32 = convert %32
+        %x_51:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %x_54:f32 = let %37
+        %39:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
+        store %x_GLF_color, %39
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %40
-        store %x_GLF_color, %41
+      $B9: {  # false
+        %40:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %42
+        store %x_GLF_color, %43
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.msl
index 354cb39..08eda31 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitfieldreverse-loop-limit-underflow/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_28:ptr<function, i32, read_write> = var
     %x_29:ptr<function, i32, read_write> = var
     %x_28_phi:ptr<function, i32, read_write> = var
@@ -26,88 +26,100 @@
     %x_42_phi:ptr<function, i32, read_write> = var
     %x_24:i32 = let -2147483648i
     %10:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-    %x_26:i32 = load %10
+    %11:i32 = load %10
+    %x_26:i32 = let %11
     store %x_28_phi, %x_26
     store %x_31_phi, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_32:ptr<function, i32, read_write> = var
-        %13:i32 = load %x_28_phi
-        store %x_28, %13
-        %x_31:i32 = load %x_31_phi
-        %15:i32 = load %x_28
-        store %x_42_phi, %15
-        %16:i32 = sub %x_24, 1i
-        %17:bool = lte %x_31, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %14:i32 = load %x_28_phi
+        store %x_28, %14
+        %15:i32 = load %x_31_phi
+        %x_31:i32 = let %15
+        %17:i32 = load %x_28
+        store %x_42_phi, %17
+        %18:i32 = sub %x_24, 1i
+        %19:bool = lte %x_31, %18
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %18:i32 = load %x_28
-        %19:i32 = bitcast %x_31
-        %20:i32 = add %18, %19
-        %21:i32 = bitcast %20
-        store %x_29, %21
-        %22:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_38:i32 = load %22
-        %24:bool = eq %x_38, 1i
-        if %24 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %25:i32 = load %x_29
-            store %x_42_phi, %25
+        %20:i32 = load %x_28
+        %21:i32 = let %20
+        %22:i32 = bitcast %x_31
+        %23:i32 = add %21, %22
+        %24:i32 = bitcast %23
+        store %x_29, %24
+        %25:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %26:i32 = load %25
+        %x_38:i32 = let %26
+        %28:bool = eq %x_38, 1i
+        if %28 [t: $B7] {  # if_2
+          $B7: {  # true
+            %29:i32 = load %x_29
+            store %x_42_phi, %29
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %26:i32 = add %x_31, 1i
-        store %x_32, %26
-        %27:i32 = load %x_29
-        store %x_28_phi, %27
-        %28:i32 = load %x_32
-        store %x_31_phi, %28
-        next_iteration %b3
+      $B4: {  # continuing
+        %30:i32 = add %x_31, 1i
+        store %x_32, %30
+        %31:i32 = load %x_29
+        store %x_28_phi, %31
+        %32:i32 = load %x_32
+        store %x_31_phi, %32
+        next_iteration  # -> $B3
       }
     }
-    %x_42:i32 = load %x_42_phi
-    %30:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-    %x_44:i32 = load %30
-    %32:bool = eq %x_42, %x_44
-    if %32 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %33:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_50:i32 = load %33
-        %x_51:f32 = convert %x_50
-        %36:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_53:i32 = load %36
-        %x_54:f32 = convert %x_53
-        %39:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
-        store %x_GLF_color, %39
+    %33:i32 = load %x_42_phi
+    %x_42:i32 = let %33
+    %35:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+    %36:i32 = load %35
+    %x_44:i32 = let %36
+    %38:bool = eq %x_42, %x_44
+    if %38 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %39:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %40:i32 = load %39
+        %x_50:i32 = let %40
+        %42:f32 = convert %x_50
+        %x_51:f32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %45:i32 = load %44
+        %x_53:i32 = let %45
+        %47:f32 = convert %x_53
+        %x_54:f32 = let %47
+        %49:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
+        store %x_GLF_color, %49
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_57:i32 = load %40
-        %x_58:f32 = convert %x_57
-        %43:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-        store %x_GLF_color, %43
+      $B9: {  # false
+        %50:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %51:i32 = load %50
+        %x_57:i32 = let %51
+        %53:f32 = convert %x_57
+        %x_58:f32 = let %53
+        %55:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+        store %x_GLF_color, %55
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.msl
index b37552a..22d5a9d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf2 = struct @align(4) {
   zero:f32 @offset(0)
 }
 
@@ -24,15 +24,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %x_32:ptr<function, i32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u
@@ -40,14 +40,14 @@
     %10:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
     %11:f32 = load %10
     %12:bool = lt %9, %11
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %13:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %14:i32 = load %13
         store %x_32, %14
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %15:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %16:i32 = load %15
         store %x_32, %16
@@ -63,42 +63,45 @@
     %22:i32 = load %21
     %23:i32 = complement %22
     %24:bool = eq %20, %23
-    if %24 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    if %24 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         %25:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %26:i32 = load %25
         %27:f32 = convert %26
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:vec4<f32> = construct %27, %30, %33, %36
-        store %x_GLF_color, %37
+        %28:f32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:f32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:vec4<f32> = construct %28, %32, %36, %39
+        store %x_GLF_color, %40
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %40
-        store %x_GLF_color, %41
+      $B6: {  # false
+        %41:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:vec4<f32> = construct %43
+        store %x_GLF_color, %44
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %46:void = call %main_1
+    %47:vec4<f32> = load %x_GLF_color
+    %48:main_out = construct %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.msl
index 412cb3d..c81e042 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-bitwise-inverse-uniform-condition/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf2 = struct @align(4) {
   zero:f32 @offset(0)
 }
 
@@ -24,81 +24,97 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %x_32:ptr<function, i32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_34:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_36:f32 = load %10
-    %12:bool = lt %x_34, %x_36
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %13:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_42:i32 = load %13
+    %9:f32 = load %8
+    %x_34:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %12:f32 = load %11
+    %x_36:f32 = let %12
+    %14:bool = lt %x_34, %x_36
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %15:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %16:i32 = load %15
+        %x_42:i32 = let %16
         store %x_32, %x_42
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %15:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_44:i32 = load %15
+      $B4: {  # false
+        %18:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %19:i32 = load %18
+        %x_44:i32 = let %19
         store %x_32, %x_44
         exit_if  # if_1
       }
     }
-    %x_45:i32 = load %x_32
-    %18:i32 = or %x_45, 1i
-    %19:i32 = complement %18
-    store %a, %19
-    %x_48:i32 = load %a
-    %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_50:i32 = load %21
-    %23:i32 = complement %x_50
-    %24:bool = eq %x_48, %23
-    if %24 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_57:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_60:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_63:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_66:i32 = load %31
-        %33:f32 = convert %x_57
-        %34:f32 = convert %x_60
-        %35:f32 = convert %x_63
-        %36:f32 = convert %x_66
-        %37:vec4<f32> = construct %33, %34, %35, %36
-        store %x_GLF_color, %37
+    %21:i32 = load %x_32
+    %x_45:i32 = let %21
+    %23:i32 = or %x_45, 1i
+    %24:i32 = complement %23
+    store %a, %24
+    %25:i32 = load %a
+    %x_48:i32 = let %25
+    %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %28:i32 = load %27
+    %x_50:i32 = let %28
+    %30:i32 = complement %x_50
+    %31:bool = eq %x_48, %30
+    if %31 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
+        %32:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_57:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %36:i32 = load %35
+        %x_60:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %39:i32 = load %38
+        %x_63:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %42:i32 = load %41
+        %x_66:i32 = let %42
+        %44:f32 = convert %x_57
+        %45:f32 = let %44
+        %46:f32 = convert %x_60
+        %47:f32 = let %46
+        %48:f32 = convert %x_63
+        %49:f32 = let %48
+        %50:f32 = convert %x_66
+        %51:vec4<f32> = construct %45, %47, %49, %50
+        store %x_GLF_color, %51
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_70:i32 = load %38
-        %x_71:f32 = convert %x_70
-        %41:vec4<f32> = construct %x_71, %x_71, %x_71, %x_71
-        store %x_GLF_color, %41
+      $B6: {  # false
+        %52:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %53:i32 = load %52
+        %x_70:i32 = let %53
+        %55:f32 = convert %x_70
+        %x_71:f32 = let %55
+        %57:vec4<f32> = construct %x_71, %x_71, %x_71, %x_71
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.msl
index efdd3b1..c5bff06 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,250 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %c:ptr<function, vec4<f32>, read_write> = var
+    %a:ptr<function, i32, read_write> = var
+    %i1:ptr<function, i32, read_write> = var
+    %i2:ptr<function, i32, read_write> = var
+    %i3:ptr<function, i32, read_write> = var
+    %i4:ptr<function, i32, read_write> = var
+    %i5:ptr<function, i32, read_write> = var
+    %i6:ptr<function, i32, read_write> = var
+    %i7:ptr<function, i32, read_write> = var
+    %i8_1:ptr<function, i32, read_write> = var
+    store %c, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
+    store %a, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %14:i32 = load %a
+            %x_46:i32 = let %14
+            store_vector_element %c, %x_46, 1.0f
+            store %i1, 0i
+            loop [b: $B7, c: $B8] {  # loop_3
+              $B7: {  # body
+                %16:i32 = load %i1
+                %17:bool = lt %16, 1i
+                if %17 [t: $B9, f: $B10] {  # if_1
+                  $B9: {  # true
+                    exit_if  # if_1
+                  }
+                  $B10: {  # false
+                    exit_loop  # loop_3
+                  }
+                }
+                store %i2, 0i
+                loop [b: $B11, c: $B12] {  # loop_4
+                  $B11: {  # body
+                    %18:i32 = load %i2
+                    %19:bool = lt %18, 1i
+                    if %19 [t: $B13, f: $B14] {  # if_2
+                      $B13: {  # true
+                        exit_if  # if_2
+                      }
+                      $B14: {  # false
+                        exit_loop  # loop_4
+                      }
+                    }
+                    store %i3, 0i
+                    loop [b: $B15, c: $B16] {  # loop_5
+                      $B15: {  # body
+                        %20:i32 = load %i3
+                        %21:bool = lt %20, 1i
+                        if %21 [t: $B17, f: $B18] {  # if_3
+                          $B17: {  # true
+                            exit_if  # if_3
+                          }
+                          $B18: {  # false
+                            exit_loop  # loop_5
+                          }
+                        }
+                        store %i4, 0i
+                        loop [b: $B19, c: $B20] {  # loop_6
+                          $B19: {  # body
+                            %22:i32 = load %i4
+                            %23:bool = lt %22, 1i
+                            if %23 [t: $B21, f: $B22] {  # if_4
+                              $B21: {  # true
+                                exit_if  # if_4
+                              }
+                              $B22: {  # false
+                                exit_loop  # loop_6
+                              }
+                            }
+                            store %i5, 0i
+                            loop [b: $B23, c: $B24] {  # loop_7
+                              $B23: {  # body
+                                %24:i32 = load %i5
+                                %25:bool = lt %24, 1i
+                                if %25 [t: $B25, f: $B26] {  # if_5
+                                  $B25: {  # true
+                                    exit_if  # if_5
+                                  }
+                                  $B26: {  # false
+                                    exit_loop  # loop_7
+                                  }
+                                }
+                                store %i6, 0i
+                                loop [b: $B27, c: $B28] {  # loop_8
+                                  $B27: {  # body
+                                    %26:i32 = load %i6
+                                    %27:bool = lt %26, 1i
+                                    if %27 [t: $B29, f: $B30] {  # if_6
+                                      $B29: {  # true
+                                        exit_if  # if_6
+                                      }
+                                      $B30: {  # false
+                                        exit_loop  # loop_8
+                                      }
+                                    }
+                                    store %i7, 0i
+                                    loop [b: $B31, c: $B32] {  # loop_9
+                                      $B31: {  # body
+                                        %28:i32 = load %i7
+                                        %29:bool = lt %28, 1i
+                                        if %29 [t: $B33, f: $B34] {  # if_7
+                                          $B33: {  # true
+                                            exit_if  # if_7
+                                          }
+                                          $B34: {  # false
+                                            exit_loop  # loop_9
+                                          }
+                                        }
+                                        store %i8_1, 0i
+                                        loop [b: $B35, c: $B36] {  # loop_10
+                                          $B35: {  # body
+                                            %30:i32 = load %i8_1
+                                            %31:bool = lt %30, 17i
+                                            if %31 [t: $B37, f: $B38] {  # if_8
+                                              $B37: {  # true
+                                                exit_if  # if_8
+                                              }
+                                              $B38: {  # false
+                                                exit_loop  # loop_10
+                                              }
+                                            }
+                                            %32:i32 = load %a
+                                            %33:i32 = add %32, 1i
+                                            store %a, %33
+                                            continue  # -> $B36
+                                          }
+                                          $B36: {  # continuing
+                                            %34:i32 = load %i8_1
+                                            %35:i32 = add %34, 1i
+                                            store %i8_1, %35
+                                            next_iteration  # -> $B35
+                                          }
+                                        }
+                                        continue  # -> $B32
+                                      }
+                                      $B32: {  # continuing
+                                        %36:i32 = load %i7
+                                        %37:i32 = add %36, 1i
+                                        store %i7, %37
+                                        next_iteration  # -> $B31
+                                      }
+                                    }
+                                    continue  # -> $B28
+                                  }
+                                  $B28: {  # continuing
+                                    %38:i32 = load %i6
+                                    %39:i32 = add %38, 1i
+                                    store %i6, %39
+                                    next_iteration  # -> $B27
+                                  }
+                                }
+                                continue  # -> $B24
+                              }
+                              $B24: {  # continuing
+                                %40:i32 = load %i5
+                                %41:i32 = add %40, 1i
+                                store %i5, %41
+                                next_iteration  # -> $B23
+                              }
+                            }
+                            continue  # -> $B20
+                          }
+                          $B20: {  # continuing
+                            %42:i32 = load %i4
+                            %43:i32 = add %42, 1i
+                            store %i4, %43
+                            next_iteration  # -> $B19
+                          }
+                        }
+                        continue  # -> $B16
+                      }
+                      $B16: {  # continuing
+                        %44:i32 = load %i3
+                        %45:i32 = add %44, 1i
+                        store %i3, %45
+                        next_iteration  # -> $B15
+                      }
+                    }
+                    continue  # -> $B12
+                  }
+                  $B12: {  # continuing
+                    %46:i32 = load %i2
+                    %47:i32 = add %46, 1i
+                    store %i2, %47
+                    next_iteration  # -> $B11
+                  }
+                }
+                continue  # -> $B8
+              }
+              $B8: {  # continuing
+                %48:i32 = load %i1
+                %49:i32 = add %48, 1i
+                store %i1, %49
+                next_iteration  # -> $B7
+              }
+            }
+            continue  # -> $B6
+          }
+          $B6: {  # continuing
+            %50:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_123:f32 = let %50
+            %52:bool = lt %x_123, -1.0f
+            %53:bool = eq %52, false
+            break_if %53  # -> [t: exit_loop loop_2, f: $B5]
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %54:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_126:f32 = let %54
+        %56:bool = lt %x_126, -1.0f
+        %57:bool = eq %56, false
+        break_if %57  # -> [t: exit_loop loop_1, f: $B3]
+      }
+    }
+    %58:vec4<f32> = load %c
+    store %x_GLF_color, %58
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B39: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.msl
index efdd3b1..321bd02 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-blockfrequency-several-for-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,268 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %c:ptr<function, vec4<f32>, read_write> = var
+    %a:ptr<function, i32, read_write> = var
+    %i1:ptr<function, i32, read_write> = var
+    %i2:ptr<function, i32, read_write> = var
+    %i3:ptr<function, i32, read_write> = var
+    %i4:ptr<function, i32, read_write> = var
+    %i5:ptr<function, i32, read_write> = var
+    %i6:ptr<function, i32, read_write> = var
+    %i7:ptr<function, i32, read_write> = var
+    %i8_1:ptr<function, i32, read_write> = var
+    store %c, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
+    store %a, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %14:i32 = load %a
+            %x_46:i32 = let %14
+            store_vector_element %c, %x_46, 1.0f
+            store %i1, 0i
+            loop [b: $B7, c: $B8] {  # loop_3
+              $B7: {  # body
+                %16:i32 = load %i1
+                %x_52:i32 = let %16
+                %18:bool = lt %x_52, 1i
+                if %18 [t: $B9, f: $B10] {  # if_1
+                  $B9: {  # true
+                    exit_if  # if_1
+                  }
+                  $B10: {  # false
+                    exit_loop  # loop_3
+                  }
+                }
+                store %i2, 0i
+                loop [b: $B11, c: $B12] {  # loop_4
+                  $B11: {  # body
+                    %19:i32 = load %i2
+                    %x_59:i32 = let %19
+                    %21:bool = lt %x_59, 1i
+                    if %21 [t: $B13, f: $B14] {  # if_2
+                      $B13: {  # true
+                        exit_if  # if_2
+                      }
+                      $B14: {  # false
+                        exit_loop  # loop_4
+                      }
+                    }
+                    store %i3, 0i
+                    loop [b: $B15, c: $B16] {  # loop_5
+                      $B15: {  # body
+                        %22:i32 = load %i3
+                        %x_66:i32 = let %22
+                        %24:bool = lt %x_66, 1i
+                        if %24 [t: $B17, f: $B18] {  # if_3
+                          $B17: {  # true
+                            exit_if  # if_3
+                          }
+                          $B18: {  # false
+                            exit_loop  # loop_5
+                          }
+                        }
+                        store %i4, 0i
+                        loop [b: $B19, c: $B20] {  # loop_6
+                          $B19: {  # body
+                            %25:i32 = load %i4
+                            %x_73:i32 = let %25
+                            %27:bool = lt %x_73, 1i
+                            if %27 [t: $B21, f: $B22] {  # if_4
+                              $B21: {  # true
+                                exit_if  # if_4
+                              }
+                              $B22: {  # false
+                                exit_loop  # loop_6
+                              }
+                            }
+                            store %i5, 0i
+                            loop [b: $B23, c: $B24] {  # loop_7
+                              $B23: {  # body
+                                %28:i32 = load %i5
+                                %x_80:i32 = let %28
+                                %30:bool = lt %x_80, 1i
+                                if %30 [t: $B25, f: $B26] {  # if_5
+                                  $B25: {  # true
+                                    exit_if  # if_5
+                                  }
+                                  $B26: {  # false
+                                    exit_loop  # loop_7
+                                  }
+                                }
+                                store %i6, 0i
+                                loop [b: $B27, c: $B28] {  # loop_8
+                                  $B27: {  # body
+                                    %31:i32 = load %i6
+                                    %x_87:i32 = let %31
+                                    %33:bool = lt %x_87, 1i
+                                    if %33 [t: $B29, f: $B30] {  # if_6
+                                      $B29: {  # true
+                                        exit_if  # if_6
+                                      }
+                                      $B30: {  # false
+                                        exit_loop  # loop_8
+                                      }
+                                    }
+                                    store %i7, 0i
+                                    loop [b: $B31, c: $B32] {  # loop_9
+                                      $B31: {  # body
+                                        %34:i32 = load %i7
+                                        %x_94:i32 = let %34
+                                        %36:bool = lt %x_94, 1i
+                                        if %36 [t: $B33, f: $B34] {  # if_7
+                                          $B33: {  # true
+                                            exit_if  # if_7
+                                          }
+                                          $B34: {  # false
+                                            exit_loop  # loop_9
+                                          }
+                                        }
+                                        store %i8_1, 0i
+                                        loop [b: $B35, c: $B36] {  # loop_10
+                                          $B35: {  # body
+                                            %37:i32 = load %i8_1
+                                            %x_101:i32 = let %37
+                                            %39:bool = lt %x_101, 17i
+                                            if %39 [t: $B37, f: $B38] {  # if_8
+                                              $B37: {  # true
+                                                exit_if  # if_8
+                                              }
+                                              $B38: {  # false
+                                                exit_loop  # loop_10
+                                              }
+                                            }
+                                            %40:i32 = load %a
+                                            %x_104:i32 = let %40
+                                            %42:i32 = add %x_104, 1i
+                                            store %a, %42
+                                            continue  # -> $B36
+                                          }
+                                          $B36: {  # continuing
+                                            %43:i32 = load %i8_1
+                                            %x_106:i32 = let %43
+                                            %45:i32 = add %x_106, 1i
+                                            store %i8_1, %45
+                                            next_iteration  # -> $B35
+                                          }
+                                        }
+                                        continue  # -> $B32
+                                      }
+                                      $B32: {  # continuing
+                                        %46:i32 = load %i7
+                                        %x_108:i32 = let %46
+                                        %48:i32 = add %x_108, 1i
+                                        store %i7, %48
+                                        next_iteration  # -> $B31
+                                      }
+                                    }
+                                    continue  # -> $B28
+                                  }
+                                  $B28: {  # continuing
+                                    %49:i32 = load %i6
+                                    %x_110:i32 = let %49
+                                    %51:i32 = add %x_110, 1i
+                                    store %i6, %51
+                                    next_iteration  # -> $B27
+                                  }
+                                }
+                                continue  # -> $B24
+                              }
+                              $B24: {  # continuing
+                                %52:i32 = load %i5
+                                %x_112:i32 = let %52
+                                %54:i32 = add %x_112, 1i
+                                store %i5, %54
+                                next_iteration  # -> $B23
+                              }
+                            }
+                            continue  # -> $B20
+                          }
+                          $B20: {  # continuing
+                            %55:i32 = load %i4
+                            %x_114:i32 = let %55
+                            %57:i32 = add %x_114, 1i
+                            store %i4, %57
+                            next_iteration  # -> $B19
+                          }
+                        }
+                        continue  # -> $B16
+                      }
+                      $B16: {  # continuing
+                        %58:i32 = load %i3
+                        %x_116:i32 = let %58
+                        %60:i32 = add %x_116, 1i
+                        store %i3, %60
+                        next_iteration  # -> $B15
+                      }
+                    }
+                    continue  # -> $B12
+                  }
+                  $B12: {  # continuing
+                    %61:i32 = load %i2
+                    %x_118:i32 = let %61
+                    %63:i32 = add %x_118, 1i
+                    store %i2, %63
+                    next_iteration  # -> $B11
+                  }
+                }
+                continue  # -> $B8
+              }
+              $B8: {  # continuing
+                %64:i32 = load %i1
+                %x_120:i32 = let %64
+                %66:i32 = add %x_120, 1i
+                store %i1, %66
+                next_iteration  # -> $B7
+              }
+            }
+            continue  # -> $B6
+          }
+          $B6: {  # continuing
+            %67:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_123:f32 = let %67
+            %69:bool = lt %x_123, -1.0f
+            %70:bool = eq %69, false
+            break_if %70  # -> [t: exit_loop loop_2, f: $B5]
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %71:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_126:f32 = let %71
+        %73:bool = lt %x_126, -1.0f
+        %74:bool = eq %73, false
+        break_if %74  # -> [t: exit_loop loop_1, f: $B3]
+      }
+    }
+    %75:vec4<f32> = load %c
+    %x_128:vec4<f32> = let %75
+    store %x_GLF_color, %x_128
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B39: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    ret %81
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.msl
index 2b69a06..3ac89bb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %sums:ptr<function, array<f32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -38,215 +38,231 @@
     %x_158:ptr<function, bool, read_write> = var
     %x_159:ptr<function, bool, read_write> = var
     %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_16:i32 = load %14
-    %16:ptr<function, f32, read_write> = access %sums, %x_16
-    %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %18:f32 = load %17
-    %19:f32 = negation %18
-    store %16, %19
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_18:i32 = load %20
-    %22:ptr<function, f32, read_write> = access %sums, %x_18
-    %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %24:f32 = load %23
-    %25:f32 = negation %24
-    store %22, %25
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %27:i32 = load %26
-    store %a, %27
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %28:i32 = load %a
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %30:i32 = load %29
-        %31:bool = lt %28, %30
-        if %31 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %15:i32 = load %14
+    %x_16:i32 = let %15
+    %17:ptr<function, f32, read_write> = access %sums, %x_16
+    %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %19:f32 = load %18
+    %20:f32 = negation %19
+    store %17, %20
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %22:i32 = load %21
+    %x_18:i32 = let %22
+    %24:ptr<function, f32, read_write> = access %sums, %x_18
+    %25:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %26:f32 = load %25
+    %27:f32 = negation %26
+    store %24, %27
+    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %29:i32 = load %28
+    store %a, %29
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %30:i32 = load %a
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %32:i32 = load %31
+        %33:bool = lt %30, %32
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %33:i32 = load %32
-        store %b, %33
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %34:i32 = load %b
-            %35:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %36:i32 = load %35
-            %37:bool = lt %34, %36
-            if %37 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %35:i32 = load %34
+        store %b, %35
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %36:i32 = load %b
+            %37:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %38:i32 = load %37
+            %39:bool = lt %36, %38
+            if %39 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %39:i32 = load %38
-            store %c, %39
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %40:i32 = load %c
-                %41:i32 = load %a
-                %42:bool = lte %40, %41
-                if %42 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %41:i32 = load %40
+            store %c, %41
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %42:i32 = load %c
+                %43:i32 = load %a
+                %44:bool = lte %42, %43
+                if %44 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %44:i32 = load %43
-                store %d, %44
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %45:i32 = load %d
-                    %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-                    %47:i32 = load %46
-                    %48:bool = lt %45, %47
-                    if %48 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                %45:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %46:i32 = load %45
+                store %d, %46
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %47:i32 = load %d
+                    %48:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+                    %49:i32 = load %48
+                    %50:bool = lt %47, %49
+                    if %50 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_31:i32 = load %a
-                    %50:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %51:i32 = load %50
-                    %x_125:f32 = convert %51
-                    %x_33:i32 = load %c
-                    %54:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %x_34:i32 = load %54
-                    %56:vec2<f32> = construct %x_125, 0.0f
-                    %57:vec2<f32> = construct 0.0f, %x_125
-                    %58:mat2x2<f32> = construct %56, %57
-                    store %indexable, %58
-                    %59:ptr<function, f32, read_write> = access %sums, %x_31
-                    %60:ptr<function, vec2<f32>, read_write> = access %indexable, %x_33
-                    %61:f32 = load_vector_element %60, %x_34
-                    store %59, %61
-                    %x_35:i32 = load %a
-                    %63:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %64:i32 = load %63
-                    %x_134:f32 = convert %64
-                    %x_37:i32 = load %c
-                    %67:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %x_38:i32 = load %67
-                    %69:vec2<f32> = construct %x_134, 0.0f
-                    %70:vec2<f32> = construct 0.0f, %x_134
-                    %71:mat2x2<f32> = construct %69, %70
-                    store %indexable_1, %71
-                    %72:ptr<function, f32, read_write> = access %sums, %x_35
-                    %73:ptr<function, f32, read_write> = access %sums, %x_35
-                    %74:f32 = load %73
-                    %75:ptr<function, vec2<f32>, read_write> = access %indexable_1, %x_37
-                    %76:f32 = load_vector_element %75, %x_38
-                    %77:f32 = add %74, %76
-                    store %72, %77
-                    continue %b16
+                    %51:i32 = load %a
+                    %x_31:i32 = let %51
+                    %53:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %54:i32 = load %53
+                    %55:f32 = convert %54
+                    %x_125:f32 = let %55
+                    %57:i32 = load %c
+                    %x_33:i32 = let %57
+                    %59:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %60:i32 = load %59
+                    %x_34:i32 = let %60
+                    %62:vec2<f32> = construct %x_125, 0.0f
+                    %63:vec2<f32> = let %62
+                    %64:vec2<f32> = construct 0.0f, %x_125
+                    %65:mat2x2<f32> = construct %63, %64
+                    store %indexable, %65
+                    %66:ptr<function, f32, read_write> = access %sums, %x_31
+                    %67:ptr<function, vec2<f32>, read_write> = access %indexable, %x_33
+                    %68:f32 = load_vector_element %67, %x_34
+                    store %66, %68
+                    %69:i32 = load %a
+                    %x_35:i32 = let %69
+                    %71:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %72:i32 = load %71
+                    %73:f32 = convert %72
+                    %x_134:f32 = let %73
+                    %75:i32 = load %c
+                    %x_37:i32 = let %75
+                    %77:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %78:i32 = load %77
+                    %x_38:i32 = let %78
+                    %80:vec2<f32> = construct %x_134, 0.0f
+                    %81:vec2<f32> = let %80
+                    %82:vec2<f32> = construct 0.0f, %x_134
+                    %83:mat2x2<f32> = construct %81, %82
+                    store %indexable_1, %83
+                    %84:ptr<function, f32, read_write> = access %sums, %x_35
+                    %85:ptr<function, f32, read_write> = access %sums, %x_35
+                    %86:f32 = load %85
+                    %87:ptr<function, vec2<f32>, read_write> = access %indexable_1, %x_37
+                    %88:f32 = load_vector_element %87, %x_38
+                    %89:f32 = add %86, %88
+                    store %84, %89
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %78:i32 = load %d
-                    %79:i32 = add %78, 1i
-                    store %d, %79
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %90:i32 = load %d
+                    %91:i32 = add %90, 1i
+                    store %d, %91
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %80:i32 = load %c
-                %81:i32 = add %80, 1i
-                store %c, %81
-                next_iteration %b11
+              $B12: {  # continuing
+                %92:i32 = load %c
+                %93:i32 = add %92, 1i
+                store %c, %93
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %82:i32 = load %b
-            %83:i32 = add %82, 1i
-            store %b, %83
-            next_iteration %b7
+          $B8: {  # continuing
+            %94:i32 = load %b
+            %95:i32 = add %94, 1i
+            store %b, %95
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %84:i32 = load %a
-        %85:i32 = add %84, 1i
-        store %a, %85
-        next_iteration %b3
+      $B4: {  # continuing
+        %96:i32 = load %a
+        %97:i32 = add %96, 1i
+        store %a, %97
+        next_iteration  # -> $B3
       }
     }
-    %86:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %87:i32 = load %86
-    %88:ptr<function, f32, read_write> = access %sums, %87
-    %89:f32 = load %88
-    %90:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %91:f32 = load %90
-    %x_150:bool = eq %89, %91
+    %98:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %99:i32 = load %98
+    %100:ptr<function, f32, read_write> = access %sums, %99
+    %101:f32 = load %100
+    %102:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %103:f32 = load %102
+    %104:bool = eq %101, %103
+    %x_150:bool = let %104
     store %x_159, %x_150
-    if %x_150 [t: %b19] {  # if_5
-      %b19 = block {  # true
-        %93:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %94:i32 = load %93
-        %95:ptr<function, f32, read_write> = access %sums, %94
-        %96:f32 = load %95
-        %97:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %98:f32 = load %97
-        %99:bool = eq %96, %98
-        store %x_158, %99
-        %100:bool = load %x_158
-        store %x_159, %100
+    if %x_150 [t: $B19] {  # if_5
+      $B19: {  # true
+        %106:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %107:i32 = load %106
+        %108:ptr<function, f32, read_write> = access %sums, %107
+        %109:f32 = load %108
+        %110:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %111:f32 = load %110
+        %112:bool = eq %109, %111
+        store %x_158, %112
+        %113:bool = load %x_158
+        store %x_159, %113
         exit_if  # if_5
       }
     }
-    %101:bool = load %x_159
-    if %101 [t: %b20, f: %b21] {  # if_6
-      %b20 = block {  # true
-        %102:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %103:i32 = load %102
-        %104:f32 = convert %103
-        %105:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %106:i32 = load %105
-        %107:f32 = convert %106
-        %108:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %109:i32 = load %108
-        %110:f32 = convert %109
-        %111:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %112:i32 = load %111
-        %113:f32 = convert %112
-        %114:vec4<f32> = construct %104, %107, %110, %113
-        store %x_GLF_color, %114
-        exit_if  # if_6
-      }
-      %b21 = block {  # false
-        %115:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %114:bool = load %x_159
+    if %114 [t: $B20, f: $B21] {  # if_6
+      $B20: {  # true
+        %115:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %116:i32 = load %115
         %117:f32 = convert %116
-        %118:vec4<f32> = construct %117
-        store %x_GLF_color, %118
+        %118:f32 = let %117
+        %119:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %120:i32 = load %119
+        %121:f32 = convert %120
+        %122:f32 = let %121
+        %123:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %124:i32 = load %123
+        %125:f32 = convert %124
+        %126:f32 = let %125
+        %127:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %128:i32 = load %127
+        %129:f32 = convert %128
+        %130:vec4<f32> = construct %118, %122, %126, %129
+        store %x_GLF_color, %130
+        exit_if  # if_6
+      }
+      $B21: {  # false
+        %131:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %132:i32 = load %131
+        %133:f32 = convert %132
+        %134:vec4<f32> = construct %133
+        store %x_GLF_color, %134
         exit_if  # if_6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b22 {
-  %b22 = block {
-    %120:void = call %main_1
-    %121:vec4<f32> = load %x_GLF_color
-    %122:main_out = construct %121
-    ret %122
+%tint_symbol = @fragment func():main_out {
+  $B22: {
+    %136:void = call %main_1
+    %137:vec4<f32> = load %x_GLF_color
+    %138:main_out = construct %137
+    ret %138
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.msl
index c9e8ed6..6955099 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-branch-probability-identity-matrix/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %sums:ptr<function, array<f32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -38,215 +38,267 @@
     %x_158:ptr<function, bool, read_write> = var
     %x_159_phi:ptr<function, bool, read_write> = var
     %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_16:i32 = load %14
-    %16:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_85:f32 = load %16
-    %18:ptr<function, f32, read_write> = access %sums, %x_16
-    %19:f32 = negation %x_85
-    store %18, %19
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_18:i32 = load %20
-    %22:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_90:f32 = load %22
-    %24:ptr<function, f32, read_write> = access %sums, %x_18
-    %25:f32 = negation %x_90
-    store %24, %25
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_19:i32 = load %26
+    %15:i32 = load %14
+    %x_16:i32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %18:f32 = load %17
+    %x_85:f32 = let %18
+    %20:ptr<function, f32, read_write> = access %sums, %x_16
+    %21:f32 = negation %x_85
+    store %20, %21
+    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %23:i32 = load %22
+    %x_18:i32 = let %23
+    %25:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %26:f32 = load %25
+    %x_90:f32 = let %26
+    %28:ptr<function, f32, read_write> = access %sums, %x_18
+    %29:f32 = negation %x_90
+    store %28, %29
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %31:i32 = load %30
+    %x_19:i32 = let %31
     store %a, %x_19
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_20:i32 = load %a
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_21:i32 = load %29
-        %31:bool = lt %x_20, %x_21
-        if %31 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %33:i32 = load %a
+        %x_20:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %36:i32 = load %35
+        %x_21:i32 = let %36
+        %38:bool = lt %x_20, %x_21
+        if %38 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_22:i32 = load %32
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %40:i32 = load %39
+        %x_22:i32 = let %40
         store %b, %x_22
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_23:i32 = load %b
-            %35:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_24:i32 = load %35
-            %37:bool = lt %x_23, %x_24
-            if %37 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %42:i32 = load %b
+            %x_23:i32 = let %42
+            %44:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %45:i32 = load %44
+            %x_24:i32 = let %45
+            %47:bool = lt %x_23, %x_24
+            if %47 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_25:i32 = load %38
+            %48:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %49:i32 = load %48
+            %x_25:i32 = let %49
             store %c, %x_25
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_26:i32 = load %c
-                %x_27:i32 = load %a
-                %42:bool = lte %x_26, %x_27
-                if %42 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %51:i32 = load %c
+                %x_26:i32 = let %51
+                %53:i32 = load %a
+                %x_27:i32 = let %53
+                %55:bool = lte %x_26, %x_27
+                if %55 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %x_28:i32 = load %43
+                %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %57:i32 = load %56
+                %x_28:i32 = let %57
                 store %d, %x_28
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %x_29:i32 = load %d
-                    %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-                    %x_30:i32 = load %46
-                    %48:bool = lt %x_29, %x_30
-                    if %48 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %59:i32 = load %d
+                    %x_29:i32 = let %59
+                    %61:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+                    %62:i32 = load %61
+                    %x_30:i32 = let %62
+                    %64:bool = lt %x_29, %x_30
+                    if %64 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_31:i32 = load %a
-                    %50:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %x_32:i32 = load %50
-                    %x_125:f32 = convert %x_32
-                    %x_33:i32 = load %c
-                    %54:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %x_34:i32 = load %54
-                    %56:vec2<f32> = construct %x_125, 0.0f
-                    %57:vec2<f32> = construct 0.0f, %x_125
-                    %58:mat2x2<f32> = construct %56, %57
-                    store %indexable, %58
-                    %59:ptr<function, vec2<f32>, read_write> = access %indexable, %x_33
-                    %x_131:f32 = load_vector_element %59, %x_34
-                    %61:ptr<function, f32, read_write> = access %sums, %x_31
-                    store %61, %x_131
-                    %x_35:i32 = load %a
-                    %63:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %x_36:i32 = load %63
-                    %x_134:f32 = convert %x_36
-                    %x_37:i32 = load %c
+                    %65:i32 = load %a
+                    %x_31:i32 = let %65
                     %67:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                    %x_38:i32 = load %67
-                    %69:vec2<f32> = construct %x_134, 0.0f
-                    %70:vec2<f32> = construct 0.0f, %x_134
-                    %71:mat2x2<f32> = construct %69, %70
-                    store %indexable_1, %71
-                    %72:ptr<function, vec2<f32>, read_write> = access %indexable_1, %x_37
-                    %x_140:f32 = load_vector_element %72, %x_38
-                    %74:ptr<function, f32, read_write> = access %sums, %x_35
-                    %x_142:f32 = load %74
-                    %76:ptr<function, f32, read_write> = access %sums, %x_35
-                    %77:f32 = add %x_142, %x_140
-                    store %76, %77
-                    continue %b16
+                    %68:i32 = load %67
+                    %x_32:i32 = let %68
+                    %70:f32 = convert %x_32
+                    %x_125:f32 = let %70
+                    %72:i32 = load %c
+                    %x_33:i32 = let %72
+                    %74:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %75:i32 = load %74
+                    %x_34:i32 = let %75
+                    %77:vec2<f32> = construct %x_125, 0.0f
+                    %78:vec2<f32> = let %77
+                    %79:vec2<f32> = construct 0.0f, %x_125
+                    %80:mat2x2<f32> = construct %78, %79
+                    store %indexable, %80
+                    %81:ptr<function, vec2<f32>, read_write> = access %indexable, %x_33
+                    %82:f32 = load_vector_element %81, %x_34
+                    %x_131:f32 = let %82
+                    %84:ptr<function, f32, read_write> = access %sums, %x_31
+                    store %84, %x_131
+                    %85:i32 = load %a
+                    %x_35:i32 = let %85
+                    %87:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %88:i32 = load %87
+                    %x_36:i32 = let %88
+                    %90:f32 = convert %x_36
+                    %x_134:f32 = let %90
+                    %92:i32 = load %c
+                    %x_37:i32 = let %92
+                    %94:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                    %95:i32 = load %94
+                    %x_38:i32 = let %95
+                    %97:vec2<f32> = construct %x_134, 0.0f
+                    %98:vec2<f32> = let %97
+                    %99:vec2<f32> = construct 0.0f, %x_134
+                    %100:mat2x2<f32> = construct %98, %99
+                    store %indexable_1, %100
+                    %101:ptr<function, vec2<f32>, read_write> = access %indexable_1, %x_37
+                    %102:f32 = load_vector_element %101, %x_38
+                    %x_140:f32 = let %102
+                    %104:ptr<function, f32, read_write> = access %sums, %x_35
+                    %105:f32 = load %104
+                    %x_142:f32 = let %105
+                    %107:ptr<function, f32, read_write> = access %sums, %x_35
+                    %108:f32 = add %x_142, %x_140
+                    store %107, %108
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %x_39:i32 = load %d
-                    %79:i32 = add %x_39, 1i
-                    store %d, %79
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %109:i32 = load %d
+                    %x_39:i32 = let %109
+                    %111:i32 = add %x_39, 1i
+                    store %d, %111
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_41:i32 = load %c
-                %81:i32 = add %x_41, 1i
-                store %c, %81
-                next_iteration %b11
+              $B12: {  # continuing
+                %112:i32 = load %c
+                %x_41:i32 = let %112
+                %114:i32 = add %x_41, 1i
+                store %c, %114
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_43:i32 = load %b
-            %83:i32 = add %x_43, 1i
-            store %b, %83
-            next_iteration %b7
+          $B8: {  # continuing
+            %115:i32 = load %b
+            %x_43:i32 = let %115
+            %117:i32 = add %x_43, 1i
+            store %b, %117
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_45:i32 = load %a
-        %85:i32 = add %x_45, 1i
-        store %a, %85
-        next_iteration %b3
+      $B4: {  # continuing
+        %118:i32 = load %a
+        %x_45:i32 = let %118
+        %120:i32 = add %x_45, 1i
+        store %a, %120
+        next_iteration  # -> $B3
       }
     }
-    %86:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_47:i32 = load %86
-    %88:ptr<function, f32, read_write> = access %sums, %x_47
-    %x_147:f32 = load %88
-    %90:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_149:f32 = load %90
-    %x_150:bool = eq %x_147, %x_149
+    %121:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %122:i32 = load %121
+    %x_47:i32 = let %122
+    %124:ptr<function, f32, read_write> = access %sums, %x_47
+    %125:f32 = load %124
+    %x_147:f32 = let %125
+    %127:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %128:f32 = load %127
+    %x_149:f32 = let %128
+    %130:bool = eq %x_147, %x_149
+    %x_150:bool = let %130
     store %x_159_phi, %x_150
-    if %x_150 [t: %b19] {  # if_5
-      %b19 = block {  # true
-        %93:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_48:i32 = load %93
-        %95:ptr<function, f32, read_write> = access %sums, %x_48
-        %x_155:f32 = load %95
-        %97:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_157:f32 = load %97
-        %99:bool = eq %x_155, %x_157
-        store %x_158, %99
-        %100:bool = load %x_158
-        store %x_159_phi, %100
+    if %x_150 [t: $B19] {  # if_5
+      $B19: {  # true
+        %132:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %133:i32 = load %132
+        %x_48:i32 = let %133
+        %135:ptr<function, f32, read_write> = access %sums, %x_48
+        %136:f32 = load %135
+        %x_155:f32 = let %136
+        %138:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %139:f32 = load %138
+        %x_157:f32 = let %139
+        %141:bool = eq %x_155, %x_157
+        store %x_158, %141
+        %142:bool = load %x_158
+        store %x_159_phi, %142
         exit_if  # if_5
       }
     }
-    %x_159:bool = load %x_159_phi
-    if %x_159 [t: %b20, f: %b21] {  # if_6
-      %b20 = block {  # true
-        %102:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_49:i32 = load %102
-        %104:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_50:i32 = load %104
-        %106:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_51:i32 = load %106
-        %108:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_52:i32 = load %108
-        %110:f32 = convert %x_49
-        %111:f32 = convert %x_50
-        %112:f32 = convert %x_51
-        %113:f32 = convert %x_52
-        %114:vec4<f32> = construct %110, %111, %112, %113
-        store %x_GLF_color, %114
+    %143:bool = load %x_159_phi
+    %x_159:bool = let %143
+    if %x_159 [t: $B20, f: $B21] {  # if_6
+      $B20: {  # true
+        %145:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %146:i32 = load %145
+        %x_49:i32 = let %146
+        %148:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %149:i32 = load %148
+        %x_50:i32 = let %149
+        %151:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %152:i32 = load %151
+        %x_51:i32 = let %152
+        %154:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %155:i32 = load %154
+        %x_52:i32 = let %155
+        %157:f32 = convert %x_49
+        %158:f32 = let %157
+        %159:f32 = convert %x_50
+        %160:f32 = let %159
+        %161:f32 = convert %x_51
+        %162:f32 = let %161
+        %163:f32 = convert %x_52
+        %164:vec4<f32> = construct %158, %160, %162, %163
+        store %x_GLF_color, %164
         exit_if  # if_6
       }
-      %b21 = block {  # false
-        %115:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_53:i32 = load %115
-        %x_173:f32 = convert %x_53
-        %118:vec4<f32> = construct %x_173, %x_173, %x_173, %x_173
-        store %x_GLF_color, %118
+      $B21: {  # false
+        %165:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %166:i32 = load %165
+        %x_53:i32 = let %166
+        %168:f32 = convert %x_53
+        %x_173:f32 = let %168
+        %170:vec4<f32> = construct %x_173, %x_173, %x_173, %x_173
+        store %x_GLF_color, %170
         exit_if  # if_6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b22 {
-  %b22 = block {
-    %120:void = call %main_1
-    %121:vec4<f32> = load %x_GLF_color
-    %122:main_out = construct %121
-    ret %122
+%tint_symbol = @fragment func():main_out {
+  $B22: {
+    %172:void = call %main_1
+    %173:vec4<f32> = load %x_GLF_color
+    %174:main_out = construct %173
+    ret %174
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.msl
index 99c379c..0ecc189 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,55 +12,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     store %f, 142.6999969482421875f
     %5:f32 = load %f
-    %6:i32 = convert %5
-    %7:f32 = convert %6
-    %8:bool = gt %7, 100.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %10:i32 = load %9
-        %11:f32 = convert %10
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %13:i32 = load %12
-        %14:f32 = convert %13
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %16:i32 = load %15
-        %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %6:i32 = call %tint_f32_to_i32, %5
+    %8:f32 = convert %6
+    %9:bool = gt %8, 100.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %11:i32 = load %10
+        %12:f32 = convert %11
+        %13:f32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %15:i32 = load %14
+        %16:f32 = convert %15
+        %17:f32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %19:i32 = load %18
         %20:f32 = convert %19
-        %21:vec4<f32> = construct %11, %14, %17, %20
-        store %x_GLF_color, %21
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %23:i32 = load %22
         %24:f32 = convert %23
-        %25:vec4<f32> = construct %24
+        %25:vec4<f32> = construct %13, %17, %21, %24
         store %x_GLF_color, %25
         exit_if  # if_1
       }
+      $B4: {  # false
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:vec4<f32> = construct %28
+        store %x_GLF_color, %29
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %35:i32 = convert %value
+    %36:bool = gte %value, -2147483648.0f
+    %37:i32 = select -2147483648i, %35, %36
+    %38:bool = lte %value, 2147483520.0f
+    %39:i32 = select 2147483647i, %37, %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.msl
index fa66a67..17a722e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cast-float-to-int-and-back/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,55 +12,75 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     store %f, 142.6999969482421875f
-    %x_25:f32 = load %f
-    %6:i32 = convert %x_25
-    %7:f32 = convert %6
-    %8:bool = gt %7, 100.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_33:i32 = load %9
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_36:i32 = load %11
-        %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_39:i32 = load %13
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_42:i32 = load %15
-        %17:f32 = convert %x_33
-        %18:f32 = convert %x_36
-        %19:f32 = convert %x_39
-        %20:f32 = convert %x_42
-        %21:vec4<f32> = construct %17, %18, %19, %20
-        store %x_GLF_color, %21
+    %5:f32 = load %f
+    %x_25:f32 = let %5
+    %7:i32 = call %tint_f32_to_i32, %x_25
+    %9:f32 = convert %7
+    %10:bool = gt %9, 100.0f
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %12:i32 = load %11
+        %x_33:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_36:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %18:i32 = load %17
+        %x_39:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %21:i32 = load %20
+        %x_42:i32 = let %21
+        %23:f32 = convert %x_33
+        %24:f32 = let %23
+        %25:f32 = convert %x_36
+        %26:f32 = let %25
+        %27:f32 = convert %x_39
+        %28:f32 = let %27
+        %29:f32 = convert %x_42
+        %30:vec4<f32> = construct %24, %26, %28, %29
+        store %x_GLF_color, %30
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_46:i32 = load %22
-        %x_47:f32 = convert %x_46
-        %25:vec4<f32> = construct %x_47, %x_47, %x_47, %x_47
-        store %x_GLF_color, %25
+      $B4: {  # false
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %32:i32 = load %31
+        %x_46:i32 = let %32
+        %34:f32 = convert %x_46
+        %x_47:f32 = let %34
+        %36:vec4<f32> = construct %x_47, %x_47, %x_47, %x_47
+        store %x_GLF_color, %36
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    ret %40
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %42:i32 = convert %value
+    %43:bool = gte %value, -2147483648.0f
+    %44:i32 = select -2147483648i, %42, %43
+    %45:bool = lte %value, 2147483520.0f
+    %46:i32 = select 2147483647i, %44, %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.msl
index a4b4880..c1f061a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %sums:ptr<function, array<f32, 3>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %indexable:ptr<function, mat2x4<f32>, read_write> = var
@@ -40,93 +40,103 @@
     %14:array<f32, 3> = construct %9, %11, %13
     store %sums, %14
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %15:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %17:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %19:i32 = load %18
-        %20:i32 = clamp %17, %19, 2i
-        %21:bool = lt %15, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %16:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %18:i32 = load %17
+        %19:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %20:i32 = load %19
+        %21:i32 = max %18, %20
+        %22:i32 = min %21, 2i
+        %23:bool = lt %16, %22
+        if %23 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_59:i32 = load %22
-        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_61:f32 = load %24
-        %x_65:i32 = load %i
-        %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_67:i32 = load %27
-        %29:vec4<f32> = construct %x_61, 0.0f, 0.0f, 0.0f
-        %30:vec4<f32> = construct 0.0f, %x_61, 0.0f, 0.0f
-        %31:mat2x4<f32> = construct %29, %30
-        store %indexable, %31
-        %32:ptr<function, f32, read_write> = access %sums, %x_59
-        %33:ptr<function, f32, read_write> = access %sums, %x_59
-        %34:f32 = load %33
-        %35:ptr<function, vec4<f32>, read_write> = access %indexable, %x_65
-        %36:f32 = load_vector_element %35, %x_67
-        %37:f32 = add %34, %36
-        store %32, %37
-        continue %b4
+        %24:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %25:i32 = load %24
+        %x_59:i32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %28:f32 = load %27
+        %x_61:f32 = let %28
+        %30:i32 = load %i
+        %x_65:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_67:i32 = let %33
+        %35:vec4<f32> = construct %x_61, 0.0f, 0.0f, 0.0f
+        %36:vec4<f32> = let %35
+        %37:vec4<f32> = construct 0.0f, %x_61, 0.0f, 0.0f
+        %38:mat2x4<f32> = construct %36, %37
+        store %indexable, %38
+        %39:ptr<function, f32, read_write> = access %sums, %x_59
+        %40:ptr<function, f32, read_write> = access %sums, %x_59
+        %41:f32 = load %40
+        %42:ptr<function, vec4<f32>, read_write> = access %indexable, %x_65
+        %43:f32 = load_vector_element %42, %x_67
+        %44:f32 = add %41, %43
+        store %39, %44
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %38:i32 = load %i
-        %39:i32 = add %38, 1i
-        store %i, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %45:i32 = load %i
+        %46:i32 = add %45, 1i
+        store %i, %46
+        next_iteration  # -> $B3
       }
     }
-    %40:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-    %41:i32 = load %40
-    %42:ptr<function, f32, read_write> = access %sums, %41
-    %43:f32 = load %42
-    %44:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %45:f32 = load %44
-    %46:bool = eq %43, %45
-    if %46 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %47:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %48:i32 = load %47
-        %49:f32 = convert %48
-        %50:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %51:i32 = load %50
-        %52:f32 = convert %51
-        %53:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %54:i32 = load %53
-        %55:f32 = convert %54
-        %56:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %57:i32 = load %56
-        %58:f32 = convert %57
-        %59:vec4<f32> = construct %49, %52, %55, %58
-        store %x_GLF_color, %59
+    %47:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+    %48:i32 = load %47
+    %49:ptr<function, f32, read_write> = access %sums, %48
+    %50:f32 = load %49
+    %51:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %52:f32 = load %51
+    %53:bool = eq %50, %52
+    if %53 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %54:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:f32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:f32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %63:i32 = load %62
+        %64:f32 = convert %63
+        %65:f32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %67:i32 = load %66
+        %68:f32 = convert %67
+        %69:vec4<f32> = construct %57, %61, %65, %68
+        store %x_GLF_color, %69
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %60:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %61:i32 = load %60
-        %62:f32 = convert %61
-        %63:vec4<f32> = construct %62
-        store %x_GLF_color, %63
+      $B8: {  # false
+        %70:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %71:i32 = load %70
+        %72:f32 = convert %71
+        %73:vec4<f32> = construct %72
+        store %x_GLF_color, %73
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %65:void = call %main_1
-    %66:vec4<f32> = load %x_GLF_color
-    %67:main_out = construct %66
-    ret %67
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %75:void = call %main_1
+    %76:vec4<f32> = load %x_GLF_color
+    %77:main_out = construct %76
+    ret %77
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.msl
index b1382f5..0bc6229 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-loop-limit-increment-float-array/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,113 +20,140 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %sums:ptr<function, array<f32, 3>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %indexable:ptr<function, mat2x4<f32>, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_42:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_44:f32 = load %12
-    %14:array<f32, 3> = construct %x_40, %x_42, %x_44
-    store %sums, %14
+    %9:f32 = load %8
+    %x_40:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %12:f32 = load %11
+    %x_42:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %15:f32 = load %14
+    %x_44:f32 = let %15
+    %17:array<f32, 3> = construct %x_40, %x_42, %x_44
+    store %sums, %17
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_50:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_52:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_54:i32 = load %18
-        %20:i32 = clamp %x_52, %x_54, 2i
-        %21:bool = lt %x_50, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %18:i32 = load %i
+        %x_50:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %21:i32 = load %20
+        %x_52:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_54:i32 = let %24
+        %26:i32 = max %x_52, %x_54
+        %27:i32 = min %26, 2i
+        %28:bool = lt %x_50, %27
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_59:i32 = load %22
-        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_61:f32 = load %24
-        %x_65:i32 = load %i
-        %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_67:i32 = load %27
-        %29:vec4<f32> = construct %x_61, 0.0f, 0.0f, 0.0f
-        %30:vec4<f32> = construct 0.0f, %x_61, 0.0f, 0.0f
-        %31:mat2x4<f32> = construct %29, %30
-        store %indexable, %31
-        %32:ptr<function, vec4<f32>, read_write> = access %indexable, %x_65
-        %x_69:f32 = load_vector_element %32, %x_67
-        %34:ptr<function, f32, read_write> = access %sums, %x_59
-        %x_71:f32 = load %34
-        %36:ptr<function, f32, read_write> = access %sums, %x_59
-        %37:f32 = add %x_71, %x_69
-        store %36, %37
-        continue %b4
+        %29:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %30:i32 = load %29
+        %x_59:i32 = let %30
+        %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %33:f32 = load %32
+        %x_61:f32 = let %33
+        %35:i32 = load %i
+        %x_65:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_67:i32 = let %38
+        %40:vec4<f32> = construct %x_61, 0.0f, 0.0f, 0.0f
+        %41:vec4<f32> = let %40
+        %42:vec4<f32> = construct 0.0f, %x_61, 0.0f, 0.0f
+        %43:mat2x4<f32> = construct %41, %42
+        store %indexable, %43
+        %44:ptr<function, vec4<f32>, read_write> = access %indexable, %x_65
+        %45:f32 = load_vector_element %44, %x_67
+        %x_69:f32 = let %45
+        %47:ptr<function, f32, read_write> = access %sums, %x_59
+        %48:f32 = load %47
+        %x_71:f32 = let %48
+        %50:ptr<function, f32, read_write> = access %sums, %x_59
+        %51:f32 = add %x_71, %x_69
+        store %50, %51
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_74:i32 = load %i
-        %39:i32 = add %x_74, 1i
-        store %i, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %52:i32 = load %i
+        %x_74:i32 = let %52
+        %54:i32 = add %x_74, 1i
+        store %i, %54
+        next_iteration  # -> $B3
       }
     }
-    %40:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-    %x_77:i32 = load %40
-    %42:ptr<function, f32, read_write> = access %sums, %x_77
-    %x_79:f32 = load %42
-    %44:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_81:f32 = load %44
-    %46:bool = eq %x_79, %x_81
-    if %46 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %47:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_87:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_90:i32 = load %49
-        %51:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_93:i32 = load %51
-        %53:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_96:i32 = load %53
-        %55:f32 = convert %x_87
-        %56:f32 = convert %x_90
-        %57:f32 = convert %x_93
-        %58:f32 = convert %x_96
-        %59:vec4<f32> = construct %55, %56, %57, %58
-        store %x_GLF_color, %59
+    %55:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+    %56:i32 = load %55
+    %x_77:i32 = let %56
+    %58:ptr<function, f32, read_write> = access %sums, %x_77
+    %59:f32 = load %58
+    %x_79:f32 = let %59
+    %61:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %62:f32 = load %61
+    %x_81:f32 = let %62
+    %64:bool = eq %x_79, %x_81
+    if %64 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %65:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %66:i32 = load %65
+        %x_87:i32 = let %66
+        %68:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %69:i32 = load %68
+        %x_90:i32 = let %69
+        %71:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %72:i32 = load %71
+        %x_93:i32 = let %72
+        %74:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %75:i32 = load %74
+        %x_96:i32 = let %75
+        %77:f32 = convert %x_87
+        %78:f32 = let %77
+        %79:f32 = convert %x_90
+        %80:f32 = let %79
+        %81:f32 = convert %x_93
+        %82:f32 = let %81
+        %83:f32 = convert %x_96
+        %84:vec4<f32> = construct %78, %80, %82, %83
+        store %x_GLF_color, %84
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %60:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_100:i32 = load %60
-        %x_101:f32 = convert %x_100
-        %63:vec4<f32> = construct %x_101, %x_101, %x_101, %x_101
-        store %x_GLF_color, %63
+      $B8: {  # false
+        %85:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %86:i32 = load %85
+        %x_100:i32 = let %86
+        %88:f32 = convert %x_100
+        %x_101:f32 = let %88
+        %90:vec4<f32> = construct %x_101, %x_101, %x_101, %x_101
+        store %x_GLF_color, %90
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %65:void = call %main_1
-    %66:vec4<f32> = load %x_GLF_color
-    %67:main_out = construct %66
-    ret %67
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %92:void = call %main_1
+    %93:vec4<f32> = load %x_GLF_color
+    %94:main_out = construct %93
+    ret %94
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.msl
index 74f3920..a49b0ed 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,64 +20,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     store %a, 1.0f
     %7:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
     %8:f32 = load %7
-    %9:f32 = load %a
-    %10:f32 = select 0.0f, %9, false
-    %11:f32 = clamp %8, %10, 1.0f
-    store %b, %11
-    %12:f32 = load %b
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %14:f32 = load %13
-    %15:bool = eq %12, %14
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %16:f32 = load %b
-        %17:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %18:f32 = load %17
-        %19:f32 = mul %16, %18
-        %20:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %9:f32 = let %8
+    %10:f32 = load %a
+    %11:f32 = select 0.0f, %10, false
+    %12:f32 = clamp %9, %11, 1.0f
+    store %b, %12
+    %13:f32 = load %b
+    %14:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %15:f32 = load %14
+    %16:bool = eq %13, %15
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %17:f32 = load %b
+        %18:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %19:f32 = load %18
+        %20:f32 = mul %17, %19
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %23:i32 = load %22
+        %24:f32 = convert %23
+        %25:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %27:i32 = load %26
         %28:f32 = convert %27
-        %29:vec4<f32> = construct %19, %22, %25, %28
-        store %x_GLF_color, %29
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %31:i32 = load %30
         %32:f32 = convert %31
-        %33:vec4<f32> = construct %32
+        %33:vec4<f32> = construct %21, %25, %29, %32
         store %x_GLF_color, %33
         exit_if  # if_1
       }
+      $B4: {  # false
+        %34:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:vec4<f32> = construct %36
+        store %x_GLF_color, %37
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %39:void = call %main_1
+    %40:vec4<f32> = load %x_GLF_color
+    %41:main_out = construct %40
+    ret %41
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.msl
index 5752f7f..cd54be7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-lower-limit-from-always-false/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,64 +20,77 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     store %a, 1.0f
     %7:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_33:f32 = load %7
-    %x_34:f32 = load %a
-    %10:f32 = select 0.0f, %x_34, false
-    %11:f32 = clamp %x_33, %10, 1.0f
-    store %b, %11
-    %x_37:f32 = load %b
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_39:f32 = load %13
-    %15:bool = eq %x_37, %x_39
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_44:f32 = load %b
-        %17:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_46:f32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_49:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_52:i32 = load %21
-        %23:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_55:i32 = load %23
-        %25:f32 = mul %x_44, %x_46
-        %26:f32 = convert %x_49
-        %27:f32 = convert %x_52
-        %28:f32 = convert %x_55
-        %29:vec4<f32> = construct %25, %26, %27, %28
-        store %x_GLF_color, %29
+    %8:f32 = load %7
+    %x_33:f32 = let %8
+    %10:f32 = load %a
+    %x_34:f32 = let %10
+    %12:f32 = select 0.0f, %x_34, false
+    %13:f32 = clamp %x_33, %12, 1.0f
+    store %b, %13
+    %14:f32 = load %b
+    %x_37:f32 = let %14
+    %16:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %17:f32 = load %16
+    %x_39:f32 = let %17
+    %19:bool = eq %x_37, %x_39
+    if %19 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %20:f32 = load %b
+        %x_44:f32 = let %20
+        %22:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %23:f32 = load %22
+        %x_46:f32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %26:i32 = load %25
+        %x_49:i32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %29:i32 = load %28
+        %x_52:i32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %32:i32 = load %31
+        %x_55:i32 = let %32
+        %34:f32 = mul %x_44, %x_46
+        %35:f32 = convert %x_49
+        %36:f32 = let %35
+        %37:f32 = convert %x_52
+        %38:f32 = let %37
+        %39:f32 = convert %x_55
+        %40:vec4<f32> = construct %34, %36, %38, %39
+        store %x_GLF_color, %40
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_59:i32 = load %30
-        %x_60:f32 = convert %x_59
-        %33:vec4<f32> = construct %x_60, %x_60, %x_60, %x_60
-        store %x_GLF_color, %33
+      $B4: {  # false
+        %41:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %42:i32 = load %41
+        %x_59:i32 = let %42
+        %44:f32 = convert %x_59
+        %x_60:f32 = let %44
+        %46:vec4<f32> = construct %x_60, %x_60, %x_60, %x_60
+        store %x_GLF_color, %46
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.msl
index fe83ec1..27bf85e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,143 +20,156 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %8:i32 = load %7
     %9:f32 = convert %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %11:i32 = load %10
-    %12:f32 = convert %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %14:i32 = load %13
-    %15:f32 = convert %14
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %17:i32 = load %16
-    %18:f32 = convert %17
-    %19:vec4<f32> = construct %9, %12, %15, %18
-    store %v, %19
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %21:i32 = load %20
-    store %i, %21
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %22:i32 = load %i
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %24:i32 = load %23
-        %25:bool = lt %22, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %10:f32 = let %9
+    %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %12:i32 = load %11
+    %13:f32 = convert %12
+    %14:f32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %16:i32 = load %15
+    %17:f32 = convert %16
+    %18:f32 = let %17
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %20:i32 = load %19
+    %21:f32 = convert %20
+    %22:vec4<f32> = construct %10, %14, %18, %21
+    store %v, %22
+    %23:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %24:i32 = load %23
+    store %i, %24
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %25:i32 = load %i
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %27:i32 = load %26
+        %28:bool = lt %25, %27
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:f32 = load_vector_element %v, 0u
-        %27:f32 = load_vector_element %v, 1u
-        %28:f32 = load_vector_element %v, 2u
-        %29:f32 = load_vector_element %v, 3u
-        %30:vec4<f32> = construct %26, %27, %28, %29
-        %31:f32 = load_vector_element %v, 0u
-        %32:f32 = load_vector_element %v, 1u
-        %33:f32 = load_vector_element %v, 2u
-        %34:f32 = load_vector_element %v, 3u
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        %36:f32 = load_vector_element %v, 0u
-        %37:f32 = load_vector_element %v, 1u
-        %38:f32 = load_vector_element %v, 2u
-        %39:f32 = load_vector_element %v, 3u
-        %40:vec4<f32> = construct %36, %37, %38, %39
+        %29:f32 = load_vector_element %v, 0u
+        %30:f32 = load_vector_element %v, 1u
+        %31:f32 = load_vector_element %v, 2u
+        %32:f32 = load_vector_element %v, 3u
+        %33:vec4<f32> = construct %29, %30, %31, %32
+        %34:vec4<f32> = let %33
+        %35:f32 = load_vector_element %v, 0u
+        %36:f32 = load_vector_element %v, 1u
+        %37:f32 = load_vector_element %v, 2u
+        %38:f32 = load_vector_element %v, 3u
+        %39:vec4<f32> = construct %35, %36, %37, %38
+        %40:vec4<f32> = let %39
         %41:f32 = load_vector_element %v, 0u
         %42:f32 = load_vector_element %v, 1u
         %43:f32 = load_vector_element %v, 2u
         %44:f32 = load_vector_element %v, 3u
         %45:vec4<f32> = construct %41, %42, %43, %44
-        %46:mat4x4<f32> = construct %30, %35, %40, %45
-        %47:i32 = load %i
-        %48:f32 = access %46, 0u, %47
-        %49:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %50:f32 = load %49
-        %51:bool = gt %48, %50
-        if %51 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_96:i32 = load %i
-            %53:vec4<f32> = load %v
-            %54:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-            %55:f32 = load %54
-            %56:vec4<f32> = construct %55
-            %57:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-            %58:f32 = load %57
-            %59:vec4<f32> = construct %58
-            %60:vec4<f32> = clamp %53, %56, %59
-            %61:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %62:i32 = load %61
-            %63:f32 = access %60, %62
-            store_vector_element %v, %x_96, %63
+        %46:vec4<f32> = let %45
+        %47:f32 = load_vector_element %v, 0u
+        %48:f32 = load_vector_element %v, 1u
+        %49:f32 = load_vector_element %v, 2u
+        %50:f32 = load_vector_element %v, 3u
+        %51:vec4<f32> = construct %47, %48, %49, %50
+        %52:mat4x4<f32> = construct %34, %40, %46, %51
+        %53:i32 = load %i
+        %54:f32 = access %52, 0u, %53
+        %55:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %56:f32 = load %55
+        %57:bool = gt %54, %56
+        if %57 [t: $B7] {  # if_2
+          $B7: {  # true
+            %58:i32 = load %i
+            %x_96:i32 = let %58
+            %60:vec4<f32> = load %v
+            %61:vec4<f32> = let %60
+            %62:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+            %63:f32 = load %62
+            %64:vec4<f32> = construct %63
+            %65:vec4<f32> = let %64
+            %66:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+            %67:f32 = load %66
+            %68:vec4<f32> = construct %67
+            %69:vec4<f32> = clamp %61, %65, %68
+            %70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %71:i32 = load %70
+            %72:f32 = access %69, %71
+            store_vector_element %v, %x_96, %72
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %64:i32 = load %i
-        %65:i32 = add %64, 1i
-        store %i, %65
-        next_iteration %b3
+      $B4: {  # continuing
+        %73:i32 = load %i
+        %74:i32 = add %73, 1i
+        store %i, %74
+        next_iteration  # -> $B3
       }
     }
-    %66:vec4<f32> = load %v
-    %67:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %68:i32 = load %67
-    %69:f32 = convert %68
-    %70:vec4<f32> = construct %69
-    %71:vec4<bool> = eq %66, %70
-    %72:bool = all %71
-    if %72 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %73:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %74:i32 = load %73
-        %75:f32 = convert %74
-        %76:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %77:i32 = load %76
-        %78:f32 = convert %77
-        %79:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %80:i32 = load %79
-        %81:f32 = convert %80
-        %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %83:i32 = load %82
-        %84:f32 = convert %83
-        %85:vec4<f32> = construct %75, %78, %81, %84
-        store %x_GLF_color, %85
+    %75:vec4<f32> = load %v
+    %76:vec4<f32> = let %75
+    %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %78:i32 = load %77
+    %79:f32 = convert %78
+    %80:vec4<f32> = construct %79
+    %81:vec4<bool> = eq %76, %80
+    %82:bool = all %81
+    if %82 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %83:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %84:i32 = load %83
+        %85:f32 = convert %84
+        %86:f32 = let %85
+        %87:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %88:i32 = load %87
+        %89:f32 = convert %88
+        %90:f32 = let %89
+        %91:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %92:i32 = load %91
+        %93:f32 = convert %92
+        %94:f32 = let %93
+        %95:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %96:i32 = load %95
+        %97:f32 = convert %96
+        %98:vec4<f32> = construct %86, %90, %94, %97
+        store %x_GLF_color, %98
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %86:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %87:i32 = load %86
-        %88:f32 = convert %87
-        %89:vec4<f32> = construct %88
-        store %x_GLF_color, %89
+      $B9: {  # false
+        %99:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %100:i32 = load %99
+        %101:f32 = convert %100
+        %102:vec4<f32> = construct %101
+        store %x_GLF_color, %102
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %91:void = call %main_1
-    %92:vec4<f32> = load %x_GLF_color
-    %93:main_out = construct %92
-    ret %93
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %104:void = call %main_1
+    %105:vec4<f32> = load %x_GLF_color
+    %106:main_out = construct %105
+    ret %106
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.msl
index 203245d..98664db 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-component-condition-using-matrix/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,147 +20,185 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_40:i32 = load %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_43:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_46:i32 = load %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_49:i32 = load %13
-    %15:f32 = convert %x_40
-    %16:f32 = convert %x_43
-    %17:f32 = convert %x_46
-    %18:f32 = convert %x_49
-    %19:vec4<f32> = construct %15, %16, %17, %18
-    store %v, %19
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_53:i32 = load %20
+    %8:i32 = load %7
+    %x_40:i32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %11:i32 = load %10
+    %x_43:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %14:i32 = load %13
+    %x_46:i32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %17:i32 = load %16
+    %x_49:i32 = let %17
+    %19:f32 = convert %x_40
+    %20:f32 = let %19
+    %21:f32 = convert %x_43
+    %22:f32 = let %21
+    %23:f32 = convert %x_46
+    %24:f32 = let %23
+    %25:f32 = convert %x_49
+    %26:vec4<f32> = construct %20, %22, %24, %25
+    store %v, %26
+    %27:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %28:i32 = load %27
+    %x_53:i32 = let %28
     store %i, %x_53
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_58:i32 = load %i
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_60:i32 = load %23
-        %25:bool = lt %x_58, %x_60
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %30:i32 = load %i
+        %x_58:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_60:i32 = let %33
+        %35:bool = lt %x_58, %x_60
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_63:vec4<f32> = load %v
-        %x_64:vec4<f32> = load %v
-        %x_65:vec4<f32> = load %v
-        %x_66:vec4<f32> = load %v
-        %x_88:i32 = load %i
-        %31:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %x_92:f32 = load %31
-        %33:f32 = access %x_63, 0u
-        %34:f32 = access %x_63, 1u
-        %35:f32 = access %x_63, 2u
-        %36:f32 = access %x_63, 3u
-        %37:vec4<f32> = construct %33, %34, %35, %36
-        %38:f32 = access %x_64, 0u
-        %39:f32 = access %x_64, 1u
-        %40:f32 = access %x_64, 2u
-        %41:f32 = access %x_64, 3u
-        %42:vec4<f32> = construct %38, %39, %40, %41
-        %43:f32 = access %x_65, 0u
-        %44:f32 = access %x_65, 1u
-        %45:f32 = access %x_65, 2u
-        %46:f32 = access %x_65, 3u
-        %47:vec4<f32> = construct %43, %44, %45, %46
-        %48:f32 = access %x_66, 0u
-        %49:f32 = access %x_66, 1u
-        %50:f32 = access %x_66, 2u
-        %51:f32 = access %x_66, 3u
-        %52:vec4<f32> = construct %48, %49, %50, %51
-        %53:mat4x4<f32> = construct %37, %42, %47, %52
-        %54:f32 = access %53, 0u, %x_88
-        %55:bool = gt %54, %x_92
-        if %55 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_96:i32 = load %i
-            %x_97:vec4<f32> = load %v
-            %58:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-            %x_99:f32 = load %58
-            %60:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-            %x_102:f32 = load %60
-            %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_106:i32 = load %62
-            %64:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
-            %65:vec4<f32> = construct %x_102, %x_102, %x_102, %x_102
-            %66:vec4<f32> = clamp %x_97, %64, %65
-            %67:f32 = access %66, %x_106
-            store_vector_element %v, %x_96, %67
+        %36:vec4<f32> = load %v
+        %x_63:vec4<f32> = let %36
+        %38:vec4<f32> = load %v
+        %x_64:vec4<f32> = let %38
+        %40:vec4<f32> = load %v
+        %x_65:vec4<f32> = let %40
+        %42:vec4<f32> = load %v
+        %x_66:vec4<f32> = let %42
+        %44:i32 = load %i
+        %x_88:i32 = let %44
+        %46:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %47:f32 = load %46
+        %x_92:f32 = let %47
+        %49:f32 = access %x_63, 0u
+        %50:f32 = access %x_63, 1u
+        %51:f32 = access %x_63, 2u
+        %52:f32 = access %x_63, 3u
+        %53:vec4<f32> = construct %49, %50, %51, %52
+        %54:vec4<f32> = let %53
+        %55:f32 = access %x_64, 0u
+        %56:f32 = access %x_64, 1u
+        %57:f32 = access %x_64, 2u
+        %58:f32 = access %x_64, 3u
+        %59:vec4<f32> = construct %55, %56, %57, %58
+        %60:vec4<f32> = let %59
+        %61:f32 = access %x_65, 0u
+        %62:f32 = access %x_65, 1u
+        %63:f32 = access %x_65, 2u
+        %64:f32 = access %x_65, 3u
+        %65:vec4<f32> = construct %61, %62, %63, %64
+        %66:vec4<f32> = let %65
+        %67:f32 = access %x_66, 0u
+        %68:f32 = access %x_66, 1u
+        %69:f32 = access %x_66, 2u
+        %70:f32 = access %x_66, 3u
+        %71:vec4<f32> = construct %67, %68, %69, %70
+        %72:mat4x4<f32> = construct %54, %60, %66, %71
+        %73:f32 = access %72, 0u, %x_88
+        %74:bool = gt %73, %x_92
+        if %74 [t: $B7] {  # if_2
+          $B7: {  # true
+            %75:i32 = load %i
+            %x_96:i32 = let %75
+            %77:vec4<f32> = load %v
+            %x_97:vec4<f32> = let %77
+            %79:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+            %80:f32 = load %79
+            %x_99:f32 = let %80
+            %82:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+            %83:f32 = load %82
+            %x_102:f32 = let %83
+            %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %86:i32 = load %85
+            %x_106:i32 = let %86
+            %88:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
+            %89:vec4<f32> = let %88
+            %90:vec4<f32> = construct %x_102, %x_102, %x_102, %x_102
+            %91:vec4<f32> = clamp %x_97, %89, %90
+            %92:f32 = access %91, %x_106
+            store_vector_element %v, %x_96, %92
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_109:i32 = load %i
-        %69:i32 = add %x_109, 1i
-        store %i, %69
-        next_iteration %b3
+      $B4: {  # continuing
+        %93:i32 = load %i
+        %x_109:i32 = let %93
+        %95:i32 = add %x_109, 1i
+        store %i, %95
+        next_iteration  # -> $B3
       }
     }
-    %x_111:vec4<f32> = load %v
-    %71:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_113:i32 = load %71
-    %x_114:f32 = convert %x_113
-    %74:vec4<f32> = construct %x_114, %x_114, %x_114, %x_114
-    %75:vec4<bool> = eq %x_111, %74
-    %76:bool = all %75
-    if %76 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_122:i32 = load %77
-        %79:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_125:i32 = load %79
-        %81:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_128:i32 = load %81
-        %83:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_131:i32 = load %83
-        %85:f32 = convert %x_122
-        %86:f32 = convert %x_125
-        %87:f32 = convert %x_128
-        %88:f32 = convert %x_131
-        %89:vec4<f32> = construct %85, %86, %87, %88
-        store %x_GLF_color, %89
+    %96:vec4<f32> = load %v
+    %x_111:vec4<f32> = let %96
+    %98:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %99:i32 = load %98
+    %x_113:i32 = let %99
+    %101:f32 = convert %x_113
+    %x_114:f32 = let %101
+    %103:vec4<f32> = construct %x_114, %x_114, %x_114, %x_114
+    %104:vec4<bool> = eq %x_111, %103
+    %105:bool = all %104
+    if %105 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %106:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %107:i32 = load %106
+        %x_122:i32 = let %107
+        %109:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %110:i32 = load %109
+        %x_125:i32 = let %110
+        %112:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %113:i32 = load %112
+        %x_128:i32 = let %113
+        %115:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %116:i32 = load %115
+        %x_131:i32 = let %116
+        %118:f32 = convert %x_122
+        %119:f32 = let %118
+        %120:f32 = convert %x_125
+        %121:f32 = let %120
+        %122:f32 = convert %x_128
+        %123:f32 = let %122
+        %124:f32 = convert %x_131
+        %125:vec4<f32> = construct %119, %121, %123, %124
+        store %x_GLF_color, %125
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %90:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_135:i32 = load %90
-        %x_136:f32 = convert %x_135
-        %93:vec4<f32> = construct %x_136, %x_136, %x_136, %x_136
-        store %x_GLF_color, %93
+      $B9: {  # false
+        %126:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %127:i32 = load %126
+        %x_135:i32 = let %127
+        %129:f32 = convert %x_135
+        %x_136:f32 = let %129
+        %131:vec4<f32> = construct %x_136, %x_136, %x_136, %x_136
+        store %x_GLF_color, %131
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %95:void = call %main_1
-    %96:vec4<f32> = load %x_GLF_color
-    %97:main_out = construct %96
-    ret %97
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %133:void = call %main_1
+    %134:vec4<f32> = load %x_GLF_color
+    %135:main_out = construct %134
+    ret %135
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.msl
index 234af99..e8e1e22 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec2<f32>, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
@@ -36,53 +36,57 @@
     store %v0, %9
     %10:vec2<f32> = load %v0
     %11:vec2<f32> = ceil %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %13:f32 = load %12
-    %14:f32 = negation %13
-    %15:vec2<f32> = construct %14
-    %16:vec2<f32> = clamp %11, %15, vec2<f32>(100.0f)
-    store %v1, %16
-    %17:f32 = load_vector_element %v1, 1u
-    %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %19:f32 = load %18
-    %20:f32 = negation %19
-    %21:bool = eq %17, %20
-    if %21 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %23:i32 = load %22
-        %24:f32 = convert %23
-        %25:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %12:vec2<f32> = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %14:f32 = load %13
+    %15:f32 = negation %14
+    %16:vec2<f32> = construct %15
+    %17:vec2<f32> = clamp %12, %16, vec2<f32>(100.0f)
+    store %v1, %17
+    %18:f32 = load_vector_element %v1, 1u
+    %19:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %20:f32 = load %19
+    %21:f32 = negation %20
+    %22:bool = eq %18, %21
+    if %22 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %23:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %28:i32 = load %27
+        %29:f32 = convert %28
+        %30:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %32:i32 = load %31
         %33:f32 = convert %32
-        %34:vec4<f32> = construct %24, %27, %30, %33
-        store %x_GLF_color, %34
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %35:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %34:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %36:i32 = load %35
         %37:f32 = convert %36
-        %38:vec4<f32> = construct %37
+        %38:vec4<f32> = construct %26, %30, %34, %37
         store %x_GLF_color, %38
         exit_if  # if_1
       }
+      $B4: {  # false
+        %39:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:vec4<f32> = construct %41
+        store %x_GLF_color, %42
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %40:void = call %main_1
-    %41:vec4<f32> = load %x_GLF_color
-    %42:main_out = construct %41
-    ret %42
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.msl
index 7227d5a..f28dec6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-element-ceil-negative/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,69 +20,85 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec2<f32>, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_36:f32 = load %7
-    %9:vec2<f32> = construct %x_36, -580.0150146484375f
-    store %v0, %9
-    %x_38:vec2<f32> = load %v0
-    %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_41:f32 = load %11
-    %x_42:f32 = negation %x_41
-    %14:vec2<f32> = ceil %x_38
-    %15:vec2<f32> = construct %x_42, %x_42
-    %16:vec2<f32> = clamp %14, %15, vec2<f32>(100.0f)
-    store %v1, %16
-    %x_46:f32 = load_vector_element %v1, 1u
-    %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_48:f32 = load %18
-    %20:f32 = negation %x_48
-    %21:bool = eq %x_46, %20
-    if %21 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_55:i32 = load %22
-        %24:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_58:i32 = load %24
-        %26:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_61:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_64:i32 = load %28
-        %30:f32 = convert %x_55
-        %31:f32 = convert %x_58
-        %32:f32 = convert %x_61
-        %33:f32 = convert %x_64
-        %34:vec4<f32> = construct %30, %31, %32, %33
-        store %x_GLF_color, %34
+    %8:f32 = load %7
+    %x_36:f32 = let %8
+    %10:vec2<f32> = construct %x_36, -580.0150146484375f
+    store %v0, %10
+    %11:vec2<f32> = load %v0
+    %x_38:vec2<f32> = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %14:f32 = load %13
+    %x_41:f32 = let %14
+    %16:f32 = negation %x_41
+    %x_42:f32 = let %16
+    %18:vec2<f32> = ceil %x_38
+    %19:vec2<f32> = let %18
+    %20:vec2<f32> = construct %x_42, %x_42
+    %21:vec2<f32> = clamp %19, %20, vec2<f32>(100.0f)
+    store %v1, %21
+    %22:f32 = load_vector_element %v1, 1u
+    %x_46:f32 = let %22
+    %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %25:f32 = load %24
+    %x_48:f32 = let %25
+    %27:f32 = negation %x_48
+    %28:bool = eq %x_46, %27
+    if %28 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %29:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_55:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_58:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %36:i32 = load %35
+        %x_61:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %39:i32 = load %38
+        %x_64:i32 = let %39
+        %41:f32 = convert %x_55
+        %42:f32 = let %41
+        %43:f32 = convert %x_58
+        %44:f32 = let %43
+        %45:f32 = convert %x_61
+        %46:f32 = let %45
+        %47:f32 = convert %x_64
+        %48:vec4<f32> = construct %42, %44, %46, %47
+        store %x_GLF_color, %48
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %35:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_68:i32 = load %35
-        %x_69:f32 = convert %x_68
-        %38:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
-        store %x_GLF_color, %38
+      $B4: {  # false
+        %49:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %50:i32 = load %49
+        %x_68:i32 = let %50
+        %52:f32 = convert %x_68
+        %x_69:f32 = let %52
+        %54:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
+        store %x_GLF_color, %54
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %40:void = call %main_1
-    %41:vec4<f32> = load %x_GLF_color
-    %42:main_out = construct %41
-    ret %42
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %56:void = call %main_1
+    %57:vec4<f32> = load %x_GLF_color
+    %58:main_out = construct %57
+    ret %58
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.msl
index a3d3f99..d2fcbbd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec2<f32>, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
@@ -36,55 +36,60 @@
     store %v0, %9
     %10:vec2<f32> = load %v0
     %11:vec2<f32> = sub %10, vec2<f32>(1.0f)
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %13:f32 = load %12
-    %14:vec2<f32> = construct %13
-    %15:vec2<f32> = clamp %11, vec2<f32>(0.0f), %14
-    store %v1, %15
-    %16:vec2<f32> = load %v1
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %18:f32 = load %17
-    %19:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %12:vec2<f32> = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %14:f32 = load %13
+    %15:vec2<f32> = construct %14
+    %16:vec2<f32> = clamp %12, vec2<f32>(0.0f), %15
+    store %v1, %16
+    %17:vec2<f32> = load %v1
+    %18:vec2<f32> = let %17
+    %19:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %20:f32 = load %19
-    %21:vec2<f32> = construct %18, %20
-    %22:vec2<bool> = eq %16, %21
-    %23:bool = all %22
-    if %23 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %24:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %28:i32 = load %27
-        %29:f32 = convert %28
+    %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %22:f32 = load %21
+    %23:vec2<f32> = construct %20, %22
+    %24:vec2<bool> = eq %18, %23
+    %25:bool = all %24
+    if %25 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %26:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:f32 = let %28
         %30:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %31:i32 = load %30
         %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:vec4<f32> = construct %26, %29, %32, %35
-        store %x_GLF_color, %36
+        %33:f32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:f32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %39:i32 = load %38
+        %40:f32 = convert %39
+        %41:vec4<f32> = construct %29, %33, %37, %40
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %37:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:vec4<f32> = construct %39
-        store %x_GLF_color, %40
+      $B4: {  # false
+        %42:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:vec4<f32> = construct %44
+        store %x_GLF_color, %45
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.msl
index 02f689a..6e6ecf5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clamp-vector-variable-negative-offset/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,71 +20,86 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec2<f32>, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_37:f32 = load %7
-    %9:vec2<f32> = construct %x_37, 3.79999995231628417969f
-    store %v0, %9
-    %x_39:vec2<f32> = load %v0
-    %11:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_43:f32 = load %11
-    %13:vec2<f32> = sub %x_39, vec2<f32>(1.0f)
-    %14:vec2<f32> = construct %x_43, %x_43
-    %15:vec2<f32> = clamp %13, vec2<f32>(0.0f), %14
-    store %v1, %15
-    %x_47:vec2<f32> = load %v1
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_49:f32 = load %17
-    %19:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_51:f32 = load %19
-    %21:vec2<f32> = construct %x_49, %x_51
-    %22:vec2<bool> = eq %x_47, %21
-    %23:bool = all %22
-    if %23 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %24:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_59:i32 = load %24
-        %26:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_62:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_65:i32 = load %28
+    %8:f32 = load %7
+    %x_37:f32 = let %8
+    %10:vec2<f32> = construct %x_37, 3.79999995231628417969f
+    store %v0, %10
+    %11:vec2<f32> = load %v0
+    %x_39:vec2<f32> = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %14:f32 = load %13
+    %x_43:f32 = let %14
+    %16:vec2<f32> = sub %x_39, vec2<f32>(1.0f)
+    %17:vec2<f32> = construct %x_43, %x_43
+    %18:vec2<f32> = clamp %16, vec2<f32>(0.0f), %17
+    store %v1, %18
+    %19:vec2<f32> = load %v1
+    %x_47:vec2<f32> = let %19
+    %21:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %22:f32 = load %21
+    %x_49:f32 = let %22
+    %24:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %25:f32 = load %24
+    %x_51:f32 = let %25
+    %27:vec2<f32> = construct %x_49, %x_51
+    %28:vec2<bool> = eq %x_47, %27
+    %29:bool = all %28
+    if %29 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_68:i32 = load %30
-        %32:f32 = convert %x_59
-        %33:f32 = convert %x_62
-        %34:f32 = convert %x_65
-        %35:f32 = convert %x_68
-        %36:vec4<f32> = construct %32, %33, %34, %35
-        store %x_GLF_color, %36
+        %31:i32 = load %30
+        %x_59:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_62:i32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %37:i32 = load %36
+        %x_65:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %40:i32 = load %39
+        %x_68:i32 = let %40
+        %42:f32 = convert %x_59
+        %43:f32 = let %42
+        %44:f32 = convert %x_62
+        %45:f32 = let %44
+        %46:f32 = convert %x_65
+        %47:f32 = let %46
+        %48:f32 = convert %x_68
+        %49:vec4<f32> = construct %43, %45, %47, %48
+        store %x_GLF_color, %49
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %37:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_72:i32 = load %37
-        %x_73:f32 = convert %x_72
-        %40:vec4<f32> = construct %x_73, %x_73, %x_73, %x_73
-        store %x_GLF_color, %40
+      $B4: {  # false
+        %50:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %51:i32 = load %50
+        %x_72:i32 = let %51
+        %53:f32 = convert %x_72
+        %x_73:f32 = let %53
+        %55:vec4<f32> = construct %x_73, %x_73, %x_73, %x_73
+        store %x_GLF_color, %55
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.msl
index e3d58bc..0cc2753 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -16,72 +16,81 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %x_57:ptr<function, vec4<f32>, read_write> = var
-    %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %9:f32 = load %8
-    %10:vec2<f32> = construct %9
-    store %v0, %10
-    %11:f32 = load_vector_element %v0, 0u
-    %x_36:vec4<f32> = construct %11
+    %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %10:f32 = load %9
+    %11:vec2<f32> = construct %10
+    store %v0, %11
+    %12:f32 = load_vector_element %v0, 0u
+    %13:vec4<f32> = construct %12
+    %x_36:vec4<f32> = let %13
     store %v1, %x_36
-    %13:ptr<uniform, f32, read> = access %x_9, 0u
-    %14:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %15:ptr<uniform, f32, read> = access %x_9, 0u
     %16:f32 = load %15
-    %17:bool = eq %14, %16
-    %18:bool = eq %17, false
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %19:ptr<uniform, f32, read> = access %x_9, 0u
-        %20:f32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %18:f32 = load %17
+    %19:bool = eq %16, %18
+    %20:bool = eq %19, false
+    if %20 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %21:ptr<uniform, f32, read> = access %x_9, 0u
         %22:f32 = load %21
-        %23:bool = eq %20, %22
-        if %23 [t: %b5] {  # if_2
-          %b5 = block {  # true
+        %23:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %24:f32 = load %23
+        %25:bool = eq %22, %24
+        if %25 [t: $B5] {  # if_2
+          $B5: {  # true
             ret
           }
         }
-        %24:f32 = access %x_36, 0u
-        %25:vec2<f32> = swizzle %x_36, yz
-        %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %27:f32 = load %26
-        %28:vec2<f32> = construct %27
-        %29:vec2<f32> = sub %25, %28
-        %30:vec2<f32> = swizzle %29, xy
-        %31:f32 = access %x_36, 3u
-        %32:vec4<f32> = construct %24, %30, %31
-        store %x_57, %32
-        %33:vec4<f32> = load %x_57
-        store %v1, %33
+        %26:f32 = access %x_36, 0u
+        %27:vec2<f32> = swizzle %x_36, yz
+        %28:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %29:f32 = load %28
+        %30:vec2<f32> = construct %29
+        %31:vec2<f32> = sub %27, %30
+        %32:vec2<f32> = swizzle %31, xy
+        %33:f32 = access %x_36, 3u
+        %34:vec4<f32> = construct %26, %32, %33
+        store %x_57, %34
+        %35:vec4<f32> = load %x_57
+        store %v1, %35
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        discard
+      $B4: {  # false
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %34:vec4<f32> = load %x_57
-    store %x_GLF_color, %34
+    %36:vec4<f32> = load %x_57
+    store %x_GLF_color, %36
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    %41:bool = load %continue_execution
+    %42:bool = eq %41, false
+    if %42 [t: $B7] {  # if_3
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %40
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.msl
index 58e9bb9..68dd348 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-clear-yz-inside-condition/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -16,75 +16,93 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %x_57:ptr<function, vec4<f32>, read_write> = var
-    %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_32:f32 = load %8
-    %10:vec2<f32> = construct %x_32, %x_32
-    store %v0, %10
-    %x_35:f32 = load_vector_element %v0, 0u
-    %x_36:vec4<f32> = construct %x_35, %x_35, %x_35, %x_35
+    %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %10:f32 = load %9
+    %x_32:f32 = let %10
+    %12:vec2<f32> = construct %x_32, %x_32
+    store %v0, %12
+    %13:f32 = load_vector_element %v0, 0u
+    %x_35:f32 = let %13
+    %15:vec4<f32> = construct %x_35, %x_35, %x_35, %x_35
+    %x_36:vec4<f32> = let %15
     store %v1, %x_36
-    %13:ptr<uniform, f32, read> = access %x_9, 0u
-    %x_38:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:f32 = load %15
-    %17:bool = eq %x_38, %x_40
-    %18:bool = eq %17, false
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %19:ptr<uniform, f32, read> = access %x_9, 0u
-        %x_46:f32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_48:f32 = load %21
-        %23:bool = eq %x_46, %x_48
-        if %23 [t: %b5] {  # if_2
-          %b5 = block {  # true
+    %17:ptr<uniform, f32, read> = access %x_9, 0u
+    %18:f32 = load %17
+    %x_38:f32 = let %18
+    %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %21:f32 = load %20
+    %x_40:f32 = let %21
+    %23:bool = eq %x_38, %x_40
+    %24:bool = eq %23, false
+    if %24 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %25:ptr<uniform, f32, read> = access %x_9, 0u
+        %26:f32 = load %25
+        %x_46:f32 = let %26
+        %28:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %29:f32 = load %28
+        %x_48:f32 = let %29
+        %31:bool = eq %x_46, %x_48
+        if %31 [t: $B5] {  # if_2
+          $B5: {  # true
             ret
           }
         }
-        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_53:f32 = load %24
-        %26:f32 = access %x_36, 1u
-        %27:f32 = access %x_36, 2u
-        %28:vec2<f32> = construct %26, %27
-        %29:vec2<f32> = construct %x_53, %x_53
-        %x_56:vec2<f32> = sub %28, %29
-        %31:f32 = access %x_36, 0u
-        %32:f32 = access %x_56, 0u
-        %33:f32 = access %x_56, 1u
-        %34:f32 = access %x_36, 3u
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_57, %35
-        %36:vec4<f32> = load %x_57
-        store %v1, %36
+        %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %33:f32 = load %32
+        %x_53:f32 = let %33
+        %35:f32 = access %x_36, 1u
+        %36:f32 = access %x_36, 2u
+        %37:vec2<f32> = construct %35, %36
+        %38:vec2<f32> = let %37
+        %39:vec2<f32> = construct %x_53, %x_53
+        %40:vec2<f32> = sub %38, %39
+        %x_56:vec2<f32> = let %40
+        %42:f32 = access %x_36, 0u
+        %43:f32 = access %x_56, 0u
+        %44:f32 = access %x_56, 1u
+        %45:f32 = access %x_36, 3u
+        %46:vec4<f32> = construct %42, %43, %44, %45
+        store %x_57, %46
+        %47:vec4<f32> = load %x_57
+        store %v1, %47
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        discard
+      $B4: {  # false
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
-    %37:vec4<f32> = load %x_57
-    store %x_GLF_color, %37
+    %48:vec4<f32> = load %x_57
+    store %x_GLF_color, %48
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    %53:bool = load %continue_execution
+    %54:bool = eq %53, false
+    if %54 [t: $B7] {  # if_3
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.msl
index f604119..aa82d4d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -32,7 +32,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
@@ -41,15 +41,15 @@
   %x_16:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func0_ = func():void -> %b2 {
-  %b2 = block {
+%func0_ = func():void {
+  $B2: {
     %tmp:ptr<function, vec4<f32>, read_write> = var
     %9:f32 = load_vector_element %gl_FragCoord, 0u
     %10:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
     %11:f32 = load %10
     %12:bool = gt %9, %11
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         %13:vec4<f32> = load %x_GLF_color
         store %tmp, %13
         exit_if  # if_1
@@ -60,23 +60,23 @@
     ret
   }
 }
-%func1_ = func():i32 -> %b4 {
-  %b4 = block {
+%func1_ = func():i32 {
+  $B4: {
     %a:ptr<function, i32, read_write> = var
     %17:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
     %18:i32 = load %17
     store %a, %18
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
         %19:i32 = load %a
         %20:ptr<uniform, i32, read> = access %x_12, 0u, 3i, 0u
         %21:i32 = load %20
         %22:bool = lt %19, %21
-        if %22 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        if %22 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
@@ -85,135 +85,137 @@
         %25:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
         %26:i32 = load %25
         %27:bool = gt %24, %26
-        if %27 [t: %b9, f: %b10] {  # if_3
-          %b9 = block {  # true
+        if %27 [t: $B9, f: $B10] {  # if_3
+          $B9: {  # true
             %28:void = call %func0_
             %29:ptr<uniform, i32, read> = access %x_12, 0u, 3i, 0u
             %30:i32 = load %29
             store %a, %30
             exit_if  # if_3
           }
-          %b10 = block {  # false
+          $B10: {  # false
             %31:void = call %func0_
             exit_if  # if_3
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
-    %x_144:i32 = load %a
+    %32:i32 = load %a
+    %x_144:i32 = let %32
     ret %x_144
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %a_1:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
-    %37:f32 = load_vector_element %gl_FragCoord, 0u
-    %38:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %39:f32 = load %38
-    %40:bool = gt %37, %39
-    if %40 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %41:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %42:f32 = load %41
-        %43:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %44:f32 = load %43
-        %45:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %46:f32 = load %45
-        %47:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %48:f32 = load %47
-        %49:vec4<f32> = construct %42, %44, %46, %48
-        store %x_GLF_color, %49
+    %38:f32 = load_vector_element %gl_FragCoord, 0u
+    %39:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %40:f32 = load %39
+    %41:bool = gt %38, %40
+    if %41 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %42:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %43:f32 = load %42
+        %44:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %45:f32 = load %44
+        %46:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %47:f32 = load %46
+        %48:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %49:f32 = load %48
+        %50:vec4<f32> = construct %43, %45, %47, %49
+        store %x_GLF_color, %50
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %50:ptr<uniform, u32, read> = access %x_16, 0u, 0i, 0u
-        %51:u32 = load %50
-        %52:vec4<f32> = unpack4x8snorm %51
-        store %x_GLF_color, %52
+      $B13: {  # false
+        %51:ptr<uniform, u32, read> = access %x_16, 0u, 0i, 0u
+        %52:u32 = load %51
+        %53:vec4<f32> = unpack4x8snorm %52
+        store %x_GLF_color, %53
         exit_if  # if_4
       }
     }
-    %53:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
-    %54:i32 = load %53
-    store %a_1, %54
+    %54:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
+    %55:i32 = load %54
+    store %a_1, %55
     store %i, 0i
-    loop [b: %b14, c: %b15] {  # loop_2
-      %b14 = block {  # body
-        %55:i32 = load %i
-        %56:bool = lt %55, 5i
-        if %56 [t: %b16, f: %b17] {  # if_5
-          %b16 = block {  # true
+    loop [b: $B14, c: $B15] {  # loop_2
+      $B14: {  # body
+        %56:i32 = load %i
+        %57:bool = lt %56, 5i
+        if %57 [t: $B16, f: $B17] {  # if_5
+          $B16: {  # true
             exit_if  # if_5
           }
-          %b17 = block {  # false
+          $B17: {  # false
             exit_loop  # loop_2
           }
         }
         store %j, 0i
-        loop [b: %b18, c: %b19] {  # loop_3
-          %b18 = block {  # body
-            %57:i32 = load %j
-            %58:bool = lt %57, 2i
-            if %58 [t: %b20, f: %b21] {  # if_6
-              %b20 = block {  # true
+        loop [b: $B18, c: $B19] {  # loop_3
+          $B18: {  # body
+            %58:i32 = load %j
+            %59:bool = lt %58, 2i
+            if %59 [t: $B20, f: $B21] {  # if_6
+              $B20: {  # true
                 exit_if  # if_6
               }
-              %b21 = block {  # false
+              $B21: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_91:i32 = call %func1_
-            %60:i32 = load %a_1
-            %61:i32 = add %60, %x_91
-            store %a_1, %61
-            continue %b19
+            %60:i32 = call %func1_
+            %x_91:i32 = let %60
+            %62:i32 = load %a_1
+            %63:i32 = add %62, %x_91
+            store %a_1, %63
+            continue  # -> $B19
           }
-          %b19 = block {  # continuing
-            %62:i32 = load %j
-            %63:i32 = add %62, 1i
-            store %j, %63
-            next_iteration %b18
+          $B19: {  # continuing
+            %64:i32 = load %j
+            %65:i32 = add %64, 1i
+            store %j, %65
+            next_iteration  # -> $B18
           }
         }
-        continue %b15
+        continue  # -> $B15
       }
-      %b15 = block {  # continuing
-        %64:i32 = load %i
-        %65:i32 = add %64, 1i
-        store %i, %65
-        next_iteration %b14
+      $B15: {  # continuing
+        %66:i32 = load %i
+        %67:i32 = add %66, 1i
+        store %i, %67
+        next_iteration  # -> $B14
       }
     }
-    %66:i32 = load %a_1
-    %67:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-    %68:i32 = load %67
-    %69:bool = eq %66, %68
-    if %69 [t: %b22] {  # if_7
-      %b22 = block {  # true
-        %70:f32 = load_vector_element %x_GLF_color, 2u
-        %71:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %72:f32 = load %71
-        %73:f32 = sub %70, %72
-        store_vector_element %x_GLF_color, 2u, %73
+    %68:i32 = load %a_1
+    %69:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+    %70:i32 = load %69
+    %71:bool = eq %68, %70
+    if %71 [t: $B22] {  # if_7
+      $B22: {  # true
+        %72:f32 = load_vector_element %x_GLF_color, 2u
+        %73:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %74:f32 = load %73
+        %75:f32 = sub %72, %74
+        store_vector_element %x_GLF_color, 2u, %75
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b23 {
-  %b23 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B23: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %76:void = call %main_1
-    %77:vec4<f32> = load %x_GLF_color
-    %78:main_out = construct %77
-    ret %78
+    %78:void = call %main_1
+    %79:vec4<f32> = load %x_GLF_color
+    %80:main_out = construct %79
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.msl
index 0a80ccc..a520842 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-output-undefined-in-unexecuted-branch/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -32,7 +32,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
@@ -41,179 +41,208 @@
   %x_16:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func0_ = func():void -> %b2 {
-  %b2 = block {
+%func0_ = func():void {
+  $B2: {
     %tmp:ptr<function, vec4<f32>, read_write> = var
-    %x_112:f32 = load_vector_element %gl_FragCoord, 0u
-    %10:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_114:f32 = load %10
-    %12:bool = gt %x_112, %x_114
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_118:vec4<f32> = load %x_GLF_color
+    %9:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_112:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %12:f32 = load %11
+    %x_114:f32 = let %12
+    %14:bool = gt %x_112, %x_114
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:vec4<f32> = load %x_GLF_color
+        %x_118:vec4<f32> = let %15
         store %tmp, %x_118
         exit_if  # if_1
       }
     }
-    %x_119:vec4<f32> = load %tmp
+    %17:vec4<f32> = load %tmp
+    %x_119:vec4<f32> = let %17
     store %x_GLF_color, %x_119
     ret
   }
 }
-%func1_ = func():i32 -> %b4 {
-  %b4 = block {
+%func1_ = func():i32 {
+  $B4: {
     %a:ptr<function, i32, read_write> = var
-    %17:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-    %x_122:i32 = load %17
+    %21:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+    %22:i32 = load %21
+    %x_122:i32 = let %22
     store %a, %x_122
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_127:i32 = load %a
-        %20:ptr<uniform, i32, read> = access %x_12, 0u, 3i, 0u
-        %x_129:i32 = load %20
-        %22:bool = lt %x_127, %x_129
-        if %22 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %24:i32 = load %a
+        %x_127:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_12, 0u, 3i, 0u
+        %27:i32 = load %26
+        %x_129:i32 = let %27
+        %29:bool = lt %x_127, %x_129
+        if %29 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %23:ptr<uniform, i32, read> = access %x_14, 0u
-        %x_133:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_135:i32 = load %25
-        %27:bool = gt %x_133, %x_135
-        if %27 [t: %b9, f: %b10] {  # if_3
-          %b9 = block {  # true
-            %28:void = call %func0_
-            %29:ptr<uniform, i32, read> = access %x_12, 0u, 3i, 0u
-            %x_142:i32 = load %29
+        %30:ptr<uniform, i32, read> = access %x_14, 0u
+        %31:i32 = load %30
+        %x_133:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_135:i32 = let %34
+        %36:bool = gt %x_133, %x_135
+        if %36 [t: $B9, f: $B10] {  # if_3
+          $B9: {  # true
+            %37:void = call %func0_
+            %38:ptr<uniform, i32, read> = access %x_12, 0u, 3i, 0u
+            %39:i32 = load %38
+            %x_142:i32 = let %39
             store %a, %x_142
             exit_if  # if_3
           }
-          %b10 = block {  # false
-            %31:void = call %func0_
+          $B10: {  # false
+            %41:void = call %func0_
             exit_if  # if_3
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
-    %x_144:i32 = load %a
+    %42:i32 = load %a
+    %x_144:i32 = let %42
     ret %x_144
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %a_1:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
-    %x_56:f32 = load_vector_element %gl_FragCoord, 0u
-    %38:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_58:f32 = load %38
-    %40:bool = gt %x_56, %x_58
-    if %40 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %41:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_64:f32 = load %41
-        %43:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_66:f32 = load %43
-        %45:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_68:f32 = load %45
-        %47:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_70:f32 = load %47
-        %49:vec4<f32> = construct %x_64, %x_66, %x_68, %x_70
-        store %x_GLF_color, %49
+    %48:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_56:f32 = let %48
+    %50:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %51:f32 = load %50
+    %x_58:f32 = let %51
+    %53:bool = gt %x_56, %x_58
+    if %53 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %54:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %55:f32 = load %54
+        %x_64:f32 = let %55
+        %57:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %58:f32 = load %57
+        %x_66:f32 = let %58
+        %60:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %61:f32 = load %60
+        %x_68:f32 = let %61
+        %63:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %64:f32 = load %63
+        %x_70:f32 = let %64
+        %66:vec4<f32> = construct %x_64, %x_66, %x_68, %x_70
+        store %x_GLF_color, %66
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %50:ptr<uniform, u32, read> = access %x_16, 0u, 0i, 0u
-        %x_73:u32 = load %50
-        %52:vec4<f32> = unpack4x8snorm %x_73
-        store %x_GLF_color, %52
+      $B13: {  # false
+        %67:ptr<uniform, u32, read> = access %x_16, 0u, 0i, 0u
+        %68:u32 = load %67
+        %x_73:u32 = let %68
+        %70:vec4<f32> = unpack4x8snorm %x_73
+        store %x_GLF_color, %70
         exit_if  # if_4
       }
     }
-    %53:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
-    %x_76:i32 = load %53
+    %71:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
+    %72:i32 = load %71
+    %x_76:i32 = let %72
     store %a_1, %x_76
     store %i, 0i
-    loop [b: %b14, c: %b15] {  # loop_2
-      %b14 = block {  # body
-        %x_81:i32 = load %i
-        %56:bool = lt %x_81, 5i
-        if %56 [t: %b16, f: %b17] {  # if_5
-          %b16 = block {  # true
+    loop [b: $B14, c: $B15] {  # loop_2
+      $B14: {  # body
+        %74:i32 = load %i
+        %x_81:i32 = let %74
+        %76:bool = lt %x_81, 5i
+        if %76 [t: $B16, f: $B17] {  # if_5
+          $B16: {  # true
             exit_if  # if_5
           }
-          %b17 = block {  # false
+          $B17: {  # false
             exit_loop  # loop_2
           }
         }
         store %j, 0i
-        loop [b: %b18, c: %b19] {  # loop_3
-          %b18 = block {  # body
-            %x_88:i32 = load %j
-            %58:bool = lt %x_88, 2i
-            if %58 [t: %b20, f: %b21] {  # if_6
-              %b20 = block {  # true
+        loop [b: $B18, c: $B19] {  # loop_3
+          $B18: {  # body
+            %77:i32 = load %j
+            %x_88:i32 = let %77
+            %79:bool = lt %x_88, 2i
+            if %79 [t: $B20, f: $B21] {  # if_6
+              $B20: {  # true
                 exit_if  # if_6
               }
-              %b21 = block {  # false
+              $B21: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_91:i32 = call %func1_
-            %x_92:i32 = load %a_1
-            %61:i32 = add %x_92, %x_91
-            store %a_1, %61
-            continue %b19
+            %80:i32 = call %func1_
+            %x_91:i32 = let %80
+            %82:i32 = load %a_1
+            %x_92:i32 = let %82
+            %84:i32 = add %x_92, %x_91
+            store %a_1, %84
+            continue  # -> $B19
           }
-          %b19 = block {  # continuing
-            %x_94:i32 = load %j
-            %63:i32 = add %x_94, 1i
-            store %j, %63
-            next_iteration %b18
+          $B19: {  # continuing
+            %85:i32 = load %j
+            %x_94:i32 = let %85
+            %87:i32 = add %x_94, 1i
+            store %j, %87
+            next_iteration  # -> $B18
           }
         }
-        continue %b15
+        continue  # -> $B15
       }
-      %b15 = block {  # continuing
-        %x_96:i32 = load %i
-        %65:i32 = add %x_96, 1i
-        store %i, %65
-        next_iteration %b14
+      $B15: {  # continuing
+        %88:i32 = load %i
+        %x_96:i32 = let %88
+        %90:i32 = add %x_96, 1i
+        store %i, %90
+        next_iteration  # -> $B14
       }
     }
-    %x_98:i32 = load %a_1
-    %67:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-    %x_100:i32 = load %67
-    %69:bool = eq %x_98, %x_100
-    if %69 [t: %b22] {  # if_7
-      %b22 = block {  # true
-        %70:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_105:f32 = load %70
-        %x_107:f32 = load_vector_element %x_GLF_color, 2u
-        %73:f32 = sub %x_107, %x_105
-        store_vector_element %x_GLF_color, 2u, %73
+    %91:i32 = load %a_1
+    %x_98:i32 = let %91
+    %93:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+    %94:i32 = load %93
+    %x_100:i32 = let %94
+    %96:bool = eq %x_98, %x_100
+    if %96 [t: $B22] {  # if_7
+      $B22: {  # true
+        %97:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %98:f32 = load %97
+        %x_105:f32 = let %98
+        %100:f32 = load_vector_element %x_GLF_color, 2u
+        %x_107:f32 = let %100
+        %102:f32 = sub %x_107, %x_105
+        store_vector_element %x_GLF_color, 2u, %102
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b23 {
-  %b23 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B23: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %76:void = call %main_1
-    %77:vec4<f32> = load %x_GLF_color
-    %78:main_out = construct %77
-    ret %78
+    %105:void = call %main_1
+    %106:vec4<f32> = load %x_GLF_color
+    %107:main_out = construct %106
+    ret %107
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.msl
index 4f7620e..bfb8275 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,64 +12,69 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:f32 = load %5
-    %7:f32 = load_vector_element %gl_FragCoord, 0u
-    %8:bool = gt %7, %x_35
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %10:f32 = load %9
-        %11:vec4<f32> = construct %10
-        store %x_GLF_color, %11
-        %12:f32 = load_vector_element %gl_FragCoord, 1u
-        %13:bool = gt %12, %x_35
-        if %13 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            %14:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-            %15:f32 = load %14
-            %16:vec4<f32> = construct %15
-            store %x_GLF_color, %16
+    %6:f32 = load %5
+    %x_35:f32 = let %6
+    %8:f32 = load_vector_element %gl_FragCoord, 0u
+    %9:bool = gt %8, %x_35
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %11:f32 = load %10
+        %12:vec4<f32> = construct %11
+        store %x_GLF_color, %12
+        %13:f32 = load_vector_element %gl_FragCoord, 1u
+        %14:bool = gt %13, %x_35
+        if %14 [t: $B4] {  # if_2
+          $B4: {  # true
+            %15:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+            %16:f32 = load %15
+            %17:vec4<f32> = construct %16
+            store %x_GLF_color, %17
             exit_if  # if_2
           }
         }
-        %17:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %18:f32 = load %17
-        %19:vec4<f32> = construct %18
-        store %x_GLF_color, %19
+        %18:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %19:f32 = load %18
+        %20:vec4<f32> = construct %19
+        store %x_GLF_color, %20
         exit_if  # if_1
       }
     }
-    %20:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_54:f32 = load %20
-    %22:vec4<f32> = construct %x_35, %x_54, %x_54, 10.0f
-    store %x_GLF_color, %22
-    %23:vec4<f32> = construct %x_35, 0.0f, 0.0f, 0.0f
-    %24:vec4<f32> = construct 0.0f, %x_35, 0.0f, 0.0f
-    %25:vec4<f32> = construct 0.0f, 0.0f, %x_35, 0.0f
-    %26:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_35
-    %27:mat4x4<f32> = construct %23, %24, %25, %26
-    %28:vec4<f32> = load %x_GLF_color
-    %29:vec4<f32> = mul %27, %28
-    store %x_GLF_color, %29
+    %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %22:f32 = load %21
+    %x_54:f32 = let %22
+    %24:vec4<f32> = construct %x_35, %x_54, %x_54, 10.0f
+    store %x_GLF_color, %24
+    %25:vec4<f32> = construct %x_35, 0.0f, 0.0f, 0.0f
+    %26:vec4<f32> = let %25
+    %27:vec4<f32> = construct 0.0f, %x_35, 0.0f, 0.0f
+    %28:vec4<f32> = let %27
+    %29:vec4<f32> = construct 0.0f, 0.0f, %x_35, 0.0f
+    %30:vec4<f32> = let %29
+    %31:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_35
+    %32:mat4x4<f32> = construct %26, %28, %30, %31
+    %33:vec4<f32> = load %x_GLF_color
+    %34:vec4<f32> = mul %32, %33
+    store %x_GLF_color, %34
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.msl
index dff3955..4bb0658 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-color-overwrite-identity-matrix-multiply/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,64 +12,75 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_33:f32 = load_vector_element %gl_FragCoord, 0u
-    %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:f32 = load %6
-    %8:bool = gt %x_33, %x_35
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_40:f32 = load %9
-        %11:vec4<f32> = construct %x_40, %x_40, %x_40, %x_40
-        store %x_GLF_color, %11
-        %x_43:f32 = load_vector_element %gl_FragCoord, 1u
-        %13:bool = gt %x_43, %x_35
-        if %13 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            %14:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-            %x_48:f32 = load %14
-            %16:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
-            store %x_GLF_color, %16
+%main_1 = func():void {
+  $B2: {
+    %5:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_33:f32 = let %5
+    %7:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %8:f32 = load %7
+    %x_35:f32 = let %8
+    %10:bool = gt %x_33, %x_35
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %12:f32 = load %11
+        %x_40:f32 = let %12
+        %14:vec4<f32> = construct %x_40, %x_40, %x_40, %x_40
+        store %x_GLF_color, %14
+        %15:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_43:f32 = let %15
+        %17:bool = gt %x_43, %x_35
+        if %17 [t: $B4] {  # if_2
+          $B4: {  # true
+            %18:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+            %19:f32 = load %18
+            %x_48:f32 = let %19
+            %21:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
+            store %x_GLF_color, %21
             exit_if  # if_2
           }
         }
-        %17:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_51:f32 = load %17
-        %19:vec4<f32> = construct %x_51, %x_51, %x_51, %x_51
-        store %x_GLF_color, %19
+        %22:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %23:f32 = load %22
+        %x_51:f32 = let %23
+        %25:vec4<f32> = construct %x_51, %x_51, %x_51, %x_51
+        store %x_GLF_color, %25
         exit_if  # if_1
       }
     }
-    %20:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_54:f32 = load %20
-    %22:vec4<f32> = construct %x_35, %x_54, %x_54, 10.0f
-    store %x_GLF_color, %22
-    %x_61:vec4<f32> = load %x_GLF_color
-    %24:vec4<f32> = construct %x_35, 0.0f, 0.0f, 0.0f
-    %25:vec4<f32> = construct 0.0f, %x_35, 0.0f, 0.0f
-    %26:vec4<f32> = construct 0.0f, 0.0f, %x_35, 0.0f
-    %27:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_35
-    %28:mat4x4<f32> = construct %24, %25, %26, %27
-    %29:vec4<f32> = mul %28, %x_61
+    %26:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %27:f32 = load %26
+    %x_54:f32 = let %27
+    %29:vec4<f32> = construct %x_35, %x_54, %x_54, 10.0f
     store %x_GLF_color, %29
+    %30:vec4<f32> = load %x_GLF_color
+    %x_61:vec4<f32> = let %30
+    %32:vec4<f32> = construct %x_35, 0.0f, 0.0f, 0.0f
+    %33:vec4<f32> = let %32
+    %34:vec4<f32> = construct 0.0f, %x_35, 0.0f, 0.0f
+    %35:vec4<f32> = let %34
+    %36:vec4<f32> = construct 0.0f, 0.0f, %x_35, 0.0f
+    %37:vec4<f32> = let %36
+    %38:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_35
+    %39:mat4x4<f32> = construct %33, %35, %37, %38
+    %40:vec4<f32> = mul %39, %x_61
+    store %x_GLF_color, %40
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.msl
index f66909a..528a968 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -16,14 +16,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %b:ptr<function, bool, read_write> = var
     store %b, true
     %6:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
@@ -31,15 +31,15 @@
     %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %9:f32 = load_vector_element %8, 1u
     %10:bool = gt %7, %9
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
         %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
         %12:f32 = load_vector_element %11, 0u
         %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
         %14:f32 = load_vector_element %13, 1u
         %15:bool = lt %12, %14
-        if %15 [t: %b4] {  # if_2
-          %b4 = block {  # true
+        if %15 [t: $B4] {  # if_2
+          $B4: {  # true
             store %b, false
             exit_if  # if_2
           }
@@ -48,42 +48,45 @@
       }
     }
     %16:bool = load %b
-    if %16 [t: %b5, f: %b6] {  # if_3
-      %b5 = block {  # true
+    if %16 [t: $B5, f: $B6] {  # if_3
+      $B5: {  # true
         %17:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
         %18:i32 = load %17
         %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:vec4<f32> = construct %19, %22, %25, %28
-        store %x_GLF_color, %29
+        %20:f32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %22:i32 = load %21
+        %23:f32 = convert %22
+        %24:f32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %26:i32 = load %25
+        %27:f32 = convert %26
+        %28:f32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:vec4<f32> = construct %20, %24, %28, %31
+        store %x_GLF_color, %32
         exit_if  # if_3
       }
-      %b6 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:vec4<f32> = construct %32
-        store %x_GLF_color, %33
+      $B6: {  # false
+        %33:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:vec4<f32> = construct %35
+        store %x_GLF_color, %36
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    ret %40
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.msl
index bd3f87f..fed6e18 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-combine-and-or-xor-gt-lt/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -16,30 +16,34 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %b:ptr<function, bool, read_write> = var
     store %b, true
     %6:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_38:f32 = load_vector_element %6, 0u
-    %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_40:f32 = load_vector_element %8, 1u
-    %10:bool = gt %x_38, %x_40
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_45:f32 = load_vector_element %11, 0u
+    %7:f32 = load_vector_element %6, 0u
+    %x_38:f32 = let %7
+    %9:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %10:f32 = load_vector_element %9, 1u
+    %x_40:f32 = let %10
+    %12:bool = gt %x_38, %x_40
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_47:f32 = load_vector_element %13, 1u
-        %15:bool = lt %x_45, %x_47
-        if %15 [t: %b4] {  # if_2
-          %b4 = block {  # true
+        %14:f32 = load_vector_element %13, 0u
+        %x_45:f32 = let %14
+        %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %17:f32 = load_vector_element %16, 1u
+        %x_47:f32 = let %17
+        %19:bool = lt %x_45, %x_47
+        if %19 [t: $B4] {  # if_2
+          $B4: {  # true
             store %b, false
             exit_if  # if_2
           }
@@ -47,43 +51,53 @@
         exit_if  # if_1
       }
     }
-    %x_51:bool = load %b
-    if %x_51 [t: %b5, f: %b6] {  # if_3
-      %b5 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_10:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_11:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_12:i32 = load %21
-        %23:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_13:i32 = load %23
-        %25:f32 = convert %x_10
-        %26:f32 = convert %x_11
-        %27:f32 = convert %x_12
-        %28:f32 = convert %x_13
-        %29:vec4<f32> = construct %25, %26, %27, %28
-        store %x_GLF_color, %29
+    %20:bool = load %b
+    %x_51:bool = let %20
+    if %x_51 [t: $B5, f: $B6] {  # if_3
+      $B5: {  # true
+        %22:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %23:i32 = load %22
+        %x_10:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %26:i32 = load %25
+        %x_11:i32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %29:i32 = load %28
+        %x_12:i32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %32:i32 = load %31
+        %x_13:i32 = let %32
+        %34:f32 = convert %x_10
+        %35:f32 = let %34
+        %36:f32 = convert %x_11
+        %37:f32 = let %36
+        %38:f32 = convert %x_12
+        %39:f32 = let %38
+        %40:f32 = convert %x_13
+        %41:vec4<f32> = construct %35, %37, %39, %40
+        store %x_GLF_color, %41
         exit_if  # if_3
       }
-      %b6 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_14:i32 = load %30
-        %x_65:f32 = convert %x_14
-        %33:vec4<f32> = construct %x_65, %x_65, %x_65, %x_65
-        store %x_GLF_color, %33
+      $B6: {  # false
+        %42:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_14:i32 = let %43
+        %45:f32 = convert %x_14
+        %x_65:f32 = let %45
+        %47:vec4<f32> = construct %x_65, %x_65, %x_65, %x_65
+        store %x_GLF_color, %47
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.msl
index b10dd50..638bd67 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
@@ -27,80 +27,83 @@
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %9:i32 = load %8
     store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %12:i32 = load %11
         %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %14:i32 = load %i
         %15:i32 = complement %14
         %16:bool = neq %15, 0i
-        if %16 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
             %17:i32 = load %a
             %18:i32 = add %17, 1i
             store %a, %18
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %19:i32 = load %i
         %20:i32 = add %19, 1i
         store %i, %20
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %21:i32 = load %a
     %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %23:i32 = load %22
     %24:bool = eq %21, %23
-    if %24 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    if %24 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %26:i32 = load %25
         %27:f32 = convert %26
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:vec4<f32> = construct %27, %30, %33, %36
-        store %x_GLF_color, %37
+        %28:f32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:f32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:vec4<f32> = construct %28, %32, %36, %39
+        store %x_GLF_color, %40
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %40
-        store %x_GLF_color, %41
+      $B9: {  # false
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:vec4<f32> = construct %43
+        store %x_GLF_color, %44
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %46:void = call %main_1
+    %47:vec4<f32> = load %x_GLF_color
+    %48:main_out = construct %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.msl
index 67e9a0f..05da0e5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-condition-loop-index-bitwise-not/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,95 +12,113 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_26:i32 = load %6
+    %7:i32 = load %6
+    %x_26:i32 = let %7
     store %a, %x_26
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_28:i32 = load %8
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_28:i32 = let %10
     store %i, %x_28
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_33:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_35:i32 = load %11
-        %13:bool = lt %x_33, %x_35
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_33:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %15:i32 = load %14
+        %x_35:i32 = let %15
+        %17:bool = lt %x_33, %x_35
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_38:i32 = load %i
-        %15:i32 = complement %x_38
-        %16:bool = neq %15, 0i
-        if %16 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_43:i32 = load %a
-            %18:i32 = add %x_43, 1i
-            store %a, %18
+        %18:i32 = load %i
+        %x_38:i32 = let %18
+        %20:i32 = complement %x_38
+        %21:bool = neq %20, 0i
+        if %21 [t: $B7] {  # if_2
+          $B7: {  # true
+            %22:i32 = load %a
+            %x_43:i32 = let %22
+            %24:i32 = add %x_43, 1i
+            store %a, %24
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_45:i32 = load %i
-        %20:i32 = add %x_45, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %25:i32 = load %i
+        %x_45:i32 = let %25
+        %27:i32 = add %x_45, 1i
+        store %i, %27
+        next_iteration  # -> $B3
       }
     }
-    %x_47:i32 = load %a
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_49:i32 = load %22
-    %24:bool = eq %x_47, %x_49
-    if %24 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_55:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_58:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_61:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_64:i32 = load %31
-        %33:f32 = convert %x_55
-        %34:f32 = convert %x_58
-        %35:f32 = convert %x_61
-        %36:f32 = convert %x_64
-        %37:vec4<f32> = construct %33, %34, %35, %36
-        store %x_GLF_color, %37
+    %28:i32 = load %a
+    %x_47:i32 = let %28
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %31:i32 = load %30
+    %x_49:i32 = let %31
+    %33:bool = eq %x_47, %x_49
+    if %33 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %35:i32 = load %34
+        %x_55:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_58:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %x_61:i32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_64:i32 = let %44
+        %46:f32 = convert %x_55
+        %47:f32 = let %46
+        %48:f32 = convert %x_58
+        %49:f32 = let %48
+        %50:f32 = convert %x_61
+        %51:f32 = let %50
+        %52:f32 = convert %x_64
+        %53:vec4<f32> = construct %47, %49, %51, %52
+        store %x_GLF_color, %53
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_68:i32 = load %38
-        %x_69:f32 = convert %x_68
-        %41:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
-        store %x_GLF_color, %41
+      $B9: {  # false
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %55:i32 = load %54
+        %x_68:i32 = let %55
+        %57:f32 = convert %x_68
+        %x_69:f32 = let %57
+        %59:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
+        store %x_GLF_color, %59
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.msl
index 8a40bfd..8ea76f0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -24,88 +24,100 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 1i
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %9:i32 = load %8
-    %10:f32 = convert %9
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %12:i32 = load %11
-    %13:f32 = convert %12
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %15:i32 = load %14
-    %16:f32 = convert %15
-    %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %10:i32 = load %9
+    %11:f32 = convert %10
+    %12:f32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %14:i32 = load %13
+    %15:f32 = convert %14
+    %16:f32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %18:i32 = load %17
     %19:f32 = convert %18
-    %20:vec4<f32> = construct %10, %13, %16, %19
-    store %x_GLF_color, %20
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %20:f32 = let %19
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %22:i32 = load %21
-    store %i, %22
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %23:i32 = load %i
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %25:i32 = load %24
-        %26:bool = lt %23, %25
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %23:f32 = convert %22
+    %24:vec4<f32> = construct %12, %16, %20, %23
+    store %x_GLF_color, %24
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %26:i32 = load %25
+    store %i, %26
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %27:i32 = load %i
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %29:i32 = load %28
+        %30:bool = lt %27, %29
+        if %30 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_61:i32 = load %a
-        %28:i32 = load %a
-        %29:i32 = add %28, 1i
-        store %a, %29
-        %30:bool = gt %x_61, 3i
-        if %30 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %31:i32 = load %a
+        %x_61:i32 = let %31
+        %33:i32 = load %a
+        %34:i32 = add %33, 1i
+        store %a, %34
+        %35:bool = gt %x_61, 3i
+        if %35 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %31:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %32:f32 = load_vector_element %31, 0u
-        %33:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-        %34:f32 = load %33
-        %35:bool = gt %32, %34
-        if %35 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            discard
+        %36:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %37:f32 = load_vector_element %36, 0u
+        %38:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+        %39:f32 = load %38
+        %40:bool = gt %37, %39
+        if %40 [t: $B8] {  # if_3
+          $B8: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %i
-        %37:i32 = add %36, 1i
-        store %i, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %i
+        %42:i32 = add %41, 1i
+        store %i, %42
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    %47:bool = load %continue_execution
+    %48:bool = eq %47, false
+    if %48 [t: $B10] {  # if_4
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.msl
index cc0f6a9..e9bc577 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-conditional-discard-inside-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -24,87 +24,109 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 1i
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_41:i32 = load %10
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %10:i32 = load %9
+    %x_38:i32 = let %10
     %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_44:i32 = load %12
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_47:i32 = load %14
-    %16:f32 = convert %x_38
-    %17:f32 = convert %x_41
-    %18:f32 = convert %x_44
-    %19:f32 = convert %x_47
-    %20:vec4<f32> = construct %16, %17, %18, %19
-    store %x_GLF_color, %20
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_51:i32 = load %21
+    %13:i32 = load %12
+    %x_41:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %16:i32 = load %15
+    %x_44:i32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %19:i32 = load %18
+    %x_47:i32 = let %19
+    %21:f32 = convert %x_38
+    %22:f32 = let %21
+    %23:f32 = convert %x_41
+    %24:f32 = let %23
+    %25:f32 = convert %x_44
+    %26:f32 = let %25
+    %27:f32 = convert %x_47
+    %28:vec4<f32> = construct %22, %24, %26, %27
+    store %x_GLF_color, %28
+    %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %30:i32 = load %29
+    %x_51:i32 = let %30
     store %i, %x_51
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_56:i32 = load %i
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_58:i32 = load %24
-        %26:bool = lt %x_56, %x_58
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %32:i32 = load %i
+        %x_56:i32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %35:i32 = load %34
+        %x_58:i32 = let %35
+        %37:bool = lt %x_56, %x_58
+        if %37 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_61:i32 = load %a
-        %28:i32 = add %x_61, 1i
-        store %a, %28
-        %29:bool = gt %x_61, 3i
-        if %29 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %38:i32 = load %a
+        %x_61:i32 = let %38
+        %40:i32 = add %x_61, 1i
+        store %a, %40
+        %41:bool = gt %x_61, 3i
+        if %41 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %30:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_67:f32 = load_vector_element %30, 0u
-        %32:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-        %x_69:f32 = load %32
-        %34:bool = gt %x_67, %x_69
-        if %34 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            discard
+        %42:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %43:f32 = load_vector_element %42, 0u
+        %x_67:f32 = let %43
+        %45:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+        %46:f32 = load %45
+        %x_69:f32 = let %46
+        %48:bool = gt %x_67, %x_69
+        if %48 [t: $B8] {  # if_3
+          $B8: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_73:i32 = load %i
-        %36:i32 = add %x_73, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %49:i32 = load %i
+        %x_73:i32 = let %49
+        %51:i32 = add %x_73, 1i
+        store %i, %51
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %53:void = call %main_1
+    %54:vec4<f32> = load %x_GLF_color
+    %55:main_out = construct %54
+    %56:bool = load %continue_execution
+    %57:bool = eq %56, false
+    if %57 [t: $B10] {  # if_4
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %55
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.msl
index 0c0c661..d6f5b52 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   quarter:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
     %6:f32 = load %5
@@ -24,12 +24,12 @@
     %9:vec4<f32> = load %v
     %10:vec4<bool> = eq %9, vec4<f32>(425.0f, 1.0f, 2.0f, 20.0f)
     %11:bool = all %10
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -37,8 +37,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %13:void = call %main_1
     %14:vec4<f32> = load %x_GLF_color
     %15:main_out = construct %14
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.msl
index c77e92e..1205de9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-ceil-vec4/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   quarter:f32 @offset(0)
 }
 
@@ -8,28 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_32:f32 = load %5
-    %7:vec4<f32> = construct 424.113006591796875f, %x_32, 1.29999995231628417969f, 19.6200008392333984375f
-    %8:vec4<f32> = ceil %7
-    store %v, %8
-    %x_35:vec4<f32> = load %v
-    %10:vec4<bool> = eq %x_35, vec4<f32>(425.0f, 1.0f, 2.0f, 20.0f)
-    %11:bool = all %10
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load %5
+    %x_32:f32 = let %6
+    %8:vec4<f32> = construct 424.113006591796875f, %x_32, 1.29999995231628417969f, 19.6200008392333984375f
+    %9:vec4<f32> = ceil %8
+    store %v, %9
+    %10:vec4<f32> = load %v
+    %x_35:vec4<f32> = let %10
+    %12:vec4<bool> = eq %x_35, vec4<f32>(425.0f, 1.0f, 2.0f, 20.0f)
+    %13:bool = all %12
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -37,12 +39,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %13:void = call %main_1
-    %14:vec4<f32> = load %x_GLF_color
-    %15:main_out = construct %14
-    ret %15
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.msl
index efdd3b1..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.msl
index efdd3b1..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-inside-while/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.msl
index 30f98f3..a3781d3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:f32 @offset(0)
 }
 
@@ -8,28 +8,29 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u
     %5:f32 = load %4
     %6:f32 = clamp 2.0f, %5, 1.0f
-    %7:ptr<uniform, f32, read> = access %x_5, 0u
-    %8:f32 = load %7
-    %9:f32 = clamp -1.0f, 0.0f, %8
-    %10:vec4<f32> = construct %6, %9, 0.0f, 1.0f
-    %11:vec4<bool> = neq %10, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    %12:bool = any %11
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:f32 = let %6
+    %8:ptr<uniform, f32, read> = access %x_5, 0u
+    %9:f32 = load %8
+    %10:f32 = clamp -1.0f, 0.0f, %9
+    %11:vec4<f32> = construct %7, %10, 0.0f, 1.0f
+    %12:vec4<bool> = neq %11, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %13:bool = any %12
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
@@ -37,12 +38,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.msl
index b50cf16..b75c2d0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-min/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:f32 @offset(0)
 }
 
@@ -8,28 +8,31 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_25:f32 = load %4
-    %6:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_28:f32 = load %6
-    %8:f32 = clamp 2.0f, %x_25, 1.0f
-    %9:f32 = clamp -1.0f, 0.0f, %x_28
-    %10:vec4<f32> = construct %8, %9, 0.0f, 1.0f
-    %11:vec4<bool> = neq %10, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    %12:bool = any %11
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:f32 = load %4
+    %x_25:f32 = let %5
+    %7:ptr<uniform, f32, read> = access %x_5, 0u
+    %8:f32 = load %7
+    %x_28:f32 = let %8
+    %10:f32 = clamp 2.0f, %x_25, 1.0f
+    %11:f32 = let %10
+    %12:f32 = clamp -1.0f, 0.0f, %x_28
+    %13:vec4<f32> = construct %11, %12, 0.0f, 1.0f
+    %14:vec4<bool> = neq %13, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %15:bool = any %14
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
@@ -37,12 +40,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    ret %19
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.msl
index d87e38b..8c7a37c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %5:ptr<uniform, f32, read> = access %x_6, 0u
@@ -25,12 +25,12 @@
     %9:ptr<uniform, f32, read> = access %x_6, 0u
     %10:f32 = load %9
     %11:bool = gt %8, %10
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %12:f32 = load %f
         %13:vec4<f32> = construct %12, 0.0f, 0.0f, 1.0f
         store %x_GLF_color, %13
@@ -40,8 +40,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.msl
index 5335a88..7df7c0f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp-vs-original/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,44 +8,48 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %5:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_23:f32 = load %5
-    %7:f32 = clamp %x_23, 1.0f, 1.0f
-    store %f, %7
-    %x_25:f32 = load %f
-    %9:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_27:f32 = load %9
-    %11:bool = gt %x_25, %x_27
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load %5
+    %x_23:f32 = let %6
+    %8:f32 = clamp %x_23, 1.0f, 1.0f
+    store %f, %8
+    %9:f32 = load %f
+    %x_25:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u
+    %12:f32 = load %11
+    %x_27:f32 = let %12
+    %14:bool = gt %x_25, %x_27
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_32:f32 = load %f
-        %13:vec4<f32> = construct %x_32, 0.0f, 0.0f, 1.0f
-        store %x_GLF_color, %13
+      $B4: {  # false
+        %15:f32 = load %f
+        %x_32:f32 = let %15
+        %17:vec4<f32> = construct %x_32, 0.0f, 0.0f, 1.0f
+        store %x_GLF_color, %17
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.msl
index 8b83677..9a115ae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   fourtytwo:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, bool, read_write> = var
     %x_37:ptr<function, bool, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_5, 0u
@@ -22,30 +22,31 @@
     %8:ptr<uniform, f32, read> = access %x_5, 0u
     %9:f32 = load %8
     %10:f32 = clamp 1.0f, %7, %9
-    %x_27:bool = gt %10, 42.0f
+    %11:bool = gt %10, 42.0f
+    %x_27:bool = let %11
     store %x_37, %x_27
-    %12:bool = eq %x_27, false
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %13:ptr<uniform, f32, read> = access %x_5, 0u
-        %14:f32 = load %13
-        %15:ptr<uniform, f32, read> = access %x_5, 0u
-        %16:f32 = load %15
-        %17:f32 = clamp 1.0f, %14, %16
-        %18:bool = lt %17, 42.0f
-        store %x_36, %18
-        %19:bool = load %x_36
-        store %x_37, %19
+    %13:bool = eq %x_27, false
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:ptr<uniform, f32, read> = access %x_5, 0u
+        %15:f32 = load %14
+        %16:ptr<uniform, f32, read> = access %x_5, 0u
+        %17:f32 = load %16
+        %18:f32 = clamp 1.0f, %15, %17
+        %19:bool = lt %18, 42.0f
+        store %x_36, %19
+        %20:bool = load %x_36
+        store %x_37, %20
         exit_if  # if_1
       }
     }
-    %20:bool = load %x_37
-    if %20 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %21:bool = load %x_37
+    if %21 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
@@ -53,12 +54,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.msl
index 97ad25f..de6f3ec 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-clamp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   fourtytwo:f32 @offset(0)
 }
 
@@ -8,44 +8,50 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, bool, read_write> = var
     %x_37_phi:ptr<function, bool, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_23:f32 = load %6
-    %8:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_25:f32 = load %8
-    %10:f32 = clamp 1.0f, %x_23, %x_25
-    %x_27:bool = gt %10, 42.0f
+    %7:f32 = load %6
+    %x_23:f32 = let %7
+    %9:ptr<uniform, f32, read> = access %x_5, 0u
+    %10:f32 = load %9
+    %x_25:f32 = let %10
+    %12:f32 = clamp 1.0f, %x_23, %x_25
+    %13:bool = gt %12, 42.0f
+    %x_27:bool = let %13
     store %x_37_phi, %x_27
-    %12:bool = eq %x_27, false
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %13:ptr<uniform, f32, read> = access %x_5, 0u
-        %x_32:f32 = load %13
-        %15:ptr<uniform, f32, read> = access %x_5, 0u
-        %x_34:f32 = load %15
-        %17:f32 = clamp 1.0f, %x_32, %x_34
-        %18:bool = lt %17, 42.0f
-        store %x_36, %18
-        %19:bool = load %x_36
-        store %x_37_phi, %19
+    %15:bool = eq %x_27, false
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<uniform, f32, read> = access %x_5, 0u
+        %17:f32 = load %16
+        %x_32:f32 = let %17
+        %19:ptr<uniform, f32, read> = access %x_5, 0u
+        %20:f32 = load %19
+        %x_34:f32 = let %20
+        %22:f32 = clamp 1.0f, %x_32, %x_34
+        %23:bool = lt %22, 42.0f
+        store %x_36, %23
+        %24:bool = load %x_36
+        store %x_37_phi, %24
         exit_if  # if_1
       }
     }
-    %x_37:bool = load %x_37_phi
-    if %x_37 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %25:bool = load %x_37_phi
+    %x_37:bool = let %25
+    if %x_37 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
@@ -53,12 +59,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.msl
index efdd3b1..0bfdeba 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: dot
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.msl
index efdd3b1..0bfdeba 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-dot-condition-true/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: dot
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.msl
index 7edbef7..2a5511a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,26 +8,26 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:f32 = load_vector_element %gl_FragCoord, 0u
     %6:ptr<uniform, f32, read> = access %x_6, 0u
     %7:f32 = load %6
     %8:f32 = add 2.0f, %7
     %9:f32 = clamp %5, 1.0f, %8
     %10:bool = gte 3.0f, %9
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -35,8 +35,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
     %13:void = call %main_1
     %14:vec4<f32> = load %x_GLF_color
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.msl
index c509e16..a353623 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-gte-const-first/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,26 +8,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_29:f32 = load_vector_element %gl_FragCoord, 0u
-    %6:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_31:f32 = load %6
-    %8:f32 = add 2.0f, %x_31
-    %9:f32 = clamp %x_29, 1.0f, %8
-    %10:bool = gte 3.0f, %9
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+%main_1 = func():void {
+  $B2: {
+    %5:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_29:f32 = let %5
+    %7:ptr<uniform, f32, read> = access %x_6, 0u
+    %8:f32 = load %7
+    %x_31:f32 = let %8
+    %10:f32 = add 2.0f, %x_31
+    %11:f32 = clamp %x_29, 1.0f, %10
+    %12:bool = gte 3.0f, %11
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -35,13 +37,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %13:void = call %main_1
-    %14:vec4<f32> = load %x_GLF_color
-    %15:main_out = construct %14
-    ret %15
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.msl
index 5765707..739c8c3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %highSigned:ptr<function, i32, read_write> = var
     %highUnsigned:ptr<function, u32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -25,88 +25,94 @@
     store %highSigned, 1i
     store %highUnsigned, 2u
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
-        %12:i32 = load %highSigned
-        %13:i32 = min 10i, %12
-        %14:ptr<uniform, i32, read> = access %x_8, 0u
-        %15:i32 = load %14
-        %16:i32 = add %13, %15
-        %17:bool = lt %11, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %12:i32 = let %11
+        %13:i32 = load %highSigned
+        %14:i32 = min 10i, %13
+        %15:ptr<uniform, i32, read> = access %x_8, 0u
+        %16:i32 = load %15
+        %17:i32 = add %14, %16
+        %18:bool = lt %12, %17
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %19:ptr<function, i32, read_write> = access %data, %x_50
-        store %19, 5i
-        continue %b4
+        %19:i32 = load %i
+        %x_50:i32 = let %19
+        %21:ptr<function, i32, read_write> = access %data, %x_50
+        store %21, 5i
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %20:i32 = load %i
-        %21:i32 = add %20, 1i
-        store %i, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %22:i32 = load %i
+        %23:i32 = add %22, 1i
+        store %i, %23
+        next_iteration  # -> $B3
       }
     }
     store %i_1, 1u
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %22:u32 = load %i_1
-        %23:u32 = load %highUnsigned
-        %24:u32 = min 10u, %23
-        %25:ptr<uniform, i32, read> = access %x_8, 0u
-        %26:i32 = load %25
-        %27:u32 = bitcast %26
-        %28:u32 = add %24, %27
-        %29:bool = lt %22, %28
-        if %29 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %24:u32 = load %i_1
+        %25:u32 = let %24
+        %26:u32 = load %highUnsigned
+        %27:u32 = min 10u, %26
+        %28:u32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_8, 0u
+        %30:i32 = load %29
+        %31:u32 = bitcast %30
+        %32:u32 = add %28, %31
+        %33:bool = lt %25, %32
+        if %33 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_67:u32 = load %i_1
-        %31:ptr<function, i32, read_write> = access %data, %x_67
-        store %31, 6i
-        continue %b8
+        %34:u32 = load %i_1
+        %x_67:u32 = let %34
+        %36:ptr<function, i32, read_write> = access %data, %x_67
+        store %36, 6i
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %32:u32 = load %i_1
-        %33:u32 = add %32, 1u
-        store %i_1, %33
-        next_iteration %b7
+      $B8: {  # continuing
+        %37:u32 = load %i_1
+        %38:u32 = add %37, 1u
+        store %i_1, %38
+        next_iteration  # -> $B7
       }
     }
-    %34:ptr<function, i32, read_write> = access %data, 0i
-    %35:i32 = load %34
-    %x_73:bool = eq %35, 5i
+    %39:ptr<function, i32, read_write> = access %data, 0i
+    %40:i32 = load %39
+    %41:bool = eq %40, 5i
+    %x_73:bool = let %41
     store %x_79, %x_73
-    if %x_73 [t: %b11] {  # if_3
-      %b11 = block {  # true
-        %37:ptr<function, i32, read_write> = access %data, 1i
-        %38:i32 = load %37
-        %39:bool = eq %38, 6i
-        store %x_78, %39
-        %40:bool = load %x_78
-        store %x_79, %40
+    if %x_73 [t: $B11] {  # if_3
+      $B11: {  # true
+        %43:ptr<function, i32, read_write> = access %data, 1i
+        %44:i32 = load %43
+        %45:bool = eq %44, 6i
+        store %x_78, %45
+        %46:bool = load %x_78
+        store %x_79, %46
         exit_if  # if_3
       }
     }
-    %41:bool = load %x_79
-    if %41 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
+    %47:bool = load %x_79
+    if %47 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_4
       }
-      %b13 = block {  # false
+      $B13: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -114,12 +120,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.msl
index c7ea801..6cdc344 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-min-as-loop-range/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %highSigned:ptr<function, i32, read_write> = var
     %highUnsigned:ptr<function, u32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -25,88 +25,103 @@
     store %highSigned, 1i
     store %highUnsigned, 2u
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_42:i32 = load %i
-        %x_43:i32 = load %highSigned
-        %13:ptr<uniform, i32, read> = access %x_8, 0u
-        %x_46:i32 = load %13
-        %15:i32 = min 10i, %x_43
-        %16:i32 = add %15, %x_46
-        %17:bool = lt %x_42, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %11:i32 = load %i
+        %x_42:i32 = let %11
+        %13:i32 = load %highSigned
+        %x_43:i32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_8, 0u
+        %16:i32 = load %15
+        %x_46:i32 = let %16
+        %18:i32 = min 10i, %x_43
+        %19:i32 = add %18, %x_46
+        %20:bool = lt %x_42, %19
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %19:ptr<function, i32, read_write> = access %data, %x_50
-        store %19, 5i
-        continue %b4
+        %21:i32 = load %i
+        %x_50:i32 = let %21
+        %23:ptr<function, i32, read_write> = access %data, %x_50
+        store %23, 5i
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_52:i32 = load %i
-        %21:i32 = add %x_52, 1i
-        store %i, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %24:i32 = load %i
+        %x_52:i32 = let %24
+        %26:i32 = add %x_52, 1i
+        store %i, %26
+        next_iteration  # -> $B3
       }
     }
     store %i_1, 1u
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %x_58:u32 = load %i_1
-        %x_59:u32 = load %highUnsigned
-        %24:ptr<uniform, i32, read> = access %x_8, 0u
-        %x_62:i32 = load %24
-        %26:u32 = min 10u, %x_59
-        %27:u32 = bitcast %x_62
-        %28:u32 = add %26, %27
-        %29:bool = lt %x_58, %28
-        if %29 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %27:u32 = load %i_1
+        %x_58:u32 = let %27
+        %29:u32 = load %highUnsigned
+        %x_59:u32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_8, 0u
+        %32:i32 = load %31
+        %x_62:i32 = let %32
+        %34:u32 = min 10u, %x_59
+        %35:u32 = let %34
+        %36:u32 = bitcast %x_62
+        %37:u32 = add %35, %36
+        %38:bool = lt %x_58, %37
+        if %38 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_67:u32 = load %i_1
-        %31:ptr<function, i32, read_write> = access %data, %x_67
-        store %31, 6i
-        continue %b8
+        %39:u32 = load %i_1
+        %x_67:u32 = let %39
+        %41:ptr<function, i32, read_write> = access %data, %x_67
+        store %41, 6i
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_69:u32 = load %i_1
-        %33:u32 = add %x_69, 1u
-        store %i_1, %33
-        next_iteration %b7
+      $B8: {  # continuing
+        %42:u32 = load %i_1
+        %x_69:u32 = let %42
+        %44:u32 = add %x_69, 1u
+        store %i_1, %44
+        next_iteration  # -> $B7
       }
     }
-    %34:ptr<function, i32, read_write> = access %data, 0i
-    %x_72:i32 = load %34
-    %x_73:bool = eq %x_72, 5i
+    %45:ptr<function, i32, read_write> = access %data, 0i
+    %46:i32 = load %45
+    %x_72:i32 = let %46
+    %48:bool = eq %x_72, 5i
+    %x_73:bool = let %48
     store %x_79_phi, %x_73
-    if %x_73 [t: %b11] {  # if_3
-      %b11 = block {  # true
-        %37:ptr<function, i32, read_write> = access %data, 1i
-        %x_77:i32 = load %37
-        %39:bool = eq %x_77, 6i
-        store %x_78, %39
-        %40:bool = load %x_78
-        store %x_79_phi, %40
+    if %x_73 [t: $B11] {  # if_3
+      $B11: {  # true
+        %50:ptr<function, i32, read_write> = access %data, 1i
+        %51:i32 = load %50
+        %x_77:i32 = let %51
+        %53:bool = eq %x_77, 6i
+        store %x_78, %53
+        %54:bool = load %x_78
+        store %x_79_phi, %54
         exit_if  # if_3
       }
     }
-    %x_79:bool = load %x_79_phi
-    if %x_79 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
+    %55:bool = load %x_79_phi
+    %x_79:bool = let %55
+    if %x_79 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_4
       }
-      %b13 = block {  # false
+      $B13: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -114,12 +129,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.msl
index 1c5f1fa..f6827e5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,46 +12,48 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    if true [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+%main_1 = func():void {
+  $B2: {
+    if true [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %4:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
         %5:i32 = load %4
         %6:f32 = convert %5
-        %7:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %8:i32 = load %7
-        %9:f32 = convert %8
-        %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %11:i32 = load %10
-        %12:f32 = convert %11
-        %13:vec4<f32> = construct 1.0f, %6, %9, %12
-        store %x_GLF_color, %13
+        %7:f32 = let %6
+        %8:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %9:i32 = load %8
+        %10:f32 = convert %9
+        %11:f32 = let %10
+        %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %13:i32 = load %12
+        %14:f32 = convert %13
+        %15:vec4<f32> = construct 1.0f, %7, %11, %14
+        store %x_GLF_color, %15
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %15:i32 = load %14
-        %16:f32 = convert %15
-        %17:vec4<f32> = construct %16
-        store %x_GLF_color, %17
+      $B4: {  # false
+        %16:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %17:i32 = load %16
+        %18:f32 = convert %17
+        %19:vec4<f32> = construct %18
+        store %x_GLF_color, %19
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.msl
index 916c106..8839763 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-mod-one-one-lte/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,46 +12,53 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    if true [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+%main_1 = func():void {
+  $B2: {
+    if true [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %4:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_29:i32 = load %4
-        %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_32:i32 = load %6
-        %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_35:i32 = load %8
-        %10:f32 = convert %x_29
-        %11:f32 = convert %x_32
-        %12:f32 = convert %x_35
-        %13:vec4<f32> = construct 1.0f, %10, %11, %12
-        store %x_GLF_color, %13
+        %5:i32 = load %4
+        %x_29:i32 = let %5
+        %7:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %8:i32 = load %7
+        %x_32:i32 = let %8
+        %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %11:i32 = load %10
+        %x_35:i32 = let %11
+        %13:f32 = convert %x_29
+        %14:f32 = let %13
+        %15:f32 = convert %x_32
+        %16:f32 = let %15
+        %17:f32 = convert %x_35
+        %18:vec4<f32> = construct 1.0f, %14, %16, %17
+        store %x_GLF_color, %18
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_39:i32 = load %14
-        %x_40:f32 = convert %x_39
-        %17:vec4<f32> = construct %x_40, %x_40, %x_40, %x_40
-        store %x_GLF_color, %17
+      $B4: {  # false
+        %19:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_39:i32 = let %20
+        %22:f32 = convert %x_39
+        %x_40:f32 = let %22
+        %24:vec4<f32> = construct %x_40, %x_40, %x_40, %x_40
+        store %x_GLF_color, %24
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %26:void = call %main_1
+    %27:vec4<f32> = load %x_GLF_color
+    %28:main_out = construct %27
+    ret %28
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.msl
index f871052..7f460cd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %x_48:ptr<function, bool, read_write> = var
     %x_49:ptr<function, bool, read_write> = var
@@ -39,58 +39,62 @@
     %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %13:i32 = load %12
     %14:i32 = add %11, %13
-    %x_41:bool = eq %9, %14
+    %15:bool = eq %9, %14
+    %x_41:bool = let %15
     store %x_49, %x_41
-    %16:bool = eq %x_41, false
-    if %16 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %17:f32 = load %f
-        %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %19:f32 = load %18
-        %20:bool = gt %17, %19
-        store %x_48, %20
-        %21:bool = load %x_48
-        store %x_49, %21
+    %17:bool = eq %x_41, false
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:f32 = load %f
+        %19:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %20:f32 = load %19
+        %21:bool = gt %18, %20
+        store %x_48, %21
+        %22:bool = load %x_48
+        store %x_49, %22
         exit_if  # if_1
       }
     }
-    %22:bool = load %x_49
-    if %22 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %23:bool = load %x_49
+    if %23 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %33:i32 = load %32
         %34:f32 = convert %33
-        %35:vec4<f32> = construct %25, %28, %31, %34
-        store %x_GLF_color, %35
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %38
+        %39:vec4<f32> = construct %27, %31, %35, %38
         store %x_GLF_color, %39
         exit_if  # if_2
       }
+      $B5: {  # false
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %42
+        store %x_GLF_color, %43
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.msl
index abe9cfd..140da70 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-pow-large-exp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,77 +20,93 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %x_48:ptr<function, bool, read_write> = var
     %x_49_phi:ptr<function, bool, read_write> = var
     store %f, 1626.509033203125f
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_37:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_39:i32 = load %12
-    %14:i32 = add %x_37, %x_39
-    %x_41:bool = eq %x_35, %14
+    %9:i32 = load %8
+    %x_35:i32 = let %9
+    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_37:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_39:i32 = let %15
+    %17:i32 = add %x_37, %x_39
+    %18:bool = eq %x_35, %17
+    %x_41:bool = let %18
     store %x_49_phi, %x_41
-    %16:bool = eq %x_41, false
-    if %16 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_45:f32 = load %f
-        %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_47:f32 = load %18
-        %20:bool = gt %x_45, %x_47
-        store %x_48, %20
-        %21:bool = load %x_48
-        store %x_49_phi, %21
+    %20:bool = eq %x_41, false
+    if %20 [t: $B3] {  # if_1
+      $B3: {  # true
+        %21:f32 = load %f
+        %x_45:f32 = let %21
+        %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %24:f32 = load %23
+        %x_47:f32 = let %24
+        %26:bool = gt %x_45, %x_47
+        store %x_48, %26
+        %27:bool = load %x_48
+        store %x_49_phi, %27
         exit_if  # if_1
       }
     }
-    %x_49:bool = load %x_49_phi
-    if %x_49 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_54:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_57:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_60:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_63:i32 = load %29
-        %31:f32 = convert %x_54
-        %32:f32 = convert %x_57
-        %33:f32 = convert %x_60
-        %34:f32 = convert %x_63
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_GLF_color, %35
+    %28:bool = load %x_49_phi
+    %x_49:bool = let %28
+    if %x_49 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %31:i32 = load %30
+        %x_54:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_57:i32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %37:i32 = load %36
+        %x_60:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %40:i32 = load %39
+        %x_63:i32 = let %40
+        %42:f32 = convert %x_54
+        %43:f32 = let %42
+        %44:f32 = convert %x_57
+        %45:f32 = let %44
+        %46:f32 = convert %x_60
+        %47:f32 = let %46
+        %48:f32 = convert %x_63
+        %49:vec4<f32> = construct %43, %45, %47, %48
+        store %x_GLF_color, %49
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_67:i32 = load %36
-        %x_68:f32 = convert %x_67
-        %39:vec4<f32> = construct %x_68, %x_68, %x_68, %x_68
-        store %x_GLF_color, %39
+      $B5: {  # false
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %51:i32 = load %50
+        %x_67:i32 = let %51
+        %53:f32 = convert %x_67
+        %x_68:f32 = let %53
+        %55:vec4<f32> = construct %x_68, %x_68, %x_68, %x_68
+        store %x_GLF_color, %55
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.msl
index b1220a7..970346c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,66 +8,64 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, bool, read_write> = var
     %x_31:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %6:ptr<uniform, f32, read> = access %x_5, 0u
     %7:f32 = load %6
-    %x_24:bool = lt %7, 0.0f
+    %8:bool = lt %7, 0.0f
+    %x_24:bool = let %8
     store %x_31, %x_24
-    %9:bool = eq %x_24, false
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %10:ptr<uniform, f32, read> = access %x_5, 0u
-        %11:f32 = load %10
-        %12:bool = lt %11, 1.0f
-        store %x_30, %12
-        %13:bool = load %x_30
-        store %x_31, %13
+    %10:bool = eq %x_24, false
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<uniform, f32, read> = access %x_5, 0u
+        %12:f32 = load %11
+        %13:bool = lt %12, 1.0f
+        store %x_30, %13
+        %14:bool = load %x_30
+        store %x_31, %14
         exit_if  # if_1
       }
     }
-    %14:bool = load %x_31
-    if %14 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %15:bool = load %x_31
+    if %15 [t: $B4] {  # if_2
+      $B4: {  # true
         ret
       }
     }
-    %15:ptr<uniform, f32, read> = access %x_5, 0u
-    %16:f32 = load %15
-    %17:bool = lt %16, 0.0f
-    if %17 [t: %b5, f: %b6] {  # if_3
-      %b5 = block {  # true
-        loop [b: %b7, c: %b8] {  # loop_1
-          %b7 = block {  # body
-            %18:ptr<uniform, f32, read> = access %x_5, 0u
-            %19:f32 = load %18
-            %20:bool = lt %19, 0.0f
-            if %20 [t: %b9, f: %b10] {  # if_4
-              %b9 = block {  # true
+    %16:ptr<uniform, f32, read> = access %x_5, 0u
+    %17:f32 = load %16
+    %18:bool = lt %17, 0.0f
+    if %18 [t: $B5, f: $B6] {  # if_3
+      $B5: {  # true
+        loop [b: $B7] {  # loop_1
+          $B7: {  # body
+            %19:ptr<uniform, f32, read> = access %x_5, 0u
+            %20:f32 = load %19
+            %21:bool = lt %20, 0.0f
+            if %21 [t: $B8, f: $B9] {  # if_4
+              $B8: {  # true
                 exit_if  # if_4
               }
-              %b10 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_1
               }
             }
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_loop  # loop_1
           }
-          %b8 = block {  # continuing
-            next_iteration %b7
-          }
         }
         exit_if  # if_3
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
@@ -75,12 +73,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.msl
index c2891ba..11ca372 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-same-condition/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,66 +8,69 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, bool, read_write> = var
     %x_31_phi:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %6:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_23:f32 = load %6
-    %x_24:bool = lt %x_23, 0.0f
+    %7:f32 = load %6
+    %x_23:f32 = let %7
+    %9:bool = lt %x_23, 0.0f
+    %x_24:bool = let %9
     store %x_31_phi, %x_24
-    %9:bool = eq %x_24, false
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %10:ptr<uniform, f32, read> = access %x_5, 0u
-        %x_29:f32 = load %10
-        %12:bool = lt %x_29, 1.0f
-        store %x_30, %12
-        %13:bool = load %x_30
-        store %x_31_phi, %13
+    %11:bool = eq %x_24, false
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<uniform, f32, read> = access %x_5, 0u
+        %13:f32 = load %12
+        %x_29:f32 = let %13
+        %15:bool = lt %x_29, 1.0f
+        store %x_30, %15
+        %16:bool = load %x_30
+        store %x_31_phi, %16
         exit_if  # if_1
       }
     }
-    %x_31:bool = load %x_31_phi
-    if %x_31 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %17:bool = load %x_31_phi
+    %x_31:bool = let %17
+    if %x_31 [t: $B4] {  # if_2
+      $B4: {  # true
         ret
       }
     }
-    %15:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_35:f32 = load %15
-    %17:bool = lt %x_35, 0.0f
-    if %17 [t: %b5, f: %b6] {  # if_3
-      %b5 = block {  # true
-        loop [b: %b7, c: %b8] {  # loop_1
-          %b7 = block {  # body
-            %18:ptr<uniform, f32, read> = access %x_5, 0u
-            %x_45:f32 = load %18
-            %20:bool = lt %x_45, 0.0f
-            if %20 [t: %b9, f: %b10] {  # if_4
-              %b9 = block {  # true
+    %19:ptr<uniform, f32, read> = access %x_5, 0u
+    %20:f32 = load %19
+    %x_35:f32 = let %20
+    %22:bool = lt %x_35, 0.0f
+    if %22 [t: $B5, f: $B6] {  # if_3
+      $B5: {  # true
+        loop [b: $B7] {  # loop_1
+          $B7: {  # body
+            %23:ptr<uniform, f32, read> = access %x_5, 0u
+            %24:f32 = load %23
+            %x_45:f32 = let %24
+            %26:bool = lt %x_45, 0.0f
+            if %26 [t: $B8, f: $B9] {  # if_4
+              $B8: {  # true
                 exit_if  # if_4
               }
-              %b10 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_1
               }
             }
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_loop  # loop_1
           }
-          %b8 = block {  # continuing
-            next_iteration %b7
-          }
         }
         exit_if  # if_3
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
@@ -75,12 +78,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.msl
index efdd3b1..0232881 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.spvasm.expected.ir.msl
@@ -1,6 +1,92 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_26:ptr<function, vec2<f32>, read_write> = var
+    %x_5:ptr<function, i32, read_write> = var
+    %x_39:ptr<function, bool, read_write> = var
+    %x_40:ptr<function, bool, read_write> = var
+    store %x_26, vec2<f32>(0.0f)
+    store %x_5, 2i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %x_27:ptr<function, vec2<f32>, read_write> = var
+        %x_4:ptr<function, i32, read_write> = var
+        %9:i32 = load %x_5
+        %10:bool = lt %9, 3i
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %11:i32 = load %x_5
+        %12:f32 = convert %11
+        %13:vec2<f32> = construct 1.0f, %12
+        %14:vec2<f32> = swizzle %13, xy
+        store %x_27, %14
+        %15:i32 = load %x_5
+        %16:i32 = add %15, 1i
+        store %x_4, %16
+        %17:vec2<f32> = load %x_27
+        store %x_26, %17
+        %18:i32 = load %x_4
+        store %x_5, %18
+        next_iteration  # -> $B3
+      }
+    }
+    %19:f32 = load_vector_element %x_26, 0u
+    %20:bool = neq %19, 1.0f
+    %x_34:bool = let %20
+    store %x_40, %x_34
+    %22:bool = eq %x_34, false
+    if %22 [t: $B7] {  # if_2
+      $B7: {  # true
+        %23:f32 = load_vector_element %x_26, 1u
+        %24:bool = neq %23, 2.0f
+        store %x_39, %24
+        %25:bool = load %x_39
+        store %x_40, %25
+        exit_if  # if_2
+      }
+    }
+    %26:bool = load %x_40
+    if %26 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.msl
index efdd3b1..03d781c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-const-folding-vector-shuffle/0.wgsl.expected.ir.msl
@@ -1,6 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_26:ptr<function, vec2<f32>, read_write> = var
+    %x_39:ptr<function, bool, read_write> = var
+    %x_26_phi:ptr<function, vec2<f32>, read_write> = var
+    %x_5_phi:ptr<function, i32, read_write> = var
+    %x_40_phi:ptr<function, bool, read_write> = var
+    store %x_26_phi, vec2<f32>(0.0f)
+    store %x_5_phi, 2i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %x_27:ptr<function, vec2<f32>, read_write> = var
+        %x_4:ptr<function, i32, read_write> = var
+        %10:vec2<f32> = load %x_26_phi
+        store %x_26, %10
+        %11:i32 = load %x_5_phi
+        %x_5:i32 = let %11
+        %13:bool = lt %x_5, 3i
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %14:f32 = convert %x_5
+        %15:vec2<f32> = construct 1.0f, %14
+        %x_32:vec2<f32> = let %15
+        %17:f32 = access %x_32, 0u
+        %18:f32 = access %x_32, 1u
+        %19:vec2<f32> = construct %17, %18
+        store %x_27, %19
+        %20:i32 = add %x_5, 1i
+        store %x_4, %20
+        %21:vec2<f32> = load %x_27
+        store %x_26_phi, %21
+        %22:i32 = load %x_4
+        store %x_5_phi, %22
+        next_iteration  # -> $B3
+      }
+    }
+    %23:f32 = load_vector_element %x_26, 0u
+    %24:bool = neq %23, 1.0f
+    %x_34:bool = let %24
+    store %x_40_phi, %x_34
+    %26:bool = eq %x_34, false
+    if %26 [t: $B7] {  # if_2
+      $B7: {  # true
+        %27:f32 = load_vector_element %x_26, 1u
+        %28:bool = neq %27, 2.0f
+        store %x_39, %28
+        %29:bool = load %x_39
+        store %x_40_phi, %29
+        exit_if  # if_2
+      }
+    }
+    %30:bool = load %x_40_phi
+    %x_40:bool = let %30
+    if %x_40 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %33:void = call %main_1
+    %34:vec4<f32> = load %x_GLF_color
+    %35:main_out = construct %34
+    ret %35
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.msl
index efdd3b1..5a0e1c0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %f:ptr<function, f32, read_write> = var
+    store %f, 0.9199161529541015625f
+    %4:f32 = load %f
+    %5:bool = gt %4, 0.91000002622604370117f
+    %6:f32 = load %f
+    %7:bool = lt %6, 0.93000000715255737305f
+    %8:bool = and %5, %7
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.msl
index efdd3b1..88f603e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-constant-folding-atan-over-tanh/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,47 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %f:ptr<function, f32, read_write> = var
+    store %f, 0.9199161529541015625f
+    %4:f32 = load %f
+    %x_21:f32 = let %4
+    %6:f32 = load %f
+    %x_23:f32 = let %6
+    %8:bool = gt %x_21, 0.91000002622604370117f
+    %9:bool = lt %x_23, 0.93000000715255737305f
+    %10:bool = and %8, %9
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.msl
index 94a54f7..880baac 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -31,17 +31,17 @@
     %12:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
     %13:i32 = load %12
     store %i, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %14:i32 = load %i
         %15:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
         %16:i32 = load %15
         %17:bool = lt %14, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -49,95 +49,124 @@
         %19:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
         %20:i32 = load %19
         %21:bool = gt %18, %20
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %21 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
         %22:f32 = load %f
-        %23:i32 = convert %22
-        %24:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %25:i32 = load %24
-        %26:i32 = div %25, 2i
-        %27:i32 = sub %23, %26
-        %28:i32 = load %i
-        %29:i32 = add %27, %28
-        store %a, %29
-        %30:i32 = load %b
-        %31:i32 = add %30, 1i
-        store %b, %31
-        continue %b4
+        %23:i32 = call %tint_f32_to_i32, %22
+        %25:i32 = let %23
+        %26:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %27:i32 = load %26
+        %28:i32 = call %tint_div_i32, %27, 2i
+        %30:i32 = sub %25, %28
+        %31:i32 = load %i
+        %32:i32 = add %30, %31
+        store %a, %32
+        %33:i32 = load %b
+        %34:i32 = add %33, 1i
+        store %b, %34
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %32:i32 = load %i
-        %33:i32 = add %32, 1i
-        store %i, %33
-        next_iteration %b3
+      $B4: {  # continuing
+        %35:i32 = load %i
+        %36:i32 = add %35, 1i
+        store %i, %36
+        next_iteration  # -> $B3
       }
     }
-    %34:i32 = load %b
-    %35:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %36:i32 = load %35
-    %37:bool = eq %34, %36
-    if %37 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_100:i32 = load %38
+    %37:i32 = load %b
+    %38:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %39:i32 = load %38
+    %40:bool = eq %37, %39
+    if %40 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %41:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_100:i32 = let %42
         ret %x_100
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_102:i32 = load %40
+      $B9: {  # false
+        %44:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %45:i32 = load %44
+        %x_102:i32 = let %45
         ret %x_102
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %param:ptr<function, f32, read_write> = var
     store %param, 0.69999998807907104492f
-    %x_34:i32 = call %func_f1_, %param
-    %45:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %46:i32 = load %45
-    %47:bool = eq %x_34, %46
-    if %47 [t: %b11, f: %b12] {  # if_4
-      %b11 = block {  # true
-        %48:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %49:i32 = call %func_f1_, %param
+    %x_34:i32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %52:i32 = load %51
+    %53:bool = eq %x_34, %52
+    if %53 [t: $B11, f: $B12] {  # if_4
+      $B11: {  # true
+        %54:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
         %55:i32 = load %54
         %56:f32 = convert %55
-        %57:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %58:i32 = load %57
-        %59:f32 = convert %58
-        %60:vec4<f32> = construct %50, %53, %56, %59
-        store %x_GLF_color, %60
+        %57:f32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:f32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %63:i32 = load %62
+        %64:f32 = convert %63
+        %65:f32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %67:i32 = load %66
+        %68:f32 = convert %67
+        %69:vec4<f32> = construct %57, %61, %65, %68
+        store %x_GLF_color, %69
         exit_if  # if_4
       }
-      %b12 = block {  # false
-        %61:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %62:i32 = load %61
-        %63:f32 = convert %62
-        %64:vec4<f32> = construct %63
-        store %x_GLF_color, %64
+      $B12: {  # false
+        %70:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %71:i32 = load %70
+        %72:f32 = convert %71
+        %73:vec4<f32> = construct %72
+        store %x_GLF_color, %73
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %66:void = call %main_1
-    %67:vec4<f32> = load %x_GLF_color
-    %68:main_out = construct %67
-    ret %68
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %75:void = call %main_1
+    %76:vec4<f32> = load %x_GLF_color
+    %77:main_out = construct %76
+    ret %77
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %80:bool = eq %rhs, 0i
+    %81:bool = eq %lhs, -2147483648i
+    %82:bool = eq %rhs, -1i
+    %83:bool = and %81, %82
+    %84:bool = or %80, %83
+    %85:i32 = select %rhs, 1i, %84
+    %86:i32 = div %lhs, %85
+    ret %86
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %88:i32 = convert %value
+    %89:bool = gte %value, -2147483648.0f
+    %90:i32 = select -2147483648i, %88, %89
+    %91:bool = lte %value, 2147483520.0f
+    %92:i32 = select 2147483647i, %90, %91
+    ret %92
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.msl
index 21eadef..5e9ae59 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-combine-add-sub/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,132 +12,182 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_60:i32 = load %8
+    %9:i32 = load %8
+    %x_60:i32 = let %9
     store %a, %x_60
-    %10:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_62:i32 = load %10
+    %11:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %12:i32 = load %11
+    %x_62:i32 = let %12
     store %b, %x_62
-    %12:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_64:i32 = load %12
+    %14:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %15:i32 = load %14
+    %x_64:i32 = let %15
     store %i, %x_64
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_69:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-        %x_71:i32 = load %15
-        %17:bool = lt %x_69, %x_71
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %i
+        %x_69:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+        %20:i32 = load %19
+        %x_71:i32 = let %20
+        %22:bool = lt %x_69, %x_71
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_74:i32 = load %a
-        %19:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_76:i32 = load %19
-        %21:bool = gt %x_74, %x_76
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %23:i32 = load %a
+        %x_74:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %26:i32 = load %25
+        %x_76:i32 = let %26
+        %28:bool = gt %x_74, %x_76
+        if %28 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_80:f32 = load %f
-        %23:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_83:i32 = load %23
-        %x_86:i32 = load %i
-        %26:i32 = convert %x_80
-        %27:i32 = div %x_83, 2i
-        %28:i32 = sub %26, %27
-        %29:i32 = add %28, %x_86
-        store %a, %29
-        %x_88:i32 = load %b
-        %31:i32 = add %x_88, 1i
-        store %b, %31
-        continue %b4
+        %29:f32 = load %f
+        %x_80:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %32:i32 = load %31
+        %x_83:i32 = let %32
+        %34:i32 = load %i
+        %x_86:i32 = let %34
+        %36:i32 = call %tint_f32_to_i32, %x_80
+        %38:i32 = let %36
+        %39:i32 = call %tint_div_i32, %x_83, 2i
+        %41:i32 = sub %38, %39
+        %42:i32 = add %41, %x_86
+        store %a, %42
+        %43:i32 = load %b
+        %x_88:i32 = let %43
+        %45:i32 = add %x_88, 1i
+        store %b, %45
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_90:i32 = load %i
-        %33:i32 = add %x_90, 1i
-        store %i, %33
-        next_iteration %b3
+      $B4: {  # continuing
+        %46:i32 = load %i
+        %x_90:i32 = let %46
+        %48:i32 = add %x_90, 1i
+        store %i, %48
+        next_iteration  # -> $B3
       }
     }
-    %x_92:i32 = load %b
-    %35:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_94:i32 = load %35
-    %37:bool = eq %x_92, %x_94
-    if %37 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_100:i32 = load %38
+    %49:i32 = load %b
+    %x_92:i32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %52:i32 = load %51
+    %x_94:i32 = let %52
+    %54:bool = eq %x_92, %x_94
+    if %54 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %55:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %56:i32 = load %55
+        %x_100:i32 = let %56
         ret %x_100
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_102:i32 = load %40
+      $B9: {  # false
+        %58:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %59:i32 = load %58
+        %x_102:i32 = let %59
         ret %x_102
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %param:ptr<function, f32, read_write> = var
     store %param, 0.69999998807907104492f
-    %x_34:i32 = call %func_f1_, %param
-    %45:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_36:i32 = load %45
-    %47:bool = eq %x_34, %x_36
-    if %47 [t: %b11, f: %b12] {  # if_4
-      %b11 = block {  # true
-        %48:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_42:i32 = load %48
-        %50:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_45:i32 = load %50
-        %52:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_48:i32 = load %52
-        %54:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_51:i32 = load %54
-        %56:f32 = convert %x_42
-        %57:f32 = convert %x_45
-        %58:f32 = convert %x_48
-        %59:f32 = convert %x_51
-        %60:vec4<f32> = construct %56, %57, %58, %59
-        store %x_GLF_color, %60
+    %63:i32 = call %func_f1_, %param
+    %x_34:i32 = let %63
+    %65:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %66:i32 = load %65
+    %x_36:i32 = let %66
+    %68:bool = eq %x_34, %x_36
+    if %68 [t: $B11, f: $B12] {  # if_4
+      $B11: {  # true
+        %69:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %70:i32 = load %69
+        %x_42:i32 = let %70
+        %72:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %73:i32 = load %72
+        %x_45:i32 = let %73
+        %75:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %76:i32 = load %75
+        %x_48:i32 = let %76
+        %78:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %79:i32 = load %78
+        %x_51:i32 = let %79
+        %81:f32 = convert %x_42
+        %82:f32 = let %81
+        %83:f32 = convert %x_45
+        %84:f32 = let %83
+        %85:f32 = convert %x_48
+        %86:f32 = let %85
+        %87:f32 = convert %x_51
+        %88:vec4<f32> = construct %82, %84, %86, %87
+        store %x_GLF_color, %88
         exit_if  # if_4
       }
-      %b12 = block {  # false
-        %61:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_55:i32 = load %61
-        %x_56:f32 = convert %x_55
-        %64:vec4<f32> = construct %x_56, %x_56, %x_56, %x_56
-        store %x_GLF_color, %64
+      $B12: {  # false
+        %89:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %90:i32 = load %89
+        %x_55:i32 = let %90
+        %92:f32 = convert %x_55
+        %x_56:f32 = let %92
+        %94:vec4<f32> = construct %x_56, %x_56, %x_56, %x_56
+        store %x_GLF_color, %94
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %66:void = call %main_1
-    %67:vec4<f32> = load %x_GLF_color
-    %68:main_out = construct %67
-    ret %68
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %96:void = call %main_1
+    %97:vec4<f32> = load %x_GLF_color
+    %98:main_out = construct %97
+    ret %98
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %101:bool = eq %rhs, 0i
+    %102:bool = eq %lhs, -2147483648i
+    %103:bool = eq %rhs, -1i
+    %104:bool = and %102, %103
+    %105:bool = or %101, %104
+    %106:i32 = select %rhs, 1i, %105
+    %107:i32 = div %lhs, %106
+    ret %107
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %109:i32 = convert %value
+    %110:bool = gte %value, -2147483648.0f
+    %111:i32 = select -2147483648i, %109, %110
+    %112:bool = lte %value, 2147483520.0f
+    %113:i32 = select 2147483647i, %111, %112
+    ret %113
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.msl
index ec5ba1a..0a98a9c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   one:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %mixed:ptr<function, vec2<f32>, read_write> = var
     %5:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %6:vec2<f32> = load %5
@@ -23,14 +23,14 @@
     %8:vec2<f32> = load %mixed
     %9:vec2<bool> = eq %8, vec2<f32>(1.0f)
     %10:bool = all %9
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %11:f32 = load_vector_element %mixed, 0u
         %12:vec4<f32> = construct %11, 0.0f, 0.0f, 1.0f
         store %x_GLF_color, %12
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -38,8 +38,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %14:void = call %main_1
     %15:vec4<f32> = load %x_GLF_color
     %16:main_out = construct %15
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.msl
index 48ef682..13bef3c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-constants-mix-uniform/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   one:vec2<f32> @offset(0)
 }
 
@@ -8,29 +8,32 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %mixed:ptr<function, vec2<f32>, read_write> = var
     %5:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_30:vec2<f32> = load %5
-    %7:vec2<f32> = mix vec2<f32>(1.0f), %x_30, vec2<f32>(0.5f)
-    store %mixed, %7
-    %x_33:vec2<f32> = load %mixed
-    %9:vec2<bool> = eq %x_33, vec2<f32>(1.0f)
-    %10:bool = all %9
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_40:f32 = load_vector_element %mixed, 0u
-        %12:vec4<f32> = construct %x_40, 0.0f, 0.0f, 1.0f
-        store %x_GLF_color, %12
+    %6:vec2<f32> = load %5
+    %x_30:vec2<f32> = let %6
+    %8:vec2<f32> = mix vec2<f32>(1.0f), %x_30, vec2<f32>(0.5f)
+    store %mixed, %8
+    %9:vec2<f32> = load %mixed
+    %x_33:vec2<f32> = let %9
+    %11:vec2<bool> = eq %x_33, vec2<f32>(1.0f)
+    %12:bool = all %11
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:f32 = load_vector_element %mixed, 0u
+        %x_40:f32 = let %13
+        %15:vec4<f32> = construct %x_40, 0.0f, 0.0f, 1.0f
+        store %x_GLF_color, %15
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -38,12 +41,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    ret %19
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.msl
index ea22f1c..0fbd9c0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -16,81 +16,92 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %5:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %6:i32 = load %5
-    %7:f32 = convert %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %9:i32 = load %8
-    %10:f32 = convert %9
-    %11:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %12:i32 = load %11
-    %13:f32 = convert %12
-    %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+%main_1 = func():void {
+  $B2: {
+    %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %7:i32 = load %6
+    %8:f32 = convert %7
+    %9:f32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:f32 = convert %11
+    %13:f32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
     %15:i32 = load %14
     %16:f32 = convert %15
-    %17:vec4<f32> = construct %7, %10, %13, %16
-    store %x_GLF_color, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:ptr<uniform, i32, read> = access %x_7, 0u
-        %19:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %21:i32 = load %20
-        %22:bool = eq %19, %21
-        if %22 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            continue %b4
+    %17:f32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %19:i32 = load %18
+    %20:f32 = convert %19
+    %21:vec4<f32> = construct %9, %13, %17, %20
+    store %x_GLF_color, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:ptr<uniform, i32, read> = access %x_7, 0u
+        %23:i32 = load %22
+        %24:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %25:i32 = load %24
+        %26:bool = eq %23, %25
+        if %26 [t: $B5] {  # if_1
+          $B5: {  # true
+            continue  # -> $B4
           }
         }
-        %23:ptr<uniform, i32, read> = access %x_7, 0u
-        %24:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %26:i32 = load %25
-        %27:bool = eq %24, %26
-        if %27 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %27:ptr<uniform, i32, read> = access %x_7, 0u
+        %28:i32 = load %27
+        %29:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %30:i32 = load %29
+        %31:bool = eq %28, %30
+        if %31 [t: $B6] {  # if_2
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
-        %28:ptr<uniform, i32, read> = access %x_7, 0u
-        %29:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-        %31:i32 = load %30
-        %32:bool = eq %29, %31
-        if %32 [t: %b7] {  # if_3
-          %b7 = block {  # true
-            discard
+        %32:ptr<uniform, i32, read> = access %x_7, 0u
+        %33:i32 = load %32
+        %34:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
+        %35:i32 = load %34
+        %36:bool = eq %33, %35
+        if %36 [t: $B7] {  # if_3
+          $B7: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
         ret
       }
-      %b4 = block {  # continuing
-        break_if true %b3
+      $B4: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %33:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %34:i32 = load %33
-    %35:f32 = convert %34
-    %36:vec4<f32> = construct %35
-    store %x_GLF_color, %36
+    %37:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %38:i32 = load %37
+    %39:f32 = convert %38
+    %40:vec4<f32> = construct %39
+    store %x_GLF_color, %40
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    %45:bool = load %continue_execution
+    %46:bool = eq %45, false
+    if %46 [t: $B9] {  # if_4
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.msl
index f4b6dc6..13f9dec 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-continue-break-discard-return-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -16,81 +16,104 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %5:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_28:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_31:i32 = load %7
+%main_1 = func():void {
+  $B2: {
+    %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %7:i32 = load %6
+    %x_28:i32 = let %7
     %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_34:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_37:i32 = load %11
-    %13:f32 = convert %x_28
-    %14:f32 = convert %x_31
-    %15:f32 = convert %x_34
-    %16:f32 = convert %x_37
-    %17:vec4<f32> = construct %13, %14, %15, %16
-    store %x_GLF_color, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_45:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_47:i32 = load %20
-        %22:bool = eq %x_45, %x_47
-        if %22 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            continue %b4
+    %10:i32 = load %9
+    %x_31:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_34:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %16:i32 = load %15
+    %x_37:i32 = let %16
+    %18:f32 = convert %x_28
+    %19:f32 = let %18
+    %20:f32 = convert %x_31
+    %21:f32 = let %20
+    %22:f32 = convert %x_34
+    %23:f32 = let %22
+    %24:f32 = convert %x_37
+    %25:vec4<f32> = construct %19, %21, %23, %24
+    store %x_GLF_color, %25
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %26:ptr<uniform, i32, read> = access %x_7, 0u
+        %27:i32 = load %26
+        %x_45:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_47:i32 = let %30
+        %32:bool = eq %x_45, %x_47
+        if %32 [t: $B5] {  # if_1
+          $B5: {  # true
+            continue  # -> $B4
           }
         }
-        %23:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_52:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %x_54:i32 = load %25
-        %27:bool = eq %x_52, %x_54
-        if %27 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %33:ptr<uniform, i32, read> = access %x_7, 0u
+        %34:i32 = load %33
+        %x_52:i32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %37:i32 = load %36
+        %x_54:i32 = let %37
+        %39:bool = eq %x_52, %x_54
+        if %39 [t: $B6] {  # if_2
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
-        %28:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_59:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-        %x_61:i32 = load %30
-        %32:bool = eq %x_59, %x_61
-        if %32 [t: %b7] {  # if_3
-          %b7 = block {  # true
-            discard
+        %40:ptr<uniform, i32, read> = access %x_7, 0u
+        %41:i32 = load %40
+        %x_59:i32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
+        %44:i32 = load %43
+        %x_61:i32 = let %44
+        %46:bool = eq %x_59, %x_61
+        if %46 [t: $B7] {  # if_3
+          $B7: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
         ret
       }
-      %b4 = block {  # continuing
-        break_if true %b3
+      $B4: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %33:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_66:i32 = load %33
-    %x_67:f32 = convert %x_66
-    %36:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
-    store %x_GLF_color, %36
+    %47:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %48:i32 = load %47
+    %x_66:i32 = let %48
+    %50:f32 = convert %x_66
+    %x_67:f32 = let %50
+    %52:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
+    store %x_GLF_color, %52
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %54:void = call %main_1
+    %55:vec4<f32> = load %x_GLF_color
+    %56:main_out = construct %55
+    %57:bool = load %continue_execution
+    %58:bool = eq %57, false
+    if %58 [t: $B9] {  # if_4
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %56
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.msl
index d8d38df6..8791a28 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_50:ptr<function, bool, read_write> = var, false
     %x_15:ptr<function, i32, read_write> = var
     %x_16:ptr<function, i32, read_write> = var
@@ -27,18 +27,18 @@
     %x_20:ptr<function, i32, read_write> = var
     store %param, Array(array<i32, 2>(0i))
     store %x_50, false
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_63:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
             %11:ptr<uniform, i32, read> = access %x_8, 0u
             %12:i32 = load %11
             %13:ptr<function, i32, read_write> = access %param, 0u, %12
             %14:i32 = load %13
             %15:bool = eq %14, 1i
-            if %15 [t: %b7] {  # if_1
-              %b7 = block {  # true
+            if %15 [t: $B5] {  # if_1
+              $B5: {  # true
                 store %x_50, true
                 store %x_15, 1i
                 store %x_19, 1i
@@ -50,15 +50,12 @@
             store %x_63, false
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
         %16:i32 = load %x_19
         store %x_20, %16
         %17:bool = load %x_63
-        if %17 [t: %b8] {  # if_2
-          %b8 = block {  # true
+        if %17 [t: $B6] {  # if_2
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
@@ -67,20 +64,17 @@
         store %x_20, 1i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     %18:i32 = load %x_20
     store %x_16, %18
     %19:i32 = load %x_20
     %20:bool = eq %19, 1i
-    if %20 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    if %20 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -88,37 +82,37 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func():main_out {
+  $B9: {
     %22:void = call %main_1
     %23:vec4<f32> = load %x_GLF_color
     %24:main_out = construct %23
     ret %24
   }
 }
-%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 -> %b12 {
-  %b12 = block {
+%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 {
+  $B10: {
     %x_70:ptr<function, bool, read_write> = var, false
     %x_12:ptr<function, i32, read_write> = var
     %x_72:ptr<function, bool, read_write> = var
     %x_13:ptr<function, i32, read_write> = var
     %x_14:ptr<function, i32, read_write> = var
     store %x_72, false
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
+    loop [b: $B11] {  # loop_3
+      $B11: {  # body
         %x_77:ptr<function, bool, read_write> = var
         %x_87:ptr<function, bool, read_write> = var
         %34:bool = load %x_72
         store %x_77, %34
-        loop [b: %b15, c: %b16] {  # loop_4
-          %b15 = block {  # body
+        loop [b: $B12] {  # loop_4
+          $B12: {  # body
             %35:ptr<uniform, i32, read> = access %x_8, 0u
             %36:i32 = load %35
             %37:ptr<function, i32, read_write> = access %a, 0u, %36
             %38:i32 = load %37
             %39:bool = eq %38, 1i
-            if %39 [t: %b17] {  # if_4
-              %b17 = block {  # true
+            if %39 [t: $B13] {  # if_4
+              $B13: {  # true
                 store %x_70, true
                 store %x_12, 1i
                 store %x_13, 1i
@@ -131,16 +125,12 @@
             store %x_87, %40
             exit_loop  # loop_4
           }
-          %b16 = block {  # continuing
-            store %x_77, false
-            next_iteration %b15
-          }
         }
         %41:i32 = load %x_13
         store %x_14, %41
         %42:bool = load %x_87
-        if %42 [t: %b18] {  # if_5
-          %b18 = block {  # true
+        if %42 [t: $B14] {  # if_5
+          $B14: {  # true
             exit_loop  # loop_3
           }
         }
@@ -149,10 +139,6 @@
         store %x_14, 1i
         exit_loop  # loop_3
       }
-      %b14 = block {  # continuing
-        store %x_72, false
-        next_iteration %b13
-      }
     }
     %43:i32 = load %x_14
     ret %43
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.msl
index a4c26b0..79909e4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-func-argument/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_50:ptr<function, bool, read_write> = var, false
     %x_15:ptr<function, i32, read_write> = var
     %x_16:ptr<function, i32, read_write> = var
@@ -27,19 +27,21 @@
     %x_20_phi:ptr<function, i32, read_write> = var
     store %param, Array(array<i32, 2>(0i))
     store %x_50, false
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_19_phi:ptr<function, i32, read_write> = var
         %x_63_phi:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
             %12:ptr<uniform, i32, read> = access %x_8, 0u
-            %x_17:i32 = load %12
-            %14:ptr<function, i32, read_write> = access %param, 0u, %x_17
-            %x_18:i32 = load %14
-            %16:bool = eq %x_18, 1i
-            if %16 [t: %b7] {  # if_1
-              %b7 = block {  # true
+            %13:i32 = load %12
+            %x_17:i32 = let %13
+            %15:ptr<function, i32, read_write> = access %param, 0u, %x_17
+            %16:i32 = load %15
+            %x_18:i32 = let %16
+            %18:bool = eq %x_18, 1i
+            if %18 [t: $B5] {  # if_1
+              $B5: {  # true
                 store %x_50, true
                 store %x_15, 1i
                 store %x_19_phi, 1i
@@ -51,17 +53,15 @@
             store %x_63_phi, false
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
-        %17:i32 = load %x_19_phi
-        store %x_19, %17
-        %x_63:bool = load %x_63_phi
-        %19:i32 = load %x_19
-        store %x_20_phi, %19
-        if %x_63 [t: %b8] {  # if_2
-          %b8 = block {  # true
+        %19:i32 = load %x_19_phi
+        store %x_19, %19
+        %20:bool = load %x_63_phi
+        %x_63:bool = let %20
+        %22:i32 = load %x_19
+        store %x_20_phi, %22
+        if %x_63 [t: $B6] {  # if_2
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
@@ -70,19 +70,17 @@
         store %x_20_phi, 1i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %x_20:i32 = load %x_20_phi
+    %23:i32 = load %x_20_phi
+    %x_20:i32 = let %23
     store %x_16, %x_20
-    %21:bool = eq %x_20, 1i
-    if %21 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %25:bool = eq %x_20, 1i
+    if %25 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -90,41 +88,44 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
-%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 -> %b12 {
-  %b12 = block {
+%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 {
+  $B10: {
     %x_70:ptr<function, bool, read_write> = var, false
     %x_12:ptr<function, i32, read_write> = var
     %x_13:ptr<function, i32, read_write> = var
     %x_72_phi:ptr<function, bool, read_write> = var
     %x_14_phi:ptr<function, i32, read_write> = var
     store %x_72_phi, false
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
+    loop [b: $B11] {  # loop_3
+      $B11: {  # body
         %x_77:ptr<function, bool, read_write> = var
         %x_77_phi:ptr<function, bool, read_write> = var
         %x_13_phi:ptr<function, i32, read_write> = var
         %x_87_phi:ptr<function, bool, read_write> = var
-        %x_72:bool = load %x_72_phi
+        %41:bool = load %x_72_phi
+        %x_72:bool = let %41
         store %x_77_phi, %x_72
-        loop [b: %b15, c: %b16] {  # loop_4
-          %b15 = block {  # body
-            %38:bool = load %x_77_phi
-            store %x_77, %38
-            %39:ptr<uniform, i32, read> = access %x_8, 0u
-            %x_10:i32 = load %39
-            %41:ptr<function, i32, read_write> = access %a, 0u, %x_10
-            %x_11:i32 = load %41
-            %43:bool = eq %x_11, 1i
-            if %43 [t: %b17] {  # if_4
-              %b17 = block {  # true
+        loop [b: $B12] {  # loop_4
+          $B12: {  # body
+            %43:bool = load %x_77_phi
+            store %x_77, %43
+            %44:ptr<uniform, i32, read> = access %x_8, 0u
+            %45:i32 = load %44
+            %x_10:i32 = let %45
+            %47:ptr<function, i32, read_write> = access %a, 0u, %x_10
+            %48:i32 = load %47
+            %x_11:i32 = let %48
+            %50:bool = eq %x_11, 1i
+            if %50 [t: $B13] {  # if_4
+              $B13: {  # true
                 store %x_70, true
                 store %x_12, 1i
                 store %x_13_phi, 1i
@@ -133,22 +134,19 @@
               }
             }
             store %x_13_phi, 0i
-            %44:bool = load %x_77
-            store %x_87_phi, %44
+            %51:bool = load %x_77
+            store %x_87_phi, %51
             exit_loop  # loop_4
           }
-          %b16 = block {  # continuing
-            store %x_77_phi, false
-            next_iteration %b15
-          }
         }
-        %45:i32 = load %x_13_phi
-        store %x_13, %45
-        %x_87:bool = load %x_87_phi
-        %47:i32 = load %x_13
-        store %x_14_phi, %47
-        if %x_87 [t: %b18] {  # if_5
-          %b18 = block {  # true
+        %52:i32 = load %x_13_phi
+        store %x_13, %52
+        %53:bool = load %x_87_phi
+        %x_87:bool = let %53
+        %55:i32 = load %x_13
+        store %x_14_phi, %55
+        if %x_87 [t: $B14] {  # if_5
+          $B14: {  # true
             exit_loop  # loop_3
           }
         }
@@ -157,12 +155,9 @@
         store %x_14_phi, 1i
         exit_loop  # loop_3
       }
-      %b14 = block {  # continuing
-        store %x_72_phi, false
-        next_iteration %b13
-      }
     }
-    %x_14:i32 = load %x_14_phi
+    %56:i32 = load %x_14_phi
+    %x_14:i32 = let %56
     ret %x_14
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.msl
index 79b6ff0..cbffb97 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -12,46 +12,47 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, Array, read_write> = var
     %b:ptr<function, Array, read_write> = var
     %one:ptr<function, f32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_10:i32 = load %7
-    %9:ptr<function, i32, read_write> = access %a, 0u, %x_10
-    store %9, 1i
-    %10:Array = load %a
-    store %b, %10
+    %8:i32 = load %7
+    %x_10:i32 = let %8
+    %10:ptr<function, i32, read_write> = access %a, 0u, %x_10
+    store %10, 1i
+    %11:Array = load %a
+    store %b, %11
     store %one, 0.0f
-    %11:ptr<uniform, i32, read> = access %x_7, 0u
-    %12:i32 = load %11
-    %13:ptr<function, i32, read_write> = access %b, 0u, %12
-    %14:i32 = load %13
-    %15:bool = eq %14, 1i
-    if %15 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %12:ptr<uniform, i32, read> = access %x_7, 0u
+    %13:i32 = load %12
+    %14:ptr<function, i32, read_write> = access %b, 0u, %13
+    %15:i32 = load %14
+    %16:bool = eq %15, 1i
+    if %16 [t: $B3] {  # if_1
+      $B3: {  # true
         store %one, 1.0f
         exit_if  # if_1
       }
     }
-    %16:f32 = load %one
-    %17:vec4<f32> = construct %16, 0.0f, 0.0f, 1.0f
-    store %x_GLF_color, %17
+    %17:f32 = load %one
+    %18:vec4<f32> = construct %17, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %18
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.msl
index f437821..9748830 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-no-stores/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -12,46 +12,51 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, Array, read_write> = var
     %b:ptr<function, Array, read_write> = var
     %one:ptr<function, f32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_10:i32 = load %7
-    %9:ptr<function, i32, read_write> = access %a, 0u, %x_10
-    store %9, 1i
-    %x_35:Array = load %a
+    %8:i32 = load %7
+    %x_10:i32 = let %8
+    %10:ptr<function, i32, read_write> = access %a, 0u, %x_10
+    store %10, 1i
+    %11:Array = load %a
+    %x_35:Array = let %11
     store %b, %x_35
     store %one, 0.0f
-    %11:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_11:i32 = load %11
-    %13:ptr<function, i32, read_write> = access %b, 0u, %x_11
-    %x_12:i32 = load %13
-    %15:bool = eq %x_12, 1i
-    if %15 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %13:ptr<uniform, i32, read> = access %x_7, 0u
+    %14:i32 = load %13
+    %x_11:i32 = let %14
+    %16:ptr<function, i32, read_write> = access %b, 0u, %x_11
+    %17:i32 = load %16
+    %x_12:i32 = let %17
+    %19:bool = eq %x_12, 1i
+    if %19 [t: $B3] {  # if_1
+      $B3: {  # true
         store %one, 1.0f
         exit_if  # if_1
       }
     }
-    %x_41:f32 = load %one
-    %17:vec4<f32> = construct %x_41, 0.0f, 0.0f, 1.0f
-    store %x_GLF_color, %17
+    %20:f32 = load %one
+    %x_41:f32 = let %20
+    %22:vec4<f32> = construct %x_41, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %22
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.msl
index a354e414..288667c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_52:ptr<function, bool, read_write> = var, false
     %x_17:ptr<function, i32, read_write> = var
     %x_18:ptr<function, i32, read_write> = var
@@ -27,27 +27,29 @@
     %x_20:ptr<function, i32, read_write> = var
     %x_21:ptr<function, i32, read_write> = var
     %11:ptr<uniform, i32, read> = access %x_8, 0u
-    %x_12:i32 = load %11
-    %x_22:array<i32, 2> = load %x_16
+    %12:i32 = load %11
+    %x_12:i32 = let %12
+    %14:array<i32, 2> = load %x_16
+    %x_22:array<i32, 2> = let %14
     %x_23_1:ptr<function, array<i32, 2>, read_write> = var, %x_22
-    %15:ptr<function, i32, read_write> = access %x_23_1, 0u
-    store %15, %x_12
-    %16:array<i32, 2> = load %x_23_1
-    store %x_16, %16
-    %17:array<i32, 2> = load %x_16
-    %18:Array = construct %17
-    store %param, %18
+    %17:ptr<function, i32, read_write> = access %x_23_1, 0u
+    store %17, %x_12
+    %18:array<i32, 2> = load %x_23_1
+    store %x_16, %18
+    %19:array<i32, 2> = load %x_16
+    %20:Array = construct %19
+    store %param, %20
     store %x_52, false
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_67:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %20:ptr<function, i32, read_write> = access %param, 0u, %x_12
-            %21:i32 = load %20
-            %22:bool = eq %21, 0i
-            if %22 [t: %b7] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
+            %22:ptr<function, i32, read_write> = access %param, 0u, %x_12
+            %23:i32 = load %22
+            %24:bool = eq %23, 0i
+            if %24 [t: $B5] {  # if_1
+              $B5: {  # true
                 store %x_52, true
                 store %x_17, 42i
                 store %x_20, 42i
@@ -59,15 +61,12 @@
             store %x_67, false
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
-        %23:i32 = load %x_20
-        store %x_21, %23
-        %24:bool = load %x_67
-        if %24 [t: %b8] {  # if_2
-          %b8 = block {  # true
+        %25:i32 = load %x_20
+        store %x_21, %25
+        %26:bool = load %x_67
+        if %26 [t: $B6] {  # if_2
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
@@ -76,20 +75,17 @@
         store %x_21, 42i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %25:i32 = load %x_21
-    store %x_18, %25
-    %26:i32 = load %x_21
-    %27:bool = eq %26, 42i
-    if %27 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %27:i32 = load %x_21
+    store %x_18, %27
+    %28:i32 = load %x_21
+    %29:bool = eq %28, 42i
+    if %29 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -97,37 +93,37 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
   }
 }
-%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 -> %b12 {
-  %b12 = block {
+%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 {
+  $B10: {
     %x_74:ptr<function, bool, read_write> = var, false
     %x_13:ptr<function, i32, read_write> = var
     %x_76:ptr<function, bool, read_write> = var
     %x_14:ptr<function, i32, read_write> = var
     %x_15:ptr<function, i32, read_write> = var
     store %x_76, false
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
+    loop [b: $B11] {  # loop_3
+      $B11: {  # body
         %x_81:ptr<function, bool, read_write> = var
         %x_91:ptr<function, bool, read_write> = var
-        %41:bool = load %x_76
-        store %x_81, %41
-        loop [b: %b15, c: %b16] {  # loop_4
-          %b15 = block {  # body
-            %42:ptr<uniform, i32, read> = access %x_8, 0u
-            %43:i32 = load %42
-            %44:ptr<function, i32, read_write> = access %a, 0u, %43
+        %43:bool = load %x_76
+        store %x_81, %43
+        loop [b: $B12] {  # loop_4
+          $B12: {  # body
+            %44:ptr<uniform, i32, read> = access %x_8, 0u
             %45:i32 = load %44
-            %46:bool = eq %45, 0i
-            if %46 [t: %b17] {  # if_4
-              %b17 = block {  # true
+            %46:ptr<function, i32, read_write> = access %a, 0u, %45
+            %47:i32 = load %46
+            %48:bool = eq %47, 0i
+            if %48 [t: $B13] {  # if_4
+              $B13: {  # true
                 store %x_74, true
                 store %x_13, 42i
                 store %x_14, 42i
@@ -136,20 +132,16 @@
               }
             }
             store %x_14, 0i
-            %47:bool = load %x_81
-            store %x_91, %47
+            %49:bool = load %x_81
+            store %x_91, %49
             exit_loop  # loop_4
           }
-          %b16 = block {  # continuing
-            store %x_81, false
-            next_iteration %b15
-          }
         }
-        %48:i32 = load %x_14
-        store %x_15, %48
-        %49:bool = load %x_91
-        if %49 [t: %b18] {  # if_5
-          %b18 = block {  # true
+        %50:i32 = load %x_14
+        store %x_15, %50
+        %51:bool = load %x_91
+        if %51 [t: $B14] {  # if_5
+          $B14: {  # true
             exit_loop  # loop_3
           }
         }
@@ -158,13 +150,9 @@
         store %x_15, 42i
         exit_loop  # loop_3
       }
-      %b14 = block {  # continuing
-        store %x_76, false
-        next_iteration %b13
-      }
     }
-    %50:i32 = load %x_15
-    ret %50
+    %52:i32 = load %x_15
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.msl
index 5158781..be518ca 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-copy-prop-arrays-param-uniform/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_52:ptr<function, bool, read_write> = var, false
     %x_17:ptr<function, i32, read_write> = var
     %x_18:ptr<function, i32, read_write> = var
@@ -27,28 +27,33 @@
     %x_20:ptr<function, i32, read_write> = var
     %x_21_phi:ptr<function, i32, read_write> = var
     %11:ptr<uniform, i32, read> = access %x_8, 0u
-    %x_12:i32 = load %11
-    %x_22:array<i32, 2> = load %x_16
+    %12:i32 = load %11
+    %x_12:i32 = let %12
+    %14:array<i32, 2> = load %x_16
+    %x_22:array<i32, 2> = let %14
     %x_23_1:ptr<function, array<i32, 2>, read_write> = var, %x_22
-    %15:ptr<function, i32, read_write> = access %x_23_1, 0u
-    store %15, %x_12
-    %x_23:array<i32, 2> = load %x_23_1
+    %17:ptr<function, i32, read_write> = access %x_23_1, 0u
+    store %17, %x_12
+    %18:array<i32, 2> = load %x_23_1
+    %x_23:array<i32, 2> = let %18
     store %x_16, %x_23
-    %x_54:array<i32, 2> = load %x_16
-    %18:Array = construct %x_54
-    store %param, %18
+    %20:array<i32, 2> = load %x_16
+    %x_54:array<i32, 2> = let %20
+    %22:Array = construct %x_54
+    store %param, %22
     store %x_52, false
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_20_phi:ptr<function, i32, read_write> = var
         %x_67_phi:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %21:ptr<function, i32, read_write> = access %param, 0u, %x_12
-            %x_19:i32 = load %21
-            %23:bool = eq %x_19, 0i
-            if %23 [t: %b7] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
+            %25:ptr<function, i32, read_write> = access %param, 0u, %x_12
+            %26:i32 = load %25
+            %x_19:i32 = let %26
+            %28:bool = eq %x_19, 0i
+            if %28 [t: $B5] {  # if_1
+              $B5: {  # true
                 store %x_52, true
                 store %x_17, 42i
                 store %x_20_phi, 42i
@@ -60,17 +65,15 @@
             store %x_67_phi, false
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
-        %24:i32 = load %x_20_phi
-        store %x_20, %24
-        %x_67:bool = load %x_67_phi
-        %26:i32 = load %x_20
-        store %x_21_phi, %26
-        if %x_67 [t: %b8] {  # if_2
-          %b8 = block {  # true
+        %29:i32 = load %x_20_phi
+        store %x_20, %29
+        %30:bool = load %x_67_phi
+        %x_67:bool = let %30
+        %32:i32 = load %x_20
+        store %x_21_phi, %32
+        if %x_67 [t: $B6] {  # if_2
+          $B6: {  # true
             exit_loop  # loop_1
           }
         }
@@ -79,19 +82,17 @@
         store %x_21_phi, 42i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %x_21:i32 = load %x_21_phi
+    %33:i32 = load %x_21_phi
+    %x_21:i32 = let %33
     store %x_18, %x_21
-    %28:bool = eq %x_21, 42i
-    if %28 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %35:bool = eq %x_21, 42i
+    if %35 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -99,41 +100,44 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
-%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 -> %b12 {
-  %b12 = block {
+%func_struct_Array_i1_2_1_ = func(%a:ptr<function, Array, read_write>):i32 {
+  $B10: {
     %x_74:ptr<function, bool, read_write> = var, false
     %x_13:ptr<function, i32, read_write> = var
     %x_14:ptr<function, i32, read_write> = var
     %x_76_phi:ptr<function, bool, read_write> = var
     %x_15_phi:ptr<function, i32, read_write> = var
     store %x_76_phi, false
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
+    loop [b: $B11] {  # loop_3
+      $B11: {  # body
         %x_81:ptr<function, bool, read_write> = var
         %x_81_phi:ptr<function, bool, read_write> = var
         %x_14_phi:ptr<function, i32, read_write> = var
         %x_91_phi:ptr<function, bool, read_write> = var
-        %x_76:bool = load %x_76_phi
+        %51:bool = load %x_76_phi
+        %x_76:bool = let %51
         store %x_81_phi, %x_76
-        loop [b: %b15, c: %b16] {  # loop_4
-          %b15 = block {  # body
-            %45:bool = load %x_81_phi
-            store %x_81, %45
-            %46:ptr<uniform, i32, read> = access %x_8, 0u
-            %x_10:i32 = load %46
-            %48:ptr<function, i32, read_write> = access %a, 0u, %x_10
-            %x_11:i32 = load %48
-            %50:bool = eq %x_11, 0i
-            if %50 [t: %b17] {  # if_4
-              %b17 = block {  # true
+        loop [b: $B12] {  # loop_4
+          $B12: {  # body
+            %53:bool = load %x_81_phi
+            store %x_81, %53
+            %54:ptr<uniform, i32, read> = access %x_8, 0u
+            %55:i32 = load %54
+            %x_10:i32 = let %55
+            %57:ptr<function, i32, read_write> = access %a, 0u, %x_10
+            %58:i32 = load %57
+            %x_11:i32 = let %58
+            %60:bool = eq %x_11, 0i
+            if %60 [t: $B13] {  # if_4
+              $B13: {  # true
                 store %x_74, true
                 store %x_13, 42i
                 store %x_14_phi, 42i
@@ -142,22 +146,19 @@
               }
             }
             store %x_14_phi, 0i
-            %51:bool = load %x_81
-            store %x_91_phi, %51
+            %61:bool = load %x_81
+            store %x_91_phi, %61
             exit_loop  # loop_4
           }
-          %b16 = block {  # continuing
-            store %x_81_phi, false
-            next_iteration %b15
-          }
         }
-        %52:i32 = load %x_14_phi
-        store %x_14, %52
-        %x_91:bool = load %x_91_phi
-        %54:i32 = load %x_14
-        store %x_15_phi, %54
-        if %x_91 [t: %b18] {  # if_5
-          %b18 = block {  # true
+        %62:i32 = load %x_14_phi
+        store %x_14, %62
+        %63:bool = load %x_91_phi
+        %x_91:bool = let %63
+        %65:i32 = load %x_14
+        store %x_15_phi, %65
+        if %x_91 [t: $B14] {  # if_5
+          $B14: {  # true
             exit_loop  # loop_3
           }
         }
@@ -166,12 +167,9 @@
         store %x_15_phi, 42i
         exit_loop  # loop_3
       }
-      %b14 = block {  # continuing
-        store %x_76_phi, false
-        next_iteration %b13
-      }
     }
-    %x_15:i32 = load %x_15_phi
+    %66:i32 = load %x_15_phi
+    %x_15:i32 = let %66
     ret %x_15
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.msl
index 39f34ab..63c429c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,39 +20,41 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %7:f32 = load %6
     %8:vec4<f32> = construct %7
-    %9:vec4<f32> = clamp vec4<f32>(1.54308056831359863281f), %8, vec4<f32>(1.0f)
+    %9:vec4<f32> = clamp vec4<f32>(1.54308068752288818359f), %8, vec4<f32>(1.0f)
     store %v, %9
     %10:f32 = load_vector_element %v, 0u
-    %11:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %12:i32 = load %11
-    %13:f32 = convert %12
-    %14:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %15:i32 = load %14
-    %16:f32 = convert %15
-    %17:f32 = load_vector_element %v, 2u
-    %18:vec4<f32> = construct %10, %13, %16, %17
-    store %x_GLF_color, %18
+    %11:f32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %13:i32 = load %12
+    %14:f32 = convert %13
+    %15:f32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %17:i32 = load %16
+    %18:f32 = convert %17
+    %19:f32 = load_vector_element %v, 2u
+    %20:vec4<f32> = construct %11, %15, %18, %19
+    store %x_GLF_color, %20
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
-    %20:void = call %main_1
-    %21:vec4<f32> = load %x_GLF_color
-    %22:main_out = construct %21
-    ret %22
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    ret %24
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.msl
index f749a4c..9d98882 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cosh-clamped-to-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,39 +20,45 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_33:f32 = load %6
-    %8:vec4<f32> = construct %x_33, %x_33, %x_33, %x_33
-    %9:vec4<f32> = clamp vec4<f32>(1.54308056831359863281f), %8, vec4<f32>(1.0f)
-    store %v, %9
-    %x_38:f32 = load_vector_element %v, 0u
-    %11:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_40:i32 = load %11
+    %7:f32 = load %6
+    %x_33:f32 = let %7
+    %9:vec4<f32> = construct %x_33, %x_33, %x_33, %x_33
+    %10:vec4<f32> = clamp vec4<f32>(1.54308068752288818359f), %9, vec4<f32>(1.0f)
+    store %v, %10
+    %11:f32 = load_vector_element %v, 0u
+    %x_38:f32 = let %11
     %13:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_43:i32 = load %13
-    %x_46:f32 = load_vector_element %v, 2u
-    %16:f32 = convert %x_40
-    %17:f32 = convert %x_43
-    %18:vec4<f32> = construct %x_38, %16, %17, %x_46
-    store %x_GLF_color, %18
+    %14:i32 = load %13
+    %x_40:i32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %17:i32 = load %16
+    %x_43:i32 = let %17
+    %19:f32 = load_vector_element %v, 2u
+    %x_46:f32 = let %19
+    %21:f32 = convert %x_40
+    %22:f32 = let %21
+    %23:f32 = convert %x_43
+    %24:vec4<f32> = construct %x_38, %22, %23, %x_46
+    store %x_GLF_color, %24
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
-    %20:void = call %main_1
-    %21:vec4<f32> = load %x_GLF_color
-    %22:main_out = construct %21
-    ret %22
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %26:void = call %main_1
+    %27:vec4<f32> = load %x_GLF_color
+    %28:main_out = construct %27
+    ret %28
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.msl
index 1da115f..9e115cf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -39,17 +39,17 @@
     %18:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %19:i32 = load %18
     store %i, %19
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %20:i32 = load %i
         %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %22:i32 = load %21
         %23:bool = lt %20, %22
-        if %23 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %23 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -57,35 +57,32 @@
         %25:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %26:i32 = load %25
         %27:bool = gt %24, %26
-        if %27 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %27 [t: $B7] {  # if_2
+          $B7: {  # true
             %28:i32 = load %a
             %29:i32 = add %28, 1i
             store %a, %29
-            if false [t: %b8] {  # if_3
-              %b8 = block {  # true
+            if false [t: $B8] {  # if_3
+              $B8: {  # true
                 %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
                 %31:i32 = load %30
                 store %i_1, %31
-                loop [b: %b9, c: %b10] {  # loop_2
-                  %b9 = block {  # body
+                loop [b: $B9] {  # loop_2
+                  $B9: {  # body
                     %32:i32 = load %i_1
                     %33:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
                     %34:i32 = load %33
                     %35:bool = lt %32, %34
-                    if %35 [t: %b11, f: %b12] {  # if_4
-                      %b11 = block {  # true
+                    if %35 [t: $B10, f: $B11] {  # if_4
+                      $B10: {  # true
                         exit_if  # if_4
                       }
-                      %b12 = block {  # false
+                      $B11: {  # false
                         exit_loop  # loop_2
                       }
                     }
                     ret
                   }
-                  %b10 = block {  # continuing
-                    next_iteration %b9
-                  }
                 }
                 exit_if  # if_3
               }
@@ -93,85 +90,89 @@
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %36:i32 = load %i
         %37:i32 = add %36, 1i
         store %i, %37
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %39:i32 = load %38
     store %i_2, %39
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
+    loop [b: $B12, c: $B13] {  # loop_3
+      $B12: {  # body
         %40:i32 = load %i_2
         %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %42:i32 = load %41
         %43:bool = lt %40, %42
-        if %43 [t: %b15, f: %b16] {  # if_5
-          %b15 = block {  # true
+        if %43 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b16 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_93:i32 = load %b
-        %45:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %46:i32 = load %45
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %48:i32 = load %47
-        %49:array<i32, 2> = construct %46, %48
-        store %indexable, %49
-        %50:i32 = load %a
-        %51:ptr<function, i32, read_write> = access %indexable, %x_93
-        %52:i32 = load %51
-        %53:i32 = add %50, %52
-        store %a, %53
-        continue %b14
+        %44:i32 = load %b
+        %x_93:i32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %47:i32 = load %46
+        %48:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %49:i32 = load %48
+        %50:array<i32, 2> = construct %47, %49
+        store %indexable, %50
+        %51:i32 = load %a
+        %52:ptr<function, i32, read_write> = access %indexable, %x_93
+        %53:i32 = load %52
+        %54:i32 = add %51, %53
+        store %a, %54
+        continue  # -> $B13
       }
-      %b14 = block {  # continuing
-        %54:i32 = load %i_2
-        %55:i32 = add %54, 1i
-        store %i_2, %55
-        next_iteration %b13
+      $B13: {  # continuing
+        %55:i32 = load %i_2
+        %56:i32 = add %55, 1i
+        store %i_2, %56
+        next_iteration  # -> $B12
       }
     }
-    %56:i32 = load %a
-    %57:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %58:i32 = load %57
-    %59:bool = eq %56, %58
-    if %59 [t: %b17] {  # if_6
-      %b17 = block {  # true
-        %60:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %61:i32 = load %60
-        %62:f32 = convert %61
-        %63:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %64:i32 = load %63
-        %65:f32 = convert %64
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %67:i32 = load %66
-        %68:f32 = convert %67
-        %69:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %57:i32 = load %a
+    %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %59:i32 = load %58
+    %60:bool = eq %57, %59
+    if %60 [t: $B16] {  # if_6
+      $B16: {  # true
+        %61:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %62:i32 = load %61
+        %63:f32 = convert %62
+        %64:f32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %66:i32 = load %65
+        %67:f32 = convert %66
+        %68:f32 = let %67
+        %69:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %70:i32 = load %69
         %71:f32 = convert %70
-        %72:vec4<f32> = construct %62, %65, %68, %71
-        store %x_GLF_color, %72
+        %72:f32 = let %71
+        %73:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %74:i32 = load %73
+        %75:f32 = convert %74
+        %76:vec4<f32> = construct %64, %68, %72, %75
+        store %x_GLF_color, %76
         exit_if  # if_6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+%tint_symbol = @fragment func():main_out {
+  $B17: {
+    %78:void = call %main_1
+    %79:vec4<f32> = load %x_GLF_color
+    %80:main_out = construct %79
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.msl
index 9188359..9c13e96 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -26,66 +26,76 @@
     %i_2:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<i32, 2>, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_36:i32 = load %10
+    %11:i32 = load %10
+    %x_36:i32 = let %11
     store %a, %x_36
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_38:i32 = load %12
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %14:i32 = load %13
+    %x_38:i32 = let %14
     store %b, %x_38
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_40:i32 = load %14
-    %x_41:f32 = convert %x_40
-    %17:vec4<f32> = construct %x_41, %x_41, %x_41, %x_41
-    store %x_GLF_color, %17
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_44:i32 = load %18
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %17:i32 = load %16
+    %x_40:i32 = let %17
+    %19:f32 = convert %x_40
+    %x_41:f32 = let %19
+    %21:vec4<f32> = construct %x_41, %x_41, %x_41, %x_41
+    store %x_GLF_color, %21
+    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %23:i32 = load %22
+    %x_44:i32 = let %23
     store %i, %x_44
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_49:i32 = load %i
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_51:i32 = load %21
-        %23:bool = lt %x_49, %x_51
-        if %23 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %25:i32 = load %i
+        %x_49:i32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %28:i32 = load %27
+        %x_51:i32 = let %28
+        %30:bool = lt %x_49, %x_51
+        if %30 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_54:i32 = load %i
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_56:i32 = load %25
-        %27:bool = gt %x_54, %x_56
-        if %27 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_60:i32 = load %a
-            %29:i32 = add %x_60, 1i
-            store %a, %29
-            if false [t: %b8] {  # if_3
-              %b8 = block {  # true
-                %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-                %x_65:i32 = load %30
+        %31:i32 = load %i
+        %x_54:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %34:i32 = load %33
+        %x_56:i32 = let %34
+        %36:bool = gt %x_54, %x_56
+        if %36 [t: $B7] {  # if_2
+          $B7: {  # true
+            %37:i32 = load %a
+            %x_60:i32 = let %37
+            %39:i32 = add %x_60, 1i
+            store %a, %39
+            if false [t: $B8] {  # if_3
+              $B8: {  # true
+                %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+                %41:i32 = load %40
+                %x_65:i32 = let %41
                 store %i_1, %x_65
-                loop [b: %b9, c: %b10] {  # loop_2
-                  %b9 = block {  # body
-                    %x_70:i32 = load %i_1
-                    %33:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                    %x_72:i32 = load %33
-                    %35:bool = lt %x_70, %x_72
-                    if %35 [t: %b11, f: %b12] {  # if_4
-                      %b11 = block {  # true
+                loop [b: $B9] {  # loop_2
+                  $B9: {  # body
+                    %43:i32 = load %i_1
+                    %x_70:i32 = let %43
+                    %45:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                    %46:i32 = load %45
+                    %x_72:i32 = let %46
+                    %48:bool = lt %x_70, %x_72
+                    if %48 [t: $B10, f: $B11] {  # if_4
+                      $B10: {  # true
                         exit_if  # if_4
                       }
-                      %b12 = block {  # false
+                      $B11: {  # false
                         exit_loop  # loop_2
                       }
                     }
                     ret
                   }
-                  %b10 = block {  # continuing
-                    next_iteration %b9
-                  }
                 }
                 exit_if  # if_3
               }
@@ -93,85 +103,104 @@
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_75:i32 = load %i
-        %37:i32 = add %x_75, 1i
-        store %i, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %49:i32 = load %i
+        %x_75:i32 = let %49
+        %51:i32 = add %x_75, 1i
+        store %i, %51
+        next_iteration  # -> $B3
       }
     }
-    %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_78:i32 = load %38
+    %52:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %53:i32 = load %52
+    %x_78:i32 = let %53
     store %i_2, %x_78
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_83:i32 = load %i_2
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_85:i32 = load %41
-        %43:bool = lt %x_83, %x_85
-        if %43 [t: %b15, f: %b16] {  # if_5
-          %b15 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_3
+      $B12: {  # body
+        %55:i32 = load %i_2
+        %x_83:i32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %58:i32 = load %57
+        %x_85:i32 = let %58
+        %60:bool = lt %x_83, %x_85
+        if %60 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b16 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_3
           }
         }
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_89:i32 = load %44
-        %46:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_91:i32 = load %46
-        %x_93:i32 = load %b
-        %49:array<i32, 2> = construct %x_89, %x_91
-        store %indexable, %49
-        %50:ptr<function, i32, read_write> = access %indexable, %x_93
-        %x_95:i32 = load %50
-        %x_96:i32 = load %a
-        %53:i32 = add %x_96, %x_95
-        store %a, %53
-        continue %b14
+        %61:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %62:i32 = load %61
+        %x_89:i32 = let %62
+        %64:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %65:i32 = load %64
+        %x_91:i32 = let %65
+        %67:i32 = load %b
+        %x_93:i32 = let %67
+        %69:array<i32, 2> = construct %x_89, %x_91
+        store %indexable, %69
+        %70:ptr<function, i32, read_write> = access %indexable, %x_93
+        %71:i32 = load %70
+        %x_95:i32 = let %71
+        %73:i32 = load %a
+        %x_96:i32 = let %73
+        %75:i32 = add %x_96, %x_95
+        store %a, %75
+        continue  # -> $B13
       }
-      %b14 = block {  # continuing
-        %x_98:i32 = load %i_2
-        %55:i32 = add %x_98, 1i
-        store %i_2, %55
-        next_iteration %b13
+      $B13: {  # continuing
+        %76:i32 = load %i_2
+        %x_98:i32 = let %76
+        %78:i32 = add %x_98, 1i
+        store %i_2, %78
+        next_iteration  # -> $B12
       }
     }
-    %x_100:i32 = load %a
-    %57:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_102:i32 = load %57
-    %59:bool = eq %x_100, %x_102
-    if %59 [t: %b17] {  # if_6
-      %b17 = block {  # true
-        %60:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_107:i32 = load %60
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_110:i32 = load %62
-        %64:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_113:i32 = load %64
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_116:i32 = load %66
-        %68:f32 = convert %x_107
-        %69:f32 = convert %x_110
-        %70:f32 = convert %x_113
-        %71:f32 = convert %x_116
-        %72:vec4<f32> = construct %68, %69, %70, %71
-        store %x_GLF_color, %72
+    %79:i32 = load %a
+    %x_100:i32 = let %79
+    %81:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %82:i32 = load %81
+    %x_102:i32 = let %82
+    %84:bool = eq %x_100, %x_102
+    if %84 [t: $B16] {  # if_6
+      $B16: {  # true
+        %85:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %86:i32 = load %85
+        %x_107:i32 = let %86
+        %88:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %89:i32 = load %88
+        %x_110:i32 = let %89
+        %91:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %92:i32 = load %91
+        %x_113:i32 = let %92
+        %94:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %95:i32 = load %94
+        %x_116:i32 = let %95
+        %97:f32 = convert %x_107
+        %98:f32 = let %97
+        %99:f32 = convert %x_110
+        %100:f32 = let %99
+        %101:f32 = convert %x_113
+        %102:f32 = let %101
+        %103:f32 = convert %x_116
+        %104:vec4<f32> = construct %98, %100, %102, %103
+        store %x_GLF_color, %104
         exit_if  # if_6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+%tint_symbol = @fragment func():main_out {
+  $B17: {
+    %106:void = call %main_1
+    %107:vec4<f32> = load %x_GLF_color
+    %108:main_out = construct %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.msl
index efdd3b1..cc8713f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.spvasm.expected.ir.msl
@@ -1,6 +1,128 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, i32, read_write> = var
+    %b:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %i_1:ptr<function, i32, read_write> = var
+    %i_2:ptr<function, i32, read_write> = var
+    %indexable:ptr<function, array<i32, 2>, read_write> = var
+    store %a, 0i
+    store %b, 1i
+    store %x_GLF_color, vec4<f32>(0.0f)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %10:bool = lt %9, 10i
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %11:i32 = load %i
+        %12:bool = gt %11, 1i
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
+            %13:i32 = load %a
+            %14:i32 = add %13, 1i
+            store %a, %14
+            if false [t: $B8] {  # if_3
+              $B8: {  # true
+                store %i_1, 0i
+                loop [b: $B9] {  # loop_2
+                  $B9: {  # body
+                    %15:i32 = load %i_1
+                    %16:bool = lt %15, 10i
+                    if %16 [t: $B10, f: $B11] {  # if_4
+                      $B10: {  # true
+                        exit_if  # if_4
+                      }
+                      $B11: {  # false
+                        exit_loop  # loop_2
+                      }
+                    }
+                    ret
+                  }
+                }
+                exit_if  # if_3
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %17:i32 = load %i
+        %18:i32 = add %17, 1i
+        store %i, %18
+        next_iteration  # -> $B3
+      }
+    }
+    store %i_2, 0i
+    loop [b: $B12, c: $B13] {  # loop_3
+      $B12: {  # body
+        %19:i32 = load %i_2
+        %20:bool = lt %19, 10i
+        if %20 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
+            exit_if  # if_5
+          }
+          $B15: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %21:i32 = load %b
+        %x_65:i32 = let %21
+        store %indexable, array<i32, 2>(1i, 2i)
+        %23:i32 = load %a
+        %24:ptr<function, i32, read_write> = access %indexable, %x_65
+        %25:i32 = load %24
+        %26:i32 = add %23, %25
+        store %a, %26
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %27:i32 = load %i_2
+        %28:i32 = add %27, 1i
+        store %i_2, %28
+        next_iteration  # -> $B12
+      }
+    }
+    %29:i32 = load %a
+    %30:bool = eq %29, 28i
+    if %30 [t: $B16] {  # if_6
+      $B16: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_6
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B17: {
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.msl
index efdd3b1..23764d3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-cumulate-loops-unreachable/1.wgsl.expected.ir.msl
@@ -1,6 +1,138 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, i32, read_write> = var
+    %b:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %i_1:ptr<function, i32, read_write> = var
+    %i_2:ptr<function, i32, read_write> = var
+    %indexable:ptr<function, array<i32, 2>, read_write> = var
+    store %a, 0i
+    store %b, 1i
+    store %x_GLF_color, vec4<f32>(0.0f)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_38:i32 = let %9
+        %11:bool = lt %x_38, 10i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %12:i32 = load %i
+        %x_41:i32 = let %12
+        %14:bool = gt %x_41, 1i
+        if %14 [t: $B7] {  # if_2
+          $B7: {  # true
+            %15:i32 = load %a
+            %x_45:i32 = let %15
+            %17:i32 = add %x_45, 1i
+            store %a, %17
+            if false [t: $B8] {  # if_3
+              $B8: {  # true
+                store %i_1, 0i
+                loop [b: $B9] {  # loop_2
+                  $B9: {  # body
+                    %18:i32 = load %i_1
+                    %x_53:i32 = let %18
+                    %20:bool = lt %x_53, 10i
+                    if %20 [t: $B10, f: $B11] {  # if_4
+                      $B10: {  # true
+                        exit_if  # if_4
+                      }
+                      $B11: {  # false
+                        exit_loop  # loop_2
+                      }
+                    }
+                    ret
+                  }
+                }
+                exit_if  # if_3
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %21:i32 = load %i
+        %x_56:i32 = let %21
+        %23:i32 = add %x_56, 1i
+        store %i, %23
+        next_iteration  # -> $B3
+      }
+    }
+    store %i_2, 0i
+    loop [b: $B12, c: $B13] {  # loop_3
+      $B12: {  # body
+        %24:i32 = load %i_2
+        %x_62:i32 = let %24
+        %26:bool = lt %x_62, 10i
+        if %26 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
+            exit_if  # if_5
+          }
+          $B15: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %27:i32 = load %b
+        %x_65:i32 = let %27
+        store %indexable, array<i32, 2>(1i, 2i)
+        %29:ptr<function, i32, read_write> = access %indexable, %x_65
+        %30:i32 = load %29
+        %x_67:i32 = let %30
+        %32:i32 = load %a
+        %x_68:i32 = let %32
+        %34:i32 = add %x_68, %x_67
+        store %a, %34
+        continue  # -> $B13
+      }
+      $B13: {  # continuing
+        %35:i32 = load %i_2
+        %x_70:i32 = let %35
+        %37:i32 = add %x_70, 1i
+        store %i_2, %37
+        next_iteration  # -> $B12
+      }
+    }
+    %38:i32 = load %a
+    %x_72:i32 = let %38
+    %40:bool = eq %x_72, 28i
+    if %40 [t: $B16] {  # if_6
+      $B16: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_6
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B17: {
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    ret %44
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.msl
index 3b2d2a2..d7e7882 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A1:ptr<function, array<f32, 3>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
@@ -47,83 +47,90 @@
     %20:i32 = load %19
     %21:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %22:i32 = load %21
-    %23:i32 = clamp %18, %20, %22
-    store %a, %23
-    %24:i32 = load %a
-    %25:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %26:i32 = load %25
-    %27:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %23:i32 = let %22
+    %24:i32 = max %18, %20
+    %25:i32 = min %24, %23
+    store %a, %25
+    %26:i32 = load %a
+    %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %28:i32 = load %27
-    %29:i32 = clamp %24, %26, %28
-    %30:ptr<function, f32, read_write> = access %A1, %29
-    %31:f32 = load %30
-    store %b, %31
-    %32:f32 = load %b
-    %33:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %34:i32 = load %33
-    %35:ptr<function, f32, read_write> = access %A1, %34
-    %36:f32 = load %35
-    %37:bool = lt %32, %36
-    if %37 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %39:f32 = load %38
-        %40:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %41:f32 = load %40
-        %42:bool = gt %39, %41
-        store %x_36, %42
+    %29:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %30:i32 = load %29
+    %31:i32 = let %30
+    %32:i32 = max %26, %28
+    %33:i32 = min %32, %31
+    %34:ptr<function, f32, read_write> = access %A1, %33
+    %35:f32 = load %34
+    store %b, %35
+    %36:f32 = load %b
+    %37:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %38:i32 = load %37
+    %39:ptr<function, f32, read_write> = access %A1, %38
+    %40:f32 = load %39
+    %41:bool = lt %36, %40
+    if %41 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %42:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %43:f32 = load %42
+        %44:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %45:f32 = load %44
+        %46:bool = gt %43, %45
+        store %x_36, %46
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %43:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %44:f32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %46:i32 = load %45
-        %47:ptr<function, f32, read_write> = access %A1, %46
+      $B4: {  # false
+        %47:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
         %48:f32 = load %47
-        %49:bool = lt %44, %48
-        store %x_36, %49
+        %49:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %50:i32 = load %49
+        %51:ptr<function, f32, read_write> = access %A1, %50
+        %52:f32 = load %51
+        %53:bool = lt %48, %52
+        store %x_36, %53
         exit_if  # if_1
       }
     }
-    %50:bool = load %x_36
-    store %c, %50
-    %51:bool = load %c
-    if %51 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %53:i32 = load %52
-        %54:f32 = convert %53
-        %55:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %56:i32 = load %55
-        %57:f32 = convert %56
-        %58:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %59:i32 = load %58
-        %60:f32 = convert %59
-        %61:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %62:i32 = load %61
-        %63:f32 = convert %62
-        %64:vec4<f32> = construct %54, %57, %60, %63
-        store %x_GLF_color, %64
+    %54:bool = load %x_36
+    store %c, %54
+    %55:bool = load %c
+    if %55 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
+        %56:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %57:i32 = load %56
+        %58:f32 = convert %57
+        %59:f32 = let %58
+        %60:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %61:i32 = load %60
+        %62:f32 = convert %61
+        %63:f32 = let %62
+        %64:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %65:i32 = load %64
+        %66:f32 = convert %65
+        %67:f32 = let %66
+        %68:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %69:i32 = load %68
+        %70:f32 = convert %69
+        %71:vec4<f32> = construct %59, %63, %67, %70
+        store %x_GLF_color, %71
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %65:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %66:f32 = load %65
-        %67:vec4<f32> = construct %66
-        store %x_GLF_color, %67
+      $B6: {  # false
+        %72:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %73:f32 = load %72
+        %74:vec4<f32> = construct %73
+        store %x_GLF_color, %74
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %76:void = call %main_1
+    %77:vec4<f32> = load %x_GLF_color
+    %78:main_out = construct %77
+    ret %78
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.msl
index cf6927c..3f98729 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-clamp-undefined-access-array/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,110 +20,140 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A1:ptr<function, array<f32, 3>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, bool, read_write> = var
     %x_36:ptr<function, bool, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_38:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:f32 = load %12
-    %14:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_42:f32 = load %14
-    %16:array<f32, 3> = construct %x_38, %x_40, %x_42
-    store %A1, %16
-    %17:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_45:i32 = load %17
-    %19:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_47:i32 = load %19
-    %21:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_49:i32 = load %21
-    %23:i32 = clamp %x_45, %x_47, %x_49
-    store %a, %23
-    %x_51:i32 = load %a
-    %25:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_53:i32 = load %25
-    %27:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_55:i32 = load %27
-    %29:i32 = clamp %x_51, %x_53, %x_55
-    %30:ptr<function, f32, read_write> = access %A1, %29
-    %x_58:f32 = load %30
-    store %b, %x_58
-    %x_59:f32 = load %b
+    %11:f32 = load %10
+    %x_38:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %14:f32 = load %13
+    %x_40:f32 = let %14
+    %16:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %17:f32 = load %16
+    %x_42:f32 = let %17
+    %19:array<f32, 3> = construct %x_38, %x_40, %x_42
+    store %A1, %19
+    %20:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %21:i32 = load %20
+    %x_45:i32 = let %21
+    %23:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %24:i32 = load %23
+    %x_47:i32 = let %24
+    %26:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %27:i32 = load %26
+    %x_49:i32 = let %27
+    %29:i32 = max %x_45, %x_47
+    %30:i32 = min %29, %x_49
+    store %a, %30
+    %31:i32 = load %a
+    %x_51:i32 = let %31
     %33:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_61:i32 = load %33
-    %35:ptr<function, f32, read_write> = access %A1, %x_61
-    %x_63:f32 = load %35
-    %37:bool = lt %x_59, %x_63
-    if %37 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_69:f32 = load %38
-        %40:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_71:f32 = load %40
-        %42:bool = gt %x_69, %x_71
-        store %x_36, %42
+    %34:i32 = load %33
+    %x_53:i32 = let %34
+    %36:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %37:i32 = load %36
+    %x_55:i32 = let %37
+    %39:i32 = max %x_51, %x_53
+    %40:i32 = min %39, %x_55
+    %41:ptr<function, f32, read_write> = access %A1, %40
+    %42:f32 = load %41
+    %x_58:f32 = let %42
+    store %b, %x_58
+    %44:f32 = load %b
+    %x_59:f32 = let %44
+    %46:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %47:i32 = load %46
+    %x_61:i32 = let %47
+    %49:ptr<function, f32, read_write> = access %A1, %x_61
+    %50:f32 = load %49
+    %x_63:f32 = let %50
+    %52:bool = lt %x_59, %x_63
+    if %52 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %53:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %54:f32 = load %53
+        %x_69:f32 = let %54
+        %56:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %57:f32 = load %56
+        %x_71:f32 = let %57
+        %59:bool = gt %x_69, %x_71
+        store %x_36, %59
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %43:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_74:f32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_76:i32 = load %45
-        %47:ptr<function, f32, read_write> = access %A1, %x_76
-        %x_78:f32 = load %47
-        %49:bool = lt %x_74, %x_78
-        store %x_36, %49
+      $B4: {  # false
+        %60:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %61:f32 = load %60
+        %x_74:f32 = let %61
+        %63:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %64:i32 = load %63
+        %x_76:i32 = let %64
+        %66:ptr<function, f32, read_write> = access %A1, %x_76
+        %67:f32 = load %66
+        %x_78:f32 = let %67
+        %69:bool = lt %x_74, %x_78
+        store %x_36, %69
         exit_if  # if_1
       }
     }
-    %x_80:bool = load %x_36
+    %70:bool = load %x_36
+    %x_80:bool = let %70
     store %c, %x_80
-    %x_81:bool = load %c
-    if %x_81 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_86:i32 = load %52
-        %54:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_89:i32 = load %54
-        %56:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_92:i32 = load %56
-        %58:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_95:i32 = load %58
-        %60:f32 = convert %x_86
-        %61:f32 = convert %x_89
-        %62:f32 = convert %x_92
-        %63:f32 = convert %x_95
-        %64:vec4<f32> = construct %60, %61, %62, %63
-        store %x_GLF_color, %64
+    %72:bool = load %c
+    %x_81:bool = let %72
+    if %x_81 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
+        %74:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %75:i32 = load %74
+        %x_86:i32 = let %75
+        %77:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %78:i32 = load %77
+        %x_89:i32 = let %78
+        %80:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %81:i32 = load %80
+        %x_92:i32 = let %81
+        %83:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %84:i32 = load %83
+        %x_95:i32 = let %84
+        %86:f32 = convert %x_86
+        %87:f32 = let %86
+        %88:f32 = convert %x_89
+        %89:f32 = let %88
+        %90:f32 = convert %x_92
+        %91:f32 = let %90
+        %92:f32 = convert %x_95
+        %93:vec4<f32> = construct %87, %89, %91, %92
+        store %x_GLF_color, %93
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %65:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_99:f32 = load %65
-        %67:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
-        store %x_GLF_color, %67
+      $B6: {  # false
+        %94:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %95:f32 = load %94
+        %x_99:f32 = let %95
+        %97:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
+        store %x_GLF_color, %97
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %99:void = call %main_1
+    %100:vec4<f32> = load %x_GLF_color
+    %101:main_out = construct %100
+    ret %101
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.msl
index 206d997..07464b8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
@@ -29,86 +29,94 @@
     %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %11:i32 = load %10
     store %i, %11
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %12:i32 = load %i
         %13:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %14:i32 = load %13
         %15:bool = lt %12, %14
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %17:u32 = access vec3<u32>(0u, 1u, 2u), %x_50
-        %18:i32 = load %i
-        %19:f32 = convert %18
-        store_vector_element %v, %17, %19
-        continue %b4
+        %16:i32 = load %i
+        %x_50:i32 = let %16
+        %18:u32 = access vec3<u32>(0u, 1u, 2u), %x_50
+        %19:i32 = load %i
+        %20:f32 = convert %19
+        store_vector_element %v, %18, %20
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %20:i32 = load %i
-        %21:i32 = add %20, 1i
-        store %i, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %21:i32 = load %i
+        %22:i32 = add %21, 1i
+        store %i, %22
+        next_iteration  # -> $B3
       }
     }
-    %22:vec4<f32> = load %v
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %24:i32 = load %23
-    %25:f32 = convert %24
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %27:i32 = load %26
-    %28:f32 = convert %27
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %23:vec4<f32> = load %v
+    %24:vec4<f32> = let %23
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %26:i32 = load %25
+    %27:f32 = convert %26
+    %28:f32 = let %27
+    %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %30:i32 = load %29
     %31:f32 = convert %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %33:i32 = load %32
-    %34:f32 = convert %33
-    %35:vec4<f32> = construct %25, %28, %31, %34
-    %36:vec4<bool> = eq %22, %35
-    %37:bool = all %36
-    if %37 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %32:f32 = let %31
+    %33:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %34:i32 = load %33
+    %35:f32 = convert %34
+    %36:f32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %38:i32 = load %37
+    %39:f32 = convert %38
+    %40:vec4<f32> = construct %28, %32, %36, %39
+    %41:vec4<bool> = eq %24, %40
+    %42:bool = all %41
+    if %42 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:vec4<f32> = construct %40, %43, %46, %49
-        store %x_GLF_color, %50
-        exit_if  # if_2
-      }
-      %b8 = block {  # false
+        %50:f32 = let %49
         %51:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %52:i32 = load %51
         %53:f32 = convert %52
-        %54:vec4<f32> = construct %53
-        store %x_GLF_color, %54
+        %54:f32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %56:i32 = load %55
+        %57:f32 = convert %56
+        %58:vec4<f32> = construct %46, %50, %54, %57
+        store %x_GLF_color, %58
+        exit_if  # if_2
+      }
+      $B8: {  # false
+        %59:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %60:i32 = load %59
+        %61:f32 = convert %60
+        %62:vec4<f32> = construct %61
+        store %x_GLF_color, %62
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %64:void = call %main_1
+    %65:vec4<f32> = load %x_GLF_color
+    %66:main_out = construct %65
+    ret %66
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.msl
index 5fca3a6..a0b862b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,103 +12,128 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_36:i32 = load %6
-    %x_37:f32 = convert %x_36
-    %9:vec4<f32> = construct %x_37, %x_37, %x_37, %x_37
-    store %v, %9
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:i32 = load %10
+    %7:i32 = load %6
+    %x_36:i32 = let %7
+    %9:f32 = convert %x_36
+    %x_37:f32 = let %9
+    %11:vec4<f32> = construct %x_37, %x_37, %x_37, %x_37
+    store %v, %11
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %13:i32 = load %12
+    %x_40:i32 = let %13
     store %i, %x_40
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_45:i32 = load %i
-        %13:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_47:i32 = load %13
-        %15:bool = lt %x_45, %x_47
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %15:i32 = load %i
+        %x_45:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %18:i32 = load %17
+        %x_47:i32 = let %18
+        %20:bool = lt %x_45, %x_47
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %x_51:i32 = load %i
-        %18:u32 = access vec3<u32>(0u, 1u, 2u), %x_50
-        %19:f32 = convert %x_51
-        store_vector_element %v, %18, %19
-        continue %b4
+        %21:i32 = load %i
+        %x_50:i32 = let %21
+        %23:i32 = load %i
+        %x_51:i32 = let %23
+        %25:u32 = access vec3<u32>(0u, 1u, 2u), %x_50
+        %26:f32 = convert %x_51
+        store_vector_element %v, %25, %26
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_55:i32 = load %i
-        %21:i32 = add %x_55, 1i
-        store %i, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %27:i32 = load %i
+        %x_55:i32 = let %27
+        %29:i32 = add %x_55, 1i
+        store %i, %29
+        next_iteration  # -> $B3
       }
     }
-    %x_57:vec4<f32> = load %v
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_59:i32 = load %23
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_62:i32 = load %25
-    %27:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_65:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_68:i32 = load %29
-    %31:f32 = convert %x_59
-    %32:f32 = convert %x_62
-    %33:f32 = convert %x_65
-    %34:f32 = convert %x_68
-    %35:vec4<f32> = construct %31, %32, %33, %34
-    %36:vec4<bool> = eq %x_57, %35
-    %37:bool = all %36
-    if %37 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_77:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_80:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_83:i32 = load %42
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_86:i32 = load %44
-        %46:f32 = convert %x_77
-        %47:f32 = convert %x_80
-        %48:f32 = convert %x_83
-        %49:f32 = convert %x_86
-        %50:vec4<f32> = construct %46, %47, %48, %49
-        store %x_GLF_color, %50
+    %30:vec4<f32> = load %v
+    %x_57:vec4<f32> = let %30
+    %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %33:i32 = load %32
+    %x_59:i32 = let %33
+    %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %36:i32 = load %35
+    %x_62:i32 = let %36
+    %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %39:i32 = load %38
+    %x_65:i32 = let %39
+    %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %42:i32 = load %41
+    %x_68:i32 = let %42
+    %44:f32 = convert %x_59
+    %45:f32 = let %44
+    %46:f32 = convert %x_62
+    %47:f32 = let %46
+    %48:f32 = convert %x_65
+    %49:f32 = let %48
+    %50:f32 = convert %x_68
+    %51:vec4<f32> = construct %45, %47, %49, %50
+    %52:vec4<bool> = eq %x_57, %51
+    %53:bool = all %52
+    if %53 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %55:i32 = load %54
+        %x_77:i32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %58:i32 = load %57
+        %x_80:i32 = let %58
+        %60:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %61:i32 = load %60
+        %x_83:i32 = let %61
+        %63:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %64:i32 = load %63
+        %x_86:i32 = let %64
+        %66:f32 = convert %x_77
+        %67:f32 = let %66
+        %68:f32 = convert %x_80
+        %69:f32 = let %68
+        %70:f32 = convert %x_83
+        %71:f32 = let %70
+        %72:f32 = convert %x_86
+        %73:vec4<f32> = construct %67, %69, %71, %72
+        store %x_GLF_color, %73
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %51:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_90:i32 = load %51
-        %x_91:f32 = convert %x_90
-        %54:vec4<f32> = construct %x_91, %x_91, %x_91, %x_91
-        store %x_GLF_color, %54
+      $B8: {  # false
+        %74:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %75:i32 = load %74
+        %x_90:i32 = let %75
+        %77:f32 = convert %x_90
+        %x_91:f32 = let %77
+        %79:vec4<f32> = construct %x_91, %x_91, %x_91, %x_91
+        store %x_GLF_color, %79
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %81:void = call %main_1
+    %82:vec4<f32> = load %x_GLF_color
+    %83:main_out = construct %82
+    ret %83
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.msl
index 7a289c4..2c145df 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func_f1_ = func(%b:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%func_f1_ = func(%b:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %6:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %7:f32 = load %6
     %8:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
@@ -42,102 +42,111 @@
     %15:f32 = load %14
     %16:f32 = load %b
     %17:bool = gte %15, %16
-    if %17 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
         %18:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_104:f32 = load %18
+        %19:f32 = load %18
+        %x_104:f32 = let %19
         ret %x_104
       }
     }
-    %20:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_106:f32 = load %20
+    %21:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %22:f32 = load %21
+    %x_106:f32 = let %22
     ret %x_106
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %a:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
     %x_71:ptr<function, bool, read_write> = var
     %x_72:ptr<function, bool, read_write> = var
-    %28:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %29:f32 = load %28
-    store %param, %29
-    %x_45:f32 = call %func_f1_, %param
+    %30:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %31:f32 = load %30
+    store %param, %31
+    %32:f32 = call %func_f1_, %param
+    %x_45:f32 = let %32
     store %a, %x_45
-    %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %32:f32 = load %31
-    %33:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %34:f32 = load %33
-    %35:f32 = add %32, %34
-    store %param_1, %35
-    %x_51:f32 = call %func_f1_, %param_1
-    %37:f32 = load %a
-    %38:f32 = add %37, %x_51
-    store %a, %38
-    %39:f32 = load %a
-    %40:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %41:f32 = load %40
-    %x_57:bool = eq %39, %41
+    %34:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %35:f32 = load %34
+    %36:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %37:f32 = load %36
+    %38:f32 = add %35, %37
+    store %param_1, %38
+    %39:f32 = call %func_f1_, %param_1
+    %x_51:f32 = let %39
+    %41:f32 = load %a
+    %42:f32 = add %41, %x_51
+    store %a, %42
+    %43:f32 = load %a
+    %44:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %45:f32 = load %44
+    %46:bool = eq %43, %45
+    %x_57:bool = let %46
     store %x_72, %x_57
-    if %x_57 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %43:vec4<f32> = load %x_GLF_color
-        %44:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %45:f32 = load %44
-        %46:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %47:f32 = load %46
-        %48:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %49:f32 = load %48
+    if %x_57 [t: $B5] {  # if_2
+      $B5: {  # true
+        %48:vec4<f32> = load %x_GLF_color
+        %49:vec4<f32> = let %48
         %50:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
         %51:f32 = load %50
-        %52:vec4<f32> = construct %45, %47, %49, %51
-        %53:vec4<bool> = eq %43, %52
-        %54:bool = all %53
-        store %x_71, %54
-        %55:bool = load %x_71
-        store %x_72, %55
+        %52:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %53:f32 = load %52
+        %54:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %55:f32 = load %54
+        %56:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %57:f32 = load %56
+        %58:vec4<f32> = construct %51, %53, %55, %57
+        %59:vec4<bool> = eq %49, %58
+        %60:bool = all %59
+        store %x_71, %60
+        %61:bool = load %x_71
+        store %x_72, %61
         exit_if  # if_2
       }
     }
-    %56:bool = load %x_72
-    if %56 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %57:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %58:i32 = load %57
-        %59:f32 = convert %58
-        %60:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %61:i32 = load %60
-        %62:f32 = convert %61
-        %63:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+    %62:bool = load %x_72
+    if %62 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %63:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
         %64:i32 = load %63
         %65:f32 = convert %64
-        %66:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %67:i32 = load %66
-        %68:f32 = convert %67
-        %69:vec4<f32> = construct %59, %62, %65, %68
-        store %x_GLF_color, %69
+        %66:f32 = let %65
+        %67:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %68:i32 = load %67
+        %69:f32 = convert %68
+        %70:f32 = let %69
+        %71:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %72:i32 = load %71
+        %73:f32 = convert %72
+        %74:f32 = let %73
+        %75:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %76:i32 = load %75
+        %77:f32 = convert %76
+        %78:vec4<f32> = construct %66, %70, %74, %77
+        store %x_GLF_color, %78
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %70:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %71:i32 = load %70
-        %72:f32 = convert %71
-        %73:vec4<f32> = construct %72
-        store %x_GLF_color, %73
+      $B7: {  # false
+        %79:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %80:i32 = load %79
+        %81:f32 = convert %80
+        %82:vec4<f32> = construct %81
+        store %x_GLF_color, %82
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %75:void = call %main_1
-    %76:vec4<f32> = load %x_GLF_color
-    %77:main_out = construct %76
-    ret %77
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %84:void = call %main_1
+    %85:vec4<f32> = load %x_GLF_color
+    %86:main_out = construct %85
+    ret %86
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.msl
index 283ac53..79ff783 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-glf_color/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,124 +20,156 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func_f1_ = func(%b:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%func_f1_ = func(%b:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %6:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_90:f32 = load %6
-    %8:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_92:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_94:f32 = load %10
-    %12:vec4<f32> = construct %x_90, %x_92, %x_94, 1.0f
-    store %x_GLF_color, %12
-    %x_96:vec4<f32> = load %x_GLF_color
+    %7:f32 = load %6
+    %x_90:f32 = let %7
+    %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %10:f32 = load %9
+    %x_92:f32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %13:f32 = load %12
+    %x_94:f32 = let %13
+    %15:vec4<f32> = construct %x_90, %x_92, %x_94, 1.0f
+    store %x_GLF_color, %15
+    %16:vec4<f32> = load %x_GLF_color
+    %x_96:vec4<f32> = let %16
     store %x_GLF_color, %x_96
-    %14:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_98:f32 = load %14
-    %x_99:f32 = load %b
-    %17:bool = gte %x_98, %x_99
-    if %17 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %18:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_104:f32 = load %18
+    %18:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %19:f32 = load %18
+    %x_98:f32 = let %19
+    %21:f32 = load %b
+    %x_99:f32 = let %21
+    %23:bool = gte %x_98, %x_99
+    if %23 [t: $B3] {  # if_1
+      $B3: {  # true
+        %24:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %25:f32 = load %24
+        %x_104:f32 = let %25
         ret %x_104
       }
     }
-    %20:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_106:f32 = load %20
+    %27:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %28:f32 = load %27
+    %x_106:f32 = let %28
     ret %x_106
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %a:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
     %x_71:ptr<function, bool, read_write> = var
     %x_72_phi:ptr<function, bool, read_write> = var
-    %28:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_44:f32 = load %28
+    %36:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %37:f32 = load %36
+    %x_44:f32 = let %37
     store %param, %x_44
-    %x_45:f32 = call %func_f1_, %param
+    %39:f32 = call %func_f1_, %param
+    %x_45:f32 = let %39
     store %a, %x_45
-    %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_47:f32 = load %31
-    %33:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_49:f32 = load %33
-    %35:f32 = add %x_47, %x_49
-    store %param_1, %35
-    %x_51:f32 = call %func_f1_, %param_1
-    %x_52:f32 = load %a
-    %38:f32 = add %x_52, %x_51
-    store %a, %38
-    %x_54:f32 = load %a
-    %40:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %x_56:f32 = load %40
-    %x_57:bool = eq %x_54, %x_56
+    %41:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %42:f32 = load %41
+    %x_47:f32 = let %42
+    %44:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %45:f32 = load %44
+    %x_49:f32 = let %45
+    %47:f32 = add %x_47, %x_49
+    store %param_1, %47
+    %48:f32 = call %func_f1_, %param_1
+    %x_51:f32 = let %48
+    %50:f32 = load %a
+    %x_52:f32 = let %50
+    %52:f32 = add %x_52, %x_51
+    store %a, %52
+    %53:f32 = load %a
+    %x_54:f32 = let %53
+    %55:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %56:f32 = load %55
+    %x_56:f32 = let %56
+    %58:bool = eq %x_54, %x_56
+    %x_57:bool = let %58
     store %x_72_phi, %x_57
-    if %x_57 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %x_60:vec4<f32> = load %x_GLF_color
-        %44:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_62:f32 = load %44
-        %46:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_64:f32 = load %46
-        %48:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_66:f32 = load %48
-        %50:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_68:f32 = load %50
-        %52:vec4<f32> = construct %x_62, %x_64, %x_66, %x_68
-        %53:vec4<bool> = eq %x_60, %52
-        %54:bool = all %53
-        store %x_71, %54
-        %55:bool = load %x_71
-        store %x_72_phi, %55
+    if %x_57 [t: $B5] {  # if_2
+      $B5: {  # true
+        %60:vec4<f32> = load %x_GLF_color
+        %x_60:vec4<f32> = let %60
+        %62:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %63:f32 = load %62
+        %x_62:f32 = let %63
+        %65:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %66:f32 = load %65
+        %x_64:f32 = let %66
+        %68:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %69:f32 = load %68
+        %x_66:f32 = let %69
+        %71:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %72:f32 = load %71
+        %x_68:f32 = let %72
+        %74:vec4<f32> = construct %x_62, %x_64, %x_66, %x_68
+        %75:vec4<bool> = eq %x_60, %74
+        %76:bool = all %75
+        store %x_71, %76
+        %77:bool = load %x_71
+        store %x_72_phi, %77
         exit_if  # if_2
       }
     }
-    %x_72:bool = load %x_72_phi
-    if %x_72 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %57:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %x_15:i32 = load %57
-        %59:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_16:i32 = load %59
-        %61:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_17:i32 = load %61
-        %63:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %x_18:i32 = load %63
-        %65:f32 = convert %x_15
-        %66:f32 = convert %x_16
-        %67:f32 = convert %x_17
-        %68:f32 = convert %x_18
-        %69:vec4<f32> = construct %65, %66, %67, %68
-        store %x_GLF_color, %69
+    %78:bool = load %x_72_phi
+    %x_72:bool = let %78
+    if %x_72 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %80:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %81:i32 = load %80
+        %x_15:i32 = let %81
+        %83:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %84:i32 = load %83
+        %x_16:i32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %87:i32 = load %86
+        %x_17:i32 = let %87
+        %89:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %90:i32 = load %89
+        %x_18:i32 = let %90
+        %92:f32 = convert %x_15
+        %93:f32 = let %92
+        %94:f32 = convert %x_16
+        %95:f32 = let %94
+        %96:f32 = convert %x_17
+        %97:f32 = let %96
+        %98:f32 = convert %x_18
+        %99:vec4<f32> = construct %93, %95, %97, %98
+        store %x_GLF_color, %99
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %70:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_19:i32 = load %70
-        %x_86:f32 = convert %x_19
-        %73:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
-        store %x_GLF_color, %73
+      $B7: {  # false
+        %100:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %101:i32 = load %100
+        %x_19:i32 = let %101
+        %103:f32 = convert %x_19
+        %x_86:f32 = let %103
+        %105:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
+        store %x_GLF_color, %105
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %75:void = call %main_1
-    %76:vec4<f32> = load %x_GLF_color
-    %77:main_out = construct %76
-    ret %77
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %107:void = call %main_1
+    %108:vec4<f32> = load %x_GLF_color
+    %109:main_out = construct %108
+    ret %109
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.msl
index 61f2c9f..164bde3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
     %6:f32 = load %5
@@ -28,8 +28,8 @@
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %10:f32 = load %9
     %11:bool = gt %8, %10
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         %12:f32 = load %a
         %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
         %14:f32 = load %13
@@ -43,8 +43,8 @@
         %20:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
         %21:f32 = load %20
         %22:bool = gt %19, %21
-        if %22 [t: %b4] {  # if_2
-          %b4 = block {  # true
+        if %22 [t: $B4] {  # if_2
+          $B4: {  # true
             %23:f32 = load %a
             %24:f32 = load_vector_element %x_GLF_color, 0u
             %25:f32 = add %23, %24
@@ -65,8 +65,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %32:void = call %main_1
     %33:vec4<f32> = load %x_GLF_color
     %34:main_out = construct %33
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.msl
index 28c7b73..3e1850c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-increment-color/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,65 +12,77 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_30:f32 = load %5
+    %6:f32 = load %5
+    %x_30:f32 = let %6
     store %a, %x_30
-    %7:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_32:f32 = load %7
-    %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_34:f32 = load %9
-    %11:bool = gt %x_32, %x_34
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_39:f32 = load %12
-        %x_40:f32 = load %a
-        %15:f32 = add %x_40, %x_39
-        store %a, %15
-        %x_42:f32 = load %a
-        %17:vec4<f32> = construct %x_42, %x_42, %x_42, %x_42
-        store %x_GLF_color, %17
-        %18:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_45:f32 = load %18
-        %20:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_47:f32 = load %20
-        %22:bool = gt %x_45, %x_47
-        if %22 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            %x_52:f32 = load_vector_element %x_GLF_color, 0u
-            %x_53:f32 = load %a
-            %25:f32 = add %x_53, %x_52
-            store %a, %25
-            %26:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-            %x_56:f32 = load %26
-            %28:vec4<f32> = construct %x_56, %x_56, %x_56, %x_56
-            store %x_GLF_color, %28
+    %8:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %9:f32 = load %8
+    %x_32:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %12:f32 = load %11
+    %x_34:f32 = let %12
+    %14:bool = gt %x_32, %x_34
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %16:f32 = load %15
+        %x_39:f32 = let %16
+        %18:f32 = load %a
+        %x_40:f32 = let %18
+        %20:f32 = add %x_40, %x_39
+        store %a, %20
+        %21:f32 = load %a
+        %x_42:f32 = let %21
+        %23:vec4<f32> = construct %x_42, %x_42, %x_42, %x_42
+        store %x_GLF_color, %23
+        %24:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %25:f32 = load %24
+        %x_45:f32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %28:f32 = load %27
+        %x_47:f32 = let %28
+        %30:bool = gt %x_45, %x_47
+        if %30 [t: $B4] {  # if_2
+          $B4: {  # true
+            %31:f32 = load_vector_element %x_GLF_color, 0u
+            %x_52:f32 = let %31
+            %33:f32 = load %a
+            %x_53:f32 = let %33
+            %35:f32 = add %x_53, %x_52
+            store %a, %35
+            %36:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+            %37:f32 = load %36
+            %x_56:f32 = let %37
+            %39:vec4<f32> = construct %x_56, %x_56, %x_56, %x_56
+            store %x_GLF_color, %39
             exit_if  # if_2
           }
         }
         exit_if  # if_1
       }
     }
-    %x_58:f32 = load %a
-    %30:vec4<f32> = construct %x_58, 0.0f, 0.0f, 1.0f
-    store %x_GLF_color, %30
+    %40:f32 = load %a
+    %x_58:f32 = let %40
+    %42:vec4<f32> = construct %x_58, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %42
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.msl
index e6e37cc..2e085c6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
@@ -28,72 +28,76 @@
     %9:i32 = load %8
     %10:i32 = negation %9
     store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
-        %x_36:i32 = add %11, 1i
+        %12:i32 = add %11, 1i
+        %x_36:i32 = let %12
         store %i, %x_36
-        %13:i32 = reverseBits %x_36
-        %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %15:i32 = load %14
-        %16:bool = lte %13, %15
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %14:i32 = reverseBits %x_36
+        %15:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %16:i32 = load %15
+        %17:bool = lte %14, %16
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %17:i32 = load %a
-        %18:i32 = add %17, 1i
-        store %a, %18
-        continue %b4
+        %18:i32 = load %a
+        %19:i32 = add %18, 1i
+        store %a, %19
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %19:i32 = load %a
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %21:i32 = load %20
-    %22:bool = eq %19, %21
-    if %22 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %20:i32 = load %a
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %22:i32 = load %21
+    %23:bool = eq %20, %22
+    if %23 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %33:i32 = load %32
         %34:f32 = convert %33
-        %35:vec4<f32> = construct %25, %28, %31, %34
-        store %x_GLF_color, %35
-        exit_if  # if_2
-      }
-      %b8 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %38
+        %39:vec4<f32> = construct %27, %31, %35, %38
         store %x_GLF_color, %39
         exit_if  # if_2
       }
+      $B8: {  # false
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %42
+        store %x_GLF_color, %43
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.msl
index 9a7f8d1..4ed32e7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-loop-bitfieldreverse/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,88 +12,105 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_27:i32 = load %6
+    %7:i32 = load %6
+    %x_27:i32 = let %7
     store %a, %x_27
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_29:i32 = load %8
-    %10:i32 = negation %x_29
-    store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_35:i32 = load %i
-        %x_36:i32 = add %x_35, 1i
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %10:i32 = load %9
+    %x_29:i32 = let %10
+    %12:i32 = negation %x_29
+    store %i, %12
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %13:i32 = load %i
+        %x_35:i32 = let %13
+        %15:i32 = add %x_35, 1i
+        %x_36:i32 = let %15
         store %i, %x_36
-        %13:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_39:i32 = load %13
-        %15:i32 = reverseBits %x_36
-        %16:bool = lte %15, %x_39
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %18:i32 = load %17
+        %x_39:i32 = let %18
+        %20:i32 = reverseBits %x_36
+        %21:bool = lte %20, %x_39
+        if %21 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_42:i32 = load %a
-        %18:i32 = add %x_42, 1i
-        store %a, %18
-        continue %b4
+        %22:i32 = load %a
+        %x_42:i32 = let %22
+        %24:i32 = add %x_42, 1i
+        store %a, %24
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_44:i32 = load %a
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_46:i32 = load %20
-    %22:bool = eq %x_44, %x_46
-    if %22 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_52:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_55:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_58:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_61:i32 = load %29
-        %31:f32 = convert %x_52
-        %32:f32 = convert %x_55
-        %33:f32 = convert %x_58
-        %34:f32 = convert %x_61
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_GLF_color, %35
+    %25:i32 = load %a
+    %x_44:i32 = let %25
+    %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %28:i32 = load %27
+    %x_46:i32 = let %28
+    %30:bool = eq %x_44, %x_46
+    if %30 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %32:i32 = load %31
+        %x_52:i32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %35:i32 = load %34
+        %x_55:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_58:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %41:i32 = load %40
+        %x_61:i32 = let %41
+        %43:f32 = convert %x_52
+        %44:f32 = let %43
+        %45:f32 = convert %x_55
+        %46:f32 = let %45
+        %47:f32 = convert %x_58
+        %48:f32 = let %47
+        %49:f32 = convert %x_61
+        %50:vec4<f32> = construct %44, %46, %48, %49
+        store %x_GLF_color, %50
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_65:i32 = load %36
-        %x_66:f32 = convert %x_65
-        %39:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
-        store %x_GLF_color, %39
+      $B8: {  # false
+        %51:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %52:i32 = load %51
+        %x_65:i32 = let %52
+        %54:f32 = convert %x_65
+        %x_66:f32 = let %54
+        %56:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
+        store %x_GLF_color, %56
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.msl
index ce2d277..755d8a2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(4) {
   ten:i32 @offset(0)
 }
 
@@ -12,67 +12,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %b, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:i32 = load %i
         %9:ptr<uniform, i32, read> = access %x_8, 0u
         %10:i32 = load %9
         %11:bool = lt %8, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %12:i32 = load %a
         %13:bool = gt %12, 5i
-        if %13 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %13 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
         %14:i32 = load %a
-        %15:ptr<uniform, i32, read> = access %x_10, 0u
-        %16:i32 = load %15
-        %17:i32 = div %16, -4i
-        %18:i32 = add %14, %17
-        store %a, %18
-        %19:i32 = load %b
-        %20:i32 = add %19, 1i
-        store %b, %20
-        continue %b4
-      }
-      %b4 = block {  # continuing
-        %21:i32 = load %i
+        %15:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_10, 0u
+        %17:i32 = load %16
+        %18:i32 = call %tint_div_i32, %17, -4i
+        %20:i32 = add %15, %18
+        store %a, %20
+        %21:i32 = load %b
         %22:i32 = add %21, 1i
-        store %i, %22
-        next_iteration %b3
+        store %b, %22
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %23:i32 = load %i
+        %24:i32 = add %23, 1i
+        store %i, %24
+        next_iteration  # -> $B3
       }
     }
-    %23:i32 = load %b
-    %24:bool = eq %23, 3i
-    if %24 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %25:i32 = load %b
+    %26:bool = eq %25, 3i
+    if %26 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -80,12 +81,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %26:void = call %main_1
-    %27:vec4<f32> = load %x_GLF_color
-    %28:main_out = construct %27
-    ret %28
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %33:bool = eq %rhs, 0i
+    %34:bool = eq %lhs, -2147483648i
+    %35:bool = eq %rhs, -1i
+    %36:bool = and %34, %35
+    %37:bool = or %33, %36
+    %38:i32 = select %rhs, 1i, %37
+    %39:i32 = div %lhs, %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.msl
index 641b671..95a6e89 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-neg-div-pow2/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(4) {
   ten:i32 @offset(0)
 }
 
@@ -12,67 +12,75 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %b, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_36:i32 = load %i
-        %9:ptr<uniform, i32, read> = access %x_8, 0u
-        %x_38:i32 = load %9
-        %11:bool = lt %x_36, %x_38
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %8:i32 = load %i
+        %x_36:i32 = let %8
+        %10:ptr<uniform, i32, read> = access %x_8, 0u
+        %11:i32 = load %10
+        %x_38:i32 = let %11
+        %13:bool = lt %x_36, %x_38
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_41:i32 = load %a
-        %13:bool = gt %x_41, 5i
-        if %13 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %14:i32 = load %a
+        %x_41:i32 = let %14
+        %16:bool = gt %x_41, 5i
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %14:ptr<uniform, i32, read> = access %x_10, 0u
-        %x_46:i32 = load %14
-        %x_48:i32 = load %a
-        %17:i32 = div %x_46, -4i
-        %18:i32 = add %x_48, %17
-        store %a, %18
-        %x_50:i32 = load %b
-        %20:i32 = add %x_50, 1i
-        store %b, %20
-        continue %b4
+        %17:ptr<uniform, i32, read> = access %x_10, 0u
+        %18:i32 = load %17
+        %x_46:i32 = let %18
+        %20:i32 = load %a
+        %x_48:i32 = let %20
+        %22:i32 = call %tint_div_i32, %x_46, -4i
+        %24:i32 = add %x_48, %22
+        store %a, %24
+        %25:i32 = load %b
+        %x_50:i32 = let %25
+        %27:i32 = add %x_50, 1i
+        store %b, %27
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_52:i32 = load %i
-        %22:i32 = add %x_52, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %28:i32 = load %i
+        %x_52:i32 = let %28
+        %30:i32 = add %x_52, 1i
+        store %i, %30
+        next_iteration  # -> $B3
       }
     }
-    %x_54:i32 = load %b
-    %24:bool = eq %x_54, 3i
-    if %24 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %31:i32 = load %b
+    %x_54:i32 = let %31
+    %33:bool = eq %x_54, 3i
+    if %33 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -80,12 +88,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %26:void = call %main_1
-    %27:vec4<f32> = load %x_GLF_color
-    %28:main_out = construct %27
-    ret %28
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    ret %37
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %40:bool = eq %rhs, 0i
+    %41:bool = eq %lhs, -2147483648i
+    %42:bool = eq %rhs, -1i
+    %43:bool = and %41, %42
+    %44:bool = or %40, %43
+    %45:i32 = select %rhs, 1i, %44
+    %46:i32 = div %lhs, %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.msl
index 52e8acb..1ecfa8f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -28,59 +28,64 @@
     store %b, 0i
     store %c, 1i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %12:i32 = load %i
         %13:bool = lt %12, 3i
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %15:f32 = load %f
-        %16:i32 = load %i
-        %17:f32 = convert %16
-        %18:f32 = add %15, %17
-        store_vector_element %v, %x_50, %18
-        continue %b4
+        %14:i32 = load %i
+        %x_50:i32 = let %14
+        %16:f32 = load %f
+        %17:f32 = let %16
+        %18:i32 = load %i
+        %19:f32 = convert %18
+        %20:f32 = add %17, %19
+        store_vector_element %v, %x_50, %20
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %19:i32 = load %i
-        %20:i32 = add %19, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %21:i32 = load %i
+        %22:i32 = add %21, 1i
+        store %i, %22
+        next_iteration  # -> $B3
       }
     }
-    %21:ptr<uniform, f32, read> = access %x_6, 0u
-    %22:f32 = load %21
-    %23:bool = eq %22, 1.0f
-    if %23 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
+    %23:ptr<uniform, f32, read> = access %x_6, 0u
+    %24:f32 = load %23
+    %25:bool = eq %24, 1.0f
+    if %25 [t: $B7] {  # if_2
+      $B7: {  # true
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
             store %x_GLF_color, vec4<f32>(0.0f)
-            continue %b9
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %x_67:i32 = load %c
-            %x_68:i32 = load %a
-            %x_69:i32 = load %b
-            %27:i32 = or %x_68, %x_69
-            %28:i32 = and %x_67, %27
-            %29:bool = eq %28, 0i
-            %30:bool = eq %29, false
-            break_if %30 %b8
+          $B9: {  # continuing
+            %26:i32 = load %c
+            %x_67:i32 = let %26
+            %28:i32 = load %a
+            %x_68:i32 = let %28
+            %30:i32 = load %b
+            %x_69:i32 = let %30
+            %32:i32 = or %x_68, %x_69
+            %33:i32 = and %x_67, %32
+            %34:bool = eq %33, 0i
+            %35:bool = eq %34, false
+            break_if %35  # -> [t: exit_loop loop_2, f: $B8]
           }
         }
-        %31:ptr<uniform, f32, read> = access %x_6, 0u
-        %32:f32 = load %31
-        %33:bool = eq %32, 1.0f
-        if %33 [t: %b10] {  # if_3
-          %b10 = block {  # true
+        %36:ptr<uniform, f32, read> = access %x_6, 0u
+        %37:f32 = load %36
+        %38:bool = eq %37, 1.0f
+        if %38 [t: $B10] {  # if_3
+          $B10: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_3
           }
@@ -88,30 +93,32 @@
         exit_if  # if_2
       }
     }
-    %34:f32 = load_vector_element %v, 0u
-    %35:bool = eq %34, 1.0f
-    %36:f32 = select 0.0f, 1.0f, %35
-    %37:f32 = load_vector_element %v, 1u
-    %38:bool = eq %37, 2.0f
-    %39:f32 = select 1.0f, 0.0f, %38
-    %40:f32 = load_vector_element %v, 2u
-    %41:bool = eq %40, 3.0f
-    %42:f32 = select 1.0f, 0.0f, %41
-    %43:vec3<f32> = construct %36, %39, %42
-    %44:vec3<f32> = swizzle %43, xyz
-    %45:f32 = load_vector_element %x_GLF_color, 3u
-    %46:vec4<f32> = construct %44, %45
-    store %x_GLF_color, %46
+    %39:f32 = load_vector_element %v, 0u
+    %40:bool = eq %39, 1.0f
+    %41:f32 = select 0.0f, 1.0f, %40
+    %42:f32 = let %41
+    %43:f32 = load_vector_element %v, 1u
+    %44:bool = eq %43, 2.0f
+    %45:f32 = select 1.0f, 0.0f, %44
+    %46:f32 = let %45
+    %47:f32 = load_vector_element %v, 2u
+    %48:bool = eq %47, 3.0f
+    %49:f32 = select 1.0f, 0.0f, %48
+    %50:vec3<f32> = construct %42, %46, %49
+    %51:vec3<f32> = swizzle %50, xyz
+    %52:f32 = load_vector_element %x_GLF_color, 3u
+    %53:vec4<f32> = construct %51, %52
+    store %x_GLF_color, %53
     store_vector_element %x_GLF_color, 3u, 1.0f
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_color
-    %50:main_out = construct %49
-    ret %50
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %55:void = call %main_1
+    %56:vec4<f32> = load %x_GLF_color
+    %57:main_out = construct %56
+    ret %57
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.msl
index 56e5362..fa684c9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-dag-combiner-same-cond-nested/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -22,65 +22,76 @@
     %i:ptr<function, i32, read_write> = var
     %v:ptr<function, vec3<f32>, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_42:f32 = load %10
+    %11:f32 = load %10
+    %x_42:f32 = let %11
     store %f, %x_42
     store %a, 1i
     store %b, 0i
     store %c, 1i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_47:i32 = load %i
-        %13:bool = lt %x_47, 3i
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %13:i32 = load %i
+        %x_47:i32 = let %13
+        %15:bool = lt %x_47, 3i
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %x_51:f32 = load %f
-        %x_52:i32 = load %i
-        %17:f32 = convert %x_52
-        %18:f32 = add %x_51, %17
-        store_vector_element %v, %x_50, %18
-        continue %b4
+        %16:i32 = load %i
+        %x_50:i32 = let %16
+        %18:f32 = load %f
+        %x_51:f32 = let %18
+        %20:i32 = load %i
+        %x_52:i32 = let %20
+        %22:f32 = convert %x_52
+        %23:f32 = add %x_51, %22
+        store_vector_element %v, %x_50, %23
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_56:i32 = load %i
-        %20:i32 = add %x_56, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %24:i32 = load %i
+        %x_56:i32 = let %24
+        %26:i32 = add %x_56, 1i
+        store %i, %26
+        next_iteration  # -> $B3
       }
     }
-    %21:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_59:f32 = load %21
-    %23:bool = eq %x_59, 1.0f
-    if %23 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
+    %27:ptr<uniform, f32, read> = access %x_6, 0u
+    %28:f32 = load %27
+    %x_59:f32 = let %28
+    %30:bool = eq %x_59, 1.0f
+    if %30 [t: $B7] {  # if_2
+      $B7: {  # true
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
             store %x_GLF_color, vec4<f32>(0.0f)
-            continue %b9
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %x_67:i32 = load %c
-            %x_68:i32 = load %a
-            %x_69:i32 = load %b
-            %27:i32 = or %x_68, %x_69
-            %28:i32 = and %x_67, %27
-            %29:bool = eq %28, 0i
-            %30:bool = eq %29, false
-            break_if %30 %b8
+          $B9: {  # continuing
+            %31:i32 = load %c
+            %x_67:i32 = let %31
+            %33:i32 = load %a
+            %x_68:i32 = let %33
+            %35:i32 = load %b
+            %x_69:i32 = let %35
+            %37:i32 = or %x_68, %x_69
+            %38:i32 = and %x_67, %37
+            %39:bool = eq %38, 0i
+            %40:bool = eq %39, false
+            break_if %40  # -> [t: exit_loop loop_2, f: $B8]
           }
         }
-        %31:ptr<uniform, f32, read> = access %x_6, 0u
-        %x_74:f32 = load %31
-        %33:bool = eq %x_74, 1.0f
-        if %33 [t: %b10] {  # if_3
-          %b10 = block {  # true
+        %41:ptr<uniform, f32, read> = access %x_6, 0u
+        %42:f32 = load %41
+        %x_74:f32 = let %42
+        %44:bool = eq %x_74, 1.0f
+        if %44 [t: $B10] {  # if_3
+          $B10: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_3
           }
@@ -88,33 +99,40 @@
         exit_if  # if_2
       }
     }
-    %x_79:f32 = load_vector_element %v, 0u
-    %x_83:f32 = load_vector_element %v, 1u
-    %x_87:f32 = load_vector_element %v, 2u
-    %37:bool = eq %x_79, 1.0f
-    %38:f32 = select 0.0f, 1.0f, %37
-    %39:bool = eq %x_83, 2.0f
-    %40:f32 = select 1.0f, 0.0f, %39
-    %41:bool = eq %x_87, 3.0f
-    %42:f32 = select 1.0f, 0.0f, %41
-    %x_90:vec3<f32> = construct %38, %40, %42
-    %x_91:vec4<f32> = load %x_GLF_color
-    %45:f32 = access %x_90, 0u
-    %46:f32 = access %x_90, 1u
-    %47:f32 = access %x_90, 2u
-    %48:f32 = access %x_91, 3u
-    %49:vec4<f32> = construct %45, %46, %47, %48
-    store %x_GLF_color, %49
+    %45:f32 = load_vector_element %v, 0u
+    %x_79:f32 = let %45
+    %47:f32 = load_vector_element %v, 1u
+    %x_83:f32 = let %47
+    %49:f32 = load_vector_element %v, 2u
+    %x_87:f32 = let %49
+    %51:bool = eq %x_79, 1.0f
+    %52:f32 = select 0.0f, 1.0f, %51
+    %53:f32 = let %52
+    %54:bool = eq %x_83, 2.0f
+    %55:f32 = select 1.0f, 0.0f, %54
+    %56:f32 = let %55
+    %57:bool = eq %x_87, 3.0f
+    %58:f32 = select 1.0f, 0.0f, %57
+    %59:vec3<f32> = construct %53, %56, %58
+    %x_90:vec3<f32> = let %59
+    %61:vec4<f32> = load %x_GLF_color
+    %x_91:vec4<f32> = let %61
+    %63:f32 = access %x_90, 0u
+    %64:f32 = access %x_90, 1u
+    %65:f32 = access %x_90, 2u
+    %66:f32 = access %x_91, 3u
+    %67:vec4<f32> = construct %63, %64, %65, %66
+    store %x_GLF_color, %67
     store_vector_element %x_GLF_color, 3u, 1.0f
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %69:void = call %main_1
+    %70:vec4<f32> = load %x_GLF_color
+    %71:main_out = construct %70
+    ret %71
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.msl
index fcf1a62..c27e09f8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,7 +24,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
@@ -32,8 +32,8 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %r:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
@@ -43,105 +43,110 @@
     %11:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
     %12:i32 = load %11
     store %r, %12
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %13:i32 = load %r
         %14:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
         %15:i32 = load %14
         %16:bool = lt %13, %15
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %16 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %17:i32 = load %x_GLF_global_loop_count
         %18:i32 = add %17, 1i
         store %x_GLF_global_loop_count, %18
-        %19:f32 = load %f
-        %20:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
-        %21:vec2<f32> = load %20
-        %22:vec2<f32> = dpdx %21
-        %23:f32 = access %22, 1u
-        %24:f32 = add %19, %23
-        store %f, %24
-        continue %b4
+        %19:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
+        %20:vec2<f32> = load %19
+        %x_57:vec2<f32> = let %20
+        %22:f32 = load %f
+        %x_60:f32 = let %22
+        %24:vec2<f32> = dpdx %x_57
+        %25:f32 = access %24, 1u
+        %26:f32 = add %x_60, %25
+        store %f, %26
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %25:i32 = load %r
-        %26:i32 = add %25, 1i
-        store %r, %26
-        next_iteration %b3
+      $B4: {  # continuing
+        %27:i32 = load %r
+        %28:i32 = add %27, 1i
+        store %r, %28
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %27:i32 = load %x_GLF_global_loop_count
-        %28:bool = lt %27, 100i
-        if %28 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %29:i32 = load %x_GLF_global_loop_count
+        %30:bool = lt %29, 100i
+        if %30 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %29:i32 = load %x_GLF_global_loop_count
-        %30:i32 = add %29, 1i
-        store %x_GLF_global_loop_count, %30
-        %31:f32 = load %f
-        %32:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %33:f32 = load %32
-        %34:f32 = add %31, %33
-        store %f, %34
-        continue %b8
+        %31:i32 = load %x_GLF_global_loop_count
+        %32:i32 = add %31, 1i
+        store %x_GLF_global_loop_count, %32
+        %33:f32 = load %f
+        %34:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %35:f32 = load %34
+        %36:f32 = add %33, %35
+        store %f, %36
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B8: {  # continuing
+        next_iteration  # -> $B7
       }
     }
-    %35:f32 = load %f
-    %36:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %37:f32 = load %36
-    %38:bool = eq %35, %37
-    if %38 [t: %b11, f: %b12] {  # if_3
-      %b11 = block {  # true
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
+    %37:f32 = load %f
+    %38:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %39:f32 = load %38
+    %40:bool = eq %37, %39
+    if %40 [t: $B11, f: $B12] {  # if_3
+      $B11: {  # true
+        %41:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:f32 = let %43
         %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %46:i32 = load %45
         %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:vec4<f32> = construct %41, %44, %47, %50
-        store %x_GLF_color, %51
+        %48:f32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %50:i32 = load %49
+        %51:f32 = convert %50
+        %52:f32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %54:i32 = load %53
+        %55:f32 = convert %54
+        %56:vec4<f32> = construct %44, %48, %52, %55
+        store %x_GLF_color, %56
         exit_if  # if_3
       }
-      %b12 = block {  # false
-        %52:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %53:i32 = load %52
-        %54:f32 = convert %53
-        %55:vec4<f32> = construct %54
-        store %x_GLF_color, %55
+      $B12: {  # false
+        %57:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %58:i32 = load %57
+        %59:f32 = convert %58
+        %60:vec4<f32> = construct %59
+        store %x_GLF_color, %60
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %62:void = call %main_1
+    %63:vec4<f32> = load %x_GLF_color
+    %64:main_out = construct %63
+    ret %64
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.msl
index b4968c5..8457771 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-derivative-uniform-vector-global-loop-count/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,7 +24,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
@@ -32,116 +32,139 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %r:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
     %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_42:f32 = load %9
+    %10:f32 = load %9
+    %x_42:f32 = let %10
     store %f, %x_42
-    %11:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_44:i32 = load %11
+    %12:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_44:i32 = let %13
     store %r, %x_44
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_49:i32 = load %r
-        %14:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_51:i32 = load %14
-        %16:bool = lt %x_49, %x_51
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %15:i32 = load %r
+        %x_49:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %18:i32 = load %17
+        %x_51:i32 = let %18
+        %20:bool = lt %x_49, %x_51
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_54:i32 = load %x_GLF_global_loop_count
-        %18:i32 = add %x_54, 1i
-        store %x_GLF_global_loop_count, %18
-        %19:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
-        %x_57:vec2<f32> = load %19
-        %x_60:f32 = load %f
-        %22:vec2<f32> = dpdx %x_57
-        %23:f32 = access %22, 1u
-        %24:f32 = add %x_60, %23
-        store %f, %24
-        continue %b4
+        %21:i32 = load %x_GLF_global_loop_count
+        %x_54:i32 = let %21
+        %23:i32 = add %x_54, 1i
+        store %x_GLF_global_loop_count, %23
+        %24:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
+        %25:vec2<f32> = load %24
+        %x_57:vec2<f32> = let %25
+        %27:f32 = load %f
+        %x_60:f32 = let %27
+        %29:vec2<f32> = dpdx %x_57
+        %30:f32 = access %29, 1u
+        %31:f32 = add %x_60, %30
+        store %f, %31
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_62:i32 = load %r
-        %26:i32 = add %x_62, 1i
-        store %r, %26
-        next_iteration %b3
+      $B4: {  # continuing
+        %32:i32 = load %r
+        %x_62:i32 = let %32
+        %34:i32 = add %x_62, 1i
+        store %r, %34
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %x_68:i32 = load %x_GLF_global_loop_count
-        %28:bool = lt %x_68, 100i
-        if %28 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %35:i32 = load %x_GLF_global_loop_count
+        %x_68:i32 = let %35
+        %37:bool = lt %x_68, 100i
+        if %37 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_71:i32 = load %x_GLF_global_loop_count
-        %30:i32 = add %x_71, 1i
-        store %x_GLF_global_loop_count, %30
-        %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_74:f32 = load %31
-        %x_75:f32 = load %f
-        %34:f32 = add %x_75, %x_74
-        store %f, %34
-        continue %b8
+        %38:i32 = load %x_GLF_global_loop_count
+        %x_71:i32 = let %38
+        %40:i32 = add %x_71, 1i
+        store %x_GLF_global_loop_count, %40
+        %41:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %42:f32 = load %41
+        %x_74:f32 = let %42
+        %44:f32 = load %f
+        %x_75:f32 = let %44
+        %46:f32 = add %x_75, %x_74
+        store %f, %46
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B8: {  # continuing
+        next_iteration  # -> $B7
       }
     }
-    %x_77:f32 = load %f
-    %36:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_79:f32 = load %36
-    %38:bool = eq %x_77, %x_79
-    if %38 [t: %b11, f: %b12] {  # if_3
-      %b11 = block {  # true
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_85:i32 = load %39
-        %41:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_88:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_91:i32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_94:i32 = load %45
-        %47:f32 = convert %x_85
-        %48:f32 = convert %x_88
-        %49:f32 = convert %x_91
-        %50:f32 = convert %x_94
-        %51:vec4<f32> = construct %47, %48, %49, %50
-        store %x_GLF_color, %51
+    %47:f32 = load %f
+    %x_77:f32 = let %47
+    %49:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %50:f32 = load %49
+    %x_79:f32 = let %50
+    %52:bool = eq %x_77, %x_79
+    if %52 [t: $B11, f: $B12] {  # if_3
+      $B11: {  # true
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %54:i32 = load %53
+        %x_85:i32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %57:i32 = load %56
+        %x_88:i32 = let %57
+        %59:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %60:i32 = load %59
+        %x_91:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %63:i32 = load %62
+        %x_94:i32 = let %63
+        %65:f32 = convert %x_85
+        %66:f32 = let %65
+        %67:f32 = convert %x_88
+        %68:f32 = let %67
+        %69:f32 = convert %x_91
+        %70:f32 = let %69
+        %71:f32 = convert %x_94
+        %72:vec4<f32> = construct %66, %68, %70, %71
+        store %x_GLF_color, %72
         exit_if  # if_3
       }
-      %b12 = block {  # false
-        %52:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_98:i32 = load %52
-        %x_99:f32 = convert %x_98
-        %55:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
-        store %x_GLF_color, %55
+      $B12: {  # false
+        %73:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %74:i32 = load %73
+        %x_98:i32 = let %74
+        %76:f32 = convert %x_98
+        %x_99:f32 = let %76
+        %78:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
+        store %x_GLF_color, %78
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.msl
index adfcb43..d8b15a3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, f32, read_write> = var
@@ -37,17 +37,17 @@
     %10:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %11:i32 = load %10
     store %i, %11
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %12:i32 = load %i
         %13:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %14:i32 = load %13
         %15:bool = gt %12, %14
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -60,33 +60,35 @@
         %21:f32 = max %20, 0.0f
         %22:f32 = min %21, 0.0f
         store %f, %22
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %23:i32 = load %i
         %24:i32 = sub %23, 1i
         store %i, %24
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %25:f32 = load %f
     %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %27:f32 = load %26
     %28:bool = eq %25, %27
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    if %28 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         %29:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
         %30:i32 = load %29
         %31:f32 = convert %30
-        %32:f32 = load %f
-        %33:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:vec4<f32> = construct %31, %32, %35, 1.0f
-        store %x_GLF_color, %36
+        %32:f32 = let %31
+        %33:f32 = load %f
+        %34:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:vec4<f32> = construct %32, %34, %37, 1.0f
+        store %x_GLF_color, %38
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -94,12 +96,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.msl
index d39b642..7ec7d9b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-descending-loop-min-max-always-zero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,73 +20,86 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_37:f32 = load %8
+    %9:f32 = load %8
+    %x_37:f32 = let %9
     store %f, %x_37
-    %10:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_39:i32 = load %10
+    %11:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %12:i32 = load %11
+    %x_39:i32 = let %12
     store %i, %x_39
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_44:i32 = load %i
-        %13:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_46:i32 = load %13
-        %15:bool = gt %x_44, %x_46
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %14:i32 = load %i
+        %x_44:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %17:i32 = load %16
+        %x_46:i32 = let %17
+        %19:bool = gt %x_44, %x_46
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_49:i32 = load %i
-        %17:f32 = convert %x_49
-        %18:f32 = max 1.0f, %17
-        %19:f32 = sub 1.0f, %18
-        store %a, %19
-        %x_53:f32 = load %a
-        %21:f32 = max %x_53, 0.0f
-        %22:f32 = min %21, 0.0f
-        store %f, %22
-        continue %b4
+        %20:i32 = load %i
+        %x_49:i32 = let %20
+        %22:f32 = convert %x_49
+        %23:f32 = max 1.0f, %22
+        %24:f32 = sub 1.0f, %23
+        store %a, %24
+        %25:f32 = load %a
+        %x_53:f32 = let %25
+        %27:f32 = max %x_53, 0.0f
+        %28:f32 = min %27, 0.0f
+        store %f, %28
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_56:i32 = load %i
-        %24:i32 = sub %x_56, 1i
-        store %i, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %i
+        %x_56:i32 = let %29
+        %31:i32 = sub %x_56, 1i
+        store %i, %31
+        next_iteration  # -> $B3
       }
     }
-    %x_58:f32 = load %f
-    %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_60:f32 = load %26
-    %28:bool = eq %x_58, %x_60
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %29:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_66:i32 = load %29
-        %x_68:f32 = load %f
-        %32:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_70:i32 = load %32
-        %34:f32 = convert %x_66
-        %35:f32 = convert %x_70
-        %36:vec4<f32> = construct %34, %x_68, %35, 1.0f
-        store %x_GLF_color, %36
+    %32:f32 = load %f
+    %x_58:f32 = let %32
+    %34:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %35:f32 = load %34
+    %x_60:f32 = let %35
+    %37:bool = eq %x_58, %x_60
+    if %37 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %38:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %39:i32 = load %38
+        %x_66:i32 = let %39
+        %41:f32 = load %f
+        %x_68:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_70:i32 = let %44
+        %46:f32 = convert %x_66
+        %47:f32 = let %46
+        %48:f32 = convert %x_70
+        %49:vec4<f32> = construct %47, %x_68, %48, 1.0f
+        store %x_GLF_color, %49
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -94,12 +107,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.msl
index efdd3b1..d638bb3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m:ptr<function, mat2x2<f32>, read_write> = var
+    store %m, mat2x2<f32>(vec2<f32>(0.5f, 1.5f), vec2<f32>(1.0f, 2.0f))
+    %4:ptr<function, vec2<f32>, read_write> = access %m, 0u
+    %5:vec2<f32> = load %4
+    %6:vec2<bool> = eq %5, vec2<f32>(0.5f, 1.5f)
+    %7:bool = all %6
+    %8:bool = let %7
+    %9:ptr<function, vec2<f32>, read_write> = access %m, 1u
+    %10:vec2<f32> = load %9
+    %11:vec2<bool> = eq %10, vec2<f32>(1.0f, 2.0f)
+    %12:bool = all %11
+    %13:bool = and %8, %12
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.msl
index efdd3b1..c18303b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-divide-matrix-transpose-by-constant/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m:ptr<function, mat2x2<f32>, read_write> = var
+    store %m, mat2x2<f32>(vec2<f32>(0.5f, 1.5f), vec2<f32>(1.0f, 2.0f))
+    %4:mat2x2<f32> = load %m
+    %x_33:mat2x2<f32> = let %4
+    %6:vec2<f32> = access %x_33, 0u
+    %7:vec2<bool> = eq %6, vec2<f32>(0.5f, 1.5f)
+    %8:bool = all %7
+    %9:bool = let %8
+    %10:vec2<f32> = access %x_33, 1u
+    %11:vec2<bool> = eq %10, vec2<f32>(1.0f, 2.0f)
+    %12:bool = all %11
+    %13:bool = and %9, %12
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.msl
index 7966c89..c3ed181 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,92 +12,100 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
+%func_ = func():i32 {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
     %6:i32 = load %5
     store %i, %6
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:i32 = load %i
         %8:i32 = add %7, 1i
         store %i, %8
-        if true [t: %b5] {  # if_1
-          %b5 = block {  # true
-            if true [t: %b6] {  # if_2
-              %b6 = block {  # true
+        if true [t: $B5] {  # if_1
+          $B5: {  # true
+            if true [t: $B6] {  # if_2
+              $B6: {  # true
                 %9:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-                %x_65:i32 = load %9
+                %10:i32 = load %9
+                %x_65:i32 = let %10
                 ret %x_65
               }
             }
             exit_if  # if_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_66:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_68:i32 = load %12
-        %14:bool = lt %x_66, %x_68
-        %15:bool = eq %14, false
-        break_if %15 %b3
+      $B4: {  # continuing
+        %12:i32 = load %i
+        %x_66:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %15:i32 = load %14
+        %x_68:i32 = let %15
+        %17:bool = lt %x_66, %x_68
+        %18:bool = eq %17, false
+        break_if %18  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_71:i32 = load %16
+    %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %20:i32 = load %19
+    %x_71:i32 = let %20
     ret %x_71
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
-    %x_27:i32 = call %func_
-    %20:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %21:i32 = load %20
-    %22:bool = eq %x_27, %21
-    if %22 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+%main_1 = func():void {
+  $B7: {
+    %23:i32 = call %func_
+    %x_27:i32 = let %23
+    %25:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %26:i32 = load %25
+    %27:bool = eq %x_27, %26
+    if %27 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %28:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %33:i32 = load %32
         %34:f32 = convert %33
-        %35:vec4<f32> = construct %25, %28, %31, %34
-        store %x_GLF_color, %35
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
+        %35:f32 = let %34
         %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %38
-        store %x_GLF_color, %39
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %31, %35, %39, %42
+        store %x_GLF_color, %43
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        %44:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.msl
index 9cf45b3..784016f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-double-if-true-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,92 +12,109 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
+%func_ = func():i32 {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_53:i32 = load %5
+    %6:i32 = load %5
+    %x_53:i32 = let %6
     store %i, %x_53
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_58:i32 = load %i
-        %8:i32 = add %x_58, 1i
-        store %i, %8
-        if true [t: %b5] {  # if_1
-          %b5 = block {  # true
-            if true [t: %b6] {  # if_2
-              %b6 = block {  # true
-                %9:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-                %x_65:i32 = load %9
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %8:i32 = load %i
+        %x_58:i32 = let %8
+        %10:i32 = add %x_58, 1i
+        store %i, %10
+        if true [t: $B5] {  # if_1
+          $B5: {  # true
+            if true [t: $B6] {  # if_2
+              $B6: {  # true
+                %11:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+                %12:i32 = load %11
+                %x_65:i32 = let %12
                 ret %x_65
               }
             }
             exit_if  # if_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_66:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_68:i32 = load %12
-        %14:bool = lt %x_66, %x_68
-        %15:bool = eq %14, false
-        break_if %15 %b3
+      $B4: {  # continuing
+        %14:i32 = load %i
+        %x_66:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %17:i32 = load %16
+        %x_68:i32 = let %17
+        %19:bool = lt %x_66, %x_68
+        %20:bool = eq %19, false
+        break_if %20  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_71:i32 = load %16
+    %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %22:i32 = load %21
+    %x_71:i32 = let %22
     ret %x_71
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
-    %x_27:i32 = call %func_
-    %20:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_29:i32 = load %20
-    %22:bool = eq %x_27, %x_29
-    if %22 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_35:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_38:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_41:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_44:i32 = load %29
-        %31:f32 = convert %x_35
-        %32:f32 = convert %x_38
-        %33:f32 = convert %x_41
-        %34:f32 = convert %x_44
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_GLF_color, %35
+%main_1 = func():void {
+  $B7: {
+    %25:i32 = call %func_
+    %x_27:i32 = let %25
+    %27:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %28:i32 = load %27
+    %x_29:i32 = let %28
+    %30:bool = eq %x_27, %x_29
+    if %30 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %31:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %32:i32 = load %31
+        %x_35:i32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %35:i32 = load %34
+        %x_38:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %38:i32 = load %37
+        %x_41:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %41:i32 = load %40
+        %x_44:i32 = let %41
+        %43:f32 = convert %x_35
+        %44:f32 = let %43
+        %45:f32 = convert %x_38
+        %46:f32 = let %45
+        %47:f32 = convert %x_41
+        %48:f32 = let %47
+        %49:f32 = convert %x_44
+        %50:vec4<f32> = construct %44, %46, %48, %49
+        store %x_GLF_color, %50
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_48:i32 = load %36
-        %x_49:f32 = convert %x_48
-        %39:vec4<f32> = construct %x_49, %x_49, %x_49, %x_49
-        store %x_GLF_color, %39
+      $B9: {  # false
+        %51:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %52:i32 = load %51
+        %x_48:i32 = let %52
+        %54:f32 = convert %x_48
+        %x_49:f32 = let %54
+        %56:vec4<f32> = construct %x_49, %x_49, %x_49, %x_49
+        store %x_GLF_color, %56
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.msl
index 209f879..6443320 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<i32, 10>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -29,32 +29,32 @@
     %9:ptr<function, i32, read_write> = access %arr, %8
     %10:i32 = load %9
     %11:bool = eq %10, 2i
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         %12:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
         %13:i32 = load %12
         store %i, %13
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %14:i32 = load %i
             %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
             %16:i32 = load %15
             %17:bool = lt %14, %16
-            if %17 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
+            if %17 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
                 exit_if  # if_2
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             %18:i32 = load %i
             %19:i32 = add %18, 1i
             store %i, %19
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
         %20:i32 = load %a
@@ -64,66 +64,85 @@
       }
     }
     %22:i32 = load %a
-    %23:i32 = mod -1i, %22
-    %24:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %25:i32 = load %24
-    %26:bool = eq %23, %25
-    if %26 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_71:i32 = load %27
-        %29:vec2<i32> = construct %x_71
-        %30:i32 = access %29, 1u
-        %31:ptr<function, i32, read_write> = access %arr, %30
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %33:i32 = load %32
-        store %31, %33
+    %23:i32 = call %tint_mod_i32, -1i, %22
+    %25:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %26:i32 = load %25
+    %27:bool = eq %23, %26
+    if %27 [t: $B8] {  # if_3
+      $B8: {  # true
+        %28:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %29:i32 = load %28
+        %x_71:i32 = let %29
+        %31:vec2<i32> = construct %x_71
+        %32:i32 = access %31, 1u
+        %33:ptr<function, i32, read_write> = access %arr, %32
+        %34:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %35:i32 = load %34
+        store %33, %35
         exit_if  # if_3
       }
     }
-    %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %35:i32 = load %34
-    %36:ptr<function, i32, read_write> = access %arr, %35
+    %36:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %37:i32 = load %36
-    %38:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %38:ptr<function, i32, read_write> = access %arr, %37
     %39:i32 = load %38
-    %40:bool = eq %37, %39
-    if %40 [t: %b9, f: %b10] {  # if_4
-      %b9 = block {  # true
-        %41:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
+    %40:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %41:i32 = load %40
+    %42:bool = eq %39, %41
+    if %42 [t: $B9, f: $B10] {  # if_4
+      $B9: {  # true
+        %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:f32 = let %45
         %47:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %51:i32 = load %50
-        %52:f32 = convert %51
-        %53:vec4<f32> = construct %43, %46, %49, %52
-        store %x_GLF_color, %53
+        %50:f32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:f32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %56:i32 = load %55
+        %57:f32 = convert %56
+        %58:vec4<f32> = construct %46, %50, %54, %57
+        store %x_GLF_color, %58
         exit_if  # if_4
       }
-      %b10 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %55:i32 = load %54
-        %56:f32 = convert %55
-        %57:vec4<f32> = construct %56
-        store %x_GLF_color, %57
+      $B10: {  # false
+        %59:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %60:i32 = load %59
+        %61:f32 = convert %60
+        %62:vec4<f32> = construct %61
+        store %x_GLF_color, %62
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %64:void = call %main_1
+    %65:vec4<f32> = load %x_GLF_color
+    %66:main_out = construct %65
+    ret %66
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B12: {
+    %69:bool = eq %rhs, 0i
+    %70:bool = eq %lhs, -2147483648i
+    %71:bool = eq %rhs, -1i
+    %72:bool = and %70, %71
+    %73:bool = or %69, %72
+    %74:i32 = select %rhs, 1i, %73
+    %75:i32 = let %74
+    %76:i32 = div %lhs, %75
+    %77:i32 = mul %76, %75
+    %78:i32 = sub %lhs, %77
+    ret %78
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.msl
index a84e711..510c0bb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-empty-loop-minus-one-modulo-variable-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,118 +12,156 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<i32, 10>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %arr, array<i32, 10>(1i, 2i, 3i, 4i, 5i, 6i, 7i, 8i, 9i, 10i)
     store %a, 0i
     %7:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_42:i32 = load %7
-    %9:ptr<function, i32, read_write> = access %arr, %x_42
-    %x_44:i32 = load %9
-    %11:bool = eq %x_44, 2i
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_49:i32 = load %12
+    %8:i32 = load %7
+    %x_42:i32 = let %8
+    %10:ptr<function, i32, read_write> = access %arr, %x_42
+    %11:i32 = load %10
+    %x_44:i32 = let %11
+    %13:bool = eq %x_44, 2i
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %15:i32 = load %14
+        %x_49:i32 = let %15
         store %i, %x_49
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            %x_54:i32 = load %i
-            %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %x_56:i32 = load %15
-            %17:bool = lt %x_54, %x_56
-            if %17 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %17:i32 = load %i
+            %x_54:i32 = let %17
+            %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %20:i32 = load %19
+            %x_56:i32 = let %20
+            %22:bool = lt %x_54, %x_56
+            if %22 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
                 exit_if  # if_2
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %x_59:i32 = load %i
-            %19:i32 = add %x_59, 1i
-            store %i, %19
-            next_iteration %b4
+          $B5: {  # continuing
+            %23:i32 = load %i
+            %x_59:i32 = let %23
+            %25:i32 = add %x_59, 1i
+            store %i, %25
+            next_iteration  # -> $B4
           }
         }
-        %x_61:i32 = load %a
-        %21:i32 = add %x_61, 1i
-        store %a, %21
+        %26:i32 = load %a
+        %x_61:i32 = let %26
+        %28:i32 = add %x_61, 1i
+        store %a, %28
         exit_if  # if_1
       }
     }
-    %x_63:i32 = load %a
-    %23:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_66:i32 = load %23
-    %25:i32 = mod -1i, %x_63
-    %26:bool = eq %25, %x_66
-    if %26 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_71:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_75:i32 = load %29
-        %31:vec2<i32> = construct %x_71, %x_71
-        %32:i32 = access %31, 1u
-        %33:ptr<function, i32, read_write> = access %arr, %32
-        store %33, %x_75
+    %29:i32 = load %a
+    %x_63:i32 = let %29
+    %31:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %32:i32 = load %31
+    %x_66:i32 = let %32
+    %34:i32 = call %tint_mod_i32, -1i, %x_63
+    %36:bool = eq %34, %x_66
+    if %36 [t: $B8] {  # if_3
+      $B8: {  # true
+        %37:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_71:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %41:i32 = load %40
+        %x_75:i32 = let %41
+        %43:vec2<i32> = construct %x_71, %x_71
+        %44:i32 = access %43, 1u
+        %45:ptr<function, i32, read_write> = access %arr, %44
+        store %45, %x_75
         exit_if  # if_3
       }
     }
-    %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_78:i32 = load %34
-    %36:ptr<function, i32, read_write> = access %arr, %x_78
-    %x_80:i32 = load %36
-    %38:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_82:i32 = load %38
-    %40:bool = eq %x_80, %x_82
-    if %40 [t: %b9, f: %b10] {  # if_4
-      %b9 = block {  # true
-        %41:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_88:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_91:i32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_94:i32 = load %45
-        %47:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_97:i32 = load %47
-        %49:f32 = convert %x_88
-        %50:f32 = convert %x_91
-        %51:f32 = convert %x_94
-        %52:f32 = convert %x_97
-        %53:vec4<f32> = construct %49, %50, %51, %52
-        store %x_GLF_color, %53
+    %46:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %47:i32 = load %46
+    %x_78:i32 = let %47
+    %49:ptr<function, i32, read_write> = access %arr, %x_78
+    %50:i32 = load %49
+    %x_80:i32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %53:i32 = load %52
+    %x_82:i32 = let %53
+    %55:bool = eq %x_80, %x_82
+    if %55 [t: $B9, f: $B10] {  # if_4
+      $B9: {  # true
+        %56:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %57:i32 = load %56
+        %x_88:i32 = let %57
+        %59:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %60:i32 = load %59
+        %x_91:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %63:i32 = load %62
+        %x_94:i32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %66:i32 = load %65
+        %x_97:i32 = let %66
+        %68:f32 = convert %x_88
+        %69:f32 = let %68
+        %70:f32 = convert %x_91
+        %71:f32 = let %70
+        %72:f32 = convert %x_94
+        %73:f32 = let %72
+        %74:f32 = convert %x_97
+        %75:vec4<f32> = construct %69, %71, %73, %74
+        store %x_GLF_color, %75
         exit_if  # if_4
       }
-      %b10 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_101:i32 = load %54
-        %x_102:f32 = convert %x_101
-        %57:vec4<f32> = construct %x_102, %x_102, %x_102, %x_102
-        store %x_GLF_color, %57
+      $B10: {  # false
+        %76:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %77:i32 = load %76
+        %x_101:i32 = let %77
+        %79:f32 = convert %x_101
+        %x_102:f32 = let %79
+        %81:vec4<f32> = construct %x_102, %x_102, %x_102, %x_102
+        store %x_GLF_color, %81
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %83:void = call %main_1
+    %84:vec4<f32> = load %x_GLF_color
+    %85:main_out = construct %84
+    ret %85
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B12: {
+    %88:bool = eq %rhs, 0i
+    %89:bool = eq %lhs, -2147483648i
+    %90:bool = eq %rhs, -1i
+    %91:bool = and %89, %90
+    %92:bool = or %88, %91
+    %93:i32 = select %rhs, 1i, %92
+    %94:i32 = let %93
+    %95:i32 = div %lhs, %94
+    %96:i32 = mul %95, %94
+    %97:i32 = sub %lhs, %96
+    ret %97
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.msl
index efdd3b1..9e5eeef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %f:ptr<function, f32, read_write> = var
+    store %f, 2.0f
+    %4:f32 = load %f
+    %5:f32 = exp2 %4
+    %6:bool = eq %5, 4.0f
+    if %6 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %8:void = call %main_1
+    %9:vec4<f32> = load %x_GLF_color
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.msl
index efdd3b1..6450660 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-exp2-two/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %f:ptr<function, f32, read_write> = var
+    store %f, 2.0f
+    %4:f32 = load %f
+    %x_19:f32 = let %4
+    %6:f32 = exp2 %x_19
+    %7:bool = eq %6, 4.0f
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.msl
index 8bfce5a..c263fb7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,85 +20,105 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %arr:ptr<function, array<f32, 10>, read_write> = var
     store %f, 2.0f
     %7:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %8:f32 = load %7
-    %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %10:f32 = load %9
-    %11:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %12:f32 = load %11
+    %9:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %11:f32 = load %10
+    %12:f32 = let %11
     %13:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %14:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %16:f32 = load %15
-    %17:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %18:f32 = load %17
+    %15:f32 = let %14
+    %16:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %17:f32 = load %16
+    %18:f32 = let %17
     %19:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %20:f32 = load %19
-    %21:f32 = load %f
-    %22:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %21:f32 = let %20
+    %22:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %23:f32 = load %22
-    %24:f32 = pow %21, %23
+    %24:f32 = let %23
     %25:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %26:f32 = load %25
-    %27:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %28:f32 = load %27
-    %29:array<f32, 10> = construct %8, %10, %12, %14, %16, %18, %20, %24, %26, %28
-    store %arr, %29
-    %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %31:i32 = load %30
-    %32:ptr<function, f32, read_write> = access %arr, %31
+    %27:f32 = let %26
+    %28:f32 = load %f
+    %29:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %30:f32 = load %29
+    %31:f32 = pow %28, %30
+    %32:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %33:f32 = load %32
-    %34:i32 = convert %33
-    %35:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
-    %36:i32 = load %35
-    %37:bool = eq %34, %36
-    if %37 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
-        %47:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %48:i32 = load %47
-        %49:f32 = convert %48
-        %50:vec4<f32> = construct %40, %43, %46, %49
-        store %x_GLF_color, %50
+    %34:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %35:f32 = load %34
+    %36:array<f32, 10> = construct %9, %12, %15, %18, %21, %24, %27, %31, %33, %35
+    store %arr, %36
+    %37:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %38:i32 = load %37
+    %39:ptr<function, f32, read_write> = access %arr, %38
+    %40:f32 = load %39
+    %41:i32 = call %tint_f32_to_i32, %40
+    %43:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
+    %44:i32 = load %43
+    %45:bool = eq %41, %44
+    if %45 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %46:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %47:i32 = load %46
+        %48:f32 = convert %47
+        %49:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %51:i32 = load %50
+        %52:f32 = convert %51
+        %53:f32 = let %52
+        %54:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:f32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:vec4<f32> = construct %49, %53, %57, %60
+        store %x_GLF_color, %61
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %51:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:vec4<f32> = construct %53
-        store %x_GLF_color, %54
+      $B4: {  # false
+        %62:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %63:i32 = load %62
+        %64:f32 = convert %63
+        %65:vec4<f32> = construct %64
+        store %x_GLF_color, %65
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %71:i32 = convert %value
+    %72:bool = gte %value, -2147483648.0f
+    %73:i32 = select -2147483648i, %71, %72
+    %74:bool = lte %value, 2147483520.0f
+    %75:i32 = select 2147483647i, %73, %74
+    ret %75
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.msl
index b6c14ef..aab0055 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-float-array-init-pow/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,85 +20,118 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %arr:ptr<function, array<f32, 10>, read_write> = var
     store %f, 2.0f
     %7:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_37:f32 = load %7
-    %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_39:f32 = load %9
-    %11:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_41:f32 = load %11
+    %8:f32 = load %7
+    %x_37:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_39:f32 = let %11
     %13:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_43:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_45:f32 = load %15
-    %17:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_47:f32 = load %17
+    %14:f32 = load %13
+    %x_41:f32 = let %14
+    %16:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %17:f32 = load %16
+    %x_43:f32 = let %17
     %19:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_49:f32 = load %19
-    %x_50:f32 = load %f
-    %22:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_52:f32 = load %22
-    %24:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_55:f32 = load %24
-    %26:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_57:f32 = load %26
-    %28:f32 = pow %x_50, %x_52
-    %29:array<f32, 10> = construct %x_37, %x_39, %x_41, %x_43, %x_45, %x_47, %x_49, %28, %x_55, %x_57
-    store %arr, %29
-    %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_60:i32 = load %30
-    %32:ptr<function, f32, read_write> = access %arr, %x_60
-    %x_62:f32 = load %32
-    %34:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
-    %x_65:i32 = load %34
-    %36:i32 = convert %x_62
-    %37:bool = eq %36, %x_65
-    if %37 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_71:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_74:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_77:i32 = load %42
-        %44:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_80:i32 = load %44
-        %46:f32 = convert %x_71
-        %47:f32 = convert %x_74
-        %48:f32 = convert %x_77
-        %49:f32 = convert %x_80
-        %50:vec4<f32> = construct %46, %47, %48, %49
-        store %x_GLF_color, %50
+    %20:f32 = load %19
+    %x_45:f32 = let %20
+    %22:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_47:f32 = let %23
+    %25:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %26:f32 = load %25
+    %x_49:f32 = let %26
+    %28:f32 = load %f
+    %x_50:f32 = let %28
+    %30:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %31:f32 = load %30
+    %x_52:f32 = let %31
+    %33:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %34:f32 = load %33
+    %x_55:f32 = let %34
+    %36:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %37:f32 = load %36
+    %x_57:f32 = let %37
+    %39:f32 = pow %x_50, %x_52
+    %40:array<f32, 10> = construct %x_37, %x_39, %x_41, %x_43, %x_45, %x_47, %x_49, %39, %x_55, %x_57
+    store %arr, %40
+    %41:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %42:i32 = load %41
+    %x_60:i32 = let %42
+    %44:ptr<function, f32, read_write> = access %arr, %x_60
+    %45:f32 = load %44
+    %x_62:f32 = let %45
+    %47:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
+    %48:i32 = load %47
+    %x_65:i32 = let %48
+    %50:i32 = call %tint_f32_to_i32, %x_62
+    %52:bool = eq %50, %x_65
+    if %52 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %53:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %54:i32 = load %53
+        %x_71:i32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %57:i32 = load %56
+        %x_74:i32 = let %57
+        %59:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %60:i32 = load %59
+        %x_77:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %63:i32 = load %62
+        %x_80:i32 = let %63
+        %65:f32 = convert %x_71
+        %66:f32 = let %65
+        %67:f32 = convert %x_74
+        %68:f32 = let %67
+        %69:f32 = convert %x_77
+        %70:f32 = let %69
+        %71:f32 = convert %x_80
+        %72:vec4<f32> = construct %66, %68, %70, %71
+        store %x_GLF_color, %72
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %51:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_84:i32 = load %51
-        %x_85:f32 = convert %x_84
-        %54:vec4<f32> = construct %x_85, %x_85, %x_85, %x_85
-        store %x_GLF_color, %54
+      $B4: {  # false
+        %73:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %74:i32 = load %73
+        %x_84:i32 = let %74
+        %76:f32 = convert %x_84
+        %x_85:f32 = let %76
+        %78:vec4<f32> = construct %x_85, %x_85, %x_85, %x_85
+        store %x_GLF_color, %78
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %84:i32 = convert %value
+    %85:bool = gte %value, -2147483648.0f
+    %86:i32 = select -2147483648i, %84, %85
+    %87:bool = lte %value, 2147483520.0f
+    %88:i32 = select 2147483647i, %86, %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.msl
index 89893bb..228b688 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,59 +8,61 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
+%func_ = func():i32 {
+  $B2: {
     %ret:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %ret, 0i
     store %i, 3i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:i32 = load %i
         %7:i32 = load %i
         %8:i32 = and %7, 1i
         %9:bool = gt %6, %8
-        if %9 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %10:i32 = load %ret
         %11:i32 = add %10, 1i
         store %ret, %11
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %12:i32 = load %i
         %13:ptr<uniform, i32, read> = access %x_8, 0u
         %14:i32 = load %13
         %15:i32 = sub %12, %14
         store %i, %15
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
-    %x_50:i32 = load %ret
+    %16:i32 = load %ret
+    %x_50:i32 = let %16
     ret %x_50
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
-    %x_29:i32 = call %func_
-    %19:bool = eq %x_29, 2i
-    if %19 [t: %b8, f: %b9] {  # if_2
-      %b8 = block {  # true
+%main_1 = func():void {
+  $B7: {
+    %19:i32 = call %func_
+    %x_29:i32 = let %19
+    %21:bool = eq %x_29, 2i
+    if %21 [t: $B8, f: $B9] {  # if_2
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -68,12 +70,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.msl
index e88ec34..5778cc5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-and-in-for-loop-range/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,59 +8,66 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
+%func_ = func():i32 {
+  $B2: {
     %ret:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %ret, 0i
     store %i, 3i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_39:i32 = load %i
-        %x_40:i32 = load %i
-        %8:i32 = and %x_40, 1i
-        %9:bool = gt %x_39, %8
-        if %9 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %x_39:i32 = let %6
+        %8:i32 = load %i
+        %x_40:i32 = let %8
+        %10:i32 = and %x_40, 1i
+        %11:bool = gt %x_39, %10
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_44:i32 = load %ret
-        %11:i32 = add %x_44, 1i
-        store %ret, %11
-        continue %b4
+        %12:i32 = load %ret
+        %x_44:i32 = let %12
+        %14:i32 = add %x_44, 1i
+        store %ret, %14
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %12:ptr<uniform, i32, read> = access %x_8, 0u
-        %x_47:i32 = load %12
-        %x_48:i32 = load %i
-        %15:i32 = sub %x_48, %x_47
-        store %i, %15
-        next_iteration %b3
+      $B4: {  # continuing
+        %15:ptr<uniform, i32, read> = access %x_8, 0u
+        %16:i32 = load %15
+        %x_47:i32 = let %16
+        %18:i32 = load %i
+        %x_48:i32 = let %18
+        %20:i32 = sub %x_48, %x_47
+        store %i, %20
+        next_iteration  # -> $B3
       }
     }
-    %x_50:i32 = load %ret
+    %21:i32 = load %ret
+    %x_50:i32 = let %21
     ret %x_50
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
-    %x_29:i32 = call %func_
-    %19:bool = eq %x_29, 2i
-    if %19 [t: %b8, f: %b9] {  # if_2
-      %b8 = block {  # true
+%main_1 = func():void {
+  $B7: {
+    %24:i32 = call %func_
+    %x_29:i32 = let %24
+    %26:bool = eq %x_29, 2i
+    if %26 [t: $B8, f: $B9] {  # if_2
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -68,12 +75,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.msl
index db599b6..df7be41 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,23 +8,23 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
     %5:i32 = load %4
     %6:i32 = and %5, 0i
     %7:bool = eq %6, 0i
-    if %7 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -32,8 +32,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %9:void = call %main_1
     %10:vec4<f32> = load %x_GLF_color
     %11:main_out = construct %10
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.msl
index b075b62..e3ebc6f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-and-zero/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,23 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_22:i32 = load %4
-    %6:i32 = and %x_22, 0i
-    %7:bool = eq %6, 0i
-    if %7 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:i32 = load %4
+    %x_22:i32 = let %5
+    %7:i32 = and %x_22, 0i
+    %8:bool = eq %7, 0i
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -32,12 +33,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %9:void = call %main_1
-    %10:vec4<f32> = load %x_GLF_color
-    %11:main_out = construct %10
-    ret %11
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.msl
index 6b9d2b1..01a723f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,23 +8,23 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
     %5:i32 = load %4
     %6:i32 = or -1i, %5
     %7:bool = eq %6, -1i
-    if %7 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -32,8 +32,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %9:void = call %main_1
     %10:vec4<f32> = load %x_GLF_color
     %11:main_out = construct %10
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.msl
index e391db6..15a57e1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-or-full-mask/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,23 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_23:i32 = load %4
-    %6:i32 = or -1i, %x_23
-    %7:bool = eq %6, -1i
-    if %7 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:i32 = load %4
+    %x_23:i32 = let %5
+    %7:i32 = or -1i, %x_23
+    %8:bool = eq %7, -1i
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -32,12 +33,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %9:void = call %main_1
-    %10:vec4<f32> = load %x_GLF_color
-    %11:main_out = construct %10
-    ret %11
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.msl
index efdd3b1..c570343 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, i32, read_write> = var
+    %b:ptr<function, i32, read_write> = var
+    store %a, 6i
+    store %b, 5i
+    %5:i32 = load %a
+    %6:i32 = load %b
+    %7:i32 = xor %5, %6
+    %8:bool = neq %7, 3i
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.msl
index efdd3b1..0ba2210 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-bitwise-xor/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,48 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, i32, read_write> = var
+    %b:ptr<function, i32, read_write> = var
+    store %a, 6i
+    store %b, 5i
+    %5:i32 = load %a
+    %x_6:i32 = let %5
+    %7:i32 = load %b
+    %x_7:i32 = let %7
+    %9:i32 = xor %x_6, %x_7
+    %10:bool = neq %9, 3i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.msl
index efdd3b1..09fb149 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.spvasm.expected.ir.msl
@@ -1,6 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, bool, read_write> = var
+    store %a, false
+    %4:bool = load %a
+    %5:bool = and true, %4
+    if %5 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %7:void = call %main_1
+    %8:vec4<f32> = load %x_GLF_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.msl
index efdd3b1..ab1a312 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-const-variable/0.wgsl.expected.ir.msl
@@ -1,6 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, bool, read_write> = var
+    store %a, false
+    %4:bool = load %a
+    %x_19:bool = let %4
+    %6:bool = and true, %x_19
+    if %6 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %8:void = call %main_1
+    %9:vec4<f32> = load %x_GLF_color
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.msl
index efdd3b1..e2a8ed1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,60 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 2i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %i
+        %6:i32 = add %5, 1i
+        store %i, %6
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %7:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_35:f32 = let %7
+        %9:bool = gte %x_35, 0.0f
+        %10:bool = and %9, false
+        %11:bool = eq %10, false
+        break_if %11  # -> [t: exit_loop loop_1, f: $B3]
+      }
+    }
+    %12:i32 = load %i
+    %13:bool = eq %12, 3i
+    if %13 [t: $B5, f: $B6] {  # if_1
+      $B5: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B6: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    ret %18
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.msl
index efdd3b1..0c4cd9b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-and-constant/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 2i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %i
+        %x_6:i32 = let %5
+        %7:i32 = add %x_6, 1i
+        store %i, %7
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %8:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_35:f32 = let %8
+        %10:bool = gte %x_35, 0.0f
+        %11:bool = and %10, false
+        %12:bool = eq %11, false
+        break_if %12  # -> [t: exit_loop loop_1, f: $B3]
+      }
+    }
+    %13:i32 = load %i
+    %x_8:i32 = let %13
+    %15:bool = eq %x_8, 3i
+    if %15 [t: $B5, f: $B6] {  # if_1
+      $B5: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B6: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.msl
index 2e88a5f..68624bd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.spvasm.expected.ir.msl
@@ -1,6 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:f32 = load_vector_element %gl_FragCoord, 0u
+    %5:bool = lt %4, 0.0f
+    %6:bool = or %5, true
+    if %6 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.msl
index 2e88a5f..ab3f95c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-logical-or-constant/0.wgsl.expected.ir.msl
@@ -1,6 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_22:f32 = let %4
+    %6:bool = lt %x_22, 0.0f
+    %7:bool = or %6, true
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.msl
index 2406016..f70289a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   minusOne:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %minValue:ptr<function, i32, read_write> = var
     %negMinValue:ptr<function, i32, read_write> = var
     store %minValue, -2147483648i
@@ -27,12 +27,12 @@
     %11:i32 = load %10
     %12:i32 = mul %9, %11
     %13:bool = eq %8, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -40,8 +40,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.msl
index b808aad..e876f4d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-min-int-value/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   minusOne:i32 @offset(0)
 }
 
@@ -8,31 +8,35 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %minValue:ptr<function, i32, read_write> = var
     %negMinValue:ptr<function, i32, read_write> = var
     store %minValue, -2147483648i
-    %x_25:i32 = load %minValue
-    %7:i32 = negation %x_25
-    store %negMinValue, %7
-    %x_27:i32 = load %negMinValue
-    %x_28:i32 = load %minValue
-    %10:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_30:i32 = load %10
-    %12:i32 = mul %x_28, %x_30
-    %13:bool = eq %x_27, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:i32 = load %minValue
+    %x_25:i32 = let %6
+    %8:i32 = negation %x_25
+    store %negMinValue, %8
+    %9:i32 = load %negMinValue
+    %x_27:i32 = let %9
+    %11:i32 = load %minValue
+    %x_28:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_7, 0u
+    %14:i32 = load %13
+    %x_30:i32 = let %14
+    %16:i32 = mul %x_28, %x_30
+    %17:bool = eq %x_27, %16
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -40,12 +44,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.msl
index efdd3b1..4ca3915 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.spvasm.expected.ir.msl
@@ -1,6 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 3i
+    %4:i32 = load %i
+    %5:i32 = complement %4
+    %6:bool = eq %5, -4i
+    if %6 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %8:void = call %main_1
+    %9:vec4<f32> = load %x_GLF_color
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.msl
index efdd3b1..d788c0c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-negate-variable/0.wgsl.expected.ir.msl
@@ -1,6 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 3i
+    %4:i32 = load %i
+    %x_5:i32 = let %4
+    %6:i32 = complement %x_5
+    %7:bool = eq %6, -4i
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.ir.msl
index 17382da..a7332fd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:u32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %b:ptr<function, u32, read_write> = var
     %c:ptr<function, u32, read_write> = var
@@ -24,104 +24,110 @@
     %10:ptr<uniform, u32, read> = access %x_6, 0u
     %11:u32 = load %10
     %12:u32 = add 77u, %11
-    %13:u32 = shiftr %12, 32u
-    store %a, %13
-    %14:ptr<uniform, u32, read> = access %x_6, 0u
-    %15:u32 = load %14
-    %16:u32 = add 3243u, %15
-    %17:u32 = shiftr %16, 33u
-    store %b, %17
-    %18:ptr<uniform, u32, read> = access %x_6, 0u
-    %19:u32 = load %18
-    %20:u32 = add 23u, %19
-    %21:u32 = shiftr %20, 345u
-    store %c, %21
-    %22:ptr<uniform, u32, read> = access %x_6, 0u
-    %23:u32 = load %22
-    %24:u32 = add 2395u, %23
-    %25:u32 = shiftl %24, 32u
-    store %d, %25
-    %26:ptr<uniform, u32, read> = access %x_6, 0u
-    %27:u32 = load %26
-    %28:u32 = add 290485u, %27
-    %29:u32 = shiftl %28, 33u
-    store %e, %29
+    %13:u32 = and 32u, 31u
+    %14:u32 = shr %12, %13
+    store %a, %14
+    %15:ptr<uniform, u32, read> = access %x_6, 0u
+    %16:u32 = load %15
+    %17:u32 = add 3243u, %16
+    %18:u32 = and 33u, 31u
+    %19:u32 = shr %17, %18
+    store %b, %19
+    %20:ptr<uniform, u32, read> = access %x_6, 0u
+    %21:u32 = load %20
+    %22:u32 = add 23u, %21
+    %23:u32 = and 345u, 31u
+    %24:u32 = shr %22, %23
+    store %c, %24
+    %25:ptr<uniform, u32, read> = access %x_6, 0u
+    %26:u32 = load %25
+    %27:u32 = add 2395u, %26
+    %28:u32 = and 32u, 31u
+    %29:u32 = shl %27, %28
+    store %d, %29
     %30:ptr<uniform, u32, read> = access %x_6, 0u
     %31:u32 = load %30
-    %32:u32 = add 44321u, %31
-    %33:u32 = shiftl %32, 345u
-    store %f, %33
-    %34:u32 = load %a
-    %35:bool = neq %34, 1u
-    if %35 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %32:u32 = add 290485u, %31
+    %33:u32 = and 33u, 31u
+    %34:u32 = shl %32, %33
+    store %e, %34
+    %35:ptr<uniform, u32, read> = access %x_6, 0u
+    %36:u32 = load %35
+    %37:u32 = add 44321u, %36
+    %38:u32 = and 345u, 31u
+    %39:u32 = shl %37, %38
+    store %f, %39
+    %40:u32 = load %a
+    %41:bool = neq %40, 1u
+    if %41 [t: $B3] {  # if_1
+      $B3: {  # true
         store %a, 1u
         exit_if  # if_1
       }
     }
-    %36:u32 = load %b
-    %37:bool = neq %36, 0u
-    if %37 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %42:u32 = load %b
+    %43:bool = neq %42, 0u
+    if %43 [t: $B4] {  # if_2
+      $B4: {  # true
         store %b, 0u
         exit_if  # if_2
       }
     }
-    %38:u32 = load %c
-    %39:bool = neq %38, 1u
-    if %39 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %44:u32 = load %c
+    %45:bool = neq %44, 1u
+    if %45 [t: $B5] {  # if_3
+      $B5: {  # true
         store %c, 1u
         exit_if  # if_3
       }
     }
-    %40:u32 = load %d
-    %41:bool = neq %40, 0u
-    if %41 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %46:u32 = load %d
+    %47:bool = neq %46, 0u
+    if %47 [t: $B6] {  # if_4
+      $B6: {  # true
         store %d, 0u
         exit_if  # if_4
       }
     }
-    %42:u32 = load %e
-    %43:bool = neq %42, 1u
-    if %43 [t: %b7] {  # if_5
-      %b7 = block {  # true
+    %48:u32 = load %e
+    %49:bool = neq %48, 1u
+    if %49 [t: $B7] {  # if_5
+      $B7: {  # true
         store %e, 1u
         exit_if  # if_5
       }
     }
-    %44:u32 = load %f
-    %45:bool = neq %44, 0u
-    if %45 [t: %b8] {  # if_6
-      %b8 = block {  # true
+    %50:u32 = load %f
+    %51:bool = neq %50, 0u
+    if %51 [t: $B8] {  # if_6
+      $B8: {  # true
         store %f, 0u
         exit_if  # if_6
       }
     }
-    %46:u32 = load %a
-    %47:bool = eq %46, 1u
-    %48:u32 = load %b
-    %49:bool = eq %48, 0u
-    %50:bool = and %47, %49
-    %51:u32 = load %c
-    %52:bool = eq %51, 1u
-    %53:bool = and %50, %52
-    %54:u32 = load %d
+    %52:u32 = load %a
+    %53:bool = eq %52, 1u
+    %54:u32 = load %b
     %55:bool = eq %54, 0u
     %56:bool = and %53, %55
-    %57:u32 = load %e
+    %57:u32 = load %c
     %58:bool = eq %57, 1u
     %59:bool = and %56, %58
-    %60:u32 = load %f
+    %60:u32 = load %d
     %61:bool = eq %60, 0u
     %62:bool = and %59, %61
-    if %62 [t: %b9, f: %b10] {  # if_7
-      %b9 = block {  # true
+    %63:u32 = load %e
+    %64:bool = eq %63, 1u
+    %65:bool = and %62, %64
+    %66:u32 = load %f
+    %67:bool = eq %66, 0u
+    %68:bool = and %65, %67
+    if %68 [t: $B9, f: $B10] {  # if_7
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_7
       }
@@ -129,12 +135,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %64:void = call %main_1
-    %65:vec4<f32> = load %x_GLF_color
-    %66:main_out = construct %65
-    ret %66
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %70:void = call %main_1
+    %71:vec4<f32> = load %x_GLF_color
+    %72:main_out = construct %71
+    ret %72
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.ir.msl
index 8053fd5..af720ec 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-gte32/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:u32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %b:ptr<function, u32, read_write> = var
     %c:ptr<function, u32, read_write> = var
@@ -22,106 +22,130 @@
     %e:ptr<function, u32, read_write> = var
     %f:ptr<function, u32, read_write> = var
     %10:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_41:u32 = load %10
-    %12:u32 = add 77u, %x_41
-    %13:u32 = shiftr %12, 32u
-    store %a, %13
-    %14:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_45:u32 = load %14
-    %16:u32 = add 3243u, %x_45
-    %17:u32 = shiftr %16, 33u
-    store %b, %17
-    %18:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_49:u32 = load %18
-    %20:u32 = add 23u, %x_49
-    %21:u32 = shiftr %20, 345u
-    store %c, %21
+    %11:u32 = load %10
+    %x_41:u32 = let %11
+    %13:u32 = add 77u, %x_41
+    %14:u32 = and 32u, 31u
+    %15:u32 = shr %13, %14
+    store %a, %15
+    %16:ptr<uniform, u32, read> = access %x_6, 0u
+    %17:u32 = load %16
+    %x_45:u32 = let %17
+    %19:u32 = add 3243u, %x_45
+    %20:u32 = and 33u, 31u
+    %21:u32 = shr %19, %20
+    store %b, %21
     %22:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_53:u32 = load %22
-    %24:u32 = add 2395u, %x_53
-    %25:u32 = shiftl %24, 32u
-    store %d, %25
-    %26:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_57:u32 = load %26
-    %28:u32 = add 290485u, %x_57
-    %29:u32 = shiftl %28, 33u
-    store %e, %29
-    %30:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_61:u32 = load %30
-    %32:u32 = add 44321u, %x_61
-    %33:u32 = shiftl %32, 345u
-    store %f, %33
-    %x_64:u32 = load %a
-    %35:bool = neq %x_64, 1u
-    if %35 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %23:u32 = load %22
+    %x_49:u32 = let %23
+    %25:u32 = add 23u, %x_49
+    %26:u32 = and 345u, 31u
+    %27:u32 = shr %25, %26
+    store %c, %27
+    %28:ptr<uniform, u32, read> = access %x_6, 0u
+    %29:u32 = load %28
+    %x_53:u32 = let %29
+    %31:u32 = add 2395u, %x_53
+    %32:u32 = and 32u, 31u
+    %33:u32 = shl %31, %32
+    store %d, %33
+    %34:ptr<uniform, u32, read> = access %x_6, 0u
+    %35:u32 = load %34
+    %x_57:u32 = let %35
+    %37:u32 = add 290485u, %x_57
+    %38:u32 = and 33u, 31u
+    %39:u32 = shl %37, %38
+    store %e, %39
+    %40:ptr<uniform, u32, read> = access %x_6, 0u
+    %41:u32 = load %40
+    %x_61:u32 = let %41
+    %43:u32 = add 44321u, %x_61
+    %44:u32 = and 345u, 31u
+    %45:u32 = shl %43, %44
+    store %f, %45
+    %46:u32 = load %a
+    %x_64:u32 = let %46
+    %48:bool = neq %x_64, 1u
+    if %48 [t: $B3] {  # if_1
+      $B3: {  # true
         store %a, 1u
         exit_if  # if_1
       }
     }
-    %x_68:u32 = load %b
-    %37:bool = neq %x_68, 0u
-    if %37 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %49:u32 = load %b
+    %x_68:u32 = let %49
+    %51:bool = neq %x_68, 0u
+    if %51 [t: $B4] {  # if_2
+      $B4: {  # true
         store %b, 0u
         exit_if  # if_2
       }
     }
-    %x_72:u32 = load %c
-    %39:bool = neq %x_72, 1u
-    if %39 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %52:u32 = load %c
+    %x_72:u32 = let %52
+    %54:bool = neq %x_72, 1u
+    if %54 [t: $B5] {  # if_3
+      $B5: {  # true
         store %c, 1u
         exit_if  # if_3
       }
     }
-    %x_76:u32 = load %d
-    %41:bool = neq %x_76, 0u
-    if %41 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %55:u32 = load %d
+    %x_76:u32 = let %55
+    %57:bool = neq %x_76, 0u
+    if %57 [t: $B6] {  # if_4
+      $B6: {  # true
         store %d, 0u
         exit_if  # if_4
       }
     }
-    %x_80:u32 = load %e
-    %43:bool = neq %x_80, 1u
-    if %43 [t: %b7] {  # if_5
-      %b7 = block {  # true
+    %58:u32 = load %e
+    %x_80:u32 = let %58
+    %60:bool = neq %x_80, 1u
+    if %60 [t: $B7] {  # if_5
+      $B7: {  # true
         store %e, 1u
         exit_if  # if_5
       }
     }
-    %x_84:u32 = load %f
-    %45:bool = neq %x_84, 0u
-    if %45 [t: %b8] {  # if_6
-      %b8 = block {  # true
+    %61:u32 = load %f
+    %x_84:u32 = let %61
+    %63:bool = neq %x_84, 0u
+    if %63 [t: $B8] {  # if_6
+      $B8: {  # true
         store %f, 0u
         exit_if  # if_6
       }
     }
-    %x_88:u32 = load %a
-    %x_90:u32 = load %b
-    %x_93:u32 = load %c
-    %x_96:u32 = load %d
-    %x_99:u32 = load %e
-    %x_102:u32 = load %f
-    %52:bool = eq %x_88, 1u
-    %53:bool = eq %x_90, 0u
-    %54:bool = and %52, %53
-    %55:bool = eq %x_93, 1u
-    %56:bool = and %54, %55
-    %57:bool = eq %x_96, 0u
-    %58:bool = and %56, %57
-    %59:bool = eq %x_99, 1u
-    %60:bool = and %58, %59
-    %61:bool = eq %x_102, 0u
-    %62:bool = and %60, %61
-    if %62 [t: %b9, f: %b10] {  # if_7
-      %b9 = block {  # true
+    %64:u32 = load %a
+    %x_88:u32 = let %64
+    %66:u32 = load %b
+    %x_90:u32 = let %66
+    %68:u32 = load %c
+    %x_93:u32 = let %68
+    %70:u32 = load %d
+    %x_96:u32 = let %70
+    %72:u32 = load %e
+    %x_99:u32 = let %72
+    %74:u32 = load %f
+    %x_102:u32 = let %74
+    %76:bool = eq %x_88, 1u
+    %77:bool = eq %x_90, 0u
+    %78:bool = and %76, %77
+    %79:bool = eq %x_93, 1u
+    %80:bool = and %78, %79
+    %81:bool = eq %x_96, 0u
+    %82:bool = and %80, %81
+    %83:bool = eq %x_99, 1u
+    %84:bool = and %82, %83
+    %85:bool = eq %x_102, 0u
+    %86:bool = and %84, %85
+    if %86 [t: $B9, f: $B10] {  # if_7
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_7
       }
@@ -129,12 +153,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %64:void = call %main_1
-    %65:vec4<f32> = load %x_GLF_color
-    %66:main_out = construct %65
-    ret %66
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %88:void = call %main_1
+    %89:vec4<f32> = load %x_GLF_color
+    %90:main_out = construct %89
+    ret %90
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.msl
index efdd3b1..2fe5ea4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.spvasm.expected.ir.msl
@@ -1,6 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 5i
+    %4:i32 = load %i
+    %5:u32 = and 1u, 31u
+    %6:i32 = shr %4, %5
+    %7:bool = neq %6, 2i
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.msl
index efdd3b1..d28bdb9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-shift-right-arithmetic/0.wgsl.expected.ir.msl
@@ -1,6 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 5i
+    %4:i32 = load %i
+    %x_5:i32 = let %4
+    %6:u32 = and 1u, 31u
+    %7:i32 = shr %x_5, %6
+    %8:bool = neq %7, 2i
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.msl
index efdd3b1..386846d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.spvasm.expected.ir.msl
@@ -1,6 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, u32, read_write> = var
+    store %a, 4u
+    %4:u32 = load %a
+    %x_5:u32 = let %4
+    %6:u32 = call %tint_div_u32, %x_5, 2u
+    switch %6 [c: (2u, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_switch  # switch_1
+      }
+      $B4: {  # case
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_switch  # switch_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
+  }
+}
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B6: {
+    %14:bool = eq %rhs, 0u
+    %15:u32 = select %rhs, 1u, %14
+    %16:u32 = div %lhs, %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.msl
index efdd3b1..386846d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fold-switch-udiv/0.wgsl.expected.ir.msl
@@ -1,6 +1,51 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, u32, read_write> = var
+    store %a, 4u
+    %4:u32 = load %a
+    %x_5:u32 = let %4
+    %6:u32 = call %tint_div_u32, %x_5, 2u
+    switch %6 [c: (2u, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_switch  # switch_1
+      }
+      $B4: {  # case
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_switch  # switch_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %9:void = call %main_1
+    %10:vec4<f32> = load %x_GLF_color
+    %11:main_out = construct %10
+    ret %11
+  }
+}
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B6: {
+    %14:bool = eq %rhs, 0u
+    %15:u32 = select %rhs, 1u, %14
+    %16:u32 = div %lhs, %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.msl
index 62e70ad..4f5b151 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,43 +8,45 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     store %f, 1.0f
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:f32 = load %f
         %6:ptr<uniform, f32, read> = access %x_6, 0u
         %7:f32 = load %6
         %8:f32 = add %5, %7
         store %f, %8
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_34:f32 = load %f
-        %10:ptr<uniform, f32, read> = access %x_6, 0u
-        %x_36:f32 = load %10
-        %12:f32 = add 9.0f, %x_36
-        %13:f32 = clamp %x_34, 8.0f, %12
-        %14:bool = gt 10.0f, %13
-        %15:bool = eq %14, false
-        break_if %15 %b3
+      $B4: {  # continuing
+        %9:f32 = load %f
+        %x_34:f32 = let %9
+        %11:ptr<uniform, f32, read> = access %x_6, 0u
+        %12:f32 = load %11
+        %x_36:f32 = let %12
+        %14:f32 = add 9.0f, %x_36
+        %15:f32 = clamp %x_34, 8.0f, %14
+        %16:bool = gt 10.0f, %15
+        %17:bool = eq %16, false
+        break_if %17  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %16:f32 = load %f
-    %17:bool = eq %16, 10.0f
-    if %17 [t: %b5, f: %b6] {  # if_1
-      %b5 = block {  # true
+    %18:f32 = load %f
+    %19:bool = eq %18, 10.0f
+    if %19 [t: $B5, f: $B6] {  # if_1
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -52,12 +54,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.msl
index 9b23937..2424647 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-clamp-cmp-const-first/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,43 +8,48 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     store %f, 1.0f
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:ptr<uniform, f32, read> = access %x_6, 0u
-        %x_31:f32 = load %5
-        %x_32:f32 = load %f
-        %8:f32 = add %x_32, %x_31
-        store %f, %8
-        continue %b4
+        %6:f32 = load %5
+        %x_31:f32 = let %6
+        %8:f32 = load %f
+        %x_32:f32 = let %8
+        %10:f32 = add %x_32, %x_31
+        store %f, %10
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_34:f32 = load %f
-        %10:ptr<uniform, f32, read> = access %x_6, 0u
-        %x_36:f32 = load %10
-        %12:f32 = add 9.0f, %x_36
-        %13:f32 = clamp %x_34, 8.0f, %12
-        %14:bool = gt 10.0f, %13
-        %15:bool = eq %14, false
-        break_if %15 %b3
+      $B4: {  # continuing
+        %11:f32 = load %f
+        %x_34:f32 = let %11
+        %13:ptr<uniform, f32, read> = access %x_6, 0u
+        %14:f32 = load %13
+        %x_36:f32 = let %14
+        %16:f32 = add 9.0f, %x_36
+        %17:f32 = clamp %x_34, 8.0f, %16
+        %18:bool = gt 10.0f, %17
+        %19:bool = eq %18, false
+        break_if %19  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %x_40:f32 = load %f
-    %17:bool = eq %x_40, 10.0f
-    if %17 [t: %b5, f: %b6] {  # if_1
-      %b5 = block {  # true
+    %20:f32 = load %f
+    %x_40:f32 = let %20
+    %22:bool = eq %x_40, 10.0f
+    if %22 [t: $B5, f: $B6] {  # if_1
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -52,12 +57,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.msl
index 2d4b8b6..7e52a3c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
     %5:i32 = load %4
     %6:i32 = sub 3i, %5
     %7:i32 = add 1i, %6
     %8:bool = eq %7, 3i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,8 +33,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %10:void = call %main_1
     %11:vec4<f32> = load %x_GLF_color
     %12:main_out = construct %11
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.msl
index e854c43..d0b5bfc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-merge-add-sub-uniform/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_24:i32 = load %4
-    %6:i32 = sub 3i, %x_24
-    %7:i32 = add 1i, %6
-    %8:bool = eq %7, 3i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:i32 = load %4
+    %x_24:i32 = let %5
+    %7:i32 = sub 3i, %x_24
+    %8:i32 = add 1i, %7
+    %9:bool = eq %8, 3i
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.msl
index 2114f17..4446eea 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   twoandthree:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec2<f32>, read_write> = var
     %x_46:ptr<function, bool, read_write> = var
@@ -23,31 +23,33 @@
     %9:vec2<f32> = load %8
     store %a, %9
     %10:f32 = load_vector_element %a, 0u
-    %11:vec2<f32> = load %a
-    %12:vec2<f32> = clamp %11, vec2<f32>(1.0f), vec2<f32>(1.0f)
-    %13:f32 = access %12, 1u
-    %14:vec2<f32> = construct %10, %13
-    store %b, %14
-    %15:f32 = load_vector_element %b, 0u
-    %x_41:bool = eq %15, 2.0f
+    %11:f32 = let %10
+    %12:vec2<f32> = load %a
+    %13:vec2<f32> = clamp %12, vec2<f32>(1.0f), vec2<f32>(1.0f)
+    %14:f32 = access %13, 1u
+    %15:vec2<f32> = construct %11, %14
+    store %b, %15
+    %16:f32 = load_vector_element %b, 0u
+    %17:bool = eq %16, 2.0f
+    %x_41:bool = let %17
     store %x_47, %x_41
-    if %x_41 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %17:f32 = load_vector_element %b, 1u
-        %18:bool = eq %17, 1.0f
-        store %x_46, %18
-        %19:bool = load %x_46
-        store %x_47, %19
+    if %x_41 [t: $B3] {  # if_1
+      $B3: {  # true
+        %19:f32 = load_vector_element %b, 1u
+        %20:bool = eq %19, 1.0f
+        store %x_46, %20
+        %21:bool = load %x_46
+        store %x_47, %21
         exit_if  # if_1
       }
     }
-    %20:bool = load %x_47
-    if %20 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %22:bool = load %x_47
+    if %22 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -55,12 +57,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.msl
index a6f363d..3908d94 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-construct-extract/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   twoandthree:vec2<f32> @offset(0)
 }
 
@@ -8,46 +8,53 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec2<f32>, read_write> = var
     %x_46:ptr<function, bool, read_write> = var
     %x_47_phi:ptr<function, bool, read_write> = var
     %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_32:vec2<f32> = load %8
+    %9:vec2<f32> = load %8
+    %x_32:vec2<f32> = let %9
     store %a, %x_32
-    %x_34:f32 = load_vector_element %a, 0u
-    %x_35:vec2<f32> = load %a
-    %12:vec2<f32> = clamp %x_35, vec2<f32>(1.0f), vec2<f32>(1.0f)
-    %13:f32 = access %12, 1u
-    %14:vec2<f32> = construct %x_34, %13
-    store %b, %14
-    %x_40:f32 = load_vector_element %b, 0u
-    %x_41:bool = eq %x_40, 2.0f
+    %11:f32 = load_vector_element %a, 0u
+    %x_34:f32 = let %11
+    %13:vec2<f32> = load %a
+    %x_35:vec2<f32> = let %13
+    %15:vec2<f32> = clamp %x_35, vec2<f32>(1.0f), vec2<f32>(1.0f)
+    %16:f32 = access %15, 1u
+    %17:vec2<f32> = construct %x_34, %16
+    store %b, %17
+    %18:f32 = load_vector_element %b, 0u
+    %x_40:f32 = let %18
+    %20:bool = eq %x_40, 2.0f
+    %x_41:bool = let %20
     store %x_47_phi, %x_41
-    if %x_41 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_45:f32 = load_vector_element %b, 1u
-        %18:bool = eq %x_45, 1.0f
-        store %x_46, %18
-        %19:bool = load %x_46
-        store %x_47_phi, %19
+    if %x_41 [t: $B3] {  # if_1
+      $B3: {  # true
+        %22:f32 = load_vector_element %b, 1u
+        %x_45:f32 = let %22
+        %24:bool = eq %x_45, 1.0f
+        store %x_46, %24
+        %25:bool = load %x_46
+        store %x_47_phi, %25
         exit_if  # if_1
       }
     }
-    %x_47:bool = load %x_47_phi
-    if %x_47 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %26:bool = load %x_47_phi
+    %x_47:bool = let %26
+    if %x_47 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -55,12 +62,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %29:void = call %main_1
+    %30:vec4<f32> = load %x_GLF_color
+    %31:main_out = construct %30
+    ret %31
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.msl
index 910311f..00c893c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u
     %5:f32 = load %4
     %6:vec4<f32> = construct 1.0f, 2.0f, %5, 4.0f
     %7:f32 = dot %6, vec4<f32>(0.0f, 1.0f, 0.0f, 0.0f)
     %8:bool = eq %7, 2.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,8 +33,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %10:void = call %main_1
     %11:vec4<f32> = load %x_GLF_color
     %12:main_out = construct %11
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.msl
index 4d19d92..ea147f4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-extract/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_25:f32 = load %4
-    %6:vec4<f32> = construct 1.0f, 2.0f, %x_25, 4.0f
-    %7:f32 = dot %6, vec4<f32>(0.0f, 1.0f, 0.0f, 0.0f)
-    %8:bool = eq %7, 2.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:f32 = load %4
+    %x_25:f32 = let %5
+    %7:vec4<f32> = construct 1.0f, 2.0f, %x_25, 4.0f
+    %8:f32 = dot %7, vec4<f32>(0.0f, 1.0f, 0.0f, 0.0f)
+    %9:bool = eq %8, 2.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.msl
index 400a700..58496e6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u
     %5:f32 = load %4
     %6:vec2<f32> = construct 2.0f, %5
     %7:f32 = dot %6, vec2<f32>(0.0f, 2.0f)
     %8:bool = eq %7, 6.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,8 +33,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %10:void = call %main_1
     %11:vec4<f32> = load %x_GLF_color
     %12:main_out = construct %11
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.msl
index 4bd782a..5eeba9e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-dot-no-extract/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_26:f32 = load %4
-    %6:vec2<f32> = construct 2.0f, %x_26
-    %7:f32 = dot %6, vec2<f32>(0.0f, 2.0f)
-    %8:bool = eq %7, 6.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:f32 = load %4
+    %x_26:f32 = let %5
+    %7:vec2<f32> = construct 2.0f, %x_26
+    %8:f32 = dot %7, vec2<f32>(0.0f, 2.0f)
+    %9:bool = eq %8, 6.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.msl
index efdd3b1..64bc726 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 5i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %4:i32 = load %i
+        %5:bool = gte %4, 0i
+        if %5 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %6:i32 = load %i
+        %7:i32 = sub %6, 3i
+        store %i, %7
+        %8:i32 = load %i
+        %9:i32 = add %8, 1i
+        store %i, %9
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        next_iteration  # -> $B3
+      }
+    }
+    %10:i32 = load %i
+    %11:bool = eq %10, -1i
+    if %11 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_2
+      }
+      $B8: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_2
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %13:void = call %main_1
+    %14:vec4<f32> = load %x_GLF_color
+    %15:main_out = construct %14
+    ret %15
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.msl
index efdd3b1..5b40832 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-add-sub/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,70 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 5i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %4:i32 = load %i
+        %x_5:i32 = let %4
+        %6:bool = gte %x_5, 0i
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %7:i32 = load %i
+        %x_6:i32 = let %7
+        %9:i32 = sub %x_6, 3i
+        store %i, %9
+        %10:i32 = load %i
+        %x_8:i32 = let %10
+        %12:i32 = add %x_8, 1i
+        store %i, %12
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        next_iteration  # -> $B3
+      }
+    }
+    %13:i32 = load %i
+    %x_10:i32 = let %13
+    %15:bool = eq %x_10, -1i
+    if %15 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_2
+      }
+      $B8: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_2
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    ret %19
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.msl
index 621f52b..5501f58 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
     %6:f32 = load %5
@@ -26,12 +26,12 @@
     %11:f32 = load %f
     %12:bool = lt %11, 2.09999990463256835938f
     %13:bool = and %10, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -39,8 +39,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.msl
index e793225..f397383 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-div-mul/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,30 +8,33 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_28:f32 = load %5
-    %7:f32 = mul 2.0f, %x_28
-    %8:f32 = div 4.0f, %7
-    store %f, %8
-    %x_31:f32 = load %f
-    %x_33:f32 = load %f
-    %11:bool = gt %x_31, 1.89999997615814208984f
-    %12:bool = lt %x_33, 2.09999990463256835938f
-    %13:bool = and %11, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load %5
+    %x_28:f32 = let %6
+    %8:f32 = mul 2.0f, %x_28
+    %9:f32 = div 4.0f, %8
+    store %f, %9
+    %10:f32 = load %f
+    %x_31:f32 = let %10
+    %12:f32 = load %f
+    %x_33:f32 = let %12
+    %14:bool = gt %x_31, 1.89999997615814208984f
+    %15:bool = lt %x_33, 2.09999990463256835938f
+    %16:bool = and %14, %15
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -39,12 +42,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.msl
index 5574d42..dbf950c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   four:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
     %6:f32 = load %5
@@ -26,12 +26,12 @@
     %11:f32 = load %a
     %12:bool = lt %11, 8.1000003814697265625f
     %13:bool = and %10, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -39,8 +39,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.msl
index 19f864c..d3e5445 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-divs/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   four:f32 @offset(0)
 }
 
@@ -8,30 +8,33 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_27:f32 = load %5
-    %7:f32 = div 1.0f, %x_27
-    %8:f32 = div 2.0f, %7
-    store %a, %8
-    %x_30:f32 = load %a
-    %x_32:f32 = load %a
-    %11:bool = gt %x_30, 7.90000009536743164062f
-    %12:bool = lt %x_32, 8.1000003814697265625f
-    %13:bool = and %11, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load %5
+    %x_27:f32 = let %6
+    %8:f32 = div 1.0f, %x_27
+    %9:f32 = div 2.0f, %8
+    store %a, %9
+    %10:f32 = load %a
+    %x_30:f32 = let %10
+    %12:f32 = load %a
+    %x_32:f32 = let %12
+    %14:bool = gt %x_30, 7.90000009536743164062f
+    %15:bool = lt %x_32, 8.1000003814697265625f
+    %16:bool = and %14, %15
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -39,12 +42,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.msl
index 2e41d63..684b9a9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
     %6:f32 = load %5
@@ -26,12 +26,12 @@
     %11:f32 = load %f
     %12:bool = lt %11, 8.1000003814697265625f
     %13:bool = and %10, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -39,8 +39,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.msl
index b6a6d6c..645c7c5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-mul-div/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,30 +8,33 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_28:f32 = load %5
-    %7:f32 = div 2.0f, %x_28
-    %8:f32 = mul 4.0f, %7
-    store %f, %8
-    %x_31:f32 = load %f
-    %x_33:f32 = load %f
-    %11:bool = gt %x_31, 7.90000009536743164062f
-    %12:bool = lt %x_33, 8.1000003814697265625f
-    %13:bool = and %11, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load %5
+    %x_28:f32 = let %6
+    %8:f32 = div 2.0f, %x_28
+    %9:f32 = mul 4.0f, %8
+    store %f, %9
+    %10:f32 = load %f
+    %x_31:f32 = let %10
+    %12:f32 = load %f
+    %x_33:f32 = let %12
+    %14:bool = gt %x_31, 7.90000009536743164062f
+    %15:bool = lt %x_33, 8.1000003814697265625f
+    %16:bool = and %14, %15
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -39,12 +42,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.msl
index efdd3b1..6e28183 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,78 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %b:ptr<function, bool, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %a:ptr<function, f32, read_write> = var
+    store %b, false
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %7:bool = gt %6, 0i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:i32 = load %i
+        %9:f32 = convert %8
+        %10:f32 = add 1.0f, %9
+        store %a, %10
+        %11:f32 = load %a
+        %12:f32 = sub 2.0f, %11
+        %13:bool = eq %12, 0.0f
+        if %13 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %b, true
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %14:i32 = load %i
+        %15:i32 = sub %14, 1i
+        store %i, %15
+        next_iteration  # -> $B3
+      }
+    }
+    %16:bool = load %b
+    if %16 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.msl
index efdd3b1..159a513 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-add/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,83 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %b:ptr<function, bool, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %a:ptr<function, f32, read_write> = var
+    store %b, false
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %x_7:i32 = let %6
+        %8:bool = gt %x_7, 0i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %9:i32 = load %i
+        %x_8:i32 = let %9
+        %11:f32 = convert %x_8
+        %12:f32 = add 1.0f, %11
+        store %a, %12
+        %13:f32 = load %a
+        %x_39:f32 = let %13
+        %15:f32 = sub 2.0f, %x_39
+        %16:bool = eq %15, 0.0f
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %b, true
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %17:i32 = load %i
+        %x_9:i32 = let %17
+        %19:i32 = sub %x_9, 1i
+        store %i, %19
+        next_iteration  # -> $B3
+      }
+    }
+    %20:bool = load %b
+    %x_44:bool = let %20
+    if %x_44 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.msl
index efdd3b1..4f55947 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,78 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %b:ptr<function, bool, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %a:ptr<function, f32, read_write> = var
+    store %b, false
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %7:bool = gt %6, 0i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:i32 = load %i
+        %9:f32 = convert %8
+        %10:f32 = sub 3.0f, %9
+        store %a, %10
+        %11:f32 = load %a
+        %12:f32 = sub 2.0f, %11
+        %13:bool = eq %12, 0.0f
+        if %13 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %b, true
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %14:i32 = load %i
+        %15:i32 = sub %14, 1i
+        store %i, %15
+        next_iteration  # -> $B3
+      }
+    }
+    %16:bool = load %b
+    if %16 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.msl
index efdd3b1..8f16a37 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-sub-sub/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,83 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %b:ptr<function, bool, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %a:ptr<function, f32, read_write> = var
+    store %b, false
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %x_7:i32 = let %6
+        %8:bool = gt %x_7, 0i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %9:i32 = load %i
+        %x_8:i32 = let %9
+        %11:f32 = convert %x_8
+        %12:f32 = sub 3.0f, %11
+        store %a, %12
+        %13:f32 = load %a
+        %x_40:f32 = let %13
+        %15:f32 = sub 2.0f, %x_40
+        %16:bool = eq %15, 0.0f
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %b, true
+            exit_if  # if_2
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %17:i32 = load %i
+        %x_9:i32 = let %17
+        %19:i32 = sub %x_9, 1i
+        store %i, %19
+        next_iteration  # -> $B3
+      }
+    }
+    %20:bool = load %b
+    %x_45:bool = let %20
+    if %x_45 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+      $B9: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.msl
index 260689d..6418107 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   five:i32 @offset(0)
 }
 
@@ -8,26 +8,26 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u
     %6:i32 = load %5
     store %i, %6
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:i32 = load %i
         %8:bool = gt %7, 0i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -37,20 +37,20 @@
         %11:i32 = load %i
         %12:i32 = sub %11, 1i
         store %i, %12
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     %13:i32 = load %i
     %14:bool = eq %13, -1i
-    if %14 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    if %14 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -58,8 +58,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func():main_out {
+  $B9: {
     %16:void = call %main_1
     %17:vec4<f32> = load %x_GLF_color
     %18:main_out = construct %17
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.msl
index 43ad1be..d26ab3b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-merge-var-sub/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   five:i32 @offset(0)
 }
 
@@ -8,49 +8,54 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_26:i32 = load %5
+    %6:i32 = load %5
+    %x_26:i32 = let %6
     store %i, %x_26
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_31:i32 = load %i
-        %8:bool = gt %x_31, 0i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %8:i32 = load %i
+        %x_31:i32 = let %8
+        %10:bool = gt %x_31, 0i
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_34:i32 = load %i
-        %10:i32 = sub %x_34, 1i
-        store %i, %10
-        %x_36:i32 = load %i
-        %12:i32 = sub %x_36, 1i
-        store %i, %12
-        continue %b4
+        %11:i32 = load %i
+        %x_34:i32 = let %11
+        %13:i32 = sub %x_34, 1i
+        store %i, %13
+        %14:i32 = load %i
+        %x_36:i32 = let %14
+        %16:i32 = sub %x_36, 1i
+        store %i, %16
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_38:i32 = load %i
-    %14:bool = eq %x_38, -1i
-    if %14 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    %17:i32 = load %i
+    %x_38:i32 = let %17
+    %19:bool = eq %x_38, -1i
+    if %19 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -58,12 +63,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.msl
index dc94ae1..9f6eba1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec3<f32>, read_write> = var
     %d:ptr<function, f32, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u
@@ -27,14 +27,14 @@
     store %d, %11
     %12:f32 = load %d
     %13:bool = lt %12, 0.10000000149011611938f
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %14:f32 = load_vector_element %v, 0u
         %15:vec4<f32> = construct %14, 0.0f, 0.0f, 1.0f
         store %x_GLF_color, %15
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -42,8 +42,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %17:void = call %main_1
     %18:vec4<f32> = load %x_GLF_color
     %19:main_out = construct %18
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.msl
index d6f6a24..601ba78 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-mix-uniform-weight/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,33 +8,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec3<f32>, read_write> = var
     %d:ptr<function, f32, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_36:f32 = load %6
-    %8:vec3<f32> = construct %x_36, %x_36, %x_36
-    %9:vec3<f32> = mix vec3<f32>(5.0f, 8.0f, -12.19999980926513671875f), vec3<f32>(1.0f, 4.90000009536743164062f, -2.09999990463256835938f), %8
-    store %v, %9
-    %x_39:vec3<f32> = load %v
-    %11:f32 = distance %x_39, vec3<f32>(1.0f, 4.90000009536743164062f, -2.09999990463256835938f)
-    store %d, %11
-    %x_41:f32 = load %d
-    %13:bool = lt %x_41, 0.10000000149011611938f
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_47:f32 = load_vector_element %v, 0u
-        %15:vec4<f32> = construct %x_47, 0.0f, 0.0f, 1.0f
-        store %x_GLF_color, %15
+    %7:f32 = load %6
+    %x_36:f32 = let %7
+    %9:vec3<f32> = construct %x_36, %x_36, %x_36
+    %10:vec3<f32> = mix vec3<f32>(5.0f, 8.0f, -12.19999980926513671875f), vec3<f32>(1.0f, 4.90000009536743164062f, -2.09999990463256835938f), %9
+    store %v, %10
+    %11:vec3<f32> = load %v
+    %x_39:vec3<f32> = let %11
+    %13:f32 = distance %x_39, vec3<f32>(1.0f, 4.90000009536743164062f, -2.09999990463256835938f)
+    store %d, %13
+    %14:f32 = load %d
+    %x_41:f32 = let %14
+    %16:bool = lt %x_41, 0.10000000149011611938f
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %17:f32 = load_vector_element %v, 0u
+        %x_47:f32 = let %17
+        %19:vec4<f32> = construct %x_47, 0.0f, 0.0f, 1.0f
+        store %x_GLF_color, %19
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -42,12 +46,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %17:void = call %main_1
-    %18:vec4<f32> = load %x_GLF_color
-    %19:main_out = construct %18
-    ret %19
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.msl
index d3e8ffe..21a6e3a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   four:i32 @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
     %5:i32 = load %4
-    %6:i32 = div %5, 2i
-    %7:i32 = negation %6
-    %8:bool = eq %7, -2i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:i32 = call %tint_div_i32, %5, 2i
+    %8:i32 = negation %6
+    %9:bool = eq %8, -2i
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +33,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %16:bool = eq %rhs, 0i
+    %17:bool = eq %lhs, -2147483648i
+    %18:bool = eq %rhs, -1i
+    %19:bool = and %17, %18
+    %20:bool = or %16, %19
+    %21:i32 = select %rhs, 1i, %20
+    %22:i32 = div %lhs, %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.msl
index b7eac82..008ef01 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-div/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   four:i32 @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_6:i32 = load %4
-    %6:i32 = div %x_6, 2i
-    %7:i32 = negation %6
-    %8:bool = eq %7, -2i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:i32 = load %4
+    %x_6:i32 = let %5
+    %7:i32 = call %tint_div_i32, %x_6, 2i
+    %9:i32 = negation %7
+    %10:bool = eq %9, -2i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %17:bool = eq %rhs, 0i
+    %18:bool = eq %lhs, -2147483648i
+    %19:bool = eq %rhs, -1i
+    %20:bool = and %18, %19
+    %21:bool = or %17, %20
+    %22:i32 = select %rhs, 1i, %21
+    %23:i32 = div %lhs, %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.msl
index 6f91c16..3b1186d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u
     %6:i32 = load %5
@@ -23,12 +23,12 @@
     store %x, %8
     %9:i32 = load %x
     %10:bool = eq %9, -4i
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -36,8 +36,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %12:void = call %main_1
     %13:vec4<f32> = load %x_GLF_color
     %14:main_out = construct %13
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.msl
index 3264457..4e65344 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-negate-sub/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,27 +8,29 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_26:i32 = load %5
-    %7:i32 = sub 5i, %x_26
-    %8:i32 = negation %7
-    store %x, %8
-    %x_29:i32 = load %x
-    %10:bool = eq %x_29, -4i
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:i32 = load %5
+    %x_26:i32 = let %6
+    %8:i32 = sub 5i, %x_26
+    %9:i32 = negation %8
+    store %x, %9
+    %10:i32 = load %x
+    %x_29:i32 = let %10
+    %12:bool = eq %x_29, -4i
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -36,12 +38,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %12:void = call %main_1
-    %13:vec4<f32> = load %x_GLF_color
-    %14:main_out = construct %13
-    ret %14
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %14:void = call %main_1
+    %15:vec4<f32> = load %x_GLF_color
+    %16:main_out = construct %15
+    ret %16
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.msl
index 42697ad..b69a1fc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
     %5:vec2<f32> = load %4
     %6:vec2<f32> = mix %5, vec2<f32>(1.0f), vec2<f32>(0.0f)
     %7:vec2<bool> = eq %6, vec2<f32>(0.0f, 1.0f)
     %8:bool = all %7
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,8 +33,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %10:void = call %main_1
     %11:vec4<f32> = load %x_GLF_color
     %12:main_out = construct %11
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.msl
index 9d62bb2..d2a614f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-redundant-mix/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_27:vec2<f32> = load %4
-    %6:vec2<f32> = mix %x_27, vec2<f32>(1.0f), vec2<f32>(0.0f)
-    %7:vec2<bool> = eq %6, vec2<f32>(0.0f, 1.0f)
-    %8:bool = all %7
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:vec2<f32> = load %4
+    %x_27:vec2<f32> = let %5
+    %7:vec2<f32> = mix %x_27, vec2<f32>(1.0f), vec2<f32>(0.0f)
+    %8:vec2<bool> = eq %7, vec2<f32>(0.0f, 1.0f)
+    %9:bool = all %8
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.msl
index a8eb2fa..2d8052a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
     %5:vec2<f32> = load %4
     %6:vec2<f32> = select %5, vec2<f32>(1.0f), vec2<bool>(false)
     %7:f32 = access %6, 0u
     %8:bool = eq %7, 0.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,8 +33,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %10:void = call %main_1
     %11:vec4<f32> = load %x_GLF_color
     %12:main_out = construct %11
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.msl
index 38c1cab..54e7da0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-extract/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_29:vec2<f32> = load %4
-    %6:vec2<f32> = select %x_29, vec2<f32>(1.0f), vec2<bool>(false)
-    %7:f32 = access %6, 0u
-    %8:bool = eq %7, 0.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:vec2<f32> = load %4
+    %x_29:vec2<f32> = let %5
+    %7:vec2<f32> = select %x_29, vec2<f32>(1.0f), vec2<bool>(false)
+    %8:f32 = access %7, 0u
+    %9:bool = eq %8, 0.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.msl
index 719a012..01b399b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   threeandfour:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     store %v, vec4<f32>(2.0f, 3.0f, 4.0f, 5.0f)
     %5:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
@@ -29,12 +29,12 @@
     %13:vec4<f32> = load %v
     %14:vec4<bool> = eq %13, vec4<f32>(1.0f, 6.0f, 4.0f, 5.0f)
     %15:bool = all %14
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -42,8 +42,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %17:void = call %main_1
     %18:vec4<f32> = load %x_GLF_color
     %19:main_out = construct %18
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.msl
index 7545fce..a7d5cfc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-shuffle-mix/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   threeandfour:vec2<f32> @offset(0)
 }
 
@@ -8,35 +8,39 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     store %v, vec4<f32>(2.0f, 3.0f, 4.0f, 5.0f)
     %5:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_40:f32 = load_vector_element %5, 1u
-    %7:vec2<f32> = construct 1.0f, %x_40
-    %x_42:vec2<f32> = select vec2<f32>(2.0f, 6.0f), %7, vec2<bool>(true, false)
-    %x_43:vec4<f32> = load %v
-    %10:f32 = access %x_42, 0u
-    %11:f32 = access %x_42, 1u
-    %12:f32 = access %x_43, 2u
-    %13:f32 = access %x_43, 3u
-    %14:vec4<f32> = construct %10, %11, %12, %13
-    store %v, %14
-    %x_45:vec4<f32> = load %v
-    %16:vec4<bool> = eq %x_45, vec4<f32>(1.0f, 6.0f, 4.0f, 5.0f)
-    %17:bool = all %16
-    if %17 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load_vector_element %5, 1u
+    %x_40:f32 = let %6
+    %8:vec2<f32> = construct 1.0f, %x_40
+    %9:vec2<f32> = select vec2<f32>(2.0f, 6.0f), %8, vec2<bool>(true, false)
+    %x_42:vec2<f32> = let %9
+    %11:vec4<f32> = load %v
+    %x_43:vec4<f32> = let %11
+    %13:f32 = access %x_42, 0u
+    %14:f32 = access %x_42, 1u
+    %15:f32 = access %x_43, 2u
+    %16:f32 = access %x_43, 3u
+    %17:vec4<f32> = construct %13, %14, %15, %16
+    store %v, %17
+    %18:vec4<f32> = load %v
+    %x_45:vec4<f32> = let %18
+    %20:vec4<bool> = eq %x_45, vec4<f32>(1.0f, 6.0f, 4.0f, 5.0f)
+    %21:bool = all %20
+    if %21 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -44,12 +48,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.msl
index 94e248c..52366d8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,50 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %v:ptr<function, vec4<f32>, read_write> = var
+    %4:vec4<f32> = load %v
+    %5:vec2<f32> = swizzle %4, zw
+    %6:vec4<f32> = construct vec2<f32>(1.0f), %5
+    store %v, %6
+    %7:vec4<f32> = load %v
+    %8:vec2<f32> = swizzle %7, xy
+    %9:vec4<f32> = construct %8, vec2<f32>(2.0f)
+    store %v, %9
+    %10:vec4<f32> = load %v
+    %11:vec4<bool> = eq %10, vec4<f32>(1.0f, 1.0f, 2.0f, 2.0f)
+    %12:bool = all %11
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %14:void = call %main_1
+    %15:vec4<f32> = load %x_GLF_color
+    %16:main_out = construct %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.msl
index 28251dc..de748c6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-split-vector-init/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %v:ptr<function, vec4<f32>, read_write> = var
+    %4:vec4<f32> = load %v
+    %x_23:vec4<f32> = let %4
+    %6:f32 = access %x_23, 2u
+    %7:f32 = access %x_23, 3u
+    %8:vec4<f32> = construct 1.0f, 1.0f, %6, %7
+    store %v, %8
+    %9:vec4<f32> = load %v
+    %x_25:vec4<f32> = let %9
+    %11:f32 = access %x_25, 0u
+    %12:f32 = access %x_25, 1u
+    %13:vec4<f32> = construct %11, %12, 2.0f, 2.0f
+    store %v, %13
+    %14:vec4<f32> = load %v
+    %x_27:vec4<f32> = let %14
+    %16:vec4<bool> = eq %x_27, vec4<f32>(1.0f, 1.0f, 2.0f, 2.0f)
+    %17:bool = all %16
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.msl
index d52d40d..56f034c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   zeroOne:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %d:ptr<function, f32, read_write> = var
     %6:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
@@ -26,8 +26,8 @@
     store %d, %10
     %11:f32 = load %d
     %12:bool = lt %11, 0.10000000149011611938f
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %13:f32 = load_vector_element %v, 0u
         %14:f32 = sub %13, 1.0f
         %15:f32 = load_vector_element %v, 1u
@@ -36,7 +36,7 @@
         store %x_GLF_color, %17
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -44,8 +44,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %19:void = call %main_1
     %20:vec4<f32> = load %x_GLF_color
     %21:main_out = construct %20
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.msl
index c996cb9..a74ee08 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-folding-rules-vec-mix-uniform/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   zeroOne:vec2<f32> @offset(0)
 }
 
@@ -8,35 +8,40 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %d:ptr<function, f32, read_write> = var
     %6:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_37:vec2<f32> = load %6
-    %8:vec2<f32> = mix vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), %x_37
-    store %v, %8
-    %x_39:vec2<f32> = load %v
-    %10:f32 = distance %x_39, vec2<f32>(2.0f, 5.0f)
-    store %d, %10
-    %x_41:f32 = load %d
-    %12:bool = lt %x_41, 0.10000000149011611938f
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_47:f32 = load_vector_element %v, 0u
-        %x_50:f32 = load_vector_element %v, 1u
-        %15:f32 = sub %x_47, 1.0f
-        %16:f32 = sub %x_50, 5.0f
-        %17:vec4<f32> = construct %15, %16, 0.0f, 1.0f
-        store %x_GLF_color, %17
+    %7:vec2<f32> = load %6
+    %x_37:vec2<f32> = let %7
+    %9:vec2<f32> = mix vec2<f32>(2.0f, 3.0f), vec2<f32>(4.0f, 5.0f), %x_37
+    store %v, %9
+    %10:vec2<f32> = load %v
+    %x_39:vec2<f32> = let %10
+    %12:f32 = distance %x_39, vec2<f32>(2.0f, 5.0f)
+    store %d, %12
+    %13:f32 = load %d
+    %x_41:f32 = let %13
+    %15:bool = lt %x_41, 0.10000000149011611938f
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %16:f32 = load_vector_element %v, 0u
+        %x_47:f32 = let %16
+        %18:f32 = load_vector_element %v, 1u
+        %x_50:f32 = let %18
+        %20:f32 = sub %x_47, 1.0f
+        %21:f32 = sub %x_50, 5.0f
+        %22:vec4<f32> = construct %20, %21, 0.0f, 1.0f
+        store %x_GLF_color, %22
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -44,12 +49,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.msl
index 347342e..bafcd62 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,79 +12,99 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, array<i32, 2>, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %7:i32 = load %6
     store %i, %7
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:i32 = load %i
         %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %10:i32 = load %9
         %11:bool = lt %8, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %13:i32 = load %12
-        %14:i32 = load %i
-        %15:vec2<i32> = construct %14
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %17:i32 = load %16
-        %18:vec2<i32> = construct 3i, %17
-        %19:vec2<i32> = mod %15, %18
-        %20:i32 = access %19, 1u
-        %21:array<i32, 2> = construct %13, %20
-        store %a, %21
-        continue %b4
+        %14:i32 = let %13
+        %15:i32 = load %i
+        %16:vec2<i32> = construct %15
+        %17:vec2<i32> = let %16
+        %18:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %19:i32 = load %18
+        %20:vec2<i32> = construct 3i, %19
+        %21:vec2<i32> = call %tint_mod_v2i32, %17, %20
+        %23:i32 = access %21, 1u
+        %24:array<i32, 2> = construct %14, %23
+        store %a, %24
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %22:i32 = load %i
-        %23:i32 = add %22, 1i
-        store %i, %23
-        next_iteration %b3
+      $B4: {  # continuing
+        %25:i32 = load %i
+        %26:i32 = add %25, 1i
+        store %i, %26
+        next_iteration  # -> $B3
       }
     }
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %25:i32 = load %24
-    %26:ptr<function, i32, read_write> = access %a, %25
-    %27:i32 = load %26
-    %28:f32 = convert %27
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %27:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %28:i32 = load %27
+    %29:ptr<function, i32, read_write> = access %a, %28
     %30:i32 = load %29
     %31:f32 = convert %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %33:i32 = load %32
-    %34:f32 = convert %33
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %36:i32 = load %35
-    %37:ptr<function, i32, read_write> = access %a, %36
+    %32:f32 = let %31
+    %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %34:i32 = load %33
+    %35:f32 = convert %34
+    %36:f32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %38:i32 = load %37
     %39:f32 = convert %38
-    %40:vec4<f32> = construct %28, %31, %34, %39
-    store %x_GLF_color, %40
+    %40:f32 = let %39
+    %41:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %42:i32 = load %41
+    %43:ptr<function, i32, read_write> = access %a, %42
+    %44:i32 = load %43
+    %45:f32 = convert %44
+    %46:vec4<f32> = construct %32, %36, %40, %45
+    store %x_GLF_color, %46
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
+  }
+}
+%tint_mod_v2i32 = func(%lhs:vec2<i32>, %rhs:vec2<i32>):vec2<i32> {
+  $B8: {
+    %53:vec2<bool> = eq %rhs, vec2<i32>(0i)
+    %54:vec2<bool> = eq %lhs, vec2<i32>(-2147483648i)
+    %55:vec2<bool> = eq %rhs, vec2<i32>(-1i)
+    %56:vec2<bool> = and %54, %55
+    %57:vec2<bool> = or %53, %56
+    %58:vec2<i32> = select %rhs, vec2<i32>(1i), %57
+    %59:vec2<i32> = let %58
+    %60:vec2<i32> = div %lhs, %59
+    %61:vec2<i32> = mul %60, %59
+    %62:vec2<i32> = sub %lhs, %61
+    ret %62
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.msl
index baf6744..da02580 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-array-initializing-modulo/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,79 +12,111 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, array<i32, 2>, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_32:i32 = load %6
+    %7:i32 = load %6
+    %x_32:i32 = let %7
     store %i, %x_32
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_37:i32 = load %i
-        %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_39:i32 = load %9
-        %11:bool = lt %x_37, %x_39
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_37:i32 = let %9
+        %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %12:i32 = load %11
+        %x_39:i32 = let %12
+        %14:bool = lt %x_37, %x_39
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_43:i32 = load %12
-        %x_44:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_46:i32 = load %15
-        %17:vec2<i32> = construct %x_44, %x_44
-        %18:vec2<i32> = construct 3i, %x_46
-        %19:vec2<i32> = mod %17, %18
-        %20:i32 = access %19, 1u
-        %21:array<i32, 2> = construct %x_43, %20
-        store %a, %21
-        continue %b4
+        %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %16:i32 = load %15
+        %x_43:i32 = let %16
+        %18:i32 = load %i
+        %x_44:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %21:i32 = load %20
+        %x_46:i32 = let %21
+        %23:vec2<i32> = construct %x_44, %x_44
+        %24:vec2<i32> = let %23
+        %25:vec2<i32> = construct 3i, %x_46
+        %26:vec2<i32> = call %tint_mod_v2i32, %24, %25
+        %28:i32 = access %26, 1u
+        %29:array<i32, 2> = construct %x_43, %28
+        store %a, %29
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_52:i32 = load %i
-        %23:i32 = add %x_52, 1i
-        store %i, %23
-        next_iteration %b3
+      $B4: {  # continuing
+        %30:i32 = load %i
+        %x_52:i32 = let %30
+        %32:i32 = add %x_52, 1i
+        store %i, %32
+        next_iteration  # -> $B3
       }
     }
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_55:i32 = load %24
-    %26:ptr<function, i32, read_write> = access %a, %x_55
-    %x_57:i32 = load %26
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_60:i32 = load %28
-    %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_63:i32 = load %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_66:i32 = load %32
-    %34:ptr<function, i32, read_write> = access %a, %x_66
-    %x_68:i32 = load %34
-    %36:f32 = convert %x_57
-    %37:f32 = convert %x_60
-    %38:f32 = convert %x_63
-    %39:f32 = convert %x_68
-    %40:vec4<f32> = construct %36, %37, %38, %39
-    store %x_GLF_color, %40
+    %33:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %34:i32 = load %33
+    %x_55:i32 = let %34
+    %36:ptr<function, i32, read_write> = access %a, %x_55
+    %37:i32 = load %36
+    %x_57:i32 = let %37
+    %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %40:i32 = load %39
+    %x_60:i32 = let %40
+    %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %43:i32 = load %42
+    %x_63:i32 = let %43
+    %45:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %46:i32 = load %45
+    %x_66:i32 = let %46
+    %48:ptr<function, i32, read_write> = access %a, %x_66
+    %49:i32 = load %48
+    %x_68:i32 = let %49
+    %51:f32 = convert %x_57
+    %52:f32 = let %51
+    %53:f32 = convert %x_60
+    %54:f32 = let %53
+    %55:f32 = convert %x_63
+    %56:f32 = let %55
+    %57:f32 = convert %x_68
+    %58:vec4<f32> = construct %52, %54, %56, %57
+    store %x_GLF_color, %58
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
+  }
+}
+%tint_mod_v2i32 = func(%lhs:vec2<i32>, %rhs:vec2<i32>):vec2<i32> {
+  $B8: {
+    %65:vec2<bool> = eq %rhs, vec2<i32>(0i)
+    %66:vec2<bool> = eq %lhs, vec2<i32>(-2147483648i)
+    %67:vec2<bool> = eq %rhs, vec2<i32>(-1i)
+    %68:vec2<bool> = and %66, %67
+    %69:vec2<bool> = or %65, %68
+    %70:vec2<i32> = select %rhs, vec2<i32>(1i), %69
+    %71:vec2<i32> = let %70
+    %72:vec2<i32> = div %lhs, %71
+    %73:vec2<i32> = mul %72, %71
+    %74:vec2<i32> = sub %lhs, %73
+    ret %74
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.msl
index 3474e2a..3731cb6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<f32, 3>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
@@ -39,82 +39,87 @@
     %13:array<f32, 3> = construct %8, %10, %12
     store %arr, %13
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %14:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %16:i32 = load %15
-        %17:i32 = min %16, 3i
-        %18:bool = lt %14, %17
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %15:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %17:i32 = load %16
+        %18:i32 = min %17, 3i
+        %19:bool = lt %15, %18
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %19:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_53:i32 = load %19
-        %21:ptr<function, f32, read_write> = access %arr, %x_53
-        %22:ptr<function, f32, read_write> = access %arr, %x_53
-        %23:f32 = load %22
-        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %20:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %21:i32 = load %20
+        %x_53:i32 = let %21
+        %23:ptr<function, f32, read_write> = access %arr, %x_53
+        %24:ptr<function, f32, read_write> = access %arr, %x_53
         %25:f32 = load %24
-        %26:f32 = add %23, %25
-        store %21, %26
-        continue %b4
+        %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %27:f32 = load %26
+        %28:f32 = add %25, %27
+        store %23, %28
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %27:i32 = load %i
-        %28:i32 = add %27, 1i
-        store %i, %28
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %i
+        %30:i32 = add %29, 1i
+        store %i, %30
+        next_iteration  # -> $B3
       }
     }
-    %29:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-    %30:i32 = load %29
-    %31:ptr<function, f32, read_write> = access %arr, %30
-    %32:f32 = load %31
-    %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %31:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+    %32:i32 = load %31
+    %33:ptr<function, f32, read_write> = access %arr, %32
     %34:f32 = load %33
-    %35:bool = eq %32, %34
-    if %35 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
+    %35:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %36:f32 = load %35
+    %37:bool = eq %34, %36
+    if %37 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %38:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %39:i32 = load %38
+        %40:f32 = convert %39
+        %41:f32 = let %40
         %42:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %43:i32 = load %42
         %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:vec4<f32> = construct %38, %41, %44, %47
-        store %x_GLF_color, %48
+        %45:f32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %47:i32 = load %46
+        %48:f32 = convert %47
+        %49:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %51:i32 = load %50
+        %52:f32 = convert %51
+        %53:vec4<f32> = construct %41, %45, %49, %52
+        store %x_GLF_color, %53
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %50:i32 = load %49
-        %51:f32 = convert %50
-        %52:vec4<f32> = construct %51
-        store %x_GLF_color, %52
+      $B8: {  # false
+        %54:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:vec4<f32> = construct %56
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.msl
index 9f6d8c7..7a09e81 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-loop-min-increment-array-element/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,101 +20,122 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<f32, 3>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %7
-    %9:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_38:f32 = load %9
-    %11:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_40:f32 = load %11
-    %13:array<f32, 3> = construct %x_36, %x_38, %x_40
-    store %arr, %13
+    %8:f32 = load %7
+    %x_36:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %11:f32 = load %10
+    %x_38:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %14:f32 = load %13
+    %x_40:f32 = let %14
+    %16:array<f32, 3> = construct %x_36, %x_38, %x_40
+    store %arr, %16
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_46:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_48:i32 = load %15
-        %17:i32 = min %x_48, 3i
-        %18:bool = lt %x_46, %17
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %i
+        %x_46:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %20:i32 = load %19
+        %x_48:i32 = let %20
+        %22:i32 = min %x_48, 3i
+        %23:bool = lt %x_46, %22
+        if %23 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %19:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_53:i32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_55:f32 = load %21
-        %23:ptr<function, f32, read_write> = access %arr, %x_53
-        %x_57:f32 = load %23
-        %25:ptr<function, f32, read_write> = access %arr, %x_53
-        %26:f32 = add %x_57, %x_55
-        store %25, %26
-        continue %b4
+        %24:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %25:i32 = load %24
+        %x_53:i32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %28:f32 = load %27
+        %x_55:f32 = let %28
+        %30:ptr<function, f32, read_write> = access %arr, %x_53
+        %31:f32 = load %30
+        %x_57:f32 = let %31
+        %33:ptr<function, f32, read_write> = access %arr, %x_53
+        %34:f32 = add %x_57, %x_55
+        store %33, %34
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_60:i32 = load %i
-        %28:i32 = add %x_60, 1i
-        store %i, %28
-        next_iteration %b3
+      $B4: {  # continuing
+        %35:i32 = load %i
+        %x_60:i32 = let %35
+        %37:i32 = add %x_60, 1i
+        store %i, %37
+        next_iteration  # -> $B3
       }
     }
-    %29:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-    %x_63:i32 = load %29
-    %31:ptr<function, f32, read_write> = access %arr, %x_63
-    %x_65:f32 = load %31
-    %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_67:f32 = load %33
-    %35:bool = eq %x_65, %x_67
-    if %35 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_73:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_76:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_79:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_82:i32 = load %42
-        %44:f32 = convert %x_73
-        %45:f32 = convert %x_76
-        %46:f32 = convert %x_79
-        %47:f32 = convert %x_82
-        %48:vec4<f32> = construct %44, %45, %46, %47
-        store %x_GLF_color, %48
+    %38:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+    %39:i32 = load %38
+    %x_63:i32 = let %39
+    %41:ptr<function, f32, read_write> = access %arr, %x_63
+    %42:f32 = load %41
+    %x_65:f32 = let %42
+    %44:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %45:f32 = load %44
+    %x_67:f32 = let %45
+    %47:bool = eq %x_65, %x_67
+    if %47 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %48:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %49:i32 = load %48
+        %x_73:i32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %52:i32 = load %51
+        %x_76:i32 = let %52
+        %54:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %55:i32 = load %54
+        %x_79:i32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %58:i32 = load %57
+        %x_82:i32 = let %58
+        %60:f32 = convert %x_73
+        %61:f32 = let %60
+        %62:f32 = convert %x_76
+        %63:f32 = let %62
+        %64:f32 = convert %x_79
+        %65:f32 = let %64
+        %66:f32 = convert %x_82
+        %67:vec4<f32> = construct %61, %63, %65, %66
+        store %x_GLF_color, %67
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_86:i32 = load %49
-        %x_87:f32 = convert %x_86
-        %52:vec4<f32> = construct %x_87, %x_87, %x_87, %x_87
-        store %x_GLF_color, %52
+      $B8: {  # false
+        %68:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %69:i32 = load %68
+        %x_86:i32 = let %69
+        %71:f32 = convert %x_86
+        %x_87:f32 = let %71
+        %73:vec4<f32> = construct %x_87, %x_87, %x_87, %x_87
+        store %x_GLF_color, %73
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %75:void = call %main_1
+    %76:vec4<f32> = load %x_GLF_color
+    %77:main_out = construct %76
+    ret %77
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.msl
index 18ec30f..6c938de 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
@@ -27,81 +27,85 @@
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %9:i32 = load %8
     store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %12:i32 = load %11
         %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_38:i32 = load %i
-        switch %x_38 [c: (0i -1i, %b7), c: (default, %b8)] {  # switch_1
-          %b7 = block {  # case
-            %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %16:i32 = load %15
-            store %a, %16
+        %14:i32 = load %i
+        %x_38:i32 = let %14
+        switch %x_38 [c: (0i -1i, $B7), c: (default, $B8)] {  # switch_1
+          $B7: {  # case
+            %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %17:i32 = load %16
+            store %a, %17
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
+          $B8: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %17:i32 = load %i
-        %18:i32 = add %17, 1i
-        store %i, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %18:i32 = load %i
+        %19:i32 = add %18, 1i
+        store %i, %19
+        next_iteration  # -> $B3
       }
     }
-    %19:i32 = load %a
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %21:i32 = load %20
-    %22:bool = eq %19, %21
-    if %22 [t: %b9, f: %b10] {  # if_2
-      %b9 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %20:i32 = load %a
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %22:i32 = load %21
+    %23:bool = eq %20, %22
+    if %23 [t: $B9, f: $B10] {  # if_2
+      $B9: {  # true
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %33:i32 = load %32
         %34:f32 = convert %33
-        %35:vec4<f32> = construct %25, %28, %31, %34
-        store %x_GLF_color, %35
-        exit_if  # if_2
-      }
-      %b10 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %38
+        %39:vec4<f32> = construct %27, %31, %35, %38
         store %x_GLF_color, %39
         exit_if  # if_2
       }
+      $B10: {  # false
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %42
+        store %x_GLF_color, %43
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.msl
index 9c18d5c..b100cf2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-for-switch-fallthrough/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,96 +12,114 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_26:i32 = load %6
+    %7:i32 = load %6
+    %x_26:i32 = let %7
     store %a, %x_26
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_28:i32 = load %8
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %10:i32 = load %9
+    %x_28:i32 = let %10
     store %i, %x_28
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_33:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_35:i32 = load %11
-        %13:bool = lt %x_33, %x_35
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_33:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_35:i32 = let %15
+        %17:bool = lt %x_33, %x_35
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_38:i32 = load %i
-        switch %x_38 [c: (0i -1i, %b7), c: (default, %b8)] {  # switch_1
-          %b7 = block {  # case
-            %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_42:i32 = load %15
+        %18:i32 = load %i
+        %x_38:i32 = let %18
+        switch %x_38 [c: (0i -1i, $B7), c: (default, $B8)] {  # switch_1
+          $B7: {  # case
+            %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %21:i32 = load %20
+            %x_42:i32 = let %21
             store %a, %x_42
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
+          $B8: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_43:i32 = load %i
-        %18:i32 = add %x_43, 1i
-        store %i, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %23:i32 = load %i
+        %x_43:i32 = let %23
+        %25:i32 = add %x_43, 1i
+        store %i, %25
+        next_iteration  # -> $B3
       }
     }
-    %x_45:i32 = load %a
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_47:i32 = load %20
-    %22:bool = eq %x_45, %x_47
-    if %22 [t: %b9, f: %b10] {  # if_2
-      %b9 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_53:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_56:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_59:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:i32 = load %29
-        %31:f32 = convert %x_53
-        %32:f32 = convert %x_56
-        %33:f32 = convert %x_59
-        %34:f32 = convert %x_62
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_GLF_color, %35
+    %26:i32 = load %a
+    %x_45:i32 = let %26
+    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %29:i32 = load %28
+    %x_47:i32 = let %29
+    %31:bool = eq %x_45, %x_47
+    if %31 [t: $B9, f: $B10] {  # if_2
+      $B9: {  # true
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_53:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %36:i32 = load %35
+        %x_56:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %39:i32 = load %38
+        %x_59:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_62:i32 = let %42
+        %44:f32 = convert %x_53
+        %45:f32 = let %44
+        %46:f32 = convert %x_56
+        %47:f32 = let %46
+        %48:f32 = convert %x_59
+        %49:f32 = let %48
+        %50:f32 = convert %x_62
+        %51:vec4<f32> = construct %45, %47, %49, %50
+        store %x_GLF_color, %51
         exit_if  # if_2
       }
-      %b10 = block {  # false
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_66:i32 = load %36
-        %x_67:f32 = convert %x_66
-        %39:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
-        store %x_GLF_color, %39
+      $B10: {  # false
+        %52:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %53:i32 = load %52
+        %x_66:i32 = let %53
+        %55:f32 = convert %x_66
+        %x_67:f32 = let %55
+        %57:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.msl
index b894ac0..2a56e0c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f0:ptr<function, f32, read_write> = var
     %f1:ptr<function, f32, read_write> = var
     store %f0, 1.0f
@@ -39,41 +39,44 @@
     %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
     %12:f32 = load %11
     %13:bool = gt %10, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %14:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %15:i32 = load %14
         %16:f32 = convert %15
-        %17:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:vec4<f32> = construct %16, %19, %22, %25
-        store %x_GLF_color, %26
+        %17:f32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %19:i32 = load %18
+        %20:f32 = convert %19
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %23:i32 = load %22
+        %24:f32 = convert %23
+        %25:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:vec4<f32> = construct %17, %21, %25, %28
+        store %x_GLF_color, %29
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %27:f32 = load %f1
-        %28:vec4<f32> = construct %27
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %30:f32 = load %f1
+        %31:vec4<f32> = construct %30
+        store %x_GLF_color, %31
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %31:void = call %main_1
-    %32:vec4<f32> = load %x_GLF_color
-    %33:main_out = construct %32
-    ret %33
+    %34:void = call %main_1
+    %35:vec4<f32> = load %x_GLF_color
+    %36:main_out = construct %35
+    ret %36
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.msl
index 35b26df..666da3c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-asin-undefined-never-used/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,60 +20,71 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f0:ptr<function, f32, read_write> = var
     %f1:ptr<function, f32, read_write> = var
     store %f0, 1.0f
-    %x_35:f32 = load %f0
-    %9:f32 = fract %x_35
-    store %f1, %9
-    %x_38:f32 = load_vector_element %gl_FragCoord, 0u
-    %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_40:f32 = load %11
-    %13:bool = gt %x_38, %x_40
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %14:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_46:i32 = load %14
-        %16:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_49:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_52:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_55:i32 = load %20
-        %22:f32 = convert %x_46
-        %23:f32 = convert %x_49
-        %24:f32 = convert %x_52
-        %25:f32 = convert %x_55
-        %26:vec4<f32> = construct %22, %23, %24, %25
-        store %x_GLF_color, %26
+    %8:f32 = load %f0
+    %x_35:f32 = let %8
+    %10:f32 = fract %x_35
+    store %f1, %10
+    %11:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_38:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %14:f32 = load %13
+    %x_40:f32 = let %14
+    %16:bool = gt %x_38, %x_40
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %17:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %18:i32 = load %17
+        %x_46:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %21:i32 = load %20
+        %x_49:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_52:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %27:i32 = load %26
+        %x_55:i32 = let %27
+        %29:f32 = convert %x_46
+        %30:f32 = let %29
+        %31:f32 = convert %x_49
+        %32:f32 = let %31
+        %33:f32 = convert %x_52
+        %34:f32 = let %33
+        %35:f32 = convert %x_55
+        %36:vec4<f32> = construct %30, %32, %34, %35
+        store %x_GLF_color, %36
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_58:f32 = load %f1
-        %28:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %37:f32 = load %f1
+        %x_58:f32 = let %37
+        %39:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+        store %x_GLF_color, %39
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %31:void = call %main_1
-    %32:vec4<f32> = load %x_GLF_color
-    %33:main_out = construct %32
-    ret %33
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.msl
index 03001f0..5cc82ae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec2<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
@@ -44,48 +44,49 @@
     %23:vec4<f32> = construct %18, %19, %20, %22
     store %x_GLF_color, %23
     %24:f32 = load_vector_element %b, 0u
-    %x_46:bool = lt %24, 1.0f
+    %25:bool = lt %24, 1.0f
+    %x_46:bool = let %25
     store %x_52, %x_46
-    if %x_46 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %26:f32 = load_vector_element %b, 1u
-        %27:bool = lt %26, 1.0f
-        store %x_51, %27
-        %28:bool = load %x_51
-        store %x_52, %28
+    if %x_46 [t: $B3] {  # if_1
+      $B3: {  # true
+        %27:f32 = load_vector_element %b, 1u
+        %28:bool = lt %27, 1.0f
+        store %x_51, %28
+        %29:bool = load %x_51
+        store %x_52, %29
         exit_if  # if_1
       }
     }
-    %29:bool = load %x_52
-    if %29 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %31:f32 = load %30
-        %32:f32 = load_vector_element %b, 0u
-        %33:f32 = load_vector_element %b, 1u
-        %34:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %35:f32 = load %34
-        %36:vec4<f32> = construct %31, %32, %33, %35
-        store %x_GLF_color, %36
+    %30:bool = load %x_52
+    if %30 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %31:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %32:f32 = load %31
+        %33:f32 = load_vector_element %b, 0u
+        %34:f32 = load_vector_element %b, 1u
+        %35:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %36:f32 = load %35
+        %37:vec4<f32> = construct %32, %33, %34, %36
+        store %x_GLF_color, %37
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %38:f32 = load %37
-        %39:vec4<f32> = construct %38
-        store %x_GLF_color, %39
+      $B5: {  # false
+        %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %39:f32 = load %38
+        %40:vec4<f32> = construct %39
+        store %x_GLF_color, %40
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.msl
index 17f3355..fbb13dd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fract-smoothstep-undefined/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,80 +12,96 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec2<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %x_51:ptr<function, bool, read_write> = var
     %x_52_phi:ptr<function, bool, read_write> = var
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_30:f32 = load %9
-    %11:vec2<f32> = construct %x_30, %x_30
-    store %v1, %11
-    %x_32:vec2<f32> = load %v1
-    %13:vec2<f32> = fract %x_32
-    store %b, %13
-    %x_34:vec2<f32> = load %b
-    %15:vec2<f32> = smoothstep vec2<f32>(1.0f), vec2<f32>(1.0f), %x_34
-    %16:f32 = access %15, 0u
-    store %a, %16
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:f32 = load %17
-    %x_39:f32 = load %a
-    %x_40:f32 = load %a
-    %21:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_42:f32 = load %21
-    %23:vec4<f32> = construct %x_38, %x_39, %x_40, %x_42
-    store %x_GLF_color, %23
-    %x_45:f32 = load_vector_element %b, 0u
-    %x_46:bool = lt %x_45, 1.0f
+    %10:f32 = load %9
+    %x_30:f32 = let %10
+    %12:vec2<f32> = construct %x_30, %x_30
+    store %v1, %12
+    %13:vec2<f32> = load %v1
+    %x_32:vec2<f32> = let %13
+    %15:vec2<f32> = fract %x_32
+    store %b, %15
+    %16:vec2<f32> = load %b
+    %x_34:vec2<f32> = let %16
+    %18:vec2<f32> = smoothstep vec2<f32>(1.0f), vec2<f32>(1.0f), %x_34
+    %19:f32 = access %18, 0u
+    store %a, %19
+    %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %21:f32 = load %20
+    %x_38:f32 = let %21
+    %23:f32 = load %a
+    %x_39:f32 = let %23
+    %25:f32 = load %a
+    %x_40:f32 = let %25
+    %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %28:f32 = load %27
+    %x_42:f32 = let %28
+    %30:vec4<f32> = construct %x_38, %x_39, %x_40, %x_42
+    store %x_GLF_color, %30
+    %31:f32 = load_vector_element %b, 0u
+    %x_45:f32 = let %31
+    %33:bool = lt %x_45, 1.0f
+    %x_46:bool = let %33
     store %x_52_phi, %x_46
-    if %x_46 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_50:f32 = load_vector_element %b, 1u
-        %27:bool = lt %x_50, 1.0f
-        store %x_51, %27
-        %28:bool = load %x_51
-        store %x_52_phi, %28
+    if %x_46 [t: $B3] {  # if_1
+      $B3: {  # true
+        %35:f32 = load_vector_element %b, 1u
+        %x_50:f32 = let %35
+        %37:bool = lt %x_50, 1.0f
+        store %x_51, %37
+        %38:bool = load %x_51
+        store %x_52_phi, %38
         exit_if  # if_1
       }
     }
-    %x_52:bool = load %x_52_phi
-    if %x_52 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_57:f32 = load %30
-        %x_59:f32 = load_vector_element %b, 0u
-        %x_61:f32 = load_vector_element %b, 1u
-        %34:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_63:f32 = load %34
-        %36:vec4<f32> = construct %x_57, %x_59, %x_61, %x_63
-        store %x_GLF_color, %36
+    %39:bool = load %x_52_phi
+    %x_52:bool = let %39
+    if %x_52 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %41:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %42:f32 = load %41
+        %x_57:f32 = let %42
+        %44:f32 = load_vector_element %b, 0u
+        %x_59:f32 = let %44
+        %46:f32 = load_vector_element %b, 1u
+        %x_61:f32 = let %46
+        %48:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %49:f32 = load %48
+        %x_63:f32 = let %49
+        %51:vec4<f32> = construct %x_57, %x_59, %x_61, %x_63
+        store %x_GLF_color, %51
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_66:f32 = load %37
-        %39:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
-        store %x_GLF_color, %39
+      $B5: {  # false
+        %52:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %53:f32 = load %52
+        %x_66:f32 = let %53
+        %55:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
+        store %x_GLF_color, %55
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.msl
index f025ca1..7a08e3b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,70 +12,83 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %6:f32 = load_vector_element %gl_FragCoord, 0u
-    %7:i32 = convert %6
+    %7:i32 = call %tint_f32_to_i32, %6
     store %a, %7
-    %8:i32 = load %a
-    %9:i32 = complement %8
-    %10:bool = lt %9, 0i
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %12:i32 = load %11
-        store %a, %12
+    %9:i32 = load %a
+    %10:i32 = complement %9
+    %11:bool = lt %10, 0i
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %13:i32 = load %12
+        store %a, %13
         exit_if  # if_1
       }
     }
-    %13:i32 = load %a
-    %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %15:i32 = load %14
-    %16:bool = eq %13, %15
-    if %16 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %14:i32 = load %a
+    %15:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %16:i32 = load %15
+    %17:bool = eq %14, %16
+    if %17 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %19:i32 = load %18
+        %20:f32 = convert %19
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %23:i32 = load %22
+        %24:f32 = convert %23
+        %25:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %27:i32 = load %26
         %28:f32 = convert %27
-        %29:vec4<f32> = construct %19, %22, %25, %28
-        store %x_GLF_color, %29
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %31:i32 = load %30
         %32:f32 = convert %31
-        %33:vec4<f32> = construct %32
+        %33:vec4<f32> = construct %21, %25, %29, %32
         store %x_GLF_color, %33
         exit_if  # if_2
       }
+      $B5: {  # false
+        %34:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:vec4<f32> = construct %36
+        store %x_GLF_color, %37
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B7: {
+    %44:i32 = convert %value
+    %45:bool = gte %value, -2147483648.0f
+    %46:i32 = select -2147483648i, %44, %45
+    %47:bool = lte %value, 2147483520.0f
+    %48:i32 = select 2147483647i, %46, %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.msl
index 0735afa..05b3c84 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-bitwise-not/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,70 +12,94 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
-    %x_28:f32 = load_vector_element %gl_FragCoord, 0u
-    %7:i32 = convert %x_28
-    store %a, %7
-    %x_30:i32 = load %a
-    %9:i32 = complement %x_30
-    %10:bool = lt %9, 0i
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_36:i32 = load %11
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_28:f32 = let %6
+    %8:i32 = call %tint_f32_to_i32, %x_28
+    store %a, %8
+    %10:i32 = load %a
+    %x_30:i32 = let %10
+    %12:i32 = complement %x_30
+    %13:bool = lt %12, 0i
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %15:i32 = load %14
+        %x_36:i32 = let %15
         store %a, %x_36
         exit_if  # if_1
       }
     }
-    %x_37:i32 = load %a
-    %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_39:i32 = load %14
-    %16:bool = eq %x_37, %x_39
-    if %16 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_45:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_48:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_51:i32 = load %21
+    %17:i32 = load %a
+    %x_37:i32 = let %17
+    %19:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %20:i32 = load %19
+    %x_39:i32 = let %20
+    %22:bool = eq %x_37, %x_39
+    if %22 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         %23:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_54:i32 = load %23
-        %25:f32 = convert %x_45
-        %26:f32 = convert %x_48
-        %27:f32 = convert %x_51
-        %28:f32 = convert %x_54
-        %29:vec4<f32> = construct %25, %26, %27, %28
-        store %x_GLF_color, %29
+        %24:i32 = load %23
+        %x_45:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %27:i32 = load %26
+        %x_48:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_51:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_54:i32 = let %33
+        %35:f32 = convert %x_45
+        %36:f32 = let %35
+        %37:f32 = convert %x_48
+        %38:f32 = let %37
+        %39:f32 = convert %x_51
+        %40:f32 = let %39
+        %41:f32 = convert %x_54
+        %42:vec4<f32> = construct %36, %38, %40, %41
+        store %x_GLF_color, %42
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_58:i32 = load %30
-        %x_59:f32 = convert %x_58
-        %33:vec4<f32> = construct %x_59, %x_59, %x_59, %x_59
-        store %x_GLF_color, %33
+      $B5: {  # false
+        %43:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_58:i32 = let %44
+        %46:f32 = convert %x_58
+        %x_59:f32 = let %46
+        %48:vec4<f32> = construct %x_59, %x_59, %x_59, %x_59
+        store %x_GLF_color, %48
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B7: {
+    %55:i32 = convert %value
+    %56:bool = gte %value, -2147483648.0f
+    %57:i32 = select -2147483648i, %55, %56
+    %58:bool = lte %value, 2147483520.0f
+    %59:i32 = select 2147483647i, %57, %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.msl
index 6f27f8e..c15daf7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<vec4<f32>, 2>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %y:ptr<function, i32, read_write> = var
@@ -36,130 +36,155 @@
     %10:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %11:f32 = load %10
     %12:vec4<f32> = construct %11
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %14:f32 = load %13
-    %15:vec4<f32> = construct %14
-    %16:array<vec4<f32>, 2> = construct %12, %15
-    store %data, %16
-    %17:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %18:i32 = load %17
-    store %b, %18
-    %19:f32 = load_vector_element %gl_FragCoord, 1u
-    %20:i32 = convert %19
-    %21:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %22:i32 = load %21
-    %23:f32 = load_vector_element %gl_FragCoord, 1u
-    %24:i32 = convert %23
-    %25:i32 = or %22, %24
-    %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %27:i32 = load %26
-    %28:i32 = clamp %20, %25, %27
-    store %y, %28
-    %29:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %30:i32 = load %29
-    store %i, %30
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %13:vec4<f32> = let %12
+    %14:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %15:f32 = load %14
+    %16:vec4<f32> = construct %15
+    %17:array<vec4<f32>, 2> = construct %13, %16
+    store %data, %17
+    %18:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %19:i32 = load %18
+    store %b, %19
+    %20:f32 = load_vector_element %gl_FragCoord, 1u
+    %21:i32 = call %tint_f32_to_i32, %20
+    %23:i32 = let %21
+    %24:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %25:i32 = load %24
+    %26:i32 = let %25
+    %27:f32 = load_vector_element %gl_FragCoord, 1u
+    %28:i32 = call %tint_f32_to_i32, %27
+    %29:i32 = or %26, %28
+    %30:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %31:i32 = load %30
+    %32:i32 = let %31
+    %33:i32 = max %23, %29
+    %34:i32 = min %33, %32
+    store %y, %34
+    %35:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %36:i32 = load %35
+    store %i, %36
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_82:ptr<function, bool, read_write> = var
         %x_83:ptr<function, bool, read_write> = var
-        %33:i32 = load %i
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:bool = lt %33, %35
-        if %36 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %39:i32 = load %i
+        %40:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %41:i32 = load %40
+        %42:bool = lt %39, %41
+        if %42 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %37:i32 = load %b
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %39:i32 = load %38
-        %x_76:bool = gt %37, %39
+        %43:i32 = load %b
+        %44:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %45:i32 = load %44
+        %46:bool = gt %43, %45
+        %x_76:bool = let %46
         store %x_83, %x_76
-        if %x_76 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %41:i32 = load %y
-            %42:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-            %43:i32 = load %42
-            %44:bool = gt %41, %43
-            store %x_82, %44
-            %45:bool = load %x_82
-            store %x_83, %45
+        if %x_76 [t: $B7] {  # if_2
+          $B7: {  # true
+            %48:i32 = load %y
+            %49:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+            %50:i32 = load %49
+            %51:bool = gt %48, %50
+            store %x_82, %51
+            %52:bool = load %x_82
+            store %x_83, %52
             exit_if  # if_2
           }
         }
-        %46:bool = load %x_83
-        if %46 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %53:bool = load %x_83
+        if %53 [t: $B8] {  # if_3
+          $B8: {  # true
             exit_loop  # loop_1
           }
         }
-        %47:i32 = load %b
-        %48:i32 = add %47, 1i
-        store %b, %48
-        continue %b4
+        %54:i32 = load %b
+        %55:i32 = add %54, 1i
+        store %b, %55
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %49:i32 = load %i
-        %50:i32 = add %49, 1i
-        store %i, %50
-        next_iteration %b3
+      $B4: {  # continuing
+        %56:i32 = load %i
+        %57:i32 = add %56, 1i
+        store %i, %57
+        next_iteration  # -> $B3
       }
     }
-    %51:i32 = load %b
-    %52:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %53:i32 = load %52
-    %54:bool = eq %51, %53
-    if %54 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %55:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_97:i32 = load %55
-        %57:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_99:i32 = load %57
-        %59:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_101:i32 = load %59
-        %61:i32 = clamp %x_97, %x_99, %x_101
-        %62:ptr<function, vec4<f32>, read_write> = access %data, %61
-        %63:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %64:i32 = load %63
-        %65:f32 = convert %64
-        %66:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %67:i32 = load %66
-        %68:f32 = convert %67
-        %69:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %70:i32 = load %69
-        %71:f32 = convert %70
-        %72:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %73:i32 = load %72
-        %74:f32 = convert %73
-        %75:vec4<f32> = construct %65, %68, %71, %74
-        store %62, %75
+    %58:i32 = load %b
+    %59:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %60:i32 = load %59
+    %61:bool = eq %58, %60
+    if %61 [t: $B9] {  # if_4
+      $B9: {  # true
+        %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %63:i32 = load %62
+        %x_97:i32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %66:i32 = load %65
+        %x_99:i32 = let %66
+        %68:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %69:i32 = load %68
+        %x_101:i32 = let %69
+        %71:i32 = max %x_97, %x_99
+        %72:i32 = min %71, %x_101
+        %73:ptr<function, vec4<f32>, read_write> = access %data, %72
+        %74:ptr<function, vec4<f32>, read_write> = let %73
+        %75:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %76:i32 = load %75
+        %77:f32 = convert %76
+        %78:f32 = let %77
+        %79:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %80:i32 = load %79
+        %81:f32 = convert %80
+        %82:f32 = let %81
+        %83:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %84:i32 = load %83
+        %85:f32 = convert %84
+        %86:f32 = let %85
+        %87:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %88:i32 = load %87
+        %89:f32 = convert %88
+        %90:vec4<f32> = construct %78, %82, %86, %89
+        store %74, %90
         exit_if  # if_4
       }
     }
-    %76:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %77:i32 = load %76
-    %78:ptr<function, vec4<f32>, read_write> = access %data, %77
-    %x_120:vec4<f32> = load %78
-    %80:f32 = access %x_120, 0u
-    %81:f32 = access %x_120, 1u
-    %82:f32 = access %x_120, 2u
-    %83:f32 = access %x_120, 3u
-    %84:vec4<f32> = construct %80, %81, %82, %83
-    store %x_GLF_color, %84
+    %91:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %92:i32 = load %91
+    %93:ptr<function, vec4<f32>, read_write> = access %data, %92
+    %94:vec4<f32> = load %93
+    %x_120:vec4<f32> = let %94
+    %96:f32 = access %x_120, 0u
+    %97:f32 = access %x_120, 1u
+    %98:f32 = access %x_120, 2u
+    %99:f32 = access %x_120, 3u
+    %100:vec4<f32> = construct %96, %97, %98, %99
+    store %x_GLF_color, %100
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %103:void = call %main_1
+    %104:vec4<f32> = load %x_GLF_color
+    %105:main_out = construct %104
+    ret %105
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %107:i32 = convert %value
+    %108:bool = gte %value, -2147483648.0f
+    %109:i32 = select -2147483648i, %107, %108
+    %110:bool = lte %value, 2147483520.0f
+    %111:i32 = select 2147483647i, %109, %110
+    ret %111
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.msl
index 3141b06..8142215 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-clamp-array-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,146 +20,193 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<vec4<f32>, 2>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %y:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_42:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_45:f32 = load %12
-    %14:vec4<f32> = construct %x_42, %x_42, %x_42, %x_42
-    %15:vec4<f32> = construct %x_45, %x_45, %x_45, %x_45
-    %16:array<vec4<f32>, 2> = construct %14, %15
-    store %data, %16
-    %17:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_49:i32 = load %17
-    store %b, %x_49
-    %x_51:f32 = load_vector_element %gl_FragCoord, 1u
+    %11:f32 = load %10
+    %x_42:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %14:f32 = load %13
+    %x_45:f32 = let %14
+    %16:vec4<f32> = construct %x_42, %x_42, %x_42, %x_42
+    %17:vec4<f32> = let %16
+    %18:vec4<f32> = construct %x_45, %x_45, %x_45, %x_45
+    %19:array<vec4<f32>, 2> = construct %17, %18
+    store %data, %19
     %20:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_54:i32 = load %20
-    %x_56:f32 = load_vector_element %gl_FragCoord, 1u
-    %23:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_60:i32 = load %23
-    %25:i32 = convert %x_51
-    %26:i32 = convert %x_56
-    %27:i32 = or %x_54, %26
-    %28:i32 = clamp %25, %27, %x_60
-    store %y, %28
-    %29:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_63:i32 = load %29
+    %21:i32 = load %20
+    %x_49:i32 = let %21
+    store %b, %x_49
+    %23:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_51:f32 = let %23
+    %25:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %26:i32 = load %25
+    %x_54:i32 = let %26
+    %28:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_56:f32 = let %28
+    %30:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %31:i32 = load %30
+    %x_60:i32 = let %31
+    %33:i32 = call %tint_f32_to_i32, %x_51
+    %35:i32 = let %33
+    %36:i32 = call %tint_f32_to_i32, %x_56
+    %37:i32 = or %x_54, %36
+    %38:i32 = max %35, %37
+    %39:i32 = min %38, %x_60
+    store %y, %39
+    %40:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %41:i32 = load %40
+    %x_63:i32 = let %41
     store %i, %x_63
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_82:ptr<function, bool, read_write> = var
         %x_83_phi:ptr<function, bool, read_write> = var
-        %x_68:i32 = load %i
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_70:i32 = load %34
-        %36:bool = lt %x_68, %x_70
-        if %36 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %45:i32 = load %i
+        %x_68:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %48:i32 = load %47
+        %x_70:i32 = let %48
+        %50:bool = lt %x_68, %x_70
+        if %50 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_73:i32 = load %b
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_75:i32 = load %38
-        %x_76:bool = gt %x_73, %x_75
+        %51:i32 = load %b
+        %x_73:i32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %54:i32 = load %53
+        %x_75:i32 = let %54
+        %56:bool = gt %x_73, %x_75
+        %x_76:bool = let %56
         store %x_83_phi, %x_76
-        if %x_76 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_79:i32 = load %y
-            %42:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-            %x_81:i32 = load %42
-            %44:bool = gt %x_79, %x_81
-            store %x_82, %44
-            %45:bool = load %x_82
-            store %x_83_phi, %45
+        if %x_76 [t: $B7] {  # if_2
+          $B7: {  # true
+            %58:i32 = load %y
+            %x_79:i32 = let %58
+            %60:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+            %61:i32 = load %60
+            %x_81:i32 = let %61
+            %63:bool = gt %x_79, %x_81
+            store %x_82, %63
+            %64:bool = load %x_82
+            store %x_83_phi, %64
             exit_if  # if_2
           }
         }
-        %x_83:bool = load %x_83_phi
-        if %x_83 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %65:bool = load %x_83_phi
+        %x_83:bool = let %65
+        if %x_83 [t: $B8] {  # if_3
+          $B8: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_86:i32 = load %b
-        %48:i32 = add %x_86, 1i
-        store %b, %48
-        continue %b4
+        %67:i32 = load %b
+        %x_86:i32 = let %67
+        %69:i32 = add %x_86, 1i
+        store %b, %69
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_88:i32 = load %i
-        %50:i32 = add %x_88, 1i
-        store %i, %50
-        next_iteration %b3
+      $B4: {  # continuing
+        %70:i32 = load %i
+        %x_88:i32 = let %70
+        %72:i32 = add %x_88, 1i
+        store %i, %72
+        next_iteration  # -> $B3
       }
     }
-    %x_90:i32 = load %b
-    %52:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_92:i32 = load %52
-    %54:bool = eq %x_90, %x_92
-    if %54 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %55:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_97:i32 = load %55
-        %57:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_99:i32 = load %57
-        %59:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_101:i32 = load %59
-        %61:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_104:i32 = load %61
-        %63:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_107:i32 = load %63
-        %65:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_110:i32 = load %65
-        %67:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_113:i32 = load %67
-        %69:i32 = clamp %x_97, %x_99, %x_101
-        %70:ptr<function, vec4<f32>, read_write> = access %data, %69
-        %71:f32 = convert %x_104
-        %72:f32 = convert %x_107
-        %73:f32 = convert %x_110
-        %74:f32 = convert %x_113
-        %75:vec4<f32> = construct %71, %72, %73, %74
-        store %70, %75
+    %73:i32 = load %b
+    %x_90:i32 = let %73
+    %75:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %76:i32 = load %75
+    %x_92:i32 = let %76
+    %78:bool = eq %x_90, %x_92
+    if %78 [t: $B9] {  # if_4
+      $B9: {  # true
+        %79:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %80:i32 = load %79
+        %x_97:i32 = let %80
+        %82:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %83:i32 = load %82
+        %x_99:i32 = let %83
+        %85:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %86:i32 = load %85
+        %x_101:i32 = let %86
+        %88:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %89:i32 = load %88
+        %x_104:i32 = let %89
+        %91:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %92:i32 = load %91
+        %x_107:i32 = let %92
+        %94:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %95:i32 = load %94
+        %x_110:i32 = let %95
+        %97:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %98:i32 = load %97
+        %x_113:i32 = let %98
+        %100:i32 = max %x_97, %x_99
+        %101:i32 = min %100, %x_101
+        %102:ptr<function, vec4<f32>, read_write> = access %data, %101
+        %103:ptr<function, vec4<f32>, read_write> = let %102
+        %104:f32 = convert %x_104
+        %105:f32 = let %104
+        %106:f32 = convert %x_107
+        %107:f32 = let %106
+        %108:f32 = convert %x_110
+        %109:f32 = let %108
+        %110:f32 = convert %x_113
+        %111:vec4<f32> = construct %105, %107, %109, %110
+        store %103, %111
         exit_if  # if_4
       }
     }
-    %76:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_118:i32 = load %76
-    %78:ptr<function, vec4<f32>, read_write> = access %data, %x_118
-    %x_120:vec4<f32> = load %78
-    %80:f32 = access %x_120, 0u
-    %81:f32 = access %x_120, 1u
-    %82:f32 = access %x_120, 2u
-    %83:f32 = access %x_120, 3u
-    %84:vec4<f32> = construct %80, %81, %82, %83
-    store %x_GLF_color, %84
+    %112:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %113:i32 = load %112
+    %x_118:i32 = let %113
+    %115:ptr<function, vec4<f32>, read_write> = access %data, %x_118
+    %116:vec4<f32> = load %115
+    %x_120:vec4<f32> = let %116
+    %118:f32 = access %x_120, 0u
+    %119:f32 = access %x_120, 1u
+    %120:f32 = access %x_120, 2u
+    %121:f32 = access %x_120, 3u
+    %122:vec4<f32> = construct %118, %119, %120, %121
+    store %x_GLF_color, %122
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %125:void = call %main_1
+    %126:vec4<f32> = load %x_GLF_color
+    %127:main_out = construct %126
+    ret %127
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %129:i32 = convert %value
+    %130:bool = gte %value, -2147483648.0f
+    %131:i32 = select -2147483648i, %129, %130
+    %132:bool = lte %value, 2147483520.0f
+    %133:i32 = select 2147483647i, %131, %132
+    ret %133
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.msl
index a38aaab..c6a3ce3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %icoord:ptr<function, vec2<i32>, read_write> = var
     %x_40:ptr<function, f32, read_write> = var
     %icoord_1:ptr<function, vec2<i32>, read_write> = var
@@ -39,90 +39,107 @@
     %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %14:f32 = load %13
     %15:bool = gt %12, %14
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %16:vec4<f32> = load %gl_FragCoord
         %17:vec2<f32> = swizzle %16, xy
         %18:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
         %19:f32 = load %18
         %20:vec2<f32> = mul %17, %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %22:f32 = load %21
-        %23:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %24:f32 = load %23
-        %25:vec2<f32> = construct %22, %24
-        %26:vec2<f32> = sub %20, %25
-        %27:vec2<i32> = convert %26
-        store %icoord, %27
-        %28:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_65:f32 = load %28
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_67:f32 = load %30
-        %32:i32 = load_vector_element %icoord, 0u
-        %33:i32 = load_vector_element %icoord, 1u
-        %34:i32 = mul %32, %33
-        %35:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %36:i32 = load %35
-        %37:bool = neq %34, %36
-        if %37 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
-            %38:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-            %39:f32 = load %38
-            store %x_40, %39
+        %21:vec2<f32> = let %20
+        %22:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %23:f32 = load %22
+        %24:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %25:f32 = load %24
+        %26:vec2<f32> = construct %23, %25
+        %27:vec2<f32> = sub %21, %26
+        %28:vec2<i32> = call %tint_v2f32_to_v2i32, %27
+        store %icoord, %28
+        %30:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %31:f32 = load %30
+        %x_65:f32 = let %31
+        %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %34:f32 = load %33
+        %x_67:f32 = let %34
+        %36:i32 = load_vector_element %icoord, 0u
+        %37:i32 = load_vector_element %icoord, 1u
+        %38:i32 = mul %36, %37
+        %39:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %40:i32 = load %39
+        %41:bool = neq %38, %40
+        if %41 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
+            %42:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+            %43:f32 = load %42
+            store %x_40, %43
             exit_if  # if_2
           }
-          %b6 = block {  # false
-            %40:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-            %41:f32 = load %40
-            store %x_40, %41
+          $B6: {  # false
+            %44:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+            %45:f32 = load %44
+            store %x_40, %45
             exit_if  # if_2
           }
         }
-        %42:f32 = load %x_40
-        %43:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %44:i32 = load %43
-        %45:f32 = convert %44
-        %46:vec4<f32> = construct %x_65, %x_67, %42, %45
-        store %x_GLF_color, %46
+        %46:f32 = load %x_40
+        %47:f32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %49:i32 = load %48
+        %50:f32 = convert %49
+        %51:vec4<f32> = construct %x_65, %x_67, %47, %50
+        store %x_GLF_color, %51
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %47:vec4<f32> = load %gl_FragCoord
-        %48:vec2<f32> = swizzle %47, xy
-        %49:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %50:f32 = load %49
-        %51:vec2<f32> = mul %48, %50
-        %52:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %53:f32 = load %52
-        %54:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+      $B4: {  # false
+        %52:vec4<f32> = load %gl_FragCoord
+        %53:vec2<f32> = swizzle %52, xy
+        %54:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
         %55:f32 = load %54
-        %56:vec2<f32> = construct %53, %55
-        %57:vec2<f32> = sub %51, %56
-        %58:vec2<i32> = convert %57
-        store %icoord_1, %58
-        %59:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %60:f32 = load %59
-        %61:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %62:f32 = load %61
-        %63:i32 = load_vector_element %icoord_1, 0u
-        %64:f32 = convert %63
+        %56:vec2<f32> = mul %53, %55
+        %57:vec2<f32> = let %56
+        %58:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %59:f32 = load %58
+        %60:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %61:f32 = load %60
+        %62:vec2<f32> = construct %59, %61
+        %63:vec2<f32> = sub %57, %62
+        %64:vec2<i32> = call %tint_v2f32_to_v2i32, %63
+        store %icoord_1, %64
         %65:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
         %66:f32 = load %65
-        %67:vec4<f32> = construct %60, %62, %64, %66
-        store %x_GLF_color, %67
+        %67:f32 = let %66
+        %68:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %69:f32 = load %68
+        %70:f32 = let %69
+        %71:i32 = load_vector_element %icoord_1, 0u
+        %72:f32 = convert %71
+        %73:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %74:f32 = load %73
+        %75:vec4<f32> = construct %67, %70, %72, %74
+        store %x_GLF_color, %75
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %70:void = call %main_1
-    %71:vec4<f32> = load %x_GLF_color
-    %72:main_out = construct %71
-    ret %72
+    %78:void = call %main_1
+    %79:vec4<f32> = load %x_GLF_color
+    %80:main_out = construct %79
+    ret %80
+  }
+}
+%tint_v2f32_to_v2i32 = func(%value:vec2<f32>):vec2<i32> {
+  $B8: {
+    %82:vec2<i32> = convert %value
+    %83:vec2<bool> = gte %value, vec2<f32>(-2147483648.0f)
+    %84:vec2<i32> = select vec2<i32>(-2147483648i), %82, %83
+    %85:vec2<bool> = lte %value, vec2<f32>(2147483520.0f)
+    %86:vec2<i32> = select vec2<i32>(2147483647i), %84, %85
+    ret %86
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.msl
index a136ca7..466f330 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-fragcoord-multiply/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,113 +20,149 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %icoord:ptr<function, vec2<i32>, read_write> = var
     %x_40:ptr<function, f32, read_write> = var
     %icoord_1:ptr<function, vec2<i32>, read_write> = var
-    %x_42:f32 = load_vector_element %gl_FragCoord, 0u
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_44:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_47:f32 = load %12
-    %14:f32 = mul %x_42, %x_44
-    %15:bool = gt %14, %x_47
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_52:vec4<f32> = load %gl_FragCoord
-        %17:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_55:f32 = load %17
-        %19:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_58:f32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_60:f32 = load %21
-        %23:f32 = access %x_52, 0u
-        %24:f32 = access %x_52, 1u
-        %25:vec2<f32> = construct %23, %24
-        %26:vec2<f32> = mul %25, %x_55
-        %27:vec2<f32> = construct %x_58, %x_60
-        %28:vec2<f32> = sub %26, %27
-        %29:vec2<i32> = convert %28
-        store %icoord, %29
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_65:f32 = load %30
-        %32:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_67:f32 = load %32
-        %x_69:i32 = load_vector_element %icoord, 0u
-        %x_71:i32 = load_vector_element %icoord, 1u
-        %36:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_74:i32 = load %36
-        %38:i32 = mul %x_69, %x_71
-        %39:bool = neq %38, %x_74
-        if %39 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
-            %40:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-            %x_80:f32 = load %40
+    %9:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_42:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %12:f32 = load %11
+    %x_44:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %15:f32 = load %14
+    %x_47:f32 = let %15
+    %17:f32 = mul %x_42, %x_44
+    %18:bool = gt %17, %x_47
+    if %18 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %19:vec4<f32> = load %gl_FragCoord
+        %x_52:vec4<f32> = let %19
+        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %22:f32 = load %21
+        %x_55:f32 = let %22
+        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %25:f32 = load %24
+        %x_58:f32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %28:f32 = load %27
+        %x_60:f32 = let %28
+        %30:f32 = access %x_52, 0u
+        %31:f32 = access %x_52, 1u
+        %32:vec2<f32> = construct %30, %31
+        %33:vec2<f32> = mul %32, %x_55
+        %34:vec2<f32> = let %33
+        %35:vec2<f32> = construct %x_58, %x_60
+        %36:vec2<f32> = sub %34, %35
+        %37:vec2<i32> = call %tint_v2f32_to_v2i32, %36
+        store %icoord, %37
+        %39:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %40:f32 = load %39
+        %x_65:f32 = let %40
+        %42:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %43:f32 = load %42
+        %x_67:f32 = let %43
+        %45:i32 = load_vector_element %icoord, 0u
+        %x_69:i32 = let %45
+        %47:i32 = load_vector_element %icoord, 1u
+        %x_71:i32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %50:i32 = load %49
+        %x_74:i32 = let %50
+        %52:i32 = mul %x_69, %x_71
+        %53:bool = neq %52, %x_74
+        if %53 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
+            %54:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+            %55:f32 = load %54
+            %x_80:f32 = let %55
             store %x_40, %x_80
             exit_if  # if_2
           }
-          %b6 = block {  # false
-            %42:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-            %x_82:f32 = load %42
+          $B6: {  # false
+            %57:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+            %58:f32 = load %57
+            %x_82:f32 = let %58
             store %x_40, %x_82
             exit_if  # if_2
           }
         }
-        %x_83:f32 = load %x_40
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_85:i32 = load %45
-        %47:f32 = convert %x_85
-        %48:vec4<f32> = construct %x_65, %x_67, %x_83, %47
-        store %x_GLF_color, %48
+        %60:f32 = load %x_40
+        %x_83:f32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %63:i32 = load %62
+        %x_85:i32 = let %63
+        %65:f32 = convert %x_85
+        %66:vec4<f32> = construct %x_65, %x_67, %x_83, %65
+        store %x_GLF_color, %66
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_88:vec4<f32> = load %gl_FragCoord
-        %50:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_91:f32 = load %50
-        %52:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_94:f32 = load %52
-        %54:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_96:f32 = load %54
-        %56:f32 = access %x_88, 0u
-        %57:f32 = access %x_88, 1u
-        %58:vec2<f32> = construct %56, %57
-        %59:vec2<f32> = mul %58, %x_91
-        %60:vec2<f32> = construct %x_94, %x_96
-        %61:vec2<f32> = sub %59, %60
-        %62:vec2<i32> = convert %61
-        store %icoord_1, %62
-        %63:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_101:f32 = load %63
-        %65:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_103:f32 = load %65
-        %x_105:i32 = load_vector_element %icoord_1, 0u
-        %68:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_108:f32 = load %68
-        %70:f32 = convert %x_105
-        %71:vec4<f32> = construct %x_101, %x_103, %70, %x_108
-        store %x_GLF_color, %71
+      $B4: {  # false
+        %67:vec4<f32> = load %gl_FragCoord
+        %x_88:vec4<f32> = let %67
+        %69:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %70:f32 = load %69
+        %x_91:f32 = let %70
+        %72:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %73:f32 = load %72
+        %x_94:f32 = let %73
+        %75:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %76:f32 = load %75
+        %x_96:f32 = let %76
+        %78:f32 = access %x_88, 0u
+        %79:f32 = access %x_88, 1u
+        %80:vec2<f32> = construct %78, %79
+        %81:vec2<f32> = mul %80, %x_91
+        %82:vec2<f32> = let %81
+        %83:vec2<f32> = construct %x_94, %x_96
+        %84:vec2<f32> = sub %82, %83
+        %85:vec2<i32> = call %tint_v2f32_to_v2i32, %84
+        store %icoord_1, %85
+        %86:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %87:f32 = load %86
+        %x_101:f32 = let %87
+        %89:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %90:f32 = load %89
+        %x_103:f32 = let %90
+        %92:i32 = load_vector_element %icoord_1, 0u
+        %x_105:i32 = let %92
+        %94:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %95:f32 = load %94
+        %x_108:f32 = let %95
+        %97:f32 = convert %x_105
+        %98:vec4<f32> = construct %x_101, %x_103, %97, %x_108
+        store %x_GLF_color, %98
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+    %101:void = call %main_1
+    %102:vec4<f32> = load %x_GLF_color
+    %103:main_out = construct %102
+    ret %103
+  }
+}
+%tint_v2f32_to_v2i32 = func(%value:vec2<f32>):vec2<i32> {
+  $B8: {
+    %105:vec2<i32> = convert %value
+    %106:vec2<bool> = gte %value, vec2<f32>(-2147483648.0f)
+    %107:vec2<i32> = select vec2<i32>(-2147483648i), %105, %106
+    %108:vec2<bool> = lte %value, vec2<f32>(2147483520.0f)
+    %109:vec2<i32> = select vec2<i32>(2147483647i), %107, %108
+    ret %109
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.msl
index 1de782d..14d220e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,128 +20,138 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func_f1_ = func(%x:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+%func_f1_ = func(%x:ptr<function, f32, read_write>):f32 {
+  $B2: {
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %7:f32 = load_vector_element %gl_FragCoord, 1u
             %8:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
             %9:f32 = load %8
             %10:bool = lt %7, %9
-            if %10 [t: %b9] {  # if_2
-              %b9 = block {  # true
-                loop [b: %b10, c: %b11] {  # loop_3
-                  %b10 = block {  # body
-                    continue %b11
+            if %10 [t: $B9] {  # if_2
+              $B9: {  # true
+                loop [b: $B10, c: $B11] {  # loop_3
+                  $B10: {  # body
+                    continue  # -> $B11
                   }
-                  %b11 = block {  # continuing
-                    %x_88:f32 = load_vector_element %gl_FragCoord, 0u
-                    %12:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-                    %x_90:f32 = load %12
-                    %14:bool = lt %x_88, %x_90
-                    %15:bool = eq %14, false
-                    break_if %15 %b10
+                  $B11: {  # continuing
+                    %11:f32 = load_vector_element %gl_FragCoord, 0u
+                    %x_88:f32 = let %11
+                    %13:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+                    %14:f32 = load %13
+                    %x_90:f32 = let %14
+                    %16:bool = lt %x_88, %x_90
+                    %17:bool = eq %16, false
+                    break_if %17  # -> [t: exit_loop loop_3, f: $B10]
                   }
                 }
                 exit_if  # if_2
               }
             }
-            %16:f32 = load %x
-            %17:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
-            %18:f32 = load %17
-            %19:bool = lt %16, %18
-            if %19 [t: %b12] {  # if_3
-              %b12 = block {  # true
-                %20:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-                %x_99:f32 = load %20
+            %18:f32 = load %x
+            %19:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
+            %20:f32 = load %19
+            %21:bool = lt %18, %20
+            if %21 [t: $B12] {  # if_3
+              $B12: {  # true
+                %22:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+                %23:f32 = load %22
+                %x_99:f32 = let %23
                 ret %x_99
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_101:f32 = load_vector_element %gl_FragCoord, 1u
-            %23:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-            %x_103:f32 = load %23
-            %25:bool = lt %x_101, %x_103
-            %26:bool = eq %25, false
-            break_if %26 %b7
+          $B8: {  # continuing
+            %25:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_101:f32 = let %25
+            %27:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+            %28:f32 = load %27
+            %x_103:f32 = let %28
+            %30:bool = lt %x_101, %x_103
+            %31:bool = eq %30, false
+            break_if %31  # -> [t: exit_loop loop_2, f: $B7]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %27:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_106:f32 = load %27
+    %32:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %33:f32 = load %32
+    %x_106:f32 = let %33
     ret %x_106
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     %param:ptr<function, f32, read_write> = var
-    %31:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %31
-    %x_42:f32 = call %func_f1_, %param
-    %33:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %34:f32 = load %33
-    %35:bool = eq %x_42, %34
-    if %35 [t: %b14, f: %b15] {  # if_4
-      %b14 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:vec4<f32> = construct %38, %41, %44, %47
-        store %x_GLF_color, %48
+    %37:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %37
+    %38:f32 = call %func_f1_, %param
+    %x_42:f32 = let %38
+    %40:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %41:f32 = load %40
+    %42:bool = eq %x_42, %41
+    if %42 [t: $B14, f: $B15] {  # if_4
+      $B14: {  # true
+        %43:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %48:i32 = load %47
+        %49:f32 = convert %48
+        %50:f32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:f32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %56:i32 = load %55
+        %57:f32 = convert %56
+        %58:vec4<f32> = construct %46, %50, %54, %57
+        store %x_GLF_color, %58
         exit_if  # if_4
       }
-      %b15 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %50:i32 = load %49
-        %51:f32 = convert %50
-        %52:vec4<f32> = construct %51
-        store %x_GLF_color, %52
+      $B15: {  # false
+        %59:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %60:i32 = load %59
+        %61:f32 = convert %60
+        %62:vec4<f32> = construct %61
+        store %x_GLF_color, %62
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %55:void = call %main_1
-    %56:vec4<f32> = load %x_GLF_color
-    %57:main_out = construct %56
-    ret %57
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.msl
index 947b26e..ab2d96b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-fragcoord-condition-always-return/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,128 +20,150 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func_f1_ = func(%x:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+%func_f1_ = func(%x:ptr<function, f32, read_write>):f32 {
+  $B2: {
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_77:f32 = load_vector_element %gl_FragCoord, 1u
-            %8:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-            %x_79:f32 = load %8
-            %10:bool = lt %x_77, %x_79
-            if %10 [t: %b9] {  # if_2
-              %b9 = block {  # true
-                loop [b: %b10, c: %b11] {  # loop_3
-                  %b10 = block {  # body
-                    continue %b11
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %7:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_77:f32 = let %7
+            %9:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+            %10:f32 = load %9
+            %x_79:f32 = let %10
+            %12:bool = lt %x_77, %x_79
+            if %12 [t: $B9] {  # if_2
+              $B9: {  # true
+                loop [b: $B10, c: $B11] {  # loop_3
+                  $B10: {  # body
+                    continue  # -> $B11
                   }
-                  %b11 = block {  # continuing
-                    %x_88:f32 = load_vector_element %gl_FragCoord, 0u
-                    %12:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-                    %x_90:f32 = load %12
-                    %14:bool = lt %x_88, %x_90
-                    %15:bool = eq %14, false
-                    break_if %15 %b10
+                  $B11: {  # continuing
+                    %13:f32 = load_vector_element %gl_FragCoord, 0u
+                    %x_88:f32 = let %13
+                    %15:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+                    %16:f32 = load %15
+                    %x_90:f32 = let %16
+                    %18:bool = lt %x_88, %x_90
+                    %19:bool = eq %18, false
+                    break_if %19  # -> [t: exit_loop loop_3, f: $B10]
                   }
                 }
                 exit_if  # if_2
               }
             }
-            %x_92:f32 = load %x
-            %17:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
-            %x_94:f32 = load %17
-            %19:bool = lt %x_92, %x_94
-            if %19 [t: %b12] {  # if_3
-              %b12 = block {  # true
-                %20:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-                %x_99:f32 = load %20
+            %20:f32 = load %x
+            %x_92:f32 = let %20
+            %22:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
+            %23:f32 = load %22
+            %x_94:f32 = let %23
+            %25:bool = lt %x_92, %x_94
+            if %25 [t: $B12] {  # if_3
+              $B12: {  # true
+                %26:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+                %27:f32 = load %26
+                %x_99:f32 = let %27
                 ret %x_99
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_101:f32 = load_vector_element %gl_FragCoord, 1u
-            %23:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-            %x_103:f32 = load %23
-            %25:bool = lt %x_101, %x_103
-            %26:bool = eq %25, false
-            break_if %26 %b7
+          $B8: {  # continuing
+            %29:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_101:f32 = let %29
+            %31:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+            %32:f32 = load %31
+            %x_103:f32 = let %32
+            %34:bool = lt %x_101, %x_103
+            %35:bool = eq %34, false
+            break_if %35  # -> [t: exit_loop loop_2, f: $B7]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %27:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_106:f32 = load %27
+    %36:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %37:f32 = load %36
+    %x_106:f32 = let %37
     ret %x_106
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     %param:ptr<function, f32, read_write> = var
-    %x_41:f32 = load_vector_element %gl_FragCoord, 0u
+    %41:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_41:f32 = let %41
     store %param, %x_41
-    %x_42:f32 = call %func_f1_, %param
-    %33:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_44:f32 = load %33
-    %35:bool = eq %x_42, %x_44
-    if %35 [t: %b14, f: %b15] {  # if_4
-      %b14 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_50:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_53:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_56:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_59:i32 = load %42
-        %44:f32 = convert %x_50
-        %45:f32 = convert %x_53
-        %46:f32 = convert %x_56
-        %47:f32 = convert %x_59
-        %48:vec4<f32> = construct %44, %45, %46, %47
-        store %x_GLF_color, %48
+    %43:f32 = call %func_f1_, %param
+    %x_42:f32 = let %43
+    %45:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %46:f32 = load %45
+    %x_44:f32 = let %46
+    %48:bool = eq %x_42, %x_44
+    if %48 [t: $B14, f: $B15] {  # if_4
+      $B14: {  # true
+        %49:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %50:i32 = load %49
+        %x_50:i32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %53:i32 = load %52
+        %x_53:i32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %56:i32 = load %55
+        %x_56:i32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %59:i32 = load %58
+        %x_59:i32 = let %59
+        %61:f32 = convert %x_50
+        %62:f32 = let %61
+        %63:f32 = convert %x_53
+        %64:f32 = let %63
+        %65:f32 = convert %x_56
+        %66:f32 = let %65
+        %67:f32 = convert %x_59
+        %68:vec4<f32> = construct %62, %64, %66, %67
+        store %x_GLF_color, %68
         exit_if  # if_4
       }
-      %b15 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_63:i32 = load %49
-        %x_64:f32 = convert %x_63
-        %52:vec4<f32> = construct %x_64, %x_64, %x_64, %x_64
-        store %x_GLF_color, %52
+      $B15: {  # false
+        %69:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %70:i32 = load %69
+        %x_63:i32 = let %70
+        %72:f32 = convert %x_63
+        %x_64:f32 = let %72
+        %74:vec4<f32> = construct %x_64, %x_64, %x_64, %x_64
+        store %x_GLF_color, %74
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %55:void = call %main_1
-    %56:vec4<f32> = load %x_GLF_color
-    %57:main_out = construct %56
-    ret %57
+    %77:void = call %main_1
+    %78:vec4<f32> = load %x_GLF_color
+    %79:main_out = construct %78
+    ret %79
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.msl
index b15b95e..530cd47 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,84 +24,96 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
-    %8:f32 = load_vector_element %pos, 0u
-    %9:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %10:f32 = load %9
-    %11:bool = lt %8, %10
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%func_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):bool {
+  $B2: {
+    %9:f32 = load_vector_element %pos, 0u
+    %10:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %11:f32 = load %10
+    %12:bool = lt %9, %11
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         ret true
       }
     }
-    %12:f32 = load_vector_element %pos, 1u
-    %13:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %14:f32 = load %13
-    %15:bool = gt %12, %14
-    if %15 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %13:f32 = load_vector_element %pos, 1u
+    %14:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %15:f32 = load %14
+    %16:bool = gt %13, %15
+    if %16 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
-    %16:ptr<uniform, f32, read> = access %x_10, 0u
-    %17:f32 = load %16
-    %18:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %19:f32 = load %18
-    %20:bool = gt %17, %19
-    if %20 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %17:ptr<uniform, f32, read> = access %x_10, 0u
+    %18:f32 = load %17
+    %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %20:f32 = load %19
+    %21:bool = gt %18, %20
+    if %21 [t: $B5] {  # if_3
+      $B5: {  # true
         ret true
       }
     }
     ret true
   }
 }
-%main_1 = func():void -> %b6 {
-  %b6 = block {
+%main_1 = func():void {
+  $B6: {
     %param:ptr<function, vec2<f32>, read_write> = var
-    %23:vec4<f32> = load %gl_FragCoord
-    %24:vec2<f32> = swizzle %23, xy
-    store %param, %24
-    %x_44:bool = call %func_vf2_, %param
-    if %x_44 [t: %b7] {  # if_4
-      %b7 = block {  # true
-        discard
+    %24:vec4<f32> = load %gl_FragCoord
+    %25:vec2<f32> = swizzle %24, xy
+    store %param, %25
+    %26:bool = call %func_vf2_, %param
+    %x_44:bool = let %26
+    if %x_44 [t: $B7] {  # if_4
+      $B7: {  # true
+        store %continue_execution, false
         exit_if  # if_4
       }
     }
-    %26:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-    %27:i32 = load %26
-    %28:f32 = convert %27
-    %29:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-    %30:i32 = load %29
-    %31:f32 = convert %30
+    %28:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+    %29:i32 = load %28
+    %30:f32 = convert %29
+    %31:f32 = let %30
     %32:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
     %33:i32 = load %32
     %34:f32 = convert %33
-    %35:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-    %36:i32 = load %35
-    %37:f32 = convert %36
-    %38:vec4<f32> = construct %28, %31, %34, %37
-    store %x_GLF_color, %38
+    %35:f32 = let %34
+    %36:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+    %37:i32 = load %36
+    %38:f32 = convert %37
+    %39:f32 = let %38
+    %40:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+    %41:i32 = load %40
+    %42:f32 = convert %41
+    %43:vec4<f32> = construct %31, %35, %39, %42
+    store %x_GLF_color, %43
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+    %46:void = call %main_1
+    %47:vec4<f32> = load %x_GLF_color
+    %48:main_out = construct %47
+    %49:bool = load %continue_execution
+    %50:bool = eq %49, false
+    if %50 [t: $B9] {  # if_5
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.msl
index 0d80953..81f9299 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-function-vec2-never-discard/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,86 +24,109 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
-    %x_62:f32 = load_vector_element %pos, 0u
-    %9:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_64:f32 = load %9
-    %11:bool = lt %x_62, %x_64
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%func_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):bool {
+  $B2: {
+    %9:f32 = load_vector_element %pos, 0u
+    %x_62:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %12:f32 = load %11
+    %x_64:f32 = let %12
+    %14:bool = lt %x_62, %x_64
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
         ret true
       }
     }
-    %x_69:f32 = load_vector_element %pos, 1u
-    %13:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_71:f32 = load %13
-    %15:bool = gt %x_69, %x_71
-    if %15 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %15:f32 = load_vector_element %pos, 1u
+    %x_69:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %18:f32 = load %17
+    %x_71:f32 = let %18
+    %20:bool = gt %x_69, %x_71
+    if %20 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
-    %16:ptr<uniform, f32, read> = access %x_10, 0u
-    %x_76:f32 = load %16
-    %18:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_78:f32 = load %18
-    %20:bool = gt %x_76, %x_78
-    if %20 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %21:ptr<uniform, f32, read> = access %x_10, 0u
+    %22:f32 = load %21
+    %x_76:f32 = let %22
+    %24:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %25:f32 = load %24
+    %x_78:f32 = let %25
+    %27:bool = gt %x_76, %x_78
+    if %27 [t: $B5] {  # if_3
+      $B5: {  # true
         ret true
       }
     }
     ret true
   }
 }
-%main_1 = func():void -> %b6 {
-  %b6 = block {
+%main_1 = func():void {
+  $B6: {
     %param:ptr<function, vec2<f32>, read_write> = var
-    %x_42:vec4<f32> = load %gl_FragCoord
-    %24:f32 = access %x_42, 0u
-    %25:f32 = access %x_42, 1u
-    %26:vec2<f32> = construct %24, %25
-    store %param, %26
-    %x_44:bool = call %func_vf2_, %param
-    if %x_44 [t: %b7] {  # if_4
-      %b7 = block {  # true
-        discard
+    %30:vec4<f32> = load %gl_FragCoord
+    %x_42:vec4<f32> = let %30
+    %32:f32 = access %x_42, 0u
+    %33:f32 = access %x_42, 1u
+    %34:vec2<f32> = construct %32, %33
+    store %param, %34
+    %35:bool = call %func_vf2_, %param
+    %x_44:bool = let %35
+    if %x_44 [t: $B7] {  # if_4
+      $B7: {  # true
+        store %continue_execution, false
         exit_if  # if_4
       }
     }
-    %28:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-    %x_48:i32 = load %28
-    %30:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-    %x_51:i32 = load %30
-    %32:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-    %x_54:i32 = load %32
-    %34:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-    %x_57:i32 = load %34
-    %36:f32 = convert %x_48
-    %37:f32 = convert %x_51
-    %38:f32 = convert %x_54
-    %39:f32 = convert %x_57
-    %40:vec4<f32> = construct %36, %37, %38, %39
-    store %x_GLF_color, %40
+    %37:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+    %38:i32 = load %37
+    %x_48:i32 = let %38
+    %40:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+    %41:i32 = load %40
+    %x_51:i32 = let %41
+    %43:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+    %44:i32 = load %43
+    %x_54:i32 = let %44
+    %46:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+    %47:i32 = load %46
+    %x_57:i32 = let %47
+    %49:f32 = convert %x_48
+    %50:f32 = let %49
+    %51:f32 = convert %x_51
+    %52:f32 = let %51
+    %53:f32 = convert %x_54
+    %54:f32 = let %53
+    %55:f32 = convert %x_57
+    %56:vec4<f32> = construct %50, %52, %54, %55
+    store %x_GLF_color, %56
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    %62:bool = load %continue_execution
+    %63:bool = eq %62, false
+    if %63 [t: $B9] {  # if_5
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.msl
index d1a119e..cd40180 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,108 +12,111 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_GLF_global_loop_count, 0i
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %6:i32 = load %5
     %7:f32 = convert %6
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %9:i32 = load %8
-    %10:f32 = convert %9
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %12:i32 = load %11
-    %13:f32 = convert %12
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %15:i32 = load %14
-    %16:f32 = convert %15
-    %17:vec4<f32> = construct %7, %10, %13, %16
-    store %x_GLF_color, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %8:f32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %10:i32 = load %9
+    %11:f32 = convert %10
+    %12:f32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %14:i32 = load %13
+    %15:f32 = convert %14
+    %16:f32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %18:i32 = load %17
+    %19:f32 = convert %18
+    %20:vec4<f32> = construct %8, %12, %16, %19
+    store %x_GLF_color, %20
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_54:ptr<function, bool, read_write> = var
         %x_55:ptr<function, bool, read_write> = var
-        %20:i32 = load %x_GLF_global_loop_count
-        %21:bool = lt %20, 100i
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %23:i32 = load %x_GLF_global_loop_count
+        %24:bool = lt %23, 100i
+        if %24 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:i32 = load %x_GLF_global_loop_count
-        %23:i32 = add %22, 1i
-        store %x_GLF_global_loop_count, %23
+        %25:i32 = load %x_GLF_global_loop_count
+        %26:i32 = add %25, 1i
+        store %x_GLF_global_loop_count, %26
         store %x_55, true
-        if false [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %25:i32 = load %24
-            %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %27:i32 = load %26
-            %28:bool = eq %25, %27
-            store %x_54, %28
-            %29:bool = load %x_54
-            store %x_55, %29
+        if false [t: $B7] {  # if_2
+          $B7: {  # true
+            %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %28:i32 = load %27
+            %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %30:i32 = load %29
+            %31:bool = eq %28, %30
+            store %x_54, %31
+            %32:bool = load %x_54
+            store %x_55, %32
             exit_if  # if_2
           }
         }
-        %30:bool = load %x_55
-        %31:bool = eq %30, false
-        if %31 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %33:bool = load %x_55
+        %34:bool = eq %33, false
+        if %34 [t: $B8] {  # if_3
+          $B8: {  # true
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %32:i32 = load %x_GLF_global_loop_count
-        %33:bool = lt %32, 100i
-        if %33 [t: %b11, f: %b12] {  # if_4
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %35:i32 = load %x_GLF_global_loop_count
+        %36:bool = lt %35, 100i
+        if %36 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
             exit_if  # if_4
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %34:i32 = load %x_GLF_global_loop_count
-        %35:i32 = add %34, 1i
-        store %x_GLF_global_loop_count, %35
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:vec4<f32> = construct %38
-        store %x_GLF_color, %39
-        continue %b10
+        %37:i32 = load %x_GLF_global_loop_count
+        %38:i32 = add %37, 1i
+        store %x_GLF_global_loop_count, %38
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:vec4<f32> = construct %41
+        store %x_GLF_color, %42
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.msl
index e7e42b3..7a9ed6b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-bound-true-logical-or/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,108 +12,124 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_GLF_global_loop_count, 0i
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_26:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:i32 = load %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_32:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_35:i32 = load %11
-    %13:f32 = convert %x_26
-    %14:f32 = convert %x_29
-    %15:f32 = convert %x_32
-    %16:f32 = convert %x_35
-    %17:vec4<f32> = construct %13, %14, %15, %16
-    store %x_GLF_color, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %6:i32 = load %5
+    %x_26:i32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %9:i32 = load %8
+    %x_29:i32 = let %9
+    %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_32:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_35:i32 = let %15
+    %17:f32 = convert %x_26
+    %18:f32 = let %17
+    %19:f32 = convert %x_29
+    %20:f32 = let %19
+    %21:f32 = convert %x_32
+    %22:f32 = let %21
+    %23:f32 = convert %x_35
+    %24:vec4<f32> = construct %18, %20, %22, %23
+    store %x_GLF_color, %24
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_54:ptr<function, bool, read_write> = var
         %x_55_phi:ptr<function, bool, read_write> = var
-        %x_42:i32 = load %x_GLF_global_loop_count
-        %21:bool = lt %x_42, 100i
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %27:i32 = load %x_GLF_global_loop_count
+        %x_42:i32 = let %27
+        %29:bool = lt %x_42, 100i
+        if %29 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_45:i32 = load %x_GLF_global_loop_count
-        %23:i32 = add %x_45, 1i
-        store %x_GLF_global_loop_count, %23
+        %30:i32 = load %x_GLF_global_loop_count
+        %x_45:i32 = let %30
+        %32:i32 = add %x_45, 1i
+        store %x_GLF_global_loop_count, %32
         store %x_55_phi, true
-        if false [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_51:i32 = load %24
-            %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_53:i32 = load %26
-            %28:bool = eq %x_51, %x_53
-            store %x_54, %28
-            %29:bool = load %x_54
-            store %x_55_phi, %29
+        if false [t: $B7] {  # if_2
+          $B7: {  # true
+            %33:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %34:i32 = load %33
+            %x_51:i32 = let %34
+            %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %37:i32 = load %36
+            %x_53:i32 = let %37
+            %39:bool = eq %x_51, %x_53
+            store %x_54, %39
+            %40:bool = load %x_54
+            store %x_55_phi, %40
             exit_if  # if_2
           }
         }
-        %x_55:bool = load %x_55_phi
-        %31:bool = eq %x_55, false
-        if %31 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %41:bool = load %x_55_phi
+        %x_55:bool = let %41
+        %43:bool = eq %x_55, false
+        if %43 [t: $B8] {  # if_3
+          $B8: {  # true
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_63:i32 = load %x_GLF_global_loop_count
-        %33:bool = lt %x_63, 100i
-        if %33 [t: %b11, f: %b12] {  # if_4
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %44:i32 = load %x_GLF_global_loop_count
+        %x_63:i32 = let %44
+        %46:bool = lt %x_63, 100i
+        if %46 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
             exit_if  # if_4
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_66:i32 = load %x_GLF_global_loop_count
-        %35:i32 = add %x_66, 1i
-        store %x_GLF_global_loop_count, %35
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_69:i32 = load %36
-        %x_70:f32 = convert %x_69
-        %39:vec4<f32> = construct %x_70, %x_70, %x_70, %x_70
-        store %x_GLF_color, %39
-        continue %b10
+        %47:i32 = load %x_GLF_global_loop_count
+        %x_66:i32 = let %47
+        %49:i32 = add %x_66, 1i
+        store %x_GLF_global_loop_count, %49
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %51:i32 = load %50
+        %x_69:i32 = let %51
+        %53:f32 = convert %x_69
+        %x_70:f32 = let %53
+        %55:vec4<f32> = construct %x_70, %x_70, %x_70, %x_70
+        store %x_GLF_color, %55
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.msl
index 62dbd34..2424c60 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,16 +24,17 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_15:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat4x4<f32>, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     %f:ptr<function, f32, read_write> = var
@@ -41,191 +42,211 @@
     %b:ptr<function, i32, read_write> = var
     %zero:ptr<function, f32, read_write> = var
     store %x_GLF_global_loop_count, 0i
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %14:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %16:f32 = load %15
-    %17:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %18:f32 = load %17
-    %19:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
-    %20:f32 = load %19
-    %21:vec4<f32> = construct %14, %16, %18, %20
-    %22:ptr<uniform, f32, read> = access %x_7, 0u, 5i, 0u
-    %23:f32 = load %22
-    %24:ptr<uniform, f32, read> = access %x_7, 0u, 6i, 0u
+    %14:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %15:f32 = load %14
+    %16:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %17:f32 = load %16
+    %18:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %19:f32 = load %18
+    %20:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
+    %21:f32 = load %20
+    %22:vec4<f32> = construct %15, %17, %19, %21
+    %23:vec4<f32> = let %22
+    %24:ptr<uniform, f32, read> = access %x_7, 0u, 5i, 0u
     %25:f32 = load %24
-    %26:ptr<uniform, f32, read> = access %x_7, 0u, 7i, 0u
+    %26:ptr<uniform, f32, read> = access %x_7, 0u, 6i, 0u
     %27:f32 = load %26
-    %28:ptr<uniform, f32, read> = access %x_7, 0u, 8i, 0u
+    %28:ptr<uniform, f32, read> = access %x_7, 0u, 7i, 0u
     %29:f32 = load %28
-    %30:vec4<f32> = construct %23, %25, %27, %29
-    %31:ptr<uniform, f32, read> = access %x_7, 0u, 9i, 0u
-    %32:f32 = load %31
-    %33:ptr<uniform, f32, read> = access %x_7, 0u, 10i, 0u
-    %34:f32 = load %33
-    %35:ptr<uniform, f32, read> = access %x_7, 0u, 11i, 0u
-    %36:f32 = load %35
-    %37:ptr<uniform, f32, read> = access %x_7, 0u, 12i, 0u
-    %38:f32 = load %37
-    %39:vec4<f32> = construct %32, %34, %36, %38
-    %40:ptr<uniform, f32, read> = access %x_7, 0u, 13i, 0u
+    %30:ptr<uniform, f32, read> = access %x_7, 0u, 8i, 0u
+    %31:f32 = load %30
+    %32:vec4<f32> = construct %25, %27, %29, %31
+    %33:vec4<f32> = let %32
+    %34:ptr<uniform, f32, read> = access %x_7, 0u, 9i, 0u
+    %35:f32 = load %34
+    %36:ptr<uniform, f32, read> = access %x_7, 0u, 10i, 0u
+    %37:f32 = load %36
+    %38:ptr<uniform, f32, read> = access %x_7, 0u, 11i, 0u
+    %39:f32 = load %38
+    %40:ptr<uniform, f32, read> = access %x_7, 0u, 12i, 0u
     %41:f32 = load %40
-    %42:ptr<uniform, f32, read> = access %x_7, 0u, 14i, 0u
-    %43:f32 = load %42
-    %44:ptr<uniform, f32, read> = access %x_7, 0u, 15i, 0u
+    %42:vec4<f32> = construct %35, %37, %39, %41
+    %43:vec4<f32> = let %42
+    %44:ptr<uniform, f32, read> = access %x_7, 0u, 13i, 0u
     %45:f32 = load %44
-    %46:ptr<uniform, f32, read> = access %x_7, 0u, 16i, 0u
+    %46:ptr<uniform, f32, read> = access %x_7, 0u, 14i, 0u
     %47:f32 = load %46
-    %48:vec4<f32> = construct %41, %43, %45, %47
-    %49:mat4x4<f32> = construct %21, %30, %39, %48
-    store %m, %49
-    %50:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %48:ptr<uniform, f32, read> = access %x_7, 0u, 15i, 0u
+    %49:f32 = load %48
+    %50:ptr<uniform, f32, read> = access %x_7, 0u, 16i, 0u
     %51:f32 = load %50
-    %52:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %53:f32 = load %52
-    %54:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %52:vec4<f32> = construct %45, %47, %49, %51
+    %53:mat4x4<f32> = construct %23, %33, %43, %52
+    store %m, %53
+    %54:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
     %55:f32 = load %54
-    %56:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
+    %56:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
     %57:f32 = load %56
-    %58:vec4<f32> = construct %51, %53, %55, %57
-    store %v, %58
-    %59:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %60:f32 = load %59
-    store %f, %60
-    %61:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-    %62:i32 = load %61
-    store %a, %62
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %63:i32 = load %x_GLF_global_loop_count
-        %64:bool = lt %63, 10i
-        if %64 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %58:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %59:f32 = load %58
+    %60:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
+    %61:f32 = load %60
+    %62:vec4<f32> = construct %55, %57, %59, %61
+    store %v, %62
+    %63:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %64:f32 = load %63
+    store %f, %64
+    %65:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+    %66:i32 = load %65
+    store %a, %66
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %67:i32 = load %x_GLF_global_loop_count
+        %68:bool = lt %67, 10i
+        if %68 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %65:i32 = load %x_GLF_global_loop_count
-        %66:i32 = add %65, 1i
-        store %x_GLF_global_loop_count, %66
-        %67:i32 = load %a
-        %x_121:i32 = clamp %67, 0i, 3i
-        %69:f32 = load_vector_element %v, %x_121
-        %70:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %71:f32 = load %70
-        %72:f32 = add %69, %71
-        store_vector_element %v, %x_121, %72
-        %73:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
-        %74:i32 = load %73
-        store %b, %74
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %75:i32 = load %x_GLF_global_loop_count
-            %76:bool = lt %75, 10i
-            if %76 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        %69:i32 = load %x_GLF_global_loop_count
+        %70:i32 = add %69, 1i
+        store %x_GLF_global_loop_count, %70
+        %71:i32 = load %a
+        %72:i32 = max %71, 0i
+        %73:i32 = min %72, 3i
+        %x_121:i32 = let %73
+        %75:f32 = load_vector_element %v, %x_121
+        %76:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %77:f32 = load %76
+        %78:f32 = add %75, %77
+        store_vector_element %v, %x_121, %78
+        %79:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
+        %80:i32 = load %79
+        store %b, %80
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %81:i32 = load %x_GLF_global_loop_count
+            %82:bool = lt %81, 10i
+            if %82 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %77:i32 = load %x_GLF_global_loop_count
-            %78:i32 = add %77, 1i
-            store %x_GLF_global_loop_count, %78
-            %79:f32 = load %f
-            %80:i32 = load %b
-            %81:i32 = clamp %80, 0i, 3i
-            %82:f32 = load_vector_element %v, %81
-            %83:i32 = load %b
-            %84:i32 = clamp %83, 0i, 3i
-            %85:ptr<function, vec4<f32>, read_write> = access %m, %84
-            %86:i32 = load %a
-            %87:f32 = load_vector_element %85, %86
-            %88:f32 = mul %82, %87
-            %89:f32 = add %79, %88
-            store %f, %89
-            continue %b8
+            %83:i32 = load %x_GLF_global_loop_count
+            %84:i32 = add %83, 1i
+            store %x_GLF_global_loop_count, %84
+            %85:f32 = load %f
+            %86:f32 = let %85
+            %87:i32 = load %b
+            %88:i32 = max %87, 0i
+            %89:i32 = min %88, 3i
+            %90:f32 = load_vector_element %v, %89
+            %91:f32 = let %90
+            %92:i32 = load %b
+            %93:i32 = max %92, 0i
+            %94:i32 = min %93, 3i
+            %95:ptr<function, vec4<f32>, read_write> = access %m, %94
+            %96:i32 = load %a
+            %97:f32 = load_vector_element %95, %96
+            %98:f32 = mul %91, %97
+            %99:f32 = add %86, %98
+            store %f, %99
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %90:i32 = load %b
-            %91:i32 = sub %90, 1i
-            store %b, %91
-            next_iteration %b7
+          $B8: {  # continuing
+            %100:i32 = load %b
+            %101:i32 = sub %100, 1i
+            store %b, %101
+            next_iteration  # -> $B7
           }
         }
-        %x_153:i32 = load %a
-        %93:ptr<function, vec4<f32>, read_write> = access %m, 1i
-        %94:i32 = clamp %x_153, 0i, 3i
-        %95:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %96:f32 = load %95
-        store_vector_element %93, %94, %96
-        %97:ptr<uniform, i32, read> = access %x_15, 0u
-        %98:i32 = load %97
-        %99:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %100:i32 = load %99
-        %101:bool = eq %98, %100
-        if %101 [t: %b11] {  # if_3
-          %b11 = block {  # true
-            discard
+        %102:i32 = load %a
+        %x_153:i32 = let %102
+        %104:ptr<function, vec4<f32>, read_write> = access %m, 1i
+        %105:i32 = max %x_153, 0i
+        %106:i32 = min %105, 3i
+        %107:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %108:f32 = load %107
+        store_vector_element %104, %106, %108
+        %109:ptr<uniform, i32, read> = access %x_15, 0u
+        %110:i32 = load %109
+        %111:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %112:i32 = load %111
+        %113:bool = eq %110, %112
+        if %113 [t: $B11] {  # if_3
+          $B11: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
-        %102:ptr<uniform, i32, read> = access %x_15, 0u
-        %103:i32 = load %102
-        %104:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %105:i32 = load %104
-        %106:bool = eq %103, %105
-        if %106 [t: %b12] {  # if_4
-          %b12 = block {  # true
-            discard
+        %114:ptr<uniform, i32, read> = access %x_15, 0u
+        %115:i32 = load %114
+        %116:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %117:i32 = load %116
+        %118:bool = eq %115, %117
+        if %118 [t: $B12] {  # if_4
+          $B12: {  # true
+            store %continue_execution, false
             exit_if  # if_4
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %107:i32 = load %a
-        %108:i32 = add %107, 1i
-        store %a, %108
-        next_iteration %b3
+      $B4: {  # continuing
+        %119:i32 = load %a
+        %120:i32 = add %119, 1i
+        store %a, %120
+        next_iteration  # -> $B3
       }
     }
-    %109:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %110:f32 = load %109
-    store %zero, %110
-    %111:f32 = load %f
-    %112:ptr<uniform, f32, read> = access %x_7, 0u, 17i, 0u
-    %113:f32 = load %112
-    %114:bool = eq %111, %113
-    %115:bool = eq %114, false
-    if %115 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %116:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %117:f32 = load %116
-        store %zero, %117
+    %121:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %122:f32 = load %121
+    store %zero, %122
+    %123:f32 = load %f
+    %124:ptr<uniform, f32, read> = access %x_7, 0u, 17i, 0u
+    %125:f32 = load %124
+    %126:bool = eq %123, %125
+    %127:bool = eq %126, false
+    if %127 [t: $B13] {  # if_5
+      $B13: {  # true
+        %128:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %129:f32 = load %128
+        store %zero, %129
         exit_if  # if_5
       }
     }
-    %118:f32 = load %f
-    %119:f32 = load %zero
-    %120:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-    %121:i32 = load %120
-    %122:f32 = convert %121
-    %123:f32 = load %f
-    %124:vec4<f32> = construct %118, %119, %122, %123
-    store %x_GLF_color, %124
+    %130:f32 = load %f
+    %131:f32 = let %130
+    %132:f32 = load %zero
+    %133:f32 = let %132
+    %134:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+    %135:i32 = load %134
+    %136:f32 = convert %135
+    %137:f32 = load %f
+    %138:vec4<f32> = construct %131, %133, %136, %137
+    store %x_GLF_color, %138
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %126:void = call %main_1
-    %127:vec4<f32> = load %x_GLF_color
-    %128:main_out = construct %127
-    ret %128
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %140:void = call %main_1
+    %141:vec4<f32> = load %x_GLF_color
+    %142:main_out = construct %141
+    %143:bool = load %continue_execution
+    %144:bool = eq %143, false
+    if %144 [t: $B15] {  # if_6
+      $B15: {  # true
+        terminate_invocation
+      }
+    }
+    ret %142
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.msl
index 2e73ca0..d7a7b95 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-float-accumulate-matrix/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,16 +24,17 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_15:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat4x4<f32>, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     %f:ptr<function, f32, read_write> = var
@@ -41,191 +42,258 @@
     %b:ptr<function, i32, read_write> = var
     %zero:ptr<function, f32, read_write> = var
     store %x_GLF_global_loop_count, 0i
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_62:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_64:f32 = load %15
-    %17:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %x_66:f32 = load %17
-    %19:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
-    %x_68:f32 = load %19
-    %21:ptr<uniform, f32, read> = access %x_7, 0u, 5i, 0u
-    %x_70:f32 = load %21
-    %23:ptr<uniform, f32, read> = access %x_7, 0u, 6i, 0u
-    %x_72:f32 = load %23
-    %25:ptr<uniform, f32, read> = access %x_7, 0u, 7i, 0u
-    %x_74:f32 = load %25
-    %27:ptr<uniform, f32, read> = access %x_7, 0u, 8i, 0u
-    %x_76:f32 = load %27
-    %29:ptr<uniform, f32, read> = access %x_7, 0u, 9i, 0u
-    %x_78:f32 = load %29
-    %31:ptr<uniform, f32, read> = access %x_7, 0u, 10i, 0u
-    %x_80:f32 = load %31
-    %33:ptr<uniform, f32, read> = access %x_7, 0u, 11i, 0u
-    %x_82:f32 = load %33
-    %35:ptr<uniform, f32, read> = access %x_7, 0u, 12i, 0u
-    %x_84:f32 = load %35
-    %37:ptr<uniform, f32, read> = access %x_7, 0u, 13i, 0u
-    %x_86:f32 = load %37
-    %39:ptr<uniform, f32, read> = access %x_7, 0u, 14i, 0u
-    %x_88:f32 = load %39
-    %41:ptr<uniform, f32, read> = access %x_7, 0u, 15i, 0u
-    %x_90:f32 = load %41
-    %43:ptr<uniform, f32, read> = access %x_7, 0u, 16i, 0u
-    %x_92:f32 = load %43
-    %45:vec4<f32> = construct %x_62, %x_64, %x_66, %x_68
-    %46:vec4<f32> = construct %x_70, %x_72, %x_74, %x_76
-    %47:vec4<f32> = construct %x_78, %x_80, %x_82, %x_84
-    %48:vec4<f32> = construct %x_86, %x_88, %x_90, %x_92
-    %49:mat4x4<f32> = construct %45, %46, %47, %48
-    store %m, %49
-    %50:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_99:f32 = load %50
-    %52:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_101:f32 = load %52
-    %54:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %x_103:f32 = load %54
-    %56:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
-    %x_105:f32 = load %56
-    %58:vec4<f32> = construct %x_99, %x_101, %x_103, %x_105
-    store %v, %58
-    %59:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_108:f32 = load %59
+    %14:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %15:f32 = load %14
+    %x_62:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %18:f32 = load %17
+    %x_64:f32 = let %18
+    %20:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %21:f32 = load %20
+    %x_66:f32 = let %21
+    %23:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
+    %24:f32 = load %23
+    %x_68:f32 = let %24
+    %26:ptr<uniform, f32, read> = access %x_7, 0u, 5i, 0u
+    %27:f32 = load %26
+    %x_70:f32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_7, 0u, 6i, 0u
+    %30:f32 = load %29
+    %x_72:f32 = let %30
+    %32:ptr<uniform, f32, read> = access %x_7, 0u, 7i, 0u
+    %33:f32 = load %32
+    %x_74:f32 = let %33
+    %35:ptr<uniform, f32, read> = access %x_7, 0u, 8i, 0u
+    %36:f32 = load %35
+    %x_76:f32 = let %36
+    %38:ptr<uniform, f32, read> = access %x_7, 0u, 9i, 0u
+    %39:f32 = load %38
+    %x_78:f32 = let %39
+    %41:ptr<uniform, f32, read> = access %x_7, 0u, 10i, 0u
+    %42:f32 = load %41
+    %x_80:f32 = let %42
+    %44:ptr<uniform, f32, read> = access %x_7, 0u, 11i, 0u
+    %45:f32 = load %44
+    %x_82:f32 = let %45
+    %47:ptr<uniform, f32, read> = access %x_7, 0u, 12i, 0u
+    %48:f32 = load %47
+    %x_84:f32 = let %48
+    %50:ptr<uniform, f32, read> = access %x_7, 0u, 13i, 0u
+    %51:f32 = load %50
+    %x_86:f32 = let %51
+    %53:ptr<uniform, f32, read> = access %x_7, 0u, 14i, 0u
+    %54:f32 = load %53
+    %x_88:f32 = let %54
+    %56:ptr<uniform, f32, read> = access %x_7, 0u, 15i, 0u
+    %57:f32 = load %56
+    %x_90:f32 = let %57
+    %59:ptr<uniform, f32, read> = access %x_7, 0u, 16i, 0u
+    %60:f32 = load %59
+    %x_92:f32 = let %60
+    %62:vec4<f32> = construct %x_62, %x_64, %x_66, %x_68
+    %63:vec4<f32> = let %62
+    %64:vec4<f32> = construct %x_70, %x_72, %x_74, %x_76
+    %65:vec4<f32> = let %64
+    %66:vec4<f32> = construct %x_78, %x_80, %x_82, %x_84
+    %67:vec4<f32> = let %66
+    %68:vec4<f32> = construct %x_86, %x_88, %x_90, %x_92
+    %69:mat4x4<f32> = construct %63, %65, %67, %68
+    store %m, %69
+    %70:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %71:f32 = load %70
+    %x_99:f32 = let %71
+    %73:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %74:f32 = load %73
+    %x_101:f32 = let %74
+    %76:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %77:f32 = load %76
+    %x_103:f32 = let %77
+    %79:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
+    %80:f32 = load %79
+    %x_105:f32 = let %80
+    %82:vec4<f32> = construct %x_99, %x_101, %x_103, %x_105
+    store %v, %82
+    %83:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %84:f32 = load %83
+    %x_108:f32 = let %84
     store %f, %x_108
-    %61:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-    %x_110:i32 = load %61
+    %86:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+    %87:i32 = load %86
+    %x_110:i32 = let %87
     store %a, %x_110
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_115:i32 = load %x_GLF_global_loop_count
-        %64:bool = lt %x_115, 10i
-        if %64 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %89:i32 = load %x_GLF_global_loop_count
+        %x_115:i32 = let %89
+        %91:bool = lt %x_115, 10i
+        if %91 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_118:i32 = load %x_GLF_global_loop_count
-        %66:i32 = add %x_118, 1i
-        store %x_GLF_global_loop_count, %66
-        %x_120:i32 = load %a
-        %x_121:i32 = clamp %x_120, 0i, 3i
-        %69:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_123:f32 = load %69
-        %x_125:f32 = load_vector_element %v, %x_121
-        %72:f32 = add %x_125, %x_123
-        store_vector_element %v, %x_121, %72
-        %73:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
-        %x_129:i32 = load %73
+        %92:i32 = load %x_GLF_global_loop_count
+        %x_118:i32 = let %92
+        %94:i32 = add %x_118, 1i
+        store %x_GLF_global_loop_count, %94
+        %95:i32 = load %a
+        %x_120:i32 = let %95
+        %97:i32 = max %x_120, 0i
+        %98:i32 = min %97, 3i
+        %x_121:i32 = let %98
+        %100:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %101:f32 = load %100
+        %x_123:f32 = let %101
+        %103:f32 = load_vector_element %v, %x_121
+        %x_125:f32 = let %103
+        %105:f32 = add %x_125, %x_123
+        store_vector_element %v, %x_121, %105
+        %106:ptr<uniform, i32, read> = access %x_12, 0u, 2i, 0u
+        %107:i32 = load %106
+        %x_129:i32 = let %107
         store %b, %x_129
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_134:i32 = load %x_GLF_global_loop_count
-            %76:bool = lt %x_134, 10i
-            if %76 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %109:i32 = load %x_GLF_global_loop_count
+            %x_134:i32 = let %109
+            %111:bool = lt %x_134, 10i
+            if %111 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_137:i32 = load %x_GLF_global_loop_count
-            %78:i32 = add %x_137, 1i
-            store %x_GLF_global_loop_count, %78
-            %x_139:i32 = load %b
-            %80:i32 = clamp %x_139, 0i, 3i
-            %x_142:f32 = load_vector_element %v, %80
-            %x_143:i32 = load %b
-            %x_145:i32 = load %a
-            %84:i32 = clamp %x_143, 0i, 3i
-            %85:ptr<function, vec4<f32>, read_write> = access %m, %84
-            %x_147:f32 = load_vector_element %85, %x_145
-            %x_149:f32 = load %f
-            %88:f32 = mul %x_142, %x_147
-            %89:f32 = add %x_149, %88
-            store %f, %89
-            continue %b8
+            %112:i32 = load %x_GLF_global_loop_count
+            %x_137:i32 = let %112
+            %114:i32 = add %x_137, 1i
+            store %x_GLF_global_loop_count, %114
+            %115:i32 = load %b
+            %x_139:i32 = let %115
+            %117:i32 = max %x_139, 0i
+            %118:i32 = min %117, 3i
+            %119:f32 = load_vector_element %v, %118
+            %x_142:f32 = let %119
+            %121:i32 = load %b
+            %x_143:i32 = let %121
+            %123:i32 = load %a
+            %x_145:i32 = let %123
+            %125:i32 = max %x_143, 0i
+            %126:i32 = min %125, 3i
+            %127:ptr<function, vec4<f32>, read_write> = access %m, %126
+            %128:f32 = load_vector_element %127, %x_145
+            %x_147:f32 = let %128
+            %130:f32 = load %f
+            %x_149:f32 = let %130
+            %132:f32 = mul %x_142, %x_147
+            %133:f32 = add %x_149, %132
+            store %f, %133
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_151:i32 = load %b
-            %91:i32 = sub %x_151, 1i
-            store %b, %91
-            next_iteration %b7
+          $B8: {  # continuing
+            %134:i32 = load %b
+            %x_151:i32 = let %134
+            %136:i32 = sub %x_151, 1i
+            store %b, %136
+            next_iteration  # -> $B7
           }
         }
-        %x_153:i32 = load %a
-        %93:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_156:f32 = load %93
-        %95:ptr<function, vec4<f32>, read_write> = access %m, 1i
-        %96:i32 = clamp %x_153, 0i, 3i
-        store_vector_element %95, %96, %x_156
-        %97:ptr<uniform, i32, read> = access %x_15, 0u
-        %x_159:i32 = load %97
-        %99:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %x_161:i32 = load %99
-        %101:bool = eq %x_159, %x_161
-        if %101 [t: %b11] {  # if_3
-          %b11 = block {  # true
-            discard
+        %137:i32 = load %a
+        %x_153:i32 = let %137
+        %139:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %140:f32 = load %139
+        %x_156:f32 = let %140
+        %142:ptr<function, vec4<f32>, read_write> = access %m, 1i
+        %143:i32 = max %x_153, 0i
+        %144:i32 = min %143, 3i
+        store_vector_element %142, %144, %x_156
+        %145:ptr<uniform, i32, read> = access %x_15, 0u
+        %146:i32 = load %145
+        %x_159:i32 = let %146
+        %148:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %149:i32 = load %148
+        %x_161:i32 = let %149
+        %151:bool = eq %x_159, %x_161
+        if %151 [t: $B11] {  # if_3
+          $B11: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
-        %102:ptr<uniform, i32, read> = access %x_15, 0u
-        %x_166:i32 = load %102
-        %104:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_168:i32 = load %104
-        %106:bool = eq %x_166, %x_168
-        if %106 [t: %b12] {  # if_4
-          %b12 = block {  # true
-            discard
+        %152:ptr<uniform, i32, read> = access %x_15, 0u
+        %153:i32 = load %152
+        %x_166:i32 = let %153
+        %155:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %156:i32 = load %155
+        %x_168:i32 = let %156
+        %158:bool = eq %x_166, %x_168
+        if %158 [t: $B12] {  # if_4
+          $B12: {  # true
+            store %continue_execution, false
             exit_if  # if_4
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_172:i32 = load %a
-        %108:i32 = add %x_172, 1i
-        store %a, %108
-        next_iteration %b3
+      $B4: {  # continuing
+        %159:i32 = load %a
+        %x_172:i32 = let %159
+        %161:i32 = add %x_172, 1i
+        store %a, %161
+        next_iteration  # -> $B3
       }
     }
-    %109:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_175:f32 = load %109
+    %162:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %163:f32 = load %162
+    %x_175:f32 = let %163
     store %zero, %x_175
-    %x_176:f32 = load %f
-    %112:ptr<uniform, f32, read> = access %x_7, 0u, 17i, 0u
-    %x_178:f32 = load %112
-    %114:bool = eq %x_176, %x_178
-    %115:bool = eq %114, false
-    if %115 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %116:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_183:f32 = load %116
+    %165:f32 = load %f
+    %x_176:f32 = let %165
+    %167:ptr<uniform, f32, read> = access %x_7, 0u, 17i, 0u
+    %168:f32 = load %167
+    %x_178:f32 = let %168
+    %170:bool = eq %x_176, %x_178
+    %171:bool = eq %170, false
+    if %171 [t: $B13] {  # if_5
+      $B13: {  # true
+        %172:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %173:f32 = load %172
+        %x_183:f32 = let %173
         store %zero, %x_183
         exit_if  # if_5
       }
     }
-    %x_184:f32 = load %f
-    %x_185:f32 = load %zero
-    %120:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-    %x_187:i32 = load %120
-    %x_189:f32 = load %f
-    %123:f32 = convert %x_187
-    %124:vec4<f32> = construct %x_184, %x_185, %123, %x_189
-    store %x_GLF_color, %124
+    %175:f32 = load %f
+    %x_184:f32 = let %175
+    %177:f32 = load %zero
+    %x_185:f32 = let %177
+    %179:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+    %180:i32 = load %179
+    %x_187:i32 = let %180
+    %182:f32 = load %f
+    %x_189:f32 = let %182
+    %184:f32 = convert %x_187
+    %185:vec4<f32> = construct %x_184, %x_185, %184, %x_189
+    store %x_GLF_color, %185
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %126:void = call %main_1
-    %127:vec4<f32> = load %x_GLF_color
-    %128:main_out = construct %127
-    ret %128
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %187:void = call %main_1
+    %188:vec4<f32> = load %x_GLF_color
+    %189:main_out = construct %188
+    %190:bool = load %continue_execution
+    %191:bool = eq %190, false
+    if %191 [t: $B15] {  # if_6
+      $B15: {  # true
+        terminate_invocation
+      }
+    }
+    ret %189
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.msl
index e577e4a..7b4dd4e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,23 +12,23 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%func_ = func():i32 {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %5:i32 = load %x_GLF_global_loop_count
         %6:bool = lt %5, 100i
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %6 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
@@ -36,84 +36,88 @@
         %8:i32 = add %7, 1i
         store %x_GLF_global_loop_count, %8
         %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_78:i32 = load %9
+        %10:i32 = load %9
+        %x_78:i32 = let %10
         ret %x_78
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %11:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_80:i32 = load %11
+    %12:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %13:i32 = load %12
+    %x_80:i32 = let %13
     ret %x_80
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B6: {
     %a:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %15:i32 = load %x_GLF_global_loop_count
-        %16:i32 = add %15, 1i
-        store %x_GLF_global_loop_count, %16
-        if false [t: %b10] {  # if_2
-          %b10 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %17:i32 = load %x_GLF_global_loop_count
+        %18:i32 = add %17, 1i
+        store %x_GLF_global_loop_count, %18
+        if false [t: $B9] {  # if_2
+          $B9: {  # true
             ret
           }
         }
-        continue %b9
+        continue  # -> $B8
       }
-      %b9 = block {  # continuing
-        %x_39:i32 = load %x_GLF_global_loop_count
-        %18:bool = lt %x_39, 100i
-        %19:bool = and true, %18
-        %20:bool = eq %19, false
-        break_if %20 %b8
+      $B8: {  # continuing
+        %19:i32 = load %x_GLF_global_loop_count
+        %x_39:i32 = let %19
+        %21:bool = lt %x_39, 100i
+        %22:bool = and true, %21
+        %23:bool = eq %22, false
+        break_if %23  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
-    %x_42:i32 = call %func_
+    %24:i32 = call %func_
+    %x_42:i32 = let %24
     store %a, %x_42
-    %22:i32 = load %a
-    %23:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %24:i32 = load %23
-    %25:bool = eq %22, %24
-    if %25 [t: %b11, f: %b12] {  # if_3
-      %b11 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:vec4<f32> = construct %28, %31, %34, %37
-        store %x_GLF_color, %38
+    %26:i32 = load %a
+    %27:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %28:i32 = load %27
+    %29:bool = eq %26, %28
+    if %29 [t: $B10, f: $B11] {  # if_3
+      $B10: {  # true
+        %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:f32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:f32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %39:i32 = load %38
+        %40:f32 = convert %39
+        %41:f32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:vec4<f32> = construct %33, %37, %41, %44
+        store %x_GLF_color, %45
         exit_if  # if_3
       }
-      %b12 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:vec4<f32> = construct %41
-        store %x_GLF_color, %42
+      $B11: {  # false
+        %46:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %47:i32 = load %46
+        %48:f32 = convert %47
+        %49:vec4<f32> = construct %48
+        store %x_GLF_color, %49
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.msl
index 8a82f81..d1530bf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-main-function-call/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,108 +12,123 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_72:i32 = load %x_GLF_global_loop_count
-        %6:bool = lt %x_72, 100i
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+%func_ = func():i32 {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %x_GLF_global_loop_count
+        %x_72:i32 = let %5
+        %7:bool = lt %x_72, 100i
+        if %7 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_75:i32 = load %x_GLF_global_loop_count
-        %8:i32 = add %x_75, 1i
-        store %x_GLF_global_loop_count, %8
-        %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_78:i32 = load %9
+        %8:i32 = load %x_GLF_global_loop_count
+        %x_75:i32 = let %8
+        %10:i32 = add %x_75, 1i
+        store %x_GLF_global_loop_count, %10
+        %11:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %12:i32 = load %11
+        %x_78:i32 = let %12
         ret %x_78
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %11:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_80:i32 = load %11
+    %14:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %15:i32 = load %14
+    %x_80:i32 = let %15
     ret %x_80
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B6: {
     %a:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %x_35:i32 = load %x_GLF_global_loop_count
-        %16:i32 = add %x_35, 1i
-        store %x_GLF_global_loop_count, %16
-        if false [t: %b10] {  # if_2
-          %b10 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %19:i32 = load %x_GLF_global_loop_count
+        %x_35:i32 = let %19
+        %21:i32 = add %x_35, 1i
+        store %x_GLF_global_loop_count, %21
+        if false [t: $B9] {  # if_2
+          $B9: {  # true
             ret
           }
         }
-        continue %b9
+        continue  # -> $B8
       }
-      %b9 = block {  # continuing
-        %x_39:i32 = load %x_GLF_global_loop_count
-        %18:bool = lt %x_39, 100i
-        %19:bool = and true, %18
-        %20:bool = eq %19, false
-        break_if %20 %b8
+      $B8: {  # continuing
+        %22:i32 = load %x_GLF_global_loop_count
+        %x_39:i32 = let %22
+        %24:bool = lt %x_39, 100i
+        %25:bool = and true, %24
+        %26:bool = eq %25, false
+        break_if %26  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
-    %x_42:i32 = call %func_
+    %27:i32 = call %func_
+    %x_42:i32 = let %27
     store %a, %x_42
-    %x_43:i32 = load %a
-    %23:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_45:i32 = load %23
-    %25:bool = eq %x_43, %x_45
-    if %25 [t: %b11, f: %b12] {  # if_3
-      %b11 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_51:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_54:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_57:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_60:i32 = load %32
-        %34:f32 = convert %x_51
-        %35:f32 = convert %x_54
-        %36:f32 = convert %x_57
-        %37:f32 = convert %x_60
-        %38:vec4<f32> = construct %34, %35, %36, %37
-        store %x_GLF_color, %38
+    %29:i32 = load %a
+    %x_43:i32 = let %29
+    %31:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %32:i32 = load %31
+    %x_45:i32 = let %32
+    %34:bool = eq %x_43, %x_45
+    if %34 [t: $B10, f: $B11] {  # if_3
+      $B10: {  # true
+        %35:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %36:i32 = load %35
+        %x_51:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %39:i32 = load %38
+        %x_54:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_57:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %45:i32 = load %44
+        %x_60:i32 = let %45
+        %47:f32 = convert %x_51
+        %48:f32 = let %47
+        %49:f32 = convert %x_54
+        %50:f32 = let %49
+        %51:f32 = convert %x_57
+        %52:f32 = let %51
+        %53:f32 = convert %x_60
+        %54:vec4<f32> = construct %48, %50, %52, %53
+        store %x_GLF_color, %54
         exit_if  # if_3
       }
-      %b12 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_64:i32 = load %39
-        %x_65:f32 = convert %x_64
-        %42:vec4<f32> = construct %x_65, %x_65, %x_65, %x_65
-        store %x_GLF_color, %42
+      $B11: {  # false
+        %55:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %56:i32 = load %55
+        %x_64:i32 = let %56
+        %58:f32 = convert %x_64
+        %x_65:f32 = let %58
+        %60:vec4<f32> = construct %x_65, %x_65, %x_65, %x_65
+        store %x_GLF_color, %60
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %62:void = call %main_1
+    %63:vec4<f32> = load %x_GLF_color
+    %64:main_out = construct %63
+    ret %64
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.msl
index af8def1..8ac4bd7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,20 +12,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_23:ptr<function, i32, read_write> = var
     %x_27:ptr<function, i32, read_write> = var
     %x_37:ptr<function, i32, read_write> = var
     %x_45:ptr<function, i32, read_write> = var
     store %x_23, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_24:ptr<function, i32, read_write> = var
         %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
         %10:i32 = load %9
@@ -34,99 +34,102 @@
         %12:i32 = load %x_27
         %13:i32 = sub 100i, %12
         %14:bool = lt %11, %13
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %15:i32 = load %x_23
         %16:i32 = add %15, 1i
         store %x_24, %16
         %17:i32 = load %x_24
         store %x_23, %17
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %x_40:ptr<function, i32, read_write> = var
     %19:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_32:i32 = load %19
+    %20:i32 = load %19
+    %x_32:i32 = let %20
     store %x_45, 1i
-    %21:bool = eq %x_32, 0i
-    if %21 [t: %b7] {  # if_2
-      %b7 = block {  # true
+    %22:bool = eq %x_32, 0i
+    if %22 [t: $B7] {  # if_2
+      $B7: {  # true
         store %x_37, 1i
-        %22:i32 = load %x_23
-        store %x_40, %22
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
+        %23:i32 = load %x_23
+        store %x_40, %23
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
             %x_41:ptr<function, i32, read_write> = var
             %x_38:ptr<function, i32, read_write> = var
-            %25:i32 = load %x_40
-            %26:bool = lt %25, 100i
-            if %26 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+            %26:i32 = load %x_40
+            %27:bool = lt %26, 100i
+            if %27 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            continue %b9
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %27:i32 = load %x_40
-            %28:i32 = add %27, 1i
-            store %x_41, %28
-            %29:i32 = load %x_37
+          $B9: {  # continuing
+            %28:i32 = load %x_40
+            %29:i32 = add %28, 1i
+            store %x_41, %29
             %30:i32 = load %x_37
-            %31:i32 = sub 1i, %30
-            %32:i32 = mul %29, %31
-            store %x_38, %32
-            %33:i32 = load %x_38
-            store %x_37, %33
-            %34:i32 = load %x_41
-            store %x_40, %34
-            next_iteration %b8
+            %31:i32 = load %x_37
+            %32:i32 = sub 1i, %31
+            %33:i32 = mul %30, %32
+            store %x_38, %33
+            %34:i32 = load %x_38
+            store %x_37, %34
+            %35:i32 = load %x_41
+            store %x_40, %35
+            next_iteration  # -> $B8
           }
         }
-        %35:i32 = load %x_37
-        store %x_45, %35
+        %36:i32 = load %x_37
+        store %x_45, %36
         exit_if  # if_2
       }
     }
-    %36:i32 = load %x_45
-    %37:bool = eq %36, %x_32
-    if %37 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %38:i32 = load %x_27
-        %x_50:f32 = convert %38
-        %x_51:f32 = convert %x_32
-        %41:vec4<f32> = construct %x_50, %x_51, %x_51, %x_50
-        store %x_GLF_color, %41
+    %37:i32 = load %x_45
+    %38:bool = eq %37, %x_32
+    if %38 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %39:i32 = load %x_27
+        %40:f32 = convert %39
+        %x_50:f32 = let %40
+        %42:f32 = convert %x_32
+        %x_51:f32 = let %42
+        %44:vec4<f32> = construct %x_50, %x_51, %x_51, %x_50
+        store %x_GLF_color, %44
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %42:f32 = convert %x_32
-        %43:vec4<f32> = construct %42
-        store %x_GLF_color, %43
+      $B13: {  # false
+        %45:f32 = convert %x_32
+        %46:vec4<f32> = construct %45
+        store %x_GLF_color, %46
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.msl
index 76b5b82..b83f013 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-multiply-one-minus/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,21 +12,21 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_23:ptr<function, i32, read_write> = var
     %x_27:ptr<function, i32, read_write> = var
     %x_37:ptr<function, i32, read_write> = var
     %x_23_phi:ptr<function, i32, read_write> = var
     %x_45_phi:ptr<function, i32, read_write> = var
     store %x_23_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_24:ptr<function, i32, read_write> = var
         %10:i32 = load %x_23_phi
         store %x_23, %10
@@ -34,109 +34,117 @@
         %12:i32 = load %11
         store %x_27, %12
         %13:i32 = load %x_23
-        %14:i32 = load %x_27
-        %15:i32 = bitcast %14
-        %16:i32 = sub 100i, %15
-        %17:bool = lt %13, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %14:i32 = let %13
+        %15:i32 = load %x_27
+        %16:i32 = bitcast %15
+        %17:i32 = sub 100i, %16
+        %18:bool = lt %14, %17
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %18:i32 = load %x_23
-        %19:i32 = add %18, 1i
-        %20:i32 = bitcast %19
-        store %x_24, %20
-        %21:i32 = load %x_24
-        store %x_23_phi, %21
-        next_iteration %b3
+      $B4: {  # continuing
+        %19:i32 = load %x_23
+        %20:i32 = add %19, 1i
+        %21:i32 = bitcast %20
+        store %x_24, %21
+        %22:i32 = load %x_24
+        store %x_23_phi, %22
+        next_iteration  # -> $B3
       }
     }
     %x_37_phi:ptr<function, i32, read_write> = var
     %x_40_phi:ptr<function, i32, read_write> = var
-    %24:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_32:i32 = load %24
+    %25:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %26:i32 = load %25
+    %x_32:i32 = let %26
     store %x_45_phi, 1i
-    %26:bool = eq %x_32, 0i
-    if %26 [t: %b7] {  # if_2
-      %b7 = block {  # true
+    %28:bool = eq %x_32, 0i
+    if %28 [t: $B7] {  # if_2
+      $B7: {  # true
         store %x_37_phi, 1i
-        %27:i32 = load %x_23
-        store %x_40_phi, %27
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
+        %29:i32 = load %x_23
+        store %x_40_phi, %29
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
             %x_41:ptr<function, i32, read_write> = var
             %x_38:ptr<function, i32, read_write> = var
-            %30:i32 = load %x_37_phi
-            store %x_37, %30
-            %x_40:i32 = load %x_40_phi
-            %32:bool = lt %x_40, 100i
-            if %32 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+            %32:i32 = load %x_37_phi
+            store %x_37, %32
+            %33:i32 = load %x_40_phi
+            %x_40:i32 = let %33
+            %35:bool = lt %x_40, 100i
+            if %35 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            continue %b9
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %33:i32 = add %x_40, 1i
-            store %x_41, %33
-            %34:i32 = load %x_37
-            %35:i32 = load %x_37
-            %36:i32 = bitcast %35
-            %37:i32 = sub 1i, %36
-            %38:i32 = bitcast %37
-            %39:i32 = mul %34, %38
+          $B9: {  # continuing
+            %36:i32 = add %x_40, 1i
+            store %x_41, %36
+            %37:i32 = load %x_37
+            %38:i32 = let %37
+            %39:i32 = load %x_37
             %40:i32 = bitcast %39
-            store %x_38, %40
-            %41:i32 = load %x_38
-            store %x_37_phi, %41
-            %42:i32 = load %x_41
-            store %x_40_phi, %42
-            next_iteration %b8
+            %41:i32 = sub 1i, %40
+            %42:i32 = bitcast %41
+            %43:i32 = mul %38, %42
+            %44:i32 = bitcast %43
+            store %x_38, %44
+            %45:i32 = load %x_38
+            store %x_37_phi, %45
+            %46:i32 = load %x_41
+            store %x_40_phi, %46
+            next_iteration  # -> $B8
           }
         }
-        %43:i32 = load %x_37
-        store %x_45_phi, %43
+        %47:i32 = load %x_37
+        store %x_45_phi, %47
         exit_if  # if_2
       }
     }
-    %x_45:i32 = load %x_45_phi
-    %45:bool = eq %x_45, %x_32
-    if %45 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %46:i32 = load %x_27
-        %x_50:f32 = convert %46
-        %x_51:f32 = convert %x_32
-        %49:vec4<f32> = construct %x_50, %x_51, %x_51, %x_50
-        store %x_GLF_color, %49
+    %48:i32 = load %x_45_phi
+    %x_45:i32 = let %48
+    %50:bool = eq %x_45, %x_32
+    if %50 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %51:i32 = load %x_27
+        %52:f32 = convert %51
+        %x_50:f32 = let %52
+        %54:f32 = convert %x_32
+        %x_51:f32 = let %54
+        %56:vec4<f32> = construct %x_50, %x_51, %x_51, %x_50
+        store %x_GLF_color, %56
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %x_53:f32 = convert %x_32
-        %51:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
-        store %x_GLF_color, %51
+      $B13: {  # false
+        %57:f32 = convert %x_32
+        %x_53:f32 = let %57
+        %59:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
+        store %x_GLF_color, %59
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %53:void = call %main_1
-    %54:vec4<f32> = load %x_GLF_color
-    %55:main_out = construct %54
-    ret %55
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.msl
index 1d82f36..fc7d680 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,24 +12,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_GLF_global_loop_count, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:i32 = load %x_GLF_global_loop_count
         %6:bool = lt %5, 100i
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -40,55 +40,58 @@
         %10:i32 = load %x_GLF_global_loop_count
         %11:i32 = mul %9, %10
         %12:bool = gt %11, 10i
-        if %12 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     %13:i32 = load %x_GLF_global_loop_count
     %14:bool = eq %13, 4i
-    if %14 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    if %14 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %16:i32 = load %15
         %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %19:i32 = load %18
-        %20:f32 = convert %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:vec4<f32> = construct %17, %20, %23, %26
-        store %x_GLF_color, %27
+        %18:f32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %28:i32 = load %27
+        %29:f32 = convert %28
+        %30:vec4<f32> = construct %18, %22, %26, %29
+        store %x_GLF_color, %30
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:vec4<f32> = construct %30
-        store %x_GLF_color, %31
+      $B9: {  # false
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:vec4<f32> = construct %33
+        store %x_GLF_color, %34
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.msl
index 93e31d3..15e542b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-global-loop-counter-squared-comparison/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,83 +12,97 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_GLF_global_loop_count, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_30:i32 = load %x_GLF_global_loop_count
-        %6:bool = lt %x_30, 100i
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %x_GLF_global_loop_count
+        %x_30:i32 = let %5
+        %7:bool = lt %x_30, 100i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_33:i32 = load %x_GLF_global_loop_count
-        %8:i32 = add %x_33, 1i
-        store %x_GLF_global_loop_count, %8
-        %x_35:i32 = load %x_GLF_global_loop_count
-        %x_36:i32 = load %x_GLF_global_loop_count
-        %11:i32 = mul %x_35, %x_36
-        %12:bool = gt %11, 10i
-        if %12 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %8:i32 = load %x_GLF_global_loop_count
+        %x_33:i32 = let %8
+        %10:i32 = add %x_33, 1i
+        store %x_GLF_global_loop_count, %10
+        %11:i32 = load %x_GLF_global_loop_count
+        %x_35:i32 = let %11
+        %13:i32 = load %x_GLF_global_loop_count
+        %x_36:i32 = let %13
+        %15:i32 = mul %x_35, %x_36
+        %16:bool = gt %15, 10i
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_41:i32 = load %x_GLF_global_loop_count
-    %14:bool = eq %x_41, 4i
-    if %14 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_47:i32 = load %15
-        %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_50:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_53:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_56:i32 = load %21
-        %23:f32 = convert %x_47
-        %24:f32 = convert %x_50
-        %25:f32 = convert %x_53
-        %26:f32 = convert %x_56
-        %27:vec4<f32> = construct %23, %24, %25, %26
-        store %x_GLF_color, %27
+    %17:i32 = load %x_GLF_global_loop_count
+    %x_41:i32 = let %17
+    %19:bool = eq %x_41, 4i
+    if %19 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %21:i32 = load %20
+        %x_47:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %24:i32 = load %23
+        %x_50:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %27:i32 = load %26
+        %x_53:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_56:i32 = let %30
+        %32:f32 = convert %x_47
+        %33:f32 = let %32
+        %34:f32 = convert %x_50
+        %35:f32 = let %34
+        %36:f32 = convert %x_53
+        %37:f32 = let %36
+        %38:f32 = convert %x_56
+        %39:vec4<f32> = construct %33, %35, %37, %38
+        store %x_GLF_color, %39
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_60:i32 = load %28
-        %x_61:f32 = convert %x_60
-        %31:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
-        store %x_GLF_color, %31
+      $B9: {  # false
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %x_60:i32 = let %41
+        %43:f32 = convert %x_60
+        %x_61:f32 = let %43
+        %45:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
+        store %x_GLF_color, %45
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.msl
index 27a4026..4c00e04 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,27 +8,27 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u
     %6:i32 = load %5
     store %a, %6
     %7:i32 = load %a
     %8:bool = eq %7, 0i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %9:i32 = load %a
         %10:i32 = add %9, 1i
         store %a, %10
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %11:i32 = load %a
         %12:i32 = add %11, 1i
         store %a, %12
@@ -37,12 +37,12 @@
     }
     %13:i32 = load %a
     %14:bool = eq %13, 1i
-    if %14 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    if %14 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -50,8 +50,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func():main_out {
+  $B7: {
     %16:void = call %main_1
     %17:vec4<f32> = load %x_GLF_color
     %18:main_out = construct %17
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.msl
index 7debedb..5124d47 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-conversion-identical-branches/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,41 +8,46 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_25:i32 = load %5
+    %6:i32 = load %5
+    %x_25:i32 = let %6
     store %a, %x_25
-    %x_26:i32 = load %a
-    %8:bool = eq %x_26, 0i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_31:i32 = load %a
-        %10:i32 = add %x_31, 1i
-        store %a, %10
+    %8:i32 = load %a
+    %x_26:i32 = let %8
+    %10:bool = eq %x_26, 0i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %11:i32 = load %a
+        %x_31:i32 = let %11
+        %13:i32 = add %x_31, 1i
+        store %a, %13
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_33:i32 = load %a
-        %12:i32 = add %x_33, 1i
-        store %a, %12
+      $B4: {  # false
+        %14:i32 = load %a
+        %x_33:i32 = let %14
+        %16:i32 = add %x_33, 1i
+        store %a, %16
         exit_if  # if_1
       }
     }
-    %x_35:i32 = load %a
-    %14:bool = eq %x_35, 1i
-    if %14 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %17:i32 = load %a
+    %x_35:i32 = let %17
+    %19:bool = eq %x_35, 1i
+    if %19 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -50,12 +55,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.msl
index 3a2c99a..def65b7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,66 +20,70 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
     %7:f32 = load %6
     %8:vec4<f32> = construct %7
     store %x_GLF_color, %8
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %9
-    %11:f32 = load_vector_element %gl_FragCoord, 1u
-    %12:bool = gte %11, %x_36
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %13:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_41:i32 = load %13
-        switch %x_41 [c: (0i 16i, %b4), c: (default, %b5)] {  # switch_1
-          %b4 = block {  # case
-            %15:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-            %16:i32 = load %15
-            %x_46:f32 = convert %16
-            %x_47:f32 = convert %x_41
-            %19:vec4<f32> = construct %x_46, %x_47, %x_47, %x_46
-            store %x_GLF_color, %19
+    %10:f32 = load %9
+    %x_36:f32 = let %10
+    %12:f32 = load_vector_element %gl_FragCoord, 1u
+    %13:bool = gte %12, %x_36
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %15:i32 = load %14
+        %x_41:i32 = let %15
+        switch %x_41 [c: (0i 16i, $B4), c: (default, $B5)] {  # switch_1
+          $B4: {  # case
+            %17:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+            %18:i32 = load %17
+            %19:f32 = convert %18
+            %x_46:f32 = let %19
+            %21:f32 = convert %x_41
+            %x_47:f32 = let %21
+            %23:vec4<f32> = construct %x_46, %x_47, %x_47, %x_46
+            store %x_GLF_color, %23
             exit_switch  # switch_1
           }
-          %b5 = block {  # case
+          $B5: {  # case
             exit_switch  # switch_1
           }
         }
         exit_if  # if_1
       }
     }
-    %20:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %21:i32 = load %20
-    %22:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %23:i32 = load %22
-    %24:bool = eq %21, %23
-    if %24 [t: %b6] {  # if_2
-      %b6 = block {  # true
-        %25:vec4<f32> = construct %x_36
-        store %x_GLF_color, %25
+    %24:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %25:i32 = load %24
+    %26:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %27:i32 = load %26
+    %28:bool = eq %25, %27
+    if %28 [t: $B6] {  # if_2
+      $B6: {  # true
+        %29:vec4<f32> = construct %x_36
+        store %x_GLF_color, %29
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.msl
index c21056c..c0836ed 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-switch-fallthrough/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,66 +20,75 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_31:f32 = load %6
-    %8:vec4<f32> = construct %x_31, %x_31, %x_31, %x_31
-    store %x_GLF_color, %8
-    %x_34:f32 = load_vector_element %gl_FragCoord, 1u
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %10
-    %12:bool = gte %x_34, %x_36
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %13:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_41:i32 = load %13
-        switch %x_41 [c: (0i 16i, %b4), c: (default, %b5)] {  # switch_1
-          %b4 = block {  # case
-            %15:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-            %x_45:i32 = load %15
-            %x_46:f32 = convert %x_45
-            %x_47:f32 = convert %x_41
-            %19:vec4<f32> = construct %x_46, %x_47, %x_47, %x_46
-            store %x_GLF_color, %19
+    %7:f32 = load %6
+    %x_31:f32 = let %7
+    %9:vec4<f32> = construct %x_31, %x_31, %x_31, %x_31
+    store %x_GLF_color, %9
+    %10:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_34:f32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %13:f32 = load %12
+    %x_36:f32 = let %13
+    %15:bool = gte %x_34, %x_36
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %17:i32 = load %16
+        %x_41:i32 = let %17
+        switch %x_41 [c: (0i 16i, $B4), c: (default, $B5)] {  # switch_1
+          $B4: {  # case
+            %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+            %20:i32 = load %19
+            %x_45:i32 = let %20
+            %22:f32 = convert %x_45
+            %x_46:f32 = let %22
+            %24:f32 = convert %x_41
+            %x_47:f32 = let %24
+            %26:vec4<f32> = construct %x_46, %x_47, %x_47, %x_46
+            store %x_GLF_color, %26
             exit_switch  # switch_1
           }
-          %b5 = block {  # case
+          $B5: {  # case
             exit_switch  # switch_1
           }
         }
         exit_if  # if_1
       }
     }
-    %20:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_50:i32 = load %20
-    %22:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_52:i32 = load %22
-    %24:bool = eq %x_50, %x_52
-    if %24 [t: %b6] {  # if_2
-      %b6 = block {  # true
-        %25:vec4<f32> = construct %x_36, %x_36, %x_36, %x_36
-        store %x_GLF_color, %25
+    %27:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %28:i32 = load %27
+    %x_50:i32 = let %28
+    %30:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %31:i32 = load %30
+    %x_52:i32 = let %31
+    %33:bool = eq %x_50, %x_52
+    if %33 [t: $B6] {  # if_2
+      $B6: {  # true
+        %34:vec4<f32> = construct %x_36, %x_36, %x_36, %x_36
+        store %x_GLF_color, %34
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.msl
index 35562ef..f36b6b2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
@@ -33,16 +33,16 @@
     %13:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %14:i32 = load %13
     store %c, %14
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %15:i32 = load %a
         %16:i32 = load %b
         %17:bool = lt %15, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -53,8 +53,8 @@
         %21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %22:i32 = load %21
         %23:bool = eq %20, %22
-        if %23 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        if %23 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %24:i32 = load %c
             %25:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
             %26:i32 = load %25
@@ -62,74 +62,78 @@
             store %c, %27
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            if true [t: %b9] {  # if_3
-              %b9 = block {  # true
-                continue %b4
+          $B8: {  # false
+            if true [t: $B9] {  # if_3
+              $B9: {  # true
+                continue  # -> $B4
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     %28:i32 = load %a
     %29:i32 = load %b
-    %x_59:bool = eq %28, %29
+    %30:bool = eq %28, %29
+    %x_59:bool = let %30
     store %x_66, %x_59
-    if %x_59 [t: %b10] {  # if_4
-      %b10 = block {  # true
-        %31:i32 = load %c
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %33:i32 = load %32
-        %34:bool = eq %31, %33
-        store %x_65, %34
-        %35:bool = load %x_65
-        store %x_66, %35
+    if %x_59 [t: $B10] {  # if_4
+      $B10: {  # true
+        %32:i32 = load %c
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %34:i32 = load %33
+        %35:bool = eq %32, %34
+        store %x_65, %35
+        %36:bool = load %x_65
+        store %x_66, %36
         exit_if  # if_4
       }
     }
-    %36:bool = load %x_66
-    if %36 [t: %b11, f: %b12] {  # if_5
-      %b11 = block {  # true
-        %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %41:i32 = load %40
-        %42:f32 = convert %41
-        %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %44:i32 = load %43
-        %45:f32 = convert %44
-        %46:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %37:bool = load %x_66
+    if %37 [t: $B11, f: $B12] {  # if_5
+      $B11: {  # true
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %39:i32 = load %38
+        %40:f32 = convert %39
+        %41:f32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:f32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %47:i32 = load %46
         %48:f32 = convert %47
-        %49:vec4<f32> = construct %39, %42, %45, %48
-        store %x_GLF_color, %49
-        exit_if  # if_5
-      }
-      %b12 = block {  # false
-        %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %49:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %51:i32 = load %50
         %52:f32 = convert %51
-        %53:vec4<f32> = construct %52
+        %53:vec4<f32> = construct %41, %45, %49, %52
         store %x_GLF_color, %53
         exit_if  # if_5
       }
+      $B12: {  # false
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:vec4<f32> = construct %56
+        store %x_GLF_color, %57
+        exit_if  # if_5
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %55:void = call %main_1
-    %56:vec4<f32> = load %x_GLF_color
-    %57:main_out = construct %56
-    ret %57
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.msl
index 4bc7b18..dd3f4f0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-continue/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,124 +12,149 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
     %x_65:ptr<function, bool, read_write> = var
     %x_66_phi:ptr<function, bool, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:i32 = load %9
+    %10:i32 = load %9
+    %x_29:i32 = let %10
     store %a, %x_29
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_31:i32 = load %11
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_31:i32 = let %13
     store %b, %x_31
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_33:i32 = load %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %16:i32 = load %15
+    %x_33:i32 = let %16
     store %c, %x_33
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_38:i32 = load %a
-        %x_39:i32 = load %b
-        %17:bool = lt %x_38, %x_39
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %18:i32 = load %a
+        %x_38:i32 = let %18
+        %20:i32 = load %b
+        %x_39:i32 = let %20
+        %22:bool = lt %x_38, %x_39
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_42:i32 = load %a
-        %19:i32 = add %x_42, 1i
-        store %a, %19
-        %x_44:i32 = load %c
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_46:i32 = load %21
-        %23:bool = eq %x_44, %x_46
-        if %23 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %24:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_52:i32 = load %24
-            %x_53:i32 = load %c
-            %27:i32 = mul %x_53, %x_52
-            store %c, %27
+        %23:i32 = load %a
+        %x_42:i32 = let %23
+        %25:i32 = add %x_42, 1i
+        store %a, %25
+        %26:i32 = load %c
+        %x_44:i32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %29:i32 = load %28
+        %x_46:i32 = let %29
+        %31:bool = eq %x_44, %x_46
+        if %31 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %32:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %33:i32 = load %32
+            %x_52:i32 = let %33
+            %35:i32 = load %c
+            %x_53:i32 = let %35
+            %37:i32 = mul %x_53, %x_52
+            store %c, %37
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            if true [t: %b9] {  # if_3
-              %b9 = block {  # true
-                continue %b4
+          $B8: {  # false
+            if true [t: $B9] {  # if_3
+              $B9: {  # true
+                continue  # -> $B4
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_57:i32 = load %a
-    %x_58:i32 = load %b
-    %x_59:bool = eq %x_57, %x_58
+    %38:i32 = load %a
+    %x_57:i32 = let %38
+    %40:i32 = load %b
+    %x_58:i32 = let %40
+    %42:bool = eq %x_57, %x_58
+    %x_59:bool = let %42
     store %x_66_phi, %x_59
-    if %x_59 [t: %b10] {  # if_4
-      %b10 = block {  # true
-        %x_62:i32 = load %c
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_64:i32 = load %32
-        %34:bool = eq %x_62, %x_64
-        store %x_65, %34
-        %35:bool = load %x_65
-        store %x_66_phi, %35
+    if %x_59 [t: $B10] {  # if_4
+      $B10: {  # true
+        %44:i32 = load %c
+        %x_62:i32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %47:i32 = load %46
+        %x_64:i32 = let %47
+        %49:bool = eq %x_62, %x_64
+        store %x_65, %49
+        %50:bool = load %x_65
+        store %x_66_phi, %50
         exit_if  # if_4
       }
     }
-    %x_66:bool = load %x_66_phi
-    if %x_66 [t: %b11, f: %b12] {  # if_5
-      %b11 = block {  # true
-        %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_71:i32 = load %37
-        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_74:i32 = load %39
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_77:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_80:i32 = load %43
-        %45:f32 = convert %x_71
-        %46:f32 = convert %x_74
-        %47:f32 = convert %x_77
-        %48:f32 = convert %x_80
-        %49:vec4<f32> = construct %45, %46, %47, %48
-        store %x_GLF_color, %49
+    %51:bool = load %x_66_phi
+    %x_66:bool = let %51
+    if %x_66 [t: $B11, f: $B12] {  # if_5
+      $B11: {  # true
+        %53:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %54:i32 = load %53
+        %x_71:i32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %57:i32 = load %56
+        %x_74:i32 = let %57
+        %59:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %60:i32 = load %59
+        %x_77:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %63:i32 = load %62
+        %x_80:i32 = let %63
+        %65:f32 = convert %x_71
+        %66:f32 = let %65
+        %67:f32 = convert %x_74
+        %68:f32 = let %67
+        %69:f32 = convert %x_77
+        %70:f32 = let %69
+        %71:f32 = convert %x_80
+        %72:vec4<f32> = construct %66, %68, %70, %71
+        store %x_GLF_color, %72
         exit_if  # if_5
       }
-      %b12 = block {  # false
-        %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_84:i32 = load %50
-        %x_85:f32 = convert %x_84
-        %53:vec4<f32> = construct %x_85, %x_85, %x_85, %x_85
-        store %x_GLF_color, %53
+      $B12: {  # false
+        %73:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %74:i32 = load %73
+        %x_84:i32 = let %74
+        %76:f32 = convert %x_84
+        %x_85:f32 = let %76
+        %78:vec4<f32> = construct %x_85, %x_85, %x_85, %x_85
+        store %x_GLF_color, %78
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %55:void = call %main_1
-    %56:vec4<f32> = load %x_GLF_color
-    %57:main_out = construct %56
-    ret %57
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.msl
index 15d2ea5..a82c966 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,79 +12,90 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %a, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %5:i32 = load %a
-        %6:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %7:i32 = load %6
-        %8:bool = gte %5, %7
-        if %8 [t: %b5] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %a
+        %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %8:i32 = load %7
+        %9:bool = gte %6, %8
+        if %9 [t: $B5] {  # if_1
+          $B5: {  # true
             exit_loop  # loop_1
           }
         }
-        if true [t: %b6] {  # if_2
-          %b6 = block {  # true
-            discard
+        if true [t: $B6] {  # if_2
+          $B6: {  # true
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %9:i32 = load %a
-        %10:i32 = add %9, 1i
-        store %a, %10
-        continue %b4
+        %10:i32 = load %a
+        %11:i32 = add %10, 1i
+        store %a, %11
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_39:i32 = load %a
-        %12:bool = neq %x_39, 1i
-        %13:bool = eq %12, false
-        break_if %13 %b3
+      $B4: {  # continuing
+        %12:i32 = load %a
+        %x_39:i32 = let %12
+        %14:bool = neq %x_39, 1i
+        %15:bool = eq %14, false
+        break_if %15  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %14:i32 = load %a
-    %15:bool = eq %14, 1i
-    if %15 [t: %b7, f: %b8] {  # if_3
-      %b7 = block {  # true
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %17:i32 = load %16
-        %18:f32 = convert %17
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %20:i32 = load %19
-        %21:f32 = convert %20
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %16:i32 = load %a
+    %17:bool = eq %16, 1i
+    if %17 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
+        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %19:i32 = load %18
+        %20:f32 = convert %19
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %23:i32 = load %22
         %24:f32 = convert %23
-        %25:vec4<f32> = construct 1.0f, %18, %21, %24
-        store %x_GLF_color, %25
-        exit_if  # if_3
-      }
-      %b8 = block {  # false
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %25:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %27:i32 = load %26
         %28:f32 = convert %27
-        %29:vec4<f32> = construct %28
+        %29:vec4<f32> = construct 1.0f, %21, %25, %28
         store %x_GLF_color, %29
         exit_if  # if_3
       }
+      $B8: {  # false
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:vec4<f32> = construct %32
+        store %x_GLF_color, %33
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %31:void = call %main_1
-    %32:vec4<f32> = load %x_GLF_color
-    %33:main_out = construct %32
-    ret %33
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    %38:bool = load %continue_execution
+    %39:bool = eq %38, false
+    if %39 [t: $B10] {  # if_4
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %37
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.msl
index 3a4824c..de228ef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-if-true-discard-in-do-while-never-reached/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,79 +12,99 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %a, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_29:i32 = load %a
-        %6:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_31:i32 = load %6
-        %8:bool = gte %x_29, %x_31
-        if %8 [t: %b5] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %a
+        %x_29:i32 = let %6
+        %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %9:i32 = load %8
+        %x_31:i32 = let %9
+        %11:bool = gte %x_29, %x_31
+        if %11 [t: $B5] {  # if_1
+          $B5: {  # true
             exit_loop  # loop_1
           }
         }
-        if true [t: %b6] {  # if_2
-          %b6 = block {  # true
-            discard
+        if true [t: $B6] {  # if_2
+          $B6: {  # true
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %x_37:i32 = load %a
-        %10:i32 = add %x_37, 1i
-        store %a, %10
-        continue %b4
+        %12:i32 = load %a
+        %x_37:i32 = let %12
+        %14:i32 = add %x_37, 1i
+        store %a, %14
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_39:i32 = load %a
-        %12:bool = neq %x_39, 1i
-        %13:bool = eq %12, false
-        break_if %13 %b3
+      $B4: {  # continuing
+        %15:i32 = load %a
+        %x_39:i32 = let %15
+        %17:bool = neq %x_39, 1i
+        %18:bool = eq %17, false
+        break_if %18  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %x_41:i32 = load %a
-    %15:bool = eq %x_41, 1i
-    if %15 [t: %b7, f: %b8] {  # if_3
-      %b7 = block {  # true
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_47:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_50:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_53:i32 = load %20
-        %22:f32 = convert %x_47
-        %23:f32 = convert %x_50
-        %24:f32 = convert %x_53
-        %25:vec4<f32> = construct 1.0f, %22, %23, %24
-        store %x_GLF_color, %25
+    %19:i32 = load %a
+    %x_41:i32 = let %19
+    %21:bool = eq %x_41, 1i
+    if %21 [t: $B7, f: $B8] {  # if_3
+      $B7: {  # true
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %23:i32 = load %22
+        %x_47:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %26:i32 = load %25
+        %x_50:i32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %29:i32 = load %28
+        %x_53:i32 = let %29
+        %31:f32 = convert %x_47
+        %32:f32 = let %31
+        %33:f32 = convert %x_50
+        %34:f32 = let %33
+        %35:f32 = convert %x_53
+        %36:vec4<f32> = construct 1.0f, %32, %34, %35
+        store %x_GLF_color, %36
         exit_if  # if_3
       }
-      %b8 = block {  # false
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_57:i32 = load %26
-        %x_58:f32 = convert %x_57
-        %29:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-        store %x_GLF_color, %29
+      $B8: {  # false
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %38:i32 = load %37
+        %x_57:i32 = let %38
+        %40:f32 = convert %x_57
+        %x_58:f32 = let %40
+        %42:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+        store %x_GLF_color, %42
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %31:void = call %main_1
-    %32:vec4<f32> = load %x_GLF_color
-    %33:main_out = construct %32
-    ret %33
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    %47:bool = load %continue_execution
+    %48:bool = eq %47, false
+    if %48 [t: $B10] {  # if_4
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.msl
index ff350fd..83e9bb9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:i32 @offset(0)
 }
 
@@ -8,61 +8,62 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:i32 = load %i
         %7:ptr<uniform, i32, read> = access %x_7, 0u
         %8:i32 = load %7
         %9:i32 = add 7i, %8
         %10:bool = lt %6, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_37:i32 = load %i
-        switch %x_37 [c: (7i 8i, %b7), c: (default, %b8)] {  # switch_1
-          %b7 = block {  # case
-            %12:i32 = load %a
-            %13:i32 = add %12, 1i
-            store %a, %13
+        %11:i32 = load %i
+        %x_37:i32 = let %11
+        switch %x_37 [c: (7i 8i, $B7), c: (default, $B8)] {  # switch_1
+          $B7: {  # case
+            %13:i32 = load %a
+            %14:i32 = add %13, 1i
+            store %a, %14
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
+          $B8: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %14:i32 = load %i
-        %15:i32 = add %14, 1i
-        store %i, %15
-        next_iteration %b3
+      $B4: {  # continuing
+        %15:i32 = load %i
+        %16:i32 = add %15, 1i
+        store %i, %16
+        next_iteration  # -> $B3
       }
     }
-    %16:i32 = load %a
-    %17:bool = eq %16, 2i
-    if %17 [t: %b9, f: %b10] {  # if_2
-      %b9 = block {  # true
+    %17:i32 = load %a
+    %18:bool = eq %17, 2i
+    if %18 [t: $B9, f: $B10] {  # if_2
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -70,12 +71,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.msl
index 13e34a6..cfccad2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inc-inside-switch-and-for/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:i32 @offset(0)
 }
 
@@ -8,61 +8,67 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_31:i32 = load %i
-        %7:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_33:i32 = load %7
-        %9:i32 = add 7i, %x_33
-        %10:bool = lt %x_31, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %x_31:i32 = let %6
+        %8:ptr<uniform, i32, read> = access %x_7, 0u
+        %9:i32 = load %8
+        %x_33:i32 = let %9
+        %11:i32 = add 7i, %x_33
+        %12:bool = lt %x_31, %11
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_37:i32 = load %i
-        switch %x_37 [c: (7i 8i, %b7), c: (default, %b8)] {  # switch_1
-          %b7 = block {  # case
-            %x_40:i32 = load %a
-            %13:i32 = add %x_40, 1i
-            store %a, %13
+        %13:i32 = load %i
+        %x_37:i32 = let %13
+        switch %x_37 [c: (7i 8i, $B7), c: (default, $B8)] {  # switch_1
+          $B7: {  # case
+            %15:i32 = load %a
+            %x_40:i32 = let %15
+            %17:i32 = add %x_40, 1i
+            store %a, %17
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
+          $B8: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_42:i32 = load %i
-        %15:i32 = add %x_42, 1i
-        store %i, %15
-        next_iteration %b3
+      $B4: {  # continuing
+        %18:i32 = load %i
+        %x_42:i32 = let %18
+        %20:i32 = add %x_42, 1i
+        store %i, %20
+        next_iteration  # -> $B3
       }
     }
-    %x_44:i32 = load %a
-    %17:bool = eq %x_44, 2i
-    if %17 [t: %b9, f: %b10] {  # if_2
-      %b9 = block {  # true
+    %21:i32 = load %a
+    %x_44:i32 = let %21
+    %23:bool = eq %x_44, 2i
+    if %23 [t: $B9, f: $B10] {  # if_2
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -70,12 +76,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    ret %27
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.msl
index 53a68a5..9de0d02 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<f32, 3>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %x_69:ptr<function, bool, read_write> = var
@@ -43,109 +43,111 @@
     %17:array<f32, 3> = construct %12, %14, %16
     store %arr, %17
     store %a, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %18:i32 = load %a
         %19:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %20:i32 = load %19
         %21:bool = lte %18, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %21 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_49:i32 = load %a
-        %23:i32 = load %a
-        %24:i32 = add %23, 1i
-        store %a, %24
-        %25:ptr<function, f32, read_write> = access %arr, %x_49
-        %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %27:f32 = load %26
-        store %25, %27
-        continue %b4
+        %22:i32 = load %a
+        %x_49:i32 = let %22
+        %24:i32 = load %a
+        %25:i32 = add %24, 1i
+        store %a, %25
+        %26:ptr<function, f32, read_write> = access %arr, %x_49
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %28:f32 = load %27
+        store %26, %28
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %28:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %29:i32 = load %28
-    %30:ptr<function, f32, read_write> = access %arr, %29
-    %31:f32 = load %30
-    %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %33:f32 = load %32
-    %x_60:bool = eq %31, %33
+    %29:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %30:i32 = load %29
+    %31:ptr<function, f32, read_write> = access %arr, %30
+    %32:f32 = load %31
+    %33:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %34:f32 = load %33
+    %35:bool = eq %32, %34
+    %x_60:bool = let %35
     store %x_70, %x_60
-    if %x_60 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %35:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %36:i32 = load %35
-        %37:ptr<function, f32, read_write> = access %arr, %36
-        %38:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    if %x_60 [t: $B7] {  # if_2
+      $B7: {  # true
+        %37:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %38:i32 = load %37
+        %39:ptr<function, f32, read_write> = access %arr, %38
         %40:f32 = load %39
-        %41:bool = eq %38, %40
-        store %x_69, %41
-        %42:bool = load %x_69
-        store %x_70, %42
+        %41:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %42:f32 = load %41
+        %43:bool = eq %40, %42
+        store %x_69, %43
+        %44:bool = load %x_69
+        store %x_70, %44
         exit_if  # if_2
       }
     }
-    %43:bool = load %x_70
-    store %x_80, %43
-    %44:bool = load %x_70
-    if %44 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %46:i32 = load %45
-        %47:ptr<function, f32, read_write> = access %arr, %46
-        %48:f32 = load %47
-        %49:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %45:bool = load %x_70
+    store %x_80, %45
+    %46:bool = load %x_70
+    if %46 [t: $B8] {  # if_3
+      $B8: {  # true
+        %47:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %48:i32 = load %47
+        %49:ptr<function, f32, read_write> = access %arr, %48
         %50:f32 = load %49
-        %51:bool = eq %48, %50
-        store %x_79, %51
-        %52:bool = load %x_79
-        store %x_80, %52
+        %51:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %52:f32 = load %51
+        %53:bool = eq %50, %52
+        store %x_79, %53
+        %54:bool = load %x_79
+        store %x_80, %54
         exit_if  # if_3
       }
     }
-    %53:bool = load %x_80
-    if %53 [t: %b9, f: %b10] {  # if_4
-      %b9 = block {  # true
-        %54:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %55:i32 = load %54
-        %56:ptr<function, f32, read_write> = access %arr, %55
-        %57:f32 = load %56
-        %58:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %55:bool = load %x_80
+    if %55 [t: $B9, f: $B10] {  # if_4
+      $B9: {  # true
+        %56:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %57:i32 = load %56
+        %58:ptr<function, f32, read_write> = access %arr, %57
         %59:f32 = load %58
         %60:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
         %61:f32 = load %60
-        %62:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %62:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
         %63:f32 = load %62
-        %64:vec4<f32> = construct %57, %59, %61, %63
-        store %x_GLF_color, %64
+        %64:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %65:f32 = load %64
+        %66:vec4<f32> = construct %59, %61, %63, %65
+        store %x_GLF_color, %66
         exit_if  # if_4
       }
-      %b10 = block {  # false
-        %65:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %66:f32 = load %65
-        %67:vec4<f32> = construct %66
-        store %x_GLF_color, %67
+      $B10: {  # false
+        %67:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %68:f32 = load %67
+        %69:vec4<f32> = construct %68
+        store %x_GLF_color, %69
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %71:void = call %main_1
+    %72:vec4<f32> = load %x_GLF_color
+    %73:main_out = construct %72
+    ret %73
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.msl
index 3aa1490..d5c7ca5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-array-element-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<f32, 3>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %x_69:ptr<function, bool, read_write> = var
@@ -35,115 +35,140 @@
     %x_70_phi:ptr<function, bool, read_write> = var
     %x_80_phi:ptr<function, bool, read_write> = var
     %11:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_34:f32 = load %11
-    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_38:f32 = load %15
-    %17:array<f32, 3> = construct %x_34, %x_36, %x_38
-    store %arr, %17
+    %12:f32 = load %11
+    %x_34:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %15:f32 = load %14
+    %x_36:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %18:f32 = load %17
+    %x_38:f32 = let %18
+    %20:array<f32, 3> = construct %x_34, %x_36, %x_38
+    store %arr, %20
     store %a, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_44:i32 = load %a
-        %19:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_46:i32 = load %19
-        %21:bool = lte %x_44, %x_46
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %21:i32 = load %a
+        %x_44:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %24:i32 = load %23
+        %x_46:i32 = let %24
+        %26:bool = lte %x_44, %x_46
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_49:i32 = load %a
-        %23:i32 = add %x_49, 1i
-        store %a, %23
-        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_52:f32 = load %24
-        %26:ptr<function, f32, read_write> = access %arr, %x_49
-        store %26, %x_52
-        continue %b4
+        %27:i32 = load %a
+        %x_49:i32 = let %27
+        %29:i32 = add %x_49, 1i
+        store %a, %29
+        %30:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %31:f32 = load %30
+        %x_52:f32 = let %31
+        %33:ptr<function, f32, read_write> = access %arr, %x_49
+        store %33, %x_52
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_55:i32 = load %27
-    %29:ptr<function, f32, read_write> = access %arr, %x_55
-    %x_57:f32 = load %29
-    %31:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_59:f32 = load %31
-    %x_60:bool = eq %x_57, %x_59
+    %34:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %35:i32 = load %34
+    %x_55:i32 = let %35
+    %37:ptr<function, f32, read_write> = access %arr, %x_55
+    %38:f32 = load %37
+    %x_57:f32 = let %38
+    %40:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %41:f32 = load %40
+    %x_59:f32 = let %41
+    %43:bool = eq %x_57, %x_59
+    %x_60:bool = let %43
     store %x_70_phi, %x_60
-    if %x_60 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_64:i32 = load %34
-        %36:ptr<function, f32, read_write> = access %arr, %x_64
-        %x_66:f32 = load %36
-        %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_68:f32 = load %38
-        %40:bool = eq %x_66, %x_68
-        store %x_69, %40
-        %41:bool = load %x_69
-        store %x_70_phi, %41
+    if %x_60 [t: $B7] {  # if_2
+      $B7: {  # true
+        %45:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %46:i32 = load %45
+        %x_64:i32 = let %46
+        %48:ptr<function, f32, read_write> = access %arr, %x_64
+        %49:f32 = load %48
+        %x_66:f32 = let %49
+        %51:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %52:f32 = load %51
+        %x_68:f32 = let %52
+        %54:bool = eq %x_66, %x_68
+        store %x_69, %54
+        %55:bool = load %x_69
+        store %x_70_phi, %55
         exit_if  # if_2
       }
     }
-    %x_70:bool = load %x_70_phi
+    %56:bool = load %x_70_phi
+    %x_70:bool = let %56
     store %x_80_phi, %x_70
-    if %x_70 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %43:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_74:i32 = load %43
-        %45:ptr<function, f32, read_write> = access %arr, %x_74
-        %x_76:f32 = load %45
-        %47:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_78:f32 = load %47
-        %49:bool = eq %x_76, %x_78
-        store %x_79, %49
-        %50:bool = load %x_79
-        store %x_80_phi, %50
+    if %x_70 [t: $B8] {  # if_3
+      $B8: {  # true
+        %58:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %59:i32 = load %58
+        %x_74:i32 = let %59
+        %61:ptr<function, f32, read_write> = access %arr, %x_74
+        %62:f32 = load %61
+        %x_76:f32 = let %62
+        %64:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %65:f32 = load %64
+        %x_78:f32 = let %65
+        %67:bool = eq %x_76, %x_78
+        store %x_79, %67
+        %68:bool = load %x_79
+        store %x_80_phi, %68
         exit_if  # if_3
       }
     }
-    %x_80:bool = load %x_80_phi
-    if %x_80 [t: %b9, f: %b10] {  # if_4
-      %b9 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_85:i32 = load %52
-        %54:ptr<function, f32, read_write> = access %arr, %x_85
-        %x_87:f32 = load %54
-        %56:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_89:f32 = load %56
-        %58:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_91:f32 = load %58
-        %60:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_93:f32 = load %60
-        %62:vec4<f32> = construct %x_87, %x_89, %x_91, %x_93
-        store %x_GLF_color, %62
+    %69:bool = load %x_80_phi
+    %x_80:bool = let %69
+    if %x_80 [t: $B9, f: $B10] {  # if_4
+      $B9: {  # true
+        %71:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %72:i32 = load %71
+        %x_85:i32 = let %72
+        %74:ptr<function, f32, read_write> = access %arr, %x_85
+        %75:f32 = load %74
+        %x_87:f32 = let %75
+        %77:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %78:f32 = load %77
+        %x_89:f32 = let %78
+        %80:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %81:f32 = load %80
+        %x_91:f32 = let %81
+        %83:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %84:f32 = load %83
+        %x_93:f32 = let %84
+        %86:vec4<f32> = construct %x_87, %x_89, %x_91, %x_93
+        store %x_GLF_color, %86
         exit_if  # if_4
       }
-      %b10 = block {  # false
-        %63:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_96:f32 = load %63
-        %65:vec4<f32> = construct %x_96, %x_96, %x_96, %x_96
-        store %x_GLF_color, %65
+      $B10: {  # false
+        %87:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %88:f32 = load %87
+        %x_96:f32 = let %88
+        %90:vec4<f32> = construct %x_96, %x_96, %x_96, %x_96
+        store %x_GLF_color, %90
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %67:void = call %main_1
-    %68:vec4<f32> = load %x_GLF_color
-    %69:main_out = construct %68
-    ret %69
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %92:void = call %main_1
+    %93:vec4<f32> = load %x_GLF_color
+    %94:main_out = construct %93
+    ret %94
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.msl
index 9d7fbbc..51275f6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f0:ptr<function, f32, read_write> = var
     %f1:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -42,17 +42,17 @@
     %14:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
     %15:i32 = load %14
     store %i, %15
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %16:i32 = load %i
         %17:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %18:i32 = load %17
         %19:bool = lt %16, %18
-        if %19 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -62,69 +62,73 @@
         store %f0, %22
         %23:f32 = load %f0
         store %f1, %23
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %24:i32 = load %i
         %25:i32 = add %24, 1i
         store %i, %25
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %26:f32 = load %f1
     %27:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
     %28:f32 = load %27
-    %x_57:bool = gt %26, %28
+    %29:bool = gt %26, %28
+    %x_57:bool = let %29
     store %x_64, %x_57
-    if %x_57 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %30:f32 = load %f1
-        %31:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %32:f32 = load %31
-        %33:bool = lt %30, %32
-        store %x_63, %33
-        %34:bool = load %x_63
-        store %x_64, %34
+    if %x_57 [t: $B7] {  # if_2
+      $B7: {  # true
+        %31:f32 = load %f1
+        %32:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %33:f32 = load %32
+        %34:bool = lt %31, %33
+        store %x_63, %34
+        %35:bool = load %x_63
+        store %x_64, %35
         exit_if  # if_2
       }
     }
-    %35:bool = load %x_64
-    if %35 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %36:bool = load %x_64
+    if %36 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %37:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:f32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:f32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %46:i32 = load %45
         %47:f32 = convert %46
-        %48:vec4<f32> = construct %38, %41, %44, %47
-        store %x_GLF_color, %48
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %48:f32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
         %50:i32 = load %49
         %51:f32 = convert %50
-        %52:vec4<f32> = construct %51
+        %52:vec4<f32> = construct %40, %44, %48, %51
         store %x_GLF_color, %52
         exit_if  # if_3
       }
+      $B9: {  # false
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %54:i32 = load %53
+        %55:f32 = convert %54
+        %56:vec4<f32> = construct %55
+        store %x_GLF_color, %56
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.msl
index 24f28be..97fb893 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-float-in-loop-abs/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,111 +20,134 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f0:ptr<function, f32, read_write> = var
     %f1:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %x_63:ptr<function, bool, read_write> = var
     %x_64_phi:ptr<function, bool, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_34:f32 = load %10
+    %11:f32 = load %10
+    %x_34:f32 = let %11
     store %f0, %x_34
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %12
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %14:f32 = load %13
+    %x_36:f32 = let %14
     store %f1, %x_36
-    %14:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_38:i32 = load %14
+    %16:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %17:i32 = load %16
+    %x_38:i32 = let %17
     store %i, %x_38
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_43:i32 = load %i
-        %17:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_45:i32 = load %17
-        %19:bool = lt %x_43, %x_45
-        if %19 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %x_43:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %22:i32 = load %21
+        %x_45:i32 = let %22
+        %24:bool = lt %x_43, %x_45
+        if %24 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_48:f32 = load %f0
-        %21:f32 = mul 1.10000002384185791016f, %x_48
-        %22:f32 = abs %21
-        store %f0, %22
-        %x_51:f32 = load %f0
+        %25:f32 = load %f0
+        %x_48:f32 = let %25
+        %27:f32 = mul 1.10000002384185791016f, %x_48
+        %28:f32 = abs %27
+        store %f0, %28
+        %29:f32 = load %f0
+        %x_51:f32 = let %29
         store %f1, %x_51
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_52:i32 = load %i
-        %25:i32 = add %x_52, 1i
-        store %i, %25
-        next_iteration %b3
+      $B4: {  # continuing
+        %31:i32 = load %i
+        %x_52:i32 = let %31
+        %33:i32 = add %x_52, 1i
+        store %i, %33
+        next_iteration  # -> $B3
       }
     }
-    %x_54:f32 = load %f1
-    %27:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_56:f32 = load %27
-    %x_57:bool = gt %x_54, %x_56
+    %34:f32 = load %f1
+    %x_54:f32 = let %34
+    %36:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %37:f32 = load %36
+    %x_56:f32 = let %37
+    %39:bool = gt %x_54, %x_56
+    %x_57:bool = let %39
     store %x_64_phi, %x_57
-    if %x_57 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %x_60:f32 = load %f1
-        %31:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_62:f32 = load %31
-        %33:bool = lt %x_60, %x_62
-        store %x_63, %33
-        %34:bool = load %x_63
-        store %x_64_phi, %34
+    if %x_57 [t: $B7] {  # if_2
+      $B7: {  # true
+        %41:f32 = load %f1
+        %x_60:f32 = let %41
+        %43:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %44:f32 = load %43
+        %x_62:f32 = let %44
+        %46:bool = lt %x_60, %x_62
+        store %x_63, %46
+        %47:bool = load %x_63
+        store %x_64_phi, %47
         exit_if  # if_2
       }
     }
-    %x_64:bool = load %x_64_phi
-    if %x_64 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_69:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_72:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_75:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_78:i32 = load %42
-        %44:f32 = convert %x_69
-        %45:f32 = convert %x_72
-        %46:f32 = convert %x_75
-        %47:f32 = convert %x_78
-        %48:vec4<f32> = construct %44, %45, %46, %47
-        store %x_GLF_color, %48
+    %48:bool = load %x_64_phi
+    %x_64:bool = let %48
+    if %x_64 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %51:i32 = load %50
+        %x_69:i32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %54:i32 = load %53
+        %x_72:i32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %57:i32 = load %56
+        %x_75:i32 = let %57
+        %59:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %60:i32 = load %59
+        %x_78:i32 = let %60
+        %62:f32 = convert %x_69
+        %63:f32 = let %62
+        %64:f32 = convert %x_72
+        %65:f32 = let %64
+        %66:f32 = convert %x_75
+        %67:f32 = let %66
+        %68:f32 = convert %x_78
+        %69:vec4<f32> = construct %63, %65, %67, %68
+        store %x_GLF_color, %69
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_82:i32 = load %49
-        %x_83:f32 = convert %x_82
-        %52:vec4<f32> = construct %x_83, %x_83, %x_83, %x_83
-        store %x_GLF_color, %52
+      $B9: {  # false
+        %70:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %71:i32 = load %70
+        %x_82:i32 = let %71
+        %73:f32 = convert %x_82
+        %x_83:f32 = let %73
+        %75:vec4<f32> = construct %x_83, %x_83, %x_83, %x_83
+        store %x_GLF_color, %75
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %77:void = call %main_1
+    %78:vec4<f32> = load %x_GLF_color
+    %79:main_out = construct %78
+    ret %79
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.msl
index fb5132e..aa42001 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,138 +12,141 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():void -> %b2 {
-  %b2 = block {
+%func_ = func():void {
+  $B2: {
     %x_66:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_62:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %9:i32 = load %8
-    store %x_66, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %7:i32 = load %6
+    %x_62:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %10:i32 = load %9
+    store %x_66, %10
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_67:ptr<function, i32, read_write> = var
-        %11:i32 = load %x_66
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
-        %13:i32 = load %12
-        %14:bool = lt %11, %13
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %12:i32 = load %x_66
+        %13:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
+        %14:i32 = load %13
+        %15:bool = lt %12, %14
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %15:i32 = load %x_GLF_global_loop_count
-        %16:i32 = add %15, 1i
-        store %x_GLF_global_loop_count, %16
-        %17:i32 = load %x_66
-        %18:i32 = add %17, 1i
-        store %x_67, %18
-        %19:i32 = load %x_67
-        store %x_66, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %16:i32 = load %x_GLF_global_loop_count
+        %17:i32 = add %16, 1i
+        store %x_GLF_global_loop_count, %17
+        %18:i32 = load %x_66
+        %19:i32 = add %18, 1i
+        store %x_67, %19
+        %20:i32 = load %x_67
+        store %x_66, %20
+        next_iteration  # -> $B3
       }
     }
-    %20:bool = lt %x_62, %x_62
-    if %20 [t: %b7] {  # if_2
-      %b7 = block {  # true
+    %21:bool = lt %x_62, %x_62
+    if %21 [t: $B7] {  # if_2
+      $B7: {  # true
         ret
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     store %x_GLF_global_loop_count, 0i
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %22:i32 = load %x_GLF_global_loop_count
-        %23:bool = lt %22, 10i
-        if %23 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %23:i32 = load %x_GLF_global_loop_count
+        %24:bool = lt %23, 10i
+        if %24 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %24:i32 = load %x_GLF_global_loop_count
-        %25:i32 = add %24, 1i
-        store %x_GLF_global_loop_count, %25
-        %26:void = call %func_
-        next_iteration %b9
+      $B10: {  # continuing
+        %25:i32 = load %x_GLF_global_loop_count
+        %26:i32 = add %25, 1i
+        store %x_GLF_global_loop_count, %26
+        %27:void = call %func_
+        next_iteration  # -> $B9
       }
     }
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %27:i32 = load %x_GLF_global_loop_count
-        %28:bool = lt %27, 10i
-        if %28 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %28:i32 = load %x_GLF_global_loop_count
+        %29:bool = lt %28, 10i
+        if %29 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        continue %b14
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %29:i32 = load %x_GLF_global_loop_count
-        %30:i32 = add %29, 1i
-        store %x_GLF_global_loop_count, %30
-        next_iteration %b13
+      $B14: {  # continuing
+        %30:i32 = load %x_GLF_global_loop_count
+        %31:i32 = add %30, 1i
+        store %x_GLF_global_loop_count, %31
+        next_iteration  # -> $B13
       }
     }
-    %31:i32 = load %x_GLF_global_loop_count
-    %32:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %33:i32 = load %32
-    %34:bool = eq %31, %33
-    if %34 [t: %b17, f: %b18] {  # if_5
-      %b17 = block {  # true
-        %35:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %36:i32 = load %35
-        %x_51:f32 = convert %36
-        %38:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %39:i32 = load %38
-        %x_54:f32 = convert %39
-        %41:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
-        store %x_GLF_color, %41
+    %32:i32 = load %x_GLF_global_loop_count
+    %33:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %34:i32 = load %33
+    %35:bool = eq %32, %34
+    if %35 [t: $B17, f: $B18] {  # if_5
+      $B17: {  # true
+        %36:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %37:i32 = load %36
+        %38:f32 = convert %37
+        %x_51:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %x_54:f32 = let %42
+        %44:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
+        store %x_GLF_color, %44
         exit_if  # if_5
       }
-      %b18 = block {  # false
-        %42:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:vec4<f32> = construct %44
-        store %x_GLF_color, %45
+      $B18: {  # false
+        %45:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %46:i32 = load %45
+        %47:f32 = convert %46
+        %48:vec4<f32> = construct %47
+        store %x_GLF_color, %48
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b19 {
-  %b19 = block {
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.msl
index 2a61f20..de389c1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-global-counter-loop-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,137 +12,154 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():void -> %b2 {
-  %b2 = block {
+%func_ = func():void {
+  $B2: {
     %x_66_phi:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_62:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_64:i32 = load %8
+    %7:i32 = load %6
+    %x_62:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %10:i32 = load %9
+    %x_64:i32 = let %10
     store %x_66_phi, %x_64
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_67:ptr<function, i32, read_write> = var
-        %x_66:i32 = load %x_66_phi
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
-        %x_70:i32 = load %12
-        %14:bool = lt %x_66, %x_70
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %13:i32 = load %x_66_phi
+        %x_66:i32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
+        %16:i32 = load %15
+        %x_70:i32 = let %16
+        %18:bool = lt %x_66, %x_70
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_73:i32 = load %x_GLF_global_loop_count
-        %16:i32 = add %x_73, 1i
-        store %x_GLF_global_loop_count, %16
-        %17:i32 = add %x_66, 1i
-        store %x_67, %17
-        %18:i32 = load %x_67
-        store %x_66_phi, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %19:i32 = load %x_GLF_global_loop_count
+        %x_73:i32 = let %19
+        %21:i32 = add %x_73, 1i
+        store %x_GLF_global_loop_count, %21
+        %22:i32 = add %x_66, 1i
+        store %x_67, %22
+        %23:i32 = load %x_67
+        store %x_66_phi, %23
+        next_iteration  # -> $B3
       }
     }
-    %19:bool = lt %x_62, %x_62
-    if %19 [t: %b7] {  # if_2
-      %b7 = block {  # true
+    %24:bool = lt %x_62, %x_62
+    if %24 [t: $B7] {  # if_2
+      $B7: {  # true
         ret
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     store %x_GLF_global_loop_count, 0i
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_28:i32 = load %x_GLF_global_loop_count
-        %22:bool = lt %x_28, 10i
-        if %22 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %26:i32 = load %x_GLF_global_loop_count
+        %x_28:i32 = let %26
+        %28:bool = lt %x_28, 10i
+        if %28 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %x_32:i32 = load %x_GLF_global_loop_count
-        %24:i32 = add %x_32, 1i
-        store %x_GLF_global_loop_count, %24
-        %25:void = call %func_
-        next_iteration %b9
+      $B10: {  # continuing
+        %29:i32 = load %x_GLF_global_loop_count
+        %x_32:i32 = let %29
+        %31:i32 = add %x_32, 1i
+        store %x_GLF_global_loop_count, %31
+        %32:void = call %func_
+        next_iteration  # -> $B9
       }
     }
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_36:i32 = load %x_GLF_global_loop_count
-        %27:bool = lt %x_36, 10i
-        if %27 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %33:i32 = load %x_GLF_global_loop_count
+        %x_36:i32 = let %33
+        %35:bool = lt %x_36, 10i
+        if %35 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        continue %b14
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_40:i32 = load %x_GLF_global_loop_count
-        %29:i32 = add %x_40, 1i
-        store %x_GLF_global_loop_count, %29
-        next_iteration %b13
+      $B14: {  # continuing
+        %36:i32 = load %x_GLF_global_loop_count
+        %x_40:i32 = let %36
+        %38:i32 = add %x_40, 1i
+        store %x_GLF_global_loop_count, %38
+        next_iteration  # -> $B13
       }
     }
-    %x_42:i32 = load %x_GLF_global_loop_count
-    %31:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_44:i32 = load %31
-    %33:bool = eq %x_42, %x_44
-    if %33 [t: %b17, f: %b18] {  # if_5
-      %b17 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_50:i32 = load %34
-        %x_51:f32 = convert %x_50
-        %37:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_53:i32 = load %37
-        %x_54:f32 = convert %x_53
-        %40:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
-        store %x_GLF_color, %40
+    %39:i32 = load %x_GLF_global_loop_count
+    %x_42:i32 = let %39
+    %41:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %42:i32 = load %41
+    %x_44:i32 = let %42
+    %44:bool = eq %x_42, %x_44
+    if %44 [t: $B17, f: $B18] {  # if_5
+      $B17: {  # true
+        %45:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %46:i32 = load %45
+        %x_50:i32 = let %46
+        %48:f32 = convert %x_50
+        %x_51:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %51:i32 = load %50
+        %x_53:i32 = let %51
+        %53:f32 = convert %x_53
+        %x_54:f32 = let %53
+        %55:vec4<f32> = construct %x_51, %x_54, %x_54, %x_51
+        store %x_GLF_color, %55
         exit_if  # if_5
       }
-      %b18 = block {  # false
-        %41:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_57:i32 = load %41
-        %x_58:f32 = convert %x_57
-        %44:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-        store %x_GLF_color, %44
+      $B18: {  # false
+        %56:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %57:i32 = load %56
+        %x_57:i32 = let %57
+        %59:f32 = convert %x_57
+        %x_58:f32 = let %59
+        %61:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+        store %x_GLF_color, %61
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b19 {
-  %b19 = block {
-    %46:void = call %main_1
-    %47:vec4<f32> = load %x_GLF_color
-    %48:main_out = construct %47
-    ret %48
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.msl
index bd4e628..15a70d7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, array<i32, 3>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
@@ -32,8 +32,8 @@
     store %c, %13
     %14:i32 = load %c
     %15:bool = gt %14, 1i
-    if %15 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 1.0f, 0.0f)
         %16:i32 = load %b
         %17:i32 = add %16, 1i
@@ -42,23 +42,26 @@
       }
     }
     %18:i32 = load %b
-    %x_48:i32 = add %18, 1i
+    %19:i32 = add %18, 1i
+    %x_48:i32 = let %19
     store %b, %x_48
-    %x_50_save:i32 = clamp %x_48, 0i, 2i
-    %21:ptr<function, i32, read_write> = access %a, %x_50_save
-    %22:ptr<function, i32, read_write> = access %a, %x_50_save
-    %23:i32 = load %22
-    %24:i32 = add %23, 1i
-    store %21, %24
-    %25:ptr<function, i32, read_write> = access %a, 2i
+    %21:i32 = max %x_48, 0i
+    %22:i32 = min %21, 2i
+    %x_50_save:i32 = let %22
+    %24:ptr<function, i32, read_write> = access %a, %x_50_save
+    %25:ptr<function, i32, read_write> = access %a, %x_50_save
     %26:i32 = load %25
-    %27:bool = eq %26, 4i
-    if %27 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %27:i32 = add %26, 1i
+    store %24, %27
+    %28:ptr<function, i32, read_write> = access %a, 2i
+    %29:i32 = load %28
+    %30:bool = eq %29, 4i
+    if %30 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -66,12 +69,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.msl
index 93bcf80..2e314ab 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-inside-clamp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, array<i32, 3>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
@@ -26,39 +26,49 @@
     store %9, 3i
     store %b, 0i
     %10:ptr<uniform, i32, read> = access %x_8, 0u
-    %x_38:i32 = load %10
-    %12:ptr<function, i32, read_write> = access %a, %x_38
-    %x_40:i32 = load %12
+    %11:i32 = load %10
+    %x_38:i32 = let %11
+    %13:ptr<function, i32, read_write> = access %a, %x_38
+    %14:i32 = load %13
+    %x_40:i32 = let %14
     store %c, %x_40
-    %x_41:i32 = load %c
-    %15:bool = gt %x_41, 1i
-    if %15 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %16:i32 = load %c
+    %x_41:i32 = let %16
+    %18:bool = gt %x_41, 1i
+    if %18 [t: $B3] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 1.0f, 0.0f)
-        %x_45:i32 = load %b
-        %17:i32 = add %x_45, 1i
-        store %b, %17
+        %19:i32 = load %b
+        %x_45:i32 = let %19
+        %21:i32 = add %x_45, 1i
+        store %b, %21
         exit_if  # if_1
       }
     }
-    %x_47:i32 = load %b
-    %x_48:i32 = add %x_47, 1i
+    %22:i32 = load %b
+    %x_47:i32 = let %22
+    %24:i32 = add %x_47, 1i
+    %x_48:i32 = let %24
     store %b, %x_48
-    %x_50_save:i32 = clamp %x_48, 0i, 2i
-    %21:ptr<function, i32, read_write> = access %a, %x_50_save
-    %x_51:i32 = load %21
-    %23:ptr<function, i32, read_write> = access %a, %x_50_save
-    %24:i32 = add %x_51, 1i
-    store %23, %24
-    %25:ptr<function, i32, read_write> = access %a, 2i
-    %x_54:i32 = load %25
-    %27:bool = eq %x_54, 4i
-    if %27 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %26:i32 = max %x_48, 0i
+    %27:i32 = min %26, 2i
+    %x_50_save:i32 = let %27
+    %29:ptr<function, i32, read_write> = access %a, %x_50_save
+    %30:i32 = load %29
+    %x_51:i32 = let %30
+    %32:ptr<function, i32, read_write> = access %a, %x_50_save
+    %33:i32 = add %x_51, 1i
+    store %32, %33
+    %34:ptr<function, i32, read_write> = access %a, 2i
+    %35:i32 = load %34
+    %x_54:i32 = let %35
+    %37:bool = eq %x_54, 4i
+    if %37 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -66,12 +76,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %39:void = call %main_1
+    %40:vec4<f32> = load %x_GLF_color
+    %41:main_out = construct %40
+    ret %41
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.msl
index eec9f46..b09e012 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<i32, 9>, read_write> = var
@@ -28,79 +28,100 @@
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
     %10:i32 = load %9
     store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
         %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %13:i32 = load %12
         %14:bool = lt %11, %13
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_52:i32 = load %16
+        %15:i32 = load %i
+        %x_50:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %18:i32 = load %17
+        %x_52:i32 = let %18
         store %indexable, array<i32, 9>(1i, 2i, 3i, 4i, 5i, 6i, 7i, 8i, 9i)
-        %18:i32 = load %a
-        %19:i32 = mod %x_50, %x_52
-        %20:ptr<function, i32, read_write> = access %indexable, %19
-        %21:i32 = load %20
-        %22:i32 = add %18, %21
-        store %a, %22
-        continue %b4
+        %20:i32 = load %a
+        %21:i32 = let %20
+        %22:i32 = call %tint_mod_i32, %x_50, %x_52
+        %24:ptr<function, i32, read_write> = access %indexable, %22
+        %25:i32 = load %24
+        %26:i32 = add %21, %25
+        store %a, %26
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %23:i32 = load %i
-        %24:i32 = add %23, 1i
-        store %i, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %27:i32 = load %i
+        %28:i32 = add %27, 1i
+        store %i, %28
+        next_iteration  # -> $B3
       }
     }
-    %25:i32 = load %a
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %27:i32 = load %26
-    %28:bool = eq %25, %27
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %31, %34, %37, %40
-        store %x_GLF_color, %41
+    %29:i32 = load %a
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %31:i32 = load %30
+    %32:bool = eq %29, %31
+    if %32 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:f32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:f32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %46:i32 = load %45
+        %47:f32 = convert %46
+        %48:vec4<f32> = construct %36, %40, %44, %47
+        store %x_GLF_color, %48
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:vec4<f32> = construct %44
-        store %x_GLF_color, %45
+      $B8: {  # false
+        %49:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %50:i32 = load %49
+        %51:f32 = convert %50
+        %52:vec4<f32> = construct %51
+        store %x_GLF_color, %52
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %54:void = call %main_1
+    %55:vec4<f32> = load %x_GLF_color
+    %56:main_out = construct %55
+    ret %56
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %59:bool = eq %rhs, 0i
+    %60:bool = eq %lhs, -2147483648i
+    %61:bool = eq %rhs, -1i
+    %62:bool = and %60, %61
+    %63:bool = or %59, %62
+    %64:i32 = select %rhs, 1i, %63
+    %65:i32 = let %64
+    %66:i32 = div %lhs, %65
+    %67:i32 = mul %66, %65
+    %68:i32 = sub %lhs, %67
+    ret %68
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.msl
index caf67bd..1e54f10 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-int-loop-counter-mod-array/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,95 +12,130 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<i32, 9>, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_38:i32 = load %7
+    %8:i32 = load %7
+    %x_38:i32 = let %8
     store %a, %x_38
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_40:i32 = load %9
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %11:i32 = load %10
+    %x_40:i32 = let %11
     store %i, %x_40
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_45:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_47:i32 = load %12
-        %14:bool = lt %x_45, %x_47
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %13:i32 = load %i
+        %x_45:i32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %16:i32 = load %15
+        %x_47:i32 = let %16
+        %18:bool = lt %x_45, %x_47
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_52:i32 = load %16
+        %19:i32 = load %i
+        %x_50:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %22:i32 = load %21
+        %x_52:i32 = let %22
         store %indexable, array<i32, 9>(1i, 2i, 3i, 4i, 5i, 6i, 7i, 8i, 9i)
-        %18:i32 = mod %x_50, %x_52
-        %19:ptr<function, i32, read_write> = access %indexable, %18
-        %x_55:i32 = load %19
-        %x_56:i32 = load %a
-        %22:i32 = add %x_56, %x_55
-        store %a, %22
-        continue %b4
+        %24:i32 = call %tint_mod_i32, %x_50, %x_52
+        %26:ptr<function, i32, read_write> = access %indexable, %24
+        %27:i32 = load %26
+        %x_55:i32 = let %27
+        %29:i32 = load %a
+        %x_56:i32 = let %29
+        %31:i32 = add %x_56, %x_55
+        store %a, %31
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_58:i32 = load %i
-        %24:i32 = add %x_58, 1i
-        store %i, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %32:i32 = load %i
+        %x_58:i32 = let %32
+        %34:i32 = add %x_58, 1i
+        store %i, %34
+        next_iteration  # -> $B3
       }
     }
-    %x_60:i32 = load %a
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_62:i32 = load %26
-    %28:bool = eq %x_60, %x_62
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_68:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_71:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_74:i32 = load %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_77:i32 = load %35
-        %37:f32 = convert %x_68
-        %38:f32 = convert %x_71
-        %39:f32 = convert %x_74
-        %40:f32 = convert %x_77
-        %41:vec4<f32> = construct %37, %38, %39, %40
-        store %x_GLF_color, %41
+    %35:i32 = load %a
+    %x_60:i32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %38:i32 = load %37
+    %x_62:i32 = let %38
+    %40:bool = eq %x_60, %x_62
+    if %40 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %42:i32 = load %41
+        %x_68:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %45:i32 = load %44
+        %x_71:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %48:i32 = load %47
+        %x_74:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %51:i32 = load %50
+        %x_77:i32 = let %51
+        %53:f32 = convert %x_68
+        %54:f32 = let %53
+        %55:f32 = convert %x_71
+        %56:f32 = let %55
+        %57:f32 = convert %x_74
+        %58:f32 = let %57
+        %59:f32 = convert %x_77
+        %60:vec4<f32> = construct %54, %56, %58, %59
+        store %x_GLF_color, %60
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_81:i32 = load %42
-        %x_82:f32 = convert %x_81
-        %45:vec4<f32> = construct %x_82, %x_82, %x_82, %x_82
-        store %x_GLF_color, %45
+      $B8: {  # false
+        %61:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %62:i32 = load %61
+        %x_81:i32 = let %62
+        %64:f32 = convert %x_81
+        %x_82:f32 = let %64
+        %66:vec4<f32> = construct %x_82, %x_82, %x_82, %x_82
+        store %x_GLF_color, %66
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %68:void = call %main_1
+    %69:vec4<f32> = load %x_GLF_color
+    %70:main_out = construct %69
+    ret %70
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %73:bool = eq %rhs, 0i
+    %74:bool = eq %lhs, -2147483648i
+    %75:bool = eq %rhs, -1i
+    %76:bool = and %74, %75
+    %77:bool = or %73, %76
+    %78:i32 = select %rhs, 1i, %77
+    %79:i32 = let %78
+    %80:i32 = div %lhs, %79
+    %81:i32 = mul %80, %79
+    %82:i32 = sub %lhs, %81
+    ret %82
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.msl
index 4207cce..8c7e5c8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
@@ -33,8 +33,8 @@
     %14:i32 = load %13
     store %b, %14
     store %c, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %15:i32 = load %b
         %16:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
         %17:i32 = load %16
@@ -42,18 +42,18 @@
         %19:i32 = load %a
         %20:bool = lt %19, 10i
         %21:bool = and %18, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %21 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %22:i32 = load %c
         %23:bool = gt %22, 5i
-        if %23 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %23 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
@@ -66,104 +66,108 @@
         %28:i32 = load %b
         %29:i32 = add %28, 1i
         store %b, %29
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
+    loop [b: $B8, c: $B9] {  # loop_2
+      $B8: {  # body
         %30:i32 = load %a
         %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %32:i32 = load %31
         %33:bool = lt %30, %32
-        if %33 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
+        if %33 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
             exit_if  # if_3
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
+      $B9: {  # continuing
         %34:i32 = load %a
         %35:i32 = add %34, 1i
         store %a, %35
-        next_iteration %b8
+        next_iteration  # -> $B8
       }
     }
     %36:i32 = load %a
     %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %38:i32 = load %37
-    %x_70:bool = eq %36, %38
+    %39:bool = eq %36, %38
+    %x_70:bool = let %39
     store %x_77, %x_70
-    if %x_70 [t: %b12] {  # if_4
-      %b12 = block {  # true
-        %40:i32 = load %b
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %42:i32 = load %41
-        %43:bool = eq %40, %42
-        store %x_76, %43
-        %44:bool = load %x_76
-        store %x_77, %44
+    if %x_70 [t: $B12] {  # if_4
+      $B12: {  # true
+        %41:i32 = load %b
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %43:i32 = load %42
+        %44:bool = eq %41, %43
+        store %x_76, %44
+        %45:bool = load %x_76
+        store %x_77, %45
         exit_if  # if_4
       }
     }
-    %45:bool = load %x_77
-    store %x_84, %45
     %46:bool = load %x_77
-    if %46 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %47:i32 = load %c
-        %48:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %49:i32 = load %48
-        %50:bool = eq %47, %49
-        store %x_83, %50
-        %51:bool = load %x_83
-        store %x_84, %51
+    store %x_84, %46
+    %47:bool = load %x_77
+    if %47 [t: $B13] {  # if_5
+      $B13: {  # true
+        %48:i32 = load %c
+        %49:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %50:i32 = load %49
+        %51:bool = eq %48, %50
+        store %x_83, %51
+        %52:bool = load %x_83
+        store %x_84, %52
         exit_if  # if_5
       }
     }
-    %52:bool = load %x_84
-    if %52 [t: %b14, f: %b15] {  # if_6
-      %b14 = block {  # true
-        %53:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %54:i32 = load %53
-        %55:f32 = convert %54
-        %56:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %57:i32 = load %56
-        %58:f32 = convert %57
-        %59:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %60:i32 = load %59
-        %61:f32 = convert %60
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %53:bool = load %x_84
+    if %53 [t: $B14, f: $B15] {  # if_6
+      $B14: {  # true
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:f32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:f32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %63:i32 = load %62
         %64:f32 = convert %63
-        %65:vec4<f32> = construct %55, %58, %61, %64
-        store %x_GLF_color, %65
-        exit_if  # if_6
-      }
-      %b15 = block {  # false
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %65:f32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %67:i32 = load %66
         %68:f32 = convert %67
-        %69:vec4<f32> = construct %68
+        %69:vec4<f32> = construct %57, %61, %65, %68
         store %x_GLF_color, %69
         exit_if  # if_6
       }
+      $B15: {  # false
+        %70:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %71:i32 = load %70
+        %72:f32 = convert %71
+        %73:vec4<f32> = construct %72
+        store %x_GLF_color, %73
+        exit_if  # if_6
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %71:void = call %main_1
-    %72:vec4<f32> = load %x_GLF_color
-    %73:main_out = construct %72
-    ret %73
+%tint_symbol = @fragment func():main_out {
+  $B16: {
+    %75:void = call %main_1
+    %76:vec4<f32> = load %x_GLF_color
+    %77:main_out = construct %76
+    ret %77
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.msl
index 1b70c4d..2391ad1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-multiple-integers/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
@@ -27,142 +27,172 @@
     %x_77_phi:ptr<function, bool, read_write> = var
     %x_84_phi:ptr<function, bool, read_write> = var
     %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_31:i32 = load %11
+    %12:i32 = load %11
+    %x_31:i32 = let %12
     store %a, %x_31
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_33:i32 = load %13
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %15:i32 = load %14
+    %x_33:i32 = let %15
     store %b, %x_33
     store %c, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_38:i32 = load %b
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_40:i32 = load %16
-        %x_42:i32 = load %a
-        %19:bool = lt %x_38, %x_40
-        %20:bool = lt %x_42, 10i
-        %21:bool = and %19, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %b
+        %x_38:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %20:i32 = load %19
+        %x_40:i32 = let %20
+        %22:i32 = load %a
+        %x_42:i32 = let %22
+        %24:bool = lt %x_38, %x_40
+        %25:bool = lt %x_42, 10i
+        %26:bool = and %24, %25
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_46:i32 = load %c
-        %23:bool = gt %x_46, 5i
-        if %23 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %27:i32 = load %c
+        %x_46:i32 = let %27
+        %29:bool = gt %x_46, 5i
+        if %29 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %a
-        %25:i32 = add %x_50, 1i
-        store %a, %25
-        %x_52:i32 = load %c
-        %27:i32 = add %x_52, 1i
-        store %c, %27
-        %x_54:i32 = load %b
-        %29:i32 = add %x_54, 1i
-        store %b, %29
-        continue %b4
+        %30:i32 = load %a
+        %x_50:i32 = let %30
+        %32:i32 = add %x_50, 1i
+        store %a, %32
+        %33:i32 = load %c
+        %x_52:i32 = let %33
+        %35:i32 = add %x_52, 1i
+        store %c, %35
+        %36:i32 = load %b
+        %x_54:i32 = let %36
+        %38:i32 = add %x_54, 1i
+        store %b, %38
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %x_60:i32 = load %a
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:i32 = load %31
-        %33:bool = lt %x_60, %x_62
-        if %33 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
+    loop [b: $B8, c: $B9] {  # loop_2
+      $B8: {  # body
+        %39:i32 = load %a
+        %x_60:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_62:i32 = let %42
+        %44:bool = lt %x_60, %x_62
+        if %44 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
             exit_if  # if_3
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %x_65:i32 = load %a
-        %35:i32 = add %x_65, 1i
-        store %a, %35
-        next_iteration %b8
+      $B9: {  # continuing
+        %45:i32 = load %a
+        %x_65:i32 = let %45
+        %47:i32 = add %x_65, 1i
+        store %a, %47
+        next_iteration  # -> $B8
       }
     }
-    %x_67:i32 = load %a
-    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_69:i32 = load %37
-    %x_70:bool = eq %x_67, %x_69
+    %48:i32 = load %a
+    %x_67:i32 = let %48
+    %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %51:i32 = load %50
+    %x_69:i32 = let %51
+    %53:bool = eq %x_67, %x_69
+    %x_70:bool = let %53
     store %x_77_phi, %x_70
-    if %x_70 [t: %b12] {  # if_4
-      %b12 = block {  # true
-        %x_73:i32 = load %b
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_75:i32 = load %41
-        %43:bool = eq %x_73, %x_75
-        store %x_76, %43
-        %44:bool = load %x_76
-        store %x_77_phi, %44
+    if %x_70 [t: $B12] {  # if_4
+      $B12: {  # true
+        %55:i32 = load %b
+        %x_73:i32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %58:i32 = load %57
+        %x_75:i32 = let %58
+        %60:bool = eq %x_73, %x_75
+        store %x_76, %60
+        %61:bool = load %x_76
+        store %x_77_phi, %61
         exit_if  # if_4
       }
     }
-    %x_77:bool = load %x_77_phi
+    %62:bool = load %x_77_phi
+    %x_77:bool = let %62
     store %x_84_phi, %x_77
-    if %x_77 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %x_80:i32 = load %c
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_82:i32 = load %47
-        %49:bool = eq %x_80, %x_82
-        store %x_83, %49
-        %50:bool = load %x_83
-        store %x_84_phi, %50
+    if %x_77 [t: $B13] {  # if_5
+      $B13: {  # true
+        %64:i32 = load %c
+        %x_80:i32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %67:i32 = load %66
+        %x_82:i32 = let %67
+        %69:bool = eq %x_80, %x_82
+        store %x_83, %69
+        %70:bool = load %x_83
+        store %x_84_phi, %70
         exit_if  # if_5
       }
     }
-    %x_84:bool = load %x_84_phi
-    if %x_84 [t: %b14, f: %b15] {  # if_6
-      %b14 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_89:i32 = load %52
-        %54:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_92:i32 = load %54
-        %56:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_95:i32 = load %56
-        %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_98:i32 = load %58
-        %60:f32 = convert %x_89
-        %61:f32 = convert %x_92
-        %62:f32 = convert %x_95
-        %63:f32 = convert %x_98
-        %64:vec4<f32> = construct %60, %61, %62, %63
-        store %x_GLF_color, %64
+    %71:bool = load %x_84_phi
+    %x_84:bool = let %71
+    if %x_84 [t: $B14, f: $B15] {  # if_6
+      $B14: {  # true
+        %73:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %74:i32 = load %73
+        %x_89:i32 = let %74
+        %76:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %77:i32 = load %76
+        %x_92:i32 = let %77
+        %79:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %80:i32 = load %79
+        %x_95:i32 = let %80
+        %82:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %83:i32 = load %82
+        %x_98:i32 = let %83
+        %85:f32 = convert %x_89
+        %86:f32 = let %85
+        %87:f32 = convert %x_92
+        %88:f32 = let %87
+        %89:f32 = convert %x_95
+        %90:f32 = let %89
+        %91:f32 = convert %x_98
+        %92:vec4<f32> = construct %86, %88, %90, %91
+        store %x_GLF_color, %92
         exit_if  # if_6
       }
-      %b15 = block {  # false
-        %65:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_102:i32 = load %65
-        %x_103:f32 = convert %x_102
-        %68:vec4<f32> = construct %x_103, %x_103, %x_103, %x_103
-        store %x_GLF_color, %68
+      $B15: {  # false
+        %93:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %94:i32 = load %93
+        %x_102:i32 = let %94
+        %96:f32 = convert %x_102
+        %x_103:f32 = let %96
+        %98:vec4<f32> = construct %x_103, %x_103, %x_103, %x_103
+        store %x_GLF_color, %98
         exit_if  # if_6
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %70:void = call %main_1
-    %71:vec4<f32> = load %x_GLF_color
-    %72:main_out = construct %71
-    ret %72
+%tint_symbol = @fragment func():main_out {
+  $B16: {
+    %100:void = call %main_1
+    %101:vec4<f32> = load %x_GLF_color
+    %102:main_out = construct %101
+    ret %102
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.msl
index d8484bf..c284e21 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,100 +20,111 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat3x3<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<vec3<f32>, 2>, read_write> = var
     %v:ptr<function, vec3<f32>, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %10:i32 = load %9
-    %x_46:f32 = convert %10
-    %12:vec3<f32> = construct %x_46, 0.0f, 0.0f
-    %13:vec3<f32> = construct 0.0f, %x_46, 0.0f
-    %14:vec3<f32> = construct 0.0f, 0.0f, %x_46
-    %15:mat3x3<f32> = construct %12, %13, %14
-    store %m, %15
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %17:i32 = load %16
-    store %a, %17
-    %x_53:i32 = load %a
-    %x_54:i32 = load %a
-    %20:ptr<function, vec3<f32>, read_write> = access %m, %x_53
-    %21:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %22:f32 = load %21
-    store_vector_element %20, %x_54, %22
-    %23:ptr<function, vec3<f32>, read_write> = access %m, 1i
-    %24:vec3<f32> = load %23
-    %25:ptr<function, vec3<f32>, read_write> = access %m, 1i
-    %26:vec3<f32> = load %25
-    %27:array<vec3<f32>, 2> = construct %24, %26
-    store %arr, %27
-    %28:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %29:f32 = load %28
-    %30:vec3<f32> = construct %29
-    store %v, %30
-    %31:vec3<f32> = load %v
-    %32:i32 = load %a
-    %33:ptr<function, vec3<f32>, read_write> = access %arr, %32
-    %34:vec3<f32> = load %33
-    %35:vec3<f32> = add %31, %34
+    %11:f32 = convert %10
+    %x_46:f32 = let %11
+    %13:vec3<f32> = construct %x_46, 0.0f, 0.0f
+    %14:vec3<f32> = let %13
+    %15:vec3<f32> = construct 0.0f, %x_46, 0.0f
+    %16:vec3<f32> = let %15
+    %17:vec3<f32> = construct 0.0f, 0.0f, %x_46
+    %18:mat3x3<f32> = construct %14, %16, %17
+    store %m, %18
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %20:i32 = load %19
+    store %a, %20
+    %21:i32 = load %a
+    %x_53:i32 = let %21
+    %23:i32 = load %a
+    %x_54:i32 = let %23
+    %25:ptr<function, vec3<f32>, read_write> = access %m, %x_53
+    %26:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %27:f32 = load %26
+    store_vector_element %25, %x_54, %27
+    %28:ptr<function, vec3<f32>, read_write> = access %m, 1i
+    %29:vec3<f32> = load %28
+    %30:ptr<function, vec3<f32>, read_write> = access %m, 1i
+    %31:vec3<f32> = load %30
+    %32:array<vec3<f32>, 2> = construct %29, %31
+    store %arr, %32
+    %33:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %34:f32 = load %33
+    %35:vec3<f32> = construct %34
     store %v, %35
     %36:vec3<f32> = load %v
-    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %38:i32 = load %37
-    %39:f32 = convert %38
-    %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %41:i32 = load %40
-    %42:f32 = convert %41
+    %37:i32 = load %a
+    %38:ptr<function, vec3<f32>, read_write> = access %arr, %37
+    %39:vec3<f32> = load %38
+    %40:vec3<f32> = add %36, %39
+    store %v, %40
+    %41:vec3<f32> = load %v
+    %42:vec3<f32> = let %41
     %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %44:i32 = load %43
     %45:f32 = convert %44
-    %46:vec3<f32> = construct %39, %42, %45
-    %47:vec3<bool> = eq %36, %46
-    %48:bool = all %47
-    if %48 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %49:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %50:i32 = load %49
-        %51:f32 = convert %50
-        %52:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %53:i32 = load %52
-        %54:f32 = convert %53
-        %55:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %56:i32 = load %55
-        %57:f32 = convert %56
-        %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %59:i32 = load %58
-        %60:f32 = convert %59
-        %61:vec4<f32> = construct %51, %54, %57, %60
-        store %x_GLF_color, %61
+    %46:f32 = let %45
+    %47:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %48:i32 = load %47
+    %49:f32 = convert %48
+    %50:f32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %52:i32 = load %51
+    %53:f32 = convert %52
+    %54:vec3<f32> = construct %46, %50, %53
+    %55:vec3<bool> = eq %42, %54
+    %56:bool = all %55
+    if %56 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %57:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %58:i32 = load %57
+        %59:f32 = convert %58
+        %60:f32 = let %59
+        %61:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %62:i32 = load %61
+        %63:f32 = convert %62
+        %64:f32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %66:i32 = load %65
+        %67:f32 = convert %66
+        %68:f32 = let %67
+        %69:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %70:i32 = load %69
+        %71:f32 = convert %70
+        %72:vec4<f32> = construct %60, %64, %68, %71
+        store %x_GLF_color, %72
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %63:i32 = load %62
-        %64:f32 = convert %63
-        %65:vec4<f32> = construct %64
-        store %x_GLF_color, %65
+      $B4: {  # false
+        %73:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %74:i32 = load %73
+        %75:f32 = convert %74
+        %76:vec4<f32> = construct %75
+        store %x_GLF_color, %76
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %67:void = call %main_1
-    %68:vec4<f32> = load %x_GLF_color
-    %69:main_out = construct %68
-    ret %69
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %78:void = call %main_1
+    %79:vec4<f32> = load %x_GLF_color
+    %80:main_out = construct %79
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.msl
index bd5aae5..69044dc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-array-matrix-element/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,100 +20,129 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat3x3<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<vec3<f32>, 2>, read_write> = var
     %v:ptr<function, vec3<f32>, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_45:i32 = load %9
-    %x_46:f32 = convert %x_45
-    %12:vec3<f32> = construct %x_46, 0.0f, 0.0f
-    %13:vec3<f32> = construct 0.0f, %x_46, 0.0f
-    %14:vec3<f32> = construct 0.0f, 0.0f, %x_46
-    %15:mat3x3<f32> = construct %12, %13, %14
-    store %m, %15
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_52:i32 = load %16
+    %10:i32 = load %9
+    %x_45:i32 = let %10
+    %12:f32 = convert %x_45
+    %x_46:f32 = let %12
+    %14:vec3<f32> = construct %x_46, 0.0f, 0.0f
+    %15:vec3<f32> = let %14
+    %16:vec3<f32> = construct 0.0f, %x_46, 0.0f
+    %17:vec3<f32> = let %16
+    %18:vec3<f32> = construct 0.0f, 0.0f, %x_46
+    %19:mat3x3<f32> = construct %15, %17, %18
+    store %m, %19
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %21:i32 = load %20
+    %x_52:i32 = let %21
     store %a, %x_52
-    %x_53:i32 = load %a
-    %x_54:i32 = load %a
-    %20:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_56:f32 = load %20
-    %22:ptr<function, vec3<f32>, read_write> = access %m, %x_53
-    store_vector_element %22, %x_54, %x_56
-    %23:ptr<function, vec3<f32>, read_write> = access %m, 1i
-    %x_59:vec3<f32> = load %23
-    %25:ptr<function, vec3<f32>, read_write> = access %m, 1i
-    %x_61:vec3<f32> = load %25
-    %27:array<vec3<f32>, 2> = construct %x_59, %x_61
-    store %arr, %27
-    %28:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_64:f32 = load %28
-    %30:vec3<f32> = construct %x_64, %x_64, %x_64
-    store %v, %30
-    %x_66:i32 = load %a
-    %32:ptr<function, vec3<f32>, read_write> = access %arr, %x_66
-    %x_68:vec3<f32> = load %32
-    %x_69:vec3<f32> = load %v
-    %35:vec3<f32> = add %x_69, %x_68
-    store %v, %35
-    %x_71:vec3<f32> = load %v
-    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_73:i32 = load %37
-    %39:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_76:i32 = load %39
-    %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_79:i32 = load %41
-    %43:f32 = convert %x_73
-    %44:f32 = convert %x_76
-    %45:f32 = convert %x_79
-    %46:vec3<f32> = construct %43, %44, %45
-    %47:vec3<bool> = eq %x_71, %46
-    %48:bool = all %47
-    if %48 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %49:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_88:i32 = load %49
-        %51:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_91:i32 = load %51
-        %53:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_94:i32 = load %53
-        %55:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_97:i32 = load %55
-        %57:f32 = convert %x_88
-        %58:f32 = convert %x_91
-        %59:f32 = convert %x_94
-        %60:f32 = convert %x_97
-        %61:vec4<f32> = construct %57, %58, %59, %60
-        store %x_GLF_color, %61
+    %23:i32 = load %a
+    %x_53:i32 = let %23
+    %25:i32 = load %a
+    %x_54:i32 = let %25
+    %27:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %28:f32 = load %27
+    %x_56:f32 = let %28
+    %30:ptr<function, vec3<f32>, read_write> = access %m, %x_53
+    store_vector_element %30, %x_54, %x_56
+    %31:ptr<function, vec3<f32>, read_write> = access %m, 1i
+    %32:vec3<f32> = load %31
+    %x_59:vec3<f32> = let %32
+    %34:ptr<function, vec3<f32>, read_write> = access %m, 1i
+    %35:vec3<f32> = load %34
+    %x_61:vec3<f32> = let %35
+    %37:array<vec3<f32>, 2> = construct %x_59, %x_61
+    store %arr, %37
+    %38:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %39:f32 = load %38
+    %x_64:f32 = let %39
+    %41:vec3<f32> = construct %x_64, %x_64, %x_64
+    store %v, %41
+    %42:i32 = load %a
+    %x_66:i32 = let %42
+    %44:ptr<function, vec3<f32>, read_write> = access %arr, %x_66
+    %45:vec3<f32> = load %44
+    %x_68:vec3<f32> = let %45
+    %47:vec3<f32> = load %v
+    %x_69:vec3<f32> = let %47
+    %49:vec3<f32> = add %x_69, %x_68
+    store %v, %49
+    %50:vec3<f32> = load %v
+    %x_71:vec3<f32> = let %50
+    %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %53:i32 = load %52
+    %x_73:i32 = let %53
+    %55:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %56:i32 = load %55
+    %x_76:i32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %59:i32 = load %58
+    %x_79:i32 = let %59
+    %61:f32 = convert %x_73
+    %62:f32 = let %61
+    %63:f32 = convert %x_76
+    %64:f32 = let %63
+    %65:f32 = convert %x_79
+    %66:vec3<f32> = construct %62, %64, %65
+    %67:vec3<bool> = eq %x_71, %66
+    %68:bool = all %67
+    if %68 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %69:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %70:i32 = load %69
+        %x_88:i32 = let %70
+        %72:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %73:i32 = load %72
+        %x_91:i32 = let %73
+        %75:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %76:i32 = load %75
+        %x_94:i32 = let %76
+        %78:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %79:i32 = load %78
+        %x_97:i32 = let %79
+        %81:f32 = convert %x_88
+        %82:f32 = let %81
+        %83:f32 = convert %x_91
+        %84:f32 = let %83
+        %85:f32 = convert %x_94
+        %86:f32 = let %85
+        %87:f32 = convert %x_97
+        %88:vec4<f32> = construct %82, %84, %86, %87
+        store %x_GLF_color, %88
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_101:i32 = load %62
-        %x_102:f32 = convert %x_101
-        %65:vec4<f32> = construct %x_102, %x_102, %x_102, %x_102
-        store %x_GLF_color, %65
+      $B4: {  # false
+        %89:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %90:i32 = load %89
+        %x_101:i32 = let %90
+        %92:f32 = convert %x_101
+        %x_102:f32 = let %92
+        %94:vec4<f32> = construct %x_102, %x_102, %x_102, %x_102
+        store %x_GLF_color, %94
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %67:void = call %main_1
-    %68:vec4<f32> = load %x_GLF_color
-    %69:main_out = construct %68
-    ret %69
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %96:void = call %main_1
+    %97:vec4<f32> = load %x_GLF_color
+    %98:main_out = construct %97
+    ret %98
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.msl
index fe56ef2..00103d7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     %m:ptr<function, mat3x4<f32>, read_write> = var
@@ -40,95 +40,108 @@
     %13:vec4<f32> = construct %12
     store %v, %13
     %14:ptr<uniform, f32, read> = access %x_9, 0u, 3i, 0u
-    %x_49:f32 = load %14
-    %16:vec4<f32> = construct %x_49, 0.0f, 0.0f, 0.0f
-    %17:vec4<f32> = construct 0.0f, %x_49, 0.0f, 0.0f
-    %18:vec4<f32> = construct 0.0f, 0.0f, %x_49, 0.0f
-    %19:mat3x4<f32> = construct %16, %17, %18
-    store %m, %19
-    %x_54:i32 = load %a
-    %x_55:i32 = load %a
-    %22:ptr<function, vec4<f32>, read_write> = access %m, %x_54
-    %23:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %24:f32 = load %23
-    store_vector_element %22, %x_55, %24
-    %x_59:i32 = load %a
-    %x_78:i32 = load %a
-    %x_79:i32 = load %a
-    %28:ptr<function, vec4<f32>, read_write> = access %m, 0u
-    %29:f32 = load_vector_element %28, 0u
-    %30:ptr<function, vec4<f32>, read_write> = access %m, 0u
-    %31:f32 = load_vector_element %30, 1u
-    %32:ptr<function, vec4<f32>, read_write> = access %m, 0u
-    %33:f32 = load_vector_element %32, 2u
-    %34:ptr<function, vec4<f32>, read_write> = access %m, 0u
-    %35:f32 = load_vector_element %34, 3u
-    %36:vec4<f32> = construct %29, %31, %33, %35
-    %37:ptr<function, vec4<f32>, read_write> = access %m, 1u
-    %38:f32 = load_vector_element %37, 0u
-    %39:ptr<function, vec4<f32>, read_write> = access %m, 1u
-    %40:f32 = load_vector_element %39, 1u
-    %41:ptr<function, vec4<f32>, read_write> = access %m, 1u
-    %42:f32 = load_vector_element %41, 2u
-    %43:ptr<function, vec4<f32>, read_write> = access %m, 1u
-    %44:f32 = load_vector_element %43, 3u
-    %45:vec4<f32> = construct %38, %40, %42, %44
-    %46:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %15:f32 = load %14
+    %x_49:f32 = let %15
+    %17:vec4<f32> = construct %x_49, 0.0f, 0.0f, 0.0f
+    %18:vec4<f32> = let %17
+    %19:vec4<f32> = construct 0.0f, %x_49, 0.0f, 0.0f
+    %20:vec4<f32> = let %19
+    %21:vec4<f32> = construct 0.0f, 0.0f, %x_49, 0.0f
+    %22:mat3x4<f32> = construct %18, %20, %21
+    store %m, %22
+    %23:i32 = load %a
+    %x_54:i32 = let %23
+    %25:i32 = load %a
+    %x_55:i32 = let %25
+    %27:ptr<function, vec4<f32>, read_write> = access %m, %x_54
+    %28:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %29:f32 = load %28
+    store_vector_element %27, %x_55, %29
+    %30:i32 = load %a
+    %x_59:i32 = let %30
+    %32:i32 = load %a
+    %x_78:i32 = let %32
+    %34:i32 = load %a
+    %x_79:i32 = let %34
+    %36:ptr<function, vec4<f32>, read_write> = access %m, 0u
+    %37:f32 = load_vector_element %36, 0u
+    %38:ptr<function, vec4<f32>, read_write> = access %m, 0u
+    %39:f32 = load_vector_element %38, 1u
+    %40:ptr<function, vec4<f32>, read_write> = access %m, 0u
+    %41:f32 = load_vector_element %40, 2u
+    %42:ptr<function, vec4<f32>, read_write> = access %m, 0u
+    %43:f32 = load_vector_element %42, 3u
+    %44:vec4<f32> = construct %37, %39, %41, %43
+    %45:vec4<f32> = let %44
+    %46:ptr<function, vec4<f32>, read_write> = access %m, 1u
     %47:f32 = load_vector_element %46, 0u
-    %48:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %48:ptr<function, vec4<f32>, read_write> = access %m, 1u
     %49:f32 = load_vector_element %48, 1u
-    %50:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %50:ptr<function, vec4<f32>, read_write> = access %m, 1u
     %51:f32 = load_vector_element %50, 2u
-    %52:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %52:ptr<function, vec4<f32>, read_write> = access %m, 1u
     %53:f32 = load_vector_element %52, 3u
     %54:vec4<f32> = construct %47, %49, %51, %53
-    %55:mat4x4<f32> = construct %36, %45, %54, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
-    store %indexable, %55
-    %56:f32 = load_vector_element %v, %x_59
-    %57:ptr<function, vec4<f32>, read_write> = access %indexable, %x_78
-    %58:f32 = load_vector_element %57, %x_79
-    %59:f32 = add %56, %58
-    store_vector_element %v, %x_59, %59
-    %60:f32 = load_vector_element %v, 1u
-    %61:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %62:f32 = load %61
-    %63:bool = eq %60, %62
-    if %63 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %64:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %65:i32 = load %64
-        %66:f32 = convert %65
-        %67:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %68:i32 = load %67
-        %69:f32 = convert %68
-        %70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %71:i32 = load %70
-        %72:f32 = convert %71
-        %73:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %74:i32 = load %73
-        %75:f32 = convert %74
-        %76:vec4<f32> = construct %66, %69, %72, %75
-        store %x_GLF_color, %76
+    %55:vec4<f32> = let %54
+    %56:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %57:f32 = load_vector_element %56, 0u
+    %58:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %59:f32 = load_vector_element %58, 1u
+    %60:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %61:f32 = load_vector_element %60, 2u
+    %62:ptr<function, vec4<f32>, read_write> = access %m, 2u
+    %63:f32 = load_vector_element %62, 3u
+    %64:vec4<f32> = construct %57, %59, %61, %63
+    %65:mat4x4<f32> = construct %45, %55, %64, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
+    store %indexable, %65
+    %66:f32 = load_vector_element %v, %x_59
+    %67:ptr<function, vec4<f32>, read_write> = access %indexable, %x_78
+    %68:f32 = load_vector_element %67, %x_79
+    %69:f32 = add %66, %68
+    store_vector_element %v, %x_59, %69
+    %70:f32 = load_vector_element %v, 1u
+    %71:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %72:f32 = load %71
+    %73:bool = eq %70, %72
+    if %73 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %74:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %75:i32 = load %74
+        %76:f32 = convert %75
+        %77:f32 = let %76
+        %78:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %79:i32 = load %78
+        %80:f32 = convert %79
+        %81:f32 = let %80
+        %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %83:i32 = load %82
+        %84:f32 = convert %83
+        %85:f32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %87:i32 = load %86
+        %88:f32 = convert %87
+        %89:vec4<f32> = construct %77, %81, %85, %88
+        store %x_GLF_color, %89
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %78:i32 = load %77
-        %79:f32 = convert %78
-        %80:vec4<f32> = construct %79
-        store %x_GLF_color, %80
+      $B4: {  # false
+        %90:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %91:i32 = load %90
+        %92:f32 = convert %91
+        %93:vec4<f32> = construct %92
+        store %x_GLF_color, %93
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %82:void = call %main_1
-    %83:vec4<f32> = load %x_GLF_color
-    %84:main_out = construct %83
-    ret %84
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %95:void = call %main_1
+    %96:vec4<f32> = load %x_GLF_color
+    %97:main_out = construct %96
+    ret %97
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.msl
index f6b96e9..a2d3634 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-increment-vector-component-with-matrix-copy/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,104 +20,131 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     %m:ptr<function, mat3x4<f32>, read_write> = var
     %indexable:ptr<function, mat4x4<f32>, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_44:i32 = load %9
+    %10:i32 = load %9
+    %x_44:i32 = let %10
     store %a, %x_44
-    %11:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %x_46:f32 = load %11
-    %13:vec4<f32> = construct %x_46, %x_46, %x_46, %x_46
-    store %v, %13
-    %14:ptr<uniform, f32, read> = access %x_9, 0u, 3i, 0u
-    %x_49:f32 = load %14
-    %16:vec4<f32> = construct %x_49, 0.0f, 0.0f, 0.0f
-    %17:vec4<f32> = construct 0.0f, %x_49, 0.0f, 0.0f
-    %18:vec4<f32> = construct 0.0f, 0.0f, %x_49, 0.0f
-    %19:mat3x4<f32> = construct %16, %17, %18
-    store %m, %19
-    %x_54:i32 = load %a
-    %x_55:i32 = load %a
-    %22:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_57:f32 = load %22
-    %24:ptr<function, vec4<f32>, read_write> = access %m, %x_54
-    store_vector_element %24, %x_55, %x_57
-    %x_59:i32 = load %a
-    %x_60:mat3x4<f32> = load %m
-    %x_78:i32 = load %a
-    %x_79:i32 = load %a
-    %29:f32 = access %x_60, 0u, 0u
-    %30:f32 = access %x_60, 0u, 1u
-    %31:f32 = access %x_60, 0u, 2u
-    %32:f32 = access %x_60, 0u, 3u
-    %33:vec4<f32> = construct %29, %30, %31, %32
-    %34:f32 = access %x_60, 1u, 0u
-    %35:f32 = access %x_60, 1u, 1u
-    %36:f32 = access %x_60, 1u, 2u
-    %37:f32 = access %x_60, 1u, 3u
-    %38:vec4<f32> = construct %34, %35, %36, %37
-    %39:f32 = access %x_60, 2u, 0u
-    %40:f32 = access %x_60, 2u, 1u
-    %41:f32 = access %x_60, 2u, 2u
-    %42:f32 = access %x_60, 2u, 3u
-    %43:vec4<f32> = construct %39, %40, %41, %42
-    %44:mat4x4<f32> = construct %33, %38, %43, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
-    store %indexable, %44
-    %45:ptr<function, vec4<f32>, read_write> = access %indexable, %x_78
-    %x_81:f32 = load_vector_element %45, %x_79
-    %x_83:f32 = load_vector_element %v, %x_59
-    %48:f32 = add %x_83, %x_81
-    store_vector_element %v, %x_59, %48
-    %x_87:f32 = load_vector_element %v, 1u
-    %50:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_89:f32 = load %50
-    %52:bool = eq %x_87, %x_89
-    if %52 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %53:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_95:i32 = load %53
-        %55:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_98:i32 = load %55
-        %57:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_101:i32 = load %57
-        %59:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_104:i32 = load %59
-        %61:f32 = convert %x_95
-        %62:f32 = convert %x_98
-        %63:f32 = convert %x_101
-        %64:f32 = convert %x_104
-        %65:vec4<f32> = construct %61, %62, %63, %64
-        store %x_GLF_color, %65
+    %12:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %13:f32 = load %12
+    %x_46:f32 = let %13
+    %15:vec4<f32> = construct %x_46, %x_46, %x_46, %x_46
+    store %v, %15
+    %16:ptr<uniform, f32, read> = access %x_9, 0u, 3i, 0u
+    %17:f32 = load %16
+    %x_49:f32 = let %17
+    %19:vec4<f32> = construct %x_49, 0.0f, 0.0f, 0.0f
+    %20:vec4<f32> = let %19
+    %21:vec4<f32> = construct 0.0f, %x_49, 0.0f, 0.0f
+    %22:vec4<f32> = let %21
+    %23:vec4<f32> = construct 0.0f, 0.0f, %x_49, 0.0f
+    %24:mat3x4<f32> = construct %20, %22, %23
+    store %m, %24
+    %25:i32 = load %a
+    %x_54:i32 = let %25
+    %27:i32 = load %a
+    %x_55:i32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %30:f32 = load %29
+    %x_57:f32 = let %30
+    %32:ptr<function, vec4<f32>, read_write> = access %m, %x_54
+    store_vector_element %32, %x_55, %x_57
+    %33:i32 = load %a
+    %x_59:i32 = let %33
+    %35:mat3x4<f32> = load %m
+    %x_60:mat3x4<f32> = let %35
+    %37:i32 = load %a
+    %x_78:i32 = let %37
+    %39:i32 = load %a
+    %x_79:i32 = let %39
+    %41:f32 = access %x_60, 0u, 0u
+    %42:f32 = access %x_60, 0u, 1u
+    %43:f32 = access %x_60, 0u, 2u
+    %44:f32 = access %x_60, 0u, 3u
+    %45:vec4<f32> = construct %41, %42, %43, %44
+    %46:vec4<f32> = let %45
+    %47:f32 = access %x_60, 1u, 0u
+    %48:f32 = access %x_60, 1u, 1u
+    %49:f32 = access %x_60, 1u, 2u
+    %50:f32 = access %x_60, 1u, 3u
+    %51:vec4<f32> = construct %47, %48, %49, %50
+    %52:vec4<f32> = let %51
+    %53:f32 = access %x_60, 2u, 0u
+    %54:f32 = access %x_60, 2u, 1u
+    %55:f32 = access %x_60, 2u, 2u
+    %56:f32 = access %x_60, 2u, 3u
+    %57:vec4<f32> = construct %53, %54, %55, %56
+    %58:mat4x4<f32> = construct %46, %52, %57, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
+    store %indexable, %58
+    %59:ptr<function, vec4<f32>, read_write> = access %indexable, %x_78
+    %60:f32 = load_vector_element %59, %x_79
+    %x_81:f32 = let %60
+    %62:f32 = load_vector_element %v, %x_59
+    %x_83:f32 = let %62
+    %64:f32 = add %x_83, %x_81
+    store_vector_element %v, %x_59, %64
+    %65:f32 = load_vector_element %v, 1u
+    %x_87:f32 = let %65
+    %67:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %68:f32 = load %67
+    %x_89:f32 = let %68
+    %70:bool = eq %x_87, %x_89
+    if %70 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %71:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %72:i32 = load %71
+        %x_95:i32 = let %72
+        %74:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %75:i32 = load %74
+        %x_98:i32 = let %75
+        %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %78:i32 = load %77
+        %x_101:i32 = let %78
+        %80:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %81:i32 = load %80
+        %x_104:i32 = let %81
+        %83:f32 = convert %x_95
+        %84:f32 = let %83
+        %85:f32 = convert %x_98
+        %86:f32 = let %85
+        %87:f32 = convert %x_101
+        %88:f32 = let %87
+        %89:f32 = convert %x_104
+        %90:vec4<f32> = construct %84, %86, %88, %89
+        store %x_GLF_color, %90
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_108:i32 = load %66
-        %x_109:f32 = convert %x_108
-        %69:vec4<f32> = construct %x_109, %x_109, %x_109, %x_109
-        store %x_GLF_color, %69
+      $B4: {  # false
+        %91:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %92:i32 = load %91
+        %x_108:i32 = let %92
+        %94:f32 = convert %x_108
+        %x_109:f32 = let %94
+        %96:vec4<f32> = construct %x_109, %x_109, %x_109, %x_109
+        store %x_GLF_color, %96
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %71:void = call %main_1
-    %72:vec4<f32> = load %x_GLF_color
-    %73:main_out = construct %72
-    ret %73
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %98:void = call %main_1
+    %99:vec4<f32> = load %x_GLF_color
+    %100:main_out = construct %99
+    ret %100
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.msl
index efdd3b1..1b8d21e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,68 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():vec4<f32> {
+  $B2: {
+    %x:ptr<function, f32, read_write> = var
+    store %x, 1.0f
+    %5:f32 = load_vector_element %gl_FragCoord, 0u
+    %6:bool = lt %5, 0.0f
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %x, 0.5f
+        exit_if  # if_1
+      }
+    }
+    %7:f32 = load %x
+    %x_34:f32 = let %7
+    %9:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
+    ret %9
+  }
+}
+%main_1 = func():void {
+  $B4: {
+    store %x_GLF_color, vec4<f32>(0.0f)
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %11:vec4<f32> = call %func_
+        %x_26:vec4<f32> = let %11
+        store %x_GLF_color, %x_26
+        if false [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            exit_if  # if_2
+          }
+          $B8: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        next_iteration  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.msl
index efdd3b1..e0d14f7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-empty-block/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,69 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():vec4<f32> {
+  $B2: {
+    %x:ptr<function, f32, read_write> = var
+    store %x, 1.0f
+    %5:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_30:f32 = let %5
+    %7:bool = lt %x_30, 0.0f
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %x, 0.5f
+        exit_if  # if_1
+      }
+    }
+    %8:f32 = load %x
+    %x_34:f32 = let %8
+    %10:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
+    ret %10
+  }
+}
+%main_1 = func():void {
+  $B4: {
+    store %x_GLF_color, vec4<f32>(0.0f)
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %12:vec4<f32> = call %func_
+        %x_26:vec4<f32> = let %12
+        store %x_GLF_color, %x_26
+        if false [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            exit_if  # if_2
+          }
+          $B8: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        next_iteration  # -> $B5
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    ret %18
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.msl
index ec5f8fa..0871913 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,27 +8,27 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%returnRed_ = func():vec4<f32> -> %b2 {
-  %b2 = block {
+%returnRed_ = func():vec4<f32> {
+  $B2: {
     %x_33:ptr<function, bool, read_write> = var, false
     %x_34:ptr<function, vec4<f32>, read_write> = var
     %x_48:ptr<function, vec4<f32>, read_write> = var
     %x_51:ptr<function, vec4<f32>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_49:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %9:ptr<uniform, i32, read> = access %x_6, 0u
             %10:i32 = load %9
             %11:bool = eq %10, 1i
-            if %11 [t: %b7] {  # if_1
-              %b7 = block {  # true
+            if %11 [t: $B6] {  # if_1
+              $B6: {  # true
                 store %x_33, true
                 store %x_34, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                 store %x_48, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
@@ -36,19 +36,19 @@
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
+          $B5: {  # continuing
             store %x_48, vec4<f32>(0.0f)
             store %x_49, false
-            break_if true %b5
+            break_if true  # -> [t: exit_loop loop_2, f: $B4]
           }
         }
         %12:vec4<f32> = load %x_48
         store %x_51, %12
         %13:bool = load %x_49
-        if %13 [t: %b8] {  # if_2
-          %b8 = block {  # true
+        if %13 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
@@ -57,43 +57,41 @@
         store %x_51, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     %14:vec4<f32> = load %x_51
     ret %14
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
-    loop [b: %b10, c: %b11] {  # loop_3
-      %b10 = block {  # body
-        %x_30:vec4<f32> = call %returnRed_
+%main_1 = func():void {
+  $B8: {
+    loop [b: $B9, c: $B10] {  # loop_3
+      $B9: {  # body
+        %16:vec4<f32> = call %returnRed_
+        %x_30:vec4<f32> = let %16
         store %x_GLF_color, %x_30
-        if false [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+        if false [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_3
           }
         }
-        continue %b11
+        continue  # -> $B10
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.msl
index e47ec85..4425789 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-nested-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,31 +8,33 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%returnRed_ = func():vec4<f32> -> %b2 {
-  %b2 = block {
+%returnRed_ = func():vec4<f32> {
+  $B2: {
     %x_33:ptr<function, bool, read_write> = var, false
     %x_34:ptr<function, vec4<f32>, read_write> = var
     %x_48:ptr<function, vec4<f32>, read_write> = var
     %x_36_phi:ptr<function, bool, read_write> = var
     %x_51_phi:ptr<function, vec4<f32>, read_write> = var
     store %x_36_phi, false
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_48_phi:ptr<function, vec4<f32>, read_write> = var
         %x_49_phi:ptr<function, bool, read_write> = var
-        %x_36:bool = load %x_36_phi
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %12:ptr<uniform, i32, read> = access %x_6, 0u
-            %x_44:i32 = load %12
-            %14:bool = eq %x_44, 1i
-            if %14 [t: %b7] {  # if_1
-              %b7 = block {  # true
+        %11:bool = load %x_36_phi
+        %x_36:bool = let %11
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
+            %13:ptr<uniform, i32, read> = access %x_6, 0u
+            %14:i32 = load %13
+            %x_44:i32 = let %14
+            %16:bool = eq %x_44, 1i
+            if %16 [t: $B6] {  # if_1
+              $B6: {  # true
                 store %x_33, true
                 store %x_34, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                 store %x_48_phi, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
@@ -40,21 +42,22 @@
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
+          $B5: {  # continuing
             store %x_48_phi, vec4<f32>(0.0f)
             store %x_49_phi, false
-            break_if true %b5
+            break_if true  # -> [t: exit_loop loop_2, f: $B4]
           }
         }
-        %15:vec4<f32> = load %x_48_phi
-        store %x_48, %15
-        %x_49:bool = load %x_49_phi
-        %17:vec4<f32> = load %x_48
-        store %x_51_phi, %17
-        if %x_49 [t: %b8] {  # if_2
-          %b8 = block {  # true
+        %17:vec4<f32> = load %x_48_phi
+        store %x_48, %17
+        %18:bool = load %x_49_phi
+        %x_49:bool = let %18
+        %20:vec4<f32> = load %x_48
+        store %x_51_phi, %20
+        if %x_49 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
@@ -63,44 +66,42 @@
         store %x_51_phi, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        store %x_36_phi, false
-        next_iteration %b3
-      }
     }
-    %x_51:vec4<f32> = load %x_51_phi
+    %21:vec4<f32> = load %x_51_phi
+    %x_51:vec4<f32> = let %21
     ret %x_51
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
-    loop [b: %b10, c: %b11] {  # loop_3
-      %b10 = block {  # body
-        %x_30:vec4<f32> = call %returnRed_
+%main_1 = func():void {
+  $B8: {
+    loop [b: $B9, c: $B10] {  # loop_3
+      $B9: {  # body
+        %24:vec4<f32> = call %returnRed_
+        %x_30:vec4<f32> = let %24
         store %x_GLF_color, %x_30
-        if false [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+        if false [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_3
           }
         }
-        continue %b11
+        continue  # -> $B10
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.msl
index efdd3b1..b24dbf3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,86 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():f32 {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %4:i32 = load %i
+        %5:bool = lt %4, 10i
+        if %5 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %6:i32 = load %i
+        %7:bool = gt %6, 5i
+        if %7 [t: $B7] {  # if_2
+          $B7: {  # true
+            %8:i32 = load %i
+            %9:i32 = add %8, 1i
+            store %i, %9
+            exit_if  # if_2
+          }
+        }
+        %10:i32 = load %i
+        %11:bool = gt %10, 8i
+        if %11 [t: $B8] {  # if_3
+          $B8: {  # true
+            ret 0.0f
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %12:i32 = load %i
+        %13:i32 = add %12, 1i
+        store %i, %13
+        next_iteration  # -> $B3
+      }
+    }
+    ret 1.0f
+  }
+}
+%main_1 = func():void {
+  $B9: {
+    if false [t: $B10, f: $B11] {  # if_4
+      $B10: {  # true
+        %15:f32 = call %func_
+        %x_28:f32 = let %15
+        %17:vec4<f32> = construct %x_28
+        store %x_GLF_color, %17
+        exit_if  # if_4
+      }
+      $B11: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_4
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.msl
index efdd3b1..6257abf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-return-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,91 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():f32 {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %4:i32 = load %i
+        %x_35:i32 = let %4
+        %6:bool = lt %x_35, 10i
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %7:i32 = load %i
+        %x_38:i32 = let %7
+        %9:bool = gt %x_38, 5i
+        if %9 [t: $B7] {  # if_2
+          $B7: {  # true
+            %10:i32 = load %i
+            %x_42:i32 = let %10
+            %12:i32 = add %x_42, 1i
+            store %i, %12
+            exit_if  # if_2
+          }
+        }
+        %13:i32 = load %i
+        %x_44:i32 = let %13
+        %15:bool = gt %x_44, 8i
+        if %15 [t: $B8] {  # if_3
+          $B8: {  # true
+            ret 0.0f
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %16:i32 = load %i
+        %x_48:i32 = let %16
+        %18:i32 = add %x_48, 1i
+        store %i, %18
+        next_iteration  # -> $B3
+      }
+    }
+    ret 1.0f
+  }
+}
+%main_1 = func():void {
+  $B9: {
+    if false [t: $B10, f: $B11] {  # if_4
+      $B10: {  # true
+        %20:f32 = call %func_
+        %x_28:f32 = let %20
+        %22:vec4<f32> = construct %x_28, %x_28, %x_28, %x_28
+        store %x_GLF_color, %22
+        exit_if  # if_4
+      }
+      $B11: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_4
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.msl
index efdd3b1..c7ec7ce 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,69 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():f32 {
+  $B2: {
+    %x:ptr<function, f32, read_write> = var
+    store %x, 2.0f
+    %5:f32 = load_vector_element %gl_FragCoord, 0u
+    %6:bool = eq %5, 12.0f
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
+        %7:f32 = load_vector_element %gl_FragCoord, 1u
+        %8:bool = eq %7, 13.0f
+        if %8 [t: $B4] {  # if_2
+          $B4: {  # true
+            %9:f32 = load %x
+            %10:f32 = add %9, 1.0f
+            store %x, %10
+            exit_if  # if_2
+          }
+        }
+        %11:f32 = load %x
+        %x_46:f32 = let %11
+        ret %x_46
+      }
+    }
+    ret 1.0f
+  }
+}
+%main_1 = func():void {
+  $B5: {
+    if false [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %14:f32 = call %func_
+        %x_31:f32 = let %14
+        %16:vec4<f32> = construct %x_31
+        store %x_GLF_color, %16
+        exit_if  # if_3
+      }
+      $B7: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.msl
index efdd3b1..1796b0a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inline-pass-unreachable-func/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,72 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():f32 {
+  $B2: {
+    %x:ptr<function, f32, read_write> = var
+    store %x, 2.0f
+    %5:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_35:f32 = let %5
+    %7:bool = eq %x_35, 12.0f
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        %8:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_40:f32 = let %8
+        %10:bool = eq %x_40, 13.0f
+        if %10 [t: $B4] {  # if_2
+          $B4: {  # true
+            %11:f32 = load %x
+            %x_44:f32 = let %11
+            %13:f32 = add %x_44, 1.0f
+            store %x, %13
+            exit_if  # if_2
+          }
+        }
+        %14:f32 = load %x
+        %x_46:f32 = let %14
+        ret %x_46
+      }
+    }
+    ret 1.0f
+  }
+}
+%main_1 = func():void {
+  $B5: {
+    if false [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %17:f32 = call %func_
+        %x_31:f32 = let %17
+        %19:vec4<f32> = construct %x_31, %x_31, %x_31, %x_31
+        store %x_GLF_color, %19
+        exit_if  # if_3
+      }
+      $B7: {  # false
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    ret %24
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.msl
index 6587b3a..765d6e6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,116 +20,122 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<i32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
     %10:i32 = load %9
     store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
         %12:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
         %13:i32 = load %12
         %14:bool = lt %11, %13
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %16:ptr<function, i32, read_write> = access %arr, %x_50
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %18:i32 = load %17
-        store %16, %18
-        continue %b4
+        %15:i32 = load %i
+        %x_50:i32 = let %15
+        %17:ptr<function, i32, read_write> = access %arr, %x_50
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %19:i32 = load %18
+        store %17, %19
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %19:i32 = load %i
-        %20:i32 = add %19, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %20:i32 = load %i
+        %21:i32 = add %20, 1i
+        store %i, %21
+        next_iteration  # -> $B3
       }
     }
     store %a, -1i
-    %21:f32 = load_vector_element %gl_FragCoord, 1u
-    %22:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-    %23:f32 = load %22
-    %24:bool = lt %21, %23
-    %25:bool = eq %24, false
-    if %25 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %26:i32 = load %a
-        %x_65:i32 = add %26, 1i
+    %22:f32 = load_vector_element %gl_FragCoord, 1u
+    %23:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+    %24:f32 = load %23
+    %25:bool = lt %22, %24
+    %26:bool = eq %25, false
+    if %26 [t: $B7] {  # if_2
+      $B7: {  # true
+        %27:i32 = load %a
+        %28:i32 = add %27, 1i
+        %x_65:i32 = let %28
         store %a, %x_65
-        %28:ptr<function, i32, read_write> = access %arr, %x_65
-        %29:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %30:i32 = load %29
-        store %28, %30
+        %30:ptr<function, i32, read_write> = access %arr, %x_65
+        %31:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %32:i32 = load %31
+        store %30, %32
         exit_if  # if_2
       }
     }
-    %31:i32 = load %a
-    %x_70:i32 = add %31, 1i
+    %33:i32 = load %a
+    %34:i32 = add %33, 1i
+    %x_70:i32 = let %34
     store %a, %x_70
-    %33:ptr<function, i32, read_write> = access %arr, %x_70
-    %34:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %35:i32 = load %34
-    store %33, %35
-    %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %37:i32 = load %36
-    %38:ptr<function, i32, read_write> = access %arr, %37
-    %39:i32 = load %38
-    %40:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %41:i32 = load %40
-    %42:bool = eq %39, %41
-    if %42 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %43:i32 = load %a
-        %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %46:i32 = load %45
+    %36:ptr<function, i32, read_write> = access %arr, %x_70
+    %37:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %38:i32 = load %37
+    store %36, %38
+    %39:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %40:i32 = load %39
+    %41:ptr<function, i32, read_write> = access %arr, %40
+    %42:i32 = load %41
+    %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %44:i32 = load %43
+    %45:bool = eq %42, %44
+    if %45 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %46:i32 = load %a
         %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:i32 = load %a
-        %52:f32 = convert %51
-        %53:vec4<f32> = construct %44, %47, %50, %52
-        store %x_GLF_color, %53
+        %48:f32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %50:i32 = load %49
+        %51:f32 = convert %50
+        %52:f32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %54:i32 = load %53
+        %55:f32 = convert %54
+        %56:f32 = let %55
+        %57:i32 = load %a
+        %58:f32 = convert %57
+        %59:vec4<f32> = construct %48, %52, %56, %58
+        store %x_GLF_color, %59
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %55:i32 = load %54
-        %56:f32 = convert %55
-        %57:vec4<f32> = construct %56
-        store %x_GLF_color, %57
+      $B9: {  # false
+        %60:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %61:i32 = load %60
+        %62:f32 = convert %61
+        %63:vec4<f32> = construct %62
+        store %x_GLF_color, %63
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %60:void = call %main_1
-    %61:vec4<f32> = load %x_GLF_color
-    %62:main_out = construct %61
-    ret %62
+    %66:void = call %main_1
+    %67:vec4<f32> = load %x_GLF_color
+    %68:main_out = construct %67
+    ret %68
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.msl
index f19d5bb..6865f9d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-increase-negative/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,116 +20,142 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<i32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_40:i32 = load %9
+    %10:i32 = load %9
+    %x_40:i32 = let %10
     store %i, %x_40
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_45:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_47:i32 = load %12
-        %14:bool = lt %x_45, %x_47
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_45:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %15:i32 = load %14
+        %x_47:i32 = let %15
+        %17:bool = lt %x_45, %x_47
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_50:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_52:i32 = load %16
-        %18:ptr<function, i32, read_write> = access %arr, %x_50
-        store %18, %x_52
-        continue %b4
+        %18:i32 = load %i
+        %x_50:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %21:i32 = load %20
+        %x_52:i32 = let %21
+        %23:ptr<function, i32, read_write> = access %arr, %x_50
+        store %23, %x_52
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_54:i32 = load %i
-        %20:i32 = add %x_54, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %24:i32 = load %i
+        %x_54:i32 = let %24
+        %26:i32 = add %x_54, 1i
+        store %i, %26
+        next_iteration  # -> $B3
       }
     }
     store %a, -1i
-    %x_57:f32 = load_vector_element %gl_FragCoord, 1u
-    %22:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-    %x_59:f32 = load %22
-    %24:bool = lt %x_57, %x_59
-    %25:bool = eq %24, false
-    if %25 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %x_64:i32 = load %a
-        %x_65:i32 = add %x_64, 1i
+    %27:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_57:f32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+    %30:f32 = load %29
+    %x_59:f32 = let %30
+    %32:bool = lt %x_57, %x_59
+    %33:bool = eq %32, false
+    if %33 [t: $B7] {  # if_2
+      $B7: {  # true
+        %34:i32 = load %a
+        %x_64:i32 = let %34
+        %36:i32 = add %x_64, 1i
+        %x_65:i32 = let %36
         store %a, %x_65
-        %28:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_67:i32 = load %28
-        %30:ptr<function, i32, read_write> = access %arr, %x_65
-        store %30, %x_67
+        %38:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %39:i32 = load %38
+        %x_67:i32 = let %39
+        %41:ptr<function, i32, read_write> = access %arr, %x_65
+        store %41, %x_67
         exit_if  # if_2
       }
     }
-    %x_69:i32 = load %a
-    %x_70:i32 = add %x_69, 1i
+    %42:i32 = load %a
+    %x_69:i32 = let %42
+    %44:i32 = add %x_69, 1i
+    %x_70:i32 = let %44
     store %a, %x_70
-    %33:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_72:i32 = load %33
-    %35:ptr<function, i32, read_write> = access %arr, %x_70
-    store %35, %x_72
-    %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_75:i32 = load %36
-    %38:ptr<function, i32, read_write> = access %arr, %x_75
-    %x_77:i32 = load %38
-    %40:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_79:i32 = load %40
-    %42:bool = eq %x_77, %x_79
-    if %42 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %x_84:i32 = load %a
-        %44:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_87:i32 = load %44
-        %46:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_90:i32 = load %46
-        %x_92:i32 = load %a
-        %49:f32 = convert %x_84
-        %50:f32 = convert %x_87
-        %51:f32 = convert %x_90
-        %52:f32 = convert %x_92
-        %53:vec4<f32> = construct %49, %50, %51, %52
-        store %x_GLF_color, %53
+    %46:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %47:i32 = load %46
+    %x_72:i32 = let %47
+    %49:ptr<function, i32, read_write> = access %arr, %x_70
+    store %49, %x_72
+    %50:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %51:i32 = load %50
+    %x_75:i32 = let %51
+    %53:ptr<function, i32, read_write> = access %arr, %x_75
+    %54:i32 = load %53
+    %x_77:i32 = let %54
+    %56:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %57:i32 = load %56
+    %x_79:i32 = let %57
+    %59:bool = eq %x_77, %x_79
+    if %59 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %60:i32 = load %a
+        %x_84:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %63:i32 = load %62
+        %x_87:i32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %66:i32 = load %65
+        %x_90:i32 = let %66
+        %68:i32 = load %a
+        %x_92:i32 = let %68
+        %70:f32 = convert %x_84
+        %71:f32 = let %70
+        %72:f32 = convert %x_87
+        %73:f32 = let %72
+        %74:f32 = convert %x_90
+        %75:f32 = let %74
+        %76:f32 = convert %x_92
+        %77:vec4<f32> = construct %71, %73, %75, %76
+        store %x_GLF_color, %77
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_96:i32 = load %54
-        %x_97:f32 = convert %x_96
-        %57:vec4<f32> = construct %x_97, %x_97, %x_97, %x_97
-        store %x_GLF_color, %57
+      $B9: {  # false
+        %78:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %79:i32 = load %78
+        %x_96:i32 = let %79
+        %81:f32 = convert %x_96
+        %x_97:f32 = let %81
+        %83:vec4<f32> = construct %x_97, %x_97, %x_97, %x_97
+        store %x_GLF_color, %83
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %60:void = call %main_1
-    %61:vec4<f32> = load %x_GLF_color
-    %62:main_out = construct %61
-    ret %62
+    %86:void = call %main_1
+    %87:vec4<f32> = load %x_GLF_color
+    %88:main_out = construct %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.msl
index ea06141..f21cc9a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
@@ -40,17 +40,17 @@
     %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %13:i32 = load %12
     store %i, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %14:i32 = load %i
         %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %16:i32 = load %15
         %17:bool = lt %14, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -60,53 +60,56 @@
         %21:i32 = negation %20
         %22:f32 = ldexp %19, %21
         store %b, %22
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %23:i32 = load %i
         %24:i32 = add %23, 1i
         store %i, %24
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %25:f32 = load %b
     %26:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
     %27:f32 = load %26
     %28:bool = eq %25, %27
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    if %28 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %30:i32 = load %29
         %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %31, %34, %37, %40
-        store %x_GLF_color, %41
+        %32:f32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:f32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:vec4<f32> = construct %32, %36, %40, %43
+        store %x_GLF_color, %44
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %42:f32 = load %b
-        %43:vec4<f32> = construct %42
-        store %x_GLF_color, %43
+      $B8: {  # false
+        %45:f32 = load %b
+        %46:vec4<f32> = construct %45
+        store %x_GLF_color, %46
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.msl
index 1acb09f..4ab269b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-ldexp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,93 +20,111 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_34:i32 = load %8
+    %9:i32 = load %8
+    %x_34:i32 = let %9
     store %a, %x_34
-    %x_35:i32 = load %a
-    %11:i32 = add %x_35, 1i
-    store %a, %11
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_38:i32 = load %12
+    %11:i32 = load %a
+    %x_35:i32 = let %11
+    %13:i32 = add %x_35, 1i
+    store %a, %13
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_38:i32 = let %15
     store %i, %x_38
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_43:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_45:i32 = load %15
-        %17:bool = lt %x_43, %x_45
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %i
+        %x_43:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_45:i32 = let %20
+        %22:bool = lt %x_43, %x_45
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_48:i32 = load %i
-        %x_50:i32 = load %a
-        %20:f32 = convert %x_48
-        %21:i32 = negation %x_50
-        %22:f32 = ldexp %20, %21
-        store %b, %22
-        continue %b4
+        %23:i32 = load %i
+        %x_48:i32 = let %23
+        %25:i32 = load %a
+        %x_50:i32 = let %25
+        %27:f32 = convert %x_48
+        %28:i32 = negation %x_50
+        %29:f32 = ldexp %27, %28
+        store %b, %29
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_53:i32 = load %i
-        %24:i32 = add %x_53, 1i
-        store %i, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %30:i32 = load %i
+        %x_53:i32 = let %30
+        %32:i32 = add %x_53, 1i
+        store %i, %32
+        next_iteration  # -> $B3
       }
     }
-    %x_55:f32 = load %b
-    %26:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-    %x_57:f32 = load %26
-    %28:bool = eq %x_55, %x_57
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_63:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_66:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_69:i32 = load %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_72:i32 = load %35
-        %37:f32 = convert %x_63
-        %38:f32 = convert %x_66
-        %39:f32 = convert %x_69
-        %40:f32 = convert %x_72
-        %41:vec4<f32> = construct %37, %38, %39, %40
-        store %x_GLF_color, %41
+    %33:f32 = load %b
+    %x_55:f32 = let %33
+    %35:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %36:f32 = load %35
+    %x_57:f32 = let %36
+    %38:bool = eq %x_55, %x_57
+    if %38 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %40:i32 = load %39
+        %x_63:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_66:i32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %46:i32 = load %45
+        %x_69:i32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %49:i32 = load %48
+        %x_72:i32 = let %49
+        %51:f32 = convert %x_63
+        %52:f32 = let %51
+        %53:f32 = convert %x_66
+        %54:f32 = let %53
+        %55:f32 = convert %x_69
+        %56:f32 = let %55
+        %57:f32 = convert %x_72
+        %58:vec4<f32> = construct %52, %54, %56, %57
+        store %x_GLF_color, %58
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %x_75:f32 = load %b
-        %43:vec4<f32> = construct %x_75, %x_75, %x_75, %x_75
-        store %x_GLF_color, %43
+      $B8: {  # false
+        %59:f32 = load %b
+        %x_75:f32 = let %59
+        %61:vec4<f32> = construct %x_75, %x_75, %x_75, %x_75
+        store %x_GLF_color, %61
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.msl
index 30d8867..78cc86be 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -31,17 +31,17 @@
     %12:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
     %13:i32 = load %12
     store %i, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %14:i32 = load %i
         %15:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
         %16:i32 = load %15
         %17:bool = lt %14, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -49,95 +49,111 @@
         %19:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
         %20:i32 = load %19
         %21:bool = gt %18, %20
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %21 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
         %22:f32 = load %f
-        %23:i32 = convert %22
-        %24:i32 = sub %23, 1i
-        %25:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %26:i32 = load %25
-        %27:i32 = sub %24, %26
-        %28:i32 = load %i
-        %29:i32 = add %27, %28
-        store %a, %29
-        %30:i32 = load %b
-        %31:i32 = add %30, 1i
-        store %b, %31
-        continue %b4
+        %23:i32 = call %tint_f32_to_i32, %22
+        %25:i32 = sub %23, 1i
+        %26:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %27:i32 = load %26
+        %28:i32 = sub %25, %27
+        %29:i32 = load %i
+        %30:i32 = add %28, %29
+        store %a, %30
+        %31:i32 = load %b
+        %32:i32 = add %31, 1i
+        store %b, %32
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %32:i32 = load %i
-        %33:i32 = add %32, 1i
-        store %i, %33
-        next_iteration %b3
+      $B4: {  # continuing
+        %33:i32 = load %i
+        %34:i32 = add %33, 1i
+        store %i, %34
+        next_iteration  # -> $B3
       }
     }
-    %34:i32 = load %b
-    %35:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %36:i32 = load %35
-    %37:bool = eq %34, %36
-    if %37 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_100:i32 = load %38
+    %35:i32 = load %b
+    %36:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %37:i32 = load %36
+    %38:bool = eq %35, %37
+    if %38 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %39:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %40:i32 = load %39
+        %x_100:i32 = let %40
         ret %x_100
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_102:i32 = load %40
+      $B9: {  # false
+        %42:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %43:i32 = load %42
+        %x_102:i32 = let %43
         ret %x_102
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %param:ptr<function, f32, read_write> = var
     store %param, 0.69999998807907104492f
-    %x_34:i32 = call %func_f1_, %param
-    %45:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %46:i32 = load %45
-    %47:bool = eq %x_34, %46
-    if %47 [t: %b11, f: %b12] {  # if_4
-      %b11 = block {  # true
-        %48:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %55:i32 = load %54
-        %56:f32 = convert %55
-        %57:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %58:i32 = load %57
-        %59:f32 = convert %58
-        %60:vec4<f32> = construct %50, %53, %56, %59
-        store %x_GLF_color, %60
+    %47:i32 = call %func_f1_, %param
+    %x_34:i32 = let %47
+    %49:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %50:i32 = load %49
+    %51:bool = eq %x_34, %50
+    if %51 [t: $B11, f: $B12] {  # if_4
+      $B11: {  # true
+        %52:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %53:i32 = load %52
+        %54:f32 = convert %53
+        %55:f32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %57:i32 = load %56
+        %58:f32 = convert %57
+        %59:f32 = let %58
+        %60:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %61:i32 = load %60
+        %62:f32 = convert %61
+        %63:f32 = let %62
+        %64:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %65:i32 = load %64
+        %66:f32 = convert %65
+        %67:vec4<f32> = construct %55, %59, %63, %66
+        store %x_GLF_color, %67
         exit_if  # if_4
       }
-      %b12 = block {  # false
-        %61:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %62:i32 = load %61
-        %63:f32 = convert %62
-        %64:vec4<f32> = construct %63
-        store %x_GLF_color, %64
+      $B12: {  # false
+        %68:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %69:i32 = load %68
+        %70:f32 = convert %69
+        %71:vec4<f32> = construct %70
+        store %x_GLF_color, %71
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %66:void = call %main_1
-    %67:vec4<f32> = load %x_GLF_color
-    %68:main_out = construct %67
-    ret %68
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B14: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.msl
index 87b03d4b..e1476e4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-neg-func-arg/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,132 +12,169 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_f1_ = func(%f:ptr<function, f32, read_write>):i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_60:i32 = load %8
+    %9:i32 = load %8
+    %x_60:i32 = let %9
     store %a, %x_60
-    %10:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_62:i32 = load %10
+    %11:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %12:i32 = load %11
+    %x_62:i32 = let %12
     store %b, %x_62
-    %12:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_64:i32 = load %12
+    %14:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %15:i32 = load %14
+    %x_64:i32 = let %15
     store %i, %x_64
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_69:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-        %x_71:i32 = load %15
-        %17:bool = lt %x_69, %x_71
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %i
+        %x_69:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+        %20:i32 = load %19
+        %x_71:i32 = let %20
+        %22:bool = lt %x_69, %x_71
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_74:i32 = load %a
-        %19:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_76:i32 = load %19
-        %21:bool = gt %x_74, %x_76
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %23:i32 = load %a
+        %x_74:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %26:i32 = load %25
+        %x_76:i32 = let %26
+        %28:bool = gt %x_74, %x_76
+        if %28 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_80:f32 = load %f
-        %23:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_84:i32 = load %23
-        %x_86:i32 = load %i
-        %26:i32 = convert %x_80
-        %27:i32 = sub %26, 1i
-        %28:i32 = sub %27, %x_84
-        %29:i32 = add %28, %x_86
-        store %a, %29
-        %x_88:i32 = load %b
-        %31:i32 = add %x_88, 1i
-        store %b, %31
-        continue %b4
+        %29:f32 = load %f
+        %x_80:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %32:i32 = load %31
+        %x_84:i32 = let %32
+        %34:i32 = load %i
+        %x_86:i32 = let %34
+        %36:i32 = call %tint_f32_to_i32, %x_80
+        %38:i32 = sub %36, 1i
+        %39:i32 = sub %38, %x_84
+        %40:i32 = add %39, %x_86
+        store %a, %40
+        %41:i32 = load %b
+        %x_88:i32 = let %41
+        %43:i32 = add %x_88, 1i
+        store %b, %43
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_90:i32 = load %i
-        %33:i32 = add %x_90, 1i
-        store %i, %33
-        next_iteration %b3
+      $B4: {  # continuing
+        %44:i32 = load %i
+        %x_90:i32 = let %44
+        %46:i32 = add %x_90, 1i
+        store %i, %46
+        next_iteration  # -> $B3
       }
     }
-    %x_92:i32 = load %b
-    %35:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_94:i32 = load %35
-    %37:bool = eq %x_92, %x_94
-    if %37 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_100:i32 = load %38
+    %47:i32 = load %b
+    %x_92:i32 = let %47
+    %49:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %50:i32 = load %49
+    %x_94:i32 = let %50
+    %52:bool = eq %x_92, %x_94
+    if %52 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %53:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %54:i32 = load %53
+        %x_100:i32 = let %54
         ret %x_100
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_102:i32 = load %40
+      $B9: {  # false
+        %56:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %57:i32 = load %56
+        %x_102:i32 = let %57
         ret %x_102
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %param:ptr<function, f32, read_write> = var
     store %param, 0.69999998807907104492f
-    %x_34:i32 = call %func_f1_, %param
-    %45:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_36:i32 = load %45
-    %47:bool = eq %x_34, %x_36
-    if %47 [t: %b11, f: %b12] {  # if_4
-      %b11 = block {  # true
-        %48:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_42:i32 = load %48
-        %50:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_45:i32 = load %50
-        %52:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_48:i32 = load %52
-        %54:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_51:i32 = load %54
-        %56:f32 = convert %x_42
-        %57:f32 = convert %x_45
-        %58:f32 = convert %x_48
-        %59:f32 = convert %x_51
-        %60:vec4<f32> = construct %56, %57, %58, %59
-        store %x_GLF_color, %60
+    %61:i32 = call %func_f1_, %param
+    %x_34:i32 = let %61
+    %63:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %64:i32 = load %63
+    %x_36:i32 = let %64
+    %66:bool = eq %x_34, %x_36
+    if %66 [t: $B11, f: $B12] {  # if_4
+      $B11: {  # true
+        %67:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %68:i32 = load %67
+        %x_42:i32 = let %68
+        %70:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %71:i32 = load %70
+        %x_45:i32 = let %71
+        %73:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %74:i32 = load %73
+        %x_48:i32 = let %74
+        %76:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %77:i32 = load %76
+        %x_51:i32 = let %77
+        %79:f32 = convert %x_42
+        %80:f32 = let %79
+        %81:f32 = convert %x_45
+        %82:f32 = let %81
+        %83:f32 = convert %x_48
+        %84:f32 = let %83
+        %85:f32 = convert %x_51
+        %86:vec4<f32> = construct %80, %82, %84, %85
+        store %x_GLF_color, %86
         exit_if  # if_4
       }
-      %b12 = block {  # false
-        %61:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_55:i32 = load %61
-        %x_56:f32 = convert %x_55
-        %64:vec4<f32> = construct %x_56, %x_56, %x_56, %x_56
-        store %x_GLF_color, %64
+      $B12: {  # false
+        %87:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %88:i32 = load %87
+        %x_55:i32 = let %88
+        %90:f32 = convert %x_55
+        %x_56:f32 = let %90
+        %92:vec4<f32> = construct %x_56, %x_56, %x_56, %x_56
+        store %x_GLF_color, %92
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %66:void = call %main_1
-    %67:vec4<f32> = load %x_GLF_color
-    %68:main_out = construct %67
-    ret %68
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %94:void = call %main_1
+    %95:vec4<f32> = load %x_GLF_color
+    %96:main_out = construct %95
+    ret %96
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B14: {
+    %98:i32 = convert %value
+    %99:bool = gte %value, -2147483648.0f
+    %100:i32 = select -2147483648i, %98, %99
+    %101:bool = lte %value, 2147483520.0f
+    %102:i32 = select 2147483647i, %100, %101
+    ret %102
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.msl
index fd6c252..85d7b48 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,118 +20,127 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f1_ = func():i32 -> %b2 {
-  %b2 = block {
+%f1_ = func():i32 {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %A:ptr<function, array<i32, 10>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
     %10:i32 = load %9
     store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
         %12:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
         %13:i32 = load %12
         %14:bool = lt %11, %13
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_66:i32 = load %i
-        %16:ptr<function, i32, read_write> = access %A, %x_66
-        %17:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %18:i32 = load %17
-        store %16, %18
-        continue %b4
+        %15:i32 = load %i
+        %x_66:i32 = let %15
+        %17:ptr<function, i32, read_write> = access %A, %x_66
+        %18:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %19:i32 = load %18
+        store %17, %19
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %19:i32 = load %i
-        %20:i32 = add %19, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %20:i32 = load %i
+        %21:i32 = add %20, 1i
+        store %i, %21
+        next_iteration  # -> $B3
       }
     }
     store %a, -1i
-    %21:f32 = load_vector_element %gl_FragCoord, 1u
-    %22:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-    %23:f32 = load %22
-    %24:bool = gte %21, %23
-    if %24 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %25:i32 = load %a
-        %x_80:i32 = add %25, 1i
+    %22:f32 = load_vector_element %gl_FragCoord, 1u
+    %23:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+    %24:f32 = load %23
+    %25:bool = gte %22, %24
+    if %25 [t: $B7] {  # if_2
+      $B7: {  # true
+        %26:i32 = load %a
+        %27:i32 = add %26, 1i
+        %x_80:i32 = let %27
         store %a, %x_80
-        %27:ptr<function, i32, read_write> = access %A, %x_80
-        %28:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %29:i32 = load %28
-        store %27, %29
+        %29:ptr<function, i32, read_write> = access %A, %x_80
+        %30:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %31:i32 = load %30
+        store %29, %31
         exit_if  # if_2
       }
     }
-    %30:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %31:i32 = load %30
-    %32:ptr<function, i32, read_write> = access %A, %31
+    %32:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
     %33:i32 = load %32
-    %34:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %34:ptr<function, i32, read_write> = access %A, %33
     %35:i32 = load %34
-    %36:bool = eq %33, %35
-    if %36 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %37:i32 = load %a
-        %x_95:i32 = add %37, 1i
+    %36:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %37:i32 = load %36
+    %38:bool = eq %35, %37
+    if %38 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %39:i32 = load %a
+        %40:i32 = add %39, 1i
+        %x_95:i32 = let %40
         store %a, %x_95
-        %39:ptr<function, i32, read_write> = access %A, %x_95
-        %x_97:i32 = load %39
+        %42:ptr<function, i32, read_write> = access %A, %x_95
+        %43:i32 = load %42
+        %x_97:i32 = let %43
         ret %x_97
       }
-      %b9 = block {  # false
-        %41:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_99:i32 = load %41
+      $B9: {  # false
+        %45:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %46:i32 = load %45
+        %x_99:i32 = let %46
         ret %x_99
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %i_1:ptr<function, i32, read_write> = var
-    %x_42:i32 = call %f1_
+    %50:i32 = call %f1_
+    %x_42:i32 = let %50
     store %i_1, %x_42
-    %46:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %47:i32 = load %46
-    %48:f32 = convert %47
-    %49:i32 = load %i_1
-    %50:f32 = convert %49
-    %51:i32 = load %i_1
-    %52:f32 = convert %51
-    %53:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %54:i32 = load %53
-    %55:f32 = convert %54
-    %56:vec4<f32> = construct %48, %50, %52, %55
-    store %x_GLF_color, %56
+    %52:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %53:i32 = load %52
+    %54:f32 = convert %53
+    %55:f32 = let %54
+    %56:i32 = load %i_1
+    %57:f32 = convert %56
+    %58:f32 = let %57
+    %59:i32 = load %i_1
+    %60:f32 = convert %59
+    %61:f32 = let %60
+    %62:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %63:i32 = load %62
+    %64:f32 = convert %63
+    %65:vec4<f32> = construct %55, %58, %61, %64
+    store %x_GLF_color, %65
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+    %68:void = call %main_1
+    %69:vec4<f32> = load %x_GLF_color
+    %70:main_out = construct %69
+    ret %70
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.msl
index 3320d8c..ad65d17 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-add-sub-pre-increase/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,118 +20,144 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f1_ = func():i32 -> %b2 {
-  %b2 = block {
+%f1_ = func():i32 {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %A:ptr<function, array<i32, 10>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_56:i32 = load %9
+    %10:i32 = load %9
+    %x_56:i32 = let %10
     store %i, %x_56
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_61:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_63:i32 = load %12
-        %14:bool = lt %x_61, %x_63
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_61:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_63:i32 = let %15
+        %17:bool = lt %x_61, %x_63
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_66:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_68:i32 = load %16
-        %18:ptr<function, i32, read_write> = access %A, %x_66
-        store %18, %x_68
-        continue %b4
+        %18:i32 = load %i
+        %x_66:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %21:i32 = load %20
+        %x_68:i32 = let %21
+        %23:ptr<function, i32, read_write> = access %A, %x_66
+        store %23, %x_68
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_70:i32 = load %i
-        %20:i32 = add %x_70, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %24:i32 = load %i
+        %x_70:i32 = let %24
+        %26:i32 = add %x_70, 1i
+        store %i, %26
+        next_iteration  # -> $B3
       }
     }
     store %a, -1i
-    %x_73:f32 = load_vector_element %gl_FragCoord, 1u
-    %22:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-    %x_75:f32 = load %22
-    %24:bool = gte %x_73, %x_75
-    if %24 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %x_79:i32 = load %a
-        %x_80:i32 = add %x_79, 1i
+    %27:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_73:f32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+    %30:f32 = load %29
+    %x_75:f32 = let %30
+    %32:bool = gte %x_73, %x_75
+    if %32 [t: $B7] {  # if_2
+      $B7: {  # true
+        %33:i32 = load %a
+        %x_79:i32 = let %33
+        %35:i32 = add %x_79, 1i
+        %x_80:i32 = let %35
         store %a, %x_80
-        %27:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_82:i32 = load %27
-        %29:ptr<function, i32, read_write> = access %A, %x_80
-        store %29, %x_82
+        %37:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_82:i32 = let %38
+        %40:ptr<function, i32, read_write> = access %A, %x_80
+        store %40, %x_82
         exit_if  # if_2
       }
     }
-    %30:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_85:i32 = load %30
-    %32:ptr<function, i32, read_write> = access %A, %x_85
-    %x_87:i32 = load %32
-    %34:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_89:i32 = load %34
-    %36:bool = eq %x_87, %x_89
-    if %36 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %x_94:i32 = load %a
-        %x_95:i32 = add %x_94, 1i
+    %41:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %42:i32 = load %41
+    %x_85:i32 = let %42
+    %44:ptr<function, i32, read_write> = access %A, %x_85
+    %45:i32 = load %44
+    %x_87:i32 = let %45
+    %47:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %48:i32 = load %47
+    %x_89:i32 = let %48
+    %50:bool = eq %x_87, %x_89
+    if %50 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %51:i32 = load %a
+        %x_94:i32 = let %51
+        %53:i32 = add %x_94, 1i
+        %x_95:i32 = let %53
         store %a, %x_95
-        %39:ptr<function, i32, read_write> = access %A, %x_95
-        %x_97:i32 = load %39
+        %55:ptr<function, i32, read_write> = access %A, %x_95
+        %56:i32 = load %55
+        %x_97:i32 = let %56
         ret %x_97
       }
-      %b9 = block {  # false
-        %41:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_99:i32 = load %41
+      $B9: {  # false
+        %58:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %59:i32 = load %58
+        %x_99:i32 = let %59
         ret %x_99
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %i_1:ptr<function, i32, read_write> = var
-    %x_42:i32 = call %f1_
+    %63:i32 = call %f1_
+    %x_42:i32 = let %63
     store %i_1, %x_42
-    %46:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_44:i32 = load %46
-    %x_46:i32 = load %i_1
-    %x_48:i32 = load %i_1
-    %50:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_51:i32 = load %50
-    %52:f32 = convert %x_44
-    %53:f32 = convert %x_46
-    %54:f32 = convert %x_48
-    %55:f32 = convert %x_51
-    %56:vec4<f32> = construct %52, %53, %54, %55
-    store %x_GLF_color, %56
+    %65:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %66:i32 = load %65
+    %x_44:i32 = let %66
+    %68:i32 = load %i_1
+    %x_46:i32 = let %68
+    %70:i32 = load %i_1
+    %x_48:i32 = let %70
+    %72:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %73:i32 = load %72
+    %x_51:i32 = let %73
+    %75:f32 = convert %x_44
+    %76:f32 = let %75
+    %77:f32 = convert %x_46
+    %78:f32 = let %77
+    %79:f32 = convert %x_48
+    %80:f32 = let %79
+    %81:f32 = convert %x_51
+    %82:vec4<f32> = construct %76, %78, %80, %81
+    store %x_GLF_color, %82
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+    %85:void = call %main_1
+    %86:vec4<f32> = load %x_GLF_color
+    %87:main_out = construct %86
+    ret %87
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.msl
index 41ad07b..ad04582 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %r:ptr<function, vec4<f32>, read_write> = var
@@ -77,96 +77,100 @@
     %48:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
     %49:i32 = load %48
     %50:f32 = load_vector_element %r, %49
-    %x_74:bool = eq %47, %50
+    %51:bool = eq %47, %50
+    %x_74:bool = let %51
     store %x_86, %x_74
-    if %x_74 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %53:i32 = load %52
-        %54:f32 = load_vector_element %v1, %53
-        %55:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %56:i32 = load %55
-        %57:f32 = load_vector_element %r, %56
-        %58:bool = eq %54, %57
-        store %x_85, %58
-        %59:bool = load %x_85
-        store %x_86, %59
+    if %x_74 [t: $B3] {  # if_1
+      $B3: {  # true
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %54:i32 = load %53
+        %55:f32 = load_vector_element %v1, %54
+        %56:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %57:i32 = load %56
+        %58:f32 = load_vector_element %r, %57
+        %59:bool = eq %55, %58
+        store %x_85, %59
+        %60:bool = load %x_85
+        store %x_86, %60
         exit_if  # if_1
       }
     }
-    %60:bool = load %x_86
-    store %x_98, %60
     %61:bool = load %x_86
-    if %61 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %63:i32 = load %62
-        %64:f32 = load_vector_element %v1, %63
-        %65:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %66:i32 = load %65
-        %67:f32 = load_vector_element %r, %66
-        %68:bool = eq %64, %67
-        store %x_97, %68
-        %69:bool = load %x_97
-        store %x_98, %69
+    store %x_98, %61
+    %62:bool = load %x_86
+    if %62 [t: $B4] {  # if_2
+      $B4: {  # true
+        %63:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %64:i32 = load %63
+        %65:f32 = load_vector_element %v1, %64
+        %66:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %67:i32 = load %66
+        %68:f32 = load_vector_element %r, %67
+        %69:bool = eq %65, %68
+        store %x_97, %69
+        %70:bool = load %x_97
+        store %x_98, %70
         exit_if  # if_2
       }
     }
-    %70:bool = load %x_98
-    store %x_110, %70
     %71:bool = load %x_98
-    if %71 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %72:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %73:i32 = load %72
-        %74:f32 = load_vector_element %v1, %73
-        %75:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %76:i32 = load %75
-        %77:f32 = load_vector_element %r, %76
-        %78:bool = eq %74, %77
-        store %x_109, %78
-        %79:bool = load %x_109
-        store %x_110, %79
+    store %x_110, %71
+    %72:bool = load %x_98
+    if %72 [t: $B5] {  # if_3
+      $B5: {  # true
+        %73:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %74:i32 = load %73
+        %75:f32 = load_vector_element %v1, %74
+        %76:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %77:i32 = load %76
+        %78:f32 = load_vector_element %r, %77
+        %79:bool = eq %75, %78
+        store %x_109, %79
+        %80:bool = load %x_109
+        store %x_110, %80
         exit_if  # if_3
       }
     }
-    %80:bool = load %x_110
-    if %80 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %81:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %82:i32 = load %81
-        %83:f32 = convert %82
-        %84:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %85:i32 = load %84
-        %86:f32 = convert %85
-        %87:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %88:i32 = load %87
-        %89:f32 = convert %88
-        %90:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+    %81:bool = load %x_110
+    if %81 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %82:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %83:i32 = load %82
+        %84:f32 = convert %83
+        %85:f32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %87:i32 = load %86
+        %88:f32 = convert %87
+        %89:f32 = let %88
+        %90:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %91:i32 = load %90
         %92:f32 = convert %91
-        %93:vec4<f32> = construct %83, %86, %89, %92
-        store %x_GLF_color, %93
+        %93:f32 = let %92
+        %94:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %95:i32 = load %94
+        %96:f32 = convert %95
+        %97:vec4<f32> = construct %85, %89, %93, %96
+        store %x_GLF_color, %97
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %94:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %95:i32 = load %94
-        %96:f32 = load_vector_element %v1, %95
-        %97:vec4<f32> = construct %96
-        store %x_GLF_color, %97
+      $B7: {  # false
+        %98:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %99:i32 = load %98
+        %100:f32 = load_vector_element %v1, %99
+        %101:vec4<f32> = construct %100
+        store %x_GLF_color, %101
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %99:void = call %main_1
-    %100:vec4<f32> = load %x_GLF_color
-    %101:main_out = construct %100
-    ret %101
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %103:void = call %main_1
+    %104:vec4<f32> = load %x_GLF_color
+    %105:main_out = construct %104
+    ret %105
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.msl
index 59a8932..00eb81df 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-pack-unpack/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %r:ptr<function, vec4<f32>, read_write> = var
@@ -38,133 +38,172 @@
     %x_98_phi:ptr<function, bool, read_write> = var
     %x_110_phi:ptr<function, bool, read_write> = var
     %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %14
-    %16:vec4<f32> = construct %x_36, %x_36, %x_36, %x_36
-    %17:u32 = pack4x8unorm %16
-    store %a, %17
-    %x_39:u32 = load %a
-    %19:vec4<f32> = unpack4x8snorm %x_39
-    store %v1, %19
-    %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_42:f32 = load %20
-    %22:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_45:f32 = load %22
-    %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_48:f32 = load %24
-    %26:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_51:f32 = load %26
+    %15:f32 = load %14
+    %x_36:f32 = let %15
+    %17:vec4<f32> = construct %x_36, %x_36, %x_36, %x_36
+    %18:u32 = pack4x8unorm %17
+    store %a, %18
+    %19:u32 = load %a
+    %x_39:u32 = let %19
+    %21:vec4<f32> = unpack4x8snorm %x_39
+    store %v1, %21
+    %22:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_42:f32 = let %23
+    %25:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %26:f32 = load %25
+    %x_45:f32 = let %26
     %28:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_54:f32 = load %28
-    %30:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_57:f32 = load %30
-    %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_60:f32 = load %32
-    %34:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_63:f32 = load %34
-    %36:f32 = negation %x_42
-    %37:f32 = div %36, %x_45
-    %38:f32 = negation %x_48
-    %39:f32 = div %38, %x_51
-    %40:f32 = negation %x_54
-    %41:f32 = div %40, %x_57
-    %42:f32 = negation %x_60
-    %43:f32 = div %42, %x_63
-    %44:vec4<f32> = construct %37, %39, %41, %43
-    store %r, %44
-    %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_67:i32 = load %45
-    %x_69:f32 = load_vector_element %v1, %x_67
-    %48:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_71:i32 = load %48
-    %x_73:f32 = load_vector_element %r, %x_71
-    %x_74:bool = eq %x_69, %x_73
+    %29:f32 = load %28
+    %x_48:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %32:f32 = load %31
+    %x_51:f32 = let %32
+    %34:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %35:f32 = load %34
+    %x_54:f32 = let %35
+    %37:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %38:f32 = load %37
+    %x_57:f32 = let %38
+    %40:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %41:f32 = load %40
+    %x_60:f32 = let %41
+    %43:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %44:f32 = load %43
+    %x_63:f32 = let %44
+    %46:f32 = negation %x_42
+    %47:f32 = div %46, %x_45
+    %48:f32 = negation %x_48
+    %49:f32 = div %48, %x_51
+    %50:f32 = negation %x_54
+    %51:f32 = div %50, %x_57
+    %52:f32 = negation %x_60
+    %53:f32 = div %52, %x_63
+    %54:vec4<f32> = construct %47, %49, %51, %53
+    store %r, %54
+    %55:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %56:i32 = load %55
+    %x_67:i32 = let %56
+    %58:f32 = load_vector_element %v1, %x_67
+    %x_69:f32 = let %58
+    %60:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %61:i32 = load %60
+    %x_71:i32 = let %61
+    %63:f32 = load_vector_element %r, %x_71
+    %x_73:f32 = let %63
+    %65:bool = eq %x_69, %x_73
+    %x_74:bool = let %65
     store %x_86_phi, %x_74
-    if %x_74 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_78:i32 = load %52
-        %x_80:f32 = load_vector_element %v1, %x_78
-        %55:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_82:i32 = load %55
-        %x_84:f32 = load_vector_element %r, %x_82
-        %58:bool = eq %x_80, %x_84
-        store %x_85, %58
-        %59:bool = load %x_85
-        store %x_86_phi, %59
+    if %x_74 [t: $B3] {  # if_1
+      $B3: {  # true
+        %67:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %68:i32 = load %67
+        %x_78:i32 = let %68
+        %70:f32 = load_vector_element %v1, %x_78
+        %x_80:f32 = let %70
+        %72:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %73:i32 = load %72
+        %x_82:i32 = let %73
+        %75:f32 = load_vector_element %r, %x_82
+        %x_84:f32 = let %75
+        %77:bool = eq %x_80, %x_84
+        store %x_85, %77
+        %78:bool = load %x_85
+        store %x_86_phi, %78
         exit_if  # if_1
       }
     }
-    %x_86:bool = load %x_86_phi
+    %79:bool = load %x_86_phi
+    %x_86:bool = let %79
     store %x_98_phi, %x_86
-    if %x_86 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %61:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_90:i32 = load %61
-        %x_92:f32 = load_vector_element %v1, %x_90
-        %64:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_94:i32 = load %64
-        %x_96:f32 = load_vector_element %r, %x_94
-        %67:bool = eq %x_92, %x_96
-        store %x_97, %67
-        %68:bool = load %x_97
-        store %x_98_phi, %68
+    if %x_86 [t: $B4] {  # if_2
+      $B4: {  # true
+        %81:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %82:i32 = load %81
+        %x_90:i32 = let %82
+        %84:f32 = load_vector_element %v1, %x_90
+        %x_92:f32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %87:i32 = load %86
+        %x_94:i32 = let %87
+        %89:f32 = load_vector_element %r, %x_94
+        %x_96:f32 = let %89
+        %91:bool = eq %x_92, %x_96
+        store %x_97, %91
+        %92:bool = load %x_97
+        store %x_98_phi, %92
         exit_if  # if_2
       }
     }
-    %x_98:bool = load %x_98_phi
+    %93:bool = load %x_98_phi
+    %x_98:bool = let %93
     store %x_110_phi, %x_98
-    if %x_98 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %70:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_102:i32 = load %70
-        %x_104:f32 = load_vector_element %v1, %x_102
-        %73:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_106:i32 = load %73
-        %x_108:f32 = load_vector_element %r, %x_106
-        %76:bool = eq %x_104, %x_108
-        store %x_109, %76
-        %77:bool = load %x_109
-        store %x_110_phi, %77
+    if %x_98 [t: $B5] {  # if_3
+      $B5: {  # true
+        %95:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %96:i32 = load %95
+        %x_102:i32 = let %96
+        %98:f32 = load_vector_element %v1, %x_102
+        %x_104:f32 = let %98
+        %100:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %101:i32 = load %100
+        %x_106:i32 = let %101
+        %103:f32 = load_vector_element %r, %x_106
+        %x_108:f32 = let %103
+        %105:bool = eq %x_104, %x_108
+        store %x_109, %105
+        %106:bool = load %x_109
+        store %x_110_phi, %106
         exit_if  # if_3
       }
     }
-    %x_110:bool = load %x_110_phi
-    if %x_110 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %79:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_115:i32 = load %79
-        %81:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_118:i32 = load %81
-        %83:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_121:i32 = load %83
-        %85:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_124:i32 = load %85
-        %87:f32 = convert %x_115
-        %88:f32 = convert %x_118
-        %89:f32 = convert %x_121
-        %90:f32 = convert %x_124
-        %91:vec4<f32> = construct %87, %88, %89, %90
-        store %x_GLF_color, %91
+    %107:bool = load %x_110_phi
+    %x_110:bool = let %107
+    if %x_110 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %109:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %110:i32 = load %109
+        %x_115:i32 = let %110
+        %112:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %113:i32 = load %112
+        %x_118:i32 = let %113
+        %115:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %116:i32 = load %115
+        %x_121:i32 = let %116
+        %118:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %119:i32 = load %118
+        %x_124:i32 = let %119
+        %121:f32 = convert %x_115
+        %122:f32 = let %121
+        %123:f32 = convert %x_118
+        %124:f32 = let %123
+        %125:f32 = convert %x_121
+        %126:f32 = let %125
+        %127:f32 = convert %x_124
+        %128:vec4<f32> = construct %122, %124, %126, %127
+        store %x_GLF_color, %128
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %92:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_128:i32 = load %92
-        %x_130:f32 = load_vector_element %v1, %x_128
-        %95:vec4<f32> = construct %x_130, %x_130, %x_130, %x_130
-        store %x_GLF_color, %95
+      $B7: {  # false
+        %129:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %130:i32 = load %129
+        %x_128:i32 = let %130
+        %132:f32 = load_vector_element %v1, %x_128
+        %x_130:f32 = let %132
+        %134:vec4<f32> = construct %x_130, %x_130, %x_130, %x_130
+        store %x_GLF_color, %134
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %97:void = call %main_1
-    %98:vec4<f32> = load %x_GLF_color
-    %99:main_out = construct %98
-    ret %99
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %136:void = call %main_1
+    %137:vec4<f32> = load %x_GLF_color
+    %138:main_out = construct %137
+    ret %138
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.msl
index 119277b..9f4b05c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,70 +20,72 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<f32, 2>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_33:i32 = load %7
-    %9:ptr<function, f32, read_write> = access %data, %x_33
-    %10:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %11:f32 = load %10
-    store %9, %11
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_38:i32 = load %12
-    %14:ptr<function, f32, read_write> = access %data, %x_38
-    %15:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %16:f32 = load %15
-    store %14, %16
-    %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %18:i32 = load %17
-    %19:i32 = and %18, 2i
-    %20:i32 = xor 1i, %19
-    %21:ptr<function, f32, read_write> = access %data, %20
-    %22:f32 = load %21
-    store %a, %22
-    %23:f32 = load %a
-    %24:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %25:f32 = load %24
-    %26:bool = eq %23, %25
-    if %26 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %27:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %28:f32 = load %27
-        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %8:i32 = load %7
+    %x_33:i32 = let %8
+    %10:ptr<function, f32, read_write> = access %data, %x_33
+    %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %12:f32 = load %11
+    store %10, %12
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %14:i32 = load %13
+    %x_38:i32 = let %14
+    %16:ptr<function, f32, read_write> = access %data, %x_38
+    %17:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %18:f32 = load %17
+    store %16, %18
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %20:i32 = load %19
+    %21:i32 = and %20, 2i
+    %22:i32 = xor 1i, %21
+    %23:ptr<function, f32, read_write> = access %data, %22
+    %24:f32 = load %23
+    store %a, %24
+    %25:f32 = load %a
+    %26:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %27:f32 = load %26
+    %28:bool = eq %25, %27
+    if %28 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %29:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
         %30:f32 = load %29
         %31:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
         %32:f32 = load %31
-        %33:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %33:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
         %34:f32 = load %33
-        %35:vec4<f32> = construct %28, %30, %32, %34
-        store %x_GLF_color, %35
+        %35:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %36:f32 = load %35
+        %37:vec4<f32> = construct %30, %32, %34, %36
+        store %x_GLF_color, %37
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %36:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %37:f32 = load %36
-        %38:vec4<f32> = construct %37
-        store %x_GLF_color, %38
+      $B4: {  # false
+        %38:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %39:f32 = load %38
+        %40:vec4<f32> = construct %39
+        store %x_GLF_color, %40
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %40:void = call %main_1
-    %41:vec4<f32> = load %x_GLF_color
-    %42:main_out = construct %41
-    ret %42
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.msl
index 16f89d1..0ccfe22 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-and-or-xor-xor-add/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,70 +20,83 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<f32, 2>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_33:i32 = load %7
-    %9:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_35:f32 = load %9
-    %11:ptr<function, f32, read_write> = access %data, %x_33
-    store %11, %x_35
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_38:i32 = load %12
-    %14:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_40:f32 = load %14
-    %16:ptr<function, f32, read_write> = access %data, %x_38
-    store %16, %x_40
-    %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_43:i32 = load %17
-    %19:i32 = and %x_43, 2i
-    %20:i32 = xor 1i, %19
-    %21:ptr<function, f32, read_write> = access %data, %20
-    %x_47:f32 = load %21
+    %8:i32 = load %7
+    %x_33:i32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_35:f32 = let %11
+    %13:ptr<function, f32, read_write> = access %data, %x_33
+    store %13, %x_35
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_38:i32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %18:f32 = load %17
+    %x_40:f32 = let %18
+    %20:ptr<function, f32, read_write> = access %data, %x_38
+    store %20, %x_40
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %22:i32 = load %21
+    %x_43:i32 = let %22
+    %24:i32 = and %x_43, 2i
+    %25:i32 = xor 1i, %24
+    %26:ptr<function, f32, read_write> = access %data, %25
+    %27:f32 = load %26
+    %x_47:f32 = let %27
     store %a, %x_47
-    %x_48:f32 = load %a
-    %24:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_50:f32 = load %24
-    %26:bool = eq %x_48, %x_50
-    if %26 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %27:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_56:f32 = load %27
-        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_58:f32 = load %29
-        %31:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_60:f32 = load %31
-        %33:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_62:f32 = load %33
-        %35:vec4<f32> = construct %x_56, %x_58, %x_60, %x_62
-        store %x_GLF_color, %35
+    %29:f32 = load %a
+    %x_48:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %32:f32 = load %31
+    %x_50:f32 = let %32
+    %34:bool = eq %x_48, %x_50
+    if %34 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %35:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %36:f32 = load %35
+        %x_56:f32 = let %36
+        %38:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %39:f32 = load %38
+        %x_58:f32 = let %39
+        %41:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %42:f32 = load %41
+        %x_60:f32 = let %42
+        %44:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %45:f32 = load %44
+        %x_62:f32 = let %45
+        %47:vec4<f32> = construct %x_56, %x_58, %x_60, %x_62
+        store %x_GLF_color, %47
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %36:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_65:f32 = load %36
-        %38:vec4<f32> = construct %x_65, %x_65, %x_65, %x_65
-        store %x_GLF_color, %38
+      $B4: {  # false
+        %48:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %49:f32 = load %48
+        %x_65:f32 = let %49
+        %51:vec4<f32> = construct %x_65, %x_65, %x_65, %x_65
+        store %x_GLF_color, %51
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %40:void = call %main_1
-    %41:vec4<f32> = load %x_GLF_color
-    %42:main_out = construct %41
-    ret %42
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %53:void = call %main_1
+    %54:vec4<f32> = load %x_GLF_color
+    %55:main_out = construct %54
+    ret %55
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.msl
index 227c604..53a36a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,65 +20,71 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
     %6:f32 = load %5
     %7:f32 = ldexp %6, 10000i
     %8:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
     %9:f32 = load %8
     %10:bool = eq %7, %9
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %12:i32 = load %11
         %13:f32 = convert %12
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %15:i32 = load %14
-        %16:f32 = convert %15
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:vec4<f32> = construct %13, %16, %19, %22
-        store %x_GLF_color, %23
+        %14:f32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %16:i32 = load %15
+        %17:f32 = convert %16
+        %18:f32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:vec4<f32> = construct %14, %18, %22, %25
+        store %x_GLF_color, %26
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %24:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+      $B4: {  # false
+        %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %28:i32 = load %27
         %29:f32 = convert %28
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:vec4<f32> = construct %26, %29, %32, %35
-        store %x_GLF_color, %36
+        %30:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:f32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:vec4<f32> = construct %30, %34, %38, %41
+        store %x_GLF_color, %42
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.msl
index 6bdace5..a0b8ffd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ldexp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,65 +20,81 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-    %x_29:f32 = load %5
-    %7:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-    %x_32:f32 = load %7
-    %9:f32 = ldexp %x_29, 10000i
-    %10:bool = eq %9, %x_32
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_38:i32 = load %11
-        %13:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_41:i32 = load %13
-        %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_44:i32 = load %15
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_47:i32 = load %17
-        %19:f32 = convert %x_38
-        %20:f32 = convert %x_41
-        %21:f32 = convert %x_44
-        %22:f32 = convert %x_47
-        %23:vec4<f32> = construct %19, %20, %21, %22
-        store %x_GLF_color, %23
+    %6:f32 = load %5
+    %x_29:f32 = let %6
+    %8:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+    %9:f32 = load %8
+    %x_32:f32 = let %9
+    %11:f32 = ldexp %x_29, 10000i
+    %12:bool = eq %11, %x_32
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %14:i32 = load %13
+        %x_38:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %17:i32 = load %16
+        %x_41:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_44:i32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %23:i32 = load %22
+        %x_47:i32 = let %23
+        %25:f32 = convert %x_38
+        %26:f32 = let %25
+        %27:f32 = convert %x_41
+        %28:f32 = let %27
+        %29:f32 = convert %x_44
+        %30:f32 = let %29
+        %31:f32 = convert %x_47
+        %32:vec4<f32> = construct %26, %28, %30, %31
+        store %x_GLF_color, %32
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %24:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_51:i32 = load %24
-        %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_54:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_57:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_60:i32 = load %30
-        %32:f32 = convert %x_51
-        %33:f32 = convert %x_54
-        %34:f32 = convert %x_57
-        %35:f32 = convert %x_60
-        %36:vec4<f32> = construct %32, %33, %34, %35
-        store %x_GLF_color, %36
+      $B4: {  # false
+        %33:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_51:i32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %37:i32 = load %36
+        %x_54:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %40:i32 = load %39
+        %x_57:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_60:i32 = let %43
+        %45:f32 = convert %x_51
+        %46:f32 = let %45
+        %47:f32 = convert %x_54
+        %48:f32 = let %47
+        %49:f32 = convert %x_57
+        %50:f32 = let %49
+        %51:f32 = convert %x_60
+        %52:vec4<f32> = construct %46, %48, %50, %51
+        store %x_GLF_color, %52
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %54:void = call %main_1
+    %55:vec4<f32> = load %x_GLF_color
+    %56:main_out = construct %55
+    ret %56
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.msl
index b9f17fb..95eac61 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_14:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%f1_f1_ = func(%a:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%f1_f1_ = func(%a:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, f32, read_write> = var
     store %b, 8i
@@ -36,8 +36,8 @@
     %10:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
     %11:f32 = load %10
     %12:bool = gte %9, %11
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         %13:i32 = load %b
         %14:i32 = add %13, 1i
         store %b, %14
@@ -51,71 +51,78 @@
     %18:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
     %19:f32 = load %18
     %20:bool = lt %17, %19
-    if %20 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %20 [t: $B4] {  # if_2
+      $B4: {  # true
         %21:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %x_88:f32 = load %21
+        %22:f32 = load %21
+        %x_88:f32 = let %22
         ret %x_88
       }
     }
-    %23:i32 = load %b
-    %24:i32 = clamp %23, 0i, 2i
-    %25:f32 = convert %24
-    store %c, %25
-    %x_92:f32 = load %c
+    %24:i32 = load %b
+    %25:i32 = max %24, 0i
+    %26:i32 = min %25, 2i
+    %27:f32 = convert %26
+    store %c, %27
+    %28:f32 = load %c
+    %x_92:f32 = let %28
     ret %x_92
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %a_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
-    %30:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %31:f32 = load %30
-    store %param, %31
-    %x_44:f32 = call %f1_f1_, %param
+    %33:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %34:f32 = load %33
+    store %param, %34
+    %35:f32 = call %f1_f1_, %param
+    %x_44:f32 = let %35
     store %a_1, %x_44
-    %33:f32 = load %a_1
-    %34:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %35:f32 = load %34
-    %36:bool = eq %33, %35
-    if %36 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %37:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
-        %41:i32 = load %40
-        %42:f32 = convert %41
-        %43:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
-        %44:i32 = load %43
-        %45:f32 = convert %44
-        %46:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
-        %47:i32 = load %46
-        %48:f32 = convert %47
-        %49:vec4<f32> = construct %39, %42, %45, %48
-        store %x_GLF_color, %49
+    %37:f32 = load %a_1
+    %38:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %39:f32 = load %38
+    %40:bool = eq %37, %39
+    if %40 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %41:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:f32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
+        %46:i32 = load %45
+        %47:f32 = convert %46
+        %48:f32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
+        %50:i32 = load %49
+        %51:f32 = convert %50
+        %52:f32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
+        %54:i32 = load %53
+        %55:f32 = convert %54
+        %56:vec4<f32> = construct %44, %48, %52, %55
+        store %x_GLF_color, %56
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %50:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
-        %51:i32 = load %50
-        %52:f32 = convert %51
-        %53:vec4<f32> = construct %52
-        store %x_GLF_color, %53
+      $B7: {  # false
+        %57:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
+        %58:i32 = load %57
+        %59:f32 = convert %58
+        %60:vec4<f32> = construct %59
+        store %x_GLF_color, %60
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.msl
index 3d14efa..57c2a3d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-pre-increment-clamp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,102 +20,125 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_14:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%f1_f1_ = func(%a:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%f1_f1_ = func(%a:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %b:ptr<function, i32, read_write> = var
     %c:ptr<function, f32, read_write> = var
     store %b, 8i
-    %x_71:f32 = load_vector_element %gl_FragCoord, 1u
-    %10:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_73:f32 = load %10
-    %12:bool = gte %x_71, %x_73
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_77:i32 = load %b
-        %14:i32 = add %x_77, 1i
-        store %b, %14
-        %x_79:i32 = load %b
-        %16:i32 = add %x_79, 1i
-        store %b, %16
+    %9:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_71:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %12:f32 = load %11
+    %x_73:f32 = let %12
+    %14:bool = gte %x_71, %x_73
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:i32 = load %b
+        %x_77:i32 = let %15
+        %17:i32 = add %x_77, 1i
+        store %b, %17
+        %18:i32 = load %b
+        %x_79:i32 = let %18
+        %20:i32 = add %x_79, 1i
+        store %b, %20
         exit_if  # if_1
       }
     }
-    %x_81:f32 = load %a
-    %18:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_83:f32 = load %18
-    %20:bool = lt %x_81, %x_83
-    if %20 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %21:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %x_88:f32 = load %21
+    %21:f32 = load %a
+    %x_81:f32 = let %21
+    %23:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %24:f32 = load %23
+    %x_83:f32 = let %24
+    %26:bool = lt %x_81, %x_83
+    if %26 [t: $B4] {  # if_2
+      $B4: {  # true
+        %27:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %28:f32 = load %27
+        %x_88:f32 = let %28
         ret %x_88
       }
     }
-    %x_89:i32 = load %b
-    %24:i32 = clamp %x_89, 0i, 2i
-    %25:f32 = convert %24
-    store %c, %25
-    %x_92:f32 = load %c
+    %30:i32 = load %b
+    %x_89:i32 = let %30
+    %32:i32 = max %x_89, 0i
+    %33:i32 = min %32, 2i
+    %34:f32 = convert %33
+    store %c, %34
+    %35:f32 = load %c
+    %x_92:f32 = let %35
     ret %x_92
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %a_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
-    %30:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-    %x_43:f32 = load %30
+    %40:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+    %41:f32 = load %40
+    %x_43:f32 = let %41
     store %param, %x_43
-    %x_44:f32 = call %f1_f1_, %param
+    %43:f32 = call %f1_f1_, %param
+    %x_44:f32 = let %43
     store %a_1, %x_44
-    %x_45:f32 = load %a_1
-    %34:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
-    %x_47:f32 = load %34
-    %36:bool = eq %x_45, %x_47
-    if %36 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %37:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
-        %x_53:i32 = load %37
-        %39:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
-        %x_56:i32 = load %39
-        %41:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
-        %x_59:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
-        %x_62:i32 = load %43
-        %45:f32 = convert %x_53
-        %46:f32 = convert %x_56
-        %47:f32 = convert %x_59
-        %48:f32 = convert %x_62
-        %49:vec4<f32> = construct %45, %46, %47, %48
-        store %x_GLF_color, %49
+    %45:f32 = load %a_1
+    %x_45:f32 = let %45
+    %47:ptr<uniform, f32, read> = access %x_9, 0u, 2i, 0u
+    %48:f32 = load %47
+    %x_47:f32 = let %48
+    %50:bool = eq %x_45, %x_47
+    if %50 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %51:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
+        %52:i32 = load %51
+        %x_53:i32 = let %52
+        %54:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
+        %55:i32 = load %54
+        %x_56:i32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
+        %58:i32 = load %57
+        %x_59:i32 = let %58
+        %60:ptr<uniform, i32, read> = access %x_14, 0u, 1i, 0u
+        %61:i32 = load %60
+        %x_62:i32 = let %61
+        %63:f32 = convert %x_53
+        %64:f32 = let %63
+        %65:f32 = convert %x_56
+        %66:f32 = let %65
+        %67:f32 = convert %x_59
+        %68:f32 = let %67
+        %69:f32 = convert %x_62
+        %70:vec4<f32> = construct %64, %66, %68, %69
+        store %x_GLF_color, %70
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %50:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
-        %x_66:i32 = load %50
-        %x_67:f32 = convert %x_66
-        %53:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
-        store %x_GLF_color, %53
+      $B7: {  # false
+        %71:ptr<uniform, i32, read> = access %x_14, 0u, 0i, 0u
+        %72:i32 = load %71
+        %x_66:i32 = let %72
+        %74:f32 = convert %x_66
+        %x_67:f32 = let %74
+        %76:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
+        store %x_GLF_color, %76
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.msl
index bcd5434..ff1eab8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %8:f32 = load_vector_element %gl_FragCoord, 1u
@@ -51,43 +51,46 @@
     %23:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
     %24:f32 = load %23
     %25:bool = eq %22, %24
-    if %25 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %25 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %26:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %27:i32 = load %26
         %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:vec4<f32> = construct %28, %31, %34, %37
-        store %x_GLF_color, %38
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:f32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:f32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %39:i32 = load %38
+        %40:f32 = convert %39
+        %41:vec4<f32> = construct %29, %33, %37, %40
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:vec4<f32> = construct %41
-        store %x_GLF_color, %42
+      $B4: {  # false
+        %42:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:vec4<f32> = construct %44
+        store %x_GLF_color, %45
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.msl
index 7d23c68..10be52a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-ternary-vector-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,74 +20,91 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
-    %x_39:f32 = load_vector_element %gl_FragCoord, 1u
-    %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_41:f32 = load %9
-    %11:bool = gte %x_39, %x_41
-    %12:i32 = select 2i, 0i, %11
-    store %a, %12
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_45:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_47:f32 = load %15
-    %17:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %x_49:f32 = load %17
-    %x_51:i32 = load %a
-    %20:vec3<f32> = construct %x_45, %x_47, %x_49
-    %21:f32 = access %20, %x_51
-    store %b, %21
-    %x_53:f32 = load %b
-    %23:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_55:f32 = load %23
-    %25:bool = eq %x_53, %x_55
-    if %25 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_61:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_64:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_67:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_70:i32 = load %32
-        %34:f32 = convert %x_61
-        %35:f32 = convert %x_64
-        %36:f32 = convert %x_67
-        %37:f32 = convert %x_70
-        %38:vec4<f32> = construct %34, %35, %36, %37
-        store %x_GLF_color, %38
+    %8:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_39:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_41:f32 = let %11
+    %13:bool = gte %x_39, %x_41
+    %14:i32 = select 2i, 0i, %13
+    store %a, %14
+    %15:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %16:f32 = load %15
+    %x_45:f32 = let %16
+    %18:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %19:f32 = load %18
+    %x_47:f32 = let %19
+    %21:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
+    %22:f32 = load %21
+    %x_49:f32 = let %22
+    %24:i32 = load %a
+    %x_51:i32 = let %24
+    %26:vec3<f32> = construct %x_45, %x_47, %x_49
+    %27:f32 = access %26, %x_51
+    store %b, %27
+    %28:f32 = load %b
+    %x_53:f32 = let %28
+    %30:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %31:f32 = load %30
+    %x_55:f32 = let %31
+    %33:bool = eq %x_53, %x_55
+    if %33 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %35:i32 = load %34
+        %x_61:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_64:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %41:i32 = load %40
+        %x_67:i32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_70:i32 = let %44
+        %46:f32 = convert %x_61
+        %47:f32 = let %46
+        %48:f32 = convert %x_64
+        %49:f32 = let %48
+        %50:f32 = convert %x_67
+        %51:f32 = let %50
+        %52:f32 = convert %x_70
+        %53:vec4<f32> = construct %47, %49, %51, %52
+        store %x_GLF_color, %53
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_74:i32 = load %39
-        %x_75:f32 = convert %x_74
-        %42:vec4<f32> = construct %x_75, %x_75, %x_75, %x_75
-        store %x_GLF_color, %42
+      $B4: {  # false
+        %54:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %55:i32 = load %54
+        %x_74:i32 = let %55
+        %57:f32 = convert %x_74
+        %x_75:f32 = let %57
+        %59:vec4<f32> = construct %x_75, %x_75, %x_75, %x_75
+        store %x_GLF_color, %59
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+    %62:void = call %main_1
+    %63:vec4<f32> = load %x_GLF_color
+    %64:main_out = construct %63
+    ret %64
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.msl
index 5d298f9..1770869 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,74 +20,91 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %7:i32 = load %6
     store %i, %7
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:i32 = load %i
         %9:bool = gte %8, 0i
-        if %9 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %10:i32 = load %i
-        %11:i32 = mod %10, 2i
-        %12:bool = eq %11, 0i
-        if %12 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %14:i32 = load %13
-            %15:f32 = convert %14
-            %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %17:i32 = load %16
-            %18:f32 = convert %17
-            %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %20:i32 = load %19
-            %21:f32 = convert %20
-            %22:vec4<f32> = construct 1.0f, %15, %18, %21
-            store %x_GLF_color, %22
-            exit_if  # if_2
-          }
-          %b8 = block {  # false
-            %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-            %24:f32 = load %23
-            %25:vec4<f32> = construct %24
+        %11:i32 = call %tint_mod_i32, %10, 2i
+        %13:bool = eq %11, 0i
+        if %13 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %15:i32 = load %14
+            %16:f32 = convert %15
+            %17:f32 = let %16
+            %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %19:i32 = load %18
+            %20:f32 = convert %19
+            %21:f32 = let %20
+            %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %23:i32 = load %22
+            %24:f32 = convert %23
+            %25:vec4<f32> = construct 1.0f, %17, %21, %24
             store %x_GLF_color, %25
             exit_if  # if_2
           }
+          $B8: {  # false
+            %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+            %27:f32 = load %26
+            %28:vec4<f32> = construct %27
+            store %x_GLF_color, %28
+            exit_if  # if_2
+          }
         }
-        %26:i32 = load %i
-        %27:i32 = sub %26, 1i
-        store %i, %27
-        continue %b4
+        %29:i32 = load %i
+        %30:i32 = sub %29, 1i
+        store %i, %30
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %37:bool = eq %rhs, 0i
+    %38:bool = eq %lhs, -2147483648i
+    %39:bool = eq %rhs, -1i
+    %40:bool = and %38, %39
+    %41:bool = or %37, %40
+    %42:i32 = select %rhs, 1i, %41
+    %43:i32 = let %42
+    %44:i32 = div %lhs, %43
+    %45:i32 = mul %44, %43
+    %46:i32 = sub %lhs, %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.msl
index 7886fe4..9f60cf7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-compares-while-modulo/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,74 +20,99 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_32:i32 = load %6
+    %7:i32 = load %6
+    %x_32:i32 = let %7
     store %i, %x_32
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_37:i32 = load %i
-        %9:bool = gte %x_37, 0i
-        if %9 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_37:i32 = let %9
+        %11:bool = gte %x_37, 0i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_40:i32 = load %i
-        %11:i32 = mod %x_40, 2i
-        %12:bool = eq %11, 0i
-        if %12 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_47:i32 = load %13
-            %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_50:i32 = load %15
-            %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_53:i32 = load %17
-            %19:f32 = convert %x_47
-            %20:f32 = convert %x_50
-            %21:f32 = convert %x_53
-            %22:vec4<f32> = construct 1.0f, %19, %20, %21
-            store %x_GLF_color, %22
+        %12:i32 = load %i
+        %x_40:i32 = let %12
+        %14:i32 = call %tint_mod_i32, %x_40, 2i
+        %16:bool = eq %14, 0i
+        if %16 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %18:i32 = load %17
+            %x_47:i32 = let %18
+            %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %21:i32 = load %20
+            %x_50:i32 = let %21
+            %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %24:i32 = load %23
+            %x_53:i32 = let %24
+            %26:f32 = convert %x_47
+            %27:f32 = let %26
+            %28:f32 = convert %x_50
+            %29:f32 = let %28
+            %30:f32 = convert %x_53
+            %31:vec4<f32> = construct 1.0f, %27, %29, %30
+            store %x_GLF_color, %31
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-            %x_57:f32 = load %23
-            %25:vec4<f32> = construct %x_57, %x_57, %x_57, %x_57
-            store %x_GLF_color, %25
+          $B8: {  # false
+            %32:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+            %33:f32 = load %32
+            %x_57:f32 = let %33
+            %35:vec4<f32> = construct %x_57, %x_57, %x_57, %x_57
+            store %x_GLF_color, %35
             exit_if  # if_2
           }
         }
-        %x_59:i32 = load %i
-        %27:i32 = sub %x_59, 1i
-        store %i, %27
-        continue %b4
+        %36:i32 = load %i
+        %x_59:i32 = let %36
+        %38:i32 = sub %x_59, 1i
+        store %i, %38
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %45:bool = eq %rhs, 0i
+    %46:bool = eq %lhs, -2147483648i
+    %47:bool = eq %rhs, -1i
+    %48:bool = and %46, %47
+    %49:bool = or %45, %48
+    %50:i32 = select %rhs, 1i, %49
+    %51:i32 = let %50
+    %52:i32 = div %lhs, %51
+    %53:i32 = mul %52, %51
+    %54:i32 = sub %lhs, %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.msl
index b19ecfd..29dd7bf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %E:ptr<function, f32, read_write> = var
@@ -59,112 +59,116 @@
     %30:f32 = sub %24, %29
     %31:f32 = abs %30
     %32:f32 = load %E
-    %x_60:bool = lt %31, %32
+    %33:bool = lt %31, %32
+    %x_60:bool = let %33
     store %x_76, %x_60
-    if %x_60 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %35:i32 = load %34
-        %36:f32 = load_vector_element %v1, %35
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-        %38:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %40:f32 = load %39
-        %41:f32 = div %38, %40
-        %42:f32 = sub %36, %41
-        %43:f32 = abs %42
-        %44:f32 = load %E
-        %45:bool = lt %43, %44
-        store %x_75, %45
-        %46:bool = load %x_75
-        store %x_76, %46
+    if %x_60 [t: $B3] {  # if_1
+      $B3: {  # true
+        %35:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %36:i32 = load %35
+        %37:f32 = load_vector_element %v1, %36
+        %38:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+        %39:f32 = load %38
+        %40:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %41:f32 = load %40
+        %42:f32 = div %39, %41
+        %43:f32 = sub %37, %42
+        %44:f32 = abs %43
+        %45:f32 = load %E
+        %46:bool = lt %44, %45
+        store %x_75, %46
+        %47:bool = load %x_75
+        store %x_76, %47
         exit_if  # if_1
       }
     }
-    %47:bool = load %x_76
-    store %x_93, %47
     %48:bool = load %x_76
-    if %48 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %50:i32 = load %49
-        %51:f32 = load_vector_element %v1, %50
-        %52:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
-        %53:f32 = load %52
-        %54:f32 = negation %53
-        %55:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %56:f32 = load %55
-        %57:f32 = div %54, %56
-        %58:f32 = sub %51, %57
-        %59:f32 = abs %58
-        %60:f32 = load %E
-        %61:bool = lt %59, %60
-        store %x_92, %61
-        %62:bool = load %x_92
-        store %x_93, %62
+    store %x_93, %48
+    %49:bool = load %x_76
+    if %49 [t: $B4] {  # if_2
+      $B4: {  # true
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %51:i32 = load %50
+        %52:f32 = load_vector_element %v1, %51
+        %53:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
+        %54:f32 = load %53
+        %55:f32 = negation %54
+        %56:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %57:f32 = load %56
+        %58:f32 = div %55, %57
+        %59:f32 = sub %52, %58
+        %60:f32 = abs %59
+        %61:f32 = load %E
+        %62:bool = lt %60, %61
+        store %x_92, %62
+        %63:bool = load %x_92
+        store %x_93, %63
         exit_if  # if_2
       }
     }
-    %63:bool = load %x_93
-    store %x_110, %63
     %64:bool = load %x_93
-    if %64 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %65:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %66:i32 = load %65
-        %67:f32 = load_vector_element %v1, %66
-        %68:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
-        %69:f32 = load %68
-        %70:f32 = negation %69
-        %71:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %72:f32 = load %71
-        %73:f32 = div %70, %72
-        %74:f32 = sub %67, %73
-        %75:f32 = abs %74
-        %76:f32 = load %E
-        %77:bool = lt %75, %76
-        store %x_109, %77
-        %78:bool = load %x_109
-        store %x_110, %78
+    store %x_110, %64
+    %65:bool = load %x_93
+    if %65 [t: $B5] {  # if_3
+      $B5: {  # true
+        %66:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %67:i32 = load %66
+        %68:f32 = load_vector_element %v1, %67
+        %69:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
+        %70:f32 = load %69
+        %71:f32 = negation %70
+        %72:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %73:f32 = load %72
+        %74:f32 = div %71, %73
+        %75:f32 = sub %68, %74
+        %76:f32 = abs %75
+        %77:f32 = load %E
+        %78:bool = lt %76, %77
+        store %x_109, %78
+        %79:bool = load %x_109
+        store %x_110, %79
         exit_if  # if_3
       }
     }
-    %79:bool = load %x_110
-    if %79 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %80:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %81:i32 = load %80
-        %82:f32 = convert %81
-        %83:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %84:i32 = load %83
-        %85:f32 = convert %84
-        %86:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %87:i32 = load %86
-        %88:f32 = convert %87
-        %89:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %80:bool = load %x_110
+    if %80 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %81:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %82:i32 = load %81
+        %83:f32 = convert %82
+        %84:f32 = let %83
+        %85:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %86:i32 = load %85
+        %87:f32 = convert %86
+        %88:f32 = let %87
+        %89:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
         %90:i32 = load %89
         %91:f32 = convert %90
-        %92:vec4<f32> = construct %82, %85, %88, %91
-        store %x_GLF_color, %92
+        %92:f32 = let %91
+        %93:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %94:i32 = load %93
+        %95:f32 = convert %94
+        %96:vec4<f32> = construct %84, %88, %92, %95
+        store %x_GLF_color, %96
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %93:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
-        %94:f32 = load %93
-        %95:vec4<f32> = construct %94
-        store %x_GLF_color, %95
+      $B7: {  # false
+        %97:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
+        %98:f32 = load %97
+        %99:vec4<f32> = construct %98
+        store %x_GLF_color, %99
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %97:void = call %main_1
-    %98:vec4<f32> = load %x_GLF_color
-    %99:main_out = construct %98
-    ret %99
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %101:void = call %main_1
+    %102:vec4<f32> = load %x_GLF_color
+    %103:main_out = construct %102
+    ret %103
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.msl
index 9b48dfd..2d6e74a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-pack-unpack/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %E:ptr<function, f32, read_write> = var
@@ -38,131 +38,166 @@
     %x_93_phi:ptr<function, bool, read_write> = var
     %x_110_phi:ptr<function, bool, read_write> = var
     %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_41:f32 = load %14
-    %16:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_43:f32 = load %16
-    %18:vec2<f32> = construct %x_41, %x_43
-    %19:u32 = pack2x16unorm %18
-    store %a, %19
-    %x_46:u32 = load %a
-    %21:vec4<f32> = unpack4x8snorm %x_46
-    store %v1, %21
+    %15:f32 = load %14
+    %x_41:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %18:f32 = load %17
+    %x_43:f32 = let %18
+    %20:vec2<f32> = construct %x_41, %x_43
+    %21:u32 = pack2x16unorm %20
+    store %a, %21
+    %22:u32 = load %a
+    %x_46:u32 = let %22
+    %24:vec4<f32> = unpack4x8snorm %x_46
+    store %v1, %24
     store %E, 0.00999999977648258209f
-    %22:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_49:i32 = load %22
-    %x_51:f32 = load_vector_element %v1, %x_49
-    %25:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_53:f32 = load %25
-    %27:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_55:f32 = load %27
-    %x_59:f32 = load %E
-    %30:f32 = div %x_53, %x_55
-    %31:f32 = sub %x_51, %30
-    %32:f32 = abs %31
-    %x_60:bool = lt %32, %x_59
+    %25:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %26:i32 = load %25
+    %x_49:i32 = let %26
+    %28:f32 = load_vector_element %v1, %x_49
+    %x_51:f32 = let %28
+    %30:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %31:f32 = load %30
+    %x_53:f32 = let %31
+    %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %34:f32 = load %33
+    %x_55:f32 = let %34
+    %36:f32 = load %E
+    %x_59:f32 = let %36
+    %38:f32 = div %x_53, %x_55
+    %39:f32 = sub %x_51, %38
+    %40:f32 = abs %39
+    %41:bool = lt %40, %x_59
+    %x_60:bool = let %41
     store %x_76_phi, %x_60
-    if %x_60 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_64:i32 = load %34
-        %x_66:f32 = load_vector_element %v1, %x_64
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-        %x_68:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_70:f32 = load %39
-        %x_74:f32 = load %E
-        %42:f32 = div %x_68, %x_70
-        %43:f32 = sub %x_66, %42
-        %44:f32 = abs %43
-        %45:bool = lt %44, %x_74
-        store %x_75, %45
-        %46:bool = load %x_75
-        store %x_76_phi, %46
+    if %x_60 [t: $B3] {  # if_1
+      $B3: {  # true
+        %43:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %44:i32 = load %43
+        %x_64:i32 = let %44
+        %46:f32 = load_vector_element %v1, %x_64
+        %x_66:f32 = let %46
+        %48:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+        %49:f32 = load %48
+        %x_68:f32 = let %49
+        %51:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %52:f32 = load %51
+        %x_70:f32 = let %52
+        %54:f32 = load %E
+        %x_74:f32 = let %54
+        %56:f32 = div %x_68, %x_70
+        %57:f32 = sub %x_66, %56
+        %58:f32 = abs %57
+        %59:bool = lt %58, %x_74
+        store %x_75, %59
+        %60:bool = load %x_75
+        store %x_76_phi, %60
         exit_if  # if_1
       }
     }
-    %x_76:bool = load %x_76_phi
+    %61:bool = load %x_76_phi
+    %x_76:bool = let %61
     store %x_93_phi, %x_76
-    if %x_76 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_80:i32 = load %48
-        %x_82:f32 = load_vector_element %v1, %x_80
-        %51:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
-        %x_84:f32 = load %51
-        %53:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_87:f32 = load %53
-        %x_91:f32 = load %E
-        %56:f32 = negation %x_84
-        %57:f32 = div %56, %x_87
-        %58:f32 = sub %x_82, %57
-        %59:f32 = abs %58
-        %60:bool = lt %59, %x_91
-        store %x_92, %60
-        %61:bool = load %x_92
-        store %x_93_phi, %61
+    if %x_76 [t: $B4] {  # if_2
+      $B4: {  # true
+        %63:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %64:i32 = load %63
+        %x_80:i32 = let %64
+        %66:f32 = load_vector_element %v1, %x_80
+        %x_82:f32 = let %66
+        %68:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
+        %69:f32 = load %68
+        %x_84:f32 = let %69
+        %71:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %72:f32 = load %71
+        %x_87:f32 = let %72
+        %74:f32 = load %E
+        %x_91:f32 = let %74
+        %76:f32 = negation %x_84
+        %77:f32 = div %76, %x_87
+        %78:f32 = sub %x_82, %77
+        %79:f32 = abs %78
+        %80:bool = lt %79, %x_91
+        store %x_92, %80
+        %81:bool = load %x_92
+        store %x_93_phi, %81
         exit_if  # if_2
       }
     }
-    %x_93:bool = load %x_93_phi
+    %82:bool = load %x_93_phi
+    %x_93:bool = let %82
     store %x_110_phi, %x_93
-    if %x_93 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %63:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_97:i32 = load %63
-        %x_99:f32 = load_vector_element %v1, %x_97
-        %66:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
-        %x_101:f32 = load %66
-        %68:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_104:f32 = load %68
-        %x_108:f32 = load %E
-        %71:f32 = negation %x_101
-        %72:f32 = div %71, %x_104
-        %73:f32 = sub %x_99, %72
-        %74:f32 = abs %73
-        %75:bool = lt %74, %x_108
-        store %x_109, %75
-        %76:bool = load %x_109
-        store %x_110_phi, %76
+    if %x_93 [t: $B5] {  # if_3
+      $B5: {  # true
+        %84:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %85:i32 = load %84
+        %x_97:i32 = let %85
+        %87:f32 = load_vector_element %v1, %x_97
+        %x_99:f32 = let %87
+        %89:ptr<uniform, f32, read> = access %x_6, 0u, 6i, 0u
+        %90:f32 = load %89
+        %x_101:f32 = let %90
+        %92:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %93:f32 = load %92
+        %x_104:f32 = let %93
+        %95:f32 = load %E
+        %x_108:f32 = let %95
+        %97:f32 = negation %x_101
+        %98:f32 = div %97, %x_104
+        %99:f32 = sub %x_99, %98
+        %100:f32 = abs %99
+        %101:bool = lt %100, %x_108
+        store %x_109, %101
+        %102:bool = load %x_109
+        store %x_110_phi, %102
         exit_if  # if_3
       }
     }
-    %x_110:bool = load %x_110_phi
-    if %x_110 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %78:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_115:i32 = load %78
-        %80:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_118:i32 = load %80
-        %82:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_121:i32 = load %82
-        %84:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_124:i32 = load %84
-        %86:f32 = convert %x_115
-        %87:f32 = convert %x_118
-        %88:f32 = convert %x_121
-        %89:f32 = convert %x_124
-        %90:vec4<f32> = construct %86, %87, %88, %89
-        store %x_GLF_color, %90
+    %103:bool = load %x_110_phi
+    %x_110:bool = let %103
+    if %x_110 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %105:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %106:i32 = load %105
+        %x_115:i32 = let %106
+        %108:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %109:i32 = load %108
+        %x_118:i32 = let %109
+        %111:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %112:i32 = load %111
+        %x_121:i32 = let %112
+        %114:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %115:i32 = load %114
+        %x_124:i32 = let %115
+        %117:f32 = convert %x_115
+        %118:f32 = let %117
+        %119:f32 = convert %x_118
+        %120:f32 = let %119
+        %121:f32 = convert %x_121
+        %122:f32 = let %121
+        %123:f32 = convert %x_124
+        %124:vec4<f32> = construct %118, %120, %122, %123
+        store %x_GLF_color, %124
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %91:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
-        %x_128:f32 = load %91
-        %93:vec4<f32> = construct %x_128, %x_128, %x_128, %x_128
-        store %x_GLF_color, %93
+      $B7: {  # false
+        %125:ptr<uniform, f32, read> = access %x_6, 0u, 5i, 0u
+        %126:f32 = load %125
+        %x_128:f32 = let %126
+        %128:vec4<f32> = construct %x_128, %x_128, %x_128, %x_128
+        store %x_GLF_color, %128
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %95:void = call %main_1
-    %96:vec4<f32> = load %x_GLF_color
-    %97:main_out = construct %96
-    ret %97
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %130:void = call %main_1
+    %131:vec4<f32> = load %x_GLF_color
+    %132:main_out = construct %131
+    ret %132
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.msl
index ee43eee..cfccad9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %8:i32 = load %7
@@ -41,71 +41,76 @@
     %14:bool = gte %11, %13
     %15:i32 = select 1i, 2i, %14
     %16:u32 = bitcast %15
-    %17:i32 = shiftl 1i, %16
-    store %i, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %17:u32 = and %16, 31u
+    %18:i32 = shl 1i, %17
+    store %i, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_57:ptr<function, bool, read_write> = var
         %x_58:ptr<function, bool, read_write> = var
-        %20:i32 = load %i
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %22:i32 = load %21
-        %x_51:bool = neq %20, %22
+        %21:i32 = load %i
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %23:i32 = load %22
+        %24:bool = neq %21, %23
+        %x_51:bool = let %24
         store %x_58, %x_51
-        if %x_51 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %24:i32 = load %i
-            %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %26:i32 = load %25
-            %27:bool = lt %24, %26
-            store %x_57, %27
-            %28:bool = load %x_57
-            store %x_58, %28
+        if %x_51 [t: $B5] {  # if_1
+          $B5: {  # true
+            %26:i32 = load %i
+            %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %28:i32 = load %27
+            %29:bool = lt %26, %28
+            store %x_57, %29
+            %30:bool = load %x_57
+            store %x_58, %30
             exit_if  # if_1
           }
         }
-        %29:bool = load %x_58
-        if %29 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+        %31:bool = load %x_58
+        if %31 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %33:i32 = load %32
+        %34:f32 = convert %33
+        %35:f32 = let %34
         %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:vec4<f32> = construct %32, %35, %38, %41
-        store %x_GLF_color, %42
-        continue %b4
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:f32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %35, %39, %43, %46
+        store %x_GLF_color, %47
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %43:i32 = load %i
-        %44:i32 = add %43, 1i
-        store %i, %44
-        next_iteration %b3
+      $B4: {  # continuing
+        %48:i32 = load %i
+        %49:i32 = add %48, 1i
+        store %i, %49
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_color
+    %54:main_out = construct %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.msl
index d4212cb..619d2fb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-left-shift-for/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,92 +20,111 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_34:i32 = load %7
-    %x_35:f32 = convert %x_34
-    %10:vec4<f32> = construct %x_35, %x_35, %x_35, %x_35
-    store %x_GLF_color, %10
-    %x_38:f32 = load_vector_element %gl_FragCoord, 1u
-    %12:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_40:f32 = load %12
-    %14:bool = gte %x_38, %x_40
-    %15:i32 = select 1i, 2i, %14
-    %16:u32 = bitcast %15
-    %17:i32 = shiftl 1i, %16
-    store %i, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %8:i32 = load %7
+    %x_34:i32 = let %8
+    %10:f32 = convert %x_34
+    %x_35:f32 = let %10
+    %12:vec4<f32> = construct %x_35, %x_35, %x_35, %x_35
+    store %x_GLF_color, %12
+    %13:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_38:f32 = let %13
+    %15:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %16:f32 = load %15
+    %x_40:f32 = let %16
+    %18:bool = gte %x_38, %x_40
+    %19:i32 = select 1i, 2i, %18
+    %20:u32 = bitcast %19
+    %21:u32 = and %20, 31u
+    %22:i32 = shl 1i, %21
+    store %i, %22
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_57:ptr<function, bool, read_write> = var
         %x_58_phi:ptr<function, bool, read_write> = var
-        %x_48:i32 = load %i
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_50:i32 = load %21
-        %x_51:bool = neq %x_48, %x_50
+        %25:i32 = load %i
+        %x_48:i32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %28:i32 = load %27
+        %x_50:i32 = let %28
+        %30:bool = neq %x_48, %x_50
+        %x_51:bool = let %30
         store %x_58_phi, %x_51
-        if %x_51 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %x_54:i32 = load %i
-            %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_56:i32 = load %25
-            %27:bool = lt %x_54, %x_56
-            store %x_57, %27
-            %28:bool = load %x_57
-            store %x_58_phi, %28
+        if %x_51 [t: $B5] {  # if_1
+          $B5: {  # true
+            %32:i32 = load %i
+            %x_54:i32 = let %32
+            %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %35:i32 = load %34
+            %x_56:i32 = let %35
+            %37:bool = lt %x_54, %x_56
+            store %x_57, %37
+            %38:bool = load %x_57
+            store %x_58_phi, %38
             exit_if  # if_1
           }
         }
-        %x_58:bool = load %x_58_phi
-        if %x_58 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+        %39:bool = load %x_58_phi
+        %x_58:bool = let %39
+        if %x_58 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_61:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_64:i32 = load %32
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_67:i32 = load %34
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_70:i32 = load %36
-        %38:f32 = convert %x_61
-        %39:f32 = convert %x_64
-        %40:f32 = convert %x_67
-        %41:f32 = convert %x_70
-        %42:vec4<f32> = construct %38, %39, %40, %41
-        store %x_GLF_color, %42
-        continue %b4
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %42:i32 = load %41
+        %x_61:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %45:i32 = load %44
+        %x_64:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %48:i32 = load %47
+        %x_67:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %51:i32 = load %50
+        %x_70:i32 = let %51
+        %53:f32 = convert %x_61
+        %54:f32 = let %53
+        %55:f32 = convert %x_64
+        %56:f32 = let %55
+        %57:f32 = convert %x_67
+        %58:f32 = let %57
+        %59:f32 = convert %x_70
+        %60:vec4<f32> = construct %54, %56, %58, %59
+        store %x_GLF_color, %60
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_73:i32 = load %i
-        %44:i32 = add %x_73, 1i
-        store %i, %44
-        next_iteration %b3
+      $B4: {  # continuing
+        %61:i32 = load %i
+        %x_73:i32 = let %61
+        %63:i32 = add %x_73, 1i
+        store %i, %63
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+    %66:void = call %main_1
+    %67:vec4<f32> = load %x_GLF_color
+    %68:main_out = construct %67
+    ret %68
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.msl
index 98fa981..f95e8a7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<i32, 2>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -35,139 +35,160 @@
     %v2:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_46:i32 = load %11
-    %13:ptr<function, i32, read_write> = access %A, %x_46
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %15:i32 = load %14
-    store %13, %15
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_51:i32 = load %16
-    %18:ptr<function, i32, read_write> = access %A, %x_51
-    %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %20:i32 = load %19
-    store %18, %20
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_46:i32 = let %12
+    %14:ptr<function, i32, read_write> = access %A, %x_46
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %16:i32 = load %15
+    store %14, %16
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %18:i32 = load %17
+    %x_51:i32 = let %18
+    %20:ptr<function, i32, read_write> = access %A, %x_51
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %22:i32 = load %21
-    store %i, %22
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %23:i32 = load %i
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %25:i32 = load %24
-        %26:bool = gt %23, %25
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %20, %22
+    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %24:i32 = load %23
+    store %i, %24
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %25:i32 = load %i
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %27:i32 = load %26
+        %28:bool = gt %25, %27
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %27:i32 = load %i
-        %28:i32 = sub %27, 1i
-        store %i, %28
-        continue %b4
+        %29:i32 = load %i
+        %30:i32 = sub %29, 1i
+        store %i, %30
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %29:i32 = load %i
-    %30:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %31:f32 = load %30
+    %31:i32 = load %i
     %32:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
     %33:f32 = load %32
-    %34:bool = gte %31, %33
-    %35:i32 = select %29, 1i, %34
-    %36:ptr<function, i32, read_write> = access %A, %35
-    %37:i32 = load %36
-    store %a, %37
-    %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %34:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %35:f32 = load %34
+    %36:bool = gte %33, %35
+    %37:i32 = select %31, 1i, %36
+    %38:ptr<function, i32, read_write> = access %A, %37
     %39:i32 = load %38
-    %40:f32 = convert %39
-    %41:i32 = load %a
+    store %a, %39
+    %40:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %41:i32 = load %40
     %42:f32 = convert %41
-    %43:vec2<f32> = construct %40, %42
-    %44:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %45:i32 = load %44
-    %46:f32 = convert %45
-    %47:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %48:i32 = load %47
-    %49:f32 = convert %48
-    %50:vec2<f32> = construct %46, %49
-    %51:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %52:f32 = load %51
-    %53:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-    %54:f32 = load %53
-    %55:bool = lt %52, %54
-    %56:vec2<bool> = construct %55, true
-    %57:vec2<f32> = select %43, %50, %56
-    store %v1, %57
-    %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %59:i32 = load %58
-    %60:f32 = load_vector_element %v1, %59
-    %61:vec2<f32> = construct %60
-    %62:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %63:i32 = load %62
-    %64:f32 = load_vector_element %v1, %63
-    %65:vec2<f32> = construct %64
-    %66:vec2<f32> = select %61, %65, vec2<bool>(false)
-    store %v2, %66
-    %67:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %68:i32 = load %67
-    %69:f32 = convert %68
-    %70:vec2<f32> = construct %69
-    %71:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %72:i32 = load %71
-    %73:f32 = convert %72
-    %74:vec2<f32> = construct %73
-    %75:vec2<f32> = load %v2
-    %76:vec2<f32> = clamp %70, %74, %75
-    %77:f32 = access %76, 0u
-    %78:i32 = convert %77
-    %79:ptr<function, i32, read_write> = access %A, %78
+    %43:f32 = let %42
+    %44:i32 = load %a
+    %45:f32 = convert %44
+    %46:vec2<f32> = construct %43, %45
+    %47:vec2<f32> = let %46
+    %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %49:i32 = load %48
+    %50:f32 = convert %49
+    %51:f32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %53:i32 = load %52
+    %54:f32 = convert %53
+    %55:vec2<f32> = construct %51, %54
+    %56:vec2<f32> = let %55
+    %57:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %58:f32 = load %57
+    %59:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %60:f32 = load %59
+    %61:bool = lt %58, %60
+    %62:vec2<bool> = construct %61, true
+    %63:vec2<f32> = select %47, %56, %62
+    store %v1, %63
+    %64:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %65:i32 = load %64
+    %66:f32 = load_vector_element %v1, %65
+    %67:vec2<f32> = construct %66
+    %68:vec2<f32> = let %67
+    %69:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %70:i32 = load %69
+    %71:f32 = load_vector_element %v1, %70
+    %72:vec2<f32> = construct %71
+    %73:vec2<f32> = select %68, %72, vec2<bool>(false)
+    store %v2, %73
+    %74:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %75:i32 = load %74
+    %76:f32 = convert %75
+    %77:vec2<f32> = construct %76
+    %78:vec2<f32> = let %77
+    %79:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %80:i32 = load %79
-    store %b, %80
-    %81:i32 = load %b
-    %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %83:i32 = load %82
-    %84:bool = eq %81, %83
-    if %84 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %85:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %86:i32 = load %85
-        %87:f32 = convert %86
-        %88:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %89:i32 = load %88
-        %90:f32 = convert %89
-        %91:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %92:i32 = load %91
-        %93:f32 = convert %92
+    %81:f32 = convert %80
+    %82:vec2<f32> = construct %81
+    %83:vec2<f32> = load %v2
+    %84:vec2<f32> = clamp %78, %82, %83
+    %85:f32 = access %84, 0u
+    %86:i32 = call %tint_f32_to_i32, %85
+    %88:ptr<function, i32, read_write> = access %A, %86
+    %89:i32 = load %88
+    store %b, %89
+    %90:i32 = load %b
+    %91:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %92:i32 = load %91
+    %93:bool = eq %90, %92
+    if %93 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         %94:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %95:i32 = load %94
         %96:f32 = convert %95
-        %97:vec4<f32> = construct %87, %90, %93, %96
-        store %x_GLF_color, %97
-        exit_if  # if_2
-      }
-      %b8 = block {  # false
+        %97:f32 = let %96
         %98:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %99:i32 = load %98
         %100:f32 = convert %99
-        %101:vec4<f32> = construct %100
-        store %x_GLF_color, %101
+        %101:f32 = let %100
+        %102:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %103:i32 = load %102
+        %104:f32 = convert %103
+        %105:f32 = let %104
+        %106:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %107:i32 = load %106
+        %108:f32 = convert %107
+        %109:vec4<f32> = construct %97, %101, %105, %108
+        store %x_GLF_color, %109
+        exit_if  # if_2
+      }
+      $B8: {  # false
+        %110:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %111:i32 = load %110
+        %112:f32 = convert %111
+        %113:vec4<f32> = construct %112
+        store %x_GLF_color, %113
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %103:void = call %main_1
-    %104:vec4<f32> = load %x_GLF_color
-    %105:main_out = construct %104
-    ret %105
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %115:void = call %main_1
+    %116:vec4<f32> = load %x_GLF_color
+    %117:main_out = construct %116
+    ret %117
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %119:i32 = convert %value
+    %120:bool = gte %value, -2147483648.0f
+    %121:i32 = select -2147483648i, %119, %120
+    %122:bool = lte %value, 2147483520.0f
+    %123:i32 = select 2147483647i, %121, %122
+    ret %123
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.msl
index 1725006..793617b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-shifts-mix-mix-clamp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<i32, 2>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -35,139 +35,194 @@
     %v2:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_46:i32 = load %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_48:i32 = load %13
-    %15:ptr<function, i32, read_write> = access %A, %x_46
-    store %15, %x_48
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_51:i32 = load %16
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_53:i32 = load %18
-    %20:ptr<function, i32, read_write> = access %A, %x_51
-    store %20, %x_53
-    %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_56:i32 = load %21
+    %12:i32 = load %11
+    %x_46:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %15:i32 = load %14
+    %x_48:i32 = let %15
+    %17:ptr<function, i32, read_write> = access %A, %x_46
+    store %17, %x_48
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %19:i32 = load %18
+    %x_51:i32 = let %19
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %22:i32 = load %21
+    %x_53:i32 = let %22
+    %24:ptr<function, i32, read_write> = access %A, %x_51
+    store %24, %x_53
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %26:i32 = load %25
+    %x_56:i32 = let %26
     store %i, %x_56
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_61:i32 = load %i
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_63:i32 = load %24
-        %26:bool = gt %x_61, %x_63
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %28:i32 = load %i
+        %x_61:i32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %31:i32 = load %30
+        %x_63:i32 = let %31
+        %33:bool = gt %x_61, %x_63
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_66:i32 = load %i
-        %28:i32 = sub %x_66, 1i
-        store %i, %28
-        continue %b4
+        %34:i32 = load %i
+        %x_66:i32 = let %34
+        %36:i32 = sub %x_66, 1i
+        store %i, %36
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %29:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %x_69:f32 = load %29
-    %31:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %x_71:f32 = load %31
-    %x_73:i32 = load %i
-    %34:bool = gte %x_69, %x_71
-    %35:i32 = select %x_73, 1i, %34
-    %36:ptr<function, i32, read_write> = access %A, %35
-    %x_76:i32 = load %36
+    %37:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %38:f32 = load %37
+    %x_69:f32 = let %38
+    %40:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %41:f32 = load %40
+    %x_71:f32 = let %41
+    %43:i32 = load %i
+    %x_73:i32 = let %43
+    %45:bool = gte %x_69, %x_71
+    %46:i32 = select %x_73, 1i, %45
+    %47:ptr<function, i32, read_write> = access %A, %46
+    %48:i32 = load %47
+    %x_76:i32 = let %48
     store %a, %x_76
-    %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_78:i32 = load %38
-    %x_80:i32 = load %a
-    %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_84:i32 = load %41
-    %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_87:i32 = load %43
-    %45:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %x_91:f32 = load %45
-    %47:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-    %x_93:f32 = load %47
-    %49:f32 = convert %x_78
-    %50:f32 = convert %x_80
-    %51:vec2<f32> = construct %49, %50
-    %52:f32 = convert %x_84
-    %53:f32 = convert %x_87
-    %54:vec2<f32> = construct %52, %53
-    %55:bool = lt %x_91, %x_93
-    %56:vec2<bool> = construct %55, true
-    %57:vec2<f32> = select %51, %54, %56
-    store %v1, %57
-    %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_98:i32 = load %58
-    %x_100:f32 = load_vector_element %v1, %x_98
-    %61:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_103:i32 = load %61
-    %x_105:f32 = load_vector_element %v1, %x_103
-    %64:vec2<f32> = construct %x_100, %x_100
-    %65:vec2<f32> = construct %x_105, %x_105
-    %66:vec2<f32> = select %64, %65, vec2<bool>(false)
-    store %v2, %66
-    %67:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_109:i32 = load %67
-    %x_110:f32 = convert %x_109
-    %70:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_113:i32 = load %70
-    %x_114:f32 = convert %x_113
-    %x_116:vec2<f32> = load %v2
-    %74:vec2<f32> = construct %x_110, %x_110
-    %75:vec2<f32> = construct %x_114, %x_114
-    %76:vec2<f32> = clamp %74, %75, %x_116
-    %77:f32 = access %76, 0u
-    %78:i32 = convert %77
-    %79:ptr<function, i32, read_write> = access %A, %78
-    %x_121:i32 = load %79
+    %50:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %51:i32 = load %50
+    %x_78:i32 = let %51
+    %53:i32 = load %a
+    %x_80:i32 = let %53
+    %55:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %56:i32 = load %55
+    %x_84:i32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %59:i32 = load %58
+    %x_87:i32 = let %59
+    %61:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %62:f32 = load %61
+    %x_91:f32 = let %62
+    %64:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %65:f32 = load %64
+    %x_93:f32 = let %65
+    %67:f32 = convert %x_78
+    %68:f32 = let %67
+    %69:f32 = convert %x_80
+    %70:vec2<f32> = construct %68, %69
+    %71:vec2<f32> = let %70
+    %72:f32 = convert %x_84
+    %73:f32 = let %72
+    %74:f32 = convert %x_87
+    %75:vec2<f32> = construct %73, %74
+    %76:vec2<f32> = let %75
+    %77:bool = lt %x_91, %x_93
+    %78:vec2<bool> = construct %77, true
+    %79:vec2<f32> = select %71, %76, %78
+    store %v1, %79
+    %80:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %81:i32 = load %80
+    %x_98:i32 = let %81
+    %83:f32 = load_vector_element %v1, %x_98
+    %x_100:f32 = let %83
+    %85:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %86:i32 = load %85
+    %x_103:i32 = let %86
+    %88:f32 = load_vector_element %v1, %x_103
+    %x_105:f32 = let %88
+    %90:vec2<f32> = construct %x_100, %x_100
+    %91:vec2<f32> = let %90
+    %92:vec2<f32> = construct %x_105, %x_105
+    %93:vec2<f32> = select %91, %92, vec2<bool>(false)
+    store %v2, %93
+    %94:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %95:i32 = load %94
+    %x_109:i32 = let %95
+    %97:f32 = convert %x_109
+    %x_110:f32 = let %97
+    %99:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %100:i32 = load %99
+    %x_113:i32 = let %100
+    %102:f32 = convert %x_113
+    %x_114:f32 = let %102
+    %104:vec2<f32> = load %v2
+    %x_116:vec2<f32> = let %104
+    %106:vec2<f32> = construct %x_110, %x_110
+    %107:vec2<f32> = let %106
+    %108:vec2<f32> = construct %x_114, %x_114
+    %109:vec2<f32> = clamp %107, %108, %x_116
+    %110:f32 = access %109, 0u
+    %111:i32 = call %tint_f32_to_i32, %110
+    %113:ptr<function, i32, read_write> = access %A, %111
+    %114:i32 = load %113
+    %x_121:i32 = let %114
     store %b, %x_121
-    %x_122:i32 = load %b
-    %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_124:i32 = load %82
-    %84:bool = eq %x_122, %x_124
-    if %84 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %85:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_130:i32 = load %85
-        %87:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_133:i32 = load %87
-        %89:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_136:i32 = load %89
-        %91:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_139:i32 = load %91
-        %93:f32 = convert %x_130
-        %94:f32 = convert %x_133
-        %95:f32 = convert %x_136
-        %96:f32 = convert %x_139
-        %97:vec4<f32> = construct %93, %94, %95, %96
-        store %x_GLF_color, %97
+    %116:i32 = load %b
+    %x_122:i32 = let %116
+    %118:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %119:i32 = load %118
+    %x_124:i32 = let %119
+    %121:bool = eq %x_122, %x_124
+    if %121 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %122:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %123:i32 = load %122
+        %x_130:i32 = let %123
+        %125:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %126:i32 = load %125
+        %x_133:i32 = let %126
+        %128:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %129:i32 = load %128
+        %x_136:i32 = let %129
+        %131:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %132:i32 = load %131
+        %x_139:i32 = let %132
+        %134:f32 = convert %x_130
+        %135:f32 = let %134
+        %136:f32 = convert %x_133
+        %137:f32 = let %136
+        %138:f32 = convert %x_136
+        %139:f32 = let %138
+        %140:f32 = convert %x_139
+        %141:vec4<f32> = construct %135, %137, %139, %140
+        store %x_GLF_color, %141
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %98:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_143:i32 = load %98
-        %x_144:f32 = convert %x_143
-        %101:vec4<f32> = construct %x_144, %x_144, %x_144, %x_144
-        store %x_GLF_color, %101
+      $B8: {  # false
+        %142:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %143:i32 = load %142
+        %x_143:i32 = let %143
+        %145:f32 = convert %x_143
+        %x_144:f32 = let %145
+        %147:vec4<f32> = construct %x_144, %x_144, %x_144, %x_144
+        store %x_GLF_color, %147
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %103:void = call %main_1
-    %104:vec4<f32> = load %x_GLF_color
-    %105:main_out = construct %104
-    ret %105
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %149:void = call %main_1
+    %150:vec4<f32> = load %x_GLF_color
+    %151:main_out = construct %150
+    ret %151
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %153:i32 = convert %value
+    %154:bool = gte %value, -2147483648.0f
+    %155:i32 = select -2147483648i, %153, %154
+    %156:bool = lte %value, 2147483520.0f
+    %157:i32 = select 2147483647i, %155, %156
+    ret %157
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.msl
index e0e7445..88c02d8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %E:ptr<function, f32, read_write> = var
@@ -53,111 +53,115 @@
     %24:f32 = sub %18, %23
     %25:f32 = abs %24
     %26:f32 = load %E
-    %x_54:bool = lt %25, %26
+    %27:bool = lt %25, %26
+    %x_54:bool = let %27
     store %x_70, %x_54
-    if %x_54 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %28:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %29:i32 = load %28
-        %30:f32 = load_vector_element %v1, %29
-        %31:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
-        %32:f32 = load %31
-        %33:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-        %34:f32 = load %33
-        %35:f32 = div %32, %34
-        %36:f32 = sub %30, %35
-        %37:f32 = abs %36
-        %38:f32 = load %E
-        %39:bool = lt %37, %38
-        store %x_69, %39
-        %40:bool = load %x_69
-        store %x_70, %40
+    if %x_54 [t: $B3] {  # if_1
+      $B3: {  # true
+        %29:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %30:i32 = load %29
+        %31:f32 = load_vector_element %v1, %30
+        %32:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
+        %33:f32 = load %32
+        %34:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+        %35:f32 = load %34
+        %36:f32 = div %33, %35
+        %37:f32 = sub %31, %36
+        %38:f32 = abs %37
+        %39:f32 = load %E
+        %40:bool = lt %38, %39
+        store %x_69, %40
+        %41:bool = load %x_69
+        store %x_70, %41
         exit_if  # if_1
       }
     }
-    %41:bool = load %x_70
-    store %x_86, %41
     %42:bool = load %x_70
-    if %42 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %43:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %44:i32 = load %43
-        %45:f32 = load_vector_element %v1, %44
-        %46:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-        %47:f32 = load %46
-        %48:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-        %49:f32 = load %48
-        %50:f32 = div %47, %49
-        %51:f32 = sub %45, %50
-        %52:f32 = abs %51
-        %53:f32 = load %E
-        %54:bool = lt %52, %53
-        store %x_85, %54
-        %55:bool = load %x_85
-        store %x_86, %55
+    store %x_86, %42
+    %43:bool = load %x_70
+    if %43 [t: $B4] {  # if_2
+      $B4: {  # true
+        %44:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %45:i32 = load %44
+        %46:f32 = load_vector_element %v1, %45
+        %47:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+        %48:f32 = load %47
+        %49:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+        %50:f32 = load %49
+        %51:f32 = div %48, %50
+        %52:f32 = sub %46, %51
+        %53:f32 = abs %52
+        %54:f32 = load %E
+        %55:bool = lt %53, %54
+        store %x_85, %55
+        %56:bool = load %x_85
+        store %x_86, %56
         exit_if  # if_2
       }
     }
-    %56:bool = load %x_86
-    store %x_102, %56
     %57:bool = load %x_86
-    if %57 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %58:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %59:i32 = load %58
-        %60:f32 = load_vector_element %v1, %59
-        %61:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
-        %62:f32 = load %61
-        %63:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-        %64:f32 = load %63
-        %65:f32 = div %62, %64
-        %66:f32 = sub %60, %65
-        %67:f32 = abs %66
-        %68:f32 = load %E
-        %69:bool = lt %67, %68
-        store %x_101, %69
-        %70:bool = load %x_101
-        store %x_102, %70
+    store %x_102, %57
+    %58:bool = load %x_86
+    if %58 [t: $B5] {  # if_3
+      $B5: {  # true
+        %59:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %60:i32 = load %59
+        %61:f32 = load_vector_element %v1, %60
+        %62:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
+        %63:f32 = load %62
+        %64:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+        %65:f32 = load %64
+        %66:f32 = div %63, %65
+        %67:f32 = sub %61, %66
+        %68:f32 = abs %67
+        %69:f32 = load %E
+        %70:bool = lt %68, %69
+        store %x_101, %70
+        %71:bool = load %x_101
+        store %x_102, %71
         exit_if  # if_3
       }
     }
-    %71:bool = load %x_102
-    if %71 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %72:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %73:i32 = load %72
-        %74:f32 = convert %73
-        %75:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %76:i32 = load %75
-        %77:f32 = convert %76
-        %78:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %79:i32 = load %78
-        %80:f32 = convert %79
-        %81:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %72:bool = load %x_102
+    if %72 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %73:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %74:i32 = load %73
+        %75:f32 = convert %74
+        %76:f32 = let %75
+        %77:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %78:i32 = load %77
+        %79:f32 = convert %78
+        %80:f32 = let %79
+        %81:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
         %82:i32 = load %81
         %83:f32 = convert %82
-        %84:vec4<f32> = construct %74, %77, %80, %83
-        store %x_GLF_color, %84
+        %84:f32 = let %83
+        %85:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %86:i32 = load %85
+        %87:f32 = convert %86
+        %88:vec4<f32> = construct %76, %80, %84, %87
+        store %x_GLF_color, %88
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %85:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %86:i32 = load %85
-        %87:f32 = load_vector_element %v1, %86
-        %88:vec4<f32> = construct %87
-        store %x_GLF_color, %88
+      $B7: {  # false
+        %89:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %90:i32 = load %89
+        %91:f32 = load_vector_element %v1, %90
+        %92:vec4<f32> = construct %91
+        store %x_GLF_color, %92
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %90:void = call %main_1
-    %91:vec4<f32> = load %x_GLF_color
-    %92:main_out = construct %91
-    ret %92
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %94:void = call %main_1
+    %95:vec4<f32> = load %x_GLF_color
+    %96:main_out = construct %95
+    ret %96
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.msl
index 4f2423f..30d73da 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-pack-unpack/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %E:ptr<function, f32, read_write> = var
@@ -38,124 +38,158 @@
     %x_86_phi:ptr<function, bool, read_write> = var
     %x_102_phi:ptr<function, bool, read_write> = var
     store %a, 1006648320u
-    %x_40:u32 = load %a
-    %15:vec4<f32> = unpack4x8snorm %x_40
-    store %v1, %15
+    %14:u32 = load %a
+    %x_40:u32 = let %14
+    %16:vec4<f32> = unpack4x8snorm %x_40
+    store %v1, %16
     store %E, 0.00999999977648258209f
-    %16:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_43:i32 = load %16
-    %x_45:f32 = load_vector_element %v1, %x_43
-    %19:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-    %x_47:f32 = load %19
-    %21:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %x_49:f32 = load %21
-    %x_53:f32 = load %E
-    %24:f32 = div %x_47, %x_49
-    %25:f32 = sub %x_45, %24
-    %26:f32 = abs %25
-    %x_54:bool = lt %26, %x_53
+    %17:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %18:i32 = load %17
+    %x_43:i32 = let %18
+    %20:f32 = load_vector_element %v1, %x_43
+    %x_45:f32 = let %20
+    %22:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_47:f32 = let %23
+    %25:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %26:f32 = load %25
+    %x_49:f32 = let %26
+    %28:f32 = load %E
+    %x_53:f32 = let %28
+    %30:f32 = div %x_47, %x_49
+    %31:f32 = sub %x_45, %30
+    %32:f32 = abs %31
+    %33:bool = lt %32, %x_53
+    %x_54:bool = let %33
     store %x_70_phi, %x_54
-    if %x_54 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %28:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_58:i32 = load %28
-        %x_60:f32 = load_vector_element %v1, %x_58
-        %31:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
-        %x_62:f32 = load %31
-        %33:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-        %x_64:f32 = load %33
-        %x_68:f32 = load %E
-        %36:f32 = div %x_62, %x_64
-        %37:f32 = sub %x_60, %36
-        %38:f32 = abs %37
-        %39:bool = lt %38, %x_68
-        store %x_69, %39
-        %40:bool = load %x_69
-        store %x_70_phi, %40
+    if %x_54 [t: $B3] {  # if_1
+      $B3: {  # true
+        %35:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %36:i32 = load %35
+        %x_58:i32 = let %36
+        %38:f32 = load_vector_element %v1, %x_58
+        %x_60:f32 = let %38
+        %40:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
+        %41:f32 = load %40
+        %x_62:f32 = let %41
+        %43:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+        %44:f32 = load %43
+        %x_64:f32 = let %44
+        %46:f32 = load %E
+        %x_68:f32 = let %46
+        %48:f32 = div %x_62, %x_64
+        %49:f32 = sub %x_60, %48
+        %50:f32 = abs %49
+        %51:bool = lt %50, %x_68
+        store %x_69, %51
+        %52:bool = load %x_69
+        store %x_70_phi, %52
         exit_if  # if_1
       }
     }
-    %x_70:bool = load %x_70_phi
+    %53:bool = load %x_70_phi
+    %x_70:bool = let %53
     store %x_86_phi, %x_70
-    if %x_70 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %42:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_74:i32 = load %42
-        %x_76:f32 = load_vector_element %v1, %x_74
-        %45:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-        %x_78:f32 = load %45
-        %47:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-        %x_80:f32 = load %47
-        %x_84:f32 = load %E
-        %50:f32 = div %x_78, %x_80
-        %51:f32 = sub %x_76, %50
-        %52:f32 = abs %51
-        %53:bool = lt %52, %x_84
-        store %x_85, %53
-        %54:bool = load %x_85
-        store %x_86_phi, %54
+    if %x_70 [t: $B4] {  # if_2
+      $B4: {  # true
+        %55:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %56:i32 = load %55
+        %x_74:i32 = let %56
+        %58:f32 = load_vector_element %v1, %x_74
+        %x_76:f32 = let %58
+        %60:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+        %61:f32 = load %60
+        %x_78:f32 = let %61
+        %63:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+        %64:f32 = load %63
+        %x_80:f32 = let %64
+        %66:f32 = load %E
+        %x_84:f32 = let %66
+        %68:f32 = div %x_78, %x_80
+        %69:f32 = sub %x_76, %68
+        %70:f32 = abs %69
+        %71:bool = lt %70, %x_84
+        store %x_85, %71
+        %72:bool = load %x_85
+        store %x_86_phi, %72
         exit_if  # if_2
       }
     }
-    %x_86:bool = load %x_86_phi
+    %73:bool = load %x_86_phi
+    %x_86:bool = let %73
     store %x_102_phi, %x_86
-    if %x_86 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %56:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_90:i32 = load %56
-        %x_92:f32 = load_vector_element %v1, %x_90
-        %59:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
-        %x_94:f32 = load %59
-        %61:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-        %x_96:f32 = load %61
-        %x_100:f32 = load %E
-        %64:f32 = div %x_94, %x_96
-        %65:f32 = sub %x_92, %64
-        %66:f32 = abs %65
-        %67:bool = lt %66, %x_100
-        store %x_101, %67
-        %68:bool = load %x_101
-        store %x_102_phi, %68
+    if %x_86 [t: $B5] {  # if_3
+      $B5: {  # true
+        %75:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %76:i32 = load %75
+        %x_90:i32 = let %76
+        %78:f32 = load_vector_element %v1, %x_90
+        %x_92:f32 = let %78
+        %80:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
+        %81:f32 = load %80
+        %x_94:f32 = let %81
+        %83:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+        %84:f32 = load %83
+        %x_96:f32 = let %84
+        %86:f32 = load %E
+        %x_100:f32 = let %86
+        %88:f32 = div %x_94, %x_96
+        %89:f32 = sub %x_92, %88
+        %90:f32 = abs %89
+        %91:bool = lt %90, %x_100
+        store %x_101, %91
+        %92:bool = load %x_101
+        store %x_102_phi, %92
         exit_if  # if_3
       }
     }
-    %x_102:bool = load %x_102_phi
-    if %x_102 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %70:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_107:i32 = load %70
-        %72:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_110:i32 = load %72
-        %74:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_113:i32 = load %74
-        %76:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_116:i32 = load %76
-        %78:f32 = convert %x_107
-        %79:f32 = convert %x_110
-        %80:f32 = convert %x_113
-        %81:f32 = convert %x_116
-        %82:vec4<f32> = construct %78, %79, %80, %81
-        store %x_GLF_color, %82
+    %93:bool = load %x_102_phi
+    %x_102:bool = let %93
+    if %x_102 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %95:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %96:i32 = load %95
+        %x_107:i32 = let %96
+        %98:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %99:i32 = load %98
+        %x_110:i32 = let %99
+        %101:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %102:i32 = load %101
+        %x_113:i32 = let %102
+        %104:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %105:i32 = load %104
+        %x_116:i32 = let %105
+        %107:f32 = convert %x_107
+        %108:f32 = let %107
+        %109:f32 = convert %x_110
+        %110:f32 = let %109
+        %111:f32 = convert %x_113
+        %112:f32 = let %111
+        %113:f32 = convert %x_116
+        %114:vec4<f32> = construct %108, %110, %112, %113
+        store %x_GLF_color, %114
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %83:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_120:i32 = load %83
-        %x_122:f32 = load_vector_element %v1, %x_120
-        %86:vec4<f32> = construct %x_122, %x_122, %x_122, %x_122
-        store %x_GLF_color, %86
+      $B7: {  # false
+        %115:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %116:i32 = load %115
+        %x_120:i32 = let %116
+        %118:f32 = load_vector_element %v1, %x_120
+        %x_122:f32 = let %118
+        %120:vec4<f32> = construct %x_122, %x_122, %x_122, %x_122
+        store %x_GLF_color, %120
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %88:void = call %main_1
-    %89:vec4<f32> = load %x_GLF_color
-    %90:main_out = construct %89
-    ret %90
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %122:void = call %main_1
+    %123:vec4<f32> = load %x_GLF_color
+    %124:main_out = construct %123
+    ret %124
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.msl
index d443d19..aebb60d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %E:ptr<function, f32, read_write> = var
@@ -59,111 +59,115 @@
     %30:f32 = sub %24, %29
     %31:f32 = abs %30
     %32:f32 = load %E
-    %x_54:bool = lt %31, %32
+    %33:bool = lt %31, %32
+    %x_54:bool = let %33
     store %x_70, %x_54
-    if %x_54 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = load_vector_element %v1, %35
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %38:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %40:f32 = load %39
-        %41:f32 = div %38, %40
-        %42:f32 = sub %36, %41
-        %43:f32 = abs %42
-        %44:f32 = load %E
-        %45:bool = lt %43, %44
-        store %x_69, %45
-        %46:bool = load %x_69
-        store %x_70, %46
+    if %x_54 [t: $B3] {  # if_1
+      $B3: {  # true
+        %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = load_vector_element %v1, %36
+        %38:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %39:f32 = load %38
+        %40:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %41:f32 = load %40
+        %42:f32 = div %39, %41
+        %43:f32 = sub %37, %42
+        %44:f32 = abs %43
+        %45:f32 = load %E
+        %46:bool = lt %44, %45
+        store %x_69, %46
+        %47:bool = load %x_69
+        store %x_70, %47
         exit_if  # if_1
       }
     }
-    %47:bool = load %x_70
-    store %x_86, %47
     %48:bool = load %x_70
-    if %48 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %50:i32 = load %49
-        %51:f32 = load_vector_element %v1, %50
-        %52:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %53:f32 = load %52
-        %54:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %55:f32 = load %54
-        %56:f32 = div %53, %55
-        %57:f32 = sub %51, %56
-        %58:f32 = abs %57
-        %59:f32 = load %E
-        %60:bool = lt %58, %59
-        store %x_85, %60
-        %61:bool = load %x_85
-        store %x_86, %61
+    store %x_86, %48
+    %49:bool = load %x_70
+    if %49 [t: $B4] {  # if_2
+      $B4: {  # true
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %51:i32 = load %50
+        %52:f32 = load_vector_element %v1, %51
+        %53:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %54:f32 = load %53
+        %55:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %56:f32 = load %55
+        %57:f32 = div %54, %56
+        %58:f32 = sub %52, %57
+        %59:f32 = abs %58
+        %60:f32 = load %E
+        %61:bool = lt %59, %60
+        store %x_85, %61
+        %62:bool = load %x_85
+        store %x_86, %62
         exit_if  # if_2
       }
     }
-    %62:bool = load %x_86
-    store %x_102, %62
     %63:bool = load %x_86
-    if %63 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %64:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %65:i32 = load %64
-        %66:f32 = load_vector_element %v1, %65
-        %67:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %68:f32 = load %67
-        %69:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %70:f32 = load %69
-        %71:f32 = div %68, %70
-        %72:f32 = sub %66, %71
-        %73:f32 = abs %72
-        %74:f32 = load %E
-        %75:bool = lt %73, %74
-        store %x_101, %75
-        %76:bool = load %x_101
-        store %x_102, %76
+    store %x_102, %63
+    %64:bool = load %x_86
+    if %64 [t: $B5] {  # if_3
+      $B5: {  # true
+        %65:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %66:i32 = load %65
+        %67:f32 = load_vector_element %v1, %66
+        %68:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %69:f32 = load %68
+        %70:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %71:f32 = load %70
+        %72:f32 = div %69, %71
+        %73:f32 = sub %67, %72
+        %74:f32 = abs %73
+        %75:f32 = load %E
+        %76:bool = lt %74, %75
+        store %x_101, %76
+        %77:bool = load %x_101
+        store %x_102, %77
         exit_if  # if_3
       }
     }
-    %77:bool = load %x_102
-    if %77 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %78:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %79:i32 = load %78
-        %80:f32 = convert %79
-        %81:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %82:i32 = load %81
-        %83:f32 = convert %82
-        %84:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %85:i32 = load %84
-        %86:f32 = convert %85
-        %87:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %78:bool = load %x_102
+    if %78 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %79:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %80:i32 = load %79
+        %81:f32 = convert %80
+        %82:f32 = let %81
+        %83:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %84:i32 = load %83
+        %85:f32 = convert %84
+        %86:f32 = let %85
+        %87:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %88:i32 = load %87
         %89:f32 = convert %88
-        %90:vec4<f32> = construct %80, %83, %86, %89
-        store %x_GLF_color, %90
-        exit_if  # if_4
-      }
-      %b7 = block {  # false
-        %91:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %90:f32 = let %89
+        %91:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %92:i32 = load %91
         %93:f32 = convert %92
-        %94:vec4<f32> = construct %93
+        %94:vec4<f32> = construct %82, %86, %90, %93
         store %x_GLF_color, %94
         exit_if  # if_4
       }
+      $B7: {  # false
+        %95:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %96:i32 = load %95
+        %97:f32 = convert %96
+        %98:vec4<f32> = construct %97
+        store %x_GLF_color, %98
+        exit_if  # if_4
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %96:void = call %main_1
-    %97:vec4<f32> = load %x_GLF_color
-    %98:main_out = construct %97
-    ret %98
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %100:void = call %main_1
+    %101:vec4<f32> = load %x_GLF_color
+    %102:main_out = construct %101
+    ret %102
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.msl
index b799bdc..4fa600b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-packsnorm-unpackunorm/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %E:ptr<function, f32, read_write> = var
@@ -38,130 +38,166 @@
     %x_86_phi:ptr<function, bool, read_write> = var
     %x_102_phi:ptr<function, bool, read_write> = var
     %14:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_35:f32 = load %14
-    %16:vec4<f32> = construct %x_35, %x_35, %x_35, %x_35
-    %17:u32 = pack4x8snorm %16
-    store %a, %17
-    %x_38:u32 = load %a
-    %19:vec4<f32> = unpack4x8unorm %x_38
-    store %v1, %19
-    %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_41:f32 = load %20
+    %15:f32 = load %14
+    %x_35:f32 = let %15
+    %17:vec4<f32> = construct %x_35, %x_35, %x_35, %x_35
+    %18:u32 = pack4x8snorm %17
+    store %a, %18
+    %19:u32 = load %a
+    %x_38:u32 = let %19
+    %21:vec4<f32> = unpack4x8unorm %x_38
+    store %v1, %21
+    %22:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_41:f32 = let %23
     store %E, %x_41
-    %22:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_43:i32 = load %22
-    %x_45:f32 = load_vector_element %v1, %x_43
-    %25:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_47:f32 = load %25
-    %27:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_49:f32 = load %27
-    %x_53:f32 = load %E
-    %30:f32 = div %x_47, %x_49
-    %31:f32 = sub %x_45, %30
-    %32:f32 = abs %31
-    %x_54:bool = lt %32, %x_53
+    %25:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %26:i32 = load %25
+    %x_43:i32 = let %26
+    %28:f32 = load_vector_element %v1, %x_43
+    %x_45:f32 = let %28
+    %30:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %31:f32 = load %30
+    %x_47:f32 = let %31
+    %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %34:f32 = load %33
+    %x_49:f32 = let %34
+    %36:f32 = load %E
+    %x_53:f32 = let %36
+    %38:f32 = div %x_47, %x_49
+    %39:f32 = sub %x_45, %38
+    %40:f32 = abs %39
+    %41:bool = lt %40, %x_53
+    %x_54:bool = let %41
     store %x_70_phi, %x_54
-    if %x_54 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_58:i32 = load %34
-        %x_60:f32 = load_vector_element %v1, %x_58
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_62:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_64:f32 = load %39
-        %x_68:f32 = load %E
-        %42:f32 = div %x_62, %x_64
-        %43:f32 = sub %x_60, %42
-        %44:f32 = abs %43
-        %45:bool = lt %44, %x_68
-        store %x_69, %45
-        %46:bool = load %x_69
-        store %x_70_phi, %46
+    if %x_54 [t: $B3] {  # if_1
+      $B3: {  # true
+        %43:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_58:i32 = let %44
+        %46:f32 = load_vector_element %v1, %x_58
+        %x_60:f32 = let %46
+        %48:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %49:f32 = load %48
+        %x_62:f32 = let %49
+        %51:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %52:f32 = load %51
+        %x_64:f32 = let %52
+        %54:f32 = load %E
+        %x_68:f32 = let %54
+        %56:f32 = div %x_62, %x_64
+        %57:f32 = sub %x_60, %56
+        %58:f32 = abs %57
+        %59:bool = lt %58, %x_68
+        store %x_69, %59
+        %60:bool = load %x_69
+        store %x_70_phi, %60
         exit_if  # if_1
       }
     }
-    %x_70:bool = load %x_70_phi
+    %61:bool = load %x_70_phi
+    %x_70:bool = let %61
     store %x_86_phi, %x_70
-    if %x_70 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_74:i32 = load %48
-        %x_76:f32 = load_vector_element %v1, %x_74
-        %51:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_78:f32 = load %51
-        %53:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_80:f32 = load %53
-        %x_84:f32 = load %E
-        %56:f32 = div %x_78, %x_80
-        %57:f32 = sub %x_76, %56
-        %58:f32 = abs %57
-        %59:bool = lt %58, %x_84
-        store %x_85, %59
-        %60:bool = load %x_85
-        store %x_86_phi, %60
+    if %x_70 [t: $B4] {  # if_2
+      $B4: {  # true
+        %63:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %64:i32 = load %63
+        %x_74:i32 = let %64
+        %66:f32 = load_vector_element %v1, %x_74
+        %x_76:f32 = let %66
+        %68:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %69:f32 = load %68
+        %x_78:f32 = let %69
+        %71:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %72:f32 = load %71
+        %x_80:f32 = let %72
+        %74:f32 = load %E
+        %x_84:f32 = let %74
+        %76:f32 = div %x_78, %x_80
+        %77:f32 = sub %x_76, %76
+        %78:f32 = abs %77
+        %79:bool = lt %78, %x_84
+        store %x_85, %79
+        %80:bool = load %x_85
+        store %x_86_phi, %80
         exit_if  # if_2
       }
     }
-    %x_86:bool = load %x_86_phi
+    %81:bool = load %x_86_phi
+    %x_86:bool = let %81
     store %x_102_phi, %x_86
-    if %x_86 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_90:i32 = load %62
-        %x_92:f32 = load_vector_element %v1, %x_90
-        %65:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_94:f32 = load %65
-        %67:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_96:f32 = load %67
-        %x_100:f32 = load %E
-        %70:f32 = div %x_94, %x_96
-        %71:f32 = sub %x_92, %70
-        %72:f32 = abs %71
-        %73:bool = lt %72, %x_100
-        store %x_101, %73
-        %74:bool = load %x_101
-        store %x_102_phi, %74
+    if %x_86 [t: $B5] {  # if_3
+      $B5: {  # true
+        %83:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %84:i32 = load %83
+        %x_90:i32 = let %84
+        %86:f32 = load_vector_element %v1, %x_90
+        %x_92:f32 = let %86
+        %88:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %89:f32 = load %88
+        %x_94:f32 = let %89
+        %91:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %92:f32 = load %91
+        %x_96:f32 = let %92
+        %94:f32 = load %E
+        %x_100:f32 = let %94
+        %96:f32 = div %x_94, %x_96
+        %97:f32 = sub %x_92, %96
+        %98:f32 = abs %97
+        %99:bool = lt %98, %x_100
+        store %x_101, %99
+        %100:bool = load %x_101
+        store %x_102_phi, %100
         exit_if  # if_3
       }
     }
-    %x_102:bool = load %x_102_phi
-    if %x_102 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %76:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_107:i32 = load %76
-        %78:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_110:i32 = load %78
-        %80:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_113:i32 = load %80
-        %82:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_116:i32 = load %82
-        %84:f32 = convert %x_107
-        %85:f32 = convert %x_110
-        %86:f32 = convert %x_113
-        %87:f32 = convert %x_116
-        %88:vec4<f32> = construct %84, %85, %86, %87
-        store %x_GLF_color, %88
+    %101:bool = load %x_102_phi
+    %x_102:bool = let %101
+    if %x_102 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %103:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %104:i32 = load %103
+        %x_107:i32 = let %104
+        %106:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %107:i32 = load %106
+        %x_110:i32 = let %107
+        %109:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %110:i32 = load %109
+        %x_113:i32 = let %110
+        %112:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %113:i32 = load %112
+        %x_116:i32 = let %113
+        %115:f32 = convert %x_107
+        %116:f32 = let %115
+        %117:f32 = convert %x_110
+        %118:f32 = let %117
+        %119:f32 = convert %x_113
+        %120:f32 = let %119
+        %121:f32 = convert %x_116
+        %122:vec4<f32> = construct %116, %118, %120, %121
+        store %x_GLF_color, %122
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %89:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_120:i32 = load %89
-        %x_121:f32 = convert %x_120
-        %92:vec4<f32> = construct %x_121, %x_121, %x_121, %x_121
-        store %x_GLF_color, %92
+      $B7: {  # false
+        %123:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %124:i32 = load %123
+        %x_120:i32 = let %124
+        %126:f32 = convert %x_120
+        %x_121:f32 = let %126
+        %128:vec4<f32> = construct %x_121, %x_121, %x_121, %x_121
+        store %x_GLF_color, %128
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %94:void = call %main_1
-    %95:vec4<f32> = load %x_GLF_color
-    %96:main_out = construct %95
-    ret %96
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %130:void = call %main_1
+    %131:vec4<f32> = load %x_GLF_color
+    %132:main_out = construct %131
+    ret %132
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.msl
index 43bef2f..1f14857 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %color:ptr<function, vec4<f32>, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %7:f32 = load %6
@@ -40,33 +40,35 @@
     %14:vec4<f32> = construct %7, %9, %11, %13
     store %color, %14
     %15:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_38:i32 = load %15
-    %17:i32 = or 1i, %x_38
-    %18:i32 = xor %17, 1i
-    switch %18 [c: (0i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
-        %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_44:i32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %22:f32 = load %21
-        store_vector_element %color, %x_44, %22
+    %16:i32 = load %15
+    %x_38:i32 = let %16
+    %18:i32 = or 1i, %x_38
+    %19:i32 = xor %18, 1i
+    switch %19 [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        %20:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %21:i32 = load %20
+        %x_44:i32 = let %21
+        %23:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %24:f32 = load %23
+        store_vector_element %color, %x_44, %24
         exit_switch  # switch_1
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
-    %23:vec4<f32> = load %color
-    store %x_GLF_color, %23
+    %25:vec4<f32> = load %color
+    store %x_GLF_color, %25
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.msl
index 99b0af4..7eac2fe 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-simplify-demanded-switch-or-xor/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,53 +20,61 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %color:ptr<function, vec4<f32>, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:f32 = load %6
-    %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_31:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_33:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_35:f32 = load %12
-    %14:vec4<f32> = construct %x_29, %x_31, %x_33, %x_35
-    store %color, %14
-    %15:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_38:i32 = load %15
-    %17:i32 = or 1i, %x_38
-    %18:i32 = xor %17, 1i
-    switch %18 [c: (0i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
-        %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_44:i32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_46:f32 = load %21
+    %7:f32 = load %6
+    %x_29:f32 = let %7
+    %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %10:f32 = load %9
+    %x_31:f32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %13:f32 = load %12
+    %x_33:f32 = let %13
+    %15:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %16:f32 = load %15
+    %x_35:f32 = let %16
+    %18:vec4<f32> = construct %x_29, %x_31, %x_33, %x_35
+    store %color, %18
+    %19:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %20:i32 = load %19
+    %x_38:i32 = let %20
+    %22:i32 = or 1i, %x_38
+    %23:i32 = xor %22, 1i
+    switch %23 [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        %24:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %25:i32 = load %24
+        %x_44:i32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %28:f32 = load %27
+        %x_46:f32 = let %28
         store_vector_element %color, %x_44, %x_46
         exit_switch  # switch_1
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
-    %x_48:vec4<f32> = load %color
+    %30:vec4<f32> = load %color
+    %x_48:vec4<f32> = let %30
     store %x_GLF_color, %x_48
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %33:void = call %main_1
+    %34:vec4<f32> = load %x_GLF_color
+    %35:main_out = construct %34
+    ret %35
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.msl
index f2b1af7..f19abe2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
@@ -41,17 +41,17 @@
     %14:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %15:i32 = load %14
     store %i, %15
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %16:i32 = load %i
         %17:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %18:i32 = load %17
         %19:bool = lt %16, %18
-        if %19 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -67,69 +67,73 @@
         store %c, %25
         %26:f32 = load %d
         store %a, %26
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %27:i32 = load %i
         %28:i32 = add %27, 1i
         store %i, %28
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %29:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
     %30:f32 = load %29
     %31:f32 = load %a
-    %x_61:bool = lt %30, %31
+    %32:bool = lt %30, %31
+    %x_61:bool = let %32
     store %x_68, %x_61
-    if %x_61 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %33:f32 = load %a
-        %34:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %35:f32 = load %34
-        %36:bool = lt %33, %35
-        store %x_67, %36
-        %37:bool = load %x_67
-        store %x_68, %37
+    if %x_61 [t: $B7] {  # if_2
+      $B7: {  # true
+        %34:f32 = load %a
+        %35:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %36:f32 = load %35
+        %37:bool = lt %34, %36
+        store %x_67, %37
+        %38:bool = load %x_67
+        store %x_68, %38
         exit_if  # if_2
       }
     }
-    %38:bool = load %x_68
-    if %38 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %39:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+    %39:bool = load %x_68
+    if %39 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %40:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:f32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:f32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %49:i32 = load %48
         %50:f32 = convert %49
-        %51:vec4<f32> = construct %41, %44, %47, %50
-        store %x_GLF_color, %51
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
-        %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %51:f32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
         %53:i32 = load %52
         %54:f32 = convert %53
-        %55:vec4<f32> = construct %54
+        %55:vec4<f32> = construct %43, %47, %51, %54
         store %x_GLF_color, %55
         exit_if  # if_3
       }
+      $B9: {  # false
+        %56:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %57:i32 = load %56
+        %58:f32 = convert %57
+        %59:vec4<f32> = construct %58
+        store %x_GLF_color, %59
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.msl
index e979c3e..8377c7a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-combine-vector-ops-asin/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %b:ptr<function, f32, read_write> = var
@@ -36,100 +36,125 @@
     %x_67:ptr<function, bool, read_write> = var
     %x_68_phi:ptr<function, bool, read_write> = var
     %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_37:f32 = load %12
+    %13:f32 = load %12
+    %x_37:f32 = let %13
     store %a, %x_37
-    %14:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_39:i32 = load %14
+    %15:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %16:i32 = load %15
+    %x_39:i32 = let %16
     store %i, %x_39
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_44:i32 = load %i
-        %17:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_46:i32 = load %17
-        %19:bool = lt %x_44, %x_46
-        if %19 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %18:i32 = load %i
+        %x_44:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %21:i32 = load %20
+        %x_46:i32 = let %21
+        %23:bool = lt %x_44, %x_46
+        if %23 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_49:f32 = load %a
+        %24:f32 = load %a
+        %x_49:f32 = let %24
         store %b, %x_49
-        %x_50:f32 = load %b
+        %26:f32 = load %b
+        %x_50:f32 = let %26
         store %c, %x_50
-        %x_51:f32 = load %c
-        %23:f32 = asin %x_51
-        store %d, %23
-        %24:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_54:f32 = load %24
+        %28:f32 = load %c
+        %x_51:f32 = let %28
+        %30:f32 = asin %x_51
+        store %d, %30
+        %31:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %32:f32 = load %31
+        %x_54:f32 = let %32
         store %c, %x_54
-        %x_55:f32 = load %d
+        %34:f32 = load %d
+        %x_55:f32 = let %34
         store %a, %x_55
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_56:i32 = load %i
-        %28:i32 = add %x_56, 1i
-        store %i, %28
-        next_iteration %b3
+      $B4: {  # continuing
+        %36:i32 = load %i
+        %x_56:i32 = let %36
+        %38:i32 = add %x_56, 1i
+        store %i, %38
+        next_iteration  # -> $B3
       }
     }
-    %29:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_59:f32 = load %29
-    %x_60:f32 = load %a
-    %x_61:bool = lt %x_59, %x_60
+    %39:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %40:f32 = load %39
+    %x_59:f32 = let %40
+    %42:f32 = load %a
+    %x_60:f32 = let %42
+    %44:bool = lt %x_59, %x_60
+    %x_61:bool = let %44
     store %x_68_phi, %x_61
-    if %x_61 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %x_64:f32 = load %a
-        %34:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_66:f32 = load %34
-        %36:bool = lt %x_64, %x_66
-        store %x_67, %36
-        %37:bool = load %x_67
-        store %x_68_phi, %37
+    if %x_61 [t: $B7] {  # if_2
+      $B7: {  # true
+        %46:f32 = load %a
+        %x_64:f32 = let %46
+        %48:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %49:f32 = load %48
+        %x_66:f32 = let %49
+        %51:bool = lt %x_64, %x_66
+        store %x_67, %51
+        %52:bool = load %x_67
+        store %x_68_phi, %52
         exit_if  # if_2
       }
     }
-    %x_68:bool = load %x_68_phi
-    if %x_68 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %39:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_73:i32 = load %39
-        %41:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_76:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_79:i32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_82:i32 = load %45
-        %47:f32 = convert %x_73
-        %48:f32 = convert %x_76
-        %49:f32 = convert %x_79
-        %50:f32 = convert %x_82
-        %51:vec4<f32> = construct %47, %48, %49, %50
-        store %x_GLF_color, %51
+    %53:bool = load %x_68_phi
+    %x_68:bool = let %53
+    if %x_68 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %55:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %56:i32 = load %55
+        %x_73:i32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %59:i32 = load %58
+        %x_76:i32 = let %59
+        %61:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %62:i32 = load %61
+        %x_79:i32 = let %62
+        %64:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %65:i32 = load %64
+        %x_82:i32 = let %65
+        %67:f32 = convert %x_73
+        %68:f32 = let %67
+        %69:f32 = convert %x_76
+        %70:f32 = let %69
+        %71:f32 = convert %x_79
+        %72:f32 = let %71
+        %73:f32 = convert %x_82
+        %74:vec4<f32> = construct %68, %70, %72, %73
+        store %x_GLF_color, %74
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_86:i32 = load %52
-        %x_87:f32 = convert %x_86
-        %55:vec4<f32> = construct %x_87, %x_87, %x_87, %x_87
-        store %x_GLF_color, %55
+      $B9: {  # false
+        %75:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %76:i32 = load %75
+        %x_86:i32 = let %76
+        %78:f32 = convert %x_86
+        %x_87:f32 = let %78
+        %80:vec4<f32> = construct %x_87, %x_87, %x_87, %x_87
+        store %x_GLF_color, %80
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %82:void = call %main_1
+    %83:vec4<f32> = load %x_GLF_color
+    %84:main_out = construct %83
+    ret %84
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.msl
index afb1da3..e8d1a20 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,26 +12,26 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
     %5:f32 = load %4
     %6:f32 = inverseSqrt %5
     %7:bool = lt %6, -1.0f
-    if %7 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %8:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
         %9:f32 = load %8
         %10:vec4<f32> = construct %9
         store %x_GLF_color, %10
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %11:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
         %12:f32 = load %11
         %13:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
@@ -48,8 +48,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %21:void = call %main_1
     %22:vec4<f32> = load %x_GLF_color
     %23:main_out = construct %22
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.msl
index 799ccb9..68472a2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-inst-value-tracking-inversesqrt/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,48 +12,54 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-    %x_23:f32 = load %4
-    %6:f32 = inverseSqrt %x_23
-    %7:bool = lt %6, -1.0f
-    if %7 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %8:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_30:f32 = load %8
-        %10:vec4<f32> = construct %x_30, %x_30, %x_30, %x_30
-        store %x_GLF_color, %10
+    %5:f32 = load %4
+    %x_23:f32 = let %5
+    %7:f32 = inverseSqrt %x_23
+    %8:bool = lt %7, -1.0f
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %9:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %10:f32 = load %9
+        %x_30:f32 = let %10
+        %12:vec4<f32> = construct %x_30, %x_30, %x_30, %x_30
+        store %x_GLF_color, %12
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %11:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-        %x_33:f32 = load %11
-        %13:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_35:f32 = load %13
-        %15:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_37:f32 = load %15
-        %17:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-        %x_39:f32 = load %17
-        %19:vec4<f32> = construct %x_33, %x_35, %x_37, %x_39
-        store %x_GLF_color, %19
+      $B4: {  # false
+        %13:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
+        %14:f32 = load %13
+        %x_33:f32 = let %14
+        %16:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %17:f32 = load %16
+        %x_35:f32 = let %17
+        %19:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %20:f32 = load %19
+        %x_37:f32 = let %20
+        %22:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
+        %23:f32 = load %22
+        %x_39:f32 = let %23
+        %25:vec4<f32> = construct %x_33, %x_35, %x_37, %x_39
+        store %x_GLF_color, %25
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.msl
index 1154f8b..b1c933b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,61 +12,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %6:i32 = load %5
-    %7:i32 = shiftl %6, 5u
-    %8:u32 = bitcast %7
-    %9:i32 = shiftr 1i, %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %11:i32 = load %10
-    %12:u32 = bitcast %11
-    %13:i32 = shiftr %9, %12
-    store %a, %13
-    %14:i32 = load %a
-    %15:bool = eq %14, 1i
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %17:i32 = load %16
-        %18:f32 = convert %17
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %20:i32 = load %19
-        %21:f32 = convert %20
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %23:i32 = load %22
-        %24:f32 = convert %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:vec4<f32> = construct %18, %21, %24, %27
-        store %x_GLF_color, %28
+    %7:u32 = and 5u, 31u
+    %8:i32 = shl %6, %7
+    %9:u32 = bitcast %8
+    %10:u32 = and %9, 31u
+    %11:i32 = shr 1i, %10
+    %12:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %14:i32 = load %13
+    %15:u32 = bitcast %14
+    %16:u32 = and %15, 31u
+    %17:i32 = shr %12, %16
+    store %a, %17
+    %18:i32 = load %a
+    %19:bool = eq %18, 1i
+    if %19 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %21:i32 = load %20
+        %22:f32 = convert %21
+        %23:f32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %33:i32 = load %32
+        %34:f32 = convert %33
+        %35:vec4<f32> = construct %23, %27, %31, %34
+        store %x_GLF_color, %35
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %29:i32 = load %a
-        %30:f32 = convert %29
-        %31:vec4<f32> = construct %30
-        store %x_GLF_color, %31
+      $B4: {  # false
+        %36:i32 = load %a
+        %37:f32 = convert %36
+        %38:vec4<f32> = construct %37
+        store %x_GLF_color, %38
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.msl
index 18c613c..60213f7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-bit-shifting/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,61 +12,77 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_25:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:i32 = load %7
-    %9:i32 = shiftl %x_25, 5u
-    %10:u32 = bitcast %9
-    %11:i32 = shiftr 1i, %10
-    %12:u32 = bitcast %x_29
-    %13:i32 = shiftr %11, %12
-    store %a, %13
-    %x_31:i32 = load %a
-    %15:bool = eq %x_31, 1i
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_37:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_40:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_43:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_46:i32 = load %22
-        %24:f32 = convert %x_37
-        %25:f32 = convert %x_40
-        %26:f32 = convert %x_43
-        %27:f32 = convert %x_46
-        %28:vec4<f32> = construct %24, %25, %26, %27
-        store %x_GLF_color, %28
+    %6:i32 = load %5
+    %x_25:i32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %9:i32 = load %8
+    %x_29:i32 = let %9
+    %11:u32 = and 5u, 31u
+    %12:i32 = shl %x_25, %11
+    %13:u32 = bitcast %12
+    %14:u32 = and %13, 31u
+    %15:i32 = shr 1i, %14
+    %16:i32 = let %15
+    %17:u32 = bitcast %x_29
+    %18:u32 = and %17, 31u
+    %19:i32 = shr %16, %18
+    store %a, %19
+    %20:i32 = load %a
+    %x_31:i32 = let %20
+    %22:bool = eq %x_31, 1i
+    if %22 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %24:i32 = load %23
+        %x_37:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %27:i32 = load %26
+        %x_40:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_43:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_46:i32 = let %33
+        %35:f32 = convert %x_37
+        %36:f32 = let %35
+        %37:f32 = convert %x_40
+        %38:f32 = let %37
+        %39:f32 = convert %x_43
+        %40:f32 = let %39
+        %41:f32 = convert %x_46
+        %42:vec4<f32> = construct %36, %38, %40, %41
+        store %x_GLF_color, %42
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_49:i32 = load %a
-        %x_50:f32 = convert %x_49
-        %31:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
-        store %x_GLF_color, %31
+      $B4: {  # false
+        %43:i32 = load %a
+        %x_49:i32 = let %43
+        %45:f32 = convert %x_49
+        %x_50:f32 = let %45
+        %47:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
+        store %x_GLF_color, %47
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.msl
index 971a4e9..618ee74 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,61 +20,64 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %7:i32 = load %6
     %8:f32 = convert %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %10:i32 = load %9
-    %11:f32 = convert %10
-    %12:vec2<f32> = construct %8, %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %14:i32 = load %13
-    %15:i32 = or %14, 1i
-    %16:f32 = access %12, %15
-    store %a, %16
-    %17:f32 = load %a
-    %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %19:f32 = load %18
-    %20:bool = eq %17, %19
-    if %20 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %21:f32 = load %a
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %23:i32 = load %22
-        %24:f32 = convert %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:f32 = load %a
-        %29:vec4<f32> = construct %21, %24, %27, %28
-        store %x_GLF_color, %29
+    %9:f32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:f32 = convert %11
+    %13:vec2<f32> = construct %9, %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %15:i32 = load %14
+    %16:i32 = or %15, 1i
+    %17:f32 = access %13, %16
+    store %a, %17
+    %18:f32 = load %a
+    %19:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %20:f32 = load %19
+    %21:bool = eq %18, %20
+    if %21 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %22:f32 = load %a
+        %23:f32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = load %a
+        %32:vec4<f32> = construct %23, %27, %30, %31
+        store %x_GLF_color, %32
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %30:f32 = load %a
-        %31:vec4<f32> = construct %30
-        store %x_GLF_color, %31
+      $B4: {  # false
+        %33:f32 = load %a
+        %34:vec4<f32> = construct %33
+        store %x_GLF_color, %34
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.msl
index 277a8e2..9a6acc8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inclusive-or/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,61 +20,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_31:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_34:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %10
-    %12:f32 = convert %x_31
-    %13:f32 = convert %x_34
-    %14:vec2<f32> = construct %12, %13
-    %15:i32 = or %x_38, 1i
-    %16:f32 = access %14, %15
-    store %a, %16
-    %x_41:f32 = load %a
-    %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_43:f32 = load %18
-    %20:bool = eq %x_41, %x_43
-    if %20 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_48:f32 = load %a
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_50:i32 = load %22
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_53:i32 = load %24
-        %x_55:f32 = load %a
-        %27:f32 = convert %x_50
-        %28:f32 = convert %x_53
-        %29:vec4<f32> = construct %x_48, %27, %28, %x_55
-        store %x_GLF_color, %29
+    %7:i32 = load %6
+    %x_31:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_34:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %13:i32 = load %12
+    %x_38:i32 = let %13
+    %15:f32 = convert %x_31
+    %16:f32 = let %15
+    %17:f32 = convert %x_34
+    %18:vec2<f32> = construct %16, %17
+    %19:i32 = or %x_38, 1i
+    %20:f32 = access %18, %19
+    store %a, %20
+    %21:f32 = load %a
+    %x_41:f32 = let %21
+    %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %24:f32 = load %23
+    %x_43:f32 = let %24
+    %26:bool = eq %x_41, %x_43
+    if %26 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %27:f32 = load %a
+        %x_48:f32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_50:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_53:i32 = let %33
+        %35:f32 = load %a
+        %x_55:f32 = let %35
+        %37:f32 = convert %x_50
+        %38:f32 = let %37
+        %39:f32 = convert %x_53
+        %40:vec4<f32> = construct %x_48, %38, %39, %x_55
+        store %x_GLF_color, %40
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_57:f32 = load %a
-        %31:vec4<f32> = construct %x_57, %x_57, %x_57, %x_57
-        store %x_GLF_color, %31
+      $B4: {  # false
+        %41:f32 = load %a
+        %x_57:f32 = let %41
+        %43:vec4<f32> = construct %x_57, %x_57, %x_57, %x_57
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.msl
index 9bd0129..db256d0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,28 +12,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f_i1_ = func(%a:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%f_i1_ = func(%a:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
     %7:i32 = load %6
     store %i, %7
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:i32 = load %i
         %9:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
         %10:i32 = load %9
         %11:bool = lt %8, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -41,270 +41,305 @@
         %13:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
         %14:i32 = load %13
         %15:bool = gt %12, %14
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_21:i32 = load %a
+        if %15 [t: $B7] {  # if_2
+          $B7: {  # true
+            %16:i32 = load %a
+            %x_21:i32 = let %16
             ret %x_21
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %17:i32 = load %i
-        %18:i32 = add %17, 1i
-        store %i, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %18:i32 = load %i
+        %19:i32 = add %18, 1i
+        store %i, %19
+        next_iteration  # -> $B3
       }
     }
-    %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_24:i32 = load %19
+    %20:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %21:i32 = load %20
+    %x_24:i32 = let %21
     ret %x_24
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %r:ptr<function, array<i32, 10>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %a_1:ptr<function, array<i32, 10>, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
     %i_2:ptr<function, i32, read_write> = var
-    %28:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_25:i32 = load %28
-    %30:ptr<function, i32, read_write> = access %r, %x_25
-    %31:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %32:i32 = load %31
-    store %30, %32
-    %33:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
-    %x_27:i32 = load %33
-    %35:ptr<function, i32, read_write> = access %r, %x_27
-    %36:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %30:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %31:i32 = load %30
+    %x_25:i32 = let %31
+    %33:ptr<function, i32, read_write> = access %r, %x_25
+    %34:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %35:i32 = load %34
+    store %33, %35
+    %36:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
     %37:i32 = load %36
-    store %35, %37
-    %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_29:i32 = load %38
-    %40:ptr<function, i32, read_write> = access %r, %x_29
-    %41:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-    %42:i32 = load %41
-    store %40, %42
-    %43:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_31:i32 = load %43
-    %45:ptr<function, i32, read_write> = access %r, %x_31
-    %46:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+    %x_27:i32 = let %37
+    %39:ptr<function, i32, read_write> = access %r, %x_27
+    %40:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %41:i32 = load %40
+    store %39, %41
+    %42:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %43:i32 = load %42
+    %x_29:i32 = let %43
+    %45:ptr<function, i32, read_write> = access %r, %x_29
+    %46:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
     %47:i32 = load %46
     store %45, %47
-    %48:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-    %x_33:i32 = load %48
-    %50:ptr<function, i32, read_write> = access %r, %x_33
-    %51:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
-    %52:i32 = load %51
-    store %50, %52
-    %53:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-    %x_35:i32 = load %53
-    %55:ptr<function, i32, read_write> = access %r, %x_35
-    %56:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-    %57:i32 = load %56
-    store %55, %57
+    %48:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %49:i32 = load %48
+    %x_31:i32 = let %49
+    %51:ptr<function, i32, read_write> = access %r, %x_31
+    %52:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+    %53:i32 = load %52
+    store %51, %53
+    %54:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+    %55:i32 = load %54
+    %x_33:i32 = let %55
+    %57:ptr<function, i32, read_write> = access %r, %x_33
     %58:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
-    %x_37:i32 = load %58
-    %60:ptr<function, i32, read_write> = access %r, %x_37
-    %61:ptr<uniform, i32, read> = access %x_8, 0u, 7i, 0u
-    %62:i32 = load %61
-    store %60, %62
-    %63:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-    %x_39:i32 = load %63
-    %65:ptr<function, i32, read_write> = access %r, %x_39
-    %66:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+    %59:i32 = load %58
+    store %57, %59
+    %60:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+    %61:i32 = load %60
+    %x_35:i32 = let %61
+    %63:ptr<function, i32, read_write> = access %r, %x_35
+    %64:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+    %65:i32 = load %64
+    store %63, %65
+    %66:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
     %67:i32 = load %66
-    store %65, %67
-    %68:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
-    %x_41:i32 = load %68
-    %70:ptr<function, i32, read_write> = access %r, %x_41
-    %71:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
-    %72:i32 = load %71
-    store %70, %72
-    %73:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
-    %x_43:i32 = load %73
-    %75:ptr<function, i32, read_write> = access %r, %x_43
-    %76:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
+    %x_37:i32 = let %67
+    %69:ptr<function, i32, read_write> = access %r, %x_37
+    %70:ptr<uniform, i32, read> = access %x_8, 0u, 7i, 0u
+    %71:i32 = load %70
+    store %69, %71
+    %72:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+    %73:i32 = load %72
+    %x_39:i32 = let %73
+    %75:ptr<function, i32, read_write> = access %r, %x_39
+    %76:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
     %77:i32 = load %76
     store %75, %77
-    %78:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %78:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
     %79:i32 = load %78
-    store %i_1, %79
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %80:i32 = load %i_1
-        %81:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %82:i32 = load %81
-        %83:bool = lt %80, %82
-        if %83 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    %x_41:i32 = let %79
+    %81:ptr<function, i32, read_write> = access %r, %x_41
+    %82:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
+    %83:i32 = load %82
+    store %81, %83
+    %84:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
+    %85:i32 = load %84
+    %x_43:i32 = let %85
+    %87:ptr<function, i32, read_write> = access %r, %x_43
+    %88:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
+    %89:i32 = load %88
+    store %87, %89
+    %90:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %91:i32 = load %90
+    store %i_1, %91
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %92:i32 = load %i_1
+        %93:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %94:i32 = load %93
+        %95:bool = lt %92, %94
+        if %95 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_48:i32 = load %i_1
-        %85:ptr<function, i32, read_write> = access %a_1, %x_48
-        %86:i32 = load %i_1
-        store %85, %86
-        %87:i32 = load %i_1
-        %88:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %89:i32 = load %88
-        %90:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %91:i32 = load %90
-        %92:i32 = div %89, %91
-        %93:bool = lt %87, %92
-        if %93 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
-            %x_54:i32 = load %i_1
-            %95:ptr<function, i32, read_write> = access %a_1, %x_54
-            %96:i32 = load %i_1
-            %97:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-            %98:i32 = load %97
-            %99:i32 = add %96, %98
-            store %95, %99
-            %100:i32 = load %i_1
-            %101:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-            %102:i32 = load %101
-            %103:bool = lt %100, %102
-            if %103 [t: %b15] {  # if_5
-              %b15 = block {  # true
-                continue %b10
+        %96:i32 = load %i_1
+        %x_48:i32 = let %96
+        %98:ptr<function, i32, read_write> = access %a_1, %x_48
+        %99:i32 = load %i_1
+        store %98, %99
+        %100:i32 = load %i_1
+        %101:i32 = let %100
+        %102:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %103:i32 = load %102
+        %104:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %105:i32 = load %104
+        %106:i32 = call %tint_div_i32, %103, %105
+        %108:bool = lt %101, %106
+        if %108 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
+            %109:i32 = load %i_1
+            %x_54:i32 = let %109
+            %111:ptr<function, i32, read_write> = access %a_1, %x_54
+            %112:i32 = load %i_1
+            %113:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+            %114:i32 = load %113
+            %115:i32 = add %112, %114
+            store %111, %115
+            %116:i32 = load %i_1
+            %117:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+            %118:i32 = load %117
+            %119:bool = lt %116, %118
+            if %119 [t: $B15] {  # if_5
+              $B15: {  # true
+                continue  # -> $B10
               }
             }
-            %x_60:i32 = load %i_1
-            %105:ptr<function, i32, read_write> = access %a_1, %x_60
-            %106:i32 = load %i_1
-            %107:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-            %108:i32 = load %107
-            %109:i32 = add %106, %108
-            store %105, %109
-            %110:i32 = load %i_1
-            %111:ptr<function, i32, read_write> = access %a_1, %110
-            %112:i32 = load %111
-            store %param, %112
-            %x_66:i32 = call %f_i1_, %param
-            %114:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-            %115:i32 = load %114
-            %116:bool = lt %x_66, %115
-            if %116 [t: %b16] {  # if_6
-              %b16 = block {  # true
-                %x_68:i32 = load %i_1
+            %120:i32 = load %i_1
+            %x_60:i32 = let %120
+            %122:ptr<function, i32, read_write> = access %a_1, %x_60
+            %123:i32 = load %i_1
+            %124:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+            %125:i32 = load %124
+            %126:i32 = add %123, %125
+            store %122, %126
+            %127:i32 = load %i_1
+            %128:ptr<function, i32, read_write> = access %a_1, %127
+            %129:i32 = load %128
+            store %param, %129
+            %130:i32 = call %f_i1_, %param
+            %x_66:i32 = let %130
+            %132:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+            %133:i32 = load %132
+            %134:bool = lt %x_66, %133
+            if %134 [t: $B16] {  # if_6
+              $B16: {  # true
+                %135:i32 = load %i_1
+                %x_68:i32 = let %135
                 %x_182_save:i32 = let %x_68
-                %119:ptr<function, i32, read_write> = access %a_1, %x_182_save
-                %120:ptr<function, i32, read_write> = access %a_1, %x_68
-                %121:i32 = load %120
-                %122:i32 = sub %121, 1i
-                store %119, %122
+                %138:ptr<function, i32, read_write> = access %a_1, %x_182_save
+                %139:ptr<function, i32, read_write> = access %a_1, %x_68
+                %140:i32 = load %139
+                %141:i32 = sub %140, 1i
+                store %138, %141
                 exit_if  # if_6
               }
             }
             exit_if  # if_4
           }
-          %b14 = block {  # false
-            %123:i32 = load %i_1
-            %124:ptr<function, i32, read_write> = access %a_1, %123
-            %125:i32 = load %124
-            store %param_1, %125
-            %x_73:i32 = call %f_i1_, %param_1
-            %127:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-            %128:i32 = load %127
-            %129:bool = lt %x_73, %128
-            if %129 [t: %b17] {  # if_7
-              %b17 = block {  # true
-                %x_75:i32 = load %i_1
-                %131:ptr<function, i32, read_write> = access %a_1, %x_75
-                %132:i32 = load %i_1
-                %133:ptr<function, i32, read_write> = access %a_1, %132
-                %134:i32 = load %133
-                %135:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-                %136:i32 = load %135
-                %137:i32 = add %134, %136
-                store %131, %137
+          $B14: {  # false
+            %142:i32 = load %i_1
+            %143:ptr<function, i32, read_write> = access %a_1, %142
+            %144:i32 = load %143
+            store %param_1, %144
+            %145:i32 = call %f_i1_, %param_1
+            %x_73:i32 = let %145
+            %147:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+            %148:i32 = load %147
+            %149:bool = lt %x_73, %148
+            if %149 [t: $B17] {  # if_7
+              $B17: {  # true
+                %150:i32 = load %i_1
+                %x_75:i32 = let %150
+                %152:ptr<function, i32, read_write> = access %a_1, %x_75
+                %153:i32 = load %i_1
+                %154:ptr<function, i32, read_write> = access %a_1, %153
+                %155:i32 = load %154
+                %156:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+                %157:i32 = load %156
+                %158:i32 = add %155, %157
+                store %152, %158
                 exit_if  # if_7
               }
             }
             exit_if  # if_4
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %138:i32 = load %i_1
-        %139:i32 = add %138, 1i
-        store %i_1, %139
-        next_iteration %b9
+      $B10: {  # continuing
+        %159:i32 = load %i_1
+        %160:i32 = add %159, 1i
+        store %i_1, %160
+        next_iteration  # -> $B9
       }
     }
-    %140:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %141:i32 = load %140
-    store %i_2, %141
-    loop [b: %b18, c: %b19] {  # loop_3
-      %b18 = block {  # body
-        %142:i32 = load %i_2
-        %143:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %144:i32 = load %143
-        %145:bool = lt %142, %144
-        if %145 [t: %b20, f: %b21] {  # if_8
-          %b20 = block {  # true
+    %161:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %162:i32 = load %161
+    store %i_2, %162
+    loop [b: $B18, c: $B19] {  # loop_3
+      $B18: {  # body
+        %163:i32 = load %i_2
+        %164:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %165:i32 = load %164
+        %166:bool = lt %163, %165
+        if %166 [t: $B20, f: $B21] {  # if_8
+          $B20: {  # true
             exit_if  # if_8
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_3
           }
         }
-        %146:i32 = load %i_2
-        %147:ptr<function, i32, read_write> = access %a_1, %146
-        %148:i32 = load %147
-        %149:i32 = load %i_2
-        %150:ptr<function, i32, read_write> = access %r, %149
-        %151:i32 = load %150
-        %152:bool = neq %148, %151
-        if %152 [t: %b22] {  # if_9
-          %b22 = block {  # true
-            %153:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-            %154:i32 = load %153
-            %155:f32 = convert %154
-            %156:vec4<f32> = construct %155
-            store %x_GLF_color, %156
+        %167:i32 = load %i_2
+        %168:ptr<function, i32, read_write> = access %a_1, %167
+        %169:i32 = load %168
+        %170:i32 = load %i_2
+        %171:ptr<function, i32, read_write> = access %r, %170
+        %172:i32 = load %171
+        %173:bool = neq %169, %172
+        if %173 [t: $B22] {  # if_9
+          $B22: {  # true
+            %174:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+            %175:i32 = load %174
+            %176:f32 = convert %175
+            %177:vec4<f32> = construct %176
+            store %x_GLF_color, %177
             ret
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %157:i32 = load %i_2
-        %158:i32 = add %157, 1i
-        store %i_2, %158
-        next_iteration %b18
+      $B19: {  # continuing
+        %178:i32 = load %i_2
+        %179:i32 = add %178, 1i
+        store %i_2, %179
+        next_iteration  # -> $B18
       }
     }
-    %159:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
-    %160:i32 = load %159
-    %161:f32 = convert %160
-    %162:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %163:i32 = load %162
-    %164:f32 = convert %163
-    %165:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %166:i32 = load %165
-    %167:f32 = convert %166
-    %168:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
-    %169:i32 = load %168
-    %170:f32 = convert %169
-    %171:vec4<f32> = construct %161, %164, %167, %170
-    store %x_GLF_color, %171
+    %180:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
+    %181:i32 = load %180
+    %182:f32 = convert %181
+    %183:f32 = let %182
+    %184:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %185:i32 = load %184
+    %186:f32 = convert %185
+    %187:f32 = let %186
+    %188:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %189:i32 = load %188
+    %190:f32 = convert %189
+    %191:f32 = let %190
+    %192:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
+    %193:i32 = load %192
+    %194:f32 = convert %193
+    %195:vec4<f32> = construct %183, %187, %191, %194
+    store %x_GLF_color, %195
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b23 {
-  %b23 = block {
-    %173:void = call %main_1
-    %174:vec4<f32> = load %x_GLF_color
-    %175:main_out = construct %174
-    ret %175
+%tint_symbol = @fragment func():main_out {
+  $B23: {
+    %197:void = call %main_1
+    %198:vec4<f32> = load %x_GLF_color
+    %199:main_out = construct %198
+    ret %199
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B24: {
+    %202:bool = eq %rhs, 0i
+    %203:bool = eq %lhs, -2147483648i
+    %204:bool = eq %rhs, -1i
+    %205:bool = and %203, %204
+    %206:bool = or %202, %205
+    %207:i32 = select %rhs, 1i, %206
+    %208:i32 = div %lhs, %207
+    ret %208
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.msl
index 610b270..853b219 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,298 +12,385 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f_i1_ = func(%a:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%f_i1_ = func(%a:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_16:i32 = load %6
+    %7:i32 = load %6
+    %x_16:i32 = let %7
     store %i, %x_16
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_17:i32 = load %i
-        %9:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %x_18:i32 = load %9
-        %11:bool = lt %x_17, %x_18
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_17:i32 = let %9
+        %11:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %12:i32 = load %11
+        %x_18:i32 = let %12
+        %14:bool = lt %x_17, %x_18
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_19:i32 = load %i
-        %13:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-        %x_20:i32 = load %13
-        %15:bool = gt %x_19, %x_20
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_21:i32 = load %a
+        %15:i32 = load %i
+        %x_19:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+        %18:i32 = load %17
+        %x_20:i32 = let %18
+        %20:bool = gt %x_19, %x_20
+        if %20 [t: $B7] {  # if_2
+          $B7: {  # true
+            %21:i32 = load %a
+            %x_21:i32 = let %21
             ret %x_21
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_22:i32 = load %i
-        %18:i32 = add %x_22, 1i
-        store %i, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %23:i32 = load %i
+        %x_22:i32 = let %23
+        %25:i32 = add %x_22, 1i
+        store %i, %25
+        next_iteration  # -> $B3
       }
     }
-    %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_24:i32 = load %19
+    %26:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %27:i32 = load %26
+    %x_24:i32 = let %27
     ret %x_24
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %r:ptr<function, array<i32, 10>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %a_1:ptr<function, array<i32, 10>, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
     %i_2:ptr<function, i32, read_write> = var
-    %28:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_25:i32 = load %28
-    %30:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_26:i32 = load %30
-    %32:ptr<function, i32, read_write> = access %r, %x_25
-    store %32, %x_26
-    %33:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
-    %x_27:i32 = load %33
-    %35:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_28:i32 = load %35
-    %37:ptr<function, i32, read_write> = access %r, %x_27
-    store %37, %x_28
-    %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_29:i32 = load %38
-    %40:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-    %x_30:i32 = load %40
-    %42:ptr<function, i32, read_write> = access %r, %x_29
-    store %42, %x_30
-    %43:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_31:i32 = load %43
-    %45:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-    %x_32:i32 = load %45
-    %47:ptr<function, i32, read_write> = access %r, %x_31
-    store %47, %x_32
-    %48:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-    %x_33:i32 = load %48
-    %50:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
-    %x_34:i32 = load %50
-    %52:ptr<function, i32, read_write> = access %r, %x_33
-    store %52, %x_34
-    %53:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-    %x_35:i32 = load %53
-    %55:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-    %x_36:i32 = load %55
-    %57:ptr<function, i32, read_write> = access %r, %x_35
-    store %57, %x_36
-    %58:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
-    %x_37:i32 = load %58
-    %60:ptr<uniform, i32, read> = access %x_8, 0u, 7i, 0u
-    %x_38:i32 = load %60
-    %62:ptr<function, i32, read_write> = access %r, %x_37
-    store %62, %x_38
-    %63:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-    %x_39:i32 = load %63
-    %65:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-    %x_40:i32 = load %65
-    %67:ptr<function, i32, read_write> = access %r, %x_39
-    store %67, %x_40
-    %68:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
-    %x_41:i32 = load %68
-    %70:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
-    %x_42:i32 = load %70
-    %72:ptr<function, i32, read_write> = access %r, %x_41
-    store %72, %x_42
-    %73:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
-    %x_43:i32 = load %73
-    %75:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
-    %x_44:i32 = load %75
-    %77:ptr<function, i32, read_write> = access %r, %x_43
-    store %77, %x_44
-    %78:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_45:i32 = load %78
+    %36:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %37:i32 = load %36
+    %x_25:i32 = let %37
+    %39:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %40:i32 = load %39
+    %x_26:i32 = let %40
+    %42:ptr<function, i32, read_write> = access %r, %x_25
+    store %42, %x_26
+    %43:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
+    %44:i32 = load %43
+    %x_27:i32 = let %44
+    %46:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %47:i32 = load %46
+    %x_28:i32 = let %47
+    %49:ptr<function, i32, read_write> = access %r, %x_27
+    store %49, %x_28
+    %50:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %51:i32 = load %50
+    %x_29:i32 = let %51
+    %53:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+    %54:i32 = load %53
+    %x_30:i32 = let %54
+    %56:ptr<function, i32, read_write> = access %r, %x_29
+    store %56, %x_30
+    %57:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %58:i32 = load %57
+    %x_31:i32 = let %58
+    %60:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+    %61:i32 = load %60
+    %x_32:i32 = let %61
+    %63:ptr<function, i32, read_write> = access %r, %x_31
+    store %63, %x_32
+    %64:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+    %65:i32 = load %64
+    %x_33:i32 = let %65
+    %67:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
+    %68:i32 = load %67
+    %x_34:i32 = let %68
+    %70:ptr<function, i32, read_write> = access %r, %x_33
+    store %70, %x_34
+    %71:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+    %72:i32 = load %71
+    %x_35:i32 = let %72
+    %74:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+    %75:i32 = load %74
+    %x_36:i32 = let %75
+    %77:ptr<function, i32, read_write> = access %r, %x_35
+    store %77, %x_36
+    %78:ptr<uniform, i32, read> = access %x_8, 0u, 5i, 0u
+    %79:i32 = load %78
+    %x_37:i32 = let %79
+    %81:ptr<uniform, i32, read> = access %x_8, 0u, 7i, 0u
+    %82:i32 = load %81
+    %x_38:i32 = let %82
+    %84:ptr<function, i32, read_write> = access %r, %x_37
+    store %84, %x_38
+    %85:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+    %86:i32 = load %85
+    %x_39:i32 = let %86
+    %88:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+    %89:i32 = load %88
+    %x_40:i32 = let %89
+    %91:ptr<function, i32, read_write> = access %r, %x_39
+    store %91, %x_40
+    %92:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
+    %93:i32 = load %92
+    %x_41:i32 = let %93
+    %95:ptr<uniform, i32, read> = access %x_8, 0u, 9i, 0u
+    %96:i32 = load %95
+    %x_42:i32 = let %96
+    %98:ptr<function, i32, read_write> = access %r, %x_41
+    store %98, %x_42
+    %99:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
+    %100:i32 = load %99
+    %x_43:i32 = let %100
+    %102:ptr<uniform, i32, read> = access %x_8, 0u, 10i, 0u
+    %103:i32 = load %102
+    %x_44:i32 = let %103
+    %105:ptr<function, i32, read_write> = access %r, %x_43
+    store %105, %x_44
+    %106:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %107:i32 = load %106
+    %x_45:i32 = let %107
     store %i_1, %x_45
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_46:i32 = load %i_1
-        %81:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %x_47:i32 = load %81
-        %83:bool = lt %x_46, %x_47
-        if %83 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %109:i32 = load %i_1
+        %x_46:i32 = let %109
+        %111:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %112:i32 = load %111
+        %x_47:i32 = let %112
+        %114:bool = lt %x_46, %x_47
+        if %114 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_48:i32 = load %i_1
-        %x_49:i32 = load %i_1
-        %86:ptr<function, i32, read_write> = access %a_1, %x_48
-        store %86, %x_49
-        %x_50:i32 = load %i_1
-        %88:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %x_51:i32 = load %88
-        %90:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_52:i32 = load %90
-        %92:i32 = div %x_51, %x_52
-        %93:bool = lt %x_50, %92
-        if %93 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
-            %x_54:i32 = load %i_1
-            %x_55:i32 = load %i_1
-            %96:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-            %x_56:i32 = load %96
-            %98:ptr<function, i32, read_write> = access %a_1, %x_54
-            %99:i32 = add %x_55, %x_56
-            store %98, %99
-            %x_58:i32 = load %i_1
-            %101:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-            %x_59:i32 = load %101
-            %103:bool = lt %x_58, %x_59
-            if %103 [t: %b15] {  # if_5
-              %b15 = block {  # true
-                continue %b10
+        %115:i32 = load %i_1
+        %x_48:i32 = let %115
+        %117:i32 = load %i_1
+        %x_49:i32 = let %117
+        %119:ptr<function, i32, read_write> = access %a_1, %x_48
+        store %119, %x_49
+        %120:i32 = load %i_1
+        %x_50:i32 = let %120
+        %122:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %123:i32 = load %122
+        %x_51:i32 = let %123
+        %125:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %126:i32 = load %125
+        %x_52:i32 = let %126
+        %128:i32 = call %tint_div_i32, %x_51, %x_52
+        %130:bool = lt %x_50, %128
+        if %130 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
+            %131:i32 = load %i_1
+            %x_54:i32 = let %131
+            %133:i32 = load %i_1
+            %x_55:i32 = let %133
+            %135:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+            %136:i32 = load %135
+            %x_56:i32 = let %136
+            %138:ptr<function, i32, read_write> = access %a_1, %x_54
+            %139:i32 = add %x_55, %x_56
+            store %138, %139
+            %140:i32 = load %i_1
+            %x_58:i32 = let %140
+            %142:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+            %143:i32 = load %142
+            %x_59:i32 = let %143
+            %145:bool = lt %x_58, %x_59
+            if %145 [t: $B15] {  # if_5
+              $B15: {  # true
+                continue  # -> $B10
               }
             }
-            %x_60:i32 = load %i_1
-            %x_61:i32 = load %i_1
-            %106:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-            %x_62:i32 = load %106
-            %108:ptr<function, i32, read_write> = access %a_1, %x_60
-            %109:i32 = add %x_61, %x_62
-            store %108, %109
-            %x_64:i32 = load %i_1
-            %111:ptr<function, i32, read_write> = access %a_1, %x_64
-            %x_65:i32 = load %111
+            %146:i32 = load %i_1
+            %x_60:i32 = let %146
+            %148:i32 = load %i_1
+            %x_61:i32 = let %148
+            %150:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+            %151:i32 = load %150
+            %x_62:i32 = let %151
+            %153:ptr<function, i32, read_write> = access %a_1, %x_60
+            %154:i32 = add %x_61, %x_62
+            store %153, %154
+            %155:i32 = load %i_1
+            %x_64:i32 = let %155
+            %157:ptr<function, i32, read_write> = access %a_1, %x_64
+            %158:i32 = load %157
+            %x_65:i32 = let %158
             store %param, %x_65
-            %x_66:i32 = call %f_i1_, %param
-            %114:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-            %x_67:i32 = load %114
-            %116:bool = lt %x_66, %x_67
-            if %116 [t: %b16] {  # if_6
-              %b16 = block {  # true
-                %x_68:i32 = load %i_1
+            %160:i32 = call %f_i1_, %param
+            %x_66:i32 = let %160
+            %162:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+            %163:i32 = load %162
+            %x_67:i32 = let %163
+            %165:bool = lt %x_66, %x_67
+            if %165 [t: $B16] {  # if_6
+              $B16: {  # true
+                %166:i32 = load %i_1
+                %x_68:i32 = let %166
                 %x_182_save:i32 = let %x_68
-                %119:ptr<function, i32, read_write> = access %a_1, %x_182_save
-                %x_69:i32 = load %119
-                %121:ptr<function, i32, read_write> = access %a_1, %x_182_save
-                %122:i32 = sub %x_69, 1i
-                store %121, %122
+                %169:ptr<function, i32, read_write> = access %a_1, %x_182_save
+                %170:i32 = load %169
+                %x_69:i32 = let %170
+                %172:ptr<function, i32, read_write> = access %a_1, %x_182_save
+                %173:i32 = sub %x_69, 1i
+                store %172, %173
                 exit_if  # if_6
               }
             }
             exit_if  # if_4
           }
-          %b14 = block {  # false
-            %x_71:i32 = load %i_1
-            %124:ptr<function, i32, read_write> = access %a_1, %x_71
-            %x_72:i32 = load %124
+          $B14: {  # false
+            %174:i32 = load %i_1
+            %x_71:i32 = let %174
+            %176:ptr<function, i32, read_write> = access %a_1, %x_71
+            %177:i32 = load %176
+            %x_72:i32 = let %177
             store %param_1, %x_72
-            %x_73:i32 = call %f_i1_, %param_1
-            %127:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
-            %x_74:i32 = load %127
-            %129:bool = lt %x_73, %x_74
-            if %129 [t: %b17] {  # if_7
-              %b17 = block {  # true
-                %x_75:i32 = load %i_1
-                %131:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-                %x_76:i32 = load %131
-                %133:ptr<function, i32, read_write> = access %a_1, %x_75
-                %x_77:i32 = load %133
-                %135:ptr<function, i32, read_write> = access %a_1, %x_75
-                %136:i32 = add %x_77, %x_76
-                store %135, %136
+            %179:i32 = call %f_i1_, %param_1
+            %x_73:i32 = let %179
+            %181:ptr<uniform, i32, read> = access %x_8, 0u, 8i, 0u
+            %182:i32 = load %181
+            %x_74:i32 = let %182
+            %184:bool = lt %x_73, %x_74
+            if %184 [t: $B17] {  # if_7
+              $B17: {  # true
+                %185:i32 = load %i_1
+                %x_75:i32 = let %185
+                %187:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+                %188:i32 = load %187
+                %x_76:i32 = let %188
+                %190:ptr<function, i32, read_write> = access %a_1, %x_75
+                %191:i32 = load %190
+                %x_77:i32 = let %191
+                %193:ptr<function, i32, read_write> = access %a_1, %x_75
+                %194:i32 = add %x_77, %x_76
+                store %193, %194
                 exit_if  # if_7
               }
             }
             exit_if  # if_4
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %x_79:i32 = load %i_1
-        %138:i32 = add %x_79, 1i
-        store %i_1, %138
-        next_iteration %b9
+      $B10: {  # continuing
+        %195:i32 = load %i_1
+        %x_79:i32 = let %195
+        %197:i32 = add %x_79, 1i
+        store %i_1, %197
+        next_iteration  # -> $B9
       }
     }
-    %139:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_81:i32 = load %139
+    %198:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %199:i32 = load %198
+    %x_81:i32 = let %199
     store %i_2, %x_81
-    loop [b: %b18, c: %b19] {  # loop_3
-      %b18 = block {  # body
-        %x_82:i32 = load %i_2
-        %142:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
-        %x_83:i32 = load %142
-        %144:bool = lt %x_82, %x_83
-        if %144 [t: %b20, f: %b21] {  # if_8
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_3
+      $B18: {  # body
+        %201:i32 = load %i_2
+        %x_82:i32 = let %201
+        %203:ptr<uniform, i32, read> = access %x_8, 0u, 6i, 0u
+        %204:i32 = load %203
+        %x_83:i32 = let %204
+        %206:bool = lt %x_82, %x_83
+        if %206 [t: $B20, f: $B21] {  # if_8
+          $B20: {  # true
             exit_if  # if_8
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_84:i32 = load %i_2
-        %146:ptr<function, i32, read_write> = access %a_1, %x_84
-        %x_85:i32 = load %146
-        %x_86:i32 = load %i_2
-        %149:ptr<function, i32, read_write> = access %r, %x_86
-        %x_87:i32 = load %149
-        %151:bool = neq %x_85, %x_87
-        if %151 [t: %b22] {  # if_9
-          %b22 = block {  # true
-            %152:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-            %x_88:i32 = load %152
-            %x_205:f32 = convert %x_88
-            %155:vec4<f32> = construct %x_205, %x_205, %x_205, %x_205
-            store %x_GLF_color, %155
+        %207:i32 = load %i_2
+        %x_84:i32 = let %207
+        %209:ptr<function, i32, read_write> = access %a_1, %x_84
+        %210:i32 = load %209
+        %x_85:i32 = let %210
+        %212:i32 = load %i_2
+        %x_86:i32 = let %212
+        %214:ptr<function, i32, read_write> = access %r, %x_86
+        %215:i32 = load %214
+        %x_87:i32 = let %215
+        %217:bool = neq %x_85, %x_87
+        if %217 [t: $B22] {  # if_9
+          $B22: {  # true
+            %218:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+            %219:i32 = load %218
+            %x_88:i32 = let %219
+            %221:f32 = convert %x_88
+            %x_205:f32 = let %221
+            %223:vec4<f32> = construct %x_205, %x_205, %x_205, %x_205
+            store %x_GLF_color, %223
             ret
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_89:i32 = load %i_2
-        %157:i32 = add %x_89, 1i
-        store %i_2, %157
-        next_iteration %b18
+      $B19: {  # continuing
+        %224:i32 = load %i_2
+        %x_89:i32 = let %224
+        %226:i32 = add %x_89, 1i
+        store %i_2, %226
+        next_iteration  # -> $B18
       }
     }
-    %158:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
-    %x_91:i32 = load %158
-    %160:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_92:i32 = load %160
-    %162:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_93:i32 = load %162
-    %164:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
-    %x_94:i32 = load %164
-    %166:f32 = convert %x_91
-    %167:f32 = convert %x_92
-    %168:f32 = convert %x_93
-    %169:f32 = convert %x_94
-    %170:vec4<f32> = construct %166, %167, %168, %169
-    store %x_GLF_color, %170
+    %227:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
+    %228:i32 = load %227
+    %x_91:i32 = let %228
+    %230:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %231:i32 = load %230
+    %x_92:i32 = let %231
+    %233:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %234:i32 = load %233
+    %x_93:i32 = let %234
+    %236:ptr<uniform, i32, read> = access %x_8, 0u, 11i, 0u
+    %237:i32 = load %236
+    %x_94:i32 = let %237
+    %239:f32 = convert %x_91
+    %240:f32 = let %239
+    %241:f32 = convert %x_92
+    %242:f32 = let %241
+    %243:f32 = convert %x_93
+    %244:f32 = let %243
+    %245:f32 = convert %x_94
+    %246:vec4<f32> = construct %240, %242, %244, %245
+    store %x_GLF_color, %246
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b23 {
-  %b23 = block {
-    %172:void = call %main_1
-    %173:vec4<f32> = load %x_GLF_color
-    %174:main_out = construct %173
-    ret %174
+%tint_symbol = @fragment func():main_out {
+  $B23: {
+    %248:void = call %main_1
+    %249:vec4<f32> = load %x_GLF_color
+    %250:main_out = construct %249
+    ret %250
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B24: {
+    %253:bool = eq %rhs, 0i
+    %254:bool = eq %lhs, -2147483648i
+    %255:bool = eq %rhs, -1i
+    %256:bool = and %254, %255
+    %257:bool = or %253, %256
+    %258:i32 = select %rhs, 1i, %257
+    %259:i32 = div %lhs, %258
+    ret %259
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.msl
index f6d3f68..6e61e4d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,57 +20,61 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %7:i32 = load %6
     %8:f32 = convert %7
-    %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %10:i32 = load %9
-    %11:f32 = convert %10
-    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %13:i32 = load %12
-    %14:f32 = convert %13
-    %15:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %16:i32 = load %15
-    %17:f32 = convert %16
-    %18:vec4<f32> = construct %8, %11, %14, %17
-    store %x_GLF_color, %18
-    %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_45:f32 = load %19
-    %21:f32 = div %x_45, 1.0f
-    %22:f32 = floor %21
-    %23:f32 = mul 1.0f, %22
-    %24:f32 = sub %x_45, %23
-    store %a, %24
-    %25:f32 = load %a
-    %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %27:f32 = load %26
-    %28:bool = neq %25, %27
-    if %28 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %30:f32 = load %29
-        store_vector_element %x_GLF_color, 1u, %30
+    %9:f32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:f32 = convert %11
+    %13:f32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %15:i32 = load %14
+    %16:f32 = convert %15
+    %17:f32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %19:i32 = load %18
+    %20:f32 = convert %19
+    %21:vec4<f32> = construct %9, %13, %17, %20
+    store %x_GLF_color, %21
+    %22:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %23:f32 = load %22
+    %x_45:f32 = let %23
+    %25:f32 = div %x_45, 1.0f
+    %26:f32 = floor %25
+    %27:f32 = mul 1.0f, %26
+    %28:f32 = sub %x_45, %27
+    store %a, %28
+    %29:f32 = load %a
+    %30:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %31:f32 = load %30
+    %32:bool = neq %29, %31
+    if %32 [t: $B3] {  # if_1
+      $B3: {  # true
+        %33:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %34:f32 = load %33
+        store_vector_element %x_GLF_color, 1u, %34
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.msl
index 367497e..13f7fc1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-acos-undefined/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,44 +20,55 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_10:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_11:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_12:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_13:i32 = load %12
-    %14:f32 = convert %x_10
-    %15:f32 = convert %x_11
-    %16:f32 = convert %x_12
-    %17:f32 = convert %x_13
-    %18:vec4<f32> = construct %14, %15, %16, %17
-    store %x_GLF_color, %18
-    %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_45:f32 = load %19
-    %21:f32 = div %x_45, 1.0f
-    %22:f32 = floor %21
-    %23:f32 = mul 1.0f, %22
-    %24:f32 = sub %x_45, %23
-    store %a, %24
-    %x_47:f32 = load %a
-    %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_49:f32 = load %26
-    %28:bool = neq %x_47, %x_49
-    if %28 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_54:f32 = load %29
+    %7:i32 = load %6
+    %x_10:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_11:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_12:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %16:i32 = load %15
+    %x_13:i32 = let %16
+    %18:f32 = convert %x_10
+    %19:f32 = let %18
+    %20:f32 = convert %x_11
+    %21:f32 = let %20
+    %22:f32 = convert %x_12
+    %23:f32 = let %22
+    %24:f32 = convert %x_13
+    %25:vec4<f32> = construct %19, %21, %23, %24
+    store %x_GLF_color, %25
+    %26:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %27:f32 = load %26
+    %x_45:f32 = let %27
+    %29:f32 = div %x_45, 1.0f
+    %30:f32 = floor %29
+    %31:f32 = mul 1.0f, %30
+    %32:f32 = sub %x_45, %31
+    store %a, %32
+    %33:f32 = load %a
+    %x_47:f32 = let %33
+    %35:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %36:f32 = load %35
+    %x_49:f32 = let %36
+    %38:bool = neq %x_47, %x_49
+    if %38 [t: $B3] {  # if_1
+      $B3: {  # true
+        %39:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %40:f32 = load %39
+        %x_54:f32 = let %40
         store_vector_element %x_GLF_color, 1u, %x_54
         exit_if  # if_1
       }
@@ -65,12 +76,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.msl
index 6ef086a..d3ecab5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,57 +20,61 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %7:i32 = load %6
     %8:f32 = convert %7
-    %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %10:i32 = load %9
-    %11:f32 = convert %10
-    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %13:i32 = load %12
-    %14:f32 = convert %13
-    %15:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %16:i32 = load %15
-    %17:f32 = convert %16
-    %18:vec4<f32> = construct %8, %11, %14, %17
-    store %x_GLF_color, %18
-    %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_45:f32 = load %19
-    %21:f32 = div 1.0f, %x_45
-    %22:f32 = floor %21
-    %23:f32 = mul %x_45, %22
-    %24:f32 = sub 1.0f, %23
-    store %a, %24
-    %25:f32 = load %a
-    %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %27:f32 = load %26
-    %28:bool = neq %25, %27
-    if %28 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %30:f32 = load %29
-        store_vector_element %x_GLF_color, 1u, %30
+    %9:f32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:f32 = convert %11
+    %13:f32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %15:i32 = load %14
+    %16:f32 = convert %15
+    %17:f32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %19:i32 = load %18
+    %20:f32 = convert %19
+    %21:vec4<f32> = construct %9, %13, %17, %20
+    store %x_GLF_color, %21
+    %22:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %23:f32 = load %22
+    %x_45:f32 = let %23
+    %25:f32 = div 1.0f, %x_45
+    %26:f32 = floor %25
+    %27:f32 = mul %x_45, %26
+    %28:f32 = sub 1.0f, %27
+    store %a, %28
+    %29:f32 = load %a
+    %30:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %31:f32 = load %30
+    %32:bool = neq %29, %31
+    if %32 [t: $B3] {  # if_1
+      $B3: {  # true
+        %33:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %34:f32 = load %33
+        store_vector_element %x_GLF_color, 1u, %34
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.msl
index 4d0acd6..767fe91 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-mod-sqrt-undefined/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,44 +20,55 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_10:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_11:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_12:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_13:i32 = load %12
-    %14:f32 = convert %x_10
-    %15:f32 = convert %x_11
-    %16:f32 = convert %x_12
-    %17:f32 = convert %x_13
-    %18:vec4<f32> = construct %14, %15, %16, %17
-    store %x_GLF_color, %18
-    %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_45:f32 = load %19
-    %21:f32 = div 1.0f, %x_45
-    %22:f32 = floor %21
-    %23:f32 = mul %x_45, %22
-    %24:f32 = sub 1.0f, %23
-    store %a, %24
-    %x_47:f32 = load %a
-    %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_49:f32 = load %26
-    %28:bool = neq %x_47, %x_49
-    if %28 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_54:f32 = load %29
+    %7:i32 = load %6
+    %x_10:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_11:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_12:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %16:i32 = load %15
+    %x_13:i32 = let %16
+    %18:f32 = convert %x_10
+    %19:f32 = let %18
+    %20:f32 = convert %x_11
+    %21:f32 = let %20
+    %22:f32 = convert %x_12
+    %23:f32 = let %22
+    %24:f32 = convert %x_13
+    %25:vec4<f32> = construct %19, %21, %23, %24
+    store %x_GLF_color, %25
+    %26:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %27:f32 = load %26
+    %x_45:f32 = let %27
+    %29:f32 = div 1.0f, %x_45
+    %30:f32 = floor %29
+    %31:f32 = mul %x_45, %30
+    %32:f32 = sub 1.0f, %31
+    store %a, %32
+    %33:f32 = load %a
+    %x_47:f32 = let %33
+    %35:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %36:f32 = load %35
+    %x_49:f32 = let %36
+    %38:bool = neq %x_47, %x_49
+    if %38 [t: $B3] {  # if_1
+      $B3: {  # true
+        %39:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %40:f32 = load %39
+        %x_54:f32 = let %40
         store_vector_element %x_GLF_color, 1u, %x_54
         exit_if  # if_1
       }
@@ -65,12 +76,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.msl
index 1fde0fd..7d9a43f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,20 +20,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
     %6:f32 = load %5
     %7:f32 = sqrt %6
     %8:bool = lt %7, -1.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %10:i32 = load %9
         %11:f32 = convert %10
@@ -41,27 +41,29 @@
         store %x_GLF_color, %12
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %13:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %14:i32 = load %13
-        %x_41:f32 = convert %14
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %17:i32 = load %16
-        %x_43:f32 = convert %17
-        %19:vec4<f32> = construct %x_41, %x_43, %x_43, %x_41
-        store %x_GLF_color, %19
+        %15:f32 = convert %14
+        %x_41:f32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %18:i32 = load %17
+        %19:f32 = convert %18
+        %x_43:f32 = let %19
+        %21:vec4<f32> = construct %x_41, %x_43, %x_43, %x_41
+        store %x_GLF_color, %21
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.msl
index 44cbd99..84b01c7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instruction-simplify-sqrt/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,48 +20,55 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-    %x_31:f32 = load %5
-    %7:f32 = sqrt %x_31
-    %8:bool = lt %7, -1.0f
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_10:i32 = load %9
-        %x_38:f32 = convert %x_10
-        %12:vec4<f32> = construct %x_38, %x_38, %x_38, %x_38
-        store %x_GLF_color, %12
+    %6:f32 = load %5
+    %x_31:f32 = let %6
+    %8:f32 = sqrt %x_31
+    %9:bool = lt %8, -1.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %10:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %11:i32 = load %10
+        %x_10:i32 = let %11
+        %13:f32 = convert %x_10
+        %x_38:f32 = let %13
+        %15:vec4<f32> = construct %x_38, %x_38, %x_38, %x_38
+        store %x_GLF_color, %15
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %13:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_11:i32 = load %13
-        %x_41:f32 = convert %x_11
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_12:i32 = load %16
-        %x_43:f32 = convert %x_12
-        %19:vec4<f32> = construct %x_41, %x_43, %x_43, %x_41
-        store %x_GLF_color, %19
+      $B4: {  # false
+        %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %17:i32 = load %16
+        %x_11:i32 = let %17
+        %19:f32 = convert %x_11
+        %x_41:f32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %22:i32 = load %21
+        %x_12:i32 = let %22
+        %24:f32 = convert %x_12
+        %x_43:f32 = let %24
+        %26:vec4<f32> = construct %x_41, %x_43, %x_43, %x_41
+        store %x_GLF_color, %26
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.msl
index acb96f7..e983a7e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -20,33 +20,34 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
-    %6:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %7:f32 = load_vector_element %6, 0u
-    %8:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %9:f32 = load_vector_element %8, 1u
-    %10:bool = gt %7, %9
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void {
+  $B2: {
+    %7:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %8:f32 = load_vector_element %7, 0u
+    %9:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %10:f32 = load_vector_element %9, 1u
+    %11:bool = gt %8, %10
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
-    %11:ptr<function, i32, read_write> = access %s, 0u
-    %12:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %13:i32 = load %12
-    store %11, %13
+    %12:ptr<function, i32, read_write> = access %s, 0u
+    %13:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %14:i32 = load %13
+    store %12, %14
     ret
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 3>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -56,211 +57,224 @@
     %x_133:ptr<function, bool, read_write> = var
     %x_142:ptr<function, bool, read_write> = var
     %x_143:ptr<function, bool, read_write> = var
-    %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %25:i32 = load %24
-    store %i, %25
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %26:i32 = load %i
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %28:i32 = load %27
-        %29:bool = lt %26, %28
-        if %29 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    %25:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %26:i32 = load %25
+    store %i, %26
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %27:i32 = load %i
+        %28:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %29:i32 = load %28
+        %30:bool = lt %27, %29
+        if %30 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_56:i32 = load %i
-        %31:ptr<function, i32, read_write> = access %arr, %x_56, 0u
-        %32:i32 = load %i
-        store %31, %32
-        continue %b6
+        %31:i32 = load %i
+        %x_56:i32 = let %31
+        %33:ptr<function, i32, read_write> = access %arr, %x_56, 0u
+        %34:i32 = load %i
+        store %33, %34
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %33:i32 = load %i
-        %34:i32 = add %33, 1i
-        store %i, %34
-        next_iteration %b5
+      $B6: {  # continuing
+        %35:i32 = load %i
+        %36:i32 = add %35, 1i
+        store %i, %36
+        next_iteration  # -> $B5
       }
     }
-    %35:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %36:i32 = load %35
-    store %i_1, %36
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %37:i32 = load %i_1
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %39:i32 = load %38
-        %40:bool = lt %37, %39
-        if %40 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    %37:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %38:i32 = load %37
+    store %i_1, %38
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %39:i32 = load %i_1
+        %40:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %41:i32 = load %40
+        %42:bool = lt %39, %41
+        if %42 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %41:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %42:f32 = load_vector_element %41, 0u
         %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %44:f32 = load_vector_element %43, 1u
-        %45:bool = gt %42, %44
-        if %45 [t: %b13] {  # if_4
-          %b13 = block {  # true
+        %44:f32 = load_vector_element %43, 0u
+        %45:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %46:f32 = load_vector_element %45, 1u
+        %47:bool = gt %44, %46
+        if %47 [t: $B13] {  # if_4
+          $B13: {  # true
             exit_loop  # loop_2
           }
         }
-        %46:i32 = load %i_1
-        %47:ptr<function, i32, read_write> = access %arr, %46, 0u
-        %48:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %48:i32 = load %i_1
+        %49:ptr<function, i32, read_write> = access %arr, %48, 0u
         %50:i32 = load %49
-        %51:bool = eq %48, %50
-        if %51 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
-            %x_88:i32 = load %i_1
-            %53:i32 = load %i_1
-            %54:ptr<function, S, read_write> = access %arr, %53
-            %55:S = load %54
-            store %param, %55
-            %56:void = call %func_struct_S_i11_, %param
-            %57:ptr<function, S, read_write> = access %arr, %x_88
-            %58:S = load %param
-            store %57, %58
+        %51:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %52:i32 = load %51
+        %53:bool = eq %50, %52
+        if %53 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
+            %54:i32 = load %i_1
+            %x_88:i32 = let %54
+            %56:i32 = load %i_1
+            %57:ptr<function, S, read_write> = access %arr, %56
+            %58:S = load %57
+            store %param, %58
+            %59:void = call %func_struct_S_i11_, %param
+            %60:ptr<function, S, read_write> = access %arr, %x_88
+            %61:S = load %param
+            store %60, %61
             exit_if  # if_5
           }
-          %b15 = block {  # false
-            %59:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-            %60:i32 = load %59
-            store %j, %60
-            loop [b: %b16, c: %b17] {  # loop_3
-              %b16 = block {  # body
-                %61:i32 = load %j
-                %62:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                %63:i32 = load %62
-                %64:bool = lt %61, %63
-                if %64 [t: %b18, f: %b19] {  # if_6
-                  %b18 = block {  # true
+          $B15: {  # false
+            %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+            %63:i32 = load %62
+            store %j, %63
+            loop [b: $B16, c: $B17] {  # loop_3
+              $B16: {  # body
+                %64:i32 = load %j
+                %65:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                %66:i32 = load %65
+                %67:bool = lt %64, %66
+                if %67 [t: $B18, f: $B19] {  # if_6
+                  $B18: {  # true
                     exit_if  # if_6
                   }
-                  %b19 = block {  # false
+                  $B19: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %65:i32 = load %j
-                %66:ptr<function, i32, read_write> = access %arr, %65, 0u
-                %67:i32 = load %66
-                %68:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
-                %69:i32 = load %68
-                %70:bool = gt %67, %69
-                if %70 [t: %b20] {  # if_7
-                  %b20 = block {  # true
-                    discard
+                %68:i32 = load %j
+                %69:ptr<function, i32, read_write> = access %arr, %68, 0u
+                %70:i32 = load %69
+                %71:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
+                %72:i32 = load %71
+                %73:bool = gt %70, %72
+                if %73 [t: $B20] {  # if_7
+                  $B20: {  # true
+                    store %continue_execution, false
                     exit_if  # if_7
                   }
                 }
-                continue %b17
+                continue  # -> $B17
               }
-              %b17 = block {  # continuing
-                %71:i32 = load %j
-                %72:i32 = add %71, 1i
-                store %j, %72
-                next_iteration %b16
+              $B17: {  # continuing
+                %74:i32 = load %j
+                %75:i32 = add %74, 1i
+                store %j, %75
+                next_iteration  # -> $B16
               }
             }
             exit_if  # if_5
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %73:i32 = load %i_1
-        %74:i32 = add %73, 1i
-        store %i_1, %74
-        next_iteration %b9
+      $B10: {  # continuing
+        %76:i32 = load %i_1
+        %77:i32 = add %76, 1i
+        store %i_1, %77
+        next_iteration  # -> $B9
       }
     }
-    %75:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %76:i32 = load %75
-    %77:ptr<function, i32, read_write> = access %arr, %76, 0u
-    %78:i32 = load %77
-    %79:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %80:i32 = load %79
-    %x_123:bool = eq %78, %80
+    %78:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %79:i32 = load %78
+    %80:ptr<function, i32, read_write> = access %arr, %79, 0u
+    %81:i32 = load %80
+    %82:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %83:i32 = load %82
+    %84:bool = eq %81, %83
+    %x_123:bool = let %84
     store %x_133, %x_123
-    if %x_123 [t: %b21] {  # if_8
-      %b21 = block {  # true
-        %82:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %83:i32 = load %82
-        %84:ptr<function, i32, read_write> = access %arr, %83, 0u
-        %85:i32 = load %84
-        %86:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    if %x_123 [t: $B21] {  # if_8
+      $B21: {  # true
+        %86:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
         %87:i32 = load %86
-        %88:bool = eq %85, %87
-        store %x_132, %88
-        %89:bool = load %x_132
-        store %x_133, %89
+        %88:ptr<function, i32, read_write> = access %arr, %87, 0u
+        %89:i32 = load %88
+        %90:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %91:i32 = load %90
+        %92:bool = eq %89, %91
+        store %x_132, %92
+        %93:bool = load %x_132
+        store %x_133, %93
         exit_if  # if_8
       }
     }
-    %90:bool = load %x_133
-    store %x_143, %90
-    %91:bool = load %x_133
-    if %91 [t: %b22] {  # if_9
-      %b22 = block {  # true
-        %92:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %93:i32 = load %92
-        %94:ptr<function, i32, read_write> = access %arr, %93, 0u
-        %95:i32 = load %94
+    %94:bool = load %x_133
+    store %x_143, %94
+    %95:bool = load %x_133
+    if %95 [t: $B22] {  # if_9
+      $B22: {  # true
         %96:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %97:i32 = load %96
-        %98:bool = eq %95, %97
-        store %x_142, %98
-        %99:bool = load %x_142
-        store %x_143, %99
+        %98:ptr<function, i32, read_write> = access %arr, %97, 0u
+        %99:i32 = load %98
+        %100:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %101:i32 = load %100
+        %102:bool = eq %99, %101
+        store %x_142, %102
+        %103:bool = load %x_142
+        store %x_143, %103
         exit_if  # if_9
       }
     }
-    %100:bool = load %x_143
-    if %100 [t: %b23, f: %b24] {  # if_10
-      %b23 = block {  # true
-        %101:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %102:i32 = load %101
-        %103:f32 = convert %102
-        %104:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %105:i32 = load %104
-        %106:f32 = convert %105
-        %107:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %108:i32 = load %107
-        %109:f32 = convert %108
-        %110:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %111:i32 = load %110
-        %112:f32 = convert %111
-        %113:vec4<f32> = construct %103, %106, %109, %112
-        store %x_GLF_color, %113
+    %104:bool = load %x_143
+    if %104 [t: $B23, f: $B24] {  # if_10
+      $B23: {  # true
+        %105:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %106:i32 = load %105
+        %107:f32 = convert %106
+        %108:f32 = let %107
+        %109:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %110:i32 = load %109
+        %111:f32 = convert %110
+        %112:f32 = let %111
+        %113:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %114:i32 = load %113
+        %115:f32 = convert %114
+        %116:f32 = let %115
+        %117:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %118:i32 = load %117
+        %119:f32 = convert %118
+        %120:vec4<f32> = construct %108, %112, %116, %119
+        store %x_GLF_color, %120
         exit_if  # if_10
       }
-      %b24 = block {  # false
-        %114:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %115:i32 = load %114
-        %116:f32 = convert %115
-        %117:vec4<f32> = construct %116
-        store %x_GLF_color, %117
+      $B24: {  # false
+        %121:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %122:i32 = load %121
+        %123:f32 = convert %122
+        %124:vec4<f32> = construct %123
+        store %x_GLF_color, %124
         exit_if  # if_10
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b25 {
-  %b25 = block {
-    %119:void = call %main_1
-    %120:vec4<f32> = load %x_GLF_color
-    %121:main_out = construct %120
-    ret %121
+%tint_symbol = @fragment func():main_out {
+  $B25: {
+    %126:void = call %main_1
+    %127:vec4<f32> = load %x_GLF_color
+    %128:main_out = construct %127
+    %129:bool = load %continue_execution
+    %130:bool = eq %129, false
+    if %130 [t: $B26] {  # if_11
+      $B26: {  # true
+        terminate_invocation
+      }
+    }
+    ret %128
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.msl
index 391227a..1fd3847 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-first-value-phi/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -20,33 +20,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
-    %6:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_166:f32 = load_vector_element %6, 0u
-    %8:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_168:f32 = load_vector_element %8, 1u
-    %10:bool = gt %x_166, %x_168
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void {
+  $B2: {
+    %7:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %8:f32 = load_vector_element %7, 0u
+    %x_166:f32 = let %8
+    %10:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %11:f32 = load_vector_element %10, 1u
+    %x_168:f32 = let %11
+    %13:bool = gt %x_166, %x_168
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
-    %11:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_173:i32 = load %11
-    %13:ptr<function, i32, read_write> = access %s, 0u
-    store %13, %x_173
+    %14:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %15:i32 = load %14
+    %x_173:i32 = let %15
+    %17:ptr<function, i32, read_write> = access %s, 0u
+    store %17, %x_173
     ret
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 3>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -56,209 +60,262 @@
     %x_142:ptr<function, bool, read_write> = var
     %x_133_phi:ptr<function, bool, read_write> = var
     %x_143_phi:ptr<function, bool, read_write> = var
-    %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_46:i32 = load %24
+    %28:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %29:i32 = load %28
+    %x_46:i32 = let %29
     store %i, %x_46
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_51:i32 = load %i
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_53:i32 = load %27
-        %29:bool = lt %x_51, %x_53
-        if %29 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %31:i32 = load %i
+        %x_51:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %34:i32 = load %33
+        %x_53:i32 = let %34
+        %36:bool = lt %x_51, %x_53
+        if %36 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_56:i32 = load %i
-        %x_57:i32 = load %i
-        %32:ptr<function, i32, read_write> = access %arr, %x_56, 0u
-        store %32, %x_57
-        continue %b6
+        %37:i32 = load %i
+        %x_56:i32 = let %37
+        %39:i32 = load %i
+        %x_57:i32 = let %39
+        %41:ptr<function, i32, read_write> = access %arr, %x_56, 0u
+        store %41, %x_57
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %x_59:i32 = load %i
-        %34:i32 = add %x_59, 1i
-        store %i, %34
-        next_iteration %b5
+      $B6: {  # continuing
+        %42:i32 = load %i
+        %x_59:i32 = let %42
+        %44:i32 = add %x_59, 1i
+        store %i, %44
+        next_iteration  # -> $B5
       }
     }
-    %35:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_62:i32 = load %35
+    %45:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %46:i32 = load %45
+    %x_62:i32 = let %46
     store %i_1, %x_62
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_67:i32 = load %i_1
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_69:i32 = load %38
-        %40:bool = lt %x_67, %x_69
-        if %40 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %48:i32 = load %i_1
+        %x_67:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %51:i32 = load %50
+        %x_69:i32 = let %51
+        %53:bool = lt %x_67, %x_69
+        if %53 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %41:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_73:f32 = load_vector_element %41, 0u
-        %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_75:f32 = load_vector_element %43, 1u
-        %45:bool = gt %x_73, %x_75
-        if %45 [t: %b13] {  # if_4
-          %b13 = block {  # true
+        %54:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %55:f32 = load_vector_element %54, 0u
+        %x_73:f32 = let %55
+        %57:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %58:f32 = load_vector_element %57, 1u
+        %x_75:f32 = let %58
+        %60:bool = gt %x_73, %x_75
+        if %60 [t: $B13] {  # if_4
+          $B13: {  # true
             exit_loop  # loop_2
           }
         }
-        %x_79:i32 = load %i_1
-        %47:ptr<function, i32, read_write> = access %arr, %x_79, 0u
-        %x_81:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_83:i32 = load %49
-        %51:bool = eq %x_81, %x_83
-        if %51 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
-            %x_88:i32 = load %i_1
-            %53:ptr<function, S, read_write> = access %arr, %x_88
-            %x_90:S = load %53
+        %61:i32 = load %i_1
+        %x_79:i32 = let %61
+        %63:ptr<function, i32, read_write> = access %arr, %x_79, 0u
+        %64:i32 = load %63
+        %x_81:i32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %67:i32 = load %66
+        %x_83:i32 = let %67
+        %69:bool = eq %x_81, %x_83
+        if %69 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
+            %70:i32 = load %i_1
+            %x_88:i32 = let %70
+            %72:ptr<function, S, read_write> = access %arr, %x_88
+            %73:S = load %72
+            %x_90:S = let %73
             store %param, %x_90
-            %55:void = call %func_struct_S_i11_, %param
-            %x_92:S = load %param
-            %57:ptr<function, S, read_write> = access %arr, %x_88
-            store %57, %x_92
+            %75:void = call %func_struct_S_i11_, %param
+            %76:S = load %param
+            %x_92:S = let %76
+            %78:ptr<function, S, read_write> = access %arr, %x_88
+            store %78, %x_92
             exit_if  # if_5
           }
-          %b15 = block {  # false
-            %58:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-            %x_95:i32 = load %58
+          $B15: {  # false
+            %79:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+            %80:i32 = load %79
+            %x_95:i32 = let %80
             store %j, %x_95
-            loop [b: %b16, c: %b17] {  # loop_3
-              %b16 = block {  # body
-                %x_100:i32 = load %j
-                %61:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                %x_102:i32 = load %61
-                %63:bool = lt %x_100, %x_102
-                if %63 [t: %b18, f: %b19] {  # if_6
-                  %b18 = block {  # true
+            loop [b: $B16, c: $B17] {  # loop_3
+              $B16: {  # body
+                %82:i32 = load %j
+                %x_100:i32 = let %82
+                %84:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                %85:i32 = load %84
+                %x_102:i32 = let %85
+                %87:bool = lt %x_100, %x_102
+                if %87 [t: $B18, f: $B19] {  # if_6
+                  $B18: {  # true
                     exit_if  # if_6
                   }
-                  %b19 = block {  # false
+                  $B19: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %x_105:i32 = load %j
-                %65:ptr<function, i32, read_write> = access %arr, %x_105, 0u
-                %x_107:i32 = load %65
-                %67:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
-                %x_109:i32 = load %67
-                %69:bool = gt %x_107, %x_109
-                if %69 [t: %b20] {  # if_7
-                  %b20 = block {  # true
-                    discard
+                %88:i32 = load %j
+                %x_105:i32 = let %88
+                %90:ptr<function, i32, read_write> = access %arr, %x_105, 0u
+                %91:i32 = load %90
+                %x_107:i32 = let %91
+                %93:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
+                %94:i32 = load %93
+                %x_109:i32 = let %94
+                %96:bool = gt %x_107, %x_109
+                if %96 [t: $B20] {  # if_7
+                  $B20: {  # true
+                    store %continue_execution, false
                     exit_if  # if_7
                   }
                 }
-                continue %b17
+                continue  # -> $B17
               }
-              %b17 = block {  # continuing
-                %x_113:i32 = load %j
-                %71:i32 = add %x_113, 1i
-                store %j, %71
-                next_iteration %b16
+              $B17: {  # continuing
+                %97:i32 = load %j
+                %x_113:i32 = let %97
+                %99:i32 = add %x_113, 1i
+                store %j, %99
+                next_iteration  # -> $B16
               }
             }
             exit_if  # if_5
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %x_115:i32 = load %i_1
-        %73:i32 = add %x_115, 1i
-        store %i_1, %73
-        next_iteration %b9
+      $B10: {  # continuing
+        %100:i32 = load %i_1
+        %x_115:i32 = let %100
+        %102:i32 = add %x_115, 1i
+        store %i_1, %102
+        next_iteration  # -> $B9
       }
     }
-    %74:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_118:i32 = load %74
-    %76:ptr<function, i32, read_write> = access %arr, %x_118, 0u
-    %x_120:i32 = load %76
-    %78:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_122:i32 = load %78
-    %x_123:bool = eq %x_120, %x_122
+    %103:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %104:i32 = load %103
+    %x_118:i32 = let %104
+    %106:ptr<function, i32, read_write> = access %arr, %x_118, 0u
+    %107:i32 = load %106
+    %x_120:i32 = let %107
+    %109:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %110:i32 = load %109
+    %x_122:i32 = let %110
+    %112:bool = eq %x_120, %x_122
+    %x_123:bool = let %112
     store %x_133_phi, %x_123
-    if %x_123 [t: %b21] {  # if_8
-      %b21 = block {  # true
-        %81:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_127:i32 = load %81
-        %83:ptr<function, i32, read_write> = access %arr, %x_127, 0u
-        %x_129:i32 = load %83
-        %85:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_131:i32 = load %85
-        %87:bool = eq %x_129, %x_131
-        store %x_132, %87
-        %88:bool = load %x_132
-        store %x_133_phi, %88
+    if %x_123 [t: $B21] {  # if_8
+      $B21: {  # true
+        %114:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %115:i32 = load %114
+        %x_127:i32 = let %115
+        %117:ptr<function, i32, read_write> = access %arr, %x_127, 0u
+        %118:i32 = load %117
+        %x_129:i32 = let %118
+        %120:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %121:i32 = load %120
+        %x_131:i32 = let %121
+        %123:bool = eq %x_129, %x_131
+        store %x_132, %123
+        %124:bool = load %x_132
+        store %x_133_phi, %124
         exit_if  # if_8
       }
     }
-    %x_133:bool = load %x_133_phi
+    %125:bool = load %x_133_phi
+    %x_133:bool = let %125
     store %x_143_phi, %x_133
-    if %x_133 [t: %b22] {  # if_9
-      %b22 = block {  # true
-        %90:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_137:i32 = load %90
-        %92:ptr<function, i32, read_write> = access %arr, %x_137, 0u
-        %x_139:i32 = load %92
-        %94:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_141:i32 = load %94
-        %96:bool = eq %x_139, %x_141
-        store %x_142, %96
-        %97:bool = load %x_142
-        store %x_143_phi, %97
+    if %x_133 [t: $B22] {  # if_9
+      $B22: {  # true
+        %127:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %128:i32 = load %127
+        %x_137:i32 = let %128
+        %130:ptr<function, i32, read_write> = access %arr, %x_137, 0u
+        %131:i32 = load %130
+        %x_139:i32 = let %131
+        %133:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %134:i32 = load %133
+        %x_141:i32 = let %134
+        %136:bool = eq %x_139, %x_141
+        store %x_142, %136
+        %137:bool = load %x_142
+        store %x_143_phi, %137
         exit_if  # if_9
       }
     }
-    %x_143:bool = load %x_143_phi
-    if %x_143 [t: %b23, f: %b24] {  # if_10
-      %b23 = block {  # true
-        %99:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_148:i32 = load %99
-        %101:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_151:i32 = load %101
-        %103:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_154:i32 = load %103
-        %105:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_157:i32 = load %105
-        %107:f32 = convert %x_148
-        %108:f32 = convert %x_151
-        %109:f32 = convert %x_154
-        %110:f32 = convert %x_157
-        %111:vec4<f32> = construct %107, %108, %109, %110
-        store %x_GLF_color, %111
+    %138:bool = load %x_143_phi
+    %x_143:bool = let %138
+    if %x_143 [t: $B23, f: $B24] {  # if_10
+      $B23: {  # true
+        %140:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %141:i32 = load %140
+        %x_148:i32 = let %141
+        %143:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %144:i32 = load %143
+        %x_151:i32 = let %144
+        %146:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %147:i32 = load %146
+        %x_154:i32 = let %147
+        %149:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %150:i32 = load %149
+        %x_157:i32 = let %150
+        %152:f32 = convert %x_148
+        %153:f32 = let %152
+        %154:f32 = convert %x_151
+        %155:f32 = let %154
+        %156:f32 = convert %x_154
+        %157:f32 = let %156
+        %158:f32 = convert %x_157
+        %159:vec4<f32> = construct %153, %155, %157, %158
+        store %x_GLF_color, %159
         exit_if  # if_10
       }
-      %b24 = block {  # false
-        %112:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_161:i32 = load %112
-        %x_162:f32 = convert %x_161
-        %115:vec4<f32> = construct %x_162, %x_162, %x_162, %x_162
-        store %x_GLF_color, %115
+      $B24: {  # false
+        %160:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %161:i32 = load %160
+        %x_161:i32 = let %161
+        %163:f32 = convert %x_161
+        %x_162:f32 = let %163
+        %165:vec4<f32> = construct %x_162, %x_162, %x_162, %x_162
+        store %x_GLF_color, %165
         exit_if  # if_10
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b25 {
-  %b25 = block {
-    %117:void = call %main_1
-    %118:vec4<f32> = load %x_GLF_color
-    %119:main_out = construct %118
-    ret %119
+%tint_symbol = @fragment func():main_out {
+  $B25: {
+    %167:void = call %main_1
+    %168:vec4<f32> = load %x_GLF_color
+    %169:main_out = construct %168
+    %170:bool = load %continue_execution
+    %171:bool = eq %170, false
+    if %171 [t: $B26] {  # if_11
+      $B26: {  # true
+        terminate_invocation
+      }
+    }
+    ret %169
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.msl
index c71eb51..7da3e0b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %7:i32 = load %6
@@ -37,61 +37,65 @@
     %10:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %11:i32 = load %10
     store %i, %11
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %12:i32 = load %i
         %13:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
         %14:i32 = load %13
         %15:bool = lt %12, %14
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %16:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
         %17:f32 = load %16
-        %18:i32 = load %i
-        %19:f32 = convert %18
-        %20:bool = lte %17, %19
-        %21:bool = eq %20, false
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %22:vec4<f32> = load %x_GLF_color
-            %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-            %24:f32 = load %23
-            %25:i32 = load %i
-            %26:f32 = convert %25
-            %27:i32 = load %i
-            %28:f32 = convert %27
-            %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-            %30:f32 = load %29
-            %31:vec4<f32> = construct %24, %26, %28, %30
-            %32:vec4<f32> = add %22, %31
-            store %x_GLF_color, %32
+        %18:f32 = let %17
+        %19:i32 = load %i
+        %20:f32 = convert %19
+        %21:bool = lte %18, %20
+        %22:bool = eq %21, false
+        if %22 [t: $B7] {  # if_2
+          $B7: {  # true
+            %23:vec4<f32> = load %x_GLF_color
+            %24:vec4<f32> = let %23
+            %25:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+            %26:f32 = load %25
+            %27:f32 = let %26
+            %28:i32 = load %i
+            %29:f32 = convert %28
+            %30:f32 = let %29
+            %31:i32 = load %i
+            %32:f32 = convert %31
+            %33:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+            %34:f32 = load %33
+            %35:vec4<f32> = construct %27, %30, %32, %34
+            %36:vec4<f32> = add %24, %35
+            store %x_GLF_color, %36
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %33:i32 = load %i
-        %34:i32 = add %33, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %37:i32 = load %i
+        %38:i32 = add %37, 1i
+        store %i, %38
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.msl
index 0f675b1..33ab63f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-instructions-for-if-less-than-equal/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,78 +20,92 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_29:i32 = load %6
-    %x_30:f32 = convert %x_29
-    %9:vec4<f32> = construct %x_30, %x_30, %x_30, %x_30
-    store %x_GLF_color, %9
-    %10:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_33:i32 = load %10
+    %7:i32 = load %6
+    %x_29:i32 = let %7
+    %9:f32 = convert %x_29
+    %x_30:f32 = let %9
+    %11:vec4<f32> = construct %x_30, %x_30, %x_30, %x_30
+    store %x_GLF_color, %11
+    %12:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %13:i32 = load %12
+    %x_33:i32 = let %13
     store %i, %x_33
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_38:i32 = load %i
-        %13:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_40:i32 = load %13
-        %15:bool = lt %x_38, %x_40
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %15:i32 = load %i
+        %x_38:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %18:i32 = load %17
+        %x_40:i32 = let %18
+        %20:bool = lt %x_38, %x_40
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %16:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_44:f32 = load %16
-        %x_45:i32 = load %i
-        %19:f32 = convert %x_45
-        %20:bool = lte %x_44, %19
-        %21:bool = eq %20, false
-        if %21 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %22:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-            %x_52:f32 = load %22
-            %x_53:i32 = load %i
-            %x_55:i32 = load %i
-            %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-            %x_58:f32 = load %26
-            %x_60:vec4<f32> = load %x_GLF_color
-            %29:f32 = convert %x_53
-            %30:f32 = convert %x_55
-            %31:vec4<f32> = construct %x_52, %29, %30, %x_58
-            %32:vec4<f32> = add %x_60, %31
-            store %x_GLF_color, %32
+        %21:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %22:f32 = load %21
+        %x_44:f32 = let %22
+        %24:i32 = load %i
+        %x_45:i32 = let %24
+        %26:f32 = convert %x_45
+        %27:bool = lte %x_44, %26
+        %28:bool = eq %27, false
+        if %28 [t: $B7] {  # if_2
+          $B7: {  # true
+            %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+            %30:f32 = load %29
+            %x_52:f32 = let %30
+            %32:i32 = load %i
+            %x_53:i32 = let %32
+            %34:i32 = load %i
+            %x_55:i32 = let %34
+            %36:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+            %37:f32 = load %36
+            %x_58:f32 = let %37
+            %39:vec4<f32> = load %x_GLF_color
+            %x_60:vec4<f32> = let %39
+            %41:f32 = convert %x_53
+            %42:f32 = let %41
+            %43:f32 = convert %x_55
+            %44:vec4<f32> = construct %x_52, %42, %43, %x_58
+            %45:vec4<f32> = add %x_60, %44
+            store %x_GLF_color, %45
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_62:i32 = load %i
-        %34:i32 = add %x_62, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %46:i32 = load %i
+        %x_62:i32 = let %46
+        %48:i32 = add %x_62, 1i
+        store %i, %48
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %36:void = call %main_1
-    %37:vec4<f32> = load %x_GLF_color
-    %38:main_out = construct %37
-    ret %38
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.msl
index 0f063ac..e3e74ae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,63 +12,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %6:i32 = load %5
     store %a, %6
     %7:i32 = load %a
     %8:vec2<i32> = construct %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %10:i32 = load %9
-    %11:vec2<i32> = construct %10, 63677i
-    %12:vec2<i32> = div %8, %11
-    %13:i32 = access %12, 1u
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %15:i32 = load %14
-    %16:bool = eq %13, %15
-    if %16 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
+    %9:vec2<i32> = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %11:i32 = load %10
+    %12:vec2<i32> = construct %11, 63677i
+    %13:vec2<i32> = call %tint_div_v2i32, %9, %12
+    %15:i32 = access %13, 1u
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %17:i32 = load %16
+    %18:bool = eq %15, %17
+    if %18 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
         %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %24:i32 = load %23
         %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:vec4<f32> = construct %19, %22, %25, %28
-        store %x_GLF_color, %29
+        %26:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %28:i32 = load %27
+        %29:f32 = convert %28
+        %30:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:vec4<f32> = construct %22, %26, %30, %33
+        store %x_GLF_color, %34
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:vec4<f32> = construct %32
-        store %x_GLF_color, %33
+      $B4: {  # false
+        %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:vec4<f32> = construct %37
+        store %x_GLF_color, %38
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
+  }
+}
+%tint_div_v2i32 = func(%lhs:vec2<i32>, %rhs:vec2<i32>):vec2<i32> {
+  $B6: {
+    %45:vec2<bool> = eq %rhs, vec2<i32>(0i)
+    %46:vec2<bool> = eq %lhs, vec2<i32>(-2147483648i)
+    %47:vec2<bool> = eq %rhs, vec2<i32>(-1i)
+    %48:vec2<bool> = and %46, %47
+    %49:vec2<bool> = or %45, %48
+    %50:vec2<i32> = select %rhs, vec2<i32>(1i), %49
+    %51:vec2<i32> = div %lhs, %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.msl
index 85af080..68ff84a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-div-round-to-zero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,63 +12,89 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_28:i32 = load %5
+    %6:i32 = load %5
+    %x_28:i32 = let %6
     store %a, %x_28
-    %x_29:i32 = load %a
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_31:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_37:i32 = load %10
-    %12:vec2<i32> = construct %x_29, %x_29
-    %13:vec2<i32> = construct %x_31, 63677i
-    %14:vec2<i32> = div %12, %13
-    %15:i32 = access %14, 1u
-    %16:bool = eq %15, %x_37
-    if %16 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_43:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_46:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_49:i32 = load %21
+    %8:i32 = load %a
+    %x_29:i32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %11:i32 = load %10
+    %x_31:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %14:i32 = load %13
+    %x_37:i32 = let %14
+    %16:vec2<i32> = construct %x_29, %x_29
+    %17:vec2<i32> = let %16
+    %18:vec2<i32> = construct %x_31, 63677i
+    %19:vec2<i32> = call %tint_div_v2i32, %17, %18
+    %21:i32 = access %19, 1u
+    %22:bool = eq %21, %x_37
+    if %22 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_52:i32 = load %23
-        %25:f32 = convert %x_43
-        %26:f32 = convert %x_46
-        %27:f32 = convert %x_49
-        %28:f32 = convert %x_52
-        %29:vec4<f32> = construct %25, %26, %27, %28
-        store %x_GLF_color, %29
+        %24:i32 = load %23
+        %x_43:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %27:i32 = load %26
+        %x_46:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_49:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %33:i32 = load %32
+        %x_52:i32 = let %33
+        %35:f32 = convert %x_43
+        %36:f32 = let %35
+        %37:f32 = convert %x_46
+        %38:f32 = let %37
+        %39:f32 = convert %x_49
+        %40:f32 = let %39
+        %41:f32 = convert %x_52
+        %42:vec4<f32> = construct %36, %38, %40, %41
+        store %x_GLF_color, %42
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_56:i32 = load %30
-        %x_57:f32 = convert %x_56
-        %33:vec4<f32> = construct %x_57, %x_57, %x_57, %x_57
-        store %x_GLF_color, %33
+      $B4: {  # false
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_56:i32 = let %44
+        %46:f32 = convert %x_56
+        %x_57:f32 = let %46
+        %48:vec4<f32> = construct %x_57, %x_57, %x_57, %x_57
+        store %x_GLF_color, %48
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
+  }
+}
+%tint_div_v2i32 = func(%lhs:vec2<i32>, %rhs:vec2<i32>):vec2<i32> {
+  $B6: {
+    %55:vec2<bool> = eq %rhs, vec2<i32>(0i)
+    %56:vec2<bool> = eq %lhs, vec2<i32>(-2147483648i)
+    %57:vec2<bool> = eq %rhs, vec2<i32>(-1i)
+    %58:vec2<bool> = and %56, %57
+    %59:vec2<bool> = or %55, %58
+    %60:vec2<i32> = select %rhs, vec2<i32>(1i), %59
+    %61:vec2<i32> = div %lhs, %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.msl
index f4e5f49..2bea3e6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,87 +12,112 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %7:f32 = load_vector_element %gl_FragCoord, 0u
-    %8:i32 = convert %7
-    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %10:i32 = load %9
-    %11:bool = lt %8, %10
-    %12:i32 = select -1i, 0i, %11
-    store %a, %12
+    %8:i32 = call %tint_f32_to_i32, %7
+    %10:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:bool = lt %8, %11
+    %13:i32 = select -1i, 0i, %12
+    store %a, %13
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %13:i32 = load %i
-        %14:bool = lt %13, 5i
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %14:i32 = load %i
+        %15:bool = lt %14, 5i
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %15:i32 = load %a
-        %16:i32 = div %15, 2i
-        store %a, %16
-        continue %b4
+        %16:i32 = load %a
+        %17:i32 = call %tint_div_i32, %16, 2i
+        store %a, %17
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %17:i32 = load %i
-        %18:i32 = add %17, 1i
-        store %i, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %19:i32 = load %i
+        %20:i32 = add %19, 1i
+        store %i, %20
+        next_iteration  # -> $B3
       }
     }
-    %19:i32 = load %a
-    %20:bool = eq %19, 0i
-    if %20 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
+    %21:i32 = load %a
+    %22:bool = eq %21, 0i
+    if %22 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %23:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:f32 = let %25
         %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %28:i32 = load %27
         %29:f32 = convert %28
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:vec4<f32> = construct %23, %26, %29, %32
-        store %x_GLF_color, %33
+        %30:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:vec4<f32> = construct %26, %30, %34, %37
+        store %x_GLF_color, %38
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:vec4<f32> = construct %36
-        store %x_GLF_color, %37
+      $B8: {  # false
+        %39:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:vec4<f32> = construct %41
+        store %x_GLF_color, %42
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %40:void = call %main_1
-    %41:vec4<f32> = load %x_GLF_color
-    %42:main_out = construct %41
-    ret %42
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %50:bool = eq %rhs, 0i
+    %51:bool = eq %lhs, -2147483648i
+    %52:bool = eq %rhs, -1i
+    %53:bool = and %51, %52
+    %54:bool = or %50, %53
+    %55:i32 = select %rhs, 1i, %54
+    %56:i32 = div %lhs, %55
+    ret %56
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %58:i32 = convert %value
+    %59:bool = gte %value, -2147483648.0f
+    %60:i32 = select -2147483648i, %58, %59
+    %61:bool = lte %value, 2147483520.0f
+    %62:i32 = select 2147483647i, %60, %61
+    ret %62
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.msl
index 9ddaa60..0b1b868 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-int-full-bits-divide-by-two-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,87 +12,124 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
-    %x_32:f32 = load_vector_element %gl_FragCoord, 0u
-    %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_35:i32 = load %8
-    %10:i32 = convert %x_32
-    %11:bool = lt %10, %x_35
-    %12:i32 = select -1i, 0i, %11
-    store %a, %12
+    %7:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_32:f32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_35:i32 = let %10
+    %12:i32 = call %tint_f32_to_i32, %x_32
+    %14:bool = lt %12, %x_35
+    %15:i32 = select -1i, 0i, %14
+    store %a, %15
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_42:i32 = load %i
-        %14:bool = lt %x_42, 5i
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %16:i32 = load %i
+        %x_42:i32 = let %16
+        %18:bool = lt %x_42, 5i
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_45:i32 = load %a
-        %16:i32 = div %x_45, 2i
-        store %a, %16
-        continue %b4
+        %19:i32 = load %a
+        %x_45:i32 = let %19
+        %21:i32 = call %tint_div_i32, %x_45, 2i
+        store %a, %21
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_47:i32 = load %i
-        %18:i32 = add %x_47, 1i
-        store %i, %18
-        next_iteration %b3
+      $B4: {  # continuing
+        %23:i32 = load %i
+        %x_47:i32 = let %23
+        %25:i32 = add %x_47, 1i
+        store %i, %25
+        next_iteration  # -> $B3
       }
     }
-    %x_49:i32 = load %a
-    %20:bool = eq %x_49, 0i
-    if %20 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_55:i32 = load %21
-        %23:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_58:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_61:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_64:i32 = load %27
-        %29:f32 = convert %x_55
-        %30:f32 = convert %x_58
-        %31:f32 = convert %x_61
-        %32:f32 = convert %x_64
-        %33:vec4<f32> = construct %29, %30, %31, %32
-        store %x_GLF_color, %33
+    %26:i32 = load %a
+    %x_49:i32 = let %26
+    %28:bool = eq %x_49, 0i
+    if %28 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %29:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_55:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_58:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %36:i32 = load %35
+        %x_61:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %39:i32 = load %38
+        %x_64:i32 = let %39
+        %41:f32 = convert %x_55
+        %42:f32 = let %41
+        %43:f32 = convert %x_58
+        %44:f32 = let %43
+        %45:f32 = convert %x_61
+        %46:f32 = let %45
+        %47:f32 = convert %x_64
+        %48:vec4<f32> = construct %42, %44, %46, %47
+        store %x_GLF_color, %48
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_68:i32 = load %34
-        %x_69:f32 = convert %x_68
-        %37:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
-        store %x_GLF_color, %37
+      $B8: {  # false
+        %49:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %50:i32 = load %49
+        %x_68:i32 = let %50
+        %52:f32 = convert %x_68
+        %x_69:f32 = let %52
+        %54:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
+        store %x_GLF_color, %54
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %40:void = call %main_1
-    %41:vec4<f32> = load %x_GLF_color
-    %42:main_out = construct %41
-    ret %42
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %62:bool = eq %rhs, 0i
+    %63:bool = eq %lhs, -2147483648i
+    %64:bool = eq %rhs, -1i
+    %65:bool = and %63, %64
+    %66:bool = or %62, %65
+    %67:i32 = select %rhs, 1i, %66
+    %68:i32 = div %lhs, %67
+    ret %68
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %70:i32 = convert %value
+    %71:bool = gte %value, -2147483648.0f
+    %72:i32 = select -2147483648i, %70, %71
+    %73:bool = lte %value, 2147483520.0f
+    %74:i32 = select 2147483647i, %72, %73
+    ret %74
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.msl
index b732c39..cf8e290 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %count:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
@@ -27,82 +27,100 @@
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %9:i32 = load %8
     store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %12:i32 = load %11
         %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %14:i32 = load %count
-        %15:i32 = mod %14, -93448i
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %17:i32 = load %16
-        %18:bool = gt %15, %17
-        if %18 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %19:i32 = load %count
-            %20:i32 = add %19, 1i
-            store %count, %20
+        %15:i32 = call %tint_mod_i32, %14, -93448i
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %18:i32 = load %17
+        %19:bool = gt %15, %18
+        if %19 [t: $B7] {  # if_2
+          $B7: {  # true
+            %20:i32 = load %count
+            %21:i32 = add %20, 1i
+            store %count, %21
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %21:i32 = load %i
-        %22:i32 = add %21, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %22:i32 = load %i
+        %23:i32 = add %22, 1i
+        store %i, %23
+        next_iteration  # -> $B3
       }
     }
-    %23:i32 = load %count
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %25:i32 = load %24
-    %26:bool = eq %23, %25
-    if %26 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %28:i32 = load %27
-        %29:f32 = convert %28
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %24:i32 = load %count
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %26:i32 = load %25
+    %27:bool = eq %24, %26
+    if %27 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %33:i32 = load %32
+        %34:f32 = convert %33
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %29, %32, %35, %38
-        store %x_GLF_color, %39
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %41:i32 = load %40
         %42:f32 = convert %41
-        %43:vec4<f32> = construct %42
+        %43:vec4<f32> = construct %31, %35, %39, %42
         store %x_GLF_color, %43
         exit_if  # if_3
       }
+      $B9: {  # false
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %54:bool = eq %rhs, 0i
+    %55:bool = eq %lhs, -2147483648i
+    %56:bool = eq %rhs, -1i
+    %57:bool = and %55, %56
+    %58:bool = or %54, %57
+    %59:i32 = select %rhs, 1i, %58
+    %60:i32 = let %59
+    %61:i32 = div %lhs, %60
+    %62:i32 = mul %61, %60
+    %63:i32 = sub %lhs, %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.msl
index a2e1a65..352326c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-integer-modulo-negative/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,97 +12,131 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %count:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_27:i32 = load %6
+    %7:i32 = load %6
+    %x_27:i32 = let %7
     store %count, %x_27
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_29:i32 = load %8
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_29:i32 = let %10
     store %i, %x_29
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_34:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_36:i32 = load %11
-        %13:bool = lt %x_34, %x_36
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_34:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_36:i32 = let %15
+        %17:bool = lt %x_34, %x_36
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_39:i32 = load %count
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_42:i32 = load %15
-        %17:i32 = mod %x_39, -93448i
-        %18:bool = gt %17, %x_42
-        if %18 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_46:i32 = load %count
-            %20:i32 = add %x_46, 1i
-            store %count, %20
+        %18:i32 = load %count
+        %x_39:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %21:i32 = load %20
+        %x_42:i32 = let %21
+        %23:i32 = call %tint_mod_i32, %x_39, -93448i
+        %25:bool = gt %23, %x_42
+        if %25 [t: $B7] {  # if_2
+          $B7: {  # true
+            %26:i32 = load %count
+            %x_46:i32 = let %26
+            %28:i32 = add %x_46, 1i
+            store %count, %28
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_48:i32 = load %i
-        %22:i32 = add %x_48, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %i
+        %x_48:i32 = let %29
+        %31:i32 = add %x_48, 1i
+        store %i, %31
+        next_iteration  # -> $B3
       }
     }
-    %x_50:i32 = load %count
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_52:i32 = load %24
-    %26:bool = eq %x_50, %x_52
-    if %26 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_58:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_61:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_64:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_67:i32 = load %33
-        %35:f32 = convert %x_58
-        %36:f32 = convert %x_61
-        %37:f32 = convert %x_64
-        %38:f32 = convert %x_67
-        %39:vec4<f32> = construct %35, %36, %37, %38
-        store %x_GLF_color, %39
+    %32:i32 = load %count
+    %x_50:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %35:i32 = load %34
+    %x_52:i32 = let %35
+    %37:bool = eq %x_50, %x_52
+    if %37 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %39:i32 = load %38
+        %x_58:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_61:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %45:i32 = load %44
+        %x_64:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %48:i32 = load %47
+        %x_67:i32 = let %48
+        %50:f32 = convert %x_58
+        %51:f32 = let %50
+        %52:f32 = convert %x_61
+        %53:f32 = let %52
+        %54:f32 = convert %x_64
+        %55:f32 = let %54
+        %56:f32 = convert %x_67
+        %57:vec4<f32> = construct %51, %53, %55, %56
+        store %x_GLF_color, %57
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_71:i32 = load %40
-        %x_72:f32 = convert %x_71
-        %43:vec4<f32> = construct %x_72, %x_72, %x_72, %x_72
-        store %x_GLF_color, %43
+      $B9: {  # false
+        %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %59:i32 = load %58
+        %x_71:i32 = let %59
+        %61:f32 = convert %x_71
+        %x_72:f32 = let %61
+        %63:vec4<f32> = construct %x_72, %x_72, %x_72, %x_72
+        store %x_GLF_color, %63
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %70:bool = eq %rhs, 0i
+    %71:bool = eq %lhs, -2147483648i
+    %72:bool = eq %rhs, -1i
+    %73:bool = and %71, %72
+    %74:bool = or %70, %73
+    %75:i32 = select %rhs, 1i, %74
+    %76:i32 = let %75
+    %77:i32 = div %lhs, %76
+    %78:i32 = mul %77, %76
+    %79:i32 = sub %lhs, %78
+    ret %79
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.msl
index efdd3b1..fa21f75 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,174 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():vec3<f32> {
+  $B2: {
+    %v:ptr<function, vec2<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %k:ptr<function, i32, read_write> = var
+    store %v, vec2<f32>(1.0f)
+    store %i, 0i
+    store %k, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %k
+        %7:bool = lt %6, 2i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:f32 = load_vector_element %v, 1u
+        %9:f32 = add %8, 1.0f
+        %10:bool = gt %9, 4.0f
+        if %10 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store_vector_element %v, 1u, 1.0f
+        %11:i32 = load %i
+        %12:i32 = add %11, 1i
+        store %i, %12
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %13:i32 = load %k
+        %14:i32 = add %13, 1i
+        store %k, %14
+        next_iteration  # -> $B3
+      }
+    }
+    %15:i32 = load %i
+    %16:bool = lt %15, 10i
+    if %16 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        ret vec3<f32>(1.0f, 0.0f, 0.0f)
+      }
+      $B9: {  # false
+        ret vec3<f32>(0.0f, 0.0f, 1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B10: {
+    %j:ptr<function, i32, read_write> = var
+    %data:ptr<function, array<vec3<f32>, 2>, read_write> = var
+    %j_1:ptr<function, i32, read_write> = var
+    %x_80:ptr<function, bool, read_write> = var
+    %x_81:ptr<function, bool, read_write> = var
+    store %j, 0i
+    loop [b: $B11, c: $B12] {  # loop_2
+      $B11: {  # body
+        %23:i32 = load %j
+        %24:bool = lt %23, 1i
+        if %24 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
+            exit_if  # if_4
+          }
+          $B14: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %25:i32 = load %j
+        %x_52:i32 = let %25
+        %27:vec3<f32> = call %func_
+        %x_53:vec3<f32> = let %27
+        %29:ptr<function, vec3<f32>, read_write> = access %data, %x_52
+        store %29, %x_53
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %30:i32 = load %j
+        %31:i32 = add %30, 1i
+        store %j, %31
+        next_iteration  # -> $B11
+      }
+    }
+    store %j_1, 0i
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %32:i32 = load %j_1
+        %33:bool = lt %32, 1i
+        if %33 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %34:i32 = load %j_1
+        %x_64:i32 = let %34
+        %36:vec3<f32> = call %func_
+        %x_67:vec3<f32> = let %36
+        %38:i32 = mul 4i, %x_64
+        %39:i32 = add %38, 1i
+        %40:ptr<function, vec3<f32>, read_write> = access %data, %39
+        store %40, %x_67
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        %41:i32 = load %j_1
+        %42:i32 = add %41, 1i
+        store %j_1, %42
+        next_iteration  # -> $B15
+      }
+    }
+    %43:ptr<function, vec3<f32>, read_write> = access %data, 0i
+    %44:vec3<f32> = load %43
+    %45:vec3<bool> = eq %44, vec3<f32>(1.0f, 0.0f, 0.0f)
+    %46:bool = all %45
+    %x_74:bool = let %46
+    store %x_81, %x_74
+    if %x_74 [t: $B19] {  # if_6
+      $B19: {  # true
+        %48:ptr<function, vec3<f32>, read_write> = access %data, 1i
+        %49:vec3<f32> = load %48
+        %50:vec3<bool> = eq %49, vec3<f32>(1.0f, 0.0f, 0.0f)
+        %51:bool = all %50
+        store %x_80, %51
+        %52:bool = load %x_80
+        store %x_81, %52
+        exit_if  # if_6
+      }
+    }
+    %53:bool = load %x_81
+    if %53 [t: $B20, f: $B21] {  # if_7
+      $B20: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_7
+      }
+      $B21: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_7
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B22: {
+    %55:void = call %main_1
+    %56:vec4<f32> = load %x_GLF_color
+    %57:main_out = construct %56
+    ret %57
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.msl
index efdd3b1..570c4cf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-intervalmap-set-stop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,186 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():vec3<f32> {
+  $B2: {
+    %v:ptr<function, vec2<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %k:ptr<function, i32, read_write> = var
+    store %v, vec2<f32>(1.0f)
+    store %i, 0i
+    store %k, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %k
+        %x_90:i32 = let %6
+        %8:bool = lt %x_90, 2i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %9:f32 = load_vector_element %v, 1u
+        %x_94:f32 = let %9
+        %11:f32 = add %x_94, 1.0f
+        %12:bool = gt %11, 4.0f
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store_vector_element %v, 1u, 1.0f
+        %13:i32 = load %i
+        %x_100:i32 = let %13
+        %15:i32 = add %x_100, 1i
+        store %i, %15
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %16:i32 = load %k
+        %x_102:i32 = let %16
+        %18:i32 = add %x_102, 1i
+        store %k, %18
+        next_iteration  # -> $B3
+      }
+    }
+    %19:i32 = load %i
+    %x_104:i32 = let %19
+    %21:bool = lt %x_104, 10i
+    if %21 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        ret vec3<f32>(1.0f, 0.0f, 0.0f)
+      }
+      $B9: {  # false
+        ret vec3<f32>(0.0f, 0.0f, 1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B10: {
+    %j:ptr<function, i32, read_write> = var
+    %data:ptr<function, array<vec3<f32>, 2>, read_write> = var
+    %j_1:ptr<function, i32, read_write> = var
+    %x_80:ptr<function, bool, read_write> = var
+    %x_81_phi:ptr<function, bool, read_write> = var
+    store %j, 0i
+    loop [b: $B11, c: $B12] {  # loop_2
+      $B11: {  # body
+        %28:i32 = load %j
+        %x_49:i32 = let %28
+        %30:bool = lt %x_49, 1i
+        if %30 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
+            exit_if  # if_4
+          }
+          $B14: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %31:i32 = load %j
+        %x_52:i32 = let %31
+        %33:vec3<f32> = call %func_
+        %x_53:vec3<f32> = let %33
+        %35:ptr<function, vec3<f32>, read_write> = access %data, %x_52
+        store %35, %x_53
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %36:i32 = load %j
+        %x_55:i32 = let %36
+        %38:i32 = add %x_55, 1i
+        store %j, %38
+        next_iteration  # -> $B11
+      }
+    }
+    store %j_1, 0i
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %39:i32 = load %j_1
+        %x_61:i32 = let %39
+        %41:bool = lt %x_61, 1i
+        if %41 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %42:i32 = load %j_1
+        %x_64:i32 = let %42
+        %44:vec3<f32> = call %func_
+        %x_67:vec3<f32> = let %44
+        %46:i32 = mul 4i, %x_64
+        %47:i32 = add %46, 1i
+        %48:ptr<function, vec3<f32>, read_write> = access %data, %47
+        store %48, %x_67
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        %49:i32 = load %j_1
+        %x_69:i32 = let %49
+        %51:i32 = add %x_69, 1i
+        store %j_1, %51
+        next_iteration  # -> $B15
+      }
+    }
+    %52:ptr<function, vec3<f32>, read_write> = access %data, 0i
+    %53:vec3<f32> = load %52
+    %x_72:vec3<f32> = let %53
+    %55:vec3<bool> = eq %x_72, vec3<f32>(1.0f, 0.0f, 0.0f)
+    %56:bool = all %55
+    %x_74:bool = let %56
+    store %x_81_phi, %x_74
+    if %x_74 [t: $B19] {  # if_6
+      $B19: {  # true
+        %58:ptr<function, vec3<f32>, read_write> = access %data, 1i
+        %59:vec3<f32> = load %58
+        %x_78:vec3<f32> = let %59
+        %61:vec3<bool> = eq %x_78, vec3<f32>(1.0f, 0.0f, 0.0f)
+        %62:bool = all %61
+        store %x_80, %62
+        %63:bool = load %x_80
+        store %x_81_phi, %63
+        exit_if  # if_6
+      }
+    }
+    %64:bool = load %x_81_phi
+    %x_81:bool = let %64
+    if %x_81 [t: $B20, f: $B21] {  # if_7
+      $B20: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_7
+      }
+      $B21: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_7
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B22: {
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.msl
index 5a833cb..28dc537 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,59 +20,65 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:f32 = load %6
-    %8:vec2<f32> = construct %x_35
-    store %v1, %8
-    %9:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_38:i32 = load %9
-    %11:f32 = load_vector_element %v1, 1u
-    %12:f32 = ldexp %11, -256i
-    store_vector_element %v1, %x_38, %12
-    %13:vec2<f32> = load %v1
-    %14:vec2<f32> = construct %x_35, 0.0f
-    %15:vec2<f32> = construct 0.0f, %x_35
-    %16:mat2x2<f32> = construct %14, %15
-    %17:vec2<f32> = mul %13, %16
-    %18:f32 = access %17, 0u
-    %19:bool = eq %18, %x_35
-    if %19 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_53:f32 = convert %x_38
-        %21:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %22:i32 = load %21
-        %x_56:f32 = convert %22
-        %24:vec4<f32> = construct %x_53, %x_56, %x_56, %x_53
-        store %x_GLF_color, %24
+    %7:f32 = load %6
+    %x_35:f32 = let %7
+    %9:vec2<f32> = construct %x_35
+    store %v1, %9
+    %10:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %11:i32 = load %10
+    %x_38:i32 = let %11
+    %13:f32 = load_vector_element %v1, 1u
+    %14:f32 = ldexp %13, -256i
+    store_vector_element %v1, %x_38, %14
+    %15:vec2<f32> = load %v1
+    %16:vec2<f32> = let %15
+    %17:vec2<f32> = construct %x_35, 0.0f
+    %18:vec2<f32> = let %17
+    %19:vec2<f32> = construct 0.0f, %x_35
+    %20:mat2x2<f32> = construct %18, %19
+    %21:vec2<f32> = mul %16, %20
+    %22:f32 = access %21, 0u
+    %23:bool = eq %22, %x_35
+    if %23 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %24:f32 = convert %x_38
+        %x_53:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %x_56:f32 = let %28
+        %30:vec4<f32> = construct %x_53, %x_56, %x_56, %x_53
+        store %x_GLF_color, %30
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %25:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:vec4<f32> = construct %27
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %31:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:vec4<f32> = construct %33
+        store %x_GLF_color, %34
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.msl
index b9af984..c164305 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-ldexp-undefined-mat-vec-multiply/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,59 +20,69 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:f32 = load %6
-    %8:vec2<f32> = construct %x_35, %x_35
-    store %v1, %8
-    %9:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_38:i32 = load %9
-    %x_40:f32 = load_vector_element %v1, 1u
-    %12:f32 = ldexp %x_40, -256i
-    store_vector_element %v1, %x_38, %12
-    %x_43:vec2<f32> = load %v1
-    %14:vec2<f32> = construct %x_35, 0.0f
-    %15:vec2<f32> = construct 0.0f, %x_35
-    %16:mat2x2<f32> = construct %14, %15
-    %17:vec2<f32> = mul %x_43, %16
-    %18:f32 = access %17, 0u
-    %19:bool = eq %18, %x_35
-    if %19 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_53:f32 = convert %x_38
-        %21:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_55:i32 = load %21
-        %x_56:f32 = convert %x_55
-        %24:vec4<f32> = construct %x_53, %x_56, %x_56, %x_53
-        store %x_GLF_color, %24
+    %7:f32 = load %6
+    %x_35:f32 = let %7
+    %9:vec2<f32> = construct %x_35, %x_35
+    store %v1, %9
+    %10:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %11:i32 = load %10
+    %x_38:i32 = let %11
+    %13:f32 = load_vector_element %v1, 1u
+    %x_40:f32 = let %13
+    %15:f32 = ldexp %x_40, -256i
+    store_vector_element %v1, %x_38, %15
+    %16:vec2<f32> = load %v1
+    %x_43:vec2<f32> = let %16
+    %18:vec2<f32> = construct %x_35, 0.0f
+    %19:vec2<f32> = let %18
+    %20:vec2<f32> = construct 0.0f, %x_35
+    %21:mat2x2<f32> = construct %19, %20
+    %22:vec2<f32> = mul %x_43, %21
+    %23:f32 = access %22, 0u
+    %24:bool = eq %23, %x_35
+    if %24 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %25:f32 = convert %x_38
+        %x_53:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %28:i32 = load %27
+        %x_55:i32 = let %28
+        %30:f32 = convert %x_55
+        %x_56:f32 = let %30
+        %32:vec4<f32> = construct %x_53, %x_56, %x_56, %x_53
+        store %x_GLF_color, %32
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %25:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_59:i32 = load %25
-        %x_60:f32 = convert %x_59
-        %28:vec4<f32> = construct %x_60, %x_60, %x_60, %x_60
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %33:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_59:i32 = let %34
+        %36:f32 = convert %x_59
+        %x_60:f32 = let %36
+        %38:vec4<f32> = construct %x_60, %x_60, %x_60, %x_60
+        store %x_GLF_color, %38
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.msl
index 8e600eb..93a4b08 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,73 +12,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %idx:ptr<function, i32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<strided_arr, 2>, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %8:i32 = load %7
     %9:u32 = bitcast %8
-    %10:i32 = shiftl 1i, %9
-    store %idx, %10
-    %x_34:i32 = load %idx
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %13:i32 = load %12
-    %14:strided_arr = construct %13
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %16:i32 = load %15
-    %17:strided_arr = construct %16
-    %18:array<strided_arr, 2> = construct %14, %17
-    store %indexable, %18
-    %19:ptr<function, i32, read_write> = access %indexable, %x_34, 0u
-    %20:i32 = load %19
-    store %a, %20
-    %21:i32 = load %a
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %10:u32 = and %9, 31u
+    %11:i32 = shl 1i, %10
+    store %idx, %11
+    %12:i32 = load %idx
+    %x_34:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %16:strided_arr = construct %15
+    %17:strided_arr = let %16
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %19:i32 = load %18
+    %20:strided_arr = construct %19
+    %21:array<strided_arr, 2> = construct %17, %20
+    store %indexable, %21
+    %22:ptr<function, i32, read_write> = access %indexable, %x_34, 0u
     %23:i32 = load %22
-    %24:bool = eq %21, %23
-    if %24 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    store %a, %23
+    %24:i32 = load %a
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %26:i32 = load %25
+    %27:bool = eq %24, %26
+    if %27 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %29:i32 = load %28
         %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:vec4<f32> = construct %27, %30, %33, %36
-        store %x_GLF_color, %37
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %33:i32 = load %32
+        %34:f32 = convert %33
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %37:i32 = load %36
+        %38:f32 = convert %37
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %31, %35, %39, %42
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %40
-        store %x_GLF_color, %41
+      $B4: {  # false
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.msl
index 1aa0f3f..2146d61 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-array-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,73 +12,91 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %idx:ptr<function, i32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<strided_arr, 2>, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_27:i32 = load %7
-    %9:u32 = bitcast %x_27
-    %10:i32 = shiftl 1i, %9
-    store %idx, %10
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_30:i32 = load %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_32:i32 = load %13
-    %x_34:i32 = load %idx
-    %16:strided_arr = construct %x_30
-    %17:strided_arr = construct %x_32
-    %18:array<strided_arr, 2> = construct %16, %17
-    store %indexable, %18
-    %19:ptr<function, i32, read_write> = access %indexable, %x_34, 0u
-    %x_36:i32 = load %19
+    %8:i32 = load %7
+    %x_27:i32 = let %8
+    %10:u32 = bitcast %x_27
+    %11:u32 = and %10, 31u
+    %12:i32 = shl 1i, %11
+    store %idx, %12
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %14:i32 = load %13
+    %x_30:i32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %17:i32 = load %16
+    %x_32:i32 = let %17
+    %19:i32 = load %idx
+    %x_34:i32 = let %19
+    %21:strided_arr = construct %x_30
+    %22:strided_arr = let %21
+    %23:strided_arr = construct %x_32
+    %24:array<strided_arr, 2> = construct %22, %23
+    store %indexable, %24
+    %25:ptr<function, i32, read_write> = access %indexable, %x_34, 0u
+    %26:i32 = load %25
+    %x_36:i32 = let %26
     store %a, %x_36
-    %x_37:i32 = load %a
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_39:i32 = load %22
-    %24:bool = eq %x_37, %x_39
-    if %24 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_45:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_48:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_51:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_54:i32 = load %31
-        %33:f32 = convert %x_45
-        %34:f32 = convert %x_48
-        %35:f32 = convert %x_51
-        %36:f32 = convert %x_54
-        %37:vec4<f32> = construct %33, %34, %35, %36
-        store %x_GLF_color, %37
+    %28:i32 = load %a
+    %x_37:i32 = let %28
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %31:i32 = load %30
+    %x_39:i32 = let %31
+    %33:bool = eq %x_37, %x_39
+    if %33 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %35:i32 = load %34
+        %x_45:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_48:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %x_51:i32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_54:i32 = let %44
+        %46:f32 = convert %x_45
+        %47:f32 = let %46
+        %48:f32 = convert %x_48
+        %49:f32 = let %48
+        %50:f32 = convert %x_51
+        %51:f32 = let %50
+        %52:f32 = convert %x_54
+        %53:vec4<f32> = construct %47, %49, %51, %52
+        store %x_GLF_color, %53
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_58:i32 = load %38
-        %x_59:f32 = convert %x_58
-        %41:vec4<f32> = construct %x_59, %x_59, %x_59, %x_59
-        store %x_GLF_color, %41
+      $B4: {  # false
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %55:i32 = load %54
+        %x_58:i32 = let %55
+        %57:f32 = convert %x_58
+        %x_59:f32 = let %57
+        %59:vec4<f32> = construct %x_59, %x_59, %x_59, %x_59
+        store %x_GLF_color, %59
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.msl
index b18b2e7..d5f7d93 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,65 +12,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_32:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_24:i32 = load %5
-    %x_25:f32 = convert %x_24
-    %8:vec4<f32> = construct %x_25
-    store %x_GLF_color, %8
-    %9:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_28:i32 = load %9
-    %11:u32 = bitcast %x_28
-    %12:i32 = shiftl %x_28, %11
-    %x_30:i32 = shiftr %12, 1u
+    %6:i32 = load %5
+    %x_24:i32 = let %6
+    %8:f32 = convert %x_24
+    %x_25:f32 = let %8
+    %10:vec4<f32> = construct %x_25
+    store %x_GLF_color, %10
+    %11:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_28:i32 = let %12
+    %14:u32 = bitcast %x_28
+    %15:u32 = and %14, 31u
+    %16:i32 = shl %x_28, %15
+    %17:u32 = and 1u, 31u
+    %18:i32 = shr %16, %17
+    %x_30:i32 = let %18
     store %x_32, %x_24
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %14:bool = lt %x_30, 10i
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:bool = lt %x_30, 10i
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %15:i32 = load %x_32
-        %x_33:i32 = add %15, 1i
-        %17:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %18:i32 = load %17
-        %19:bool = eq %x_33, %18
-        if %19 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_43:f32 = convert %x_28
-            %21:vec4<f32> = construct %x_43, %x_25, %x_25, %x_43
-            store %x_GLF_color, %21
+        %21:i32 = load %x_32
+        %22:i32 = add %21, 1i
+        %x_33:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %25:i32 = load %24
+        %26:bool = eq %x_33, %25
+        if %26 [t: $B7] {  # if_2
+          $B7: {  # true
+            %27:f32 = convert %x_28
+            %x_43:f32 = let %27
+            %29:vec4<f32> = construct %x_43, %x_25, %x_25, %x_43
+            store %x_GLF_color, %29
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_32, %x_33
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.msl
index e39ccda..ceaea81 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-left-shift-right-shift-compare/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,70 +12,80 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_32_phi:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_24:i32 = load %5
-    %x_25:f32 = convert %x_24
-    %8:vec4<f32> = construct %x_25, %x_25, %x_25, %x_25
-    store %x_GLF_color, %8
-    %9:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_28:i32 = load %9
-    %11:u32 = bitcast %x_28
-    %12:i32 = shiftl %x_28, %11
-    %x_30:i32 = shiftr %12, 1u
+    %6:i32 = load %5
+    %x_24:i32 = let %6
+    %8:f32 = convert %x_24
+    %x_25:f32 = let %8
+    %10:vec4<f32> = construct %x_25, %x_25, %x_25, %x_25
+    store %x_GLF_color, %10
+    %11:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_28:i32 = let %12
+    %14:u32 = bitcast %x_28
+    %15:u32 = and %14, 31u
+    %16:i32 = shl %x_28, %15
+    %17:u32 = and 1u, 31u
+    %18:i32 = shr %16, %17
+    %x_30:i32 = let %18
     store %x_32_phi, %x_24
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_32:i32 = load %x_32_phi
-        %15:bool = lt %x_30, 10i
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:i32 = load %x_32_phi
+        %x_32:i32 = let %20
+        %22:bool = lt %x_30, 10i
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_33:ptr<function, i32, read_write> = var
-        %17:i32 = add %x_32, 1i
-        store %x_33, %17
-        %18:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %x_39:i32 = load %18
-        %20:i32 = load %x_33
-        %21:i32 = bitcast %x_39
-        %22:bool = eq %20, %21
-        if %22 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_43:f32 = convert %x_28
-            %24:vec4<f32> = construct %x_43, %x_25, %x_25, %x_43
-            store %x_GLF_color, %24
+        %24:i32 = add %x_32, 1i
+        store %x_33, %24
+        %25:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %26:i32 = load %25
+        %x_39:i32 = let %26
+        %28:i32 = load %x_33
+        %29:i32 = let %28
+        %30:i32 = bitcast %x_39
+        %31:bool = eq %29, %30
+        if %31 [t: $B7] {  # if_2
+          $B7: {  # true
+            %32:f32 = convert %x_28
+            %x_43:f32 = let %32
+            %34:vec4<f32> = construct %x_43, %x_25, %x_25, %x_43
+            store %x_GLF_color, %34
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %25:i32 = load %x_33
-        store %x_32_phi, %25
-        next_iteration %b3
+      $B4: {  # continuing
+        %35:i32 = load %x_33
+        store %x_32_phi, %35
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.msl
index efdd3b1..9fe3ea4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,151 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():vec3<f32> {
+  $B2: {
+    %v:ptr<function, vec2<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %k:ptr<function, i32, read_write> = var
+    store %v, vec2<f32>(1.0f)
+    store %i, 0i
+    store %k, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %k
+        %7:bool = lt %6, 2i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:f32 = load_vector_element %v, 1u
+        %9:f32 = add %8, 1.0f
+        %10:bool = gt %9, 4.0f
+        if %10 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store_vector_element %v, 1u, 1.0f
+        %11:i32 = load %i
+        %12:i32 = add %11, 1i
+        store %i, %12
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %13:i32 = load %k
+        %14:i32 = add %13, 1i
+        store %k, %14
+        next_iteration  # -> $B3
+      }
+    }
+    %15:i32 = load %i
+    %16:bool = lt %15, 10i
+    if %16 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        ret vec3<f32>(1.0f, 0.0f, 0.0f)
+      }
+      $B9: {  # false
+        ret vec3<f32>(0.0f, 0.0f, 1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B10: {
+    %j:ptr<function, i32, read_write> = var
+    %data:ptr<function, array<vec3<f32>, 2>, read_write> = var
+    %j_1:ptr<function, i32, read_write> = var
+    store %j, 0i
+    loop [b: $B11, c: $B12] {  # loop_2
+      $B11: {  # body
+        %21:i32 = load %j
+        %22:bool = lt %21, 1i
+        if %22 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
+            exit_if  # if_4
+          }
+          $B14: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %23:i32 = load %j
+        %x_49:i32 = let %23
+        %25:vec3<f32> = call %func_
+        %x_50:vec3<f32> = let %25
+        %27:ptr<function, vec3<f32>, read_write> = access %data, %x_49
+        store %27, %x_50
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %28:i32 = load %j
+        %29:i32 = add %28, 1i
+        store %j, %29
+        next_iteration  # -> $B11
+      }
+    }
+    store %j_1, 0i
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %30:i32 = load %j_1
+        %31:bool = lt %30, 1i
+        if %31 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %32:i32 = load %j_1
+        %x_61:i32 = let %32
+        %34:vec3<f32> = call %func_
+        %x_64:vec3<f32> = let %34
+        %36:i32 = mul 4i, %x_61
+        %37:i32 = add %36, 1i
+        %38:ptr<function, vec3<f32>, read_write> = access %data, %37
+        store %38, %x_64
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        %39:i32 = load %j_1
+        %40:i32 = add %39, 1i
+        store %j_1, %40
+        next_iteration  # -> $B15
+      }
+    }
+    %41:ptr<function, vec3<f32>, read_write> = access %data, 0i
+    %42:vec3<f32> = load %41
+    %x_69:vec3<f32> = let %42
+    %44:f32 = access %x_69, 0u
+    %45:f32 = access %x_69, 1u
+    %46:f32 = access %x_69, 2u
+    %47:vec4<f32> = construct %44, %45, %46, 1.0f
+    store %x_GLF_color, %47
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.msl
index efdd3b1..12266d7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-liveinterval-different-dest/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,160 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%func_ = func():vec3<f32> {
+  $B2: {
+    %v:ptr<function, vec2<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %k:ptr<function, i32, read_write> = var
+    store %v, vec2<f32>(1.0f)
+    store %i, 0i
+    store %k, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %k
+        %x_79:i32 = let %6
+        %8:bool = lt %x_79, 2i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %9:f32 = load_vector_element %v, 1u
+        %x_83:f32 = let %9
+        %11:f32 = add %x_83, 1.0f
+        %12:bool = gt %11, 4.0f
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store_vector_element %v, 1u, 1.0f
+        %13:i32 = load %i
+        %x_89:i32 = let %13
+        %15:i32 = add %x_89, 1i
+        store %i, %15
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %16:i32 = load %k
+        %x_91:i32 = let %16
+        %18:i32 = add %x_91, 1i
+        store %k, %18
+        next_iteration  # -> $B3
+      }
+    }
+    %19:i32 = load %i
+    %x_93:i32 = let %19
+    %21:bool = lt %x_93, 10i
+    if %21 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        ret vec3<f32>(1.0f, 0.0f, 0.0f)
+      }
+      $B9: {  # false
+        ret vec3<f32>(0.0f, 0.0f, 1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B10: {
+    %j:ptr<function, i32, read_write> = var
+    %data:ptr<function, array<vec3<f32>, 2>, read_write> = var
+    %j_1:ptr<function, i32, read_write> = var
+    store %j, 0i
+    loop [b: $B11, c: $B12] {  # loop_2
+      $B11: {  # body
+        %26:i32 = load %j
+        %x_46:i32 = let %26
+        %28:bool = lt %x_46, 1i
+        if %28 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
+            exit_if  # if_4
+          }
+          $B14: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %29:i32 = load %j
+        %x_49:i32 = let %29
+        %31:vec3<f32> = call %func_
+        %x_50:vec3<f32> = let %31
+        %33:ptr<function, vec3<f32>, read_write> = access %data, %x_49
+        store %33, %x_50
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %34:i32 = load %j
+        %x_52:i32 = let %34
+        %36:i32 = add %x_52, 1i
+        store %j, %36
+        next_iteration  # -> $B11
+      }
+    }
+    store %j_1, 0i
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %37:i32 = load %j_1
+        %x_58:i32 = let %37
+        %39:bool = lt %x_58, 1i
+        if %39 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %40:i32 = load %j_1
+        %x_61:i32 = let %40
+        %42:vec3<f32> = call %func_
+        %x_64:vec3<f32> = let %42
+        %44:i32 = mul 4i, %x_61
+        %45:i32 = add %44, 1i
+        %46:ptr<function, vec3<f32>, read_write> = access %data, %45
+        store %46, %x_64
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        %47:i32 = load %j_1
+        %x_66:i32 = let %47
+        %49:i32 = add %x_66, 1i
+        store %j_1, %49
+        next_iteration  # -> $B15
+      }
+    }
+    %50:ptr<function, vec3<f32>, read_write> = access %data, 0i
+    %51:vec3<f32> = load %50
+    %x_69:vec3<f32> = let %51
+    %53:f32 = access %x_69, 0u
+    %54:f32 = access %x_69, 1u
+    %55:f32 = access %x_69, 2u
+    %56:vec4<f32> = construct %53, %54, %55, 1.0f
+    store %x_GLF_color, %56
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.msl
index 418b130..4104033 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %x_66:ptr<function, bool, read_write> = var
@@ -38,17 +38,17 @@
     %11:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %12:i32 = load %11
     store %i, %12
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %13:i32 = load %i
         %14:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %15:i32 = load %14
         %16:bool = lt %13, %15
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %16 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -62,69 +62,73 @@
         %24:f32 = load %23
         %25:f32 = add %22, %24
         store %f, %25
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %26:i32 = load %i
         %27:i32 = add %26, 1i
         store %i, %27
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %28:f32 = load %f
     %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
     %30:f32 = load %29
-    %x_60:bool = gt %28, %30
+    %31:bool = gt %28, %30
+    %x_60:bool = let %31
     store %x_67, %x_60
-    if %x_60 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %32:f32 = load %f
-        %33:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %34:f32 = load %33
-        %35:bool = lt %32, %34
-        store %x_66, %35
-        %36:bool = load %x_66
-        store %x_67, %36
+    if %x_60 [t: $B7] {  # if_2
+      $B7: {  # true
+        %33:f32 = load %f
+        %34:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %35:f32 = load %34
+        %36:bool = lt %33, %35
+        store %x_66, %36
+        %37:bool = load %x_66
+        store %x_67, %37
         exit_if  # if_2
       }
     }
-    %37:bool = load %x_67
-    if %37 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
-        %47:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+    %38:bool = load %x_67
+    if %38 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %39:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:vec4<f32> = construct %40, %43, %46, %49
-        store %x_GLF_color, %50
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
-        %51:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %50:f32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
         %52:i32 = load %51
         %53:f32 = convert %52
-        %54:vec4<f32> = construct %53
+        %54:vec4<f32> = construct %42, %46, %50, %53
         store %x_GLF_color, %54
         exit_if  # if_3
       }
+      $B9: {  # false
+        %55:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %56:i32 = load %55
+        %57:f32 = convert %56
+        %58:vec4<f32> = construct %57
+        store %x_GLF_color, %58
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.msl
index adddbe1..79fa609 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-abs-multiply-offset/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,111 +20,134 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %x_66:ptr<function, bool, read_write> = var
     %x_67_phi:ptr<function, bool, read_write> = var
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_34:f32 = load %9
+    %10:f32 = load %9
+    %x_34:f32 = let %10
     store %f, %x_34
-    %11:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_36:i32 = load %11
+    %12:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_36:i32 = let %13
     store %i, %x_36
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_41:i32 = load %i
-        %14:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_43:i32 = load %14
-        %16:bool = lt %x_41, %x_43
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %15:i32 = load %i
+        %x_41:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %18:i32 = load %17
+        %x_43:i32 = let %18
+        %20:bool = lt %x_41, %x_43
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %17:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_47:f32 = load %17
-        %x_49:f32 = load %f
-        %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_53:f32 = load %20
-        %22:f32 = negation %x_47
-        %23:f32 = mul %22, %x_49
-        %24:f32 = abs %23
-        %25:f32 = add %24, %x_53
-        store %f, %25
-        continue %b4
+        %21:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %22:f32 = load %21
+        %x_47:f32 = let %22
+        %24:f32 = load %f
+        %x_49:f32 = let %24
+        %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %27:f32 = load %26
+        %x_53:f32 = let %27
+        %29:f32 = negation %x_47
+        %30:f32 = mul %29, %x_49
+        %31:f32 = abs %30
+        %32:f32 = add %31, %x_53
+        store %f, %32
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_55:i32 = load %i
-        %27:i32 = add %x_55, 1i
-        store %i, %27
-        next_iteration %b3
+      $B4: {  # continuing
+        %33:i32 = load %i
+        %x_55:i32 = let %33
+        %35:i32 = add %x_55, 1i
+        store %i, %35
+        next_iteration  # -> $B3
       }
     }
-    %x_57:f32 = load %f
-    %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_59:f32 = load %29
-    %x_60:bool = gt %x_57, %x_59
+    %36:f32 = load %f
+    %x_57:f32 = let %36
+    %38:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %39:f32 = load %38
+    %x_59:f32 = let %39
+    %41:bool = gt %x_57, %x_59
+    %x_60:bool = let %41
     store %x_67_phi, %x_60
-    if %x_60 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %x_63:f32 = load %f
-        %33:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-        %x_65:f32 = load %33
-        %35:bool = lt %x_63, %x_65
-        store %x_66, %35
-        %36:bool = load %x_66
-        store %x_67_phi, %36
+    if %x_60 [t: $B7] {  # if_2
+      $B7: {  # true
+        %43:f32 = load %f
+        %x_63:f32 = let %43
+        %45:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+        %46:f32 = load %45
+        %x_65:f32 = let %46
+        %48:bool = lt %x_63, %x_65
+        store %x_66, %48
+        %49:bool = load %x_66
+        store %x_67_phi, %49
         exit_if  # if_2
       }
     }
-    %x_67:bool = load %x_67_phi
-    if %x_67 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_72:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_75:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_78:i32 = load %42
-        %44:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_81:i32 = load %44
-        %46:f32 = convert %x_72
-        %47:f32 = convert %x_75
-        %48:f32 = convert %x_78
-        %49:f32 = convert %x_81
-        %50:vec4<f32> = construct %46, %47, %48, %49
-        store %x_GLF_color, %50
+    %50:bool = load %x_67_phi
+    %x_67:bool = let %50
+    if %x_67 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %52:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %53:i32 = load %52
+        %x_72:i32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %56:i32 = load %55
+        %x_75:i32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %59:i32 = load %58
+        %x_78:i32 = let %59
+        %61:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %62:i32 = load %61
+        %x_81:i32 = let %62
+        %64:f32 = convert %x_72
+        %65:f32 = let %64
+        %66:f32 = convert %x_75
+        %67:f32 = let %66
+        %68:f32 = convert %x_78
+        %69:f32 = let %68
+        %70:f32 = convert %x_81
+        %71:vec4<f32> = construct %65, %67, %69, %70
+        store %x_GLF_color, %71
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %51:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_85:i32 = load %51
-        %x_86:f32 = convert %x_85
-        %54:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
-        store %x_GLF_color, %54
+      $B9: {  # false
+        %72:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %73:i32 = load %72
+        %x_85:i32 = let %73
+        %75:f32 = convert %x_85
+        %x_86:f32 = let %75
+        %77:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
+        store %x_GLF_color, %77
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %56:void = call %main_1
-    %57:vec4<f32> = load %x_GLF_color
-    %58:main_out = construct %57
-    ret %58
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.msl
index fbcb7e8..d0e43cc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
@@ -38,17 +38,17 @@
     %10:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
     %11:i32 = load %10
     store %i, %11
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %12:i32 = load %i
         %13:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
         %14:i32 = load %13
         %15:bool = lt %12, %14
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -56,8 +56,8 @@
         %17:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
         %18:f32 = load %17
         %19:bool = gt %16, %18
-        if %19 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %19 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
         }
@@ -67,59 +67,63 @@
         %22:f32 = load %f
         %23:f32 = clamp %21, 1.0f, %22
         %24:f32 = sub 1.0f, %23
-        %25:i32 = load %i
-        %26:f32 = convert %25
-        %27:f32 = add %24, %26
-        store %f, %27
-        continue %b4
+        %25:f32 = let %24
+        %26:i32 = load %i
+        %27:f32 = convert %26
+        %28:f32 = add %25, %27
+        store %f, %28
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %28:i32 = load %i
-        %29:i32 = add %28, 1i
-        store %i, %29
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %i
+        %30:i32 = add %29, 1i
+        store %i, %30
+        next_iteration  # -> $B3
       }
     }
-    %30:f32 = load %f
-    %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %32:f32 = load %31
-    %33:bool = eq %30, %32
-    if %33 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %41:i32 = load %40
-        %42:f32 = convert %41
-        %43:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %31:f32 = load %f
+    %32:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %33:f32 = load %32
+    %34:bool = eq %31, %33
+    if %34 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:f32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %44:i32 = load %43
         %45:f32 = convert %44
-        %46:vec4<f32> = construct %36, %39, %42, %45
-        store %x_GLF_color, %46
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
-        %47:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:vec4<f32> = construct %49
+        %50:vec4<f32> = construct %38, %42, %46, %49
         store %x_GLF_color, %50
         exit_if  # if_3
       }
+      $B9: {  # false
+        %51:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:vec4<f32> = construct %53
+        store %x_GLF_color, %54
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %56:void = call %main_1
+    %57:vec4<f32> = load %x_GLF_color
+    %58:main_out = construct %57
+    ret %58
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.msl
index 8fbe26b..b7663e8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-clamp-to-one-empty-condition/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,106 +20,128 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
     %8:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_36:f32 = load %8
+    %9:f32 = load %8
+    %x_36:f32 = let %9
     store %f, %x_36
-    %10:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_38:i32 = load %10
+    %11:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %12:i32 = load %11
+    %x_38:i32 = let %12
     store %i, %x_38
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_43:i32 = load %i
-        %13:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_45:i32 = load %13
-        %15:bool = lt %x_43, %x_45
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %14:i32 = load %i
+        %x_43:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %17:i32 = load %16
+        %x_45:i32 = let %17
+        %19:bool = lt %x_43, %x_45
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_48:f32 = load %f
-        %17:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_50:f32 = load %17
-        %19:bool = gt %x_48, %x_50
-        if %19 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %20:f32 = load %f
+        %x_48:f32 = let %20
+        %22:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %23:f32 = load %22
+        %x_50:f32 = let %23
+        %25:bool = gt %x_48, %x_50
+        if %25 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
         }
         store %f, 1.0f
-        %20:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-        %x_55:f32 = load %20
-        %x_56:f32 = load %f
-        %x_59:i32 = load %i
-        %24:f32 = clamp %x_55, 1.0f, %x_56
-        %25:f32 = sub 1.0f, %24
-        %26:f32 = convert %x_59
-        %27:f32 = add %25, %26
-        store %f, %27
-        continue %b4
+        %26:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+        %27:f32 = load %26
+        %x_55:f32 = let %27
+        %29:f32 = load %f
+        %x_56:f32 = let %29
+        %31:i32 = load %i
+        %x_59:i32 = let %31
+        %33:f32 = clamp %x_55, 1.0f, %x_56
+        %34:f32 = sub 1.0f, %33
+        %35:f32 = let %34
+        %36:f32 = convert %x_59
+        %37:f32 = add %35, %36
+        store %f, %37
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_62:i32 = load %i
-        %29:i32 = add %x_62, 1i
-        store %i, %29
-        next_iteration %b3
+      $B4: {  # continuing
+        %38:i32 = load %i
+        %x_62:i32 = let %38
+        %40:i32 = add %x_62, 1i
+        store %i, %40
+        next_iteration  # -> $B3
       }
     }
-    %x_64:f32 = load %f
-    %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_66:f32 = load %31
-    %33:bool = eq %x_64, %x_66
-    if %33 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_72:i32 = load %34
-        %36:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_75:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_78:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_81:i32 = load %40
-        %42:f32 = convert %x_72
-        %43:f32 = convert %x_75
-        %44:f32 = convert %x_78
-        %45:f32 = convert %x_81
-        %46:vec4<f32> = construct %42, %43, %44, %45
-        store %x_GLF_color, %46
+    %41:f32 = load %f
+    %x_64:f32 = let %41
+    %43:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %44:f32 = load %43
+    %x_66:f32 = let %44
+    %46:bool = eq %x_64, %x_66
+    if %46 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %48:i32 = load %47
+        %x_72:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %51:i32 = load %50
+        %x_75:i32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %54:i32 = load %53
+        %x_78:i32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %57:i32 = load %56
+        %x_81:i32 = let %57
+        %59:f32 = convert %x_72
+        %60:f32 = let %59
+        %61:f32 = convert %x_75
+        %62:f32 = let %61
+        %63:f32 = convert %x_78
+        %64:f32 = let %63
+        %65:f32 = convert %x_81
+        %66:vec4<f32> = construct %60, %62, %64, %65
+        store %x_GLF_color, %66
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %47:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_85:i32 = load %47
-        %x_86:f32 = convert %x_85
-        %50:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
-        store %x_GLF_color, %50
+      $B9: {  # false
+        %67:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %68:i32 = load %67
+        %x_85:i32 = let %68
+        %70:f32 = convert %x_85
+        %x_86:f32 = let %70
+        %72:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
+        store %x_GLF_color, %72
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %74:void = call %main_1
+    %75:vec4<f32> = load %x_GLF_color
+    %76:main_out = construct %75
+    ret %76
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.msl
index 04974ee..6c1b6e5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<i32, 3>, read_write> = var
     %index:ptr<function, i32, read_write> = var
     %x_76:ptr<function, bool, read_write> = var
@@ -34,13 +34,13 @@
     %16:array<i32, 3> = construct %11, %13, %15
     store %arr, %16
     store %index, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_51:ptr<function, bool, read_write> = var
         %x_52:ptr<function, bool, read_write> = var
         store %x_52, true
-        if true [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if true [t: $B5] {  # if_1
+          $B5: {  # true
             %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
             %20:i32 = load %19
             %21:bool = eq %20, 1i
@@ -56,108 +56,113 @@
         }
         %27:bool = load %x_52
         %28:bool = eq %27, false
-        if %28 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+        if %28 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_55:i32 = load %index
+        %29:i32 = load %index
+        %x_55:i32 = let %29
         %x_56_save:i32 = let %x_55
-        %31:ptr<function, i32, read_write> = access %arr, %x_56_save
-        %32:ptr<function, i32, read_write> = access %arr, %x_55
-        %33:i32 = load %32
-        %34:i32 = add %33, 1i
-        store %31, %34
-        %35:i32 = load %index
-        %36:i32 = add %35, 1i
-        store %index, %36
-        continue %b4
+        %32:ptr<function, i32, read_write> = access %arr, %x_56_save
+        %33:ptr<function, i32, read_write> = access %arr, %x_55
+        %34:i32 = load %33
+        %35:i32 = add %34, 1i
+        store %32, %35
+        %36:i32 = load %index
+        %37:i32 = add %36, 1i
+        store %index, %37
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %38:i32 = load %37
-    %39:ptr<function, i32, read_write> = access %arr, %38
-    %40:i32 = load %39
-    %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %42:i32 = load %41
-    %x_67:bool = eq %40, %42
+    %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %39:i32 = load %38
+    %40:ptr<function, i32, read_write> = access %arr, %39
+    %41:i32 = load %40
+    %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %43:i32 = load %42
+    %44:bool = eq %41, %43
+    %x_67:bool = let %44
     store %x_77, %x_67
-    if %x_67 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %45:i32 = load %44
-        %46:ptr<function, i32, read_write> = access %arr, %45
+    if %x_67 [t: $B8] {  # if_3
+      $B8: {  # true
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %47:i32 = load %46
-        %48:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %48:ptr<function, i32, read_write> = access %arr, %47
         %49:i32 = load %48
-        %50:bool = eq %47, %49
-        store %x_76, %50
-        %51:bool = load %x_76
-        store %x_77, %51
+        %50:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %51:i32 = load %50
+        %52:bool = eq %49, %51
+        store %x_76, %52
+        %53:bool = load %x_76
+        store %x_77, %53
         exit_if  # if_3
       }
     }
-    %52:bool = load %x_77
-    store %x_87, %52
-    %53:bool = load %x_77
-    if %53 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %54:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %55:i32 = load %54
-        %56:ptr<function, i32, read_write> = access %arr, %55
+    %54:bool = load %x_77
+    store %x_87, %54
+    %55:bool = load %x_77
+    if %55 [t: $B9] {  # if_4
+      $B9: {  # true
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %57:i32 = load %56
-        %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %58:ptr<function, i32, read_write> = access %arr, %57
         %59:i32 = load %58
-        %60:bool = eq %57, %59
-        store %x_86, %60
-        %61:bool = load %x_86
-        store %x_87, %61
+        %60:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %61:i32 = load %60
+        %62:bool = eq %59, %61
+        store %x_86, %62
+        %63:bool = load %x_86
+        store %x_87, %63
         exit_if  # if_4
       }
     }
-    %62:bool = load %x_87
-    if %62 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
-        %63:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %64:i32 = load %63
-        %65:f32 = convert %64
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %67:i32 = load %66
-        %68:f32 = convert %67
+    %64:bool = load %x_87
+    if %64 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
+        %65:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %66:i32 = load %65
+        %67:f32 = convert %66
+        %68:f32 = let %67
         %69:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %70:i32 = load %69
         %71:f32 = convert %70
-        %72:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %73:i32 = load %72
-        %74:f32 = convert %73
-        %75:vec4<f32> = construct %65, %68, %71, %74
-        store %x_GLF_color, %75
+        %72:f32 = let %71
+        %73:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %74:i32 = load %73
+        %75:f32 = convert %74
+        %76:f32 = let %75
+        %77:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %78:i32 = load %77
+        %79:f32 = convert %78
+        %80:vec4<f32> = construct %68, %72, %76, %79
+        store %x_GLF_color, %80
         exit_if  # if_5
       }
-      %b11 = block {  # false
-        %76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %77:i32 = load %76
-        %78:f32 = convert %77
-        %79:vec4<f32> = construct %78
-        store %x_GLF_color, %79
+      $B11: {  # false
+        %81:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %82:i32 = load %81
+        %83:f32 = convert %82
+        %84:vec4<f32> = construct %83
+        store %x_GLF_color, %84
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b12 {
-  %b12 = block {
-    %81:void = call %main_1
-    %82:vec4<f32> = load %x_GLF_color
-    %83:main_out = construct %82
-    ret %83
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %86:void = call %main_1
+    %87:vec4<f32> = load %x_GLF_color
+    %88:main_out = construct %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.msl
index 4c7ea9f..934b4a2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-condition-double-negate/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<i32, 3>, read_write> = var
     %index:ptr<function, i32, read_write> = var
     %x_76:ptr<function, bool, read_write> = var
@@ -26,137 +26,167 @@
     %x_77_phi:ptr<function, bool, read_write> = var
     %x_87_phi:ptr<function, bool, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_33:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_35:i32 = load %12
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_37:i32 = load %14
-    %16:array<i32, 3> = construct %x_33, %x_35, %x_37
-    store %arr, %16
+    %11:i32 = load %10
+    %x_33:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %14:i32 = load %13
+    %x_35:i32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %17:i32 = load %16
+    %x_37:i32 = let %17
+    %19:array<i32, 3> = construct %x_33, %x_35, %x_37
+    store %arr, %19
     store %index, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_51:ptr<function, bool, read_write> = var
         %x_52_phi:ptr<function, bool, read_write> = var
         store %x_52_phi, true
-        if true [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_46:i32 = load %19
-            %x_48:i32 = load %index
-            %22:bool = eq %x_46, 1i
-            %23:bool = lte %x_48, 1i
-            %24:bool = and %22, %23
-            %25:bool = eq %24, false
-            store %x_51, %25
-            %26:bool = load %x_51
-            store %x_52_phi, %26
+        if true [t: $B5] {  # if_1
+          $B5: {  # true
+            %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %23:i32 = load %22
+            %x_46:i32 = let %23
+            %25:i32 = load %index
+            %x_48:i32 = let %25
+            %27:bool = eq %x_46, 1i
+            %28:bool = lte %x_48, 1i
+            %29:bool = and %27, %28
+            %30:bool = eq %29, false
+            store %x_51, %30
+            %31:bool = load %x_51
+            store %x_52_phi, %31
             exit_if  # if_1
           }
         }
-        %x_52:bool = load %x_52_phi
-        %28:bool = eq %x_52, false
-        if %28 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+        %32:bool = load %x_52_phi
+        %x_52:bool = let %32
+        %34:bool = eq %x_52, false
+        if %34 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_55:i32 = load %index
+        %35:i32 = load %index
+        %x_55:i32 = let %35
         %x_56_save:i32 = let %x_55
-        %31:ptr<function, i32, read_write> = access %arr, %x_56_save
-        %x_57:i32 = load %31
-        %33:ptr<function, i32, read_write> = access %arr, %x_56_save
-        %34:i32 = add %x_57, 1i
-        store %33, %34
-        %x_59:i32 = load %index
-        %36:i32 = add %x_59, 1i
-        store %index, %36
-        continue %b4
+        %38:ptr<function, i32, read_write> = access %arr, %x_56_save
+        %39:i32 = load %38
+        %x_57:i32 = let %39
+        %41:ptr<function, i32, read_write> = access %arr, %x_56_save
+        %42:i32 = add %x_57, 1i
+        store %41, %42
+        %43:i32 = load %index
+        %x_59:i32 = let %43
+        %45:i32 = add %x_59, 1i
+        store %index, %45
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_62:i32 = load %37
-    %39:ptr<function, i32, read_write> = access %arr, %x_62
-    %x_64:i32 = load %39
-    %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_66:i32 = load %41
-    %x_67:bool = eq %x_64, %x_66
+    %46:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %47:i32 = load %46
+    %x_62:i32 = let %47
+    %49:ptr<function, i32, read_write> = access %arr, %x_62
+    %50:i32 = load %49
+    %x_64:i32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %53:i32 = load %52
+    %x_66:i32 = let %53
+    %55:bool = eq %x_64, %x_66
+    %x_67:bool = let %55
     store %x_77_phi, %x_67
-    if %x_67 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_71:i32 = load %44
-        %46:ptr<function, i32, read_write> = access %arr, %x_71
-        %x_73:i32 = load %46
-        %48:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_75:i32 = load %48
-        %50:bool = eq %x_73, %x_75
-        store %x_76, %50
-        %51:bool = load %x_76
-        store %x_77_phi, %51
+    if %x_67 [t: $B8] {  # if_3
+      $B8: {  # true
+        %57:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %58:i32 = load %57
+        %x_71:i32 = let %58
+        %60:ptr<function, i32, read_write> = access %arr, %x_71
+        %61:i32 = load %60
+        %x_73:i32 = let %61
+        %63:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %64:i32 = load %63
+        %x_75:i32 = let %64
+        %66:bool = eq %x_73, %x_75
+        store %x_76, %66
+        %67:bool = load %x_76
+        store %x_77_phi, %67
         exit_if  # if_3
       }
     }
-    %x_77:bool = load %x_77_phi
+    %68:bool = load %x_77_phi
+    %x_77:bool = let %68
     store %x_87_phi, %x_77
-    if %x_77 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %53:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_81:i32 = load %53
-        %55:ptr<function, i32, read_write> = access %arr, %x_81
-        %x_83:i32 = load %55
-        %57:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_85:i32 = load %57
-        %59:bool = eq %x_83, %x_85
-        store %x_86, %59
-        %60:bool = load %x_86
-        store %x_87_phi, %60
+    if %x_77 [t: $B9] {  # if_4
+      $B9: {  # true
+        %70:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %71:i32 = load %70
+        %x_81:i32 = let %71
+        %73:ptr<function, i32, read_write> = access %arr, %x_81
+        %74:i32 = load %73
+        %x_83:i32 = let %74
+        %76:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %77:i32 = load %76
+        %x_85:i32 = let %77
+        %79:bool = eq %x_83, %x_85
+        store %x_86, %79
+        %80:bool = load %x_86
+        store %x_87_phi, %80
         exit_if  # if_4
       }
     }
-    %x_87:bool = load %x_87_phi
-    if %x_87 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_92:i32 = load %62
-        %64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_95:i32 = load %64
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_98:i32 = load %66
-        %68:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_101:i32 = load %68
-        %70:f32 = convert %x_92
-        %71:f32 = convert %x_95
-        %72:f32 = convert %x_98
-        %73:f32 = convert %x_101
-        %74:vec4<f32> = construct %70, %71, %72, %73
-        store %x_GLF_color, %74
+    %81:bool = load %x_87_phi
+    %x_87:bool = let %81
+    if %x_87 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
+        %83:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %84:i32 = load %83
+        %x_92:i32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %87:i32 = load %86
+        %x_95:i32 = let %87
+        %89:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %90:i32 = load %89
+        %x_98:i32 = let %90
+        %92:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %93:i32 = load %92
+        %x_101:i32 = let %93
+        %95:f32 = convert %x_92
+        %96:f32 = let %95
+        %97:f32 = convert %x_95
+        %98:f32 = let %97
+        %99:f32 = convert %x_98
+        %100:f32 = let %99
+        %101:f32 = convert %x_101
+        %102:vec4<f32> = construct %96, %98, %100, %101
+        store %x_GLF_color, %102
         exit_if  # if_5
       }
-      %b11 = block {  # false
-        %75:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_105:i32 = load %75
-        %x_106:f32 = convert %x_105
-        %78:vec4<f32> = construct %x_106, %x_106, %x_106, %x_106
-        store %x_GLF_color, %78
+      $B11: {  # false
+        %103:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %104:i32 = load %103
+        %x_105:i32 = let %104
+        %106:f32 = convert %x_105
+        %x_106:f32 = let %106
+        %108:vec4<f32> = construct %x_106, %x_106, %x_106, %x_106
+        store %x_GLF_color, %108
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b12 {
-  %b12 = block {
-    %80:void = call %main_1
-    %81:vec4<f32> = load %x_GLF_color
-    %82:main_out = construct %81
-    ret %82
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %110:void = call %main_1
+    %111:vec4<f32> = load %x_GLF_color
+    %112:main_out = construct %111
+    ret %112
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.msl
index 43b6bc8..9622f8f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, f32, read_write> = var
@@ -44,17 +44,17 @@
     %15:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
     %16:i32 = load %15
     store %i, %16
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %17:i32 = load %i
         %18:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
         %19:i32 = load %18
         %20:bool = lt %17, %19
-        if %20 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -62,73 +62,79 @@
         %22:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
         %23:i32 = load %22
         %24:bool = eq %21, %23
-        if %24 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %24 [t: $B7] {  # if_2
+          $B7: {  # true
             %25:f32 = load %a
-            %26:f32 = dpdx %25
+            %x_57:f32 = let %25
             %27:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
             %28:f32 = load %27
-            %29:f32 = add %26, %28
-            store %b, %29
+            %x_60:f32 = let %28
+            %30:f32 = dpdx %x_57
+            %31:f32 = add %30, %x_60
+            store %b, %31
             exit_if  # if_2
           }
         }
-        %30:f32 = load %a
-        %31:f32 = dpdx %30
-        store %c, %31
-        %32:f32 = load %c
-        %33:f32 = load %b
-        %34:f32 = div %32, %33
-        store %a, %34
-        continue %b4
+        %32:f32 = load %a
+        %x_62:f32 = let %32
+        %34:f32 = dpdx %x_62
+        store %c, %34
+        %35:f32 = load %c
+        %36:f32 = load %b
+        %37:f32 = div %35, %36
+        store %a, %37
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %35:i32 = load %i
-        %36:i32 = add %35, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %38:i32 = load %i
+        %39:i32 = add %38, 1i
+        store %i, %39
+        next_iteration  # -> $B3
       }
     }
-    %37:f32 = load %a
-    %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %39:f32 = load %38
-    %40:bool = eq %37, %39
-    if %40 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %41:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+    %40:f32 = load %a
+    %41:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %42:f32 = load %41
+    %43:bool = eq %40, %42
+    if %43 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %44:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
         %45:i32 = load %44
         %46:f32 = convert %45
-        %47:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %48:i32 = load %47
-        %49:f32 = convert %48
-        %50:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-        %51:i32 = load %50
-        %52:f32 = convert %51
-        %53:vec4<f32> = construct %43, %46, %49, %52
-        store %x_GLF_color, %53
+        %47:f32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %49:i32 = load %48
+        %50:f32 = convert %49
+        %51:f32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %53:i32 = load %52
+        %54:f32 = convert %53
+        %55:f32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+        %57:i32 = load %56
+        %58:f32 = convert %57
+        %59:vec4<f32> = construct %47, %51, %55, %58
+        store %x_GLF_color, %59
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %55:i32 = load %54
-        %56:f32 = convert %55
-        %57:vec4<f32> = construct %56
-        store %x_GLF_color, %57
+      $B9: {  # false
+        %60:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %61:i32 = load %60
+        %62:f32 = convert %61
+        %63:vec4<f32> = construct %62
+        store %x_GLF_color, %63
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.msl
index cf727e8..4fe763c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-dfdx-constant-divide/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,115 +20,140 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_35:f32 = load %9
+    %10:f32 = load %9
+    %x_35:f32 = let %10
     store %a, %x_35
-    %11:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_37:f32 = load %11
+    %12:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %13:f32 = load %12
+    %x_37:f32 = let %13
     store %b, %x_37
-    %13:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_39:f32 = load %13
+    %15:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %16:f32 = load %15
+    %x_39:f32 = let %16
     store %c, %x_39
-    %15:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-    %x_41:i32 = load %15
+    %18:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+    %19:i32 = load %18
+    %x_41:i32 = let %19
     store %i, %x_41
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_46:i32 = load %i
-        %18:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_48:i32 = load %18
-        %20:bool = lt %x_46, %x_48
-        if %20 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %21:i32 = load %i
+        %x_46:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_48:i32 = let %24
+        %26:bool = lt %x_46, %x_48
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_51:i32 = load %i
-        %22:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-        %x_53:i32 = load %22
-        %24:bool = eq %x_51, %x_53
-        if %24 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_57:f32 = load %a
-            %26:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-            %x_60:f32 = load %26
-            %28:f32 = dpdx %x_57
-            %29:f32 = add %28, %x_60
-            store %b, %29
+        %27:i32 = load %i
+        %x_51:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+        %30:i32 = load %29
+        %x_53:i32 = let %30
+        %32:bool = eq %x_51, %x_53
+        if %32 [t: $B7] {  # if_2
+          $B7: {  # true
+            %33:f32 = load %a
+            %x_57:f32 = let %33
+            %35:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+            %36:f32 = load %35
+            %x_60:f32 = let %36
+            %38:f32 = dpdx %x_57
+            %39:f32 = add %38, %x_60
+            store %b, %39
             exit_if  # if_2
           }
         }
-        %x_62:f32 = load %a
-        %31:f32 = dpdx %x_62
-        store %c, %31
-        %x_64:f32 = load %c
-        %x_65:f32 = load %b
-        %34:f32 = div %x_64, %x_65
-        store %a, %34
-        continue %b4
+        %40:f32 = load %a
+        %x_62:f32 = let %40
+        %42:f32 = dpdx %x_62
+        store %c, %42
+        %43:f32 = load %c
+        %x_64:f32 = let %43
+        %45:f32 = load %b
+        %x_65:f32 = let %45
+        %47:f32 = div %x_64, %x_65
+        store %a, %47
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_67:i32 = load %i
-        %36:i32 = add %x_67, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %48:i32 = load %i
+        %x_67:i32 = let %48
+        %50:i32 = add %x_67, 1i
+        store %i, %50
+        next_iteration  # -> $B3
       }
     }
-    %x_69:f32 = load %a
-    %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_71:f32 = load %38
-    %40:bool = eq %x_69, %x_71
-    if %40 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %41:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-        %x_77:i32 = load %41
-        %43:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_80:i32 = load %43
-        %45:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_83:i32 = load %45
-        %47:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-        %x_86:i32 = load %47
-        %49:f32 = convert %x_77
-        %50:f32 = convert %x_80
-        %51:f32 = convert %x_83
-        %52:f32 = convert %x_86
-        %53:vec4<f32> = construct %49, %50, %51, %52
-        store %x_GLF_color, %53
+    %51:f32 = load %a
+    %x_69:f32 = let %51
+    %53:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %54:f32 = load %53
+    %x_71:f32 = let %54
+    %56:bool = eq %x_69, %x_71
+    if %56 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %57:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+        %58:i32 = load %57
+        %x_77:i32 = let %58
+        %60:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %61:i32 = load %60
+        %x_80:i32 = let %61
+        %63:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %64:i32 = load %63
+        %x_83:i32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+        %67:i32 = load %66
+        %x_86:i32 = let %67
+        %69:f32 = convert %x_77
+        %70:f32 = let %69
+        %71:f32 = convert %x_80
+        %72:f32 = let %71
+        %73:f32 = convert %x_83
+        %74:f32 = let %73
+        %75:f32 = convert %x_86
+        %76:vec4<f32> = construct %70, %72, %74, %75
+        store %x_GLF_color, %76
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %54:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_90:i32 = load %54
-        %x_91:f32 = convert %x_90
-        %57:vec4<f32> = construct %x_91, %x_91, %x_91, %x_91
-        store %x_GLF_color, %57
+      $B9: {  # false
+        %77:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %78:i32 = load %77
+        %x_90:i32 = let %78
+        %80:f32 = convert %x_90
+        %x_91:f32 = let %80
+        %82:vec4<f32> = construct %x_91, %x_91, %x_91, %x_91
+        store %x_GLF_color, %82
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %84:void = call %main_1
+    %85:vec4<f32> = load %x_GLF_color
+    %86:main_out = construct %85
+    ret %86
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.msl
index 086a60e..788f503 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,156 +20,170 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m23:ptr<function, mat2x3<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_46:f32 = load %8
-    %10:vec3<f32> = construct %x_46, 0.0f, 0.0f
-    %11:vec3<f32> = construct 0.0f, %x_46, 0.0f
-    %12:mat2x3<f32> = construct %10, %11
-    store %m23, %12
+    %9:f32 = load %8
+    %x_46:f32 = let %9
+    %11:vec3<f32> = construct %x_46, 0.0f, 0.0f
+    %12:vec3<f32> = let %11
+    %13:vec3<f32> = construct 0.0f, %x_46, 0.0f
+    %14:mat2x3<f32> = construct %12, %13
+    store %m23, %14
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_80:ptr<function, bool, read_write> = var
         %x_81:ptr<function, bool, read_write> = var
-        %15:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %17:i32 = load %16
-        %18:bool = lt %15, %17
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %17:i32 = load %i
+        %18:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %19:i32 = load %18
+        %20:bool = lt %17, %19
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %19:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_60:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_62:i32 = load %21
-        %23:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
-        %24:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
-        %25:f32 = load_vector_element %24, %x_62
-        %26:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %27:f32 = load %26
-        %28:f32 = add %25, %27
-        store_vector_element %23, %x_62, %28
-        %29:f32 = load_vector_element %gl_FragCoord, 1u
+        %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %22:i32 = load %21
+        %x_60:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %25:i32 = load %24
+        %x_62:i32 = let %25
+        %27:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
+        %28:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
+        %29:f32 = load_vector_element %28, %x_62
         %30:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
         %31:f32 = load %30
-        %32:bool = lt %29, %31
-        if %32 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %32:f32 = add %29, %31
+        store_vector_element %27, %x_62, %32
+        %33:f32 = load_vector_element %gl_FragCoord, 1u
+        %34:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %35:f32 = load %34
+        %36:bool = lt %33, %35
+        if %36 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
         }
         store %x_81, true
-        if true [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %33:f32 = load_vector_element %gl_FragCoord, 0u
-            %34:bool = lt %33, 0.0f
-            store %x_80, %34
-            %35:bool = load %x_80
-            store %x_81, %35
+        if true [t: $B8] {  # if_3
+          $B8: {  # true
+            %37:f32 = load_vector_element %gl_FragCoord, 0u
+            %38:bool = lt %37, 0.0f
+            store %x_80, %38
+            %39:bool = load %x_80
+            store %x_81, %39
             exit_if  # if_3
           }
         }
-        %36:bool = load %x_81
-        %37:bool = eq %36, false
-        if %37 [t: %b9] {  # if_4
-          %b9 = block {  # true
+        %40:bool = load %x_81
+        %41:bool = eq %40, false
+        if %41 [t: $B9] {  # if_4
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %38:i32 = load %i
-        %39:i32 = add %38, 1i
-        store %i, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %42:i32 = load %i
+        %43:i32 = add %42, 1i
+        store %i, %43
+        next_iteration  # -> $B3
       }
     }
-    %40:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %41:i32 = load %40
-    %42:f32 = convert %41
-    %43:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %44:i32 = load %43
-    %45:f32 = convert %44
-    %46:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %47:i32 = load %46
-    %48:f32 = convert %47
-    %49:vec3<f32> = construct %42, %45, %48
-    %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %51:i32 = load %50
-    %52:f32 = convert %51
-    %53:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %54:i32 = load %53
-    %55:f32 = convert %54
-    %56:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %57:i32 = load %56
-    %58:f32 = convert %57
-    %59:vec3<f32> = construct %52, %55, %58
-    %x_108:mat2x3<f32> = construct %49, %59
-    %61:ptr<function, vec3<f32>, read_write> = access %m23, 0u
-    %62:vec3<f32> = load %61
-    %63:vec3<f32> = access %x_108, 0u
-    %64:vec3<bool> = eq %62, %63
-    %65:bool = all %64
-    %66:ptr<function, vec3<f32>, read_write> = access %m23, 1u
-    %67:vec3<f32> = load %66
-    %68:vec3<f32> = access %x_108, 1u
-    %69:vec3<bool> = eq %67, %68
-    %70:bool = all %69
-    %71:bool = and %65, %70
-    if %71 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
-        %72:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %73:i32 = load %72
-        %74:f32 = convert %73
-        %75:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %76:i32 = load %75
-        %77:f32 = convert %76
-        %78:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %79:i32 = load %78
-        %80:f32 = convert %79
-        %81:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %82:i32 = load %81
-        %83:f32 = convert %82
-        %84:vec4<f32> = construct %74, %77, %80, %83
-        store %x_GLF_color, %84
+    %44:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %45:i32 = load %44
+    %46:f32 = convert %45
+    %47:f32 = let %46
+    %48:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %49:i32 = load %48
+    %50:f32 = convert %49
+    %51:f32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %53:i32 = load %52
+    %54:f32 = convert %53
+    %55:vec3<f32> = construct %47, %51, %54
+    %56:vec3<f32> = let %55
+    %57:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %58:i32 = load %57
+    %59:f32 = convert %58
+    %60:f32 = let %59
+    %61:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %62:i32 = load %61
+    %63:f32 = convert %62
+    %64:f32 = let %63
+    %65:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %66:i32 = load %65
+    %67:f32 = convert %66
+    %68:vec3<f32> = construct %60, %64, %67
+    %69:mat2x3<f32> = construct %56, %68
+    %x_108:mat2x3<f32> = let %69
+    %71:ptr<function, vec3<f32>, read_write> = access %m23, 0u
+    %72:vec3<f32> = load %71
+    %73:vec3<f32> = access %x_108, 0u
+    %74:vec3<bool> = eq %72, %73
+    %75:bool = all %74
+    %76:bool = let %75
+    %77:ptr<function, vec3<f32>, read_write> = access %m23, 1u
+    %78:vec3<f32> = load %77
+    %79:vec3<f32> = access %x_108, 1u
+    %80:vec3<bool> = eq %78, %79
+    %81:bool = all %80
+    %82:bool = and %76, %81
+    if %82 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
+        %83:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %84:i32 = load %83
+        %85:f32 = convert %84
+        %86:f32 = let %85
+        %87:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %88:i32 = load %87
+        %89:f32 = convert %88
+        %90:f32 = let %89
+        %91:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %92:i32 = load %91
+        %93:f32 = convert %92
+        %94:f32 = let %93
+        %95:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %96:i32 = load %95
+        %97:f32 = convert %96
+        %98:vec4<f32> = construct %86, %90, %94, %97
+        store %x_GLF_color, %98
         exit_if  # if_5
       }
-      %b11 = block {  # false
-        %85:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %86:i32 = load %85
-        %87:f32 = convert %86
-        %88:vec4<f32> = construct %87
-        store %x_GLF_color, %88
+      $B11: {  # false
+        %99:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %100:i32 = load %99
+        %101:f32 = convert %100
+        %102:vec4<f32> = construct %101
+        store %x_GLF_color, %102
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %91:void = call %main_1
-    %92:vec4<f32> = load %x_GLF_color
-    %93:main_out = construct %92
-    ret %93
+    %105:void = call %main_1
+    %106:vec4<f32> = load %x_GLF_color
+    %107:main_out = construct %106
+    ret %107
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.msl
index 24f41cd..0fe23b6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-matrix-element-break-after-first-iteration/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,155 +20,191 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m23:ptr<function, mat2x3<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_46:f32 = load %8
-    %10:vec3<f32> = construct %x_46, 0.0f, 0.0f
-    %11:vec3<f32> = construct 0.0f, %x_46, 0.0f
-    %12:mat2x3<f32> = construct %10, %11
-    store %m23, %12
+    %9:f32 = load %8
+    %x_46:f32 = let %9
+    %11:vec3<f32> = construct %x_46, 0.0f, 0.0f
+    %12:vec3<f32> = let %11
+    %13:vec3<f32> = construct 0.0f, %x_46, 0.0f
+    %14:mat2x3<f32> = construct %12, %13
+    store %m23, %14
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_80:ptr<function, bool, read_write> = var
         %x_81_phi:ptr<function, bool, read_write> = var
-        %x_54:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_56:i32 = load %16
-        %18:bool = lt %x_54, %x_56
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %17:i32 = load %i
+        %x_54:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %20:i32 = load %19
+        %x_56:i32 = let %20
+        %22:bool = lt %x_54, %x_56
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %19:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_60:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_62:i32 = load %21
-        %23:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_64:f32 = load %23
-        %25:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
-        %x_66:f32 = load_vector_element %25, %x_62
-        %27:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
-        %28:f32 = add %x_66, %x_64
-        store_vector_element %27, %x_62, %28
-        %x_70:f32 = load_vector_element %gl_FragCoord, 1u
-        %30:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_72:f32 = load %30
-        %32:bool = lt %x_70, %x_72
-        if %32 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %23:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_60:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %27:i32 = load %26
+        %x_62:i32 = let %27
+        %29:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %30:f32 = load %29
+        %x_64:f32 = let %30
+        %32:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
+        %33:f32 = load_vector_element %32, %x_62
+        %x_66:f32 = let %33
+        %35:ptr<function, vec3<f32>, read_write> = access %m23, %x_60
+        %36:f32 = add %x_66, %x_64
+        store_vector_element %35, %x_62, %36
+        %37:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_70:f32 = let %37
+        %39:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %40:f32 = load %39
+        %x_72:f32 = let %40
+        %42:bool = lt %x_70, %x_72
+        if %42 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
         }
         store %x_81_phi, true
-        if true [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %x_79:f32 = load_vector_element %gl_FragCoord, 0u
-            %34:bool = lt %x_79, 0.0f
-            store %x_80, %34
-            %35:bool = load %x_80
-            store %x_81_phi, %35
+        if true [t: $B8] {  # if_3
+          $B8: {  # true
+            %43:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_79:f32 = let %43
+            %45:bool = lt %x_79, 0.0f
+            store %x_80, %45
+            %46:bool = load %x_80
+            store %x_81_phi, %46
             exit_if  # if_3
           }
         }
-        %x_81:bool = load %x_81_phi
-        %37:bool = eq %x_81, false
-        if %37 [t: %b9] {  # if_4
-          %b9 = block {  # true
+        %47:bool = load %x_81_phi
+        %x_81:bool = let %47
+        %49:bool = eq %x_81, false
+        if %49 [t: $B9] {  # if_4
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_85:i32 = load %i
-        %39:i32 = add %x_85, 1i
-        store %i, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %50:i32 = load %i
+        %x_85:i32 = let %50
+        %52:i32 = add %x_85, 1i
+        store %i, %52
+        next_iteration  # -> $B3
       }
     }
-    %x_87:mat2x3<f32> = load %m23
-    %41:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_89:i32 = load %41
-    %43:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_92:i32 = load %43
-    %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_95:i32 = load %45
-    %47:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_98:i32 = load %47
-    %49:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_101:i32 = load %49
-    %51:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_104:i32 = load %51
-    %53:f32 = convert %x_89
-    %54:f32 = convert %x_92
-    %55:f32 = convert %x_95
-    %56:vec3<f32> = construct %53, %54, %55
-    %57:f32 = convert %x_98
-    %58:f32 = convert %x_101
-    %59:f32 = convert %x_104
-    %60:vec3<f32> = construct %57, %58, %59
-    %x_108:mat2x3<f32> = construct %56, %60
-    %62:vec3<f32> = access %x_87, 0u
-    %63:vec3<f32> = access %x_108, 0u
-    %64:vec3<bool> = eq %62, %63
-    %65:bool = all %64
-    %66:vec3<f32> = access %x_87, 1u
-    %67:vec3<f32> = access %x_108, 1u
-    %68:vec3<bool> = eq %66, %67
-    %69:bool = all %68
-    %70:bool = and %65, %69
-    if %70 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
-        %71:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_122:i32 = load %71
-        %73:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_125:i32 = load %73
-        %75:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_128:i32 = load %75
-        %77:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_131:i32 = load %77
-        %79:f32 = convert %x_122
-        %80:f32 = convert %x_125
-        %81:f32 = convert %x_128
-        %82:f32 = convert %x_131
-        %83:vec4<f32> = construct %79, %80, %81, %82
-        store %x_GLF_color, %83
+    %53:mat2x3<f32> = load %m23
+    %x_87:mat2x3<f32> = let %53
+    %55:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %56:i32 = load %55
+    %x_89:i32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %59:i32 = load %58
+    %x_92:i32 = let %59
+    %61:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %62:i32 = load %61
+    %x_95:i32 = let %62
+    %64:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %65:i32 = load %64
+    %x_98:i32 = let %65
+    %67:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %68:i32 = load %67
+    %x_101:i32 = let %68
+    %70:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %71:i32 = load %70
+    %x_104:i32 = let %71
+    %73:f32 = convert %x_89
+    %74:f32 = let %73
+    %75:f32 = convert %x_92
+    %76:f32 = let %75
+    %77:f32 = convert %x_95
+    %78:vec3<f32> = construct %74, %76, %77
+    %79:vec3<f32> = let %78
+    %80:f32 = convert %x_98
+    %81:f32 = let %80
+    %82:f32 = convert %x_101
+    %83:f32 = let %82
+    %84:f32 = convert %x_104
+    %85:vec3<f32> = construct %81, %83, %84
+    %86:mat2x3<f32> = construct %79, %85
+    %x_108:mat2x3<f32> = let %86
+    %88:vec3<f32> = access %x_87, 0u
+    %89:vec3<f32> = access %x_108, 0u
+    %90:vec3<bool> = eq %88, %89
+    %91:bool = all %90
+    %92:bool = let %91
+    %93:vec3<f32> = access %x_87, 1u
+    %94:vec3<f32> = access %x_108, 1u
+    %95:vec3<bool> = eq %93, %94
+    %96:bool = all %95
+    %97:bool = and %92, %96
+    if %97 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
+        %98:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %99:i32 = load %98
+        %x_122:i32 = let %99
+        %101:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %102:i32 = load %101
+        %x_125:i32 = let %102
+        %104:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %105:i32 = load %104
+        %x_128:i32 = let %105
+        %107:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %108:i32 = load %107
+        %x_131:i32 = let %108
+        %110:f32 = convert %x_122
+        %111:f32 = let %110
+        %112:f32 = convert %x_125
+        %113:f32 = let %112
+        %114:f32 = convert %x_128
+        %115:f32 = let %114
+        %116:f32 = convert %x_131
+        %117:vec4<f32> = construct %111, %113, %115, %116
+        store %x_GLF_color, %117
         exit_if  # if_5
       }
-      %b11 = block {  # false
-        %84:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_135:i32 = load %84
-        %x_136:f32 = convert %x_135
-        %87:vec4<f32> = construct %x_136, %x_136, %x_136, %x_136
-        store %x_GLF_color, %87
+      $B11: {  # false
+        %118:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %119:i32 = load %118
+        %x_135:i32 = let %119
+        %121:f32 = convert %x_135
+        %x_136:f32 = let %121
+        %123:vec4<f32> = construct %x_136, %x_136, %x_136, %x_136
+        store %x_GLF_color, %123
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %90:void = call %main_1
-    %91:vec4<f32> = load %x_GLF_color
-    %92:main_out = construct %91
-    ret %92
+    %126:void = call %main_1
+    %127:vec4<f32> = load %x_GLF_color
+    %128:main_out = construct %127
+    ret %128
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.msl
index e3a6cc4..d9f5c79 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,28 +12,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
     %7:i32 = load %6
     store %a, %7
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:i32 = load %i
         %9:bool = lt %8, 3i
-        if %9 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -41,70 +41,85 @@
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %12:i32 = load %11
         %13:bool = eq %10, %12
-        if %13 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        if %13 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %14:i32 = load %a
             %15:i32 = add %14, 1i
             store %a, %15
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             %16:i32 = load %a
             %17:i32 = load %i
-            %18:i32 = div %16, %17
+            %18:i32 = call %tint_div_i32, %16, %17
             store %a, %18
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %19:i32 = load %i
-        %20:i32 = add %19, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %20:i32 = load %i
+        %21:i32 = add %20, 1i
+        store %i, %21
+        next_iteration  # -> $B3
       }
     }
-    %21:i32 = load %a
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %23:i32 = load %22
-    %24:bool = eq %21, %23
-    if %24 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %22:i32 = load %a
+    %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %24:i32 = load %23
+    %25:bool = eq %22, %24
+    if %25 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:f32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %35:i32 = load %34
         %36:f32 = convert %35
-        %37:vec4<f32> = construct %27, %30, %33, %36
-        store %x_GLF_color, %37
-        exit_if  # if_3
-      }
-      %b10 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %37:f32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %39:i32 = load %38
         %40:f32 = convert %39
-        %41:vec4<f32> = construct %40
+        %41:vec4<f32> = construct %29, %33, %37, %40
         store %x_GLF_color, %41
         exit_if  # if_3
       }
+      $B10: {  # false
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:vec4<f32> = construct %44
+        store %x_GLF_color, %45
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B12: {
+    %52:bool = eq %rhs, 0i
+    %53:bool = eq %lhs, -2147483648i
+    %54:bool = eq %rhs, -1i
+    %55:bool = and %53, %54
+    %56:bool = or %52, %55
+    %57:i32 = select %rhs, 1i, %56
+    %58:i32 = div %lhs, %57
+    ret %58
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.msl
index b1bb82f..5929d73 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-increment-or-divide-by-loop-index/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,99 +12,130 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_27:i32 = load %6
+    %7:i32 = load %6
+    %x_27:i32 = let %7
     store %a, %x_27
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_32:i32 = load %i
-        %9:bool = lt %x_32, 3i
-        if %9 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_32:i32 = let %9
+        %11:bool = lt %x_32, 3i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_35:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_37:i32 = load %11
-        %13:bool = eq %x_35, %x_37
-        if %13 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_42:i32 = load %a
-            %15:i32 = add %x_42, 1i
-            store %a, %15
+        %12:i32 = load %i
+        %x_35:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %15:i32 = load %14
+        %x_37:i32 = let %15
+        %17:bool = eq %x_35, %x_37
+        if %17 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %18:i32 = load %a
+            %x_42:i32 = let %18
+            %20:i32 = add %x_42, 1i
+            store %a, %20
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_44:i32 = load %a
-            %x_45:i32 = load %i
-            %18:i32 = div %x_44, %x_45
-            store %a, %18
+          $B8: {  # false
+            %21:i32 = load %a
+            %x_44:i32 = let %21
+            %23:i32 = load %i
+            %x_45:i32 = let %23
+            %25:i32 = call %tint_div_i32, %x_44, %x_45
+            store %a, %25
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_47:i32 = load %i
-        %20:i32 = add %x_47, 1i
-        store %i, %20
-        next_iteration %b3
+      $B4: {  # continuing
+        %27:i32 = load %i
+        %x_47:i32 = let %27
+        %29:i32 = add %x_47, 1i
+        store %i, %29
+        next_iteration  # -> $B3
       }
     }
-    %x_49:i32 = load %a
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_51:i32 = load %22
-    %24:bool = eq %x_49, %x_51
-    if %24 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_57:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_60:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_63:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_66:i32 = load %31
-        %33:f32 = convert %x_57
-        %34:f32 = convert %x_60
-        %35:f32 = convert %x_63
-        %36:f32 = convert %x_66
-        %37:vec4<f32> = construct %33, %34, %35, %36
-        store %x_GLF_color, %37
+    %30:i32 = load %a
+    %x_49:i32 = let %30
+    %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %33:i32 = load %32
+    %x_51:i32 = let %33
+    %35:bool = eq %x_49, %x_51
+    if %35 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %37:i32 = load %36
+        %x_57:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %40:i32 = load %39
+        %x_60:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_63:i32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %46:i32 = load %45
+        %x_66:i32 = let %46
+        %48:f32 = convert %x_57
+        %49:f32 = let %48
+        %50:f32 = convert %x_60
+        %51:f32 = let %50
+        %52:f32 = convert %x_63
+        %53:f32 = let %52
+        %54:f32 = convert %x_66
+        %55:vec4<f32> = construct %49, %51, %53, %54
+        store %x_GLF_color, %55
         exit_if  # if_3
       }
-      %b10 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_70:i32 = load %38
-        %x_71:f32 = convert %x_70
-        %41:vec4<f32> = construct %x_71, %x_71, %x_71, %x_71
-        store %x_GLF_color, %41
+      $B10: {  # false
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %57:i32 = load %56
+        %x_70:i32 = let %57
+        %59:f32 = convert %x_70
+        %x_71:f32 = let %59
+        %61:vec4<f32> = construct %x_71, %x_71, %x_71, %x_71
+        store %x_GLF_color, %61
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B12: {
+    %68:bool = eq %rhs, 0i
+    %69:bool = eq %lhs, -2147483648i
+    %70:bool = eq %rhs, -1i
+    %71:bool = and %69, %70
+    %72:bool = or %68, %71
+    %73:i32 = select %rhs, 1i, %72
+    %74:i32 = div %lhs, %73
+    ret %74
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.msl
index 89d61f5..8f307da 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,80 +12,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %6:i32 = load %5
     store %a, %6
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:i32 = load %a
         %8:bool = gte %7, 0i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %9:i32 = load %a
-        %10:i32 = div %9, 2i
-        %11:i32 = sub %10, 1i
-        store %a, %11
-        continue %b4
+        %10:i32 = call %tint_div_i32, %9, 2i
+        %12:i32 = sub %10, 1i
+        store %a, %12
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %12:i32 = load %a
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %14:i32 = load %13
-    %15:i32 = negation %14
-    %16:bool = eq %12, %15
-    if %16 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %13:i32 = load %a
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %15:i32 = load %14
+    %16:i32 = negation %15
+    %17:bool = eq %13, %16
+    if %17 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %19:i32 = load %18
+        %20:f32 = convert %19
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %23:i32 = load %22
+        %24:f32 = convert %23
+        %25:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %27:i32 = load %26
         %28:f32 = convert %27
-        %29:vec4<f32> = construct %19, %22, %25, %28
-        store %x_GLF_color, %29
-        exit_if  # if_2
-      }
-      %b8 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %31:i32 = load %30
         %32:f32 = convert %31
-        %33:vec4<f32> = construct %32
+        %33:vec4<f32> = construct %21, %25, %29, %32
         store %x_GLF_color, %33
         exit_if  # if_2
       }
+      $B8: {  # false
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:vec4<f32> = construct %36
+        store %x_GLF_color, %37
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %39:void = call %main_1
+    %40:vec4<f32> = load %x_GLF_color
+    %41:main_out = construct %40
+    ret %41
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %44:bool = eq %rhs, 0i
+    %45:bool = eq %lhs, -2147483648i
+    %46:bool = eq %rhs, -1i
+    %47:bool = and %45, %46
+    %48:bool = or %44, %47
+    %49:i32 = select %rhs, 1i, %48
+    %50:i32 = div %lhs, %49
+    ret %50
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.msl
index d96075d..46aed3f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-integer-half-minus-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,80 +12,106 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_25:i32 = load %5
+    %6:i32 = load %5
+    %x_25:i32 = let %6
     store %a, %x_25
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_30:i32 = load %a
-        %8:bool = gte %x_30, 0i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %8:i32 = load %a
+        %x_30:i32 = let %8
+        %10:bool = gte %x_30, 0i
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_33:i32 = load %a
-        %10:i32 = div %x_33, 2i
-        %11:i32 = sub %10, 1i
-        store %a, %11
-        continue %b4
+        %11:i32 = load %a
+        %x_33:i32 = let %11
+        %13:i32 = call %tint_div_i32, %x_33, 2i
+        %15:i32 = sub %13, 1i
+        store %a, %15
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_36:i32 = load %a
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %13
-    %15:i32 = negation %x_38
-    %16:bool = eq %x_36, %15
-    if %16 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_45:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_48:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_51:i32 = load %21
+    %16:i32 = load %a
+    %x_36:i32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %19:i32 = load %18
+    %x_38:i32 = let %19
+    %21:i32 = negation %x_38
+    %22:bool = eq %x_36, %21
+    if %22 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_54:i32 = load %23
-        %25:f32 = convert %x_45
-        %26:f32 = convert %x_48
-        %27:f32 = convert %x_51
-        %28:f32 = convert %x_54
-        %29:vec4<f32> = construct %25, %26, %27, %28
-        store %x_GLF_color, %29
+        %24:i32 = load %23
+        %x_45:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %27:i32 = load %26
+        %x_48:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %30:i32 = load %29
+        %x_51:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_54:i32 = let %33
+        %35:f32 = convert %x_45
+        %36:f32 = let %35
+        %37:f32 = convert %x_48
+        %38:f32 = let %37
+        %39:f32 = convert %x_51
+        %40:f32 = let %39
+        %41:f32 = convert %x_54
+        %42:vec4<f32> = construct %36, %38, %40, %41
+        store %x_GLF_color, %42
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_58:i32 = load %30
-        %x_59:f32 = convert %x_58
-        %33:vec4<f32> = construct %x_59, %x_59, %x_59, %x_59
-        store %x_GLF_color, %33
+      $B8: {  # false
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %44:i32 = load %43
+        %x_58:i32 = let %44
+        %46:f32 = convert %x_58
+        %x_59:f32 = let %46
+        %48:vec4<f32> = construct %x_59, %x_59, %x_59, %x_59
+        store %x_GLF_color, %48
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %55:bool = eq %rhs, 0i
+    %56:bool = eq %lhs, -2147483648i
+    %57:bool = eq %rhs, -1i
+    %58:bool = and %56, %57
+    %59:bool = or %55, %58
+    %60:i32 = select %rhs, 1i, %59
+    %61:i32 = div %lhs, %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.msl
index 55e055b..02a452f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %6:i32 = load %5
@@ -28,50 +28,50 @@
     %9:f32 = convert %8
     %10:vec4<f32> = construct %9
     store %x_GLF_color, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %12:i32 = load %11
         %13:i32 = load %a
         %14:bool = eq %12, %13
         %15:bool = neq %14, true
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
         %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %17:i32 = load %16
         %18:f32 = convert %17
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %20:i32 = load %19
-        %21:f32 = convert %20
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %23:i32 = load %22
-        %24:f32 = convert %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:vec4<f32> = construct %18, %21, %24, %27
-        store %x_GLF_color, %28
+        %19:f32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %21:i32 = load %20
+        %22:f32 = convert %21
+        %23:f32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:f32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:vec4<f32> = construct %19, %23, %27, %30
+        store %x_GLF_color, %31
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %33:void = call %main_1
+    %34:vec4<f32> = load %x_GLF_color
+    %35:main_out = construct %34
+    ret %35
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.msl
index 8409154..e0f4b9b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-logical-xor/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,66 +12,75 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_26:i32 = load %5
+    %6:i32 = load %5
+    %x_26:i32 = let %6
     store %a, %x_26
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_28:i32 = load %7
-    %x_29:f32 = convert %x_28
-    %10:vec4<f32> = construct %x_29, %x_29, %x_29, %x_29
-    store %x_GLF_color, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_36:i32 = load %11
-        %x_37:i32 = load %a
-        %14:bool = eq %x_36, %x_37
-        %15:bool = neq %14, true
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %9:i32 = load %8
+    %x_28:i32 = let %9
+    %11:f32 = convert %x_28
+    %x_29:f32 = let %11
+    %13:vec4<f32> = construct %x_29, %x_29, %x_29, %x_29
+    store %x_GLF_color, %13
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %15:i32 = load %14
+        %x_36:i32 = let %15
+        %17:i32 = load %a
+        %x_37:i32 = let %17
+        %19:bool = eq %x_36, %x_37
+        %20:bool = neq %19, true
+        if %20 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_42:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_45:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_48:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_51:i32 = load %22
-        %24:f32 = convert %x_42
-        %25:f32 = convert %x_45
-        %26:f32 = convert %x_48
-        %27:f32 = convert %x_51
-        %28:vec4<f32> = construct %24, %25, %26, %27
-        store %x_GLF_color, %28
+        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %22:i32 = load %21
+        %x_42:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %25:i32 = load %24
+        %x_45:i32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %28:i32 = load %27
+        %x_48:i32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %31:i32 = load %30
+        %x_51:i32 = let %31
+        %33:f32 = convert %x_42
+        %34:f32 = let %33
+        %35:f32 = convert %x_45
+        %36:f32 = let %35
+        %37:f32 = convert %x_48
+        %38:f32 = let %37
+        %39:f32 = convert %x_51
+        %40:vec4<f32> = construct %34, %36, %38, %39
+        store %x_GLF_color, %40
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.msl
index 5301797..e92aa18 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<f32, 5>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -47,105 +47,106 @@
     %20:i32 = load %19
     store %i, %20
     store %j, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %21:i32 = load %i
         %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %23:i32 = load %22
         %24:bool = lt %21, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %24 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %25:i32 = load %j
         %26:bool = lt %25, -1i
-        if %26 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %26 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_63:i32 = load %j
-        %28:ptr<function, f32, read_write> = access %arr, %x_63
-        %29:i32 = load %j
-        %30:ptr<function, f32, read_write> = access %arr, %29
-        %31:f32 = load %30
-        %32:f32 = add %31, 1.0f
-        store %28, %32
-        continue %b4
+        %27:i32 = load %j
+        %x_63:i32 = let %27
+        %29:ptr<function, f32, read_write> = access %arr, %x_63
+        %30:i32 = load %j
+        %31:ptr<function, f32, read_write> = access %arr, %30
+        %32:f32 = load %31
+        %33:f32 = add %32, 1.0f
+        store %29, %33
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %33:i32 = load %i
-        %34:i32 = add %33, 1i
-        store %i, %34
-        %35:i32 = load %j
-        %36:i32 = add %35, 1i
-        store %j, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %34:i32 = load %i
+        %35:i32 = add %34, 1i
+        store %i, %35
+        %36:i32 = load %j
+        %37:i32 = add %36, 1i
+        store %j, %37
+        next_iteration  # -> $B3
       }
     }
-    %37:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %38:f32 = load %37
-    %39:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %40:f32 = load %39
-    %41:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %42:f32 = load %41
-    %43:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %44:f32 = load %43
-    %45:vec4<f32> = construct %38, %40, %42, %44
-    store %x_GLF_color, %45
-    %46:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %47:i32 = load %46
-    store %i, %47
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %48:i32 = load %i
-        %49:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %50:i32 = load %49
-        %51:bool = lt %48, %50
-        if %51 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
+    %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %39:f32 = load %38
+    %40:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %41:f32 = load %40
+    %42:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %43:f32 = load %42
+    %44:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %45:f32 = load %44
+    %46:vec4<f32> = construct %39, %41, %43, %45
+    store %x_GLF_color, %46
+    %47:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %48:i32 = load %47
+    store %i, %48
+    loop [b: $B8, c: $B9] {  # loop_2
+      $B8: {  # body
+        %49:i32 = load %i
+        %50:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %51:i32 = load %50
+        %52:bool = lt %49, %51
+        if %52 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
             exit_if  # if_3
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_2
           }
         }
-        %52:i32 = load %i
-        %53:ptr<function, f32, read_write> = access %arr, %52
-        %54:f32 = load %53
-        %55:bool = eq %54, 2.0f
-        %56:bool = eq %55, false
-        if %56 [t: %b12] {  # if_4
-          %b12 = block {  # true
-            %57:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-            %58:f32 = load %57
-            %59:vec4<f32> = construct %58
-            store %x_GLF_color, %59
+        %53:i32 = load %i
+        %54:ptr<function, f32, read_write> = access %arr, %53
+        %55:f32 = load %54
+        %56:bool = eq %55, 2.0f
+        %57:bool = eq %56, false
+        if %57 [t: $B12] {  # if_4
+          $B12: {  # true
+            %58:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+            %59:f32 = load %58
+            %60:vec4<f32> = construct %59
+            store %x_GLF_color, %60
             exit_if  # if_4
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        next_iteration %b8
+      $B9: {  # continuing
+        %61:i32 = load %i
+        %62:i32 = add %61, 1i
+        store %i, %62
+        next_iteration  # -> $B8
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %64:void = call %main_1
+    %65:vec4<f32> = load %x_GLF_color
+    %66:main_out = construct %65
+    ret %66
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.msl
index 75d721e..7c9daba 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-loop-with-two-integers/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,131 +20,155 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %arr:ptr<function, array<f32, 5>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_42:f32 = load %12
+    %9:f32 = load %8
+    %x_38:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %12:f32 = load %11
+    %x_40:f32 = let %12
     %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_44:f32 = load %14
-    %16:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_46:f32 = load %16
-    %18:array<f32, 5> = construct %x_38, %x_40, %x_42, %x_44, %x_46
-    store %arr, %18
-    %19:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_49:i32 = load %19
+    %15:f32 = load %14
+    %x_42:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %18:f32 = load %17
+    %x_44:f32 = let %18
+    %20:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %21:f32 = load %20
+    %x_46:f32 = let %21
+    %23:array<f32, 5> = construct %x_38, %x_40, %x_42, %x_44, %x_46
+    store %arr, %23
+    %24:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %25:i32 = load %24
+    %x_49:i32 = let %25
     store %i, %x_49
     store %j, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_54:i32 = load %i
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_56:i32 = load %22
-        %24:bool = lt %x_54, %x_56
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %27:i32 = load %i
+        %x_54:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %30:i32 = load %29
+        %x_56:i32 = let %30
+        %32:bool = lt %x_54, %x_56
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_59:i32 = load %j
-        %26:bool = lt %x_59, -1i
-        if %26 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %33:i32 = load %j
+        %x_59:i32 = let %33
+        %35:bool = lt %x_59, -1i
+        if %35 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %x_63:i32 = load %j
-        %28:ptr<function, f32, read_write> = access %arr, %x_63
-        %x_65:f32 = load %28
-        %30:ptr<function, f32, read_write> = access %arr, %x_63
-        %31:f32 = add %x_65, 1.0f
-        store %30, %31
-        continue %b4
+        %36:i32 = load %j
+        %x_63:i32 = let %36
+        %38:ptr<function, f32, read_write> = access %arr, %x_63
+        %39:f32 = load %38
+        %x_65:f32 = let %39
+        %41:ptr<function, f32, read_write> = access %arr, %x_63
+        %42:f32 = add %x_65, 1.0f
+        store %41, %42
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_68:i32 = load %i
-        %33:i32 = add %x_68, 1i
-        store %i, %33
-        %x_70:i32 = load %j
-        %35:i32 = add %x_70, 1i
-        store %j, %35
-        next_iteration %b3
+      $B4: {  # continuing
+        %43:i32 = load %i
+        %x_68:i32 = let %43
+        %45:i32 = add %x_68, 1i
+        store %i, %45
+        %46:i32 = load %j
+        %x_70:i32 = let %46
+        %48:i32 = add %x_70, 1i
+        store %j, %48
+        next_iteration  # -> $B3
       }
     }
-    %36:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_73:f32 = load %36
-    %38:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_75:f32 = load %38
-    %40:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_77:f32 = load %40
-    %42:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_79:f32 = load %42
-    %44:vec4<f32> = construct %x_73, %x_75, %x_77, %x_79
-    store %x_GLF_color, %44
-    %45:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_82:i32 = load %45
+    %49:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %50:f32 = load %49
+    %x_73:f32 = let %50
+    %52:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %53:f32 = load %52
+    %x_75:f32 = let %53
+    %55:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %56:f32 = load %55
+    %x_77:f32 = let %56
+    %58:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %59:f32 = load %58
+    %x_79:f32 = let %59
+    %61:vec4<f32> = construct %x_73, %x_75, %x_77, %x_79
+    store %x_GLF_color, %61
+    %62:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %63:i32 = load %62
+    %x_82:i32 = let %63
     store %i, %x_82
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %x_87:i32 = load %i
-        %48:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_89:i32 = load %48
-        %50:bool = lt %x_87, %x_89
-        if %50 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
+    loop [b: $B8, c: $B9] {  # loop_2
+      $B8: {  # body
+        %65:i32 = load %i
+        %x_87:i32 = let %65
+        %67:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %68:i32 = load %67
+        %x_89:i32 = let %68
+        %70:bool = lt %x_87, %x_89
+        if %70 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
             exit_if  # if_3
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_92:i32 = load %i
-        %52:ptr<function, f32, read_write> = access %arr, %x_92
-        %x_94:f32 = load %52
-        %54:bool = eq %x_94, 2.0f
-        %55:bool = eq %54, false
-        if %55 [t: %b12] {  # if_4
-          %b12 = block {  # true
-            %56:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-            %x_99:f32 = load %56
-            %58:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
-            store %x_GLF_color, %58
+        %71:i32 = load %i
+        %x_92:i32 = let %71
+        %73:ptr<function, f32, read_write> = access %arr, %x_92
+        %74:f32 = load %73
+        %x_94:f32 = let %74
+        %76:bool = eq %x_94, 2.0f
+        %77:bool = eq %76, false
+        if %77 [t: $B12] {  # if_4
+          $B12: {  # true
+            %78:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+            %79:f32 = load %78
+            %x_99:f32 = let %79
+            %81:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
+            store %x_GLF_color, %81
             exit_if  # if_4
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %x_101:i32 = load %i
-        %60:i32 = add %x_101, 1i
-        store %i, %60
-        next_iteration %b8
+      $B9: {  # continuing
+        %82:i32 = load %i
+        %x_101:i32 = let %82
+        %84:i32 = add %x_101, 1i
+        store %i, %84
+        next_iteration  # -> $B8
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %62:void = call %main_1
-    %63:vec4<f32> = load %x_GLF_color
-    %64:main_out = construct %63
-    ret %64
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %86:void = call %main_1
+    %87:vec4<f32> = load %x_GLF_color
+    %88:main_out = construct %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.msl
index b4e746d..61dbda8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<i32, 5>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -37,184 +37,187 @@
     %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %12:i32 = load %11
     %13:f32 = convert %12
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %15:i32 = load %14
-    %16:f32 = convert %15
-    %17:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %18:i32 = load %17
-    %19:f32 = convert %18
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %21:i32 = load %20
-    %22:f32 = convert %21
-    %23:vec4<f32> = construct %13, %16, %19, %22
-    store %x_GLF_color, %23
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %25:i32 = load %24
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %27:i32 = load %26
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %29:i32 = load %28
-    %30:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %31:i32 = load %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %33:i32 = load %32
-    %34:array<i32, 5> = construct %25, %27, %29, %31, %33
-    store %data, %34
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %14:f32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %16:i32 = load %15
+    %17:f32 = convert %16
+    %18:f32 = let %17
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %20:i32 = load %19
+    %21:f32 = convert %20
+    %22:f32 = let %21
+    %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %24:i32 = load %23
+    %25:f32 = convert %24
+    %26:vec4<f32> = construct %14, %18, %22, %25
+    store %x_GLF_color, %26
+    %27:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %28:i32 = load %27
+    %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %30:i32 = load %29
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %32:i32 = load %31
+    %33:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %34:i32 = load %33
+    %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %36:i32 = load %35
-    store %a, %36
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %37:i32 = load %a
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %39:i32 = load %38
-        %40:bool = lt %37, %39
-        if %40 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %37:array<i32, 5> = construct %28, %30, %32, %34, %36
+    store %data, %37
+    %38:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %39:i32 = load %38
+    store %a, %39
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %40:i32 = load %a
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %42:i32 = load %41
+        %43:bool = lt %40, %42
+        if %43 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %42:i32 = load %41
-        store %i, %42
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %43:i32 = load %i
-            %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %45:i32 = load %44
-            %46:bool = lt %43, %45
-            if %46 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %45:i32 = load %44
+        store %i, %45
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %46:i32 = load %i
+            %47:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %48:i32 = load %47
+            %49:bool = lt %46, %48
+            if %49 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %47:i32 = load %i
-            store %j, %47
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %48:i32 = load %j
-                %49:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %50:i32 = load %49
-                %51:bool = lt %48, %50
-                if %51 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            %50:i32 = load %i
+            store %j, %50
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %51:i32 = load %j
+                %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %53:i32 = load %52
+                %54:bool = lt %51, %53
+                if %54 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %52:i32 = load %i
-                %53:ptr<function, i32, read_write> = access %data, %52
-                %54:i32 = load %53
-                %55:i32 = load %j
+                %55:i32 = load %i
                 %56:ptr<function, i32, read_write> = access %data, %55
                 %57:i32 = load %56
-                %58:bool = lt %54, %57
-                if %58 [t: %b15] {  # if_4
-                  %b15 = block {  # true
-                    %59:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-                    %60:i32 = load %59
-                    %61:f32 = convert %60
-                    %62:vec4<f32> = construct %61
-                    store %x_GLF_color, %62
+                %58:i32 = load %j
+                %59:ptr<function, i32, read_write> = access %data, %58
+                %60:i32 = load %59
+                %61:bool = lt %57, %60
+                if %61 [t: $B15] {  # if_4
+                  $B15: {  # true
+                    %62:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+                    %63:i32 = load %62
+                    %64:f32 = convert %63
+                    %65:vec4<f32> = construct %64
+                    store %x_GLF_color, %65
                     exit_if  # if_4
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %63:i32 = load %j
-                %64:i32 = add %63, 1i
-                store %j, %64
-                next_iteration %b11
+              $B12: {  # continuing
+                %66:i32 = load %j
+                %67:i32 = add %66, 1i
+                store %j, %67
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %65:i32 = load %i
-            %66:i32 = add %65, 1i
-            store %i, %66
-            next_iteration %b7
+          $B8: {  # continuing
+            %68:i32 = load %i
+            %69:i32 = add %68, 1i
+            store %i, %69
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %67:i32 = load %a
-        %68:i32 = add %67, 1i
-        store %a, %68
-        next_iteration %b3
+      $B4: {  # continuing
+        %70:i32 = load %a
+        %71:i32 = add %70, 1i
+        store %a, %71
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b16, c: %b17] {  # loop_4
-      %b16 = block {  # body
-        %69:f32 = load_vector_element %gl_FragCoord, 0u
-        %70:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-        %71:f32 = load %70
-        %72:bool = lt %69, %71
-        if %72 [t: %b18, f: %b19] {  # if_5
-          %b18 = block {  # true
+    loop [b: $B16, c: $B17] {  # loop_4
+      $B16: {  # body
+        %72:f32 = load_vector_element %gl_FragCoord, 0u
+        %73:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+        %74:f32 = load %73
+        %75:bool = lt %72, %74
+        if %75 [t: $B18, f: $B19] {  # if_5
+          $B18: {  # true
             exit_if  # if_5
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_4
           }
         }
-        %73:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %74:i32 = load %73
-        store %i_1, %74
-        loop [b: %b20, c: %b21] {  # loop_5
-          %b20 = block {  # body
-            %75:i32 = load %i_1
-            %76:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %77:i32 = load %76
-            %78:bool = lt %75, %77
-            if %78 [t: %b22, f: %b23] {  # if_6
-              %b22 = block {  # true
+        %76:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %77:i32 = load %76
+        store %i_1, %77
+        loop [b: $B20, c: $B21] {  # loop_5
+          $B20: {  # body
+            %78:i32 = load %i_1
+            %79:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %80:i32 = load %79
+            %81:bool = lt %78, %80
+            if %81 [t: $B22, f: $B23] {  # if_6
+              $B22: {  # true
                 exit_if  # if_6
               }
-              %b23 = block {  # false
+              $B23: {  # false
                 exit_loop  # loop_5
               }
             }
-            %79:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-            %80:i32 = load %79
-            %81:f32 = convert %80
-            %82:vec4<f32> = construct %81
-            store %x_GLF_color, %82
-            continue %b21
+            %82:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+            %83:i32 = load %82
+            %84:f32 = convert %83
+            %85:vec4<f32> = construct %84
+            store %x_GLF_color, %85
+            continue  # -> $B21
           }
-          %b21 = block {  # continuing
-            %83:i32 = load %i_1
-            %84:i32 = add %83, 1i
-            store %i_1, %84
-            next_iteration %b20
+          $B21: {  # continuing
+            %86:i32 = load %i_1
+            %87:i32 = add %86, 1i
+            store %i_1, %87
+            next_iteration  # -> $B20
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        next_iteration %b16
+      $B17: {  # continuing
+        next_iteration  # -> $B16
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b24 {
-  %b24 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B24: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %90:void = call %main_1
+    %91:vec4<f32> = load %x_GLF_color
+    %92:main_out = construct %91
+    ret %92
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.msl
index 31f5d15..7f1ec6b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-basic-block-for-for-for-less-than/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,201 +20,239 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<i32, 5>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_45:i32 = load %11
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_48:i32 = load %13
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_51:i32 = load %15
-    %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_54:i32 = load %17
-    %19:f32 = convert %x_45
-    %20:f32 = convert %x_48
-    %21:f32 = convert %x_51
-    %22:f32 = convert %x_54
-    %23:vec4<f32> = construct %19, %20, %21, %22
-    store %x_GLF_color, %23
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_58:i32 = load %24
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_60:i32 = load %26
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_62:i32 = load %28
-    %30:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_64:i32 = load %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_66:i32 = load %32
-    %34:array<i32, 5> = construct %x_58, %x_60, %x_62, %x_64, %x_66
-    store %data, %34
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_69:i32 = load %35
+    %12:i32 = load %11
+    %x_45:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %15:i32 = load %14
+    %x_48:i32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %18:i32 = load %17
+    %x_51:i32 = let %18
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %21:i32 = load %20
+    %x_54:i32 = let %21
+    %23:f32 = convert %x_45
+    %24:f32 = let %23
+    %25:f32 = convert %x_48
+    %26:f32 = let %25
+    %27:f32 = convert %x_51
+    %28:f32 = let %27
+    %29:f32 = convert %x_54
+    %30:vec4<f32> = construct %24, %26, %28, %29
+    store %x_GLF_color, %30
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %32:i32 = load %31
+    %x_58:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %35:i32 = load %34
+    %x_60:i32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %38:i32 = load %37
+    %x_62:i32 = let %38
+    %40:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %41:i32 = load %40
+    %x_64:i32 = let %41
+    %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %44:i32 = load %43
+    %x_66:i32 = let %44
+    %46:array<i32, 5> = construct %x_58, %x_60, %x_62, %x_64, %x_66
+    store %data, %46
+    %47:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %48:i32 = load %47
+    %x_69:i32 = let %48
     store %a, %x_69
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_74:i32 = load %a
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_76:i32 = load %38
-        %40:bool = lt %x_74, %x_76
-        if %40 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %50:i32 = load %a
+        %x_74:i32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %53:i32 = load %52
+        %x_76:i32 = let %53
+        %55:bool = lt %x_74, %x_76
+        if %55 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %x_80:i32 = load %41
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %57:i32 = load %56
+        %x_80:i32 = let %57
         store %i, %x_80
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_85:i32 = load %i
-            %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_87:i32 = load %44
-            %46:bool = lt %x_85, %x_87
-            if %46 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %59:i32 = load %i
+            %x_85:i32 = let %59
+            %61:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %62:i32 = load %61
+            %x_87:i32 = let %62
+            %64:bool = lt %x_85, %x_87
+            if %64 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_90:i32 = load %i
+            %65:i32 = load %i
+            %x_90:i32 = let %65
             store %j, %x_90
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_95:i32 = load %j
-                %49:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %x_97:i32 = load %49
-                %51:bool = lt %x_95, %x_97
-                if %51 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %67:i32 = load %j
+                %x_95:i32 = let %67
+                %69:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %70:i32 = load %69
+                %x_97:i32 = let %70
+                %72:bool = lt %x_95, %x_97
+                if %72 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %x_100:i32 = load %i
-                %53:ptr<function, i32, read_write> = access %data, %x_100
-                %x_102:i32 = load %53
-                %x_103:i32 = load %j
-                %56:ptr<function, i32, read_write> = access %data, %x_103
-                %x_105:i32 = load %56
-                %58:bool = lt %x_102, %x_105
-                if %58 [t: %b15] {  # if_4
-                  %b15 = block {  # true
-                    %59:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-                    %x_110:i32 = load %59
-                    %x_111:f32 = convert %x_110
-                    %62:vec4<f32> = construct %x_111, %x_111, %x_111, %x_111
-                    store %x_GLF_color, %62
+                %73:i32 = load %i
+                %x_100:i32 = let %73
+                %75:ptr<function, i32, read_write> = access %data, %x_100
+                %76:i32 = load %75
+                %x_102:i32 = let %76
+                %78:i32 = load %j
+                %x_103:i32 = let %78
+                %80:ptr<function, i32, read_write> = access %data, %x_103
+                %81:i32 = load %80
+                %x_105:i32 = let %81
+                %83:bool = lt %x_102, %x_105
+                if %83 [t: $B15] {  # if_4
+                  $B15: {  # true
+                    %84:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+                    %85:i32 = load %84
+                    %x_110:i32 = let %85
+                    %87:f32 = convert %x_110
+                    %x_111:f32 = let %87
+                    %89:vec4<f32> = construct %x_111, %x_111, %x_111, %x_111
+                    store %x_GLF_color, %89
                     exit_if  # if_4
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_113:i32 = load %j
-                %64:i32 = add %x_113, 1i
-                store %j, %64
-                next_iteration %b11
+              $B12: {  # continuing
+                %90:i32 = load %j
+                %x_113:i32 = let %90
+                %92:i32 = add %x_113, 1i
+                store %j, %92
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_115:i32 = load %i
-            %66:i32 = add %x_115, 1i
-            store %i, %66
-            next_iteration %b7
+          $B8: {  # continuing
+            %93:i32 = load %i
+            %x_115:i32 = let %93
+            %95:i32 = add %x_115, 1i
+            store %i, %95
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_117:i32 = load %a
-        %68:i32 = add %x_117, 1i
-        store %a, %68
-        next_iteration %b3
+      $B4: {  # continuing
+        %96:i32 = load %a
+        %x_117:i32 = let %96
+        %98:i32 = add %x_117, 1i
+        store %a, %98
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b16, c: %b17] {  # loop_4
-      %b16 = block {  # body
-        %x_124:f32 = load_vector_element %gl_FragCoord, 0u
-        %70:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-        %x_126:f32 = load %70
-        %72:bool = lt %x_124, %x_126
-        if %72 [t: %b18, f: %b19] {  # if_5
-          %b18 = block {  # true
+    loop [b: $B16, c: $B17] {  # loop_4
+      $B16: {  # body
+        %99:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_124:f32 = let %99
+        %101:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+        %102:f32 = load %101
+        %x_126:f32 = let %102
+        %104:bool = lt %x_124, %x_126
+        if %104 [t: $B18, f: $B19] {  # if_5
+          $B18: {  # true
             exit_if  # if_5
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_4
           }
         }
-        %73:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %x_130:i32 = load %73
+        %105:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %106:i32 = load %105
+        %x_130:i32 = let %106
         store %i_1, %x_130
-        loop [b: %b20, c: %b21] {  # loop_5
-          %b20 = block {  # body
-            %x_135:i32 = load %i_1
-            %76:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_137:i32 = load %76
-            %78:bool = lt %x_135, %x_137
-            if %78 [t: %b22, f: %b23] {  # if_6
-              %b22 = block {  # true
+        loop [b: $B20, c: $B21] {  # loop_5
+          $B20: {  # body
+            %108:i32 = load %i_1
+            %x_135:i32 = let %108
+            %110:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %111:i32 = load %110
+            %x_137:i32 = let %111
+            %113:bool = lt %x_135, %x_137
+            if %113 [t: $B22, f: $B23] {  # if_6
+              $B22: {  # true
                 exit_if  # if_6
               }
-              %b23 = block {  # false
+              $B23: {  # false
                 exit_loop  # loop_5
               }
             }
-            %79:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-            %x_141:i32 = load %79
-            %x_142:f32 = convert %x_141
-            %82:vec4<f32> = construct %x_142, %x_142, %x_142, %x_142
-            store %x_GLF_color, %82
-            continue %b21
+            %114:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+            %115:i32 = load %114
+            %x_141:i32 = let %115
+            %117:f32 = convert %x_141
+            %x_142:f32 = let %117
+            %119:vec4<f32> = construct %x_142, %x_142, %x_142, %x_142
+            store %x_GLF_color, %119
+            continue  # -> $B21
           }
-          %b21 = block {  # continuing
-            %x_144:i32 = load %i_1
-            %84:i32 = add %x_144, 1i
-            store %i_1, %84
-            next_iteration %b20
+          $B21: {  # continuing
+            %120:i32 = load %i_1
+            %x_144:i32 = let %120
+            %122:i32 = add %x_144, 1i
+            store %i_1, %122
+            next_iteration  # -> $B20
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        next_iteration %b16
+      $B17: {  # continuing
+        next_iteration  # -> $B16
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b24 {
-  %b24 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B24: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %125:void = call %main_1
+    %126:vec4<f32> = load %x_GLF_color
+    %127:main_out = construct %126
+    ret %127
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.msl
index 098753b..e7b39fd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,127 +20,135 @@
   x_GLF_v1_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_v1:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %uv:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
-    %10:vec4<f32> = load %gl_FragCoord
-    %11:vec2<f32> = swizzle %10, xy
-    store %uv, %11
-    %12:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %13:f32 = load %12
-    %14:vec4<f32> = construct %13
-    store %v1, %14
-    %15:f32 = load_vector_element %uv, 1u
-    %16:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %17:f32 = load %16
-    %18:bool = gte %15, %17
-    if %18 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %19:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %20:f32 = load %19
-        store_vector_element %v1, 0u, %20
-        %21:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %22:f32 = load %21
-        store_vector_element %v1, 1u, %22
-        %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %24:f32 = load %23
-        store_vector_element %v1, 2u, %24
-        %25:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %26:f32 = load %25
-        store_vector_element %v1, 3u, %26
+    %11:vec4<f32> = load %gl_FragCoord
+    %12:vec2<f32> = swizzle %11, xy
+    store %uv, %12
+    %13:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %14:f32 = load %13
+    %15:vec4<f32> = construct %14
+    store %v1, %15
+    %16:f32 = load_vector_element %uv, 1u
+    %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %18:f32 = load %17
+    %19:bool = gte %16, %18
+    if %19 [t: $B3] {  # if_1
+      $B3: {  # true
+        %20:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %21:f32 = load %20
+        store_vector_element %v1, 0u, %21
+        %22:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %23:f32 = load %22
+        store_vector_element %v1, 1u, %23
+        %24:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %25:f32 = load %24
+        store_vector_element %v1, 2u, %25
+        %26:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %27:f32 = load %26
+        store_vector_element %v1, 3u, %27
         exit_if  # if_1
       }
     }
-    %27:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-    %28:f32 = load %27
-    store %a, %28
-    %29:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-    %30:i32 = load %29
-    store %i, %30
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %31:i32 = load %i
-        %32:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %33:i32 = load %32
-        %34:bool = lt %31, %33
-        if %34 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    %28:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+    %29:f32 = load %28
+    store %a, %29
+    %30:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+    %31:i32 = load %30
+    store %i, %31
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %32:i32 = load %i
+        %33:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %34:i32 = load %33
+        %35:bool = lt %32, %34
+        if %35 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %35:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %36:f32 = load %35
-        %37:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %38:f32 = load %37
-        %39:bool = lt %36, %38
-        if %39 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            discard
+        %36:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %37:f32 = load %36
+        %38:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %39:f32 = load %38
+        %40:bool = lt %37, %39
+        if %40 [t: $B8] {  # if_3
+          $B8: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
-        %40:f32 = load_vector_element %v1, 0u
-        %41:f32 = load_vector_element %v1, 1u
-        %42:f32 = add %40, %41
-        %43:f32 = load_vector_element %v1, 2u
-        %44:f32 = add %42, %43
-        %45:f32 = load_vector_element %v1, 3u
-        %46:f32 = add %44, %45
-        %47:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
-        %48:f32 = load %47
-        %49:f32 = pow %46, %48
-        store %a, %49
-        continue %b5
+        %41:f32 = load_vector_element %v1, 0u
+        %42:f32 = load_vector_element %v1, 1u
+        %43:f32 = add %41, %42
+        %44:f32 = load_vector_element %v1, 2u
+        %45:f32 = add %43, %44
+        %46:f32 = load_vector_element %v1, 3u
+        %47:f32 = add %45, %46
+        %48:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
+        %49:f32 = load %48
+        %50:f32 = pow %47, %49
+        store %a, %50
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %50:i32 = load %i
-        %51:i32 = add %50, 1i
-        store %i, %51
-        next_iteration %b4
+      $B5: {  # continuing
+        %51:i32 = load %i
+        %52:i32 = add %51, 1i
+        store %i, %52
+        next_iteration  # -> $B4
       }
     }
-    %52:f32 = load %a
-    %53:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %54:f32 = load %53
-    %55:bool = eq %52, %54
-    if %55 [t: %b9, f: %b10] {  # if_4
-      %b9 = block {  # true
-        %56:vec4<f32> = load %v1
-        store %x_GLF_v1, %56
+    %53:f32 = load %a
+    %54:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %55:f32 = load %54
+    %56:bool = eq %53, %55
+    if %56 [t: $B9, f: $B10] {  # if_4
+      $B9: {  # true
+        %57:vec4<f32> = load %v1
+        store %x_GLF_v1, %57
         exit_if  # if_4
       }
-      %b10 = block {  # false
-        %57:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %58:i32 = load %57
-        %59:f32 = convert %58
-        %60:vec4<f32> = construct %59
-        store %x_GLF_v1, %60
+      $B10: {  # false
+        %58:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:vec4<f32> = construct %60
+        store %x_GLF_v1, %61
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_v1
-    %65:main_out = construct %64
-    ret %65
+    %64:void = call %main_1
+    %65:vec4<f32> = load %x_GLF_v1
+    %66:main_out = construct %65
+    %67:bool = load %continue_execution
+    %68:bool = eq %67, false
+    if %68 [t: $B12] {  # if_5
+      $B12: {  # true
+        terminate_invocation
+      }
+    }
+    ret %66
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.msl
index 51b3acd..5a308a1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machine-scheduler-for-if-pow/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,129 +20,162 @@
   x_GLF_v1_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_v1:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %uv:ptr<function, vec2<f32>, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
-    %x_49:vec4<f32> = load %gl_FragCoord
-    %11:f32 = access %x_49, 0u
-    %12:f32 = access %x_49, 1u
-    %13:vec2<f32> = construct %11, %12
-    store %uv, %13
-    %14:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_52:f32 = load %14
-    %16:vec4<f32> = construct %x_52, %x_52, %x_52, %x_52
-    store %v1, %16
-    %x_55:f32 = load_vector_element %uv, 1u
-    %18:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_57:f32 = load %18
-    %20:bool = gte %x_55, %x_57
-    if %20 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %21:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_62:f32 = load %21
+    %11:vec4<f32> = load %gl_FragCoord
+    %x_49:vec4<f32> = let %11
+    %13:f32 = access %x_49, 0u
+    %14:f32 = access %x_49, 1u
+    %15:vec2<f32> = construct %13, %14
+    store %uv, %15
+    %16:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %17:f32 = load %16
+    %x_52:f32 = let %17
+    %19:vec4<f32> = construct %x_52, %x_52, %x_52, %x_52
+    store %v1, %19
+    %20:f32 = load_vector_element %uv, 1u
+    %x_55:f32 = let %20
+    %22:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_57:f32 = let %23
+    %25:bool = gte %x_55, %x_57
+    if %25 [t: $B3] {  # if_1
+      $B3: {  # true
+        %26:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %27:f32 = load %26
+        %x_62:f32 = let %27
         store_vector_element %v1, 0u, %x_62
-        %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_65:f32 = load %23
+        %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %30:f32 = load %29
+        %x_65:f32 = let %30
         store_vector_element %v1, 1u, %x_65
-        %25:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_68:f32 = load %25
+        %32:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %33:f32 = load %32
+        %x_68:f32 = let %33
         store_vector_element %v1, 2u, %x_68
-        %27:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_71:f32 = load %27
+        %35:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %36:f32 = load %35
+        %x_71:f32 = let %36
         store_vector_element %v1, 3u, %x_71
         exit_if  # if_1
       }
     }
-    %29:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-    %x_74:f32 = load %29
+    %38:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+    %39:f32 = load %38
+    %x_74:f32 = let %39
     store %a, %x_74
-    %31:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-    %x_15:i32 = load %31
+    %41:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+    %42:i32 = load %41
+    %x_15:i32 = let %42
     store %i, %x_15
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_16:i32 = load %i
-        %34:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %x_17:i32 = load %34
-        %36:bool = lt %x_16, %x_17
-        if %36 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %44:i32 = load %i
+        %x_16:i32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %47:i32 = load %46
+        %x_17:i32 = let %47
+        %49:bool = lt %x_16, %x_17
+        if %49 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %37:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_84:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_86:f32 = load %39
-        %41:bool = lt %x_84, %x_86
-        if %41 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            discard
+        %50:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %51:f32 = load %50
+        %x_84:f32 = let %51
+        %53:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %54:f32 = load %53
+        %x_86:f32 = let %54
+        %56:bool = lt %x_84, %x_86
+        if %56 [t: $B8] {  # if_3
+          $B8: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
-        %x_91:f32 = load_vector_element %v1, 0u
-        %x_93:f32 = load_vector_element %v1, 1u
-        %x_96:f32 = load_vector_element %v1, 2u
-        %x_99:f32 = load_vector_element %v1, 3u
-        %46:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
-        %x_102:f32 = load %46
-        %48:f32 = add %x_91, %x_93
-        %49:f32 = add %48, %x_96
-        %50:f32 = add %49, %x_99
-        %51:f32 = pow %50, %x_102
-        store %a, %51
-        continue %b5
+        %57:f32 = load_vector_element %v1, 0u
+        %x_91:f32 = let %57
+        %59:f32 = load_vector_element %v1, 1u
+        %x_93:f32 = let %59
+        %61:f32 = load_vector_element %v1, 2u
+        %x_96:f32 = let %61
+        %63:f32 = load_vector_element %v1, 3u
+        %x_99:f32 = let %63
+        %65:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
+        %66:f32 = load %65
+        %x_102:f32 = let %66
+        %68:f32 = add %x_91, %x_93
+        %69:f32 = add %68, %x_96
+        %70:f32 = add %69, %x_99
+        %71:f32 = pow %70, %x_102
+        store %a, %71
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_18:i32 = load %i
-        %53:i32 = add %x_18, 1i
-        store %i, %53
-        next_iteration %b4
+      $B5: {  # continuing
+        %72:i32 = load %i
+        %x_18:i32 = let %72
+        %74:i32 = add %x_18, 1i
+        store %i, %74
+        next_iteration  # -> $B4
       }
     }
-    %x_104:f32 = load %a
-    %55:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_106:f32 = load %55
-    %57:bool = eq %x_104, %x_106
-    if %57 [t: %b9, f: %b10] {  # if_4
-      %b9 = block {  # true
-        %x_111:vec4<f32> = load %v1
+    %75:f32 = load %a
+    %x_104:f32 = let %75
+    %77:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %78:f32 = load %77
+    %x_106:f32 = let %78
+    %80:bool = eq %x_104, %x_106
+    if %80 [t: $B9, f: $B10] {  # if_4
+      $B9: {  # true
+        %81:vec4<f32> = load %v1
+        %x_111:vec4<f32> = let %81
         store %x_GLF_v1, %x_111
         exit_if  # if_4
       }
-      %b10 = block {  # false
-        %59:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_20:i32 = load %59
-        %x_113:f32 = convert %x_20
-        %62:vec4<f32> = construct %x_113, %x_113, %x_113, %x_113
-        store %x_GLF_v1, %62
+      $B10: {  # false
+        %83:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %84:i32 = load %83
+        %x_20:i32 = let %84
+        %86:f32 = convert %x_20
+        %x_113:f32 = let %86
+        %88:vec4<f32> = construct %x_113, %x_113, %x_113, %x_113
+        store %x_GLF_v1, %88
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %65:void = call %main_1
-    %66:vec4<f32> = load %x_GLF_v1
-    %67:main_out = construct %66
-    ret %67
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_v1
+    %93:main_out = construct %92
+    %94:bool = load %continue_execution
+    %95:bool = eq %94, false
+    if %95 [t: $B12] {  # if_5
+      $B12: {  # true
+        terminate_invocation
+      }
+    }
+    ret %93
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.msl
index 0538e7a..496ef8c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,62 +8,63 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:i32 = load %i
-        %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %8:f32 = load_vector_element %7, 1u
-        %9:i32 = convert %8
-        %10:bool = lt %6, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %7:i32 = let %6
+        %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %9:f32 = load_vector_element %8, 1u
+        %10:i32 = call %tint_f32_to_i32, %9
+        %12:bool = lt %7, %10
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %11:i32 = load %a
-        %12:bool = gt %11, 0i
-        if %12 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %13:i32 = load %a
+        %14:bool = gt %13, 0i
+        if %14 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %13:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %14:f32 = load_vector_element %13, 1u
-        %15:i32 = convert %14
-        %16:i32 = mul %15, 2i
-        %17:i32 = div %16, 2i
-        store %a, %17
-        continue %b4
+        %15:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %16:f32 = load_vector_element %15, 1u
+        %17:i32 = call %tint_f32_to_i32, %16
+        %18:i32 = mul %17, 2i
+        %19:i32 = call %tint_div_i32, %18, 2i
+        store %a, %19
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %18:i32 = load %i
-        %19:i32 = add %18, 1i
-        store %i, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %21:i32 = load %i
+        %22:i32 = add %21, 1i
+        store %i, %22
+        next_iteration  # -> $B3
       }
     }
-    %20:i32 = load %a
-    %21:bool = eq %20, 1i
-    if %21 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %23:i32 = load %a
+    %24:bool = eq %23, 1i
+    if %24 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -71,12 +72,34 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %26:void = call %main_1
+    %27:vec4<f32> = load %x_GLF_color
+    %28:main_out = construct %27
+    ret %28
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %31:bool = eq %rhs, 0i
+    %32:bool = eq %lhs, -2147483648i
+    %33:bool = eq %rhs, -1i
+    %34:bool = and %32, %33
+    %35:bool = or %31, %34
+    %36:i32 = select %rhs, 1i, %35
+    %37:i32 = div %lhs, %36
+    ret %37
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %39:i32 = convert %value
+    %40:bool = gte %value, -2147483648.0f
+    %41:i32 = select -2147483648i, %39, %40
+    %42:bool = lte %value, 2147483520.0f
+    %43:i32 = select 2147483647i, %41, %42
+    ret %43
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.msl
index d281eab..42e494f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-machinevaluetype-one-iter-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,62 +8,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_33:i32 = load %i
-        %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_35:f32 = load_vector_element %7, 1u
-        %9:i32 = convert %x_35
-        %10:bool = lt %x_33, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %x_33:i32 = let %6
+        %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %9:f32 = load_vector_element %8, 1u
+        %x_35:f32 = let %9
+        %11:i32 = call %tint_f32_to_i32, %x_35
+        %13:bool = lt %x_33, %11
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_39:i32 = load %a
-        %12:bool = gt %x_39, 0i
-        if %12 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %14:i32 = load %a
+        %x_39:i32 = let %14
+        %16:bool = gt %x_39, 0i
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
-        %13:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_44:f32 = load_vector_element %13, 1u
-        %15:i32 = convert %x_44
-        %16:i32 = mul %15, 2i
-        %17:i32 = div %16, 2i
-        store %a, %17
-        continue %b4
+        %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %18:f32 = load_vector_element %17, 1u
+        %x_44:f32 = let %18
+        %20:i32 = call %tint_f32_to_i32, %x_44
+        %21:i32 = mul %20, 2i
+        %22:i32 = call %tint_div_i32, %21, 2i
+        store %a, %22
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_48:i32 = load %i
-        %19:i32 = add %x_48, 1i
-        store %i, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %24:i32 = load %i
+        %x_48:i32 = let %24
+        %26:i32 = add %x_48, 1i
+        store %i, %26
+        next_iteration  # -> $B3
       }
     }
-    %x_50:i32 = load %a
-    %21:bool = eq %x_50, 1i
-    if %21 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %27:i32 = load %a
+    %x_50:i32 = let %27
+    %29:bool = eq %x_50, 1i
+    if %29 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -71,12 +77,34 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %36:bool = eq %rhs, 0i
+    %37:bool = eq %lhs, -2147483648i
+    %38:bool = eq %rhs, -1i
+    %39:bool = and %37, %38
+    %40:bool = or %36, %39
+    %41:i32 = select %rhs, 1i, %40
+    %42:i32 = div %lhs, %41
+    ret %42
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %44:i32 = convert %value
+    %45:bool = gte %value, -2147483648.0f
+    %46:i32 = select -2147483648i, %44, %45
+    %47:bool = lte %value, 2147483520.0f
+    %48:i32 = select 2147483647i, %46, %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.msl
index 2df17f3..4bf2834 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,115 +12,118 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %7:i32 = load %6
     %8:f32 = convert %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %10:i32 = load %9
-    %11:f32 = convert %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %13:i32 = load %12
-    %14:f32 = convert %13
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %16:i32 = load %15
-    %17:f32 = convert %16
-    %18:vec4<f32> = construct %8, %11, %14, %17
-    store %x_GLF_color, %18
-    %19:f32 = load_vector_element %gl_FragCoord, 1u
-    %20:bool = lt %19, 0.0f
-    if %20 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:vec4<f32> = construct %23
-        store %x_GLF_color, %24
+    %9:f32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:f32 = convert %11
+    %13:f32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %16:f32 = convert %15
+    %17:f32 = let %16
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %19:i32 = load %18
+    %20:f32 = convert %19
+    %21:vec4<f32> = construct %9, %13, %17, %20
+    store %x_GLF_color, %21
+    %22:f32 = load_vector_element %gl_FragCoord, 1u
+    %23:bool = lt %22, 0.0f
+    if %23 [t: $B3] {  # if_1
+      $B3: {  # true
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %25:i32 = load %24
+        %26:f32 = convert %25
+        %27:vec4<f32> = construct %26
+        store %x_GLF_color, %27
         exit_if  # if_1
       }
     }
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %26:i32 = load %25
-    store %i, %26
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %27:i32 = load %i
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %29:i32 = load %28
-        %30:bool = lt %27, %29
-        if %30 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %29:i32 = load %28
+    store %i, %29
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %30:i32 = load %i
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %32:i32 = load %31
+        %33:bool = lt %30, %32
+        if %33 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %31:f32 = load_vector_element %gl_FragCoord, 0u
-        %32:bool = gt %31, 0.0f
-        if %32 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %33:f32 = load_vector_element %gl_FragCoord, 1u
-            %34:bool = lt %33, 0.0f
-            if %34 [t: %b9] {  # if_4
-              %b9 = block {  # true
-                %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %36:i32 = load %35
-                %37:f32 = convert %36
-                %38:vec4<f32> = construct %37
-                store %x_GLF_color, %38
+        %34:f32 = load_vector_element %gl_FragCoord, 0u
+        %35:bool = gt %34, 0.0f
+        if %35 [t: $B8] {  # if_3
+          $B8: {  # true
+            %36:f32 = load_vector_element %gl_FragCoord, 1u
+            %37:bool = lt %36, 0.0f
+            if %37 [t: $B9] {  # if_4
+              $B9: {  # true
+                %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %39:i32 = load %38
+                %40:f32 = convert %39
+                %41:vec4<f32> = construct %40
+                store %x_GLF_color, %41
                 exit_loop  # loop_1
               }
             }
             exit_if  # if_3
           }
         }
-        %39:f32 = load_vector_element %gl_FragCoord, 0u
-        %40:bool = gt %39, 0.0f
-        if %40 [t: %b10] {  # if_5
-          %b10 = block {  # true
-            %41:f32 = load_vector_element %gl_FragCoord, 1u
-            %42:bool = lt %41, 0.0f
-            if %42 [t: %b11] {  # if_6
-              %b11 = block {  # true
-                %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %44:i32 = load %43
-                %45:f32 = convert %44
-                %46:vec4<f32> = construct %45
-                store %x_GLF_color, %46
+        %42:f32 = load_vector_element %gl_FragCoord, 0u
+        %43:bool = gt %42, 0.0f
+        if %43 [t: $B10] {  # if_5
+          $B10: {  # true
+            %44:f32 = load_vector_element %gl_FragCoord, 1u
+            %45:bool = lt %44, 0.0f
+            if %45 [t: $B11] {  # if_6
+              $B11: {  # true
+                %46:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %47:i32 = load %46
+                %48:f32 = convert %47
+                %49:vec4<f32> = construct %48
+                store %x_GLF_color, %49
                 exit_if  # if_6
               }
             }
             exit_if  # if_5
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %47:i32 = load %i
-        %48:i32 = add %47, 1i
-        store %i, %48
-        next_iteration %b4
+      $B5: {  # continuing
+        %50:i32 = load %i
+        %51:i32 = add %50, 1i
+        store %i, %51
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+    %54:void = call %main_1
+    %55:vec4<f32> = load %x_GLF_color
+    %56:main_out = construct %55
+    ret %56
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.msl
index 6dd4234..1e85257 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-conditions-break/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,115 +12,137 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_31:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_34:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_37:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:i32 = load %12
-    %14:f32 = convert %x_31
-    %15:f32 = convert %x_34
-    %16:f32 = convert %x_37
-    %17:f32 = convert %x_40
-    %18:vec4<f32> = construct %14, %15, %16, %17
-    store %x_GLF_color, %18
-    %x_44:f32 = load_vector_element %gl_FragCoord, 1u
-    %20:bool = lt %x_44, 0.0f
-    if %20 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_49:i32 = load %21
-        %x_50:f32 = convert %x_49
-        %24:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
-        store %x_GLF_color, %24
+    %7:i32 = load %6
+    %x_31:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_34:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_37:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %16:i32 = load %15
+    %x_40:i32 = let %16
+    %18:f32 = convert %x_31
+    %19:f32 = let %18
+    %20:f32 = convert %x_34
+    %21:f32 = let %20
+    %22:f32 = convert %x_37
+    %23:f32 = let %22
+    %24:f32 = convert %x_40
+    %25:vec4<f32> = construct %19, %21, %23, %24
+    store %x_GLF_color, %25
+    %26:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_44:f32 = let %26
+    %28:bool = lt %x_44, 0.0f
+    if %28 [t: $B3] {  # if_1
+      $B3: {  # true
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %30:i32 = load %29
+        %x_49:i32 = let %30
+        %32:f32 = convert %x_49
+        %x_50:f32 = let %32
+        %34:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
+        store %x_GLF_color, %34
         exit_if  # if_1
       }
     }
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_53:i32 = load %25
+    %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %36:i32 = load %35
+    %x_53:i32 = let %36
     store %i, %x_53
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_58:i32 = load %i
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_60:i32 = load %28
-        %30:bool = lt %x_58, %x_60
-        if %30 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %38:i32 = load %i
+        %x_58:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %41:i32 = load %40
+        %x_60:i32 = let %41
+        %43:bool = lt %x_58, %x_60
+        if %43 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_64:f32 = load_vector_element %gl_FragCoord, 0u
-        %32:bool = gt %x_64, 0.0f
-        if %32 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %x_69:f32 = load_vector_element %gl_FragCoord, 1u
-            %34:bool = lt %x_69, 0.0f
-            if %34 [t: %b9] {  # if_4
-              %b9 = block {  # true
-                %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %x_74:i32 = load %35
-                %x_75:f32 = convert %x_74
-                %38:vec4<f32> = construct %x_75, %x_75, %x_75, %x_75
-                store %x_GLF_color, %38
+        %44:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_64:f32 = let %44
+        %46:bool = gt %x_64, 0.0f
+        if %46 [t: $B8] {  # if_3
+          $B8: {  # true
+            %47:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_69:f32 = let %47
+            %49:bool = lt %x_69, 0.0f
+            if %49 [t: $B9] {  # if_4
+              $B9: {  # true
+                %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %51:i32 = load %50
+                %x_74:i32 = let %51
+                %53:f32 = convert %x_74
+                %x_75:f32 = let %53
+                %55:vec4<f32> = construct %x_75, %x_75, %x_75, %x_75
+                store %x_GLF_color, %55
                 exit_loop  # loop_1
               }
             }
             exit_if  # if_3
           }
         }
-        %x_78:f32 = load_vector_element %gl_FragCoord, 0u
-        %40:bool = gt %x_78, 0.0f
-        if %40 [t: %b10] {  # if_5
-          %b10 = block {  # true
-            %x_83:f32 = load_vector_element %gl_FragCoord, 1u
-            %42:bool = lt %x_83, 0.0f
-            if %42 [t: %b11] {  # if_6
-              %b11 = block {  # true
-                %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %x_88:i32 = load %43
-                %x_89:f32 = convert %x_88
-                %46:vec4<f32> = construct %x_89, %x_89, %x_89, %x_89
-                store %x_GLF_color, %46
+        %56:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_78:f32 = let %56
+        %58:bool = gt %x_78, 0.0f
+        if %58 [t: $B10] {  # if_5
+          $B10: {  # true
+            %59:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_83:f32 = let %59
+            %61:bool = lt %x_83, 0.0f
+            if %61 [t: $B11] {  # if_6
+              $B11: {  # true
+                %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %63:i32 = load %62
+                %x_88:i32 = let %63
+                %65:f32 = convert %x_88
+                %x_89:f32 = let %65
+                %67:vec4<f32> = construct %x_89, %x_89, %x_89, %x_89
+                store %x_GLF_color, %67
                 exit_if  # if_6
               }
             }
             exit_if  # if_5
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_91:i32 = load %i
-        %48:i32 = add %x_91, 1i
-        store %i, %48
-        next_iteration %b4
+      $B5: {  # continuing
+        %68:i32 = load %i
+        %x_91:i32 = let %68
+        %70:i32 = add %x_91, 1i
+        store %i, %70
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.msl
index 6bf41fe..47adeba 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<i32, 4>, read_write> = var
@@ -28,134 +28,143 @@
     %10:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
     %11:i32 = load %10
     store %i, %11
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %12:i32 = load %i
         %13:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
         %14:i32 = load %13
         %15:bool = lt %12, %14
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_93:i32 = load %a
-        %17:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %18:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %20:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %22:i32 = load %21
-        %23:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %24:i32 = load %23
-        %25:array<i32, 4> = construct %18, %20, %22, %24
-        store %indexable, %25
-        %26:ptr<function, i32, read_write> = access %indexable, %x_93
-        %27:i32 = load %26
-        %28:i32 = load %x
-        %29:bool = gt %27, %28
-        if %29 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            if true [t: %b9, f: %b10] {  # if_3
-              %b9 = block {  # true
-                %30:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-                %x_105:i32 = load %30
+        %16:i32 = load %a
+        %x_93:i32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %19:i32 = load %18
+        %20:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %21:i32 = load %20
+        %22:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %23:i32 = load %22
+        %24:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %25:i32 = load %24
+        %26:array<i32, 4> = construct %19, %21, %23, %25
+        store %indexable, %26
+        %27:ptr<function, i32, read_write> = access %indexable, %x_93
+        %28:i32 = load %27
+        %29:i32 = load %x
+        %30:bool = gt %28, %29
+        if %30 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            if true [t: $B9, f: $B10] {  # if_3
+              $B9: {  # true
+                %31:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+                %32:i32 = load %31
+                %x_105:i32 = let %32
                 ret %x_105
               }
-              %b10 = block {  # false
-                %32:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-                %33:i32 = load %32
-                store %a, %33
+              $B10: {  # false
+                %34:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+                %35:i32 = load %34
+                store %a, %35
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            if true [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %34:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-                %x_111:i32 = load %34
+          $B8: {  # false
+            if true [t: $B11] {  # if_4
+              $B11: {  # true
+                %36:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+                %37:i32 = load %36
+                %x_111:i32 = let %37
                 ret %x_111
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %i
-        %37:i32 = add %36, 1i
-        store %i, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %39:i32 = load %i
+        %40:i32 = add %39, 1i
+        store %i, %40
+        next_iteration  # -> $B3
       }
     }
-    %38:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_115:i32 = load %38
+    %41:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %42:i32 = load %41
+    %x_115:i32 = let %42
     ret %x_115
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %a_1:ptr<function, i32, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
-    %44:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %45:i32 = load %44
-    store %param, %45
-    %x_40:i32 = call %func_i1_, %param
+    %48:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %49:i32 = load %48
+    store %param, %49
+    %50:i32 = call %func_i1_, %param
+    %x_40:i32 = let %50
     store %a_1, %x_40
-    %47:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-    %48:i32 = load %47
-    store %param_1, %48
-    %x_43:i32 = call %func_i1_, %param_1
-    %50:i32 = load %a_1
-    %51:i32 = add %50, %x_43
-    store %a_1, %51
-    %52:i32 = load %a_1
-    %53:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %54:i32 = load %53
-    %55:bool = eq %52, %54
-    if %55 [t: %b13, f: %b14] {  # if_5
-      %b13 = block {  # true
-        %56:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %57:i32 = load %56
-        %58:f32 = convert %57
-        %59:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %60:i32 = load %59
-        %61:f32 = convert %60
-        %62:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %52:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+    %53:i32 = load %52
+    store %param_1, %53
+    %54:i32 = call %func_i1_, %param_1
+    %x_43:i32 = let %54
+    %56:i32 = load %a_1
+    %57:i32 = add %56, %x_43
+    store %a_1, %57
+    %58:i32 = load %a_1
+    %59:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %60:i32 = load %59
+    %61:bool = eq %58, %60
+    if %61 [t: $B13, f: $B14] {  # if_5
+      $B13: {  # true
+        %62:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
         %63:i32 = load %62
         %64:f32 = convert %63
-        %65:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %66:i32 = load %65
-        %67:f32 = convert %66
-        %68:vec4<f32> = construct %58, %61, %64, %67
-        store %x_GLF_color, %68
+        %65:f32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %67:i32 = load %66
+        %68:f32 = convert %67
+        %69:f32 = let %68
+        %70:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %71:i32 = load %70
+        %72:f32 = convert %71
+        %73:f32 = let %72
+        %74:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %75:i32 = load %74
+        %76:f32 = convert %75
+        %77:vec4<f32> = construct %65, %69, %73, %76
+        store %x_GLF_color, %77
         exit_if  # if_5
       }
-      %b14 = block {  # false
-        %69:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %70:i32 = load %69
-        %71:f32 = convert %70
-        %72:vec4<f32> = construct %71
-        store %x_GLF_color, %72
+      $B14: {  # false
+        %78:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %79:i32 = load %78
+        %80:f32 = convert %79
+        %81:vec4<f32> = construct %80
+        store %x_GLF_color, %81
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %83:void = call %main_1
+    %84:vec4<f32> = load %x_GLF_color
+    %85:main_out = construct %84
+    ret %85
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.msl
index eb9b430..e23c929 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matching-if-always-true-inside-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,150 +12,182 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<i32, 4>, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_72:i32 = load %8
+    %9:i32 = load %8
+    %x_72:i32 = let %9
     store %a, %x_72
-    %10:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_74:i32 = load %10
+    %11:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %12:i32 = load %11
+    %x_74:i32 = let %12
     store %i, %x_74
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_79:i32 = load %i
-        %13:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_81:i32 = load %13
-        %15:bool = lt %x_79, %x_81
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %14:i32 = load %i
+        %x_79:i32 = let %14
+        %16:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %17:i32 = load %16
+        %x_81:i32 = let %17
+        %19:bool = lt %x_79, %x_81
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %16:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_85:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_87:i32 = load %18
         %20:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_89:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_91:i32 = load %22
-        %x_93:i32 = load %a
-        %25:array<i32, 4> = construct %x_85, %x_87, %x_89, %x_91
-        store %indexable, %25
-        %26:ptr<function, i32, read_write> = access %indexable, %x_93
-        %x_95:i32 = load %26
-        %x_96:i32 = load %x
-        %29:bool = gt %x_95, %x_96
-        if %29 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            if true [t: %b9, f: %b10] {  # if_3
-              %b9 = block {  # true
-                %30:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-                %x_105:i32 = load %30
+        %21:i32 = load %20
+        %x_85:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %24:i32 = load %23
+        %x_87:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %27:i32 = load %26
+        %x_89:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %30:i32 = load %29
+        %x_91:i32 = let %30
+        %32:i32 = load %a
+        %x_93:i32 = let %32
+        %34:array<i32, 4> = construct %x_85, %x_87, %x_89, %x_91
+        store %indexable, %34
+        %35:ptr<function, i32, read_write> = access %indexable, %x_93
+        %36:i32 = load %35
+        %x_95:i32 = let %36
+        %38:i32 = load %x
+        %x_96:i32 = let %38
+        %40:bool = gt %x_95, %x_96
+        if %40 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            if true [t: $B9, f: $B10] {  # if_3
+              $B9: {  # true
+                %41:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+                %42:i32 = load %41
+                %x_105:i32 = let %42
                 ret %x_105
               }
-              %b10 = block {  # false
-                %32:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-                %x_107:i32 = load %32
+              $B10: {  # false
+                %44:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+                %45:i32 = load %44
+                %x_107:i32 = let %45
                 store %a, %x_107
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            if true [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %34:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
-                %x_111:i32 = load %34
+          $B8: {  # false
+            if true [t: $B11] {  # if_4
+              $B11: {  # true
+                %47:ptr<uniform, i32, read> = access %x_8, 0u, 4i, 0u
+                %48:i32 = load %47
+                %x_111:i32 = let %48
                 ret %x_111
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_112:i32 = load %i
-        %37:i32 = add %x_112, 1i
-        store %i, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %50:i32 = load %i
+        %x_112:i32 = let %50
+        %52:i32 = add %x_112, 1i
+        store %i, %52
+        next_iteration  # -> $B3
       }
     }
-    %38:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_115:i32 = load %38
+    %53:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %54:i32 = load %53
+    %x_115:i32 = let %54
     ret %x_115
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %a_1:ptr<function, i32, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
-    %44:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_39:i32 = load %44
+    %60:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %61:i32 = load %60
+    %x_39:i32 = let %61
     store %param, %x_39
-    %x_40:i32 = call %func_i1_, %param
+    %63:i32 = call %func_i1_, %param
+    %x_40:i32 = let %63
     store %a_1, %x_40
-    %47:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-    %x_42:i32 = load %47
+    %65:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+    %66:i32 = load %65
+    %x_42:i32 = let %66
     store %param_1, %x_42
-    %x_43:i32 = call %func_i1_, %param_1
-    %x_44:i32 = load %a_1
-    %51:i32 = add %x_44, %x_43
-    store %a_1, %51
-    %x_46:i32 = load %a_1
-    %53:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
-    %x_48:i32 = load %53
-    %55:bool = eq %x_46, %x_48
-    if %55 [t: %b13, f: %b14] {  # if_5
-      %b13 = block {  # true
-        %56:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_54:i32 = load %56
-        %58:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_57:i32 = load %58
-        %60:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_60:i32 = load %60
-        %62:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
-        %x_63:i32 = load %62
-        %64:f32 = convert %x_54
-        %65:f32 = convert %x_57
-        %66:f32 = convert %x_60
-        %67:f32 = convert %x_63
-        %68:vec4<f32> = construct %64, %65, %66, %67
-        store %x_GLF_color, %68
+    %68:i32 = call %func_i1_, %param_1
+    %x_43:i32 = let %68
+    %70:i32 = load %a_1
+    %x_44:i32 = let %70
+    %72:i32 = add %x_44, %x_43
+    store %a_1, %72
+    %73:i32 = load %a_1
+    %x_46:i32 = let %73
+    %75:ptr<uniform, i32, read> = access %x_8, 0u, 2i, 0u
+    %76:i32 = load %75
+    %x_48:i32 = let %76
+    %78:bool = eq %x_46, %x_48
+    if %78 [t: $B13, f: $B14] {  # if_5
+      $B13: {  # true
+        %79:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %80:i32 = load %79
+        %x_54:i32 = let %80
+        %82:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %83:i32 = load %82
+        %x_57:i32 = let %83
+        %85:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %86:i32 = load %85
+        %x_60:i32 = let %86
+        %88:ptr<uniform, i32, read> = access %x_8, 0u, 3i, 0u
+        %89:i32 = load %88
+        %x_63:i32 = let %89
+        %91:f32 = convert %x_54
+        %92:f32 = let %91
+        %93:f32 = convert %x_57
+        %94:f32 = let %93
+        %95:f32 = convert %x_60
+        %96:f32 = let %95
+        %97:f32 = convert %x_63
+        %98:vec4<f32> = construct %92, %94, %96, %97
+        store %x_GLF_color, %98
         exit_if  # if_5
       }
-      %b14 = block {  # false
-        %69:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_67:i32 = load %69
-        %x_68:f32 = convert %x_67
-        %72:vec4<f32> = construct %x_68, %x_68, %x_68, %x_68
-        store %x_GLF_color, %72
+      $B14: {  # false
+        %99:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %100:i32 = load %99
+        %x_67:i32 = let %100
+        %102:f32 = convert %x_67
+        %x_68:f32 = let %102
+        %104:vec4<f32> = construct %x_68, %x_68, %x_68, %x_68
+        store %x_GLF_color, %104
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %106:void = call %main_1
+    %107:vec4<f32> = load %x_GLF_color
+    %108:main_out = construct %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.msl
index 7e7831b..fc175ef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,76 +12,85 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat2x2<f32>, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %6:i32 = load %5
-    %x_30:f32 = convert %6
-    %8:vec2<f32> = construct %x_30, 0.0f
-    %9:vec2<f32> = construct 0.0f, %x_30
-    %10:mat2x2<f32> = construct %8, %9
-    %11:mat2x2<f32> = transpose %10
-    %12:mat2x2<f32> = transpose %11
-    store %m, %12
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %14:i32 = load %13
-    %x_39:f32 = convert %14
-    %16:vec2<f32> = construct %x_39, 0.0f
-    %17:vec2<f32> = construct 0.0f, %x_39
-    %x_42:mat2x2<f32> = construct %16, %17
-    %19:ptr<function, vec2<f32>, read_write> = access %m, 0u
-    %20:vec2<f32> = load %19
-    %21:vec2<f32> = access %x_42, 0u
-    %22:vec2<bool> = eq %20, %21
-    %23:bool = all %22
-    %24:ptr<function, vec2<f32>, read_write> = access %m, 1u
+    %7:f32 = convert %6
+    %x_30:f32 = let %7
+    %9:vec2<f32> = construct %x_30, 0.0f
+    %10:vec2<f32> = let %9
+    %11:vec2<f32> = construct 0.0f, %x_30
+    %12:mat2x2<f32> = construct %10, %11
+    %13:mat2x2<f32> = transpose %12
+    %14:mat2x2<f32> = transpose %13
+    store %m, %14
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %16:i32 = load %15
+    %17:f32 = convert %16
+    %x_39:f32 = let %17
+    %19:vec2<f32> = construct %x_39, 0.0f
+    %20:vec2<f32> = let %19
+    %21:vec2<f32> = construct 0.0f, %x_39
+    %22:mat2x2<f32> = construct %20, %21
+    %x_42:mat2x2<f32> = let %22
+    %24:ptr<function, vec2<f32>, read_write> = access %m, 0u
     %25:vec2<f32> = load %24
-    %26:vec2<f32> = access %x_42, 1u
+    %26:vec2<f32> = access %x_42, 0u
     %27:vec2<bool> = eq %25, %26
     %28:bool = all %27
-    %29:bool = and %23, %28
-    if %29 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %29:bool = let %28
+    %30:ptr<function, vec2<f32>, read_write> = access %m, 1u
+    %31:vec2<f32> = load %30
+    %32:vec2<f32> = access %x_42, 1u
+    %33:vec2<bool> = eq %31, %32
+    %34:bool = all %33
+    %35:bool = and %29, %34
+    if %35 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:vec4<f32> = construct %32, %35, %38, %41
-        store %x_GLF_color, %42
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:f32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:f32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %49:i32 = load %48
+        %50:f32 = convert %49
+        %51:vec4<f32> = construct %39, %43, %47, %50
+        store %x_GLF_color, %51
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %44:i32 = load %43
-        %45:f32 = convert %44
-        %46:vec4<f32> = construct %45
-        store %x_GLF_color, %46
+      $B4: {  # false
+        %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %53:i32 = load %52
+        %54:f32 = convert %53
+        %55:vec4<f32> = construct %54
+        store %x_GLF_color, %55
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_color
-    %50:main_out = construct %49
-    ret %50
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.msl
index 6d33a6f..8d122b7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-double-transpose/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,75 +12,93 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat2x2<f32>, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:i32 = load %5
-    %x_30:f32 = convert %x_29
-    %8:vec2<f32> = construct %x_30, 0.0f
-    %9:vec2<f32> = construct 0.0f, %x_30
-    %10:mat2x2<f32> = construct %8, %9
-    %11:mat2x2<f32> = transpose %10
-    %12:mat2x2<f32> = transpose %11
-    store %m, %12
-    %x_36:mat2x2<f32> = load %m
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:i32 = load %14
-    %x_39:f32 = convert %x_38
-    %17:vec2<f32> = construct %x_39, 0.0f
-    %18:vec2<f32> = construct 0.0f, %x_39
-    %x_42:mat2x2<f32> = construct %17, %18
-    %20:vec2<f32> = access %x_36, 0u
-    %21:vec2<f32> = access %x_42, 0u
-    %22:vec2<bool> = eq %20, %21
-    %23:bool = all %22
-    %24:vec2<f32> = access %x_36, 1u
-    %25:vec2<f32> = access %x_42, 1u
-    %26:vec2<bool> = eq %24, %25
-    %27:bool = all %26
-    %28:bool = and %23, %27
-    if %28 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_56:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_59:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:i32 = load %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_65:i32 = load %35
-        %37:f32 = convert %x_56
-        %38:f32 = convert %x_59
-        %39:f32 = convert %x_62
-        %40:f32 = convert %x_65
-        %41:vec4<f32> = construct %37, %38, %39, %40
-        store %x_GLF_color, %41
+    %6:i32 = load %5
+    %x_29:i32 = let %6
+    %8:f32 = convert %x_29
+    %x_30:f32 = let %8
+    %10:vec2<f32> = construct %x_30, 0.0f
+    %11:vec2<f32> = let %10
+    %12:vec2<f32> = construct 0.0f, %x_30
+    %13:mat2x2<f32> = construct %11, %12
+    %14:mat2x2<f32> = transpose %13
+    %15:mat2x2<f32> = transpose %14
+    store %m, %15
+    %16:mat2x2<f32> = load %m
+    %x_36:mat2x2<f32> = let %16
+    %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %19:i32 = load %18
+    %x_38:i32 = let %19
+    %21:f32 = convert %x_38
+    %x_39:f32 = let %21
+    %23:vec2<f32> = construct %x_39, 0.0f
+    %24:vec2<f32> = let %23
+    %25:vec2<f32> = construct 0.0f, %x_39
+    %26:mat2x2<f32> = construct %24, %25
+    %x_42:mat2x2<f32> = let %26
+    %28:vec2<f32> = access %x_36, 0u
+    %29:vec2<f32> = access %x_42, 0u
+    %30:vec2<bool> = eq %28, %29
+    %31:bool = all %30
+    %32:bool = let %31
+    %33:vec2<f32> = access %x_36, 1u
+    %34:vec2<f32> = access %x_42, 1u
+    %35:vec2<bool> = eq %33, %34
+    %36:bool = all %35
+    %37:bool = and %32, %36
+    if %37 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %39:i32 = load %38
+        %x_56:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_59:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %45:i32 = load %44
+        %x_62:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %48:i32 = load %47
+        %x_65:i32 = let %48
+        %50:f32 = convert %x_56
+        %51:f32 = let %50
+        %52:f32 = convert %x_59
+        %53:f32 = let %52
+        %54:f32 = convert %x_62
+        %55:f32 = let %54
+        %56:f32 = convert %x_65
+        %57:vec4<f32> = construct %51, %53, %55, %56
+        store %x_GLF_color, %57
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_69:i32 = load %42
-        %x_70:f32 = convert %x_69
-        %45:vec4<f32> = construct %x_70, %x_70, %x_70, %x_70
-        store %x_GLF_color, %45
+      $B4: {  # false
+        %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %59:i32 = load %58
+        %x_69:i32 = let %59
+        %61:f32 = convert %x_69
+        %x_70:f32 = let %61
+        %63:vec4<f32> = construct %x_70, %x_70, %x_70, %x_70
+        store %x_GLF_color, %63
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.msl
index 2f0c8c0..49d293e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,69 +12,70 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m0:ptr<function, mat2x2<f32>, read_write> = var
     %m1:ptr<function, mat2x2<f32>, read_write> = var
     %v:ptr<function, vec2<f32>, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %8:f32 = load %7
     %9:vec2<f32> = construct %8, -0.540302276611328125f
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %11:f32 = load %10
-    %12:vec2<f32> = construct 0.540302276611328125f, %11
-    %13:mat2x2<f32> = construct %9, %12
-    store %m0, %13
-    %14:mat2x2<f32> = load %m0
+    %10:vec2<f32> = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %12:f32 = load %11
+    %13:vec2<f32> = construct 0.540302276611328125f, %12
+    %14:mat2x2<f32> = construct %10, %13
+    store %m0, %14
     %15:mat2x2<f32> = load %m0
-    %16:mat2x2<f32> = mul %14, %15
-    store %m1, %16
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %18:f32 = load %17
-    %19:vec2<f32> = construct %18
-    %20:mat2x2<f32> = load %m1
-    %21:vec2<f32> = mul %19, %20
-    store %v, %21
-    %22:f32 = load_vector_element %v, 0u
-    %23:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %24:f32 = load %23
-    %25:bool = lt %22, %24
-    if %25 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %27:f32 = load %26
-        %28:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %29:f32 = load %28
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %31:f32 = load %30
-        %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %33:f32 = load %32
-        %34:vec4<f32> = construct %27, %29, %31, %33
-        store %x_GLF_color, %34
+    %16:mat2x2<f32> = load %m0
+    %17:mat2x2<f32> = mul %15, %16
+    store %m1, %17
+    %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %19:f32 = load %18
+    %20:vec2<f32> = construct %19
+    %21:mat2x2<f32> = load %m1
+    %22:vec2<f32> = mul %20, %21
+    store %v, %22
+    %23:f32 = load_vector_element %v, 0u
+    %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %25:f32 = load %24
+    %26:bool = lt %23, %25
+    if %26 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %28:f32 = load %27
+        %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %30:f32 = load %29
+        %31:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %32:f32 = load %31
+        %33:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %34:f32 = load %33
+        %35:vec4<f32> = construct %28, %30, %32, %34
+        store %x_GLF_color, %35
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %35:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %36:f32 = load %35
-        %37:vec4<f32> = construct %36
-        store %x_GLF_color, %37
+      $B4: {  # false
+        %36:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %37:f32 = load %36
+        %38:vec4<f32> = construct %37
+        store %x_GLF_color, %38
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.msl
index ae84e4f..54df980 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-matrix-square-mul-with-vector/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,69 +12,83 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m0:ptr<function, mat2x2<f32>, read_write> = var
     %m1:ptr<function, mat2x2<f32>, read_write> = var
     %v:ptr<function, vec2<f32>, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:f32 = load %7
-    %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_37:f32 = load %9
-    %11:vec2<f32> = construct %x_35, -0.540302276611328125f
-    %12:vec2<f32> = construct 0.540302276611328125f, %x_37
-    %13:mat2x2<f32> = construct %11, %12
-    store %m0, %13
-    %x_41:mat2x2<f32> = load %m0
-    %x_42:mat2x2<f32> = load %m0
-    %16:mat2x2<f32> = mul %x_41, %x_42
-    store %m1, %16
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_45:f32 = load %17
-    %x_47:mat2x2<f32> = load %m1
-    %20:vec2<f32> = construct %x_45, %x_45
-    %21:vec2<f32> = mul %20, %x_47
-    store %v, %21
-    %x_50:f32 = load_vector_element %v, 0u
-    %23:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_52:f32 = load %23
-    %25:bool = lt %x_50, %x_52
-    if %25 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %26:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_58:f32 = load %26
-        %28:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_60:f32 = load %28
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:f32 = load %30
-        %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_64:f32 = load %32
-        %34:vec4<f32> = construct %x_58, %x_60, %x_62, %x_64
-        store %x_GLF_color, %34
+    %8:f32 = load %7
+    %x_35:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_37:f32 = let %11
+    %13:vec2<f32> = construct %x_35, -0.540302276611328125f
+    %14:vec2<f32> = let %13
+    %15:vec2<f32> = construct 0.540302276611328125f, %x_37
+    %16:mat2x2<f32> = construct %14, %15
+    store %m0, %16
+    %17:mat2x2<f32> = load %m0
+    %x_41:mat2x2<f32> = let %17
+    %19:mat2x2<f32> = load %m0
+    %x_42:mat2x2<f32> = let %19
+    %21:mat2x2<f32> = mul %x_41, %x_42
+    store %m1, %21
+    %22:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %23:f32 = load %22
+    %x_45:f32 = let %23
+    %25:mat2x2<f32> = load %m1
+    %x_47:mat2x2<f32> = let %25
+    %27:vec2<f32> = construct %x_45, %x_45
+    %28:vec2<f32> = mul %27, %x_47
+    store %v, %28
+    %29:f32 = load_vector_element %v, 0u
+    %x_50:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %32:f32 = load %31
+    %x_52:f32 = let %32
+    %34:bool = lt %x_50, %x_52
+    if %34 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %35:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %36:f32 = load %35
+        %x_58:f32 = let %36
+        %38:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %39:f32 = load %38
+        %x_60:f32 = let %39
+        %41:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %42:f32 = load %41
+        %x_62:f32 = let %42
+        %44:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %45:f32 = load %44
+        %x_64:f32 = let %45
+        %47:vec4<f32> = construct %x_58, %x_60, %x_62, %x_64
+        store %x_GLF_color, %47
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %35:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_67:f32 = load %35
-        %37:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
-        store %x_GLF_color, %37
+      $B4: {  # false
+        %48:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %49:f32 = load %48
+        %x_67:f32 = let %49
+        %51:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
+        store %x_GLF_color, %51
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %53:void = call %main_1
+    %54:vec4<f32> = load %x_GLF_color
+    %55:main_out = construct %54
+    ret %55
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.msl
index 83c5719..8f3596e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,28 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
     %5:i32 = load %4
-    %6:ptr<uniform, i32, read> = access %x_5, 0u
-    %7:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u
-    %9:i32 = load %8
-    %10:i32 = clamp %7, %9, 1i
-    %11:i32 = max %5, %10
-    %12:bool = eq %11, 1i
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:i32 = let %5
+    %7:ptr<uniform, i32, read> = access %x_5, 0u
+    %8:i32 = load %7
+    %9:ptr<uniform, i32, read> = access %x_5, 0u
+    %10:i32 = load %9
+    %11:i32 = max %8, %10
+    %12:i32 = min %11, 1i
+    %13:i32 = max %6, %12
+    %14:bool = eq %13, 1i
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_1
       }
@@ -37,12 +39,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    ret %18
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.msl
index f139e39..0b69c8f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-clamp-same-minval/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,28 +8,32 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_23:i32 = load %4
-    %6:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_25:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_27:i32 = load %8
-    %10:i32 = clamp %x_25, %x_27, 1i
-    %11:i32 = max %x_23, %10
-    %12:bool = eq %11, 1i
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:i32 = load %4
+    %x_23:i32 = let %5
+    %7:ptr<uniform, i32, read> = access %x_5, 0u
+    %8:i32 = load %7
+    %x_25:i32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_5, 0u
+    %11:i32 = load %10
+    %x_27:i32 = let %11
+    %13:i32 = max %x_25, %x_27
+    %14:i32 = min %13, 1i
+    %15:i32 = max %x_23, %14
+    %16:bool = eq %15, 1i
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_1
       }
@@ -37,12 +41,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.msl
index 63ee447..668af52 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,56 +12,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %6:f32 = load_vector_element %gl_FragCoord, 0u
-    %7:i32 = convert %6
-    %8:i32 = min 1i, %7
-    %9:i32 = max 1i, %8
-    store %a, %9
-    %10:i32 = load %a
-    %11:bool = lt %10, 2i
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %13:i32 = load %12
-        %14:f32 = convert %13
-        %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %16:i32 = load %15
-        %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %19:i32 = load %18
-        %20:f32 = convert %19
-        %21:vec4<f32> = construct 1.0f, %14, %17, %20
-        store %x_GLF_color, %21
+    %7:i32 = call %tint_f32_to_i32, %6
+    %9:i32 = min 1i, %7
+    %10:i32 = max 1i, %9
+    store %a, %10
+    %11:i32 = load %a
+    %12:bool = lt %11, 2i
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %14:i32 = load %13
+        %15:f32 = convert %14
+        %16:f32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %18:i32 = load %17
+        %19:f32 = convert %18
+        %20:f32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %22:i32 = load %21
+        %23:f32 = convert %22
+        %24:vec4<f32> = construct 1.0f, %16, %20, %23
+        store %x_GLF_color, %24
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %22:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %23:i32 = load %22
-        %24:f32 = convert %23
-        %25:vec4<f32> = construct %24
-        store %x_GLF_color, %25
+      $B4: {  # false
+        %25:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %26:i32 = load %25
+        %27:f32 = convert %26
+        %28:vec4<f32> = construct %27
+        store %x_GLF_color, %28
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %35:i32 = convert %value
+    %36:bool = gte %value, -2147483648.0f
+    %37:i32 = select -2147483648i, %35, %36
+    %38:bool = lte %value, 2147483520.0f
+    %39:i32 = select 2147483647i, %37, %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.msl
index 5a77d0e..dd833ea 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-max-min-less-than/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,56 +12,75 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
-    %x_30:f32 = load_vector_element %gl_FragCoord, 0u
-    %7:i32 = convert %x_30
-    %8:i32 = min 1i, %7
-    %9:i32 = max 1i, %8
-    store %a, %9
-    %x_34:i32 = load %a
-    %11:bool = lt %x_34, 2i
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_40:i32 = load %12
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_43:i32 = load %14
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_46:i32 = load %16
-        %18:f32 = convert %x_40
-        %19:f32 = convert %x_43
-        %20:f32 = convert %x_46
-        %21:vec4<f32> = construct 1.0f, %18, %19, %20
-        store %x_GLF_color, %21
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_30:f32 = let %6
+    %8:i32 = call %tint_f32_to_i32, %x_30
+    %10:i32 = min 1i, %8
+    %11:i32 = max 1i, %10
+    store %a, %11
+    %12:i32 = load %a
+    %x_34:i32 = let %12
+    %14:bool = lt %x_34, 2i
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %16:i32 = load %15
+        %x_40:i32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %19:i32 = load %18
+        %x_43:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %22:i32 = load %21
+        %x_46:i32 = let %22
+        %24:f32 = convert %x_40
+        %25:f32 = let %24
+        %26:f32 = convert %x_43
+        %27:f32 = let %26
+        %28:f32 = convert %x_46
+        %29:vec4<f32> = construct 1.0f, %25, %27, %28
+        store %x_GLF_color, %29
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %22:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_50:i32 = load %22
-        %x_51:f32 = convert %x_50
-        %25:vec4<f32> = construct %x_51, %x_51, %x_51, %x_51
-        store %x_GLF_color, %25
+      $B4: {  # false
+        %30:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %31:i32 = load %30
+        %x_50:i32 = let %31
+        %33:f32 = convert %x_50
+        %x_51:f32 = let %33
+        %35:vec4<f32> = construct %x_51, %x_51, %x_51, %x_51
+        store %x_GLF_color, %35
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    ret %40
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %42:i32 = convert %value
+    %43:bool = gte %value, -2147483648.0f
+    %44:i32 = select -2147483648i, %42, %43
+    %45:bool = lte %value, 2147483520.0f
+    %46:i32 = select 2147483647i, %44, %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.msl
index 3aecd6c1..38e99b1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -14,20 +14,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_43:ptr<function, i32, read_write> = var
     %x_44:ptr<function, bool, read_write> = var, false
     %arr:ptr<function, array<S, 2>, read_write> = var
     %param:ptr<function, S, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_50:ptr<function, i32, read_write> = var
         %10:ptr<uniform, i32, read> = access %x_10, 0u
         %11:i32 = load %10
@@ -38,87 +38,95 @@
         %14:ptr<function, i32, read_write> = access %arr, 1i, 0u
         %15:i32 = load %14
         %16:bool = lt %15, 1i
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %16 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             store %x_GLF_color, vec4<f32>(0.0f)
             store %x_44, true
             exit_loop  # loop_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             %17:ptr<function, S, read_write> = access %arr, 1i
             %18:S = load %17
             store %param, %18
             %19:i32 = load %x_50
             %20:i32 = add 2i, %19
             store %param_1, %20
-            %x_61:i32 = load %param_1
-            %x_63:S = load %param
+            %21:i32 = load %param_1
+            %x_61:i32 = let %21
+            %23:S = load %param
+            %x_63:S = let %23
             %x_64_1:ptr<function, S, read_write> = var, %x_63
-            %24:ptr<function, i32, read_write> = access %x_64_1, 0u
-            store %24, %x_61
-            %25:S = load %x_64_1
-            store %param, %25
-            %26:ptr<function, i32, read_write> = access %param, 0u
-            %27:i32 = load %26
-            %28:bool = eq %27, 2i
-            if %28 [t: %b7] {  # if_2
-              %b7 = block {  # true
-                %x_70:S = load %param
+            %26:ptr<function, i32, read_write> = access %x_64_1, 0u
+            store %26, %x_61
+            %27:S = load %x_64_1
+            store %param, %27
+            %28:ptr<function, i32, read_write> = access %param, 0u
+            %29:i32 = load %28
+            %30:bool = eq %29, 2i
+            if %30 [t: $B6] {  # if_2
+              $B6: {  # true
+                %31:S = load %param
+                %x_70:S = let %31
                 %x_71_1:ptr<function, S, read_write> = var, %x_70
-                %31:ptr<function, i32, read_write> = access %x_71_1, 0u
-                store %31, 9i
-                %32:S = load %x_71_1
-                store %param, %32
+                %34:ptr<function, i32, read_write> = access %x_71_1, 0u
+                store %34, 9i
+                %35:S = load %x_71_1
+                store %param, %35
                 exit_if  # if_2
               }
             }
-            %x_72:i32 = load %param_1
-            %x_75:S = load %param
+            %36:i32 = load %param_1
+            %x_72:i32 = let %36
+            %38:S = load %param
+            %x_75:S = let %38
             %x_76_1:ptr<function, S, read_write> = var, %x_75
-            %36:ptr<function, i32, read_write> = access %x_76_1, 1u
-            %37:i32 = add %x_72, 1i
-            store %36, %37
-            %38:S = load %x_76_1
-            store %param, %38
-            %x_77:i32 = load %param_1
-            %x_80:S = load %param
+            %41:ptr<function, i32, read_write> = access %x_76_1, 1u
+            %42:i32 = add %x_72, 1i
+            store %41, %42
+            %43:S = load %x_76_1
+            store %param, %43
+            %44:i32 = load %param_1
+            %x_77:i32 = let %44
+            %46:S = load %param
+            %x_80:S = let %46
             %x_81_1:ptr<function, S, read_write> = var, %x_80
-            %42:ptr<function, i32, read_write> = access %x_81_1, 2u
-            %43:i32 = add %x_77, 2i
-            store %42, %43
-            %44:S = load %x_81_1
-            store %param, %44
-            %45:ptr<function, i32, read_write> = access %param, 1u
-            %46:i32 = load %45
-            %47:bool = eq %46, 2i
-            if %47 [t: %b8] {  # if_3
-              %b8 = block {  # true
-                %x_87:S = load %param
+            %49:ptr<function, i32, read_write> = access %x_81_1, 2u
+            %50:i32 = add %x_77, 2i
+            store %49, %50
+            %51:S = load %x_81_1
+            store %param, %51
+            %52:ptr<function, i32, read_write> = access %param, 1u
+            %53:i32 = load %52
+            %54:bool = eq %53, 2i
+            if %54 [t: $B7] {  # if_3
+              $B7: {  # true
+                %55:S = load %param
+                %x_87:S = let %55
                 %x_88_1:ptr<function, S, read_write> = var, %x_87
-                %50:ptr<function, i32, read_write> = access %x_88_1, 1u
-                store %50, 7i
-                %51:S = load %x_88_1
-                store %param, %51
+                %58:ptr<function, i32, read_write> = access %x_88_1, 1u
+                store %58, 7i
+                %59:S = load %x_88_1
+                store %param, %59
                 exit_if  # if_3
               }
             }
-            %52:ptr<function, i32, read_write> = access %param, 0u
-            %53:i32 = load %52
-            %54:ptr<function, i32, read_write> = access %param, 1u
-            %55:i32 = load %54
-            %56:i32 = add %53, %55
-            %57:ptr<function, i32, read_write> = access %param, 2u
-            %58:i32 = load %57
-            %59:i32 = add %56, %58
-            store %x_43, %59
-            %60:i32 = load %x_43
-            %61:bool = eq %60, 12i
-            if %61 [t: %b9, f: %b10] {  # if_4
-              %b9 = block {  # true
+            %60:ptr<function, i32, read_write> = access %param, 0u
+            %61:i32 = load %60
+            %62:ptr<function, i32, read_write> = access %param, 1u
+            %63:i32 = load %62
+            %64:i32 = add %61, %63
+            %65:ptr<function, i32, read_write> = access %param, 2u
+            %66:i32 = load %65
+            %67:i32 = add %64, %66
+            store %x_43, %67
+            %68:i32 = load %x_43
+            %69:bool = eq %68, 12i
+            if %69 [t: $B8, f: $B9] {  # if_4
+              $B8: {  # true
                 store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                 exit_if  # if_4
               }
-              %b10 = block {  # false
+              $B9: {  # false
                 store %x_GLF_color, vec4<f32>(0.0f)
                 exit_if  # if_4
               }
@@ -129,63 +137,63 @@
         store %x_44, true
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %71:void = call %main_1
+    %72:vec4<f32> = load %x_GLF_color
+    %73:main_out = construct %72
+    ret %73
   }
 }
-%func_struct_S_i1_i1_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 -> %b12 {
-  %b12 = block {
-    %69:ptr<function, i32, read_write> = access %s, 0u
-    %70:i32 = load %x
-    store %69, %70
-    %71:ptr<function, i32, read_write> = access %s, 0u
-    %72:i32 = load %71
-    %73:bool = eq %72, 2i
-    if %73 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %74:ptr<function, i32, read_write> = access %s, 0u
-        store %74, 9i
+%func_struct_S_i1_i1_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 {
+  $B11: {
+    %77:ptr<function, i32, read_write> = access %s, 0u
+    %78:i32 = load %x
+    store %77, %78
+    %79:ptr<function, i32, read_write> = access %s, 0u
+    %80:i32 = load %79
+    %81:bool = eq %80, 2i
+    if %81 [t: $B12] {  # if_5
+      $B12: {  # true
+        %82:ptr<function, i32, read_write> = access %s, 0u
+        store %82, 9i
         exit_if  # if_5
       }
     }
-    %75:ptr<function, i32, read_write> = access %s, 1u
-    %76:i32 = load %x
-    %77:i32 = add %76, 1i
-    store %75, %77
-    %78:ptr<function, i32, read_write> = access %s, 2u
-    %79:i32 = load %x
-    %80:i32 = add %79, 2i
-    store %78, %80
-    %81:ptr<function, i32, read_write> = access %s, 1u
-    %82:i32 = load %81
-    %83:bool = eq %82, 2i
-    if %83 [t: %b14] {  # if_6
-      %b14 = block {  # true
-        %84:ptr<function, i32, read_write> = access %s, 1u
-        store %84, 7i
+    %83:ptr<function, i32, read_write> = access %s, 1u
+    %84:i32 = load %x
+    %85:i32 = add %84, 1i
+    store %83, %85
+    %86:ptr<function, i32, read_write> = access %s, 2u
+    %87:i32 = load %x
+    %88:i32 = add %87, 2i
+    store %86, %88
+    %89:ptr<function, i32, read_write> = access %s, 1u
+    %90:i32 = load %89
+    %91:bool = eq %90, 2i
+    if %91 [t: $B13] {  # if_6
+      $B13: {  # true
+        %92:ptr<function, i32, read_write> = access %s, 1u
+        store %92, 7i
         exit_if  # if_6
       }
     }
-    %85:ptr<function, i32, read_write> = access %s, 0u
-    %x_119:i32 = load %85
-    %87:ptr<function, i32, read_write> = access %s, 1u
-    %x_120:i32 = load %87
-    %89:ptr<function, i32, read_write> = access %s, 2u
-    %x_122:i32 = load %89
-    %91:i32 = add %x_119, %x_120
-    %92:i32 = add %91, %x_122
-    ret %92
+    %93:ptr<function, i32, read_write> = access %s, 0u
+    %94:i32 = load %93
+    %x_119:i32 = let %94
+    %96:ptr<function, i32, read_write> = access %s, 1u
+    %97:i32 = load %96
+    %x_120:i32 = let %97
+    %99:ptr<function, i32, read_write> = access %s, 2u
+    %100:i32 = load %99
+    %x_122:i32 = let %100
+    %102:i32 = add %x_119, %x_120
+    %103:i32 = add %102, %x_122
+    ret %103
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.msl
index b87d763..f6a7a73 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-sum-struct-members/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -14,20 +14,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_43:ptr<function, i32, read_write> = var
     %x_44:ptr<function, bool, read_write> = var, false
     %arr:ptr<function, array<S, 2>, read_write> = var
     %param:ptr<function, S, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_50:ptr<function, i32, read_write> = var
         %10:ptr<uniform, i32, read> = access %x_10, 0u
         %11:i32 = load %10
@@ -36,90 +36,111 @@
         %13:ptr<function, i32, read_write> = access %arr, %12, 0u
         store %13, 2i
         %14:ptr<function, i32, read_write> = access %arr, 1i, 0u
-        %x_53:i32 = load %14
-        %16:bool = lt %x_53, 1i
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %15:i32 = load %14
+        %x_53:i32 = let %15
+        %17:bool = lt %x_53, 1i
+        if %17 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             store %x_GLF_color, vec4<f32>(0.0f)
             store %x_44, true
             exit_loop  # loop_1
           }
-          %b6 = block {  # false
-            %17:ptr<function, S, read_write> = access %arr, 1i
-            %x_60:S = load %17
+          $B5: {  # false
+            %18:ptr<function, S, read_write> = access %arr, 1i
+            %19:S = load %18
+            %x_60:S = let %19
             store %param, %x_60
-            %19:i32 = load %x_50
-            %20:i32 = bitcast %19
-            %21:i32 = add 2i, %20
-            store %param_1, %21
-            %x_61:i32 = load %param_1
-            %x_63:S = load %param
+            %21:i32 = load %x_50
+            %22:i32 = bitcast %21
+            %23:i32 = add 2i, %22
+            store %param_1, %23
+            %24:i32 = load %param_1
+            %x_61:i32 = let %24
+            %26:S = load %param
+            %x_63:S = let %26
             %x_64_1:ptr<function, S, read_write> = var, %x_63
-            %25:ptr<function, i32, read_write> = access %x_64_1, 0u
-            store %25, %x_61
-            %x_64:S = load %x_64_1
+            %29:ptr<function, i32, read_write> = access %x_64_1, 0u
+            store %29, %x_61
+            %30:S = load %x_64_1
+            %x_64:S = let %30
             store %param, %x_64
-            %x_65:S = load %param
-            %28:i32 = access %x_65, 0u
-            %29:bool = eq %28, 2i
-            if %29 [t: %b7] {  # if_2
-              %b7 = block {  # true
-                %x_70:S = load %param
+            %32:S = load %param
+            %x_65:S = let %32
+            %34:i32 = access %x_65, 0u
+            %35:bool = eq %34, 2i
+            if %35 [t: $B6] {  # if_2
+              $B6: {  # true
+                %36:S = load %param
+                %x_70:S = let %36
                 %x_71_1:ptr<function, S, read_write> = var, %x_70
-                %32:ptr<function, i32, read_write> = access %x_71_1, 0u
-                store %32, 9i
-                %x_71:S = load %x_71_1
+                %39:ptr<function, i32, read_write> = access %x_71_1, 0u
+                store %39, 9i
+                %40:S = load %x_71_1
+                %x_71:S = let %40
                 store %param, %x_71
                 exit_if  # if_2
               }
             }
-            %x_72:i32 = load %param_1
-            %x_75:S = load %param
+            %42:i32 = load %param_1
+            %x_72:i32 = let %42
+            %44:S = load %param
+            %x_75:S = let %44
             %x_76_1:ptr<function, S, read_write> = var, %x_75
-            %37:ptr<function, i32, read_write> = access %x_76_1, 1u
-            %38:i32 = add %x_72, 1i
-            store %37, %38
-            %x_76:S = load %x_76_1
+            %47:ptr<function, i32, read_write> = access %x_76_1, 1u
+            %48:i32 = add %x_72, 1i
+            store %47, %48
+            %49:S = load %x_76_1
+            %x_76:S = let %49
             store %param, %x_76
-            %x_77:i32 = load %param_1
-            %x_80:S = load %param
+            %51:i32 = load %param_1
+            %x_77:i32 = let %51
+            %53:S = load %param
+            %x_80:S = let %53
             %x_81_1:ptr<function, S, read_write> = var, %x_80
-            %43:ptr<function, i32, read_write> = access %x_81_1, 2u
-            %44:i32 = add %x_77, 2i
-            store %43, %44
-            %x_81:S = load %x_81_1
+            %56:ptr<function, i32, read_write> = access %x_81_1, 2u
+            %57:i32 = add %x_77, 2i
+            store %56, %57
+            %58:S = load %x_81_1
+            %x_81:S = let %58
             store %param, %x_81
-            %x_82:S = load %param
-            %47:i32 = access %x_82, 1u
-            %48:bool = eq %47, 2i
-            if %48 [t: %b8] {  # if_3
-              %b8 = block {  # true
-                %x_87:S = load %param
+            %60:S = load %param
+            %x_82:S = let %60
+            %62:i32 = access %x_82, 1u
+            %63:bool = eq %62, 2i
+            if %63 [t: $B7] {  # if_3
+              $B7: {  # true
+                %64:S = load %param
+                %x_87:S = let %64
                 %x_88_1:ptr<function, S, read_write> = var, %x_87
-                %51:ptr<function, i32, read_write> = access %x_88_1, 1u
-                store %51, 7i
-                %x_88:S = load %x_88_1
+                %67:ptr<function, i32, read_write> = access %x_88_1, 1u
+                store %67, 7i
+                %68:S = load %x_88_1
+                %x_88:S = let %68
                 store %param, %x_88
                 exit_if  # if_3
               }
             }
-            %x_89:S = load %param
-            %x_91:S = load %param
-            %x_94:S = load %param
-            %56:i32 = access %x_89, 0u
-            %57:i32 = access %x_91, 1u
-            %58:i32 = add %56, %57
-            %59:i32 = access %x_94, 2u
-            %60:i32 = add %58, %59
-            store %x_43, %60
-            %x_97:i32 = load %x_43
-            %62:bool = eq %x_97, 12i
-            if %62 [t: %b9, f: %b10] {  # if_4
-              %b9 = block {  # true
+            %70:S = load %param
+            %x_89:S = let %70
+            %72:S = load %param
+            %x_91:S = let %72
+            %74:S = load %param
+            %x_94:S = let %74
+            %76:i32 = access %x_89, 0u
+            %77:i32 = access %x_91, 1u
+            %78:i32 = add %76, %77
+            %79:i32 = access %x_94, 2u
+            %80:i32 = add %78, %79
+            store %x_43, %80
+            %81:i32 = load %x_43
+            %x_97:i32 = let %81
+            %83:bool = eq %x_97, 12i
+            if %83 [t: $B8, f: $B9] {  # if_4
+              $B8: {  # true
                 store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                 exit_if  # if_4
               }
-              %b10 = block {  # false
+              $B9: {  # false
                 store %x_GLF_color, vec4<f32>(0.0f)
                 exit_if  # if_4
               }
@@ -130,63 +151,68 @@
         store %x_44, true
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %64:void = call %main_1
-    %65:vec4<f32> = load %x_GLF_color
-    %66:main_out = construct %65
-    ret %66
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %85:void = call %main_1
+    %86:vec4<f32> = load %x_GLF_color
+    %87:main_out = construct %86
+    ret %87
   }
 }
-%func_struct_S_i1_i1_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 -> %b12 {
-  %b12 = block {
-    %x_103:i32 = load %x
-    %71:ptr<function, i32, read_write> = access %s, 0u
-    store %71, %x_103
-    %72:ptr<function, i32, read_write> = access %s, 0u
-    %x_105:i32 = load %72
-    %74:bool = eq %x_105, 2i
-    if %74 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %75:ptr<function, i32, read_write> = access %s, 0u
-        store %75, 9i
+%func_struct_S_i1_i1_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 {
+  $B11: {
+    %91:i32 = load %x
+    %x_103:i32 = let %91
+    %93:ptr<function, i32, read_write> = access %s, 0u
+    store %93, %x_103
+    %94:ptr<function, i32, read_write> = access %s, 0u
+    %95:i32 = load %94
+    %x_105:i32 = let %95
+    %97:bool = eq %x_105, 2i
+    if %97 [t: $B12] {  # if_5
+      $B12: {  # true
+        %98:ptr<function, i32, read_write> = access %s, 0u
+        store %98, 9i
         exit_if  # if_5
       }
     }
-    %x_109:i32 = load %x
-    %77:ptr<function, i32, read_write> = access %s, 1u
-    %78:i32 = add %x_109, 1i
-    store %77, %78
-    %x_112:i32 = load %x
-    %80:ptr<function, i32, read_write> = access %s, 2u
-    %81:i32 = add %x_112, 2i
-    store %80, %81
-    %82:ptr<function, i32, read_write> = access %s, 1u
-    %x_115:i32 = load %82
-    %84:bool = eq %x_115, 2i
-    if %84 [t: %b14] {  # if_6
-      %b14 = block {  # true
-        %85:ptr<function, i32, read_write> = access %s, 1u
-        store %85, 7i
+    %99:i32 = load %x
+    %x_109:i32 = let %99
+    %101:ptr<function, i32, read_write> = access %s, 1u
+    %102:i32 = add %x_109, 1i
+    store %101, %102
+    %103:i32 = load %x
+    %x_112:i32 = let %103
+    %105:ptr<function, i32, read_write> = access %s, 2u
+    %106:i32 = add %x_112, 2i
+    store %105, %106
+    %107:ptr<function, i32, read_write> = access %s, 1u
+    %108:i32 = load %107
+    %x_115:i32 = let %108
+    %110:bool = eq %x_115, 2i
+    if %110 [t: $B13] {  # if_6
+      $B13: {  # true
+        %111:ptr<function, i32, read_write> = access %s, 1u
+        store %111, 7i
         exit_if  # if_6
       }
     }
-    %86:ptr<function, i32, read_write> = access %s, 0u
-    %x_119:i32 = load %86
-    %88:ptr<function, i32, read_write> = access %s, 1u
-    %x_120:i32 = load %88
-    %90:ptr<function, i32, read_write> = access %s, 2u
-    %x_122:i32 = load %90
-    %92:i32 = add %x_119, %x_120
-    %93:i32 = add %92, %x_122
-    ret %93
+    %112:ptr<function, i32, read_write> = access %s, 0u
+    %113:i32 = load %112
+    %x_119:i32 = let %113
+    %115:ptr<function, i32, read_write> = access %s, 1u
+    %116:i32 = load %115
+    %x_120:i32 = let %116
+    %118:ptr<function, i32, read_write> = access %s, 2u
+    %119:i32 = load %118
+    %x_122:i32 = let %119
+    %121:i32 = add %x_119, %x_120
+    %122:i32 = add %121, %x_122
+    ret %122
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.msl
index 8d0b322..1cdb93b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:f32 @offset(0)
 }
 
@@ -8,41 +8,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_vf2_ = func(%v:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
+%func_vf2_ = func(%v:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_7, 0u
     %6:f32 = load %5
     store_vector_element %v, 0u, %6
     %7:f32 = load_vector_element %v, 1u
     %8:bool = lt %7, 1.0f
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 1.0f
       }
     }
     ret 5.0f
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %f:ptr<function, f32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     store %param, vec2<f32>(1.0f)
-    %x_34:f32 = call %func_vf2_, %param
+    %12:f32 = call %func_vf2_, %param
+    %x_34:f32 = let %12
     store %f, %x_34
-    %13:f32 = load %f
-    %14:bool = eq %13, 5.0f
-    if %14 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %14:f32 = load %f
+    %15:bool = eq %14, 5.0f
+    if %15 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -50,12 +51,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    ret %19
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.msl
index 9643a8a..1f0362c2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-mem-pass-unused-component/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:f32 @offset(0)
 }
 
@@ -8,41 +8,45 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_vf2_ = func(%v:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
+%func_vf2_ = func(%v:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
     %5:ptr<uniform, f32, read> = access %x_7, 0u
-    %x_42:f32 = load %5
+    %6:f32 = load %5
+    %x_42:f32 = let %6
     store_vector_element %v, 0u, %x_42
-    %x_45:f32 = load_vector_element %v, 1u
-    %8:bool = lt %x_45, 1.0f
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %8:f32 = load_vector_element %v, 1u
+    %x_45:f32 = let %8
+    %10:bool = lt %x_45, 1.0f
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 1.0f
       }
     }
     ret 5.0f
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %f:ptr<function, f32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     store %param, vec2<f32>(1.0f)
-    %x_34:f32 = call %func_vf2_, %param
+    %14:f32 = call %func_vf2_, %param
+    %x_34:f32 = let %14
     store %f, %x_34
-    %x_35:f32 = load %f
-    %14:bool = eq %x_35, 5.0f
-    if %14 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %16:f32 = load %f
+    %x_35:f32 = let %16
+    %18:bool = eq %x_35, 5.0f
+    if %18 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -50,12 +54,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.msl
index 331b5c7..b9add96 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,25 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %b:ptr<function, f32, read_write> = var
     %x_34:ptr<function, f32, read_write> = var
     %x_48:ptr<function, f32, read_write> = var
     store %b, 2.0f
     store %x_34, 2.0f
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:ptr<uniform, f32, read> = access %x_7, 0u
         %8:f32 = load %7
         %9:bool = eq %8, 0.0f
-        if %9 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if %9 [t: $B5] {  # if_1
+          $B5: {  # true
             %10:f32 = load %x_34
             store %x_48, %10
             exit_loop  # loop_1
@@ -35,34 +35,35 @@
         %11:ptr<uniform, f32, read> = access %x_7, 0u
         %12:f32 = load %11
         %13:bool = eq %12, 0.0f
-        if %13 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        if %13 [t: $B6] {  # if_2
+          $B6: {  # true
             ret 1.0f
           }
         }
         store %b, 1.0f
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_34, 1.0f
         store %x_48, 1.0f
-        break_if true %b3
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     %14:f32 = load %x_48
     ret %14
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
-    %x_27:f32 = call %func_
-    %17:bool = eq %x_27, 1.0f
-    if %17 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+%main_1 = func():void {
+  $B7: {
+    %16:f32 = call %func_
+    %x_27:f32 = let %16
+    %18:bool = eq %x_27, 1.0f
+    if %18 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -70,12 +71,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.msl
index e1be0ec..af214cc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-merge-return-condition-twice/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,64 +8,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %b:ptr<function, f32, read_write> = var
     %x_34:ptr<function, f32, read_write> = var
     %x_34_phi:ptr<function, f32, read_write> = var
     %x_48_phi:ptr<function, f32, read_write> = var
     store %b, 2.0f
     store %x_34_phi, 2.0f
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %8:f32 = load %x_34_phi
         store %x_34, %8
         %9:ptr<uniform, f32, read> = access %x_7, 0u
-        %x_39:f32 = load %9
-        %11:bool = eq %x_39, 0.0f
-        if %11 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %12:f32 = load %x_34
-            store %x_48_phi, %12
+        %10:f32 = load %9
+        %x_39:f32 = let %10
+        %12:bool = eq %x_39, 0.0f
+        if %12 [t: $B5] {  # if_1
+          $B5: {  # true
+            %13:f32 = load %x_34
+            store %x_48_phi, %13
             exit_loop  # loop_1
           }
         }
-        %13:ptr<uniform, f32, read> = access %x_7, 0u
-        %x_44:f32 = load %13
-        %15:bool = eq %x_44, 0.0f
-        if %15 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %14:ptr<uniform, f32, read> = access %x_7, 0u
+        %15:f32 = load %14
+        %x_44:f32 = let %15
+        %17:bool = eq %x_44, 0.0f
+        if %17 [t: $B6] {  # if_2
+          $B6: {  # true
             ret 1.0f
           }
         }
         store %b, 1.0f
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_34_phi, 1.0f
         store %x_48_phi, 1.0f
-        break_if true %b3
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %x_48:f32 = load %x_48_phi
+    %18:f32 = load %x_48_phi
+    %x_48:f32 = let %18
     ret %x_48
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
-    %x_27:f32 = call %func_
-    %19:bool = eq %x_27, 1.0f
-    if %19 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+%main_1 = func():void {
+  $B7: {
+    %21:f32 = call %func_
+    %x_27:f32 = let %21
+    %23:bool = eq %x_27, 1.0f
+    if %23 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -73,12 +77,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    ret %27
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.msl
index 2e88a5f..716ba30 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:f32 = load_vector_element %gl_FragCoord, 0u
+    %5:f32 = mul %4, 0.00390625f
+    %6:f32 = let %5
+    %7:f32 = load_vector_element %gl_FragCoord, 0u
+    %8:i32 = call %tint_f32_to_i32, %7
+    %10:i32 = let %8
+    %11:f32 = load_vector_element %gl_FragCoord, 1u
+    %12:i32 = call %tint_f32_to_i32, %11
+    %13:i32 = xor %10, %12
+    %14:f32 = convert %13
+    %15:f32 = mul %14, 0.00390625f
+    %16:f32 = load_vector_element %gl_FragCoord, 1u
+    %17:f32 = mul %16, 0.00390625f
+    %18:vec4<f32> = construct %6, %15, %17, 1.0f
+    store %x_GLF_color, %18
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B4: {
+    %25:i32 = convert %value
+    %26:bool = gte %value, -2147483648.0f
+    %27:i32 = select -2147483648i, %25, %26
+    %28:bool = lte %value, 2147483520.0f
+    %29:i32 = select 2147483647i, %27, %28
+    ret %29
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.msl
index 2e88a5f..823b658 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-min-nested-loop-same-value-for-variables/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,58 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_20:f32 = let %4
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_23:f32 = let %6
+    %8:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_26:f32 = let %8
+    %10:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_32:f32 = let %10
+    %12:f32 = mul %x_20, 0.00390625f
+    %13:i32 = call %tint_f32_to_i32, %x_23
+    %15:i32 = let %13
+    %16:i32 = call %tint_f32_to_i32, %x_26
+    %17:i32 = xor %15, %16
+    %18:f32 = convert %17
+    %19:f32 = mul %18, 0.00390625f
+    %20:f32 = mul %x_32, 0.00390625f
+    %21:vec4<f32> = construct %12, %19, %20, 1.0f
+    store %x_GLF_color, %21
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B4: {
+    %28:i32 = convert %value
+    %29:bool = gte %value, -2147483648.0f
+    %30:i32 = select -2147483648i, %28, %29
+    %31:bool = lte %value, 2147483520.0f
+    %32:i32 = select 2147483647i, %30, %31
+    ret %32
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.msl
index 1368b54..a48d088 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(4) {
   one:u32 @offset(0)
 }
 
@@ -16,76 +16,78 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
-    switch 1i [c: (0i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
+%func_ = func():f32 {
+  $B2: {
+    switch 1i [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
         ret 1.0f
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
     ret 0.0f
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %v:ptr<function, vec4<f32>, read_write> = var
     store %v, vec4<f32>(1.0f)
     %8:f32 = load_vector_element %gl_FragCoord, 1u
     %9:bool = lt %8, 0.0f
-    if %9 [t: %b6] {  # if_1
-      %b6 = block {  # true
-        %x_42:f32 = call %func_
-        %11:vec4<f32> = construct %x_42
-        store %v, %11
+    if %9 [t: $B6] {  # if_1
+      $B6: {  # true
+        %10:f32 = call %func_
+        %x_42:f32 = let %10
+        %12:vec4<f32> = construct %x_42
+        store %v, %12
         exit_if  # if_1
       }
     }
-    %12:vec4<f32> = load %v
-    %13:u32 = pack4x8unorm %12
-    %14:bool = eq %13, 1u
-    if %14 [t: %b7] {  # if_2
-      %b7 = block {  # true
+    %13:vec4<f32> = load %v
+    %14:u32 = pack4x8unorm %13
+    %15:bool = eq %14, 1u
+    if %15 [t: $B7] {  # if_2
+      $B7: {  # true
         ret
       }
     }
-    %15:ptr<uniform, u32, read> = access %x_8, 0u
-    %16:u32 = load %15
-    %17:u32 = shiftl 1u, %16
-    %18:bool = eq %17, 2u
-    if %18 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %16:ptr<uniform, u32, read> = access %x_8, 0u
+    %17:u32 = load %16
+    %18:u32 = and %17, 31u
+    %19:u32 = shl 1u, %18
+    %20:bool = eq %19, 2u
+    if %20 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %19:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %20:i32 = load %19
-        %21:f32 = convert %20
-        %22:vec4<f32> = construct %21
-        store %x_GLF_color, %22
+      $B9: {  # false
+        %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %22:i32 = load %21
+        %23:f32 = convert %22
+        %24:vec4<f32> = construct %23
+        store %x_GLF_color, %24
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.msl
index da791fb..b15431f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-missing-return-value-function-never-called/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(4) {
   one:u32 @offset(0)
 }
 
@@ -16,76 +16,83 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
-    switch 1i [c: (0i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
+%func_ = func():f32 {
+  $B2: {
+    switch 1i [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
         ret 1.0f
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
     ret 0.0f
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %v:ptr<function, vec4<f32>, read_write> = var
     store %v, vec4<f32>(1.0f)
-    %x_38:f32 = load_vector_element %gl_FragCoord, 1u
-    %9:bool = lt %x_38, 0.0f
-    if %9 [t: %b6] {  # if_1
-      %b6 = block {  # true
-        %x_42:f32 = call %func_
-        %11:vec4<f32> = construct %x_42, %x_42, %x_42, %x_42
-        store %v, %11
+    %8:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_38:f32 = let %8
+    %10:bool = lt %x_38, 0.0f
+    if %10 [t: $B6] {  # if_1
+      $B6: {  # true
+        %11:f32 = call %func_
+        %x_42:f32 = let %11
+        %13:vec4<f32> = construct %x_42, %x_42, %x_42, %x_42
+        store %v, %13
         exit_if  # if_1
       }
     }
-    %x_44:vec4<f32> = load %v
-    %13:u32 = pack4x8unorm %x_44
-    %14:bool = eq %13, 1u
-    if %14 [t: %b7] {  # if_2
-      %b7 = block {  # true
+    %14:vec4<f32> = load %v
+    %x_44:vec4<f32> = let %14
+    %16:u32 = pack4x8unorm %x_44
+    %17:bool = eq %16, 1u
+    if %17 [t: $B7] {  # if_2
+      $B7: {  # true
         ret
       }
     }
-    %15:ptr<uniform, u32, read> = access %x_8, 0u
-    %x_50:u32 = load %15
-    %17:u32 = shiftl 1u, %x_50
-    %18:bool = eq %17, 2u
-    if %18 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %18:ptr<uniform, u32, read> = access %x_8, 0u
+    %19:u32 = load %18
+    %x_50:u32 = let %19
+    %21:u32 = and %x_50, 31u
+    %22:u32 = shl 1u, %21
+    %23:bool = eq %22, 2u
+    if %23 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %19:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_57:i32 = load %19
-        %x_58:f32 = convert %x_57
-        %22:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-        store %x_GLF_color, %22
+      $B9: {  # false
+        %24:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %25:i32 = load %24
+        %x_57:i32 = let %25
+        %27:f32 = convert %x_57
+        %x_58:f32 = let %27
+        %29:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+        store %x_GLF_color, %29
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.msl
index 39a2a86..703069d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     store %a, 1.40129846e-45f
     %5:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
@@ -29,8 +29,8 @@
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
     %10:f32 = load %9
     %11:bool = lt %8, %10
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
         %13:f32 = load %12
         %14:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
@@ -47,8 +47,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func():main_out {
+  $B4: {
     %22:void = call %main_1
     %23:vec4<f32> = load %x_GLF_color
     %24:main_out = construct %23
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.msl
index 3508a9b..67711f8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-mod-uint-bits-float/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,47 +12,54 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     store %a, 1.40129846e-45f
     %5:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_29:f32 = load %5
-    %7:vec4<f32> = construct %x_29, %x_29, %x_29, %x_29
-    store %x_GLF_color, %7
-    %x_31:f32 = load %a
-    %9:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_33:f32 = load %9
-    %11:bool = lt %x_31, %x_33
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_38:f32 = load %12
-        %14:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_40:f32 = load %14
-        %16:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_42:f32 = load %16
-        %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_44:f32 = load %18
-        %20:vec4<f32> = construct %x_38, %x_40, %x_42, %x_44
-        store %x_GLF_color, %20
+    %6:f32 = load %5
+    %x_29:f32 = let %6
+    %8:vec4<f32> = construct %x_29, %x_29, %x_29, %x_29
+    store %x_GLF_color, %8
+    %9:f32 = load %a
+    %x_31:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %12:f32 = load %11
+    %x_33:f32 = let %12
+    %14:bool = lt %x_31, %x_33
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %16:f32 = load %15
+        %x_38:f32 = let %16
+        %18:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %19:f32 = load %18
+        %x_40:f32 = let %19
+        %21:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %22:f32 = load %21
+        %x_42:f32 = let %22
+        %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %25:f32 = load %24
+        %x_44:f32 = let %25
+        %27:vec4<f32> = construct %x_38, %x_40, %x_42, %x_44
+        store %x_GLF_color, %27
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %29:void = call %main_1
+    %30:vec4<f32> = load %x_GLF_color
+    %31:main_out = construct %30
+    ret %31
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.msl
index f4b9770..b2ebb6a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -28,7 +28,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
@@ -36,8 +36,8 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     store %a, 0u
@@ -48,58 +48,72 @@
     %12:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
     %13:f32 = load %12
     %14:bool = lt %11, %13
-    if %14 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
         %15:ptr<uniform, u32, read> = access %x_12, 0u, 0i, 0u
         %16:u32 = load %15
         %17:u32 = load %a
-        %18:u32 = mod %16, %17
-        %19:i32 = bitcast %18
-        store %b, %19
+        %18:u32 = call %tint_mod_u32, %16, %17
+        %20:i32 = bitcast %18
+        store %b, %20
         exit_if  # if_1
       }
     }
-    %20:i32 = load %b
-    %21:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %22:i32 = load %21
-    %23:bool = eq %20, %22
-    if %23 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %24:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %28:i32 = load %27
-        %29:f32 = convert %28
-        %30:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %21:i32 = load %b
+    %22:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %23:i32 = load %22
+    %24:bool = eq %21, %23
+    if %24 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %25:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %26:i32 = load %25
+        %27:f32 = convert %26
+        %28:f32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:f32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
         %34:i32 = load %33
         %35:f32 = convert %34
-        %36:vec4<f32> = construct %26, %29, %32, %35
-        store %x_GLF_color, %36
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %37:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
         %38:i32 = load %37
         %39:f32 = convert %38
-        %40:vec4<f32> = construct %39
+        %40:vec4<f32> = construct %28, %32, %36, %39
         store %x_GLF_color, %40
         exit_if  # if_2
       }
+      $B5: {  # false
+        %41:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:vec4<f32> = construct %43
+        store %x_GLF_color, %44
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
+  }
+}
+%tint_mod_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B7: {
+    %52:bool = eq %rhs, 0u
+    %53:u32 = select %rhs, 1u, %52
+    %54:u32 = let %53
+    %55:u32 = div %lhs, %54
+    %56:u32 = mul %55, %54
+    %57:u32 = sub %lhs, %56
+    ret %57
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.msl
index d58f09f..529063e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-modulo-zero-never-executed/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -28,7 +28,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
@@ -36,70 +36,97 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %b:ptr<function, i32, read_write> = var
     store %a, 0u
     %9:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_41:i32 = load %9
+    %10:i32 = load %9
+    %x_41:i32 = let %10
     store %b, %x_41
-    %x_43:f32 = load_vector_element %gl_FragCoord, 0u
-    %12:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-    %x_45:f32 = load %12
-    %14:bool = lt %x_43, %x_45
-    if %14 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %15:ptr<uniform, u32, read> = access %x_12, 0u, 0i, 0u
-        %x_50:u32 = load %15
-        %x_51:u32 = load %a
-        %18:u32 = mod %x_50, %x_51
-        %19:i32 = bitcast %18
-        store %b, %19
+    %12:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_43:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %15:f32 = load %14
+    %x_45:f32 = let %15
+    %17:bool = lt %x_43, %x_45
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<uniform, u32, read> = access %x_12, 0u, 0i, 0u
+        %19:u32 = load %18
+        %x_50:u32 = let %19
+        %21:u32 = load %a
+        %x_51:u32 = let %21
+        %23:u32 = call %tint_mod_u32, %x_50, %x_51
+        %25:i32 = bitcast %23
+        store %b, %25
         exit_if  # if_1
       }
     }
-    %x_54:i32 = load %b
-    %21:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_56:i32 = load %21
-    %23:bool = eq %x_54, %x_56
-    if %23 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %24:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_62:i32 = load %24
-        %26:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_65:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_68:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_71:i32 = load %30
-        %32:f32 = convert %x_62
-        %33:f32 = convert %x_65
-        %34:f32 = convert %x_68
-        %35:f32 = convert %x_71
-        %36:vec4<f32> = construct %32, %33, %34, %35
-        store %x_GLF_color, %36
+    %26:i32 = load %b
+    %x_54:i32 = let %26
+    %28:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %29:i32 = load %28
+    %x_56:i32 = let %29
+    %31:bool = eq %x_54, %x_56
+    if %31 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %32:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_62:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %36:i32 = load %35
+        %x_65:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %39:i32 = load %38
+        %x_68:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_71:i32 = let %42
+        %44:f32 = convert %x_62
+        %45:f32 = let %44
+        %46:f32 = convert %x_65
+        %47:f32 = let %46
+        %48:f32 = convert %x_68
+        %49:f32 = let %48
+        %50:f32 = convert %x_71
+        %51:vec4<f32> = construct %45, %47, %49, %50
+        store %x_GLF_color, %51
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %37:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_75:i32 = load %37
-        %x_76:f32 = convert %x_75
-        %40:vec4<f32> = construct %x_76, %x_76, %x_76, %x_76
-        store %x_GLF_color, %40
+      $B5: {  # false
+        %52:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %53:i32 = load %52
+        %x_75:i32 = let %53
+        %55:f32 = convert %x_75
+        %x_76:f32 = let %55
+        %57:vec4<f32> = construct %x_76, %x_76, %x_76, %x_76
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
+  }
+}
+%tint_mod_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B7: {
+    %65:bool = eq %rhs, 0u
+    %66:u32 = select %rhs, 1u, %65
+    %67:u32 = let %66
+    %68:u32 = div %lhs, %67
+    %69:u32 = mul %68, %67
+    %70:u32 = sub %lhs, %69
+    ret %70
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.msl
index efdd3b1..242f871 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,1071 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m23:ptr<function, mat2x3<f32>, read_write> = var
+    %m24:ptr<function, mat2x4<f32>, read_write> = var
+    %m32:ptr<function, mat3x2<f32>, read_write> = var
+    %m33:ptr<function, mat3x3<f32>, read_write> = var
+    %m34:ptr<function, mat3x4<f32>, read_write> = var
+    %m42:ptr<function, mat4x2<f32>, read_write> = var
+    %m43:ptr<function, mat4x3<f32>, read_write> = var
+    %m44:ptr<function, mat4x4<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %i_1:ptr<function, i32, read_write> = var
+    %i_2:ptr<function, i32, read_write> = var
+    %i_3:ptr<function, i32, read_write> = var
+    %i_4:ptr<function, i32, read_write> = var
+    %i_5:ptr<function, i32, read_write> = var
+    %i_6:ptr<function, i32, read_write> = var
+    %i_7:ptr<function, i32, read_write> = var
+    %i_8:ptr<function, i32, read_write> = var
+    %i_9:ptr<function, i32, read_write> = var
+    %i_10:ptr<function, i32, read_write> = var
+    %i_11:ptr<function, i32, read_write> = var
+    %i_12:ptr<function, i32, read_write> = var
+    %i_13:ptr<function, i32, read_write> = var
+    %i_14:ptr<function, i32, read_write> = var
+    %i_15:ptr<function, i32, read_write> = var
+    %i_16:ptr<function, i32, read_write> = var
+    %i_17:ptr<function, i32, read_write> = var
+    %i_18:ptr<function, i32, read_write> = var
+    %i_19:ptr<function, i32, read_write> = var
+    %i_20:ptr<function, i32, read_write> = var
+    %i_21:ptr<function, i32, read_write> = var
+    %i_22:ptr<function, i32, read_write> = var
+    %i_23:ptr<function, i32, read_write> = var
+    %i_24:ptr<function, i32, read_write> = var
+    %i_25:ptr<function, i32, read_write> = var
+    %i_26:ptr<function, i32, read_write> = var
+    %i_27:ptr<function, i32, read_write> = var
+    %i_28:ptr<function, i32, read_write> = var
+    %i_29:ptr<function, i32, read_write> = var
+    %i_30:ptr<function, i32, read_write> = var
+    %i_31:ptr<function, i32, read_write> = var
+    %i_32:ptr<function, i32, read_write> = var
+    %i_33:ptr<function, i32, read_write> = var
+    %i_34:ptr<function, i32, read_write> = var
+    %i_35:ptr<function, i32, read_write> = var
+    %i_36:ptr<function, i32, read_write> = var
+    %i_37:ptr<function, i32, read_write> = var
+    %sum:ptr<function, f32, read_write> = var
+    %r:ptr<function, i32, read_write> = var
+    store %x_GLF_global_loop_count, 0i
+    store %m23, mat2x3<f32>(vec3<f32>(0.0f))
+    store %m24, mat2x4<f32>(vec4<f32>(0.0f))
+    store %m32, mat3x2<f32>(vec2<f32>(0.0f))
+    store %m33, mat3x3<f32>(vec3<f32>(0.0f))
+    store %m34, mat3x4<f32>(vec4<f32>(0.0f))
+    store %m42, mat4x2<f32>(vec2<f32>(0.0f))
+    store %m43, mat4x3<f32>(vec3<f32>(0.0f))
+    store %m44, mat4x4<f32>(vec4<f32>(0.0f))
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %52:i32 = load %i
+        %53:bool = lt %52, 1i
+        if %53 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        store %i_1, 0i
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %54:i32 = load %i_1
+            %55:bool = lt %54, 1i
+            if %55 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
+                exit_if  # if_2
+              }
+              $B10: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            store %i_2, 0i
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %56:i32 = load %i_2
+                %57:bool = lt %56, 1i
+                if %57 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
+                    exit_if  # if_3
+                  }
+                  $B14: {  # false
+                    exit_loop  # loop_3
+                  }
+                }
+                store %i_3, 0i
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %58:i32 = load %i_3
+                    %59:bool = lt %58, 1i
+                    if %59 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
+                        exit_if  # if_4
+                      }
+                      $B18: {  # false
+                        exit_loop  # loop_4
+                      }
+                    }
+                    store %i_4, 0i
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %60:i32 = load %i_4
+                        %61:bool = lt %60, 1i
+                        if %61 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
+                            exit_if  # if_5
+                          }
+                          $B22: {  # false
+                            exit_loop  # loop_5
+                          }
+                        }
+                        store %i_5, 0i
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %62:i32 = load %i_5
+                            %63:bool = lt %62, 1i
+                            if %63 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
+                                exit_if  # if_6
+                              }
+                              $B26: {  # false
+                                exit_loop  # loop_6
+                              }
+                            }
+                            store %i_6, 0i
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
+                                %64:i32 = load %i_6
+                                %65:bool = lt %64, 1i
+                                if %65 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
+                                    exit_if  # if_7
+                                  }
+                                  $B30: {  # false
+                                    exit_loop  # loop_7
+                                  }
+                                }
+                                store %i_7, 0i
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
+                                    %66:i32 = load %i_7
+                                    %67:bool = lt %66, 1i
+                                    if %67 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
+                                        exit_if  # if_8
+                                      }
+                                      $B34: {  # false
+                                        exit_loop  # loop_8
+                                      }
+                                    }
+                                    store %i_8, 0i
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
+                                        %68:i32 = load %i_8
+                                        %69:bool = lt %68, 1i
+                                        if %69 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
+                                            exit_if  # if_9
+                                          }
+                                          $B38: {  # false
+                                            exit_loop  # loop_9
+                                          }
+                                        }
+                                        store %i_9, 0i
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
+                                            %70:i32 = load %i_9
+                                            %71:bool = lt %70, 1i
+                                            if %71 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
+                                                exit_if  # if_10
+                                              }
+                                              $B42: {  # false
+                                                exit_loop  # loop_10
+                                              }
+                                            }
+                                            store %i_10, 0i
+                                            loop [b: $B43, c: $B44] {  # loop_11
+                                              $B43: {  # body
+                                                %72:i32 = load %i_10
+                                                %73:bool = lt %72, 1i
+                                                if %73 [t: $B45, f: $B46] {  # if_11
+                                                  $B45: {  # true
+                                                    exit_if  # if_11
+                                                  }
+                                                  $B46: {  # false
+                                                    exit_loop  # loop_11
+                                                  }
+                                                }
+                                                store %i_11, 0i
+                                                loop [b: $B47, c: $B48] {  # loop_12
+                                                  $B47: {  # body
+                                                    %74:i32 = load %i_11
+                                                    %75:bool = lt %74, 1i
+                                                    if %75 [t: $B49, f: $B50] {  # if_12
+                                                      $B49: {  # true
+                                                        exit_if  # if_12
+                                                      }
+                                                      $B50: {  # false
+                                                        exit_loop  # loop_12
+                                                      }
+                                                    }
+                                                    store %i_12, 0i
+                                                    loop [b: $B51, c: $B52] {  # loop_13
+                                                      $B51: {  # body
+                                                        %76:i32 = load %i_12
+                                                        %77:bool = lt %76, 1i
+                                                        if %77 [t: $B53, f: $B54] {  # if_13
+                                                          $B53: {  # true
+                                                            exit_if  # if_13
+                                                          }
+                                                          $B54: {  # false
+                                                            exit_loop  # loop_13
+                                                          }
+                                                        }
+                                                        store %i_13, 0i
+                                                        loop [b: $B55, c: $B56] {  # loop_14
+                                                          $B55: {  # body
+                                                            %78:i32 = load %i_13
+                                                            %79:bool = lt %78, 1i
+                                                            if %79 [t: $B57, f: $B58] {  # if_14
+                                                              $B57: {  # true
+                                                                exit_if  # if_14
+                                                              }
+                                                              $B58: {  # false
+                                                                exit_loop  # loop_14
+                                                              }
+                                                            }
+                                                            store %i_14, 0i
+                                                            loop [b: $B59, c: $B60] {  # loop_15
+                                                              $B59: {  # body
+                                                                %80:i32 = load %i_14
+                                                                %81:bool = lt %80, 1i
+                                                                if %81 [t: $B61, f: $B62] {  # if_15
+                                                                  $B61: {  # true
+                                                                    exit_if  # if_15
+                                                                  }
+                                                                  $B62: {  # false
+                                                                    exit_loop  # loop_15
+                                                                  }
+                                                                }
+                                                                store %i_15, 0i
+                                                                loop [b: $B63, c: $B64] {  # loop_16
+                                                                  $B63: {  # body
+                                                                    %82:i32 = load %i_15
+                                                                    %83:bool = lt %82, 1i
+                                                                    if %83 [t: $B65, f: $B66] {  # if_16
+                                                                      $B65: {  # true
+                                                                        exit_if  # if_16
+                                                                      }
+                                                                      $B66: {  # false
+                                                                        exit_loop  # loop_16
+                                                                      }
+                                                                    }
+                                                                    store %i_16, 0i
+                                                                    loop [b: $B67, c: $B68] {  # loop_17
+                                                                      $B67: {  # body
+                                                                        %84:i32 = load %i_16
+                                                                        %85:bool = lt %84, 1i
+                                                                        if %85 [t: $B69, f: $B70] {  # if_17
+                                                                          $B69: {  # true
+                                                                            exit_if  # if_17
+                                                                          }
+                                                                          $B70: {  # false
+                                                                            exit_loop  # loop_17
+                                                                          }
+                                                                        }
+                                                                        store %i_17, 0i
+                                                                        loop [b: $B71, c: $B72] {  # loop_18
+                                                                          $B71: {  # body
+                                                                            %86:i32 = load %i_17
+                                                                            %87:bool = lt %86, 1i
+                                                                            if %87 [t: $B73, f: $B74] {  # if_18
+                                                                              $B73: {  # true
+                                                                                exit_if  # if_18
+                                                                              }
+                                                                              $B74: {  # false
+                                                                                exit_loop  # loop_18
+                                                                              }
+                                                                            }
+                                                                            store %i_18, 0i
+                                                                            loop [b: $B75, c: $B76] {  # loop_19
+                                                                              $B75: {  # body
+                                                                                %88:i32 = load %i_18
+                                                                                %89:bool = lt %88, 1i
+                                                                                if %89 [t: $B77, f: $B78] {  # if_19
+                                                                                  $B77: {  # true
+                                                                                    exit_if  # if_19
+                                                                                  }
+                                                                                  $B78: {  # false
+                                                                                    exit_loop  # loop_19
+                                                                                  }
+                                                                                }
+                                                                                store %i_19, 0i
+                                                                                loop [b: $B79, c: $B80] {  # loop_20
+                                                                                  $B79: {  # body
+                                                                                    %90:i32 = load %i_19
+                                                                                    %91:bool = lt %90, 1i
+                                                                                    if %91 [t: $B81, f: $B82] {  # if_20
+                                                                                      $B81: {  # true
+                                                                                        exit_if  # if_20
+                                                                                      }
+                                                                                      $B82: {  # false
+                                                                                        exit_loop  # loop_20
+                                                                                      }
+                                                                                    }
+                                                                                    store %i_20, 0i
+                                                                                    loop [b: $B83, c: $B84] {  # loop_21
+                                                                                      $B83: {  # body
+                                                                                        %92:i32 = load %i_20
+                                                                                        %93:bool = lt %92, 1i
+                                                                                        if %93 [t: $B85, f: $B86] {  # if_21
+                                                                                          $B85: {  # true
+                                                                                            exit_if  # if_21
+                                                                                          }
+                                                                                          $B86: {  # false
+                                                                                            exit_loop  # loop_21
+                                                                                          }
+                                                                                        }
+                                                                                        store %i_21, 0i
+                                                                                        loop [b: $B87, c: $B88] {  # loop_22
+                                                                                          $B87: {  # body
+                                                                                            %94:i32 = load %i_21
+                                                                                            %95:bool = lt %94, 1i
+                                                                                            if %95 [t: $B89, f: $B90] {  # if_22
+                                                                                              $B89: {  # true
+                                                                                                exit_if  # if_22
+                                                                                              }
+                                                                                              $B90: {  # false
+                                                                                                exit_loop  # loop_22
+                                                                                              }
+                                                                                            }
+                                                                                            store %i_22, 0i
+                                                                                            loop [b: $B91, c: $B92] {  # loop_23
+                                                                                              $B91: {  # body
+                                                                                                %96:i32 = load %i_22
+                                                                                                %97:bool = lt %96, 1i
+                                                                                                if %97 [t: $B93, f: $B94] {  # if_23
+                                                                                                  $B93: {  # true
+                                                                                                    exit_if  # if_23
+                                                                                                  }
+                                                                                                  $B94: {  # false
+                                                                                                    exit_loop  # loop_23
+                                                                                                  }
+                                                                                                }
+                                                                                                store %i_23, 0i
+                                                                                                loop [b: $B95, c: $B96] {  # loop_24
+                                                                                                  $B95: {  # body
+                                                                                                    %98:i32 = load %i_23
+                                                                                                    %99:bool = lt %98, 1i
+                                                                                                    if %99 [t: $B97, f: $B98] {  # if_24
+                                                                                                      $B97: {  # true
+                                                                                                        exit_if  # if_24
+                                                                                                      }
+                                                                                                      $B98: {  # false
+                                                                                                        exit_loop  # loop_24
+                                                                                                      }
+                                                                                                    }
+                                                                                                    store %i_24, 0i
+                                                                                                    loop [b: $B99, c: $B100] {  # loop_25
+                                                                                                      $B99: {  # body
+                                                                                                        %100:i32 = load %i_24
+                                                                                                        %101:bool = lt %100, 1i
+                                                                                                        if %101 [t: $B101, f: $B102] {  # if_25
+                                                                                                          $B101: {  # true
+                                                                                                            exit_if  # if_25
+                                                                                                          }
+                                                                                                          $B102: {  # false
+                                                                                                            exit_loop  # loop_25
+                                                                                                          }
+                                                                                                        }
+                                                                                                        store %i_25, 0i
+                                                                                                        loop [b: $B103, c: $B104] {  # loop_26
+                                                                                                          $B103: {  # body
+                                                                                                            %102:i32 = load %i_25
+                                                                                                            %103:bool = lt %102, 1i
+                                                                                                            if %103 [t: $B105, f: $B106] {  # if_26
+                                                                                                              $B105: {  # true
+                                                                                                                exit_if  # if_26
+                                                                                                              }
+                                                                                                              $B106: {  # false
+                                                                                                                exit_loop  # loop_26
+                                                                                                              }
+                                                                                                            }
+                                                                                                            store %i_26, 0i
+                                                                                                            loop [b: $B107, c: $B108] {  # loop_27
+                                                                                                              $B107: {  # body
+                                                                                                                %104:i32 = load %i_26
+                                                                                                                %105:bool = lt %104, 1i
+                                                                                                                if %105 [t: $B109, f: $B110] {  # if_27
+                                                                                                                  $B109: {  # true
+                                                                                                                    exit_if  # if_27
+                                                                                                                  }
+                                                                                                                  $B110: {  # false
+                                                                                                                    exit_loop  # loop_27
+                                                                                                                  }
+                                                                                                                }
+                                                                                                                store %i_27, 0i
+                                                                                                                loop [b: $B111, c: $B112] {  # loop_28
+                                                                                                                  $B111: {  # body
+                                                                                                                    %106:i32 = load %i_27
+                                                                                                                    %107:bool = lt %106, 1i
+                                                                                                                    if %107 [t: $B113, f: $B114] {  # if_28
+                                                                                                                      $B113: {  # true
+                                                                                                                        exit_if  # if_28
+                                                                                                                      }
+                                                                                                                      $B114: {  # false
+                                                                                                                        exit_loop  # loop_28
+                                                                                                                      }
+                                                                                                                    }
+                                                                                                                    store %i_28, 0i
+                                                                                                                    loop [b: $B115, c: $B116] {  # loop_29
+                                                                                                                      $B115: {  # body
+                                                                                                                        %108:i32 = load %i_28
+                                                                                                                        %109:bool = lt %108, 1i
+                                                                                                                        if %109 [t: $B117, f: $B118] {  # if_29
+                                                                                                                          $B117: {  # true
+                                                                                                                            exit_if  # if_29
+                                                                                                                          }
+                                                                                                                          $B118: {  # false
+                                                                                                                            exit_loop  # loop_29
+                                                                                                                          }
+                                                                                                                        }
+                                                                                                                        store %i_29, 0i
+                                                                                                                        loop [b: $B119, c: $B120] {  # loop_30
+                                                                                                                          $B119: {  # body
+                                                                                                                            %110:i32 = load %i_29
+                                                                                                                            %111:bool = lt %110, 1i
+                                                                                                                            if %111 [t: $B121, f: $B122] {  # if_30
+                                                                                                                              $B121: {  # true
+                                                                                                                                exit_if  # if_30
+                                                                                                                              }
+                                                                                                                              $B122: {  # false
+                                                                                                                                exit_loop  # loop_30
+                                                                                                                              }
+                                                                                                                            }
+                                                                                                                            store %i_30, 0i
+                                                                                                                            loop [b: $B123, c: $B124] {  # loop_31
+                                                                                                                              $B123: {  # body
+                                                                                                                                %112:i32 = load %i_30
+                                                                                                                                %113:bool = lt %112, 1i
+                                                                                                                                if %113 [t: $B125, f: $B126] {  # if_31
+                                                                                                                                  $B125: {  # true
+                                                                                                                                    exit_if  # if_31
+                                                                                                                                  }
+                                                                                                                                  $B126: {  # false
+                                                                                                                                    exit_loop  # loop_31
+                                                                                                                                  }
+                                                                                                                                }
+                                                                                                                                store %i_31, 0i
+                                                                                                                                loop [b: $B127, c: $B128] {  # loop_32
+                                                                                                                                  $B127: {  # body
+                                                                                                                                    %114:i32 = load %i_31
+                                                                                                                                    %115:bool = lt %114, 1i
+                                                                                                                                    if %115 [t: $B129, f: $B130] {  # if_32
+                                                                                                                                      $B129: {  # true
+                                                                                                                                        exit_if  # if_32
+                                                                                                                                      }
+                                                                                                                                      $B130: {  # false
+                                                                                                                                        exit_loop  # loop_32
+                                                                                                                                      }
+                                                                                                                                    }
+                                                                                                                                    store %i_32, 0i
+                                                                                                                                    loop [b: $B131, c: $B132] {  # loop_33
+                                                                                                                                      $B131: {  # body
+                                                                                                                                        %116:i32 = load %i_32
+                                                                                                                                        %117:bool = lt %116, 1i
+                                                                                                                                        if %117 [t: $B133, f: $B134] {  # if_33
+                                                                                                                                          $B133: {  # true
+                                                                                                                                            exit_if  # if_33
+                                                                                                                                          }
+                                                                                                                                          $B134: {  # false
+                                                                                                                                            exit_loop  # loop_33
+                                                                                                                                          }
+                                                                                                                                        }
+                                                                                                                                        store %i_33, 0i
+                                                                                                                                        loop [b: $B135, c: $B136] {  # loop_34
+                                                                                                                                          $B135: {  # body
+                                                                                                                                            %118:i32 = load %i_33
+                                                                                                                                            %119:bool = lt %118, 1i
+                                                                                                                                            if %119 [t: $B137, f: $B138] {  # if_34
+                                                                                                                                              $B137: {  # true
+                                                                                                                                                exit_if  # if_34
+                                                                                                                                              }
+                                                                                                                                              $B138: {  # false
+                                                                                                                                                exit_loop  # loop_34
+                                                                                                                                              }
+                                                                                                                                            }
+                                                                                                                                            store %i_34, 0i
+                                                                                                                                            loop [b: $B139, c: $B140] {  # loop_35
+                                                                                                                                              $B139: {  # body
+                                                                                                                                                %120:i32 = load %i_34
+                                                                                                                                                %121:bool = lt %120, 1i
+                                                                                                                                                if %121 [t: $B141, f: $B142] {  # if_35
+                                                                                                                                                  $B141: {  # true
+                                                                                                                                                    exit_if  # if_35
+                                                                                                                                                  }
+                                                                                                                                                  $B142: {  # false
+                                                                                                                                                    exit_loop  # loop_35
+                                                                                                                                                  }
+                                                                                                                                                }
+                                                                                                                                                store %i_35, 0i
+                                                                                                                                                loop [b: $B143, c: $B144] {  # loop_36
+                                                                                                                                                  $B143: {  # body
+                                                                                                                                                    %122:i32 = load %i_35
+                                                                                                                                                    %123:bool = lt %122, 1i
+                                                                                                                                                    if %123 [t: $B145, f: $B146] {  # if_36
+                                                                                                                                                      $B145: {  # true
+                                                                                                                                                        exit_if  # if_36
+                                                                                                                                                      }
+                                                                                                                                                      $B146: {  # false
+                                                                                                                                                        exit_loop  # loop_36
+                                                                                                                                                      }
+                                                                                                                                                    }
+                                                                                                                                                    store %i_36, 0i
+                                                                                                                                                    loop [b: $B147, c: $B148] {  # loop_37
+                                                                                                                                                      $B147: {  # body
+                                                                                                                                                        %124:i32 = load %i_36
+                                                                                                                                                        %125:bool = lt %124, 1i
+                                                                                                                                                        if %125 [t: $B149, f: $B150] {  # if_37
+                                                                                                                                                          $B149: {  # true
+                                                                                                                                                            exit_if  # if_37
+                                                                                                                                                          }
+                                                                                                                                                          $B150: {  # false
+                                                                                                                                                            exit_loop  # loop_37
+                                                                                                                                                          }
+                                                                                                                                                        }
+                                                                                                                                                        store %i_37, 0i
+                                                                                                                                                        loop [b: $B151, c: $B152] {  # loop_38
+                                                                                                                                                          $B151: {  # body
+                                                                                                                                                            %126:i32 = load %i_37
+                                                                                                                                                            %127:bool = lt %126, 1i
+                                                                                                                                                            if %127 [t: $B153, f: $B154] {  # if_38
+                                                                                                                                                              $B153: {  # true
+                                                                                                                                                                exit_if  # if_38
+                                                                                                                                                              }
+                                                                                                                                                              $B154: {  # false
+                                                                                                                                                                exit_loop  # loop_38
+                                                                                                                                                              }
+                                                                                                                                                            }
+                                                                                                                                                            loop [b: $B155, c: $B156] {  # loop_39
+                                                                                                                                                              $B155: {  # body
+                                                                                                                                                                %128:i32 = load %x_GLF_global_loop_count
+                                                                                                                                                                %129:i32 = add %128, 1i
+                                                                                                                                                                store %x_GLF_global_loop_count, %129
+                                                                                                                                                                continue  # -> $B156
+                                                                                                                                                              }
+                                                                                                                                                              $B156: {  # continuing
+                                                                                                                                                                %130:i32 = load %x_GLF_global_loop_count
+                                                                                                                                                                %x_373:i32 = let %130
+                                                                                                                                                                %132:bool = lt %x_373, 98i
+                                                                                                                                                                %133:bool = eq %132, false
+                                                                                                                                                                break_if %133  # -> [t: exit_loop loop_39, f: $B155]
+                                                                                                                                                              }
+                                                                                                                                                            }
+                                                                                                                                                            %134:i32 = load %i_37
+                                                                                                                                                            %x_375:i32 = let %134
+                                                                                                                                                            %136:i32 = load %i_37
+                                                                                                                                                            %x_376:i32 = let %136
+                                                                                                                                                            %138:ptr<function, vec3<f32>, read_write> = access %m23, %x_375
+                                                                                                                                                            store_vector_element %138, %x_376, 1.0f
+                                                                                                                                                            %139:i32 = load %i_37
+                                                                                                                                                            %x_378:i32 = let %139
+                                                                                                                                                            %141:i32 = load %i_37
+                                                                                                                                                            %x_379:i32 = let %141
+                                                                                                                                                            %143:ptr<function, vec4<f32>, read_write> = access %m24, %x_378
+                                                                                                                                                            store_vector_element %143, %x_379, 1.0f
+                                                                                                                                                            %144:i32 = load %i_37
+                                                                                                                                                            %x_381:i32 = let %144
+                                                                                                                                                            %146:i32 = load %i_37
+                                                                                                                                                            %x_382:i32 = let %146
+                                                                                                                                                            %148:ptr<function, vec2<f32>, read_write> = access %m32, %x_381
+                                                                                                                                                            store_vector_element %148, %x_382, 1.0f
+                                                                                                                                                            %149:i32 = load %i_37
+                                                                                                                                                            %x_384:i32 = let %149
+                                                                                                                                                            %151:i32 = load %i_37
+                                                                                                                                                            %x_385:i32 = let %151
+                                                                                                                                                            %153:ptr<function, vec3<f32>, read_write> = access %m33, %x_384
+                                                                                                                                                            store_vector_element %153, %x_385, 1.0f
+                                                                                                                                                            %154:i32 = load %i_37
+                                                                                                                                                            %x_387:i32 = let %154
+                                                                                                                                                            %156:i32 = load %i_37
+                                                                                                                                                            %x_388:i32 = let %156
+                                                                                                                                                            %158:ptr<function, vec4<f32>, read_write> = access %m34, %x_387
+                                                                                                                                                            store_vector_element %158, %x_388, 1.0f
+                                                                                                                                                            %159:i32 = load %i_37
+                                                                                                                                                            %x_390:i32 = let %159
+                                                                                                                                                            %161:i32 = load %i_37
+                                                                                                                                                            %x_391:i32 = let %161
+                                                                                                                                                            %163:ptr<function, vec2<f32>, read_write> = access %m42, %x_390
+                                                                                                                                                            store_vector_element %163, %x_391, 1.0f
+                                                                                                                                                            %164:i32 = load %i_37
+                                                                                                                                                            %x_393:i32 = let %164
+                                                                                                                                                            %166:i32 = load %i_37
+                                                                                                                                                            %x_394:i32 = let %166
+                                                                                                                                                            %168:ptr<function, vec3<f32>, read_write> = access %m43, %x_393
+                                                                                                                                                            store_vector_element %168, %x_394, 1.0f
+                                                                                                                                                            %169:i32 = load %i_37
+                                                                                                                                                            %x_396:i32 = let %169
+                                                                                                                                                            %171:i32 = load %i_37
+                                                                                                                                                            %x_397:i32 = let %171
+                                                                                                                                                            %173:ptr<function, vec4<f32>, read_write> = access %m44, %x_396
+                                                                                                                                                            store_vector_element %173, %x_397, 1.0f
+                                                                                                                                                            continue  # -> $B152
+                                                                                                                                                          }
+                                                                                                                                                          $B152: {  # continuing
+                                                                                                                                                            %174:i32 = load %i_37
+                                                                                                                                                            %175:i32 = add %174, 1i
+                                                                                                                                                            store %i_37, %175
+                                                                                                                                                            next_iteration  # -> $B151
+                                                                                                                                                          }
+                                                                                                                                                        }
+                                                                                                                                                        continue  # -> $B148
+                                                                                                                                                      }
+                                                                                                                                                      $B148: {  # continuing
+                                                                                                                                                        %176:i32 = load %i_36
+                                                                                                                                                        %177:i32 = add %176, 1i
+                                                                                                                                                        store %i_36, %177
+                                                                                                                                                        next_iteration  # -> $B147
+                                                                                                                                                      }
+                                                                                                                                                    }
+                                                                                                                                                    continue  # -> $B144
+                                                                                                                                                  }
+                                                                                                                                                  $B144: {  # continuing
+                                                                                                                                                    %178:i32 = load %i_35
+                                                                                                                                                    %179:i32 = add %178, 1i
+                                                                                                                                                    store %i_35, %179
+                                                                                                                                                    next_iteration  # -> $B143
+                                                                                                                                                  }
+                                                                                                                                                }
+                                                                                                                                                continue  # -> $B140
+                                                                                                                                              }
+                                                                                                                                              $B140: {  # continuing
+                                                                                                                                                %180:i32 = load %i_34
+                                                                                                                                                %181:i32 = add %180, 1i
+                                                                                                                                                store %i_34, %181
+                                                                                                                                                next_iteration  # -> $B139
+                                                                                                                                              }
+                                                                                                                                            }
+                                                                                                                                            continue  # -> $B136
+                                                                                                                                          }
+                                                                                                                                          $B136: {  # continuing
+                                                                                                                                            %182:i32 = load %i_33
+                                                                                                                                            %183:i32 = add %182, 1i
+                                                                                                                                            store %i_33, %183
+                                                                                                                                            next_iteration  # -> $B135
+                                                                                                                                          }
+                                                                                                                                        }
+                                                                                                                                        continue  # -> $B132
+                                                                                                                                      }
+                                                                                                                                      $B132: {  # continuing
+                                                                                                                                        %184:i32 = load %i_32
+                                                                                                                                        %185:i32 = add %184, 1i
+                                                                                                                                        store %i_32, %185
+                                                                                                                                        next_iteration  # -> $B131
+                                                                                                                                      }
+                                                                                                                                    }
+                                                                                                                                    continue  # -> $B128
+                                                                                                                                  }
+                                                                                                                                  $B128: {  # continuing
+                                                                                                                                    %186:i32 = load %i_31
+                                                                                                                                    %187:i32 = add %186, 1i
+                                                                                                                                    store %i_31, %187
+                                                                                                                                    next_iteration  # -> $B127
+                                                                                                                                  }
+                                                                                                                                }
+                                                                                                                                continue  # -> $B124
+                                                                                                                              }
+                                                                                                                              $B124: {  # continuing
+                                                                                                                                %188:i32 = load %i_30
+                                                                                                                                %189:i32 = add %188, 1i
+                                                                                                                                store %i_30, %189
+                                                                                                                                next_iteration  # -> $B123
+                                                                                                                              }
+                                                                                                                            }
+                                                                                                                            continue  # -> $B120
+                                                                                                                          }
+                                                                                                                          $B120: {  # continuing
+                                                                                                                            %190:i32 = load %i_29
+                                                                                                                            %191:i32 = add %190, 1i
+                                                                                                                            store %i_29, %191
+                                                                                                                            next_iteration  # -> $B119
+                                                                                                                          }
+                                                                                                                        }
+                                                                                                                        continue  # -> $B116
+                                                                                                                      }
+                                                                                                                      $B116: {  # continuing
+                                                                                                                        %192:i32 = load %i_28
+                                                                                                                        %193:i32 = add %192, 1i
+                                                                                                                        store %i_28, %193
+                                                                                                                        next_iteration  # -> $B115
+                                                                                                                      }
+                                                                                                                    }
+                                                                                                                    continue  # -> $B112
+                                                                                                                  }
+                                                                                                                  $B112: {  # continuing
+                                                                                                                    %194:i32 = load %i_27
+                                                                                                                    %195:i32 = add %194, 1i
+                                                                                                                    store %i_27, %195
+                                                                                                                    next_iteration  # -> $B111
+                                                                                                                  }
+                                                                                                                }
+                                                                                                                continue  # -> $B108
+                                                                                                              }
+                                                                                                              $B108: {  # continuing
+                                                                                                                %196:i32 = load %i_26
+                                                                                                                %197:i32 = add %196, 1i
+                                                                                                                store %i_26, %197
+                                                                                                                next_iteration  # -> $B107
+                                                                                                              }
+                                                                                                            }
+                                                                                                            continue  # -> $B104
+                                                                                                          }
+                                                                                                          $B104: {  # continuing
+                                                                                                            %198:i32 = load %i_25
+                                                                                                            %199:i32 = add %198, 1i
+                                                                                                            store %i_25, %199
+                                                                                                            next_iteration  # -> $B103
+                                                                                                          }
+                                                                                                        }
+                                                                                                        continue  # -> $B100
+                                                                                                      }
+                                                                                                      $B100: {  # continuing
+                                                                                                        %200:i32 = load %i_24
+                                                                                                        %201:i32 = add %200, 1i
+                                                                                                        store %i_24, %201
+                                                                                                        next_iteration  # -> $B99
+                                                                                                      }
+                                                                                                    }
+                                                                                                    continue  # -> $B96
+                                                                                                  }
+                                                                                                  $B96: {  # continuing
+                                                                                                    %202:i32 = load %i_23
+                                                                                                    %203:i32 = add %202, 1i
+                                                                                                    store %i_23, %203
+                                                                                                    next_iteration  # -> $B95
+                                                                                                  }
+                                                                                                }
+                                                                                                continue  # -> $B92
+                                                                                              }
+                                                                                              $B92: {  # continuing
+                                                                                                %204:i32 = load %i_22
+                                                                                                %205:i32 = add %204, 1i
+                                                                                                store %i_22, %205
+                                                                                                next_iteration  # -> $B91
+                                                                                              }
+                                                                                            }
+                                                                                            continue  # -> $B88
+                                                                                          }
+                                                                                          $B88: {  # continuing
+                                                                                            %206:i32 = load %i_21
+                                                                                            %207:i32 = add %206, 1i
+                                                                                            store %i_21, %207
+                                                                                            next_iteration  # -> $B87
+                                                                                          }
+                                                                                        }
+                                                                                        continue  # -> $B84
+                                                                                      }
+                                                                                      $B84: {  # continuing
+                                                                                        %208:i32 = load %i_20
+                                                                                        %209:i32 = add %208, 1i
+                                                                                        store %i_20, %209
+                                                                                        next_iteration  # -> $B83
+                                                                                      }
+                                                                                    }
+                                                                                    continue  # -> $B80
+                                                                                  }
+                                                                                  $B80: {  # continuing
+                                                                                    %210:i32 = load %i_19
+                                                                                    %211:i32 = add %210, 1i
+                                                                                    store %i_19, %211
+                                                                                    next_iteration  # -> $B79
+                                                                                  }
+                                                                                }
+                                                                                continue  # -> $B76
+                                                                              }
+                                                                              $B76: {  # continuing
+                                                                                %212:i32 = load %i_18
+                                                                                %213:i32 = add %212, 1i
+                                                                                store %i_18, %213
+                                                                                next_iteration  # -> $B75
+                                                                              }
+                                                                            }
+                                                                            continue  # -> $B72
+                                                                          }
+                                                                          $B72: {  # continuing
+                                                                            %214:i32 = load %i_17
+                                                                            %215:i32 = add %214, 1i
+                                                                            store %i_17, %215
+                                                                            next_iteration  # -> $B71
+                                                                          }
+                                                                        }
+                                                                        continue  # -> $B68
+                                                                      }
+                                                                      $B68: {  # continuing
+                                                                        %216:i32 = load %i_16
+                                                                        %217:i32 = add %216, 1i
+                                                                        store %i_16, %217
+                                                                        next_iteration  # -> $B67
+                                                                      }
+                                                                    }
+                                                                    continue  # -> $B64
+                                                                  }
+                                                                  $B64: {  # continuing
+                                                                    %218:i32 = load %i_15
+                                                                    %219:i32 = add %218, 1i
+                                                                    store %i_15, %219
+                                                                    next_iteration  # -> $B63
+                                                                  }
+                                                                }
+                                                                continue  # -> $B60
+                                                              }
+                                                              $B60: {  # continuing
+                                                                %220:i32 = load %i_14
+                                                                %221:i32 = add %220, 1i
+                                                                store %i_14, %221
+                                                                next_iteration  # -> $B59
+                                                              }
+                                                            }
+                                                            continue  # -> $B56
+                                                          }
+                                                          $B56: {  # continuing
+                                                            %222:i32 = load %i_13
+                                                            %223:i32 = add %222, 1i
+                                                            store %i_13, %223
+                                                            next_iteration  # -> $B55
+                                                          }
+                                                        }
+                                                        continue  # -> $B52
+                                                      }
+                                                      $B52: {  # continuing
+                                                        %224:i32 = load %i_12
+                                                        %225:i32 = add %224, 1i
+                                                        store %i_12, %225
+                                                        next_iteration  # -> $B51
+                                                      }
+                                                    }
+                                                    continue  # -> $B48
+                                                  }
+                                                  $B48: {  # continuing
+                                                    %226:i32 = load %i_11
+                                                    %227:i32 = add %226, 1i
+                                                    store %i_11, %227
+                                                    next_iteration  # -> $B47
+                                                  }
+                                                }
+                                                continue  # -> $B44
+                                              }
+                                              $B44: {  # continuing
+                                                %228:i32 = load %i_10
+                                                %229:i32 = add %228, 1i
+                                                store %i_10, %229
+                                                next_iteration  # -> $B43
+                                              }
+                                            }
+                                            continue  # -> $B40
+                                          }
+                                          $B40: {  # continuing
+                                            %230:i32 = load %i_9
+                                            %231:i32 = add %230, 1i
+                                            store %i_9, %231
+                                            next_iteration  # -> $B39
+                                          }
+                                        }
+                                        continue  # -> $B36
+                                      }
+                                      $B36: {  # continuing
+                                        %232:i32 = load %i_8
+                                        %233:i32 = add %232, 1i
+                                        store %i_8, %233
+                                        next_iteration  # -> $B35
+                                      }
+                                    }
+                                    continue  # -> $B32
+                                  }
+                                  $B32: {  # continuing
+                                    %234:i32 = load %i_7
+                                    %235:i32 = add %234, 1i
+                                    store %i_7, %235
+                                    next_iteration  # -> $B31
+                                  }
+                                }
+                                continue  # -> $B28
+                              }
+                              $B28: {  # continuing
+                                %236:i32 = load %i_6
+                                %237:i32 = add %236, 1i
+                                store %i_6, %237
+                                next_iteration  # -> $B27
+                              }
+                            }
+                            continue  # -> $B24
+                          }
+                          $B24: {  # continuing
+                            %238:i32 = load %i_5
+                            %239:i32 = add %238, 1i
+                            store %i_5, %239
+                            next_iteration  # -> $B23
+                          }
+                        }
+                        continue  # -> $B20
+                      }
+                      $B20: {  # continuing
+                        %240:i32 = load %i_4
+                        %241:i32 = add %240, 1i
+                        store %i_4, %241
+                        next_iteration  # -> $B19
+                      }
+                    }
+                    continue  # -> $B16
+                  }
+                  $B16: {  # continuing
+                    %242:i32 = load %i_3
+                    %243:i32 = add %242, 1i
+                    store %i_3, %243
+                    next_iteration  # -> $B15
+                  }
+                }
+                continue  # -> $B12
+              }
+              $B12: {  # continuing
+                %244:i32 = load %i_2
+                %245:i32 = add %244, 1i
+                store %i_2, %245
+                next_iteration  # -> $B11
+              }
+            }
+            continue  # -> $B8
+          }
+          $B8: {  # continuing
+            %246:i32 = load %i_1
+            %247:i32 = add %246, 1i
+            store %i_1, %247
+            next_iteration  # -> $B7
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %248:i32 = load %i
+        %249:i32 = add %248, 1i
+        store %i, %249
+        next_iteration  # -> $B3
+      }
+    }
+    store %sum, 0.0f
+    store %r, 0i
+    loop [b: $B157, c: $B158] {  # loop_40
+      $B157: {  # body
+        %250:i32 = load %x_GLF_global_loop_count
+        %251:bool = lt %250, 100i
+        if %251 [t: $B159, f: $B160] {  # if_39
+          $B159: {  # true
+            exit_if  # if_39
+          }
+          $B160: {  # false
+            exit_loop  # loop_40
+          }
+        }
+        %252:i32 = load %x_GLF_global_loop_count
+        %253:i32 = add %252, 1i
+        store %x_GLF_global_loop_count, %253
+        %254:f32 = load %sum
+        %255:ptr<function, vec3<f32>, read_write> = access %m23, 0i
+        %256:i32 = load %r
+        %257:f32 = load_vector_element %255, %256
+        %258:f32 = add %254, %257
+        store %sum, %258
+        %259:f32 = load %sum
+        %260:ptr<function, vec4<f32>, read_write> = access %m24, 0i
+        %261:i32 = load %r
+        %262:f32 = load_vector_element %260, %261
+        %263:f32 = add %259, %262
+        store %sum, %263
+        %264:f32 = load %sum
+        %265:ptr<function, vec2<f32>, read_write> = access %m32, 0i
+        %266:i32 = load %r
+        %267:f32 = load_vector_element %265, %266
+        %268:f32 = add %264, %267
+        store %sum, %268
+        %269:f32 = load %sum
+        %270:ptr<function, vec3<f32>, read_write> = access %m33, 0i
+        %271:i32 = load %r
+        %272:f32 = load_vector_element %270, %271
+        %273:f32 = add %269, %272
+        store %sum, %273
+        %274:f32 = load %sum
+        %275:ptr<function, vec4<f32>, read_write> = access %m34, 0i
+        %276:i32 = load %r
+        %277:f32 = load_vector_element %275, %276
+        %278:f32 = add %274, %277
+        store %sum, %278
+        %279:f32 = load %sum
+        %280:ptr<function, vec2<f32>, read_write> = access %m42, 0i
+        %281:i32 = load %r
+        %282:f32 = load_vector_element %280, %281
+        %283:f32 = add %279, %282
+        store %sum, %283
+        %284:f32 = load %sum
+        %285:ptr<function, vec3<f32>, read_write> = access %m43, 0i
+        %286:i32 = load %r
+        %287:f32 = load_vector_element %285, %286
+        %288:f32 = add %284, %287
+        store %sum, %288
+        %289:f32 = load %sum
+        %290:ptr<function, vec4<f32>, read_write> = access %m44, 0i
+        %291:i32 = load %r
+        %292:f32 = load_vector_element %290, %291
+        %293:f32 = add %289, %292
+        store %sum, %293
+        continue  # -> $B158
+      }
+      $B158: {  # continuing
+        %294:i32 = load %r
+        %295:i32 = add %294, 1i
+        store %r, %295
+        next_iteration  # -> $B157
+      }
+    }
+    %296:f32 = load %sum
+    %297:bool = eq %296, 8.0f
+    if %297 [t: $B161, f: $B162] {  # if_40
+      $B161: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_40
+      }
+      $B162: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_40
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B163: {
+    %299:void = call %main_1
+    %300:vec4<f32> = load %x_GLF_color
+    %301:main_out = construct %300
+    ret %301
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.msl
index efdd3b1..1d329ca 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-multiple-one-iteration-loops-global-counter-write-matrices/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,1176 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m23:ptr<function, mat2x3<f32>, read_write> = var
+    %m24:ptr<function, mat2x4<f32>, read_write> = var
+    %m32:ptr<function, mat3x2<f32>, read_write> = var
+    %m33:ptr<function, mat3x3<f32>, read_write> = var
+    %m34:ptr<function, mat3x4<f32>, read_write> = var
+    %m42:ptr<function, mat4x2<f32>, read_write> = var
+    %m43:ptr<function, mat4x3<f32>, read_write> = var
+    %m44:ptr<function, mat4x4<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %i_1:ptr<function, i32, read_write> = var
+    %i_2:ptr<function, i32, read_write> = var
+    %i_3:ptr<function, i32, read_write> = var
+    %i_4:ptr<function, i32, read_write> = var
+    %i_5:ptr<function, i32, read_write> = var
+    %i_6:ptr<function, i32, read_write> = var
+    %i_7:ptr<function, i32, read_write> = var
+    %i_8:ptr<function, i32, read_write> = var
+    %i_9:ptr<function, i32, read_write> = var
+    %i_10:ptr<function, i32, read_write> = var
+    %i_11:ptr<function, i32, read_write> = var
+    %i_12:ptr<function, i32, read_write> = var
+    %i_13:ptr<function, i32, read_write> = var
+    %i_14:ptr<function, i32, read_write> = var
+    %i_15:ptr<function, i32, read_write> = var
+    %i_16:ptr<function, i32, read_write> = var
+    %i_17:ptr<function, i32, read_write> = var
+    %i_18:ptr<function, i32, read_write> = var
+    %i_19:ptr<function, i32, read_write> = var
+    %i_20:ptr<function, i32, read_write> = var
+    %i_21:ptr<function, i32, read_write> = var
+    %i_22:ptr<function, i32, read_write> = var
+    %i_23:ptr<function, i32, read_write> = var
+    %i_24:ptr<function, i32, read_write> = var
+    %i_25:ptr<function, i32, read_write> = var
+    %i_26:ptr<function, i32, read_write> = var
+    %i_27:ptr<function, i32, read_write> = var
+    %i_28:ptr<function, i32, read_write> = var
+    %i_29:ptr<function, i32, read_write> = var
+    %i_30:ptr<function, i32, read_write> = var
+    %i_31:ptr<function, i32, read_write> = var
+    %i_32:ptr<function, i32, read_write> = var
+    %i_33:ptr<function, i32, read_write> = var
+    %i_34:ptr<function, i32, read_write> = var
+    %i_35:ptr<function, i32, read_write> = var
+    %i_36:ptr<function, i32, read_write> = var
+    %i_37:ptr<function, i32, read_write> = var
+    %sum:ptr<function, f32, read_write> = var
+    %r:ptr<function, i32, read_write> = var
+    store %x_GLF_global_loop_count, 0i
+    store %m23, mat2x3<f32>(vec3<f32>(0.0f))
+    store %m24, mat2x4<f32>(vec4<f32>(0.0f))
+    store %m32, mat3x2<f32>(vec2<f32>(0.0f))
+    store %m33, mat3x3<f32>(vec3<f32>(0.0f))
+    store %m34, mat3x4<f32>(vec4<f32>(0.0f))
+    store %m42, mat4x2<f32>(vec2<f32>(0.0f))
+    store %m43, mat4x3<f32>(vec3<f32>(0.0f))
+    store %m44, mat4x4<f32>(vec4<f32>(0.0f))
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %52:i32 = load %i
+        %x_105:i32 = let %52
+        %54:bool = lt %x_105, 1i
+        if %54 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        store %i_1, 0i
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %55:i32 = load %i_1
+            %x_112:i32 = let %55
+            %57:bool = lt %x_112, 1i
+            if %57 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
+                exit_if  # if_2
+              }
+              $B10: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            store %i_2, 0i
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %58:i32 = load %i_2
+                %x_119:i32 = let %58
+                %60:bool = lt %x_119, 1i
+                if %60 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
+                    exit_if  # if_3
+                  }
+                  $B14: {  # false
+                    exit_loop  # loop_3
+                  }
+                }
+                store %i_3, 0i
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %61:i32 = load %i_3
+                    %x_126:i32 = let %61
+                    %63:bool = lt %x_126, 1i
+                    if %63 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
+                        exit_if  # if_4
+                      }
+                      $B18: {  # false
+                        exit_loop  # loop_4
+                      }
+                    }
+                    store %i_4, 0i
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %64:i32 = load %i_4
+                        %x_133:i32 = let %64
+                        %66:bool = lt %x_133, 1i
+                        if %66 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
+                            exit_if  # if_5
+                          }
+                          $B22: {  # false
+                            exit_loop  # loop_5
+                          }
+                        }
+                        store %i_5, 0i
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %67:i32 = load %i_5
+                            %x_140:i32 = let %67
+                            %69:bool = lt %x_140, 1i
+                            if %69 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
+                                exit_if  # if_6
+                              }
+                              $B26: {  # false
+                                exit_loop  # loop_6
+                              }
+                            }
+                            store %i_6, 0i
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
+                                %70:i32 = load %i_6
+                                %x_147:i32 = let %70
+                                %72:bool = lt %x_147, 1i
+                                if %72 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
+                                    exit_if  # if_7
+                                  }
+                                  $B30: {  # false
+                                    exit_loop  # loop_7
+                                  }
+                                }
+                                store %i_7, 0i
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
+                                    %73:i32 = load %i_7
+                                    %x_154:i32 = let %73
+                                    %75:bool = lt %x_154, 1i
+                                    if %75 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
+                                        exit_if  # if_8
+                                      }
+                                      $B34: {  # false
+                                        exit_loop  # loop_8
+                                      }
+                                    }
+                                    store %i_8, 0i
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
+                                        %76:i32 = load %i_8
+                                        %x_161:i32 = let %76
+                                        %78:bool = lt %x_161, 1i
+                                        if %78 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
+                                            exit_if  # if_9
+                                          }
+                                          $B38: {  # false
+                                            exit_loop  # loop_9
+                                          }
+                                        }
+                                        store %i_9, 0i
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
+                                            %79:i32 = load %i_9
+                                            %x_168:i32 = let %79
+                                            %81:bool = lt %x_168, 1i
+                                            if %81 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
+                                                exit_if  # if_10
+                                              }
+                                              $B42: {  # false
+                                                exit_loop  # loop_10
+                                              }
+                                            }
+                                            store %i_10, 0i
+                                            loop [b: $B43, c: $B44] {  # loop_11
+                                              $B43: {  # body
+                                                %82:i32 = load %i_10
+                                                %x_175:i32 = let %82
+                                                %84:bool = lt %x_175, 1i
+                                                if %84 [t: $B45, f: $B46] {  # if_11
+                                                  $B45: {  # true
+                                                    exit_if  # if_11
+                                                  }
+                                                  $B46: {  # false
+                                                    exit_loop  # loop_11
+                                                  }
+                                                }
+                                                store %i_11, 0i
+                                                loop [b: $B47, c: $B48] {  # loop_12
+                                                  $B47: {  # body
+                                                    %85:i32 = load %i_11
+                                                    %x_182:i32 = let %85
+                                                    %87:bool = lt %x_182, 1i
+                                                    if %87 [t: $B49, f: $B50] {  # if_12
+                                                      $B49: {  # true
+                                                        exit_if  # if_12
+                                                      }
+                                                      $B50: {  # false
+                                                        exit_loop  # loop_12
+                                                      }
+                                                    }
+                                                    store %i_12, 0i
+                                                    loop [b: $B51, c: $B52] {  # loop_13
+                                                      $B51: {  # body
+                                                        %88:i32 = load %i_12
+                                                        %x_189:i32 = let %88
+                                                        %90:bool = lt %x_189, 1i
+                                                        if %90 [t: $B53, f: $B54] {  # if_13
+                                                          $B53: {  # true
+                                                            exit_if  # if_13
+                                                          }
+                                                          $B54: {  # false
+                                                            exit_loop  # loop_13
+                                                          }
+                                                        }
+                                                        store %i_13, 0i
+                                                        loop [b: $B55, c: $B56] {  # loop_14
+                                                          $B55: {  # body
+                                                            %91:i32 = load %i_13
+                                                            %x_196:i32 = let %91
+                                                            %93:bool = lt %x_196, 1i
+                                                            if %93 [t: $B57, f: $B58] {  # if_14
+                                                              $B57: {  # true
+                                                                exit_if  # if_14
+                                                              }
+                                                              $B58: {  # false
+                                                                exit_loop  # loop_14
+                                                              }
+                                                            }
+                                                            store %i_14, 0i
+                                                            loop [b: $B59, c: $B60] {  # loop_15
+                                                              $B59: {  # body
+                                                                %94:i32 = load %i_14
+                                                                %x_203:i32 = let %94
+                                                                %96:bool = lt %x_203, 1i
+                                                                if %96 [t: $B61, f: $B62] {  # if_15
+                                                                  $B61: {  # true
+                                                                    exit_if  # if_15
+                                                                  }
+                                                                  $B62: {  # false
+                                                                    exit_loop  # loop_15
+                                                                  }
+                                                                }
+                                                                store %i_15, 0i
+                                                                loop [b: $B63, c: $B64] {  # loop_16
+                                                                  $B63: {  # body
+                                                                    %97:i32 = load %i_15
+                                                                    %x_210:i32 = let %97
+                                                                    %99:bool = lt %x_210, 1i
+                                                                    if %99 [t: $B65, f: $B66] {  # if_16
+                                                                      $B65: {  # true
+                                                                        exit_if  # if_16
+                                                                      }
+                                                                      $B66: {  # false
+                                                                        exit_loop  # loop_16
+                                                                      }
+                                                                    }
+                                                                    store %i_16, 0i
+                                                                    loop [b: $B67, c: $B68] {  # loop_17
+                                                                      $B67: {  # body
+                                                                        %100:i32 = load %i_16
+                                                                        %x_217:i32 = let %100
+                                                                        %102:bool = lt %x_217, 1i
+                                                                        if %102 [t: $B69, f: $B70] {  # if_17
+                                                                          $B69: {  # true
+                                                                            exit_if  # if_17
+                                                                          }
+                                                                          $B70: {  # false
+                                                                            exit_loop  # loop_17
+                                                                          }
+                                                                        }
+                                                                        store %i_17, 0i
+                                                                        loop [b: $B71, c: $B72] {  # loop_18
+                                                                          $B71: {  # body
+                                                                            %103:i32 = load %i_17
+                                                                            %x_224:i32 = let %103
+                                                                            %105:bool = lt %x_224, 1i
+                                                                            if %105 [t: $B73, f: $B74] {  # if_18
+                                                                              $B73: {  # true
+                                                                                exit_if  # if_18
+                                                                              }
+                                                                              $B74: {  # false
+                                                                                exit_loop  # loop_18
+                                                                              }
+                                                                            }
+                                                                            store %i_18, 0i
+                                                                            loop [b: $B75, c: $B76] {  # loop_19
+                                                                              $B75: {  # body
+                                                                                %106:i32 = load %i_18
+                                                                                %x_231:i32 = let %106
+                                                                                %108:bool = lt %x_231, 1i
+                                                                                if %108 [t: $B77, f: $B78] {  # if_19
+                                                                                  $B77: {  # true
+                                                                                    exit_if  # if_19
+                                                                                  }
+                                                                                  $B78: {  # false
+                                                                                    exit_loop  # loop_19
+                                                                                  }
+                                                                                }
+                                                                                store %i_19, 0i
+                                                                                loop [b: $B79, c: $B80] {  # loop_20
+                                                                                  $B79: {  # body
+                                                                                    %109:i32 = load %i_19
+                                                                                    %x_238:i32 = let %109
+                                                                                    %111:bool = lt %x_238, 1i
+                                                                                    if %111 [t: $B81, f: $B82] {  # if_20
+                                                                                      $B81: {  # true
+                                                                                        exit_if  # if_20
+                                                                                      }
+                                                                                      $B82: {  # false
+                                                                                        exit_loop  # loop_20
+                                                                                      }
+                                                                                    }
+                                                                                    store %i_20, 0i
+                                                                                    loop [b: $B83, c: $B84] {  # loop_21
+                                                                                      $B83: {  # body
+                                                                                        %112:i32 = load %i_20
+                                                                                        %x_245:i32 = let %112
+                                                                                        %114:bool = lt %x_245, 1i
+                                                                                        if %114 [t: $B85, f: $B86] {  # if_21
+                                                                                          $B85: {  # true
+                                                                                            exit_if  # if_21
+                                                                                          }
+                                                                                          $B86: {  # false
+                                                                                            exit_loop  # loop_21
+                                                                                          }
+                                                                                        }
+                                                                                        store %i_21, 0i
+                                                                                        loop [b: $B87, c: $B88] {  # loop_22
+                                                                                          $B87: {  # body
+                                                                                            %115:i32 = load %i_21
+                                                                                            %x_252:i32 = let %115
+                                                                                            %117:bool = lt %x_252, 1i
+                                                                                            if %117 [t: $B89, f: $B90] {  # if_22
+                                                                                              $B89: {  # true
+                                                                                                exit_if  # if_22
+                                                                                              }
+                                                                                              $B90: {  # false
+                                                                                                exit_loop  # loop_22
+                                                                                              }
+                                                                                            }
+                                                                                            store %i_22, 0i
+                                                                                            loop [b: $B91, c: $B92] {  # loop_23
+                                                                                              $B91: {  # body
+                                                                                                %118:i32 = load %i_22
+                                                                                                %x_259:i32 = let %118
+                                                                                                %120:bool = lt %x_259, 1i
+                                                                                                if %120 [t: $B93, f: $B94] {  # if_23
+                                                                                                  $B93: {  # true
+                                                                                                    exit_if  # if_23
+                                                                                                  }
+                                                                                                  $B94: {  # false
+                                                                                                    exit_loop  # loop_23
+                                                                                                  }
+                                                                                                }
+                                                                                                store %i_23, 0i
+                                                                                                loop [b: $B95, c: $B96] {  # loop_24
+                                                                                                  $B95: {  # body
+                                                                                                    %121:i32 = load %i_23
+                                                                                                    %x_266:i32 = let %121
+                                                                                                    %123:bool = lt %x_266, 1i
+                                                                                                    if %123 [t: $B97, f: $B98] {  # if_24
+                                                                                                      $B97: {  # true
+                                                                                                        exit_if  # if_24
+                                                                                                      }
+                                                                                                      $B98: {  # false
+                                                                                                        exit_loop  # loop_24
+                                                                                                      }
+                                                                                                    }
+                                                                                                    store %i_24, 0i
+                                                                                                    loop [b: $B99, c: $B100] {  # loop_25
+                                                                                                      $B99: {  # body
+                                                                                                        %124:i32 = load %i_24
+                                                                                                        %x_273:i32 = let %124
+                                                                                                        %126:bool = lt %x_273, 1i
+                                                                                                        if %126 [t: $B101, f: $B102] {  # if_25
+                                                                                                          $B101: {  # true
+                                                                                                            exit_if  # if_25
+                                                                                                          }
+                                                                                                          $B102: {  # false
+                                                                                                            exit_loop  # loop_25
+                                                                                                          }
+                                                                                                        }
+                                                                                                        store %i_25, 0i
+                                                                                                        loop [b: $B103, c: $B104] {  # loop_26
+                                                                                                          $B103: {  # body
+                                                                                                            %127:i32 = load %i_25
+                                                                                                            %x_280:i32 = let %127
+                                                                                                            %129:bool = lt %x_280, 1i
+                                                                                                            if %129 [t: $B105, f: $B106] {  # if_26
+                                                                                                              $B105: {  # true
+                                                                                                                exit_if  # if_26
+                                                                                                              }
+                                                                                                              $B106: {  # false
+                                                                                                                exit_loop  # loop_26
+                                                                                                              }
+                                                                                                            }
+                                                                                                            store %i_26, 0i
+                                                                                                            loop [b: $B107, c: $B108] {  # loop_27
+                                                                                                              $B107: {  # body
+                                                                                                                %130:i32 = load %i_26
+                                                                                                                %x_287:i32 = let %130
+                                                                                                                %132:bool = lt %x_287, 1i
+                                                                                                                if %132 [t: $B109, f: $B110] {  # if_27
+                                                                                                                  $B109: {  # true
+                                                                                                                    exit_if  # if_27
+                                                                                                                  }
+                                                                                                                  $B110: {  # false
+                                                                                                                    exit_loop  # loop_27
+                                                                                                                  }
+                                                                                                                }
+                                                                                                                store %i_27, 0i
+                                                                                                                loop [b: $B111, c: $B112] {  # loop_28
+                                                                                                                  $B111: {  # body
+                                                                                                                    %133:i32 = load %i_27
+                                                                                                                    %x_294:i32 = let %133
+                                                                                                                    %135:bool = lt %x_294, 1i
+                                                                                                                    if %135 [t: $B113, f: $B114] {  # if_28
+                                                                                                                      $B113: {  # true
+                                                                                                                        exit_if  # if_28
+                                                                                                                      }
+                                                                                                                      $B114: {  # false
+                                                                                                                        exit_loop  # loop_28
+                                                                                                                      }
+                                                                                                                    }
+                                                                                                                    store %i_28, 0i
+                                                                                                                    loop [b: $B115, c: $B116] {  # loop_29
+                                                                                                                      $B115: {  # body
+                                                                                                                        %136:i32 = load %i_28
+                                                                                                                        %x_301:i32 = let %136
+                                                                                                                        %138:bool = lt %x_301, 1i
+                                                                                                                        if %138 [t: $B117, f: $B118] {  # if_29
+                                                                                                                          $B117: {  # true
+                                                                                                                            exit_if  # if_29
+                                                                                                                          }
+                                                                                                                          $B118: {  # false
+                                                                                                                            exit_loop  # loop_29
+                                                                                                                          }
+                                                                                                                        }
+                                                                                                                        store %i_29, 0i
+                                                                                                                        loop [b: $B119, c: $B120] {  # loop_30
+                                                                                                                          $B119: {  # body
+                                                                                                                            %139:i32 = load %i_29
+                                                                                                                            %x_308:i32 = let %139
+                                                                                                                            %141:bool = lt %x_308, 1i
+                                                                                                                            if %141 [t: $B121, f: $B122] {  # if_30
+                                                                                                                              $B121: {  # true
+                                                                                                                                exit_if  # if_30
+                                                                                                                              }
+                                                                                                                              $B122: {  # false
+                                                                                                                                exit_loop  # loop_30
+                                                                                                                              }
+                                                                                                                            }
+                                                                                                                            store %i_30, 0i
+                                                                                                                            loop [b: $B123, c: $B124] {  # loop_31
+                                                                                                                              $B123: {  # body
+                                                                                                                                %142:i32 = load %i_30
+                                                                                                                                %x_315:i32 = let %142
+                                                                                                                                %144:bool = lt %x_315, 1i
+                                                                                                                                if %144 [t: $B125, f: $B126] {  # if_31
+                                                                                                                                  $B125: {  # true
+                                                                                                                                    exit_if  # if_31
+                                                                                                                                  }
+                                                                                                                                  $B126: {  # false
+                                                                                                                                    exit_loop  # loop_31
+                                                                                                                                  }
+                                                                                                                                }
+                                                                                                                                store %i_31, 0i
+                                                                                                                                loop [b: $B127, c: $B128] {  # loop_32
+                                                                                                                                  $B127: {  # body
+                                                                                                                                    %145:i32 = load %i_31
+                                                                                                                                    %x_322:i32 = let %145
+                                                                                                                                    %147:bool = lt %x_322, 1i
+                                                                                                                                    if %147 [t: $B129, f: $B130] {  # if_32
+                                                                                                                                      $B129: {  # true
+                                                                                                                                        exit_if  # if_32
+                                                                                                                                      }
+                                                                                                                                      $B130: {  # false
+                                                                                                                                        exit_loop  # loop_32
+                                                                                                                                      }
+                                                                                                                                    }
+                                                                                                                                    store %i_32, 0i
+                                                                                                                                    loop [b: $B131, c: $B132] {  # loop_33
+                                                                                                                                      $B131: {  # body
+                                                                                                                                        %148:i32 = load %i_32
+                                                                                                                                        %x_329:i32 = let %148
+                                                                                                                                        %150:bool = lt %x_329, 1i
+                                                                                                                                        if %150 [t: $B133, f: $B134] {  # if_33
+                                                                                                                                          $B133: {  # true
+                                                                                                                                            exit_if  # if_33
+                                                                                                                                          }
+                                                                                                                                          $B134: {  # false
+                                                                                                                                            exit_loop  # loop_33
+                                                                                                                                          }
+                                                                                                                                        }
+                                                                                                                                        store %i_33, 0i
+                                                                                                                                        loop [b: $B135, c: $B136] {  # loop_34
+                                                                                                                                          $B135: {  # body
+                                                                                                                                            %151:i32 = load %i_33
+                                                                                                                                            %x_336:i32 = let %151
+                                                                                                                                            %153:bool = lt %x_336, 1i
+                                                                                                                                            if %153 [t: $B137, f: $B138] {  # if_34
+                                                                                                                                              $B137: {  # true
+                                                                                                                                                exit_if  # if_34
+                                                                                                                                              }
+                                                                                                                                              $B138: {  # false
+                                                                                                                                                exit_loop  # loop_34
+                                                                                                                                              }
+                                                                                                                                            }
+                                                                                                                                            store %i_34, 0i
+                                                                                                                                            loop [b: $B139, c: $B140] {  # loop_35
+                                                                                                                                              $B139: {  # body
+                                                                                                                                                %154:i32 = load %i_34
+                                                                                                                                                %x_343:i32 = let %154
+                                                                                                                                                %156:bool = lt %x_343, 1i
+                                                                                                                                                if %156 [t: $B141, f: $B142] {  # if_35
+                                                                                                                                                  $B141: {  # true
+                                                                                                                                                    exit_if  # if_35
+                                                                                                                                                  }
+                                                                                                                                                  $B142: {  # false
+                                                                                                                                                    exit_loop  # loop_35
+                                                                                                                                                  }
+                                                                                                                                                }
+                                                                                                                                                store %i_35, 0i
+                                                                                                                                                loop [b: $B143, c: $B144] {  # loop_36
+                                                                                                                                                  $B143: {  # body
+                                                                                                                                                    %157:i32 = load %i_35
+                                                                                                                                                    %x_350:i32 = let %157
+                                                                                                                                                    %159:bool = lt %x_350, 1i
+                                                                                                                                                    if %159 [t: $B145, f: $B146] {  # if_36
+                                                                                                                                                      $B145: {  # true
+                                                                                                                                                        exit_if  # if_36
+                                                                                                                                                      }
+                                                                                                                                                      $B146: {  # false
+                                                                                                                                                        exit_loop  # loop_36
+                                                                                                                                                      }
+                                                                                                                                                    }
+                                                                                                                                                    store %i_36, 0i
+                                                                                                                                                    loop [b: $B147, c: $B148] {  # loop_37
+                                                                                                                                                      $B147: {  # body
+                                                                                                                                                        %160:i32 = load %i_36
+                                                                                                                                                        %x_357:i32 = let %160
+                                                                                                                                                        %162:bool = lt %x_357, 1i
+                                                                                                                                                        if %162 [t: $B149, f: $B150] {  # if_37
+                                                                                                                                                          $B149: {  # true
+                                                                                                                                                            exit_if  # if_37
+                                                                                                                                                          }
+                                                                                                                                                          $B150: {  # false
+                                                                                                                                                            exit_loop  # loop_37
+                                                                                                                                                          }
+                                                                                                                                                        }
+                                                                                                                                                        store %i_37, 0i
+                                                                                                                                                        loop [b: $B151, c: $B152] {  # loop_38
+                                                                                                                                                          $B151: {  # body
+                                                                                                                                                            %163:i32 = load %i_37
+                                                                                                                                                            %x_364:i32 = let %163
+                                                                                                                                                            %165:bool = lt %x_364, 1i
+                                                                                                                                                            if %165 [t: $B153, f: $B154] {  # if_38
+                                                                                                                                                              $B153: {  # true
+                                                                                                                                                                exit_if  # if_38
+                                                                                                                                                              }
+                                                                                                                                                              $B154: {  # false
+                                                                                                                                                                exit_loop  # loop_38
+                                                                                                                                                              }
+                                                                                                                                                            }
+                                                                                                                                                            loop [b: $B155, c: $B156] {  # loop_39
+                                                                                                                                                              $B155: {  # body
+                                                                                                                                                                %166:i32 = load %x_GLF_global_loop_count
+                                                                                                                                                                %x_371:i32 = let %166
+                                                                                                                                                                %168:i32 = add %x_371, 1i
+                                                                                                                                                                store %x_GLF_global_loop_count, %168
+                                                                                                                                                                continue  # -> $B156
+                                                                                                                                                              }
+                                                                                                                                                              $B156: {  # continuing
+                                                                                                                                                                %169:i32 = load %x_GLF_global_loop_count
+                                                                                                                                                                %x_373:i32 = let %169
+                                                                                                                                                                %171:bool = lt %x_373, 98i
+                                                                                                                                                                %172:bool = eq %171, false
+                                                                                                                                                                break_if %172  # -> [t: exit_loop loop_39, f: $B155]
+                                                                                                                                                              }
+                                                                                                                                                            }
+                                                                                                                                                            %173:i32 = load %i_37
+                                                                                                                                                            %x_375:i32 = let %173
+                                                                                                                                                            %175:i32 = load %i_37
+                                                                                                                                                            %x_376:i32 = let %175
+                                                                                                                                                            %177:ptr<function, vec3<f32>, read_write> = access %m23, %x_375
+                                                                                                                                                            store_vector_element %177, %x_376, 1.0f
+                                                                                                                                                            %178:i32 = load %i_37
+                                                                                                                                                            %x_378:i32 = let %178
+                                                                                                                                                            %180:i32 = load %i_37
+                                                                                                                                                            %x_379:i32 = let %180
+                                                                                                                                                            %182:ptr<function, vec4<f32>, read_write> = access %m24, %x_378
+                                                                                                                                                            store_vector_element %182, %x_379, 1.0f
+                                                                                                                                                            %183:i32 = load %i_37
+                                                                                                                                                            %x_381:i32 = let %183
+                                                                                                                                                            %185:i32 = load %i_37
+                                                                                                                                                            %x_382:i32 = let %185
+                                                                                                                                                            %187:ptr<function, vec2<f32>, read_write> = access %m32, %x_381
+                                                                                                                                                            store_vector_element %187, %x_382, 1.0f
+                                                                                                                                                            %188:i32 = load %i_37
+                                                                                                                                                            %x_384:i32 = let %188
+                                                                                                                                                            %190:i32 = load %i_37
+                                                                                                                                                            %x_385:i32 = let %190
+                                                                                                                                                            %192:ptr<function, vec3<f32>, read_write> = access %m33, %x_384
+                                                                                                                                                            store_vector_element %192, %x_385, 1.0f
+                                                                                                                                                            %193:i32 = load %i_37
+                                                                                                                                                            %x_387:i32 = let %193
+                                                                                                                                                            %195:i32 = load %i_37
+                                                                                                                                                            %x_388:i32 = let %195
+                                                                                                                                                            %197:ptr<function, vec4<f32>, read_write> = access %m34, %x_387
+                                                                                                                                                            store_vector_element %197, %x_388, 1.0f
+                                                                                                                                                            %198:i32 = load %i_37
+                                                                                                                                                            %x_390:i32 = let %198
+                                                                                                                                                            %200:i32 = load %i_37
+                                                                                                                                                            %x_391:i32 = let %200
+                                                                                                                                                            %202:ptr<function, vec2<f32>, read_write> = access %m42, %x_390
+                                                                                                                                                            store_vector_element %202, %x_391, 1.0f
+                                                                                                                                                            %203:i32 = load %i_37
+                                                                                                                                                            %x_393:i32 = let %203
+                                                                                                                                                            %205:i32 = load %i_37
+                                                                                                                                                            %x_394:i32 = let %205
+                                                                                                                                                            %207:ptr<function, vec3<f32>, read_write> = access %m43, %x_393
+                                                                                                                                                            store_vector_element %207, %x_394, 1.0f
+                                                                                                                                                            %208:i32 = load %i_37
+                                                                                                                                                            %x_396:i32 = let %208
+                                                                                                                                                            %210:i32 = load %i_37
+                                                                                                                                                            %x_397:i32 = let %210
+                                                                                                                                                            %212:ptr<function, vec4<f32>, read_write> = access %m44, %x_396
+                                                                                                                                                            store_vector_element %212, %x_397, 1.0f
+                                                                                                                                                            continue  # -> $B152
+                                                                                                                                                          }
+                                                                                                                                                          $B152: {  # continuing
+                                                                                                                                                            %213:i32 = load %i_37
+                                                                                                                                                            %x_399:i32 = let %213
+                                                                                                                                                            %215:i32 = add %x_399, 1i
+                                                                                                                                                            store %i_37, %215
+                                                                                                                                                            next_iteration  # -> $B151
+                                                                                                                                                          }
+                                                                                                                                                        }
+                                                                                                                                                        continue  # -> $B148
+                                                                                                                                                      }
+                                                                                                                                                      $B148: {  # continuing
+                                                                                                                                                        %216:i32 = load %i_36
+                                                                                                                                                        %x_401:i32 = let %216
+                                                                                                                                                        %218:i32 = add %x_401, 1i
+                                                                                                                                                        store %i_36, %218
+                                                                                                                                                        next_iteration  # -> $B147
+                                                                                                                                                      }
+                                                                                                                                                    }
+                                                                                                                                                    continue  # -> $B144
+                                                                                                                                                  }
+                                                                                                                                                  $B144: {  # continuing
+                                                                                                                                                    %219:i32 = load %i_35
+                                                                                                                                                    %x_403:i32 = let %219
+                                                                                                                                                    %221:i32 = add %x_403, 1i
+                                                                                                                                                    store %i_35, %221
+                                                                                                                                                    next_iteration  # -> $B143
+                                                                                                                                                  }
+                                                                                                                                                }
+                                                                                                                                                continue  # -> $B140
+                                                                                                                                              }
+                                                                                                                                              $B140: {  # continuing
+                                                                                                                                                %222:i32 = load %i_34
+                                                                                                                                                %x_405:i32 = let %222
+                                                                                                                                                %224:i32 = add %x_405, 1i
+                                                                                                                                                store %i_34, %224
+                                                                                                                                                next_iteration  # -> $B139
+                                                                                                                                              }
+                                                                                                                                            }
+                                                                                                                                            continue  # -> $B136
+                                                                                                                                          }
+                                                                                                                                          $B136: {  # continuing
+                                                                                                                                            %225:i32 = load %i_33
+                                                                                                                                            %x_407:i32 = let %225
+                                                                                                                                            %227:i32 = add %x_407, 1i
+                                                                                                                                            store %i_33, %227
+                                                                                                                                            next_iteration  # -> $B135
+                                                                                                                                          }
+                                                                                                                                        }
+                                                                                                                                        continue  # -> $B132
+                                                                                                                                      }
+                                                                                                                                      $B132: {  # continuing
+                                                                                                                                        %228:i32 = load %i_32
+                                                                                                                                        %x_409:i32 = let %228
+                                                                                                                                        %230:i32 = add %x_409, 1i
+                                                                                                                                        store %i_32, %230
+                                                                                                                                        next_iteration  # -> $B131
+                                                                                                                                      }
+                                                                                                                                    }
+                                                                                                                                    continue  # -> $B128
+                                                                                                                                  }
+                                                                                                                                  $B128: {  # continuing
+                                                                                                                                    %231:i32 = load %i_31
+                                                                                                                                    %x_411:i32 = let %231
+                                                                                                                                    %233:i32 = add %x_411, 1i
+                                                                                                                                    store %i_31, %233
+                                                                                                                                    next_iteration  # -> $B127
+                                                                                                                                  }
+                                                                                                                                }
+                                                                                                                                continue  # -> $B124
+                                                                                                                              }
+                                                                                                                              $B124: {  # continuing
+                                                                                                                                %234:i32 = load %i_30
+                                                                                                                                %x_413:i32 = let %234
+                                                                                                                                %236:i32 = add %x_413, 1i
+                                                                                                                                store %i_30, %236
+                                                                                                                                next_iteration  # -> $B123
+                                                                                                                              }
+                                                                                                                            }
+                                                                                                                            continue  # -> $B120
+                                                                                                                          }
+                                                                                                                          $B120: {  # continuing
+                                                                                                                            %237:i32 = load %i_29
+                                                                                                                            %x_415:i32 = let %237
+                                                                                                                            %239:i32 = add %x_415, 1i
+                                                                                                                            store %i_29, %239
+                                                                                                                            next_iteration  # -> $B119
+                                                                                                                          }
+                                                                                                                        }
+                                                                                                                        continue  # -> $B116
+                                                                                                                      }
+                                                                                                                      $B116: {  # continuing
+                                                                                                                        %240:i32 = load %i_28
+                                                                                                                        %x_417:i32 = let %240
+                                                                                                                        %242:i32 = add %x_417, 1i
+                                                                                                                        store %i_28, %242
+                                                                                                                        next_iteration  # -> $B115
+                                                                                                                      }
+                                                                                                                    }
+                                                                                                                    continue  # -> $B112
+                                                                                                                  }
+                                                                                                                  $B112: {  # continuing
+                                                                                                                    %243:i32 = load %i_27
+                                                                                                                    %x_419:i32 = let %243
+                                                                                                                    %245:i32 = add %x_419, 1i
+                                                                                                                    store %i_27, %245
+                                                                                                                    next_iteration  # -> $B111
+                                                                                                                  }
+                                                                                                                }
+                                                                                                                continue  # -> $B108
+                                                                                                              }
+                                                                                                              $B108: {  # continuing
+                                                                                                                %246:i32 = load %i_26
+                                                                                                                %x_421:i32 = let %246
+                                                                                                                %248:i32 = add %x_421, 1i
+                                                                                                                store %i_26, %248
+                                                                                                                next_iteration  # -> $B107
+                                                                                                              }
+                                                                                                            }
+                                                                                                            continue  # -> $B104
+                                                                                                          }
+                                                                                                          $B104: {  # continuing
+                                                                                                            %249:i32 = load %i_25
+                                                                                                            %x_423:i32 = let %249
+                                                                                                            %251:i32 = add %x_423, 1i
+                                                                                                            store %i_25, %251
+                                                                                                            next_iteration  # -> $B103
+                                                                                                          }
+                                                                                                        }
+                                                                                                        continue  # -> $B100
+                                                                                                      }
+                                                                                                      $B100: {  # continuing
+                                                                                                        %252:i32 = load %i_24
+                                                                                                        %x_425:i32 = let %252
+                                                                                                        %254:i32 = add %x_425, 1i
+                                                                                                        store %i_24, %254
+                                                                                                        next_iteration  # -> $B99
+                                                                                                      }
+                                                                                                    }
+                                                                                                    continue  # -> $B96
+                                                                                                  }
+                                                                                                  $B96: {  # continuing
+                                                                                                    %255:i32 = load %i_23
+                                                                                                    %x_427:i32 = let %255
+                                                                                                    %257:i32 = add %x_427, 1i
+                                                                                                    store %i_23, %257
+                                                                                                    next_iteration  # -> $B95
+                                                                                                  }
+                                                                                                }
+                                                                                                continue  # -> $B92
+                                                                                              }
+                                                                                              $B92: {  # continuing
+                                                                                                %258:i32 = load %i_22
+                                                                                                %x_429:i32 = let %258
+                                                                                                %260:i32 = add %x_429, 1i
+                                                                                                store %i_22, %260
+                                                                                                next_iteration  # -> $B91
+                                                                                              }
+                                                                                            }
+                                                                                            continue  # -> $B88
+                                                                                          }
+                                                                                          $B88: {  # continuing
+                                                                                            %261:i32 = load %i_21
+                                                                                            %x_431:i32 = let %261
+                                                                                            %263:i32 = add %x_431, 1i
+                                                                                            store %i_21, %263
+                                                                                            next_iteration  # -> $B87
+                                                                                          }
+                                                                                        }
+                                                                                        continue  # -> $B84
+                                                                                      }
+                                                                                      $B84: {  # continuing
+                                                                                        %264:i32 = load %i_20
+                                                                                        %x_433:i32 = let %264
+                                                                                        %266:i32 = add %x_433, 1i
+                                                                                        store %i_20, %266
+                                                                                        next_iteration  # -> $B83
+                                                                                      }
+                                                                                    }
+                                                                                    continue  # -> $B80
+                                                                                  }
+                                                                                  $B80: {  # continuing
+                                                                                    %267:i32 = load %i_19
+                                                                                    %x_435:i32 = let %267
+                                                                                    %269:i32 = add %x_435, 1i
+                                                                                    store %i_19, %269
+                                                                                    next_iteration  # -> $B79
+                                                                                  }
+                                                                                }
+                                                                                continue  # -> $B76
+                                                                              }
+                                                                              $B76: {  # continuing
+                                                                                %270:i32 = load %i_18
+                                                                                %x_437:i32 = let %270
+                                                                                %272:i32 = add %x_437, 1i
+                                                                                store %i_18, %272
+                                                                                next_iteration  # -> $B75
+                                                                              }
+                                                                            }
+                                                                            continue  # -> $B72
+                                                                          }
+                                                                          $B72: {  # continuing
+                                                                            %273:i32 = load %i_17
+                                                                            %x_439:i32 = let %273
+                                                                            %275:i32 = add %x_439, 1i
+                                                                            store %i_17, %275
+                                                                            next_iteration  # -> $B71
+                                                                          }
+                                                                        }
+                                                                        continue  # -> $B68
+                                                                      }
+                                                                      $B68: {  # continuing
+                                                                        %276:i32 = load %i_16
+                                                                        %x_441:i32 = let %276
+                                                                        %278:i32 = add %x_441, 1i
+                                                                        store %i_16, %278
+                                                                        next_iteration  # -> $B67
+                                                                      }
+                                                                    }
+                                                                    continue  # -> $B64
+                                                                  }
+                                                                  $B64: {  # continuing
+                                                                    %279:i32 = load %i_15
+                                                                    %x_443:i32 = let %279
+                                                                    %281:i32 = add %x_443, 1i
+                                                                    store %i_15, %281
+                                                                    next_iteration  # -> $B63
+                                                                  }
+                                                                }
+                                                                continue  # -> $B60
+                                                              }
+                                                              $B60: {  # continuing
+                                                                %282:i32 = load %i_14
+                                                                %x_445:i32 = let %282
+                                                                %284:i32 = add %x_445, 1i
+                                                                store %i_14, %284
+                                                                next_iteration  # -> $B59
+                                                              }
+                                                            }
+                                                            continue  # -> $B56
+                                                          }
+                                                          $B56: {  # continuing
+                                                            %285:i32 = load %i_13
+                                                            %x_447:i32 = let %285
+                                                            %287:i32 = add %x_447, 1i
+                                                            store %i_13, %287
+                                                            next_iteration  # -> $B55
+                                                          }
+                                                        }
+                                                        continue  # -> $B52
+                                                      }
+                                                      $B52: {  # continuing
+                                                        %288:i32 = load %i_12
+                                                        %x_449:i32 = let %288
+                                                        %290:i32 = add %x_449, 1i
+                                                        store %i_12, %290
+                                                        next_iteration  # -> $B51
+                                                      }
+                                                    }
+                                                    continue  # -> $B48
+                                                  }
+                                                  $B48: {  # continuing
+                                                    %291:i32 = load %i_11
+                                                    %x_451:i32 = let %291
+                                                    %293:i32 = add %x_451, 1i
+                                                    store %i_11, %293
+                                                    next_iteration  # -> $B47
+                                                  }
+                                                }
+                                                continue  # -> $B44
+                                              }
+                                              $B44: {  # continuing
+                                                %294:i32 = load %i_10
+                                                %x_453:i32 = let %294
+                                                %296:i32 = add %x_453, 1i
+                                                store %i_10, %296
+                                                next_iteration  # -> $B43
+                                              }
+                                            }
+                                            continue  # -> $B40
+                                          }
+                                          $B40: {  # continuing
+                                            %297:i32 = load %i_9
+                                            %x_455:i32 = let %297
+                                            %299:i32 = add %x_455, 1i
+                                            store %i_9, %299
+                                            next_iteration  # -> $B39
+                                          }
+                                        }
+                                        continue  # -> $B36
+                                      }
+                                      $B36: {  # continuing
+                                        %300:i32 = load %i_8
+                                        %x_457:i32 = let %300
+                                        %302:i32 = add %x_457, 1i
+                                        store %i_8, %302
+                                        next_iteration  # -> $B35
+                                      }
+                                    }
+                                    continue  # -> $B32
+                                  }
+                                  $B32: {  # continuing
+                                    %303:i32 = load %i_7
+                                    %x_459:i32 = let %303
+                                    %305:i32 = add %x_459, 1i
+                                    store %i_7, %305
+                                    next_iteration  # -> $B31
+                                  }
+                                }
+                                continue  # -> $B28
+                              }
+                              $B28: {  # continuing
+                                %306:i32 = load %i_6
+                                %x_461:i32 = let %306
+                                %308:i32 = add %x_461, 1i
+                                store %i_6, %308
+                                next_iteration  # -> $B27
+                              }
+                            }
+                            continue  # -> $B24
+                          }
+                          $B24: {  # continuing
+                            %309:i32 = load %i_5
+                            %x_463:i32 = let %309
+                            %311:i32 = add %x_463, 1i
+                            store %i_5, %311
+                            next_iteration  # -> $B23
+                          }
+                        }
+                        continue  # -> $B20
+                      }
+                      $B20: {  # continuing
+                        %312:i32 = load %i_4
+                        %x_465:i32 = let %312
+                        %314:i32 = add %x_465, 1i
+                        store %i_4, %314
+                        next_iteration  # -> $B19
+                      }
+                    }
+                    continue  # -> $B16
+                  }
+                  $B16: {  # continuing
+                    %315:i32 = load %i_3
+                    %x_467:i32 = let %315
+                    %317:i32 = add %x_467, 1i
+                    store %i_3, %317
+                    next_iteration  # -> $B15
+                  }
+                }
+                continue  # -> $B12
+              }
+              $B12: {  # continuing
+                %318:i32 = load %i_2
+                %x_469:i32 = let %318
+                %320:i32 = add %x_469, 1i
+                store %i_2, %320
+                next_iteration  # -> $B11
+              }
+            }
+            continue  # -> $B8
+          }
+          $B8: {  # continuing
+            %321:i32 = load %i_1
+            %x_471:i32 = let %321
+            %323:i32 = add %x_471, 1i
+            store %i_1, %323
+            next_iteration  # -> $B7
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %324:i32 = load %i
+        %x_473:i32 = let %324
+        %326:i32 = add %x_473, 1i
+        store %i, %326
+        next_iteration  # -> $B3
+      }
+    }
+    store %sum, 0.0f
+    store %r, 0i
+    loop [b: $B157, c: $B158] {  # loop_40
+      $B157: {  # body
+        %327:i32 = load %x_GLF_global_loop_count
+        %x_479:i32 = let %327
+        %329:bool = lt %x_479, 100i
+        if %329 [t: $B159, f: $B160] {  # if_39
+          $B159: {  # true
+            exit_if  # if_39
+          }
+          $B160: {  # false
+            exit_loop  # loop_40
+          }
+        }
+        %330:i32 = load %x_GLF_global_loop_count
+        %x_482:i32 = let %330
+        %332:i32 = add %x_482, 1i
+        store %x_GLF_global_loop_count, %332
+        %333:i32 = load %r
+        %x_484:i32 = let %333
+        %335:ptr<function, vec3<f32>, read_write> = access %m23, 0i
+        %336:f32 = load_vector_element %335, %x_484
+        %x_486:f32 = let %336
+        %338:f32 = load %sum
+        %x_487:f32 = let %338
+        %340:f32 = add %x_487, %x_486
+        store %sum, %340
+        %341:i32 = load %r
+        %x_489:i32 = let %341
+        %343:ptr<function, vec4<f32>, read_write> = access %m24, 0i
+        %344:f32 = load_vector_element %343, %x_489
+        %x_491:f32 = let %344
+        %346:f32 = load %sum
+        %x_492:f32 = let %346
+        %348:f32 = add %x_492, %x_491
+        store %sum, %348
+        %349:i32 = load %r
+        %x_494:i32 = let %349
+        %351:ptr<function, vec2<f32>, read_write> = access %m32, 0i
+        %352:f32 = load_vector_element %351, %x_494
+        %x_496:f32 = let %352
+        %354:f32 = load %sum
+        %x_497:f32 = let %354
+        %356:f32 = add %x_497, %x_496
+        store %sum, %356
+        %357:i32 = load %r
+        %x_499:i32 = let %357
+        %359:ptr<function, vec3<f32>, read_write> = access %m33, 0i
+        %360:f32 = load_vector_element %359, %x_499
+        %x_501:f32 = let %360
+        %362:f32 = load %sum
+        %x_502:f32 = let %362
+        %364:f32 = add %x_502, %x_501
+        store %sum, %364
+        %365:i32 = load %r
+        %x_504:i32 = let %365
+        %367:ptr<function, vec4<f32>, read_write> = access %m34, 0i
+        %368:f32 = load_vector_element %367, %x_504
+        %x_506:f32 = let %368
+        %370:f32 = load %sum
+        %x_507:f32 = let %370
+        %372:f32 = add %x_507, %x_506
+        store %sum, %372
+        %373:i32 = load %r
+        %x_509:i32 = let %373
+        %375:ptr<function, vec2<f32>, read_write> = access %m42, 0i
+        %376:f32 = load_vector_element %375, %x_509
+        %x_511:f32 = let %376
+        %378:f32 = load %sum
+        %x_512:f32 = let %378
+        %380:f32 = add %x_512, %x_511
+        store %sum, %380
+        %381:i32 = load %r
+        %x_514:i32 = let %381
+        %383:ptr<function, vec3<f32>, read_write> = access %m43, 0i
+        %384:f32 = load_vector_element %383, %x_514
+        %x_516:f32 = let %384
+        %386:f32 = load %sum
+        %x_517:f32 = let %386
+        %388:f32 = add %x_517, %x_516
+        store %sum, %388
+        %389:i32 = load %r
+        %x_519:i32 = let %389
+        %391:ptr<function, vec4<f32>, read_write> = access %m44, 0i
+        %392:f32 = load_vector_element %391, %x_519
+        %x_521:f32 = let %392
+        %394:f32 = load %sum
+        %x_522:f32 = let %394
+        %396:f32 = add %x_522, %x_521
+        store %sum, %396
+        continue  # -> $B158
+      }
+      $B158: {  # continuing
+        %397:i32 = load %r
+        %x_524:i32 = let %397
+        %399:i32 = add %x_524, 1i
+        store %r, %399
+        next_iteration  # -> $B157
+      }
+    }
+    %400:f32 = load %sum
+    %x_526:f32 = let %400
+    %402:bool = eq %x_526, 8.0f
+    if %402 [t: $B161, f: $B162] {  # if_40
+      $B161: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_40
+      }
+      $B162: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_40
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B163: {
+    %404:void = call %main_1
+    %405:vec4<f32> = load %x_GLF_color
+    %406:main_out = construct %405
+    ret %406
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.msl
index 7f00aa6..cd94c4e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf2 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -24,7 +24,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var
   %x_10:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
@@ -33,83 +33,88 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func0_i1_ = func(%x:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%func0_i1_ = func(%x:ptr<function, i32, read_write>):void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %x_137:ptr<function, bool, read_write> = var
     %x_138:ptr<function, bool, read_write> = var
     %x_139:ptr<function, bool, read_write> = var
     %13:i32 = load %x
-    %x_125:bool = lt %13, 1i
+    %14:bool = lt %13, 1i
+    %x_125:bool = let %14
     store %x_139, %x_125
-    %15:bool = eq %x_125, false
-    if %15 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %16:i32 = load %x
-        %x_130:bool = gt %16, 1i
+    %16:bool = eq %x_125, false
+    if %16 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:i32 = load %x
+        %18:bool = gt %17, 1i
+        %x_130:bool = let %18
         store %x_138, %x_130
-        if %x_130 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            %18:ptr<uniform, f32, read> = access %x_10, 0u
-            %19:f32 = load %18
-            %20:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+        if %x_130 [t: $B4] {  # if_2
+          $B4: {  # true
+            %20:ptr<uniform, f32, read> = access %x_10, 0u
             %21:f32 = load %20
-            %22:bool = gt %19, %21
-            store %x_137, %22
-            %23:bool = load %x_137
-            store %x_138, %23
+            %22:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+            %23:f32 = load %22
+            %24:bool = gt %21, %23
+            store %x_137, %24
+            %25:bool = load %x_137
+            store %x_138, %25
             exit_if  # if_2
           }
         }
-        %24:bool = load %x_138
-        store %x_139, %24
+        %26:bool = load %x_138
+        store %x_139, %26
         exit_if  # if_1
       }
     }
-    %25:bool = load %x_139
-    if %25 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %27:bool = load %x_139
+    if %27 [t: $B5] {  # if_3
+      $B5: {  # true
         ret
       }
     }
-    %26:ptr<uniform, f32, read> = access %x_10, 0u
-    %27:f32 = load %26
-    %28:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+    %28:ptr<uniform, f32, read> = access %x_10, 0u
     %29:f32 = load %28
-    %30:bool = eq %27, %29
-    if %30 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %30:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+    %31:f32 = load %30
+    %32:bool = eq %29, %31
+    if %32 [t: $B6] {  # if_4
+      $B6: {  # true
         store %i, 0i
-        loop [b: %b7, c: %b8] {  # loop_1
-          %b7 = block {  # body
-            %31:i32 = load %i
-            %32:bool = lt %31, 2i
-            if %32 [t: %b9, f: %b10] {  # if_5
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_1
+          $B7: {  # body
+            %33:i32 = load %i
+            %34:bool = lt %33, 2i
+            if %34 [t: $B9, f: $B10] {  # if_5
+              $B9: {  # true
                 exit_if  # if_5
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_1
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %33:i32 = load %x
-            %x_155:i32 = clamp %33, 0i, 3i
-            %x_156:i32 = load %i
-            %36:ptr<private, vec2<f32>, read_write> = access %m, %x_155
-            %37:ptr<private, vec2<f32>, read_write> = access %m, %x_155
-            %38:i32 = load %i
-            %39:f32 = load_vector_element %37, %38
-            %40:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-            %41:f32 = load %40
-            %42:f32 = add %39, %41
-            store_vector_element %36, %x_156, %42
+          $B8: {  # continuing
+            %35:i32 = load %x
+            %36:i32 = max %35, 0i
+            %37:i32 = min %36, 3i
+            %x_155:i32 = let %37
+            %39:i32 = load %i
+            %x_156:i32 = let %39
+            %41:ptr<private, vec2<f32>, read_write> = access %m, %x_155
+            %42:ptr<private, vec2<f32>, read_write> = access %m, %x_155
             %43:i32 = load %i
-            %44:i32 = add %43, 1i
-            store %i, %44
-            next_iteration %b7
+            %44:f32 = load_vector_element %42, %43
+            %45:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+            %46:f32 = load %45
+            %47:f32 = add %44, %46
+            store_vector_element %41, %x_156, %47
+            %48:i32 = load %i
+            %49:i32 = add %48, 1i
+            store %i, %49
+            next_iteration  # -> $B7
           }
         }
         exit_if  # if_4
@@ -118,115 +123,129 @@
     ret
   }
 }
-%func1_ = func():void -> %b11 {
-  %b11 = block {
+%func1_ = func():void {
+  $B11: {
     %param:ptr<function, i32, read_write> = var
-    %47:f32 = load_vector_element %gl_FragCoord, 1u
-    %48:bool = lt %47, 0.0f
-    if %48 [t: %b12] {  # if_6
-      %b12 = block {  # true
+    %52:f32 = load_vector_element %gl_FragCoord, 1u
+    %53:bool = lt %52, 0.0f
+    if %53 [t: $B12] {  # if_6
+      $B12: {  # true
         ret
       }
     }
     store %param, 1i
-    %49:void = call %func0_i1_, %param
+    %54:void = call %func0_i1_, %param
     ret
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     store %m, mat4x2<f32>(vec2<f32>(0.0f))
-    %51:void = call %func1_
-    %52:void = call %func1_
-    %53:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %54:i32 = load %53
-    %55:f32 = convert %54
-    %56:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %57:i32 = load %56
-    %58:f32 = convert %57
-    %59:vec2<f32> = construct %55, %58
-    %60:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
-    %61:i32 = load %60
-    %62:f32 = convert %61
-    %63:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
-    %64:i32 = load %63
-    %65:f32 = convert %64
-    %66:vec2<f32> = construct %62, %65
-    %67:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %56:void = call %func1_
+    %57:void = call %func1_
+    %58:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %59:i32 = load %58
+    %60:f32 = convert %59
+    %61:f32 = let %60
+    %62:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %63:i32 = load %62
+    %64:f32 = convert %63
+    %65:vec2<f32> = construct %61, %64
+    %66:vec2<f32> = let %65
+    %67:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
     %68:i32 = load %67
     %69:f32 = convert %68
-    %70:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %71:i32 = load %70
-    %72:f32 = convert %71
-    %73:vec2<f32> = construct %69, %72
-    %74:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %75:i32 = load %74
-    %76:f32 = convert %75
-    %77:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %78:i32 = load %77
-    %79:f32 = convert %78
-    %80:vec2<f32> = construct %76, %79
-    %x_83:mat4x2<f32> = construct %59, %66, %73, %80
-    %82:ptr<private, vec2<f32>, read_write> = access %m, 0u
-    %83:vec2<f32> = load %82
-    %84:vec2<f32> = access %x_83, 0u
-    %85:vec2<bool> = eq %83, %84
-    %86:bool = all %85
-    %87:ptr<private, vec2<f32>, read_write> = access %m, 1u
-    %88:vec2<f32> = load %87
-    %89:vec2<f32> = access %x_83, 1u
-    %90:vec2<bool> = eq %88, %89
-    %91:bool = all %90
-    %92:bool = and %86, %91
-    %93:ptr<private, vec2<f32>, read_write> = access %m, 2u
-    %94:vec2<f32> = load %93
-    %95:vec2<f32> = access %x_83, 2u
-    %96:vec2<bool> = eq %94, %95
-    %97:bool = all %96
-    %98:bool = and %92, %97
-    %99:ptr<private, vec2<f32>, read_write> = access %m, 3u
-    %100:vec2<f32> = load %99
-    %101:vec2<f32> = access %x_83, 3u
-    %102:vec2<bool> = eq %100, %101
-    %103:bool = all %102
-    %104:bool = and %98, %103
-    if %104 [t: %b14, f: %b15] {  # if_7
-      %b14 = block {  # true
-        %105:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
-        %106:i32 = load %105
-        %107:f32 = convert %106
-        %108:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-        %109:i32 = load %108
-        %110:f32 = convert %109
-        %111:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-        %112:i32 = load %111
-        %113:f32 = convert %112
-        %114:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
-        %115:i32 = load %114
-        %116:f32 = convert %115
-        %117:vec4<f32> = construct %107, %110, %113, %116
-        store %x_GLF_color, %117
+    %70:f32 = let %69
+    %71:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
+    %72:i32 = load %71
+    %73:f32 = convert %72
+    %74:vec2<f32> = construct %70, %73
+    %75:vec2<f32> = let %74
+    %76:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %77:i32 = load %76
+    %78:f32 = convert %77
+    %79:f32 = let %78
+    %80:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %81:i32 = load %80
+    %82:f32 = convert %81
+    %83:vec2<f32> = construct %79, %82
+    %84:vec2<f32> = let %83
+    %85:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %86:i32 = load %85
+    %87:f32 = convert %86
+    %88:f32 = let %87
+    %89:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %90:i32 = load %89
+    %91:f32 = convert %90
+    %92:vec2<f32> = construct %88, %91
+    %93:mat4x2<f32> = construct %66, %75, %84, %92
+    %x_83:mat4x2<f32> = let %93
+    %95:ptr<private, vec2<f32>, read_write> = access %m, 0u
+    %96:vec2<f32> = load %95
+    %97:vec2<f32> = access %x_83, 0u
+    %98:vec2<bool> = eq %96, %97
+    %99:bool = all %98
+    %100:bool = let %99
+    %101:ptr<private, vec2<f32>, read_write> = access %m, 1u
+    %102:vec2<f32> = load %101
+    %103:vec2<f32> = access %x_83, 1u
+    %104:vec2<bool> = eq %102, %103
+    %105:bool = all %104
+    %106:bool = and %100, %105
+    %107:bool = let %106
+    %108:ptr<private, vec2<f32>, read_write> = access %m, 2u
+    %109:vec2<f32> = load %108
+    %110:vec2<f32> = access %x_83, 2u
+    %111:vec2<bool> = eq %109, %110
+    %112:bool = all %111
+    %113:bool = and %107, %112
+    %114:bool = let %113
+    %115:ptr<private, vec2<f32>, read_write> = access %m, 3u
+    %116:vec2<f32> = load %115
+    %117:vec2<f32> = access %x_83, 3u
+    %118:vec2<bool> = eq %116, %117
+    %119:bool = all %118
+    %120:bool = and %114, %119
+    if %120 [t: $B14, f: $B15] {  # if_7
+      $B14: {  # true
+        %121:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
+        %122:i32 = load %121
+        %123:f32 = convert %122
+        %124:f32 = let %123
+        %125:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+        %126:i32 = load %125
+        %127:f32 = convert %126
+        %128:f32 = let %127
+        %129:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+        %130:i32 = load %129
+        %131:f32 = convert %130
+        %132:f32 = let %131
+        %133:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
+        %134:i32 = load %133
+        %135:f32 = convert %134
+        %136:vec4<f32> = construct %124, %128, %132, %135
+        store %x_GLF_color, %136
         exit_if  # if_7
       }
-      %b15 = block {  # false
-        %118:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-        %119:i32 = load %118
-        %120:f32 = convert %119
-        %121:vec4<f32> = construct %120
-        store %x_GLF_color, %121
+      $B15: {  # false
+        %137:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+        %138:i32 = load %137
+        %139:f32 = convert %138
+        %140:vec4<f32> = construct %139
+        store %x_GLF_color, %140
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %124:void = call %main_1
-    %125:vec4<f32> = load %x_GLF_color
-    %126:main_out = construct %125
-    ret %126
+    %143:void = call %main_1
+    %144:vec4<f32> = load %x_GLF_color
+    %145:main_out = construct %144
+    ret %145
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.msl
index 5ea02a5..b11f436 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-functions-accumulate-global-matrix/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf2 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -24,7 +24,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %m:ptr<private, mat4x2<f32>, read_write> = var
   %x_10:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
@@ -33,85 +33,102 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func0_i1_ = func(%x:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%func0_i1_ = func(%x:ptr<function, i32, read_write>):void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %x_137:ptr<function, bool, read_write> = var
     %x_138:ptr<function, bool, read_write> = var
     %x_138_phi:ptr<function, bool, read_write> = var
     %x_139_phi:ptr<function, bool, read_write> = var
-    %x_124:i32 = load %x
-    %x_125:bool = lt %x_124, 1i
+    %14:i32 = load %x
+    %x_124:i32 = let %14
+    %16:bool = lt %x_124, 1i
+    %x_125:bool = let %16
     store %x_139_phi, %x_125
-    %16:bool = eq %x_125, false
-    if %16 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_129:i32 = load %x
-        %x_130:bool = gt %x_129, 1i
+    %18:bool = eq %x_125, false
+    if %18 [t: $B3] {  # if_1
+      $B3: {  # true
+        %19:i32 = load %x
+        %x_129:i32 = let %19
+        %21:bool = gt %x_129, 1i
+        %x_130:bool = let %21
         store %x_138_phi, %x_130
-        if %x_130 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            %19:ptr<uniform, f32, read> = access %x_10, 0u
-            %x_134:f32 = load %19
-            %21:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-            %x_136:f32 = load %21
-            %23:bool = gt %x_134, %x_136
-            store %x_137, %23
-            %24:bool = load %x_137
-            store %x_138_phi, %24
+        if %x_130 [t: $B4] {  # if_2
+          $B4: {  # true
+            %23:ptr<uniform, f32, read> = access %x_10, 0u
+            %24:f32 = load %23
+            %x_134:f32 = let %24
+            %26:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+            %27:f32 = load %26
+            %x_136:f32 = let %27
+            %29:bool = gt %x_134, %x_136
+            store %x_137, %29
+            %30:bool = load %x_137
+            store %x_138_phi, %30
             exit_if  # if_2
           }
         }
-        %25:bool = load %x_138_phi
-        store %x_138, %25
-        %26:bool = load %x_138
-        store %x_139_phi, %26
+        %31:bool = load %x_138_phi
+        store %x_138, %31
+        %32:bool = load %x_138
+        store %x_139_phi, %32
         exit_if  # if_1
       }
     }
-    %x_139:bool = load %x_139_phi
-    if %x_139 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %33:bool = load %x_139_phi
+    %x_139:bool = let %33
+    if %x_139 [t: $B5] {  # if_3
+      $B5: {  # true
         ret
       }
     }
-    %28:ptr<uniform, f32, read> = access %x_10, 0u
-    %x_143:f32 = load %28
-    %30:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-    %x_145:f32 = load %30
-    %32:bool = eq %x_143, %x_145
-    if %32 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %35:ptr<uniform, f32, read> = access %x_10, 0u
+    %36:f32 = load %35
+    %x_143:f32 = let %36
+    %38:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+    %39:f32 = load %38
+    %x_145:f32 = let %39
+    %41:bool = eq %x_143, %x_145
+    if %41 [t: $B6] {  # if_4
+      $B6: {  # true
         store %i, 0i
-        loop [b: %b7, c: %b8] {  # loop_1
-          %b7 = block {  # body
-            %x_150:i32 = load %i
-            %34:bool = lt %x_150, 2i
-            if %34 [t: %b9, f: %b10] {  # if_5
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_1
+          $B7: {  # body
+            %42:i32 = load %i
+            %x_150:i32 = let %42
+            %44:bool = lt %x_150, 2i
+            if %44 [t: $B9, f: $B10] {  # if_5
+              $B9: {  # true
                 exit_if  # if_5
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_1
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_154:i32 = load %x
-            %x_155:i32 = clamp %x_154, 0i, 3i
-            %x_156:i32 = load %i
-            %38:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
-            %x_158:f32 = load %38
-            %40:ptr<private, vec2<f32>, read_write> = access %m, %x_155
-            %x_160:f32 = load_vector_element %40, %x_156
-            %42:ptr<private, vec2<f32>, read_write> = access %m, %x_155
-            %43:f32 = add %x_160, %x_158
-            store_vector_element %42, %x_156, %43
-            %x_163:i32 = load %i
-            %45:i32 = add %x_163, 1i
-            store %i, %45
-            next_iteration %b7
+          $B8: {  # continuing
+            %45:i32 = load %x
+            %x_154:i32 = let %45
+            %47:i32 = max %x_154, 0i
+            %48:i32 = min %47, 3i
+            %x_155:i32 = let %48
+            %50:i32 = load %i
+            %x_156:i32 = let %50
+            %52:ptr<uniform, f32, read> = access %x_12, 0u, 0i, 0u
+            %53:f32 = load %52
+            %x_158:f32 = let %53
+            %55:ptr<private, vec2<f32>, read_write> = access %m, %x_155
+            %56:f32 = load_vector_element %55, %x_156
+            %x_160:f32 = let %56
+            %58:ptr<private, vec2<f32>, read_write> = access %m, %x_155
+            %59:f32 = add %x_160, %x_158
+            store_vector_element %58, %x_156, %59
+            %60:i32 = load %i
+            %x_163:i32 = let %60
+            %62:i32 = add %x_163, 1i
+            store %i, %62
+            next_iteration  # -> $B7
           }
         }
         exit_if  # if_4
@@ -120,112 +137,142 @@
     ret
   }
 }
-%func1_ = func():void -> %b11 {
-  %b11 = block {
+%func1_ = func():void {
+  $B11: {
     %param:ptr<function, i32, read_write> = var
-    %x_167:f32 = load_vector_element %gl_FragCoord, 1u
-    %49:bool = lt %x_167, 0.0f
-    if %49 [t: %b12] {  # if_6
-      %b12 = block {  # true
+    %65:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_167:f32 = let %65
+    %67:bool = lt %x_167, 0.0f
+    if %67 [t: $B12] {  # if_6
+      $B12: {  # true
         ret
       }
     }
     store %param, 1i
-    %50:void = call %func0_i1_, %param
+    %68:void = call %func0_i1_, %param
     ret
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     store %m, mat4x2<f32>(vec2<f32>(0.0f))
-    %52:void = call %func1_
-    %53:void = call %func1_
-    %x_54:mat4x2<f32> = load %m
-    %55:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %x_56:i32 = load %55
-    %57:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %x_59:i32 = load %57
-    %59:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
-    %x_62:i32 = load %59
-    %61:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
-    %x_65:i32 = load %61
-    %63:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %x_68:i32 = load %63
-    %65:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %x_71:i32 = load %65
-    %67:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %x_74:i32 = load %67
-    %69:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-    %x_77:i32 = load %69
-    %71:f32 = convert %x_56
-    %72:f32 = convert %x_59
-    %73:vec2<f32> = construct %71, %72
-    %74:f32 = convert %x_62
-    %75:f32 = convert %x_65
-    %76:vec2<f32> = construct %74, %75
-    %77:f32 = convert %x_68
-    %78:f32 = convert %x_71
-    %79:vec2<f32> = construct %77, %78
-    %80:f32 = convert %x_74
-    %81:f32 = convert %x_77
-    %82:vec2<f32> = construct %80, %81
-    %x_83:mat4x2<f32> = construct %73, %76, %79, %82
-    %84:vec2<f32> = access %x_54, 0u
-    %85:vec2<f32> = access %x_83, 0u
-    %86:vec2<bool> = eq %84, %85
-    %87:bool = all %86
-    %88:vec2<f32> = access %x_54, 1u
-    %89:vec2<f32> = access %x_83, 1u
-    %90:vec2<bool> = eq %88, %89
-    %91:bool = all %90
-    %92:bool = and %87, %91
-    %93:vec2<f32> = access %x_54, 2u
-    %94:vec2<f32> = access %x_83, 2u
-    %95:vec2<bool> = eq %93, %94
-    %96:bool = all %95
-    %97:bool = and %92, %96
-    %98:vec2<f32> = access %x_54, 3u
-    %99:vec2<f32> = access %x_83, 3u
-    %100:vec2<bool> = eq %98, %99
-    %101:bool = all %100
-    %102:bool = and %97, %101
-    if %102 [t: %b14, f: %b15] {  # if_7
-      %b14 = block {  # true
-        %103:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
-        %x_107:i32 = load %103
-        %105:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-        %x_110:i32 = load %105
-        %107:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-        %x_113:i32 = load %107
-        %109:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
-        %x_116:i32 = load %109
-        %111:f32 = convert %x_107
-        %112:f32 = convert %x_110
-        %113:f32 = convert %x_113
-        %114:f32 = convert %x_116
-        %115:vec4<f32> = construct %111, %112, %113, %114
-        store %x_GLF_color, %115
+    %70:void = call %func1_
+    %71:void = call %func1_
+    %72:mat4x2<f32> = load %m
+    %x_54:mat4x2<f32> = let %72
+    %74:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %75:i32 = load %74
+    %x_56:i32 = let %75
+    %77:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %78:i32 = load %77
+    %x_59:i32 = let %78
+    %80:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
+    %81:i32 = load %80
+    %x_62:i32 = let %81
+    %83:ptr<uniform, i32, read> = access %x_16, 0u, 1i, 0u
+    %84:i32 = load %83
+    %x_65:i32 = let %84
+    %86:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %87:i32 = load %86
+    %x_68:i32 = let %87
+    %89:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %90:i32 = load %89
+    %x_71:i32 = let %90
+    %92:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %93:i32 = load %92
+    %x_74:i32 = let %93
+    %95:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+    %96:i32 = load %95
+    %x_77:i32 = let %96
+    %98:f32 = convert %x_56
+    %99:f32 = let %98
+    %100:f32 = convert %x_59
+    %101:vec2<f32> = construct %99, %100
+    %102:vec2<f32> = let %101
+    %103:f32 = convert %x_62
+    %104:f32 = let %103
+    %105:f32 = convert %x_65
+    %106:vec2<f32> = construct %104, %105
+    %107:vec2<f32> = let %106
+    %108:f32 = convert %x_68
+    %109:f32 = let %108
+    %110:f32 = convert %x_71
+    %111:vec2<f32> = construct %109, %110
+    %112:vec2<f32> = let %111
+    %113:f32 = convert %x_74
+    %114:f32 = let %113
+    %115:f32 = convert %x_77
+    %116:vec2<f32> = construct %114, %115
+    %117:mat4x2<f32> = construct %102, %107, %112, %116
+    %x_83:mat4x2<f32> = let %117
+    %119:vec2<f32> = access %x_54, 0u
+    %120:vec2<f32> = access %x_83, 0u
+    %121:vec2<bool> = eq %119, %120
+    %122:bool = all %121
+    %123:bool = let %122
+    %124:vec2<f32> = access %x_54, 1u
+    %125:vec2<f32> = access %x_83, 1u
+    %126:vec2<bool> = eq %124, %125
+    %127:bool = all %126
+    %128:bool = and %123, %127
+    %129:bool = let %128
+    %130:vec2<f32> = access %x_54, 2u
+    %131:vec2<f32> = access %x_83, 2u
+    %132:vec2<bool> = eq %130, %131
+    %133:bool = all %132
+    %134:bool = and %129, %133
+    %135:bool = let %134
+    %136:vec2<f32> = access %x_54, 3u
+    %137:vec2<f32> = access %x_83, 3u
+    %138:vec2<bool> = eq %136, %137
+    %139:bool = all %138
+    %140:bool = and %135, %139
+    if %140 [t: $B14, f: $B15] {  # if_7
+      $B14: {  # true
+        %141:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
+        %142:i32 = load %141
+        %x_107:i32 = let %142
+        %144:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+        %145:i32 = load %144
+        %x_110:i32 = let %145
+        %147:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+        %148:i32 = load %147
+        %x_113:i32 = let %148
+        %150:ptr<uniform, i32, read> = access %x_16, 0u, 3i, 0u
+        %151:i32 = load %150
+        %x_116:i32 = let %151
+        %153:f32 = convert %x_107
+        %154:f32 = let %153
+        %155:f32 = convert %x_110
+        %156:f32 = let %155
+        %157:f32 = convert %x_113
+        %158:f32 = let %157
+        %159:f32 = convert %x_116
+        %160:vec4<f32> = construct %154, %156, %158, %159
+        store %x_GLF_color, %160
         exit_if  # if_7
       }
-      %b15 = block {  # false
-        %116:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
-        %x_120:i32 = load %116
-        %x_121:f32 = convert %x_120
-        %119:vec4<f32> = construct %x_121, %x_121, %x_121, %x_121
-        store %x_GLF_color, %119
+      $B15: {  # false
+        %161:ptr<uniform, i32, read> = access %x_16, 0u, 0i, 0u
+        %162:i32 = load %161
+        %x_120:i32 = let %162
+        %164:f32 = convert %x_120
+        %x_121:f32 = let %164
+        %166:vec4<f32> = construct %x_121, %x_121, %x_121, %x_121
+        store %x_GLF_color, %166
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %122:void = call %main_1
-    %123:vec4<f32> = load %x_GLF_color
-    %124:main_out = construct %123
-    ret %124
+    %169:void = call %main_1
+    %170:vec4<f32> = load %x_GLF_color
+    %171:main_out = construct %170
+    ret %171
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.msl
index 8578119..10a1936 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec4<f32>, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -43,125 +43,131 @@
     %15:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
     %16:i32 = load %15
     store %a, %16
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %17:i32 = load %a
         %18:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %19:i32 = load %18
         %20:bool = lt %17, %19
-        if %20 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %21:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
         %22:i32 = load %21
         store %c, %22
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %23:i32 = load %c
             %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
             %25:i32 = load %24
             %26:bool = lt %23, %25
-            if %26 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if %26 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
             %27:i32 = load %c
-            %x_69:i32 = clamp %27, 0i, 3i
-            %29:f32 = load_vector_element %v0, %x_69
-            %30:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-            %31:f32 = load %30
-            %32:f32 = sub %29, %31
-            store_vector_element %v0, %x_69, %32
-            %33:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-            %34:i32 = load %33
-            %35:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+            %28:i32 = max %27, 0i
+            %29:i32 = min %28, 3i
+            %x_69:i32 = let %29
+            %31:f32 = load_vector_element %v0, %x_69
+            %32:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+            %33:f32 = load %32
+            %34:f32 = sub %31, %33
+            store_vector_element %v0, %x_69, %34
+            %35:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
             %36:i32 = load %35
-            %37:bool = eq %34, %36
-            if %37 [t: %b11] {  # if_3
-              %b11 = block {  # true
-                %x_83:i32 = load %a
-                %39:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-                %40:f32 = load %39
-                %41:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-                %42:f32 = load %41
-                %43:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-                %44:f32 = load %43
-                %45:vec4<f32> = construct %40, %42, %44, 3.0f
-                %46:vec4<f32> = load %v0
-                %47:vec4<f32> = smoothstep %45, vec4<f32>(1.0f), %46
-                %48:i32 = load %a
-                %49:f32 = access %47, %48
-                store_vector_element %v1, %x_83, %49
+            %37:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+            %38:i32 = load %37
+            %39:bool = eq %36, %38
+            if %39 [t: $B11] {  # if_3
+              $B11: {  # true
+                %40:i32 = load %a
+                %x_83:i32 = let %40
+                %42:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+                %43:f32 = load %42
+                %44:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+                %45:f32 = load %44
+                %46:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+                %47:f32 = load %46
+                %48:vec4<f32> = construct %43, %45, %47, 3.0f
+                %49:vec4<f32> = load %v0
+                %50:vec4<f32> = smoothstep %48, vec4<f32>(1.0f), %49
+                %51:i32 = load %a
+                %52:f32 = access %50, %51
+                store_vector_element %v1, %x_83, %52
                 exit_if  # if_3
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %50:i32 = load %c
-            %51:i32 = add %50, 1i
-            store %c, %51
-            next_iteration %b7
+          $B8: {  # continuing
+            %53:i32 = load %c
+            %54:i32 = add %53, 1i
+            store %c, %54
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %52:i32 = load %a
-        %53:i32 = add %52, 1i
-        store %a, %53
-        next_iteration %b3
+      $B4: {  # continuing
+        %55:i32 = load %a
+        %56:i32 = add %55, 1i
+        store %a, %56
+        next_iteration  # -> $B3
       }
     }
-    %54:f32 = load_vector_element %v1, 0u
-    %55:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %56:f32 = load %55
-    %57:bool = eq %54, %56
-    if %57 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %58:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %59:i32 = load %58
-        %60:f32 = convert %59
-        %61:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+    %57:f32 = load_vector_element %v1, 0u
+    %58:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %59:f32 = load %58
+    %60:bool = eq %57, %59
+    if %60 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %61:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %62:i32 = load %61
         %63:f32 = convert %62
-        %64:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %65:i32 = load %64
-        %66:f32 = convert %65
-        %67:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %68:i32 = load %67
-        %69:f32 = convert %68
-        %70:vec4<f32> = construct %60, %63, %66, %69
-        store %x_GLF_color, %70
+        %64:f32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %66:i32 = load %65
+        %67:f32 = convert %66
+        %68:f32 = let %67
+        %69:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %70:i32 = load %69
+        %71:f32 = convert %70
+        %72:f32 = let %71
+        %73:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %74:i32 = load %73
+        %75:f32 = convert %74
+        %76:vec4<f32> = construct %64, %68, %72, %75
+        store %x_GLF_color, %76
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %71:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %72:i32 = load %71
-        %73:f32 = convert %72
-        %74:vec4<f32> = construct %73
-        store %x_GLF_color, %74
+      $B13: {  # false
+        %77:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %78:i32 = load %77
+        %79:f32 = convert %78
+        %80:vec4<f32> = construct %79
+        store %x_GLF_color, %80
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %76:void = call %main_1
-    %77:vec4<f32> = load %x_GLF_color
-    %78:main_out = construct %77
-    ret %78
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %82:void = call %main_1
+    %83:vec4<f32> = load %x_GLF_color
+    %84:main_out = construct %83
+    ret %84
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.msl
index b052d94..65e2f58 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loop-undefined-smoothstep-never-executed/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,148 +20,182 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v0:ptr<function, vec4<f32>, read_write> = var
     %v1:ptr<function, vec4<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %c:ptr<function, i32, read_write> = var
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_41:f32 = load %9
-    %11:vec4<f32> = construct %x_41, %x_41, %x_41, %x_41
-    store %v0, %11
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_44:f32 = load %12
-    %14:vec4<f32> = construct %x_44, %x_44, %x_44, %x_44
-    store %v1, %14
-    %15:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_47:i32 = load %15
+    %10:f32 = load %9
+    %x_41:f32 = let %10
+    %12:vec4<f32> = construct %x_41, %x_41, %x_41, %x_41
+    store %v0, %12
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %14:f32 = load %13
+    %x_44:f32 = let %14
+    %16:vec4<f32> = construct %x_44, %x_44, %x_44, %x_44
+    store %v1, %16
+    %17:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %18:i32 = load %17
+    %x_47:i32 = let %18
     store %a, %x_47
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_52:i32 = load %a
-        %18:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_54:i32 = load %18
-        %20:bool = lt %x_52, %x_54
-        if %20 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:i32 = load %a
+        %x_52:i32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %23:i32 = load %22
+        %x_54:i32 = let %23
+        %25:bool = lt %x_52, %x_54
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %21:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_58:i32 = load %21
+        %26:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %27:i32 = load %26
+        %x_58:i32 = let %27
         store %c, %x_58
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_63:i32 = load %c
-            %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-            %x_65:i32 = load %24
-            %26:bool = lt %x_63, %x_65
-            if %26 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %29:i32 = load %c
+            %x_63:i32 = let %29
+            %31:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+            %32:i32 = load %31
+            %x_65:i32 = let %32
+            %34:bool = lt %x_63, %x_65
+            if %34 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_68:i32 = load %c
-            %x_69:i32 = clamp %x_68, 0i, 3i
-            %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-            %x_71:f32 = load %29
-            %x_73:f32 = load_vector_element %v0, %x_69
-            %32:f32 = sub %x_73, %x_71
-            store_vector_element %v0, %x_69, %32
-            %33:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-            %x_77:i32 = load %33
-            %35:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-            %x_79:i32 = load %35
-            %37:bool = eq %x_77, %x_79
-            if %37 [t: %b11] {  # if_3
-              %b11 = block {  # true
-                %x_83:i32 = load %a
-                %39:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-                %x_85:f32 = load %39
-                %41:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-                %x_87:f32 = load %41
-                %43:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-                %x_89:f32 = load %43
-                %x_91:vec4<f32> = load %v0
-                %x_93:i32 = load %a
-                %47:vec4<f32> = construct %x_85, %x_87, %x_89, 3.0f
-                %48:vec4<f32> = smoothstep %47, vec4<f32>(1.0f), %x_91
-                %49:f32 = access %48, %x_93
-                store_vector_element %v1, %x_83, %49
+            %35:i32 = load %c
+            %x_68:i32 = let %35
+            %37:i32 = max %x_68, 0i
+            %38:i32 = min %37, 3i
+            %x_69:i32 = let %38
+            %40:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+            %41:f32 = load %40
+            %x_71:f32 = let %41
+            %43:f32 = load_vector_element %v0, %x_69
+            %x_73:f32 = let %43
+            %45:f32 = sub %x_73, %x_71
+            store_vector_element %v0, %x_69, %45
+            %46:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+            %47:i32 = load %46
+            %x_77:i32 = let %47
+            %49:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+            %50:i32 = load %49
+            %x_79:i32 = let %50
+            %52:bool = eq %x_77, %x_79
+            if %52 [t: $B11] {  # if_3
+              $B11: {  # true
+                %53:i32 = load %a
+                %x_83:i32 = let %53
+                %55:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+                %56:f32 = load %55
+                %x_85:f32 = let %56
+                %58:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+                %59:f32 = load %58
+                %x_87:f32 = let %59
+                %61:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+                %62:f32 = load %61
+                %x_89:f32 = let %62
+                %64:vec4<f32> = load %v0
+                %x_91:vec4<f32> = let %64
+                %66:i32 = load %a
+                %x_93:i32 = let %66
+                %68:vec4<f32> = construct %x_85, %x_87, %x_89, 3.0f
+                %69:vec4<f32> = smoothstep %68, vec4<f32>(1.0f), %x_91
+                %70:f32 = access %69, %x_93
+                store_vector_element %v1, %x_83, %70
                 exit_if  # if_3
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_96:i32 = load %c
-            %51:i32 = add %x_96, 1i
-            store %c, %51
-            next_iteration %b7
+          $B8: {  # continuing
+            %71:i32 = load %c
+            %x_96:i32 = let %71
+            %73:i32 = add %x_96, 1i
+            store %c, %73
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_98:i32 = load %a
-        %53:i32 = add %x_98, 1i
-        store %a, %53
-        next_iteration %b3
+      $B4: {  # continuing
+        %74:i32 = load %a
+        %x_98:i32 = let %74
+        %76:i32 = add %x_98, 1i
+        store %a, %76
+        next_iteration  # -> $B3
       }
     }
-    %x_101:f32 = load_vector_element %v1, 0u
-    %55:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_103:f32 = load %55
-    %57:bool = eq %x_101, %x_103
-    if %57 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %58:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_109:i32 = load %58
-        %60:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_112:i32 = load %60
-        %62:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_115:i32 = load %62
-        %64:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_118:i32 = load %64
-        %66:f32 = convert %x_109
-        %67:f32 = convert %x_112
-        %68:f32 = convert %x_115
-        %69:f32 = convert %x_118
-        %70:vec4<f32> = construct %66, %67, %68, %69
-        store %x_GLF_color, %70
+    %77:f32 = load_vector_element %v1, 0u
+    %x_101:f32 = let %77
+    %79:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %80:f32 = load %79
+    %x_103:f32 = let %80
+    %82:bool = eq %x_101, %x_103
+    if %82 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %83:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %84:i32 = load %83
+        %x_109:i32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %87:i32 = load %86
+        %x_112:i32 = let %87
+        %89:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %90:i32 = load %89
+        %x_115:i32 = let %90
+        %92:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %93:i32 = load %92
+        %x_118:i32 = let %93
+        %95:f32 = convert %x_109
+        %96:f32 = let %95
+        %97:f32 = convert %x_112
+        %98:f32 = let %97
+        %99:f32 = convert %x_115
+        %100:f32 = let %99
+        %101:f32 = convert %x_118
+        %102:vec4<f32> = construct %96, %98, %100, %101
+        store %x_GLF_color, %102
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %71:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_122:i32 = load %71
-        %x_123:f32 = convert %x_122
-        %74:vec4<f32> = construct %x_123, %x_123, %x_123, %x_123
-        store %x_GLF_color, %74
+      $B13: {  # false
+        %103:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %104:i32 = load %103
+        %x_122:i32 = let %104
+        %106:f32 = convert %x_122
+        %x_123:f32 = let %106
+        %108:vec4<f32> = construct %x_123, %x_123, %x_123, %x_123
+        store %x_GLF_color, %108
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %76:void = call %main_1
-    %77:vec4<f32> = load %x_GLF_color
-    %78:main_out = construct %77
-    ret %78
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %110:void = call %main_1
+    %111:vec4<f32> = load %x_GLF_color
+    %112:main_out = construct %111
+    ret %112
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.msl
index 9f2298e..1d6e199 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -54,489 +54,494 @@
     %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
     %27:i32 = load %26
     store %i, %27
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %28:i32 = load %i
         %29:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %30:i32 = load %29
         %31:bool = lt %28, %30
-        if %31 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %31 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %32:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %33:i32 = load %32
         store %i_1, %33
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %34:i32 = load %i_1
             %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
             %36:i32 = load %35
             %37:bool = lt %34, %36
-            if %37 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if %37 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
             %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
             %39:i32 = load %38
             store %i_2, %39
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
                 %40:i32 = load %i_2
                 %41:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                 %42:i32 = load %41
                 %43:bool = lt %40, %42
-                if %43 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+                if %43 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %44:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                 %45:i32 = load %44
                 store %i_3, %45
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
                     %46:i32 = load %i_3
                     %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                     %48:i32 = load %47
                     %49:bool = lt %46, %48
-                    if %49 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                    if %49 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
                     %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                     %51:i32 = load %50
                     store %i_4, %51
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
                         %52:i32 = load %i_4
                         %53:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                         %54:i32 = load %53
                         %55:bool = lt %52, %54
-                        if %55 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                        if %55 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
                         %56:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                         %57:i32 = load %56
                         store %i_5, %57
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
                             %58:i32 = load %i_5
                             %59:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                             %60:i32 = load %59
                             %61:bool = lt %58, %60
-                            if %61 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                            if %61 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
                             %62:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                             %63:i32 = load %62
                             store %i_6, %63
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
                                 %64:i32 = load %i_6
                                 %65:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                 %66:i32 = load %65
                                 %67:bool = lt %64, %66
-                                if %67 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                                if %67 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B30: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
                                 %68:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                 %69:i32 = load %68
                                 store %i_7, %69
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
                                     %70:i32 = load %i_7
                                     %71:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                     %72:i32 = load %71
                                     %73:bool = lt %70, %72
-                                    if %73 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                    if %73 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B34: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
                                     %74:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                     %75:i32 = load %74
                                     store %i_8, %75
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
                                         %76:i32 = load %i_8
                                         %77:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                         %78:i32 = load %77
                                         %79:bool = lt %76, %78
-                                        if %79 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                        if %79 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B38: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
                                         %80:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                         %81:i32 = load %80
                                         store %i_9, %81
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
                                             %82:i32 = load %i_9
                                             %83:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                             %84:i32 = load %83
                                             %85:bool = lt %82, %84
-                                            if %85 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                            if %85 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B42: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
                                             %86:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                             %87:i32 = load %86
                                             store %i_10, %87
-                                            loop [b: %b43, c: %b44] {  # loop_11
-                                              %b43 = block {  # body
+                                            loop [b: $B43, c: $B44] {  # loop_11
+                                              $B43: {  # body
                                                 %88:i32 = load %i_10
                                                 %89:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                                 %90:i32 = load %89
                                                 %91:bool = lt %88, %90
-                                                if %91 [t: %b45, f: %b46] {  # if_11
-                                                  %b45 = block {  # true
+                                                if %91 [t: $B45, f: $B46] {  # if_11
+                                                  $B45: {  # true
                                                     exit_if  # if_11
                                                   }
-                                                  %b46 = block {  # false
+                                                  $B46: {  # false
                                                     exit_loop  # loop_11
                                                   }
                                                 }
                                                 %92:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                 %93:i32 = load %92
                                                 store %i_11, %93
-                                                loop [b: %b47, c: %b48] {  # loop_12
-                                                  %b47 = block {  # body
+                                                loop [b: $B47, c: $B48] {  # loop_12
+                                                  $B47: {  # body
                                                     %94:i32 = load %i_11
                                                     %95:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
                                                     %96:i32 = load %95
                                                     %97:bool = lt %94, %96
-                                                    if %97 [t: %b49, f: %b50] {  # if_12
-                                                      %b49 = block {  # true
+                                                    if %97 [t: $B49, f: $B50] {  # if_12
+                                                      $B49: {  # true
                                                         exit_if  # if_12
                                                       }
-                                                      %b50 = block {  # false
+                                                      $B50: {  # false
                                                         exit_loop  # loop_12
                                                       }
                                                     }
                                                     %98:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                     %99:i32 = load %98
                                                     store %i_12, %99
-                                                    loop [b: %b51, c: %b52] {  # loop_13
-                                                      %b51 = block {  # body
+                                                    loop [b: $B51, c: $B52] {  # loop_13
+                                                      $B51: {  # body
                                                         %100:i32 = load %i_12
                                                         %101:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                                         %102:i32 = load %101
                                                         %103:bool = lt %100, %102
-                                                        if %103 [t: %b53, f: %b54] {  # if_13
-                                                          %b53 = block {  # true
+                                                        if %103 [t: $B53, f: $B54] {  # if_13
+                                                          $B53: {  # true
                                                             exit_if  # if_13
                                                           }
-                                                          %b54 = block {  # false
+                                                          $B54: {  # false
                                                             exit_loop  # loop_13
                                                           }
                                                         }
                                                         %104:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                         %105:i32 = load %104
                                                         store %i_13, %105
-                                                        loop [b: %b55, c: %b56] {  # loop_14
-                                                          %b55 = block {  # body
+                                                        loop [b: $B55, c: $B56] {  # loop_14
+                                                          $B55: {  # body
                                                             %106:i32 = load %i_13
                                                             %107:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                                                             %108:i32 = load %107
                                                             %109:bool = lt %106, %108
-                                                            if %109 [t: %b57, f: %b58] {  # if_14
-                                                              %b57 = block {  # true
+                                                            if %109 [t: $B57, f: $B58] {  # if_14
+                                                              $B57: {  # true
                                                                 exit_if  # if_14
                                                               }
-                                                              %b58 = block {  # false
+                                                              $B58: {  # false
                                                                 exit_loop  # loop_14
                                                               }
                                                             }
                                                             %110:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                                                             %111:i32 = load %110
                                                             store %i_14, %111
-                                                            loop [b: %b59, c: %b60] {  # loop_15
-                                                              %b59 = block {  # body
+                                                            loop [b: $B59, c: $B60] {  # loop_15
+                                                              $B59: {  # body
                                                                 %112:i32 = load %i_14
                                                                 %113:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
                                                                 %114:i32 = load %113
                                                                 %115:bool = lt %112, %114
-                                                                if %115 [t: %b61, f: %b62] {  # if_15
-                                                                  %b61 = block {  # true
+                                                                if %115 [t: $B61, f: $B62] {  # if_15
+                                                                  $B61: {  # true
                                                                     exit_if  # if_15
                                                                   }
-                                                                  %b62 = block {  # false
+                                                                  $B62: {  # false
                                                                     exit_loop  # loop_15
                                                                   }
                                                                 }
-                                                                loop [b: %b63, c: %b64] {  # loop_16
-                                                                  %b63 = block {  # body
+                                                                loop [b: $B63, c: $B64] {  # loop_16
+                                                                  $B63: {  # body
                                                                     %116:i32 = load %x_GLF_global_loop_count
                                                                     %117:i32 = add %116, 1i
                                                                     store %x_GLF_global_loop_count, %117
-                                                                    continue %b64
+                                                                    continue  # -> $B64
                                                                   }
-                                                                  %b64 = block {  # continuing
-                                                                    %x_225:i32 = load %x_GLF_global_loop_count
-                                                                    %119:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-                                                                    %x_227:i32 = load %119
-                                                                    %121:i32 = sub 100i, %x_227
-                                                                    %122:bool = lt %x_225, %121
-                                                                    %123:bool = eq %122, false
-                                                                    break_if %123 %b63
+                                                                  $B64: {  # continuing
+                                                                    %118:i32 = load %x_GLF_global_loop_count
+                                                                    %x_225:i32 = let %118
+                                                                    %120:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+                                                                    %121:i32 = load %120
+                                                                    %x_227:i32 = let %121
+                                                                    %123:i32 = sub 100i, %x_227
+                                                                    %124:bool = lt %x_225, %123
+                                                                    %125:bool = eq %124, false
+                                                                    break_if %125  # -> [t: exit_loop loop_16, f: $B63]
                                                                   }
                                                                 }
-                                                                %124:f32 = load %f
-                                                                %125:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-                                                                %126:f32 = load %125
-                                                                %127:f32 = add %124, %126
-                                                                store %f, %127
-                                                                continue %b60
+                                                                %126:f32 = load %f
+                                                                %127:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+                                                                %128:f32 = load %127
+                                                                %129:f32 = add %126, %128
+                                                                store %f, %129
+                                                                continue  # -> $B60
                                                               }
-                                                              %b60 = block {  # continuing
-                                                                %128:i32 = load %i_14
-                                                                %129:i32 = add %128, 1i
-                                                                store %i_14, %129
-                                                                next_iteration %b59
+                                                              $B60: {  # continuing
+                                                                %130:i32 = load %i_14
+                                                                %131:i32 = add %130, 1i
+                                                                store %i_14, %131
+                                                                next_iteration  # -> $B59
                                                               }
                                                             }
-                                                            continue %b56
+                                                            continue  # -> $B56
                                                           }
-                                                          %b56 = block {  # continuing
-                                                            %130:i32 = load %i_13
-                                                            %131:i32 = add %130, 1i
-                                                            store %i_13, %131
-                                                            next_iteration %b55
+                                                          $B56: {  # continuing
+                                                            %132:i32 = load %i_13
+                                                            %133:i32 = add %132, 1i
+                                                            store %i_13, %133
+                                                            next_iteration  # -> $B55
                                                           }
                                                         }
-                                                        continue %b52
+                                                        continue  # -> $B52
                                                       }
-                                                      %b52 = block {  # continuing
-                                                        %132:i32 = load %i_12
-                                                        %133:i32 = add %132, 1i
-                                                        store %i_12, %133
-                                                        next_iteration %b51
+                                                      $B52: {  # continuing
+                                                        %134:i32 = load %i_12
+                                                        %135:i32 = add %134, 1i
+                                                        store %i_12, %135
+                                                        next_iteration  # -> $B51
                                                       }
                                                     }
-                                                    continue %b48
+                                                    continue  # -> $B48
                                                   }
-                                                  %b48 = block {  # continuing
-                                                    %134:i32 = load %i_11
-                                                    %135:i32 = add %134, 1i
-                                                    store %i_11, %135
-                                                    next_iteration %b47
+                                                  $B48: {  # continuing
+                                                    %136:i32 = load %i_11
+                                                    %137:i32 = add %136, 1i
+                                                    store %i_11, %137
+                                                    next_iteration  # -> $B47
                                                   }
                                                 }
-                                                continue %b44
+                                                continue  # -> $B44
                                               }
-                                              %b44 = block {  # continuing
-                                                %136:i32 = load %i_10
-                                                %137:i32 = add %136, 1i
-                                                store %i_10, %137
-                                                next_iteration %b43
+                                              $B44: {  # continuing
+                                                %138:i32 = load %i_10
+                                                %139:i32 = add %138, 1i
+                                                store %i_10, %139
+                                                next_iteration  # -> $B43
                                               }
                                             }
-                                            continue %b40
+                                            continue  # -> $B40
                                           }
-                                          %b40 = block {  # continuing
-                                            %138:i32 = load %i_9
-                                            %139:i32 = add %138, 1i
-                                            store %i_9, %139
-                                            next_iteration %b39
+                                          $B40: {  # continuing
+                                            %140:i32 = load %i_9
+                                            %141:i32 = add %140, 1i
+                                            store %i_9, %141
+                                            next_iteration  # -> $B39
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B36
                                       }
-                                      %b36 = block {  # continuing
-                                        %140:i32 = load %i_8
-                                        %141:i32 = add %140, 1i
-                                        store %i_8, %141
-                                        next_iteration %b35
+                                      $B36: {  # continuing
+                                        %142:i32 = load %i_8
+                                        %143:i32 = add %142, 1i
+                                        store %i_8, %143
+                                        next_iteration  # -> $B35
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B32
                                   }
-                                  %b32 = block {  # continuing
-                                    %142:i32 = load %i_7
-                                    %143:i32 = add %142, 1i
-                                    store %i_7, %143
-                                    next_iteration %b31
+                                  $B32: {  # continuing
+                                    %144:i32 = load %i_7
+                                    %145:i32 = add %144, 1i
+                                    store %i_7, %145
+                                    next_iteration  # -> $B31
                                   }
                                 }
-                                continue %b28
+                                continue  # -> $B28
                               }
-                              %b28 = block {  # continuing
-                                %144:i32 = load %i_6
-                                %145:i32 = add %144, 1i
-                                store %i_6, %145
-                                next_iteration %b27
+                              $B28: {  # continuing
+                                %146:i32 = load %i_6
+                                %147:i32 = add %146, 1i
+                                store %i_6, %147
+                                next_iteration  # -> $B27
                               }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
-                            %146:i32 = load %i_5
-                            %147:i32 = add %146, 1i
-                            store %i_5, %147
-                            next_iteration %b23
+                          $B24: {  # continuing
+                            %148:i32 = load %i_5
+                            %149:i32 = add %148, 1i
+                            store %i_5, %149
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
-                        %148:i32 = load %i_4
-                        %149:i32 = add %148, 1i
-                        store %i_4, %149
-                        next_iteration %b19
+                      $B20: {  # continuing
+                        %150:i32 = load %i_4
+                        %151:i32 = add %150, 1i
+                        store %i_4, %151
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %150:i32 = load %i_3
-                    %151:i32 = add %150, 1i
-                    store %i_3, %151
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %152:i32 = load %i_3
+                    %153:i32 = add %152, 1i
+                    store %i_3, %153
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %152:i32 = load %i_2
-                %153:i32 = add %152, 1i
-                store %i_2, %153
-                next_iteration %b11
+              $B12: {  # continuing
+                %154:i32 = load %i_2
+                %155:i32 = add %154, 1i
+                store %i_2, %155
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %154:i32 = load %i_1
-            %155:i32 = add %154, 1i
-            store %i_1, %155
-            next_iteration %b7
+          $B8: {  # continuing
+            %156:i32 = load %i_1
+            %157:i32 = add %156, 1i
+            store %i_1, %157
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %156:i32 = load %i
-        %157:i32 = add %156, 1i
-        store %i, %157
-        next_iteration %b3
+      $B4: {  # continuing
+        %158:i32 = load %i
+        %159:i32 = add %158, 1i
+        store %i, %159
+        next_iteration  # -> $B3
       }
     }
-    %158:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %159:f32 = load %158
-    store %sum, %159
-    %160:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %161:i32 = load %160
-    store %r, %161
-    loop [b: %b65, c: %b66] {  # loop_17
-      %b65 = block {  # body
-        %162:i32 = load %x_GLF_global_loop_count
-        %163:bool = lt %162, 100i
-        if %163 [t: %b67, f: %b68] {  # if_16
-          %b67 = block {  # true
+    %160:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %161:f32 = load %160
+    store %sum, %161
+    %162:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %163:i32 = load %162
+    store %r, %163
+    loop [b: $B65, c: $B66] {  # loop_17
+      $B65: {  # body
+        %164:i32 = load %x_GLF_global_loop_count
+        %165:bool = lt %164, 100i
+        if %165 [t: $B67, f: $B68] {  # if_16
+          $B67: {  # true
             exit_if  # if_16
           }
-          %b68 = block {  # false
+          $B68: {  # false
             exit_loop  # loop_17
           }
         }
-        %164:i32 = load %x_GLF_global_loop_count
-        %165:i32 = add %164, 1i
-        store %x_GLF_global_loop_count, %165
-        %166:f32 = load %sum
-        %167:f32 = load %f
-        %168:f32 = add %166, %167
-        store %sum, %168
-        continue %b66
+        %166:i32 = load %x_GLF_global_loop_count
+        %167:i32 = add %166, 1i
+        store %x_GLF_global_loop_count, %167
+        %168:f32 = load %sum
+        %169:f32 = load %f
+        %170:f32 = add %168, %169
+        store %sum, %170
+        continue  # -> $B66
       }
-      %b66 = block {  # continuing
-        %169:i32 = load %r
-        %170:i32 = add %169, 1i
-        store %r, %170
-        next_iteration %b65
+      $B66: {  # continuing
+        %171:i32 = load %r
+        %172:i32 = add %171, 1i
+        store %r, %172
+        next_iteration  # -> $B65
       }
     }
-    %171:f32 = load %sum
-    %172:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %173:f32 = load %172
-    %174:bool = eq %171, %173
-    if %174 [t: %b69, f: %b70] {  # if_17
-      %b69 = block {  # true
-        %175:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %176:i32 = load %175
-        %177:f32 = convert %176
-        %178:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %179:i32 = load %178
-        %180:f32 = convert %179
+    %173:f32 = load %sum
+    %174:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %175:f32 = load %174
+    %176:bool = eq %173, %175
+    if %176 [t: $B69, f: $B70] {  # if_17
+      $B69: {  # true
+        %177:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %178:i32 = load %177
+        %179:f32 = convert %178
+        %180:f32 = let %179
         %181:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %182:i32 = load %181
         %183:f32 = convert %182
-        %184:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %185:i32 = load %184
-        %186:f32 = convert %185
-        %187:vec4<f32> = construct %177, %180, %183, %186
-        store %x_GLF_color, %187
+        %184:f32 = let %183
+        %185:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %186:i32 = load %185
+        %187:f32 = convert %186
+        %188:f32 = let %187
+        %189:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %190:i32 = load %189
+        %191:f32 = convert %190
+        %192:vec4<f32> = construct %180, %184, %188, %191
+        store %x_GLF_color, %192
         exit_if  # if_17
       }
-      %b70 = block {  # false
-        %188:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %189:i32 = load %188
-        %190:f32 = convert %189
-        %191:vec4<f32> = construct %190
-        store %x_GLF_color, %191
+      $B70: {  # false
+        %193:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %194:i32 = load %193
+        %195:f32 = convert %194
+        %196:vec4<f32> = construct %195
+        store %x_GLF_color, %196
         exit_if  # if_17
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b71 {
-  %b71 = block {
-    %193:void = call %main_1
-    %194:vec4<f32> = load %x_GLF_color
-    %195:main_out = construct %194
-    ret %195
+%tint_symbol = @fragment func():main_out {
+  $B71: {
+    %198:void = call %main_1
+    %199:vec4<f32> = load %x_GLF_color
+    %200:main_out = construct %199
+    ret %200
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.msl
index a1ad8af..caaf9ec 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nested-loops-global-loop-counter-do-while-accumulate-float/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_global_loop_count:ptr<private, i32, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -49,494 +49,578 @@
     %r:ptr<function, i32, read_write> = var
     store %x_GLF_global_loop_count, 0i
     %24:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_53:f32 = load %24
+    %25:f32 = load %24
+    %x_53:f32 = let %25
     store %f, %x_53
-    %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_55:i32 = load %26
+    %27:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %28:i32 = load %27
+    %x_55:i32 = let %28
     store %i, %x_55
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_60:i32 = load %i
-        %29:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_62:i32 = load %29
-        %31:bool = lt %x_60, %x_62
-        if %31 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %30:i32 = load %i
+        %x_60:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_62:i32 = let %33
+        %35:bool = lt %x_60, %x_62
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %32:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_66:i32 = load %32
+        %36:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %37:i32 = load %36
+        %x_66:i32 = let %37
         store %i_1, %x_66
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_71:i32 = load %i_1
-            %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-            %x_73:i32 = load %35
-            %37:bool = lt %x_71, %x_73
-            if %37 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %39:i32 = load %i_1
+            %x_71:i32 = let %39
+            %41:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+            %42:i32 = load %41
+            %x_73:i32 = let %42
+            %44:bool = lt %x_71, %x_73
+            if %44 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-            %x_77:i32 = load %38
+            %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+            %46:i32 = load %45
+            %x_77:i32 = let %46
             store %i_2, %x_77
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_82:i32 = load %i_2
-                %41:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                %x_84:i32 = load %41
-                %43:bool = lt %x_82, %x_84
-                if %43 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %48:i32 = load %i_2
+                %x_82:i32 = let %48
+                %50:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                %51:i32 = load %50
+                %x_84:i32 = let %51
+                %53:bool = lt %x_82, %x_84
+                if %53 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %44:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                %x_88:i32 = load %44
+                %54:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                %55:i32 = load %54
+                %x_88:i32 = let %55
                 store %i_3, %x_88
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %x_93:i32 = load %i_3
-                    %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                    %x_95:i32 = load %47
-                    %49:bool = lt %x_93, %x_95
-                    if %49 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %57:i32 = load %i_3
+                    %x_93:i32 = let %57
+                    %59:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                    %60:i32 = load %59
+                    %x_95:i32 = let %60
+                    %62:bool = lt %x_93, %x_95
+                    if %62 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                    %x_99:i32 = load %50
+                    %63:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                    %64:i32 = load %63
+                    %x_99:i32 = let %64
                     store %i_4, %x_99
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
-                        %x_104:i32 = load %i_4
-                        %53:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                        %x_106:i32 = load %53
-                        %55:bool = lt %x_104, %x_106
-                        if %55 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %66:i32 = load %i_4
+                        %x_104:i32 = let %66
+                        %68:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                        %69:i32 = load %68
+                        %x_106:i32 = let %69
+                        %71:bool = lt %x_104, %x_106
+                        if %71 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
-                        %56:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                        %x_110:i32 = load %56
+                        %72:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                        %73:i32 = load %72
+                        %x_110:i32 = let %73
                         store %i_5, %x_110
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
-                            %x_115:i32 = load %i_5
-                            %59:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                            %x_117:i32 = load %59
-                            %61:bool = lt %x_115, %x_117
-                            if %61 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %75:i32 = load %i_5
+                            %x_115:i32 = let %75
+                            %77:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                            %78:i32 = load %77
+                            %x_117:i32 = let %78
+                            %80:bool = lt %x_115, %x_117
+                            if %80 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
-                            %62:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                            %x_121:i32 = load %62
+                            %81:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                            %82:i32 = load %81
+                            %x_121:i32 = let %82
                             store %i_6, %x_121
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
-                                %x_126:i32 = load %i_6
-                                %65:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                %x_128:i32 = load %65
-                                %67:bool = lt %x_126, %x_128
-                                if %67 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
+                                %84:i32 = load %i_6
+                                %x_126:i32 = let %84
+                                %86:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                %87:i32 = load %86
+                                %x_128:i32 = let %87
+                                %89:bool = lt %x_126, %x_128
+                                if %89 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B30: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
-                                %68:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                %x_132:i32 = load %68
+                                %90:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                %91:i32 = load %90
+                                %x_132:i32 = let %91
                                 store %i_7, %x_132
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
-                                    %x_137:i32 = load %i_7
-                                    %71:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                    %x_139:i32 = load %71
-                                    %73:bool = lt %x_137, %x_139
-                                    if %73 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
+                                    %93:i32 = load %i_7
+                                    %x_137:i32 = let %93
+                                    %95:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                    %96:i32 = load %95
+                                    %x_139:i32 = let %96
+                                    %98:bool = lt %x_137, %x_139
+                                    if %98 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B34: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
-                                    %74:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                    %x_143:i32 = load %74
+                                    %99:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                    %100:i32 = load %99
+                                    %x_143:i32 = let %100
                                     store %i_8, %x_143
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
-                                        %x_148:i32 = load %i_8
-                                        %77:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                        %x_150:i32 = load %77
-                                        %79:bool = lt %x_148, %x_150
-                                        if %79 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
+                                        %102:i32 = load %i_8
+                                        %x_148:i32 = let %102
+                                        %104:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                        %105:i32 = load %104
+                                        %x_150:i32 = let %105
+                                        %107:bool = lt %x_148, %x_150
+                                        if %107 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B38: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
-                                        %80:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                        %x_154:i32 = load %80
+                                        %108:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                        %109:i32 = load %108
+                                        %x_154:i32 = let %109
                                         store %i_9, %x_154
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
-                                            %x_159:i32 = load %i_9
-                                            %83:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                            %x_161:i32 = load %83
-                                            %85:bool = lt %x_159, %x_161
-                                            if %85 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
+                                            %111:i32 = load %i_9
+                                            %x_159:i32 = let %111
+                                            %113:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                            %114:i32 = load %113
+                                            %x_161:i32 = let %114
+                                            %116:bool = lt %x_159, %x_161
+                                            if %116 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B42: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
-                                            %86:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                            %x_165:i32 = load %86
+                                            %117:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                            %118:i32 = load %117
+                                            %x_165:i32 = let %118
                                             store %i_10, %x_165
-                                            loop [b: %b43, c: %b44] {  # loop_11
-                                              %b43 = block {  # body
-                                                %x_170:i32 = load %i_10
-                                                %89:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                                %x_172:i32 = load %89
-                                                %91:bool = lt %x_170, %x_172
-                                                if %91 [t: %b45, f: %b46] {  # if_11
-                                                  %b45 = block {  # true
+                                            loop [b: $B43, c: $B44] {  # loop_11
+                                              $B43: {  # body
+                                                %120:i32 = load %i_10
+                                                %x_170:i32 = let %120
+                                                %122:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                                %123:i32 = load %122
+                                                %x_172:i32 = let %123
+                                                %125:bool = lt %x_170, %x_172
+                                                if %125 [t: $B45, f: $B46] {  # if_11
+                                                  $B45: {  # true
                                                     exit_if  # if_11
                                                   }
-                                                  %b46 = block {  # false
+                                                  $B46: {  # false
                                                     exit_loop  # loop_11
                                                   }
                                                 }
-                                                %92:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                                %x_176:i32 = load %92
+                                                %126:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                                %127:i32 = load %126
+                                                %x_176:i32 = let %127
                                                 store %i_11, %x_176
-                                                loop [b: %b47, c: %b48] {  # loop_12
-                                                  %b47 = block {  # body
-                                                    %x_181:i32 = load %i_11
-                                                    %95:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-                                                    %x_183:i32 = load %95
-                                                    %97:bool = lt %x_181, %x_183
-                                                    if %97 [t: %b49, f: %b50] {  # if_12
-                                                      %b49 = block {  # true
+                                                loop [b: $B47, c: $B48] {  # loop_12
+                                                  $B47: {  # body
+                                                    %129:i32 = load %i_11
+                                                    %x_181:i32 = let %129
+                                                    %131:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+                                                    %132:i32 = load %131
+                                                    %x_183:i32 = let %132
+                                                    %134:bool = lt %x_181, %x_183
+                                                    if %134 [t: $B49, f: $B50] {  # if_12
+                                                      $B49: {  # true
                                                         exit_if  # if_12
                                                       }
-                                                      %b50 = block {  # false
+                                                      $B50: {  # false
                                                         exit_loop  # loop_12
                                                       }
                                                     }
-                                                    %98:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                                    %x_187:i32 = load %98
+                                                    %135:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                                    %136:i32 = load %135
+                                                    %x_187:i32 = let %136
                                                     store %i_12, %x_187
-                                                    loop [b: %b51, c: %b52] {  # loop_13
-                                                      %b51 = block {  # body
-                                                        %x_192:i32 = load %i_12
-                                                        %101:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                                        %x_194:i32 = load %101
-                                                        %103:bool = lt %x_192, %x_194
-                                                        if %103 [t: %b53, f: %b54] {  # if_13
-                                                          %b53 = block {  # true
+                                                    loop [b: $B51, c: $B52] {  # loop_13
+                                                      $B51: {  # body
+                                                        %138:i32 = load %i_12
+                                                        %x_192:i32 = let %138
+                                                        %140:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                                        %141:i32 = load %140
+                                                        %x_194:i32 = let %141
+                                                        %143:bool = lt %x_192, %x_194
+                                                        if %143 [t: $B53, f: $B54] {  # if_13
+                                                          $B53: {  # true
                                                             exit_if  # if_13
                                                           }
-                                                          %b54 = block {  # false
+                                                          $B54: {  # false
                                                             exit_loop  # loop_13
                                                           }
                                                         }
-                                                        %104:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                                        %x_198:i32 = load %104
+                                                        %144:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                                        %145:i32 = load %144
+                                                        %x_198:i32 = let %145
                                                         store %i_13, %x_198
-                                                        loop [b: %b55, c: %b56] {  # loop_14
-                                                          %b55 = block {  # body
-                                                            %x_203:i32 = load %i_13
-                                                            %107:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                                                            %x_205:i32 = load %107
-                                                            %109:bool = lt %x_203, %x_205
-                                                            if %109 [t: %b57, f: %b58] {  # if_14
-                                                              %b57 = block {  # true
+                                                        loop [b: $B55, c: $B56] {  # loop_14
+                                                          $B55: {  # body
+                                                            %147:i32 = load %i_13
+                                                            %x_203:i32 = let %147
+                                                            %149:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                                                            %150:i32 = load %149
+                                                            %x_205:i32 = let %150
+                                                            %152:bool = lt %x_203, %x_205
+                                                            if %152 [t: $B57, f: $B58] {  # if_14
+                                                              $B57: {  # true
                                                                 exit_if  # if_14
                                                               }
-                                                              %b58 = block {  # false
+                                                              $B58: {  # false
                                                                 exit_loop  # loop_14
                                                               }
                                                             }
-                                                            %110:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                                                            %x_209:i32 = load %110
+                                                            %153:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                                                            %154:i32 = load %153
+                                                            %x_209:i32 = let %154
                                                             store %i_14, %x_209
-                                                            loop [b: %b59, c: %b60] {  # loop_15
-                                                              %b59 = block {  # body
-                                                                %x_214:i32 = load %i_14
-                                                                %113:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-                                                                %x_216:i32 = load %113
-                                                                %115:bool = lt %x_214, %x_216
-                                                                if %115 [t: %b61, f: %b62] {  # if_15
-                                                                  %b61 = block {  # true
+                                                            loop [b: $B59, c: $B60] {  # loop_15
+                                                              $B59: {  # body
+                                                                %156:i32 = load %i_14
+                                                                %x_214:i32 = let %156
+                                                                %158:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+                                                                %159:i32 = load %158
+                                                                %x_216:i32 = let %159
+                                                                %161:bool = lt %x_214, %x_216
+                                                                if %161 [t: $B61, f: $B62] {  # if_15
+                                                                  $B61: {  # true
                                                                     exit_if  # if_15
                                                                   }
-                                                                  %b62 = block {  # false
+                                                                  $B62: {  # false
                                                                     exit_loop  # loop_15
                                                                   }
                                                                 }
-                                                                loop [b: %b63, c: %b64] {  # loop_16
-                                                                  %b63 = block {  # body
-                                                                    %x_223:i32 = load %x_GLF_global_loop_count
-                                                                    %117:i32 = add %x_223, 1i
-                                                                    store %x_GLF_global_loop_count, %117
-                                                                    continue %b64
+                                                                loop [b: $B63, c: $B64] {  # loop_16
+                                                                  $B63: {  # body
+                                                                    %162:i32 = load %x_GLF_global_loop_count
+                                                                    %x_223:i32 = let %162
+                                                                    %164:i32 = add %x_223, 1i
+                                                                    store %x_GLF_global_loop_count, %164
+                                                                    continue  # -> $B64
                                                                   }
-                                                                  %b64 = block {  # continuing
-                                                                    %x_225:i32 = load %x_GLF_global_loop_count
-                                                                    %119:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-                                                                    %x_227:i32 = load %119
-                                                                    %121:i32 = sub 100i, %x_227
-                                                                    %122:bool = lt %x_225, %121
-                                                                    %123:bool = eq %122, false
-                                                                    break_if %123 %b63
+                                                                  $B64: {  # continuing
+                                                                    %165:i32 = load %x_GLF_global_loop_count
+                                                                    %x_225:i32 = let %165
+                                                                    %167:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+                                                                    %168:i32 = load %167
+                                                                    %x_227:i32 = let %168
+                                                                    %170:i32 = sub 100i, %x_227
+                                                                    %171:bool = lt %x_225, %170
+                                                                    %172:bool = eq %171, false
+                                                                    break_if %172  # -> [t: exit_loop loop_16, f: $B63]
                                                                   }
                                                                 }
-                                                                %124:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-                                                                %x_231:f32 = load %124
-                                                                %x_232:f32 = load %f
-                                                                %127:f32 = add %x_232, %x_231
-                                                                store %f, %127
-                                                                continue %b60
+                                                                %173:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+                                                                %174:f32 = load %173
+                                                                %x_231:f32 = let %174
+                                                                %176:f32 = load %f
+                                                                %x_232:f32 = let %176
+                                                                %178:f32 = add %x_232, %x_231
+                                                                store %f, %178
+                                                                continue  # -> $B60
                                                               }
-                                                              %b60 = block {  # continuing
-                                                                %x_234:i32 = load %i_14
-                                                                %129:i32 = add %x_234, 1i
-                                                                store %i_14, %129
-                                                                next_iteration %b59
+                                                              $B60: {  # continuing
+                                                                %179:i32 = load %i_14
+                                                                %x_234:i32 = let %179
+                                                                %181:i32 = add %x_234, 1i
+                                                                store %i_14, %181
+                                                                next_iteration  # -> $B59
                                                               }
                                                             }
-                                                            continue %b56
+                                                            continue  # -> $B56
                                                           }
-                                                          %b56 = block {  # continuing
-                                                            %x_236:i32 = load %i_13
-                                                            %131:i32 = add %x_236, 1i
-                                                            store %i_13, %131
-                                                            next_iteration %b55
+                                                          $B56: {  # continuing
+                                                            %182:i32 = load %i_13
+                                                            %x_236:i32 = let %182
+                                                            %184:i32 = add %x_236, 1i
+                                                            store %i_13, %184
+                                                            next_iteration  # -> $B55
                                                           }
                                                         }
-                                                        continue %b52
+                                                        continue  # -> $B52
                                                       }
-                                                      %b52 = block {  # continuing
-                                                        %x_238:i32 = load %i_12
-                                                        %133:i32 = add %x_238, 1i
-                                                        store %i_12, %133
-                                                        next_iteration %b51
+                                                      $B52: {  # continuing
+                                                        %185:i32 = load %i_12
+                                                        %x_238:i32 = let %185
+                                                        %187:i32 = add %x_238, 1i
+                                                        store %i_12, %187
+                                                        next_iteration  # -> $B51
                                                       }
                                                     }
-                                                    continue %b48
+                                                    continue  # -> $B48
                                                   }
-                                                  %b48 = block {  # continuing
-                                                    %x_240:i32 = load %i_11
-                                                    %135:i32 = add %x_240, 1i
-                                                    store %i_11, %135
-                                                    next_iteration %b47
+                                                  $B48: {  # continuing
+                                                    %188:i32 = load %i_11
+                                                    %x_240:i32 = let %188
+                                                    %190:i32 = add %x_240, 1i
+                                                    store %i_11, %190
+                                                    next_iteration  # -> $B47
                                                   }
                                                 }
-                                                continue %b44
+                                                continue  # -> $B44
                                               }
-                                              %b44 = block {  # continuing
-                                                %x_242:i32 = load %i_10
-                                                %137:i32 = add %x_242, 1i
-                                                store %i_10, %137
-                                                next_iteration %b43
+                                              $B44: {  # continuing
+                                                %191:i32 = load %i_10
+                                                %x_242:i32 = let %191
+                                                %193:i32 = add %x_242, 1i
+                                                store %i_10, %193
+                                                next_iteration  # -> $B43
                                               }
                                             }
-                                            continue %b40
+                                            continue  # -> $B40
                                           }
-                                          %b40 = block {  # continuing
-                                            %x_244:i32 = load %i_9
-                                            %139:i32 = add %x_244, 1i
-                                            store %i_9, %139
-                                            next_iteration %b39
+                                          $B40: {  # continuing
+                                            %194:i32 = load %i_9
+                                            %x_244:i32 = let %194
+                                            %196:i32 = add %x_244, 1i
+                                            store %i_9, %196
+                                            next_iteration  # -> $B39
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B36
                                       }
-                                      %b36 = block {  # continuing
-                                        %x_246:i32 = load %i_8
-                                        %141:i32 = add %x_246, 1i
-                                        store %i_8, %141
-                                        next_iteration %b35
+                                      $B36: {  # continuing
+                                        %197:i32 = load %i_8
+                                        %x_246:i32 = let %197
+                                        %199:i32 = add %x_246, 1i
+                                        store %i_8, %199
+                                        next_iteration  # -> $B35
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B32
                                   }
-                                  %b32 = block {  # continuing
-                                    %x_248:i32 = load %i_7
-                                    %143:i32 = add %x_248, 1i
-                                    store %i_7, %143
-                                    next_iteration %b31
+                                  $B32: {  # continuing
+                                    %200:i32 = load %i_7
+                                    %x_248:i32 = let %200
+                                    %202:i32 = add %x_248, 1i
+                                    store %i_7, %202
+                                    next_iteration  # -> $B31
                                   }
                                 }
-                                continue %b28
+                                continue  # -> $B28
                               }
-                              %b28 = block {  # continuing
-                                %x_250:i32 = load %i_6
-                                %145:i32 = add %x_250, 1i
-                                store %i_6, %145
-                                next_iteration %b27
+                              $B28: {  # continuing
+                                %203:i32 = load %i_6
+                                %x_250:i32 = let %203
+                                %205:i32 = add %x_250, 1i
+                                store %i_6, %205
+                                next_iteration  # -> $B27
                               }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
-                            %x_252:i32 = load %i_5
-                            %147:i32 = add %x_252, 1i
-                            store %i_5, %147
-                            next_iteration %b23
+                          $B24: {  # continuing
+                            %206:i32 = load %i_5
+                            %x_252:i32 = let %206
+                            %208:i32 = add %x_252, 1i
+                            store %i_5, %208
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
-                        %x_254:i32 = load %i_4
-                        %149:i32 = add %x_254, 1i
-                        store %i_4, %149
-                        next_iteration %b19
+                      $B20: {  # continuing
+                        %209:i32 = load %i_4
+                        %x_254:i32 = let %209
+                        %211:i32 = add %x_254, 1i
+                        store %i_4, %211
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %x_256:i32 = load %i_3
-                    %151:i32 = add %x_256, 1i
-                    store %i_3, %151
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %212:i32 = load %i_3
+                    %x_256:i32 = let %212
+                    %214:i32 = add %x_256, 1i
+                    store %i_3, %214
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_258:i32 = load %i_2
-                %153:i32 = add %x_258, 1i
-                store %i_2, %153
-                next_iteration %b11
+              $B12: {  # continuing
+                %215:i32 = load %i_2
+                %x_258:i32 = let %215
+                %217:i32 = add %x_258, 1i
+                store %i_2, %217
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_260:i32 = load %i_1
-            %155:i32 = add %x_260, 1i
-            store %i_1, %155
-            next_iteration %b7
+          $B8: {  # continuing
+            %218:i32 = load %i_1
+            %x_260:i32 = let %218
+            %220:i32 = add %x_260, 1i
+            store %i_1, %220
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_262:i32 = load %i
-        %157:i32 = add %x_262, 1i
-        store %i, %157
-        next_iteration %b3
+      $B4: {  # continuing
+        %221:i32 = load %i
+        %x_262:i32 = let %221
+        %223:i32 = add %x_262, 1i
+        store %i, %223
+        next_iteration  # -> $B3
       }
     }
-    %158:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_265:f32 = load %158
+    %224:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %225:f32 = load %224
+    %x_265:f32 = let %225
     store %sum, %x_265
-    %160:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_267:i32 = load %160
+    %227:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %228:i32 = load %227
+    %x_267:i32 = let %228
     store %r, %x_267
-    loop [b: %b65, c: %b66] {  # loop_17
-      %b65 = block {  # body
-        %x_272:i32 = load %x_GLF_global_loop_count
-        %163:bool = lt %x_272, 100i
-        if %163 [t: %b67, f: %b68] {  # if_16
-          %b67 = block {  # true
+    loop [b: $B65, c: $B66] {  # loop_17
+      $B65: {  # body
+        %230:i32 = load %x_GLF_global_loop_count
+        %x_272:i32 = let %230
+        %232:bool = lt %x_272, 100i
+        if %232 [t: $B67, f: $B68] {  # if_16
+          $B67: {  # true
             exit_if  # if_16
           }
-          %b68 = block {  # false
+          $B68: {  # false
             exit_loop  # loop_17
           }
         }
-        %x_275:i32 = load %x_GLF_global_loop_count
-        %165:i32 = add %x_275, 1i
-        store %x_GLF_global_loop_count, %165
-        %x_277:f32 = load %f
-        %x_278:f32 = load %sum
-        %168:f32 = add %x_278, %x_277
-        store %sum, %168
-        continue %b66
+        %233:i32 = load %x_GLF_global_loop_count
+        %x_275:i32 = let %233
+        %235:i32 = add %x_275, 1i
+        store %x_GLF_global_loop_count, %235
+        %236:f32 = load %f
+        %x_277:f32 = let %236
+        %238:f32 = load %sum
+        %x_278:f32 = let %238
+        %240:f32 = add %x_278, %x_277
+        store %sum, %240
+        continue  # -> $B66
       }
-      %b66 = block {  # continuing
-        %x_280:i32 = load %r
-        %170:i32 = add %x_280, 1i
-        store %r, %170
-        next_iteration %b65
+      $B66: {  # continuing
+        %241:i32 = load %r
+        %x_280:i32 = let %241
+        %243:i32 = add %x_280, 1i
+        store %r, %243
+        next_iteration  # -> $B65
       }
     }
-    %x_282:f32 = load %sum
-    %172:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_284:f32 = load %172
-    %174:bool = eq %x_282, %x_284
-    if %174 [t: %b69, f: %b70] {  # if_17
-      %b69 = block {  # true
-        %175:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_290:i32 = load %175
-        %177:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_293:i32 = load %177
-        %179:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_296:i32 = load %179
-        %181:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_299:i32 = load %181
-        %183:f32 = convert %x_290
-        %184:f32 = convert %x_293
-        %185:f32 = convert %x_296
-        %186:f32 = convert %x_299
-        %187:vec4<f32> = construct %183, %184, %185, %186
-        store %x_GLF_color, %187
+    %244:f32 = load %sum
+    %x_282:f32 = let %244
+    %246:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %247:f32 = load %246
+    %x_284:f32 = let %247
+    %249:bool = eq %x_282, %x_284
+    if %249 [t: $B69, f: $B70] {  # if_17
+      $B69: {  # true
+        %250:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %251:i32 = load %250
+        %x_290:i32 = let %251
+        %253:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %254:i32 = load %253
+        %x_293:i32 = let %254
+        %256:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %257:i32 = load %256
+        %x_296:i32 = let %257
+        %259:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %260:i32 = load %259
+        %x_299:i32 = let %260
+        %262:f32 = convert %x_290
+        %263:f32 = let %262
+        %264:f32 = convert %x_293
+        %265:f32 = let %264
+        %266:f32 = convert %x_296
+        %267:f32 = let %266
+        %268:f32 = convert %x_299
+        %269:vec4<f32> = construct %263, %265, %267, %268
+        store %x_GLF_color, %269
         exit_if  # if_17
       }
-      %b70 = block {  # false
-        %188:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_303:i32 = load %188
-        %x_304:f32 = convert %x_303
-        %191:vec4<f32> = construct %x_304, %x_304, %x_304, %x_304
-        store %x_GLF_color, %191
+      $B70: {  # false
+        %270:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %271:i32 = load %270
+        %x_303:i32 = let %271
+        %273:f32 = convert %x_303
+        %x_304:f32 = let %273
+        %275:vec4<f32> = construct %x_304, %x_304, %x_304, %x_304
+        store %x_GLF_color, %275
         exit_if  # if_17
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b71 {
-  %b71 = block {
-    %193:void = call %main_1
-    %194:vec4<f32> = load %x_GLF_color
-    %195:main_out = construct %194
-    ret %195
+%tint_symbol = @fragment func():main_out {
+  $B71: {
+    %277:void = call %main_1
+    %278:vec4<f32> = load %x_GLF_color
+    %279:main_out = construct %278
+    ret %279
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.msl
index 057e8c1..a895d11 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<i32, 17>, read_write> = var
     %r:ptr<function, array<i32, 17>, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -103,122 +103,131 @@
     %82:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %83:i32 = load %82
     store %i, %83
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %84:i32 = load %i
         %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %86:i32 = load %85
         %87:bool = lt %84, %86
-        if %87 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %87 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_134:i32 = load %i
-        %x_135:i32 = load %a
+        %88:i32 = load %i
+        %x_134:i32 = let %88
         %90:i32 = load %a
-        %91:i32 = sub %90, 1i
-        store %a, %91
-        %92:ptr<function, i32, read_write> = access %A, %x_134
-        store %92, %x_135
-        %x_138:i32 = load %i
-        %94:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_140:i32 = load %94
-        %96:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
-        %x_142:i32 = load %96
-        %98:i32 = clamp %x_138, %x_140, %x_142
-        %99:ptr<function, i32, read_write> = access %A, %98
-        %100:i32 = load %i
-        %101:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %102:i32 = load %101
-        %103:i32 = add %100, %102
-        store %99, %103
-        continue %b4
+        %x_135:i32 = let %90
+        %92:i32 = load %a
+        %93:i32 = sub %92, 1i
+        store %a, %93
+        %94:ptr<function, i32, read_write> = access %A, %x_134
+        store %94, %x_135
+        %95:i32 = load %i
+        %x_138:i32 = let %95
+        %97:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %98:i32 = load %97
+        %x_140:i32 = let %98
+        %100:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+        %101:i32 = load %100
+        %x_142:i32 = let %101
+        %103:i32 = max %x_138, %x_140
+        %104:i32 = min %103, %x_142
+        %105:ptr<function, i32, read_write> = access %A, %104
+        %106:i32 = load %i
+        %107:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %108:i32 = load %107
+        %109:i32 = add %106, %108
+        store %105, %109
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %104:i32 = load %i
-        %105:i32 = add %104, 1i
-        store %i, %105
-        next_iteration %b3
+      $B4: {  # continuing
+        %110:i32 = load %i
+        %111:i32 = add %110, 1i
+        store %i, %111
+        next_iteration  # -> $B3
       }
     }
     store %ok, true
-    %106:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %107:i32 = load %106
-    store %i_1, %107
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %108:i32 = load %i_1
-        %109:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %110:i32 = load %109
-        %111:bool = lt %108, %110
-        if %111 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    %112:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %113:i32 = load %112
+    store %i_1, %113
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %114:i32 = load %i_1
+        %115:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %116:i32 = load %115
+        %117:bool = lt %114, %116
+        if %117 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %112:i32 = load %i_1
-        %113:ptr<function, i32, read_write> = access %A, %112
-        %114:i32 = load %113
-        %115:i32 = load %i_1
-        %116:ptr<function, i32, read_write> = access %r, %115
-        %117:i32 = load %116
-        %118:bool = neq %114, %117
-        if %118 [t: %b11] {  # if_3
-          %b11 = block {  # true
+        %118:i32 = load %i_1
+        %119:ptr<function, i32, read_write> = access %A, %118
+        %120:i32 = load %119
+        %121:i32 = load %i_1
+        %122:ptr<function, i32, read_write> = access %r, %121
+        %123:i32 = load %122
+        %124:bool = neq %120, %123
+        if %124 [t: $B11] {  # if_3
+          $B11: {  # true
             store %ok, false
             exit_if  # if_3
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %119:i32 = load %i_1
-        %120:i32 = add %119, 1i
-        store %i_1, %120
-        next_iteration %b7
+      $B8: {  # continuing
+        %125:i32 = load %i_1
+        %126:i32 = add %125, 1i
+        store %i_1, %126
+        next_iteration  # -> $B7
       }
     }
-    %121:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %122:i32 = load %121
-    %123:f32 = convert %122
-    %124:vec4<f32> = construct %123
-    store %x_GLF_color, %124
-    %125:bool = load %ok
-    if %125 [t: %b12] {  # if_4
-      %b12 = block {  # true
-        %126:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %127:i32 = load %126
-        %128:f32 = convert %127
-        %129:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %130:i32 = load %129
-        %131:f32 = convert %130
-        %132:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %127:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %128:i32 = load %127
+    %129:f32 = convert %128
+    %130:vec4<f32> = construct %129
+    store %x_GLF_color, %130
+    %131:bool = load %ok
+    if %131 [t: $B12] {  # if_4
+      $B12: {  # true
+        %132:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %133:i32 = load %132
         %134:f32 = convert %133
-        %135:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %136:i32 = load %135
-        %137:f32 = convert %136
-        %138:vec4<f32> = construct %128, %131, %134, %137
-        store %x_GLF_color, %138
+        %135:f32 = let %134
+        %136:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %137:i32 = load %136
+        %138:f32 = convert %137
+        %139:f32 = let %138
+        %140:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %141:i32 = load %140
+        %142:f32 = convert %141
+        %143:f32 = let %142
+        %144:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %145:i32 = load %144
+        %146:f32 = convert %145
+        %147:vec4<f32> = construct %135, %139, %143, %146
+        store %x_GLF_color, %147
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %140:void = call %main_1
-    %141:vec4<f32> = load %x_GLF_color
-    %142:main_out = construct %141
-    ret %142
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %149:void = call %main_1
+    %150:vec4<f32> = load %x_GLF_color
+    %151:main_out = construct %150
+    ret %151
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.msl
index ad88df7..c7cb928 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-array-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<i32, 17>, read_write> = var
     %r:ptr<function, array<i32, 17>, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -26,198 +26,263 @@
     %ok:ptr<function, bool, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_52:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_54:i32 = load %12
-    %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_56:i32 = load %14
+    %11:i32 = load %10
+    %x_52:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %14:i32 = load %13
+    %x_54:i32 = let %14
     %16:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_58:i32 = load %16
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_60:i32 = load %18
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_62:i32 = load %20
+    %17:i32 = load %16
+    %x_56:i32 = let %17
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %20:i32 = load %19
+    %x_58:i32 = let %20
     %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_64:i32 = load %22
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_66:i32 = load %24
-    %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_68:i32 = load %26
+    %23:i32 = load %22
+    %x_60:i32 = let %23
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %26:i32 = load %25
+    %x_62:i32 = let %26
     %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_70:i32 = load %28
-    %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_72:i32 = load %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_74:i32 = load %32
+    %29:i32 = load %28
+    %x_64:i32 = let %29
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %32:i32 = load %31
+    %x_66:i32 = let %32
     %34:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_76:i32 = load %34
-    %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_78:i32 = load %36
-    %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_80:i32 = load %38
+    %35:i32 = load %34
+    %x_68:i32 = let %35
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %38:i32 = load %37
+    %x_70:i32 = let %38
     %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_82:i32 = load %40
-    %42:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_84:i32 = load %42
-    %44:array<i32, 17> = construct %x_52, %x_54, %x_56, %x_58, %x_60, %x_62, %x_64, %x_66, %x_68, %x_70, %x_72, %x_74, %x_76, %x_78, %x_80, %x_82, %x_84
-    store %A, %44
-    %45:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_87:i32 = load %45
-    %47:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_89:i32 = load %47
-    %49:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_91:i32 = load %49
-    %51:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_93:i32 = load %51
-    %53:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-    %x_95:i32 = load %53
-    %55:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_97:i32 = load %55
-    %57:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-    %x_99:i32 = load %57
-    %59:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %x_101:i32 = load %59
-    %61:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_103:i32 = load %61
-    %63:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %x_105:i32 = load %63
-    %65:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
-    %x_107:i32 = load %65
-    %67:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
-    %x_109:i32 = load %67
-    %69:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
-    %x_111:i32 = load %69
-    %71:ptr<uniform, i32, read> = access %x_6, 0u, 16i, 0u
-    %x_113:i32 = load %71
-    %73:ptr<uniform, i32, read> = access %x_6, 0u, 17i, 0u
-    %x_115:i32 = load %73
-    %75:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
-    %x_117:i32 = load %75
-    %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_119:i32 = load %77
-    %79:array<i32, 17> = construct %x_87, %x_89, %x_91, %x_93, %x_95, %x_97, %x_99, %x_101, %x_103, %x_105, %x_107, %x_109, %x_111, %x_113, %x_115, %x_117, %x_119
-    store %r, %79
-    %80:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_122:i32 = load %80
+    %41:i32 = load %40
+    %x_72:i32 = let %41
+    %43:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %44:i32 = load %43
+    %x_74:i32 = let %44
+    %46:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %47:i32 = load %46
+    %x_76:i32 = let %47
+    %49:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %50:i32 = load %49
+    %x_78:i32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %53:i32 = load %52
+    %x_80:i32 = let %53
+    %55:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %56:i32 = load %55
+    %x_82:i32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %59:i32 = load %58
+    %x_84:i32 = let %59
+    %61:array<i32, 17> = construct %x_52, %x_54, %x_56, %x_58, %x_60, %x_62, %x_64, %x_66, %x_68, %x_70, %x_72, %x_74, %x_76, %x_78, %x_80, %x_82, %x_84
+    store %A, %61
+    %62:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %63:i32 = load %62
+    %x_87:i32 = let %63
+    %65:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %66:i32 = load %65
+    %x_89:i32 = let %66
+    %68:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %69:i32 = load %68
+    %x_91:i32 = let %69
+    %71:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %72:i32 = load %71
+    %x_93:i32 = let %72
+    %74:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+    %75:i32 = load %74
+    %x_95:i32 = let %75
+    %77:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %78:i32 = load %77
+    %x_97:i32 = let %78
+    %80:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %81:i32 = load %80
+    %x_99:i32 = let %81
+    %83:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %84:i32 = load %83
+    %x_101:i32 = let %84
+    %86:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %87:i32 = load %86
+    %x_103:i32 = let %87
+    %89:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
+    %90:i32 = load %89
+    %x_105:i32 = let %90
+    %92:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
+    %93:i32 = load %92
+    %x_107:i32 = let %93
+    %95:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
+    %96:i32 = load %95
+    %x_109:i32 = let %96
+    %98:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
+    %99:i32 = load %98
+    %x_111:i32 = let %99
+    %101:ptr<uniform, i32, read> = access %x_6, 0u, 16i, 0u
+    %102:i32 = load %101
+    %x_113:i32 = let %102
+    %104:ptr<uniform, i32, read> = access %x_6, 0u, 17i, 0u
+    %105:i32 = load %104
+    %x_115:i32 = let %105
+    %107:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+    %108:i32 = load %107
+    %x_117:i32 = let %108
+    %110:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %111:i32 = load %110
+    %x_119:i32 = let %111
+    %113:array<i32, 17> = construct %x_87, %x_89, %x_91, %x_93, %x_95, %x_97, %x_99, %x_101, %x_103, %x_105, %x_107, %x_109, %x_111, %x_113, %x_115, %x_117, %x_119
+    store %r, %113
+    %114:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %115:i32 = load %114
+    %x_122:i32 = let %115
     store %a, %x_122
-    %82:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_124:i32 = load %82
+    %117:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %118:i32 = load %117
+    %x_124:i32 = let %118
     store %i, %x_124
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_129:i32 = load %i
-        %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_131:i32 = load %85
-        %87:bool = lt %x_129, %x_131
-        if %87 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %120:i32 = load %i
+        %x_129:i32 = let %120
+        %122:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %123:i32 = load %122
+        %x_131:i32 = let %123
+        %125:bool = lt %x_129, %x_131
+        if %125 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_134:i32 = load %i
-        %x_135:i32 = load %a
-        %90:i32 = sub %x_135, 1i
-        store %a, %90
-        %91:ptr<function, i32, read_write> = access %A, %x_134
-        store %91, %x_135
-        %x_138:i32 = load %i
-        %93:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_140:i32 = load %93
-        %95:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
-        %x_142:i32 = load %95
-        %x_144:i32 = load %i
-        %98:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_146:i32 = load %98
-        %100:i32 = clamp %x_138, %x_140, %x_142
-        %101:ptr<function, i32, read_write> = access %A, %100
-        %102:i32 = add %x_144, %x_146
-        store %101, %102
-        continue %b4
+        %126:i32 = load %i
+        %x_134:i32 = let %126
+        %128:i32 = load %a
+        %x_135:i32 = let %128
+        %130:i32 = sub %x_135, 1i
+        store %a, %130
+        %131:ptr<function, i32, read_write> = access %A, %x_134
+        store %131, %x_135
+        %132:i32 = load %i
+        %x_138:i32 = let %132
+        %134:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %135:i32 = load %134
+        %x_140:i32 = let %135
+        %137:ptr<uniform, i32, read> = access %x_6, 0u, 18i, 0u
+        %138:i32 = load %137
+        %x_142:i32 = let %138
+        %140:i32 = load %i
+        %x_144:i32 = let %140
+        %142:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %143:i32 = load %142
+        %x_146:i32 = let %143
+        %145:i32 = max %x_138, %x_140
+        %146:i32 = min %145, %x_142
+        %147:ptr<function, i32, read_write> = access %A, %146
+        %148:i32 = add %x_144, %x_146
+        store %147, %148
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_149:i32 = load %i
-        %104:i32 = add %x_149, 1i
-        store %i, %104
-        next_iteration %b3
+      $B4: {  # continuing
+        %149:i32 = load %i
+        %x_149:i32 = let %149
+        %151:i32 = add %x_149, 1i
+        store %i, %151
+        next_iteration  # -> $B3
       }
     }
     store %ok, true
-    %105:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_152:i32 = load %105
+    %152:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %153:i32 = load %152
+    %x_152:i32 = let %153
     store %i_1, %x_152
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %x_157:i32 = load %i_1
-        %108:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_159:i32 = load %108
-        %110:bool = lt %x_157, %x_159
-        if %110 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %155:i32 = load %i_1
+        %x_157:i32 = let %155
+        %157:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %158:i32 = load %157
+        %x_159:i32 = let %158
+        %160:bool = lt %x_157, %x_159
+        if %160 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_162:i32 = load %i_1
-        %112:ptr<function, i32, read_write> = access %A, %x_162
-        %x_164:i32 = load %112
-        %x_165:i32 = load %i_1
-        %115:ptr<function, i32, read_write> = access %r, %x_165
-        %x_167:i32 = load %115
-        %117:bool = neq %x_164, %x_167
-        if %117 [t: %b11] {  # if_3
-          %b11 = block {  # true
+        %161:i32 = load %i_1
+        %x_162:i32 = let %161
+        %163:ptr<function, i32, read_write> = access %A, %x_162
+        %164:i32 = load %163
+        %x_164:i32 = let %164
+        %166:i32 = load %i_1
+        %x_165:i32 = let %166
+        %168:ptr<function, i32, read_write> = access %r, %x_165
+        %169:i32 = load %168
+        %x_167:i32 = let %169
+        %171:bool = neq %x_164, %x_167
+        if %171 [t: $B11] {  # if_3
+          $B11: {  # true
             store %ok, false
             exit_if  # if_3
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_171:i32 = load %i_1
-        %119:i32 = add %x_171, 1i
-        store %i_1, %119
-        next_iteration %b7
+      $B8: {  # continuing
+        %172:i32 = load %i_1
+        %x_171:i32 = let %172
+        %174:i32 = add %x_171, 1i
+        store %i_1, %174
+        next_iteration  # -> $B7
       }
     }
-    %120:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_174:i32 = load %120
-    %x_175:f32 = convert %x_174
-    %123:vec4<f32> = construct %x_175, %x_175, %x_175, %x_175
-    store %x_GLF_color, %123
-    %x_177:bool = load %ok
-    if %x_177 [t: %b12] {  # if_4
-      %b12 = block {  # true
-        %125:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_181:i32 = load %125
-        %127:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_184:i32 = load %127
-        %129:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_187:i32 = load %129
-        %131:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_190:i32 = load %131
-        %133:f32 = convert %x_181
-        %134:f32 = convert %x_184
-        %135:f32 = convert %x_187
-        %136:f32 = convert %x_190
-        %137:vec4<f32> = construct %133, %134, %135, %136
-        store %x_GLF_color, %137
+    %175:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %176:i32 = load %175
+    %x_174:i32 = let %176
+    %178:f32 = convert %x_174
+    %x_175:f32 = let %178
+    %180:vec4<f32> = construct %x_175, %x_175, %x_175, %x_175
+    store %x_GLF_color, %180
+    %181:bool = load %ok
+    %x_177:bool = let %181
+    if %x_177 [t: $B12] {  # if_4
+      $B12: {  # true
+        %183:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %184:i32 = load %183
+        %x_181:i32 = let %184
+        %186:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %187:i32 = load %186
+        %x_184:i32 = let %187
+        %189:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %190:i32 = load %189
+        %x_187:i32 = let %190
+        %192:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %193:i32 = load %192
+        %x_190:i32 = let %193
+        %195:f32 = convert %x_181
+        %196:f32 = let %195
+        %197:f32 = convert %x_184
+        %198:f32 = let %197
+        %199:f32 = convert %x_187
+        %200:f32 = let %199
+        %201:f32 = convert %x_190
+        %202:vec4<f32> = construct %196, %198, %200, %201
+        store %x_GLF_color, %202
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %139:void = call %main_1
-    %140:vec4<f32> = load %x_GLF_color
-    %141:main_out = construct %140
-    ret %141
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %204:void = call %main_1
+    %205:vec4<f32> = load %x_GLF_color
+    %206:main_out = construct %205
+    ret %206
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.msl
index c4a2b71..ea8a601 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, i32, read_write> = var
@@ -40,75 +40,91 @@
     %13:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %14:i32 = load %13
     store %i, %14
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %15:i32 = load %i
         %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %17:i32 = load %16
         %18:bool = lt %15, %17
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_58:i32 = load %i
-        %20:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_60:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_62:i32 = load %22
+        %19:i32 = load %i
+        %x_58:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %22:i32 = load %21
+        %x_60:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %25:i32 = load %24
+        %x_62:i32 = let %25
         store %indexable, array<vec4<f32>, 2>(vec4<f32>(1.0f), vec4<f32>(0.0f))
-        %24:i32 = clamp %x_58, %x_60, %x_62
-        %25:ptr<function, vec4<f32>, read_write> = access %indexable, %24
-        %26:f32 = load_vector_element %25, 0u
-        %27:i32 = convert %26
-        store %a, %27
-        %x_86:i32 = load %a
-        %29:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %30:f32 = load %29
-        %31:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %32:f32 = load %31
-        %33:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %34:f32 = load %33
+        %27:i32 = max %x_58, %x_60
+        %28:i32 = min %27, %x_62
+        %29:ptr<function, vec4<f32>, read_write> = access %indexable, %28
+        %30:f32 = load_vector_element %29, 0u
+        %31:i32 = call %tint_f32_to_i32, %30
+        store %a, %31
+        %33:i32 = load %a
+        %x_86:i32 = let %33
         %35:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
         %36:f32 = load %35
-        %37:vec4<f32> = construct %30, %32, %34, %36
-        %38:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %39:f32 = load %38
-        %40:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %41:f32 = load %40
-        %42:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %43:f32 = load %42
-        %44:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %45:f32 = load %44
-        %46:vec4<f32> = construct %39, %41, %43, %45
-        %47:array<vec4<f32>, 2> = construct %37, %46
-        store %indexable_1, %47
-        %48:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_86
-        %49:vec4<f32> = load %48
-        store %v1, %49
-        continue %b4
+        %37:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %38:f32 = load %37
+        %39:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %40:f32 = load %39
+        %41:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %42:f32 = load %41
+        %43:vec4<f32> = construct %36, %38, %40, %42
+        %44:vec4<f32> = let %43
+        %45:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %46:f32 = load %45
+        %47:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %48:f32 = load %47
+        %49:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %50:f32 = load %49
+        %51:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %52:f32 = load %51
+        %53:vec4<f32> = construct %46, %48, %50, %52
+        %54:array<vec4<f32>, 2> = construct %44, %53
+        store %indexable_1, %54
+        %55:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_86
+        %56:vec4<f32> = load %55
+        store %v1, %56
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %50:i32 = load %i
-        %51:i32 = add %50, 1i
-        store %i, %51
-        next_iteration %b3
+      $B4: {  # continuing
+        %57:i32 = load %i
+        %58:i32 = add %57, 1i
+        store %i, %58
+        next_iteration  # -> $B3
       }
     }
-    %52:vec4<f32> = load %v1
-    store %x_GLF_color, %52
+    %59:vec4<f32> = load %v1
+    store %x_GLF_color, %59
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %65:i32 = convert %value
+    %66:bool = gte %value, -2147483648.0f
+    %67:i32 = select -2147483648i, %65, %66
+    %68:bool = lte %value, 2147483520.0f
+    %69:i32 = select 2147483647i, %67, %68
+    ret %69
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.msl
index e73f2b5..8913179 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-large-constants-for-clamp-vector-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,95 +20,127 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<vec4<f32>, 2>, read_write> = var
     %indexable_1:ptr<function, array<vec4<f32>, 2>, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_45:f32 = load %10
-    %12:vec4<f32> = construct %x_45, %x_45, %x_45, %x_45
-    store %v1, %12
-    %13:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_48:i32 = load %13
+    %11:f32 = load %10
+    %x_45:f32 = let %11
+    %13:vec4<f32> = construct %x_45, %x_45, %x_45, %x_45
+    store %v1, %13
+    %14:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_48:i32 = let %15
     store %i, %x_48
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_53:i32 = load %i
-        %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_55:i32 = load %16
-        %18:bool = lt %x_53, %x_55
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %i
+        %x_53:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_55:i32 = let %20
+        %22:bool = lt %x_53, %x_55
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_58:i32 = load %i
-        %20:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_60:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-        %x_62:i32 = load %22
+        %23:i32 = load %i
+        %x_58:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %26:i32 = load %25
+        %x_60:i32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+        %29:i32 = load %28
+        %x_62:i32 = let %29
         store %indexable, array<vec4<f32>, 2>(vec4<f32>(1.0f), vec4<f32>(0.0f))
-        %24:i32 = clamp %x_58, %x_60, %x_62
-        %25:ptr<function, vec4<f32>, read_write> = access %indexable, %24
-        %x_65:f32 = load_vector_element %25, 0u
-        %27:i32 = convert %x_65
-        store %a, %27
-        %28:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_68:f32 = load %28
-        %30:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_70:f32 = load %30
-        %32:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_72:f32 = load %32
-        %34:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_74:f32 = load %34
-        %36:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_77:f32 = load %36
+        %31:i32 = max %x_58, %x_60
+        %32:i32 = min %31, %x_62
+        %33:ptr<function, vec4<f32>, read_write> = access %indexable, %32
+        %34:f32 = load_vector_element %33, 0u
+        %x_65:f32 = let %34
+        %36:i32 = call %tint_f32_to_i32, %x_65
+        store %a, %36
         %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_79:f32 = load %38
-        %40:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_81:f32 = load %40
-        %42:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_83:f32 = load %42
-        %x_86:i32 = load %a
-        %45:vec4<f32> = construct %x_68, %x_70, %x_72, %x_74
-        %46:vec4<f32> = construct %x_77, %x_79, %x_81, %x_83
-        %47:array<vec4<f32>, 2> = construct %45, %46
-        store %indexable_1, %47
-        %48:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_86
-        %x_88:vec4<f32> = load %48
+        %39:f32 = load %38
+        %x_68:f32 = let %39
+        %41:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %42:f32 = load %41
+        %x_70:f32 = let %42
+        %44:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %45:f32 = load %44
+        %x_72:f32 = let %45
+        %47:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %48:f32 = load %47
+        %x_74:f32 = let %48
+        %50:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %51:f32 = load %50
+        %x_77:f32 = let %51
+        %53:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %54:f32 = load %53
+        %x_79:f32 = let %54
+        %56:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %57:f32 = load %56
+        %x_81:f32 = let %57
+        %59:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %60:f32 = load %59
+        %x_83:f32 = let %60
+        %62:i32 = load %a
+        %x_86:i32 = let %62
+        %64:vec4<f32> = construct %x_68, %x_70, %x_72, %x_74
+        %65:vec4<f32> = let %64
+        %66:vec4<f32> = construct %x_77, %x_79, %x_81, %x_83
+        %67:array<vec4<f32>, 2> = construct %65, %66
+        store %indexable_1, %67
+        %68:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_86
+        %69:vec4<f32> = load %68
+        %x_88:vec4<f32> = let %69
         store %v1, %x_88
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_89:i32 = load %i
-        %51:i32 = add %x_89, 1i
-        store %i, %51
-        next_iteration %b3
+      $B4: {  # continuing
+        %71:i32 = load %i
+        %x_89:i32 = let %71
+        %73:i32 = add %x_89, 1i
+        store %i, %73
+        next_iteration  # -> $B3
       }
     }
-    %x_91:vec4<f32> = load %v1
+    %74:vec4<f32> = load %v1
+    %x_91:vec4<f32> = let %74
     store %x_GLF_color, %x_91
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %77:void = call %main_1
+    %78:vec4<f32> = load %x_GLF_color
+    %79:main_out = construct %78
+    ret %79
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %81:i32 = convert %value
+    %82:bool = gte %value, -2147483648.0f
+    %83:i32 = select -2147483648i, %81, %82
+    %84:bool = lte %value, 2147483520.0f
+    %85:i32 = select 2147483647i, %83, %84
+    ret %85
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.msl
index 949a481..0cf3de8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
     %7:f32 = load %6
@@ -36,16 +36,16 @@
     %9:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
     %10:f32 = load %9
     store %a, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
         %12:f32 = load %11
         %13:f32 = div %12, 0.20000000298023223877f
         %14:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
         %15:f32 = load %14
         %16:bool = lt %13, %15
-        if %16 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if %16 [t: $B5] {  # if_1
+          $B5: {  # true
             ret
           }
         }
@@ -55,8 +55,8 @@
         %20:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
         %21:f32 = load %20
         %22:bool = lt %19, %21
-        if %22 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        if %22 [t: $B6] {  # if_2
+          $B6: {  # true
             ret
           }
         }
@@ -66,8 +66,8 @@
         %26:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
         %27:f32 = load %26
         %28:bool = lt %25, %27
-        if %28 [t: %b7] {  # if_3
-          %b7 = block {  # true
+        if %28 [t: $B7] {  # if_3
+          $B7: {  # true
             ret
           }
         }
@@ -77,48 +77,52 @@
         %32:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
         %33:f32 = load %32
         %34:bool = lt %31, %33
-        if %34 [t: %b8, f: %b9] {  # if_4
-          %b8 = block {  # true
+        if %34 [t: $B8, f: $B9] {  # if_4
+          $B8: {  # true
             ret
           }
-          %b9 = block {  # false
+          $B9: {  # false
             store %a, 0.0f
             exit_if  # if_4
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_72:f32 = load %a
-        %36:bool = eq %x_72, 0.0f
-        %37:bool = eq %36, false
+      $B4: {  # continuing
+        %35:f32 = load %a
+        %x_72:f32 = let %35
+        %37:bool = eq %x_72, 0.0f
         %38:bool = eq %37, false
-        break_if %38 %b3
+        %39:bool = eq %38, false
+        break_if %39  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %39:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %40:i32 = load %39
-    %41:f32 = convert %40
-    %42:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %43:i32 = load %42
-    %44:f32 = convert %43
-    %45:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %46:i32 = load %45
-    %47:f32 = convert %46
-    %48:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %40:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %41:i32 = load %40
+    %42:f32 = convert %41
+    %43:f32 = let %42
+    %44:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %45:i32 = load %44
+    %46:f32 = convert %45
+    %47:f32 = let %46
+    %48:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
     %49:i32 = load %48
     %50:f32 = convert %49
-    %51:vec4<f32> = construct %41, %44, %47, %50
-    store %x_GLF_color, %51
+    %51:f32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %53:i32 = load %52
+    %54:f32 = convert %53
+    %55:vec4<f32> = construct %43, %47, %51, %54
+    store %x_GLF_color, %55
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %53:void = call %main_1
-    %54:vec4<f32> = load %x_GLF_color
-    %55:main_out = construct %54
-    ret %55
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.msl
index 8cc2929..2367e3a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-nir-opt-loop-unroll-if-if-if-if-do-while/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,104 +20,122 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-    %x_31:f32 = load %6
-    %8:vec4<f32> = construct %x_31, %x_31, %x_31, %x_31
-    store %x_GLF_color, %8
-    %9:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-    %x_34:f32 = load %9
+    %7:f32 = load %6
+    %x_31:f32 = let %7
+    %9:vec4<f32> = construct %x_31, %x_31, %x_31, %x_31
+    store %x_GLF_color, %9
+    %10:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_34:f32 = let %11
     store %a, %x_34
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %11:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_40:f32 = load %11
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %13:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_43:f32 = load %13
-        %15:f32 = div %x_40, 0.20000000298023223877f
-        %16:bool = lt %15, %x_43
-        if %16 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %14:f32 = load %13
+        %x_40:f32 = let %14
+        %16:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %17:f32 = load %16
+        %x_43:f32 = let %17
+        %19:f32 = div %x_40, 0.20000000298023223877f
+        %20:bool = lt %19, %x_43
+        if %20 [t: $B5] {  # if_1
+          $B5: {  # true
             ret
           }
         }
-        %17:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_48:f32 = load %17
-        %19:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_51:f32 = load %19
-        %21:f32 = div %x_48, 0.20000000298023223877f
-        %22:bool = lt %21, %x_51
-        if %22 [t: %b6] {  # if_2
-          %b6 = block {  # true
-            ret
-          }
-        }
-        %23:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_56:f32 = load %23
-        %25:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_59:f32 = load %25
-        %27:f32 = div %x_56, 0.20000000298023223877f
-        %28:bool = lt %27, %x_59
-        if %28 [t: %b7] {  # if_3
-          %b7 = block {  # true
+        %21:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %22:f32 = load %21
+        %x_48:f32 = let %22
+        %24:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %25:f32 = load %24
+        %x_51:f32 = let %25
+        %27:f32 = div %x_48, 0.20000000298023223877f
+        %28:bool = lt %27, %x_51
+        if %28 [t: $B6] {  # if_2
+          $B6: {  # true
             ret
           }
         }
         %29:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_64:f32 = load %29
-        %31:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-        %x_67:f32 = load %31
-        %33:f32 = div %x_64, 0.20000000298023223877f
-        %34:bool = lt %33, %x_67
-        if %34 [t: %b8, f: %b9] {  # if_4
-          %b8 = block {  # true
+        %30:f32 = load %29
+        %x_56:f32 = let %30
+        %32:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %33:f32 = load %32
+        %x_59:f32 = let %33
+        %35:f32 = div %x_56, 0.20000000298023223877f
+        %36:bool = lt %35, %x_59
+        if %36 [t: $B7] {  # if_3
+          $B7: {  # true
             ret
           }
-          %b9 = block {  # false
+        }
+        %37:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %38:f32 = load %37
+        %x_64:f32 = let %38
+        %40:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+        %41:f32 = load %40
+        %x_67:f32 = let %41
+        %43:f32 = div %x_64, 0.20000000298023223877f
+        %44:bool = lt %43, %x_67
+        if %44 [t: $B8, f: $B9] {  # if_4
+          $B8: {  # true
+            ret
+          }
+          $B9: {  # false
             store %a, 0.0f
             exit_if  # if_4
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_72:f32 = load %a
-        %36:bool = eq %x_72, 0.0f
-        %37:bool = eq %36, false
-        break_if %37 %b3
+      $B4: {  # continuing
+        %45:f32 = load %a
+        %x_72:f32 = let %45
+        %47:bool = eq %x_72, 0.0f
+        %48:bool = eq %47, false
+        break_if %48  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %38:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_75:i32 = load %38
-    %40:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_78:i32 = load %40
-    %42:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_81:i32 = load %42
-    %44:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-    %x_84:i32 = load %44
-    %46:f32 = convert %x_75
-    %47:f32 = convert %x_78
-    %48:f32 = convert %x_81
-    %49:f32 = convert %x_84
-    %50:vec4<f32> = construct %46, %47, %48, %49
-    store %x_GLF_color, %50
+    %49:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %50:i32 = load %49
+    %x_75:i32 = let %50
+    %52:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %53:i32 = load %52
+    %x_78:i32 = let %53
+    %55:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %56:i32 = load %55
+    %x_81:i32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %59:i32 = load %58
+    %x_84:i32 = let %59
+    %61:f32 = convert %x_75
+    %62:f32 = let %61
+    %63:f32 = convert %x_78
+    %64:f32 = let %63
+    %65:f32 = convert %x_81
+    %66:f32 = let %65
+    %67:f32 = convert %x_84
+    %68:vec4<f32> = construct %62, %64, %66, %67
+    store %x_GLF_color, %68
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %70:void = call %main_1
+    %71:vec4<f32> = load %x_GLF_color
+    %72:main_out = construct %71
+    ret %72
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.msl
index 1e8f24b..64008a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %M1:ptr<function, mat2x2<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %c:ptr<function, i32, read_write> = var
@@ -36,92 +36,99 @@
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
     %11:f32 = load %10
     %12:vec2<f32> = construct %9, %11
-    %13:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %14:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-    %16:f32 = load %15
-    %17:vec2<f32> = construct %14, %16
-    %18:mat2x2<f32> = construct %12, %17
-    store %M1, %18
-    %19:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %20:f32 = load %19
-    store %a, %20
-    %21:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %22:i32 = load %21
-    store %c, %22
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %23:i32 = load %c
-        %24:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %25:i32 = load %24
-        %26:bool = lt %23, %25
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %13:vec2<f32> = let %12
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %15:f32 = load %14
+    %16:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+    %17:f32 = load %16
+    %18:vec2<f32> = construct %15, %17
+    %19:mat2x2<f32> = construct %13, %18
+    store %M1, %19
+    %20:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %21:f32 = load %20
+    store %a, %21
+    %22:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %23:i32 = load %22
+    store %c, %23
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %24:i32 = load %c
+        %25:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %26:i32 = load %25
+        %27:bool = lt %24, %26
+        if %27 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %27:f32 = load %a
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %29:i32 = load %28
-        %30:ptr<function, vec2<f32>, read_write> = access %M1, %29
-        %31:i32 = load %c
-        %32:i32 = complement %31
-        %33:i32 = clamp %32, 0i, 1i
-        %34:f32 = load_vector_element %30, %33
-        %35:f32 = add %27, %34
-        store %a, %35
-        continue %b4
+        %28:f32 = load %a
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %31:i32 = load %30
+        %32:ptr<function, vec2<f32>, read_write> = access %M1, %31
+        %33:ptr<function, vec2<f32>, read_write> = let %32
+        %34:i32 = load %c
+        %35:i32 = complement %34
+        %36:i32 = max %35, 0i
+        %37:i32 = min %36, 1i
+        %38:f32 = load_vector_element %33, %37
+        %39:f32 = add %29, %38
+        store %a, %39
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %c
-        %37:i32 = add %36, 1i
-        store %c, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %40:i32 = load %c
+        %41:i32 = add %40, 1i
+        store %c, %41
+        next_iteration  # -> $B3
       }
     }
-    %38:f32 = load %a
-    %39:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %40:f32 = load %39
-    %41:bool = eq %38, %40
-    if %41 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %42:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:vec4<f32> = construct %44, %47, %50, %53
-        store %x_GLF_color, %54
+    %42:f32 = load %a
+    %43:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %44:f32 = load %43
+    %45:bool = eq %42, %44
+    if %45 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %46:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %47:i32 = load %46
+        %48:f32 = convert %47
+        %49:f32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %51:i32 = load %50
+        %52:f32 = convert %51
+        %53:f32 = let %52
+        %54:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %55:i32 = load %54
+        %56:f32 = convert %55
+        %57:f32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %59:i32 = load %58
+        %60:f32 = convert %59
+        %61:vec4<f32> = construct %49, %53, %57, %60
+        store %x_GLF_color, %61
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %55:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %56:i32 = load %55
-        %57:f32 = convert %56
-        %58:vec4<f32> = construct %57
-        store %x_GLF_color, %58
+      $B8: {  # false
+        %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %63:i32 = load %62
+        %64:f32 = convert %63
+        %65:vec4<f32> = construct %64
+        store %x_GLF_color, %65
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %60:void = call %main_1
-    %61:vec4<f32> = load %x_GLF_color
-    %62:main_out = construct %61
-    ret %62
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.msl
index 1833c8e..6aeb1ac 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-not-clamp-matrix-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,108 +20,134 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %M1:ptr<function, mat2x2<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %c:ptr<function, i32, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_41:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_43:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_45:f32 = load %12
-    %14:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-    %x_47:f32 = load %14
-    %16:vec2<f32> = construct %x_41, %x_43
-    %17:vec2<f32> = construct %x_45, %x_47
-    %18:mat2x2<f32> = construct %16, %17
-    store %M1, %18
-    %19:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_52:f32 = load %19
+    %9:f32 = load %8
+    %x_41:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %12:f32 = load %11
+    %x_43:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %15:f32 = load %14
+    %x_45:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+    %18:f32 = load %17
+    %x_47:f32 = let %18
+    %20:vec2<f32> = construct %x_41, %x_43
+    %21:vec2<f32> = let %20
+    %22:vec2<f32> = construct %x_45, %x_47
+    %23:mat2x2<f32> = construct %21, %22
+    store %M1, %23
+    %24:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %25:f32 = load %24
+    %x_52:f32 = let %25
     store %a, %x_52
-    %21:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-    %x_54:i32 = load %21
+    %27:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %28:i32 = load %27
+    %x_54:i32 = let %28
     store %c, %x_54
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_59:i32 = load %c
-        %24:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_61:i32 = load %24
-        %26:bool = lt %x_59, %x_61
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %30:i32 = load %c
+        %x_59:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %33:i32 = load %32
+        %x_61:i32 = let %33
+        %35:bool = lt %x_59, %x_61
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_65:i32 = load %27
-        %x_66:i32 = load %c
-        %30:ptr<function, vec2<f32>, read_write> = access %M1, %x_65
-        %31:i32 = complement %x_66
-        %32:i32 = clamp %31, 0i, 1i
-        %x_70:f32 = load_vector_element %30, %32
-        %x_71:f32 = load %a
-        %35:f32 = add %x_71, %x_70
-        store %a, %35
-        continue %b4
+        %36:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %37:i32 = load %36
+        %x_65:i32 = let %37
+        %39:i32 = load %c
+        %x_66:i32 = let %39
+        %41:ptr<function, vec2<f32>, read_write> = access %M1, %x_65
+        %42:i32 = complement %x_66
+        %43:i32 = max %42, 0i
+        %44:i32 = min %43, 1i
+        %45:f32 = load_vector_element %41, %44
+        %x_70:f32 = let %45
+        %47:f32 = load %a
+        %x_71:f32 = let %47
+        %49:f32 = add %x_71, %x_70
+        store %a, %49
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_73:i32 = load %c
-        %37:i32 = add %x_73, 1i
-        store %c, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %50:i32 = load %c
+        %x_73:i32 = let %50
+        %52:i32 = add %x_73, 1i
+        store %c, %52
+        next_iteration  # -> $B3
       }
     }
-    %x_75:f32 = load %a
-    %39:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_77:f32 = load %39
-    %41:bool = eq %x_75, %x_77
-    if %41 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %42:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_83:i32 = load %42
-        %44:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_86:i32 = load %44
-        %46:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_89:i32 = load %46
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_92:i32 = load %48
-        %50:f32 = convert %x_83
-        %51:f32 = convert %x_86
-        %52:f32 = convert %x_89
-        %53:f32 = convert %x_92
-        %54:vec4<f32> = construct %50, %51, %52, %53
-        store %x_GLF_color, %54
+    %53:f32 = load %a
+    %x_75:f32 = let %53
+    %55:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %56:f32 = load %55
+    %x_77:f32 = let %56
+    %58:bool = eq %x_75, %x_77
+    if %58 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %59:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %60:i32 = load %59
+        %x_83:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %63:i32 = load %62
+        %x_86:i32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %66:i32 = load %65
+        %x_89:i32 = let %66
+        %68:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %69:i32 = load %68
+        %x_92:i32 = let %69
+        %71:f32 = convert %x_83
+        %72:f32 = let %71
+        %73:f32 = convert %x_86
+        %74:f32 = let %73
+        %75:f32 = convert %x_89
+        %76:f32 = let %75
+        %77:f32 = convert %x_92
+        %78:vec4<f32> = construct %72, %74, %76, %77
+        store %x_GLF_color, %78
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %55:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_96:i32 = load %55
-        %x_97:f32 = convert %x_96
-        %58:vec4<f32> = construct %x_97, %x_97, %x_97, %x_97
-        store %x_GLF_color, %58
+      $B8: {  # false
+        %79:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %80:i32 = load %79
+        %x_96:i32 = let %80
+        %82:f32 = convert %x_96
+        %x_97:f32 = let %82
+        %84:vec4<f32> = construct %x_97, %x_97, %x_97, %x_97
+        store %x_GLF_color, %84
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %60:void = call %main_1
-    %61:vec4<f32> = load %x_GLF_color
-    %62:main_out = construct %61
-    ret %62
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %86:void = call %main_1
+    %87:vec4<f32> = load %x_GLF_color
+    %88:main_out = construct %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.msl
index 6d6b4b8..5422cc6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,61 +12,74 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     store %f, 2.0f
     %6:f32 = load %f
     %7:f32 = clamp 1.0f, 1.0f, %6
     %8:f32 = sub 1.0f, %7
-    %9:i32 = convert %8
+    %9:i32 = call %tint_f32_to_i32, %8
     store %a, %9
-    %10:i32 = load %a
-    %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %12:i32 = load %11
-    %13:bool = eq %10, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %15:i32 = load %14
-        %16:f32 = convert %15
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %11:i32 = load %a
+    %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %13:i32 = load %12
+    %14:bool = eq %11, %13
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %16:i32 = load %15
+        %17:f32 = convert %16
+        %18:f32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %24:i32 = load %23
         %25:f32 = convert %24
-        %26:vec4<f32> = construct %16, %19, %22, %25
-        store %x_GLF_color, %26
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %26:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %28:i32 = load %27
         %29:f32 = convert %28
-        %30:vec4<f32> = construct %29
+        %30:vec4<f32> = construct %18, %22, %26, %29
         store %x_GLF_color, %30
         exit_if  # if_1
       }
+      $B4: {  # false
+        %31:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:vec4<f32> = construct %33
+        store %x_GLF_color, %34
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %40:i32 = convert %value
+    %41:bool = gte %value, -2147483648.0f
+    %42:i32 = select -2147483648i, %40, %41
+    %43:bool = lte %value, 2147483520.0f
+    %44:i32 = select 2147483647i, %42, %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.msl
index 7651745..7590d78 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-one-minus-clamp-always-one-cast-to-int/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,61 +12,83 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %a:ptr<function, i32, read_write> = var
     store %f, 2.0f
-    %x_27:f32 = load %f
-    %7:f32 = clamp 1.0f, 1.0f, %x_27
-    %8:f32 = sub 1.0f, %7
-    %9:i32 = convert %8
-    store %a, %9
-    %x_31:i32 = load %a
-    %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_33:i32 = load %11
-    %13:bool = eq %x_31, %x_33
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_39:i32 = load %14
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_42:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_45:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_48:i32 = load %20
-        %22:f32 = convert %x_39
-        %23:f32 = convert %x_42
-        %24:f32 = convert %x_45
-        %25:f32 = convert %x_48
-        %26:vec4<f32> = construct %22, %23, %24, %25
-        store %x_GLF_color, %26
+    %6:f32 = load %f
+    %x_27:f32 = let %6
+    %8:f32 = clamp 1.0f, 1.0f, %x_27
+    %9:f32 = sub 1.0f, %8
+    %10:i32 = call %tint_f32_to_i32, %9
+    store %a, %10
+    %12:i32 = load %a
+    %x_31:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_33:i32 = let %15
+    %17:bool = eq %x_31, %x_33
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %19:i32 = load %18
+        %x_39:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %22:i32 = load %21
+        %x_42:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %25:i32 = load %24
+        %x_45:i32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %28:i32 = load %27
+        %x_48:i32 = let %28
+        %30:f32 = convert %x_39
+        %31:f32 = let %30
+        %32:f32 = convert %x_42
+        %33:f32 = let %32
+        %34:f32 = convert %x_45
+        %35:f32 = let %34
+        %36:f32 = convert %x_48
+        %37:vec4<f32> = construct %31, %33, %35, %36
+        store %x_GLF_color, %37
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_52:i32 = load %27
-        %x_53:f32 = convert %x_52
-        %30:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
-        store %x_GLF_color, %30
+      $B4: {  # false
+        %38:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %39:i32 = load %38
+        %x_52:i32 = let %39
+        %41:f32 = convert %x_52
+        %x_53:f32 = let %41
+        %43:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %32:void = call %main_1
-    %33:vec4<f32> = load %x_GLF_color
-    %34:main_out = construct %33
-    ret %34
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %49:i32 = convert %value
+    %50:bool = gte %value, -2147483648.0f
+    %51:i32 = select -2147483648i, %49, %50
+    %52:bool = lte %value, 2147483520.0f
+    %53:i32 = select 2147483647i, %51, %52
+    ret %53
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.msl
index 6afd172..e7e9c57 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,147 +20,160 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
-    %9:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %10:i32 = load %9
-    store %a, %10
-    %11:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %12:i32 = load %11
-    store %i, %12
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %13:i32 = load %i
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %15:i32 = load %14
-        %16:bool = lt %13, %15
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %10:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %11:i32 = load %10
+    store %a, %11
+    %12:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %13:i32 = load %12
+    store %i, %13
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %14:i32 = load %i
+        %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %16:i32 = load %15
+        %17:bool = lt %14, %16
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %18:i32 = load %17
-        store %j, %18
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %19:i32 = load %j
-            %20:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %21:i32 = load %20
-            %22:bool = lt %19, %21
-            if %22 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %19:i32 = load %18
+        store %j, %19
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %20:i32 = load %j
+            %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %22:i32 = load %21
+            %23:bool = lt %20, %22
+            if %23 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %23:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-                %24:i32 = load %23
-                store %a, %24
-                %25:f32 = load_vector_element %gl_FragCoord, 1u
-                %26:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-                %27:f32 = load %26
-                %28:bool = lt %25, %27
-                if %28 [t: %b13] {  # if_3
-                  %b13 = block {  # true
-                    discard
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %24:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+                %25:i32 = load %24
+                store %a, %25
+                %26:f32 = load_vector_element %gl_FragCoord, 1u
+                %27:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+                %28:f32 = load %27
+                %29:bool = lt %26, %28
+                if %29 [t: $B13] {  # if_3
+                  $B13: {  # true
+                    store %continue_execution, false
                     exit_if  # if_3
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_72:i32 = load %a
-                %30:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-                %x_74:i32 = load %30
-                %32:bool = lt %x_72, %x_74
-                %33:bool = eq %32, false
-                break_if %33 %b11
+              $B12: {  # continuing
+                %30:i32 = load %a
+                %x_72:i32 = let %30
+                %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+                %33:i32 = load %32
+                %x_74:i32 = let %33
+                %35:bool = lt %x_72, %x_74
+                %36:bool = eq %35, false
+                break_if %36  # -> [t: exit_loop loop_3, f: $B11]
               }
             }
-            %34:f32 = load_vector_element %gl_FragCoord, 1u
-            %35:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-            %36:f32 = load %35
-            %37:bool = lt %34, %36
-            if %37 [t: %b14] {  # if_4
-              %b14 = block {  # true
+            %37:f32 = load_vector_element %gl_FragCoord, 1u
+            %38:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+            %39:f32 = load %38
+            %40:bool = lt %37, %39
+            if %40 [t: $B14] {  # if_4
+              $B14: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %38:i32 = load %j
-            %39:i32 = add %38, 1i
-            store %j, %39
-            next_iteration %b7
+          $B8: {  # continuing
+            %41:i32 = load %j
+            %42:i32 = add %41, 1i
+            store %j, %42
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %40:i32 = load %i
-        %41:i32 = add %40, 1i
-        store %i, %41
-        next_iteration %b3
+      $B4: {  # continuing
+        %43:i32 = load %i
+        %44:i32 = add %43, 1i
+        store %i, %44
+        next_iteration  # -> $B3
       }
     }
-    %42:i32 = load %a
-    %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %44:i32 = load %43
-    %45:bool = eq %42, %44
-    if %45 [t: %b15, f: %b16] {  # if_5
-      %b15 = block {  # true
-        %46:i32 = load %a
-        %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %49:i32 = load %48
+    %45:i32 = load %a
+    %46:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %47:i32 = load %46
+    %48:bool = eq %45, %47
+    if %48 [t: $B15, f: $B16] {  # if_5
+      $B15: {  # true
+        %49:i32 = load %a
         %50:f32 = convert %49
-        %51:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:i32 = load %a
-        %55:f32 = convert %54
-        %56:vec4<f32> = construct %47, %50, %53, %55
-        store %x_GLF_color, %56
+        %51:f32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %53:i32 = load %52
+        %54:f32 = convert %53
+        %55:f32 = let %54
+        %56:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %57:i32 = load %56
+        %58:f32 = convert %57
+        %59:f32 = let %58
+        %60:i32 = load %a
+        %61:f32 = convert %60
+        %62:vec4<f32> = construct %51, %55, %59, %61
+        store %x_GLF_color, %62
         exit_if  # if_5
       }
-      %b16 = block {  # false
-        %57:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %58:i32 = load %57
-        %59:f32 = convert %58
-        %60:vec4<f32> = construct %59
-        store %x_GLF_color, %60
+      $B16: {  # false
+        %63:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %64:i32 = load %63
+        %65:f32 = convert %64
+        %66:vec4<f32> = construct %65
+        store %x_GLF_color, %66
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+    %69:void = call %main_1
+    %70:vec4<f32> = load %x_GLF_color
+    %71:main_out = construct %70
+    %72:bool = load %continue_execution
+    %73:bool = eq %72, false
+    if %73 [t: $B18] {  # if_6
+      $B18: {  # true
+        terminate_invocation
+      }
+    }
+    ret %71
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.msl
index bef51b0..9acdf4d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for-for-do-while-if-if/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,147 +20,182 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
-    %9:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_36:i32 = load %9
+    %10:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %11:i32 = load %10
+    %x_36:i32 = let %11
     store %a, %x_36
-    %11:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-    %x_38:i32 = load %11
+    %13:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+    %14:i32 = load %13
+    %x_38:i32 = let %14
     store %i, %x_38
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_43:i32 = load %i
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_45:i32 = load %14
-        %16:bool = lt %x_43, %x_45
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %16:i32 = load %i
+        %x_43:i32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %19:i32 = load %18
+        %x_45:i32 = let %19
+        %21:bool = lt %x_43, %x_45
+        if %21 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %17:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_49:i32 = load %17
+        %22:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %23:i32 = load %22
+        %x_49:i32 = let %23
         store %j, %x_49
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_54:i32 = load %j
-            %20:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %x_56:i32 = load %20
-            %22:bool = lt %x_54, %x_56
-            if %22 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %25:i32 = load %j
+            %x_54:i32 = let %25
+            %27:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %28:i32 = load %27
+            %x_56:i32 = let %28
+            %30:bool = lt %x_54, %x_56
+            if %30 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %23:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-                %x_64:i32 = load %23
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %31:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+                %32:i32 = load %31
+                %x_64:i32 = let %32
                 store %a, %x_64
-                %x_66:f32 = load_vector_element %gl_FragCoord, 1u
-                %26:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-                %x_68:f32 = load %26
-                %28:bool = lt %x_66, %x_68
-                if %28 [t: %b13] {  # if_3
-                  %b13 = block {  # true
-                    discard
+                %34:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_66:f32 = let %34
+                %36:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+                %37:f32 = load %36
+                %x_68:f32 = let %37
+                %39:bool = lt %x_66, %x_68
+                if %39 [t: $B13] {  # if_3
+                  $B13: {  # true
+                    store %continue_execution, false
                     exit_if  # if_3
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_72:i32 = load %a
-                %30:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-                %x_74:i32 = load %30
-                %32:bool = lt %x_72, %x_74
-                %33:bool = eq %32, false
-                break_if %33 %b11
+              $B12: {  # continuing
+                %40:i32 = load %a
+                %x_72:i32 = let %40
+                %42:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+                %43:i32 = load %42
+                %x_74:i32 = let %43
+                %45:bool = lt %x_72, %x_74
+                %46:bool = eq %45, false
+                break_if %46  # -> [t: exit_loop loop_3, f: $B11]
               }
             }
-            %x_77:f32 = load_vector_element %gl_FragCoord, 1u
-            %35:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-            %x_79:f32 = load %35
-            %37:bool = lt %x_77, %x_79
-            if %37 [t: %b14] {  # if_4
-              %b14 = block {  # true
+            %47:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_77:f32 = let %47
+            %49:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+            %50:f32 = load %49
+            %x_79:f32 = let %50
+            %52:bool = lt %x_77, %x_79
+            if %52 [t: $B14] {  # if_4
+              $B14: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_83:i32 = load %j
-            %39:i32 = add %x_83, 1i
-            store %j, %39
-            next_iteration %b7
+          $B8: {  # continuing
+            %53:i32 = load %j
+            %x_83:i32 = let %53
+            %55:i32 = add %x_83, 1i
+            store %j, %55
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_85:i32 = load %i
-        %41:i32 = add %x_85, 1i
-        store %i, %41
-        next_iteration %b3
+      $B4: {  # continuing
+        %56:i32 = load %i
+        %x_85:i32 = let %56
+        %58:i32 = add %x_85, 1i
+        store %i, %58
+        next_iteration  # -> $B3
       }
     }
-    %x_87:i32 = load %a
-    %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_89:i32 = load %43
-    %45:bool = eq %x_87, %x_89
-    if %45 [t: %b15, f: %b16] {  # if_5
-      %b15 = block {  # true
-        %x_94:i32 = load %a
-        %47:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_97:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_100:i32 = load %49
-        %x_102:i32 = load %a
-        %52:f32 = convert %x_94
-        %53:f32 = convert %x_97
-        %54:f32 = convert %x_100
-        %55:f32 = convert %x_102
-        %56:vec4<f32> = construct %52, %53, %54, %55
-        store %x_GLF_color, %56
+    %59:i32 = load %a
+    %x_87:i32 = let %59
+    %61:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %62:i32 = load %61
+    %x_89:i32 = let %62
+    %64:bool = eq %x_87, %x_89
+    if %64 [t: $B15, f: $B16] {  # if_5
+      $B15: {  # true
+        %65:i32 = load %a
+        %x_94:i32 = let %65
+        %67:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %68:i32 = load %67
+        %x_97:i32 = let %68
+        %70:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %71:i32 = load %70
+        %x_100:i32 = let %71
+        %73:i32 = load %a
+        %x_102:i32 = let %73
+        %75:f32 = convert %x_94
+        %76:f32 = let %75
+        %77:f32 = convert %x_97
+        %78:f32 = let %77
+        %79:f32 = convert %x_100
+        %80:f32 = let %79
+        %81:f32 = convert %x_102
+        %82:vec4<f32> = construct %76, %78, %80, %81
+        store %x_GLF_color, %82
         exit_if  # if_5
       }
-      %b16 = block {  # false
-        %57:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_106:i32 = load %57
-        %x_107:f32 = convert %x_106
-        %60:vec4<f32> = construct %x_107, %x_107, %x_107, %x_107
-        store %x_GLF_color, %60
+      $B16: {  # false
+        %83:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %84:i32 = load %83
+        %x_106:i32 = let %84
+        %86:f32 = convert %x_106
+        %x_107:f32 = let %86
+        %88:vec4<f32> = construct %x_107, %x_107, %x_107, %x_107
+        store %x_GLF_color, %88
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    %94:bool = load %continue_execution
+    %95:bool = eq %94, false
+    if %95 [t: $B18] {  # if_6
+      $B18: {  # true
+        terminate_invocation
+      }
+    }
+    ret %93
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.msl
index 5a7f941..df3b414 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -51,187 +51,187 @@
     %23:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
     %24:i32 = load %23
     store %i, %24
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %25:i32 = load %i
         %26:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
         %27:i32 = load %26
         %28:bool = lt %25, %27
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %29:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
         %30:i32 = load %29
         store %i_1, %30
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %31:i32 = load %i_1
             %32:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
             %33:i32 = load %32
             %34:bool = lt %31, %33
-            if %34 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if %34 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
             %35:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
             %36:i32 = load %35
             store %i_2, %36
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
                 %37:i32 = load %i_2
                 %38:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                 %39:i32 = load %38
                 %40:bool = lt %37, %39
-                if %40 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+                if %40 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %41:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
                 %42:i32 = load %41
                 store %i_3, %42
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
                     %43:i32 = load %i_3
                     %44:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                     %45:i32 = load %44
                     %46:bool = lt %43, %45
-                    if %46 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                    if %46 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
                     %47:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
                     %48:i32 = load %47
                     store %i_4, %48
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
                         %49:i32 = load %i_4
                         %50:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                         %51:i32 = load %50
                         %52:bool = lt %49, %51
-                        if %52 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                        if %52 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
                         %53:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
                         %54:i32 = load %53
                         store %i_5, %54
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
                             %55:i32 = load %i_5
                             %56:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                             %57:i32 = load %56
                             %58:bool = lt %55, %57
-                            if %58 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                            if %58 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
                             %59:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
                             %60:i32 = load %59
                             store %i_6, %60
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
                                 %61:i32 = load %i_6
                                 %62:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                                 %63:i32 = load %62
                                 %64:bool = lt %61, %63
-                                if %64 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                                if %64 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B30: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
                                 %65:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
                                 %66:i32 = load %65
                                 store %i_7, %66
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
                                     %67:i32 = load %i_7
                                     %68:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                                     %69:i32 = load %68
                                     %70:bool = lt %67, %69
-                                    if %70 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                    if %70 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B34: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
                                     %71:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
                                     %72:i32 = load %71
                                     store %i_8, %72
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
                                         %73:i32 = load %i_8
                                         %74:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                                         %75:i32 = load %74
                                         %76:bool = lt %73, %75
-                                        if %76 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                        if %76 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B38: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
                                         %77:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
                                         %78:i32 = load %77
                                         store %i_9, %78
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
                                             %79:i32 = load %i_9
                                             %80:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                                             %81:i32 = load %80
                                             %82:bool = lt %79, %81
-                                            if %82 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                            if %82 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B42: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
                                             %83:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
                                             %84:i32 = load %83
                                             store %i_10, %84
-                                            loop [b: %b43, c: %b44] {  # loop_11
-                                              %b43 = block {  # body
+                                            loop [b: $B43, c: $B44] {  # loop_11
+                                              $B43: {  # body
                                                 %85:i32 = load %i_10
                                                 %86:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
                                                 %87:i32 = load %86
                                                 %88:bool = lt %85, %87
-                                                if %88 [t: %b45, f: %b46] {  # if_11
-                                                  %b45 = block {  # true
+                                                if %88 [t: $B45, f: $B46] {  # if_11
+                                                  $B45: {  # true
                                                     exit_if  # if_11
                                                   }
-                                                  %b46 = block {  # false
+                                                  $B46: {  # false
                                                     exit_loop  # loop_11
                                                   }
                                                 }
@@ -242,111 +242,111 @@
                                                 %92:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
                                                 %93:f32 = load %92
                                                 %94:bool = gt %91, %93
-                                                if %94 [t: %b47] {  # if_12
-                                                  %b47 = block {  # true
+                                                if %94 [t: $B47] {  # if_12
+                                                  $B47: {  # true
                                                     exit_loop  # loop_11
                                                   }
                                                 }
-                                                continue %b44
+                                                continue  # -> $B44
                                               }
-                                              %b44 = block {  # continuing
+                                              $B44: {  # continuing
                                                 %95:i32 = load %i_10
                                                 %96:i32 = add %95, 1i
                                                 store %i_10, %96
-                                                next_iteration %b43
+                                                next_iteration  # -> $B43
                                               }
                                             }
-                                            continue %b40
+                                            continue  # -> $B40
                                           }
-                                          %b40 = block {  # continuing
+                                          $B40: {  # continuing
                                             %97:i32 = load %i_9
                                             %98:i32 = add %97, 1i
                                             store %i_9, %98
-                                            next_iteration %b39
+                                            next_iteration  # -> $B39
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B36
                                       }
-                                      %b36 = block {  # continuing
+                                      $B36: {  # continuing
                                         %99:i32 = load %i_8
                                         %100:i32 = add %99, 1i
                                         store %i_8, %100
-                                        next_iteration %b35
+                                        next_iteration  # -> $B35
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B32
                                   }
-                                  %b32 = block {  # continuing
+                                  $B32: {  # continuing
                                     %101:i32 = load %i_7
                                     %102:i32 = add %101, 1i
                                     store %i_7, %102
-                                    next_iteration %b31
+                                    next_iteration  # -> $B31
                                   }
                                 }
-                                continue %b28
+                                continue  # -> $B28
                               }
-                              %b28 = block {  # continuing
+                              $B28: {  # continuing
                                 %103:i32 = load %i_6
                                 %104:i32 = add %103, 1i
                                 store %i_6, %104
-                                next_iteration %b27
+                                next_iteration  # -> $B27
                               }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
+                          $B24: {  # continuing
                             %105:i32 = load %i_5
                             %106:i32 = add %105, 1i
                             store %i_5, %106
-                            next_iteration %b23
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
+                      $B20: {  # continuing
                         %107:i32 = load %i_4
                         %108:i32 = add %107, 1i
                         store %i_4, %108
-                        next_iteration %b19
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
+                  $B16: {  # continuing
                     %109:i32 = load %i_3
                     %110:i32 = add %109, 1i
                     store %i_3, %110
-                    next_iteration %b15
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
+              $B12: {  # continuing
                 %111:i32 = load %i_2
                 %112:i32 = add %111, 1i
                 store %i_2, %112
-                next_iteration %b11
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
+          $B8: {  # continuing
             %113:i32 = load %i_1
             %114:i32 = add %113, 1i
             store %i_1, %114
-            next_iteration %b7
+            next_iteration  # -> $B7
           }
         }
         %115:f32 = load %b
         %116:f32 = add %115, 1.0f
         store %b, %116
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %117:i32 = load %i
         %118:i32 = add %117, 1i
         store %i, %118
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %119:f32 = load %b
@@ -358,8 +358,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b48 {
-  %b48 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B48: {
     store %gl_FragCoord, %gl_FragCoord_param
     %126:void = call %main_1
     %127:vec4<f32> = load %x_GLF_color
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.msl
index d8d7348..0b12333 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-optimize-phis-for/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -43,328 +43,382 @@
     %i_9:ptr<function, i32, read_write> = var
     %i_10:ptr<function, i32, read_write> = var
     %19:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_104:f32 = load %19
+    %20:f32 = load %19
+    %x_104:f32 = let %20
     store %a, %x_104
-    %21:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_106:f32 = load %21
+    %22:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %23:f32 = load %22
+    %x_106:f32 = let %23
     store %b, %x_106
-    %23:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-    %x_24:i32 = load %23
+    %25:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+    %26:i32 = load %25
+    %x_24:i32 = let %26
     store %i, %x_24
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_25:i32 = load %i
-        %26:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_26:i32 = load %26
-        %28:bool = lt %x_25, %x_26
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %28:i32 = load %i
+        %x_25:i32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %31:i32 = load %30
+        %x_26:i32 = let %31
+        %33:bool = lt %x_25, %x_26
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %29:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_27:i32 = load %29
+        %34:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %35:i32 = load %34
+        %x_27:i32 = let %35
         store %i_1, %x_27
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_28:i32 = load %i_1
-            %32:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-            %x_29:i32 = load %32
-            %34:bool = lt %x_28, %x_29
-            if %34 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %37:i32 = load %i_1
+            %x_28:i32 = let %37
+            %39:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+            %40:i32 = load %39
+            %x_29:i32 = let %40
+            %42:bool = lt %x_28, %x_29
+            if %42 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %35:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-            %x_30:i32 = load %35
+            %43:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+            %44:i32 = load %43
+            %x_30:i32 = let %44
             store %i_2, %x_30
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_31:i32 = load %i_2
-                %38:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                %x_32:i32 = load %38
-                %40:bool = lt %x_31, %x_32
-                if %40 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %46:i32 = load %i_2
+                %x_31:i32 = let %46
+                %48:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                %49:i32 = load %48
+                %x_32:i32 = let %49
+                %51:bool = lt %x_31, %x_32
+                if %51 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %41:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-                %x_33:i32 = load %41
+                %52:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+                %53:i32 = load %52
+                %x_33:i32 = let %53
                 store %i_3, %x_33
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %x_34:i32 = load %i_3
-                    %44:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                    %x_35:i32 = load %44
-                    %46:bool = lt %x_34, %x_35
-                    if %46 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %55:i32 = load %i_3
+                    %x_34:i32 = let %55
+                    %57:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                    %58:i32 = load %57
+                    %x_35:i32 = let %58
+                    %60:bool = lt %x_34, %x_35
+                    if %60 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %47:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
-                    %x_36:i32 = load %47
+                    %61:ptr<uniform, i32, read> = access %x_11, 0u, 2i, 0u
+                    %62:i32 = load %61
+                    %x_36:i32 = let %62
                     store %i_4, %x_36
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
-                        %x_37:i32 = load %i_4
-                        %50:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                        %x_38:i32 = load %50
-                        %52:bool = lt %x_37, %x_38
-                        if %52 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %64:i32 = load %i_4
+                        %x_37:i32 = let %64
+                        %66:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                        %67:i32 = load %66
+                        %x_38:i32 = let %67
+                        %69:bool = lt %x_37, %x_38
+                        if %69 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
-                        %53:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-                        %x_39:i32 = load %53
+                        %70:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+                        %71:i32 = load %70
+                        %x_39:i32 = let %71
                         store %i_5, %x_39
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
-                            %x_40:i32 = load %i_5
-                            %56:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                            %x_41:i32 = load %56
-                            %58:bool = lt %x_40, %x_41
-                            if %58 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %73:i32 = load %i_5
+                            %x_40:i32 = let %73
+                            %75:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                            %76:i32 = load %75
+                            %x_41:i32 = let %76
+                            %78:bool = lt %x_40, %x_41
+                            if %78 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
-                            %59:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-                            %x_42:i32 = load %59
+                            %79:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+                            %80:i32 = load %79
+                            %x_42:i32 = let %80
                             store %i_6, %x_42
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
-                                %x_43:i32 = load %i_6
-                                %62:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                                %x_44:i32 = load %62
-                                %64:bool = lt %x_43, %x_44
-                                if %64 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
+                                %82:i32 = load %i_6
+                                %x_43:i32 = let %82
+                                %84:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                                %85:i32 = load %84
+                                %x_44:i32 = let %85
+                                %87:bool = lt %x_43, %x_44
+                                if %87 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B30: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
-                                %65:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-                                %x_45:i32 = load %65
+                                %88:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+                                %89:i32 = load %88
+                                %x_45:i32 = let %89
                                 store %i_7, %x_45
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
-                                    %x_46:i32 = load %i_7
-                                    %68:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                                    %x_47:i32 = load %68
-                                    %70:bool = lt %x_46, %x_47
-                                    if %70 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
+                                    %91:i32 = load %i_7
+                                    %x_46:i32 = let %91
+                                    %93:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                                    %94:i32 = load %93
+                                    %x_47:i32 = let %94
+                                    %96:bool = lt %x_46, %x_47
+                                    if %96 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B34: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
-                                    %71:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-                                    %x_48:i32 = load %71
+                                    %97:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+                                    %98:i32 = load %97
+                                    %x_48:i32 = let %98
                                     store %i_8, %x_48
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
-                                        %x_49:i32 = load %i_8
-                                        %74:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                                        %x_50:i32 = load %74
-                                        %76:bool = lt %x_49, %x_50
-                                        if %76 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
+                                        %100:i32 = load %i_8
+                                        %x_49:i32 = let %100
+                                        %102:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                                        %103:i32 = load %102
+                                        %x_50:i32 = let %103
+                                        %105:bool = lt %x_49, %x_50
+                                        if %105 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B38: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
-                                        %77:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-                                        %x_51:i32 = load %77
+                                        %106:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+                                        %107:i32 = load %106
+                                        %x_51:i32 = let %107
                                         store %i_9, %x_51
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
-                                            %x_52:i32 = load %i_9
-                                            %80:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                                            %x_53:i32 = load %80
-                                            %82:bool = lt %x_52, %x_53
-                                            if %82 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
+                                            %109:i32 = load %i_9
+                                            %x_52:i32 = let %109
+                                            %111:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                                            %112:i32 = load %111
+                                            %x_53:i32 = let %112
+                                            %114:bool = lt %x_52, %x_53
+                                            if %114 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B42: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
-                                            %83:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-                                            %x_54:i32 = load %83
+                                            %115:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+                                            %116:i32 = load %115
+                                            %x_54:i32 = let %116
                                             store %i_10, %x_54
-                                            loop [b: %b43, c: %b44] {  # loop_11
-                                              %b43 = block {  # body
-                                                %x_55:i32 = load %i_10
-                                                %86:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-                                                %x_56:i32 = load %86
-                                                %88:bool = lt %x_55, %x_56
-                                                if %88 [t: %b45, f: %b46] {  # if_11
-                                                  %b45 = block {  # true
+                                            loop [b: $B43, c: $B44] {  # loop_11
+                                              $B43: {  # body
+                                                %118:i32 = load %i_10
+                                                %x_55:i32 = let %118
+                                                %120:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+                                                %121:i32 = load %120
+                                                %x_56:i32 = let %121
+                                                %123:bool = lt %x_55, %x_56
+                                                if %123 [t: $B45, f: $B46] {  # if_11
+                                                  $B45: {  # true
                                                     exit_if  # if_11
                                                   }
-                                                  %b46 = block {  # false
+                                                  $B46: {  # false
                                                     exit_loop  # loop_11
                                                   }
                                                 }
-                                                %89:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-                                                %x_196:f32 = load %89
+                                                %124:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+                                                %125:f32 = load %124
+                                                %x_196:f32 = let %125
                                                 store %a, %x_196
-                                                %x_198:f32 = load_vector_element %gl_FragCoord, 1u
-                                                %92:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-                                                %x_200:f32 = load %92
-                                                %94:bool = gt %x_198, %x_200
-                                                if %94 [t: %b47] {  # if_12
-                                                  %b47 = block {  # true
+                                                %127:f32 = load_vector_element %gl_FragCoord, 1u
+                                                %x_198:f32 = let %127
+                                                %129:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+                                                %130:f32 = load %129
+                                                %x_200:f32 = let %130
+                                                %132:bool = gt %x_198, %x_200
+                                                if %132 [t: $B47] {  # if_12
+                                                  $B47: {  # true
                                                     exit_loop  # loop_11
                                                   }
                                                 }
-                                                continue %b44
+                                                continue  # -> $B44
                                               }
-                                              %b44 = block {  # continuing
-                                                %x_57:i32 = load %i_10
-                                                %96:i32 = add %x_57, 1i
-                                                store %i_10, %96
-                                                next_iteration %b43
+                                              $B44: {  # continuing
+                                                %133:i32 = load %i_10
+                                                %x_57:i32 = let %133
+                                                %135:i32 = add %x_57, 1i
+                                                store %i_10, %135
+                                                next_iteration  # -> $B43
                                               }
                                             }
-                                            continue %b40
+                                            continue  # -> $B40
                                           }
-                                          %b40 = block {  # continuing
-                                            %x_59:i32 = load %i_9
-                                            %98:i32 = add %x_59, 1i
-                                            store %i_9, %98
-                                            next_iteration %b39
+                                          $B40: {  # continuing
+                                            %136:i32 = load %i_9
+                                            %x_59:i32 = let %136
+                                            %138:i32 = add %x_59, 1i
+                                            store %i_9, %138
+                                            next_iteration  # -> $B39
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B36
                                       }
-                                      %b36 = block {  # continuing
-                                        %x_61:i32 = load %i_8
-                                        %100:i32 = add %x_61, 1i
-                                        store %i_8, %100
-                                        next_iteration %b35
+                                      $B36: {  # continuing
+                                        %139:i32 = load %i_8
+                                        %x_61:i32 = let %139
+                                        %141:i32 = add %x_61, 1i
+                                        store %i_8, %141
+                                        next_iteration  # -> $B35
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B32
                                   }
-                                  %b32 = block {  # continuing
-                                    %x_63:i32 = load %i_7
-                                    %102:i32 = add %x_63, 1i
-                                    store %i_7, %102
-                                    next_iteration %b31
+                                  $B32: {  # continuing
+                                    %142:i32 = load %i_7
+                                    %x_63:i32 = let %142
+                                    %144:i32 = add %x_63, 1i
+                                    store %i_7, %144
+                                    next_iteration  # -> $B31
                                   }
                                 }
-                                continue %b28
+                                continue  # -> $B28
                               }
-                              %b28 = block {  # continuing
-                                %x_65:i32 = load %i_6
-                                %104:i32 = add %x_65, 1i
-                                store %i_6, %104
-                                next_iteration %b27
+                              $B28: {  # continuing
+                                %145:i32 = load %i_6
+                                %x_65:i32 = let %145
+                                %147:i32 = add %x_65, 1i
+                                store %i_6, %147
+                                next_iteration  # -> $B27
                               }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
-                            %x_67:i32 = load %i_5
-                            %106:i32 = add %x_67, 1i
-                            store %i_5, %106
-                            next_iteration %b23
+                          $B24: {  # continuing
+                            %148:i32 = load %i_5
+                            %x_67:i32 = let %148
+                            %150:i32 = add %x_67, 1i
+                            store %i_5, %150
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
-                        %x_69:i32 = load %i_4
-                        %108:i32 = add %x_69, 1i
-                        store %i_4, %108
-                        next_iteration %b19
+                      $B20: {  # continuing
+                        %151:i32 = load %i_4
+                        %x_69:i32 = let %151
+                        %153:i32 = add %x_69, 1i
+                        store %i_4, %153
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %x_71:i32 = load %i_3
-                    %110:i32 = add %x_71, 1i
-                    store %i_3, %110
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %154:i32 = load %i_3
+                    %x_71:i32 = let %154
+                    %156:i32 = add %x_71, 1i
+                    store %i_3, %156
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_73:i32 = load %i_2
-                %112:i32 = add %x_73, 1i
-                store %i_2, %112
-                next_iteration %b11
+              $B12: {  # continuing
+                %157:i32 = load %i_2
+                %x_73:i32 = let %157
+                %159:i32 = add %x_73, 1i
+                store %i_2, %159
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_75:i32 = load %i_1
-            %114:i32 = add %x_75, 1i
-            store %i_1, %114
-            next_iteration %b7
+          $B8: {  # continuing
+            %160:i32 = load %i_1
+            %x_75:i32 = let %160
+            %162:i32 = add %x_75, 1i
+            store %i_1, %162
+            next_iteration  # -> $B7
           }
         }
-        %x_204:f32 = load %b
-        %116:f32 = add %x_204, 1.0f
-        store %b, %116
-        continue %b4
+        %163:f32 = load %b
+        %x_204:f32 = let %163
+        %165:f32 = add %x_204, 1.0f
+        store %b, %165
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_77:i32 = load %i
-        %118:i32 = add %x_77, 1i
-        store %i, %118
-        next_iteration %b3
+      $B4: {  # continuing
+        %166:i32 = load %i
+        %x_77:i32 = let %166
+        %168:i32 = add %x_77, 1i
+        store %i, %168
+        next_iteration  # -> $B3
       }
     }
-    %x_206:f32 = load %b
-    %x_207:f32 = load %a
-    %x_208:f32 = load %a
-    %x_209:f32 = load %b
-    %123:vec4<f32> = construct %x_206, %x_207, %x_208, %x_209
-    store %x_GLF_color, %123
+    %169:f32 = load %b
+    %x_206:f32 = let %169
+    %171:f32 = load %a
+    %x_207:f32 = let %171
+    %173:f32 = load %a
+    %x_208:f32 = let %173
+    %175:f32 = load %b
+    %x_209:f32 = let %175
+    %177:vec4<f32> = construct %x_206, %x_207, %x_208, %x_209
+    store %x_GLF_color, %177
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b48 {
-  %b48 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B48: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %126:void = call %main_1
-    %127:vec4<f32> = load %x_GLF_color
-    %128:main_out = construct %127
-    ret %128
+    %180:void = call %main_1
+    %181:vec4<f32> = load %x_GLF_color
+    %182:main_out = construct %181
+    ret %182
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.msl
index dd9c0e8..c3f59bc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %values:ptr<function, vec4<f32>, read_write> = var
     %r:ptr<function, vec4<f32>, read_write> = var
@@ -70,108 +70,112 @@
     %41:f32 = abs %40
     %42:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
     %43:f32 = load %42
-    %x_70:bool = lt %41, %43
+    %44:bool = lt %41, %43
+    %x_70:bool = let %44
     store %x_86, %x_70
-    if %x_70 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %46:i32 = load %45
-        %47:f32 = load_vector_element %values, %46
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %49:i32 = load %48
-        %50:f32 = load_vector_element %r, %49
-        %51:f32 = sub %47, %50
-        %52:f32 = abs %51
-        %53:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %54:f32 = load %53
-        %55:bool = lt %52, %54
-        store %x_85, %55
-        %56:bool = load %x_85
-        store %x_86, %56
+    if %x_70 [t: $B3] {  # if_1
+      $B3: {  # true
+        %46:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %47:i32 = load %46
+        %48:f32 = load_vector_element %values, %47
+        %49:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %50:i32 = load %49
+        %51:f32 = load_vector_element %r, %50
+        %52:f32 = sub %48, %51
+        %53:f32 = abs %52
+        %54:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %55:f32 = load %54
+        %56:bool = lt %53, %55
+        store %x_85, %56
+        %57:bool = load %x_85
+        store %x_86, %57
         exit_if  # if_1
       }
     }
-    %57:bool = load %x_86
-    store %x_102, %57
     %58:bool = load %x_86
-    if %58 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %59:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %60:i32 = load %59
-        %61:f32 = load_vector_element %values, %60
-        %62:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %63:i32 = load %62
-        %64:f32 = load_vector_element %r, %63
-        %65:f32 = sub %61, %64
-        %66:f32 = abs %65
-        %67:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %68:f32 = load %67
-        %69:bool = lt %66, %68
-        store %x_101, %69
-        %70:bool = load %x_101
-        store %x_102, %70
+    store %x_102, %58
+    %59:bool = load %x_86
+    if %59 [t: $B4] {  # if_2
+      $B4: {  # true
+        %60:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %61:i32 = load %60
+        %62:f32 = load_vector_element %values, %61
+        %63:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %64:i32 = load %63
+        %65:f32 = load_vector_element %r, %64
+        %66:f32 = sub %62, %65
+        %67:f32 = abs %66
+        %68:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %69:f32 = load %68
+        %70:bool = lt %67, %69
+        store %x_101, %70
+        %71:bool = load %x_101
+        store %x_102, %71
         exit_if  # if_2
       }
     }
-    %71:bool = load %x_102
-    store %x_118, %71
     %72:bool = load %x_102
-    if %72 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %73:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %74:i32 = load %73
-        %75:f32 = load_vector_element %values, %74
-        %76:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %77:i32 = load %76
-        %78:f32 = load_vector_element %r, %77
-        %79:f32 = sub %75, %78
-        %80:f32 = abs %79
-        %81:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %82:f32 = load %81
-        %83:bool = lt %80, %82
-        store %x_117, %83
-        %84:bool = load %x_117
-        store %x_118, %84
+    store %x_118, %72
+    %73:bool = load %x_102
+    if %73 [t: $B5] {  # if_3
+      $B5: {  # true
+        %74:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %75:i32 = load %74
+        %76:f32 = load_vector_element %values, %75
+        %77:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %78:i32 = load %77
+        %79:f32 = load_vector_element %r, %78
+        %80:f32 = sub %76, %79
+        %81:f32 = abs %80
+        %82:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %83:f32 = load %82
+        %84:bool = lt %81, %83
+        store %x_117, %84
+        %85:bool = load %x_117
+        store %x_118, %85
         exit_if  # if_3
       }
     }
-    %85:bool = load %x_118
-    if %85 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %86:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %87:i32 = load %86
-        %88:f32 = convert %87
-        %89:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %90:i32 = load %89
-        %91:f32 = convert %90
-        %92:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %93:i32 = load %92
-        %94:f32 = convert %93
-        %95:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %86:bool = load %x_118
+    if %86 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %87:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %88:i32 = load %87
+        %89:f32 = convert %88
+        %90:f32 = let %89
+        %91:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %92:i32 = load %91
+        %93:f32 = convert %92
+        %94:f32 = let %93
+        %95:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %96:i32 = load %95
         %97:f32 = convert %96
-        %98:vec4<f32> = construct %88, %91, %94, %97
-        store %x_GLF_color, %98
-        exit_if  # if_4
-      }
-      %b7 = block {  # false
-        %99:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %98:f32 = let %97
+        %99:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %100:i32 = load %99
         %101:f32 = convert %100
-        %102:vec4<f32> = construct %101
+        %102:vec4<f32> = construct %90, %94, %98, %101
         store %x_GLF_color, %102
         exit_if  # if_4
       }
+      $B7: {  # false
+        %103:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %104:i32 = load %103
+        %105:f32 = convert %104
+        %106:vec4<f32> = construct %105
+        store %x_GLF_color, %106
+        exit_if  # if_4
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %104:void = call %main_1
-    %105:vec4<f32> = load %x_GLF_color
-    %106:main_out = construct %105
-    ret %106
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %108:void = call %main_1
+    %109:vec4<f32> = load %x_GLF_color
+    %110:main_out = construct %109
+    ret %110
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.msl
index e2408a5..89e9278 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-packhalf-unpackunorm/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_10:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %values:ptr<function, vec4<f32>, read_write> = var
     %r:ptr<function, vec4<f32>, read_write> = var
@@ -38,138 +38,179 @@
     %x_102_phi:ptr<function, bool, read_write> = var
     %x_118_phi:ptr<function, bool, read_write> = var
     store %a, 1006648320u
-    %x_38:u32 = load %a
-    %15:vec4<f32> = unpack4x8unorm %x_38
-    store %values, %15
-    %16:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
-    %x_41:f32 = load %16
-    %18:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_43:f32 = load %18
-    %20:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_45:f32 = load %20
-    %22:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
-    %x_48:f32 = load %22
-    %24:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_50:f32 = load %24
-    %26:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_53:f32 = load %26
-    %28:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_55:f32 = load %28
-    %30:f32 = div %x_43, %x_45
-    %31:f32 = div %x_48, %x_50
-    %32:f32 = div %x_53, %x_55
-    %33:vec4<f32> = construct %x_41, %30, %31, %32
-    store %r, %33
-    %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_59:i32 = load %34
-    %x_61:f32 = load_vector_element %values, %x_59
-    %37:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_63:i32 = load %37
-    %x_65:f32 = load_vector_element %r, %x_63
-    %40:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-    %x_69:f32 = load %40
-    %42:f32 = sub %x_61, %x_65
-    %43:f32 = abs %42
-    %x_70:bool = lt %43, %x_69
+    %14:u32 = load %a
+    %x_38:u32 = let %14
+    %16:vec4<f32> = unpack4x8unorm %x_38
+    store %values, %16
+    %17:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
+    %18:f32 = load %17
+    %x_41:f32 = let %18
+    %20:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %21:f32 = load %20
+    %x_43:f32 = let %21
+    %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %24:f32 = load %23
+    %x_45:f32 = let %24
+    %26:ptr<uniform, f32, read> = access %x_8, 0u, 3i, 0u
+    %27:f32 = load %26
+    %x_48:f32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %30:f32 = load %29
+    %x_50:f32 = let %30
+    %32:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %33:f32 = load %32
+    %x_53:f32 = let %33
+    %35:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %36:f32 = load %35
+    %x_55:f32 = let %36
+    %38:f32 = div %x_43, %x_45
+    %39:f32 = div %x_48, %x_50
+    %40:f32 = div %x_53, %x_55
+    %41:vec4<f32> = construct %x_41, %38, %39, %40
+    store %r, %41
+    %42:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %43:i32 = load %42
+    %x_59:i32 = let %43
+    %45:f32 = load_vector_element %values, %x_59
+    %x_61:f32 = let %45
+    %47:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %48:i32 = load %47
+    %x_63:i32 = let %48
+    %50:f32 = load_vector_element %r, %x_63
+    %x_65:f32 = let %50
+    %52:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+    %53:f32 = load %52
+    %x_69:f32 = let %53
+    %55:f32 = sub %x_61, %x_65
+    %56:f32 = abs %55
+    %57:bool = lt %56, %x_69
+    %x_70:bool = let %57
     store %x_86_phi, %x_70
-    if %x_70 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_74:i32 = load %45
-        %x_76:f32 = load_vector_element %values, %x_74
-        %48:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_78:i32 = load %48
-        %x_80:f32 = load_vector_element %r, %x_78
-        %51:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_84:f32 = load %51
-        %53:f32 = sub %x_76, %x_80
-        %54:f32 = abs %53
-        %55:bool = lt %54, %x_84
-        store %x_85, %55
-        %56:bool = load %x_85
-        store %x_86_phi, %56
+    if %x_70 [t: $B3] {  # if_1
+      $B3: {  # true
+        %59:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %60:i32 = load %59
+        %x_74:i32 = let %60
+        %62:f32 = load_vector_element %values, %x_74
+        %x_76:f32 = let %62
+        %64:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %65:i32 = load %64
+        %x_78:i32 = let %65
+        %67:f32 = load_vector_element %r, %x_78
+        %x_80:f32 = let %67
+        %69:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %70:f32 = load %69
+        %x_84:f32 = let %70
+        %72:f32 = sub %x_76, %x_80
+        %73:f32 = abs %72
+        %74:bool = lt %73, %x_84
+        store %x_85, %74
+        %75:bool = load %x_85
+        store %x_86_phi, %75
         exit_if  # if_1
       }
     }
-    %x_86:bool = load %x_86_phi
+    %76:bool = load %x_86_phi
+    %x_86:bool = let %76
     store %x_102_phi, %x_86
-    if %x_86 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %58:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_90:i32 = load %58
-        %x_92:f32 = load_vector_element %values, %x_90
-        %61:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_94:i32 = load %61
-        %x_96:f32 = load_vector_element %r, %x_94
-        %64:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_100:f32 = load %64
-        %66:f32 = sub %x_92, %x_96
-        %67:f32 = abs %66
-        %68:bool = lt %67, %x_100
-        store %x_101, %68
-        %69:bool = load %x_101
-        store %x_102_phi, %69
+    if %x_86 [t: $B4] {  # if_2
+      $B4: {  # true
+        %78:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %79:i32 = load %78
+        %x_90:i32 = let %79
+        %81:f32 = load_vector_element %values, %x_90
+        %x_92:f32 = let %81
+        %83:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %84:i32 = load %83
+        %x_94:i32 = let %84
+        %86:f32 = load_vector_element %r, %x_94
+        %x_96:f32 = let %86
+        %88:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %89:f32 = load %88
+        %x_100:f32 = let %89
+        %91:f32 = sub %x_92, %x_96
+        %92:f32 = abs %91
+        %93:bool = lt %92, %x_100
+        store %x_101, %93
+        %94:bool = load %x_101
+        store %x_102_phi, %94
         exit_if  # if_2
       }
     }
-    %x_102:bool = load %x_102_phi
+    %95:bool = load %x_102_phi
+    %x_102:bool = let %95
     store %x_118_phi, %x_102
-    if %x_102 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %71:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_106:i32 = load %71
-        %x_108:f32 = load_vector_element %values, %x_106
-        %74:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_110:i32 = load %74
-        %x_112:f32 = load_vector_element %r, %x_110
-        %77:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-        %x_116:f32 = load %77
-        %79:f32 = sub %x_108, %x_112
-        %80:f32 = abs %79
-        %81:bool = lt %80, %x_116
-        store %x_117, %81
-        %82:bool = load %x_117
-        store %x_118_phi, %82
+    if %x_102 [t: $B5] {  # if_3
+      $B5: {  # true
+        %97:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %98:i32 = load %97
+        %x_106:i32 = let %98
+        %100:f32 = load_vector_element %values, %x_106
+        %x_108:f32 = let %100
+        %102:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %103:i32 = load %102
+        %x_110:i32 = let %103
+        %105:f32 = load_vector_element %r, %x_110
+        %x_112:f32 = let %105
+        %107:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+        %108:f32 = load %107
+        %x_116:f32 = let %108
+        %110:f32 = sub %x_108, %x_112
+        %111:f32 = abs %110
+        %112:bool = lt %111, %x_116
+        store %x_117, %112
+        %113:bool = load %x_117
+        store %x_118_phi, %113
         exit_if  # if_3
       }
     }
-    %x_118:bool = load %x_118_phi
-    if %x_118 [t: %b6, f: %b7] {  # if_4
-      %b6 = block {  # true
-        %84:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_123:i32 = load %84
-        %86:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_126:i32 = load %86
-        %88:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_129:i32 = load %88
-        %90:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_132:i32 = load %90
-        %92:f32 = convert %x_123
-        %93:f32 = convert %x_126
-        %94:f32 = convert %x_129
-        %95:f32 = convert %x_132
-        %96:vec4<f32> = construct %92, %93, %94, %95
-        store %x_GLF_color, %96
+    %114:bool = load %x_118_phi
+    %x_118:bool = let %114
+    if %x_118 [t: $B6, f: $B7] {  # if_4
+      $B6: {  # true
+        %116:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %117:i32 = load %116
+        %x_123:i32 = let %117
+        %119:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %120:i32 = load %119
+        %x_126:i32 = let %120
+        %122:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %123:i32 = load %122
+        %x_129:i32 = let %123
+        %125:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %126:i32 = load %125
+        %x_132:i32 = let %126
+        %128:f32 = convert %x_123
+        %129:f32 = let %128
+        %130:f32 = convert %x_126
+        %131:f32 = let %130
+        %132:f32 = convert %x_129
+        %133:f32 = let %132
+        %134:f32 = convert %x_132
+        %135:vec4<f32> = construct %129, %131, %133, %134
+        store %x_GLF_color, %135
         exit_if  # if_4
       }
-      %b7 = block {  # false
-        %97:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_136:i32 = load %97
-        %x_137:f32 = convert %x_136
-        %100:vec4<f32> = construct %x_137, %x_137, %x_137, %x_137
-        store %x_GLF_color, %100
+      $B7: {  # false
+        %136:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %137:i32 = load %136
+        %x_136:i32 = let %137
+        %139:f32 = convert %x_136
+        %x_137:f32 = let %139
+        %141:vec4<f32> = construct %x_137, %x_137, %x_137, %x_137
+        store %x_GLF_color, %141
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %102:void = call %main_1
-    %103:vec4<f32> = load %x_GLF_color
-    %104:main_out = construct %103
-    ret %104
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %143:void = call %main_1
+    %144:vec4<f32> = load %x_GLF_color
+    %145:main_out = construct %144
+    ret %145
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.msl
index 0f4e8a3..895d9f1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,39 +8,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %5:ptr<uniform, i32, read> = access %x_7, 0u
     %6:i32 = load %5
     %7:bool = eq %6, 1i
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_39:i32 = load %x
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        %8:i32 = load %x
+        %x_39:i32 = let %8
         ret %x_39
       }
     }
-    %9:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_41:i32 = load %9
+    %10:ptr<uniform, i32, read> = access %x_7, 0u
+    %11:i32 = load %10
+    %x_41:i32 = let %11
     ret %x_41
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %param:ptr<function, i32, read_write> = var
     store %param, -1i
-    %x_28:i32 = call %func_i1_, %param
-    %14:bool = lte %x_28, 0i
-    if %14 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %15:i32 = call %func_i1_, %param
+    %x_28:i32 = let %15
+    %17:bool = lte %x_28, 0i
+    if %17 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -48,12 +51,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.msl
index 5467112..b5c5330 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-signum/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,39 +8,43 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_i1_ = func(%x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %5:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_35:i32 = load %5
-    %7:bool = eq %x_35, 1i
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_39:i32 = load %x
+    %6:i32 = load %5
+    %x_35:i32 = let %6
+    %8:bool = eq %x_35, 1i
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        %9:i32 = load %x
+        %x_39:i32 = let %9
         ret %x_39
       }
     }
-    %9:ptr<uniform, i32, read> = access %x_7, 0u
-    %x_41:i32 = load %9
+    %11:ptr<uniform, i32, read> = access %x_7, 0u
+    %12:i32 = load %11
+    %x_41:i32 = let %12
     ret %x_41
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %param:ptr<function, i32, read_write> = var
     store %param, -1i
-    %x_28:i32 = call %func_i1_, %param
-    %14:bool = lte %x_28, 0i
-    if %14 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %16:i32 = call %func_i1_, %param
+    %x_28:i32 = let %16
+    %18:bool = lte %x_28, 0i
+    if %18 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -48,12 +52,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.msl
index 91cbeee..c3b2d4e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:i32 @offset(0)
 }
 
@@ -8,24 +8,24 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
     %5:i32 = load %4
     %6:i32 = and 2i, %5
-    %7:i32 = div 10i, %6
-    %8:bool = eq %7, 5i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:i32 = call %tint_div_i32, 10i, %6
+    %9:bool = eq %7, 5i
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +33,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %11:void = call %main_1
+    %12:vec4<f32> = load %x_GLF_color
+    %13:main_out = construct %12
+    ret %13
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %16:bool = eq %rhs, 0i
+    %17:bool = eq %lhs, -2147483648i
+    %18:bool = eq %rhs, -1i
+    %19:bool = and %17, %18
+    %20:bool = or %16, %19
+    %21:i32 = select %rhs, 1i, %20
+    %22:i32 = div %lhs, %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.msl
index 0fe4397..b6f3050 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pattern-match-single-bit/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:i32 @offset(0)
 }
 
@@ -8,24 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_25:i32 = load %4
-    %6:i32 = and 2i, %x_25
-    %7:i32 = div 10i, %6
-    %8:bool = eq %7, 5i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %5:i32 = load %4
+    %x_25:i32 = let %5
+    %7:i32 = and 2i, %x_25
+    %8:i32 = call %tint_div_i32, 10i, %7
+    %10:bool = eq %8, 5i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -33,12 +34,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %10:void = call %main_1
-    %11:vec4<f32> = load %x_GLF_color
-    %12:main_out = construct %11
-    ret %12
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %17:bool = eq %rhs, 0i
+    %18:bool = eq %lhs, -2147483648i
+    %19:bool = eq %rhs, -1i
+    %20:bool = and %18, %19
+    %21:bool = or %17, %20
+    %22:i32 = select %rhs, 1i, %21
+    %23:i32 = div %lhs, %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.msl
index d520a12..ec920ce 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,119 +20,130 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %8:i32 = load %7
-    %9:f32 = convert %8
-    %10:vec4<f32> = construct %9
-    store %x_GLF_color, %10
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %12:i32 = load %11
-    store %i, %12
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %13:i32 = load %i
-        %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %15:i32 = load %14
-        %16:bool = lt %13, %15
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %9:i32 = load %8
+    %10:f32 = convert %9
+    %11:vec4<f32> = construct %10
+    store %x_GLF_color, %11
+    %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %13:i32 = load %12
+    store %i, %13
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %14:i32 = load %i
+        %15:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %16:i32 = load %15
+        %17:bool = lt %14, %16
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %17:f32 = load_vector_element %gl_FragCoord, 1u
-        %18:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %19:f32 = load %18
-        %20:bool = lt %17, %19
-        if %20 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %21:f32 = load_vector_element %gl_FragCoord, 0u
-            %22:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-            %23:f32 = load %22
-            %24:bool = lt %21, %23
-            if %24 [t: %b8] {  # if_3
-              %b8 = block {  # true
+        %18:f32 = load_vector_element %gl_FragCoord, 1u
+        %19:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %20:f32 = load %19
+        %21:bool = lt %18, %20
+        if %21 [t: $B7] {  # if_2
+          $B7: {  # true
+            %22:f32 = load_vector_element %gl_FragCoord, 0u
+            %23:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+            %24:f32 = load %23
+            %25:bool = lt %22, %24
+            if %25 [t: $B8] {  # if_3
+              $B8: {  # true
                 ret
               }
             }
-            %25:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-            %26:f32 = load %25
-            %27:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-            %28:f32 = load %27
-            %29:bool = gt %26, %28
-            if %29 [t: %b9] {  # if_4
-              %b9 = block {  # true
+            %26:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+            %27:f32 = load %26
+            %28:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+            %29:f32 = load %28
+            %30:bool = gt %27, %29
+            if %30 [t: $B9] {  # if_4
+              $B9: {  # true
                 ret
               }
             }
-            discard
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %30:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %31:f32 = load %30
-        %32:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %33:f32 = load %32
-        %34:bool = gt %31, %33
-        if %34 [t: %b10] {  # if_5
-          %b10 = block {  # true
-            %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %36:i32 = load %35
-            %37:f32 = convert %36
-            %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %39:i32 = load %38
-            %40:f32 = convert %39
-            %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %42:i32 = load %41
-            %43:f32 = convert %42
-            %44:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %31:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %32:f32 = load %31
+        %33:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %34:f32 = load %33
+        %35:bool = gt %32, %34
+        if %35 [t: $B10] {  # if_5
+          $B10: {  # true
+            %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %37:i32 = load %36
+            %38:f32 = convert %37
+            %39:f32 = let %38
+            %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %41:i32 = load %40
+            %42:f32 = convert %41
+            %43:f32 = let %42
+            %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
             %45:i32 = load %44
             %46:f32 = convert %45
-            %47:vec4<f32> = construct %37, %40, %43, %46
-            store %x_GLF_color, %47
+            %47:f32 = let %46
+            %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %49:i32 = load %48
+            %50:f32 = convert %49
+            %51:vec4<f32> = construct %39, %43, %47, %50
+            store %x_GLF_color, %51
             exit_loop  # loop_1
           }
         }
-        %48:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %49:f32 = load %48
-        %50:bool = lt %49, 0.0f
-        if %50 [t: %b11] {  # if_6
-          %b11 = block {  # true
-            discard
+        %52:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %53:f32 = load %52
+        %54:bool = lt %53, 0.0f
+        if %54 [t: $B11] {  # if_6
+          $B11: {  # true
+            store %continue_execution, false
             exit_if  # if_6
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %51:i32 = load %i
-        %52:i32 = add %51, 1i
-        store %i, %52
-        next_iteration %b3
+      $B4: {  # continuing
+        %55:i32 = load %i
+        %56:i32 = add %55, 1i
+        store %i, %56
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %55:void = call %main_1
-    %56:vec4<f32> = load %x_GLF_color
-    %57:main_out = construct %56
-    ret %57
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    %62:bool = load %continue_execution
+    %63:bool = eq %62, false
+    if %63 [t: $B13] {  # if_7
+      $B13: {  # true
+        terminate_invocation
+      }
+    }
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.msl
index 50035ac..3c7bb0e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-peephole-optimizer-target-instr-info-for-if-if-if/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,119 +20,149 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_37:i32 = load %7
-    %x_38:f32 = convert %x_37
-    %10:vec4<f32> = construct %x_38, %x_38, %x_38, %x_38
-    store %x_GLF_color, %10
-    %11:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_41:i32 = load %11
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %9:i32 = load %8
+    %x_37:i32 = let %9
+    %11:f32 = convert %x_37
+    %x_38:f32 = let %11
+    %13:vec4<f32> = construct %x_38, %x_38, %x_38, %x_38
+    store %x_GLF_color, %13
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_41:i32 = let %15
     store %i, %x_41
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_46:i32 = load %i
-        %14:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_48:i32 = load %14
-        %16:bool = lt %x_46, %x_48
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %17:i32 = load %i
+        %x_46:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %20:i32 = load %19
+        %x_48:i32 = let %20
+        %22:bool = lt %x_46, %x_48
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_52:f32 = load_vector_element %gl_FragCoord, 1u
-        %18:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %x_54:f32 = load %18
-        %20:bool = lt %x_52, %x_54
-        if %20 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_59:f32 = load_vector_element %gl_FragCoord, 0u
-            %22:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-            %x_61:f32 = load %22
-            %24:bool = lt %x_59, %x_61
-            if %24 [t: %b8] {  # if_3
-              %b8 = block {  # true
+        %23:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_52:f32 = let %23
+        %25:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %26:f32 = load %25
+        %x_54:f32 = let %26
+        %28:bool = lt %x_52, %x_54
+        if %28 [t: $B7] {  # if_2
+          $B7: {  # true
+            %29:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_59:f32 = let %29
+            %31:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+            %32:f32 = load %31
+            %x_61:f32 = let %32
+            %34:bool = lt %x_59, %x_61
+            if %34 [t: $B8] {  # if_3
+              $B8: {  # true
                 ret
               }
             }
-            %25:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-            %x_66:f32 = load %25
-            %27:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-            %x_68:f32 = load %27
-            %29:bool = gt %x_66, %x_68
-            if %29 [t: %b9] {  # if_4
-              %b9 = block {  # true
+            %35:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+            %36:f32 = load %35
+            %x_66:f32 = let %36
+            %38:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+            %39:f32 = load %38
+            %x_68:f32 = let %39
+            %41:bool = gt %x_66, %x_68
+            if %41 [t: $B9] {  # if_4
+              $B9: {  # true
                 ret
               }
             }
-            discard
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %30:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %x_73:f32 = load %30
-        %32:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %x_75:f32 = load %32
-        %34:bool = gt %x_73, %x_75
-        if %34 [t: %b10] {  # if_5
-          %b10 = block {  # true
-            %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_80:i32 = load %35
-            %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_83:i32 = load %37
-            %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-            %x_86:i32 = load %39
-            %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_89:i32 = load %41
-            %43:f32 = convert %x_80
-            %44:f32 = convert %x_83
-            %45:f32 = convert %x_86
-            %46:f32 = convert %x_89
-            %47:vec4<f32> = construct %43, %44, %45, %46
-            store %x_GLF_color, %47
+        %42:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %43:f32 = load %42
+        %x_73:f32 = let %43
+        %45:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %46:f32 = load %45
+        %x_75:f32 = let %46
+        %48:bool = gt %x_73, %x_75
+        if %48 [t: $B10] {  # if_5
+          $B10: {  # true
+            %49:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %50:i32 = load %49
+            %x_80:i32 = let %50
+            %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %53:i32 = load %52
+            %x_83:i32 = let %53
+            %55:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+            %56:i32 = load %55
+            %x_86:i32 = let %56
+            %58:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %59:i32 = load %58
+            %x_89:i32 = let %59
+            %61:f32 = convert %x_80
+            %62:f32 = let %61
+            %63:f32 = convert %x_83
+            %64:f32 = let %63
+            %65:f32 = convert %x_86
+            %66:f32 = let %65
+            %67:f32 = convert %x_89
+            %68:vec4<f32> = construct %62, %64, %66, %67
+            store %x_GLF_color, %68
             exit_loop  # loop_1
           }
         }
-        %48:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %x_93:f32 = load %48
-        %50:bool = lt %x_93, 0.0f
-        if %50 [t: %b11] {  # if_6
-          %b11 = block {  # true
-            discard
+        %69:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %70:f32 = load %69
+        %x_93:f32 = let %70
+        %72:bool = lt %x_93, 0.0f
+        if %72 [t: $B11] {  # if_6
+          $B11: {  # true
+            store %continue_execution, false
             exit_if  # if_6
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_97:i32 = load %i
-        %52:i32 = add %x_97, 1i
-        store %i, %52
-        next_iteration %b3
+      $B4: {  # continuing
+        %73:i32 = load %i
+        %x_97:i32 = let %73
+        %75:i32 = add %x_97, 1i
+        store %i, %75
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %55:void = call %main_1
-    %56:vec4<f32> = load %x_GLF_color
-    %57:main_out = construct %56
-    ret %57
+    %78:void = call %main_1
+    %79:vec4<f32> = load %x_GLF_color
+    %80:main_out = construct %79
+    %81:bool = load %continue_execution
+    %82:bool = eq %81, false
+    if %82 [t: $B13] {  # if_7
+      $B13: {  # true
+        terminate_invocation
+      }
+    }
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.msl
index 178a545..a523119 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,15 +24,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_13:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f0:ptr<function, f32, read_write> = var
     %f1:ptr<function, f32, read_write> = var
     %f2:ptr<function, f32, read_write> = var
@@ -42,67 +42,82 @@
     store %f0, %11
     %12:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
     %13:f32 = load %12
-    %14:f32 = load %f0
-    %15:f32 = pow %14, 4.0f
-    %16:f32 = mul %13, %15
-    store %f1, %16
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %18:f32 = load %17
-    %19:f32 = load %f0
-    %20:f32 = pow %19, 4.0f
-    %21:f32 = mul %18, %20
-    store %f2, %21
-    %22:f32 = load %f1
-    %23:f32 = load %f2
-    %24:f32 = sub %22, %23
-    %25:ptr<uniform, f32, read> = access %x_11, 0u
-    %26:f32 = load %25
-    %27:f32 = sub %24, %26
-    %28:f32 = load %f0
-    %29:f32 = add %27, %28
-    %30:f32 = sqrt %29
-    store %f3, %30
-    %31:f32 = load %f3
-    %32:i32 = convert %31
-    %33:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-    %34:i32 = load %33
-    %35:bool = eq %32, %34
-    if %35 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+    %14:f32 = let %13
+    %15:f32 = load %f0
+    %16:f32 = pow %15, 4.0f
+    %17:f32 = mul %14, %16
+    store %f1, %17
+    %18:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %19:f32 = load %18
+    %20:f32 = let %19
+    %21:f32 = load %f0
+    %22:f32 = pow %21, 4.0f
+    %23:f32 = mul %20, %22
+    store %f2, %23
+    %24:f32 = load %f1
+    %25:f32 = load %f2
+    %26:f32 = sub %24, %25
+    %27:ptr<uniform, f32, read> = access %x_11, 0u
+    %28:f32 = load %27
+    %29:f32 = sub %26, %28
+    %30:f32 = load %f0
+    %31:f32 = add %29, %30
+    %32:f32 = sqrt %31
+    store %f3, %32
+    %33:f32 = load %f3
+    %34:i32 = call %tint_f32_to_i32, %33
+    %36:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+    %37:i32 = load %36
+    %38:bool = eq %34, %37
+    if %38 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %39:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
         %40:i32 = load %39
         %41:f32 = convert %40
-        %42:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-        %43:i32 = load %42
-        %44:f32 = convert %43
-        %45:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:vec4<f32> = construct %38, %41, %44, %47
-        store %x_GLF_color, %48
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+        %48:i32 = load %47
+        %49:f32 = convert %48
+        %50:f32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:vec4<f32> = construct %42, %46, %50, %53
+        store %x_GLF_color, %54
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-        %50:i32 = load %49
-        %51:f32 = convert %50
-        %52:vec4<f32> = construct %51
-        store %x_GLF_color, %52
+      $B4: {  # false
+        %55:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+        %56:i32 = load %55
+        %57:f32 = convert %56
+        %58:vec4<f32> = construct %57
+        store %x_GLF_color, %58
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %64:i32 = convert %value
+    %65:bool = gte %value, -2147483648.0f
+    %66:i32 = select -2147483648i, %64, %65
+    %67:bool = lte %value, 2147483520.0f
+    %68:i32 = select 2147483647i, %66, %67
+    ret %68
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.msl
index 40e79a0..d6041b2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-identical-value-sqrt/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,85 +24,115 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_13:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f0:ptr<function, f32, read_write> = var
     %f1:ptr<function, f32, read_write> = var
     %f2:ptr<function, f32, read_write> = var
     %f3:ptr<function, f32, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:f32 = load %10
+    %11:f32 = load %10
+    %x_36:f32 = let %11
     store %f0, %x_36
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_38:f32 = load %12
-    %x_39:f32 = load %f0
-    %15:f32 = pow %x_39, 4.0f
-    %16:f32 = mul %x_38, %15
-    store %f1, %16
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_43:f32 = load %17
-    %x_44:f32 = load %f0
-    %20:f32 = pow %x_44, 4.0f
-    %21:f32 = mul %x_43, %20
-    store %f2, %21
-    %x_47:f32 = load %f1
-    %x_48:f32 = load %f2
-    %24:ptr<uniform, f32, read> = access %x_11, 0u
-    %x_51:f32 = load %24
-    %x_53:f32 = load %f0
-    %27:f32 = sub %x_47, %x_48
-    %28:f32 = sub %27, %x_51
-    %29:f32 = add %28, %x_53
-    %30:f32 = sqrt %29
-    store %f3, %30
-    %x_56:f32 = load %f3
-    %32:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-    %x_59:i32 = load %32
-    %34:i32 = convert %x_56
-    %35:bool = eq %34, %x_59
-    if %35 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %36:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-        %x_65:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-        %x_68:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-        %x_71:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
-        %x_74:i32 = load %42
-        %44:f32 = convert %x_65
-        %45:f32 = convert %x_68
-        %46:f32 = convert %x_71
-        %47:f32 = convert %x_74
-        %48:vec4<f32> = construct %44, %45, %46, %47
-        store %x_GLF_color, %48
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %14:f32 = load %13
+    %x_38:f32 = let %14
+    %16:f32 = load %f0
+    %x_39:f32 = let %16
+    %18:f32 = pow %x_39, 4.0f
+    %19:f32 = mul %x_38, %18
+    store %f1, %19
+    %20:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %21:f32 = load %20
+    %x_43:f32 = let %21
+    %23:f32 = load %f0
+    %x_44:f32 = let %23
+    %25:f32 = pow %x_44, 4.0f
+    %26:f32 = mul %x_43, %25
+    store %f2, %26
+    %27:f32 = load %f1
+    %x_47:f32 = let %27
+    %29:f32 = load %f2
+    %x_48:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_11, 0u
+    %32:f32 = load %31
+    %x_51:f32 = let %32
+    %34:f32 = load %f0
+    %x_53:f32 = let %34
+    %36:f32 = sub %x_47, %x_48
+    %37:f32 = sub %36, %x_51
+    %38:f32 = add %37, %x_53
+    %39:f32 = sqrt %38
+    store %f3, %39
+    %40:f32 = load %f3
+    %x_56:f32 = let %40
+    %42:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+    %43:i32 = load %42
+    %x_59:i32 = let %43
+    %45:i32 = call %tint_f32_to_i32, %x_56
+    %47:bool = eq %45, %x_59
+    if %47 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %48:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+        %49:i32 = load %48
+        %x_65:i32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+        %52:i32 = load %51
+        %x_68:i32 = let %52
+        %54:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+        %55:i32 = load %54
+        %x_71:i32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_13, 0u, 0i, 0u
+        %58:i32 = load %57
+        %x_74:i32 = let %58
+        %60:f32 = convert %x_65
+        %61:f32 = let %60
+        %62:f32 = convert %x_68
+        %63:f32 = let %62
+        %64:f32 = convert %x_71
+        %65:f32 = let %64
+        %66:f32 = convert %x_74
+        %67:vec4<f32> = construct %61, %63, %65, %66
+        store %x_GLF_color, %67
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %49:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
-        %x_78:i32 = load %49
-        %x_79:f32 = convert %x_78
-        %52:vec4<f32> = construct %x_79, %x_79, %x_79, %x_79
-        store %x_GLF_color, %52
+      $B4: {  # false
+        %68:ptr<uniform, i32, read> = access %x_13, 0u, 1i, 0u
+        %69:i32 = load %68
+        %x_78:i32 = let %69
+        %71:f32 = convert %x_78
+        %x_79:f32 = let %71
+        %73:vec4<f32> = construct %x_79, %x_79, %x_79, %x_79
+        store %x_GLF_color, %73
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %75:void = call %main_1
+    %76:vec4<f32> = load %x_GLF_color
+    %77:main_out = construct %76
+    ret %77
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B6: {
+    %79:i32 = convert %value
+    %80:bool = gte %value, -2147483648.0f
+    %81:i32 = select -2147483648i, %79, %80
+    %82:bool = lte %value, 2147483520.0f
+    %83:i32 = select 2147483647i, %81, %82
+    ret %83
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.msl
index d4f8153..6570631 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,15 +24,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %x_48:ptr<function, bool, read_write> = var
     %x_49:ptr<function, bool, read_write> = var
@@ -44,59 +44,63 @@
     %13:f32 = load %f
     %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %15:f32 = load %14
-    %x_40:bool = eq %13, %15
+    %16:bool = eq %13, %15
+    %x_40:bool = let %16
     store %x_49, %x_40
-    %17:bool = eq %x_40, false
-    if %17 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_8, 0u
-        %19:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %21:i32 = load %20
-        %22:bool = eq %19, %21
-        store %x_48, %22
-        %23:bool = load %x_48
-        store %x_49, %23
+    %18:bool = eq %x_40, false
+    if %18 [t: $B3] {  # if_1
+      $B3: {  # true
+        %19:ptr<uniform, i32, read> = access %x_8, 0u
+        %20:i32 = load %19
+        %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %22:i32 = load %21
+        %23:bool = eq %20, %22
+        store %x_48, %23
+        %24:bool = load %x_48
+        store %x_49, %24
         exit_if  # if_1
       }
     }
-    %24:bool = load %x_49
-    if %24 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %26:i32 = load %25
-        %27:f32 = convert %26
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+    %25:bool = load %x_49
+    if %25 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %26:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:f32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %35:i32 = load %34
         %36:f32 = convert %35
-        %37:vec4<f32> = construct %27, %30, %33, %36
-        store %x_GLF_color, %37
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %37:f32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %39:i32 = load %38
         %40:f32 = convert %39
-        %41:vec4<f32> = construct %40
+        %41:vec4<f32> = construct %29, %33, %37, %40
         store %x_GLF_color, %41
         exit_if  # if_2
       }
+      $B5: {  # false
+        %42:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %43:i32 = load %42
+        %44:f32 = convert %43
+        %45:vec4<f32> = construct %44
+        store %x_GLF_color, %45
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.msl
index 347ae46..edcc8c6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined-result-condition-with-always-true/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,79 +24,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %x_48:ptr<function, bool, read_write> = var
     %x_49_phi:ptr<function, bool, read_write> = var
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_33:f32 = load %9
-    %11:f32 = negation %x_33
-    %12:f32 = pow %11, 1.17520117759704589844f
-    store %f, %12
-    %x_37:f32 = load %f
-    %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_39:f32 = load %14
-    %x_40:bool = eq %x_37, %x_39
+    %10:f32 = load %9
+    %x_33:f32 = let %10
+    %12:f32 = negation %x_33
+    %13:f32 = pow %12, 1.17520117759704589844f
+    store %f, %13
+    %14:f32 = load %f
+    %x_37:f32 = let %14
+    %16:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %17:f32 = load %16
+    %x_39:f32 = let %17
+    %19:bool = eq %x_37, %x_39
+    %x_40:bool = let %19
     store %x_49_phi, %x_40
-    %17:bool = eq %x_40, false
-    if %17 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_8, 0u
-        %x_45:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_47:i32 = load %20
-        %22:bool = eq %x_45, %x_47
-        store %x_48, %22
-        %23:bool = load %x_48
-        store %x_49_phi, %23
+    %21:bool = eq %x_40, false
+    if %21 [t: $B3] {  # if_1
+      $B3: {  # true
+        %22:ptr<uniform, i32, read> = access %x_8, 0u
+        %23:i32 = load %22
+        %x_45:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %26:i32 = load %25
+        %x_47:i32 = let %26
+        %28:bool = eq %x_45, %x_47
+        store %x_48, %28
+        %29:bool = load %x_48
+        store %x_49_phi, %29
         exit_if  # if_1
       }
     }
-    %x_49:bool = load %x_49_phi
-    if %x_49 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %25:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_54:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_57:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_60:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_63:i32 = load %31
-        %33:f32 = convert %x_54
-        %34:f32 = convert %x_57
-        %35:f32 = convert %x_60
-        %36:f32 = convert %x_63
-        %37:vec4<f32> = construct %33, %34, %35, %36
-        store %x_GLF_color, %37
+    %30:bool = load %x_49_phi
+    %x_49:bool = let %30
+    if %x_49 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %32:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_54:i32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %36:i32 = load %35
+        %x_57:i32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %39:i32 = load %38
+        %x_60:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %42:i32 = load %41
+        %x_63:i32 = let %42
+        %44:f32 = convert %x_54
+        %45:f32 = let %44
+        %46:f32 = convert %x_57
+        %47:f32 = let %46
+        %48:f32 = convert %x_60
+        %49:f32 = let %48
+        %50:f32 = convert %x_63
+        %51:vec4<f32> = construct %45, %47, %49, %50
+        store %x_GLF_color, %51
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_67:i32 = load %38
-        %x_68:f32 = convert %x_67
-        %41:vec4<f32> = construct %x_68, %x_68, %x_68, %x_68
-        store %x_GLF_color, %41
+      $B5: {  # false
+        %52:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %53:i32 = load %52
+        %x_67:i32 = let %53
+        %55:f32 = convert %x_67
+        %x_68:f32 = let %55
+        %57:vec4<f32> = construct %x_68, %x_68, %x_68, %x_68
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.msl
index 5667092..5681cfe 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, f32, read_write> = var
@@ -36,8 +36,8 @@
     %14:f32 = load %b
     %15:bool = eq %14, 1.70000004768371582031f
     %16:bool = and %13, %15
-    if %16 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
         %18:f32 = load %17
         %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
@@ -50,7 +50,7 @@
         store %x_GLF_color, %25
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
         %27:f32 = load %26
         %28:vec4<f32> = construct %27
@@ -61,8 +61,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %30:void = call %main_1
     %31:vec4<f32> = load %x_GLF_color
     %32:main_out = construct %31
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.msl
index 2115188..c971b16 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-pow-undefined/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,61 +12,71 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, f32, read_write> = var
     store %a, -1.0f
     store %b, 1.70000004768371582031f
-    %x_27:f32 = load %a
-    %x_28:f32 = load %b
-    %9:f32 = pow %x_27, %x_28
-    store %c, %9
-    %x_30:f32 = load %c
-    %11:vec4<f32> = construct %x_30, %x_30, %x_30, %x_30
-    store %x_GLF_color, %11
-    %x_32:f32 = load %a
-    %x_34:f32 = load %b
-    %14:bool = eq %x_32, -1.0f
-    %15:bool = eq %x_34, 1.70000004768371582031f
-    %16:bool = and %14, %15
-    if %16 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_41:f32 = load %17
-        %19:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_43:f32 = load %19
-        %21:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_45:f32 = load %21
-        %23:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_47:f32 = load %23
-        %25:vec4<f32> = construct %x_41, %x_43, %x_45, %x_47
-        store %x_GLF_color, %25
+    %7:f32 = load %a
+    %x_27:f32 = let %7
+    %9:f32 = load %b
+    %x_28:f32 = let %9
+    %11:f32 = pow %x_27, %x_28
+    store %c, %11
+    %12:f32 = load %c
+    %x_30:f32 = let %12
+    %14:vec4<f32> = construct %x_30, %x_30, %x_30, %x_30
+    store %x_GLF_color, %14
+    %15:f32 = load %a
+    %x_32:f32 = let %15
+    %17:f32 = load %b
+    %x_34:f32 = let %17
+    %19:bool = eq %x_32, -1.0f
+    %20:bool = eq %x_34, 1.70000004768371582031f
+    %21:bool = and %19, %20
+    if %21 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %22:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %23:f32 = load %22
+        %x_41:f32 = let %23
+        %25:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %26:f32 = load %25
+        %x_43:f32 = let %26
+        %28:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %29:f32 = load %28
+        %x_45:f32 = let %29
+        %31:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %32:f32 = load %31
+        %x_47:f32 = let %32
+        %34:vec4<f32> = construct %x_41, %x_43, %x_45, %x_47
+        store %x_GLF_color, %34
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-        %x_50:f32 = load %26
-        %28:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %35:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+        %36:f32 = load %35
+        %x_50:f32 = let %36
+        %38:vec4<f32> = construct %x_50, %x_50, %x_50, %x_50
+        store %x_GLF_color, %38
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.msl
index 89a729d..2f6fe9e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,58 +12,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %a, -7563i
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %6:i32 = load %5
     %7:i32 = load %a
-    %8:i32 = div %6, %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %10:i32 = load %9
-    %11:bool = eq %8, %10
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %13:i32 = load %12
-        %14:f32 = convert %13
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %16:i32 = load %15
-        %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %19:i32 = load %18
-        %20:f32 = convert %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %8:i32 = call %tint_div_i32, %6, %7
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %11:i32 = load %10
+    %12:bool = eq %8, %11
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %14:i32 = load %13
+        %15:f32 = convert %14
+        %16:f32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %18:i32 = load %17
+        %19:f32 = convert %18
+        %20:f32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %22:i32 = load %21
         %23:f32 = convert %22
-        %24:vec4<f32> = construct %14, %17, %20, %23
-        store %x_GLF_color, %24
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %24:f32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %26:i32 = load %25
         %27:f32 = convert %26
-        %28:vec4<f32> = construct %27
+        %28:vec4<f32> = construct %16, %20, %24, %27
         store %x_GLF_color, %28
         exit_if  # if_1
       }
+      $B4: {  # false
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:vec4<f32> = construct %31
+        store %x_GLF_color, %32
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %34:void = call %main_1
+    %35:vec4<f32> = load %x_GLF_color
+    %36:main_out = construct %35
+    ret %36
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %39:bool = eq %rhs, 0i
+    %40:bool = eq %lhs, -2147483648i
+    %41:bool = eq %rhs, -1i
+    %42:bool = and %40, %41
+    %43:bool = or %39, %42
+    %44:i32 = select %rhs, 1i, %43
+    %45:i32 = div %lhs, %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.msl
index 2dfe747..890ada6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-rcp-negative-int/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,58 +12,82 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %a, -7563i
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_25:i32 = load %5
-    %x_26:i32 = load %a
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_29:i32 = load %8
-    %10:i32 = div %x_25, %x_26
-    %11:bool = eq %10, %x_29
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_35:i32 = load %12
-        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_38:i32 = load %14
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_41:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_44:i32 = load %18
-        %20:f32 = convert %x_35
-        %21:f32 = convert %x_38
-        %22:f32 = convert %x_41
-        %23:f32 = convert %x_44
-        %24:vec4<f32> = construct %20, %21, %22, %23
-        store %x_GLF_color, %24
+    %6:i32 = load %5
+    %x_25:i32 = let %6
+    %8:i32 = load %a
+    %x_26:i32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %11:i32 = load %10
+    %x_29:i32 = let %11
+    %13:i32 = call %tint_div_i32, %x_25, %x_26
+    %15:bool = eq %13, %x_29
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %17:i32 = load %16
+        %x_35:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_38:i32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %23:i32 = load %22
+        %x_41:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %26:i32 = load %25
+        %x_44:i32 = let %26
+        %28:f32 = convert %x_35
+        %29:f32 = let %28
+        %30:f32 = convert %x_38
+        %31:f32 = let %30
+        %32:f32 = convert %x_41
+        %33:f32 = let %32
+        %34:f32 = convert %x_44
+        %35:vec4<f32> = construct %29, %31, %33, %34
+        store %x_GLF_color, %35
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_48:i32 = load %25
-        %x_49:f32 = convert %x_48
-        %28:vec4<f32> = construct %x_49, %x_49, %x_49, %x_49
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %37:i32 = load %36
+        %x_48:i32 = let %37
+        %39:f32 = convert %x_48
+        %x_49:f32 = let %39
+        %41:vec4<f32> = construct %x_49, %x_49, %x_49, %x_49
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %48:bool = eq %rhs, 0i
+    %49:bool = eq %lhs, -2147483648i
+    %50:bool = eq %rhs, -1i
+    %51:bool = and %49, %50
+    %52:bool = or %48, %51
+    %53:i32 = select %rhs, 1i, %52
+    %54:i32 = div %lhs, %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.msl
index 16f9ea0..1934d64 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,58 +12,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %a, -1i
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %6:i32 = load %5
     %7:i32 = load %a
-    %8:i32 = div %6, %7
-    %9:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %10:i32 = load %9
-    %11:bool = lt %8, %10
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %13:i32 = load %12
-        %14:f32 = convert %13
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %16:i32 = load %15
-        %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %19:i32 = load %18
-        %20:f32 = convert %19
-        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %8:i32 = call %tint_div_i32, %6, %7
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %11:i32 = load %10
+    %12:bool = lt %8, %11
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %14:i32 = load %13
+        %15:f32 = convert %14
+        %16:f32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %18:i32 = load %17
+        %19:f32 = convert %18
+        %20:f32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %22:i32 = load %21
         %23:f32 = convert %22
-        %24:vec4<f32> = construct %14, %17, %20, %23
-        store %x_GLF_color, %24
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %24:f32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %26:i32 = load %25
         %27:f32 = convert %26
-        %28:vec4<f32> = construct %27
+        %28:vec4<f32> = construct %16, %20, %24, %27
         store %x_GLF_color, %28
         exit_if  # if_1
       }
+      $B4: {  # false
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:vec4<f32> = construct %31
+        store %x_GLF_color, %32
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %34:void = call %main_1
+    %35:vec4<f32> = load %x_GLF_color
+    %36:main_out = construct %35
+    ret %36
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %39:bool = eq %rhs, 0i
+    %40:bool = eq %lhs, -2147483648i
+    %41:bool = eq %rhs, -1i
+    %42:bool = and %40, %41
+    %43:bool = or %39, %42
+    %44:i32 = select %rhs, 1i, %43
+    %45:i32 = div %lhs, %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.msl
index a059c03..b290764 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reciprocal-var-minus-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,58 +12,82 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %a, -1i
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_25:i32 = load %5
-    %x_26:i32 = load %a
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_29:i32 = load %8
-    %10:i32 = div %x_25, %x_26
-    %11:bool = lt %10, %x_29
-    if %11 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_35:i32 = load %12
-        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_38:i32 = load %14
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_41:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_44:i32 = load %18
-        %20:f32 = convert %x_35
-        %21:f32 = convert %x_38
-        %22:f32 = convert %x_41
-        %23:f32 = convert %x_44
-        %24:vec4<f32> = construct %20, %21, %22, %23
-        store %x_GLF_color, %24
+    %6:i32 = load %5
+    %x_25:i32 = let %6
+    %8:i32 = load %a
+    %x_26:i32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %11:i32 = load %10
+    %x_29:i32 = let %11
+    %13:i32 = call %tint_div_i32, %x_25, %x_26
+    %15:bool = lt %13, %x_29
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %17:i32 = load %16
+        %x_35:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_38:i32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %23:i32 = load %22
+        %x_41:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %26:i32 = load %25
+        %x_44:i32 = let %26
+        %28:f32 = convert %x_35
+        %29:f32 = let %28
+        %30:f32 = convert %x_38
+        %31:f32 = let %30
+        %32:f32 = convert %x_41
+        %33:f32 = let %32
+        %34:f32 = convert %x_44
+        %35:vec4<f32> = construct %29, %31, %33, %34
+        store %x_GLF_color, %35
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_48:i32 = load %25
-        %x_49:f32 = convert %x_48
-        %28:vec4<f32> = construct %x_49, %x_49, %x_49, %x_49
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %37:i32 = load %36
+        %x_48:i32 = let %37
+        %39:f32 = convert %x_48
+        %x_49:f32 = let %39
+        %41:vec4<f32> = construct %x_49, %x_49, %x_49, %x_49
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B6: {
+    %48:bool = eq %rhs, 0i
+    %49:bool = eq %lhs, -2147483648i
+    %50:bool = eq %rhs, -1i
+    %51:bool = and %49, %50
+    %52:bool = or %48, %51
+    %53:i32 = select %rhs, 1i, %52
+    %54:i32 = div %lhs, %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.msl
index 5287888..ec5c830 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,27 +8,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_9:ptr<function, array<i32, 1>, read_write> = var
     %x_10:ptr<function, i32, read_write> = var
     %6:ptr<function, i32, read_write> = access %x_9, 0u
-    %x_6:i32 = load %6
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %7:i32 = load %6
+    %x_6:i32 = let %7
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         store %x_GLF_color, vec4<f32>(0.0f)
-        %8:ptr<uniform, i32, read> = access %x_5, 0u
-        %9:i32 = load %8
-        %10:ptr<function, i32, read_write> = access %x_9, %9
-        %11:i32 = load %10
-        %12:bool = eq %11, %x_6
-        if %12 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %9:ptr<uniform, i32, read> = access %x_5, 0u
+        %10:i32 = load %9
+        %11:ptr<function, i32, read_write> = access %x_9, %10
+        %12:i32 = load %11
+        %13:bool = eq %12, %x_6
+        if %13 [t: $B4] {  # if_1
+          $B4: {  # true
             store %x_10, 1i
             exit_loop  # loop_1
           }
@@ -36,21 +37,18 @@
         store %x_10, 2i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %13:i32 = load %x_10
-    %14:bool = eq %13, 1i
-    %15:i32 = load %x_10
-    %16:bool = eq %15, 2i
-    %17:bool = or %14, %16
-    if %17 [t: %b6, f: %b7] {  # if_2
-      %b6 = block {  # true
+    %14:i32 = load %x_10
+    %15:bool = eq %14, 1i
+    %16:i32 = load %x_10
+    %17:bool = eq %16, 2i
+    %18:bool = or %15, %17
+    if %18 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b7 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -58,12 +56,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.msl
index 714b3d2..85c00ea 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-array-replace-extract/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,27 +8,31 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_9:ptr<function, array<i32, 1>, read_write> = var
     %x_10_phi:ptr<function, i32, read_write> = var
-    %x_33:array<i32, 1> = load %x_9
-    %x_6:i32 = access %x_33, 0u
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %6:array<i32, 1> = load %x_9
+    %x_33:array<i32, 1> = let %6
+    %8:i32 = access %x_33, 0u
+    %x_6:i32 = let %8
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         store %x_GLF_color, vec4<f32>(0.0f)
-        %8:ptr<uniform, i32, read> = access %x_5, 0u
-        %x_7:i32 = load %8
-        %10:ptr<function, i32, read_write> = access %x_9, %x_7
-        %x_8:i32 = load %10
-        %12:bool = eq %x_8, %x_6
-        if %12 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %10:ptr<uniform, i32, read> = access %x_5, 0u
+        %11:i32 = load %10
+        %x_7:i32 = let %11
+        %13:ptr<function, i32, read_write> = access %x_9, %x_7
+        %14:i32 = load %13
+        %x_8:i32 = let %14
+        %16:bool = eq %x_8, %x_6
+        if %16 [t: $B4] {  # if_1
+          $B4: {  # true
             store %x_10_phi, 1i
             exit_loop  # loop_1
           }
@@ -36,20 +40,18 @@
         store %x_10_phi, 2i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %x_10:i32 = load %x_10_phi
-    %14:bool = eq %x_10, 1i
-    %15:bool = eq %x_10, 2i
-    %16:bool = or %14, %15
-    if %16 [t: %b6, f: %b7] {  # if_2
-      %b6 = block {  # true
+    %17:i32 = load %x_10_phi
+    %x_10:i32 = let %17
+    %19:bool = eq %x_10, 1i
+    %20:bool = eq %x_10, 2i
+    %21:bool = or %19, %20
+    if %21 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b7 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -57,12 +59,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.msl
index 93f6ab6..95a6b87 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -13,72 +13,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i1_i11_ = func(%arg:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
+%func_struct_S_i1_i11_ = func(%arg:ptr<function, S, read_write>):void {
+  $B2: {
     %5:ptr<function, i32, read_write> = access %arg, 1u
     store %5, 1i
     ret
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
+%main_1 = func():void {
+  $B3: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, array<S, 2>, read_write> = var
     %param:ptr<function, S, read_write> = var
     store %a, 5.0f
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %10:ptr<uniform, i32, read> = access %x_10, 0u
-        %x_43:i32 = load %10
-        %12:ptr<function, i32, read_write> = access %b, %x_43, 0u
-        store %12, 1i
-        %13:ptr<function, i32, read_write> = access %b, 1i, 0u
-        %14:i32 = load %13
-        %15:bool = eq %14, 1i
-        if %15 [t: %b6] {  # if_1
-          %b6 = block {  # true
-            %16:ptr<uniform, i32, read> = access %x_10, 0u
-            %17:i32 = load %16
-            %18:bool = eq %17, 1i
-            if %18 [t: %b7] {  # if_2
-              %b7 = block {  # true
+        %11:i32 = load %10
+        %x_43:i32 = let %11
+        %13:ptr<function, i32, read_write> = access %b, %x_43, 0u
+        store %13, 1i
+        %14:ptr<function, i32, read_write> = access %b, 1i, 0u
+        %15:i32 = load %14
+        %16:bool = eq %15, 1i
+        if %16 [t: $B6] {  # if_1
+          $B6: {  # true
+            %17:ptr<uniform, i32, read> = access %x_10, 0u
+            %18:i32 = load %17
+            %19:bool = eq %18, 1i
+            if %19 [t: $B7] {  # if_2
+              $B7: {  # true
                 exit_loop  # loop_1
               }
             }
-            %19:ptr<function, S, read_write> = access %b, 1i
-            %20:S = load %19
-            store %param, %20
-            %21:void = call %func_struct_S_i1_i11_, %param
-            %22:ptr<function, S, read_write> = access %b, 1i
-            %23:S = load %param
-            store %22, %23
-            %24:ptr<function, i32, read_write> = access %b, 1i, 1u
-            %25:i32 = load %24
-            %26:f32 = convert %25
-            store %a, %26
+            %20:ptr<function, S, read_write> = access %b, 1i
+            %21:S = load %20
+            store %param, %21
+            %22:void = call %func_struct_S_i1_i11_, %param
+            %23:ptr<function, S, read_write> = access %b, 1i
+            %24:S = load %param
+            store %23, %24
+            %25:ptr<function, i32, read_write> = access %b, 1i, 1u
+            %26:i32 = load %25
+            %27:f32 = convert %26
+            store %a, %27
             exit_if  # if_1
           }
         }
         store %a, 0.0f
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        break_if true %b4
+      $B5: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B4]
       }
     }
-    %27:f32 = load %a
-    %28:bool = eq %27, 5.0f
-    if %28 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %28:f32 = load %a
+    %29:bool = eq %28, 5.0f
+    if %29 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -86,12 +87,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.msl
index 68c8437..bd40928 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reduce-load-replace-extract/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -13,72 +13,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i1_i11_ = func(%arg:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
+%func_struct_S_i1_i11_ = func(%arg:ptr<function, S, read_write>):void {
+  $B2: {
     %5:ptr<function, i32, read_write> = access %arg, 1u
     store %5, 1i
     ret
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
+%main_1 = func():void {
+  $B3: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, array<S, 2>, read_write> = var
     %param:ptr<function, S, read_write> = var
     store %a, 5.0f
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %10:ptr<uniform, i32, read> = access %x_10, 0u
-        %x_43:i32 = load %10
-        %12:ptr<function, i32, read_write> = access %b, %x_43, 0u
-        store %12, 1i
-        %13:ptr<function, i32, read_write> = access %b, 1i, 0u
-        %x_46:i32 = load %13
-        %15:bool = eq %x_46, 1i
-        if %15 [t: %b6] {  # if_1
-          %b6 = block {  # true
-            %16:ptr<uniform, i32, read> = access %x_10, 0u
-            %x_51:i32 = load %16
-            %18:bool = eq %x_51, 1i
-            if %18 [t: %b7] {  # if_2
-              %b7 = block {  # true
+        %11:i32 = load %10
+        %x_43:i32 = let %11
+        %13:ptr<function, i32, read_write> = access %b, %x_43, 0u
+        store %13, 1i
+        %14:ptr<function, i32, read_write> = access %b, 1i, 0u
+        %15:i32 = load %14
+        %x_46:i32 = let %15
+        %17:bool = eq %x_46, 1i
+        if %17 [t: $B6] {  # if_1
+          $B6: {  # true
+            %18:ptr<uniform, i32, read> = access %x_10, 0u
+            %19:i32 = load %18
+            %x_51:i32 = let %19
+            %21:bool = eq %x_51, 1i
+            if %21 [t: $B7] {  # if_2
+              $B7: {  # true
                 exit_loop  # loop_1
               }
             }
-            %19:ptr<function, S, read_write> = access %b, 1i
-            %x_56:S = load %19
+            %22:ptr<function, S, read_write> = access %b, 1i
+            %23:S = load %22
+            %x_56:S = let %23
             store %param, %x_56
-            %21:void = call %func_struct_S_i1_i11_, %param
-            %x_58:S = load %param
-            %23:ptr<function, S, read_write> = access %b, 1i
-            store %23, %x_58
-            %24:ptr<function, i32, read_write> = access %b, 1i, 1u
-            %x_61:i32 = load %24
-            %26:f32 = convert %x_61
-            store %a, %26
+            %25:void = call %func_struct_S_i1_i11_, %param
+            %26:S = load %param
+            %x_58:S = let %26
+            %28:ptr<function, S, read_write> = access %b, 1i
+            store %28, %x_58
+            %29:ptr<function, i32, read_write> = access %b, 1i, 1u
+            %30:i32 = load %29
+            %x_61:i32 = let %30
+            %32:f32 = convert %x_61
+            store %a, %32
             exit_if  # if_1
           }
         }
         store %a, 0.0f
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        break_if true %b4
+      $B5: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B4]
       }
     }
-    %x_63:f32 = load %a
-    %28:bool = eq %x_63, 5.0f
-    if %28 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %33:f32 = load %a
+    %x_63:f32 = let %33
+    %35:bool = eq %x_63, 5.0f
+    if %35 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -86,12 +93,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.msl
index 1b157dc..82fd794 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,114 +20,125 @@
   x_GLF_v1_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_v1:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
-    %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %9:i32 = load %8
-    store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %10:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %12:i32 = load %11
-        %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %10:i32 = load %9
+    store %i, %10
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %11:i32 = load %i
+        %12:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %13:i32 = load %12
+        %14:bool = lt %11, %13
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %14:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %15:f32 = load %14
-        %16:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %17:f32 = load %16
-        %18:bool = gt %15, %17
-        if %18 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            discard
+        %15:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %16:f32 = load %15
+        %17:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %18:f32 = load %17
+        %19:bool = gt %16, %18
+        if %19 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %19:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %20:i32 = load %19
-        store %j, %20
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
-            %21:i32 = load %j
-            %22:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %23:i32 = load %22
-            %24:bool = lt %21, %23
-            if %24 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+        %20:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %21:i32 = load %20
+        store %j, %21
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
+            %22:i32 = load %j
+            %23:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %24:i32 = load %23
+            %25:bool = lt %22, %24
+            if %25 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            %25:f32 = load_vector_element %gl_FragCoord, 0u
-            %26:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-            %27:f32 = load %26
-            %28:bool = lt %25, %27
-            if %28 [t: %b12] {  # if_4
-              %b12 = block {  # true
-                discard
+            %26:f32 = load_vector_element %gl_FragCoord, 0u
+            %27:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+            %28:f32 = load %27
+            %29:bool = lt %26, %28
+            if %29 [t: $B12] {  # if_4
+              $B12: {  # true
+                store %continue_execution, false
                 exit_if  # if_4
               }
             }
-            %29:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-            %30:i32 = load %29
-            %31:f32 = convert %30
-            %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-            %33:i32 = load %32
-            %34:f32 = convert %33
-            %35:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-            %36:i32 = load %35
-            %37:f32 = convert %36
-            %38:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+            %30:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+            %31:i32 = load %30
+            %32:f32 = convert %31
+            %33:f32 = let %32
+            %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+            %35:i32 = load %34
+            %36:f32 = convert %35
+            %37:f32 = let %36
+            %38:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
             %39:i32 = load %38
             %40:f32 = convert %39
-            %41:vec4<f32> = construct %31, %34, %37, %40
-            store %x_GLF_v1, %41
-            continue %b9
+            %41:f32 = let %40
+            %42:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+            %43:i32 = load %42
+            %44:f32 = convert %43
+            %45:vec4<f32> = construct %33, %37, %41, %44
+            store %x_GLF_v1, %45
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %42:i32 = load %j
-            %43:i32 = add %42, 1i
-            store %j, %43
-            next_iteration %b8
+          $B9: {  # continuing
+            %46:i32 = load %j
+            %47:i32 = add %46, 1i
+            store %j, %47
+            next_iteration  # -> $B8
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %44:i32 = load %i
-        %45:i32 = add %44, 1i
-        store %i, %45
-        next_iteration %b3
+      $B4: {  # continuing
+        %48:i32 = load %i
+        %49:i32 = add %48, 1i
+        store %i, %49
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_v1
-    %50:main_out = construct %49
-    ret %50
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_v1
+    %54:main_out = construct %53
+    %55:bool = load %continue_execution
+    %56:bool = eq %55, false
+    if %56 [t: $B14] {  # if_5
+      $B14: {  # true
+        terminate_invocation
+      }
+    }
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.msl
index ff4053b..c93f01f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,114 +20,141 @@
   x_GLF_v1_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_v1:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
-    %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_36:i32 = load %8
+    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %10:i32 = load %9
+    %x_36:i32 = let %10
     store %i, %x_36
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_41:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_43:i32 = load %11
-        %13:bool = lt %x_41, %x_43
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_41:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_43:i32 = let %15
+        %17:bool = lt %x_41, %x_43
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %14:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-        %x_47:f32 = load %14
-        %16:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
-        %x_49:f32 = load %16
-        %18:bool = gt %x_47, %x_49
-        if %18 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            discard
+        %18:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+        %19:f32 = load %18
+        %x_47:f32 = let %19
+        %21:ptr<uniform, f32, read> = access %x_9, 0u, 1i, 0u
+        %22:f32 = load %21
+        %x_49:f32 = let %22
+        %24:bool = gt %x_47, %x_49
+        if %24 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %19:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_54:i32 = load %19
+        %25:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %26:i32 = load %25
+        %x_54:i32 = let %26
         store %j, %x_54
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
-            %x_59:i32 = load %j
-            %22:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %x_61:i32 = load %22
-            %24:bool = lt %x_59, %x_61
-            if %24 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
+            %28:i32 = load %j
+            %x_59:i32 = let %28
+            %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %31:i32 = load %30
+            %x_61:i32 = let %31
+            %33:bool = lt %x_59, %x_61
+            if %33 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_65:f32 = load_vector_element %gl_FragCoord, 0u
-            %26:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-            %x_67:f32 = load %26
-            %28:bool = lt %x_65, %x_67
-            if %28 [t: %b12] {  # if_4
-              %b12 = block {  # true
-                discard
+            %34:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_65:f32 = let %34
+            %36:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+            %37:f32 = load %36
+            %x_67:f32 = let %37
+            %39:bool = lt %x_65, %x_67
+            if %39 [t: $B12] {  # if_4
+              $B12: {  # true
+                store %continue_execution, false
                 exit_if  # if_4
               }
             }
-            %29:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-            %x_72:i32 = load %29
-            %31:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-            %x_75:i32 = load %31
-            %33:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-            %x_78:i32 = load %33
-            %35:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-            %x_81:i32 = load %35
-            %37:f32 = convert %x_72
-            %38:f32 = convert %x_75
-            %39:f32 = convert %x_78
-            %40:f32 = convert %x_81
-            %41:vec4<f32> = construct %37, %38, %39, %40
-            store %x_GLF_v1, %41
-            continue %b9
+            %40:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+            %41:i32 = load %40
+            %x_72:i32 = let %41
+            %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+            %44:i32 = load %43
+            %x_75:i32 = let %44
+            %46:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+            %47:i32 = load %46
+            %x_78:i32 = let %47
+            %49:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+            %50:i32 = load %49
+            %x_81:i32 = let %50
+            %52:f32 = convert %x_72
+            %53:f32 = let %52
+            %54:f32 = convert %x_75
+            %55:f32 = let %54
+            %56:f32 = convert %x_78
+            %57:f32 = let %56
+            %58:f32 = convert %x_81
+            %59:vec4<f32> = construct %53, %55, %57, %58
+            store %x_GLF_v1, %59
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %x_84:i32 = load %j
-            %43:i32 = add %x_84, 1i
-            store %j, %43
-            next_iteration %b8
+          $B9: {  # continuing
+            %60:i32 = load %j
+            %x_84:i32 = let %60
+            %62:i32 = add %x_84, 1i
+            store %j, %62
+            next_iteration  # -> $B8
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_86:i32 = load %i
-        %45:i32 = add %x_86, 1i
-        store %i, %45
-        next_iteration %b3
+      $B4: {  # continuing
+        %63:i32 = load %i
+        %x_86:i32 = let %63
+        %65:i32 = add %x_86, 1i
+        store %i, %65
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_v1
-    %50:main_out = construct %49
-    ret %50
+    %68:void = call %main_1
+    %69:vec4<f32> = load %x_GLF_v1
+    %70:main_out = construct %69
+    %71:bool = load %continue_execution
+    %72:bool = eq %71, false
+    if %72 [t: $B14] {  # if_5
+      $B14: {  # true
+        terminate_invocation
+      }
+    }
+    ret %70
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.msl
index 59782d1..e3532c7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat2x2<f32>, read_write> = var
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -26,142 +26,153 @@
     %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
     %9:i32 = load %8
     %10:bool = eq %9, 1i
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
         %11:f32 = load %f
         %12:vec2<f32> = construct %11, 0.0f
-        %13:f32 = load %f
-        %14:vec2<f32> = construct 0.0f, %13
-        %15:mat2x2<f32> = construct %12, %14
-        store %m, %15
+        %13:vec2<f32> = let %12
+        %14:f32 = load %f
+        %15:vec2<f32> = construct 0.0f, %14
+        %16:mat2x2<f32> = construct %13, %15
+        store %m, %16
         exit_if  # if_1
       }
     }
-    %16:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %17:i32 = load %16
-    store %i, %17
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %18:i32 = load %i
-        %19:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %20:i32 = load %19
-        %21:bool = lt %18, %20
-        if %21 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    %17:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %18:i32 = load %17
+    store %i, %18
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %19:i32 = load %i
+        %20:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %21:i32 = load %20
+        %22:bool = lt %19, %21
+        if %22 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %23:i32 = load %22
-        store %j, %23
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
-            %24:i32 = load %j
-            %25:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %26:i32 = load %25
-            %27:bool = lt %24, %26
-            if %27 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+        %23:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %24:i32 = load %23
+        store %j, %24
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
+            %25:i32 = load %j
+            %26:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %27:i32 = load %26
+            %28:bool = lt %25, %27
+            if %28 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_66:i32 = load %i
-            %x_67:i32 = load %j
-            %30:ptr<function, vec2<f32>, read_write> = access %m, %x_66
-            %31:i32 = load %i
-            %32:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %33:i32 = load %32
-            %34:i32 = mul %31, %33
-            %35:i32 = load %j
-            %36:i32 = add %34, %35
-            %37:f32 = convert %36
-            store_vector_element %30, %x_67, %37
-            continue %b9
-          }
-          %b9 = block {  # continuing
+            %29:i32 = load %i
+            %x_66:i32 = let %29
+            %31:i32 = load %j
+            %x_67:i32 = let %31
+            %33:ptr<function, vec2<f32>, read_write> = access %m, %x_66
+            %34:i32 = load %i
+            %35:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %36:i32 = load %35
+            %37:i32 = mul %34, %36
             %38:i32 = load %j
-            %39:i32 = add %38, 1i
-            store %j, %39
-            next_iteration %b8
+            %39:i32 = add %37, %38
+            %40:f32 = convert %39
+            store_vector_element %33, %x_67, %40
+            continue  # -> $B9
+          }
+          $B9: {  # continuing
+            %41:i32 = load %j
+            %42:i32 = add %41, 1i
+            store %j, %42
+            next_iteration  # -> $B8
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %40:i32 = load %i
-        %41:i32 = add %40, 1i
-        store %i, %41
-        next_iteration %b4
+      $B5: {  # continuing
+        %43:i32 = load %i
+        %44:i32 = add %43, 1i
+        store %i, %44
+        next_iteration  # -> $B4
       }
     }
-    %42:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %43:i32 = load %42
-    %44:f32 = convert %43
-    %45:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+    %45:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
     %46:i32 = load %45
     %47:f32 = convert %46
-    %48:vec2<f32> = construct %44, %47
-    %49:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %48:f32 = let %47
+    %49:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
     %50:i32 = load %49
     %51:f32 = convert %50
-    %52:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-    %53:i32 = load %52
-    %54:f32 = convert %53
-    %55:vec2<f32> = construct %51, %54
-    %x_95:mat2x2<f32> = construct %48, %55
-    %57:ptr<function, vec2<f32>, read_write> = access %m, 0u
-    %58:vec2<f32> = load %57
-    %59:vec2<f32> = access %x_95, 0u
-    %60:vec2<bool> = eq %58, %59
-    %61:bool = all %60
-    %62:ptr<function, vec2<f32>, read_write> = access %m, 1u
-    %63:vec2<f32> = load %62
-    %64:vec2<f32> = access %x_95, 1u
-    %65:vec2<bool> = eq %63, %64
-    %66:bool = all %65
-    %67:bool = and %61, %66
-    if %67 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %68:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %69:i32 = load %68
-        %70:f32 = convert %69
-        %71:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %72:i32 = load %71
-        %73:f32 = convert %72
-        %74:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %75:i32 = load %74
-        %76:f32 = convert %75
-        %77:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %78:i32 = load %77
-        %79:f32 = convert %78
-        %80:vec4<f32> = construct %70, %73, %76, %79
-        store %x_GLF_color, %80
+    %52:vec2<f32> = construct %48, %51
+    %53:vec2<f32> = let %52
+    %54:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %55:i32 = load %54
+    %56:f32 = convert %55
+    %57:f32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
+    %59:i32 = load %58
+    %60:f32 = convert %59
+    %61:vec2<f32> = construct %57, %60
+    %62:mat2x2<f32> = construct %53, %61
+    %x_95:mat2x2<f32> = let %62
+    %64:ptr<function, vec2<f32>, read_write> = access %m, 0u
+    %65:vec2<f32> = load %64
+    %66:vec2<f32> = access %x_95, 0u
+    %67:vec2<bool> = eq %65, %66
+    %68:bool = all %67
+    %69:bool = let %68
+    %70:ptr<function, vec2<f32>, read_write> = access %m, 1u
+    %71:vec2<f32> = load %70
+    %72:vec2<f32> = access %x_95, 1u
+    %73:vec2<bool> = eq %71, %72
+    %74:bool = all %73
+    %75:bool = and %69, %74
+    if %75 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %76:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %77:i32 = load %76
+        %78:f32 = convert %77
+        %79:f32 = let %78
+        %80:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %81:i32 = load %80
+        %82:f32 = convert %81
+        %83:f32 = let %82
+        %84:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %85:i32 = load %84
+        %86:f32 = convert %85
+        %87:f32 = let %86
+        %88:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %89:i32 = load %88
+        %90:f32 = convert %89
+        %91:vec4<f32> = construct %79, %83, %87, %90
+        store %x_GLF_color, %91
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %81:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %82:i32 = load %81
-        %83:f32 = convert %82
-        %84:vec4<f32> = construct %83
-        store %x_GLF_color, %84
+      $B13: {  # false
+        %92:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %93:i32 = load %92
+        %94:f32 = convert %93
+        %95:vec4<f32> = construct %94
+        store %x_GLF_color, %95
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %86:void = call %main_1
-    %87:vec4<f32> = load %x_GLF_color
-    %88:main_out = construct %87
-    ret %88
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %97:void = call %main_1
+    %98:vec4<f32> = load %x_GLF_color
+    %99:main_out = construct %98
+    ret %99
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.msl
index 28ee770..29ab8c7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-reinitialize-matrix-after-undefined-value/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,154 +12,189 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, mat2x2<f32>, read_write> = var
     %f:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_36:i32 = load %8
-    %10:bool = eq %x_36, 1i
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_40:f32 = load %f
-        %12:vec2<f32> = construct %x_40, 0.0f
-        %13:vec2<f32> = construct 0.0f, %x_40
-        %14:mat2x2<f32> = construct %12, %13
-        store %m, %14
+    %9:i32 = load %8
+    %x_36:i32 = let %9
+    %11:bool = eq %x_36, 1i
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:f32 = load %f
+        %x_40:f32 = let %12
+        %14:vec2<f32> = construct %x_40, 0.0f
+        %15:vec2<f32> = let %14
+        %16:vec2<f32> = construct 0.0f, %x_40
+        %17:mat2x2<f32> = construct %15, %16
+        store %m, %17
         exit_if  # if_1
       }
     }
-    %15:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_45:i32 = load %15
+    %18:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %19:i32 = load %18
+    %x_45:i32 = let %19
     store %i, %x_45
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_50:i32 = load %i
-        %18:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_52:i32 = load %18
-        %20:bool = lt %x_50, %x_52
-        if %20 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %21:i32 = load %i
+        %x_50:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_52:i32 = let %24
+        %26:bool = lt %x_50, %x_52
+        if %26 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %21:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_56:i32 = load %21
+        %27:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %28:i32 = load %27
+        %x_56:i32 = let %28
         store %j, %x_56
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
-            %x_61:i32 = load %j
-            %24:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %x_63:i32 = load %24
-            %26:bool = lt %x_61, %x_63
-            if %26 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
+            %30:i32 = load %j
+            %x_61:i32 = let %30
+            %32:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %33:i32 = load %32
+            %x_63:i32 = let %33
+            %35:bool = lt %x_61, %x_63
+            if %35 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_66:i32 = load %i
-            %x_67:i32 = load %j
-            %x_68:i32 = load %i
-            %30:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %x_70:i32 = load %30
-            %x_72:i32 = load %j
-            %33:ptr<function, vec2<f32>, read_write> = access %m, %x_66
-            %34:i32 = mul %x_68, %x_70
-            %35:i32 = add %34, %x_72
-            %36:f32 = convert %35
-            store_vector_element %33, %x_67, %36
-            continue %b9
+            %36:i32 = load %i
+            %x_66:i32 = let %36
+            %38:i32 = load %j
+            %x_67:i32 = let %38
+            %40:i32 = load %i
+            %x_68:i32 = let %40
+            %42:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %43:i32 = load %42
+            %x_70:i32 = let %43
+            %45:i32 = load %j
+            %x_72:i32 = let %45
+            %47:ptr<function, vec2<f32>, read_write> = access %m, %x_66
+            %48:i32 = mul %x_68, %x_70
+            %49:i32 = add %48, %x_72
+            %50:f32 = convert %49
+            store_vector_element %47, %x_67, %50
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %x_76:i32 = load %j
-            %38:i32 = add %x_76, 1i
-            store %j, %38
-            next_iteration %b8
+          $B9: {  # continuing
+            %51:i32 = load %j
+            %x_76:i32 = let %51
+            %53:i32 = add %x_76, 1i
+            store %j, %53
+            next_iteration  # -> $B8
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_78:i32 = load %i
-        %40:i32 = add %x_78, 1i
-        store %i, %40
-        next_iteration %b4
+      $B5: {  # continuing
+        %54:i32 = load %i
+        %x_78:i32 = let %54
+        %56:i32 = add %x_78, 1i
+        store %i, %56
+        next_iteration  # -> $B4
       }
     }
-    %x_80:mat2x2<f32> = load %m
-    %42:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_82:i32 = load %42
-    %44:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-    %x_85:i32 = load %44
-    %46:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_88:i32 = load %46
-    %48:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-    %x_91:i32 = load %48
-    %50:f32 = convert %x_82
-    %51:f32 = convert %x_85
-    %52:vec2<f32> = construct %50, %51
-    %53:f32 = convert %x_88
-    %54:f32 = convert %x_91
-    %55:vec2<f32> = construct %53, %54
-    %x_95:mat2x2<f32> = construct %52, %55
-    %57:vec2<f32> = access %x_80, 0u
-    %58:vec2<f32> = access %x_95, 0u
-    %59:vec2<bool> = eq %57, %58
-    %60:bool = all %59
-    %61:vec2<f32> = access %x_80, 1u
-    %62:vec2<f32> = access %x_95, 1u
-    %63:vec2<bool> = eq %61, %62
-    %64:bool = all %63
-    %65:bool = and %60, %64
-    if %65 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
-        %66:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %x_109:i32 = load %66
-        %68:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_112:i32 = load %68
-        %70:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_115:i32 = load %70
-        %72:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-        %x_118:i32 = load %72
-        %74:f32 = convert %x_109
-        %75:f32 = convert %x_112
-        %76:f32 = convert %x_115
-        %77:f32 = convert %x_118
-        %78:vec4<f32> = construct %74, %75, %76, %77
-        store %x_GLF_color, %78
+    %57:mat2x2<f32> = load %m
+    %x_80:mat2x2<f32> = let %57
+    %59:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %60:i32 = load %59
+    %x_82:i32 = let %60
+    %62:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+    %63:i32 = load %62
+    %x_85:i32 = let %63
+    %65:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %66:i32 = load %65
+    %x_88:i32 = let %66
+    %68:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
+    %69:i32 = load %68
+    %x_91:i32 = let %69
+    %71:f32 = convert %x_82
+    %72:f32 = let %71
+    %73:f32 = convert %x_85
+    %74:vec2<f32> = construct %72, %73
+    %75:vec2<f32> = let %74
+    %76:f32 = convert %x_88
+    %77:f32 = let %76
+    %78:f32 = convert %x_91
+    %79:vec2<f32> = construct %77, %78
+    %80:mat2x2<f32> = construct %75, %79
+    %x_95:mat2x2<f32> = let %80
+    %82:vec2<f32> = access %x_80, 0u
+    %83:vec2<f32> = access %x_95, 0u
+    %84:vec2<bool> = eq %82, %83
+    %85:bool = all %84
+    %86:bool = let %85
+    %87:vec2<f32> = access %x_80, 1u
+    %88:vec2<f32> = access %x_95, 1u
+    %89:vec2<bool> = eq %87, %88
+    %90:bool = all %89
+    %91:bool = and %86, %90
+    if %91 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
+        %92:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %93:i32 = load %92
+        %x_109:i32 = let %93
+        %95:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %96:i32 = load %95
+        %x_112:i32 = let %96
+        %98:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %99:i32 = load %98
+        %x_115:i32 = let %99
+        %101:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+        %102:i32 = load %101
+        %x_118:i32 = let %102
+        %104:f32 = convert %x_109
+        %105:f32 = let %104
+        %106:f32 = convert %x_112
+        %107:f32 = let %106
+        %108:f32 = convert %x_115
+        %109:f32 = let %108
+        %110:f32 = convert %x_118
+        %111:vec4<f32> = construct %105, %107, %109, %110
+        store %x_GLF_color, %111
         exit_if  # if_4
       }
-      %b13 = block {  # false
-        %79:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_122:i32 = load %79
-        %x_123:f32 = convert %x_122
-        %82:vec4<f32> = construct %x_123, %x_123, %x_123, %x_123
-        store %x_GLF_color, %82
+      $B13: {  # false
+        %112:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %113:i32 = load %112
+        %x_122:i32 = let %113
+        %115:f32 = convert %x_122
+        %x_123:f32 = let %115
+        %117:vec4<f32> = construct %x_123, %x_123, %x_123, %x_123
+        store %x_GLF_color, %117
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %84:void = call %main_1
-    %85:vec4<f32> = load %x_GLF_color
-    %86:main_out = construct %85
-    ret %86
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %119:void = call %main_1
+    %120:vec4<f32> = load %x_GLF_color
+    %121:main_out = construct %120
+    ret %121
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.msl
index 1692514..69ebfca 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -12,34 +12,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %6:ptr<function, i32, read_write> = access %s, 0u
     %7:i32 = load %6
     %8:bool = eq %7, 1i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_18:i32 = load %x
-        %10:ptr<function, i32, read_write> = access %s, 0u
-        %x_19:i32 = load %10
-        %12:i32 = add %x_18, %x_19
-        ret %12
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %9:i32 = load %x
+        %x_18:i32 = let %9
+        %11:ptr<function, i32, read_write> = access %s, 0u
+        %12:i32 = load %11
+        %x_19:i32 = let %12
+        %14:i32 = add %x_18, %x_19
+        ret %14
       }
-      %b4 = block {  # false
-        %x_21:i32 = load %x
+      $B4: {  # false
+        %15:i32 = load %x
+        %x_21:i32 = let %15
         ret %x_21
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %a:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 1>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -48,73 +51,75 @@
     %param_2:ptr<function, S, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %a, 0i
-    %22:ptr<function, i32, read_write> = access %arr, 0i, 0u
-    %23:ptr<uniform, i32, read> = access %x_11, 0u
-    %24:i32 = load %23
-    store %22, %24
+    %25:ptr<function, i32, read_write> = access %arr, 0i, 0u
+    %26:ptr<uniform, i32, read> = access %x_11, 0u
+    %27:i32 = load %26
+    store %25, %27
     store %i, 0i
-    loop [b: %b6, c: %b7] {  # loop_1
-      %b6 = block {  # body
-        %25:i32 = load %i
-        %26:ptr<uniform, i32, read> = access %x_11, 0u
-        %27:i32 = load %26
-        %28:i32 = add 5i, %27
-        %29:bool = lt %25, %28
-        if %29 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+    loop [b: $B6, c: $B7] {  # loop_1
+      $B6: {  # body
+        %28:i32 = load %i
+        %29:ptr<uniform, i32, read> = access %x_11, 0u
+        %30:i32 = load %29
+        %31:i32 = add 5i, %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             exit_if  # if_2
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %30:i32 = load %i
-        %31:i32 = mod %30, 2i
-        %32:bool = neq %31, 0i
-        if %32 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
-            %33:ptr<function, S, read_write> = access %arr, 0i
-            %34:S = load %33
-            store %param, %34
-            %35:i32 = load %i
-            store %param_1, %35
-            %x_29:i32 = call %func_struct_S_i11_i1_, %param, %param_1
+        %33:i32 = load %i
+        %34:i32 = call %tint_mod_i32, %33, 2i
+        %36:bool = neq %34, 0i
+        if %36 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
             %37:ptr<function, S, read_write> = access %arr, 0i
-            %38:S = load %param
-            store %37, %38
+            %38:S = load %37
+            store %param, %38
+            %39:i32 = load %i
+            store %param_1, %39
+            %40:i32 = call %func_struct_S_i11_i1_, %param, %param_1
+            %x_29:i32 = let %40
+            %42:ptr<function, S, read_write> = access %arr, 0i
+            %43:S = load %param
+            store %42, %43
             store %a, %x_29
             exit_if  # if_3
           }
-          %b11 = block {  # false
-            %39:ptr<function, S, read_write> = access %arr, 0i
-            %40:S = load %39
-            store %param_2, %40
+          $B11: {  # false
+            %44:ptr<function, S, read_write> = access %arr, 0i
+            %45:S = load %44
+            store %param_2, %45
             store %param_3, 1i
-            %x_30:i32 = call %func_struct_S_i11_i1_, %param_2, %param_3
-            %42:ptr<function, S, read_write> = access %arr, 0i
-            %43:S = load %param_2
-            store %42, %43
+            %46:i32 = call %func_struct_S_i11_i1_, %param_2, %param_3
+            %x_30:i32 = let %46
+            %48:ptr<function, S, read_write> = access %arr, 0i
+            %49:S = load %param_2
+            store %48, %49
             store %a, %x_30
             exit_if  # if_3
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %44:i32 = load %i
-        %45:i32 = add %44, 1i
-        store %i, %45
-        next_iteration %b6
+      $B7: {  # continuing
+        %50:i32 = load %i
+        %51:i32 = add %50, 1i
+        store %i, %51
+        next_iteration  # -> $B6
       }
     }
-    %46:i32 = load %a
-    %47:bool = eq %46, 6i
-    if %47 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
+    %52:i32 = load %a
+    %53:bool = eq %52, 6i
+    if %53 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_4
       }
-      %b13 = block {  # false
+      $B13: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -122,12 +127,27 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %55:void = call %main_1
+    %56:vec4<f32> = load %x_GLF_color
+    %57:main_out = construct %56
+    ret %57
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %60:bool = eq %rhs, 0i
+    %61:bool = eq %lhs, -2147483648i
+    %62:bool = eq %rhs, -1i
+    %63:bool = and %61, %62
+    %64:bool = or %60, %63
+    %65:i32 = select %rhs, 1i, %64
+    %66:i32 = let %65
+    %67:i32 = div %lhs, %66
+    %68:i32 = mul %67, %66
+    %69:i32 = sub %lhs, %68
+    ret %69
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.msl
index 587796d..624813e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-replace-copy-object/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -12,34 +12,38 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_11:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %6:ptr<function, i32, read_write> = access %s, 0u
-    %x_17:i32 = load %6
-    %8:bool = eq %x_17, 1i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_18:i32 = load %x
-        %10:ptr<function, i32, read_write> = access %s, 0u
-        %x_19:i32 = load %10
-        %12:i32 = add %x_18, %x_19
-        ret %12
+    %7:i32 = load %6
+    %x_17:i32 = let %7
+    %9:bool = eq %x_17, 1i
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %10:i32 = load %x
+        %x_18:i32 = let %10
+        %12:ptr<function, i32, read_write> = access %s, 0u
+        %13:i32 = load %12
+        %x_19:i32 = let %13
+        %15:i32 = add %x_18, %x_19
+        ret %15
       }
-      %b4 = block {  # false
-        %x_21:i32 = load %x
+      $B4: {  # false
+        %16:i32 = load %x
+        %x_21:i32 = let %16
         ret %x_21
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %a:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 1>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -48,73 +52,86 @@
     %param_2:ptr<function, S, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %a, 0i
-    %22:ptr<uniform, i32, read> = access %x_11, 0u
-    %x_22:i32 = load %22
-    %24:ptr<function, i32, read_write> = access %arr, 0i, 0u
-    store %24, %x_22
+    %26:ptr<uniform, i32, read> = access %x_11, 0u
+    %27:i32 = load %26
+    %x_22:i32 = let %27
+    %29:ptr<function, i32, read_write> = access %arr, 0i, 0u
+    store %29, %x_22
     store %i, 0i
-    loop [b: %b6, c: %b7] {  # loop_1
-      %b6 = block {  # body
-        %x_23:i32 = load %i
-        %26:ptr<uniform, i32, read> = access %x_11, 0u
-        %x_24:i32 = load %26
-        %28:i32 = add 5i, %x_24
-        %29:bool = lt %x_23, %28
-        if %29 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+    loop [b: $B6, c: $B7] {  # loop_1
+      $B6: {  # body
+        %30:i32 = load %i
+        %x_23:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_11, 0u
+        %33:i32 = load %32
+        %x_24:i32 = let %33
+        %35:i32 = add 5i, %x_24
+        %36:bool = lt %x_23, %35
+        if %36 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             exit_if  # if_2
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_26:i32 = load %i
-        %31:i32 = mod %x_26, 2i
-        %32:bool = neq %31, 0i
-        if %32 [t: %b10, f: %b11] {  # if_3
-          %b10 = block {  # true
-            %33:ptr<function, S, read_write> = access %arr, 0i
-            %x_74:S = load %33
+        %37:i32 = load %i
+        %x_26:i32 = let %37
+        %39:i32 = call %tint_mod_i32, %x_26, 2i
+        %41:bool = neq %39, 0i
+        if %41 [t: $B10, f: $B11] {  # if_3
+          $B10: {  # true
+            %42:ptr<function, S, read_write> = access %arr, 0i
+            %43:S = load %42
+            %x_74:S = let %43
             store %param, %x_74
-            %x_28:i32 = load %i
+            %45:i32 = load %i
+            %x_28:i32 = let %45
             store %param_1, %x_28
-            %x_29:i32 = call %func_struct_S_i11_i1_, %param, %param_1
-            %x_75:S = load %param
-            %38:ptr<function, S, read_write> = access %arr, 0i
-            store %38, %x_75
+            %47:i32 = call %func_struct_S_i11_i1_, %param, %param_1
+            %x_29:i32 = let %47
+            %49:S = load %param
+            %x_75:S = let %49
+            %51:ptr<function, S, read_write> = access %arr, 0i
+            store %51, %x_75
             store %a, %x_29
             exit_if  # if_3
           }
-          %b11 = block {  # false
-            %39:ptr<function, S, read_write> = access %arr, 0i
-            %x_78:S = load %39
+          $B11: {  # false
+            %52:ptr<function, S, read_write> = access %arr, 0i
+            %53:S = load %52
+            %x_78:S = let %53
             store %param_2, %x_78
             store %param_3, 1i
-            %x_30:i32 = call %func_struct_S_i11_i1_, %param_2, %param_3
-            %x_79:S = load %param_2
-            %43:ptr<function, S, read_write> = access %arr, 0i
-            store %43, %x_79
+            %55:i32 = call %func_struct_S_i11_i1_, %param_2, %param_3
+            %x_30:i32 = let %55
+            %57:S = load %param_2
+            %x_79:S = let %57
+            %59:ptr<function, S, read_write> = access %arr, 0i
+            store %59, %x_79
             store %a, %x_30
             exit_if  # if_3
           }
         }
-        continue %b7
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %x_31:i32 = load %i
-        %45:i32 = add %x_31, 1i
-        store %i, %45
-        next_iteration %b6
+      $B7: {  # continuing
+        %60:i32 = load %i
+        %x_31:i32 = let %60
+        %62:i32 = add %x_31, 1i
+        store %i, %62
+        next_iteration  # -> $B6
       }
     }
-    %x_33:i32 = load %a
-    %47:bool = eq %x_33, 6i
-    if %47 [t: %b12, f: %b13] {  # if_4
-      %b12 = block {  # true
+    %63:i32 = load %a
+    %x_33:i32 = let %63
+    %65:bool = eq %x_33, 6i
+    if %65 [t: $B12, f: $B13] {  # if_4
+      $B12: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_4
       }
-      %b13 = block {  # false
+      $B13: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -122,12 +139,27 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %67:void = call %main_1
+    %68:vec4<f32> = load %x_GLF_color
+    %69:main_out = construct %68
+    ret %69
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %72:bool = eq %rhs, 0i
+    %73:bool = eq %lhs, -2147483648i
+    %74:bool = eq %rhs, -1i
+    %75:bool = and %73, %74
+    %76:bool = or %72, %75
+    %77:i32 = select %rhs, 1i, %76
+    %78:i32 = let %77
+    %79:i32 = div %lhs, %78
+    %80:i32 = mul %79, %78
+    %81:i32 = sub %lhs, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.msl
index c8834f6..f8c349d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,51 +12,56 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %5:i32 = load %4
     %6:f32 = convert %5
-    %7:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %8:i32 = load %7
-    %9:f32 = convert %8
-    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %11:i32 = load %10
-    %12:f32 = convert %11
-    %13:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %14:i32 = load %13
-    %15:f32 = convert %14
-    %16:vec4<f32> = construct %6, %9, %12, %15
-    store %x_GLF_color, %16
-    %17:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %18:i32 = load %17
-    %19:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %20:i32 = load %19
-    %21:bool = gt %18, %20
-    if %21 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            %22:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %23:i32 = load %22
-            %24:f32 = convert %23
-            %25:vec4<f32> = construct %24
-            store %x_GLF_color, %25
-            continue %b5
+    %7:f32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %9:i32 = load %8
+    %10:f32 = convert %9
+    %11:f32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %13:i32 = load %12
+    %14:f32 = convert %13
+    %15:f32 = let %14
+    %16:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %17:i32 = load %16
+    %18:f32 = convert %17
+    %19:vec4<f32> = construct %7, %11, %15, %18
+    store %x_GLF_color, %19
+    %20:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %21:i32 = load %20
+    %22:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %23:i32 = load %22
+    %24:bool = gt %21, %23
+    if %24 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %25:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %26:i32 = load %25
+            %27:f32 = convert %26
+            %28:vec4<f32> = construct %27
+            store %x_GLF_color, %28
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %26:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-            %x_50:i32 = load %26
-            %28:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %x_52:i32 = load %28
-            %30:bool = gt %x_50, %x_52
-            %31:bool = eq %30, false
-            break_if %31 %b4
+          $B5: {  # continuing
+            %29:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+            %30:i32 = load %29
+            %x_50:i32 = let %30
+            %32:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %33:i32 = load %32
+            %x_52:i32 = let %33
+            %35:bool = gt %x_50, %x_52
+            %36:bool = eq %35, false
+            break_if %36  # -> [t: exit_loop loop_1, f: $B4]
           }
         }
         ret
@@ -65,12 +70,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    ret %40
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.msl
index 0533ff1..50d0bfd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-do-while/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,51 +12,64 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_22:i32 = load %4
-    %6:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_25:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_28:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_31:i32 = load %10
-    %12:f32 = convert %x_22
-    %13:f32 = convert %x_25
-    %14:f32 = convert %x_28
-    %15:f32 = convert %x_31
-    %16:vec4<f32> = construct %12, %13, %14, %15
-    store %x_GLF_color, %16
-    %17:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_35:i32 = load %17
-    %19:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_37:i32 = load %19
-    %21:bool = gt %x_35, %x_37
-    if %21 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            %22:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %x_46:i32 = load %22
-            %x_47:f32 = convert %x_46
-            %25:vec4<f32> = construct %x_47, %x_47, %x_47, %x_47
-            store %x_GLF_color, %25
-            continue %b5
+    %5:i32 = load %4
+    %x_22:i32 = let %5
+    %7:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %8:i32 = load %7
+    %x_25:i32 = let %8
+    %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %11:i32 = load %10
+    %x_28:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %14:i32 = load %13
+    %x_31:i32 = let %14
+    %16:f32 = convert %x_22
+    %17:f32 = let %16
+    %18:f32 = convert %x_25
+    %19:f32 = let %18
+    %20:f32 = convert %x_28
+    %21:f32 = let %20
+    %22:f32 = convert %x_31
+    %23:vec4<f32> = construct %17, %19, %21, %22
+    store %x_GLF_color, %23
+    %24:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %25:i32 = load %24
+    %x_35:i32 = let %25
+    %27:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %28:i32 = load %27
+    %x_37:i32 = let %28
+    %30:bool = gt %x_35, %x_37
+    if %30 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %31:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %32:i32 = load %31
+            %x_46:i32 = let %32
+            %34:f32 = convert %x_46
+            %x_47:f32 = let %34
+            %36:vec4<f32> = construct %x_47, %x_47, %x_47, %x_47
+            store %x_GLF_color, %36
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %26:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-            %x_50:i32 = load %26
-            %28:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-            %x_52:i32 = load %28
-            %30:bool = gt %x_50, %x_52
-            %31:bool = eq %30, false
-            break_if %31 %b4
+          $B5: {  # continuing
+            %37:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+            %38:i32 = load %37
+            %x_50:i32 = let %38
+            %40:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+            %41:i32 = load %40
+            %x_52:i32 = let %41
+            %43:bool = gt %x_50, %x_52
+            %44:bool = eq %43, false
+            break_if %44  # -> [t: exit_loop loop_1, f: $B4]
           }
         }
         ret
@@ -65,12 +78,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %46:void = call %main_1
+    %47:vec4<f32> = load %x_GLF_color
+    %48:main_out = construct %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.msl
index fbb28fd..be2871a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -24,7 +24,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
@@ -32,24 +32,24 @@
   %x_11:ptr<uniform, buf2, read> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %9:i32 = load %8
     store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %12:i32 = load %11
         %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -57,26 +57,26 @@
         %15:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %16:i32 = load %15
         %17:bool = neq %14, %16
-        if %17 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %17 [t: $B7] {  # if_2
+          $B7: {  # true
             ret
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %18:i32 = load %i
         %19:i32 = add %18, 1i
         store %i, %19
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %20:f32 = load_vector_element %gl_FragCoord, 1u
     %21:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
     %22:f32 = load %21
     %23:bool = lt %20, %22
-    if %23 [t: %b8] {  # if_3
-      %b8 = block {  # true
+    if %23 [t: $B8] {  # if_3
+      $B8: {  # true
         ret
       }
     }
@@ -87,8 +87,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
     %29:void = call %main_1
     %30:vec4<f32> = load %x_GLF_color
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.msl
index b5edf9c..f9914fe 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-after-first-iteration/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -24,7 +24,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
@@ -32,68 +32,77 @@
   %x_11:ptr<uniform, buf2, read> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_42:i32 = load %8
+    %9:i32 = load %8
+    %x_42:i32 = let %9
     store %i, %x_42
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_47:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_49:i32 = load %11
-        %13:bool = lt %x_47, %x_49
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %11:i32 = load %i
+        %x_47:i32 = let %11
+        %13:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %14:i32 = load %13
+        %x_49:i32 = let %14
+        %16:bool = lt %x_47, %x_49
+        if %16 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_52:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_54:i32 = load %15
-        %17:bool = neq %x_52, %x_54
-        if %17 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %17:i32 = load %i
+        %x_52:i32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %20:i32 = load %19
+        %x_54:i32 = let %20
+        %22:bool = neq %x_52, %x_54
+        if %22 [t: $B7] {  # if_2
+          $B7: {  # true
             ret
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_58:i32 = load %i
-        %19:i32 = add %x_58, 1i
-        store %i, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %23:i32 = load %i
+        %x_58:i32 = let %23
+        %25:i32 = add %x_58, 1i
+        store %i, %25
+        next_iteration  # -> $B3
       }
     }
-    %x_61:f32 = load_vector_element %gl_FragCoord, 1u
-    %21:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
-    %x_63:f32 = load %21
-    %23:bool = lt %x_61, %x_63
-    if %23 [t: %b8] {  # if_3
-      %b8 = block {  # true
+    %26:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_61:f32 = let %26
+    %28:ptr<uniform, f32, read> = access %x_9, 0u, 0i, 0u
+    %29:f32 = load %28
+    %x_63:f32 = let %29
+    %31:bool = lt %x_61, %x_63
+    if %31 [t: $B8] {  # if_3
+      $B8: {  # true
         ret
       }
     }
-    %24:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-    %x_68:f32 = load_vector_element %24, 1u
-    %26:vec4<f32> = construct 1.0f, 1.0f, 1.0f, %x_68
-    store %x_GLF_color, %26
+    %32:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+    %33:f32 = load_vector_element %32, 1u
+    %x_68:f32 = let %33
+    %35:vec4<f32> = construct 1.0f, 1.0f, 1.0f, %x_68
+    store %x_GLF_color, %35
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    ret %40
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.msl
index 12b0b76..311b526 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%func_ = func():vec2<f32> -> %b2 {
-  %b2 = block {
+%func_ = func():vec2<f32> {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<vec2<f32>, 3>, read_write> = var
@@ -35,64 +35,71 @@
     %9:f32 = load %8
     store_vector_element %v, 1u, %9
     store %a, 2i
-    %x_77:i32 = load %a
-    %11:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %12:f32 = load %11
-    %13:vec2<f32> = construct %12
-    %14:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %15:f32 = load %14
-    %16:vec2<f32> = construct %15
-    %17:vec2<f32> = load %v
-    %18:array<vec2<f32>, 3> = construct %13, %16, %17
-    store %indexable, %18
-    %19:ptr<function, vec2<f32>, read_write> = access %indexable, %x_77
-    %x_79:vec2<f32> = load %19
+    %10:i32 = load %a
+    %x_77:i32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %13:f32 = load %12
+    %14:vec2<f32> = construct %13
+    %15:vec2<f32> = let %14
+    %16:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %17:f32 = load %16
+    %18:vec2<f32> = construct %17
+    %19:vec2<f32> = load %v
+    %20:array<vec2<f32>, 3> = construct %15, %18, %19
+    store %indexable, %20
+    %21:ptr<function, vec2<f32>, read_write> = access %indexable, %x_77
+    %22:vec2<f32> = load %21
+    %x_79:vec2<f32> = let %22
     ret %x_79
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
-    %x_40:vec2<f32> = call %func_
-    %23:f32 = access %x_40, 1u
-    %24:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %25:f32 = load %24
-    %26:bool = eq %23, %25
-    if %26 [t: %b4, f: %b5] {  # if_1
-      %b4 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %28:i32 = load %27
-        %29:f32 = convert %28
-        %30:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %37:i32 = load %36
-        %38:f32 = convert %37
-        %39:vec4<f32> = construct %29, %32, %35, %38
-        store %x_GLF_color, %39
+%main_1 = func():void {
+  $B3: {
+    %25:vec2<f32> = call %func_
+    %x_40:vec2<f32> = let %25
+    %27:f32 = access %x_40, 1u
+    %28:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %29:f32 = load %28
+    %30:bool = eq %27, %29
+    if %30 [t: $B4, f: $B5] {  # if_1
+      $B4: {  # true
+        %31:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:f32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:vec4<f32> = construct %34, %38, %42, %45
+        store %x_GLF_color, %46
         exit_if  # if_1
       }
-      %b5 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %41:i32 = load %40
-        %42:f32 = convert %41
-        %43:vec4<f32> = construct %42
-        store %x_GLF_color, %43
+      $B5: {  # false
+        %47:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %48:i32 = load %47
+        %49:f32 = convert %48
+        %50:vec4<f32> = construct %49
+        store %x_GLF_color, %50
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_color
+    %54:main_out = construct %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.msl
index c256d16..75561a9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-return-partly-undefined-vector-from-array/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,79 +20,97 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%func_ = func():vec2<f32> -> %b2 {
-  %b2 = block {
+%func_ = func():vec2<f32> {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<vec2<f32>, 3>, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_67:f32 = load %8
+    %9:f32 = load %8
+    %x_67:f32 = let %9
     store_vector_element %v, 1u, %x_67
     store %a, 2i
-    %10:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_70:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_73:f32 = load %12
-    %x_75:vec2<f32> = load %v
-    %x_77:i32 = load %a
-    %16:vec2<f32> = construct %x_70, %x_70
-    %17:vec2<f32> = construct %x_73, %x_73
-    %18:array<vec2<f32>, 3> = construct %16, %17, %x_75
-    store %indexable, %18
-    %19:ptr<function, vec2<f32>, read_write> = access %indexable, %x_77
-    %x_79:vec2<f32> = load %19
+    %11:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %12:f32 = load %11
+    %x_70:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %15:f32 = load %14
+    %x_73:f32 = let %15
+    %17:vec2<f32> = load %v
+    %x_75:vec2<f32> = let %17
+    %19:i32 = load %a
+    %x_77:i32 = let %19
+    %21:vec2<f32> = construct %x_70, %x_70
+    %22:vec2<f32> = let %21
+    %23:vec2<f32> = construct %x_73, %x_73
+    %24:array<vec2<f32>, 3> = construct %22, %23, %x_75
+    store %indexable, %24
+    %25:ptr<function, vec2<f32>, read_write> = access %indexable, %x_77
+    %26:vec2<f32> = load %25
+    %x_79:vec2<f32> = let %26
     ret %x_79
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
-    %x_40:vec2<f32> = call %func_
-    %23:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_43:f32 = load %23
-    %25:f32 = access %x_40, 1u
-    %26:bool = eq %25, %x_43
-    if %26 [t: %b4, f: %b5] {  # if_1
-      %b4 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_49:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_52:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_55:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
-        %x_58:i32 = load %33
-        %35:f32 = convert %x_49
-        %36:f32 = convert %x_52
-        %37:f32 = convert %x_55
-        %38:f32 = convert %x_58
-        %39:vec4<f32> = construct %35, %36, %37, %38
-        store %x_GLF_color, %39
+%main_1 = func():void {
+  $B3: {
+    %29:vec2<f32> = call %func_
+    %x_40:vec2<f32> = let %29
+    %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %32:f32 = load %31
+    %x_43:f32 = let %32
+    %34:f32 = access %x_40, 1u
+    %35:bool = eq %34, %x_43
+    if %35 [t: $B4, f: $B5] {  # if_1
+      $B4: {  # true
+        %36:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %37:i32 = load %36
+        %x_49:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %40:i32 = load %39
+        %x_52:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_55:i32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_11, 0u, 0i, 0u
+        %46:i32 = load %45
+        %x_58:i32 = let %46
+        %48:f32 = convert %x_49
+        %49:f32 = let %48
+        %50:f32 = convert %x_52
+        %51:f32 = let %50
+        %52:f32 = convert %x_55
+        %53:f32 = let %52
+        %54:f32 = convert %x_58
+        %55:vec4<f32> = construct %49, %51, %53, %54
+        store %x_GLF_color, %55
         exit_if  # if_1
       }
-      %b5 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
-        %x_62:i32 = load %40
-        %x_63:f32 = convert %x_62
-        %43:vec4<f32> = construct %x_63, %x_63, %x_63, %x_63
-        store %x_GLF_color, %43
+      $B5: {  # false
+        %56:ptr<uniform, i32, read> = access %x_11, 0u, 1i, 0u
+        %57:i32 = load %56
+        %x_62:i32 = let %57
+        %59:f32 = convert %x_62
+        %x_63:f32 = let %59
+        %61:vec4<f32> = construct %x_63, %x_63, %x_63, %x_63
+        store %x_GLF_color, %61
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.msl
index 8678bc3..a5f8eae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %sums:ptr<function, array<f32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -42,346 +42,353 @@
     %x_215:ptr<function, bool, read_write> = var
     %x_216:ptr<function, bool, read_write> = var
     %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_20:i32 = load %18
-    %20:ptr<function, f32, read_write> = access %sums, %x_20
-    %21:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %22:f32 = load %21
-    store %20, %22
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_22:i32 = load %23
-    %25:ptr<function, f32, read_write> = access %sums, %x_22
-    %26:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %27:f32 = load %26
-    store %25, %27
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %29:i32 = load %28
-    store %a, %29
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %30:i32 = load %a
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %32:i32 = load %31
-        %33:bool = lt %30, %32
-        if %33 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %18
+    %x_20:i32 = let %19
+    %21:ptr<function, f32, read_write> = access %sums, %x_20
+    %22:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %23:f32 = load %22
+    store %21, %23
+    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %25:i32 = load %24
+    %x_22:i32 = let %25
+    %27:ptr<function, f32, read_write> = access %sums, %x_22
+    %28:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %29:f32 = load %28
+    store %27, %29
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %31:i32 = load %30
+    store %a, %31
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %32:i32 = load %a
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %34:i32 = load %33
+        %35:bool = lt %32, %34
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %35:i32 = load %34
-        store %b, %35
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %36:i32 = load %b
-            %37:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %38:i32 = load %37
-            %39:bool = lt %36, %38
-            if %39 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %37:i32 = load %36
+        store %b, %37
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %38:i32 = load %b
+            %39:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %40:i32 = load %39
+            %41:bool = lt %38, %40
+            if %41 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %40:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-            %41:i32 = load %40
-            store %c, %41
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %42:i32 = load %c
-                %43:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-                %44:i32 = load %43
-                %45:bool = lte %42, %44
-                if %45 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            %42:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+            %43:i32 = load %42
+            store %c, %43
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %44:i32 = load %c
+                %45:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+                %46:i32 = load %45
+                %47:bool = lte %44, %46
+                if %47 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %46:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %47:i32 = load %46
-                store %d, %47
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %48:i32 = load %d
-                    %49:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-                    %50:i32 = load %49
-                    %51:bool = lt %48, %50
-                    if %51 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                %48:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %49:i32 = load %48
+                store %d, %49
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %50:i32 = load %d
+                    %51:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+                    %52:i32 = load %51
+                    %53:bool = lt %50, %52
+                    if %53 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %52:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                    %53:i32 = load %52
-                    store %e, %53
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
-                        %54:i32 = load %e
-                        %55:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-                        %56:i32 = load %55
-                        %57:bool = lte %54, %56
-                        if %57 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                    %54:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                    %55:i32 = load %54
+                    store %e, %55
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %56:i32 = load %e
+                        %57:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+                        %58:i32 = load %57
+                        %59:bool = lte %56, %58
+                        if %59 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
-                        %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                        %59:i32 = load %58
-                        store %f, %59
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
-                            %60:i32 = load %f
-                            %61:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                            %62:i32 = load %61
-                            %63:bool = lt %60, %62
-                            if %63 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                        %60:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                        %61:i32 = load %60
+                        store %f, %61
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %62:i32 = load %f
+                            %63:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                            %64:i32 = load %63
+                            %65:bool = lt %62, %64
+                            if %65 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
-                            %64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                            %65:i32 = load %64
-                            store %g, %65
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
-                                %66:i32 = load %g
-                                %67:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-                                %68:i32 = load %67
-                                %69:bool = lt %66, %68
-                                if %69 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                            %66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                            %67:i32 = load %66
+                            store %g, %67
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
+                                %68:i32 = load %g
+                                %69:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+                                %70:i32 = load %69
+                                %71:bool = lt %68, %70
+                                if %71 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B30: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
-                                %70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                                %71:i32 = load %70
-                                store %h, %71
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
-                                    %72:i32 = load %h
-                                    %73:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                                    %74:i32 = load %73
-                                    %75:bool = lt %72, %74
-                                    if %75 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                %72:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                                %73:i32 = load %72
+                                store %h, %73
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
+                                    %74:i32 = load %h
+                                    %75:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                                    %76:i32 = load %75
+                                    %77:bool = lt %74, %76
+                                    if %77 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B34: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
-                                    %76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                                    %77:i32 = load %76
-                                    store %i, %77
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
-                                        %78:i32 = load %i
-                                        %79:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-                                        %80:i32 = load %79
-                                        %81:bool = lt %78, %80
-                                        if %81 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                    %78:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                                    %79:i32 = load %78
+                                    store %i, %79
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
+                                        %80:i32 = load %i
+                                        %81:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+                                        %82:i32 = load %81
+                                        %83:bool = lt %80, %82
+                                        if %83 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B38: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
-                                        %82:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                                        %83:i32 = load %82
-                                        store %j, %83
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
-                                            %84:i32 = load %j
-                                            %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                                            %86:i32 = load %85
-                                            %87:bool = gt %84, %86
-                                            if %87 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                        %84:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                                        %85:i32 = load %84
+                                        store %j, %85
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
+                                            %86:i32 = load %j
+                                            %87:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                                            %88:i32 = load %87
+                                            %89:bool = gt %86, %88
+                                            if %89 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B42: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
-                                            %x_53:i32 = load %a
-                                            %89:ptr<function, f32, read_write> = access %sums, %x_53
                                             %90:i32 = load %a
-                                            %91:ptr<function, f32, read_write> = access %sums, %90
-                                            %92:f32 = load %91
-                                            %93:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-                                            %94:f32 = load %93
-                                            %95:f32 = add %92, %94
-                                            store %89, %95
-                                            continue %b40
+                                            %x_53:i32 = let %90
+                                            %92:ptr<function, f32, read_write> = access %sums, %x_53
+                                            %93:i32 = load %a
+                                            %94:ptr<function, f32, read_write> = access %sums, %93
+                                            %95:f32 = load %94
+                                            %96:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+                                            %97:f32 = load %96
+                                            %98:f32 = add %95, %97
+                                            store %92, %98
+                                            continue  # -> $B40
                                           }
-                                          %b40 = block {  # continuing
-                                            %96:i32 = load %j
-                                            %97:i32 = sub %96, 1i
-                                            store %j, %97
-                                            next_iteration %b39
+                                          $B40: {  # continuing
+                                            %99:i32 = load %j
+                                            %100:i32 = sub %99, 1i
+                                            store %j, %100
+                                            next_iteration  # -> $B39
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B36
                                       }
-                                      %b36 = block {  # continuing
-                                        %98:i32 = load %i
-                                        %99:i32 = add %98, 1i
-                                        store %i, %99
-                                        next_iteration %b35
+                                      $B36: {  # continuing
+                                        %101:i32 = load %i
+                                        %102:i32 = add %101, 1i
+                                        store %i, %102
+                                        next_iteration  # -> $B35
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B32
                                   }
-                                  %b32 = block {  # continuing
-                                    %100:i32 = load %h
-                                    %101:i32 = add %100, 1i
-                                    store %h, %101
-                                    next_iteration %b31
+                                  $B32: {  # continuing
+                                    %103:i32 = load %h
+                                    %104:i32 = add %103, 1i
+                                    store %h, %104
+                                    next_iteration  # -> $B31
                                   }
                                 }
-                                continue %b28
+                                continue  # -> $B28
                               }
-                              %b28 = block {  # continuing
-                                %102:i32 = load %g
-                                %103:i32 = add %102, 1i
-                                store %g, %103
-                                next_iteration %b27
+                              $B28: {  # continuing
+                                %105:i32 = load %g
+                                %106:i32 = add %105, 1i
+                                store %g, %106
+                                next_iteration  # -> $B27
                               }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
-                            %104:i32 = load %f
-                            %105:i32 = add %104, 1i
-                            store %f, %105
-                            next_iteration %b23
+                          $B24: {  # continuing
+                            %107:i32 = load %f
+                            %108:i32 = add %107, 1i
+                            store %f, %108
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
-                        %106:i32 = load %e
-                        %107:i32 = add %106, 1i
-                        store %e, %107
-                        next_iteration %b19
+                      $B20: {  # continuing
+                        %109:i32 = load %e
+                        %110:i32 = add %109, 1i
+                        store %e, %110
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %108:i32 = load %d
-                    %109:i32 = add %108, 1i
-                    store %d, %109
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %111:i32 = load %d
+                    %112:i32 = add %111, 1i
+                    store %d, %112
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %110:i32 = load %c
-                %111:i32 = add %110, 1i
-                store %c, %111
-                next_iteration %b11
+              $B12: {  # continuing
+                %113:i32 = load %c
+                %114:i32 = add %113, 1i
+                store %c, %114
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %112:i32 = load %b
-            %113:i32 = add %112, 1i
-            store %b, %113
-            next_iteration %b7
+          $B8: {  # continuing
+            %115:i32 = load %b
+            %116:i32 = add %115, 1i
+            store %b, %116
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %114:i32 = load %a
-        %115:i32 = add %114, 1i
-        store %a, %115
-        next_iteration %b3
+      $B4: {  # continuing
+        %117:i32 = load %a
+        %118:i32 = add %117, 1i
+        store %a, %118
+        next_iteration  # -> $B3
       }
     }
-    %116:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %117:i32 = load %116
-    %118:ptr<function, f32, read_write> = access %sums, %117
-    %119:f32 = load %118
-    %120:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %121:f32 = load %120
-    %x_207:bool = eq %119, %121
+    %119:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %120:i32 = load %119
+    %121:ptr<function, f32, read_write> = access %sums, %120
+    %122:f32 = load %121
+    %123:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %124:f32 = load %123
+    %125:bool = eq %122, %124
+    %x_207:bool = let %125
     store %x_216, %x_207
-    if %x_207 [t: %b43] {  # if_11
-      %b43 = block {  # true
-        %123:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %124:i32 = load %123
-        %125:ptr<function, f32, read_write> = access %sums, %124
-        %126:f32 = load %125
-        %127:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %128:f32 = load %127
-        %129:bool = eq %126, %128
-        store %x_215, %129
-        %130:bool = load %x_215
-        store %x_216, %130
+    if %x_207 [t: $B43] {  # if_11
+      $B43: {  # true
+        %127:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %128:i32 = load %127
+        %129:ptr<function, f32, read_write> = access %sums, %128
+        %130:f32 = load %129
+        %131:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %132:f32 = load %131
+        %133:bool = eq %130, %132
+        store %x_215, %133
+        %134:bool = load %x_215
+        store %x_216, %134
         exit_if  # if_11
       }
     }
-    %131:bool = load %x_216
-    if %131 [t: %b44, f: %b45] {  # if_12
-      %b44 = block {  # true
-        %132:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %133:i32 = load %132
-        %134:f32 = convert %133
-        %135:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %136:i32 = load %135
-        %137:f32 = convert %136
-        %138:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %139:i32 = load %138
-        %140:f32 = convert %139
-        %141:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %142:i32 = load %141
-        %143:f32 = convert %142
-        %144:vec4<f32> = construct %134, %137, %140, %143
-        store %x_GLF_color, %144
+    %135:bool = load %x_216
+    if %135 [t: $B44, f: $B45] {  # if_12
+      $B44: {  # true
+        %136:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %137:i32 = load %136
+        %138:f32 = convert %137
+        %139:f32 = let %138
+        %140:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %141:i32 = load %140
+        %142:f32 = convert %141
+        %143:f32 = let %142
+        %144:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %145:i32 = load %144
+        %146:f32 = convert %145
+        %147:f32 = let %146
+        %148:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %149:i32 = load %148
+        %150:f32 = convert %149
+        %151:vec4<f32> = construct %139, %143, %147, %150
+        store %x_GLF_color, %151
         exit_if  # if_12
       }
-      %b45 = block {  # false
-        %145:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %146:i32 = load %145
-        %147:f32 = convert %146
-        %148:vec4<f32> = construct %147
-        store %x_GLF_color, %148
+      $B45: {  # false
+        %152:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %153:i32 = load %152
+        %154:f32 = convert %153
+        %155:vec4<f32> = construct %154
+        store %x_GLF_color, %155
         exit_if  # if_12
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b46 {
-  %b46 = block {
-    %150:void = call %main_1
-    %151:vec4<f32> = load %x_GLF_color
-    %152:main_out = construct %151
-    ret %152
+%tint_symbol = @fragment func():main_out {
+  $B46: {
+    %157:void = call %main_1
+    %158:vec4<f32> = load %x_GLF_color
+    %159:main_out = construct %158
+    ret %159
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.msl
index d190569..738afad 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops-array-access/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %sums:ptr<function, array<f32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %b:ptr<function, i32, read_write> = var
@@ -42,345 +42,409 @@
     %x_215:ptr<function, bool, read_write> = var
     %x_216_phi:ptr<function, bool, read_write> = var
     %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_20:i32 = load %18
-    %20:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_110:f32 = load %20
-    %22:ptr<function, f32, read_write> = access %sums, %x_20
-    store %22, %x_110
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_22:i32 = load %23
-    %25:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_114:f32 = load %25
-    %27:ptr<function, f32, read_write> = access %sums, %x_22
-    store %27, %x_114
-    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_23:i32 = load %28
+    %19:i32 = load %18
+    %x_20:i32 = let %19
+    %21:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %22:f32 = load %21
+    %x_110:f32 = let %22
+    %24:ptr<function, f32, read_write> = access %sums, %x_20
+    store %24, %x_110
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %26:i32 = load %25
+    %x_22:i32 = let %26
+    %28:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %29:f32 = load %28
+    %x_114:f32 = let %29
+    %31:ptr<function, f32, read_write> = access %sums, %x_22
+    store %31, %x_114
+    %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %33:i32 = load %32
+    %x_23:i32 = let %33
     store %a, %x_23
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_24:i32 = load %a
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_25:i32 = load %31
-        %33:bool = lt %x_24, %x_25
-        if %33 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %35:i32 = load %a
+        %x_24:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %38:i32 = load %37
+        %x_25:i32 = let %38
+        %40:bool = lt %x_24, %x_25
+        if %40 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %x_26:i32 = load %34
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %42:i32 = load %41
+        %x_26:i32 = let %42
         store %b, %x_26
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_27:i32 = load %b
-            %37:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-            %x_28:i32 = load %37
-            %39:bool = lt %x_27, %x_28
-            if %39 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %44:i32 = load %b
+            %x_27:i32 = let %44
+            %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+            %47:i32 = load %46
+            %x_28:i32 = let %47
+            %49:bool = lt %x_27, %x_28
+            if %49 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %40:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-            %x_29:i32 = load %40
+            %50:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+            %51:i32 = load %50
+            %x_29:i32 = let %51
             store %c, %x_29
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_30:i32 = load %c
-                %43:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-                %x_31:i32 = load %43
-                %45:bool = lte %x_30, %x_31
-                if %45 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %53:i32 = load %c
+                %x_30:i32 = let %53
+                %55:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+                %56:i32 = load %55
+                %x_31:i32 = let %56
+                %58:bool = lte %x_30, %x_31
+                if %58 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %46:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                %x_32:i32 = load %46
+                %59:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                %60:i32 = load %59
+                %x_32:i32 = let %60
                 store %d, %x_32
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %x_33:i32 = load %d
-                    %49:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-                    %x_34:i32 = load %49
-                    %51:bool = lt %x_33, %x_34
-                    if %51 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %62:i32 = load %d
+                    %x_33:i32 = let %62
+                    %64:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+                    %65:i32 = load %64
+                    %x_34:i32 = let %65
+                    %67:bool = lt %x_33, %x_34
+                    if %67 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %52:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                    %x_35:i32 = load %52
+                    %68:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                    %69:i32 = load %68
+                    %x_35:i32 = let %69
                     store %e, %x_35
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
-                        %x_36:i32 = load %e
-                        %55:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-                        %x_37:i32 = load %55
-                        %57:bool = lte %x_36, %x_37
-                        if %57 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %71:i32 = load %e
+                        %x_36:i32 = let %71
+                        %73:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+                        %74:i32 = load %73
+                        %x_37:i32 = let %74
+                        %76:bool = lte %x_36, %x_37
+                        if %76 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
-                        %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                        %x_38:i32 = load %58
+                        %77:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                        %78:i32 = load %77
+                        %x_38:i32 = let %78
                         store %f, %x_38
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
-                            %x_39:i32 = load %f
-                            %61:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                            %x_40:i32 = load %61
-                            %63:bool = lt %x_39, %x_40
-                            if %63 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %80:i32 = load %f
+                            %x_39:i32 = let %80
+                            %82:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                            %83:i32 = load %82
+                            %x_40:i32 = let %83
+                            %85:bool = lt %x_39, %x_40
+                            if %85 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
-                            %64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                            %x_41:i32 = load %64
+                            %86:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                            %87:i32 = load %86
+                            %x_41:i32 = let %87
                             store %g, %x_41
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
-                                %x_42:i32 = load %g
-                                %67:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-                                %x_43:i32 = load %67
-                                %69:bool = lt %x_42, %x_43
-                                if %69 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                            loop [b: $B27, c: $B28] {  # loop_7
+                              $B27: {  # body
+                                %89:i32 = load %g
+                                %x_42:i32 = let %89
+                                %91:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+                                %92:i32 = load %91
+                                %x_43:i32 = let %92
+                                %94:bool = lt %x_42, %x_43
+                                if %94 [t: $B29, f: $B30] {  # if_7
+                                  $B29: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B30: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
-                                %70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                                %x_44:i32 = load %70
+                                %95:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                                %96:i32 = load %95
+                                %x_44:i32 = let %96
                                 store %h, %x_44
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
-                                    %x_45:i32 = load %h
-                                    %73:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                                    %x_46:i32 = load %73
-                                    %75:bool = lt %x_45, %x_46
-                                    if %75 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                loop [b: $B31, c: $B32] {  # loop_8
+                                  $B31: {  # body
+                                    %98:i32 = load %h
+                                    %x_45:i32 = let %98
+                                    %100:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                                    %101:i32 = load %100
+                                    %x_46:i32 = let %101
+                                    %103:bool = lt %x_45, %x_46
+                                    if %103 [t: $B33, f: $B34] {  # if_8
+                                      $B33: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B34: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
-                                    %76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                                    %x_47:i32 = load %76
+                                    %104:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                                    %105:i32 = load %104
+                                    %x_47:i32 = let %105
                                     store %i, %x_47
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
-                                        %x_48:i32 = load %i
-                                        %79:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-                                        %x_49:i32 = load %79
-                                        %81:bool = lt %x_48, %x_49
-                                        if %81 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                    loop [b: $B35, c: $B36] {  # loop_9
+                                      $B35: {  # body
+                                        %107:i32 = load %i
+                                        %x_48:i32 = let %107
+                                        %109:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+                                        %110:i32 = load %109
+                                        %x_49:i32 = let %110
+                                        %112:bool = lt %x_48, %x_49
+                                        if %112 [t: $B37, f: $B38] {  # if_9
+                                          $B37: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B38: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
-                                        %82:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-                                        %x_50:i32 = load %82
+                                        %113:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+                                        %114:i32 = load %113
+                                        %x_50:i32 = let %114
                                         store %j, %x_50
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
-                                            %x_51:i32 = load %j
-                                            %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-                                            %x_52:i32 = load %85
-                                            %87:bool = gt %x_51, %x_52
-                                            if %87 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                        loop [b: $B39, c: $B40] {  # loop_10
+                                          $B39: {  # body
+                                            %116:i32 = load %j
+                                            %x_51:i32 = let %116
+                                            %118:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+                                            %119:i32 = load %118
+                                            %x_52:i32 = let %119
+                                            %121:bool = gt %x_51, %x_52
+                                            if %121 [t: $B41, f: $B42] {  # if_10
+                                              $B41: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B42: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
-                                            %x_53:i32 = load %a
-                                            %89:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
-                                            %x_197:f32 = load %89
-                                            %91:ptr<function, f32, read_write> = access %sums, %x_53
-                                            %x_199:f32 = load %91
-                                            %93:ptr<function, f32, read_write> = access %sums, %x_53
-                                            %94:f32 = add %x_199, %x_197
-                                            store %93, %94
-                                            continue %b40
+                                            %122:i32 = load %a
+                                            %x_53:i32 = let %122
+                                            %124:ptr<uniform, f32, read> = access %x_8, 0u, 2i, 0u
+                                            %125:f32 = load %124
+                                            %x_197:f32 = let %125
+                                            %127:ptr<function, f32, read_write> = access %sums, %x_53
+                                            %128:f32 = load %127
+                                            %x_199:f32 = let %128
+                                            %130:ptr<function, f32, read_write> = access %sums, %x_53
+                                            %131:f32 = add %x_199, %x_197
+                                            store %130, %131
+                                            continue  # -> $B40
                                           }
-                                          %b40 = block {  # continuing
-                                            %x_54:i32 = load %j
-                                            %96:i32 = sub %x_54, 1i
-                                            store %j, %96
-                                            next_iteration %b39
+                                          $B40: {  # continuing
+                                            %132:i32 = load %j
+                                            %x_54:i32 = let %132
+                                            %134:i32 = sub %x_54, 1i
+                                            store %j, %134
+                                            next_iteration  # -> $B39
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B36
                                       }
-                                      %b36 = block {  # continuing
-                                        %x_56:i32 = load %i
-                                        %98:i32 = add %x_56, 1i
-                                        store %i, %98
-                                        next_iteration %b35
+                                      $B36: {  # continuing
+                                        %135:i32 = load %i
+                                        %x_56:i32 = let %135
+                                        %137:i32 = add %x_56, 1i
+                                        store %i, %137
+                                        next_iteration  # -> $B35
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B32
                                   }
-                                  %b32 = block {  # continuing
-                                    %x_58:i32 = load %h
-                                    %100:i32 = add %x_58, 1i
-                                    store %h, %100
-                                    next_iteration %b31
+                                  $B32: {  # continuing
+                                    %138:i32 = load %h
+                                    %x_58:i32 = let %138
+                                    %140:i32 = add %x_58, 1i
+                                    store %h, %140
+                                    next_iteration  # -> $B31
                                   }
                                 }
-                                continue %b28
+                                continue  # -> $B28
                               }
-                              %b28 = block {  # continuing
-                                %x_60:i32 = load %g
-                                %102:i32 = add %x_60, 1i
-                                store %g, %102
-                                next_iteration %b27
+                              $B28: {  # continuing
+                                %141:i32 = load %g
+                                %x_60:i32 = let %141
+                                %143:i32 = add %x_60, 1i
+                                store %g, %143
+                                next_iteration  # -> $B27
                               }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
-                            %x_62:i32 = load %f
-                            %104:i32 = add %x_62, 1i
-                            store %f, %104
-                            next_iteration %b23
+                          $B24: {  # continuing
+                            %144:i32 = load %f
+                            %x_62:i32 = let %144
+                            %146:i32 = add %x_62, 1i
+                            store %f, %146
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
-                        %x_64:i32 = load %e
-                        %106:i32 = add %x_64, 1i
-                        store %e, %106
-                        next_iteration %b19
+                      $B20: {  # continuing
+                        %147:i32 = load %e
+                        %x_64:i32 = let %147
+                        %149:i32 = add %x_64, 1i
+                        store %e, %149
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %x_66:i32 = load %d
-                    %108:i32 = add %x_66, 1i
-                    store %d, %108
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %150:i32 = load %d
+                    %x_66:i32 = let %150
+                    %152:i32 = add %x_66, 1i
+                    store %d, %152
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_68:i32 = load %c
-                %110:i32 = add %x_68, 1i
-                store %c, %110
-                next_iteration %b11
+              $B12: {  # continuing
+                %153:i32 = load %c
+                %x_68:i32 = let %153
+                %155:i32 = add %x_68, 1i
+                store %c, %155
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_70:i32 = load %b
-            %112:i32 = add %x_70, 1i
-            store %b, %112
-            next_iteration %b7
+          $B8: {  # continuing
+            %156:i32 = load %b
+            %x_70:i32 = let %156
+            %158:i32 = add %x_70, 1i
+            store %b, %158
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_72:i32 = load %a
-        %114:i32 = add %x_72, 1i
-        store %a, %114
-        next_iteration %b3
+      $B4: {  # continuing
+        %159:i32 = load %a
+        %x_72:i32 = let %159
+        %161:i32 = add %x_72, 1i
+        store %a, %161
+        next_iteration  # -> $B3
       }
     }
-    %115:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_74:i32 = load %115
-    %117:ptr<function, f32, read_write> = access %sums, %x_74
-    %x_204:f32 = load %117
-    %119:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-    %x_206:f32 = load %119
-    %x_207:bool = eq %x_204, %x_206
+    %162:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %163:i32 = load %162
+    %x_74:i32 = let %163
+    %165:ptr<function, f32, read_write> = access %sums, %x_74
+    %166:f32 = load %165
+    %x_204:f32 = let %166
+    %168:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+    %169:f32 = load %168
+    %x_206:f32 = let %169
+    %171:bool = eq %x_204, %x_206
+    %x_207:bool = let %171
     store %x_216_phi, %x_207
-    if %x_207 [t: %b43] {  # if_11
-      %b43 = block {  # true
-        %122:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_75:i32 = load %122
-        %124:ptr<function, f32, read_write> = access %sums, %x_75
-        %x_212:f32 = load %124
-        %126:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_214:f32 = load %126
-        %128:bool = eq %x_212, %x_214
-        store %x_215, %128
-        %129:bool = load %x_215
-        store %x_216_phi, %129
+    if %x_207 [t: $B43] {  # if_11
+      $B43: {  # true
+        %173:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %174:i32 = load %173
+        %x_75:i32 = let %174
+        %176:ptr<function, f32, read_write> = access %sums, %x_75
+        %177:f32 = load %176
+        %x_212:f32 = let %177
+        %179:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %180:f32 = load %179
+        %x_214:f32 = let %180
+        %182:bool = eq %x_212, %x_214
+        store %x_215, %182
+        %183:bool = load %x_215
+        store %x_216_phi, %183
         exit_if  # if_11
       }
     }
-    %x_216:bool = load %x_216_phi
-    if %x_216 [t: %b44, f: %b45] {  # if_12
-      %b44 = block {  # true
-        %131:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_76:i32 = load %131
-        %133:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_77:i32 = load %133
-        %135:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_78:i32 = load %135
-        %137:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_79:i32 = load %137
-        %139:f32 = convert %x_76
-        %140:f32 = convert %x_77
-        %141:f32 = convert %x_78
-        %142:f32 = convert %x_79
-        %143:vec4<f32> = construct %139, %140, %141, %142
-        store %x_GLF_color, %143
+    %184:bool = load %x_216_phi
+    %x_216:bool = let %184
+    if %x_216 [t: $B44, f: $B45] {  # if_12
+      $B44: {  # true
+        %186:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %187:i32 = load %186
+        %x_76:i32 = let %187
+        %189:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %190:i32 = load %189
+        %x_77:i32 = let %190
+        %192:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %193:i32 = load %192
+        %x_78:i32 = let %193
+        %195:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %196:i32 = load %195
+        %x_79:i32 = let %196
+        %198:f32 = convert %x_76
+        %199:f32 = let %198
+        %200:f32 = convert %x_77
+        %201:f32 = let %200
+        %202:f32 = convert %x_78
+        %203:f32 = let %202
+        %204:f32 = convert %x_79
+        %205:vec4<f32> = construct %199, %201, %203, %204
+        store %x_GLF_color, %205
         exit_if  # if_12
       }
-      %b45 = block {  # false
-        %144:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_80:i32 = load %144
-        %x_230:f32 = convert %x_80
-        %147:vec4<f32> = construct %x_230, %x_230, %x_230, %x_230
-        store %x_GLF_color, %147
+      $B45: {  # false
+        %206:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %207:i32 = load %206
+        %x_80:i32 = let %207
+        %209:f32 = convert %x_80
+        %x_230:f32 = let %209
+        %211:vec4<f32> = construct %x_230, %x_230, %x_230, %x_230
+        store %x_GLF_color, %211
         exit_if  # if_12
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b46 {
-  %b46 = block {
-    %149:void = call %main_1
-    %150:vec4<f32> = load %x_GLF_color
-    %151:main_out = construct %150
-    ret %151
+%tint_symbol = @fragment func():main_out {
+  $B46: {
+    %213:void = call %main_1
+    %214:vec4<f32> = load %x_GLF_color
+    %215:main_out = construct %214
+    ret %215
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.msl
index 460cbc3..209e8fe 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i0:ptr<function, i32, read_write> = var
     %i1:ptr<function, i32, read_write> = var
@@ -28,276 +28,273 @@
     %i9:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i0, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %15:i32 = load %i0
         %16:ptr<uniform, i32, read> = access %x_7, 0u
         %17:i32 = load %16
         %18:bool = lt %15, %17
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %18 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %i1, 0i
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %19:i32 = load %i1
             %20:ptr<uniform, i32, read> = access %x_7, 0u
             %21:i32 = load %20
             %22:bool = lt %19, %21
-            if %22 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if %22 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
             store %i2, 0i
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
                 %23:i32 = load %i2
                 %24:ptr<uniform, i32, read> = access %x_7, 0u
                 %25:i32 = load %24
                 %26:bool = lt %23, %25
-                if %26 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+                if %26 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %i3, 0i
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
                     %27:i32 = load %i3
                     %28:ptr<uniform, i32, read> = access %x_7, 0u
                     %29:i32 = load %28
                     %30:i32 = add %29, 2i
                     %31:bool = lt %27, %30
-                    if %31 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                    if %31 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
                     store %i4, 0i
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
                         %32:i32 = load %i4
                         %33:ptr<uniform, i32, read> = access %x_7, 0u
                         %34:i32 = load %33
                         %35:bool = lt %32, %34
-                        if %35 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                        if %35 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
                         store %i5, 0i
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
                             %36:i32 = load %i5
                             %37:ptr<uniform, i32, read> = access %x_7, 0u
                             %38:i32 = load %37
                             %39:bool = lt %36, %38
-                            if %39 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                            if %39 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
+                            loop [b: $B27] {  # loop_7
+                              $B27: {  # body
                                 %40:ptr<uniform, i32, read> = access %x_7, 0u
                                 %41:i32 = load %40
                                 %42:bool = gt %41, 0i
-                                if %42 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                                if %42 [t: $B28, f: $B29] {  # if_7
+                                  $B28: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B29: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
                                 store %i6, 0i
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
+                                loop [b: $B30, c: $B31] {  # loop_8
+                                  $B30: {  # body
                                     %43:i32 = load %i6
                                     %44:ptr<uniform, i32, read> = access %x_7, 0u
                                     %45:i32 = load %44
                                     %46:bool = lt %43, %45
-                                    if %46 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                    if %46 [t: $B32, f: $B33] {  # if_8
+                                      $B32: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B33: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
                                     store %i7, 0i
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
+                                    loop [b: $B34, c: $B35] {  # loop_9
+                                      $B34: {  # body
                                         %47:i32 = load %i7
                                         %48:ptr<uniform, i32, read> = access %x_7, 0u
                                         %49:i32 = load %48
                                         %50:bool = lt %47, %49
-                                        if %50 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                        if %50 [t: $B36, f: $B37] {  # if_9
+                                          $B36: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B37: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
                                         store %i8_1, 0i
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
+                                        loop [b: $B38, c: $B39] {  # loop_10
+                                          $B38: {  # body
                                             %51:i32 = load %i8_1
                                             %52:ptr<uniform, i32, read> = access %x_7, 0u
                                             %53:i32 = load %52
                                             %54:bool = lt %51, %53
-                                            if %54 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                            if %54 [t: $B40, f: $B41] {  # if_10
+                                              $B40: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B41: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
                                             store %i9, 0i
-                                            loop [b: %b43, c: %b44] {  # loop_11
-                                              %b43 = block {  # body
+                                            loop [b: $B42, c: $B43] {  # loop_11
+                                              $B42: {  # body
                                                 %55:i32 = load %i9
                                                 %56:ptr<uniform, i32, read> = access %x_7, 0u
                                                 %57:i32 = load %56
                                                 %58:bool = lt %55, %57
-                                                if %58 [t: %b45, f: %b46] {  # if_11
-                                                  %b45 = block {  # true
+                                                if %58 [t: $B44, f: $B45] {  # if_11
+                                                  $B44: {  # true
                                                     exit_if  # if_11
                                                   }
-                                                  %b46 = block {  # false
+                                                  $B45: {  # false
                                                     exit_loop  # loop_11
                                                   }
                                                 }
                                                 %59:i32 = load %a
                                                 %60:i32 = add %59, 1i
                                                 store %a, %60
-                                                continue %b44
+                                                continue  # -> $B43
                                               }
-                                              %b44 = block {  # continuing
+                                              $B43: {  # continuing
                                                 %61:i32 = load %i9
                                                 %62:i32 = add %61, 1i
                                                 store %i9, %62
-                                                next_iteration %b43
+                                                next_iteration  # -> $B42
                                               }
                                             }
-                                            continue %b40
+                                            continue  # -> $B39
                                           }
-                                          %b40 = block {  # continuing
+                                          $B39: {  # continuing
                                             %63:i32 = load %i8_1
                                             %64:i32 = add %63, 1i
                                             store %i8_1, %64
-                                            next_iteration %b39
+                                            next_iteration  # -> $B38
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B35
                                       }
-                                      %b36 = block {  # continuing
+                                      $B35: {  # continuing
                                         %65:i32 = load %i7
                                         %66:i32 = add %65, 1i
                                         store %i7, %66
-                                        next_iteration %b35
+                                        next_iteration  # -> $B34
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B31
                                   }
-                                  %b32 = block {  # continuing
+                                  $B31: {  # continuing
                                     %67:i32 = load %i6
                                     %68:i32 = add %67, 1i
                                     store %i6, %68
-                                    next_iteration %b31
+                                    next_iteration  # -> $B30
                                   }
                                 }
                                 exit_loop  # loop_7
                               }
-                              %b28 = block {  # continuing
-                                next_iteration %b27
-                              }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
+                          $B24: {  # continuing
                             %69:i32 = load %i5
                             %70:i32 = add %69, 1i
                             store %i5, %70
-                            next_iteration %b23
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
+                      $B20: {  # continuing
                         %71:i32 = load %i4
                         %72:i32 = add %71, 1i
                         store %i4, %72
-                        next_iteration %b19
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
+                  $B16: {  # continuing
                     %73:i32 = load %i3
                     %74:i32 = add %73, 1i
                     store %i3, %74
-                    next_iteration %b15
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
+              $B12: {  # continuing
                 %75:i32 = load %i2
                 %76:i32 = add %75, 1i
                 store %i2, %76
-                next_iteration %b11
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
+          $B8: {  # continuing
             %77:i32 = load %i1
             %78:i32 = add %77, 1i
             store %i1, %78
-            next_iteration %b7
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %79:i32 = load %i0
         %80:i32 = add %79, 1i
         store %i0, %80
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %81:i32 = load %a
     %82:bool = eq %81, 3i
-    if %82 [t: %b47, f: %b48] {  # if_12
-      %b47 = block {  # true
+    if %82 [t: $B46, f: $B47] {  # if_12
+      $B46: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_12
       }
-      %b48 = block {  # false
+      $B47: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_12
       }
@@ -305,8 +302,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b49 {
-  %b49 = block {
+%tint_symbol = @fragment func():main_out {
+  $B48: {
     %84:void = call %main_1
     %85:vec4<f32> = load %x_GLF_color
     %86:main_out = construct %85
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.msl
index a053759..7a9c0a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-scaled-number-nested-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i0:ptr<function, i32, read_write> = var
     %i1:ptr<function, i32, read_write> = var
@@ -28,276 +28,306 @@
     %i9:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i0, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_40:i32 = load %i0
-        %16:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_42:i32 = load %16
-        %18:bool = lt %x_40, %x_42
-        if %18 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %15:i32 = load %i0
+        %x_40:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_7, 0u
+        %18:i32 = load %17
+        %x_42:i32 = let %18
+        %20:bool = lt %x_40, %x_42
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %i1, 0i
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_49:i32 = load %i1
-            %20:ptr<uniform, i32, read> = access %x_7, 0u
-            %x_51:i32 = load %20
-            %22:bool = lt %x_49, %x_51
-            if %22 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %21:i32 = load %i1
+            %x_49:i32 = let %21
+            %23:ptr<uniform, i32, read> = access %x_7, 0u
+            %24:i32 = load %23
+            %x_51:i32 = let %24
+            %26:bool = lt %x_49, %x_51
+            if %26 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
             store %i2, 0i
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_58:i32 = load %i2
-                %24:ptr<uniform, i32, read> = access %x_7, 0u
-                %x_60:i32 = load %24
-                %26:bool = lt %x_58, %x_60
-                if %26 [t: %b13, f: %b14] {  # if_3
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %27:i32 = load %i2
+                %x_58:i32 = let %27
+                %29:ptr<uniform, i32, read> = access %x_7, 0u
+                %30:i32 = load %29
+                %x_60:i32 = let %30
+                %32:bool = lt %x_58, %x_60
+                if %32 [t: $B13, f: $B14] {  # if_3
+                  $B13: {  # true
                     exit_if  # if_3
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %i3, 0i
-                loop [b: %b15, c: %b16] {  # loop_4
-                  %b15 = block {  # body
-                    %x_67:i32 = load %i3
-                    %28:ptr<uniform, i32, read> = access %x_7, 0u
-                    %x_69:i32 = load %28
-                    %30:i32 = add %x_69, 2i
-                    %31:bool = lt %x_67, %30
-                    if %31 [t: %b17, f: %b18] {  # if_4
-                      %b17 = block {  # true
+                loop [b: $B15, c: $B16] {  # loop_4
+                  $B15: {  # body
+                    %33:i32 = load %i3
+                    %x_67:i32 = let %33
+                    %35:ptr<uniform, i32, read> = access %x_7, 0u
+                    %36:i32 = load %35
+                    %x_69:i32 = let %36
+                    %38:i32 = add %x_69, 2i
+                    %39:bool = lt %x_67, %38
+                    if %39 [t: $B17, f: $B18] {  # if_4
+                      $B17: {  # true
                         exit_if  # if_4
                       }
-                      %b18 = block {  # false
+                      $B18: {  # false
                         exit_loop  # loop_4
                       }
                     }
                     store %i4, 0i
-                    loop [b: %b19, c: %b20] {  # loop_5
-                      %b19 = block {  # body
-                        %x_77:i32 = load %i4
-                        %33:ptr<uniform, i32, read> = access %x_7, 0u
-                        %x_79:i32 = load %33
-                        %35:bool = lt %x_77, %x_79
-                        if %35 [t: %b21, f: %b22] {  # if_5
-                          %b21 = block {  # true
+                    loop [b: $B19, c: $B20] {  # loop_5
+                      $B19: {  # body
+                        %40:i32 = load %i4
+                        %x_77:i32 = let %40
+                        %42:ptr<uniform, i32, read> = access %x_7, 0u
+                        %43:i32 = load %42
+                        %x_79:i32 = let %43
+                        %45:bool = lt %x_77, %x_79
+                        if %45 [t: $B21, f: $B22] {  # if_5
+                          $B21: {  # true
                             exit_if  # if_5
                           }
-                          %b22 = block {  # false
+                          $B22: {  # false
                             exit_loop  # loop_5
                           }
                         }
                         store %i5, 0i
-                        loop [b: %b23, c: %b24] {  # loop_6
-                          %b23 = block {  # body
-                            %x_86:i32 = load %i5
-                            %37:ptr<uniform, i32, read> = access %x_7, 0u
-                            %x_88:i32 = load %37
-                            %39:bool = lt %x_86, %x_88
-                            if %39 [t: %b25, f: %b26] {  # if_6
-                              %b25 = block {  # true
+                        loop [b: $B23, c: $B24] {  # loop_6
+                          $B23: {  # body
+                            %46:i32 = load %i5
+                            %x_86:i32 = let %46
+                            %48:ptr<uniform, i32, read> = access %x_7, 0u
+                            %49:i32 = load %48
+                            %x_88:i32 = let %49
+                            %51:bool = lt %x_86, %x_88
+                            if %51 [t: $B25, f: $B26] {  # if_6
+                              $B25: {  # true
                                 exit_if  # if_6
                               }
-                              %b26 = block {  # false
+                              $B26: {  # false
                                 exit_loop  # loop_6
                               }
                             }
-                            loop [b: %b27, c: %b28] {  # loop_7
-                              %b27 = block {  # body
-                                %40:ptr<uniform, i32, read> = access %x_7, 0u
-                                %x_96:i32 = load %40
-                                %42:bool = gt %x_96, 0i
-                                if %42 [t: %b29, f: %b30] {  # if_7
-                                  %b29 = block {  # true
+                            loop [b: $B27] {  # loop_7
+                              $B27: {  # body
+                                %52:ptr<uniform, i32, read> = access %x_7, 0u
+                                %53:i32 = load %52
+                                %x_96:i32 = let %53
+                                %55:bool = gt %x_96, 0i
+                                if %55 [t: $B28, f: $B29] {  # if_7
+                                  $B28: {  # true
                                     exit_if  # if_7
                                   }
-                                  %b30 = block {  # false
+                                  $B29: {  # false
                                     exit_loop  # loop_7
                                   }
                                 }
                                 store %i6, 0i
-                                loop [b: %b31, c: %b32] {  # loop_8
-                                  %b31 = block {  # body
-                                    %x_103:i32 = load %i6
-                                    %44:ptr<uniform, i32, read> = access %x_7, 0u
-                                    %x_105:i32 = load %44
-                                    %46:bool = lt %x_103, %x_105
-                                    if %46 [t: %b33, f: %b34] {  # if_8
-                                      %b33 = block {  # true
+                                loop [b: $B30, c: $B31] {  # loop_8
+                                  $B30: {  # body
+                                    %56:i32 = load %i6
+                                    %x_103:i32 = let %56
+                                    %58:ptr<uniform, i32, read> = access %x_7, 0u
+                                    %59:i32 = load %58
+                                    %x_105:i32 = let %59
+                                    %61:bool = lt %x_103, %x_105
+                                    if %61 [t: $B32, f: $B33] {  # if_8
+                                      $B32: {  # true
                                         exit_if  # if_8
                                       }
-                                      %b34 = block {  # false
+                                      $B33: {  # false
                                         exit_loop  # loop_8
                                       }
                                     }
                                     store %i7, 0i
-                                    loop [b: %b35, c: %b36] {  # loop_9
-                                      %b35 = block {  # body
-                                        %x_112:i32 = load %i7
-                                        %48:ptr<uniform, i32, read> = access %x_7, 0u
-                                        %x_114:i32 = load %48
-                                        %50:bool = lt %x_112, %x_114
-                                        if %50 [t: %b37, f: %b38] {  # if_9
-                                          %b37 = block {  # true
+                                    loop [b: $B34, c: $B35] {  # loop_9
+                                      $B34: {  # body
+                                        %62:i32 = load %i7
+                                        %x_112:i32 = let %62
+                                        %64:ptr<uniform, i32, read> = access %x_7, 0u
+                                        %65:i32 = load %64
+                                        %x_114:i32 = let %65
+                                        %67:bool = lt %x_112, %x_114
+                                        if %67 [t: $B36, f: $B37] {  # if_9
+                                          $B36: {  # true
                                             exit_if  # if_9
                                           }
-                                          %b38 = block {  # false
+                                          $B37: {  # false
                                             exit_loop  # loop_9
                                           }
                                         }
                                         store %i8_1, 0i
-                                        loop [b: %b39, c: %b40] {  # loop_10
-                                          %b39 = block {  # body
-                                            %x_121:i32 = load %i8_1
-                                            %52:ptr<uniform, i32, read> = access %x_7, 0u
-                                            %x_123:i32 = load %52
-                                            %54:bool = lt %x_121, %x_123
-                                            if %54 [t: %b41, f: %b42] {  # if_10
-                                              %b41 = block {  # true
+                                        loop [b: $B38, c: $B39] {  # loop_10
+                                          $B38: {  # body
+                                            %68:i32 = load %i8_1
+                                            %x_121:i32 = let %68
+                                            %70:ptr<uniform, i32, read> = access %x_7, 0u
+                                            %71:i32 = load %70
+                                            %x_123:i32 = let %71
+                                            %73:bool = lt %x_121, %x_123
+                                            if %73 [t: $B40, f: $B41] {  # if_10
+                                              $B40: {  # true
                                                 exit_if  # if_10
                                               }
-                                              %b42 = block {  # false
+                                              $B41: {  # false
                                                 exit_loop  # loop_10
                                               }
                                             }
                                             store %i9, 0i
-                                            loop [b: %b43, c: %b44] {  # loop_11
-                                              %b43 = block {  # body
-                                                %x_130:i32 = load %i9
-                                                %56:ptr<uniform, i32, read> = access %x_7, 0u
-                                                %x_132:i32 = load %56
-                                                %58:bool = lt %x_130, %x_132
-                                                if %58 [t: %b45, f: %b46] {  # if_11
-                                                  %b45 = block {  # true
+                                            loop [b: $B42, c: $B43] {  # loop_11
+                                              $B42: {  # body
+                                                %74:i32 = load %i9
+                                                %x_130:i32 = let %74
+                                                %76:ptr<uniform, i32, read> = access %x_7, 0u
+                                                %77:i32 = load %76
+                                                %x_132:i32 = let %77
+                                                %79:bool = lt %x_130, %x_132
+                                                if %79 [t: $B44, f: $B45] {  # if_11
+                                                  $B44: {  # true
                                                     exit_if  # if_11
                                                   }
-                                                  %b46 = block {  # false
+                                                  $B45: {  # false
                                                     exit_loop  # loop_11
                                                   }
                                                 }
-                                                %x_135:i32 = load %a
-                                                %60:i32 = add %x_135, 1i
-                                                store %a, %60
-                                                continue %b44
+                                                %80:i32 = load %a
+                                                %x_135:i32 = let %80
+                                                %82:i32 = add %x_135, 1i
+                                                store %a, %82
+                                                continue  # -> $B43
                                               }
-                                              %b44 = block {  # continuing
-                                                %x_137:i32 = load %i9
-                                                %62:i32 = add %x_137, 1i
-                                                store %i9, %62
-                                                next_iteration %b43
+                                              $B43: {  # continuing
+                                                %83:i32 = load %i9
+                                                %x_137:i32 = let %83
+                                                %85:i32 = add %x_137, 1i
+                                                store %i9, %85
+                                                next_iteration  # -> $B42
                                               }
                                             }
-                                            continue %b40
+                                            continue  # -> $B39
                                           }
-                                          %b40 = block {  # continuing
-                                            %x_139:i32 = load %i8_1
-                                            %64:i32 = add %x_139, 1i
-                                            store %i8_1, %64
-                                            next_iteration %b39
+                                          $B39: {  # continuing
+                                            %86:i32 = load %i8_1
+                                            %x_139:i32 = let %86
+                                            %88:i32 = add %x_139, 1i
+                                            store %i8_1, %88
+                                            next_iteration  # -> $B38
                                           }
                                         }
-                                        continue %b36
+                                        continue  # -> $B35
                                       }
-                                      %b36 = block {  # continuing
-                                        %x_141:i32 = load %i7
-                                        %66:i32 = add %x_141, 1i
-                                        store %i7, %66
-                                        next_iteration %b35
+                                      $B35: {  # continuing
+                                        %89:i32 = load %i7
+                                        %x_141:i32 = let %89
+                                        %91:i32 = add %x_141, 1i
+                                        store %i7, %91
+                                        next_iteration  # -> $B34
                                       }
                                     }
-                                    continue %b32
+                                    continue  # -> $B31
                                   }
-                                  %b32 = block {  # continuing
-                                    %x_143:i32 = load %i6
-                                    %68:i32 = add %x_143, 1i
-                                    store %i6, %68
-                                    next_iteration %b31
+                                  $B31: {  # continuing
+                                    %92:i32 = load %i6
+                                    %x_143:i32 = let %92
+                                    %94:i32 = add %x_143, 1i
+                                    store %i6, %94
+                                    next_iteration  # -> $B30
                                   }
                                 }
                                 exit_loop  # loop_7
                               }
-                              %b28 = block {  # continuing
-                                next_iteration %b27
-                              }
                             }
-                            continue %b24
+                            continue  # -> $B24
                           }
-                          %b24 = block {  # continuing
-                            %x_145:i32 = load %i5
-                            %70:i32 = add %x_145, 1i
-                            store %i5, %70
-                            next_iteration %b23
+                          $B24: {  # continuing
+                            %95:i32 = load %i5
+                            %x_145:i32 = let %95
+                            %97:i32 = add %x_145, 1i
+                            store %i5, %97
+                            next_iteration  # -> $B23
                           }
                         }
-                        continue %b20
+                        continue  # -> $B20
                       }
-                      %b20 = block {  # continuing
-                        %x_147:i32 = load %i4
-                        %72:i32 = add %x_147, 1i
-                        store %i4, %72
-                        next_iteration %b19
+                      $B20: {  # continuing
+                        %98:i32 = load %i4
+                        %x_147:i32 = let %98
+                        %100:i32 = add %x_147, 1i
+                        store %i4, %100
+                        next_iteration  # -> $B19
                       }
                     }
-                    continue %b16
+                    continue  # -> $B16
                   }
-                  %b16 = block {  # continuing
-                    %x_149:i32 = load %i3
-                    %74:i32 = add %x_149, 1i
-                    store %i3, %74
-                    next_iteration %b15
+                  $B16: {  # continuing
+                    %101:i32 = load %i3
+                    %x_149:i32 = let %101
+                    %103:i32 = add %x_149, 1i
+                    store %i3, %103
+                    next_iteration  # -> $B15
                   }
                 }
-                continue %b12
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_151:i32 = load %i2
-                %76:i32 = add %x_151, 1i
-                store %i2, %76
-                next_iteration %b11
+              $B12: {  # continuing
+                %104:i32 = load %i2
+                %x_151:i32 = let %104
+                %106:i32 = add %x_151, 1i
+                store %i2, %106
+                next_iteration  # -> $B11
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_153:i32 = load %i1
-            %78:i32 = add %x_153, 1i
-            store %i1, %78
-            next_iteration %b7
+          $B8: {  # continuing
+            %107:i32 = load %i1
+            %x_153:i32 = let %107
+            %109:i32 = add %x_153, 1i
+            store %i1, %109
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_155:i32 = load %i0
-        %80:i32 = add %x_155, 1i
-        store %i0, %80
-        next_iteration %b3
+      $B4: {  # continuing
+        %110:i32 = load %i0
+        %x_155:i32 = let %110
+        %112:i32 = add %x_155, 1i
+        store %i0, %112
+        next_iteration  # -> $B3
       }
     }
-    %x_157:i32 = load %a
-    %82:bool = eq %x_157, 3i
-    if %82 [t: %b47, f: %b48] {  # if_12
-      %b47 = block {  # true
+    %113:i32 = load %a
+    %x_157:i32 = let %113
+    %115:bool = eq %x_157, 3i
+    if %115 [t: $B46, f: $B47] {  # if_12
+      $B46: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_12
       }
-      %b48 = block {  # false
+      $B47: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_12
       }
@@ -305,12 +335,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b49 {
-  %b49 = block {
-    %84:void = call %main_1
-    %85:vec4<f32> = load %x_GLF_color
-    %86:main_out = construct %85
-    ret %86
+%tint_symbol = @fragment func():main_out {
+  $B48: {
+    %117:void = call %main_1
+    %118:vec4<f32> = load %x_GLF_color
+    %119:main_out = construct %118
+    ret %119
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.msl
index 74ff1e4..4ba9167 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %x_51:ptr<function, bool, read_write> = var
@@ -44,45 +44,46 @@
     %23:f32 = load %b
     %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %25:f32 = load %24
-    %x_45:bool = gt %23, %25
+    %26:bool = gt %23, %25
+    %x_45:bool = let %26
     store %x_52, %x_45
-    if %x_45 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %27:f32 = load %b
-        %28:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %29:f32 = load %28
-        %30:bool = lt %27, %29
-        store %x_51, %30
-        %31:bool = load %x_51
-        store %x_52, %31
+    if %x_45 [t: $B3] {  # if_1
+      $B3: {  # true
+        %28:f32 = load %b
+        %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %30:f32 = load %29
+        %31:bool = lt %28, %30
+        store %x_51, %31
+        %32:bool = load %x_51
+        store %x_52, %32
         exit_if  # if_1
       }
     }
-    %32:bool = load %x_52
-    if %32 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %34:f32 = load %33
-        %35:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-        %36:f32 = load %35
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-        %38:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %40:f32 = load %39
-        %41:vec4<f32> = construct %34, %36, %38, %40
-        store %x_GLF_color, %41
+    %33:bool = load %x_52
+    if %33 [t: $B4] {  # if_2
+      $B4: {  # true
+        %34:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %35:f32 = load %34
+        %36:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+        %37:f32 = load %36
+        %38:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+        %39:f32 = load %38
+        %40:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %41:f32 = load %40
+        %42:vec4<f32> = construct %35, %37, %39, %41
+        store %x_GLF_color, %42
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.msl
index 083d029..3dc0607 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-schedule-dag-rrlist-mix-log-cos/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -12,77 +12,93 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %x_51:ptr<function, bool, read_write> = var
     %x_52_phi:ptr<function, bool, read_write> = var
     %8:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_28:f32 = load %8
-    %10:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_30:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_32:f32 = load %12
-    %14:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_34:f32 = load %14
-    %16:bool = gt %x_32, %x_34
-    %17:f32 = select %x_28, %x_30, %16
-    store %a, %17
-    %x_37:f32 = load %a
-    %19:f32 = log %x_37
-    %20:f32 = cos %19
-    store %b, %20
-    %x_40:f32 = load %b
-    %22:vec4<f32> = construct %x_40, %x_40, %x_40, %x_40
-    store %x_GLF_color, %22
-    %x_42:f32 = load %b
-    %24:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_44:f32 = load %24
-    %x_45:bool = gt %x_42, %x_44
+    %9:f32 = load %8
+    %x_28:f32 = let %9
+    %11:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %12:f32 = load %11
+    %x_30:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %15:f32 = load %14
+    %x_32:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %18:f32 = load %17
+    %x_34:f32 = let %18
+    %20:bool = gt %x_32, %x_34
+    %21:f32 = select %x_28, %x_30, %20
+    store %a, %21
+    %22:f32 = load %a
+    %x_37:f32 = let %22
+    %24:f32 = log %x_37
+    %25:f32 = cos %24
+    store %b, %25
+    %26:f32 = load %b
+    %x_40:f32 = let %26
+    %28:vec4<f32> = construct %x_40, %x_40, %x_40, %x_40
+    store %x_GLF_color, %28
+    %29:f32 = load %b
+    %x_42:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %32:f32 = load %31
+    %x_44:f32 = let %32
+    %34:bool = gt %x_42, %x_44
+    %x_45:bool = let %34
     store %x_52_phi, %x_45
-    if %x_45 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_48:f32 = load %b
-        %28:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_50:f32 = load %28
-        %30:bool = lt %x_48, %x_50
-        store %x_51, %30
-        %31:bool = load %x_51
-        store %x_52_phi, %31
+    if %x_45 [t: $B3] {  # if_1
+      $B3: {  # true
+        %36:f32 = load %b
+        %x_48:f32 = let %36
+        %38:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %39:f32 = load %38
+        %x_50:f32 = let %39
+        %41:bool = lt %x_48, %x_50
+        store %x_51, %41
+        %42:bool = load %x_51
+        store %x_52_phi, %42
         exit_if  # if_1
       }
     }
-    %x_52:bool = load %x_52_phi
-    if %x_52 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %33:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_56:f32 = load %33
-        %35:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-        %x_58:f32 = load %35
-        %37:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
-        %x_60:f32 = load %37
-        %39:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-        %x_62:f32 = load %39
-        %41:vec4<f32> = construct %x_56, %x_58, %x_60, %x_62
-        store %x_GLF_color, %41
+    %43:bool = load %x_52_phi
+    %x_52:bool = let %43
+    if %x_52 [t: $B4] {  # if_2
+      $B4: {  # true
+        %45:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %46:f32 = load %45
+        %x_56:f32 = let %46
+        %48:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+        %49:f32 = load %48
+        %x_58:f32 = let %49
+        %51:ptr<uniform, f32, read> = access %x_6, 0u, 4i, 0u
+        %52:f32 = load %51
+        %x_60:f32 = let %52
+        %54:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+        %55:f32 = load %54
+        %x_62:f32 = let %55
+        %57:vec4<f32> = construct %x_56, %x_58, %x_60, %x_62
+        store %x_GLF_color, %57
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.msl
index 97f6095..8f747c3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,42 +12,45 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %6:i32 = load %5
     %7:f32 = convert %6
-    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %9:i32 = load %8
-    %10:f32 = convert %9
-    %11:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %12:i32 = load %11
-    %13:f32 = convert %12
-    %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %15:i32 = load %14
-    %16:f32 = convert %15
-    %17:vec4<f32> = construct %7, %10, %13, %16
-    store %x_GLF_color, %17
-    %18:vec4<f32> = load %x_GLF_color
-    store %v, %18
+    %8:f32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %10:i32 = load %9
+    %11:f32 = convert %10
+    %12:f32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %14:i32 = load %13
+    %15:f32 = convert %14
+    %16:f32 = let %15
+    %17:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %18:i32 = load %17
+    %19:f32 = convert %18
+    %20:vec4<f32> = construct %8, %12, %16, %19
+    store %x_GLF_color, %20
+    %21:vec4<f32> = load %x_GLF_color
+    store %v, %21
     store %x_GLF_color, vec4<f32>(0.0f)
-    %19:vec4<f32> = load %v
-    store %x_GLF_color, %19
+    %22:vec4<f32> = load %v
+    store %x_GLF_color, %22
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.msl
index 3c8563a..7c151a4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-assign-back-and-forth/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,42 +12,51 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_25:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_28:i32 = load %7
-    %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_31:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_34:i32 = load %11
-    %13:f32 = convert %x_25
-    %14:f32 = convert %x_28
-    %15:f32 = convert %x_31
-    %16:f32 = convert %x_34
-    %17:vec4<f32> = construct %13, %14, %15, %16
-    store %x_GLF_color, %17
-    %x_37:vec4<f32> = load %x_GLF_color
+    %6:i32 = load %5
+    %x_25:i32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %9:i32 = load %8
+    %x_28:i32 = let %9
+    %11:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %12:i32 = load %11
+    %x_31:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+    %15:i32 = load %14
+    %x_34:i32 = let %15
+    %17:f32 = convert %x_25
+    %18:f32 = let %17
+    %19:f32 = convert %x_28
+    %20:f32 = let %19
+    %21:f32 = convert %x_31
+    %22:f32 = let %21
+    %23:f32 = convert %x_34
+    %24:vec4<f32> = construct %18, %20, %22, %23
+    store %x_GLF_color, %24
+    %25:vec4<f32> = load %x_GLF_color
+    %x_37:vec4<f32> = let %25
     store %v, %x_37
     store %x_GLF_color, vec4<f32>(0.0f)
-    %x_38:vec4<f32> = load %v
+    %27:vec4<f32> = load %v
+    %x_38:vec4<f32> = let %27
     store %x_GLF_color, %x_38
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %30:void = call %main_1
+    %31:vec4<f32> = load %x_GLF_color
+    %32:main_out = construct %31
+    ret %32
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.msl
index 2d413e7..601378a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
@@ -27,17 +27,17 @@
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %9:i32 = load %8
     store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %12:i32 = load %11
         %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -45,54 +45,58 @@
         %15:i32 = complement %14
         store %c, %15
         %16:i32 = load %c
-        %17:i32 = clamp %16, 0i, 3i
-        store %c, %17
-        continue %b4
+        %17:i32 = max %16, 0i
+        %18:i32 = min %17, 3i
+        store %c, %18
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %18:i32 = load %i
-        %19:i32 = add %18, 1i
-        store %i, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %19:i32 = load %i
+        %20:i32 = add %19, 1i
+        store %i, %20
+        next_iteration  # -> $B3
       }
     }
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %21:i32 = load %20
-    %22:f32 = convert %21
-    %23:vec4<f32> = construct %22
-    store %x_GLF_color, %23
-    %24:i32 = load %c
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %26:i32 = load %25
-    %27:bool = eq %24, %26
-    if %27 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %22:i32 = load %21
+    %23:f32 = convert %22
+    %24:vec4<f32> = construct %23
+    store %x_GLF_color, %24
+    %25:i32 = load %c
+    %26:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %27:i32 = load %26
+    %28:bool = eq %25, %27
+    if %28 [t: $B7] {  # if_2
+      $B7: {  # true
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %30:i32 = load %29
+        %31:f32 = convert %30
+        %32:f32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %38:i32 = load %37
         %39:f32 = convert %38
-        %40:vec4<f32> = construct %30, %33, %36, %39
-        store %x_GLF_color, %40
+        %40:f32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:vec4<f32> = construct %32, %36, %40, %43
+        store %x_GLF_color, %44
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %46:void = call %main_1
+    %47:vec4<f32> = load %x_GLF_color
+    %48:main_out = construct %47
+    ret %48
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.msl
index d2c3809..37fcc4a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-inverse-clamp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,87 +12,106 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_27:i32 = load %6
+    %7:i32 = load %6
+    %x_27:i32 = let %7
     store %c, %x_27
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_29:i32 = load %8
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %10:i32 = load %9
+    %x_29:i32 = let %10
     store %i, %x_29
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_34:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_36:i32 = load %11
-        %13:bool = lt %x_34, %x_36
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_34:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_36:i32 = let %15
+        %17:bool = lt %x_34, %x_36
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_39:i32 = load %i
-        %15:i32 = complement %x_39
-        store %c, %15
-        %x_41:i32 = load %c
-        %17:i32 = clamp %x_41, 0i, 3i
-        store %c, %17
-        continue %b4
+        %18:i32 = load %i
+        %x_39:i32 = let %18
+        %20:i32 = complement %x_39
+        store %c, %20
+        %21:i32 = load %c
+        %x_41:i32 = let %21
+        %23:i32 = max %x_41, 0i
+        %24:i32 = min %23, 3i
+        store %c, %24
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_43:i32 = load %i
-        %19:i32 = add %x_43, 1i
-        store %i, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %25:i32 = load %i
+        %x_43:i32 = let %25
+        %27:i32 = add %x_43, 1i
+        store %i, %27
+        next_iteration  # -> $B3
       }
     }
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_46:i32 = load %20
-    %x_47:f32 = convert %x_46
-    %23:vec4<f32> = construct %x_47, %x_47, %x_47, %x_47
-    store %x_GLF_color, %23
-    %x_49:i32 = load %c
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_51:i32 = load %25
-    %27:bool = eq %x_49, %x_51
-    if %27 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_56:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_59:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:i32 = load %32
-        %34:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_65:i32 = load %34
-        %36:f32 = convert %x_56
-        %37:f32 = convert %x_59
-        %38:f32 = convert %x_62
-        %39:f32 = convert %x_65
-        %40:vec4<f32> = construct %36, %37, %38, %39
-        store %x_GLF_color, %40
+    %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %29:i32 = load %28
+    %x_46:i32 = let %29
+    %31:f32 = convert %x_46
+    %x_47:f32 = let %31
+    %33:vec4<f32> = construct %x_47, %x_47, %x_47, %x_47
+    store %x_GLF_color, %33
+    %34:i32 = load %c
+    %x_49:i32 = let %34
+    %36:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %37:i32 = load %36
+    %x_51:i32 = let %37
+    %39:bool = eq %x_49, %x_51
+    if %39 [t: $B7] {  # if_2
+      $B7: {  # true
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %41:i32 = load %40
+        %x_56:i32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %44:i32 = load %43
+        %x_59:i32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %47:i32 = load %46
+        %x_62:i32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %50:i32 = load %49
+        %x_65:i32 = let %50
+        %52:f32 = convert %x_56
+        %53:f32 = let %52
+        %54:f32 = convert %x_59
+        %55:f32 = let %54
+        %56:f32 = convert %x_62
+        %57:f32 = let %56
+        %58:f32 = convert %x_65
+        %59:vec4<f32> = construct %53, %55, %57, %58
+        store %x_GLF_color, %59
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.msl
index 1054fba..b0d78bd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -16,70 +16,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
     %6:f32 = load_vector_element %5, 0u
     %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
     %8:f32 = load_vector_element %7, 1u
     %9:bool = lt %6, %8
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %10:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
         %11:i32 = load %10
         %12:f32 = convert %11
-        %13:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %14:i32 = load %13
-        %15:f32 = convert %14
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %17:i32 = load %16
-        %18:f32 = convert %17
-        %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %20:i32 = load %19
-        %21:f32 = convert %20
-        %22:vec4<f32> = construct %12, %15, %18, %21
-        store %x_GLF_color, %22
-        %23:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %24:f32 = load_vector_element %23, 0u
-        %25:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %26:f32 = load_vector_element %25, 1u
-        %27:bool = gt %24, %26
-        if %27 [t: %b5] {  # if_2
-          %b5 = block {  # true
-            %28:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %29:i32 = load %28
-            %30:f32 = convert %29
-            %31:vec4<f32> = construct %30
-            store %x_GLF_color, %31
+        %13:f32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %15:i32 = load %14
+        %16:f32 = convert %15
+        %17:f32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %19:i32 = load %18
+        %20:f32 = convert %19
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %23:i32 = load %22
+        %24:f32 = convert %23
+        %25:vec4<f32> = construct %13, %17, %21, %24
+        store %x_GLF_color, %25
+        %26:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %27:f32 = load_vector_element %26, 0u
+        %28:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %29:f32 = load_vector_element %28, 1u
+        %30:bool = gt %27, %29
+        if %30 [t: $B5] {  # if_2
+          $B5: {  # true
+            %31:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %32:i32 = load %31
+            %33:f32 = convert %32
+            %34:vec4<f32> = construct %33
+            store %x_GLF_color, %34
             exit_if  # if_2
           }
         }
         ret
       }
-      %b4 = block {  # false
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:vec4<f32> = construct %34
-        store %x_GLF_color, %35
+      $B4: {  # false
+        %35:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:vec4<f32> = construct %37
+        store %x_GLF_color, %38
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %37:void = call %main_1
-    %38:vec4<f32> = load %x_GLF_color
-    %39:main_out = construct %38
-    ret %39
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.msl
index 824e5de..5f195c1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-lt-gt/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -16,70 +16,85 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_29:f32 = load_vector_element %5, 0u
-    %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_31:f32 = load_vector_element %7, 1u
-    %9:bool = lt %x_29, %x_31
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %10:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_37:i32 = load %10
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_40:i32 = load %12
-        %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_43:i32 = load %14
-        %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_46:i32 = load %16
-        %18:f32 = convert %x_37
-        %19:f32 = convert %x_40
-        %20:f32 = convert %x_43
-        %21:f32 = convert %x_46
-        %22:vec4<f32> = construct %18, %19, %20, %21
-        store %x_GLF_color, %22
-        %23:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_50:f32 = load_vector_element %23, 0u
-        %25:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_52:f32 = load_vector_element %25, 1u
-        %27:bool = gt %x_50, %x_52
-        if %27 [t: %b5] {  # if_2
-          %b5 = block {  # true
-            %28:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %x_57:i32 = load %28
-            %x_58:f32 = convert %x_57
-            %31:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-            store %x_GLF_color, %31
+    %6:f32 = load_vector_element %5, 0u
+    %x_29:f32 = let %6
+    %8:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+    %9:f32 = load_vector_element %8, 1u
+    %x_31:f32 = let %9
+    %11:bool = lt %x_29, %x_31
+    if %11 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %12:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %13:i32 = load %12
+        %x_37:i32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %16:i32 = load %15
+        %x_40:i32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %19:i32 = load %18
+        %x_43:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %22:i32 = load %21
+        %x_46:i32 = let %22
+        %24:f32 = convert %x_37
+        %25:f32 = let %24
+        %26:f32 = convert %x_40
+        %27:f32 = let %26
+        %28:f32 = convert %x_43
+        %29:f32 = let %28
+        %30:f32 = convert %x_46
+        %31:vec4<f32> = construct %25, %27, %29, %30
+        store %x_GLF_color, %31
+        %32:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %33:f32 = load_vector_element %32, 0u
+        %x_50:f32 = let %33
+        %35:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %36:f32 = load_vector_element %35, 1u
+        %x_52:f32 = let %36
+        %38:bool = gt %x_50, %x_52
+        if %38 [t: $B5] {  # if_2
+          $B5: {  # true
+            %39:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %40:i32 = load %39
+            %x_57:i32 = let %40
+            %42:f32 = convert %x_57
+            %x_58:f32 = let %42
+            %44:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+            store %x_GLF_color, %44
             exit_if  # if_2
           }
         }
         ret
       }
-      %b4 = block {  # false
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_61:i32 = load %32
-        %x_62:f32 = convert %x_61
-        %35:vec4<f32> = construct %x_62, %x_62, %x_62, %x_62
-        store %x_GLF_color, %35
+      $B4: {  # false
+        %45:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %46:i32 = load %45
+        %x_61:i32 = let %46
+        %48:f32 = convert %x_61
+        %x_62:f32 = let %48
+        %50:vec4<f32> = construct %x_62, %x_62, %x_62, %x_62
+        store %x_GLF_color, %50
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %37:void = call %main_1
-    %38:vec4<f32> = load %x_GLF_color
-    %39:main_out = construct %38
-    ret %39
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_color
+    %54:main_out = construct %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.msl
index 97c118a..c44432f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,38 +8,39 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_29:ptr<function, bool, read_write> = var
     %x_30:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %6:ptr<uniform, f32, read> = access %x_5, 0u
     %7:f32 = load %6
-    %x_24:bool = lt %7, 0.0f
+    %8:bool = lt %7, 0.0f
+    %x_24:bool = let %8
     store %x_30, %x_24
-    if %x_24 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, f32, read> = access %x_5, 0u
-        %10:f32 = load %9
-        %11:bool = lt %10, 0.0f
-        store %x_29, %11
-        %12:bool = load %x_29
-        store %x_30, %12
+    if %x_24 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:ptr<uniform, f32, read> = access %x_5, 0u
+        %11:f32 = load %10
+        %12:bool = lt %11, 0.0f
+        store %x_29, %12
+        %13:bool = load %x_29
+        store %x_30, %13
         exit_if  # if_1
       }
     }
-    %13:bool = load %x_30
-    if %13 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %14:bool = load %x_30
+    if %14 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
@@ -47,12 +48,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    ret %18
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.msl
index 2303bd4..100eefe 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-selection-dag-same-cond-twice/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,38 +8,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_29:ptr<function, bool, read_write> = var
     %x_30_phi:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %6:ptr<uniform, f32, read> = access %x_5, 0u
-    %x_23:f32 = load %6
-    %x_24:bool = lt %x_23, 0.0f
+    %7:f32 = load %6
+    %x_23:f32 = let %7
+    %9:bool = lt %x_23, 0.0f
+    %x_24:bool = let %9
     store %x_30_phi, %x_24
-    if %x_24 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, f32, read> = access %x_5, 0u
-        %x_28:f32 = load %9
-        %11:bool = lt %x_28, 0.0f
-        store %x_29, %11
-        %12:bool = load %x_29
-        store %x_30_phi, %12
+    if %x_24 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<uniform, f32, read> = access %x_5, 0u
+        %12:f32 = load %11
+        %x_28:f32 = let %12
+        %14:bool = lt %x_28, 0.0f
+        store %x_29, %14
+        %15:bool = load %x_29
+        store %x_30_phi, %15
         exit_if  # if_1
       }
     }
-    %x_30:bool = load %x_30_phi
-    if %x_30 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %16:bool = load %x_30_phi
+    %x_30:bool = let %16
+    if %x_30 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
@@ -47,12 +51,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.msl
index e3ce766..57c1be4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,164 +12,171 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_33:ptr<function, vec4<f32>, read_write> = var
     %x_36:ptr<function, i32, read_write> = var
     %x_38:ptr<function, i32, read_write> = var
     %x_74:ptr<function, bool, read_write> = var
     %x_75:ptr<function, bool, read_write> = var
     %9:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_29:i32 = load %9
-    %11:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_31:i32 = load %11
+    %10:i32 = load %9
+    %x_29:i32 = let %10
+    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %13:i32 = load %12
+    %x_31:i32 = let %13
     store %x_33, vec4<f32>(0.0f)
     store %x_36, %x_29
     store %x_38, %x_31
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_53:ptr<function, vec4<f32>, read_write> = var
         %x_34:ptr<function, vec4<f32>, read_write> = var
         %x_62:ptr<function, i32, read_write> = var
         %x_39:ptr<function, i32, read_write> = var
-        %17:ptr<uniform, i32, read> = access %x_5, 0u, 4i, 0u
-        %x_41:i32 = load %17
-        %19:i32 = load %x_38
-        %20:bool = lt %19, %x_41
-        if %20 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %19:ptr<uniform, i32, read> = access %x_5, 0u, 4i, 0u
+        %20:i32 = load %19
+        %x_41:i32 = let %20
+        %22:i32 = load %x_38
+        %23:bool = lt %22, %x_41
+        if %23 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_56:ptr<function, i32, read_write> = var
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %22:i32 = load %x_38
-            %23:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-            %24:i32 = load %23
-            %25:bool = gt %22, %24
-            if %25 [t: %b8] {  # if_2
-              %b8 = block {  # true
-                %26:vec4<f32> = load %x_33
-                store %x_34, %26
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %25:i32 = load %x_38
+            %26:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
+            %27:i32 = load %26
+            %28:bool = gt %25, %27
+            if %28 [t: $B8] {  # if_2
+              $B8: {  # true
+                %29:vec4<f32> = load %x_33
+                store %x_34, %29
                 store %x_62, 2i
                 exit_switch  # switch_1
               }
             }
-            %27:vec4<f32> = load %x_33
-            store %x_53, %27
+            %30:vec4<f32> = load %x_33
+            store %x_53, %30
             store %x_56, %x_29
-            loop [b: %b9, c: %b10] {  # loop_2
-              %b9 = block {  # body
+            loop [b: $B9, c: $B10] {  # loop_2
+              $B9: {  # body
                 %x_54:ptr<function, vec4<f32>, read_write> = var
                 %x_57:ptr<function, i32, read_write> = var
-                %30:i32 = load %x_56
-                %31:bool = lt %30, %x_41
-                if %31 [t: %b11, f: %b12] {  # if_3
-                  %b11 = block {  # true
+                %33:i32 = load %x_56
+                %34:bool = lt %33, %x_41
+                if %34 [t: $B11, f: $B12] {  # if_3
+                  $B11: {  # true
                     exit_if  # if_3
                   }
-                  %b12 = block {  # false
+                  $B12: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                continue %b10
+                continue  # -> $B10
               }
-              %b10 = block {  # continuing
-                %32:i32 = load %x_38
-                %33:i32 = load %x_56
-                %34:i32 = add %32, %33
-                %35:f32 = convert %34
-                %36:vec4<f32> = construct %35
-                store %x_54, %36
-                %37:i32 = load %x_56
-                %38:i32 = add %37, 1i
-                store %x_57, %38
-                %39:vec4<f32> = load %x_54
-                store %x_53, %39
-                %40:i32 = load %x_57
-                store %x_56, %40
-                next_iteration %b9
+              $B10: {  # continuing
+                %35:i32 = load %x_38
+                %36:i32 = load %x_56
+                %37:i32 = add %35, %36
+                %38:f32 = convert %37
+                %39:vec4<f32> = construct %38
+                store %x_54, %39
+                %40:i32 = load %x_56
+                %41:i32 = add %40, 1i
+                store %x_57, %41
+                %42:vec4<f32> = load %x_54
+                store %x_53, %42
+                %43:i32 = load %x_57
+                store %x_56, %43
+                next_iteration  # -> $B9
               }
             }
-            %41:vec4<f32> = load %x_53
-            store %x_GLF_color, %41
-            %42:vec4<f32> = load %x_53
-            store %x_34, %42
+            %44:vec4<f32> = load %x_53
+            store %x_GLF_color, %44
+            %45:vec4<f32> = load %x_53
+            store %x_34, %45
             store %x_62, %x_31
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %43:i32 = load %x_38
-        %44:i32 = add %43, 1i
-        store %x_39, %44
-        %45:vec4<f32> = load %x_34
-        store %x_33, %45
-        %46:i32 = load %x_36
-        %47:i32 = load %x_62
-        %48:i32 = add %46, %47
-        store %x_36, %48
-        %49:i32 = load %x_39
-        store %x_38, %49
-        next_iteration %b3
+      $B4: {  # continuing
+        %46:i32 = load %x_38
+        %47:i32 = add %46, 1i
+        store %x_39, %47
+        %48:vec4<f32> = load %x_34
+        store %x_33, %48
+        %49:i32 = load %x_36
+        %50:i32 = load %x_62
+        %51:i32 = add %49, %50
+        store %x_36, %51
+        %52:i32 = load %x_39
+        store %x_38, %52
+        next_iteration  # -> $B3
       }
     }
-    %50:vec4<f32> = load %x_GLF_color
-    %51:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-    %52:i32 = load %51
-    %53:f32 = convert %52
-    %54:vec4<f32> = construct %53
-    %55:vec4<bool> = eq %50, %54
-    %x_69:bool = all %55
+    %53:vec4<f32> = load %x_GLF_color
+    %54:vec4<f32> = let %53
+    %55:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+    %56:i32 = load %55
+    %57:f32 = convert %56
+    %58:vec4<f32> = construct %57
+    %59:vec4<bool> = eq %54, %58
+    %60:bool = all %59
+    %x_69:bool = let %60
     store %x_75, %x_69
-    if %x_69 [t: %b13] {  # if_4
-      %b13 = block {  # true
-        %57:i32 = load %x_36
-        %58:ptr<uniform, i32, read> = access %x_5, 0u, 5i, 0u
-        %59:i32 = load %58
-        %60:bool = eq %57, %59
-        store %x_74, %60
-        %61:bool = load %x_74
-        store %x_75, %61
+    if %x_69 [t: $B13] {  # if_4
+      $B13: {  # true
+        %62:i32 = load %x_36
+        %63:ptr<uniform, i32, read> = access %x_5, 0u, 5i, 0u
+        %64:i32 = load %63
+        %65:bool = eq %62, %64
+        store %x_74, %65
+        %66:bool = load %x_74
+        store %x_75, %66
         exit_if  # if_4
       }
     }
-    %62:bool = load %x_75
-    if %62 [t: %b14, f: %b15] {  # if_5
-      %b14 = block {  # true
-        %x_79:f32 = convert %x_31
-        %x_80:f32 = convert %x_29
-        %65:vec4<f32> = construct %x_79, %x_80, %x_80, %x_79
-        store %x_GLF_color, %65
+    %67:bool = load %x_75
+    if %67 [t: $B14, f: $B15] {  # if_5
+      $B14: {  # true
+        %68:f32 = convert %x_31
+        %x_79:f32 = let %68
+        %70:f32 = convert %x_29
+        %x_80:f32 = let %70
+        %72:vec4<f32> = construct %x_79, %x_80, %x_80, %x_79
+        store %x_GLF_color, %72
         exit_if  # if_5
       }
-      %b15 = block {  # false
-        %66:f32 = convert %x_29
-        %67:vec4<f32> = construct %66
-        store %x_GLF_color, %67
+      $B15: {  # false
+        %73:f32 = convert %x_29
+        %74:vec4<f32> = construct %73
+        store %x_GLF_color, %74
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+%tint_symbol = @fragment func():main_out {
+  $B16: {
+    %76:void = call %main_1
+    %77:vec4<f32> = load %x_GLF_color
+    %78:main_out = construct %77
+    ret %78
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.msl
index 9238001..769ddce 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-output-color-function-call-nested-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, i32, read_write> = var
     %x_74:ptr<function, bool, read_write> = var
     %x_33_phi:ptr<function, vec4<f32>, read_write> = var
@@ -26,42 +26,48 @@
     %x_38_phi:ptr<function, i32, read_write> = var
     %x_75_phi:ptr<function, bool, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_29:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-    %x_31:i32 = load %12
+    %11:i32 = load %10
+    %x_29:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %14:i32 = load %13
+    %x_31:i32 = let %14
     store %x_33_phi, vec4<f32>(0.0f)
     store %x_36_phi, %x_29
     store %x_38_phi, %x_31
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_53:ptr<function, vec4<f32>, read_write> = var
         %x_39:ptr<function, i32, read_write> = var
         %x_34_phi:ptr<function, vec4<f32>, read_write> = var
         %x_62_phi:ptr<function, i32, read_write> = var
-        %x_33:vec4<f32> = load %x_33_phi
-        %19:i32 = load %x_36_phi
-        store %x_36, %19
-        %x_38:i32 = load %x_38_phi
-        %21:ptr<uniform, i32, read> = access %x_5, 0u, 4i, 0u
-        %x_41:i32 = load %21
-        %23:bool = lt %x_38, %x_41
-        if %23 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %20:vec4<f32> = load %x_33_phi
+        %x_33:vec4<f32> = let %20
+        %22:i32 = load %x_36_phi
+        store %x_36, %22
+        %23:i32 = load %x_38_phi
+        %x_38:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_5, 0u, 4i, 0u
+        %26:i32 = load %25
+        %x_41:i32 = let %26
+        %28:bool = lt %x_38, %x_41
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_53_phi:ptr<function, vec4<f32>, read_write> = var
         %x_56_phi:ptr<function, i32, read_write> = var
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %26:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
-            %x_48:i32 = load %26
-            %28:bool = gt %x_38, %x_48
-            if %28 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %31:ptr<uniform, i32, read> = access %x_5, 0u, 3i, 0u
+            %32:i32 = load %31
+            %x_48:i32 = let %32
+            %34:bool = gt %x_38, %x_48
+            if %34 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_34_phi, %x_33
                 store %x_62_phi, 2i
                 exit_switch  # switch_1
@@ -69,110 +75,125 @@
             }
             store %x_53_phi, %x_33
             store %x_56_phi, %x_29
-            loop [b: %b9, c: %b10] {  # loop_2
-              %b9 = block {  # body
+            loop [b: $B9, c: $B10] {  # loop_2
+              $B9: {  # body
                 %x_54:ptr<function, vec4<f32>, read_write> = var
                 %x_57:ptr<function, i32, read_write> = var
-                %31:vec4<f32> = load %x_53_phi
-                store %x_53, %31
-                %x_56:i32 = load %x_56_phi
-                %33:bool = lt %x_56, %x_41
-                if %33 [t: %b11, f: %b12] {  # if_3
-                  %b11 = block {  # true
+                %37:vec4<f32> = load %x_53_phi
+                store %x_53, %37
+                %38:i32 = load %x_56_phi
+                %x_56:i32 = let %38
+                %40:bool = lt %x_56, %x_41
+                if %40 [t: $B11, f: $B12] {  # if_3
+                  $B11: {  # true
                     exit_if  # if_3
                   }
-                  %b12 = block {  # false
+                  $B12: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                continue %b10
+                continue  # -> $B10
               }
-              %b10 = block {  # continuing
-                %34:i32 = add %x_38, %x_56
-                %x_61:f32 = convert %34
-                %36:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
-                store %x_54, %36
-                %37:i32 = add %x_56, 1i
-                store %x_57, %37
-                %38:vec4<f32> = load %x_54
-                store %x_53_phi, %38
-                %39:i32 = load %x_57
-                store %x_56_phi, %39
-                next_iteration %b9
+              $B10: {  # continuing
+                %41:i32 = add %x_38, %x_56
+                %42:f32 = convert %41
+                %x_61:f32 = let %42
+                %44:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
+                store %x_54, %44
+                %45:i32 = add %x_56, 1i
+                store %x_57, %45
+                %46:vec4<f32> = load %x_54
+                store %x_53_phi, %46
+                %47:i32 = load %x_57
+                store %x_56_phi, %47
+                next_iteration  # -> $B9
               }
             }
-            %40:vec4<f32> = load %x_53
-            store %x_GLF_color, %40
-            %41:vec4<f32> = load %x_53
-            store %x_34_phi, %41
+            %48:vec4<f32> = load %x_53
+            store %x_GLF_color, %48
+            %49:vec4<f32> = load %x_53
+            store %x_34_phi, %49
             store %x_62_phi, %x_31
             exit_switch  # switch_1
           }
         }
-        %x_34:vec4<f32> = load %x_34_phi
-        %x_62:i32 = load %x_62_phi
-        continue %b4
+        %50:vec4<f32> = load %x_34_phi
+        %x_34:vec4<f32> = let %50
+        %52:i32 = load %x_62_phi
+        %x_62:i32 = let %52
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %44:i32 = add %x_38, 1i
-        store %x_39, %44
+      $B4: {  # continuing
+        %54:i32 = add %x_38, 1i
+        store %x_39, %54
         store %x_33_phi, %x_34
-        %45:i32 = load %x_36
-        %46:i32 = bitcast %x_62
-        %47:i32 = add %45, %46
-        %48:i32 = bitcast %47
-        store %x_36_phi, %48
-        %49:i32 = load %x_39
-        store %x_38_phi, %49
-        next_iteration %b3
+        %55:i32 = load %x_36
+        %56:i32 = let %55
+        %57:i32 = bitcast %x_62
+        %58:i32 = add %56, %57
+        %59:i32 = bitcast %58
+        store %x_36_phi, %59
+        %60:i32 = load %x_39
+        store %x_38_phi, %60
+        next_iteration  # -> $B3
       }
     }
-    %x_63:vec4<f32> = load %x_GLF_color
-    %51:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
-    %x_65:i32 = load %51
-    %x_66:f32 = convert %x_65
-    %54:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
-    %55:vec4<bool> = eq %x_63, %54
-    %x_69:bool = all %55
+    %61:vec4<f32> = load %x_GLF_color
+    %x_63:vec4<f32> = let %61
+    %63:ptr<uniform, i32, read> = access %x_5, 0u, 2i, 0u
+    %64:i32 = load %63
+    %x_65:i32 = let %64
+    %66:f32 = convert %x_65
+    %x_66:f32 = let %66
+    %68:vec4<f32> = construct %x_66, %x_66, %x_66, %x_66
+    %69:vec4<bool> = eq %x_63, %68
+    %70:bool = all %69
+    %x_69:bool = let %70
     store %x_75_phi, %x_69
-    if %x_69 [t: %b13] {  # if_4
-      %b13 = block {  # true
-        %57:ptr<uniform, i32, read> = access %x_5, 0u, 5i, 0u
-        %x_73:i32 = load %57
-        %59:i32 = load %x_36
-        %60:i32 = bitcast %x_73
-        %61:bool = eq %59, %60
-        store %x_74, %61
-        %62:bool = load %x_74
-        store %x_75_phi, %62
+    if %x_69 [t: $B13] {  # if_4
+      $B13: {  # true
+        %72:ptr<uniform, i32, read> = access %x_5, 0u, 5i, 0u
+        %73:i32 = load %72
+        %x_73:i32 = let %73
+        %75:i32 = load %x_36
+        %76:i32 = let %75
+        %77:i32 = bitcast %x_73
+        %78:bool = eq %76, %77
+        store %x_74, %78
+        %79:bool = load %x_74
+        store %x_75_phi, %79
         exit_if  # if_4
       }
     }
-    %x_75:bool = load %x_75_phi
-    if %x_75 [t: %b14, f: %b15] {  # if_5
-      %b14 = block {  # true
-        %x_79:f32 = convert %x_31
-        %x_80:f32 = convert %x_29
-        %66:vec4<f32> = construct %x_79, %x_80, %x_80, %x_79
-        store %x_GLF_color, %66
+    %80:bool = load %x_75_phi
+    %x_75:bool = let %80
+    if %x_75 [t: $B14, f: $B15] {  # if_5
+      $B14: {  # true
+        %82:f32 = convert %x_31
+        %x_79:f32 = let %82
+        %84:f32 = convert %x_29
+        %x_80:f32 = let %84
+        %86:vec4<f32> = construct %x_79, %x_80, %x_80, %x_79
+        store %x_GLF_color, %86
         exit_if  # if_5
       }
-      %b15 = block {  # false
-        %x_82:f32 = convert %x_29
-        %68:vec4<f32> = construct %x_82, %x_82, %x_82, %x_82
-        store %x_GLF_color, %68
+      $B15: {  # false
+        %87:f32 = convert %x_29
+        %x_82:f32 = let %87
+        %89:vec4<f32> = construct %x_82, %x_82, %x_82, %x_82
+        store %x_GLF_color, %89
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %70:void = call %main_1
-    %71:vec4<f32> = load %x_GLF_color
-    %72:main_out = construct %71
-    ret %72
+%tint_symbol = @fragment func():main_out {
+  $B16: {
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    ret %93
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.msl
index 98fb23e..a989a5d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec3<f32>, read_write> = var
     %x_105:ptr<function, bool, read_write> = var
@@ -25,57 +25,58 @@
     store %a, vec2<f32>(1.0f)
     store %b, vec3<f32>(0.0f)
     %11:f32 = load_vector_element %gl_FragCoord, 1u
-    %12:i32 = convert %11
-    %13:bool = lt %12, 40i
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %12:i32 = call %tint_f32_to_i32, %11
+    %14:bool = lt %12, 40i
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %b, vec3<f32>(0.10000000149011611938f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %14:f32 = load_vector_element %gl_FragCoord, 1u
-        %15:i32 = convert %14
-        %16:bool = lt %15, 60i
-        if %16 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
+      $B4: {  # false
+        %15:f32 = load_vector_element %gl_FragCoord, 1u
+        %16:i32 = call %tint_f32_to_i32, %15
+        %17:bool = lt %16, 60i
+        if %17 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
             store %b, vec3<f32>(0.20000000298023223877f)
             exit_if  # if_2
           }
-          %b6 = block {  # false
-            %17:f32 = load_vector_element %gl_FragCoord, 1u
-            %18:bool = lt %17, 80.0f
-            if %18 [t: %b7, f: %b8] {  # if_3
-              %b7 = block {  # true
-                %19:f32 = load_vector_element %a, 0u
-                %20:vec3<f32> = construct %19
-                %21:ptr<uniform, f32, read> = access %x_8, 0u
-                %22:f32 = load %21
-                %23:vec3<f32> = construct %22
-                %24:vec3<f32> = add %20, %23
-                %25:vec3<f32> = cos %24
-                %26:vec3<f32> = add %25, vec3<f32>(0.00999999977648258209f)
-                store %b, %26
+          $B6: {  # false
+            %18:f32 = load_vector_element %gl_FragCoord, 1u
+            %19:bool = lt %18, 80.0f
+            if %19 [t: $B7, f: $B8] {  # if_3
+              $B7: {  # true
+                %20:f32 = load_vector_element %a, 0u
+                %21:vec3<f32> = construct %20
+                %22:vec3<f32> = let %21
+                %23:ptr<uniform, f32, read> = access %x_8, 0u
+                %24:f32 = load %23
+                %25:vec3<f32> = construct %24
+                %26:vec3<f32> = add %22, %25
+                %27:vec3<f32> = cos %26
+                %28:vec3<f32> = add %27, vec3<f32>(0.00999999977648258209f)
+                store %b, %28
                 exit_if  # if_3
               }
-              %b8 = block {  # false
-                %27:f32 = load_vector_element %gl_FragCoord, 1u
-                %28:i32 = convert %27
-                %29:bool = lt %28, 100i
-                if %29 [t: %b9, f: %b10] {  # if_4
-                  %b9 = block {  # true
-                    %30:ptr<uniform, f32, read> = access %x_8, 0u
-                    %31:f32 = load %30
-                    %32:vec3<f32> = construct %31
-                    %33:vec3<f32> = cos %32
-                    store %b, %33
+              $B8: {  # false
+                %29:f32 = load_vector_element %gl_FragCoord, 1u
+                %30:i32 = call %tint_f32_to_i32, %29
+                %31:bool = lt %30, 100i
+                if %31 [t: $B9, f: $B10] {  # if_4
+                  $B9: {  # true
+                    %32:ptr<uniform, f32, read> = access %x_8, 0u
+                    %33:f32 = load %32
+                    %34:vec3<f32> = construct %33
+                    %35:vec3<f32> = cos %34
+                    store %b, %35
                     exit_if  # if_4
                   }
-                  %b10 = block {  # false
-                    %34:f32 = load_vector_element %gl_FragCoord, 1u
-                    %35:i32 = convert %34
-                    %36:bool = lt %35, 500i
-                    if %36 [t: %b11] {  # if_5
-                      %b11 = block {  # true
+                  $B10: {  # false
+                    %36:f32 = load_vector_element %gl_FragCoord, 1u
+                    %37:i32 = call %tint_f32_to_i32, %36
+                    %38:bool = lt %37, 500i
+                    if %38 [t: $B11] {  # if_5
+                      $B11: {  # true
                         store %b, vec3<f32>(0.540302276611328125f, 0.540302276611328125f, -0.99996083974838256836f)
                         exit_if  # if_5
                       }
@@ -92,39 +93,40 @@
         exit_if  # if_1
       }
     }
-    %37:f32 = load_vector_element %b, 0u
-    %x_100:bool = lt %37, 1.01999998092651367188f
+    %39:f32 = load_vector_element %b, 0u
+    %40:bool = lt %39, 1.01999998092651367188f
+    %x_100:bool = let %40
     store %x_106, %x_100
-    if %x_100 [t: %b12] {  # if_6
-      %b12 = block {  # true
-        %39:f32 = load_vector_element %b, 1u
-        %40:bool = lt %39, 1.01999998092651367188f
-        store %x_105, %40
-        %41:bool = load %x_105
-        store %x_106, %41
+    if %x_100 [t: $B12] {  # if_6
+      $B12: {  # true
+        %42:f32 = load_vector_element %b, 1u
+        %43:bool = lt %42, 1.01999998092651367188f
+        store %x_105, %43
+        %44:bool = load %x_105
+        store %x_106, %44
         exit_if  # if_6
       }
     }
-    %42:bool = load %x_106
-    store %x_112, %42
-    %43:bool = load %x_106
-    if %43 [t: %b13] {  # if_7
-      %b13 = block {  # true
-        %44:f32 = load_vector_element %b, 2u
-        %45:bool = lt %44, 1.01999998092651367188f
-        store %x_111, %45
-        %46:bool = load %x_111
-        store %x_112, %46
+    %45:bool = load %x_106
+    store %x_112, %45
+    %46:bool = load %x_106
+    if %46 [t: $B13] {  # if_7
+      $B13: {  # true
+        %47:f32 = load_vector_element %b, 2u
+        %48:bool = lt %47, 1.01999998092651367188f
+        store %x_111, %48
+        %49:bool = load %x_111
+        store %x_112, %49
         exit_if  # if_7
       }
     }
-    %47:bool = load %x_112
-    if %47 [t: %b14, f: %b15] {  # if_8
-      %b14 = block {  # true
+    %50:bool = load %x_112
+    if %50 [t: $B14, f: $B15] {  # if_8
+      $B14: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_8
       }
-      %b15 = block {  # false
+      $B15: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_8
       }
@@ -132,13 +134,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %50:void = call %main_1
-    %51:vec4<f32> = load %x_GLF_color
-    %52:main_out = construct %51
-    ret %52
+    %53:void = call %main_1
+    %54:vec4<f32> = load %x_GLF_color
+    %55:main_out = construct %54
+    ret %55
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B17: {
+    %57:i32 = convert %value
+    %58:bool = gte %value, -2147483648.0f
+    %59:i32 = select -2147483648i, %57, %58
+    %60:bool = lte %value, 2147483520.0f
+    %61:i32 = select 2147483647i, %59, %60
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.msl
index 0c09b27..753b742 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-set-vector-cos-fragcoord/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec3<f32>, read_write> = var
     %x_105:ptr<function, bool, read_write> = var
@@ -24,58 +24,67 @@
     %x_112_phi:ptr<function, bool, read_write> = var
     store %a, vec2<f32>(1.0f)
     store %b, vec3<f32>(0.0f)
-    %x_52:f32 = load_vector_element %gl_FragCoord, 1u
-    %12:i32 = convert %x_52
-    %13:bool = lt %12, 40i
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %11:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_52:f32 = let %11
+    %13:i32 = call %tint_f32_to_i32, %x_52
+    %15:bool = lt %13, 40i
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %b, vec3<f32>(0.10000000149011611938f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_59:f32 = load_vector_element %gl_FragCoord, 1u
-        %15:i32 = convert %x_59
-        %16:bool = lt %15, 60i
-        if %16 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
+      $B4: {  # false
+        %16:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_59:f32 = let %16
+        %18:i32 = call %tint_f32_to_i32, %x_59
+        %19:bool = lt %18, 60i
+        if %19 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
             store %b, vec3<f32>(0.20000000298023223877f)
             exit_if  # if_2
           }
-          %b6 = block {  # false
-            %x_66:f32 = load_vector_element %gl_FragCoord, 1u
-            %18:bool = lt %x_66, 80.0f
-            if %18 [t: %b7, f: %b8] {  # if_3
-              %b7 = block {  # true
-                %x_72:f32 = load_vector_element %a, 0u
-                %20:ptr<uniform, f32, read> = access %x_8, 0u
-                %x_74:f32 = load %20
-                %22:vec3<f32> = construct %x_72, %x_72, %x_72
-                %23:vec3<f32> = construct %x_74, %x_74, %x_74
-                %24:vec3<f32> = add %22, %23
-                %25:vec3<f32> = cos %24
-                %26:vec3<f32> = add %25, vec3<f32>(0.00999999977648258209f)
-                store %b, %26
+          $B6: {  # false
+            %20:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_66:f32 = let %20
+            %22:bool = lt %x_66, 80.0f
+            if %22 [t: $B7, f: $B8] {  # if_3
+              $B7: {  # true
+                %23:f32 = load_vector_element %a, 0u
+                %x_72:f32 = let %23
+                %25:ptr<uniform, f32, read> = access %x_8, 0u
+                %26:f32 = load %25
+                %x_74:f32 = let %26
+                %28:vec3<f32> = construct %x_72, %x_72, %x_72
+                %29:vec3<f32> = let %28
+                %30:vec3<f32> = construct %x_74, %x_74, %x_74
+                %31:vec3<f32> = add %29, %30
+                %32:vec3<f32> = cos %31
+                %33:vec3<f32> = add %32, vec3<f32>(0.00999999977648258209f)
+                store %b, %33
                 exit_if  # if_3
               }
-              %b8 = block {  # false
-                %x_82:f32 = load_vector_element %gl_FragCoord, 1u
-                %28:i32 = convert %x_82
-                %29:bool = lt %28, 100i
-                if %29 [t: %b9, f: %b10] {  # if_4
-                  %b9 = block {  # true
-                    %30:ptr<uniform, f32, read> = access %x_8, 0u
-                    %x_89:f32 = load %30
-                    %32:vec3<f32> = construct %x_89, %x_89, %x_89
-                    %33:vec3<f32> = cos %32
-                    store %b, %33
+              $B8: {  # false
+                %34:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_82:f32 = let %34
+                %36:i32 = call %tint_f32_to_i32, %x_82
+                %37:bool = lt %36, 100i
+                if %37 [t: $B9, f: $B10] {  # if_4
+                  $B9: {  # true
+                    %38:ptr<uniform, f32, read> = access %x_8, 0u
+                    %39:f32 = load %38
+                    %x_89:f32 = let %39
+                    %41:vec3<f32> = construct %x_89, %x_89, %x_89
+                    %42:vec3<f32> = cos %41
+                    store %b, %42
                     exit_if  # if_4
                   }
-                  %b10 = block {  # false
-                    %x_93:f32 = load_vector_element %gl_FragCoord, 1u
-                    %35:i32 = convert %x_93
-                    %36:bool = lt %35, 500i
-                    if %36 [t: %b11] {  # if_5
-                      %b11 = block {  # true
+                  $B10: {  # false
+                    %43:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_93:f32 = let %43
+                    %45:i32 = call %tint_f32_to_i32, %x_93
+                    %46:bool = lt %45, 500i
+                    if %46 [t: $B11] {  # if_5
+                      $B11: {  # true
                         store %b, vec3<f32>(0.540302276611328125f, 0.540302276611328125f, -0.99996083974838256836f)
                         exit_if  # if_5
                       }
@@ -92,38 +101,44 @@
         exit_if  # if_1
       }
     }
-    %x_99:f32 = load_vector_element %b, 0u
-    %x_100:bool = lt %x_99, 1.01999998092651367188f
+    %47:f32 = load_vector_element %b, 0u
+    %x_99:f32 = let %47
+    %49:bool = lt %x_99, 1.01999998092651367188f
+    %x_100:bool = let %49
     store %x_106_phi, %x_100
-    if %x_100 [t: %b12] {  # if_6
-      %b12 = block {  # true
-        %x_104:f32 = load_vector_element %b, 1u
-        %40:bool = lt %x_104, 1.01999998092651367188f
-        store %x_105, %40
-        %41:bool = load %x_105
-        store %x_106_phi, %41
+    if %x_100 [t: $B12] {  # if_6
+      $B12: {  # true
+        %51:f32 = load_vector_element %b, 1u
+        %x_104:f32 = let %51
+        %53:bool = lt %x_104, 1.01999998092651367188f
+        store %x_105, %53
+        %54:bool = load %x_105
+        store %x_106_phi, %54
         exit_if  # if_6
       }
     }
-    %x_106:bool = load %x_106_phi
+    %55:bool = load %x_106_phi
+    %x_106:bool = let %55
     store %x_112_phi, %x_106
-    if %x_106 [t: %b13] {  # if_7
-      %b13 = block {  # true
-        %x_110:f32 = load_vector_element %b, 2u
-        %44:bool = lt %x_110, 1.01999998092651367188f
-        store %x_111, %44
-        %45:bool = load %x_111
-        store %x_112_phi, %45
+    if %x_106 [t: $B13] {  # if_7
+      $B13: {  # true
+        %57:f32 = load_vector_element %b, 2u
+        %x_110:f32 = let %57
+        %59:bool = lt %x_110, 1.01999998092651367188f
+        store %x_111, %59
+        %60:bool = load %x_111
+        store %x_112_phi, %60
         exit_if  # if_7
       }
     }
-    %x_112:bool = load %x_112_phi
-    if %x_112 [t: %b14, f: %b15] {  # if_8
-      %b14 = block {  # true
+    %61:bool = load %x_112_phi
+    %x_112:bool = let %61
+    if %x_112 [t: $B14, f: $B15] {  # if_8
+      $B14: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_8
       }
-      %b15 = block {  # false
+      $B15: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_8
       }
@@ -131,13 +146,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b16 {
-  %b16 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B17: {
+    %69:i32 = convert %value
+    %70:bool = gte %value, -2147483648.0f
+    %71:i32 = select -2147483648i, %69, %70
+    %72:bool = lte %value, 2147483520.0f
+    %73:i32 = select 2147483647i, %71, %72
+    ret %73
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.msl
index 9ecb0fe..4531c5a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i1_2_1_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%func_struct_S_i1_2_1_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %6:ptr<function, i32, read_write> = access %s, 0u, 1i
     %7:i32 = load %x
     %8:i32 = add %7, 1i
@@ -29,17 +29,18 @@
     %12:i32 = load %11
     %13:i32 = load %x
     %14:bool = eq %12, %13
-    if %14 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
         ret -1i
       }
     }
-    %x_21:i32 = load %x
+    %15:i32 = load %x
+    %x_21:i32 = let %15
     ret %x_21
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -48,73 +49,76 @@
     %param_1:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %23:i32 = load %i
-        %24:ptr<uniform, i32, read> = access %x_9, 0u
-        %25:i32 = load %24
-        %26:i32 = add 2i, %25
-        %27:bool = lt %23, %26
-        if %27 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %24:i32 = load %i
+        %25:ptr<uniform, i32, read> = access %x_9, 0u
+        %26:i32 = load %25
+        %27:i32 = add 2i, %26
+        %28:bool = lt %24, %27
+        if %28 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
         store %j, 0i
-        loop [b: %b9, c: %b10] {  # loop_2
-          %b9 = block {  # body
-            %28:i32 = load %j
-            %29:ptr<uniform, i32, read> = access %x_9, 0u
-            %30:i32 = load %29
-            %31:i32 = add 3i, %30
-            %32:bool = lt %28, %31
-            if %32 [t: %b11, f: %b12] {  # if_3
-              %b11 = block {  # true
+        loop [b: $B9, c: $B10] {  # loop_2
+          $B9: {  # body
+            %29:i32 = load %j
+            %30:ptr<uniform, i32, read> = access %x_9, 0u
+            %31:i32 = load %30
+            %32:i32 = add 3i, %31
+            %33:bool = lt %29, %32
+            if %33 [t: $B11, f: $B12] {  # if_3
+              $B11: {  # true
                 exit_if  # if_3
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_28:i32 = load %i
-            %x_29:i32 = load %j
-            %35:S = load %s_1
-            store %param, %35
-            %36:i32 = add %x_28, %x_29
-            store %param_1, %36
-            %x_31:i32 = call %func_struct_S_i1_2_1_i1_, %param, %param_1
-            %38:i32 = load %a
-            %39:i32 = add %38, %x_31
-            store %a, %39
-            continue %b10
+            %34:i32 = load %i
+            %x_28:i32 = let %34
+            %36:i32 = load %j
+            %x_29:i32 = let %36
+            %38:S = load %s_1
+            store %param, %38
+            %39:i32 = add %x_28, %x_29
+            store %param_1, %39
+            %40:i32 = call %func_struct_S_i1_2_1_i1_, %param, %param_1
+            %x_31:i32 = let %40
+            %42:i32 = load %a
+            %43:i32 = add %42, %x_31
+            store %a, %43
+            continue  # -> $B10
           }
-          %b10 = block {  # continuing
-            %40:i32 = load %j
-            %41:i32 = add %40, 1i
-            store %j, %41
-            next_iteration %b9
+          $B10: {  # continuing
+            %44:i32 = load %j
+            %45:i32 = add %44, 1i
+            store %j, %45
+            next_iteration  # -> $B9
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %42:i32 = load %i
-        %43:i32 = add %42, 1i
-        store %i, %43
-        next_iteration %b5
+      $B6: {  # continuing
+        %46:i32 = load %i
+        %47:i32 = add %46, 1i
+        store %i, %47
+        next_iteration  # -> $B5
       }
     }
-    %44:i32 = load %a
-    %45:bool = eq %44, 30i
-    if %45 [t: %b13, f: %b14] {  # if_4
-      %b13 = block {  # true
+    %48:i32 = load %a
+    %49:bool = eq %48, 30i
+    if %49 [t: $B13, f: $B14] {  # if_4
+      $B13: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_4
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -122,12 +126,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.msl
index 45174b1..9337e05 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-unused-struct/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -12,34 +12,39 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i1_2_1_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
-    %x_16:i32 = load %x
-    %7:ptr<function, i32, read_write> = access %s, 0u, 1i
-    %8:i32 = add %x_16, 1i
-    store %7, %8
-    %9:ptr<uniform, i32, read> = access %x_9, 0u
-    %x_18:i32 = load %9
-    %11:ptr<function, i32, read_write> = access %s, 0u, %x_18
-    %x_19:i32 = load %11
-    %x_20:i32 = load %x
-    %14:bool = eq %x_19, %x_20
-    if %14 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%func_struct_S_i1_2_1_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):i32 {
+  $B2: {
+    %6:i32 = load %x
+    %x_16:i32 = let %6
+    %8:ptr<function, i32, read_write> = access %s, 0u, 1i
+    %9:i32 = add %x_16, 1i
+    store %8, %9
+    %10:ptr<uniform, i32, read> = access %x_9, 0u
+    %11:i32 = load %10
+    %x_18:i32 = let %11
+    %13:ptr<function, i32, read_write> = access %s, 0u, %x_18
+    %14:i32 = load %13
+    %x_19:i32 = let %14
+    %16:i32 = load %x
+    %x_20:i32 = let %16
+    %18:bool = eq %x_19, %x_20
+    if %18 [t: $B3] {  # if_1
+      $B3: {  # true
         ret -1i
       }
     }
-    %x_21:i32 = load %x
+    %19:i32 = load %x
+    %x_21:i32 = let %19
     ret %x_21
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -48,73 +53,85 @@
     %param_1:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_22:i32 = load %i
-        %24:ptr<uniform, i32, read> = access %x_9, 0u
-        %x_23:i32 = load %24
-        %26:i32 = add 2i, %x_23
-        %27:bool = lt %x_22, %26
-        if %27 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %28:i32 = load %i
+        %x_22:i32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_9, 0u
+        %31:i32 = load %30
+        %x_23:i32 = let %31
+        %33:i32 = add 2i, %x_23
+        %34:bool = lt %x_22, %33
+        if %34 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
         store %j, 0i
-        loop [b: %b9, c: %b10] {  # loop_2
-          %b9 = block {  # body
-            %x_25:i32 = load %j
-            %29:ptr<uniform, i32, read> = access %x_9, 0u
-            %x_26:i32 = load %29
-            %31:i32 = add 3i, %x_26
-            %32:bool = lt %x_25, %31
-            if %32 [t: %b11, f: %b12] {  # if_3
-              %b11 = block {  # true
+        loop [b: $B9, c: $B10] {  # loop_2
+          $B9: {  # body
+            %35:i32 = load %j
+            %x_25:i32 = let %35
+            %37:ptr<uniform, i32, read> = access %x_9, 0u
+            %38:i32 = load %37
+            %x_26:i32 = let %38
+            %40:i32 = add 3i, %x_26
+            %41:bool = lt %x_25, %40
+            if %41 [t: $B11, f: $B12] {  # if_3
+              $B11: {  # true
                 exit_if  # if_3
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_28:i32 = load %i
-            %x_29:i32 = load %j
-            %x_79:S = load %s_1
+            %42:i32 = load %i
+            %x_28:i32 = let %42
+            %44:i32 = load %j
+            %x_29:i32 = let %44
+            %46:S = load %s_1
+            %x_79:S = let %46
             store %param, %x_79
-            %36:i32 = add %x_28, %x_29
-            store %param_1, %36
-            %x_31:i32 = call %func_struct_S_i1_2_1_i1_, %param, %param_1
-            %x_32:i32 = load %a
-            %39:i32 = add %x_32, %x_31
-            store %a, %39
-            continue %b10
+            %48:i32 = add %x_28, %x_29
+            store %param_1, %48
+            %49:i32 = call %func_struct_S_i1_2_1_i1_, %param, %param_1
+            %x_31:i32 = let %49
+            %51:i32 = load %a
+            %x_32:i32 = let %51
+            %53:i32 = add %x_32, %x_31
+            store %a, %53
+            continue  # -> $B10
           }
-          %b10 = block {  # continuing
-            %x_34:i32 = load %j
-            %41:i32 = add %x_34, 1i
-            store %j, %41
-            next_iteration %b9
+          $B10: {  # continuing
+            %54:i32 = load %j
+            %x_34:i32 = let %54
+            %56:i32 = add %x_34, 1i
+            store %j, %56
+            next_iteration  # -> $B9
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %x_36:i32 = load %i
-        %43:i32 = add %x_36, 1i
-        store %i, %43
-        next_iteration %b5
+      $B6: {  # continuing
+        %57:i32 = load %i
+        %x_36:i32 = let %57
+        %59:i32 = add %x_36, 1i
+        store %i, %59
+        next_iteration  # -> $B5
       }
     }
-    %x_38:i32 = load %a
-    %45:bool = eq %x_38, 30i
-    if %45 [t: %b13, f: %b14] {  # if_4
-      %b13 = block {  # true
+    %60:i32 = load %a
+    %x_38:i32 = let %60
+    %62:bool = eq %x_38, 30i
+    if %62 [t: $B13, f: $B14] {  # if_4
+      $B13: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_4
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_4
       }
@@ -122,12 +139,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %64:void = call %main_1
+    %65:vec4<f32> = load %x_GLF_color
+    %66:main_out = construct %65
+    ret %66
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.msl
index 47db413..aefbdff 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -12,56 +12,56 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:i32 = load %i
         %8:ptr<uniform, i32, read> = access %x_6, 0u
         %9:i32 = load %8
         %10:bool = lt %7, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %11:ptr<uniform, i32, read> = access %x_6, 0u
             %12:i32 = load %11
             %13:bool = eq %12, 1i
-            if %13 [t: %b9] {  # if_2
-              %b9 = block {  # true
+            if %13 [t: $B9] {  # if_2
+              $B9: {  # true
                 store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                 exit_if  # if_2
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            break_if true %b7
+          $B8: {  # continuing
+            break_if true  # -> [t: exit_loop loop_2, f: $B7]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %14:i32 = load %i
         %15:i32 = add %14, 1i
         store %i, %15
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %16:ptr<uniform, i32, read> = access %x_9, 0u
@@ -73,8 +73,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func():main_out {
+  $B10: {
     %21:void = call %main_1
     %22:vec4<f32> = load %x_GLF_color
     %23:main_out = construct %22
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.msl
index ac6e258..ae58146 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplification-while-inside-for/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -12,73 +12,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_38:i32 = load %i
-        %8:ptr<uniform, i32, read> = access %x_6, 0u
-        %x_40:i32 = load %8
-        %10:bool = lt %x_38, %x_40
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %x_38:i32 = let %7
+        %9:ptr<uniform, i32, read> = access %x_6, 0u
+        %10:i32 = load %9
+        %x_40:i32 = let %10
+        %12:bool = lt %x_38, %x_40
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %11:ptr<uniform, i32, read> = access %x_6, 0u
-            %x_48:i32 = load %11
-            %13:bool = eq %x_48, 1i
-            if %13 [t: %b9] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %13:ptr<uniform, i32, read> = access %x_6, 0u
+            %14:i32 = load %13
+            %x_48:i32 = let %14
+            %16:bool = eq %x_48, 1i
+            if %16 [t: $B9] {  # if_2
+              $B9: {  # true
                 store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
                 exit_if  # if_2
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            break_if true %b7
+          $B8: {  # continuing
+            break_if true  # -> [t: exit_loop loop_2, f: $B7]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_52:i32 = load %i
-        %15:i32 = add %x_52, 1i
-        store %i, %15
-        next_iteration %b3
+      $B4: {  # continuing
+        %17:i32 = load %i
+        %x_52:i32 = let %17
+        %19:i32 = add %x_52, 1i
+        store %i, %19
+        next_iteration  # -> $B3
       }
     }
-    %16:ptr<uniform, i32, read> = access %x_9, 0u
-    %x_55:i32 = load %16
-    %18:f32 = convert %x_55
-    store_vector_element %v, 1u, %18
-    %x_59:f32 = load_vector_element %v, 1u
+    %20:ptr<uniform, i32, read> = access %x_9, 0u
+    %21:i32 = load %20
+    %x_55:i32 = let %21
+    %23:f32 = convert %x_55
+    store_vector_element %v, 1u, %23
+    %24:f32 = load_vector_element %v, 1u
+    %x_59:f32 = let %24
     store_vector_element %x_GLF_color, 1u, %x_59
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.msl
index 22f3794..525d25b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(16) {
   sequence:vec4<i32> @offset(0)
 }
 
@@ -8,30 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec4<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %sum:ptr<function, i32, read_write> = var
     store %a, vec4<i32>(0i)
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:i32 = load %i
         %8:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
         %9:i32 = load_vector_element %8, 3u
         %10:i32 = add %9, 1i
         %11:bool = lt %7, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -40,47 +40,51 @@
         %14:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
         %15:i32 = load_vector_element %14, 0u
         %16:i32 = load %i
-        %17:i32 = clamp %13, %15, %16
-        %18:i32 = load_vector_element %12, %17
-        %19:bool = eq %18, 1i
-        if %19 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_57:i32 = load %i
+        %17:i32 = let %16
+        %18:i32 = max %13, %15
+        %19:i32 = min %18, %17
+        %20:i32 = load_vector_element %12, %19
+        %21:bool = eq %20, 1i
+        if %21 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %22:i32 = load %i
+            %x_57:i32 = let %22
             store_vector_element %a, %x_57, 5i
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_59:i32 = load %i
-            %22:i32 = load %i
-            store_vector_element %a, %x_59, %22
+          $B8: {  # false
+            %24:i32 = load %i
+            %x_59:i32 = let %24
+            %26:i32 = load %i
+            store_vector_element %a, %x_59, %26
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %23:i32 = load %i
-        %24:i32 = add %23, 1i
-        store %i, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %27:i32 = load %i
+        %28:i32 = add %27, 1i
+        store %i, %28
+        next_iteration  # -> $B3
       }
     }
-    %25:i32 = load_vector_element %a, 0u
-    %26:i32 = load_vector_element %a, 1u
-    %27:i32 = add %25, %26
-    %28:i32 = load_vector_element %a, 2u
-    %29:i32 = add %27, %28
-    %30:i32 = load_vector_element %a, 3u
+    %29:i32 = load_vector_element %a, 0u
+    %30:i32 = load_vector_element %a, 1u
     %31:i32 = add %29, %30
-    store %sum, %31
-    %32:i32 = load %sum
-    %33:bool = eq %32, 10i
-    if %33 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %32:i32 = load_vector_element %a, 2u
+    %33:i32 = add %31, %32
+    %34:i32 = load_vector_element %a, 3u
+    %35:i32 = add %33, %34
+    store %sum, %35
+    %36:i32 = load %sum
+    %37:bool = eq %36, 10i
+    if %37 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -88,12 +92,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %39:void = call %main_1
+    %40:vec4<f32> = load %x_GLF_color
+    %41:main_out = construct %40
+    ret %41
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.msl
index 5acce72..d55a761 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-clamp-max-itself/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(16) {
   sequence:vec4<i32> @offset(0)
 }
 
@@ -8,79 +8,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec4<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %sum:ptr<function, i32, read_write> = var
     store %a, vec4<i32>(0i)
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_40:i32 = load %i
-        %8:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
-        %x_42:i32 = load_vector_element %8, 3u
-        %10:i32 = add %x_42, 1i
-        %11:bool = lt %x_40, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %x_40:i32 = let %7
+        %9:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
+        %10:i32 = load_vector_element %9, 3u
+        %x_42:i32 = let %10
+        %12:i32 = add %x_42, 1i
+        %13:bool = lt %x_40, %12
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_46:i32 = load %i
-        %13:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
-        %x_48:i32 = load_vector_element %13, 0u
-        %x_49:i32 = load %i
+        %14:i32 = load %i
+        %x_46:i32 = let %14
         %16:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
-        %17:i32 = clamp %x_46, %x_48, %x_49
-        %x_52:i32 = load_vector_element %16, %17
-        %19:bool = eq %x_52, 1i
-        if %19 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_57:i32 = load %i
+        %17:i32 = load_vector_element %16, 0u
+        %x_48:i32 = let %17
+        %19:i32 = load %i
+        %x_49:i32 = let %19
+        %21:ptr<uniform, vec4<i32>, read> = access %x_7, 0u
+        %22:i32 = max %x_46, %x_48
+        %23:i32 = min %22, %x_49
+        %24:i32 = load_vector_element %21, %23
+        %x_52:i32 = let %24
+        %26:bool = eq %x_52, 1i
+        if %26 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %27:i32 = load %i
+            %x_57:i32 = let %27
             store_vector_element %a, %x_57, 5i
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_59:i32 = load %i
-            %x_60:i32 = load %i
+          $B8: {  # false
+            %29:i32 = load %i
+            %x_59:i32 = let %29
+            %31:i32 = load %i
+            %x_60:i32 = let %31
             store_vector_element %a, %x_59, %x_60
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_62:i32 = load %i
-        %24:i32 = add %x_62, 1i
-        store %i, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %33:i32 = load %i
+        %x_62:i32 = let %33
+        %35:i32 = add %x_62, 1i
+        store %i, %35
+        next_iteration  # -> $B3
       }
     }
-    %x_65:i32 = load_vector_element %a, 0u
-    %x_67:i32 = load_vector_element %a, 1u
-    %x_70:i32 = load_vector_element %a, 2u
-    %x_73:i32 = load_vector_element %a, 3u
-    %29:i32 = add %x_65, %x_67
-    %30:i32 = add %29, %x_70
-    %31:i32 = add %30, %x_73
-    store %sum, %31
-    %x_75:i32 = load %sum
-    %33:bool = eq %x_75, 10i
-    if %33 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
+    %36:i32 = load_vector_element %a, 0u
+    %x_65:i32 = let %36
+    %38:i32 = load_vector_element %a, 1u
+    %x_67:i32 = let %38
+    %40:i32 = load_vector_element %a, 2u
+    %x_70:i32 = let %40
+    %42:i32 = load_vector_element %a, 3u
+    %x_73:i32 = let %42
+    %44:i32 = add %x_65, %x_67
+    %45:i32 = add %44, %x_70
+    %46:i32 = add %45, %x_73
+    store %sum, %46
+    %47:i32 = load %sum
+    %x_75:i32 = let %47
+    %49:bool = eq %x_75, 10i
+    if %49 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -88,12 +104,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.msl
index f678b4b..a418a49 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,58 +12,62 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %6:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %8:i32 = load %7
-    %9:i32 = max %8, 1i
-    %10:i32 = max %6, %9
-    store %a, %10
-    %11:i32 = load %a
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %13:i32 = load %12
-    %14:bool = eq %11, %13
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %15:i32 = load %a
-        %16:f32 = convert %15
-        %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %18:i32 = load %17
-        %19:f32 = convert %18
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %21:i32 = load %20
-        %22:f32 = convert %21
-        %23:i32 = load %a
-        %24:f32 = convert %23
-        %25:vec4<f32> = construct %16, %19, %22, %24
-        store %x_GLF_color, %25
+    %7:i32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %9:i32 = load %8
+    %10:i32 = max %9, 1i
+    %11:i32 = max %7, %10
+    store %a, %11
+    %12:i32 = load %a
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %14:i32 = load %13
+    %15:bool = eq %12, %14
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %16:i32 = load %a
+        %17:f32 = convert %16
+        %18:f32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:f32 = let %25
+        %27:i32 = load %a
+        %28:f32 = convert %27
+        %29:vec4<f32> = construct %18, %22, %26, %28
+        store %x_GLF_color, %29
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %26:i32 = load %a
-        %27:f32 = convert %26
-        %28:vec4<f32> = construct %27
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %30:i32 = load %a
+        %31:f32 = convert %30
+        %32:vec4<f32> = construct %31
+        store %x_GLF_color, %32
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %34:void = call %main_1
+    %35:vec4<f32> = load %x_GLF_color
+    %36:main_out = construct %35
+    ret %36
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.msl
index 12a378f..3523092 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-combine-compares-max-max-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,58 +12,71 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_24:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_26:i32 = load %7
-    %9:i32 = max %x_26, 1i
-    %10:i32 = max %x_24, %9
-    store %a, %10
-    %x_29:i32 = load %a
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_31:i32 = load %12
-    %14:bool = eq %x_29, %x_31
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_36:i32 = load %a
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_39:i32 = load %16
-        %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_42:i32 = load %18
-        %x_44:i32 = load %a
-        %21:f32 = convert %x_36
-        %22:f32 = convert %x_39
-        %23:f32 = convert %x_42
-        %24:f32 = convert %x_44
-        %25:vec4<f32> = construct %21, %22, %23, %24
-        store %x_GLF_color, %25
+    %6:i32 = load %5
+    %x_24:i32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %9:i32 = load %8
+    %x_26:i32 = let %9
+    %11:i32 = max %x_26, 1i
+    %12:i32 = max %x_24, %11
+    store %a, %12
+    %13:i32 = load %a
+    %x_29:i32 = let %13
+    %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %16:i32 = load %15
+    %x_31:i32 = let %16
+    %18:bool = eq %x_29, %x_31
+    if %18 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %19:i32 = load %a
+        %x_36:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %22:i32 = load %21
+        %x_39:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %25:i32 = load %24
+        %x_42:i32 = let %25
+        %27:i32 = load %a
+        %x_44:i32 = let %27
+        %29:f32 = convert %x_36
+        %30:f32 = let %29
+        %31:f32 = convert %x_39
+        %32:f32 = let %31
+        %33:f32 = convert %x_42
+        %34:f32 = let %33
+        %35:f32 = convert %x_44
+        %36:vec4<f32> = construct %30, %32, %34, %35
+        store %x_GLF_color, %36
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_47:i32 = load %a
-        %x_48:f32 = convert %x_47
-        %28:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
-        store %x_GLF_color, %28
+      $B4: {  # false
+        %37:i32 = load %a
+        %x_47:i32 = let %37
+        %39:f32 = convert %x_47
+        %x_48:f32 = let %39
+        %41:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %30:void = call %main_1
-    %31:vec4<f32> = load %x_GLF_color
-    %32:main_out = construct %31
-    ret %32
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.msl
index 83b62ec..ccde736 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:i32 @offset(0)
 }
 
@@ -8,57 +8,58 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %r:ptr<function, i32, read_write> = var
     store %i, 0i
     store %r, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:i32 = load %r
         %7:ptr<uniform, i32, read> = access %x_7, 0u
         %8:i32 = load %7
         %9:i32 = mul %8, 4i
         %10:bool = lt %6, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %11:i32 = load %i
-        %12:i32 = load %r
-        %13:ptr<uniform, i32, read> = access %x_7, 0u
-        %14:i32 = load %13
-        %15:i32 = div %12, %14
-        %16:i32 = access vec4<i32>(1i, 2i, 3i, 4i), %15
-        %17:i32 = add %11, %16
-        store %i, %17
-        continue %b4
+        %12:i32 = let %11
+        %13:i32 = load %r
+        %14:ptr<uniform, i32, read> = access %x_7, 0u
+        %15:i32 = load %14
+        %16:i32 = call %tint_div_i32, %13, %15
+        %18:i32 = access vec4<i32>(1i, 2i, 3i, 4i), %16
+        %19:i32 = add %12, %18
+        store %i, %19
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %18:i32 = load %r
-        %19:i32 = add %18, 2i
-        store %r, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %20:i32 = load %r
+        %21:i32 = add %20, 2i
+        store %r, %21
+        next_iteration  # -> $B3
       }
     }
-    %20:i32 = load %i
-    %21:bool = eq %20, 10i
-    if %21 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    %22:i32 = load %i
+    %23:bool = eq %22, 10i
+    if %23 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -66,12 +67,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    ret %27
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %30:bool = eq %rhs, 0i
+    %31:bool = eq %lhs, -2147483648i
+    %32:bool = eq %rhs, -1i
+    %33:bool = and %31, %32
+    %34:bool = or %30, %33
+    %35:i32 = select %rhs, 1i, %34
+    %36:i32 = div %lhs, %35
+    ret %36
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.msl
index 21a7abc..55040fd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-component-uniform-idx/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:i32 @offset(0)
 }
 
@@ -8,57 +8,64 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %r:ptr<function, i32, read_write> = var
     store %i, 0i
     store %r, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_35:i32 = load %r
-        %7:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_37:i32 = load %7
-        %9:i32 = mul %x_37, 4i
-        %10:bool = lt %x_35, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %r
+        %x_35:i32 = let %6
+        %8:ptr<uniform, i32, read> = access %x_7, 0u
+        %9:i32 = load %8
+        %x_37:i32 = let %9
+        %11:i32 = mul %x_37, 4i
+        %12:bool = lt %x_35, %11
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_41:i32 = load %r
-        %12:ptr<uniform, i32, read> = access %x_7, 0u
-        %x_43:i32 = load %12
-        %x_46:i32 = load %i
-        %15:i32 = div %x_41, %x_43
-        %16:i32 = access vec4<i32>(1i, 2i, 3i, 4i), %15
-        %17:i32 = add %x_46, %16
-        store %i, %17
-        continue %b4
+        %13:i32 = load %r
+        %x_41:i32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_7, 0u
+        %16:i32 = load %15
+        %x_43:i32 = let %16
+        %18:i32 = load %i
+        %x_46:i32 = let %18
+        %20:i32 = call %tint_div_i32, %x_41, %x_43
+        %22:i32 = access vec4<i32>(1i, 2i, 3i, 4i), %20
+        %23:i32 = add %x_46, %22
+        store %i, %23
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_48:i32 = load %r
-        %19:i32 = add %x_48, 2i
-        store %r, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %24:i32 = load %r
+        %x_48:i32 = let %24
+        %26:i32 = add %x_48, 2i
+        store %r, %26
+        next_iteration  # -> $B3
       }
     }
-    %x_50:i32 = load %i
-    %21:bool = eq %x_50, 10i
-    if %21 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    %27:i32 = load %i
+    %x_50:i32 = let %27
+    %29:bool = eq %x_50, 10i
+    if %29 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -66,12 +73,24 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %36:bool = eq %rhs, 0i
+    %37:bool = eq %lhs, -2147483648i
+    %38:bool = eq %rhs, -1i
+    %39:bool = and %37, %38
+    %40:bool = or %36, %39
+    %41:i32 = select %rhs, 1i, %40
+    %42:i32 = div %lhs, %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.msl
index 1eebd8c..e3921c5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:u32 @offset(0)
 }
 
@@ -8,26 +8,26 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %5:ptr<uniform, u32, read> = access %x_6, 0u
     %6:u32 = load %5
-    %7:u32 = div %6, 1u
+    %7:u32 = call %tint_div_u32, %6, 1u
     store %a, %7
-    %8:u32 = load %a
-    %9:bool = eq %8, 2u
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %9:u32 = load %a
+    %10:bool = eq %9, 2u
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -35,12 +35,20 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %11:void = call %main_1
-    %12:vec4<f32> = load %x_GLF_color
-    %13:main_out = construct %12
-    ret %13
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B6: {
+    %17:bool = eq %rhs, 0u
+    %18:u32 = select %rhs, 1u, %17
+    %19:u32 = div %lhs, %18
+    ret %19
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.msl
index e698452..f56a457 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-div-by-uint-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:u32 @offset(0)
 }
 
@@ -8,26 +8,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %5:ptr<uniform, u32, read> = access %x_6, 0u
-    %x_27:u32 = load %5
-    %7:u32 = div %x_27, 1u
-    store %a, %7
-    %x_29:u32 = load %a
-    %9:bool = eq %x_29, 2u
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:u32 = load %5
+    %x_27:u32 = let %6
+    %8:u32 = call %tint_div_u32, %x_27, 1u
+    store %a, %8
+    %10:u32 = load %a
+    %x_29:u32 = let %10
+    %12:bool = eq %x_29, 2u
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -35,12 +37,20 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %11:void = call %main_1
-    %12:vec4<f32> = load %x_GLF_color
-    %13:main_out = construct %12
-    ret %13
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %14:void = call %main_1
+    %15:vec4<f32> = load %x_GLF_color
+    %16:main_out = construct %15
+    ret %16
+  }
+}
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B6: {
+    %19:bool = eq %rhs, 0u
+    %20:u32 = select %rhs, 1u, %19
+    %21:u32 = div %lhs, %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.msl
index 14c1fb3..73336f5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
@@ -28,8 +28,8 @@
     %9:i32 = load %8
     %10:i32 = negation %9
     store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
         %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %13:i32 = load %12
@@ -37,11 +37,11 @@
         %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %16:i32 = load %15
         %17:bool = lt %14, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -50,13 +50,13 @@
         %20:i32 = load %19
         %21:i32 = mul %18, %20
         store %a, %21
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %22:i32 = load %i
         %23:i32 = add %22, 1i
         store %i, %23
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %24:i32 = load %a
@@ -64,41 +64,44 @@
     %26:i32 = load %25
     %27:i32 = negation %26
     %28:bool = eq %24, %27
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    if %28 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %30:i32 = load %29
         %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:vec4<f32> = construct %31, %34, %37, %40
-        store %x_GLF_color, %41
+        %32:f32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %34:i32 = load %33
+        %35:f32 = convert %34
+        %36:f32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:i32 = load %37
+        %39:f32 = convert %38
+        %40:f32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %42:i32 = load %41
+        %43:f32 = convert %42
+        %44:vec4<f32> = construct %32, %36, %40, %43
+        store %x_GLF_color, %44
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %42:i32 = load %a
-        %43:f32 = convert %42
-        %44:vec4<f32> = construct %43
-        store %x_GLF_color, %44
+      $B8: {  # false
+        %45:i32 = load %a
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %46:void = call %main_1
-    %47:vec4<f32> = load %x_GLF_color
-    %48:main_out = construct %47
-    ret %48
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.msl
index 04c1588..892447c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-for-bitwise-condition/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,93 +12,112 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_25:i32 = load %6
+    %7:i32 = load %6
+    %x_25:i32 = let %7
     store %a, %x_25
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_27:i32 = load %8
-    %10:i32 = negation %x_27
-    store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_33:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_35:i32 = load %12
-        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_38:i32 = load %14
-        %16:i32 = or %x_33, %x_35
-        %17:bool = lt %16, %x_38
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %10:i32 = load %9
+    %x_27:i32 = let %10
+    %12:i32 = negation %x_27
+    store %i, %12
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %13:i32 = load %i
+        %x_33:i32 = let %13
+        %15:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %16:i32 = load %15
+        %x_35:i32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %19:i32 = load %18
+        %x_38:i32 = let %19
+        %21:i32 = or %x_33, %x_35
+        %22:bool = lt %21, %x_38
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_41:i32 = load %i
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_43:i32 = load %19
-        %21:i32 = mul %x_41, %x_43
-        store %a, %21
-        continue %b4
+        %23:i32 = load %i
+        %x_41:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %26:i32 = load %25
+        %x_43:i32 = let %26
+        %28:i32 = mul %x_41, %x_43
+        store %a, %28
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_45:i32 = load %i
-        %23:i32 = add %x_45, 1i
-        store %i, %23
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %i
+        %x_45:i32 = let %29
+        %31:i32 = add %x_45, 1i
+        store %i, %31
+        next_iteration  # -> $B3
       }
     }
-    %x_47:i32 = load %a
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_49:i32 = load %25
-    %27:i32 = negation %x_49
-    %28:bool = eq %x_47, %27
-    if %28 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_56:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_59:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_62:i32 = load %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_65:i32 = load %35
-        %37:f32 = convert %x_56
-        %38:f32 = convert %x_59
-        %39:f32 = convert %x_62
-        %40:f32 = convert %x_65
-        %41:vec4<f32> = construct %37, %38, %39, %40
-        store %x_GLF_color, %41
+    %32:i32 = load %a
+    %x_47:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %35:i32 = load %34
+    %x_49:i32 = let %35
+    %37:i32 = negation %x_49
+    %38:bool = eq %x_47, %37
+    if %38 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %40:i32 = load %39
+        %x_56:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_59:i32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %46:i32 = load %45
+        %x_62:i32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %49:i32 = load %48
+        %x_65:i32 = let %49
+        %51:f32 = convert %x_56
+        %52:f32 = let %51
+        %53:f32 = convert %x_59
+        %54:f32 = let %53
+        %55:f32 = convert %x_62
+        %56:f32 = let %55
+        %57:f32 = convert %x_65
+        %58:vec4<f32> = construct %52, %54, %56, %57
+        store %x_GLF_color, %58
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %x_68:i32 = load %a
-        %x_69:f32 = convert %x_68
-        %44:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
-        store %x_GLF_color, %44
+      $B8: {  # false
+        %59:i32 = load %a
+        %x_68:i32 = let %59
+        %61:f32 = convert %x_68
+        %x_69:f32 = let %61
+        %63:vec4<f32> = construct %x_69, %x_69, %x_69, %x_69
+        store %x_GLF_color, %63
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %46:void = call %main_1
-    %47:vec4<f32> = load %x_GLF_color
-    %48:main_out = construct %47
-    ret %48
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.msl
index 2a71d33..b981aef 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
     %6:f32 = load %5
@@ -22,12 +22,12 @@
     store %f, %7
     %8:f32 = load %f
     %9:bool = eq %8, 3.0f
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -35,8 +35,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %11:void = call %main_1
     %12:vec4<f32> = load %x_GLF_color
     %13:main_out = construct %12
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.msl
index ff5d03a..cc4d2ae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-ldexp-exponent-zero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:f32 @offset(0)
 }
 
@@ -8,26 +8,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %5:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_25:f32 = load %5
-    %7:f32 = ldexp %x_25, 0i
-    store %f, %7
-    %x_27:f32 = load %f
-    %9:bool = eq %x_27, 3.0f
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %6:f32 = load %5
+    %x_25:f32 = let %6
+    %8:f32 = ldexp %x_25, 0i
+    store %f, %8
+    %9:f32 = load %f
+    %x_27:f32 = let %9
+    %11:bool = eq %x_27, 3.0f
+    if %11 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -35,12 +37,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %11:void = call %main_1
-    %12:vec4<f32> = load %x_GLF_color
-    %13:main_out = construct %12
-    ret %13
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %13:void = call %main_1
+    %14:vec4<f32> = load %x_GLF_color
+    %15:main_out = construct %14
+    ret %15
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.msl
index dd03bc1..83138dc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %A:ptr<function, array<i32, 4>, read_write> = var
     %x_77:ptr<function, bool, read_write> = var
@@ -30,130 +30,136 @@
     %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %13:i32 = load %12
     store %i, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %14:i32 = load %i
         %15:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
         %16:i32 = load %15
         %17:bool = lt %14, %16
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_43:i32 = load %i
-        %19:ptr<function, i32, read_write> = access %A, %x_43
-        %20:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %21:i32 = load %20
-        store %19, %21
-        %22:i32 = load %i
-        %23:i32 = mul 2i, %22
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %25:i32 = load %24
-        %26:i32 = mul 2i, %25
-        %27:i32 = max %23, %26
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:bool = eq %27, %29
-        if %30 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_58:i32 = load %i
-            %32:ptr<function, i32, read_write> = access %A, %x_58
-            store %32, 1i
+        %18:i32 = load %i
+        %x_43:i32 = let %18
+        %20:ptr<function, i32, read_write> = access %A, %x_43
+        %21:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %22:i32 = load %21
+        store %20, %22
+        %23:i32 = load %i
+        %24:i32 = mul 2i, %23
+        %25:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %26:i32 = load %25
+        %27:i32 = mul 2i, %26
+        %28:i32 = max %24, %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %30:i32 = load %29
+        %31:bool = eq %28, %30
+        if %31 [t: $B7] {  # if_2
+          $B7: {  # true
+            %32:i32 = load %i
+            %x_58:i32 = let %32
+            %34:ptr<function, i32, read_write> = access %A, %x_58
+            store %34, 1i
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %33:i32 = load %i
-        %34:i32 = add %33, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %35:i32 = load %i
+        %36:i32 = add %35, 1i
+        store %i, %36
+        next_iteration  # -> $B3
       }
     }
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %36:i32 = load %35
-    %37:ptr<function, i32, read_write> = access %A, %36
+    %37:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
     %38:i32 = load %37
-    %39:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %39:ptr<function, i32, read_write> = access %A, %38
     %40:i32 = load %39
-    %x_68:bool = eq %38, %40
+    %41:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %42:i32 = load %41
+    %43:bool = eq %40, %42
+    %x_68:bool = let %43
     store %x_78, %x_68
-    if %x_68 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %43:i32 = load %42
-        %44:ptr<function, i32, read_write> = access %A, %43
-        %45:i32 = load %44
-        %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %47:i32 = load %46
-        %48:bool = eq %45, %47
-        store %x_77, %48
-        %49:bool = load %x_77
-        store %x_78, %49
+    if %x_68 [t: $B8] {  # if_3
+      $B8: {  # true
+        %45:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %46:i32 = load %45
+        %47:ptr<function, i32, read_write> = access %A, %46
+        %48:i32 = load %47
+        %49:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %50:i32 = load %49
+        %51:bool = eq %48, %50
+        store %x_77, %51
+        %52:bool = load %x_77
+        store %x_78, %52
         exit_if  # if_3
       }
     }
-    %50:bool = load %x_78
-    store %x_88, %50
-    %51:bool = load %x_78
-    if %51 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %53:i32 = load %52
-        %54:ptr<function, i32, read_write> = access %A, %53
-        %55:i32 = load %54
-        %56:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %57:i32 = load %56
-        %58:bool = eq %55, %57
-        store %x_87, %58
-        %59:bool = load %x_87
-        store %x_88, %59
+    %53:bool = load %x_78
+    store %x_88, %53
+    %54:bool = load %x_78
+    if %54 [t: $B9] {  # if_4
+      $B9: {  # true
+        %55:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %56:i32 = load %55
+        %57:ptr<function, i32, read_write> = access %A, %56
+        %58:i32 = load %57
+        %59:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %60:i32 = load %59
+        %61:bool = eq %58, %60
+        store %x_87, %61
+        %62:bool = load %x_87
+        store %x_88, %62
         exit_if  # if_4
       }
     }
-    %60:bool = load %x_88
-    store %x_98, %60
-    %61:bool = load %x_88
-    if %61 [t: %b10] {  # if_5
-      %b10 = block {  # true
-        %62:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %63:i32 = load %62
-        %64:ptr<function, i32, read_write> = access %A, %63
-        %65:i32 = load %64
-        %66:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %67:i32 = load %66
-        %68:bool = eq %65, %67
-        store %x_97, %68
-        %69:bool = load %x_97
-        store %x_98, %69
+    %63:bool = load %x_88
+    store %x_98, %63
+    %64:bool = load %x_88
+    if %64 [t: $B10] {  # if_5
+      $B10: {  # true
+        %65:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %66:i32 = load %65
+        %67:ptr<function, i32, read_write> = access %A, %66
+        %68:i32 = load %67
+        %69:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %70:i32 = load %69
+        %71:bool = eq %68, %70
+        store %x_97, %71
+        %72:bool = load %x_97
+        store %x_98, %72
         exit_if  # if_5
       }
     }
-    %70:bool = load %x_98
-    if %70 [t: %b11, f: %b12] {  # if_6
-      %b11 = block {  # true
-        %71:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %72:i32 = load %71
-        %73:f32 = convert %72
-        %74:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %73:bool = load %x_98
+    if %73 [t: $B11, f: $B12] {  # if_6
+      $B11: {  # true
+        %74:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %75:i32 = load %74
         %76:f32 = convert %75
-        %77:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %78:i32 = load %77
-        %79:f32 = convert %78
-        %80:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %81:i32 = load %80
-        %82:f32 = convert %81
-        %83:vec4<f32> = construct %73, %76, %79, %82
-        store %x_GLF_color, %83
+        %77:f32 = let %76
+        %78:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %79:i32 = load %78
+        %80:f32 = convert %79
+        %81:f32 = let %80
+        %82:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %83:i32 = load %82
+        %84:f32 = convert %83
+        %85:f32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %87:i32 = load %86
+        %88:f32 = convert %87
+        %89:vec4<f32> = construct %77, %81, %85, %88
+        store %x_GLF_color, %89
         exit_if  # if_6
       }
-      %b12 = block {  # false
+      $B12: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_6
       }
@@ -161,12 +167,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %85:void = call %main_1
-    %86:vec4<f32> = load %x_GLF_color
-    %87:main_out = construct %86
-    ret %87
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    ret %93
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.msl
index b2c8b88..c3d5ae8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-max-multiplied-values/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %A:ptr<function, array<i32, 4>, read_write> = var
     %x_77:ptr<function, bool, read_write> = var
@@ -28,130 +28,163 @@
     %x_88_phi:ptr<function, bool, read_write> = var
     %x_98_phi:ptr<function, bool, read_write> = var
     %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_33:i32 = load %12
+    %13:i32 = load %12
+    %x_33:i32 = let %13
     store %i, %x_33
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_38:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-        %x_40:i32 = load %15
-        %17:bool = lt %x_38, %x_40
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %15:i32 = load %i
+        %x_38:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+        %18:i32 = load %17
+        %x_40:i32 = let %18
+        %20:bool = lt %x_38, %x_40
+        if %20 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_43:i32 = load %i
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_45:i32 = load %19
-        %21:ptr<function, i32, read_write> = access %A, %x_43
-        store %21, %x_45
-        %x_47:i32 = load %i
-        %23:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_50:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_54:i32 = load %25
-        %27:i32 = mul 2i, %x_47
-        %28:i32 = mul 2i, %x_50
-        %29:i32 = max %27, %28
-        %30:bool = eq %29, %x_54
-        if %30 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_58:i32 = load %i
-            %32:ptr<function, i32, read_write> = access %A, %x_58
-            store %32, 1i
+        %21:i32 = load %i
+        %x_43:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %24:i32 = load %23
+        %x_45:i32 = let %24
+        %26:ptr<function, i32, read_write> = access %A, %x_43
+        store %26, %x_45
+        %27:i32 = load %i
+        %x_47:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %30:i32 = load %29
+        %x_50:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %33:i32 = load %32
+        %x_54:i32 = let %33
+        %35:i32 = mul 2i, %x_47
+        %36:i32 = mul 2i, %x_50
+        %37:i32 = max %35, %36
+        %38:bool = eq %37, %x_54
+        if %38 [t: $B7] {  # if_2
+          $B7: {  # true
+            %39:i32 = load %i
+            %x_58:i32 = let %39
+            %41:ptr<function, i32, read_write> = access %A, %x_58
+            store %41, 1i
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_60:i32 = load %i
-        %34:i32 = add %x_60, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %42:i32 = load %i
+        %x_60:i32 = let %42
+        %44:i32 = add %x_60, 1i
+        store %i, %44
+        next_iteration  # -> $B3
       }
     }
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_63:i32 = load %35
-    %37:ptr<function, i32, read_write> = access %A, %x_63
-    %x_65:i32 = load %37
-    %39:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_67:i32 = load %39
-    %x_68:bool = eq %x_65, %x_67
+    %45:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %46:i32 = load %45
+    %x_63:i32 = let %46
+    %48:ptr<function, i32, read_write> = access %A, %x_63
+    %49:i32 = load %48
+    %x_65:i32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %52:i32 = load %51
+    %x_67:i32 = let %52
+    %54:bool = eq %x_65, %x_67
+    %x_68:bool = let %54
     store %x_78_phi, %x_68
-    if %x_68 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_72:i32 = load %42
-        %44:ptr<function, i32, read_write> = access %A, %x_72
-        %x_74:i32 = load %44
-        %46:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_76:i32 = load %46
-        %48:bool = eq %x_74, %x_76
-        store %x_77, %48
-        %49:bool = load %x_77
-        store %x_78_phi, %49
+    if %x_68 [t: $B8] {  # if_3
+      $B8: {  # true
+        %56:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %57:i32 = load %56
+        %x_72:i32 = let %57
+        %59:ptr<function, i32, read_write> = access %A, %x_72
+        %60:i32 = load %59
+        %x_74:i32 = let %60
+        %62:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %63:i32 = load %62
+        %x_76:i32 = let %63
+        %65:bool = eq %x_74, %x_76
+        store %x_77, %65
+        %66:bool = load %x_77
+        store %x_78_phi, %66
         exit_if  # if_3
       }
     }
-    %x_78:bool = load %x_78_phi
+    %67:bool = load %x_78_phi
+    %x_78:bool = let %67
     store %x_88_phi, %x_78
-    if %x_78 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %51:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_82:i32 = load %51
-        %53:ptr<function, i32, read_write> = access %A, %x_82
-        %x_84:i32 = load %53
-        %55:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_86:i32 = load %55
-        %57:bool = eq %x_84, %x_86
-        store %x_87, %57
-        %58:bool = load %x_87
-        store %x_88_phi, %58
+    if %x_78 [t: $B9] {  # if_4
+      $B9: {  # true
+        %69:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %70:i32 = load %69
+        %x_82:i32 = let %70
+        %72:ptr<function, i32, read_write> = access %A, %x_82
+        %73:i32 = load %72
+        %x_84:i32 = let %73
+        %75:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %76:i32 = load %75
+        %x_86:i32 = let %76
+        %78:bool = eq %x_84, %x_86
+        store %x_87, %78
+        %79:bool = load %x_87
+        store %x_88_phi, %79
         exit_if  # if_4
       }
     }
-    %x_88:bool = load %x_88_phi
+    %80:bool = load %x_88_phi
+    %x_88:bool = let %80
     store %x_98_phi, %x_88
-    if %x_88 [t: %b10] {  # if_5
-      %b10 = block {  # true
-        %60:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_92:i32 = load %60
-        %62:ptr<function, i32, read_write> = access %A, %x_92
-        %x_94:i32 = load %62
-        %64:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_96:i32 = load %64
-        %66:bool = eq %x_94, %x_96
-        store %x_97, %66
-        %67:bool = load %x_97
-        store %x_98_phi, %67
+    if %x_88 [t: $B10] {  # if_5
+      $B10: {  # true
+        %82:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %83:i32 = load %82
+        %x_92:i32 = let %83
+        %85:ptr<function, i32, read_write> = access %A, %x_92
+        %86:i32 = load %85
+        %x_94:i32 = let %86
+        %88:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %89:i32 = load %88
+        %x_96:i32 = let %89
+        %91:bool = eq %x_94, %x_96
+        store %x_97, %91
+        %92:bool = load %x_97
+        store %x_98_phi, %92
         exit_if  # if_5
       }
     }
-    %x_98:bool = load %x_98_phi
-    if %x_98 [t: %b11, f: %b12] {  # if_6
-      %b11 = block {  # true
-        %69:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_103:i32 = load %69
-        %71:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_106:i32 = load %71
-        %73:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_109:i32 = load %73
-        %75:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_112:i32 = load %75
-        %77:f32 = convert %x_103
-        %78:f32 = convert %x_106
-        %79:f32 = convert %x_109
-        %80:f32 = convert %x_112
-        %81:vec4<f32> = construct %77, %78, %79, %80
-        store %x_GLF_color, %81
+    %93:bool = load %x_98_phi
+    %x_98:bool = let %93
+    if %x_98 [t: $B11, f: $B12] {  # if_6
+      $B11: {  # true
+        %95:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %96:i32 = load %95
+        %x_103:i32 = let %96
+        %98:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %99:i32 = load %98
+        %x_106:i32 = let %99
+        %101:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %102:i32 = load %101
+        %x_109:i32 = let %102
+        %104:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %105:i32 = load %104
+        %x_112:i32 = let %105
+        %107:f32 = convert %x_103
+        %108:f32 = let %107
+        %109:f32 = convert %x_106
+        %110:f32 = let %109
+        %111:f32 = convert %x_109
+        %112:f32 = let %111
+        %113:f32 = convert %x_112
+        %114:vec4<f32> = construct %108, %110, %112, %113
+        store %x_GLF_color, %114
         exit_if  # if_6
       }
-      %b12 = block {  # false
+      $B12: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_6
       }
@@ -159,12 +192,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %83:void = call %main_1
-    %84:vec4<f32> = load %x_GLF_color
-    %85:main_out = construct %84
-    ret %85
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %116:void = call %main_1
+    %117:vec4<f32> = load %x_GLF_color
+    %118:main_out = construct %117
+    ret %118
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.msl
index ee256e3..6344894 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,56 +20,60 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_30:f32 = load %6
-    %8:f32 = div %x_30, 1.0f
-    %9:f32 = floor %8
-    %10:f32 = mul 1.0f, %9
-    %11:f32 = sub %x_30, %10
-    store %a, %11
-    %12:f32 = load %a
-    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %14:f32 = load %13
-    %15:bool = eq %12, %14
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %16:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %17:i32 = load %16
-        %18:f32 = convert %17
-        %19:f32 = load %a
-        %20:f32 = load %a
-        %21:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:vec4<f32> = construct %18, %19, %20, %23
-        store %x_GLF_color, %24
+    %7:f32 = load %6
+    %x_30:f32 = let %7
+    %9:f32 = div %x_30, 1.0f
+    %10:f32 = floor %9
+    %11:f32 = mul 1.0f, %10
+    %12:f32 = sub %x_30, %11
+    store %a, %12
+    %13:f32 = load %a
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %15:f32 = load %14
+    %16:bool = eq %13, %15
+    if %16 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %17:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %18:i32 = load %17
+        %19:f32 = convert %18
+        %20:f32 = let %19
+        %21:f32 = load %a
+        %22:f32 = let %21
+        %23:f32 = load %a
+        %24:f32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %26:i32 = load %25
+        %27:f32 = convert %26
+        %28:vec4<f32> = construct %20, %22, %24, %27
+        store %x_GLF_color, %28
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %25:f32 = load %a
-        %26:vec4<f32> = construct %25
-        store %x_GLF_color, %26
+      $B4: {  # false
+        %29:f32 = load %a
+        %30:vec4<f32> = construct %29
+        store %x_GLF_color, %30
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.msl
index ab8df29..1c0ad5d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-modulo-1/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,56 +20,65 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %6:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_30:f32 = load %6
-    %8:f32 = div %x_30, 1.0f
-    %9:f32 = floor %8
-    %10:f32 = mul 1.0f, %9
-    %11:f32 = sub %x_30, %10
-    store %a, %11
-    %x_32:f32 = load %a
-    %13:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_34:f32 = load %13
-    %15:bool = eq %x_32, %x_34
-    if %15 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %16:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_40:i32 = load %16
-        %x_42:f32 = load %a
-        %x_43:f32 = load %a
-        %20:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_45:i32 = load %20
-        %22:f32 = convert %x_40
-        %23:f32 = convert %x_45
-        %24:vec4<f32> = construct %22, %x_42, %x_43, %23
-        store %x_GLF_color, %24
+    %7:f32 = load %6
+    %x_30:f32 = let %7
+    %9:f32 = div %x_30, 1.0f
+    %10:f32 = floor %9
+    %11:f32 = mul 1.0f, %10
+    %12:f32 = sub %x_30, %11
+    store %a, %12
+    %13:f32 = load %a
+    %x_32:f32 = let %13
+    %15:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %16:f32 = load %15
+    %x_34:f32 = let %16
+    %18:bool = eq %x_32, %x_34
+    if %18 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %20:i32 = load %19
+        %x_40:i32 = let %20
+        %22:f32 = load %a
+        %x_42:f32 = let %22
+        %24:f32 = load %a
+        %x_43:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %27:i32 = load %26
+        %x_45:i32 = let %27
+        %29:f32 = convert %x_40
+        %30:f32 = let %29
+        %31:f32 = convert %x_45
+        %32:vec4<f32> = construct %30, %x_42, %x_43, %31
+        store %x_GLF_color, %32
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_48:f32 = load %a
-        %26:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
-        store %x_GLF_color, %26
+      $B4: {  # false
+        %33:f32 = load %a
+        %x_48:f32 = let %33
+        %35:vec4<f32> = construct %x_48, %x_48, %x_48, %x_48
+        store %x_GLF_color, %35
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.msl
index 4750db9..bf16665 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,36 +8,40 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %res:ptr<function, vec4<f32>, read_write> = var
     store %v, vec4<f32>(8.3999996185302734375f, -864.66497802734375f, 945.41998291015625f, 1.0f)
     %6:ptr<uniform, f32, read> = access %x_7, 0u
-    %x_31:f32 = load %6
-    %8:vec4<f32> = construct %x_31, 0.0f, 0.0f, 0.0f
-    %9:vec4<f32> = construct 0.0f, %x_31, 0.0f, 0.0f
-    %10:vec4<f32> = construct 0.0f, 0.0f, %x_31, 0.0f
-    %11:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_31
-    %12:mat4x4<f32> = construct %8, %9, %10, %11
-    %13:vec4<f32> = load %v
-    %14:vec4<f32> = mul %12, %13
-    store %res, %14
-    %15:vec4<f32> = load %v
-    %16:vec4<f32> = load %res
-    %17:f32 = distance %15, %16
-    %18:bool = lt %17, 0.00999999977648258209f
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:f32 = load %6
+    %x_31:f32 = let %7
+    %9:vec4<f32> = construct %x_31, 0.0f, 0.0f, 0.0f
+    %10:vec4<f32> = let %9
+    %11:vec4<f32> = construct 0.0f, %x_31, 0.0f, 0.0f
+    %12:vec4<f32> = let %11
+    %13:vec4<f32> = construct 0.0f, 0.0f, %x_31, 0.0f
+    %14:vec4<f32> = let %13
+    %15:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_31
+    %16:mat4x4<f32> = construct %10, %12, %14, %15
+    %17:vec4<f32> = load %v
+    %18:vec4<f32> = mul %16, %17
+    store %res, %18
+    %19:vec4<f32> = load %v
+    %20:vec4<f32> = load %res
+    %21:f32 = distance %19, %20
+    %22:bool = lt %21, 0.00999999977648258209f
+    if %22 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -45,12 +49,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %20:void = call %main_1
-    %21:vec4<f32> = load %x_GLF_color
-    %22:main_out = construct %21
-    ret %22
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.msl
index 3177272..ea8cf6d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-mul-identity/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,36 +8,43 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %res:ptr<function, vec4<f32>, read_write> = var
     store %v, vec4<f32>(8.3999996185302734375f, -864.66497802734375f, 945.41998291015625f, 1.0f)
     %6:ptr<uniform, f32, read> = access %x_7, 0u
-    %x_31:f32 = load %6
-    %x_37:vec4<f32> = load %v
-    %9:vec4<f32> = construct %x_31, 0.0f, 0.0f, 0.0f
-    %10:vec4<f32> = construct 0.0f, %x_31, 0.0f, 0.0f
-    %11:vec4<f32> = construct 0.0f, 0.0f, %x_31, 0.0f
-    %12:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_31
-    %13:mat4x4<f32> = construct %9, %10, %11, %12
-    %14:vec4<f32> = mul %13, %x_37
-    store %res, %14
-    %x_39:vec4<f32> = load %v
-    %x_40:vec4<f32> = load %res
-    %17:f32 = distance %x_39, %x_40
-    %18:bool = lt %17, 0.00999999977648258209f
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:f32 = load %6
+    %x_31:f32 = let %7
+    %9:vec4<f32> = load %v
+    %x_37:vec4<f32> = let %9
+    %11:vec4<f32> = construct %x_31, 0.0f, 0.0f, 0.0f
+    %12:vec4<f32> = let %11
+    %13:vec4<f32> = construct 0.0f, %x_31, 0.0f, 0.0f
+    %14:vec4<f32> = let %13
+    %15:vec4<f32> = construct 0.0f, 0.0f, %x_31, 0.0f
+    %16:vec4<f32> = let %15
+    %17:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_31
+    %18:mat4x4<f32> = construct %12, %14, %16, %17
+    %19:vec4<f32> = mul %18, %x_37
+    store %res, %19
+    %20:vec4<f32> = load %v
+    %x_39:vec4<f32> = let %20
+    %22:vec4<f32> = load %res
+    %x_40:vec4<f32> = let %22
+    %24:f32 = distance %x_39, %x_40
+    %25:bool = lt %24, 0.00999999977648258209f
+    if %25 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -45,12 +52,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %20:void = call %main_1
-    %21:vec4<f32> = load %x_GLF_color
-    %22:main_out = construct %21
-    ret %22
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.msl
index 19bb4e5..2245ddd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:i32 @offset(0)
 }
 
@@ -8,38 +8,39 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, bool, read_write> = var
     %x_37:ptr<function, bool, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u
     %8:i32 = load %7
-    %x_30:bool = gt %8, 1i
+    %9:bool = gt %8, 1i
+    %x_30:bool = let %9
     store %x_37, %x_30
-    if %x_30 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %10:f32 = load_vector_element %gl_FragCoord, 1u
-        %11:bool = lt %10, -5.0f
-        %12:bool = eq %11, false
-        store %x_36, %12
-        %13:bool = load %x_36
-        store %x_37, %13
+    if %x_30 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:f32 = load_vector_element %gl_FragCoord, 1u
+        %12:bool = lt %11, -5.0f
+        %13:bool = eq %12, false
+        store %x_36, %13
+        %14:bool = load %x_36
+        store %x_37, %14
         exit_if  # if_1
       }
     }
-    %14:bool = load %x_37
-    if %14 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %15:bool = load %x_37
+    if %15 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -47,13 +48,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %17:void = call %main_1
-    %18:vec4<f32> = load %x_GLF_color
-    %19:main_out = construct %18
-    ret %19
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.msl
index fcdd82c..1659ec9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-not-less-than-neg/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   three:i32 @offset(0)
 }
 
@@ -8,38 +8,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, bool, read_write> = var
     %x_37_phi:ptr<function, bool, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_29:i32 = load %7
-    %x_30:bool = gt %x_29, 1i
+    %8:i32 = load %7
+    %x_29:i32 = let %8
+    %10:bool = gt %x_29, 1i
+    %x_30:bool = let %10
     store %x_37_phi, %x_30
-    if %x_30 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_34:f32 = load_vector_element %gl_FragCoord, 1u
-        %11:bool = lt %x_34, -5.0f
-        %12:bool = eq %11, false
-        store %x_36, %12
-        %13:bool = load %x_36
-        store %x_37_phi, %13
+    if %x_30 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_34:f32 = let %12
+        %14:bool = lt %x_34, -5.0f
+        %15:bool = eq %14, false
+        store %x_36, %15
+        %16:bool = load %x_36
+        store %x_37_phi, %16
         exit_if  # if_1
       }
     }
-    %x_37:bool = load %x_37_phi
-    if %x_37 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %17:bool = load %x_37_phi
+    %x_37:bool = let %17
+    if %x_37 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -47,13 +51,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %17:void = call %main_1
-    %18:vec4<f32> = load %x_GLF_color
-    %19:main_out = construct %18
-    ret %19
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.msl
index 582bd4b..b5847fd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,54 +12,58 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
     %5:i32 = load %4
     %6:u32 = bitcast %5
-    %7:i32 = shiftr 1i, %6
-    %8:bool = gt %7, 0i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %10:i32 = load %9
-        %11:f32 = convert %10
-        %12:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %13:i32 = load %12
-        %14:f32 = convert %13
-        %15:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %16:i32 = load %15
-        %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+    %7:u32 = and %6, 31u
+    %8:i32 = shr 1i, %7
+    %9:bool = gt %8, 0i
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %10:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %11:i32 = load %10
+        %12:f32 = convert %11
+        %13:f32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %15:i32 = load %14
+        %16:f32 = convert %15
+        %17:f32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
         %19:i32 = load %18
         %20:f32 = convert %19
-        %21:vec4<f32> = construct %11, %14, %17, %20
-        store %x_GLF_color, %21
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %22:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
         %23:i32 = load %22
         %24:f32 = convert %23
-        %25:vec4<f32> = construct %24
+        %25:vec4<f32> = construct %13, %17, %21, %24
         store %x_GLF_color, %25
         exit_if  # if_1
       }
+      $B4: {  # false
+        %26:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:vec4<f32> = construct %28
+        store %x_GLF_color, %29
+        exit_if  # if_1
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.msl
index 9d67f8d..9fbcde4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-right-shift-greater-than-zero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,54 +12,65 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-    %x_22:i32 = load %4
-    %6:u32 = bitcast %x_22
-    %7:i32 = shiftr 1i, %6
-    %8:bool = gt %7, 0i
-    if %8 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %9:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_29:i32 = load %9
-        %11:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_32:i32 = load %11
-        %13:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_35:i32 = load %13
-        %15:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
-        %x_38:i32 = load %15
-        %17:f32 = convert %x_29
-        %18:f32 = convert %x_32
-        %19:f32 = convert %x_35
-        %20:f32 = convert %x_38
-        %21:vec4<f32> = construct %17, %18, %19, %20
-        store %x_GLF_color, %21
+    %5:i32 = load %4
+    %x_22:i32 = let %5
+    %7:u32 = bitcast %x_22
+    %8:u32 = and %7, 31u
+    %9:i32 = shr 1i, %8
+    %10:bool = gt %9, 0i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %11:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %12:i32 = load %11
+        %x_29:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_32:i32 = let %15
+        %17:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %18:i32 = load %17
+        %x_35:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_5, 0u, 1i, 0u
+        %21:i32 = load %20
+        %x_38:i32 = let %21
+        %23:f32 = convert %x_29
+        %24:f32 = let %23
+        %25:f32 = convert %x_32
+        %26:f32 = let %25
+        %27:f32 = convert %x_35
+        %28:f32 = let %27
+        %29:f32 = convert %x_38
+        %30:vec4<f32> = construct %24, %26, %28, %29
+        store %x_GLF_color, %30
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %22:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
-        %x_42:i32 = load %22
-        %x_43:f32 = convert %x_42
-        %25:vec4<f32> = construct %x_43, %x_43, %x_43, %x_43
-        store %x_GLF_color, %25
+      $B4: {  # false
+        %31:ptr<uniform, i32, read> = access %x_5, 0u, 0i, 0u
+        %32:i32 = load %31
+        %x_42:i32 = let %32
+        %34:f32 = convert %x_42
+        %x_43:f32 = let %34
+        %36:vec4<f32> = construct %x_43, %x_43, %x_43, %x_43
+        store %x_GLF_color, %36
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %38:void = call %main_1
+    %39:vec4<f32> = load %x_GLF_color
+    %40:main_out = construct %39
+    ret %40
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.msl
index 2113f0e..a9871cd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,20 +8,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_31:ptr<function, bool, read_write> = var
     %x_32:ptr<function, bool, read_write> = var
     %x_26:bool = let true
     store %x_32, %x_26
     %7:bool = eq %x_26, false
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
         %8:ptr<uniform, i32, read> = access %x_5, 0u
         %9:i32 = load %8
         %10:bool = eq %9, 1i
@@ -32,12 +32,12 @@
       }
     }
     %12:bool = load %x_32
-    if %12 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    if %12 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_2
       }
@@ -45,8 +45,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func():main_out {
+  $B6: {
     %14:void = call %main_1
     %15:vec4<f32> = load %x_GLF_color
     %16:main_out = construct %15
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.msl
index 66fd17d..4767f82 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-simplify-sign-cosh/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,36 +8,38 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_31:ptr<function, bool, read_write> = var
     %x_32_phi:ptr<function, bool, read_write> = var
     %x_26:bool = let true
     store %x_32_phi, %x_26
     %7:bool = eq %x_26, false
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
         %8:ptr<uniform, i32, read> = access %x_5, 0u
-        %x_6:i32 = load %8
-        %10:bool = eq %x_6, 1i
-        store %x_31, %10
-        %11:bool = load %x_31
-        store %x_32_phi, %11
+        %9:i32 = load %8
+        %x_6:i32 = let %9
+        %11:bool = eq %x_6, 1i
+        store %x_31, %11
+        %12:bool = load %x_31
+        store %x_32_phi, %12
         exit_if  # if_1
       }
     }
-    %x_32:bool = load %x_32_phi
-    if %x_32 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %13:bool = load %x_32_phi
+    %x_32:bool = let %13
+    if %x_32 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_2
       }
@@ -45,12 +47,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    ret %18
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.msl
index 8e17cd9..32e699a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,117 +20,123 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f1_vf2_ = func(%v1:ptr<function, vec2<f32>, read_write>):i32 -> %b2 {
-  %b2 = block {
+%f1_vf2_ = func(%v1:ptr<function, vec2<f32>, read_write>):i32 {
+  $B2: {
     %x_99:ptr<function, bool, read_write> = var
     %x_100:ptr<function, bool, read_write> = var
     %8:f32 = load_vector_element %v1, 0u
     %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %10:f32 = load %9
-    %x_92:bool = eq %8, %10
+    %11:bool = eq %8, %10
+    %x_92:bool = let %11
     store %x_100, %x_92
-    if %x_92 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %12:f32 = load_vector_element %v1, 1u
-        %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %14:f32 = load %13
-        %15:bool = eq %12, %14
-        store %x_99, %15
-        %16:bool = load %x_99
-        store %x_100, %16
+    if %x_92 [t: $B3] {  # if_1
+      $B3: {  # true
+        %13:f32 = load_vector_element %v1, 1u
+        %14:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %15:f32 = load %14
+        %16:bool = eq %13, %15
+        store %x_99, %16
+        %17:bool = load %x_99
+        store %x_100, %17
         exit_if  # if_1
       }
     }
-    %17:bool = load %x_100
-    if %17 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_104:i32 = load %18
+    %18:bool = load %x_100
+    if %18 [t: $B4] {  # if_2
+      $B4: {  # true
+        %19:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %20:i32 = load %19
+        %x_104:i32 = let %20
         ret %x_104
       }
     }
-    %20:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_106:i32 = load %20
+    %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %23:i32 = load %22
+    %x_106:i32 = let %23
     ret %x_106
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %m1:ptr<function, mat2x2<f32>, read_write> = var
     %m2:ptr<function, mat2x2<f32>, read_write> = var
     %v1_1:ptr<function, vec2<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
-    %28:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %29:f32 = load %28
-    %30:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %31:f32 = load %30
-    %32:f32 = negation %31
-    %33:vec2<f32> = construct %29, %32
-    %34:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %35:f32 = load %34
-    %36:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %37:f32 = load %36
-    %38:f32 = sin %37
-    %39:vec2<f32> = construct %35, %38
-    %40:mat2x2<f32> = construct %33, %39
-    store %m1, %40
-    %41:mat2x2<f32> = load %m1
-    %42:mat2x2<f32> = load %m1
-    %43:mat2x2<f32> = mul %41, %42
-    store %m2, %43
-    %44:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %45:f32 = load %44
-    %46:vec2<f32> = construct %45
-    %47:mat2x2<f32> = load %m2
-    %48:vec2<f32> = mul %46, %47
-    store %v1_1, %48
-    %49:vec2<f32> = load %v1_1
-    store %param, %49
-    %x_66:i32 = call %f1_vf2_, %param
+    %31:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %32:f32 = load %31
+    %33:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %34:f32 = load %33
+    %35:f32 = negation %34
+    %36:vec2<f32> = construct %32, %35
+    %37:vec2<f32> = let %36
+    %38:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %39:f32 = load %38
+    %40:f32 = let %39
+    %41:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %42:f32 = load %41
+    %43:f32 = sin %42
+    %44:vec2<f32> = construct %40, %43
+    %45:mat2x2<f32> = construct %37, %44
+    store %m1, %45
+    %46:mat2x2<f32> = load %m1
+    %47:mat2x2<f32> = load %m1
+    %48:mat2x2<f32> = mul %46, %47
+    store %m2, %48
+    %49:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %50:f32 = load %49
+    %51:vec2<f32> = construct %50
+    %52:mat2x2<f32> = load %m2
+    %53:vec2<f32> = mul %51, %52
+    store %v1_1, %53
+    %54:vec2<f32> = load %v1_1
+    store %param, %54
+    %55:i32 = call %f1_vf2_, %param
+    %x_66:i32 = let %55
     store %a, %x_66
-    %51:i32 = load %a
-    %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %53:i32 = load %52
-    %54:bool = eq %51, %53
-    if %54 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %55:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %56:f32 = load %55
-        %57:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %58:f32 = load %57
-        %59:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %60:f32 = load %59
+    %57:i32 = load %a
+    %58:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %59:i32 = load %58
+    %60:bool = eq %57, %59
+    if %60 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
         %61:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
         %62:f32 = load %61
-        %63:vec4<f32> = construct %56, %58, %60, %62
-        store %x_GLF_color, %63
+        %63:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %64:f32 = load %63
+        %65:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %66:f32 = load %65
+        %67:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %68:f32 = load %67
+        %69:vec4<f32> = construct %62, %64, %66, %68
+        store %x_GLF_color, %69
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %64:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %65:i32 = load %64
-        %66:f32 = convert %65
-        %67:vec4<f32> = construct %66
-        store %x_GLF_color, %67
+      $B7: {  # false
+        %70:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %71:i32 = load %70
+        %72:f32 = convert %71
+        %73:vec4<f32> = construct %72
+        store %x_GLF_color, %73
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %75:void = call %main_1
+    %76:vec4<f32> = load %x_GLF_color
+    %77:main_out = construct %76
+    ret %77
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.msl
index 1afc70c..ff10567 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-sin-mul-mat-mat-mul-vec-mat/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,117 +20,144 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%f1_vf2_ = func(%v1:ptr<function, vec2<f32>, read_write>):i32 -> %b2 {
-  %b2 = block {
+%f1_vf2_ = func(%v1:ptr<function, vec2<f32>, read_write>):i32 {
+  $B2: {
     %x_99:ptr<function, bool, read_write> = var
     %x_100_phi:ptr<function, bool, read_write> = var
-    %x_89:f32 = load_vector_element %v1, 0u
-    %9:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_91:f32 = load %9
-    %x_92:bool = eq %x_89, %x_91
+    %8:f32 = load_vector_element %v1, 0u
+    %x_89:f32 = let %8
+    %10:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %11:f32 = load %10
+    %x_91:f32 = let %11
+    %13:bool = eq %x_89, %x_91
+    %x_92:bool = let %13
     store %x_100_phi, %x_92
-    if %x_92 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_96:f32 = load_vector_element %v1, 1u
-        %13:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_98:f32 = load %13
-        %15:bool = eq %x_96, %x_98
-        store %x_99, %15
-        %16:bool = load %x_99
-        store %x_100_phi, %16
+    if %x_92 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:f32 = load_vector_element %v1, 1u
+        %x_96:f32 = let %15
+        %17:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %18:f32 = load %17
+        %x_98:f32 = let %18
+        %20:bool = eq %x_96, %x_98
+        store %x_99, %20
+        %21:bool = load %x_99
+        store %x_100_phi, %21
         exit_if  # if_1
       }
     }
-    %x_100:bool = load %x_100_phi
-    if %x_100 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_104:i32 = load %18
+    %22:bool = load %x_100_phi
+    %x_100:bool = let %22
+    if %x_100 [t: $B4] {  # if_2
+      $B4: {  # true
+        %24:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %25:i32 = load %24
+        %x_104:i32 = let %25
         ret %x_104
       }
     }
-    %20:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_106:i32 = load %20
+    %27:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %28:i32 = load %27
+    %x_106:i32 = let %28
     ret %x_106
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %m1:ptr<function, mat2x2<f32>, read_write> = var
     %m2:ptr<function, mat2x2<f32>, read_write> = var
     %v1_1:ptr<function, vec2<f32>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
-    %28:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_45:f32 = load %28
-    %30:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_47:f32 = load %30
-    %32:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_50:f32 = load %32
-    %34:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_52:f32 = load %34
-    %36:f32 = negation %x_47
-    %37:vec2<f32> = construct %x_45, %36
-    %38:f32 = sin %x_52
-    %39:vec2<f32> = construct %x_50, %38
-    %40:mat2x2<f32> = construct %37, %39
-    store %m1, %40
-    %x_57:mat2x2<f32> = load %m1
-    %x_58:mat2x2<f32> = load %m1
-    %43:mat2x2<f32> = mul %x_57, %x_58
-    store %m2, %43
-    %44:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_61:f32 = load %44
-    %x_63:mat2x2<f32> = load %m2
-    %47:vec2<f32> = construct %x_61, %x_61
-    %48:vec2<f32> = mul %47, %x_63
-    store %v1_1, %48
-    %x_65:vec2<f32> = load %v1_1
+    %36:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %37:f32 = load %36
+    %x_45:f32 = let %37
+    %39:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %40:f32 = load %39
+    %x_47:f32 = let %40
+    %42:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %43:f32 = load %42
+    %x_50:f32 = let %43
+    %45:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %46:f32 = load %45
+    %x_52:f32 = let %46
+    %48:f32 = negation %x_47
+    %49:vec2<f32> = construct %x_45, %48
+    %50:vec2<f32> = let %49
+    %51:f32 = sin %x_52
+    %52:vec2<f32> = construct %x_50, %51
+    %53:mat2x2<f32> = construct %50, %52
+    store %m1, %53
+    %54:mat2x2<f32> = load %m1
+    %x_57:mat2x2<f32> = let %54
+    %56:mat2x2<f32> = load %m1
+    %x_58:mat2x2<f32> = let %56
+    %58:mat2x2<f32> = mul %x_57, %x_58
+    store %m2, %58
+    %59:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %60:f32 = load %59
+    %x_61:f32 = let %60
+    %62:mat2x2<f32> = load %m2
+    %x_63:mat2x2<f32> = let %62
+    %64:vec2<f32> = construct %x_61, %x_61
+    %65:vec2<f32> = mul %64, %x_63
+    store %v1_1, %65
+    %66:vec2<f32> = load %v1_1
+    %x_65:vec2<f32> = let %66
     store %param, %x_65
-    %x_66:i32 = call %f1_vf2_, %param
+    %68:i32 = call %f1_vf2_, %param
+    %x_66:i32 = let %68
     store %a, %x_66
-    %x_67:i32 = load %a
-    %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_69:i32 = load %52
-    %54:bool = eq %x_67, %x_69
-    if %54 [t: %b6, f: %b7] {  # if_3
-      %b6 = block {  # true
-        %55:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_75:f32 = load %55
-        %57:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_77:f32 = load %57
-        %59:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-        %x_79:f32 = load %59
-        %61:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-        %x_81:f32 = load %61
-        %63:vec4<f32> = construct %x_75, %x_77, %x_79, %x_81
-        store %x_GLF_color, %63
+    %70:i32 = load %a
+    %x_67:i32 = let %70
+    %72:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %73:i32 = load %72
+    %x_69:i32 = let %73
+    %75:bool = eq %x_67, %x_69
+    if %75 [t: $B6, f: $B7] {  # if_3
+      $B6: {  # true
+        %76:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %77:f32 = load %76
+        %x_75:f32 = let %77
+        %79:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %80:f32 = load %79
+        %x_77:f32 = let %80
+        %82:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+        %83:f32 = load %82
+        %x_79:f32 = let %83
+        %85:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+        %86:f32 = load %85
+        %x_81:f32 = let %86
+        %88:vec4<f32> = construct %x_75, %x_77, %x_79, %x_81
+        store %x_GLF_color, %88
         exit_if  # if_3
       }
-      %b7 = block {  # false
-        %64:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_84:i32 = load %64
-        %x_85:f32 = convert %x_84
-        %67:vec4<f32> = construct %x_85, %x_85, %x_85, %x_85
-        store %x_GLF_color, %67
+      $B7: {  # false
+        %89:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %90:i32 = load %89
+        %x_84:i32 = let %90
+        %92:f32 = convert %x_84
+        %x_85:f32 = let %92
+        %94:vec4<f32> = construct %x_85, %x_85, %x_85, %x_85
+        store %x_GLF_color, %94
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %96:void = call %main_1
+    %97:vec4<f32> = load %x_GLF_color
+    %98:main_out = construct %97
+    ret %98
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.msl
index b07711a..2db9224 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,77 +8,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %g:ptr<private, i32, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %g, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:i32 = load %g
-        %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %8:f32 = load_vector_element %7, 0u
-        %9:f32 = add %8, 2.0f
-        %10:i32 = convert %9
-        %11:bool = lt %6, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %7:i32 = let %6
+        %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %9:f32 = load_vector_element %8, 0u
+        %10:f32 = add %9, 2.0f
+        %11:i32 = call %tint_f32_to_i32, %10
+        %13:bool = lt %7, %11
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %12:i32 = load %g
-        %13:i32 = add %12, 1i
-        store %g, %13
-        continue %b4
+        %14:i32 = load %g
+        %15:i32 = add %14, 1i
+        store %g, %15
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %14:i32 = load %g
-    store %a, %14
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %15:i32 = load %g
-        %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %17:f32 = load_vector_element %16, 1u
-        %18:i32 = convert %17
-        %19:bool = lt %15, %18
-        if %19 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    %16:i32 = load %g
+    store %a, %16
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %17:i32 = load %g
+        %18:i32 = let %17
+        %19:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %20:f32 = load_vector_element %19, 1u
+        %21:i32 = call %tint_f32_to_i32, %20
+        %22:bool = lt %18, %21
+        if %22 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %20:i32 = load %g
-        %21:i32 = add %20, 1i
-        store %g, %21
-        continue %b8
+        %23:i32 = load %g
+        %24:i32 = add %23, 1i
+        store %g, %24
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B8: {  # continuing
+        next_iteration  # -> $B7
       }
     }
-    %22:i32 = load %a
-    store %a, %22
-    %23:i32 = load %a
-    %24:bool = eq %23, 2i
-    if %24 [t: %b11, f: %b12] {  # if_3
-      %b11 = block {  # true
+    %25:i32 = load %a
+    store %a, %25
+    %26:i32 = load %a
+    %27:bool = eq %26, 2i
+    if %27 [t: $B11, f: $B12] {  # if_3
+      $B11: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b12 = block {  # false
+      $B12: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -86,12 +88,22 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %26:void = call %main_1
-    %27:vec4<f32> = load %x_GLF_color
-    %28:main_out = construct %27
-    ret %28
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %29:void = call %main_1
+    %30:vec4<f32> = load %x_GLF_color
+    %31:main_out = construct %30
+    ret %31
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B14: {
+    %33:i32 = convert %value
+    %34:bool = gte %value, -2147483648.0f
+    %35:i32 = select -2147483648i, %33, %34
+    %36:bool = lte %value, 2147483520.0f
+    %37:i32 = select 2147483647i, %35, %36
+    ret %37
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.msl
index 214517d..adb5eb0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-single-block-elim-self-assign/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,77 +8,86 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %g:ptr<private, i32, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     store %g, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_8:i32 = load %g
-        %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_46:f32 = load_vector_element %7, 0u
-        %9:f32 = add %x_46, 2.0f
-        %10:i32 = convert %9
-        %11:bool = lt %x_8, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %g
+        %x_8:i32 = let %6
+        %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %9:f32 = load_vector_element %8, 0u
+        %x_46:f32 = let %9
+        %11:f32 = add %x_46, 2.0f
+        %12:i32 = call %tint_f32_to_i32, %11
+        %14:bool = lt %x_8, %12
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_9:i32 = load %g
-        %13:i32 = add %x_9, 1i
-        store %g, %13
-        continue %b4
+        %15:i32 = load %g
+        %x_9:i32 = let %15
+        %17:i32 = add %x_9, 1i
+        store %g, %17
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_11:i32 = load %g
+    %18:i32 = load %g
+    %x_11:i32 = let %18
     store %a, %x_11
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %x_12:i32 = load %g
-        %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_56:f32 = load_vector_element %16, 1u
-        %18:i32 = convert %x_56
-        %19:bool = lt %x_12, %18
-        if %19 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %20:i32 = load %g
+        %x_12:i32 = let %20
+        %22:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %23:f32 = load_vector_element %22, 1u
+        %x_56:f32 = let %23
+        %25:i32 = call %tint_f32_to_i32, %x_56
+        %26:bool = lt %x_12, %25
+        if %26 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_13:i32 = load %g
-        %21:i32 = add %x_13, 1i
-        store %g, %21
-        continue %b8
+        %27:i32 = load %g
+        %x_13:i32 = let %27
+        %29:i32 = add %x_13, 1i
+        store %g, %29
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B8: {  # continuing
+        next_iteration  # -> $B7
       }
     }
-    %x_15:i32 = load %a
+    %30:i32 = load %a
+    %x_15:i32 = let %30
     store %a, %x_15
-    %x_16:i32 = load %a
-    %24:bool = eq %x_16, 2i
-    if %24 [t: %b11, f: %b12] {  # if_3
-      %b11 = block {  # true
+    %32:i32 = load %a
+    %x_16:i32 = let %32
+    %34:bool = eq %x_16, 2i
+    if %34 [t: $B11, f: $B12] {  # if_3
+      $B11: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b12 = block {  # false
+      $B12: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_3
       }
@@ -86,12 +95,22 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %26:void = call %main_1
-    %27:vec4<f32> = load %x_GLF_color
-    %28:main_out = construct %27
-    ret %28
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B14: {
+    %40:i32 = convert %value
+    %41:bool = gte %value, -2147483648.0f
+    %42:i32 = select -2147483648i, %40, %41
+    %43:bool = lte %value, 2147483520.0f
+    %44:i32 = select 2147483647i, %42, %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.msl
index b4118e4..9530b20 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %v2:ptr<function, vec2<i32>, read_write> = var
     %v3:ptr<function, vec2<f32>, read_write> = var
@@ -54,57 +54,61 @@
     %24:f32 = load_vector_element %v3, 0u
     %25:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %26:f32 = load %25
-    %x_59:bool = gt %24, %26
+    %27:bool = gt %24, %26
+    %x_59:bool = let %27
     store %x_67, %x_59
-    if %x_59 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %28:f32 = load_vector_element %v3, 0u
-        %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %30:f32 = load %29
-        %31:bool = lt %28, %30
-        store %x_66, %31
-        %32:bool = load %x_66
-        store %x_67, %32
+    if %x_59 [t: $B3] {  # if_1
+      $B3: {  # true
+        %29:f32 = load_vector_element %v3, 0u
+        %30:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %31:f32 = load %30
+        %32:bool = lt %29, %31
+        store %x_66, %32
+        %33:bool = load %x_66
+        store %x_67, %33
         exit_if  # if_1
       }
     }
-    %33:bool = load %x_67
-    if %33 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %41:i32 = load %40
-        %42:f32 = convert %41
-        %43:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %34:bool = load %x_67
+    if %34 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %35:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %36:i32 = load %35
+        %37:f32 = convert %36
+        %38:f32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %44:i32 = load %43
         %45:f32 = convert %44
-        %46:vec4<f32> = construct %36, %39, %42, %45
-        store %x_GLF_color, %46
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %47:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:vec4<f32> = construct %49
+        %50:vec4<f32> = construct %38, %42, %46, %49
         store %x_GLF_color, %50
         exit_if  # if_2
       }
+      $B5: {  # false
+        %51:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:vec4<f32> = construct %53
+        store %x_GLF_color, %54
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %56:void = call %main_1
+    %57:vec4<f32> = load %x_GLF_color
+    %58:main_out = construct %57
+    ret %58
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.msl
index 02b707c..bd4eca4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-sinh-ldexp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,91 +20,112 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %v2:ptr<function, vec2<i32>, read_write> = var
     %v3:ptr<function, vec2<f32>, read_write> = var
     %x_66:ptr<function, bool, read_write> = var
     %x_67_phi:ptr<function, bool, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_41:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
-    %x_43:f32 = load %12
-    %14:vec2<f32> = construct %x_41, %x_43
-    %15:vec2<f32> = sinh %14
-    store %v1, %15
-    %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_47:i32 = load %16
-    %18:vec2<i32> = construct %x_47, -3000i
-    store %v2, %18
-    %x_49:vec2<f32> = load %v1
-    %x_50:vec2<i32> = load %v2
-    %21:vec2<f32> = ldexp %x_49, %x_50
-    store %v3, %21
-    %x_53:f32 = load_vector_element %v3, 1u
-    %23:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
-    store %x_GLF_color, %23
-    %x_56:f32 = load_vector_element %v3, 0u
-    %25:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_58:f32 = load %25
-    %x_59:bool = gt %x_56, %x_58
+    %11:f32 = load %10
+    %x_41:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 3i, 0u
+    %14:f32 = load %13
+    %x_43:f32 = let %14
+    %16:vec2<f32> = construct %x_41, %x_43
+    %17:vec2<f32> = sinh %16
+    store %v1, %17
+    %18:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %19:i32 = load %18
+    %x_47:i32 = let %19
+    %21:vec2<i32> = construct %x_47, -3000i
+    store %v2, %21
+    %22:vec2<f32> = load %v1
+    %x_49:vec2<f32> = let %22
+    %24:vec2<i32> = load %v2
+    %x_50:vec2<i32> = let %24
+    %26:vec2<f32> = ldexp %x_49, %x_50
+    store %v3, %26
+    %27:f32 = load_vector_element %v3, 1u
+    %x_53:f32 = let %27
+    %29:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
+    store %x_GLF_color, %29
+    %30:f32 = load_vector_element %v3, 0u
+    %x_56:f32 = let %30
+    %32:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %33:f32 = load %32
+    %x_58:f32 = let %33
+    %35:bool = gt %x_56, %x_58
+    %x_59:bool = let %35
     store %x_67_phi, %x_59
-    if %x_59 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_63:f32 = load_vector_element %v3, 0u
-        %29:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-        %x_65:f32 = load %29
-        %31:bool = lt %x_63, %x_65
-        store %x_66, %31
-        %32:bool = load %x_66
-        store %x_67_phi, %32
+    if %x_59 [t: $B3] {  # if_1
+      $B3: {  # true
+        %37:f32 = load_vector_element %v3, 0u
+        %x_63:f32 = let %37
+        %39:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+        %40:f32 = load %39
+        %x_65:f32 = let %40
+        %42:bool = lt %x_63, %x_65
+        store %x_66, %42
+        %43:bool = load %x_66
+        store %x_67_phi, %43
         exit_if  # if_1
       }
     }
-    %x_67:bool = load %x_67_phi
-    if %x_67 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_72:i32 = load %34
-        %36:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_75:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_78:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_81:i32 = load %40
-        %42:f32 = convert %x_72
-        %43:f32 = convert %x_75
-        %44:f32 = convert %x_78
-        %45:f32 = convert %x_81
-        %46:vec4<f32> = construct %42, %43, %44, %45
-        store %x_GLF_color, %46
+    %44:bool = load %x_67_phi
+    %x_67:bool = let %44
+    if %x_67 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %46:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %47:i32 = load %46
+        %x_72:i32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %50:i32 = load %49
+        %x_75:i32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %53:i32 = load %52
+        %x_78:i32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %56:i32 = load %55
+        %x_81:i32 = let %56
+        %58:f32 = convert %x_72
+        %59:f32 = let %58
+        %60:f32 = convert %x_75
+        %61:f32 = let %60
+        %62:f32 = convert %x_78
+        %63:f32 = let %62
+        %64:f32 = convert %x_81
+        %65:vec4<f32> = construct %59, %61, %63, %64
+        store %x_GLF_color, %65
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %47:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_85:i32 = load %47
-        %x_86:f32 = convert %x_85
-        %50:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
-        store %x_GLF_color, %50
+      $B5: {  # false
+        %66:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %67:i32 = load %66
+        %x_85:i32 = let %67
+        %69:f32 = convert %x_85
+        %x_86:f32 = let %69
+        %71:vec4<f32> = construct %x_86, %x_86, %x_86, %x_86
+        store %x_GLF_color, %71
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.msl
index efdd3b1..0e1c264 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %v1:ptr<function, vec2<f32>, read_write> = var
+    %v2:ptr<function, vec2<f32>, read_write> = var
+    store %v1, vec2<f32>(1.0f, -1.0f)
+    %5:vec2<f32> = load %v1
+    %6:vec2<f32> = sinh %5
+    %7:vec2<f32> = step vec2<f32>(0.40000000596046447754f), %6
+    store %v2, %7
+    %8:f32 = load_vector_element %v2, 0u
+    %9:f32 = load_vector_element %v2, 1u
+    %10:f32 = load_vector_element %v2, 1u
+    %11:f32 = load_vector_element %v2, 0u
+    %12:vec4<f32> = construct %8, %9, %10, %11
+    store %x_GLF_color, %12
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %14:void = call %main_1
+    %15:vec4<f32> = load %x_GLF_color
+    %16:main_out = construct %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.msl
index efdd3b1..a85a062 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-step-sinh/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %v1:ptr<function, vec2<f32>, read_write> = var
+    %v2:ptr<function, vec2<f32>, read_write> = var
+    store %v1, vec2<f32>(1.0f, -1.0f)
+    %5:vec2<f32> = load %v1
+    %x_22:vec2<f32> = let %5
+    %7:vec2<f32> = sinh %x_22
+    %8:vec2<f32> = step vec2<f32>(0.40000000596046447754f), %7
+    store %v2, %8
+    %9:f32 = load_vector_element %v2, 0u
+    %x_27:f32 = let %9
+    %11:f32 = load_vector_element %v2, 1u
+    %x_29:f32 = let %11
+    %13:f32 = load_vector_element %v2, 1u
+    %x_31:f32 = let %13
+    %15:f32 = load_vector_element %v2, 0u
+    %x_33:f32 = let %15
+    %17:vec4<f32> = construct %x_27, %x_29, %x_31, %x_33
+    store %x_GLF_color, %17
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.msl
index 629717a..4d5c300 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -32,7 +32,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_12:ptr<uniform, buf3, read> = var @binding_point(0, 3)
@@ -40,8 +40,8 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %obj:ptr<function, S, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %x_49:ptr<function, vec2<f32>, read_write> = var
@@ -56,85 +56,99 @@
     %18:S = construct %17
     store %obj, %18
     %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_59:f32 = load_vector_element %19, 0u
-    %21:i32 = convert %x_59
-    %22:ptr<function, f32, read_write> = access %obj, 0u, %21
-    %23:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %24:f32 = load %23
-    store %22, %24
-    %25:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %26:f32 = load_vector_element %25, 0u
-    %27:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %28:f32 = load %27
-    %29:bool = gt %26, %28
-    if %29 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %30:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %31:vec2<f32> = load %30
-        store %x_49, %31
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
-        %32:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
+    %20:f32 = load_vector_element %19, 0u
+    %x_59:f32 = let %20
+    %22:i32 = call %tint_f32_to_i32, %x_59
+    %24:ptr<function, f32, read_write> = access %obj, 0u, %22
+    %25:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %26:f32 = load %25
+    store %24, %26
+    %27:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %28:f32 = load_vector_element %27, 0u
+    %29:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %30:f32 = load %29
+    %31:bool = gt %28, %30
+    if %31 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %32:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
         %33:vec2<f32> = load %32
         store %x_49, %33
         exit_if  # if_1
       }
+      $B4: {  # false
+        %34:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
+        %35:vec2<f32> = load %34
+        store %x_49, %35
+        exit_if  # if_1
+      }
     }
-    %34:f32 = load_vector_element %x_49, 1u
-    store %a, %34
-    %35:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %36:f32 = load %35
-    %37:f32 = load %a
-    %38:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
-    %39:i32 = load %38
-    %40:ptr<function, f32, read_write> = access %obj, 0u, %39
-    %41:f32 = load %40
-    %42:f32 = mix %36, %37, %41
-    store %b, %42
-    %43:f32 = load %b
-    %44:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %45:f32 = load %44
-    %46:f32 = distance %43, %45
-    %47:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %48:f32 = load %47
-    %49:bool = lt %46, %48
-    if %49 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
-        %50:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
-        %51:i32 = load %50
-        %52:f32 = convert %51
-        %53:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
-        %54:i32 = load %53
-        %55:f32 = convert %54
+    %36:f32 = load_vector_element %x_49, 1u
+    store %a, %36
+    %37:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %38:f32 = load %37
+    %39:f32 = load %a
+    %40:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
+    %41:i32 = load %40
+    %42:ptr<function, f32, read_write> = access %obj, 0u, %41
+    %43:f32 = load %42
+    %44:f32 = mix %38, %39, %43
+    store %b, %44
+    %45:f32 = load %b
+    %46:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %47:f32 = load %46
+    %48:f32 = distance %45, %47
+    %49:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %50:f32 = load %49
+    %51:bool = lt %48, %50
+    if %51 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
+        %52:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
+        %53:i32 = load %52
+        %54:f32 = convert %53
+        %55:f32 = let %54
         %56:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
         %57:i32 = load %56
         %58:f32 = convert %57
-        %59:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
-        %60:i32 = load %59
-        %61:f32 = convert %60
-        %62:vec4<f32> = construct %52, %55, %58, %61
-        store %x_GLF_color, %62
+        %59:f32 = let %58
+        %60:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
+        %61:i32 = load %60
+        %62:f32 = convert %61
+        %63:f32 = let %62
+        %64:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
+        %65:i32 = load %64
+        %66:f32 = convert %65
+        %67:vec4<f32> = construct %55, %59, %63, %66
+        store %x_GLF_color, %67
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %63:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
-        %64:i32 = load %63
-        %65:f32 = convert %64
-        %66:vec4<f32> = construct %65
-        store %x_GLF_color, %66
+      $B6: {  # false
+        %68:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
+        %69:i32 = load %68
+        %70:f32 = convert %69
+        %71:vec4<f32> = construct %70
+        store %x_GLF_color, %71
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.msl
index f7c22bb..4c0c448 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-struct-float-array-mix-uniform-vectors/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -32,7 +32,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_12:ptr<uniform, buf3, read> = var @binding_point(0, 3)
@@ -40,101 +40,137 @@
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %obj:ptr<function, S, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %x_49:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %11:ptr<uniform, f32, read> = access %x_7, 0u, 3i, 0u
-    %x_51:f32 = load %11
-    %13:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_53:f32 = load %13
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
-    %x_55:f32 = load %15
-    %17:array<f32, 3> = construct %x_51, %x_53, %x_55
-    %18:S = construct %17
-    store %obj, %18
-    %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_59:f32 = load_vector_element %19, 0u
-    %21:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_62:f32 = load %21
-    %23:i32 = convert %x_59
-    %24:ptr<function, f32, read_write> = access %obj, 0u, %23
-    store %24, %x_62
-    %25:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_65:f32 = load_vector_element %25, 0u
-    %27:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_67:f32 = load %27
-    %29:bool = gt %x_65, %x_67
-    if %29 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %30:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_73:vec2<f32> = load %30
+    %12:f32 = load %11
+    %x_51:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %15:f32 = load %14
+    %x_53:f32 = let %15
+    %17:ptr<uniform, f32, read> = access %x_7, 0u, 4i, 0u
+    %18:f32 = load %17
+    %x_55:f32 = let %18
+    %20:array<f32, 3> = construct %x_51, %x_53, %x_55
+    %21:S = construct %20
+    store %obj, %21
+    %22:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %23:f32 = load_vector_element %22, 0u
+    %x_59:f32 = let %23
+    %25:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %26:f32 = load %25
+    %x_62:f32 = let %26
+    %28:i32 = call %tint_f32_to_i32, %x_59
+    %30:ptr<function, f32, read_write> = access %obj, 0u, %28
+    store %30, %x_62
+    %31:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %32:f32 = load_vector_element %31, 0u
+    %x_65:f32 = let %32
+    %34:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %35:f32 = load %34
+    %x_67:f32 = let %35
+    %37:bool = gt %x_65, %x_67
+    if %37 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %38:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %39:vec2<f32> = load %38
+        %x_73:vec2<f32> = let %39
         store %x_49, %x_73
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %32:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
-        %x_75:vec2<f32> = load %32
+      $B4: {  # false
+        %41:ptr<uniform, vec2<f32>, read> = access %x_12, 0u
+        %42:vec2<f32> = load %41
+        %x_75:vec2<f32> = let %42
         store %x_49, %x_75
         exit_if  # if_1
       }
     }
-    %x_77:f32 = load_vector_element %x_49, 1u
+    %44:f32 = load_vector_element %x_49, 1u
+    %x_77:f32 = let %44
     store %a, %x_77
-    %35:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_79:f32 = load %35
-    %x_80:f32 = load %a
-    %38:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
-    %x_82:i32 = load %38
-    %40:ptr<function, f32, read_write> = access %obj, 0u, %x_82
-    %x_84:f32 = load %40
-    %42:f32 = mix %x_79, %x_80, %x_84
-    store %b, %42
-    %x_86:f32 = load %b
-    %44:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
-    %x_88:f32 = load %44
-    %46:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_91:f32 = load %46
-    %48:f32 = distance %x_86, %x_88
-    %49:bool = lt %48, %x_91
-    if %49 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
-        %50:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
-        %x_97:i32 = load %50
-        %52:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
-        %x_100:i32 = load %52
-        %54:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
-        %x_103:i32 = load %54
-        %56:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
-        %x_106:i32 = load %56
-        %58:f32 = convert %x_97
-        %59:f32 = convert %x_100
-        %60:f32 = convert %x_103
-        %61:f32 = convert %x_106
-        %62:vec4<f32> = construct %58, %59, %60, %61
-        store %x_GLF_color, %62
+    %46:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %47:f32 = load %46
+    %x_79:f32 = let %47
+    %49:f32 = load %a
+    %x_80:f32 = let %49
+    %51:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
+    %52:i32 = load %51
+    %x_82:i32 = let %52
+    %54:ptr<function, f32, read_write> = access %obj, 0u, %x_82
+    %55:f32 = load %54
+    %x_84:f32 = let %55
+    %57:f32 = mix %x_79, %x_80, %x_84
+    store %b, %57
+    %58:f32 = load %b
+    %x_86:f32 = let %58
+    %60:ptr<uniform, f32, read> = access %x_7, 0u, 2i, 0u
+    %61:f32 = load %60
+    %x_88:f32 = let %61
+    %63:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %64:f32 = load %63
+    %x_91:f32 = let %64
+    %66:f32 = distance %x_86, %x_88
+    %67:bool = lt %66, %x_91
+    if %67 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
+        %68:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
+        %69:i32 = load %68
+        %x_97:i32 = let %69
+        %71:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
+        %72:i32 = load %71
+        %x_100:i32 = let %72
+        %74:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
+        %75:i32 = load %74
+        %x_103:i32 = let %75
+        %77:ptr<uniform, i32, read> = access %x_15, 0u, 0i, 0u
+        %78:i32 = load %77
+        %x_106:i32 = let %78
+        %80:f32 = convert %x_97
+        %81:f32 = let %80
+        %82:f32 = convert %x_100
+        %83:f32 = let %82
+        %84:f32 = convert %x_103
+        %85:f32 = let %84
+        %86:f32 = convert %x_106
+        %87:vec4<f32> = construct %81, %83, %85, %86
+        store %x_GLF_color, %87
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %63:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
-        %x_110:i32 = load %63
-        %x_111:f32 = convert %x_110
-        %66:vec4<f32> = construct %x_111, %x_111, %x_111, %x_111
-        store %x_GLF_color, %66
+      $B6: {  # false
+        %88:ptr<uniform, i32, read> = access %x_15, 0u, 1i, 0u
+        %89:i32 = load %88
+        %x_110:i32 = let %89
+        %91:f32 = convert %x_110
+        %x_111:f32 = let %91
+        %93:vec4<f32> = construct %x_111, %x_111, %x_111, %x_111
+        store %x_GLF_color, %93
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %95:void = call %main_1
+    %96:vec4<f32> = load %x_GLF_color
+    %97:main_out = construct %96
+    ret %97
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %99:i32 = convert %value
+    %100:bool = gte %value, -2147483648.0f
+    %101:i32 = select -2147483648i, %99, %100
+    %102:bool = lte %value, 2147483520.0f
+    %103:i32 = select 2147483647i, %101, %102
+    ret %103
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.msl
index 7731469..8b50e85 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,72 +24,77 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
     %8:f32 = load %7
     %9:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
     %10:f32 = load_vector_element %9, 0u
     %11:f32 = mul %8, %10
-    %12:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %13:f32 = load %12
-    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %15:f32 = load_vector_element %14, 0u
-    %16:f32 = round %15
-    %17:f32 = mul %13, %16
-    %18:f32 = add %11, %17
-    %19:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %20:f32 = load_vector_element %19, 1u
-    %21:f32 = add %18, %20
-    store %f, %21
-    %22:f32 = load %f
-    %23:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %24:f32 = load %23
-    %25:bool = eq %22, %24
-    if %25 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
+    %12:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %14:f32 = load %13
+    %15:f32 = let %14
+    %16:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %17:f32 = load_vector_element %16, 0u
+    %18:f32 = round %17
+    %19:f32 = mul %15, %18
+    %20:f32 = add %12, %19
+    %21:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %22:f32 = load_vector_element %21, 1u
+    %23:f32 = add %20, %22
+    store %f, %23
+    %24:f32 = load %f
+    %25:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %26:f32 = load %25
+    %27:bool = eq %24, %26
+    if %27 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %28:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
         %32:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
         %33:i32 = load %32
         %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %36:i32 = load %35
-        %37:f32 = convert %36
-        %38:vec4<f32> = construct %28, %31, %34, %37
-        store %x_GLF_color, %38
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %37:i32 = load %36
+        %38:f32 = convert %37
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %31, %35, %39, %42
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %40:i32 = load %39
-        %41:f32 = convert %40
-        %42:vec4<f32> = construct %41
-        store %x_GLF_color, %42
+      $B4: {  # false
+        %44:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.msl
index b69871a..b27d6c2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-sum-uniform-vector-components-round/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,72 +24,88 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_37:f32 = load %7
-    %9:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_39:f32 = load_vector_element %9, 0u
-    %11:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-    %x_42:f32 = load %11
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_44:f32 = load_vector_element %13, 0u
-    %15:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_49:f32 = load_vector_element %15, 1u
-    %17:f32 = mul %x_37, %x_39
-    %18:f32 = round %x_44
-    %19:f32 = mul %x_42, %18
-    %20:f32 = add %17, %19
-    %21:f32 = add %20, %x_49
-    store %f, %21
-    %x_51:f32 = load %f
-    %23:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_53:f32 = load %23
-    %25:bool = eq %x_51, %x_53
-    if %25 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_59:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_62:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_65:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_68:i32 = load %32
-        %34:f32 = convert %x_59
-        %35:f32 = convert %x_62
-        %36:f32 = convert %x_65
-        %37:f32 = convert %x_68
-        %38:vec4<f32> = construct %34, %35, %36, %37
-        store %x_GLF_color, %38
+    %8:f32 = load %7
+    %x_37:f32 = let %8
+    %10:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %11:f32 = load_vector_element %10, 0u
+    %x_39:f32 = let %11
+    %13:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+    %14:f32 = load %13
+    %x_42:f32 = let %14
+    %16:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %17:f32 = load_vector_element %16, 0u
+    %x_44:f32 = let %17
+    %19:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %20:f32 = load_vector_element %19, 1u
+    %x_49:f32 = let %20
+    %22:f32 = mul %x_37, %x_39
+    %23:f32 = round %x_44
+    %24:f32 = mul %x_42, %23
+    %25:f32 = add %22, %24
+    %26:f32 = add %25, %x_49
+    store %f, %26
+    %27:f32 = load %f
+    %x_51:f32 = let %27
+    %29:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %30:f32 = load %29
+    %x_53:f32 = let %30
+    %32:bool = eq %x_51, %x_53
+    if %32 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %33:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %34:i32 = load %33
+        %x_59:i32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %37:i32 = load %36
+        %x_62:i32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %40:i32 = load %39
+        %x_65:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %43:i32 = load %42
+        %x_68:i32 = let %43
+        %45:f32 = convert %x_59
+        %46:f32 = let %45
+        %47:f32 = convert %x_62
+        %48:f32 = let %47
+        %49:f32 = convert %x_65
+        %50:f32 = let %49
+        %51:f32 = convert %x_68
+        %52:vec4<f32> = construct %46, %48, %50, %51
+        store %x_GLF_color, %52
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_72:i32 = load %39
-        %x_73:f32 = convert %x_72
-        %42:vec4<f32> = construct %x_73, %x_73, %x_73, %x_73
-        store %x_GLF_color, %42
+      $B4: {  # false
+        %53:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %54:i32 = load %53
+        %x_72:i32 = let %54
+        %56:f32 = convert %x_72
+        %x_73:f32 = let %56
+        %58:vec4<f32> = construct %x_73, %x_73, %x_73, %x_73
+        store %x_GLF_color, %58
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.msl
index abede91..054b743 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %color:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -36,114 +36,118 @@
     %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
     %10:i32 = load %9
     store %i, %10
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
         %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %13:i32 = load %12
         %14:bool = lt %11, %13
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_47:i32 = load %i
-        switch %x_47 [c: (2i, %b7), c: (1i, %b8), c: (default, %b9)] {  # switch_1
-          %b7 = block {  # case
-            %x_83:i32 = load %i
-            %17:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-            %18:f32 = load %17
-            store_vector_element %color, %x_83, %18
+        %15:i32 = load %i
+        %x_47:i32 = let %15
+        switch %x_47 [c: (2i, $B7), c: (1i, $B8), c: (default, $B9)] {  # switch_1
+          $B7: {  # case
+            %17:i32 = load %i
+            %x_83:i32 = let %17
+            %19:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+            %20:f32 = load %19
+            store_vector_element %color, %x_83, %20
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
-            %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %20:i32 = load %19
-            store %j, %20
-            loop [b: %b10, c: %b11] {  # loop_2
-              %b10 = block {  # body
-                %21:i32 = load %i
-                %22:i32 = load %i
-                %23:bool = gt %21, %22
-                if %23 [t: %b12, f: %b13] {  # if_2
-                  %b12 = block {  # true
+          $B8: {  # case
+            %21:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %22:i32 = load %21
+            store %j, %22
+            loop [b: $B10, c: $B11] {  # loop_2
+              $B10: {  # body
+                %23:i32 = load %i
+                %24:i32 = load %i
+                %25:bool = gt %23, %24
+                if %25 [t: $B12, f: $B13] {  # if_2
+                  $B12: {  # true
                     exit_if  # if_2
                   }
-                  %b13 = block {  # false
+                  $B13: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                %24:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-                %25:i32 = load %24
-                store %k, %25
-                loop [b: %b14, c: %b15] {  # loop_3
-                  %b14 = block {  # body
-                    %26:i32 = load %k
-                    %27:i32 = load %i
-                    %28:bool = lt %26, %27
-                    if %28 [t: %b16, f: %b17] {  # if_3
-                      %b16 = block {  # true
+                %26:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+                %27:i32 = load %26
+                store %k, %27
+                loop [b: $B14, c: $B15] {  # loop_3
+                  $B14: {  # body
+                    %28:i32 = load %k
+                    %29:i32 = load %i
+                    %30:bool = lt %28, %29
+                    if %30 [t: $B16, f: $B17] {  # if_3
+                      $B16: {  # true
                         exit_if  # if_3
                       }
-                      %b17 = block {  # false
+                      $B17: {  # false
                         exit_loop  # loop_3
                       }
                     }
-                    %x_71:i32 = load %k
-                    %30:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-                    %31:f32 = load %30
-                    store_vector_element %color, %x_71, %31
-                    continue %b15
+                    %31:i32 = load %k
+                    %x_71:i32 = let %31
+                    %33:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+                    %34:f32 = load %33
+                    store_vector_element %color, %x_71, %34
+                    continue  # -> $B15
                   }
-                  %b15 = block {  # continuing
-                    %32:i32 = load %k
-                    %33:i32 = add %32, 1i
-                    store %k, %33
-                    next_iteration %b14
+                  $B15: {  # continuing
+                    %35:i32 = load %k
+                    %36:i32 = add %35, 1i
+                    store %k, %36
+                    next_iteration  # -> $B14
                   }
                 }
-                continue %b11
+                continue  # -> $B11
               }
-              %b11 = block {  # continuing
-                %34:i32 = load %j
-                %35:i32 = add %34, 1i
-                store %j, %35
-                next_iteration %b10
+              $B11: {  # continuing
+                %37:i32 = load %j
+                %38:i32 = add %37, 1i
+                store %j, %38
+                next_iteration  # -> $B10
               }
             }
-            %x_79:i32 = load %i
-            %37:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-            %38:f32 = load %37
-            store_vector_element %color, %x_79, %38
+            %39:i32 = load %i
+            %x_79:i32 = let %39
+            %41:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+            %42:f32 = load %41
+            store_vector_element %color, %x_79, %42
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
+          $B9: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %39:i32 = load %i
-        %40:i32 = add %39, 1i
-        store %i, %40
-        next_iteration %b3
+      $B4: {  # continuing
+        %43:i32 = load %i
+        %44:i32 = add %43, 1i
+        store %i, %44
+        next_iteration  # -> $B3
       }
     }
-    %41:vec4<f32> = load %color
-    store %x_GLF_color, %41
+    %45:vec4<f32> = load %color
+    store %x_GLF_color, %45
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B18: {
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.msl
index 600b293..de87308 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-for-for-for/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,130 +20,150 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %color:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %k:ptr<function, i32, read_write> = var
     store %color, vec4<f32>(1.0f)
     %9:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_37:i32 = load %9
+    %10:i32 = load %9
+    %x_37:i32 = let %10
     store %i, %x_37
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_42:i32 = load %i
-        %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_44:i32 = load %12
-        %14:bool = lt %x_42, %x_44
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_42:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %15:i32 = load %14
+        %x_44:i32 = let %15
+        %17:bool = lt %x_42, %x_44
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_47:i32 = load %i
-        switch %x_47 [c: (2i, %b7), c: (1i, %b8), c: (default, %b9)] {  # switch_1
-          %b7 = block {  # case
-            %x_83:i32 = load %i
-            %17:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-            %x_85:f32 = load %17
+        %18:i32 = load %i
+        %x_47:i32 = let %18
+        switch %x_47 [c: (2i, $B7), c: (1i, $B8), c: (default, $B9)] {  # switch_1
+          $B7: {  # case
+            %20:i32 = load %i
+            %x_83:i32 = let %20
+            %22:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+            %23:f32 = load %22
+            %x_85:f32 = let %23
             store_vector_element %color, %x_83, %x_85
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
-            %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-            %x_52:i32 = load %19
+          $B8: {  # case
+            %25:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+            %26:i32 = load %25
+            %x_52:i32 = let %26
             store %j, %x_52
-            loop [b: %b10, c: %b11] {  # loop_2
-              %b10 = block {  # body
-                %x_57:i32 = load %i
-                %x_58:i32 = load %i
-                %23:bool = gt %x_57, %x_58
-                if %23 [t: %b12, f: %b13] {  # if_2
-                  %b12 = block {  # true
+            loop [b: $B10, c: $B11] {  # loop_2
+              $B10: {  # body
+                %28:i32 = load %i
+                %x_57:i32 = let %28
+                %30:i32 = load %i
+                %x_58:i32 = let %30
+                %32:bool = gt %x_57, %x_58
+                if %32 [t: $B12, f: $B13] {  # if_2
+                  $B12: {  # true
                     exit_if  # if_2
                   }
-                  %b13 = block {  # false
+                  $B13: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                %24:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-                %x_62:i32 = load %24
+                %33:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+                %34:i32 = load %33
+                %x_62:i32 = let %34
                 store %k, %x_62
-                loop [b: %b14, c: %b15] {  # loop_3
-                  %b14 = block {  # body
-                    %x_67:i32 = load %k
-                    %x_68:i32 = load %i
-                    %28:bool = lt %x_67, %x_68
-                    if %28 [t: %b16, f: %b17] {  # if_3
-                      %b16 = block {  # true
+                loop [b: $B14, c: $B15] {  # loop_3
+                  $B14: {  # body
+                    %36:i32 = load %k
+                    %x_67:i32 = let %36
+                    %38:i32 = load %i
+                    %x_68:i32 = let %38
+                    %40:bool = lt %x_67, %x_68
+                    if %40 [t: $B16, f: $B17] {  # if_3
+                      $B16: {  # true
                         exit_if  # if_3
                       }
-                      %b17 = block {  # false
+                      $B17: {  # false
                         exit_loop  # loop_3
                       }
                     }
-                    %x_71:i32 = load %k
-                    %30:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-                    %x_73:f32 = load %30
+                    %41:i32 = load %k
+                    %x_71:i32 = let %41
+                    %43:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+                    %44:f32 = load %43
+                    %x_73:f32 = let %44
                     store_vector_element %color, %x_71, %x_73
-                    continue %b15
+                    continue  # -> $B15
                   }
-                  %b15 = block {  # continuing
-                    %x_75:i32 = load %k
-                    %33:i32 = add %x_75, 1i
-                    store %k, %33
-                    next_iteration %b14
+                  $B15: {  # continuing
+                    %46:i32 = load %k
+                    %x_75:i32 = let %46
+                    %48:i32 = add %x_75, 1i
+                    store %k, %48
+                    next_iteration  # -> $B14
                   }
                 }
-                continue %b11
+                continue  # -> $B11
               }
-              %b11 = block {  # continuing
-                %x_77:i32 = load %j
-                %35:i32 = add %x_77, 1i
-                store %j, %35
-                next_iteration %b10
+              $B11: {  # continuing
+                %49:i32 = load %j
+                %x_77:i32 = let %49
+                %51:i32 = add %x_77, 1i
+                store %j, %51
+                next_iteration  # -> $B10
               }
             }
-            %x_79:i32 = load %i
-            %37:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
-            %x_81:f32 = load %37
+            %52:i32 = load %i
+            %x_79:i32 = let %52
+            %54:ptr<uniform, f32, read> = access %x_11, 0u, 0i, 0u
+            %55:f32 = load %54
+            %x_81:f32 = let %55
             store_vector_element %color, %x_79, %x_81
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
+          $B9: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_87:i32 = load %i
-        %40:i32 = add %x_87, 1i
-        store %i, %40
-        next_iteration %b3
+      $B4: {  # continuing
+        %57:i32 = load %i
+        %x_87:i32 = let %57
+        %59:i32 = add %x_87, 1i
+        store %i, %59
+        next_iteration  # -> $B3
       }
     }
-    %x_89:vec4<f32> = load %color
+    %60:vec4<f32> = load %color
+    %x_89:vec4<f32> = let %60
     store %x_GLF_color, %x_89
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B18: {
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.msl
index dc64a45..10f6312 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,15 +24,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_7:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
     %8:f32 = load %7
@@ -43,49 +43,49 @@
     %12:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
     %13:f32 = load %12
     %14:bool = gt %11, %13
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b5, c: %b6] {  # loop_1
-          %b5 = block {  # body
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        loop [b: $B5, c: $B6] {  # loop_1
+          $B5: {  # body
             %15:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
             %16:f32 = load %15
             %17:vec4<f32> = construct %16
             store %x_GLF_color, %17
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            break_if false %b5
+          $B6: {  # continuing
+            break_if false  # -> [t: exit_loop loop_1, f: $B5]
           }
         }
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
-                if true [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+      $B4: {  # false
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            loop [b: $B9] {  # loop_3
+              $B9: {  # body
+                if true [t: $B10, f: $B11] {  # if_2
+                  $B10: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B11: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %18:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
                 %19:i32 = load %18
                 store %i, %19
-                loop [b: %b13, c: %b14] {  # loop_4
-                  %b13 = block {  # body
+                loop [b: $B12, c: $B13] {  # loop_4
+                  $B12: {  # body
                     %20:i32 = load %i
                     %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
                     %22:i32 = load %21
                     %23:bool = lt %20, %22
-                    if %23 [t: %b15, f: %b16] {  # if_3
-                      %b15 = block {  # true
+                    if %23 [t: $B14, f: $B15] {  # if_3
+                      $B14: {  # true
                         exit_if  # if_3
                       }
-                      %b16 = block {  # false
+                      $B15: {  # false
                         exit_loop  # loop_4
                       }
                     }
@@ -99,31 +99,30 @@
                     %31:f32 = load %30
                     %32:vec4<f32> = construct %25, %27, %29, %31
                     store %x_GLF_color, %32
-                    continue %b14
+                    continue  # -> $B13
                   }
-                  %b14 = block {  # continuing
+                  $B13: {  # continuing
                     %33:i32 = load %i
                     %34:i32 = add %33, 1i
                     store %i, %34
-                    next_iteration %b13
+                    next_iteration  # -> $B12
                   }
                 }
                 exit_loop  # loop_3
               }
-              %b10 = block {  # continuing
-                next_iteration %b9
-              }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
+          $B8: {  # continuing
             %35:ptr<uniform, f32, read> = access %x_7, 0u
-            %x_82:f32 = load %35
-            %37:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-            %x_84:f32 = load %37
-            %39:bool = gt %x_82, %x_84
-            %40:bool = eq %39, false
-            break_if %40 %b7
+            %36:f32 = load %35
+            %x_82:f32 = let %36
+            %38:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+            %39:f32 = load %38
+            %x_84:f32 = let %39
+            %41:bool = gt %x_82, %x_84
+            %42:bool = eq %41, false
+            break_if %42  # -> [t: exit_loop loop_2, f: $B7]
           }
         }
         exit_if  # if_1
@@ -132,12 +131,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b17 {
-  %b17 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B16: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.msl
index b7607fd..1a99ffc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-tail-duplicator-infinite-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -24,106 +24,117 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_7:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %7:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-    %x_38:f32 = load %7
-    %9:vec4<f32> = construct %x_38, %x_38, %x_38, %x_38
-    store %x_GLF_color, %9
-    %10:ptr<uniform, f32, read> = access %x_7, 0u
-    %x_41:f32 = load %10
-    %12:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-    %x_43:f32 = load %12
-    %14:bool = gt %x_41, %x_43
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b5, c: %b6] {  # loop_1
-          %b5 = block {  # body
-            %15:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-            %x_53:f32 = load %15
-            %17:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
-            store %x_GLF_color, %17
-            continue %b6
+    %8:f32 = load %7
+    %x_38:f32 = let %8
+    %10:vec4<f32> = construct %x_38, %x_38, %x_38, %x_38
+    store %x_GLF_color, %10
+    %11:ptr<uniform, f32, read> = access %x_7, 0u
+    %12:f32 = load %11
+    %x_41:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+    %15:f32 = load %14
+    %x_43:f32 = let %15
+    %17:bool = gt %x_41, %x_43
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        loop [b: $B5, c: $B6] {  # loop_1
+          $B5: {  # body
+            %18:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
+            %19:f32 = load %18
+            %x_53:f32 = let %19
+            %21:vec4<f32> = construct %x_53, %x_53, %x_53, %x_53
+            store %x_GLF_color, %21
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            break_if false %b5
+          $B6: {  # continuing
+            break_if false  # -> [t: exit_loop loop_1, f: $B5]
           }
         }
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
-                if true [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+      $B4: {  # false
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            loop [b: $B9] {  # loop_3
+              $B9: {  # body
+                if true [t: $B10, f: $B11] {  # if_2
+                  $B10: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B11: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                %18:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                %x_13:i32 = load %18
+                %22:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                %23:i32 = load %22
+                %x_13:i32 = let %23
                 store %i, %x_13
-                loop [b: %b13, c: %b14] {  # loop_4
-                  %b13 = block {  # body
-                    %x_14:i32 = load %i
-                    %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-                    %x_15:i32 = load %21
-                    %23:bool = lt %x_14, %x_15
-                    if %23 [t: %b15, f: %b16] {  # if_3
-                      %b15 = block {  # true
+                loop [b: $B12, c: $B13] {  # loop_4
+                  $B12: {  # body
+                    %25:i32 = load %i
+                    %x_14:i32 = let %25
+                    %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+                    %28:i32 = load %27
+                    %x_15:i32 = let %28
+                    %30:bool = lt %x_14, %x_15
+                    if %30 [t: $B14, f: $B15] {  # if_3
+                      $B14: {  # true
                         exit_if  # if_3
                       }
-                      %b16 = block {  # false
+                      $B15: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %24:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-                    %x_73:f32 = load %24
-                    %26:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-                    %x_75:f32 = load %26
-                    %28:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-                    %x_77:f32 = load %28
-                    %30:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
-                    %x_79:f32 = load %30
-                    %32:vec4<f32> = construct %x_73, %x_75, %x_77, %x_79
-                    store %x_GLF_color, %32
-                    continue %b14
+                    %31:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
+                    %32:f32 = load %31
+                    %x_73:f32 = let %32
+                    %34:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+                    %35:f32 = load %34
+                    %x_75:f32 = let %35
+                    %37:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+                    %38:f32 = load %37
+                    %x_77:f32 = let %38
+                    %40:ptr<uniform, f32, read> = access %x_5, 0u, 1i, 0u
+                    %41:f32 = load %40
+                    %x_79:f32 = let %41
+                    %43:vec4<f32> = construct %x_73, %x_75, %x_77, %x_79
+                    store %x_GLF_color, %43
+                    continue  # -> $B13
                   }
-                  %b14 = block {  # continuing
-                    %x_16:i32 = load %i
-                    %34:i32 = add %x_16, 1i
-                    store %i, %34
-                    next_iteration %b13
+                  $B13: {  # continuing
+                    %44:i32 = load %i
+                    %x_16:i32 = let %44
+                    %46:i32 = add %x_16, 1i
+                    store %i, %46
+                    next_iteration  # -> $B12
                   }
                 }
                 exit_loop  # loop_3
               }
-              %b10 = block {  # continuing
-                next_iteration %b9
-              }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %35:ptr<uniform, f32, read> = access %x_7, 0u
-            %x_82:f32 = load %35
-            %37:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
-            %x_84:f32 = load %37
-            %39:bool = gt %x_82, %x_84
-            %40:bool = eq %39, false
-            break_if %40 %b7
+          $B8: {  # continuing
+            %47:ptr<uniform, f32, read> = access %x_7, 0u
+            %48:f32 = load %47
+            %x_82:f32 = let %48
+            %50:ptr<uniform, f32, read> = access %x_5, 0u, 0i, 0u
+            %51:f32 = load %50
+            %x_84:f32 = let %51
+            %53:bool = gt %x_82, %x_84
+            %54:bool = eq %53, false
+            break_if %54  # -> [t: exit_loop loop_2, f: $B7]
           }
         }
         exit_if  # if_1
@@ -132,12 +143,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b17 {
-  %b17 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B16: {
+    %56:void = call %main_1
+    %57:vec4<f32> = load %x_GLF_color
+    %58:main_out = construct %57
+    ret %58
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.msl
index c0d6f64..dbc6ec4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:f32 @offset(0)
 }
 
@@ -8,36 +8,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %7:f32 = load_vector_element %gl_FragCoord, 0u
-    %8:f32 = cos %7
-    %9:f32 = dpdx %8
-    store %a, %9
-    %10:ptr<uniform, f32, read> = access %x_8, 0u
-    %11:f32 = load %10
-    %12:f32 = load %a
-    %13:f32 = mix 2.0f, %11, %12
-    store %b, %13
-    %14:f32 = load %b
-    %15:bool = gte %14, 1.89999997615814208984f
-    %16:f32 = load %b
-    %17:bool = lte %16, 2.09999990463256835938f
-    %18:bool = and %15, %17
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %x_33:f32 = let %7
+    %9:f32 = cos %x_33
+    %10:f32 = dpdx %9
+    store %a, %10
+    %11:ptr<uniform, f32, read> = access %x_8, 0u
+    %12:f32 = load %11
+    %13:f32 = load %a
+    %14:f32 = mix 2.0f, %12, %13
+    store %b, %14
+    %15:f32 = load %b
+    %16:bool = gte %15, 1.89999997615814208984f
+    %17:f32 = load %b
+    %18:bool = lte %17, 2.09999990463256835938f
+    %19:bool = and %16, %18
+    if %19 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -45,13 +46,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    ret %24
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.msl
index 510f82c..02de545 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-dfdx-cos/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:f32 @offset(0)
 }
 
@@ -8,36 +8,41 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
-    %x_33:f32 = load_vector_element %gl_FragCoord, 0u
-    %8:f32 = cos %x_33
-    %9:f32 = dpdx %8
-    store %a, %9
-    %10:ptr<uniform, f32, read> = access %x_8, 0u
-    %x_37:f32 = load %10
-    %x_38:f32 = load %a
-    %13:f32 = mix 2.0f, %x_37, %x_38
-    store %b, %13
-    %x_40:f32 = load %b
-    %x_42:f32 = load %b
-    %16:bool = gte %x_40, 1.89999997615814208984f
-    %17:bool = lte %x_42, 2.09999990463256835938f
-    %18:bool = and %16, %17
-    if %18 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %7:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_33:f32 = let %7
+    %9:f32 = cos %x_33
+    %10:f32 = dpdx %9
+    store %a, %10
+    %11:ptr<uniform, f32, read> = access %x_8, 0u
+    %12:f32 = load %11
+    %x_37:f32 = let %12
+    %14:f32 = load %a
+    %x_38:f32 = let %14
+    %16:f32 = mix 2.0f, %x_37, %x_38
+    store %b, %16
+    %17:f32 = load %b
+    %x_40:f32 = let %17
+    %19:f32 = load %b
+    %x_42:f32 = let %19
+    %21:bool = gte %x_40, 1.89999997615814208984f
+    %22:bool = lte %x_42, 2.09999990463256835938f
+    %23:bool = and %21, %22
+    if %23 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -45,13 +50,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+    %26:void = call %main_1
+    %27:vec4<f32> = load %x_GLF_color
+    %28:main_out = construct %27
+    ret %28
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.msl
index 82b6730..aa30f09 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -20,44 +20,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %6:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %7:f32 = load_vector_element %6, 0u
-        %8:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %9:f32 = load_vector_element %8, 1u
-        %10:bool = gt %7, %9
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %7:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %8:f32 = load_vector_element %7, 0u
+        %9:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %10:f32 = load_vector_element %9, 1u
+        %11:bool = gt %8, %10
+        if %11 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
         ret
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %11:ptr<function, i32, read_write> = access %s, 0u
-    %12:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %13:i32 = load %12
-    store %11, %13
+    %12:ptr<function, i32, read_write> = access %s, 0u
+    %13:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %14:i32 = load %13
+    store %12, %14
     ret
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B6: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 3>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -67,215 +65,229 @@
     %x_137:ptr<function, bool, read_write> = var
     %x_146:ptr<function, bool, read_write> = var
     %x_147:ptr<function, bool, read_write> = var
-    %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %25:i32 = load %24
-    store %i, %25
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %26:i32 = load %i
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %28:i32 = load %27
-        %29:bool = lt %26, %28
-        if %29 [t: %b10, f: %b11] {  # if_2
-          %b10 = block {  # true
+    %25:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %26:i32 = load %25
+    store %i, %26
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %27:i32 = load %i
+        %28:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %29:i32 = load %28
+        %30:bool = lt %27, %29
+        if %30 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b11 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_56:i32 = load %i
-        %31:ptr<function, i32, read_write> = access %arr, %x_56, 0u
-        %32:i32 = load %i
-        store %31, %32
-        continue %b9
+        %31:i32 = load %i
+        %x_56:i32 = let %31
+        %33:ptr<function, i32, read_write> = access %arr, %x_56, 0u
+        %34:i32 = load %i
+        store %33, %34
+        continue  # -> $B8
       }
-      %b9 = block {  # continuing
-        %33:i32 = load %i
-        %34:i32 = add %33, 1i
-        store %i, %34
-        next_iteration %b8
+      $B8: {  # continuing
+        %35:i32 = load %i
+        %36:i32 = add %35, 1i
+        store %i, %36
+        next_iteration  # -> $B7
       }
     }
-    %35:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %36:i32 = load %35
-    store %i_1, %36
-    loop [b: %b12, c: %b13] {  # loop_3
-      %b12 = block {  # body
-        %37:i32 = load %i_1
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %39:i32 = load %38
-        %40:bool = lt %37, %39
-        if %40 [t: %b14, f: %b15] {  # if_3
-          %b14 = block {  # true
+    %37:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %38:i32 = load %37
+    store %i_1, %38
+    loop [b: $B11, c: $B12] {  # loop_3
+      $B11: {  # body
+        %39:i32 = load %i_1
+        %40:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:bool = lt %39, %41
+        if %42 [t: $B13, f: $B14] {  # if_3
+          $B13: {  # true
             exit_if  # if_3
           }
-          %b15 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_3
           }
         }
-        %41:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %42:f32 = load_vector_element %41, 0u
         %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %44:f32 = load_vector_element %43, 1u
-        %45:bool = gt %42, %44
-        if %45 [t: %b16] {  # if_4
-          %b16 = block {  # true
+        %44:f32 = load_vector_element %43, 0u
+        %45:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %46:f32 = load_vector_element %45, 1u
+        %47:bool = gt %44, %46
+        if %47 [t: $B15] {  # if_4
+          $B15: {  # true
             exit_loop  # loop_3
           }
         }
-        %46:i32 = load %i_1
-        %47:ptr<function, i32, read_write> = access %arr, %46, 0u
-        %48:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %48:i32 = load %i_1
+        %49:ptr<function, i32, read_write> = access %arr, %48, 0u
         %50:i32 = load %49
-        %51:bool = eq %48, %50
-        if %51 [t: %b17, f: %b18] {  # if_5
-          %b17 = block {  # true
-            %x_88:i32 = load %i_1
-            %53:i32 = clamp %x_88, 0i, 3i
-            %54:ptr<function, i32, read_write> = access %arr, %53, 0u
-            %55:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-            %56:i32 = load %55
-            store %54, %56
-            %57:ptr<function, S, read_write> = access %arr, 2i
-            %58:S = load %57
-            store %param, %58
-            %59:void = call %func_struct_S_i11_, %param
-            %60:ptr<function, S, read_write> = access %arr, 2i
-            %61:S = load %param
-            store %60, %61
+        %51:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %52:i32 = load %51
+        %53:bool = eq %50, %52
+        if %53 [t: $B16, f: $B17] {  # if_5
+          $B16: {  # true
+            %54:i32 = load %i_1
+            %x_88:i32 = let %54
+            %56:i32 = max %x_88, 0i
+            %57:i32 = min %56, 3i
+            %58:ptr<function, i32, read_write> = access %arr, %57, 0u
+            %59:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+            %60:i32 = load %59
+            store %58, %60
+            %61:ptr<function, S, read_write> = access %arr, 2i
+            %62:S = load %61
+            store %param, %62
+            %63:void = call %func_struct_S_i11_, %param
+            %64:ptr<function, S, read_write> = access %arr, 2i
+            %65:S = load %param
+            store %64, %65
             exit_if  # if_5
           }
-          %b18 = block {  # false
-            %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-            %63:i32 = load %62
-            store %j, %63
-            loop [b: %b19, c: %b20] {  # loop_4
-              %b19 = block {  # body
-                %64:i32 = load %j
-                %65:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                %66:i32 = load %65
-                %67:bool = lt %64, %66
-                if %67 [t: %b21, f: %b22] {  # if_6
-                  %b21 = block {  # true
+          $B17: {  # false
+            %66:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+            %67:i32 = load %66
+            store %j, %67
+            loop [b: $B18, c: $B19] {  # loop_4
+              $B18: {  # body
+                %68:i32 = load %j
+                %69:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                %70:i32 = load %69
+                %71:bool = lt %68, %70
+                if %71 [t: $B20, f: $B21] {  # if_6
+                  $B20: {  # true
                     exit_if  # if_6
                   }
-                  %b22 = block {  # false
+                  $B21: {  # false
                     exit_loop  # loop_4
                   }
                 }
-                %68:i32 = load %j
-                %69:ptr<function, i32, read_write> = access %arr, %68, 0u
-                %70:i32 = load %69
-                %71:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
-                %72:i32 = load %71
-                %73:bool = gt %70, %72
-                if %73 [t: %b23] {  # if_7
-                  %b23 = block {  # true
-                    discard
+                %72:i32 = load %j
+                %73:ptr<function, i32, read_write> = access %arr, %72, 0u
+                %74:i32 = load %73
+                %75:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
+                %76:i32 = load %75
+                %77:bool = gt %74, %76
+                if %77 [t: $B22] {  # if_7
+                  $B22: {  # true
+                    store %continue_execution, false
                     exit_if  # if_7
                   }
                 }
-                continue %b20
+                continue  # -> $B19
               }
-              %b20 = block {  # continuing
-                %74:i32 = load %j
-                %75:i32 = add %74, 1i
-                store %j, %75
-                next_iteration %b19
+              $B19: {  # continuing
+                %78:i32 = load %j
+                %79:i32 = add %78, 1i
+                store %j, %79
+                next_iteration  # -> $B18
               }
             }
             exit_if  # if_5
           }
         }
-        continue %b13
+        continue  # -> $B12
       }
-      %b13 = block {  # continuing
-        %76:i32 = load %i_1
-        %77:i32 = add %76, 1i
-        store %i_1, %77
-        next_iteration %b12
+      $B12: {  # continuing
+        %80:i32 = load %i_1
+        %81:i32 = add %80, 1i
+        store %i_1, %81
+        next_iteration  # -> $B11
       }
     }
-    %78:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %79:i32 = load %78
-    %80:ptr<function, i32, read_write> = access %arr, %79, 0u
-    %81:i32 = load %80
     %82:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
     %83:i32 = load %82
-    %x_127:bool = eq %81, %83
+    %84:ptr<function, i32, read_write> = access %arr, %83, 0u
+    %85:i32 = load %84
+    %86:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %87:i32 = load %86
+    %88:bool = eq %85, %87
+    %x_127:bool = let %88
     store %x_137, %x_127
-    if %x_127 [t: %b24] {  # if_8
-      %b24 = block {  # true
-        %85:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %86:i32 = load %85
-        %87:ptr<function, i32, read_write> = access %arr, %86, 0u
-        %88:i32 = load %87
-        %89:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %90:i32 = load %89
-        %91:bool = eq %88, %90
-        store %x_136, %91
-        %92:bool = load %x_136
-        store %x_137, %92
+    if %x_127 [t: $B23] {  # if_8
+      $B23: {  # true
+        %90:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %91:i32 = load %90
+        %92:ptr<function, i32, read_write> = access %arr, %91, 0u
+        %93:i32 = load %92
+        %94:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %95:i32 = load %94
+        %96:bool = eq %93, %95
+        store %x_136, %96
+        %97:bool = load %x_136
+        store %x_137, %97
         exit_if  # if_8
       }
     }
-    %93:bool = load %x_137
-    store %x_147, %93
-    %94:bool = load %x_137
-    if %94 [t: %b25] {  # if_9
-      %b25 = block {  # true
-        %95:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %96:i32 = load %95
-        %97:ptr<function, i32, read_write> = access %arr, %96, 0u
-        %98:i32 = load %97
-        %99:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %100:i32 = load %99
-        %101:bool = eq %98, %100
-        store %x_146, %101
-        %102:bool = load %x_146
-        store %x_147, %102
+    %98:bool = load %x_137
+    store %x_147, %98
+    %99:bool = load %x_137
+    if %99 [t: $B24] {  # if_9
+      $B24: {  # true
+        %100:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %101:i32 = load %100
+        %102:ptr<function, i32, read_write> = access %arr, %101, 0u
+        %103:i32 = load %102
+        %104:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %105:i32 = load %104
+        %106:bool = eq %103, %105
+        store %x_146, %106
+        %107:bool = load %x_146
+        store %x_147, %107
         exit_if  # if_9
       }
     }
-    %103:bool = load %x_147
-    if %103 [t: %b26, f: %b27] {  # if_10
-      %b26 = block {  # true
-        %104:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %105:i32 = load %104
-        %106:f32 = convert %105
-        %107:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %108:i32 = load %107
-        %109:f32 = convert %108
-        %110:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %111:i32 = load %110
-        %112:f32 = convert %111
-        %113:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %108:bool = load %x_147
+    if %108 [t: $B25, f: $B26] {  # if_10
+      $B25: {  # true
+        %109:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %110:i32 = load %109
+        %111:f32 = convert %110
+        %112:f32 = let %111
+        %113:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
         %114:i32 = load %113
         %115:f32 = convert %114
-        %116:vec4<f32> = construct %106, %109, %112, %115
-        store %x_GLF_color, %116
-        exit_if  # if_10
-      }
-      %b27 = block {  # false
+        %116:f32 = let %115
         %117:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
         %118:i32 = load %117
         %119:f32 = convert %118
-        %120:vec4<f32> = construct %119
-        store %x_GLF_color, %120
+        %120:f32 = let %119
+        %121:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %122:i32 = load %121
+        %123:f32 = convert %122
+        %124:vec4<f32> = construct %112, %116, %120, %123
+        store %x_GLF_color, %124
+        exit_if  # if_10
+      }
+      $B26: {  # false
+        %125:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %126:i32 = load %125
+        %127:f32 = convert %126
+        %128:vec4<f32> = construct %127
+        store %x_GLF_color, %128
         exit_if  # if_10
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b28 {
-  %b28 = block {
-    %122:void = call %main_1
-    %123:vec4<f32> = load %x_GLF_color
-    %124:main_out = construct %123
-    ret %124
+%tint_symbol = @fragment func():main_out {
+  $B27: {
+    %130:void = call %main_1
+    %131:vec4<f32> = load %x_GLF_color
+    %132:main_out = construct %131
+    %133:bool = load %continue_execution
+    %134:bool = eq %133, false
+    if %134 [t: $B28] {  # if_11
+      $B28: {  # true
+        terminate_invocation
+      }
+    }
+    ret %132
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.msl
index dfd4ec1..3d18c29 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   v1:vec2<f32> @offset(0)
 }
 
@@ -20,44 +20,45 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %6:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_174:f32 = load_vector_element %6, 0u
-        %8:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_176:f32 = load_vector_element %8, 1u
-        %10:bool = gt %x_174, %x_176
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+%func_struct_S_i11_ = func(%s:ptr<function, S, read_write>):void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %7:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %8:f32 = load_vector_element %7, 0u
+        %x_174:f32 = let %8
+        %10:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %11:f32 = load_vector_element %10, 1u
+        %x_176:f32 = let %11
+        %13:bool = gt %x_174, %x_176
+        if %13 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
         ret
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %11:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-    %x_180:i32 = load %11
-    %13:ptr<function, i32, read_write> = access %s, 0u
-    store %13, %x_180
+    %14:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+    %15:i32 = load %14
+    %x_180:i32 = let %15
+    %17:ptr<function, i32, read_write> = access %s, 0u
+    store %17, %x_180
     ret
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B6: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 3>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -67,214 +68,269 @@
     %x_146:ptr<function, bool, read_write> = var
     %x_137_phi:ptr<function, bool, read_write> = var
     %x_147_phi:ptr<function, bool, read_write> = var
-    %24:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_46:i32 = load %24
+    %28:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %29:i32 = load %28
+    %x_46:i32 = let %29
     store %i, %x_46
-    loop [b: %b8, c: %b9] {  # loop_2
-      %b8 = block {  # body
-        %x_51:i32 = load %i
-        %27:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_53:i32 = load %27
-        %29:bool = lt %x_51, %x_53
-        if %29 [t: %b10, f: %b11] {  # if_2
-          %b10 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %31:i32 = load %i
+        %x_51:i32 = let %31
+        %33:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %34:i32 = load %33
+        %x_53:i32 = let %34
+        %36:bool = lt %x_51, %x_53
+        if %36 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b11 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_56:i32 = load %i
-        %x_57:i32 = load %i
-        %32:ptr<function, i32, read_write> = access %arr, %x_56, 0u
-        store %32, %x_57
-        continue %b9
+        %37:i32 = load %i
+        %x_56:i32 = let %37
+        %39:i32 = load %i
+        %x_57:i32 = let %39
+        %41:ptr<function, i32, read_write> = access %arr, %x_56, 0u
+        store %41, %x_57
+        continue  # -> $B8
       }
-      %b9 = block {  # continuing
-        %x_59:i32 = load %i
-        %34:i32 = add %x_59, 1i
-        store %i, %34
-        next_iteration %b8
+      $B8: {  # continuing
+        %42:i32 = load %i
+        %x_59:i32 = let %42
+        %44:i32 = add %x_59, 1i
+        store %i, %44
+        next_iteration  # -> $B7
       }
     }
-    %35:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_62:i32 = load %35
+    %45:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %46:i32 = load %45
+    %x_62:i32 = let %46
     store %i_1, %x_62
-    loop [b: %b12, c: %b13] {  # loop_3
-      %b12 = block {  # body
-        %x_67:i32 = load %i_1
-        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_69:i32 = load %38
-        %40:bool = lt %x_67, %x_69
-        if %40 [t: %b14, f: %b15] {  # if_3
-          %b14 = block {  # true
+    loop [b: $B11, c: $B12] {  # loop_3
+      $B11: {  # body
+        %48:i32 = load %i_1
+        %x_67:i32 = let %48
+        %50:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %51:i32 = load %50
+        %x_69:i32 = let %51
+        %53:bool = lt %x_67, %x_69
+        if %53 [t: $B13, f: $B14] {  # if_3
+          $B13: {  # true
             exit_if  # if_3
           }
-          %b15 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_3
           }
         }
-        %41:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_73:f32 = load_vector_element %41, 0u
-        %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_75:f32 = load_vector_element %43, 1u
-        %45:bool = gt %x_73, %x_75
-        if %45 [t: %b16] {  # if_4
-          %b16 = block {  # true
+        %54:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %55:f32 = load_vector_element %54, 0u
+        %x_73:f32 = let %55
+        %57:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %58:f32 = load_vector_element %57, 1u
+        %x_75:f32 = let %58
+        %60:bool = gt %x_73, %x_75
+        if %60 [t: $B15] {  # if_4
+          $B15: {  # true
             exit_loop  # loop_3
           }
         }
-        %x_79:i32 = load %i_1
-        %47:ptr<function, i32, read_write> = access %arr, %x_79, 0u
-        %x_81:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_83:i32 = load %49
-        %51:bool = eq %x_81, %x_83
-        if %51 [t: %b17, f: %b18] {  # if_5
-          %b17 = block {  # true
-            %x_88:i32 = load %i_1
-            %53:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-            %x_91:i32 = load %53
-            %55:i32 = clamp %x_88, 0i, 3i
-            %56:ptr<function, i32, read_write> = access %arr, %55, 0u
-            store %56, %x_91
-            %57:ptr<function, S, read_write> = access %arr, 2i
-            %x_94:S = load %57
+        %61:i32 = load %i_1
+        %x_79:i32 = let %61
+        %63:ptr<function, i32, read_write> = access %arr, %x_79, 0u
+        %64:i32 = load %63
+        %x_81:i32 = let %64
+        %66:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %67:i32 = load %66
+        %x_83:i32 = let %67
+        %69:bool = eq %x_81, %x_83
+        if %69 [t: $B16, f: $B17] {  # if_5
+          $B16: {  # true
+            %70:i32 = load %i_1
+            %x_88:i32 = let %70
+            %72:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+            %73:i32 = load %72
+            %x_91:i32 = let %73
+            %75:i32 = max %x_88, 0i
+            %76:i32 = min %75, 3i
+            %77:ptr<function, i32, read_write> = access %arr, %76, 0u
+            store %77, %x_91
+            %78:ptr<function, S, read_write> = access %arr, 2i
+            %79:S = load %78
+            %x_94:S = let %79
             store %param, %x_94
-            %59:void = call %func_struct_S_i11_, %param
-            %x_96:S = load %param
-            %61:ptr<function, S, read_write> = access %arr, 2i
-            store %61, %x_96
+            %81:void = call %func_struct_S_i11_, %param
+            %82:S = load %param
+            %x_96:S = let %82
+            %84:ptr<function, S, read_write> = access %arr, 2i
+            store %84, %x_96
             exit_if  # if_5
           }
-          %b18 = block {  # false
-            %62:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-            %x_99:i32 = load %62
+          $B17: {  # false
+            %85:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+            %86:i32 = load %85
+            %x_99:i32 = let %86
             store %j, %x_99
-            loop [b: %b19, c: %b20] {  # loop_4
-              %b19 = block {  # body
-                %x_104:i32 = load %j
-                %65:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-                %x_106:i32 = load %65
-                %67:bool = lt %x_104, %x_106
-                if %67 [t: %b21, f: %b22] {  # if_6
-                  %b21 = block {  # true
+            loop [b: $B18, c: $B19] {  # loop_4
+              $B18: {  # body
+                %88:i32 = load %j
+                %x_104:i32 = let %88
+                %90:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+                %91:i32 = load %90
+                %x_106:i32 = let %91
+                %93:bool = lt %x_104, %x_106
+                if %93 [t: $B20, f: $B21] {  # if_6
+                  $B20: {  # true
                     exit_if  # if_6
                   }
-                  %b22 = block {  # false
+                  $B21: {  # false
                     exit_loop  # loop_4
                   }
                 }
-                %x_109:i32 = load %j
-                %69:ptr<function, i32, read_write> = access %arr, %x_109, 0u
-                %x_111:i32 = load %69
-                %71:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
-                %x_113:i32 = load %71
-                %73:bool = gt %x_111, %x_113
-                if %73 [t: %b23] {  # if_7
-                  %b23 = block {  # true
-                    discard
+                %94:i32 = load %j
+                %x_109:i32 = let %94
+                %96:ptr<function, i32, read_write> = access %arr, %x_109, 0u
+                %97:i32 = load %96
+                %x_111:i32 = let %97
+                %99:ptr<uniform, i32, read> = access %x_10, 0u, 4i, 0u
+                %100:i32 = load %99
+                %x_113:i32 = let %100
+                %102:bool = gt %x_111, %x_113
+                if %102 [t: $B22] {  # if_7
+                  $B22: {  # true
+                    store %continue_execution, false
                     exit_if  # if_7
                   }
                 }
-                continue %b20
+                continue  # -> $B19
               }
-              %b20 = block {  # continuing
-                %x_117:i32 = load %j
-                %75:i32 = add %x_117, 1i
-                store %j, %75
-                next_iteration %b19
+              $B19: {  # continuing
+                %103:i32 = load %j
+                %x_117:i32 = let %103
+                %105:i32 = add %x_117, 1i
+                store %j, %105
+                next_iteration  # -> $B18
               }
             }
             exit_if  # if_5
           }
         }
-        continue %b13
+        continue  # -> $B12
       }
-      %b13 = block {  # continuing
-        %x_119:i32 = load %i_1
-        %77:i32 = add %x_119, 1i
-        store %i_1, %77
-        next_iteration %b12
+      $B12: {  # continuing
+        %106:i32 = load %i_1
+        %x_119:i32 = let %106
+        %108:i32 = add %x_119, 1i
+        store %i_1, %108
+        next_iteration  # -> $B11
       }
     }
-    %78:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_122:i32 = load %78
-    %80:ptr<function, i32, read_write> = access %arr, %x_122, 0u
-    %x_124:i32 = load %80
-    %82:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-    %x_126:i32 = load %82
-    %x_127:bool = eq %x_124, %x_126
+    %109:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %110:i32 = load %109
+    %x_122:i32 = let %110
+    %112:ptr<function, i32, read_write> = access %arr, %x_122, 0u
+    %113:i32 = load %112
+    %x_124:i32 = let %113
+    %115:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+    %116:i32 = load %115
+    %x_126:i32 = let %116
+    %118:bool = eq %x_124, %x_126
+    %x_127:bool = let %118
     store %x_137_phi, %x_127
-    if %x_127 [t: %b24] {  # if_8
-      %b24 = block {  # true
-        %85:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_131:i32 = load %85
-        %87:ptr<function, i32, read_write> = access %arr, %x_131, 0u
-        %x_133:i32 = load %87
-        %89:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_135:i32 = load %89
-        %91:bool = eq %x_133, %x_135
-        store %x_136, %91
-        %92:bool = load %x_136
-        store %x_137_phi, %92
+    if %x_127 [t: $B23] {  # if_8
+      $B23: {  # true
+        %120:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %121:i32 = load %120
+        %x_131:i32 = let %121
+        %123:ptr<function, i32, read_write> = access %arr, %x_131, 0u
+        %124:i32 = load %123
+        %x_133:i32 = let %124
+        %126:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %127:i32 = load %126
+        %x_135:i32 = let %127
+        %129:bool = eq %x_133, %x_135
+        store %x_136, %129
+        %130:bool = load %x_136
+        store %x_137_phi, %130
         exit_if  # if_8
       }
     }
-    %x_137:bool = load %x_137_phi
+    %131:bool = load %x_137_phi
+    %x_137:bool = let %131
     store %x_147_phi, %x_137
-    if %x_137 [t: %b25] {  # if_9
-      %b25 = block {  # true
-        %94:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
-        %x_141:i32 = load %94
-        %96:ptr<function, i32, read_write> = access %arr, %x_141, 0u
-        %x_143:i32 = load %96
-        %98:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_145:i32 = load %98
-        %100:bool = eq %x_143, %x_145
-        store %x_146, %100
-        %101:bool = load %x_146
-        store %x_147_phi, %101
+    if %x_137 [t: $B24] {  # if_9
+      $B24: {  # true
+        %133:ptr<uniform, i32, read> = access %x_10, 0u, 3i, 0u
+        %134:i32 = load %133
+        %x_141:i32 = let %134
+        %136:ptr<function, i32, read_write> = access %arr, %x_141, 0u
+        %137:i32 = load %136
+        %x_143:i32 = let %137
+        %139:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %140:i32 = load %139
+        %x_145:i32 = let %140
+        %142:bool = eq %x_143, %x_145
+        store %x_146, %142
+        %143:bool = load %x_146
+        store %x_147_phi, %143
         exit_if  # if_9
       }
     }
-    %x_147:bool = load %x_147_phi
-    if %x_147 [t: %b26, f: %b27] {  # if_10
-      %b26 = block {  # true
-        %103:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_152:i32 = load %103
-        %105:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_155:i32 = load %105
-        %107:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_158:i32 = load %107
-        %109:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_161:i32 = load %109
-        %111:f32 = convert %x_152
-        %112:f32 = convert %x_155
-        %113:f32 = convert %x_158
-        %114:f32 = convert %x_161
-        %115:vec4<f32> = construct %111, %112, %113, %114
-        store %x_GLF_color, %115
+    %144:bool = load %x_147_phi
+    %x_147:bool = let %144
+    if %x_147 [t: $B25, f: $B26] {  # if_10
+      $B25: {  # true
+        %146:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %147:i32 = load %146
+        %x_152:i32 = let %147
+        %149:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %150:i32 = load %149
+        %x_155:i32 = let %150
+        %152:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %153:i32 = load %152
+        %x_158:i32 = let %153
+        %155:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %156:i32 = load %155
+        %x_161:i32 = let %156
+        %158:f32 = convert %x_152
+        %159:f32 = let %158
+        %160:f32 = convert %x_155
+        %161:f32 = let %160
+        %162:f32 = convert %x_158
+        %163:f32 = let %162
+        %164:f32 = convert %x_161
+        %165:vec4<f32> = construct %159, %161, %163, %164
+        store %x_GLF_color, %165
         exit_if  # if_10
       }
-      %b27 = block {  # false
-        %116:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
-        %x_165:i32 = load %116
-        %x_166:f32 = convert %x_165
-        %119:vec4<f32> = construct %x_166, %x_166, %x_166, %x_166
-        store %x_GLF_color, %119
+      $B26: {  # false
+        %166:ptr<uniform, i32, read> = access %x_10, 0u, 2i, 0u
+        %167:i32 = load %166
+        %x_165:i32 = let %167
+        %169:f32 = convert %x_165
+        %x_166:f32 = let %169
+        %171:vec4<f32> = construct %x_166, %x_166, %x_166, %x_166
+        store %x_GLF_color, %171
         exit_if  # if_10
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b28 {
-  %b28 = block {
-    %121:void = call %main_1
-    %122:vec4<f32> = load %x_GLF_color
-    %123:main_out = construct %122
-    ret %123
+%tint_symbol = @fragment func():main_out {
+  $B27: {
+    %173:void = call %main_1
+    %174:vec4<f32> = load %x_GLF_color
+    %175:main_out = construct %174
+    %176:bool = load %continue_execution
+    %177:bool = eq %176, false
+    if %177 [t: $B28] {  # if_11
+      $B28: {  # true
+        terminate_invocation
+      }
+    }
+    ret %175
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.msl
index efdd3b1..6d2fb97 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m:ptr<function, mat2x2<f32>, read_write> = var
+    store %m, mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f))
+    %4:mat2x2<f32> = load %m
+    %5:mat2x2<f32> = transpose %4
+    %6:mat2x2<f32> = let %5
+    %7:mat2x2<f32> = load %m
+    %8:mat2x2<f32> = transpose %7
+    %9:mat2x2<f32> = mul %6, %8
+    %x_30:mat2x2<f32> = let %9
+    %11:mat2x2<f32> = load %m
+    %12:mat2x2<f32> = load %m
+    %13:mat2x2<f32> = mul %11, %12
+    %14:mat2x2<f32> = transpose %13
+    %x_34:mat2x2<f32> = let %14
+    %16:vec2<f32> = access %x_30, 0u
+    %17:vec2<f32> = access %x_34, 0u
+    %18:vec2<bool> = eq %16, %17
+    %19:bool = all %18
+    %20:bool = let %19
+    %21:vec2<f32> = access %x_30, 1u
+    %22:vec2<f32> = access %x_34, 1u
+    %23:vec2<bool> = eq %21, %22
+    %24:bool = all %23
+    %25:bool = and %20, %24
+    if %25 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.msl
index efdd3b1..206d81f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-transpose-multiply/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,66 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m:ptr<function, mat2x2<f32>, read_write> = var
+    store %m, mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f))
+    %4:mat2x2<f32> = load %m
+    %x_26:mat2x2<f32> = let %4
+    %6:mat2x2<f32> = load %m
+    %x_28:mat2x2<f32> = let %6
+    %8:mat2x2<f32> = transpose %x_26
+    %9:mat2x2<f32> = let %8
+    %10:mat2x2<f32> = transpose %x_28
+    %11:mat2x2<f32> = mul %9, %10
+    %x_30:mat2x2<f32> = let %11
+    %13:mat2x2<f32> = load %m
+    %x_31:mat2x2<f32> = let %13
+    %15:mat2x2<f32> = load %m
+    %x_32:mat2x2<f32> = let %15
+    %17:mat2x2<f32> = mul %x_31, %x_32
+    %18:mat2x2<f32> = transpose %17
+    %x_34:mat2x2<f32> = let %18
+    %20:vec2<f32> = access %x_30, 0u
+    %21:vec2<f32> = access %x_34, 0u
+    %22:vec2<bool> = eq %20, %21
+    %23:bool = all %22
+    %24:bool = let %23
+    %25:vec2<f32> = access %x_30, 1u
+    %26:vec2<f32> = access %x_34, 1u
+    %27:vec2<bool> = eq %25, %26
+    %28:bool = all %27
+    %29:bool = and %24, %28
+    if %29 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.msl
index 1e85d65..59d4cdd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,15 +20,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %7:f32 = load_vector_element %gl_FragCoord, 1u
     %8:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
@@ -42,43 +42,46 @@
     %15:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
     %16:f32 = load %15
     %17:bool = eq %14, %16
-    if %17 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %18:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %19:i32 = load %18
         %20:f32 = convert %19
-        %21:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %28:i32 = load %27
-        %29:f32 = convert %28
-        %30:vec4<f32> = construct %20, %23, %26, %29
-        store %x_GLF_color, %30
+        %21:f32 = let %20
+        %22:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %23:i32 = load %22
+        %24:f32 = convert %23
+        %25:f32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %27:i32 = load %26
+        %28:f32 = convert %27
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:vec4<f32> = construct %21, %25, %29, %32
+        store %x_GLF_color, %33
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %31:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:vec4<f32> = construct %33
-        store %x_GLF_color, %34
+      $B4: {  # false
+        %34:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:vec4<f32> = construct %36
+        store %x_GLF_color, %37
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %37:void = call %main_1
-    %38:vec4<f32> = load %x_GLF_color
-    %39:main_out = construct %38
-    ret %39
+    %40:void = call %main_1
+    %41:vec4<f32> = load %x_GLF_color
+    %42:main_out = construct %41
+    ret %42
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.msl
index 8b491a0..8ca8d47 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-trunc-fract-always-zero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,65 +20,78 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
-    %x_35:f32 = load_vector_element %gl_FragCoord, 1u
-    %8:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
-    %x_37:f32 = load %8
-    %10:bool = lt %x_35, %x_37
-    %11:f32 = select 1.0f, 0.10000000149011611938f, %10
-    %12:f32 = trunc %11
-    %13:f32 = fract %12
-    store %f, %13
-    %x_42:f32 = load %f
-    %15:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
-    %x_44:f32 = load %15
-    %17:bool = eq %x_42, %x_44
-    if %17 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %18:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_50:i32 = load %18
-        %20:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_53:i32 = load %20
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_56:i32 = load %22
-        %24:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_59:i32 = load %24
-        %26:f32 = convert %x_50
-        %27:f32 = convert %x_53
-        %28:f32 = convert %x_56
-        %29:f32 = convert %x_59
-        %30:vec4<f32> = construct %26, %27, %28, %29
-        store %x_GLF_color, %30
+    %7:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_35:f32 = let %7
+    %9:ptr<uniform, f32, read> = access %x_7, 0u, 1i, 0u
+    %10:f32 = load %9
+    %x_37:f32 = let %10
+    %12:bool = lt %x_35, %x_37
+    %13:f32 = select 1.0f, 0.10000000149011611938f, %12
+    %14:f32 = trunc %13
+    %15:f32 = fract %14
+    store %f, %15
+    %16:f32 = load %f
+    %x_42:f32 = let %16
+    %18:ptr<uniform, f32, read> = access %x_7, 0u, 0i, 0u
+    %19:f32 = load %18
+    %x_44:f32 = let %19
+    %21:bool = eq %x_42, %x_44
+    if %21 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %23:i32 = load %22
+        %x_50:i32 = let %23
+        %25:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %26:i32 = load %25
+        %x_53:i32 = let %26
+        %28:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %29:i32 = load %28
+        %x_56:i32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %32:i32 = load %31
+        %x_59:i32 = let %32
+        %34:f32 = convert %x_50
+        %35:f32 = let %34
+        %36:f32 = convert %x_53
+        %37:f32 = let %36
+        %38:f32 = convert %x_56
+        %39:f32 = let %38
+        %40:f32 = convert %x_59
+        %41:vec4<f32> = construct %35, %37, %39, %40
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %31:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_63:i32 = load %31
-        %x_64:f32 = convert %x_63
-        %34:vec4<f32> = construct %x_64, %x_64, %x_64, %x_64
-        store %x_GLF_color, %34
+      $B4: {  # false
+        %42:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %43:i32 = load %42
+        %x_63:i32 = let %43
+        %45:f32 = convert %x_63
+        %x_64:f32 = let %45
+        %47:vec4<f32> = construct %x_64, %x_64, %x_64, %x_64
+        store %x_GLF_color, %47
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %37:void = call %main_1
-    %38:vec4<f32> = load %x_GLF_color
-    %39:main_out = construct %38
-    ret %39
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.msl
index c8be0bb..10964de 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,20 +8,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_24:ptr<function, vec4<f32>, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %5:ptr<uniform, i32, read> = access %x_6, 0u
     %6:i32 = load %5
     %7:bool = eq %6, 0i
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
@@ -30,16 +30,16 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func():main_out {
+  $B4: {
     %9:void = call %main_1
     %10:vec4<f32> = load %x_GLF_color
     %11:main_out = construct %10
     ret %11
   }
 }
-%func_ = func():vec4<f32> -> %b5 {
-  %b5 = block {
+%func_ = func():vec4<f32> {
+  $B5: {
     ret vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.msl
index b3d0a39..aa47549 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-types-return-in-main-never-hit/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:i32 @offset(0)
 }
 
@@ -8,20 +8,21 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_24:ptr<function, vec4<f32>, read_write> = var
     store %x_GLF_color, vec4<f32>(0.0f)
     %5:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_26:i32 = load %5
-    %7:bool = eq %x_26, 0i
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %6:i32 = load %5
+    %x_26:i32 = let %6
+    %8:bool = eq %x_26, 0i
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
@@ -30,16 +31,16 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %9:void = call %main_1
-    %10:vec4<f32> = load %x_GLF_color
-    %11:main_out = construct %10
-    ret %11
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
   }
 }
-%func_ = func():vec4<f32> -> %b5 {
-  %b5 = block {
+%func_ = func():vec4<f32> {
+  $B5: {
     ret vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.msl
index cc6ba45..0ee5c64 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -16,14 +16,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m24:ptr<function, mat2x2<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %v2:ptr<function, vec2<f32>, read_write> = var
@@ -33,45 +33,47 @@
     %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
     %12:f32 = load %11
     %13:vec2<f32> = construct %10, %12
-    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %15:f32 = load_vector_element %14, 0u
-    %16:f32 = mul %15, 1.0f
-    %17:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %18:f32 = load %17
-    %19:vec2<f32> = construct %16, %18
-    %20:mat2x2<f32> = construct %13, %19
-    store %m24, %20
-    %21:ptr<function, vec2<f32>, read_write> = access %m24, 0u
-    %22:f32 = load_vector_element %21, 0u
-    store %a, %22
+    %14:vec2<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %16:f32 = load_vector_element %15, 0u
+    %17:f32 = mul %16, 1.0f
+    %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %19:f32 = load %18
+    %20:vec2<f32> = construct %17, %19
+    %21:mat2x2<f32> = construct %14, %20
+    store %m24, %21
+    %22:ptr<function, vec2<f32>, read_write> = access %m24, 0u
+    %23:f32 = load_vector_element %22, 0u
+    store %a, %23
     store %v2, vec2<f32>(1.0f)
-    %23:vec2<f32> = load %v2
-    %24:f32 = load %a
-    %25:vec2<f32> = construct %24, 1.0f
-    %26:vec2<f32> = reflect %23, %25
-    store %v3, %26
-    %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %28:f32 = load %27
-    %29:f32 = load_vector_element %v3, 0u
-    %30:f32 = load_vector_element %v3, 1u
-    %31:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %32:f32 = load %31
-    %33:vec4<f32> = construct %28, %29, %30, %32
-    store %x_GLF_color, %33
-    %34:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %35:f32 = load_vector_element %34, 1u
-    %36:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %37:f32 = load %36
-    %38:bool = eq %35, %37
-    if %38 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %39:f32 = load_vector_element %x_GLF_color, 0u
-        %40:f32 = load_vector_element %x_GLF_color, 3u
-        %41:vec4<f32> = construct %39, vec2<f32>(0.0f), %40
-        store %x_GLF_color, %41
+    %24:vec2<f32> = load %v2
+    %25:vec2<f32> = let %24
+    %26:f32 = load %a
+    %27:vec2<f32> = construct %26, 1.0f
+    %28:vec2<f32> = reflect %25, %27
+    store %v3, %28
+    %29:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %30:f32 = load %29
+    %31:f32 = load_vector_element %v3, 0u
+    %32:f32 = load_vector_element %v3, 1u
+    %33:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %34:f32 = load %33
+    %35:vec4<f32> = construct %30, %31, %32, %34
+    store %x_GLF_color, %35
+    %36:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %37:f32 = load_vector_element %36, 1u
+    %38:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %39:f32 = load %38
+    %40:bool = eq %37, %39
+    if %40 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %41:f32 = load_vector_element %x_GLF_color, 0u
+        %42:f32 = load_vector_element %x_GLF_color, 3u
+        %43:vec4<f32> = construct %41, vec2<f32>(0.0f), %42
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -79,12 +81,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.msl
index 1947d59..27b39e66 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-undefined-inversesqrt-reflect/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -16,64 +16,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m24:ptr<function, mat2x2<f32>, read_write> = var
     %a:ptr<function, f32, read_write> = var
     %v2:ptr<function, vec2<f32>, read_write> = var
     %v3:ptr<function, vec2<f32>, read_write> = var
     %9:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_40:f32 = load %9
-    %11:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_42:f32 = load %11
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_44:f32 = load_vector_element %13, 0u
-    %15:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_47:f32 = load %15
-    %17:vec2<f32> = construct %x_40, %x_42
-    %18:f32 = mul %x_44, 1.0f
-    %19:vec2<f32> = construct %18, %x_47
-    %20:mat2x2<f32> = construct %17, %19
-    store %m24, %20
-    %x_51:mat2x2<f32> = load %m24
-    %22:f32 = access %x_51, 0u, 0u
-    store %a, %22
+    %10:f32 = load %9
+    %x_40:f32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %13:f32 = load %12
+    %x_42:f32 = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %16:f32 = load_vector_element %15, 0u
+    %x_44:f32 = let %16
+    %18:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %19:f32 = load %18
+    %x_47:f32 = let %19
+    %21:vec2<f32> = construct %x_40, %x_42
+    %22:vec2<f32> = let %21
+    %23:f32 = mul %x_44, 1.0f
+    %24:vec2<f32> = construct %23, %x_47
+    %25:mat2x2<f32> = construct %22, %24
+    store %m24, %25
+    %26:mat2x2<f32> = load %m24
+    %x_51:mat2x2<f32> = let %26
+    %28:f32 = access %x_51, 0u, 0u
+    store %a, %28
     store %v2, vec2<f32>(1.0f)
-    %x_53:vec2<f32> = load %v2
-    %x_54:f32 = load %a
-    %x_55:vec2<f32> = construct %x_54, 1.0f
-    %26:vec2<f32> = reflect %x_53, %x_55
-    store %v3, %26
-    %27:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_58:f32 = load %27
-    %x_59:vec2<f32> = load %v3
-    %30:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_61:f32 = load %30
-    %32:f32 = access %x_59, 0u
-    %33:f32 = access %x_59, 1u
-    %34:vec4<f32> = construct %x_58, %32, %33, %x_61
-    store %x_GLF_color, %34
-    %35:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_66:f32 = load_vector_element %35, 1u
-    %37:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_68:f32 = load %37
-    %39:bool = eq %x_66, %x_68
-    if %39 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_73:vec4<f32> = load %x_GLF_color
-        %41:f32 = access %x_73, 0u
-        %42:f32 = access %x_73, 3u
-        %43:vec4<f32> = construct %41, 0.0f, 0.0f, %42
-        store %x_GLF_color, %43
+    %29:vec2<f32> = load %v2
+    %x_53:vec2<f32> = let %29
+    %31:f32 = load %a
+    %x_54:f32 = let %31
+    %33:vec2<f32> = construct %x_54, 1.0f
+    %x_55:vec2<f32> = let %33
+    %35:vec2<f32> = reflect %x_53, %x_55
+    store %v3, %35
+    %36:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %37:f32 = load %36
+    %x_58:f32 = let %37
+    %39:vec2<f32> = load %v3
+    %x_59:vec2<f32> = let %39
+    %41:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %42:f32 = load %41
+    %x_61:f32 = let %42
+    %44:f32 = access %x_59, 0u
+    %45:f32 = access %x_59, 1u
+    %46:vec4<f32> = construct %x_58, %44, %45, %x_61
+    store %x_GLF_color, %46
+    %47:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %48:f32 = load_vector_element %47, 1u
+    %x_66:f32 = let %48
+    %50:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %51:f32 = load %50
+    %x_68:f32 = let %51
+    %53:bool = eq %x_66, %x_68
+    if %53 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %54:vec4<f32> = load %x_GLF_color
+        %x_73:vec4<f32> = let %54
+        %56:f32 = access %x_73, 0u
+        %57:f32 = access %x_73, 3u
+        %58:vec4<f32> = construct %56, 0.0f, 0.0f, %57
+        store %x_GLF_color, %58
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -81,12 +96,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.msl
index 05b5015..2493d56 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -16,20 +16,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):void {
+  $B2: {
     %6:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
     %7:i32 = load %6
     %8:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
     %9:i32 = load %8
     %10:bool = eq %7, %9
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
@@ -39,8 +39,8 @@
     ret
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 10>, read_write> = var
     %index:ptr<function, i32, read_write> = var
@@ -49,109 +49,115 @@
     %param_2:ptr<function, S, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %i, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
         %21:i32 = load %i
         %22:bool = lt %21, 10i
-        if %22 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        if %22 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_46:i32 = load %i
-        %24:ptr<function, i32, read_write> = access %arr, %x_46, 0u
-        store %24, 0i
-        continue %b6
+        %23:i32 = load %i
+        %x_46:i32 = let %23
+        %25:ptr<function, i32, read_write> = access %arr, %x_46, 0u
+        store %25, 0i
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %25:i32 = load %i
-        %26:i32 = add %25, 1i
-        store %i, %26
-        next_iteration %b5
+      $B6: {  # continuing
+        %26:i32 = load %i
+        %27:i32 = add %26, 1i
+        store %i, %27
+        next_iteration  # -> $B5
       }
     }
-    %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %28:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %30:i32 = load %29
-    %31:bool = eq %28, %30
-    if %31 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
-        %x_58:i32 = load %index
+    %28:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %29:i32 = load %28
+    %30:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %31:i32 = load %30
+    %32:bool = eq %29, %31
+    if %32 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
         %33:i32 = load %index
-        %34:ptr<function, S, read_write> = access %arr, %33
-        %35:S = load %34
-        store %param, %35
-        %36:i32 = load %index
-        store %param_1, %36
-        %37:void = call %func_struct_S_i11_i1_, %param, %param_1
-        %38:ptr<function, S, read_write> = access %arr, %x_58
-        %39:S = load %param
-        store %38, %39
+        %x_58:i32 = let %33
+        %35:i32 = load %index
+        %36:ptr<function, S, read_write> = access %arr, %35
+        %37:S = load %36
+        store %param, %37
+        %38:i32 = load %index
+        store %param_1, %38
+        %39:void = call %func_struct_S_i11_i1_, %param, %param_1
+        %40:ptr<function, S, read_write> = access %arr, %x_58
+        %41:S = load %param
+        store %40, %41
         exit_if  # if_3
       }
-      %b10 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_66:i32 = load %40
-        %42:ptr<function, S, read_write> = access %arr, %x_66
-        %43:S = load %42
-        store %param_2, %43
-        %44:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %45:i32 = load %44
-        store %param_3, %45
-        %46:void = call %func_struct_S_i11_i1_, %param_2, %param_3
-        %47:ptr<function, S, read_write> = access %arr, %x_66
-        %48:S = load %param_2
-        store %47, %48
+      $B10: {  # false
+        %42:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %43:i32 = load %42
+        %x_66:i32 = let %43
+        %45:ptr<function, S, read_write> = access %arr, %x_66
+        %46:S = load %45
+        store %param_2, %46
+        %47:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %48:i32 = load %47
+        store %param_3, %48
+        %49:void = call %func_struct_S_i11_i1_, %param_2, %param_3
+        %50:ptr<function, S, read_write> = access %arr, %x_66
+        %51:S = load %param_2
+        store %50, %51
         exit_if  # if_3
       }
     }
-    %49:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %50:i32 = load %49
-    %51:ptr<function, i32, read_write> = access %arr, %50, 0u
-    %52:i32 = load %51
-    %53:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %54:i32 = load %53
-    %55:bool = eq %52, %54
-    if %55 [t: %b11, f: %b12] {  # if_4
-      %b11 = block {  # true
-        %56:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %57:i32 = load %56
-        %58:f32 = convert %57
-        %59:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %52:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %53:i32 = load %52
+    %54:ptr<function, i32, read_write> = access %arr, %53, 0u
+    %55:i32 = load %54
+    %56:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %57:i32 = load %56
+    %58:bool = eq %55, %57
+    if %58 [t: $B11, f: $B12] {  # if_4
+      $B11: {  # true
+        %59:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
         %60:i32 = load %59
         %61:f32 = convert %60
-        %62:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %63:i32 = load %62
-        %64:f32 = convert %63
-        %65:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %66:i32 = load %65
-        %67:f32 = convert %66
-        %68:vec4<f32> = construct %58, %61, %64, %67
-        store %x_GLF_color, %68
+        %62:f32 = let %61
+        %63:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %64:i32 = load %63
+        %65:f32 = convert %64
+        %66:f32 = let %65
+        %67:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %68:i32 = load %67
+        %69:f32 = convert %68
+        %70:f32 = let %69
+        %71:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %72:i32 = load %71
+        %73:f32 = convert %72
+        %74:vec4<f32> = construct %62, %66, %70, %73
+        store %x_GLF_color, %74
         exit_if  # if_4
       }
-      %b12 = block {  # false
-        %69:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %70:i32 = load %69
-        %71:f32 = convert %70
-        %72:vec4<f32> = construct %71
-        store %x_GLF_color, %72
+      $B12: {  # false
+        %75:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %76:i32 = load %75
+        %77:f32 = convert %76
+        %78:vec4<f32> = construct %77
+        store %x_GLF_color, %78
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.msl
index e6217f7..f47614c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-uninitialized-values-passed-to-function-never-executed/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -16,31 +16,34 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%func_struct_S_i11_i1_ = func(%s:ptr<function, S, read_write>, %x:ptr<function, i32, read_write>):void {
+  $B2: {
     %6:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_103:i32 = load %6
-    %8:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_105:i32 = load %8
-    %10:bool = eq %x_103, %x_105
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %7:i32 = load %6
+    %x_103:i32 = let %7
+    %9:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %10:i32 = load %9
+    %x_105:i32 = let %10
+    %12:bool = eq %x_103, %x_105
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
-    %x_109:i32 = load %x
-    %12:ptr<function, i32, read_write> = access %s, 0u
-    store %12, %x_109
+    %13:i32 = load %x
+    %x_109:i32 = let %13
+    %15:ptr<function, i32, read_write> = access %s, 0u
+    store %15, %x_109
     ret
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %i:ptr<function, i32, read_write> = var
     %arr:ptr<function, array<S, 10>, read_write> = var
     %index:ptr<function, i32, read_write> = var
@@ -49,108 +52,133 @@
     %param_2:ptr<function, S, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %i, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_43:i32 = load %i
-        %22:bool = lt %x_43, 10i
-        if %22 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %24:i32 = load %i
+        %x_43:i32 = let %24
+        %26:bool = lt %x_43, 10i
+        if %26 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_46:i32 = load %i
-        %24:ptr<function, i32, read_write> = access %arr, %x_46, 0u
-        store %24, 0i
-        continue %b6
+        %27:i32 = load %i
+        %x_46:i32 = let %27
+        %29:ptr<function, i32, read_write> = access %arr, %x_46, 0u
+        store %29, 0i
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %x_48:i32 = load %i
-        %26:i32 = add %x_48, 1i
-        store %i, %26
-        next_iteration %b5
+      $B6: {  # continuing
+        %30:i32 = load %i
+        %x_48:i32 = let %30
+        %32:i32 = add %x_48, 1i
+        store %i, %32
+        next_iteration  # -> $B5
       }
     }
-    %27:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_51:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_53:i32 = load %29
-    %31:bool = eq %x_51, %x_53
-    if %31 [t: %b9, f: %b10] {  # if_3
-      %b9 = block {  # true
-        %x_58:i32 = load %index
-        %33:ptr<function, S, read_write> = access %arr, %x_58
-        %x_60:S = load %33
+    %33:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %34:i32 = load %33
+    %x_51:i32 = let %34
+    %36:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %37:i32 = load %36
+    %x_53:i32 = let %37
+    %39:bool = eq %x_51, %x_53
+    if %39 [t: $B9, f: $B10] {  # if_3
+      $B9: {  # true
+        %40:i32 = load %index
+        %x_58:i32 = let %40
+        %42:ptr<function, S, read_write> = access %arr, %x_58
+        %43:S = load %42
+        %x_60:S = let %43
         store %param, %x_60
-        %x_61:i32 = load %index
+        %45:i32 = load %index
+        %x_61:i32 = let %45
         store %param_1, %x_61
-        %36:void = call %func_struct_S_i11_i1_, %param, %param_1
-        %x_63:S = load %param
-        %38:ptr<function, S, read_write> = access %arr, %x_58
-        store %38, %x_63
+        %47:void = call %func_struct_S_i11_i1_, %param, %param_1
+        %48:S = load %param
+        %x_63:S = let %48
+        %50:ptr<function, S, read_write> = access %arr, %x_58
+        store %50, %x_63
         exit_if  # if_3
       }
-      %b10 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_66:i32 = load %39
-        %41:ptr<function, S, read_write> = access %arr, %x_66
-        %x_68:S = load %41
+      $B10: {  # false
+        %51:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %52:i32 = load %51
+        %x_66:i32 = let %52
+        %54:ptr<function, S, read_write> = access %arr, %x_66
+        %55:S = load %54
+        %x_68:S = let %55
         store %param_2, %x_68
-        %43:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_70:i32 = load %43
+        %57:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %58:i32 = load %57
+        %x_70:i32 = let %58
         store %param_3, %x_70
-        %45:void = call %func_struct_S_i11_i1_, %param_2, %param_3
-        %x_72:S = load %param_2
-        %47:ptr<function, S, read_write> = access %arr, %x_66
-        store %47, %x_72
+        %60:void = call %func_struct_S_i11_i1_, %param_2, %param_3
+        %61:S = load %param_2
+        %x_72:S = let %61
+        %63:ptr<function, S, read_write> = access %arr, %x_66
+        store %63, %x_72
         exit_if  # if_3
       }
     }
-    %48:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_75:i32 = load %48
-    %50:ptr<function, i32, read_write> = access %arr, %x_75, 0u
-    %x_77:i32 = load %50
-    %52:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-    %x_79:i32 = load %52
-    %54:bool = eq %x_77, %x_79
-    if %54 [t: %b11, f: %b12] {  # if_4
-      %b11 = block {  # true
-        %55:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_85:i32 = load %55
-        %57:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_88:i32 = load %57
-        %59:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_91:i32 = load %59
-        %61:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_94:i32 = load %61
-        %63:f32 = convert %x_85
-        %64:f32 = convert %x_88
-        %65:f32 = convert %x_91
-        %66:f32 = convert %x_94
-        %67:vec4<f32> = construct %63, %64, %65, %66
-        store %x_GLF_color, %67
+    %64:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %65:i32 = load %64
+    %x_75:i32 = let %65
+    %67:ptr<function, i32, read_write> = access %arr, %x_75, 0u
+    %68:i32 = load %67
+    %x_77:i32 = let %68
+    %70:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+    %71:i32 = load %70
+    %x_79:i32 = let %71
+    %73:bool = eq %x_77, %x_79
+    if %73 [t: $B11, f: $B12] {  # if_4
+      $B11: {  # true
+        %74:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %75:i32 = load %74
+        %x_85:i32 = let %75
+        %77:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %78:i32 = load %77
+        %x_88:i32 = let %78
+        %80:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %81:i32 = load %80
+        %x_91:i32 = let %81
+        %83:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %84:i32 = load %83
+        %x_94:i32 = let %84
+        %86:f32 = convert %x_85
+        %87:f32 = let %86
+        %88:f32 = convert %x_88
+        %89:f32 = let %88
+        %90:f32 = convert %x_91
+        %91:f32 = let %90
+        %92:f32 = convert %x_94
+        %93:vec4<f32> = construct %87, %89, %91, %92
+        store %x_GLF_color, %93
         exit_if  # if_4
       }
-      %b12 = block {  # false
-        %68:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_98:i32 = load %68
-        %x_99:f32 = convert %x_98
-        %71:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
-        store %x_GLF_color, %71
+      $B12: {  # false
+        %94:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %95:i32 = load %94
+        %x_98:i32 = let %95
+        %97:f32 = convert %x_98
+        %x_99:f32 = let %97
+        %99:vec4<f32> = construct %x_99, %x_99, %x_99, %x_99
+        store %x_GLF_color, %99
         exit_if  # if_4
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %73:void = call %main_1
-    %74:vec4<f32> = load %x_GLF_color
-    %75:main_out = construct %74
-    ret %75
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %101:void = call %main_1
+    %102:vec4<f32> = load %x_GLF_color
+    %103:main_out = construct %102
+    ret %103
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.msl
index cf36435..ae7455e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:u32 @offset(0)
 }
 
@@ -28,80 +28,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %7:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
     %8:u32 = load %7
-    %9:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %10:u32 = load %9
-    %11:u32 = select %10, 92382u, true
-    %12:u32 = div %8, %11
-    %13:vec4<f32> = unpack4x8unorm %12
-    store %v, %13
-    %14:vec4<f32> = load %v
-    %15:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %16:i32 = load %15
-    %17:f32 = convert %16
+    %9:u32 = let %8
+    %10:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
+    %11:u32 = load %10
+    %12:u32 = select %11, 92382u, true
+    %13:u32 = call %tint_div_u32, %9, %12
+    %15:vec4<f32> = unpack4x8unorm %13
+    store %v, %15
+    %16:vec4<f32> = load %v
+    %17:vec4<f32> = let %16
     %18:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
     %19:i32 = load %18
     %20:f32 = convert %19
-    %21:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %22:i32 = load %21
-    %23:f32 = convert %22
-    %24:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %25:f32 = load %24
-    %26:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
-    %27:f32 = load %26
-    %28:f32 = div %25, %27
-    %29:vec4<f32> = construct %17, %20, %23, %28
-    %30:f32 = distance %14, %29
-    %31:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %21:f32 = let %20
+    %22:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %23:i32 = load %22
+    %24:f32 = convert %23
+    %25:f32 = let %24
+    %26:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %27:i32 = load %26
+    %28:f32 = convert %27
+    %29:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %30:f32 = load %29
+    %31:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
     %32:f32 = load %31
-    %33:bool = lt %30, %32
-    if %33 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %41:i32 = load %40
-        %42:f32 = convert %41
-        %43:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+    %33:f32 = div %30, %32
+    %34:vec4<f32> = construct %21, %25, %28, %33
+    %35:f32 = distance %17, %34
+    %36:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %37:f32 = load %36
+    %38:bool = lt %35, %37
+    if %38 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %39:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
         %44:i32 = load %43
         %45:f32 = convert %44
-        %46:vec4<f32> = construct %36, %39, %42, %45
-        store %x_GLF_color, %46
-        exit_if  # if_1
-      }
-      %b4 = block {  # false
+        %46:f32 = let %45
         %47:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:vec4<f32> = construct %49
-        store %x_GLF_color, %50
+        %50:f32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:vec4<f32> = construct %42, %46, %50, %53
+        store %x_GLF_color, %54
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        %55:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %56:i32 = load %55
+        %57:f32 = convert %56
+        %58:vec4<f32> = construct %57
+        store %x_GLF_color, %58
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %60:void = call %main_1
+    %61:vec4<f32> = load %x_GLF_color
+    %62:main_out = construct %61
+    ret %62
+  }
+}
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B6: {
+    %65:bool = eq %rhs, 0u
+    %66:u32 = select %rhs, 1u, %65
+    %67:u32 = div %lhs, %66
+    ret %67
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.msl
index eb67880..5daef5c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unpack-unorm-mix-always-one/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:u32 @offset(0)
 }
 
@@ -28,80 +28,108 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec4<f32>, read_write> = var
     %7:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %x_39:u32 = load %7
-    %9:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %x_41:u32 = load %9
-    %11:u32 = select %x_41, 92382u, true
-    %12:u32 = div %x_39, %11
-    %13:vec4<f32> = unpack4x8unorm %12
-    store %v, %13
-    %x_45:vec4<f32> = load %v
-    %15:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_47:i32 = load %15
-    %17:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_50:i32 = load %17
+    %8:u32 = load %7
+    %x_39:u32 = let %8
+    %10:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
+    %11:u32 = load %10
+    %x_41:u32 = let %11
+    %13:u32 = select %x_41, 92382u, true
+    %14:u32 = call %tint_div_u32, %x_39, %13
+    %16:vec4<f32> = unpack4x8unorm %14
+    store %v, %16
+    %17:vec4<f32> = load %v
+    %x_45:vec4<f32> = let %17
     %19:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-    %x_53:i32 = load %19
-    %21:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
-    %x_56:f32 = load %21
-    %23:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
-    %x_58:f32 = load %23
-    %25:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-    %x_63:f32 = load %25
-    %27:f32 = convert %x_47
-    %28:f32 = convert %x_50
-    %29:f32 = convert %x_53
-    %30:f32 = div %x_56, %x_58
-    %31:vec4<f32> = construct %27, %28, %29, %30
-    %32:f32 = distance %x_45, %31
-    %33:bool = lt %32, %x_63
-    if %33 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %34:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_69:i32 = load %34
-        %36:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_72:i32 = load %36
-        %38:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_75:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
-        %x_78:i32 = load %40
-        %42:f32 = convert %x_69
-        %43:f32 = convert %x_72
-        %44:f32 = convert %x_75
-        %45:f32 = convert %x_78
-        %46:vec4<f32> = construct %42, %43, %44, %45
-        store %x_GLF_color, %46
+    %20:i32 = load %19
+    %x_47:i32 = let %20
+    %22:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %23:i32 = load %22
+    %x_50:i32 = let %23
+    %25:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+    %26:i32 = load %25
+    %x_53:i32 = let %26
+    %28:ptr<uniform, f32, read> = access %x_10, 0u, 1i, 0u
+    %29:f32 = load %28
+    %x_56:f32 = let %29
+    %31:ptr<uniform, f32, read> = access %x_10, 0u, 2i, 0u
+    %32:f32 = load %31
+    %x_58:f32 = let %32
+    %34:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+    %35:f32 = load %34
+    %x_63:f32 = let %35
+    %37:f32 = convert %x_47
+    %38:f32 = let %37
+    %39:f32 = convert %x_50
+    %40:f32 = let %39
+    %41:f32 = convert %x_53
+    %42:f32 = div %x_56, %x_58
+    %43:vec4<f32> = construct %38, %40, %41, %42
+    %44:f32 = distance %x_45, %43
+    %45:bool = lt %44, %x_63
+    if %45 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %46:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %47:i32 = load %46
+        %x_69:i32 = let %47
+        %49:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %50:i32 = load %49
+        %x_72:i32 = let %50
+        %52:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %53:i32 = load %52
+        %x_75:i32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_8, 0u, 1i, 0u
+        %56:i32 = load %55
+        %x_78:i32 = let %56
+        %58:f32 = convert %x_69
+        %59:f32 = let %58
+        %60:f32 = convert %x_72
+        %61:f32 = let %60
+        %62:f32 = convert %x_75
+        %63:f32 = let %62
+        %64:f32 = convert %x_78
+        %65:vec4<f32> = construct %59, %61, %63, %64
+        store %x_GLF_color, %65
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %47:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
-        %x_82:i32 = load %47
-        %x_83:f32 = convert %x_82
-        %50:vec4<f32> = construct %x_83, %x_83, %x_83, %x_83
-        store %x_GLF_color, %50
+      $B4: {  # false
+        %66:ptr<uniform, i32, read> = access %x_8, 0u, 0i, 0u
+        %67:i32 = load %66
+        %x_82:i32 = let %67
+        %69:f32 = convert %x_82
+        %x_83:f32 = let %69
+        %71:vec4<f32> = construct %x_83, %x_83, %x_83, %x_83
+        store %x_GLF_color, %71
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
+  }
+}
+%tint_div_u32 = func(%lhs:u32, %rhs:u32):u32 {
+  $B6: {
+    %78:bool = eq %rhs, 0u
+    %79:u32 = select %rhs, 1u, %78
+    %80:u32 = div %lhs, %79
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.msl
index c8660d5..0c8e028 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,186 +20,233 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m0:ptr<function, mat4x4<f32>, read_write> = var
     %c:ptr<function, i32, read_write> = var
     %m1:ptr<function, mat4x4<f32>, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %9:i32 = load %8
-    %x_41:f32 = convert %9
-    %11:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
-    %12:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
-    %13:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
-    %14:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
-    %15:mat4x4<f32> = construct %11, %12, %13, %14
-    store %m0, %15
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %17:i32 = load %16
-    store %c, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %c
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %20:i32 = load %19
-        %21:bool = lt %18, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %10:f32 = convert %9
+    %x_41:f32 = let %10
+    %12:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
+    %13:vec4<f32> = let %12
+    %14:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
+    %15:vec4<f32> = let %14
+    %16:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
+    %17:vec4<f32> = let %16
+    %18:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
+    %19:mat4x4<f32> = construct %13, %15, %17, %18
+    store %m0, %19
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %21:i32 = load %20
+    store %c, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %c
+        %23:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %24:i32 = load %23
+        %25:bool = lt %22, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:mat4x4<f32> = load %m0
-        store %m1, %22
-        %x_59:i32 = load %c
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_61:i32 = load %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_64:i32 = load %26
-        %28:i32 = mod %x_59, %x_61
-        %29:ptr<function, vec4<f32>, read_write> = access %m1, %28
-        %30:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-        %31:f32 = load %30
-        store_vector_element %29, %x_64, %31
-        %x_68:i32 = load %c
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_70:i32 = load %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_73:i32 = load %35
-        %37:i32 = mod %x_68, %x_70
-        %38:ptr<function, vec4<f32>, read_write> = access %m0, %37
-        %39:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-        %40:f32 = load %39
-        store_vector_element %38, %x_73, %40
-        continue %b4
+        %26:mat4x4<f32> = load %m0
+        store %m1, %26
+        %27:i32 = load %c
+        %x_59:i32 = let %27
+        %29:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %30:i32 = load %29
+        %x_61:i32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %33:i32 = load %32
+        %x_64:i32 = let %33
+        %35:i32 = call %tint_mod_i32, %x_59, %x_61
+        %37:ptr<function, vec4<f32>, read_write> = access %m1, %35
+        %38:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+        %39:f32 = load %38
+        store_vector_element %37, %x_64, %39
+        %40:i32 = load %c
+        %x_68:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %43:i32 = load %42
+        %x_70:i32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %46:i32 = load %45
+        %x_73:i32 = let %46
+        %48:i32 = call %tint_mod_i32, %x_68, %x_70
+        %49:ptr<function, vec4<f32>, read_write> = access %m0, %48
+        %50:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+        %51:f32 = load %50
+        store_vector_element %49, %x_73, %51
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %41:i32 = load %c
-        %42:i32 = add %41, 1i
-        store %c, %42
-        next_iteration %b3
+      $B4: {  # continuing
+        %52:i32 = load %c
+        %53:i32 = add %52, 1i
+        store %c, %53
+        next_iteration  # -> $B3
       }
     }
-    %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %44:i32 = load %43
-    %45:f32 = convert %44
-    %46:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %47:i32 = load %46
-    %48:f32 = convert %47
-    %49:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %50:i32 = load %49
-    %51:f32 = convert %50
-    %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %53:i32 = load %52
-    %54:f32 = convert %53
-    %55:vec4<f32> = construct %45, %48, %51, %54
-    %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %57:i32 = load %56
-    %58:f32 = convert %57
-    %59:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %60:i32 = load %59
-    %61:f32 = convert %60
+    %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %55:i32 = load %54
+    %56:f32 = convert %55
+    %57:f32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %59:i32 = load %58
+    %60:f32 = convert %59
+    %61:f32 = let %60
     %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %63:i32 = load %62
     %64:f32 = convert %63
-    %65:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %66:i32 = load %65
-    %67:f32 = convert %66
-    %68:vec4<f32> = construct %58, %61, %64, %67
-    %69:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %70:i32 = load %69
-    %71:f32 = convert %70
-    %72:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %73:i32 = load %72
-    %74:f32 = convert %73
-    %75:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %65:f32 = let %64
+    %66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %67:i32 = load %66
+    %68:f32 = convert %67
+    %69:vec4<f32> = construct %57, %61, %65, %68
+    %70:vec4<f32> = let %69
+    %71:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %72:i32 = load %71
+    %73:f32 = convert %72
+    %74:f32 = let %73
+    %75:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %76:i32 = load %75
     %77:f32 = convert %76
-    %78:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %79:i32 = load %78
-    %80:f32 = convert %79
-    %81:vec4<f32> = construct %71, %74, %77, %80
-    %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %83:i32 = load %82
-    %84:f32 = convert %83
-    %85:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %86:i32 = load %85
-    %87:f32 = convert %86
+    %78:f32 = let %77
+    %79:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %80:i32 = load %79
+    %81:f32 = convert %80
+    %82:f32 = let %81
+    %83:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %84:i32 = load %83
+    %85:f32 = convert %84
+    %86:vec4<f32> = construct %74, %78, %82, %85
+    %87:vec4<f32> = let %86
     %88:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %89:i32 = load %88
     %90:f32 = convert %89
-    %91:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %92:i32 = load %91
-    %93:f32 = convert %92
-    %94:vec4<f32> = construct %84, %87, %90, %93
-    %x_132:mat4x4<f32> = construct %55, %68, %81, %94
-    %96:ptr<function, vec4<f32>, read_write> = access %m0, 0u
-    %97:vec4<f32> = load %96
-    %98:vec4<f32> = access %x_132, 0u
-    %99:vec4<bool> = eq %97, %98
-    %100:bool = all %99
-    %101:ptr<function, vec4<f32>, read_write> = access %m0, 1u
-    %102:vec4<f32> = load %101
-    %103:vec4<f32> = access %x_132, 1u
-    %104:vec4<bool> = eq %102, %103
-    %105:bool = all %104
-    %106:bool = and %100, %105
-    %107:ptr<function, vec4<f32>, read_write> = access %m0, 2u
-    %108:vec4<f32> = load %107
-    %109:vec4<f32> = access %x_132, 2u
-    %110:vec4<bool> = eq %108, %109
-    %111:bool = all %110
-    %112:bool = and %106, %111
-    %113:ptr<function, vec4<f32>, read_write> = access %m0, 3u
-    %114:vec4<f32> = load %113
-    %115:vec4<f32> = access %x_132, 3u
-    %116:vec4<bool> = eq %114, %115
-    %117:bool = all %116
-    %118:bool = and %112, %117
-    if %118 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %119:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %120:i32 = load %119
-        %121:f32 = convert %120
-        %122:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %123:i32 = load %122
-        %124:f32 = convert %123
-        %125:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %126:i32 = load %125
-        %127:f32 = convert %126
-        %128:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %129:i32 = load %128
-        %130:f32 = convert %129
-        %131:vec4<f32> = construct %121, %124, %127, %130
-        store %x_GLF_color, %131
+    %91:f32 = let %90
+    %92:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %93:i32 = load %92
+    %94:f32 = convert %93
+    %95:f32 = let %94
+    %96:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %97:i32 = load %96
+    %98:f32 = convert %97
+    %99:f32 = let %98
+    %100:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %101:i32 = load %100
+    %102:f32 = convert %101
+    %103:vec4<f32> = construct %91, %95, %99, %102
+    %104:vec4<f32> = let %103
+    %105:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %106:i32 = load %105
+    %107:f32 = convert %106
+    %108:f32 = let %107
+    %109:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %110:i32 = load %109
+    %111:f32 = convert %110
+    %112:f32 = let %111
+    %113:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %114:i32 = load %113
+    %115:f32 = convert %114
+    %116:f32 = let %115
+    %117:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %118:i32 = load %117
+    %119:f32 = convert %118
+    %120:vec4<f32> = construct %108, %112, %116, %119
+    %121:mat4x4<f32> = construct %70, %87, %104, %120
+    %x_132:mat4x4<f32> = let %121
+    %123:ptr<function, vec4<f32>, read_write> = access %m0, 0u
+    %124:vec4<f32> = load %123
+    %125:vec4<f32> = access %x_132, 0u
+    %126:vec4<bool> = eq %124, %125
+    %127:bool = all %126
+    %128:bool = let %127
+    %129:ptr<function, vec4<f32>, read_write> = access %m0, 1u
+    %130:vec4<f32> = load %129
+    %131:vec4<f32> = access %x_132, 1u
+    %132:vec4<bool> = eq %130, %131
+    %133:bool = all %132
+    %134:bool = and %128, %133
+    %135:bool = let %134
+    %136:ptr<function, vec4<f32>, read_write> = access %m0, 2u
+    %137:vec4<f32> = load %136
+    %138:vec4<f32> = access %x_132, 2u
+    %139:vec4<bool> = eq %137, %138
+    %140:bool = all %139
+    %141:bool = and %135, %140
+    %142:bool = let %141
+    %143:ptr<function, vec4<f32>, read_write> = access %m0, 3u
+    %144:vec4<f32> = load %143
+    %145:vec4<f32> = access %x_132, 3u
+    %146:vec4<bool> = eq %144, %145
+    %147:bool = all %146
+    %148:bool = and %142, %147
+    if %148 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %149:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %150:i32 = load %149
+        %151:f32 = convert %150
+        %152:f32 = let %151
+        %153:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %154:i32 = load %153
+        %155:f32 = convert %154
+        %156:f32 = let %155
+        %157:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %158:i32 = load %157
+        %159:f32 = convert %158
+        %160:f32 = let %159
+        %161:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %162:i32 = load %161
+        %163:f32 = convert %162
+        %164:vec4<f32> = construct %152, %156, %160, %163
+        store %x_GLF_color, %164
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %132:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %133:i32 = load %132
-        %134:f32 = convert %133
-        %135:vec4<f32> = construct %134
-        store %x_GLF_color, %135
+      $B8: {  # false
+        %165:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %166:i32 = load %165
+        %167:f32 = convert %166
+        %168:vec4<f32> = construct %167
+        store %x_GLF_color, %168
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %137:void = call %main_1
-    %138:vec4<f32> = load %x_GLF_color
-    %139:main_out = construct %138
-    ret %139
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %170:void = call %main_1
+    %171:vec4<f32> = load %x_GLF_color
+    %172:main_out = construct %171
+    ret %172
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %175:bool = eq %rhs, 0i
+    %176:bool = eq %lhs, -2147483648i
+    %177:bool = eq %rhs, -1i
+    %178:bool = and %176, %177
+    %179:bool = or %175, %178
+    %180:i32 = select %rhs, 1i, %179
+    %181:i32 = let %180
+    %182:i32 = div %lhs, %181
+    %183:i32 = mul %182, %181
+    %184:i32 = sub %lhs, %183
+    ret %184
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.msl
index 8f8a8e0..048ba1a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-matrix-copy-inside-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,183 +20,261 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m0:ptr<function, mat4x4<f32>, read_write> = var
     %c:ptr<function, i32, read_write> = var
     %m1:ptr<function, mat4x4<f32>, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_40:i32 = load %8
-    %x_41:f32 = convert %x_40
-    %11:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
-    %12:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
-    %13:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
-    %14:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
-    %15:mat4x4<f32> = construct %11, %12, %13, %14
-    store %m0, %15
-    %16:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_48:i32 = load %16
+    %9:i32 = load %8
+    %x_40:i32 = let %9
+    %11:f32 = convert %x_40
+    %x_41:f32 = let %11
+    %13:vec4<f32> = construct %x_41, 0.0f, 0.0f, 0.0f
+    %14:vec4<f32> = let %13
+    %15:vec4<f32> = construct 0.0f, %x_41, 0.0f, 0.0f
+    %16:vec4<f32> = let %15
+    %17:vec4<f32> = construct 0.0f, 0.0f, %x_41, 0.0f
+    %18:vec4<f32> = let %17
+    %19:vec4<f32> = construct 0.0f, 0.0f, 0.0f, %x_41
+    %20:mat4x4<f32> = construct %14, %16, %18, %19
+    store %m0, %20
+    %21:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %22:i32 = load %21
+    %x_48:i32 = let %22
     store %c, %x_48
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_53:i32 = load %c
-        %19:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_55:i32 = load %19
-        %21:bool = lt %x_53, %x_55
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %24:i32 = load %c
+        %x_53:i32 = let %24
+        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %27:i32 = load %26
+        %x_55:i32 = let %27
+        %29:bool = lt %x_53, %x_55
+        if %29 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_58:mat4x4<f32> = load %m0
+        %30:mat4x4<f32> = load %m0
+        %x_58:mat4x4<f32> = let %30
         store %m1, %x_58
-        %x_59:i32 = load %c
-        %24:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_61:i32 = load %24
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_64:i32 = load %26
-        %28:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-        %x_66:f32 = load %28
-        %30:i32 = mod %x_59, %x_61
-        %31:ptr<function, vec4<f32>, read_write> = access %m1, %30
-        store_vector_element %31, %x_64, %x_66
-        %x_68:i32 = load %c
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_70:i32 = load %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_73:i32 = load %35
-        %37:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
-        %x_75:f32 = load %37
-        %39:i32 = mod %x_68, %x_70
-        %40:ptr<function, vec4<f32>, read_write> = access %m0, %39
-        store_vector_element %40, %x_73, %x_75
-        continue %b4
+        %32:i32 = load %c
+        %x_59:i32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %35:i32 = load %34
+        %x_61:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %38:i32 = load %37
+        %x_64:i32 = let %38
+        %40:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+        %41:f32 = load %40
+        %x_66:f32 = let %41
+        %43:i32 = call %tint_mod_i32, %x_59, %x_61
+        %45:ptr<function, vec4<f32>, read_write> = access %m1, %43
+        store_vector_element %45, %x_64, %x_66
+        %46:i32 = load %c
+        %x_68:i32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %49:i32 = load %48
+        %x_70:i32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %52:i32 = load %51
+        %x_73:i32 = let %52
+        %54:ptr<uniform, f32, read> = access %x_10, 0u, 0i, 0u
+        %55:f32 = load %54
+        %x_75:f32 = let %55
+        %57:i32 = call %tint_mod_i32, %x_68, %x_70
+        %58:ptr<function, vec4<f32>, read_write> = access %m0, %57
+        store_vector_element %58, %x_73, %x_75
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_77:i32 = load %c
-        %42:i32 = add %x_77, 1i
-        store %c, %42
-        next_iteration %b3
+      $B4: {  # continuing
+        %59:i32 = load %c
+        %x_77:i32 = let %59
+        %61:i32 = add %x_77, 1i
+        store %c, %61
+        next_iteration  # -> $B3
       }
     }
-    %x_79:mat4x4<f32> = load %m0
-    %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_81:i32 = load %44
-    %46:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_84:i32 = load %46
-    %48:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_87:i32 = load %48
-    %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_90:i32 = load %50
-    %52:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_93:i32 = load %52
-    %54:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_96:i32 = load %54
-    %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_99:i32 = load %56
-    %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_102:i32 = load %58
-    %60:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_105:i32 = load %60
-    %62:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_108:i32 = load %62
+    %62:mat4x4<f32> = load %m0
+    %x_79:mat4x4<f32> = let %62
     %64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_111:i32 = load %64
-    %66:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_114:i32 = load %66
-    %68:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_117:i32 = load %68
-    %70:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_120:i32 = load %70
-    %72:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_123:i32 = load %72
-    %74:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_126:i32 = load %74
-    %76:f32 = convert %x_81
-    %77:f32 = convert %x_84
-    %78:f32 = convert %x_87
-    %79:f32 = convert %x_90
-    %80:vec4<f32> = construct %76, %77, %78, %79
-    %81:f32 = convert %x_93
-    %82:f32 = convert %x_96
-    %83:f32 = convert %x_99
-    %84:f32 = convert %x_102
-    %85:vec4<f32> = construct %81, %82, %83, %84
-    %86:f32 = convert %x_105
-    %87:f32 = convert %x_108
-    %88:f32 = convert %x_111
-    %89:f32 = convert %x_114
-    %90:vec4<f32> = construct %86, %87, %88, %89
-    %91:f32 = convert %x_117
-    %92:f32 = convert %x_120
-    %93:f32 = convert %x_123
-    %94:f32 = convert %x_126
-    %95:vec4<f32> = construct %91, %92, %93, %94
-    %x_132:mat4x4<f32> = construct %80, %85, %90, %95
-    %97:vec4<f32> = access %x_79, 0u
-    %98:vec4<f32> = access %x_132, 0u
-    %99:vec4<bool> = eq %97, %98
-    %100:bool = all %99
-    %101:vec4<f32> = access %x_79, 1u
-    %102:vec4<f32> = access %x_132, 1u
-    %103:vec4<bool> = eq %101, %102
-    %104:bool = all %103
-    %105:bool = and %100, %104
-    %106:vec4<f32> = access %x_79, 2u
-    %107:vec4<f32> = access %x_132, 2u
-    %108:vec4<bool> = eq %106, %107
-    %109:bool = all %108
-    %110:bool = and %105, %109
-    %111:vec4<f32> = access %x_79, 3u
-    %112:vec4<f32> = access %x_132, 3u
-    %113:vec4<bool> = eq %111, %112
-    %114:bool = all %113
-    %115:bool = and %110, %114
-    if %115 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
-        %116:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_156:i32 = load %116
-        %118:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_159:i32 = load %118
-        %120:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_162:i32 = load %120
-        %122:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_165:i32 = load %122
-        %124:f32 = convert %x_156
-        %125:f32 = convert %x_159
-        %126:f32 = convert %x_162
-        %127:f32 = convert %x_165
-        %128:vec4<f32> = construct %124, %125, %126, %127
-        store %x_GLF_color, %128
+    %65:i32 = load %64
+    %x_81:i32 = let %65
+    %67:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %68:i32 = load %67
+    %x_84:i32 = let %68
+    %70:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %71:i32 = load %70
+    %x_87:i32 = let %71
+    %73:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %74:i32 = load %73
+    %x_90:i32 = let %74
+    %76:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %77:i32 = load %76
+    %x_93:i32 = let %77
+    %79:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %80:i32 = load %79
+    %x_96:i32 = let %80
+    %82:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %83:i32 = load %82
+    %x_99:i32 = let %83
+    %85:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %86:i32 = load %85
+    %x_102:i32 = let %86
+    %88:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %89:i32 = load %88
+    %x_105:i32 = let %89
+    %91:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %92:i32 = load %91
+    %x_108:i32 = let %92
+    %94:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %95:i32 = load %94
+    %x_111:i32 = let %95
+    %97:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %98:i32 = load %97
+    %x_114:i32 = let %98
+    %100:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %101:i32 = load %100
+    %x_117:i32 = let %101
+    %103:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %104:i32 = load %103
+    %x_120:i32 = let %104
+    %106:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %107:i32 = load %106
+    %x_123:i32 = let %107
+    %109:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %110:i32 = load %109
+    %x_126:i32 = let %110
+    %112:f32 = convert %x_81
+    %113:f32 = let %112
+    %114:f32 = convert %x_84
+    %115:f32 = let %114
+    %116:f32 = convert %x_87
+    %117:f32 = let %116
+    %118:f32 = convert %x_90
+    %119:vec4<f32> = construct %113, %115, %117, %118
+    %120:vec4<f32> = let %119
+    %121:f32 = convert %x_93
+    %122:f32 = let %121
+    %123:f32 = convert %x_96
+    %124:f32 = let %123
+    %125:f32 = convert %x_99
+    %126:f32 = let %125
+    %127:f32 = convert %x_102
+    %128:vec4<f32> = construct %122, %124, %126, %127
+    %129:vec4<f32> = let %128
+    %130:f32 = convert %x_105
+    %131:f32 = let %130
+    %132:f32 = convert %x_108
+    %133:f32 = let %132
+    %134:f32 = convert %x_111
+    %135:f32 = let %134
+    %136:f32 = convert %x_114
+    %137:vec4<f32> = construct %131, %133, %135, %136
+    %138:vec4<f32> = let %137
+    %139:f32 = convert %x_117
+    %140:f32 = let %139
+    %141:f32 = convert %x_120
+    %142:f32 = let %141
+    %143:f32 = convert %x_123
+    %144:f32 = let %143
+    %145:f32 = convert %x_126
+    %146:vec4<f32> = construct %140, %142, %144, %145
+    %147:mat4x4<f32> = construct %120, %129, %138, %146
+    %x_132:mat4x4<f32> = let %147
+    %149:vec4<f32> = access %x_79, 0u
+    %150:vec4<f32> = access %x_132, 0u
+    %151:vec4<bool> = eq %149, %150
+    %152:bool = all %151
+    %153:bool = let %152
+    %154:vec4<f32> = access %x_79, 1u
+    %155:vec4<f32> = access %x_132, 1u
+    %156:vec4<bool> = eq %154, %155
+    %157:bool = all %156
+    %158:bool = and %153, %157
+    %159:bool = let %158
+    %160:vec4<f32> = access %x_79, 2u
+    %161:vec4<f32> = access %x_132, 2u
+    %162:vec4<bool> = eq %160, %161
+    %163:bool = all %162
+    %164:bool = and %159, %163
+    %165:bool = let %164
+    %166:vec4<f32> = access %x_79, 3u
+    %167:vec4<f32> = access %x_132, 3u
+    %168:vec4<bool> = eq %166, %167
+    %169:bool = all %168
+    %170:bool = and %165, %169
+    if %170 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %171:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %172:i32 = load %171
+        %x_156:i32 = let %172
+        %174:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %175:i32 = load %174
+        %x_159:i32 = let %175
+        %177:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %178:i32 = load %177
+        %x_162:i32 = let %178
+        %180:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %181:i32 = load %180
+        %x_165:i32 = let %181
+        %183:f32 = convert %x_156
+        %184:f32 = let %183
+        %185:f32 = convert %x_159
+        %186:f32 = let %185
+        %187:f32 = convert %x_162
+        %188:f32 = let %187
+        %189:f32 = convert %x_165
+        %190:vec4<f32> = construct %184, %186, %188, %189
+        store %x_GLF_color, %190
         exit_if  # if_2
       }
-      %b8 = block {  # false
-        %129:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_169:i32 = load %129
-        %x_170:f32 = convert %x_169
-        %132:vec4<f32> = construct %x_170, %x_170, %x_170, %x_170
-        store %x_GLF_color, %132
+      $B8: {  # false
+        %191:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %192:i32 = load %191
+        %x_169:i32 = let %192
+        %194:f32 = convert %x_169
+        %x_170:f32 = let %194
+        %196:vec4<f32> = construct %x_170, %x_170, %x_170, %x_170
+        store %x_GLF_color, %196
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %134:void = call %main_1
-    %135:vec4<f32> = load %x_GLF_color
-    %136:main_out = construct %135
-    ret %136
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %198:void = call %main_1
+    %199:vec4<f32> = load %x_GLF_color
+    %200:main_out = construct %199
+    ret %200
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %203:bool = eq %rhs, 0i
+    %204:bool = eq %lhs, -2147483648i
+    %205:bool = eq %rhs, -1i
+    %206:bool = and %204, %205
+    %207:bool = or %203, %206
+    %208:i32 = select %rhs, 1i, %207
+    %209:i32 = let %208
+    %210:i32 = div %lhs, %209
+    %211:i32 = mul %210, %209
+    %212:i32 = sub %lhs, %211
+    ret %212
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.msl
index 6c5f3a8..fa8f521b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,96 +12,100 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %A:ptr<function, array<i32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %8:i32 = load %7
     store %i, %8
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %9:i32 = load %i
         %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %11:i32 = load %10
         %12:bool = lt %9, %11
-        if %12 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_40:i32 = load %i
-        %14:ptr<function, i32, read_write> = access %A, %x_40
-        %15:i32 = load %i
-        store %14, %15
-        continue %b4
-      }
-      %b4 = block {  # continuing
+        %13:i32 = load %i
+        %x_40:i32 = let %13
+        %15:ptr<function, i32, read_write> = access %A, %x_40
         %16:i32 = load %i
-        %17:i32 = add %16, 1i
-        store %i, %17
-        next_iteration %b3
+        store %15, %16
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %17:i32 = load %i
+        %18:i32 = add %17, 1i
+        store %i, %18
+        next_iteration  # -> $B3
       }
     }
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %19:i32 = load %18
-    %20:ptr<function, i32, read_write> = access %A, %19
-    %21:i32 = load %20
-    %22:i32 = complement %21
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %24:i32 = load %23
-    %25:ptr<function, i32, read_write> = access %A, %24
-    %26:i32 = load %25
-    %27:i32 = complement %26
-    %28:i32 = min %22, %27
-    store %a, %28
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %30:i32 = load %29
-    %31:f32 = convert %30
-    %32:vec4<f32> = construct %31
-    store %x_GLF_color, %32
-    %33:i32 = load %a
-    %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %35:i32 = load %34
-    %36:i32 = negation %35
-    %37:bool = eq %33, %36
-    if %37 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %39:i32 = load %38
-        %40:f32 = convert %39
-        %41:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %45:i32 = load %44
-        %46:f32 = convert %45
-        %47:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %19:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %20:i32 = load %19
+    %21:ptr<function, i32, read_write> = access %A, %20
+    %22:i32 = load %21
+    %23:i32 = complement %22
+    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %25:i32 = load %24
+    %26:ptr<function, i32, read_write> = access %A, %25
+    %27:i32 = load %26
+    %28:i32 = complement %27
+    %29:i32 = min %23, %28
+    store %a, %29
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %31:i32 = load %30
+    %32:f32 = convert %31
+    %33:vec4<f32> = construct %32
+    store %x_GLF_color, %33
+    %34:i32 = load %a
+    %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %36:i32 = load %35
+    %37:i32 = negation %36
+    %38:bool = eq %34, %37
+    if %38 [t: $B7] {  # if_2
+      $B7: {  # true
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %40:i32 = load %39
+        %41:f32 = convert %40
+        %42:f32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:f32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %48:i32 = load %47
         %49:f32 = convert %48
-        %50:vec4<f32> = construct %40, %43, %46, %49
-        store %x_GLF_color, %50
+        %50:f32 = let %49
+        %51:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %52:i32 = load %51
+        %53:f32 = convert %52
+        %54:vec4<f32> = construct %42, %46, %50, %53
+        store %x_GLF_color, %54
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %56:void = call %main_1
+    %57:vec4<f32> = load %x_GLF_color
+    %58:main_out = construct %57
+    ret %58
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.msl
index dd77b49..ae42a9a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-inst-combine-select-value-tracking-flip-bits/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,96 +12,117 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %A:ptr<function, array<i32, 2>, read_write> = var
     %a:ptr<function, i32, read_write> = var
     %7:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_30:i32 = load %7
+    %8:i32 = load %7
+    %x_30:i32 = let %8
     store %i, %x_30
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_35:i32 = load %i
-        %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_37:i32 = load %10
-        %12:bool = lt %x_35, %x_37
-        if %12 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %10:i32 = load %i
+        %x_35:i32 = let %10
+        %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %13:i32 = load %12
+        %x_37:i32 = let %13
+        %15:bool = lt %x_35, %x_37
+        if %15 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_40:i32 = load %i
-        %x_41:i32 = load %i
-        %15:ptr<function, i32, read_write> = access %A, %x_40
-        store %15, %x_41
-        continue %b4
+        %16:i32 = load %i
+        %x_40:i32 = let %16
+        %18:i32 = load %i
+        %x_41:i32 = let %18
+        %20:ptr<function, i32, read_write> = access %A, %x_40
+        store %20, %x_41
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_43:i32 = load %i
-        %17:i32 = add %x_43, 1i
-        store %i, %17
-        next_iteration %b3
+      $B4: {  # continuing
+        %21:i32 = load %i
+        %x_43:i32 = let %21
+        %23:i32 = add %x_43, 1i
+        store %i, %23
+        next_iteration  # -> $B3
       }
     }
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_46:i32 = load %18
-    %20:ptr<function, i32, read_write> = access %A, %x_46
-    %x_48:i32 = load %20
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_51:i32 = load %22
-    %24:ptr<function, i32, read_write> = access %A, %x_51
-    %x_53:i32 = load %24
-    %26:i32 = complement %x_48
-    %27:i32 = complement %x_53
-    %28:i32 = min %26, %27
-    store %a, %28
-    %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_57:i32 = load %29
-    %x_58:f32 = convert %x_57
-    %32:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
-    store %x_GLF_color, %32
-    %x_60:i32 = load %a
-    %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_62:i32 = load %34
-    %36:i32 = negation %x_62
-    %37:bool = eq %x_60, %36
-    if %37 [t: %b7] {  # if_2
-      %b7 = block {  # true
-        %38:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_68:i32 = load %38
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_71:i32 = load %40
-        %42:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_74:i32 = load %42
-        %44:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_77:i32 = load %44
-        %46:f32 = convert %x_68
-        %47:f32 = convert %x_71
-        %48:f32 = convert %x_74
-        %49:f32 = convert %x_77
-        %50:vec4<f32> = construct %46, %47, %48, %49
-        store %x_GLF_color, %50
+    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %25:i32 = load %24
+    %x_46:i32 = let %25
+    %27:ptr<function, i32, read_write> = access %A, %x_46
+    %28:i32 = load %27
+    %x_48:i32 = let %28
+    %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %31:i32 = load %30
+    %x_51:i32 = let %31
+    %33:ptr<function, i32, read_write> = access %A, %x_51
+    %34:i32 = load %33
+    %x_53:i32 = let %34
+    %36:i32 = complement %x_48
+    %37:i32 = complement %x_53
+    %38:i32 = min %36, %37
+    store %a, %38
+    %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %40:i32 = load %39
+    %x_57:i32 = let %40
+    %42:f32 = convert %x_57
+    %x_58:f32 = let %42
+    %44:vec4<f32> = construct %x_58, %x_58, %x_58, %x_58
+    store %x_GLF_color, %44
+    %45:i32 = load %a
+    %x_60:i32 = let %45
+    %47:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %48:i32 = load %47
+    %x_62:i32 = let %48
+    %50:i32 = negation %x_62
+    %51:bool = eq %x_60, %50
+    if %51 [t: $B7] {  # if_2
+      $B7: {  # true
+        %52:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %53:i32 = load %52
+        %x_68:i32 = let %53
+        %55:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %56:i32 = load %55
+        %x_71:i32 = let %56
+        %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %59:i32 = load %58
+        %x_74:i32 = let %59
+        %61:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %62:i32 = load %61
+        %x_77:i32 = let %62
+        %64:f32 = convert %x_68
+        %65:f32 = let %64
+        %66:f32 = convert %x_71
+        %67:f32 = let %66
+        %68:f32 = convert %x_74
+        %69:f32 = let %68
+        %70:f32 = convert %x_77
+        %71:vec4<f32> = construct %65, %67, %69, %70
+        store %x_GLF_color, %71
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.msl
index 6508e5b..11da9d1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
@@ -27,82 +27,100 @@
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
     %9:i32 = load %8
     store %i, %9
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %12:i32 = load %11
         %13:bool = lt %10, %12
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %14:i32 = load %i
-        %15:i32 = mod 1i, %14
-        %16:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %17:i32 = load %16
-        %18:bool = eq %15, %17
-        if %18 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            continue %b4
+        %15:i32 = call %tint_mod_i32, 1i, %14
+        %17:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %18:i32 = load %17
+        %19:bool = eq %15, %18
+        if %19 [t: $B7] {  # if_2
+          $B7: {  # true
+            continue  # -> $B4
           }
         }
-        %19:i32 = load %a
-        %20:i32 = add %19, 1i
-        store %a, %20
-        continue %b4
+        %20:i32 = load %a
+        %21:i32 = add %20, 1i
+        store %a, %21
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %21:i32 = load %i
-        %22:i32 = add %21, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %22:i32 = load %i
+        %23:i32 = add %22, 1i
+        store %i, %23
+        next_iteration  # -> $B3
       }
     }
-    %23:i32 = load %a
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %25:i32 = load %24
-    %26:bool = eq %23, %25
-    if %26 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %28:i32 = load %27
-        %29:f32 = convert %28
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %31:i32 = load %30
-        %32:f32 = convert %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %34:i32 = load %33
-        %35:f32 = convert %34
-        %36:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %24:i32 = load %a
+    %25:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %26:i32 = load %25
+    %27:bool = eq %24, %26
+    if %27 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %28:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %29:i32 = load %28
+        %30:f32 = convert %29
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %33:i32 = load %32
+        %34:f32 = convert %33
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
         %37:i32 = load %36
         %38:f32 = convert %37
-        %39:vec4<f32> = construct %29, %32, %35, %38
-        store %x_GLF_color, %39
-        exit_if  # if_3
-      }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
         %41:i32 = load %40
         %42:f32 = convert %41
-        %43:vec4<f32> = construct %42
+        %43:vec4<f32> = construct %31, %35, %39, %42
         store %x_GLF_color, %43
         exit_if  # if_3
       }
+      $B9: {  # false
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
+        exit_if  # if_3
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %54:bool = eq %rhs, 0i
+    %55:bool = eq %lhs, -2147483648i
+    %56:bool = eq %rhs, -1i
+    %57:bool = and %55, %56
+    %58:bool = or %54, %57
+    %59:i32 = select %rhs, 1i, %58
+    %60:i32 = let %59
+    %61:i32 = div %lhs, %60
+    %62:i32 = mul %61, %60
+    %63:i32 = sub %lhs, %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.msl
index 17da838..624e88d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,97 +12,131 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %6:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_27:i32 = load %6
+    %7:i32 = load %6
+    %x_27:i32 = let %7
     store %a, %x_27
-    %8:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_29:i32 = load %8
+    %9:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %10:i32 = load %9
+    %x_29:i32 = let %10
     store %i, %x_29
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_34:i32 = load %i
-        %11:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_36:i32 = load %11
-        %13:bool = lt %x_34, %x_36
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %12:i32 = load %i
+        %x_34:i32 = let %12
+        %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %15:i32 = load %14
+        %x_36:i32 = let %15
+        %17:bool = lt %x_34, %x_36
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_39:i32 = load %i
-        %15:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_42:i32 = load %15
-        %17:i32 = mod 1i, %x_39
-        %18:bool = eq %17, %x_42
-        if %18 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            continue %b4
+        %18:i32 = load %i
+        %x_39:i32 = let %18
+        %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %21:i32 = load %20
+        %x_42:i32 = let %21
+        %23:i32 = call %tint_mod_i32, 1i, %x_39
+        %25:bool = eq %23, %x_42
+        if %25 [t: $B7] {  # if_2
+          $B7: {  # true
+            continue  # -> $B4
           }
         }
-        %x_46:i32 = load %a
-        %20:i32 = add %x_46, 1i
-        store %a, %20
-        continue %b4
+        %26:i32 = load %a
+        %x_46:i32 = let %26
+        %28:i32 = add %x_46, 1i
+        store %a, %28
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_48:i32 = load %i
-        %22:i32 = add %x_48, 1i
-        store %i, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %i
+        %x_48:i32 = let %29
+        %31:i32 = add %x_48, 1i
+        store %i, %31
+        next_iteration  # -> $B3
       }
     }
-    %x_50:i32 = load %a
-    %24:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_52:i32 = load %24
-    %26:bool = eq %x_50, %x_52
-    if %26 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %27:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_58:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_61:i32 = load %29
-        %31:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_64:i32 = load %31
-        %33:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-        %x_67:i32 = load %33
-        %35:f32 = convert %x_58
-        %36:f32 = convert %x_61
-        %37:f32 = convert %x_64
-        %38:f32 = convert %x_67
-        %39:vec4<f32> = construct %35, %36, %37, %38
-        store %x_GLF_color, %39
+    %32:i32 = load %a
+    %x_50:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %35:i32 = load %34
+    %x_52:i32 = let %35
+    %37:bool = eq %x_50, %x_52
+    if %37 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %38:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %39:i32 = load %38
+        %x_58:i32 = let %39
+        %41:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %42:i32 = load %41
+        %x_61:i32 = let %42
+        %44:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %45:i32 = load %44
+        %x_64:i32 = let %45
+        %47:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+        %48:i32 = load %47
+        %x_67:i32 = let %48
+        %50:f32 = convert %x_58
+        %51:f32 = let %50
+        %52:f32 = convert %x_61
+        %53:f32 = let %52
+        %54:f32 = convert %x_64
+        %55:f32 = let %54
+        %56:f32 = convert %x_67
+        %57:vec4<f32> = construct %51, %53, %55, %56
+        store %x_GLF_color, %57
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %40:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-        %x_71:i32 = load %40
-        %x_72:f32 = convert %x_71
-        %43:vec4<f32> = construct %x_72, %x_72, %x_72, %x_72
-        store %x_GLF_color, %43
+      $B9: {  # false
+        %58:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+        %59:i32 = load %58
+        %x_71:i32 = let %59
+        %61:f32 = convert %x_71
+        %x_72:f32 = let %61
+        %63:vec4<f32> = construct %x_72, %x_72, %x_72, %x_72
+        store %x_GLF_color, %63
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %70:bool = eq %rhs, 0i
+    %71:bool = eq %lhs, -2147483648i
+    %72:bool = eq %rhs, -1i
+    %73:bool = and %71, %72
+    %74:bool = or %70, %73
+    %75:i32 = select %rhs, 1i, %74
+    %76:i32 = let %75
+    %77:i32 = div %lhs, %76
+    %78:i32 = mul %77, %76
+    %79:i32 = sub %lhs, %78
+    ret %79
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.msl
index 598d348..4e97427 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:i32 @offset(0)
 }
 
@@ -8,26 +8,26 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:i32 = load %i
         %7:bool = lt %6, 2i
-        if %7 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -35,23 +35,23 @@
         %9:i32 = or %8, -2i
         %10:i32 = sub %9, 1i
         store %a, %10
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %11:i32 = load %i
         %12:i32 = add %11, 1i
         store %i, %12
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %13:i32 = load %a
     %14:bool = eq %13, -2i
-    if %14 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    if %14 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -59,8 +59,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func():main_out {
+  $B9: {
     %16:void = call %main_1
     %17:vec4<f32> = load %x_GLF_color
     %18:main_out = construct %17
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.msl
index f89f7ea..68af0d5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-inclusive-or/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   two:i32 @offset(0)
 }
 
@@ -8,50 +8,54 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_30:i32 = load %i
-        %7:bool = lt %x_30, 2i
-        if %7 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:i32 = load %i
+        %x_30:i32 = let %6
+        %8:bool = lt %x_30, 2i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_33:i32 = load %i
-        %9:i32 = or %x_33, -2i
-        %10:i32 = sub %9, 1i
-        store %a, %10
-        continue %b4
+        %9:i32 = load %i
+        %x_33:i32 = let %9
+        %11:i32 = or %x_33, -2i
+        %12:i32 = sub %11, 1i
+        store %a, %12
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_36:i32 = load %i
-        %12:i32 = add %x_36, 1i
-        store %i, %12
-        next_iteration %b3
+      $B4: {  # continuing
+        %13:i32 = load %i
+        %x_36:i32 = let %13
+        %15:i32 = add %x_36, 1i
+        store %i, %15
+        next_iteration  # -> $B3
       }
     }
-    %x_38:i32 = load %a
-    %14:bool = eq %x_38, -2i
-    if %14 [t: %b7, f: %b8] {  # if_2
-      %b7 = block {  # true
+    %16:i32 = load %a
+    %x_38:i32 = let %16
+    %18:bool = eq %x_38, -2i
+    if %18 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b8 = block {  # false
+      $B8: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -59,12 +63,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %16:void = call %main_1
-    %17:vec4<f32> = load %x_GLF_color
-    %18:main_out = construct %17
-    ret %18
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.msl
index e2b5339..3af32e2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %sum:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -29,8 +29,8 @@
     %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %10:i32 = load %9
     %11:bool = eq 1i, %10
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         %12:i32 = load %a
         %13:i32 = sub %12, 1i
         store %a, %13
@@ -38,16 +38,16 @@
       }
     }
     store %i, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %14:i32 = load %i
         %15:i32 = load %a
         %16:bool = lt %14, %15
-        if %16 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+        if %16 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
@@ -55,57 +55,60 @@
         %18:i32 = load %i
         %19:i32 = add %17, %18
         store %sum, %19
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
+      $B5: {  # continuing
         %20:i32 = load %i
         %21:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
         %22:i32 = load %21
         %23:i32 = add %20, %22
         store %i, %23
-        next_iteration %b4
+        next_iteration  # -> $B4
       }
     }
     %24:i32 = load %sum
     %25:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
     %26:i32 = load %25
     %27:bool = eq %24, %26
-    if %27 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    if %27 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         %28:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
         %29:i32 = load %28
         %30:f32 = convert %29
-        %31:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %32:i32 = load %31
-        %33:f32 = convert %32
-        %34:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %35:i32 = load %34
-        %36:f32 = convert %35
-        %37:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %38:i32 = load %37
-        %39:f32 = convert %38
-        %40:vec4<f32> = construct %30, %33, %36, %39
-        store %x_GLF_color, %40
+        %31:f32 = let %30
+        %32:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %33:i32 = load %32
+        %34:f32 = convert %33
+        %35:f32 = let %34
+        %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %37:i32 = load %36
+        %38:f32 = convert %37
+        %39:f32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %41:i32 = load %40
+        %42:f32 = convert %41
+        %43:vec4<f32> = construct %31, %35, %39, %42
+        store %x_GLF_color, %43
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %41:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %42:i32 = load %41
-        %43:f32 = convert %42
-        %44:vec4<f32> = construct %43
-        store %x_GLF_color, %44
+      $B9: {  # false
+        %44:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %45:i32 = load %44
+        %46:f32 = convert %45
+        %47:vec4<f32> = construct %46
+        store %x_GLF_color, %47
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %46:void = call %main_1
-    %47:vec4<f32> = load %x_GLF_color
-    %48:main_out = construct %47
-    ret %48
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.msl
index 5369c53..258051c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-known-nonzero/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,100 +12,120 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, i32, read_write> = var
     %sum:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %a, 65536i
     %7:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_29:i32 = load %7
+    %8:i32 = load %7
+    %x_29:i32 = let %8
     store %sum, %x_29
-    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_31:i32 = load %9
-    %11:bool = eq 1i, %x_31
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_35:i32 = load %a
-        %13:i32 = sub %x_35, 1i
-        store %a, %13
+    %10:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %11:i32 = load %10
+    %x_31:i32 = let %11
+    %13:bool = eq 1i, %x_31
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:i32 = load %a
+        %x_35:i32 = let %14
+        %16:i32 = sub %x_35, 1i
+        store %a, %16
         exit_if  # if_1
       }
     }
     store %i, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_41:i32 = load %i
-        %x_42:i32 = load %a
-        %16:bool = lt %x_41, %x_42
-        if %16 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %17:i32 = load %i
+        %x_41:i32 = let %17
+        %19:i32 = load %a
+        %x_42:i32 = let %19
+        %21:bool = lt %x_41, %x_42
+        if %21 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_45:i32 = load %i
-        %x_46:i32 = load %sum
-        %19:i32 = add %x_46, %x_45
-        store %sum, %19
-        continue %b5
+        %22:i32 = load %i
+        %x_45:i32 = let %22
+        %24:i32 = load %sum
+        %x_46:i32 = let %24
+        %26:i32 = add %x_46, %x_45
+        store %sum, %26
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %20:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
-        %x_49:i32 = load %20
-        %x_50:i32 = load %i
-        %23:i32 = add %x_50, %x_49
-        store %i, %23
-        next_iteration %b4
+      $B5: {  # continuing
+        %27:ptr<uniform, i32, read> = access %x_7, 0u, 2i, 0u
+        %28:i32 = load %27
+        %x_49:i32 = let %28
+        %30:i32 = load %i
+        %x_50:i32 = let %30
+        %32:i32 = add %x_50, %x_49
+        store %i, %32
+        next_iteration  # -> $B4
       }
     }
-    %x_52:i32 = load %sum
-    %25:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
-    %x_54:i32 = load %25
-    %27:bool = eq %x_52, %x_54
-    if %27 [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
-        %28:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_60:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_63:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_66:i32 = load %32
-        %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_69:i32 = load %34
-        %36:f32 = convert %x_60
-        %37:f32 = convert %x_63
-        %38:f32 = convert %x_66
-        %39:f32 = convert %x_69
-        %40:vec4<f32> = construct %36, %37, %38, %39
-        store %x_GLF_color, %40
+    %33:i32 = load %sum
+    %x_52:i32 = let %33
+    %35:ptr<uniform, i32, read> = access %x_7, 0u, 3i, 0u
+    %36:i32 = load %35
+    %x_54:i32 = let %36
+    %38:bool = eq %x_52, %x_54
+    if %38 [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
+        %39:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %40:i32 = load %39
+        %x_60:i32 = let %40
+        %42:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %43:i32 = load %42
+        %x_63:i32 = let %43
+        %45:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %46:i32 = load %45
+        %x_66:i32 = let %46
+        %48:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %49:i32 = load %48
+        %x_69:i32 = let %49
+        %51:f32 = convert %x_60
+        %52:f32 = let %51
+        %53:f32 = convert %x_63
+        %54:f32 = let %53
+        %55:f32 = convert %x_66
+        %56:f32 = let %55
+        %57:f32 = convert %x_69
+        %58:vec4<f32> = construct %52, %54, %56, %57
+        store %x_GLF_color, %58
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %41:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_73:i32 = load %41
-        %x_74:f32 = convert %x_73
-        %44:vec4<f32> = construct %x_74, %x_74, %x_74, %x_74
-        store %x_GLF_color, %44
+      $B9: {  # false
+        %59:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %60:i32 = load %59
+        %x_73:i32 = let %60
+        %62:f32 = convert %x_73
+        %x_74:f32 = let %62
+        %64:vec4<f32> = construct %x_74, %x_74, %x_74, %x_74
+        store %x_GLF_color, %64
         exit_if  # if_3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %46:void = call %main_1
-    %47:vec4<f32> = load %x_GLF_color
-    %48:main_out = construct %47
-    ret %48
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %66:void = call %main_1
+    %67:vec4<f32> = load %x_GLF_color
+    %68:main_out = construct %67
+    ret %68
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.msl
index 2963359..a26a9ce 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:u32 @offset(0)
 }
 
@@ -28,15 +28,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %7:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
     %8:u32 = load %7
@@ -47,42 +47,45 @@
     %12:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
     %13:f32 = load %12
     %14:bool = eq %11, %13
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %14 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %15:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
         %16:i32 = load %15
         %17:f32 = convert %16
-        %18:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %19:i32 = load %18
-        %20:f32 = convert %19
-        %21:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %22:i32 = load %21
-        %23:f32 = convert %22
-        %24:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %25:i32 = load %24
-        %26:f32 = convert %25
-        %27:vec4<f32> = construct %17, %20, %23, %26
-        store %x_GLF_color, %27
+        %18:f32 = let %17
+        %19:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %20:i32 = load %19
+        %21:f32 = convert %20
+        %22:f32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %24:i32 = load %23
+        %25:f32 = convert %24
+        %26:f32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %28:i32 = load %27
+        %29:f32 = convert %28
+        %30:vec4<f32> = construct %18, %22, %26, %29
+        store %x_GLF_color, %30
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %29:i32 = load %28
-        %30:f32 = convert %29
-        %31:vec4<f32> = construct %30
-        store %x_GLF_color, %31
+      $B4: {  # false
+        %31:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:vec4<f32> = construct %33
+        store %x_GLF_color, %34
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.msl
index aecec09..12e29bc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-max-uintbitstofloat/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:u32 @offset(0)
 }
 
@@ -28,61 +28,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %f:ptr<function, f32, read_write> = var
     %7:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %x_36:u32 = load %7
-    %9:u32 = max 100u, %x_36
-    %10:f32 = bitcast %9
-    store %f, %10
-    %x_39:f32 = load %f
-    %12:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_41:f32 = load %12
-    %14:bool = eq %x_39, %x_41
-    if %14 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %15:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_47:i32 = load %15
-        %17:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_50:i32 = load %17
-        %19:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_53:i32 = load %19
-        %21:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
-        %x_56:i32 = load %21
-        %23:f32 = convert %x_47
-        %24:f32 = convert %x_50
-        %25:f32 = convert %x_53
-        %26:f32 = convert %x_56
-        %27:vec4<f32> = construct %23, %24, %25, %26
-        store %x_GLF_color, %27
+    %8:u32 = load %7
+    %x_36:u32 = let %8
+    %10:u32 = max 100u, %x_36
+    %11:f32 = bitcast %10
+    store %f, %11
+    %12:f32 = load %f
+    %x_39:f32 = let %12
+    %14:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %15:f32 = load %14
+    %x_41:f32 = let %15
+    %17:bool = eq %x_39, %x_41
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %18:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %19:i32 = load %18
+        %x_47:i32 = let %19
+        %21:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %22:i32 = load %21
+        %x_50:i32 = let %22
+        %24:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %25:i32 = load %24
+        %x_53:i32 = let %25
+        %27:ptr<uniform, i32, read> = access %x_10, 0u, 0i, 0u
+        %28:i32 = load %27
+        %x_56:i32 = let %28
+        %30:f32 = convert %x_47
+        %31:f32 = let %30
+        %32:f32 = convert %x_50
+        %33:f32 = let %32
+        %34:f32 = convert %x_53
+        %35:f32 = let %34
+        %36:f32 = convert %x_56
+        %37:vec4<f32> = construct %31, %33, %35, %36
+        store %x_GLF_color, %37
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %28:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
-        %x_60:i32 = load %28
-        %x_61:f32 = convert %x_60
-        %31:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
-        store %x_GLF_color, %31
+      $B4: {  # false
+        %38:ptr<uniform, i32, read> = access %x_10, 0u, 1i, 0u
+        %39:i32 = load %38
+        %x_60:i32 = let %39
+        %41:f32 = convert %x_60
+        %x_61:f32 = let %41
+        %43:vec4<f32> = construct %x_61, %x_61, %x_61, %x_61
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %33:void = call %main_1
-    %34:vec4<f32> = load %x_GLF_color
-    %35:main_out = construct %34
-    ret %35
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.msl
index 6476631..18a63f8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %r:ptr<function, array<i32, 15>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %data:ptr<function, array<i32, 15>, read_write> = var
@@ -26,271 +26,296 @@
     %i_2:ptr<function, i32, read_write> = var
     %i_3:ptr<function, i32, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_46:i32 = load %10
-    %12:ptr<function, i32, read_write> = access %r, %x_46
-    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %14:i32 = load %13
-    store %12, %14
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_51:i32 = load %15
-    %17:ptr<function, i32, read_write> = access %r, %x_51
-    %18:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %19:i32 = load %18
-    store %17, %19
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_56:i32 = load %20
-    %22:ptr<function, i32, read_write> = access %r, %x_56
-    %23:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %24:i32 = load %23
-    store %22, %24
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_61:i32 = load %25
-    %27:ptr<function, i32, read_write> = access %r, %x_61
+    %11:i32 = load %10
+    %x_46:i32 = let %11
+    %13:ptr<function, i32, read_write> = access %r, %x_46
+    %14:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %15:i32 = load %14
+    store %13, %15
+    %16:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %17:i32 = load %16
+    %x_51:i32 = let %17
+    %19:ptr<function, i32, read_write> = access %r, %x_51
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %21:i32 = load %20
+    store %19, %21
+    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %23:i32 = load %22
+    %x_56:i32 = let %23
+    %25:ptr<function, i32, read_write> = access %r, %x_56
+    %26:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %27:i32 = load %26
+    store %25, %27
     %28:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
     %29:i32 = load %28
-    store %27, %29
-    %30:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_66:i32 = load %30
-    %32:ptr<function, i32, read_write> = access %r, %x_66
-    %33:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %34:i32 = load %33
-    store %32, %34
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_71:i32 = load %35
-    %37:ptr<function, i32, read_write> = access %r, %x_71
-    %38:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %x_61:i32 = let %29
+    %31:ptr<function, i32, read_write> = access %r, %x_61
+    %32:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %33:i32 = load %32
+    store %31, %33
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %35:i32 = load %34
+    %x_66:i32 = let %35
+    %37:ptr<function, i32, read_write> = access %r, %x_66
+    %38:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
     %39:i32 = load %38
-    %40:i32 = negation %39
-    store %37, %40
-    %41:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_77:i32 = load %41
-    %43:ptr<function, i32, read_write> = access %r, %x_77
+    store %37, %39
+    %40:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %41:i32 = load %40
+    %x_71:i32 = let %41
+    %43:ptr<function, i32, read_write> = access %r, %x_71
     %44:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
     %45:i32 = load %44
     %46:i32 = negation %45
     store %43, %46
-    %47:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-    %x_83:i32 = load %47
-    %49:ptr<function, i32, read_write> = access %r, %x_83
-    %50:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %51:i32 = load %50
-    %52:i32 = negation %51
-    store %49, %52
-    %53:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %x_89:i32 = load %53
-    %55:ptr<function, i32, read_write> = access %r, %x_89
-    %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %57:i32 = load %56
-    %58:i32 = negation %57
-    store %55, %58
-    %59:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_95:i32 = load %59
-    %61:ptr<function, i32, read_write> = access %r, %x_95
-    %62:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %63:i32 = load %62
-    %64:i32 = negation %63
-    store %61, %64
-    %65:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_101:i32 = load %65
-    %67:ptr<function, i32, read_write> = access %r, %x_101
-    %68:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %47:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %48:i32 = load %47
+    %x_77:i32 = let %48
+    %50:ptr<function, i32, read_write> = access %r, %x_77
+    %51:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %52:i32 = load %51
+    %53:i32 = negation %52
+    store %50, %53
+    %54:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %55:i32 = load %54
+    %x_83:i32 = let %55
+    %57:ptr<function, i32, read_write> = access %r, %x_83
+    %58:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %59:i32 = load %58
+    %60:i32 = negation %59
+    store %57, %60
+    %61:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %62:i32 = load %61
+    %x_89:i32 = let %62
+    %64:ptr<function, i32, read_write> = access %r, %x_89
+    %65:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %66:i32 = load %65
+    %67:i32 = negation %66
+    store %64, %67
+    %68:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
     %69:i32 = load %68
-    %70:i32 = negation %69
-    store %67, %70
-    %71:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %x_107:i32 = load %71
-    %73:ptr<function, i32, read_write> = access %r, %x_107
-    %74:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %75:i32 = load %74
-    %76:i32 = negation %75
-    store %73, %76
-    %77:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
-    %x_113:i32 = load %77
-    %79:ptr<function, i32, read_write> = access %r, %x_113
-    %80:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %81:i32 = load %80
-    %82:i32 = negation %81
-    store %79, %82
-    %83:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
-    %x_119:i32 = load %83
-    %85:ptr<function, i32, read_write> = access %r, %x_119
+    %x_95:i32 = let %69
+    %71:ptr<function, i32, read_write> = access %r, %x_95
+    %72:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %73:i32 = load %72
+    %74:i32 = negation %73
+    store %71, %74
+    %75:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %76:i32 = load %75
+    %x_101:i32 = let %76
+    %78:ptr<function, i32, read_write> = access %r, %x_101
+    %79:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %80:i32 = load %79
+    %81:i32 = negation %80
+    store %78, %81
+    %82:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
+    %83:i32 = load %82
+    %x_107:i32 = let %83
+    %85:ptr<function, i32, read_write> = access %r, %x_107
     %86:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
     %87:i32 = load %86
     %88:i32 = negation %87
     store %85, %88
-    %89:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
-    %x_125:i32 = load %89
-    %91:ptr<function, i32, read_write> = access %r, %x_125
-    %92:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %93:i32 = load %92
-    %94:i32 = negation %93
-    store %91, %94
+    %89:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
+    %90:i32 = load %89
+    %x_113:i32 = let %90
+    %92:ptr<function, i32, read_write> = access %r, %x_113
+    %93:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %94:i32 = load %93
+    %95:i32 = negation %94
+    store %92, %95
+    %96:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
+    %97:i32 = load %96
+    %x_119:i32 = let %97
+    %99:ptr<function, i32, read_write> = access %r, %x_119
+    %100:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %101:i32 = load %100
+    %102:i32 = negation %101
+    store %99, %102
+    %103:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
+    %104:i32 = load %103
+    %x_125:i32 = let %104
+    %106:ptr<function, i32, read_write> = access %r, %x_125
+    %107:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %108:i32 = load %107
+    %109:i32 = negation %108
+    store %106, %109
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %95:i32 = load %i
-        %96:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %97:i32 = load %96
-        %98:bool = lt %95, %97
-        if %98 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %110:i32 = load %i
+        %111:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %112:i32 = load %111
+        %113:bool = lt %110, %112
+        if %113 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_139:i32 = load %i
-        %100:ptr<function, i32, read_write> = access %data, %x_139
-        %101:i32 = load %i
-        %102:i32 = complement %101
-        %103:i32 = load %i
-        %104:i32 = complement %103
-        %105:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %106:i32 = load %105
-        %107:i32 = clamp %102, %104, %106
-        %108:i32 = complement %107
-        store %100, %108
-        continue %b4
+        %114:i32 = load %i
+        %x_139:i32 = let %114
+        %116:ptr<function, i32, read_write> = access %data, %x_139
+        %117:i32 = load %i
+        %118:i32 = complement %117
+        %119:i32 = load %i
+        %120:i32 = complement %119
+        %121:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %122:i32 = load %121
+        %123:i32 = let %122
+        %124:i32 = max %118, %120
+        %125:i32 = min %124, %123
+        %126:i32 = complement %125
+        store %116, %126
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %109:i32 = load %i
-        %110:i32 = add %109, 1i
-        store %i, %110
-        next_iteration %b3
+      $B4: {  # continuing
+        %127:i32 = load %i
+        %128:i32 = add %127, 1i
+        store %i, %128
+        next_iteration  # -> $B3
       }
     }
-    %111:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %112:i32 = load %111
-    store %i_1, %112
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %113:i32 = load %i_1
-        %114:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-        %115:i32 = load %114
-        %116:bool = lt %113, %115
-        if %116 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    %129:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %130:i32 = load %129
+    store %i_1, %130
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %131:i32 = load %i_1
+        %132:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+        %133:i32 = load %132
+        %134:bool = lt %131, %133
+        if %134 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_162:i32 = load %i_1
-        %118:ptr<function, i32, read_write> = access %data, %x_162
-        %119:i32 = load %i_1
-        %120:i32 = complement %119
-        %121:i32 = clamp %120, 0i, 1i
-        %122:i32 = complement %121
-        store %118, %122
-        continue %b8
+        %135:i32 = load %i_1
+        %x_162:i32 = let %135
+        %137:ptr<function, i32, read_write> = access %data, %x_162
+        %138:i32 = load %i_1
+        %139:i32 = complement %138
+        %140:i32 = max %139, 0i
+        %141:i32 = min %140, 1i
+        %142:i32 = complement %141
+        store %137, %142
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %123:i32 = load %i_1
-        %124:i32 = add %123, 1i
-        store %i_1, %124
-        next_iteration %b7
+      $B8: {  # continuing
+        %143:i32 = load %i_1
+        %144:i32 = add %143, 1i
+        store %i_1, %144
+        next_iteration  # -> $B7
       }
     }
-    %125:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %126:i32 = load %125
-    store %i_2, %126
-    loop [b: %b11, c: %b12] {  # loop_3
-      %b11 = block {  # body
-        %127:i32 = load %i_2
-        %128:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-        %129:i32 = load %128
-        %130:bool = lt %127, %129
-        if %130 [t: %b13, f: %b14] {  # if_3
-          %b13 = block {  # true
+    %145:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %146:i32 = load %145
+    store %i_2, %146
+    loop [b: $B11, c: $B12] {  # loop_3
+      $B11: {  # body
+        %147:i32 = load %i_2
+        %148:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+        %149:i32 = load %148
+        %150:bool = lt %147, %149
+        if %150 [t: $B13, f: $B14] {  # if_3
+          $B13: {  # true
             exit_if  # if_3
           }
-          %b14 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_181:i32 = load %i_2
-        %132:ptr<function, i32, read_write> = access %data, %x_181
-        %133:i32 = load %i_2
-        %134:i32 = clamp %133, 0i, 1i
-        %135:i32 = complement %134
-        store %132, %135
-        continue %b12
+        %151:i32 = load %i_2
+        %x_181:i32 = let %151
+        %153:ptr<function, i32, read_write> = access %data, %x_181
+        %154:i32 = load %i_2
+        %155:i32 = max %154, 0i
+        %156:i32 = min %155, 1i
+        %157:i32 = complement %156
+        store %153, %157
+        continue  # -> $B12
       }
-      %b12 = block {  # continuing
-        %136:i32 = load %i_2
-        %137:i32 = add %136, 1i
-        store %i_2, %137
-        next_iteration %b11
+      $B12: {  # continuing
+        %158:i32 = load %i_2
+        %159:i32 = add %158, 1i
+        store %i_2, %159
+        next_iteration  # -> $B11
       }
     }
-    %138:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %139:i32 = load %138
-    store %i_3, %139
-    loop [b: %b15, c: %b16] {  # loop_4
-      %b15 = block {  # body
-        %140:i32 = load %i_3
-        %141:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-        %142:i32 = load %141
-        %143:bool = lt %140, %142
-        if %143 [t: %b17, f: %b18] {  # if_4
-          %b17 = block {  # true
+    %160:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %161:i32 = load %160
+    store %i_3, %161
+    loop [b: $B15, c: $B16] {  # loop_4
+      $B15: {  # body
+        %162:i32 = load %i_3
+        %163:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+        %164:i32 = load %163
+        %165:bool = lt %162, %164
+        if %165 [t: $B17, f: $B18] {  # if_4
+          $B17: {  # true
             exit_if  # if_4
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_4
           }
         }
-        %144:i32 = load %i_3
-        %145:ptr<function, i32, read_write> = access %data, %144
-        %146:i32 = load %145
-        %147:i32 = load %i_3
-        %148:ptr<function, i32, read_write> = access %r, %147
-        %149:i32 = load %148
-        %150:bool = neq %146, %149
-        if %150 [t: %b19] {  # if_5
-          %b19 = block {  # true
-            %151:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %152:i32 = load %151
-            %153:f32 = convert %152
-            %154:vec4<f32> = construct %153
-            store %x_GLF_color, %154
+        %166:i32 = load %i_3
+        %167:ptr<function, i32, read_write> = access %data, %166
+        %168:i32 = load %167
+        %169:i32 = load %i_3
+        %170:ptr<function, i32, read_write> = access %r, %169
+        %171:i32 = load %170
+        %172:bool = neq %168, %171
+        if %172 [t: $B19] {  # if_5
+          $B19: {  # true
+            %173:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %174:i32 = load %173
+            %175:f32 = convert %174
+            %176:vec4<f32> = construct %175
+            store %x_GLF_color, %176
             ret
           }
         }
-        continue %b16
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        %155:i32 = load %i_3
-        %156:i32 = add %155, 1i
-        store %i_3, %156
-        next_iteration %b15
+      $B16: {  # continuing
+        %177:i32 = load %i_3
+        %178:i32 = add %177, 1i
+        store %i_3, %178
+        next_iteration  # -> $B15
       }
     }
-    %157:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %158:i32 = load %157
-    %159:f32 = convert %158
-    %160:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %161:i32 = load %160
-    %162:f32 = convert %161
-    %163:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %164:i32 = load %163
-    %165:f32 = convert %164
-    %166:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %167:i32 = load %166
-    %168:f32 = convert %167
-    %169:vec4<f32> = construct %159, %162, %165, %168
-    store %x_GLF_color, %169
+    %179:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %180:i32 = load %179
+    %181:f32 = convert %180
+    %182:f32 = let %181
+    %183:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %184:i32 = load %183
+    %185:f32 = convert %184
+    %186:f32 = let %185
+    %187:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %188:i32 = load %187
+    %189:f32 = convert %188
+    %190:f32 = let %189
+    %191:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %192:i32 = load %191
+    %193:f32 = convert %192
+    %194:vec4<f32> = construct %182, %186, %190, %193
+    store %x_GLF_color, %194
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b20 {
-  %b20 = block {
-    %171:void = call %main_1
-    %172:vec4<f32> = load %x_GLF_color
-    %173:main_out = construct %172
-    ret %173
+%tint_symbol = @fragment func():main_out {
+  $B20: {
+    %196:void = call %main_1
+    %197:vec4<f32> = load %x_GLF_color
+    %198:main_out = construct %197
+    ret %198
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.msl
index 9912064..bc0d239 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-selection-dag-negation-clamp-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -12,13 +12,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %r:ptr<function, array<i32, 15>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %data:ptr<function, array<i32, 15>, read_write> = var
@@ -26,271 +26,340 @@
     %i_2:ptr<function, i32, read_write> = var
     %i_3:ptr<function, i32, read_write> = var
     %10:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_46:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_48:i32 = load %12
-    %14:ptr<function, i32, read_write> = access %r, %x_46
-    store %14, %x_48
-    %15:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_51:i32 = load %15
+    %11:i32 = load %10
+    %x_46:i32 = let %11
+    %13:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %14:i32 = load %13
+    %x_48:i32 = let %14
+    %16:ptr<function, i32, read_write> = access %r, %x_46
+    store %16, %x_48
     %17:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_53:i32 = load %17
-    %19:ptr<function, i32, read_write> = access %r, %x_51
-    store %19, %x_53
-    %20:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_56:i32 = load %20
-    %22:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_58:i32 = load %22
-    %24:ptr<function, i32, read_write> = access %r, %x_56
-    store %24, %x_58
-    %25:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_61:i32 = load %25
-    %27:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
-    %x_63:i32 = load %27
-    %29:ptr<function, i32, read_write> = access %r, %x_61
-    store %29, %x_63
-    %30:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_66:i32 = load %30
-    %32:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
-    %x_68:i32 = load %32
-    %34:ptr<function, i32, read_write> = access %r, %x_66
-    store %34, %x_68
-    %35:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_71:i32 = load %35
-    %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_73:i32 = load %37
-    %39:ptr<function, i32, read_write> = access %r, %x_71
-    %40:i32 = negation %x_73
-    store %39, %40
-    %41:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
-    %x_77:i32 = load %41
-    %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_79:i32 = load %43
-    %45:ptr<function, i32, read_write> = access %r, %x_77
-    %46:i32 = negation %x_79
-    store %45, %46
-    %47:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
-    %x_83:i32 = load %47
-    %49:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_85:i32 = load %49
-    %51:ptr<function, i32, read_write> = access %r, %x_83
-    %52:i32 = negation %x_85
+    %18:i32 = load %17
+    %x_51:i32 = let %18
+    %20:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %21:i32 = load %20
+    %x_53:i32 = let %21
+    %23:ptr<function, i32, read_write> = access %r, %x_51
+    store %23, %x_53
+    %24:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %25:i32 = load %24
+    %x_56:i32 = let %25
+    %27:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %28:i32 = load %27
+    %x_58:i32 = let %28
+    %30:ptr<function, i32, read_write> = access %r, %x_56
+    store %30, %x_58
+    %31:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %32:i32 = load %31
+    %x_61:i32 = let %32
+    %34:ptr<uniform, i32, read> = access %x_6, 0u, 3i, 0u
+    %35:i32 = load %34
+    %x_63:i32 = let %35
+    %37:ptr<function, i32, read_write> = access %r, %x_61
+    store %37, %x_63
+    %38:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %39:i32 = load %38
+    %x_66:i32 = let %39
+    %41:ptr<uniform, i32, read> = access %x_6, 0u, 4i, 0u
+    %42:i32 = load %41
+    %x_68:i32 = let %42
+    %44:ptr<function, i32, read_write> = access %r, %x_66
+    store %44, %x_68
+    %45:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %46:i32 = load %45
+    %x_71:i32 = let %46
+    %48:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %49:i32 = load %48
+    %x_73:i32 = let %49
+    %51:ptr<function, i32, read_write> = access %r, %x_71
+    %52:i32 = negation %x_73
     store %51, %52
-    %53:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
-    %x_89:i32 = load %53
-    %55:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_91:i32 = load %55
-    %57:ptr<function, i32, read_write> = access %r, %x_89
-    %58:i32 = negation %x_91
-    store %57, %58
-    %59:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
-    %x_95:i32 = load %59
-    %61:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_97:i32 = load %61
-    %63:ptr<function, i32, read_write> = access %r, %x_95
-    %64:i32 = negation %x_97
-    store %63, %64
-    %65:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_101:i32 = load %65
-    %67:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_103:i32 = load %67
-    %69:ptr<function, i32, read_write> = access %r, %x_101
-    %70:i32 = negation %x_103
-    store %69, %70
-    %71:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
-    %x_107:i32 = load %71
-    %73:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_109:i32 = load %73
-    %75:ptr<function, i32, read_write> = access %r, %x_107
-    %76:i32 = negation %x_109
+    %53:ptr<uniform, i32, read> = access %x_6, 0u, 8i, 0u
+    %54:i32 = load %53
+    %x_77:i32 = let %54
+    %56:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %57:i32 = load %56
+    %x_79:i32 = let %57
+    %59:ptr<function, i32, read_write> = access %r, %x_77
+    %60:i32 = negation %x_79
+    store %59, %60
+    %61:ptr<uniform, i32, read> = access %x_6, 0u, 9i, 0u
+    %62:i32 = load %61
+    %x_83:i32 = let %62
+    %64:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %65:i32 = load %64
+    %x_85:i32 = let %65
+    %67:ptr<function, i32, read_write> = access %r, %x_83
+    %68:i32 = negation %x_85
+    store %67, %68
+    %69:ptr<uniform, i32, read> = access %x_6, 0u, 10i, 0u
+    %70:i32 = load %69
+    %x_89:i32 = let %70
+    %72:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %73:i32 = load %72
+    %x_91:i32 = let %73
+    %75:ptr<function, i32, read_write> = access %r, %x_89
+    %76:i32 = negation %x_91
     store %75, %76
-    %77:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
-    %x_113:i32 = load %77
-    %79:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_115:i32 = load %79
-    %81:ptr<function, i32, read_write> = access %r, %x_113
-    %82:i32 = negation %x_115
-    store %81, %82
-    %83:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
-    %x_119:i32 = load %83
-    %85:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_121:i32 = load %85
-    %87:ptr<function, i32, read_write> = access %r, %x_119
-    %88:i32 = negation %x_121
-    store %87, %88
-    %89:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
-    %x_125:i32 = load %89
-    %91:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
-    %x_127:i32 = load %91
-    %93:ptr<function, i32, read_write> = access %r, %x_125
-    %94:i32 = negation %x_127
-    store %93, %94
+    %77:ptr<uniform, i32, read> = access %x_6, 0u, 11i, 0u
+    %78:i32 = load %77
+    %x_95:i32 = let %78
+    %80:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %81:i32 = load %80
+    %x_97:i32 = let %81
+    %83:ptr<function, i32, read_write> = access %r, %x_95
+    %84:i32 = negation %x_97
+    store %83, %84
+    %85:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %86:i32 = load %85
+    %x_101:i32 = let %86
+    %88:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %89:i32 = load %88
+    %x_103:i32 = let %89
+    %91:ptr<function, i32, read_write> = access %r, %x_101
+    %92:i32 = negation %x_103
+    store %91, %92
+    %93:ptr<uniform, i32, read> = access %x_6, 0u, 12i, 0u
+    %94:i32 = load %93
+    %x_107:i32 = let %94
+    %96:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %97:i32 = load %96
+    %x_109:i32 = let %97
+    %99:ptr<function, i32, read_write> = access %r, %x_107
+    %100:i32 = negation %x_109
+    store %99, %100
+    %101:ptr<uniform, i32, read> = access %x_6, 0u, 13i, 0u
+    %102:i32 = load %101
+    %x_113:i32 = let %102
+    %104:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %105:i32 = load %104
+    %x_115:i32 = let %105
+    %107:ptr<function, i32, read_write> = access %r, %x_113
+    %108:i32 = negation %x_115
+    store %107, %108
+    %109:ptr<uniform, i32, read> = access %x_6, 0u, 14i, 0u
+    %110:i32 = load %109
+    %x_119:i32 = let %110
+    %112:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %113:i32 = load %112
+    %x_121:i32 = let %113
+    %115:ptr<function, i32, read_write> = access %r, %x_119
+    %116:i32 = negation %x_121
+    store %115, %116
+    %117:ptr<uniform, i32, read> = access %x_6, 0u, 15i, 0u
+    %118:i32 = load %117
+    %x_125:i32 = let %118
+    %120:ptr<uniform, i32, read> = access %x_6, 0u, 2i, 0u
+    %121:i32 = load %120
+    %x_127:i32 = let %121
+    %123:ptr<function, i32, read_write> = access %r, %x_125
+    %124:i32 = negation %x_127
+    store %123, %124
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_134:i32 = load %i
-        %96:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-        %x_136:i32 = load %96
-        %98:bool = lt %x_134, %x_136
-        if %98 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %125:i32 = load %i
+        %x_134:i32 = let %125
+        %127:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+        %128:i32 = load %127
+        %x_136:i32 = let %128
+        %130:bool = lt %x_134, %x_136
+        if %130 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_139:i32 = load %i
-        %x_140:i32 = load %i
-        %x_142:i32 = load %i
-        %102:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_145:i32 = load %102
-        %104:ptr<function, i32, read_write> = access %data, %x_139
-        %105:i32 = complement %x_140
-        %106:i32 = complement %x_142
-        %107:i32 = clamp %105, %106, %x_145
-        %108:i32 = complement %107
-        store %104, %108
-        continue %b4
+        %131:i32 = load %i
+        %x_139:i32 = let %131
+        %133:i32 = load %i
+        %x_140:i32 = let %133
+        %135:i32 = load %i
+        %x_142:i32 = let %135
+        %137:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %138:i32 = load %137
+        %x_145:i32 = let %138
+        %140:ptr<function, i32, read_write> = access %data, %x_139
+        %141:i32 = complement %x_140
+        %142:i32 = complement %x_142
+        %143:i32 = max %141, %142
+        %144:i32 = min %143, %x_145
+        %145:i32 = complement %144
+        store %140, %145
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_149:i32 = load %i
-        %110:i32 = add %x_149, 1i
-        store %i, %110
-        next_iteration %b3
+      $B4: {  # continuing
+        %146:i32 = load %i
+        %x_149:i32 = let %146
+        %148:i32 = add %x_149, 1i
+        store %i, %148
+        next_iteration  # -> $B3
       }
     }
-    %111:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
-    %x_152:i32 = load %111
+    %149:ptr<uniform, i32, read> = access %x_6, 0u, 5i, 0u
+    %150:i32 = load %149
+    %x_152:i32 = let %150
     store %i_1, %x_152
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %x_157:i32 = load %i_1
-        %114:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-        %x_159:i32 = load %114
-        %116:bool = lt %x_157, %x_159
-        if %116 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %152:i32 = load %i_1
+        %x_157:i32 = let %152
+        %154:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+        %155:i32 = load %154
+        %x_159:i32 = let %155
+        %157:bool = lt %x_157, %x_159
+        if %157 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_162:i32 = load %i_1
-        %x_163:i32 = load %i_1
-        %119:ptr<function, i32, read_write> = access %data, %x_162
-        %120:i32 = complement %x_163
-        %121:i32 = clamp %120, 0i, 1i
-        %122:i32 = complement %121
-        store %119, %122
-        continue %b8
+        %158:i32 = load %i_1
+        %x_162:i32 = let %158
+        %160:i32 = load %i_1
+        %x_163:i32 = let %160
+        %162:ptr<function, i32, read_write> = access %data, %x_162
+        %163:i32 = complement %x_163
+        %164:i32 = max %163, 0i
+        %165:i32 = min %164, 1i
+        %166:i32 = complement %165
+        store %162, %166
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_168:i32 = load %i_1
-        %124:i32 = add %x_168, 1i
-        store %i_1, %124
-        next_iteration %b7
+      $B8: {  # continuing
+        %167:i32 = load %i_1
+        %x_168:i32 = let %167
+        %169:i32 = add %x_168, 1i
+        store %i_1, %169
+        next_iteration  # -> $B7
       }
     }
-    %125:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
-    %x_171:i32 = load %125
+    %170:ptr<uniform, i32, read> = access %x_6, 0u, 6i, 0u
+    %171:i32 = load %170
+    %x_171:i32 = let %171
     store %i_2, %x_171
-    loop [b: %b11, c: %b12] {  # loop_3
-      %b11 = block {  # body
-        %x_176:i32 = load %i_2
-        %128:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-        %x_178:i32 = load %128
-        %130:bool = lt %x_176, %x_178
-        if %130 [t: %b13, f: %b14] {  # if_3
-          %b13 = block {  # true
+    loop [b: $B11, c: $B12] {  # loop_3
+      $B11: {  # body
+        %173:i32 = load %i_2
+        %x_176:i32 = let %173
+        %175:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+        %176:i32 = load %175
+        %x_178:i32 = let %176
+        %178:bool = lt %x_176, %x_178
+        if %178 [t: $B13, f: $B14] {  # if_3
+          $B13: {  # true
             exit_if  # if_3
           }
-          %b14 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_181:i32 = load %i_2
-        %x_182:i32 = load %i_2
-        %133:ptr<function, i32, read_write> = access %data, %x_181
-        %134:i32 = clamp %x_182, 0i, 1i
-        %135:i32 = complement %134
-        store %133, %135
-        continue %b12
+        %179:i32 = load %i_2
+        %x_181:i32 = let %179
+        %181:i32 = load %i_2
+        %x_182:i32 = let %181
+        %183:ptr<function, i32, read_write> = access %data, %x_181
+        %184:i32 = max %x_182, 0i
+        %185:i32 = min %184, 1i
+        %186:i32 = complement %185
+        store %183, %186
+        continue  # -> $B12
       }
-      %b12 = block {  # continuing
-        %x_186:i32 = load %i_2
-        %137:i32 = add %x_186, 1i
-        store %i_2, %137
-        next_iteration %b11
+      $B12: {  # continuing
+        %187:i32 = load %i_2
+        %x_186:i32 = let %187
+        %189:i32 = add %x_186, 1i
+        store %i_2, %189
+        next_iteration  # -> $B11
       }
     }
-    %138:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_189:i32 = load %138
+    %190:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %191:i32 = load %190
+    %x_189:i32 = let %191
     store %i_3, %x_189
-    loop [b: %b15, c: %b16] {  # loop_4
-      %b15 = block {  # body
-        %x_194:i32 = load %i_3
-        %141:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
-        %x_196:i32 = load %141
-        %143:bool = lt %x_194, %x_196
-        if %143 [t: %b17, f: %b18] {  # if_4
-          %b17 = block {  # true
+    loop [b: $B15, c: $B16] {  # loop_4
+      $B15: {  # body
+        %193:i32 = load %i_3
+        %x_194:i32 = let %193
+        %195:ptr<uniform, i32, read> = access %x_6, 0u, 7i, 0u
+        %196:i32 = load %195
+        %x_196:i32 = let %196
+        %198:bool = lt %x_194, %x_196
+        if %198 [t: $B17, f: $B18] {  # if_4
+          $B17: {  # true
             exit_if  # if_4
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_199:i32 = load %i_3
-        %145:ptr<function, i32, read_write> = access %data, %x_199
-        %x_201:i32 = load %145
-        %x_202:i32 = load %i_3
-        %148:ptr<function, i32, read_write> = access %r, %x_202
-        %x_204:i32 = load %148
-        %150:bool = neq %x_201, %x_204
-        if %150 [t: %b19] {  # if_5
-          %b19 = block {  # true
-            %151:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-            %x_209:i32 = load %151
-            %x_210:f32 = convert %x_209
-            %154:vec4<f32> = construct %x_210, %x_210, %x_210, %x_210
-            store %x_GLF_color, %154
+        %199:i32 = load %i_3
+        %x_199:i32 = let %199
+        %201:ptr<function, i32, read_write> = access %data, %x_199
+        %202:i32 = load %201
+        %x_201:i32 = let %202
+        %204:i32 = load %i_3
+        %x_202:i32 = let %204
+        %206:ptr<function, i32, read_write> = access %r, %x_202
+        %207:i32 = load %206
+        %x_204:i32 = let %207
+        %209:bool = neq %x_201, %x_204
+        if %209 [t: $B19] {  # if_5
+          $B19: {  # true
+            %210:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+            %211:i32 = load %210
+            %x_209:i32 = let %211
+            %213:f32 = convert %x_209
+            %x_210:f32 = let %213
+            %215:vec4<f32> = construct %x_210, %x_210, %x_210, %x_210
+            store %x_GLF_color, %215
             ret
           }
         }
-        continue %b16
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        %x_212:i32 = load %i_3
-        %156:i32 = add %x_212, 1i
-        store %i_3, %156
-        next_iteration %b15
+      $B16: {  # continuing
+        %216:i32 = load %i_3
+        %x_212:i32 = let %216
+        %218:i32 = add %x_212, 1i
+        store %i_3, %218
+        next_iteration  # -> $B15
       }
     }
-    %157:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_215:i32 = load %157
-    %159:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_218:i32 = load %159
-    %161:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_221:i32 = load %161
-    %163:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-    %x_224:i32 = load %163
-    %165:f32 = convert %x_215
-    %166:f32 = convert %x_218
-    %167:f32 = convert %x_221
-    %168:f32 = convert %x_224
-    %169:vec4<f32> = construct %165, %166, %167, %168
-    store %x_GLF_color, %169
+    %219:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %220:i32 = load %219
+    %x_215:i32 = let %220
+    %222:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %223:i32 = load %222
+    %x_218:i32 = let %223
+    %225:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %226:i32 = load %225
+    %x_221:i32 = let %226
+    %228:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+    %229:i32 = load %228
+    %x_224:i32 = let %229
+    %231:f32 = convert %x_215
+    %232:f32 = let %231
+    %233:f32 = convert %x_218
+    %234:f32 = let %233
+    %235:f32 = convert %x_221
+    %236:f32 = let %235
+    %237:f32 = convert %x_224
+    %238:vec4<f32> = construct %232, %234, %236, %237
+    store %x_GLF_color, %238
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b20 {
-  %b20 = block {
-    %171:void = call %main_1
-    %172:vec4<f32> = load %x_GLF_color
-    %173:main_out = construct %172
-    ret %173
+%tint_symbol = @fragment func():main_out {
+  $B20: {
+    %240:void = call %main_1
+    %241:vec4<f32> = load %x_GLF_color
+    %242:main_out = construct %241
+    ret %242
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.msl
index 36ec8ed..be51fb4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   quarter:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %N:ptr<function, vec4<f32>, read_write> = var
     %I:ptr<function, vec4<f32>, read_write> = var
     %Nref:ptr<function, vec4<f32>, read_write> = var
@@ -33,12 +33,12 @@
     %15:vec4<f32> = load %v
     %16:vec4<bool> = eq %15, vec4<f32>(-1.0f, -2.0f, -3.0f, -4.0f)
     %17:bool = all %16
-    if %17 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %17 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -46,8 +46,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
+%tint_symbol = @fragment func():main_out {
+  $B5: {
     %19:void = call %main_1
     %20:vec4<f32> = load %x_GLF_color
     %21:main_out = construct %20
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.msl
index a027e89..8e00a87 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-value-tracking-uniform-incident/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   quarter:f32 @offset(0)
 }
 
@@ -8,37 +8,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %N:ptr<function, vec4<f32>, read_write> = var
     %I:ptr<function, vec4<f32>, read_write> = var
     %Nref:ptr<function, vec4<f32>, read_write> = var
     %v:ptr<function, vec4<f32>, read_write> = var
     store %N, vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f)
     %8:ptr<uniform, f32, read> = access %x_7, 0u
-    %x_44:f32 = load %8
-    %10:vec4<f32> = construct 4.0f, 87.589996337890625f, %x_44, 92.51000213623046875f
-    store %I, %10
+    %9:f32 = load %8
+    %x_44:f32 = let %9
+    %11:vec4<f32> = construct 4.0f, 87.589996337890625f, %x_44, 92.51000213623046875f
+    store %I, %11
     store %Nref, vec4<f32>(17.049999237060546875f, -6.09999990463256835938f, 4329.37060546875f, 2.70000004768371582031f)
-    %x_46:vec4<f32> = load %N
-    %x_47:vec4<f32> = load %I
-    %x_48:vec4<f32> = load %Nref
-    %14:vec4<f32> = faceForward %x_46, %x_47, %x_48
-    store %v, %14
-    %x_50:vec4<f32> = load %v
-    %16:vec4<bool> = eq %x_50, vec4<f32>(-1.0f, -2.0f, -3.0f, -4.0f)
-    %17:bool = all %16
-    if %17 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %12:vec4<f32> = load %N
+    %x_46:vec4<f32> = let %12
+    %14:vec4<f32> = load %I
+    %x_47:vec4<f32> = let %14
+    %16:vec4<f32> = load %Nref
+    %x_48:vec4<f32> = let %16
+    %18:vec4<f32> = faceForward %x_46, %x_47, %x_48
+    store %v, %18
+    %19:vec4<f32> = load %v
+    %x_50:vec4<f32> = let %19
+    %21:vec4<bool> = eq %x_50, vec4<f32>(-1.0f, -2.0f, -3.0f, -4.0f)
+    %22:bool = all %21
+    if %22 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_1
       }
@@ -46,12 +51,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.msl
index aa9939b..8b140a3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,21 +8,21 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec2<f32>, read_write> = var
     store %a, vec2<f32>(1.0f)
     %6:ptr<uniform, i32, read> = access %x_6, 0u
     %7:i32 = load %6
     %8:bool = eq %7, 1i
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
         %9:f32 = load_vector_element %a, 0u
         %10:f32 = add %9, 1.0f
         store_vector_element %a, 0u, %10
@@ -36,12 +36,12 @@
     %14:vec2<f32> = load %b
     %15:vec2<bool> = eq %14, vec2<f32>(3.0f, 4.0f)
     %16:bool = all %15
-    if %16 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    if %16 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -49,8 +49,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
+%tint_symbol = @fragment func():main_out {
+  $B6: {
     %18:void = call %main_1
     %19:vec4<f32> = load %x_GLF_color
     %20:main_out = construct %19
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.msl
index 30af25a..699c8aa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-inc-unused-comp/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,40 +8,44 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, vec2<f32>, read_write> = var
     %b:ptr<function, vec2<f32>, read_write> = var
     store %a, vec2<f32>(1.0f)
     %6:ptr<uniform, i32, read> = access %x_6, 0u
-    %x_38:i32 = load %6
-    %8:bool = eq %x_38, 1i
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_43:f32 = load_vector_element %a, 0u
-        %10:f32 = add %x_43, 1.0f
-        store_vector_element %a, 0u, %10
+    %7:i32 = load %6
+    %x_38:i32 = let %7
+    %9:bool = eq %x_38, 1i
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:f32 = load_vector_element %a, 0u
+        %x_43:f32 = let %10
+        %12:f32 = add %x_43, 1.0f
+        store_vector_element %a, 0u, %12
         exit_if  # if_1
       }
     }
-    %x_47:f32 = load_vector_element %a, 1u
-    %12:vec2<f32> = construct %x_47, %x_47
-    %13:vec2<f32> = add %12, vec2<f32>(2.0f, 3.0f)
-    store %b, %13
-    %x_50:vec2<f32> = load %b
-    %15:vec2<bool> = eq %x_50, vec2<f32>(3.0f, 4.0f)
-    %16:bool = all %15
-    if %16 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
+    %13:f32 = load_vector_element %a, 1u
+    %x_47:f32 = let %13
+    %15:vec2<f32> = construct %x_47, %x_47
+    %16:vec2<f32> = add %15, vec2<f32>(2.0f, 3.0f)
+    store %b, %16
+    %17:vec2<f32> = load %b
+    %x_50:vec2<f32> = let %17
+    %19:vec2<bool> = eq %x_50, vec2<f32>(3.0f, 4.0f)
+    %20:bool = all %19
+    if %20 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -49,12 +53,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    ret %24
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.msl
index efdd3b1..99a07a8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,49 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, vec2<f32>, read_write> = var
+    %b:ptr<function, vec2<f32>, read_write> = var
+    store %a, vec2<f32>(1.0f)
+    %5:f32 = load_vector_element %a, 0u
+    %6:f32 = add %5, 0.5f
+    store_vector_element %a, 0u, %6
+    %7:vec2<f32> = load %a
+    %8:vec2<f32> = fract %7
+    store %b, %8
+    %9:f32 = load_vector_element %b, 0u
+    %10:bool = eq %9, 0.5f
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.msl
index efdd3b1..a817efc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-dce-unused-component/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,52 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %a:ptr<function, vec2<f32>, read_write> = var
+    %b:ptr<function, vec2<f32>, read_write> = var
+    store %a, vec2<f32>(1.0f)
+    %5:f32 = load_vector_element %a, 0u
+    %x_25:f32 = let %5
+    %7:f32 = add %x_25, 0.5f
+    store_vector_element %a, 0u, %7
+    %8:vec2<f32> = load %a
+    %x_28:vec2<f32> = let %8
+    %10:vec2<f32> = fract %x_28
+    store %b, %10
+    %11:f32 = load_vector_element %b, 0u
+    %x_31:f32 = let %11
+    %13:bool = eq %x_31, 0.5f
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.msl
index efdd3b1..bd791aa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,43 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %v:ptr<function, vec2<f32>, read_write> = var
+    store %v, vec2<f32>(0.62581348419189453125f, 13.4269504547119140625f)
+    %4:f32 = load_vector_element %v, 0u
+    %5:f32 = load_vector_element %v, 1u
+    %6:bool = lt %4, %5
+    if %6 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %8:void = call %main_1
+    %9:vec4<f32> = load %x_GLF_color
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.msl
index efdd3b1..c59325e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-vector-log2-cosh/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,45 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %v:ptr<function, vec2<f32>, read_write> = var
+    store %v, vec2<f32>(0.62581348419189453125f, 13.4269504547119140625f)
+    %4:f32 = load_vector_element %v, 0u
+    %x_27:f32 = let %4
+    %6:f32 = load_vector_element %v, 1u
+    %x_29:f32 = let %6
+    %8:bool = lt %x_27, %x_29
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f)
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.msl
index 36d61fc..d6ccbea 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %x_54:ptr<function, bool, read_write> = var
     %x_55:ptr<function, bool, read_write> = var
@@ -44,57 +44,61 @@
     %16:f32 = load_vector_element %v1, 1u
     %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
     %18:f32 = load %17
-    %x_47:bool = gt %16, %18
+    %19:bool = gt %16, %18
+    %x_47:bool = let %19
     store %x_55, %x_47
-    if %x_47 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %20:f32 = load_vector_element %v1, 1u
-        %21:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %22:f32 = load %21
-        %23:bool = lt %20, %22
-        store %x_54, %23
-        %24:bool = load %x_54
-        store %x_55, %24
+    if %x_47 [t: $B3] {  # if_1
+      $B3: {  # true
+        %21:f32 = load_vector_element %v1, 1u
+        %22:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %23:f32 = load %22
+        %24:bool = lt %21, %23
+        store %x_54, %24
+        %25:bool = load %x_54
+        store %x_55, %25
         exit_if  # if_1
       }
     }
-    %25:bool = load %x_55
-    if %25 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %27:i32 = load %26
-        %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+    %26:bool = load %x_55
+    if %26 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %27:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %28:i32 = load %27
+        %29:f32 = convert %28
+        %30:f32 = let %29
+        %31:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %32:i32 = load %31
+        %33:f32 = convert %32
+        %34:f32 = let %33
+        %35:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
         %36:i32 = load %35
         %37:f32 = convert %36
-        %38:vec4<f32> = construct %28, %31, %34, %37
-        store %x_GLF_color, %38
-        exit_if  # if_2
-      }
-      %b5 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:f32 = let %37
+        %39:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
         %40:i32 = load %39
         %41:f32 = convert %40
-        %42:vec4<f32> = construct %41
+        %42:vec4<f32> = construct %30, %34, %38, %41
         store %x_GLF_color, %42
         exit_if  # if_2
       }
+      $B5: {  # false
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %44:i32 = load %43
+        %45:f32 = convert %44
+        %46:vec4<f32> = construct %45
+        store %x_GLF_color, %46
+        exit_if  # if_2
+      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.msl
index c84b3fb..38dd815 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-apfloat-nan-cos-cos/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -20,81 +20,98 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v1:ptr<function, vec2<f32>, read_write> = var
     %x_54:ptr<function, bool, read_write> = var
     %x_55_phi:ptr<function, bool, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-    %x_35:i32 = load %8
-    %10:vec2<i32> = construct -1i, %x_35
-    %11:vec2<f32> = bitcast %10
-    %12:vec2<f32> = cos %11
+    %9:i32 = load %8
+    %x_35:i32 = let %9
+    %11:vec2<i32> = construct -1i, %x_35
+    %12:vec2<f32> = bitcast %11
     %13:vec2<f32> = cos %12
-    store %v1, %13
-    %x_41:f32 = load_vector_element %v1, 0u
-    %15:vec4<f32> = construct %x_41, %x_41, %x_41, %x_41
-    store %x_GLF_color, %15
-    %x_44:f32 = load_vector_element %v1, 1u
-    %17:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_46:f32 = load %17
-    %x_47:bool = gt %x_44, %x_46
+    %14:vec2<f32> = cos %13
+    store %v1, %14
+    %15:f32 = load_vector_element %v1, 0u
+    %x_41:f32 = let %15
+    %17:vec4<f32> = construct %x_41, %x_41, %x_41, %x_41
+    store %x_GLF_color, %17
+    %18:f32 = load_vector_element %v1, 1u
+    %x_44:f32 = let %18
+    %20:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %21:f32 = load %20
+    %x_46:f32 = let %21
+    %23:bool = gt %x_44, %x_46
+    %x_47:bool = let %23
     store %x_55_phi, %x_47
-    if %x_47 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_51:f32 = load_vector_element %v1, 1u
-        %21:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
-        %x_53:f32 = load %21
-        %23:bool = lt %x_51, %x_53
-        store %x_54, %23
-        %24:bool = load %x_54
-        store %x_55_phi, %24
+    if %x_47 [t: $B3] {  # if_1
+      $B3: {  # true
+        %25:f32 = load_vector_element %v1, 1u
+        %x_51:f32 = let %25
+        %27:ptr<uniform, f32, read> = access %x_8, 0u, 1i, 0u
+        %28:f32 = load %27
+        %x_53:f32 = let %28
+        %30:bool = lt %x_51, %x_53
+        store %x_54, %30
+        %31:bool = load %x_54
+        store %x_55_phi, %31
         exit_if  # if_1
       }
     }
-    %x_55:bool = load %x_55_phi
-    if %x_55 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %26:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_60:i32 = load %26
-        %28:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_63:i32 = load %28
-        %30:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_66:i32 = load %30
-        %32:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
-        %x_69:i32 = load %32
-        %34:f32 = convert %x_60
-        %35:f32 = convert %x_63
-        %36:f32 = convert %x_66
-        %37:f32 = convert %x_69
-        %38:vec4<f32> = construct %34, %35, %36, %37
-        store %x_GLF_color, %38
+    %32:bool = load %x_55_phi
+    %x_55:bool = let %32
+    if %x_55 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %34:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %35:i32 = load %34
+        %x_60:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_63:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %41:i32 = load %40
+        %x_66:i32 = let %41
+        %43:ptr<uniform, i32, read> = access %x_6, 0u, 0i, 0u
+        %44:i32 = load %43
+        %x_69:i32 = let %44
+        %46:f32 = convert %x_60
+        %47:f32 = let %46
+        %48:f32 = convert %x_63
+        %49:f32 = let %48
+        %50:f32 = convert %x_66
+        %51:f32 = let %50
+        %52:f32 = convert %x_69
+        %53:vec4<f32> = construct %47, %49, %51, %52
+        store %x_GLF_color, %53
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %39:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
-        %x_73:i32 = load %39
-        %x_74:f32 = convert %x_73
-        %42:vec4<f32> = construct %x_74, %x_74, %x_74, %x_74
-        store %x_GLF_color, %42
+      $B5: {  # false
+        %54:ptr<uniform, i32, read> = access %x_6, 0u, 1i, 0u
+        %55:i32 = load %54
+        %x_73:i32 = let %55
+        %57:f32 = convert %x_73
+        %x_74:f32 = let %57
+        %59:vec4<f32> = construct %x_74, %x_74, %x_74, %x_74
+        store %x_GLF_color, %59
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.msl
index 9fa3a55..fad44d2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:u32 @offset(0)
 }
 
@@ -28,69 +28,84 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, u32, read_write> = var
     %9:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
     %10:u32 = load %9
-    %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %12:f32 = load %11
-    %13:u32 = convert %12
-    %14:u32 = shiftr %10, %13
-    store %a, %14
-    %15:u32 = load %a
-    %16:f32 = bitcast %15
-    store %b, %16
-    %17:f32 = load %b
-    %18:u32 = bitcast %17
-    store %c, %18
-    %19:u32 = load %c
-    %20:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %21:u32 = load %20
-    %22:bool = eq %19, %21
-    if %22 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %24:i32 = load %23
-        %25:f32 = convert %24
-        %26:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+    %11:u32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %13:f32 = load %12
+    %14:u32 = call %tint_f32_to_u32, %13
+    %16:u32 = and %14, 31u
+    %17:u32 = shr %11, %16
+    store %a, %17
+    %18:u32 = load %a
+    %19:f32 = bitcast %18
+    store %b, %19
+    %20:f32 = load %b
+    %21:u32 = bitcast %20
+    store %c, %21
+    %22:u32 = load %c
+    %23:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
+    %24:u32 = load %23
+    %25:bool = eq %22, %24
+    if %25 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %26:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
         %27:i32 = load %26
         %28:f32 = convert %27
-        %29:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %30:i32 = load %29
-        %31:f32 = convert %30
-        %32:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %33:i32 = load %32
-        %34:f32 = convert %33
-        %35:vec4<f32> = construct %25, %28, %31, %34
-        store %x_GLF_color, %35
+        %29:f32 = let %28
+        %30:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %31:i32 = load %30
+        %32:f32 = convert %31
+        %33:f32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %35:i32 = load %34
+        %36:f32 = convert %35
+        %37:f32 = let %36
+        %38:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %39:i32 = load %38
+        %40:f32 = convert %39
+        %41:vec4<f32> = construct %29, %33, %37, %40
+        store %x_GLF_color, %41
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %36:f32 = load %b
-        %37:vec4<f32> = construct %36
-        store %x_GLF_color, %37
+      $B4: {  # false
+        %42:f32 = load %b
+        %43:vec4<f32> = construct %42
+        store %x_GLF_color, %43
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %45:void = call %main_1
+    %46:vec4<f32> = load %x_GLF_color
+    %47:main_out = construct %46
+    ret %47
+  }
+}
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B6: {
+    %49:u32 = convert %value
+    %50:bool = gte %value, 0.0f
+    %51:u32 = select 0u, %49, %50
+    %52:bool = lte %value, 4294967040.0f
+    %53:u32 = select 4294967295u, %51, %52
+    ret %53
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.msl
index e7ce436..2d7dba8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-machine-value-type-uint-to-float/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:u32 @offset(0)
 }
 
@@ -28,69 +28,94 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_8:ptr<uniform, buf2, read> = var @binding_point(0, 2)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_12:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %a:ptr<function, u32, read_write> = var
     %b:ptr<function, f32, read_write> = var
     %c:ptr<function, u32, read_write> = var
     %9:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %x_38:u32 = load %9
-    %11:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
-    %x_40:f32 = load %11
-    %13:u32 = convert %x_40
-    %14:u32 = shiftr %x_38, %13
-    store %a, %14
-    %x_43:u32 = load %a
-    %16:f32 = bitcast %x_43
-    store %b, %16
-    %x_45:f32 = load %b
-    %18:u32 = bitcast %x_45
-    store %c, %18
-    %x_47:u32 = load %c
-    %20:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
-    %x_49:u32 = load %20
-    %22:bool = eq %x_47, %x_49
-    if %22 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %23:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %x_55:i32 = load %23
-        %25:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_58:i32 = load %25
-        %27:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
-        %x_61:i32 = load %27
-        %29:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
-        %x_64:i32 = load %29
-        %31:f32 = convert %x_55
-        %32:f32 = convert %x_58
-        %33:f32 = convert %x_61
-        %34:f32 = convert %x_64
-        %35:vec4<f32> = construct %31, %32, %33, %34
-        store %x_GLF_color, %35
+    %10:u32 = load %9
+    %x_38:u32 = let %10
+    %12:ptr<uniform, f32, read> = access %x_8, 0u, 0i, 0u
+    %13:f32 = load %12
+    %x_40:f32 = let %13
+    %15:u32 = call %tint_f32_to_u32, %x_40
+    %17:u32 = and %15, 31u
+    %18:u32 = shr %x_38, %17
+    store %a, %18
+    %19:u32 = load %a
+    %x_43:u32 = let %19
+    %21:f32 = bitcast %x_43
+    store %b, %21
+    %22:f32 = load %b
+    %x_45:f32 = let %22
+    %24:u32 = bitcast %x_45
+    store %c, %24
+    %25:u32 = load %c
+    %x_47:u32 = let %25
+    %27:ptr<uniform, u32, read> = access %x_6, 0u, 0i, 0u
+    %28:u32 = load %27
+    %x_49:u32 = let %28
+    %30:bool = eq %x_47, %x_49
+    if %30 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %31:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %32:i32 = load %31
+        %x_55:i32 = let %32
+        %34:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %35:i32 = load %34
+        %x_58:i32 = let %35
+        %37:ptr<uniform, i32, read> = access %x_12, 0u, 1i, 0u
+        %38:i32 = load %37
+        %x_61:i32 = let %38
+        %40:ptr<uniform, i32, read> = access %x_12, 0u, 0i, 0u
+        %41:i32 = load %40
+        %x_64:i32 = let %41
+        %43:f32 = convert %x_55
+        %44:f32 = let %43
+        %45:f32 = convert %x_58
+        %46:f32 = let %45
+        %47:f32 = convert %x_61
+        %48:f32 = let %47
+        %49:f32 = convert %x_64
+        %50:vec4<f32> = construct %44, %46, %48, %49
+        store %x_GLF_color, %50
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_67:f32 = load %b
-        %37:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
-        store %x_GLF_color, %37
+      $B4: {  # false
+        %51:f32 = load %b
+        %x_67:f32 = let %51
+        %53:vec4<f32> = construct %x_67, %x_67, %x_67, %x_67
+        store %x_GLF_color, %53
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b5 {
-  %b5 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B5: {
+    %55:void = call %main_1
+    %56:vec4<f32> = load %x_GLF_color
+    %57:main_out = construct %56
+    ret %57
+  }
+}
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B6: {
+    %59:u32 = convert %value
+    %60:bool = gte %value, 0.0f
+    %61:u32 = select 0u, %59, %60
+    %62:bool = lte %value, 4294967040.0f
+    %63:u32 = select 4294967295u, %61, %62
+    ret %63
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.msl
index 0ed63e3..62a4844 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,14 +20,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<f32, 2>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -44,144 +44,151 @@
     %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
     %17:i32 = load %16
     store %i, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %18:i32 = load %i
         %19:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
         %20:i32 = load %19
         %21:bool = lt %18, %20
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %21 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
         %23:i32 = load %22
         store %j, %23
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
             %24:i32 = load %j
             %25:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
             %26:i32 = load %25
             %27:bool = lt %24, %26
-            if %27 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if %27 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_66:i32 = load %j
-            switch %x_66 [c: (1i, %b11), c: (0i, %b12), c: (default, %b13)] {  # switch_1
-              %b11 = block {  # case
-                %x_78:i32 = load %i
-                %30:ptr<function, f32, read_write> = access %A, %x_78
-                %31:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-                %32:f32 = load %31
-                store %30, %32
+            %28:i32 = load %j
+            %x_66:i32 = let %28
+            switch %x_66 [c: (1i, $B11), c: (0i, $B12), c: (default, $B13)] {  # switch_1
+              $B11: {  # case
+                %30:i32 = load %i
+                %x_78:i32 = let %30
+                %32:ptr<function, f32, read_write> = access %A, %x_78
+                %33:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+                %34:f32 = load %33
+                store %32, %34
                 exit_switch  # switch_1
               }
-              %b12 = block {  # case
-                %33:i32 = load %i
-                %34:bool = lt -2147483648i, %33
-                if %34 [t: %b14] {  # if_3
-                  %b14 = block {  # true
-                    continue %b8
+              $B12: {  # case
+                %35:i32 = load %i
+                %36:bool = lt -2147483648i, %35
+                if %36 [t: $B14] {  # if_3
+                  $B14: {  # true
+                    continue  # -> $B8
                   }
                 }
-                %x_74:i32 = load %i
-                %36:ptr<function, f32, read_write> = access %A, %x_74
-                %37:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-                %38:f32 = load %37
-                store %36, %38
+                %37:i32 = load %i
+                %x_74:i32 = let %37
+                %39:ptr<function, f32, read_write> = access %A, %x_74
+                %40:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+                %41:f32 = load %40
+                store %39, %41
                 exit_switch  # switch_1
               }
-              %b13 = block {  # case
+              $B13: {  # case
                 exit_switch  # switch_1
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %39:i32 = load %j
-            %40:i32 = add %39, 1i
-            store %j, %40
-            next_iteration %b7
+          $B8: {  # continuing
+            %42:i32 = load %j
+            %43:i32 = add %42, 1i
+            store %j, %43
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %41:i32 = load %i
-        %42:i32 = add %41, 1i
-        store %i, %42
-        next_iteration %b3
+      $B4: {  # continuing
+        %44:i32 = load %i
+        %45:i32 = add %44, 1i
+        store %i, %45
+        next_iteration  # -> $B3
       }
     }
-    %43:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %44:i32 = load %43
-    %45:ptr<function, f32, read_write> = access %A, %44
-    %46:f32 = load %45
-    %47:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %48:f32 = load %47
-    %x_92:bool = eq %46, %48
+    %46:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %47:i32 = load %46
+    %48:ptr<function, f32, read_write> = access %A, %47
+    %49:f32 = load %48
+    %50:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %51:f32 = load %50
+    %52:bool = eq %49, %51
+    %x_92:bool = let %52
     store %x_102, %x_92
-    if %x_92 [t: %b15] {  # if_4
-      %b15 = block {  # true
-        %50:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %51:i32 = load %50
-        %52:ptr<function, f32, read_write> = access %A, %51
-        %53:f32 = load %52
-        %54:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %55:f32 = load %54
-        %56:bool = eq %53, %55
-        store %x_101, %56
-        %57:bool = load %x_101
-        store %x_102, %57
+    if %x_92 [t: $B15] {  # if_4
+      $B15: {  # true
+        %54:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %55:i32 = load %54
+        %56:ptr<function, f32, read_write> = access %A, %55
+        %57:f32 = load %56
+        %58:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %59:f32 = load %58
+        %60:bool = eq %57, %59
+        store %x_101, %60
+        %61:bool = load %x_101
+        store %x_102, %61
         exit_if  # if_4
       }
     }
-    %58:bool = load %x_102
-    if %58 [t: %b16, f: %b17] {  # if_5
-      %b16 = block {  # true
-        %59:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %60:i32 = load %59
-        %61:f32 = convert %60
-        %62:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %63:i32 = load %62
-        %64:f32 = convert %63
-        %65:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %66:i32 = load %65
-        %67:f32 = convert %66
-        %68:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %69:i32 = load %68
-        %70:f32 = convert %69
-        %71:vec4<f32> = construct %61, %64, %67, %70
-        store %x_GLF_color, %71
+    %62:bool = load %x_102
+    if %62 [t: $B16, f: $B17] {  # if_5
+      $B16: {  # true
+        %63:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %64:i32 = load %63
+        %65:f32 = convert %64
+        %66:f32 = let %65
+        %67:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %68:i32 = load %67
+        %69:f32 = convert %68
+        %70:f32 = let %69
+        %71:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %72:i32 = load %71
+        %73:f32 = convert %72
+        %74:f32 = let %73
+        %75:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %76:i32 = load %75
+        %77:f32 = convert %76
+        %78:vec4<f32> = construct %66, %70, %74, %77
+        store %x_GLF_color, %78
         exit_if  # if_5
       }
-      %b17 = block {  # false
-        %72:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %73:i32 = load %72
-        %74:f32 = convert %73
-        %75:vec4<f32> = construct %74
-        store %x_GLF_color, %75
+      $B17: {  # false
+        %79:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %80:i32 = load %79
+        %81:f32 = convert %80
+        %82:vec4<f32> = construct %81
+        store %x_GLF_color, %82
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %77:void = call %main_1
-    %78:vec4<f32> = load %x_GLF_color
-    %79:main_out = construct %78
-    ret %79
+%tint_symbol = @fragment func():main_out {
+  $B18: {
+    %84:void = call %main_1
+    %85:vec4<f32> = load %x_GLF_color
+    %86:main_out = construct %85
+    ret %86
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.msl
index 1501033..0ab11a6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-negative-left-shift/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:f32 @offset(0)
 }
 
@@ -20,168 +20,201 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<f32, 2>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %x_101:ptr<function, bool, read_write> = var
     %x_102_phi:ptr<function, bool, read_write> = var
     %10:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_39:f32 = load %10
-    %12:ptr<function, f32, read_write> = access %A, 0i
-    store %12, %x_39
-    %13:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
-    %x_42:f32 = load %13
-    %15:ptr<function, f32, read_write> = access %A, 1i
-    store %15, %x_42
-    %16:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_45:i32 = load %16
+    %11:f32 = load %10
+    %x_39:f32 = let %11
+    %13:ptr<function, f32, read_write> = access %A, 0i
+    store %13, %x_39
+    %14:ptr<uniform, f32, read> = access %x_6, 0u, 1i, 0u
+    %15:f32 = load %14
+    %x_42:f32 = let %15
+    %17:ptr<function, f32, read_write> = access %A, 1i
+    store %17, %x_42
+    %18:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %19:i32 = load %18
+    %x_45:i32 = let %19
     store %i, %x_45
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_50:i32 = load %i
-        %19:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
-        %x_52:i32 = load %19
-        %21:bool = lt %x_50, %x_52
-        if %21 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %21:i32 = load %i
+        %x_50:i32 = let %21
+        %23:ptr<uniform, i32, read> = access %x_9, 0u, 3i, 0u
+        %24:i32 = load %23
+        %x_52:i32 = let %24
+        %26:bool = lt %x_50, %x_52
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %22:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_56:i32 = load %22
+        %27:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %28:i32 = load %27
+        %x_56:i32 = let %28
         store %j, %x_56
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
-            %x_61:i32 = load %j
-            %25:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
-            %x_63:i32 = load %25
-            %27:bool = lt %x_61, %x_63
-            if %27 [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+        loop [b: $B7, c: $B8] {  # loop_2
+          $B7: {  # body
+            %30:i32 = load %j
+            %x_61:i32 = let %30
+            %32:ptr<uniform, i32, read> = access %x_9, 0u, 2i, 0u
+            %33:i32 = load %32
+            %x_63:i32 = let %33
+            %35:bool = lt %x_61, %x_63
+            if %35 [t: $B9, f: $B10] {  # if_2
+              $B9: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_66:i32 = load %j
-            switch %x_66 [c: (1i, %b11), c: (0i, %b12), c: (default, %b13)] {  # switch_1
-              %b11 = block {  # case
-                %x_78:i32 = load %i
-                %30:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-                %x_80:f32 = load %30
-                %32:ptr<function, f32, read_write> = access %A, %x_78
-                store %32, %x_80
+            %36:i32 = load %j
+            %x_66:i32 = let %36
+            switch %x_66 [c: (1i, $B11), c: (0i, $B12), c: (default, $B13)] {  # switch_1
+              $B11: {  # case
+                %38:i32 = load %i
+                %x_78:i32 = let %38
+                %40:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+                %41:f32 = load %40
+                %x_80:f32 = let %41
+                %43:ptr<function, f32, read_write> = access %A, %x_78
+                store %43, %x_80
                 exit_switch  # switch_1
               }
-              %b12 = block {  # case
-                %x_70:i32 = load %i
-                %34:bool = lt -2147483648i, %x_70
-                if %34 [t: %b14] {  # if_3
-                  %b14 = block {  # true
-                    continue %b8
+              $B12: {  # case
+                %44:i32 = load %i
+                %x_70:i32 = let %44
+                %46:bool = lt -2147483648i, %x_70
+                if %46 [t: $B14] {  # if_3
+                  $B14: {  # true
+                    continue  # -> $B8
                   }
                 }
-                %x_74:i32 = load %i
-                %36:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
-                %x_76:f32 = load %36
-                %38:ptr<function, f32, read_write> = access %A, %x_74
-                store %38, %x_76
+                %47:i32 = load %i
+                %x_74:i32 = let %47
+                %49:ptr<uniform, f32, read> = access %x_6, 0u, 2i, 0u
+                %50:f32 = load %49
+                %x_76:f32 = let %50
+                %52:ptr<function, f32, read_write> = access %A, %x_74
+                store %52, %x_76
                 exit_switch  # switch_1
               }
-              %b13 = block {  # case
+              $B13: {  # case
                 exit_switch  # switch_1
               }
             }
-            continue %b8
+            continue  # -> $B8
           }
-          %b8 = block {  # continuing
-            %x_82:i32 = load %j
-            %40:i32 = add %x_82, 1i
-            store %j, %40
-            next_iteration %b7
+          $B8: {  # continuing
+            %53:i32 = load %j
+            %x_82:i32 = let %53
+            %55:i32 = add %x_82, 1i
+            store %j, %55
+            next_iteration  # -> $B7
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_84:i32 = load %i
-        %42:i32 = add %x_84, 1i
-        store %i, %42
-        next_iteration %b3
+      $B4: {  # continuing
+        %56:i32 = load %i
+        %x_84:i32 = let %56
+        %58:i32 = add %x_84, 1i
+        store %i, %58
+        next_iteration  # -> $B3
       }
     }
-    %43:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-    %x_87:i32 = load %43
-    %45:ptr<function, f32, read_write> = access %A, %x_87
-    %x_89:f32 = load %45
-    %47:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-    %x_91:f32 = load %47
-    %x_92:bool = eq %x_89, %x_91
+    %59:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+    %60:i32 = load %59
+    %x_87:i32 = let %60
+    %62:ptr<function, f32, read_write> = access %A, %x_87
+    %63:f32 = load %62
+    %x_89:f32 = let %63
+    %65:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+    %66:f32 = load %65
+    %x_91:f32 = let %66
+    %68:bool = eq %x_89, %x_91
+    %x_92:bool = let %68
     store %x_102_phi, %x_92
-    if %x_92 [t: %b15] {  # if_4
-      %b15 = block {  # true
-        %50:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_96:i32 = load %50
-        %52:ptr<function, f32, read_write> = access %A, %x_96
-        %x_98:f32 = load %52
-        %54:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
-        %x_100:f32 = load %54
-        %56:bool = eq %x_98, %x_100
-        store %x_101, %56
-        %57:bool = load %x_101
-        store %x_102_phi, %57
+    if %x_92 [t: $B15] {  # if_4
+      $B15: {  # true
+        %70:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %71:i32 = load %70
+        %x_96:i32 = let %71
+        %73:ptr<function, f32, read_write> = access %A, %x_96
+        %74:f32 = load %73
+        %x_98:f32 = let %74
+        %76:ptr<uniform, f32, read> = access %x_6, 0u, 0i, 0u
+        %77:f32 = load %76
+        %x_100:f32 = let %77
+        %79:bool = eq %x_98, %x_100
+        store %x_101, %79
+        %80:bool = load %x_101
+        store %x_102_phi, %80
         exit_if  # if_4
       }
     }
-    %x_102:bool = load %x_102_phi
-    if %x_102 [t: %b16, f: %b17] {  # if_5
-      %b16 = block {  # true
-        %59:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_107:i32 = load %59
-        %61:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_110:i32 = load %61
-        %63:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
-        %x_113:i32 = load %63
-        %65:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_116:i32 = load %65
-        %67:f32 = convert %x_107
-        %68:f32 = convert %x_110
-        %69:f32 = convert %x_113
-        %70:f32 = convert %x_116
-        %71:vec4<f32> = construct %67, %68, %69, %70
-        store %x_GLF_color, %71
+    %81:bool = load %x_102_phi
+    %x_102:bool = let %81
+    if %x_102 [t: $B16, f: $B17] {  # if_5
+      $B16: {  # true
+        %83:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %84:i32 = load %83
+        %x_107:i32 = let %84
+        %86:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %87:i32 = load %86
+        %x_110:i32 = let %87
+        %89:ptr<uniform, i32, read> = access %x_9, 0u, 0i, 0u
+        %90:i32 = load %89
+        %x_113:i32 = let %90
+        %92:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %93:i32 = load %92
+        %x_116:i32 = let %93
+        %95:f32 = convert %x_107
+        %96:f32 = let %95
+        %97:f32 = convert %x_110
+        %98:f32 = let %97
+        %99:f32 = convert %x_113
+        %100:f32 = let %99
+        %101:f32 = convert %x_116
+        %102:vec4<f32> = construct %96, %98, %100, %101
+        store %x_GLF_color, %102
         exit_if  # if_5
       }
-      %b17 = block {  # false
-        %72:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
-        %x_120:i32 = load %72
-        %x_121:f32 = convert %x_120
-        %75:vec4<f32> = construct %x_121, %x_121, %x_121, %x_121
-        store %x_GLF_color, %75
+      $B17: {  # false
+        %103:ptr<uniform, i32, read> = access %x_9, 0u, 1i, 0u
+        %104:i32 = load %103
+        %x_120:i32 = let %104
+        %106:f32 = convert %x_120
+        %x_121:f32 = let %106
+        %108:vec4<f32> = construct %x_121, %x_121, %x_121, %x_121
+        store %x_GLF_color, %108
         exit_if  # if_5
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %77:void = call %main_1
-    %78:vec4<f32> = load %x_GLF_color
-    %79:main_out = construct %78
-    ret %79
+%tint_symbol = @fragment func():main_out {
+  $B18: {
+    %110:void = call %main_1
+    %111:vec4<f32> = load %x_GLF_color
+    %112:main_out = construct %111
+    ret %112
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.msl
index a64774d..0194c6a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -18,98 +18,105 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<S, 2>, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_29:i32 = load %5
-    %7:ptr<function, S, read_write> = access %A, %x_29
-    %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %9:i32 = load %8
-    %10:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %11:i32 = load %10
-    %12:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %13:i32 = load %12
-    %14:S = construct %9, %11, %13
-    store %7, %14
-    %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_39:i32 = load %15
-    %17:ptr<function, S, read_write> = access %A, %x_39
-    %18:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %19:i32 = load %18
+    %6:i32 = load %5
+    %x_29:i32 = let %6
+    %8:ptr<function, S, read_write> = access %A, %x_29
+    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %10:i32 = load %9
+    %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %12:i32 = load %11
+    %13:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %14:i32 = load %13
+    %15:S = construct %10, %12, %14
+    store %8, %15
+    %16:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %17:i32 = load %16
+    %x_39:i32 = let %17
+    %19:ptr<function, S, read_write> = access %A, %x_39
     %20:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %21:i32 = load %20
     %22:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %23:i32 = load %22
-    %24:S = construct %19, %21, %23
-    store %17, %24
-    %25:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %26:i32 = load %25
-    %27:ptr<function, i32, read_write> = access %A, %26, 1u
+    %24:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %25:i32 = load %24
+    %26:S = construct %21, %23, %25
+    store %19, %26
+    %27:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
     %28:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %29:ptr<function, i32, read_write> = access %A, %28, 1u
     %30:i32 = load %29
-    %31:bool = eq %28, %30
-    if %31 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_58:i32 = load %32
-        %34:i32 = clamp %x_58, 1i, 2i
-        %35:ptr<function, i32, read_write> = access %A, %34, 1u
-        %36:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %37:i32 = load %36
-        store %35, %37
+    %31:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %32:i32 = load %31
+    %33:bool = eq %30, %32
+    if %33 [t: $B3] {  # if_1
+      $B3: {  # true
+        %34:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %35:i32 = load %34
+        %x_58:i32 = let %35
+        %37:i32 = max %x_58, 1i
+        %38:i32 = min %37, 2i
+        %39:ptr<function, i32, read_write> = access %A, %38, 1u
+        %40:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %41:i32 = load %40
+        store %39, %41
         exit_if  # if_1
       }
     }
-    %38:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %39:i32 = load %38
-    %40:ptr<function, i32, read_write> = access %A, %39, 1u
-    %41:i32 = load %40
     %42:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
     %43:i32 = load %42
-    %44:bool = eq %41, %43
-    if %44 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %46:i32 = load %45
-        %47:f32 = convert %46
-        %48:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %49:i32 = load %48
-        %50:f32 = convert %49
-        %51:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %52:i32 = load %51
-        %53:f32 = convert %52
-        %54:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %55:i32 = load %54
-        %56:f32 = convert %55
-        %57:vec4<f32> = construct %47, %50, %53, %56
-        store %x_GLF_color, %57
+    %44:ptr<function, i32, read_write> = access %A, %43, 1u
+    %45:i32 = load %44
+    %46:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %47:i32 = load %46
+    %48:bool = eq %45, %47
+    if %48 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %49:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %50:i32 = load %49
+        %51:f32 = convert %50
+        %52:f32 = let %51
+        %53:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %54:i32 = load %53
+        %55:f32 = convert %54
+        %56:f32 = let %55
+        %57:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %58:i32 = load %57
+        %59:f32 = convert %58
+        %60:f32 = let %59
+        %61:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %62:i32 = load %61
+        %63:f32 = convert %62
+        %64:vec4<f32> = construct %52, %56, %60, %63
+        store %x_GLF_color, %64
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %58:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %59:i32 = load %58
-        %60:f32 = convert %59
-        %61:vec4<f32> = construct %60
-        store %x_GLF_color, %61
+      $B5: {  # false
+        %65:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %66:i32 = load %65
+        %67:f32 = convert %66
+        %68:vec4<f32> = construct %67
+        store %x_GLF_color, %68
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %70:void = call %main_1
+    %71:vec4<f32> = load %x_GLF_color
+    %72:main_out = construct %71
+    ret %72
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.msl
index b43d8ee..9c9b051 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-x86-isel-lowering-selection-dag-struct-array-clamp-index/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: strided_arr = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(4) {
   el:i32 @offset(0)
 }
 
@@ -18,98 +18,124 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %A:ptr<function, array<S, 2>, read_write> = var
     %5:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_29:i32 = load %5
-    %7:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_31:i32 = load %7
-    %9:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_33:i32 = load %9
+    %6:i32 = load %5
+    %x_29:i32 = let %6
+    %8:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %9:i32 = load %8
+    %x_31:i32 = let %9
     %11:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_35:i32 = load %11
-    %13:ptr<function, S, read_write> = access %A, %x_29
-    %14:S = construct %x_31, %x_33, %x_35
-    store %13, %14
-    %15:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_39:i32 = load %15
-    %17:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_41:i32 = load %17
-    %19:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_43:i32 = load %19
-    %21:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_45:i32 = load %21
-    %23:ptr<function, S, read_write> = access %A, %x_39
-    %24:S = construct %x_41, %x_43, %x_45
-    store %23, %24
+    %12:i32 = load %11
+    %x_33:i32 = let %12
+    %14:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %15:i32 = load %14
+    %x_35:i32 = let %15
+    %17:ptr<function, S, read_write> = access %A, %x_29
+    %18:S = construct %x_31, %x_33, %x_35
+    store %17, %18
+    %19:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %20:i32 = load %19
+    %x_39:i32 = let %20
+    %22:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %23:i32 = load %22
+    %x_41:i32 = let %23
     %25:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_49:i32 = load %25
-    %27:ptr<function, i32, read_write> = access %A, %x_49, 1u
-    %x_51:i32 = load %27
-    %29:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-    %x_53:i32 = load %29
-    %31:bool = eq %x_51, %x_53
-    if %31 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %32:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_58:i32 = load %32
-        %34:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_61:i32 = load %34
-        %36:i32 = clamp %x_58, 1i, 2i
-        %37:ptr<function, i32, read_write> = access %A, %36, 1u
-        store %37, %x_61
+    %26:i32 = load %25
+    %x_43:i32 = let %26
+    %28:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %29:i32 = load %28
+    %x_45:i32 = let %29
+    %31:ptr<function, S, read_write> = access %A, %x_39
+    %32:S = construct %x_41, %x_43, %x_45
+    store %31, %32
+    %33:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %34:i32 = load %33
+    %x_49:i32 = let %34
+    %36:ptr<function, i32, read_write> = access %A, %x_49, 1u
+    %37:i32 = load %36
+    %x_51:i32 = let %37
+    %39:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+    %40:i32 = load %39
+    %x_53:i32 = let %40
+    %42:bool = eq %x_51, %x_53
+    if %42 [t: $B3] {  # if_1
+      $B3: {  # true
+        %43:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %44:i32 = load %43
+        %x_58:i32 = let %44
+        %46:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %47:i32 = load %46
+        %x_61:i32 = let %47
+        %49:i32 = max %x_58, 1i
+        %50:i32 = min %49, 2i
+        %51:ptr<function, i32, read_write> = access %A, %50, 1u
+        store %51, %x_61
         exit_if  # if_1
       }
     }
-    %38:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_64:i32 = load %38
-    %40:ptr<function, i32, read_write> = access %A, %x_64, 1u
-    %x_66:i32 = load %40
-    %42:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-    %x_68:i32 = load %42
-    %44:bool = eq %x_66, %x_68
-    if %44 [t: %b4, f: %b5] {  # if_2
-      %b4 = block {  # true
-        %45:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_74:i32 = load %45
-        %47:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_77:i32 = load %47
-        %49:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
-        %x_80:i32 = load %49
-        %51:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_83:i32 = load %51
-        %53:f32 = convert %x_74
-        %54:f32 = convert %x_77
-        %55:f32 = convert %x_80
-        %56:f32 = convert %x_83
-        %57:vec4<f32> = construct %53, %54, %55, %56
-        store %x_GLF_color, %57
+    %52:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %53:i32 = load %52
+    %x_64:i32 = let %53
+    %55:ptr<function, i32, read_write> = access %A, %x_64, 1u
+    %56:i32 = load %55
+    %x_66:i32 = let %56
+    %58:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+    %59:i32 = load %58
+    %x_68:i32 = let %59
+    %61:bool = eq %x_66, %x_68
+    if %61 [t: $B4, f: $B5] {  # if_2
+      $B4: {  # true
+        %62:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %63:i32 = load %62
+        %x_74:i32 = let %63
+        %65:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %66:i32 = load %65
+        %x_77:i32 = let %66
+        %68:ptr<uniform, i32, read> = access %x_7, 0u, 1i, 0u
+        %69:i32 = load %68
+        %x_80:i32 = let %69
+        %71:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %72:i32 = load %71
+        %x_83:i32 = let %72
+        %74:f32 = convert %x_74
+        %75:f32 = let %74
+        %76:f32 = convert %x_77
+        %77:f32 = let %76
+        %78:f32 = convert %x_80
+        %79:f32 = let %78
+        %80:f32 = convert %x_83
+        %81:vec4<f32> = construct %75, %77, %79, %80
+        store %x_GLF_color, %81
         exit_if  # if_2
       }
-      %b5 = block {  # false
-        %58:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
-        %x_87:i32 = load %58
-        %x_88:f32 = convert %x_87
-        %61:vec4<f32> = construct %x_88, %x_88, %x_88, %x_88
-        store %x_GLF_color, %61
+      $B5: {  # false
+        %82:ptr<uniform, i32, read> = access %x_7, 0u, 0i, 0u
+        %83:i32 = load %82
+        %x_87:i32 = let %83
+        %85:f32 = convert %x_87
+        %x_88:f32 = let %85
+        %87:vec4<f32> = construct %x_88, %x_88, %x_88, %x_88
+        store %x_GLF_color, %87
         exit_if  # if_2
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %89:void = call %main_1
+    %90:vec4<f32> = load %x_GLF_color
+    %91:main_out = construct %90
+    ret %91
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.msl
index f1ef1dc..746b080 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,77 +8,80 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %floats:ptr<function, array<f32, 9>, read_write> = var
     %one:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %alwaysFalse:ptr<function, bool, read_write> = var
     store %v, vec2<f32>(0.0f)
-    %10:ptr<function, f32, read_write> = access %floats, 1i
-    store %10, 0.0f
-    %11:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %12:f32 = load_vector_element %11, 1u
-    %13:i32 = convert %12
-    store %one, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %11:ptr<function, f32, read_write> = access %floats, 1i
+    store %11, 0.0f
+    %12:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %13:f32 = load_vector_element %12, 1u
+    %14:i32 = call %tint_f32_to_i32, %13
+    store %one, %14
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         store %i, 0i
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %14:i32 = load %i
-            %15:i32 = load %one
-            %16:bool = lt %14, %15
-            if %16 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %16:i32 = load %i
+            %17:i32 = load %one
+            %18:bool = lt %16, %17
+            if %18 [t: $B7, f: $B8] {  # if_1
+              $B7: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B8: {  # false
                 exit_loop  # loop_2
               }
             }
-            %17:i32 = load %i
-            %18:bool = eq %17, 0i
-            if %18 [t: %b9] {  # if_2
-              %b9 = block {  # true
-                %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-                %20:f32 = load_vector_element %19, 0u
+            %19:i32 = load %i
+            %20:bool = eq %19, 0i
+            if %20 [t: $B9] {  # if_2
+              $B9: {  # true
                 %21:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-                %22:f32 = load_vector_element %21, 1u
-                %23:bool = gt %20, %22
-                store %alwaysFalse, %23
-                %24:bool = load %alwaysFalse
-                %25:bool = eq %24, false
-                if %25 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %x_73:i32 = load %one
-                    %27:ptr<function, f32, read_write> = access %floats, %x_73
-                    store %27, 1.0f
+                %22:f32 = load_vector_element %21, 0u
+                %23:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+                %24:f32 = load_vector_element %23, 1u
+                %25:bool = gt %22, %24
+                store %alwaysFalse, %25
+                %26:bool = load %alwaysFalse
+                %27:bool = eq %26, false
+                if %27 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %28:i32 = load %one
+                    %x_73:i32 = let %28
+                    %30:ptr<function, f32, read_write> = access %floats, %x_73
+                    store %30, 1.0f
                     store %x_GLF_color, vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f)
                     exit_if  # if_3
                   }
                 }
-                %x_75:i32 = load %one
+                %31:i32 = load %one
+                %x_75:i32 = let %31
                 store_vector_element %v, %x_75, 1.0f
-                %29:bool = load %alwaysFalse
-                if %29 [t: %b11] {  # if_4
-                  %b11 = block {  # true
-                    discard
+                %33:bool = load %alwaysFalse
+                if %33 [t: $B11] {  # if_4
+                  $B11: {  # true
+                    store %continue_execution, false
                     exit_if  # if_4
                   }
                 }
-                %30:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-                %31:f32 = load_vector_element %30, 1u
-                %32:bool = lt %31, 0.0f
-                if %32 [t: %b12] {  # if_5
-                  %b12 = block {  # true
+                %34:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+                %35:f32 = load_vector_element %34, 1u
+                %36:bool = lt %35, 0.0f
+                if %36 [t: $B12] {  # if_5
+                  $B12: {  # true
                     store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f)
                     exit_if  # if_5
                   }
@@ -86,54 +89,56 @@
                 exit_if  # if_2
               }
             }
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            %33:i32 = load %i
-            %34:i32 = add %33, 1i
-            store %i, %34
-            next_iteration %b5
+          $B6: {  # continuing
+            %37:i32 = load %i
+            %38:i32 = add %37, 1i
+            store %i, %38
+            next_iteration  # -> $B5
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_87:i32 = load %one
-        %36:bool = lt %x_87, 0i
-        %37:bool = eq %36, false
-        break_if %37 %b3
+      $B4: {  # continuing
+        %39:i32 = load %one
+        %x_87:i32 = let %39
+        %41:bool = lt %x_87, 0i
+        %42:bool = eq %41, false
+        break_if %42  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     %x_102:ptr<function, bool, read_write> = var
     %x_103:ptr<function, bool, read_write> = var
-    %40:f32 = load_vector_element %gl_FragCoord, 1u
-    %41:bool = gte %40, 0.0f
-    if %41 [t: %b13, f: %b14] {  # if_6
-      %b13 = block {  # true
-        %42:f32 = load_vector_element %v, 1u
-        %x_97:bool = eq %42, 1.0f
+    %45:f32 = load_vector_element %gl_FragCoord, 1u
+    %46:bool = gte %45, 0.0f
+    if %46 [t: $B13, f: $B14] {  # if_6
+      $B13: {  # true
+        %47:f32 = load_vector_element %v, 1u
+        %48:bool = eq %47, 1.0f
+        %x_97:bool = let %48
         store %x_103, %x_97
-        if %x_97 [t: %b15] {  # if_7
-          %b15 = block {  # true
-            %44:ptr<function, f32, read_write> = access %floats, 1i
-            %45:f32 = load %44
-            %46:bool = eq %45, 1.0f
-            store %x_102, %46
-            %47:bool = load %x_102
-            store %x_103, %47
+        if %x_97 [t: $B15] {  # if_7
+          $B15: {  # true
+            %50:ptr<function, f32, read_write> = access %floats, 1i
+            %51:f32 = load %50
+            %52:bool = eq %51, 1.0f
+            store %x_102, %52
+            %53:bool = load %x_102
+            store %x_103, %53
             exit_if  # if_7
           }
         }
-        %48:bool = load %x_103
-        if %48 [t: %b16] {  # if_8
-          %b16 = block {  # true
+        %54:bool = load %x_103
+        if %54 [t: $B16] {  # if_8
+          $B16: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_8
           }
         }
         exit_if  # if_6
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_6
       }
@@ -141,13 +146,30 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    %60:bool = load %continue_execution
+    %61:bool = eq %60, false
+    if %61 [t: $B18] {  # if_9
+      $B18: {  # true
+        terminate_invocation
+      }
+    }
+    ret %59
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B19: {
+    %63:i32 = convert %value
+    %64:bool = gte %value, -2147483648.0f
+    %65:i32 = select -2147483648i, %63, %64
+    %66:bool = lte %value, 2147483520.0f
+    %67:i32 = select 2147483647i, %65, %66
+    ret %67
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.msl
index 64a6564..8842744 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/create-color-in-do-while-for-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,77 +8,89 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %v:ptr<function, vec2<f32>, read_write> = var
     %floats:ptr<function, array<f32, 9>, read_write> = var
     %one:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %alwaysFalse:ptr<function, bool, read_write> = var
     store %v, vec2<f32>(0.0f)
-    %10:ptr<function, f32, read_write> = access %floats, 1i
-    store %10, 0.0f
-    %11:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_46:f32 = load_vector_element %11, 1u
-    %13:i32 = convert %x_46
-    store %one, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %11:ptr<function, f32, read_write> = access %floats, 1i
+    store %11, 0.0f
+    %12:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %13:f32 = load_vector_element %12, 1u
+    %x_46:f32 = let %13
+    %15:i32 = call %tint_f32_to_i32, %x_46
+    store %one, %15
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         store %i, 0i
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %x_56:i32 = load %i
-            %x_57:i32 = load %one
-            %16:bool = lt %x_56, %x_57
-            if %16 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %17:i32 = load %i
+            %x_56:i32 = let %17
+            %19:i32 = load %one
+            %x_57:i32 = let %19
+            %21:bool = lt %x_56, %x_57
+            if %21 [t: $B7, f: $B8] {  # if_1
+              $B7: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B8: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_60:i32 = load %i
-            %18:bool = eq %x_60, 0i
-            if %18 [t: %b9] {  # if_2
-              %b9 = block {  # true
-                %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-                %x_65:f32 = load_vector_element %19, 0u
-                %21:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-                %x_67:f32 = load_vector_element %21, 1u
-                %23:bool = gt %x_65, %x_67
-                store %alwaysFalse, %23
-                %x_69:bool = load %alwaysFalse
-                %25:bool = eq %x_69, false
-                if %25 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %x_73:i32 = load %one
-                    %27:ptr<function, f32, read_write> = access %floats, %x_73
-                    store %27, 1.0f
+            %22:i32 = load %i
+            %x_60:i32 = let %22
+            %24:bool = eq %x_60, 0i
+            if %24 [t: $B9] {  # if_2
+              $B9: {  # true
+                %25:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+                %26:f32 = load_vector_element %25, 0u
+                %x_65:f32 = let %26
+                %28:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+                %29:f32 = load_vector_element %28, 1u
+                %x_67:f32 = let %29
+                %31:bool = gt %x_65, %x_67
+                store %alwaysFalse, %31
+                %32:bool = load %alwaysFalse
+                %x_69:bool = let %32
+                %34:bool = eq %x_69, false
+                if %34 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %35:i32 = load %one
+                    %x_73:i32 = let %35
+                    %37:ptr<function, f32, read_write> = access %floats, %x_73
+                    store %37, 1.0f
                     store %x_GLF_color, vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f)
                     exit_if  # if_3
                   }
                 }
-                %x_75:i32 = load %one
+                %38:i32 = load %one
+                %x_75:i32 = let %38
                 store_vector_element %v, %x_75, 1.0f
-                %x_77:bool = load %alwaysFalse
-                if %x_77 [t: %b11] {  # if_4
-                  %b11 = block {  # true
-                    discard
+                %40:bool = load %alwaysFalse
+                %x_77:bool = let %40
+                if %x_77 [t: $B11] {  # if_4
+                  $B11: {  # true
+                    store %continue_execution, false
                     exit_if  # if_4
                   }
                 }
-                %30:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-                %x_81:f32 = load_vector_element %30, 1u
-                %32:bool = lt %x_81, 0.0f
-                if %32 [t: %b12] {  # if_5
-                  %b12 = block {  # true
+                %42:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+                %43:f32 = load_vector_element %42, 1u
+                %x_81:f32 = let %43
+                %45:bool = lt %x_81, 0.0f
+                if %45 [t: $B12] {  # if_5
+                  $B12: {  # true
                     store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f)
                     exit_if  # if_5
                   }
@@ -86,54 +98,61 @@
                 exit_if  # if_2
               }
             }
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            %x_85:i32 = load %i
-            %34:i32 = add %x_85, 1i
-            store %i, %34
-            next_iteration %b5
+          $B6: {  # continuing
+            %46:i32 = load %i
+            %x_85:i32 = let %46
+            %48:i32 = add %x_85, 1i
+            store %i, %48
+            next_iteration  # -> $B5
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_87:i32 = load %one
-        %36:bool = lt %x_87, 0i
-        %37:bool = eq %36, false
-        break_if %37 %b3
+      $B4: {  # continuing
+        %49:i32 = load %one
+        %x_87:i32 = let %49
+        %51:bool = lt %x_87, 0i
+        %52:bool = eq %51, false
+        break_if %52  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     %x_102:ptr<function, bool, read_write> = var
     %x_103_phi:ptr<function, bool, read_write> = var
-    %x_90:f32 = load_vector_element %gl_FragCoord, 1u
-    %41:bool = gte %x_90, 0.0f
-    if %41 [t: %b13, f: %b14] {  # if_6
-      %b13 = block {  # true
-        %x_96:f32 = load_vector_element %v, 1u
-        %x_97:bool = eq %x_96, 1.0f
+    %55:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_90:f32 = let %55
+    %57:bool = gte %x_90, 0.0f
+    if %57 [t: $B13, f: $B14] {  # if_6
+      $B13: {  # true
+        %58:f32 = load_vector_element %v, 1u
+        %x_96:f32 = let %58
+        %60:bool = eq %x_96, 1.0f
+        %x_97:bool = let %60
         store %x_103_phi, %x_97
-        if %x_97 [t: %b15] {  # if_7
-          %b15 = block {  # true
-            %44:ptr<function, f32, read_write> = access %floats, 1i
-            %x_101:f32 = load %44
-            %46:bool = eq %x_101, 1.0f
-            store %x_102, %46
-            %47:bool = load %x_102
-            store %x_103_phi, %47
+        if %x_97 [t: $B15] {  # if_7
+          $B15: {  # true
+            %62:ptr<function, f32, read_write> = access %floats, 1i
+            %63:f32 = load %62
+            %x_101:f32 = let %63
+            %65:bool = eq %x_101, 1.0f
+            store %x_102, %65
+            %66:bool = load %x_102
+            store %x_103_phi, %66
             exit_if  # if_7
           }
         }
-        %x_103:bool = load %x_103_phi
-        if %x_103 [t: %b16] {  # if_8
-          %b16 = block {  # true
+        %67:bool = load %x_103_phi
+        %x_103:bool = let %67
+        if %x_103 [t: $B16] {  # if_8
+          $B16: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_8
           }
         }
         exit_if  # if_6
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_6
       }
@@ -141,13 +160,30 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+    %71:void = call %main_1
+    %72:vec4<f32> = load %x_GLF_color
+    %73:main_out = construct %72
+    %74:bool = load %continue_execution
+    %75:bool = eq %74, false
+    if %75 [t: $B18] {  # if_9
+      $B18: {  # true
+        terminate_invocation
+      }
+    }
+    ret %73
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B19: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.msl
index f4d02a0..b3b0935 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: theSSBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: theSSBO = struct @align(4) {
   out_data:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   injectionSwitch:vec2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, theSSBO, read_write> = var @binding_point(0, 0)
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %GLF_live3s:ptr<function, f32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -26,9 +26,9 @@
     %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %12:f32 = load_vector_element %11, 1u
     %13:bool = gt %10, %12
-    if %13 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %14:void = workgroupBarrier
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %14:void = msl.threadgroup_barrier 4u
         exit_if  # if_1
       }
     }
@@ -37,148 +37,160 @@
     %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %18:f32 = load_vector_element %17, 1u
     %19:bool = gt %16, %18
-    if %19 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %20:void = workgroupBarrier
+    if %19 [t: $B4] {  # if_2
+      $B4: {  # true
+        %20:void = msl.threadgroup_barrier 4u
         exit_if  # if_2
       }
     }
     %21:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %22:f32 = load_vector_element %21, 1u
-    %23:i32 = convert %22
+    %23:i32 = call %tint_f32_to_i32, %22
     store %i, %23
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %24:i32 = load %i
-        %25:bool = gt %24, 0i
-        if %25 [t: %b7, f: %b8] {  # if_3
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %25:i32 = load %i
+        %26:bool = gt %25, 0i
+        if %26 [t: $B7, f: $B8] {  # if_3
+          $B7: {  # true
             exit_if  # if_3
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:void = workgroupBarrier
-        continue %b6
+        %27:void = msl.threadgroup_barrier 4u
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %27:i32 = load %i
-        %28:i32 = sub %27, 1i
-        store %i, %28
-        next_iteration %b5
+      $B6: {  # continuing
+        %28:i32 = load %i
+        %29:i32 = sub %28, 1i
+        store %i, %29
+        next_iteration  # -> $B5
       }
     }
     store %GLF_live3s, 0.0f
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
         store %i_1, 1i
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
-            %29:i32 = load %i_1
-            %30:bool = lt %29, 2i
-            if %30 [t: %b13, f: %b14] {  # if_4
-              %b13 = block {  # true
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
+            %30:i32 = load %i_1
+            %31:bool = lt %30, 2i
+            if %31 [t: $B13, f: $B14] {  # if_4
+              $B13: {  # true
                 exit_if  # if_4
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %31:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %32:f32 = load_vector_element %31, 0u
-            %33:bool = gt %32, 1.0f
-            if %33 [t: %b15] {  # if_5
-              %b15 = block {  # true
-                %34:void = workgroupBarrier
+            %32:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %33:f32 = load_vector_element %32, 0u
+            %34:bool = gt %33, 1.0f
+            if %34 [t: $B15] {  # if_5
+              $B15: {  # true
+                %35:void = msl.threadgroup_barrier 4u
                 exit_if  # if_5
               }
             }
-            %35:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %36:f32 = load_vector_element %35, 0u
-            %37:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %38:f32 = load_vector_element %37, 1u
-            %39:bool = gt %36, %38
-            if %39 [t: %b16] {  # if_6
-              %b16 = block {  # true
-                %40:void = workgroupBarrier
+            %36:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %37:f32 = load_vector_element %36, 0u
+            %38:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %39:f32 = load_vector_element %38, 1u
+            %40:bool = gt %37, %39
+            if %40 [t: $B16] {  # if_6
+              $B16: {  # true
+                %41:void = msl.threadgroup_barrier 4u
                 exit_if  # if_6
               }
             }
-            %41:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %42:f32 = load_vector_element %41, 1u
-            %43:i32 = convert %42
-            store %z, %43
-            loop [b: %b17, c: %b18] {  # loop_4
-              %b17 = block {  # body
-                %44:i32 = load %z
-                %45:bool = gt %44, 0i
-                if %45 [t: %b19, f: %b20] {  # if_7
-                  %b19 = block {  # true
+            %42:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %43:f32 = load_vector_element %42, 1u
+            %44:i32 = call %tint_f32_to_i32, %43
+            store %z, %44
+            loop [b: $B17, c: $B18] {  # loop_4
+              $B17: {  # body
+                %45:i32 = load %z
+                %46:bool = gt %45, 0i
+                if %46 [t: $B19, f: $B20] {  # if_7
+                  $B19: {  # true
                     exit_if  # if_7
                   }
-                  %b20 = block {  # false
+                  $B20: {  # false
                     exit_loop  # loop_4
                   }
                 }
-                %46:f32 = load %GLF_live3s
-                %47:f32 = add %46, 1.0f
-                store %GLF_live3s, %47
-                continue %b18
+                %47:f32 = load %GLF_live3s
+                %48:f32 = add %47, 1.0f
+                store %GLF_live3s, %48
+                continue  # -> $B18
               }
-              %b18 = block {  # continuing
-                %48:i32 = load %z
-                %49:i32 = sub %48, 1i
-                store %z, %49
-                next_iteration %b17
+              $B18: {  # continuing
+                %49:i32 = load %z
+                %50:i32 = sub %49, 1i
+                store %z, %50
+                next_iteration  # -> $B17
               }
             }
-            %50:i32 = load %i_1
-            %51:bool = gte %50, 1i
-            if %51 [t: %b21] {  # if_8
-              %b21 = block {  # true
-                %52:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %53:f32 = load_vector_element %52, 0u
-                %54:bool = gt %53, 1.0f
-                if %54 [t: %b22] {  # if_9
-                  %b22 = block {  # true
-                    %55:void = workgroupBarrier
+            %51:i32 = load %i_1
+            %52:bool = gte %51, 1i
+            if %52 [t: $B21] {  # if_8
+              $B21: {  # true
+                %53:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %54:f32 = load_vector_element %53, 0u
+                %55:bool = gt %54, 1.0f
+                if %55 [t: $B22] {  # if_9
+                  $B22: {  # true
+                    %56:void = msl.threadgroup_barrier 4u
                     exit_if  # if_9
                   }
                 }
                 exit_if  # if_8
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %56:i32 = load %i_1
-            %57:i32 = add %56, 1i
-            store %i_1, %57
-            next_iteration %b11
+          $B12: {  # continuing
+            %57:i32 = load %i_1
+            %58:i32 = add %57, 1i
+            store %i_1, %58
+            next_iteration  # -> $B11
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %58:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_111:f32 = load_vector_element %58, 0u
-        %60:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_113:f32 = load_vector_element %60, 1u
-        %62:bool = gt %x_111, %x_113
-        %63:bool = eq %62, false
-        break_if %63 %b9
+      $B10: {  # continuing
+        %59:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %60:f32 = load_vector_element %59, 0u
+        %x_111:f32 = let %60
+        %62:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %63:f32 = load_vector_element %62, 1u
+        %x_113:f32 = let %63
+        %65:bool = gt %x_111, %x_113
+        %66:bool = eq %65, false
+        break_if %66  # -> [t: exit_loop loop_2, f: $B9]
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b23 {
-  %b23 = block {
-    %65:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B23: {
+    %68:void = call %main_1
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B24: {
+    %70:i32 = convert %value
+    %71:bool = gte %value, -2147483648.0f
+    %72:i32 = select -2147483648i, %70, %71
+    %73:bool = lte %value, 2147483520.0f
+    %74:i32 = select 2147483647i, %72, %73
+    ret %74
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.msl
index 1d98907..afdda6f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/dead-barriers-in-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: theSSBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: theSSBO = struct @align(4) {
   out_data:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   injectionSwitch:vec2<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, theSSBO, read_write> = var @binding_point(0, 0)
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %GLF_live3s:ptr<function, f32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -22,163 +22,193 @@
     %8:ptr<storage, i32, read_write> = access %x_4, 0u
     store %8, 42i
     %9:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_37:f32 = load_vector_element %9, 0u
-    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_39:f32 = load_vector_element %11, 1u
-    %13:bool = gt %x_37, %x_39
-    if %13 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %14:void = workgroupBarrier
+    %10:f32 = load_vector_element %9, 0u
+    %x_37:f32 = let %10
+    %12:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %13:f32 = load_vector_element %12, 1u
+    %x_39:f32 = let %13
+    %15:bool = gt %x_37, %x_39
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:void = msl.threadgroup_barrier 4u
         exit_if  # if_1
       }
     }
-    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_44:f32 = load_vector_element %15, 0u
     %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_46:f32 = load_vector_element %17, 1u
-    %19:bool = gt %x_44, %x_46
-    if %19 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %20:void = workgroupBarrier
+    %18:f32 = load_vector_element %17, 0u
+    %x_44:f32 = let %18
+    %20:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %21:f32 = load_vector_element %20, 1u
+    %x_46:f32 = let %21
+    %23:bool = gt %x_44, %x_46
+    if %23 [t: $B4] {  # if_2
+      $B4: {  # true
+        %24:void = msl.threadgroup_barrier 4u
         exit_if  # if_2
       }
     }
-    %21:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_51:f32 = load_vector_element %21, 1u
-    %23:i32 = convert %x_51
-    store %i, %23
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_57:i32 = load %i
-        %25:bool = gt %x_57, 0i
-        if %25 [t: %b7, f: %b8] {  # if_3
-          %b7 = block {  # true
+    %25:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %26:f32 = load_vector_element %25, 1u
+    %x_51:f32 = let %26
+    %28:i32 = call %tint_f32_to_i32, %x_51
+    store %i, %28
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %30:i32 = load %i
+        %x_57:i32 = let %30
+        %32:bool = gt %x_57, 0i
+        if %32 [t: $B7, f: $B8] {  # if_3
+          $B7: {  # true
             exit_if  # if_3
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:void = workgroupBarrier
-        continue %b6
+        %33:void = msl.threadgroup_barrier 4u
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %x_60:i32 = load %i
-        %28:i32 = sub %x_60, 1i
-        store %i, %28
-        next_iteration %b5
+      $B6: {  # continuing
+        %34:i32 = load %i
+        %x_60:i32 = let %34
+        %36:i32 = sub %x_60, 1i
+        store %i, %36
+        next_iteration  # -> $B5
       }
     }
     store %GLF_live3s, 0.0f
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
         store %i_1, 1i
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
-            %x_70:i32 = load %i_1
-            %30:bool = lt %x_70, 2i
-            if %30 [t: %b13, f: %b14] {  # if_4
-              %b13 = block {  # true
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
+            %37:i32 = load %i_1
+            %x_70:i32 = let %37
+            %39:bool = lt %x_70, 2i
+            if %39 [t: $B13, f: $B14] {  # if_4
+              $B13: {  # true
                 exit_if  # if_4
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %31:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_74:f32 = load_vector_element %31, 0u
-            %33:bool = gt %x_74, 1.0f
-            if %33 [t: %b15] {  # if_5
-              %b15 = block {  # true
-                %34:void = workgroupBarrier
+            %40:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %41:f32 = load_vector_element %40, 0u
+            %x_74:f32 = let %41
+            %43:bool = gt %x_74, 1.0f
+            if %43 [t: $B15] {  # if_5
+              $B15: {  # true
+                %44:void = msl.threadgroup_barrier 4u
                 exit_if  # if_5
               }
             }
-            %35:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_79:f32 = load_vector_element %35, 0u
-            %37:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_81:f32 = load_vector_element %37, 1u
-            %39:bool = gt %x_79, %x_81
-            if %39 [t: %b16] {  # if_6
-              %b16 = block {  # true
-                %40:void = workgroupBarrier
+            %45:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %46:f32 = load_vector_element %45, 0u
+            %x_79:f32 = let %46
+            %48:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %49:f32 = load_vector_element %48, 1u
+            %x_81:f32 = let %49
+            %51:bool = gt %x_79, %x_81
+            if %51 [t: $B16] {  # if_6
+              $B16: {  # true
+                %52:void = msl.threadgroup_barrier 4u
                 exit_if  # if_6
               }
             }
-            %41:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_86:f32 = load_vector_element %41, 1u
-            %43:i32 = convert %x_86
-            store %z, %43
-            loop [b: %b17, c: %b18] {  # loop_4
-              %b17 = block {  # body
-                %x_92:i32 = load %z
-                %45:bool = gt %x_92, 0i
-                if %45 [t: %b19, f: %b20] {  # if_7
-                  %b19 = block {  # true
+            %53:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %54:f32 = load_vector_element %53, 1u
+            %x_86:f32 = let %54
+            %56:i32 = call %tint_f32_to_i32, %x_86
+            store %z, %56
+            loop [b: $B17, c: $B18] {  # loop_4
+              $B17: {  # body
+                %57:i32 = load %z
+                %x_92:i32 = let %57
+                %59:bool = gt %x_92, 0i
+                if %59 [t: $B19, f: $B20] {  # if_7
+                  $B19: {  # true
                     exit_if  # if_7
                   }
-                  %b20 = block {  # false
+                  $B20: {  # false
                     exit_loop  # loop_4
                   }
                 }
-                %x_95:f32 = load %GLF_live3s
-                %47:f32 = add %x_95, 1.0f
-                store %GLF_live3s, %47
-                continue %b18
+                %60:f32 = load %GLF_live3s
+                %x_95:f32 = let %60
+                %62:f32 = add %x_95, 1.0f
+                store %GLF_live3s, %62
+                continue  # -> $B18
               }
-              %b18 = block {  # continuing
-                %x_97:i32 = load %z
-                %49:i32 = sub %x_97, 1i
-                store %z, %49
-                next_iteration %b17
+              $B18: {  # continuing
+                %63:i32 = load %z
+                %x_97:i32 = let %63
+                %65:i32 = sub %x_97, 1i
+                store %z, %65
+                next_iteration  # -> $B17
               }
             }
-            %x_99:i32 = load %i_1
-            %51:bool = gte %x_99, 1i
-            if %51 [t: %b21] {  # if_8
-              %b21 = block {  # true
-                %52:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_104:f32 = load_vector_element %52, 0u
-                %54:bool = gt %x_104, 1.0f
-                if %54 [t: %b22] {  # if_9
-                  %b22 = block {  # true
-                    %55:void = workgroupBarrier
+            %66:i32 = load %i_1
+            %x_99:i32 = let %66
+            %68:bool = gte %x_99, 1i
+            if %68 [t: $B21] {  # if_8
+              $B21: {  # true
+                %69:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %70:f32 = load_vector_element %69, 0u
+                %x_104:f32 = let %70
+                %72:bool = gt %x_104, 1.0f
+                if %72 [t: $B22] {  # if_9
+                  $B22: {  # true
+                    %73:void = msl.threadgroup_barrier 4u
                     exit_if  # if_9
                   }
                 }
                 exit_if  # if_8
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %x_108:i32 = load %i_1
-            %57:i32 = add %x_108, 1i
-            store %i_1, %57
-            next_iteration %b11
+          $B12: {  # continuing
+            %74:i32 = load %i_1
+            %x_108:i32 = let %74
+            %76:i32 = add %x_108, 1i
+            store %i_1, %76
+            next_iteration  # -> $B11
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %58:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_111:f32 = load_vector_element %58, 0u
-        %60:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_113:f32 = load_vector_element %60, 1u
-        %62:bool = gt %x_111, %x_113
-        %63:bool = eq %62, false
-        break_if %63 %b9
+      $B10: {  # continuing
+        %77:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %78:f32 = load_vector_element %77, 0u
+        %x_111:f32 = let %78
+        %80:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %81:f32 = load_vector_element %80, 1u
+        %x_113:f32 = let %81
+        %83:bool = gt %x_111, %x_113
+        %84:bool = eq %83, false
+        break_if %84  # -> [t: exit_loop loop_2, f: $B9]
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b23 {
-  %b23 = block {
-    %65:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B23: {
+    %86:void = call %main_1
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B24: {
+    %88:i32 = convert %value
+    %89:bool = gte %value, -2147483648.0f
+    %90:i32 = select -2147483648i, %88, %89
+    %91:bool = lte %value, 2147483520.0f
+    %92:i32 = select 2147483647i, %90, %91
+    ret %92
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.msl
index f93413c..9989f55 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,116 +8,117 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%x_51 = func():void -> %b2 {
-  %b2 = block {
-    discard
+%x_51 = func():void {
+  $B2: {
+    store %continue_execution, false
     ret
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+%main_1 = func():void {
+  $B3: {
+    loop [b: $B4] {  # loop_1
+      $B4: {  # body
         %x_30:ptr<function, bool, read_write> = var
         %x_31:ptr<function, bool, read_write> = var
         store %x_30, false
-        loop [b: %b6, c: %b7] {  # loop_2
-          %b6 = block {  # body
-            loop [b: %b8, c: %b9] {  # loop_3
-              %b8 = block {  # body
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            loop [b: $B7] {  # loop_3
+              $B7: {  # body
                 %x_52:ptr<function, vec4<f32>, read_write> = var
                 %x_54:ptr<function, vec4<f32>, read_write> = var
                 %x_55:ptr<function, vec4<f32>, read_write> = var
-                %10:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-                %x_36:f32 = load_vector_element %10, 1u
-                %12:bool = load %x_30
-                store %x_31, %12
-                %13:bool = gt %x_36, 0.0f
-                if %13 [t: %b10, f: %b11] {  # if_1
-                  %b10 = block {  # true
+                %11:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+                %12:f32 = load_vector_element %11, 1u
+                %x_36:f32 = let %12
+                %14:bool = load %x_30
+                store %x_31, %14
+                %15:bool = gt %x_36, 0.0f
+                if %15 [t: $B8, f: $B9] {  # if_1
+                  $B8: {  # true
                     exit_if  # if_1
                   }
-                  %b11 = block {  # false
+                  $B9: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                loop [b: %b12, c: %b13] {  # loop_4
-                  %b12 = block {  # body
-                    %14:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-                    %x_46:f32 = load_vector_element %14, 0u
-                    %16:bool = gt %x_46, 0.0f
-                    if %16 [t: %b14] {  # if_2
-                      %b14 = block {  # true
-                        %17:void = call %x_51
+                loop [b: $B10] {  # loop_4
+                  $B10: {  # body
+                    %16:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+                    %17:f32 = load_vector_element %16, 0u
+                    %x_46:f32 = let %17
+                    %19:bool = gt %x_46, 0.0f
+                    if %19 [t: $B11] {  # if_2
+                      $B11: {  # true
+                        %20:void = call %x_51
                         store %x_52, vec4<f32>(0.0f)
-                        %18:vec4<f32> = load %x_52
-                        store %x_55, %18
+                        %21:vec4<f32> = load %x_52
+                        store %x_55, %21
                         exit_loop  # loop_4
                       }
                     }
-                    %19:vec4<f32> = construct %x_46
-                    %20:vec4<f32> = add vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), %19
-                    store %x_54, %20
-                    %21:vec4<f32> = load %x_54
-                    store %x_55, %21
+                    %22:vec4<f32> = construct %x_46
+                    %23:vec4<f32> = add vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), %22
+                    store %x_54, %23
+                    %24:vec4<f32> = load %x_54
+                    store %x_55, %24
                     exit_loop  # loop_4
                   }
-                  %b13 = block {  # continuing
-                    next_iteration %b12
-                  }
                 }
-                %22:vec4<f32> = load %x_55
-                store %x_GLF_color, %22
+                %25:vec4<f32> = load %x_55
+                store %x_GLF_color, %25
                 store %x_31, true
                 exit_loop  # loop_3
               }
-              %b9 = block {  # continuing
-                next_iteration %b8
-              }
             }
-            %23:bool = load %x_31
-            if %23 [t: %b15, f: %b16] {  # if_3
-              %b15 = block {  # true
+            %26:bool = load %x_31
+            if %26 [t: $B12, f: $B13] {  # if_3
+              $B12: {  # true
                 exit_loop  # loop_2
               }
-              %b16 = block {  # false
-                continue %b7
+              $B13: {  # false
+                continue  # -> $B6
               }
             }
-            continue %b7
+            unreachable
           }
-          %b7 = block {  # continuing
-            %24:bool = load %x_31
-            store %x_30, %24
-            next_iteration %b6
+          $B6: {  # continuing
+            %27:bool = load %x_31
+            store %x_30, %27
+            next_iteration  # -> $B5
           }
         }
-        %25:bool = load %x_31
-        if %25 [t: %b17] {  # if_4
-          %b17 = block {  # true
+        %28:bool = load %x_31
+        if %28 [t: $B14] {  # if_4
+          $B14: {  # true
             exit_loop  # loop_1
           }
         }
         exit_loop  # loop_1
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %30:void = call %main_1
+    %31:vec4<f32> = load %x_GLF_color
+    %32:main_out = construct %31
+    %33:bool = load %continue_execution
+    %34:bool = eq %33, false
+    if %34 [t: $B16] {  # if_5
+      $B16: {  # true
+        terminate_invocation
+      }
+    }
+    ret %32
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.msl
index af2a205..95969fc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/disc-and-add-in-func-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,116 +8,119 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%x_51 = func():void -> %b2 {
-  %b2 = block {
-    discard
+%x_51 = func():void {
+  $B2: {
+    store %continue_execution, false
     ret
   }
 }
-%main_1 = func():void -> %b3 {
-  %b3 = block {
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+%main_1 = func():void {
+  $B3: {
+    loop [b: $B4] {  # loop_1
+      $B4: {  # body
         %x_31:ptr<function, bool, read_write> = var
         %x_30_phi:ptr<function, bool, read_write> = var
         store %x_30_phi, false
-        loop [b: %b6, c: %b7] {  # loop_2
-          %b6 = block {  # body
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
             %x_31_phi:ptr<function, bool, read_write> = var
-            %x_30:bool = load %x_30_phi
-            loop [b: %b8, c: %b9] {  # loop_3
-              %b8 = block {  # body
+            %9:bool = load %x_30_phi
+            %x_30:bool = let %9
+            loop [b: $B7] {  # loop_3
+              $B7: {  # body
                 %x_52:ptr<function, vec4<f32>, read_write> = var
                 %x_54:ptr<function, vec4<f32>, read_write> = var
                 %x_55_phi:ptr<function, vec4<f32>, read_write> = var
-                %12:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-                %x_36:f32 = load_vector_element %12, 1u
+                %14:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+                %15:f32 = load_vector_element %14, 1u
+                %x_36:f32 = let %15
                 store %x_31_phi, %x_30
-                %14:bool = gt %x_36, 0.0f
-                if %14 [t: %b10, f: %b11] {  # if_1
-                  %b10 = block {  # true
+                %17:bool = gt %x_36, 0.0f
+                if %17 [t: $B8, f: $B9] {  # if_1
+                  $B8: {  # true
                     exit_if  # if_1
                   }
-                  %b11 = block {  # false
+                  $B9: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                loop [b: %b12, c: %b13] {  # loop_4
-                  %b12 = block {  # body
-                    %15:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-                    %x_46:f32 = load_vector_element %15, 0u
-                    %17:bool = gt %x_46, 0.0f
-                    if %17 [t: %b14] {  # if_2
-                      %b14 = block {  # true
-                        %18:void = call %x_51
+                loop [b: $B10] {  # loop_4
+                  $B10: {  # body
+                    %18:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+                    %19:f32 = load_vector_element %18, 0u
+                    %x_46:f32 = let %19
+                    %21:bool = gt %x_46, 0.0f
+                    if %21 [t: $B11] {  # if_2
+                      $B11: {  # true
+                        %22:void = call %x_51
                         exit_if  # if_2
                       }
                     }
-                    %19:vec4<f32> = construct %x_46, %x_46, %x_46, %x_46
-                    %20:vec4<f32> = add vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), %19
-                    store %x_54, %20
-                    %21:vec4<f32> = load %x_54
-                    store %x_55_phi, %21
+                    %23:vec4<f32> = construct %x_46, %x_46, %x_46, %x_46
+                    %24:vec4<f32> = add vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), %23
+                    store %x_54, %24
+                    %25:vec4<f32> = load %x_54
+                    store %x_55_phi, %25
                     exit_loop  # loop_4
                   }
-                  %b13 = block {  # continuing
-                    next_iteration %b12
-                  }
                 }
-                %x_55:vec4<f32> = load %x_55_phi
+                %26:vec4<f32> = load %x_55_phi
+                %x_55:vec4<f32> = let %26
                 store %x_GLF_color, %x_55
                 store %x_31_phi, true
                 exit_loop  # loop_3
               }
-              %b9 = block {  # continuing
-                next_iteration %b8
-              }
             }
-            %23:bool = load %x_31_phi
-            store %x_31, %23
-            %24:bool = load %x_31
-            if %24 [t: %b15, f: %b16] {  # if_3
-              %b15 = block {  # true
+            %28:bool = load %x_31_phi
+            store %x_31, %28
+            %29:bool = load %x_31
+            if %29 [t: $B12, f: $B13] {  # if_3
+              $B12: {  # true
                 exit_loop  # loop_2
               }
-              %b16 = block {  # false
-                continue %b7
+              $B13: {  # false
+                continue  # -> $B6
               }
             }
-            continue %b7
+            unreachable
           }
-          %b7 = block {  # continuing
-            %25:bool = load %x_31
-            store %x_30_phi, %25
-            next_iteration %b6
+          $B6: {  # continuing
+            %30:bool = load %x_31
+            store %x_30_phi, %30
+            next_iteration  # -> $B5
           }
         }
-        %26:bool = load %x_31
-        if %26 [t: %b17] {  # if_4
-          %b17 = block {  # true
+        %31:bool = load %x_31
+        if %31 [t: $B14] {  # if_4
+          $B14: {  # true
             exit_loop  # loop_1
           }
         }
         exit_loop  # loop_1
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %33:void = call %main_1
+    %34:vec4<f32> = load %x_GLF_color
+    %35:main_out = construct %34
+    %36:bool = load %continue_execution
+    %37:bool = eq %36, false
+    if %37 [t: $B16] {  # if_5
+      $B16: {  # true
+        terminate_invocation
+      }
+    }
+    ret %35
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.msl
index 8d7cd7f..13b0c0e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,69 +8,74 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%main_1 = func():void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_46:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %6:f32 = load_vector_element %gl_FragCoord, 0u
-            %7:bool = lt %6, 0.0f
-            if %7 [t: %b7] {  # if_1
-              %b7 = block {  # true
-                %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %9:f32 = load_vector_element %8, 1u
-                %10:bool = gt 1.0f, %9
-                if %10 [t: %b8, f: %b9] {  # if_2
-                  %b8 = block {  # true
-                    discard
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
+            %7:f32 = load_vector_element %gl_FragCoord, 0u
+            %8:bool = lt %7, 0.0f
+            if %8 [t: $B6] {  # if_1
+              $B6: {  # true
+                %9:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %10:f32 = load_vector_element %9, 1u
+                %11:bool = gt 1.0f, %10
+                if %11 [t: $B7, f: $B8] {  # if_2
+                  $B7: {  # true
+                    store %continue_execution, false
                     exit_if  # if_2
                   }
-                  %b9 = block {  # false
-                    continue %b6
+                  $B8: {  # false
+                    continue  # -> $B5
                   }
                 }
-                continue %b6
+                continue  # -> $B5
               }
             }
             store %x_46, true
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
+          $B5: {  # continuing
             store %x_46, false
-            break_if true %b5
+            break_if true  # -> [t: exit_loop loop_2, f: $B4]
           }
         }
-        %11:bool = load %x_46
-        if %11 [t: %b10] {  # if_3
-          %b10 = block {  # true
+        %12:bool = load %x_46
+        if %12 [t: $B9] {  # if_3
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    %18:bool = load %continue_execution
+    %19:bool = eq %18, false
+    if %19 [t: $B11] {  # if_4
+      $B11: {  # true
+        terminate_invocation
+      }
+    }
+    ret %17
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.msl
index 299e5df..0307c87 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-continue-return/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,33 +8,36 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%main_1 = func():void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_46_phi:ptr<function, bool, read_write> = var
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %x_37:f32 = load_vector_element %gl_FragCoord, 0u
-            %7:bool = lt %x_37, 0.0f
-            if %7 [t: %b7] {  # if_1
-              %b7 = block {  # true
-                %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_42:f32 = load_vector_element %8, 1u
-                %10:bool = gt 1.0f, %x_42
-                if %10 [t: %b8, f: %b9] {  # if_2
-                  %b8 = block {  # true
-                    discard
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
+            %7:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_37:f32 = let %7
+            %9:bool = lt %x_37, 0.0f
+            if %9 [t: $B6] {  # if_1
+              $B6: {  # true
+                %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %11:f32 = load_vector_element %10, 1u
+                %x_42:f32 = let %11
+                %13:bool = gt 1.0f, %x_42
+                if %13 [t: $B7, f: $B8] {  # if_2
+                  $B7: {  # true
+                    store %continue_execution, false
                     exit_if  # if_2
                   }
-                  %b9 = block {  # false
-                    continue %b6
+                  $B8: {  # false
+                    continue  # -> $B5
                   }
                 }
                 exit_if  # if_1
@@ -43,34 +46,39 @@
             store %x_46_phi, true
             exit_loop  # loop_2
           }
-          %b6 = block {  # continuing
+          $B5: {  # continuing
             store %x_46_phi, false
-            break_if true %b5
+            break_if true  # -> [t: exit_loop loop_2, f: $B4]
           }
         }
-        %x_46:bool = load %x_46_phi
-        if %x_46 [t: %b10] {  # if_3
-          %b10 = block {  # true
+        %14:bool = load %x_46_phi
+        %x_46:bool = let %14
+        if %x_46 [t: $B9] {  # if_3
+          $B9: {  # true
             exit_loop  # loop_1
           }
         }
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    %21:bool = load %continue_execution
+    %22:bool = eq %21, false
+    if %22 [t: $B11] {  # if_4
+      $B11: {  # true
+        terminate_invocation
+      }
+    }
+    ret %20
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.msl
index efdd3b1..d367fcb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,80 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%main_1 = func():void {
+  $B2: {
+    %data:ptr<function, array<f32, 10>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    store %data, array<f32, 10>(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f, 0.5f, 0.60000002384185791016f, 0.69999998807907104492f, 0.80000001192092895508f, 0.89999997615814208984f, 1.0f)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %8:bool = lt %7, 10i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %9:f32 = load_vector_element %gl_FragCoord, 0u
+        %10:bool = lt %9, 0.0f
+        if %10 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %continue_execution, false
+            exit_if  # if_2
+          }
+        }
+        %11:ptr<function, f32, read_write> = access %data, 0i
+        %12:i32 = load %i
+        %13:ptr<function, f32, read_write> = access %data, %12
+        %14:f32 = load %13
+        store %11, %14
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %15:i32 = load %i
+        %16:i32 = add %15, 1i
+        store %i, %16
+        next_iteration  # -> $B3
+      }
+    }
+    %17:ptr<function, f32, read_write> = access %data, 0i
+    %18:f32 = load %17
+    %19:vec4<f32> = construct %18, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %19
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    %25:bool = load %continue_execution
+    %26:bool = eq %25, false
+    if %26 [t: $B9] {  # if_3
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %24
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.msl
index efdd3b1..c4239b2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-array-manipulating-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,86 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%main_1 = func():void {
+  $B2: {
+    %data:ptr<function, array<f32, 10>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    store %data, array<f32, 10>(0.10000000149011611938f, 0.20000000298023223877f, 0.30000001192092895508f, 0.40000000596046447754f, 0.5f, 0.60000002384185791016f, 0.69999998807907104492f, 0.80000001192092895508f, 0.89999997615814208984f, 1.0f)
+    store %i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %i
+        %x_7:i32 = let %7
+        %9:bool = lt %x_7, 10i
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %10:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_50:f32 = let %10
+        %12:bool = lt %x_50, 0.0f
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %continue_execution, false
+            exit_if  # if_2
+          }
+        }
+        %13:i32 = load %i
+        %x_8:i32 = let %13
+        %15:ptr<function, f32, read_write> = access %data, %x_8
+        %16:f32 = load %15
+        %x_55:f32 = let %16
+        %18:ptr<function, f32, read_write> = access %data, 0i
+        store %18, %x_55
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %19:i32 = load %i
+        %x_9:i32 = let %19
+        %21:i32 = add %x_9, 1i
+        store %i, %21
+        next_iteration  # -> $B3
+      }
+    }
+    %22:ptr<function, f32, read_write> = access %data, 0i
+    %23:f32 = load %22
+    %x_58:f32 = let %23
+    %25:vec4<f32> = construct %x_58, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %25
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B8: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    %31:bool = load %continue_execution
+    %32:bool = eq %31, false
+    if %32 [t: $B9] {  # if_3
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %30
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.msl
index f9cd0d3..be82409 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,58 +8,66 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%f_ = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %5:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %6:f32 = load_vector_element %5, 1u
-        %7:bool = gt 1.0f, %6
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %8:f32 = load_vector_element %gl_FragCoord, 1u
-            %9:bool = lt %8, 0.0f
-            if %9 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
-                continue %b4
+%f_ = func():void {
+  $B2: {
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %7:f32 = load_vector_element %6, 1u
+        %8:bool = gt 1.0f, %7
+        if %8 [t: $B5] {  # if_1
+          $B5: {  # true
+            %9:f32 = load_vector_element %gl_FragCoord, 1u
+            %10:bool = lt %9, 0.0f
+            if %10 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                continue  # -> $B4
               }
-              %b7 = block {  # false
-                continue %b4
+              $B7: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_1
           }
         }
-        discard
-        continue %b4
+        store %continue_execution, false
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        break_if true %b3
+      $B4: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
-    %11:void = call %f_
+%main_1 = func():void {
+  $B8: {
+    %12:void = call %f_
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    %18:bool = load %continue_execution
+    %19:bool = eq %18, false
+    if %19 [t: $B10] {  # if_3
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %17
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.msl
index db8fde3..ddf733a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop-in-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,58 +8,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%f_ = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %5:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_35:f32 = load_vector_element %5, 1u
-        %7:bool = gt 1.0f, %x_35
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %x_40:f32 = load_vector_element %gl_FragCoord, 1u
-            %9:bool = lt %x_40, 0.0f
-            if %9 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
-                continue %b4
+%f_ = func():void {
+  $B2: {
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %7:f32 = load_vector_element %6, 1u
+        %x_35:f32 = let %7
+        %9:bool = gt 1.0f, %x_35
+        if %9 [t: $B5] {  # if_1
+          $B5: {  # true
+            %10:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_40:f32 = let %10
+            %12:bool = lt %x_40, 0.0f
+            if %12 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                continue  # -> $B4
               }
-              %b7 = block {  # false
-                continue %b4
+              $B7: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_1
           }
         }
-        discard
-        continue %b4
+        store %continue_execution, false
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        break_if true %b3
+      $B4: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
-    %11:void = call %f_
+%main_1 = func():void {
+  $B8: {
+    %14:void = call %f_
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    %20:bool = load %continue_execution
+    %21:bool = eq %20, false
+    if %21 [t: $B10] {  # if_3
+      $B10: {  # true
+        terminate_invocation
+      }
+    }
+    ret %19
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.msl
index cdbf128..57ab862 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,104 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%x_47 = func():void {
+  $B2: {
+    store %continue_execution, false
+    ret
+  }
+}
+%main_1 = func():void {
+  $B3: {
+    loop [b: $B4] {  # loop_1
+      $B4: {  # body
+        %x_30:ptr<function, i32, read_write> = var
+        %x_48:ptr<function, bool, read_write> = var
+        store %x_30, 0i
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %x_31:ptr<function, i32, read_write> = var
+            store %x_48, false
+            %9:i32 = load %x_30
+            %10:bool = lt %9, 10i
+            if %10 [t: $B7, f: $B8] {  # if_1
+              $B7: {  # true
+                exit_if  # if_1
+              }
+              $B8: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %11:f32 = load_vector_element %gl_FragCoord, 1u
+            %12:bool = lt %11, 0.0f
+            if %12 [t: $B9] {  # if_2
+              $B9: {  # true
+                %13:f32 = load_vector_element %gl_FragCoord, 0u
+                %14:bool = lt %13, 0.0f
+                if %14 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
+                    store %x_48, false
+                    exit_loop  # loop_2
+                  }
+                  $B11: {  # false
+                    continue  # -> $B6
+                  }
+                }
+                exit_if  # if_2
+              }
+            }
+            %15:void = call %x_47
+            store %x_48, true
+            exit_loop  # loop_2
+          }
+          $B6: {  # continuing
+            %16:i32 = load %x_30
+            %17:i32 = add %16, 1i
+            store %x_31, %17
+            %18:i32 = load %x_31
+            store %x_30, %18
+            next_iteration  # -> $B5
+          }
+        }
+        %19:bool = load %x_48
+        if %19 [t: $B12] {  # if_4
+          $B12: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_loop  # loop_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    %25:bool = load %continue_execution
+    %26:bool = eq %25, false
+    if %26 [t: $B14] {  # if_5
+      $B14: {  # true
+        terminate_invocation
+      }
+    }
+    ret %24
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.msl
index cdbf128..bcdf47e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discard-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,106 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%x_47 = func():void {
+  $B2: {
+    store %continue_execution, false
+    ret
+  }
+}
+%main_1 = func():void {
+  $B3: {
+    loop [b: $B4] {  # loop_1
+      $B4: {  # body
+        %x_30_phi:ptr<function, i32, read_write> = var
+        %x_48_phi:ptr<function, bool, read_write> = var
+        store %x_30_phi, 0i
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %x_31:ptr<function, i32, read_write> = var
+            %9:i32 = load %x_30_phi
+            %x_30:i32 = let %9
+            store %x_48_phi, false
+            %11:bool = lt %x_30, 10i
+            if %11 [t: $B7, f: $B8] {  # if_1
+              $B7: {  # true
+                exit_if  # if_1
+              }
+              $B8: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %12:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_37:f32 = let %12
+            %14:bool = lt %x_37, 0.0f
+            if %14 [t: $B9] {  # if_2
+              $B9: {  # true
+                %15:f32 = load_vector_element %gl_FragCoord, 0u
+                %x_42:f32 = let %15
+                %17:bool = lt %x_42, 0.0f
+                if %17 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
+                    store %x_48_phi, false
+                    exit_loop  # loop_2
+                  }
+                  $B11: {  # false
+                    continue  # -> $B6
+                  }
+                }
+                exit_if  # if_2
+              }
+            }
+            %18:void = call %x_47
+            continue  # -> $B6
+          }
+          $B6: {  # continuing
+            %19:i32 = add %x_30, 1i
+            store %x_31, %19
+            %20:i32 = load %x_31
+            store %x_30_phi, %20
+            next_iteration  # -> $B5
+          }
+        }
+        %21:bool = load %x_48_phi
+        %x_48:bool = let %21
+        if %x_48 [t: $B12] {  # if_4
+          $B12: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_loop  # loop_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    %28:bool = load %continue_execution
+    %29:bool = eq %28, false
+    if %29 [t: $B14] {  # if_5
+      $B14: {  # true
+        terminate_invocation
+      }
+    }
+    ret %27
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.msl
index efdd3b1..96643b2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,97 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%main_1 = func():void {
+  $B2: {
+    %ll:ptr<function, i32, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %7:i32 = call %tint_f32_to_i32, %6
+    %9:bool = lt %7, 2000i
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %ll, 0i
+        loop [b: $B5, c: $B6] {  # loop_1
+          $B5: {  # body
+            %10:f32 = load_vector_element %gl_FragCoord, 0u
+            %11:bool = lt %10, 0.0f
+            if %11 [t: $B7] {  # if_2
+              $B7: {  # true
+                store %continue_execution, false
+                exit_if  # if_2
+              }
+            }
+            %12:i32 = load %ll
+            %13:bool = gte %12, 5i
+            if %13 [t: $B8] {  # if_3
+              $B8: {  # true
+                exit_loop  # loop_1
+              }
+            }
+            continue  # -> $B6
+          }
+          $B6: {  # continuing
+            %14:i32 = load %ll
+            %15:i32 = add %14, 1i
+            store %ll, %15
+            next_iteration  # -> $B5
+          }
+        }
+        %16:f32 = load_vector_element %gl_FragCoord, 0u
+        %17:i32 = call %tint_f32_to_i32, %16
+        %18:bool = gte %17, 2000i
+        if %18 [t: $B9] {  # if_4
+          $B9: {  # true
+            store %continue_execution, false
+            exit_if  # if_4
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    %24:bool = load %continue_execution
+    %25:bool = eq %24, false
+    if %25 [t: $B11] {  # if_5
+      $B11: {  # true
+        terminate_invocation
+      }
+    }
+    ret %23
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %27:i32 = convert %value
+    %28:bool = gte %value, -2147483648.0f
+    %29:i32 = select -2147483648i, %27, %28
+    %30:bool = lte %value, 2147483520.0f
+    %31:i32 = select 2147483647i, %29, %30
+    ret %31
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.msl
index efdd3b1..d701592 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/discards-in-control-flow/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,102 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%main_1 = func():void {
+  $B2: {
+    %ll:ptr<function, i32, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_30:f32 = let %6
+    %8:i32 = call %tint_f32_to_i32, %x_30
+    %10:bool = lt %8, 2000i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %ll, 0i
+        loop [b: $B5, c: $B6] {  # loop_1
+          $B5: {  # body
+            %11:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_41:f32 = let %11
+            %13:bool = lt %x_41, 0.0f
+            if %13 [t: $B7] {  # if_2
+              $B7: {  # true
+                store %continue_execution, false
+                exit_if  # if_2
+              }
+            }
+            %14:i32 = load %ll
+            %x_6:i32 = let %14
+            %16:bool = gte %x_6, 5i
+            if %16 [t: $B8] {  # if_3
+              $B8: {  # true
+                exit_loop  # loop_1
+              }
+            }
+            continue  # -> $B6
+          }
+          $B6: {  # continuing
+            %17:i32 = load %ll
+            %x_7:i32 = let %17
+            %19:i32 = add %x_7, 1i
+            store %ll, %19
+            next_iteration  # -> $B5
+          }
+        }
+        %20:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_49:f32 = let %20
+        %22:i32 = call %tint_f32_to_i32, %x_49
+        %23:bool = gte %22, 2000i
+        if %23 [t: $B9] {  # if_4
+          $B9: {  # true
+            store %continue_execution, false
+            exit_if  # if_4
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %26:void = call %main_1
+    %27:vec4<f32> = load %x_GLF_color
+    %28:main_out = construct %27
+    %29:bool = load %continue_execution
+    %30:bool = eq %29, false
+    if %30 [t: $B11] {  # if_5
+      $B11: {  # true
+        terminate_invocation
+      }
+    }
+    ret %28
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %32:i32 = convert %value
+    %33:bool = gte %value, -2147483648.0f
+    %34:i32 = select -2147483648i, %32, %33
+    %35:bool = lte %value, 2147483520.0f
+    %36:i32 = select 2147483647i, %34, %35
+    ret %36
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.msl
index efdd3b1..31236b3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,98 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%f_ = func():vec3<f32> {
+  $B2: {
+    %iteration:ptr<function, i32, read_write> = var
+    %k:ptr<function, i32, read_write> = var
+    store %iteration, 0i
+    store %k, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %k
+        %6:bool = lt %5, 100i
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %7:i32 = load %iteration
+        %8:i32 = add %7, 1i
+        store %iteration, %8
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %9:i32 = load %k
+        %10:i32 = add %9, 1i
+        store %k, %10
+        next_iteration  # -> $B3
+      }
+    }
+    %11:i32 = load %iteration
+    %12:bool = lt %11, 100i
+    if %12 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %13:i32 = load %iteration
+        %x_13:i32 = let %13
+        %15:i32 = load %iteration
+        %x_15:i32 = let %15
+        %17:i32 = sub %x_13, 1i
+        %18:f32 = convert %17
+        %19:f32 = let %18
+        %20:i32 = sub %x_15, 1i
+        %21:f32 = convert %20
+        %22:vec3<f32> = construct 1.0f, %19, %21
+        ret %22
+      }
+      $B8: {  # false
+        loop [b: $B9] {  # loop_2
+          $B9: {  # body
+            loop [b: $B10] {  # loop_3
+              $B10: {  # body
+                ret vec3<f32>(1.0f, 0.0f, 0.0f)
+              }
+            }
+            unreachable
+          }
+        }
+        exit_if  # if_2
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B11: {
+    %24:vec3<f32> = call %f_
+    %x_35:vec3<f32> = let %24
+    %26:f32 = access %x_35, 0u
+    %27:f32 = access %x_35, 1u
+    %28:f32 = access %x_35, 2u
+    %29:vec4<f32> = construct %26, %27, %28, 1.0f
+    store %x_GLF_color, %29
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.msl
index efdd3b1..458203e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/do-while-false-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,102 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%f_ = func():vec3<f32> {
+  $B2: {
+    %iteration:ptr<function, i32, read_write> = var
+    %k:ptr<function, i32, read_write> = var
+    store %iteration, 0i
+    store %k, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %k
+        %x_7:i32 = let %5
+        %7:bool = lt %x_7, 100i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:i32 = load %iteration
+        %x_8:i32 = let %8
+        %10:i32 = add %x_8, 1i
+        store %iteration, %10
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %11:i32 = load %k
+        %x_10:i32 = let %11
+        %13:i32 = add %x_10, 1i
+        store %k, %13
+        next_iteration  # -> $B3
+      }
+    }
+    %14:i32 = load %iteration
+    %x_12:i32 = let %14
+    %16:bool = lt %x_12, 100i
+    if %16 [t: $B7, f: $B8] {  # if_2
+      $B7: {  # true
+        %17:i32 = load %iteration
+        %x_13:i32 = let %17
+        %19:i32 = load %iteration
+        %x_15:i32 = let %19
+        %21:i32 = sub %x_13, 1i
+        %22:f32 = convert %21
+        %23:f32 = let %22
+        %24:i32 = sub %x_15, 1i
+        %25:f32 = convert %24
+        %26:vec3<f32> = construct 1.0f, %23, %25
+        ret %26
+      }
+      $B8: {  # false
+        loop [b: $B9] {  # loop_2
+          $B9: {  # body
+            loop [b: $B10] {  # loop_3
+              $B10: {  # body
+                ret vec3<f32>(1.0f, 0.0f, 0.0f)
+              }
+            }
+            unreachable
+          }
+        }
+        exit_if  # if_2
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B11: {
+    %28:vec3<f32> = call %f_
+    %x_35:vec3<f32> = let %28
+    %30:f32 = access %x_35, 0u
+    %31:f32 = access %x_35, 1u
+    %32:f32 = access %x_35, 2u
+    %33:vec4<f32> = construct %30, %31, %32, 1.0f
+    store %x_GLF_color, %33
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    ret %37
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.msl
index a331746..4942fc3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,87 +8,89 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
+%func_ = func():i32 {
+  $B2: {
     %loop_count:ptr<function, i32, read_write> = var
     %x_38:ptr<function, i32, read_write> = var
     store %loop_count, 0i
     store %x_38, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_45:ptr<function, i32, read_write> = var
         %x_39:ptr<function, i32, read_write> = var
         %8:i32 = load %x_38
-        %x_43:i32 = add %8, 1i
+        %9:i32 = add %8, 1i
+        %x_43:i32 = let %9
         store %loop_count, %x_43
         store %x_45, %x_43
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %10:i32 = load %x_45
-            %11:i32 = add %10, 1i
-            store %x_39, %11
-            %12:i32 = load %x_39
-            store %loop_count, %12
-            %13:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %14:f32 = load_vector_element %13, 0u
-            %15:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %16:f32 = load_vector_element %15, 1u
-            %17:bool = lt %14, %16
-            if %17 [t: %b7] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %11:i32 = load %x_45
+            %12:i32 = add %11, 1i
+            store %x_39, %12
+            %13:i32 = load %x_39
+            store %loop_count, %13
+            %14:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %15:f32 = load_vector_element %14, 0u
+            %16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %17:f32 = load_vector_element %16, 1u
+            %18:bool = lt %15, %17
+            if %18 [t: $B7] {  # if_1
+              $B7: {  # true
                 ret 1i
               }
             }
-            %18:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %19:f32 = load_vector_element %18, 0u
-            %20:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %21:f32 = load_vector_element %20, 1u
-            %22:bool = lt %19, %21
-            if %22 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            %19:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %20:f32 = load_vector_element %19, 0u
+            %21:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %22:f32 = load_vector_element %21, 1u
+            %23:bool = lt %20, %22
+            if %23 [t: $B8] {  # if_2
+              $B8: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            %23:i32 = load %x_39
-            store %x_45, %23
+          $B6: {  # continuing
             %24:i32 = load %x_39
-            %25:bool = lt %24, 100i
-            %26:bool = eq %25, false
-            break_if %26 %b5
+            store %x_45, %24
+            %25:i32 = load %x_39
+            %26:bool = lt %25, 100i
+            %27:bool = eq %26, false
+            break_if %27  # -> [t: exit_loop loop_2, f: $B5]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %27:i32 = load %x_39
-        store %x_38, %27
+      $B4: {  # continuing
         %28:i32 = load %x_39
-        %29:bool = lt %28, 100i
-        %30:bool = eq %29, false
-        break_if %30 %b3
+        store %x_38, %28
+        %29:i32 = load %x_39
+        %30:bool = lt %29, 100i
+        %31:bool = eq %30, false
+        break_if %31  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     ret 0i
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
-    %x_31:i32 = call %func_
-    %33:bool = eq %x_31, 1i
-    if %33 [t: %b10, f: %b11] {  # if_3
-      %b10 = block {  # true
+%main_1 = func():void {
+  $B9: {
+    %33:i32 = call %func_
+    %x_31:i32 = let %33
+    %35:bool = eq %x_31, 1i
+    if %35 [t: $B10, f: $B11] {  # if_3
+      $B10: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b11 = block {  # false
+      $B11: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_3
       }
@@ -96,12 +98,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b12 {
-  %b12 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.msl
index 5d0ab1f..52552ce 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/do-while-if-return/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,87 +8,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():i32 -> %b2 {
-  %b2 = block {
+%func_ = func():i32 {
+  $B2: {
     %loop_count:ptr<function, i32, read_write> = var
     %x_38_phi:ptr<function, i32, read_write> = var
     store %loop_count, 0i
     store %x_38_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_39:ptr<function, i32, read_write> = var
         %x_45_phi:ptr<function, i32, read_write> = var
-        %x_38:i32 = load %x_38_phi
-        %x_43:i32 = add %x_38, 1i
+        %8:i32 = load %x_38_phi
+        %x_38:i32 = let %8
+        %10:i32 = add %x_38, 1i
+        %x_43:i32 = let %10
         store %loop_count, %x_43
         store %x_45_phi, %x_43
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %x_45:i32 = load %x_45_phi
-            %11:i32 = add %x_45, 1i
-            store %x_39, %11
-            %12:i32 = load %x_39
-            store %loop_count, %12
-            %13:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %x_50:f32 = load_vector_element %13, 0u
-            %15:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %x_52:f32 = load_vector_element %15, 1u
-            %17:bool = lt %x_50, %x_52
-            if %17 [t: %b7] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B5, c: $B6] {  # loop_2
+          $B5: {  # body
+            %12:i32 = load %x_45_phi
+            %x_45:i32 = let %12
+            %14:i32 = add %x_45, 1i
+            store %x_39, %14
+            %15:i32 = load %x_39
+            store %loop_count, %15
+            %16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %17:f32 = load_vector_element %16, 0u
+            %x_50:f32 = let %17
+            %19:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %20:f32 = load_vector_element %19, 1u
+            %x_52:f32 = let %20
+            %22:bool = lt %x_50, %x_52
+            if %22 [t: $B7] {  # if_1
+              $B7: {  # true
                 ret 1i
               }
             }
-            %18:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %x_57:f32 = load_vector_element %18, 0u
-            %20:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %x_59:f32 = load_vector_element %20, 1u
-            %22:bool = lt %x_57, %x_59
-            if %22 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            %23:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %24:f32 = load_vector_element %23, 0u
+            %x_57:f32 = let %24
+            %26:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %27:f32 = load_vector_element %26, 1u
+            %x_59:f32 = let %27
+            %29:bool = lt %x_57, %x_59
+            if %29 [t: $B8] {  # if_2
+              $B8: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            %23:i32 = load %x_39
-            store %x_45_phi, %23
-            %24:i32 = load %x_39
-            %25:bool = lt %24, 100i
-            %26:bool = eq %25, false
-            break_if %26 %b5
+          $B6: {  # continuing
+            %30:i32 = load %x_39
+            store %x_45_phi, %30
+            %31:i32 = load %x_39
+            %32:bool = lt %31, 100i
+            %33:bool = eq %32, false
+            break_if %33  # -> [t: exit_loop loop_2, f: $B5]
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %27:i32 = load %x_39
-        store %x_38_phi, %27
-        %28:i32 = load %x_39
-        %29:bool = lt %28, 100i
-        %30:bool = eq %29, false
-        break_if %30 %b3
+      $B4: {  # continuing
+        %34:i32 = load %x_39
+        store %x_38_phi, %34
+        %35:i32 = load %x_39
+        %36:bool = lt %35, 100i
+        %37:bool = eq %36, false
+        break_if %37  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     ret 0i
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
-    %x_31:i32 = call %func_
-    %33:bool = eq %x_31, 1i
-    if %33 [t: %b10, f: %b11] {  # if_3
-      %b10 = block {  # true
+%main_1 = func():void {
+  $B9: {
+    %39:i32 = call %func_
+    %x_31:i32 = let %39
+    %41:bool = eq %x_31, 1i
+    if %41 [t: $B10, f: $B11] {  # if_3
+      $B10: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_3
       }
-      %b11 = block {  # false
+      $B11: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_3
       }
@@ -96,12 +104,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b12 {
-  %b12 = block {
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %43:void = call %main_1
+    %44:vec4<f32> = load %x_GLF_color
+    %45:main_out = construct %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.msl
index efdd3b1..bac8a4e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,56 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    if true [t: $B3] {  # if_1
+      $B3: {  # true
+        %4:f32 = load_vector_element %gl_FragCoord, 0u
+        %5:bool = lt %4, 0.0f
+        if %5 [t: $B4] {  # if_2
+          $B4: {  # true
+            loop [b: $B5, c: $B6] {  # loop_1
+              $B5: {  # body
+                store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+                continue  # -> $B6
+              }
+              $B6: {  # continuing
+                %6:f32 = load_vector_element %gl_FragCoord, 0u
+                %x_32:f32 = let %6
+                %8:bool = lt %x_32, 0.0f
+                %9:bool = eq %8, false
+                break_if %9  # -> [t: exit_loop loop_1, f: $B5]
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_GLF_color
+    %14:main_out = construct %13
+    ret %14
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.msl
index efdd3b1..9e49130 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/do-while-loop-in-conditionals/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,57 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    if true [t: $B3] {  # if_1
+      $B3: {  # true
+        %4:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_23:f32 = let %4
+        %6:bool = lt %x_23, 0.0f
+        if %6 [t: $B4] {  # if_2
+          $B4: {  # true
+            loop [b: $B5, c: $B6] {  # loop_1
+              $B5: {  # body
+                store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+                continue  # -> $B6
+              }
+              $B6: {  # continuing
+                %7:f32 = load_vector_element %gl_FragCoord, 0u
+                %x_32:f32 = let %7
+                %9:bool = lt %x_32, 0.0f
+                %10:bool = eq %9, false
+                break_if %10  # -> [t: exit_loop loop_1, f: $B5]
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %13:void = call %main_1
+    %14:vec4<f32> = load %x_GLF_color
+    %15:main_out = construct %14
+    ret %15
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.msl
index 05d337a..18ecc8e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.spvasm.expected.ir.msl
@@ -1,44 +1,44 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: theSSBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: theSSBO = struct @align(4) {
   out_data:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, theSSBO, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, mat2x2<f32>, read_write> = var
     %x_32:ptr<function, i32, read_write> = var
     %5:ptr<storage, i32, read_write> = access %x_4, 0u
     store %5, 42i
     store %x_30, mat2x2<f32>(vec2<f32>(0.0f))
     store %x_32, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_33:ptr<function, i32, read_write> = var
         %7:i32 = load %x_32
         %8:bool = gt %7, 0i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %9:i32 = load %x_32
         %10:i32 = sub %9, 1i
         store %x_33, %10
         store %x_30, mat2x2<f32>(vec2<f32>(1.0f, 0.0f), vec2<f32>(0.0f, 1.0f))
         %11:i32 = load %x_33
         store %x_32, %11
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %12:ptr<function, vec2<f32>, read_write> = access %x_30, 0u
@@ -48,29 +48,27 @@
     %16:vec2<f32> = load %15
     %17:vec2<f32> = sub %16, vec2<f32>(0.0f, 1.0f)
     %18:mat2x2<f32> = construct %14, %17
-    %x_41:vec2<f32> = mul vec2<f32>(1.0f), %18
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %20:f32 = access %x_41, 0u
-        %21:bool = lt 1.0f, %20
-        if %21 [t: %b9] {  # if_2
-          %b9 = block {  # true
+    %19:vec2<f32> = mul vec2<f32>(1.0f), %18
+    %x_41:vec2<f32> = let %19
+    loop [b: $B7] {  # loop_2
+      $B7: {  # body
+        %21:f32 = access %x_41, 0u
+        %22:bool = lt 1.0f, %21
+        if %22 [t: $B8] {  # if_2
+          $B8: {  # true
             exit_loop  # loop_2
           }
         }
-        %22:void = workgroupBarrier
+        %23:void = msl.threadgroup_barrier 4u
         exit_loop  # loop_2
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
-      }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b10 {
-  %b10 = block {
-    %24:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B9: {
+    %25:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.msl
index b9183a2..afab298 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/early-return-and-barrier/0.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: theSSBO = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: theSSBO = struct @align(4) {
   out_data:i32 @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, theSSBO, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, mat2x2<f32>, read_write> = var
     %x_30_phi:ptr<function, mat2x2<f32>, read_write> = var
     %x_32_phi:ptr<function, i32, read_write> = var
@@ -17,62 +17,61 @@
     store %6, 42i
     store %x_30_phi, mat2x2<f32>(vec2<f32>(0.0f))
     store %x_32_phi, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_33:ptr<function, i32, read_write> = var
         %8:mat2x2<f32> = load %x_30_phi
         store %x_30, %8
-        %x_32:i32 = load %x_32_phi
-        %10:bool = gt %x_32, 0i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %9:i32 = load %x_32_phi
+        %x_32:i32 = let %9
+        %11:bool = gt %x_32, 0i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %11:i32 = sub %x_32, 1i
-        store %x_33, %11
+      $B4: {  # continuing
+        %12:i32 = sub %x_32, 1i
+        store %x_33, %12
         store %x_30_phi, mat2x2<f32>(vec2<f32>(1.0f, 0.0f), vec2<f32>(0.0f, 1.0f))
-        %12:i32 = load %x_33
-        store %x_32_phi, %12
-        next_iteration %b3
+        %13:i32 = load %x_33
+        store %x_32_phi, %13
+        next_iteration  # -> $B3
       }
     }
-    %13:ptr<function, vec2<f32>, read_write> = access %x_30, 0u
-    %14:vec2<f32> = load %13
-    %15:vec2<f32> = sub %14, vec2<f32>(1.0f, 0.0f)
-    %16:ptr<function, vec2<f32>, read_write> = access %x_30, 1u
-    %17:vec2<f32> = load %16
-    %18:vec2<f32> = sub %17, vec2<f32>(0.0f, 1.0f)
-    %19:mat2x2<f32> = construct %15, %18
-    %x_41:vec2<f32> = mul vec2<f32>(1.0f), %19
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %21:f32 = access %x_41, 0u
-        %22:bool = lt 1.0f, %21
-        if %22 [t: %b9] {  # if_2
-          %b9 = block {  # true
+    %14:ptr<function, vec2<f32>, read_write> = access %x_30, 0u
+    %15:vec2<f32> = load %14
+    %16:vec2<f32> = sub %15, vec2<f32>(1.0f, 0.0f)
+    %17:ptr<function, vec2<f32>, read_write> = access %x_30, 1u
+    %18:vec2<f32> = load %17
+    %19:vec2<f32> = sub %18, vec2<f32>(0.0f, 1.0f)
+    %20:mat2x2<f32> = construct %16, %19
+    %21:vec2<f32> = mul vec2<f32>(1.0f), %20
+    %x_41:vec2<f32> = let %21
+    loop [b: $B7] {  # loop_2
+      $B7: {  # body
+        %23:f32 = access %x_41, 0u
+        %24:bool = lt 1.0f, %23
+        if %24 [t: $B8] {  # if_2
+          $B8: {  # true
             exit_loop  # loop_2
           }
         }
-        %23:void = workgroupBarrier
+        %25:void = msl.threadgroup_barrier 4u
         exit_loop  # loop_2
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
-      }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b10 {
-  %b10 = block {
-    %25:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B9: {
+    %27:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.msl
index 43e2505..3d53649 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,117 +8,119 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %loop_count:ptr<function, i32, read_write> = var
     store %loop_count, 0i
     %6:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %7:f32 = load_vector_element %6, 0u
     %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %9:f32 = load_vector_element %8, 1u
-    %x_36:bool = gt %7, %9
-    if %x_36 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %10:bool = gt %7, %9
+    %x_36:bool = let %10
+    if %x_36 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
-    %11:f32 = load_vector_element %gl_FragCoord, 0u
-    %x_41:bool = lt %11, 0.0f
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %13:i32 = load %loop_count
-        %14:bool = lt %13, 100i
-        if %14 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    %12:f32 = load_vector_element %gl_FragCoord, 0u
+    %13:bool = lt %12, 0.0f
+    %x_41:bool = let %13
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %15:i32 = load %loop_count
+        %16:bool = lt %15, 100i
+        if %16 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        if %x_36 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        if %x_36 [t: $B8] {  # if_3
+          $B8: {  # true
             exit_loop  # loop_1
           }
         }
-        if %x_36 [t: %b9, f: %b10] {  # if_4
-          %b9 = block {  # true
+        if %x_36 [t: $B9, f: $B10] {  # if_4
+          $B9: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_4
           }
-          %b10 = block {  # false
-            if %x_41 [t: %b11] {  # if_5
-              %b11 = block {  # true
+          $B10: {  # false
+            if %x_41 [t: $B11] {  # if_5
+              $B11: {  # true
                 ret
               }
             }
             exit_if  # if_4
           }
         }
-        if %x_36 [t: %b12, f: %b13] {  # if_6
-          %b12 = block {  # true
+        if %x_36 [t: $B12, f: $B13] {  # if_6
+          $B12: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_6
           }
-          %b13 = block {  # false
+          $B13: {  # false
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_6
           }
         }
-        if %x_36 [t: %b14] {  # if_7
-          %b14 = block {  # true
+        if %x_36 [t: $B14] {  # if_7
+          $B14: {  # true
             ret
           }
         }
-        if %x_41 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            loop [b: %b16, c: %b17] {  # loop_2
-              %b16 = block {  # body
-                %15:i32 = load %loop_count
-                %16:bool = lt %15, 100i
-                if %16 [t: %b18, f: %b19] {  # if_9
-                  %b18 = block {  # true
+        if %x_41 [t: $B15] {  # if_8
+          $B15: {  # true
+            loop [b: $B16, c: $B17] {  # loop_2
+              $B16: {  # body
+                %17:i32 = load %loop_count
+                %18:bool = lt %17, 100i
+                if %18 [t: $B18, f: $B19] {  # if_9
+                  $B18: {  # true
                     exit_if  # if_9
                   }
-                  %b19 = block {  # false
+                  $B19: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                continue %b17
+                continue  # -> $B17
               }
-              %b17 = block {  # continuing
-                %17:i32 = load %loop_count
-                %18:i32 = add %17, 1i
-                store %loop_count, %18
-                next_iteration %b16
+              $B17: {  # continuing
+                %19:i32 = load %loop_count
+                %20:i32 = add %19, 1i
+                store %loop_count, %20
+                next_iteration  # -> $B16
               }
             }
             exit_if  # if_8
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %19:i32 = load %loop_count
-        %20:i32 = add %19, 1i
-        store %loop_count, %20
-        next_iteration %b4
+      $B5: {  # continuing
+        %21:i32 = load %loop_count
+        %22:i32 = add %21, 1i
+        store %loop_count, %22
+        next_iteration  # -> $B4
       }
     }
-    %21:i32 = load %loop_count
-    %22:bool = gte %21, 100i
-    if %22 [t: %b20, f: %b21] {  # if_10
-      %b20 = block {  # true
+    %23:i32 = load %loop_count
+    %24:bool = gte %23, 100i
+    if %24 [t: $B20, f: $B21] {  # if_10
+      $B20: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_10
       }
-      %b21 = block {  # false
+      $B21: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_10
       }
@@ -126,13 +128,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b22 {
-  %b22 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B22: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.msl
index 224f99f..08ad7cc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/flag-always-false-if/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,117 +8,127 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %loop_count:ptr<function, i32, read_write> = var
     store %loop_count, 0i
     %6:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_33:f32 = load_vector_element %6, 0u
-    %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_35:f32 = load_vector_element %8, 1u
-    %x_36:bool = gt %x_33, %x_35
-    if %x_36 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %7:f32 = load_vector_element %6, 0u
+    %x_33:f32 = let %7
+    %9:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %10:f32 = load_vector_element %9, 1u
+    %x_35:f32 = let %10
+    %12:bool = gt %x_33, %x_35
+    %x_36:bool = let %12
+    if %x_36 [t: $B3] {  # if_1
+      $B3: {  # true
         ret
       }
     }
-    %x_40:f32 = load_vector_element %gl_FragCoord, 0u
-    %x_41:bool = lt %x_40, 0.0f
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_43:i32 = load %loop_count
-        %14:bool = lt %x_43, 100i
-        if %14 [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    %14:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_40:f32 = let %14
+    %16:bool = lt %x_40, 0.0f
+    %x_41:bool = let %16
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %18:i32 = load %loop_count
+        %x_43:i32 = let %18
+        %20:bool = lt %x_43, 100i
+        if %20 [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        if %x_36 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        if %x_36 [t: $B8] {  # if_3
+          $B8: {  # true
             exit_loop  # loop_1
           }
         }
-        if %x_36 [t: %b9, f: %b10] {  # if_4
-          %b9 = block {  # true
+        if %x_36 [t: $B9, f: $B10] {  # if_4
+          $B9: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_4
           }
-          %b10 = block {  # false
-            if %x_41 [t: %b11] {  # if_5
-              %b11 = block {  # true
+          $B10: {  # false
+            if %x_41 [t: $B11] {  # if_5
+              $B11: {  # true
                 ret
               }
             }
             exit_if  # if_4
           }
         }
-        if %x_36 [t: %b12, f: %b13] {  # if_6
-          %b12 = block {  # true
+        if %x_36 [t: $B12, f: $B13] {  # if_6
+          $B12: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_6
           }
-          %b13 = block {  # false
+          $B13: {  # false
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_6
           }
         }
-        if %x_36 [t: %b14] {  # if_7
-          %b14 = block {  # true
+        if %x_36 [t: $B14] {  # if_7
+          $B14: {  # true
             ret
           }
         }
-        if %x_41 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            loop [b: %b16, c: %b17] {  # loop_2
-              %b16 = block {  # body
-                %x_63:i32 = load %loop_count
-                %16:bool = lt %x_63, 100i
-                if %16 [t: %b18, f: %b19] {  # if_9
-                  %b18 = block {  # true
+        if %x_41 [t: $B15] {  # if_8
+          $B15: {  # true
+            loop [b: $B16, c: $B17] {  # loop_2
+              $B16: {  # body
+                %21:i32 = load %loop_count
+                %x_63:i32 = let %21
+                %23:bool = lt %x_63, 100i
+                if %23 [t: $B18, f: $B19] {  # if_9
+                  $B18: {  # true
                     exit_if  # if_9
                   }
-                  %b19 = block {  # false
+                  $B19: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                continue %b17
+                continue  # -> $B17
               }
-              %b17 = block {  # continuing
-                %x_67:i32 = load %loop_count
-                %18:i32 = add %x_67, 1i
-                store %loop_count, %18
-                next_iteration %b16
+              $B17: {  # continuing
+                %24:i32 = load %loop_count
+                %x_67:i32 = let %24
+                %26:i32 = add %x_67, 1i
+                store %loop_count, %26
+                next_iteration  # -> $B16
               }
             }
             exit_if  # if_8
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_69:i32 = load %loop_count
-        %20:i32 = add %x_69, 1i
-        store %loop_count, %20
-        next_iteration %b4
+      $B5: {  # continuing
+        %27:i32 = load %loop_count
+        %x_69:i32 = let %27
+        %29:i32 = add %x_69, 1i
+        store %loop_count, %29
+        next_iteration  # -> $B4
       }
     }
-    %x_71:i32 = load %loop_count
-    %22:bool = gte %x_71, 100i
-    if %22 [t: %b20, f: %b21] {  # if_10
-      %b20 = block {  # true
+    %30:i32 = load %loop_count
+    %x_71:i32 = let %30
+    %32:bool = gte %x_71, 100i
+    if %32 [t: $B20, f: $B21] {  # if_10
+      $B20: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_10
       }
-      %b21 = block {  # false
+      $B21: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_10
       }
@@ -126,13 +136,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b22 {
-  %b22 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B22: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %25:void = call %main_1
-    %26:vec4<f32> = load %x_GLF_color
-    %27:main_out = construct %26
-    ret %27
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    ret %37
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.msl
index 2e88a5f..bec01b25 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,59 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%drawShape_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):vec3<f32> {
+  $B2: {
+    %c3:ptr<function, bool, read_write> = var
+    %x_35:ptr<function, bool, read_write> = var
+    %6:f32 = load_vector_element %pos, 1u
+    %7:bool = lt %6, 1.0f
+    %x_33:bool = let %7
+    store %c3, %x_33
+    store %x_35, %x_33
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %9:bool = load %x_35
+        if %9 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
+            exit_if  # if_1
+          }
+          $B5: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        ret vec3<f32>(1.0f)
+      }
+    }
+    ret vec3<f32>(1.0f)
+  }
+}
+%main_1 = func():void {
+  $B6: {
+    %param:ptr<function, vec2<f32>, read_write> = var
+    store %param, vec2<f32>(1.0f)
+    %12:vec3<f32> = call %drawShape_vf2_, %param
+    %x_29:vec3<f32> = let %12
+    store %color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.msl
index 2e88a5f..e6a1cb2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/for-condition-always-false/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,61 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%drawShape_vf2_ = func(%pos:ptr<function, vec2<f32>, read_write>):vec3<f32> {
+  $B2: {
+    %c3:ptr<function, bool, read_write> = var
+    %x_35_phi:ptr<function, bool, read_write> = var
+    %6:f32 = load_vector_element %pos, 1u
+    %x_32:f32 = let %6
+    %8:bool = lt %x_32, 1.0f
+    %x_33:bool = let %8
+    store %c3, %x_33
+    store %x_35_phi, %x_33
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %10:bool = load %x_35_phi
+        %x_35:bool = let %10
+        if %x_35 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
+            exit_if  # if_1
+          }
+          $B5: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        ret vec3<f32>(1.0f)
+      }
+    }
+    ret vec3<f32>(1.0f)
+  }
+}
+%main_1 = func():void {
+  $B6: {
+    %param:ptr<function, vec2<f32>, read_write> = var
+    store %param, vec2<f32>(1.0f)
+    %14:vec3<f32> = call %drawShape_vf2_, %param
+    %x_29:vec3<f32> = let %14
+    store %color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %17:void = call %main_1
+    %18:vec4<f32> = load %color
+    %19:main_out = construct %18
+    ret %19
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.msl
index cdbf128..174db25 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.spvasm.expected.ir.msl
@@ -1,6 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%mand_ = func():vec3<f32> {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        ret vec3<f32>(1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B4: {
+    %4:vec3<f32> = call %mand_
+    %x_17:vec3<f32> = let %4
+    loop [b: $B5] {  # loop_2
+      $B5: {  # body
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        ret
+      }
+    }
+    unreachable
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %7:void = call %main_1
+    %8:vec4<f32> = load %x_GLF_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.msl
index cdbf128..174db25 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/for-loop-with-return/0.wgsl.expected.ir.msl
@@ -1,6 +1,46 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%mand_ = func():vec3<f32> {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        ret vec3<f32>(1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B4: {
+    %4:vec3<f32> = call %mand_
+    %x_17:vec3<f32> = let %4
+    loop [b: $B5] {  # loop_2
+      $B5: {  # body
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        ret
+      }
+    }
+    unreachable
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %7:void = call %main_1
+    %8:vec4<f32> = load %x_GLF_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.msl
index efdd3b1..6cc6784 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,69 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %i
+        %6:bool = lt %5, 2i
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %7:f32 = load_vector_element %gl_FragCoord, 1u
+        %8:bool = lt %7, 0.0f
+        if %8 [t: $B7] {  # if_2
+          $B7: {  # true
+            %9:f32 = load_vector_element %gl_FragCoord, 0u
+            %10:bool = lt %9, 0.0f
+            if %10 [t: $B8] {  # if_3
+              $B8: {  # true
+                store %x_GLF_color, vec4<f32>(226.6959991455078125f, 1.0f, 1.0f, 1.0f)
+                exit_if  # if_3
+              }
+            }
+            continue  # -> $B4
+          }
+        }
+        ret
+      }
+      $B4: {  # continuing
+        %11:i32 = load %i
+        %12:i32 = add %11, 1i
+        store %i, %12
+        next_iteration  # -> $B3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.msl
index efdd3b1..cc57c8e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/for-with-ifs-and-return/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %i
+        %x_6:i32 = let %5
+        %7:bool = lt %x_6, 2i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_37:f32 = let %8
+        %10:bool = lt %x_37, 0.0f
+        if %10 [t: $B7] {  # if_2
+          $B7: {  # true
+            %11:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_42:f32 = let %11
+            %13:bool = lt %x_42, 0.0f
+            if %13 [t: $B8] {  # if_3
+              $B8: {  # true
+                store %x_GLF_color, vec4<f32>(226.6959991455078125f, 1.0f, 1.0f, 1.0f)
+                exit_if  # if_3
+              }
+            }
+            continue  # -> $B4
+          }
+        }
+        ret
+      }
+      $B4: {  # continuing
+        %14:i32 = load %i
+        %x_7:i32 = let %14
+        %16:i32 = add %x_7, 1i
+        store %i, %16
+        next_iteration  # -> $B3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.msl
index 9f99dd5..476e24a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_43:ptr<function, f32, read_write> = var
     %x_44:ptr<function, f32, read_write> = var
     %x_45:ptr<function, f32, read_write> = var
@@ -26,33 +26,35 @@
     %12:vec4<f32> = load %gl_FragCoord
     %13:vec2<f32> = swizzle %12, xy
     store %param, %13
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %14:f32 = load_vector_element %param, 1u
         %15:bool = lt %14, 50.0f
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %15 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             %16:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
             %17:f32 = load_vector_element %16, 1u
             store %x_44, %17
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             store %x_44, 0.0f
             exit_if  # if_1
           }
         }
-        %x_61:f32 = load %x_44
-        %19:f32 = load %x_44
-        store %x_43, %19
-        %20:f32 = load_vector_element %gl_FragCoord, 1u
-        %21:bool = lt %20, 50.0f
-        %x_65:f32 = select 0.0f, 1.0f, %21
+        %18:f32 = load %x_44
+        %x_61:f32 = let %18
+        %20:f32 = load %x_44
+        store %x_43, %20
+        %21:f32 = load_vector_element %gl_FragCoord, 1u
+        %22:bool = lt %21, 50.0f
+        %23:f32 = select 0.0f, 1.0f, %22
+        %x_65:f32 = let %23
         store %x_45, %x_65
-        %23:f32 = sub %x_61, %x_65
-        %24:bool = lt %23, 1.0f
-        if %24 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %25:f32 = sub %x_61, %x_65
+        %26:bool = lt %25, 1.0f
+        if %26 [t: $B6] {  # if_2
+          $B6: {  # true
             store %x_46, 0i
             exit_loop  # loop_1
           }
@@ -60,107 +62,109 @@
         store %x_46, 1i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        break_if true %b3
-      }
     }
-    %x_70:i32 = load %x_46
-    %26:i32 = load %x_46
-    store %zero, %26
-    %27:bool = eq %x_70, 1i
-    if %27 [t: %b8] {  # if_3
-      %b8 = block {  # true
+    %27:i32 = load %x_46
+    %x_70:i32 = let %27
+    %29:i32 = load %x_46
+    store %zero, %29
+    %30:bool = eq %x_70, 1i
+    if %30 [t: $B7] {  # if_3
+      $B7: {  # true
         ret
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f)
-    %28:f32 = load_vector_element %gl_FragCoord, 0u
-    %29:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %30:f32 = load_vector_element %29, 0u
-    %31:bool = gte %28, %30
-    if %31 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %32:f32 = load_vector_element %gl_FragCoord, 1u
-        %33:bool = gte %32, 0.0f
-        if %33 [t: %b10] {  # if_5
-          %b10 = block {  # true
-            %34:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-            %35:f32 = load_vector_element %34, 1u
-            store_vector_element %x_GLF_color, 0u, %35
+    %31:f32 = load_vector_element %gl_FragCoord, 0u
+    %32:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %33:f32 = load_vector_element %32, 0u
+    %34:bool = gte %31, %33
+    if %34 [t: $B8] {  # if_4
+      $B8: {  # true
+        %35:f32 = load_vector_element %gl_FragCoord, 1u
+        %36:bool = gte %35, 0.0f
+        if %36 [t: $B9] {  # if_5
+          $B9: {  # true
+            %37:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+            %38:f32 = load_vector_element %37, 1u
+            store_vector_element %x_GLF_color, 0u, %38
             exit_if  # if_5
           }
         }
         exit_if  # if_4
       }
     }
-    %36:f32 = load_vector_element %gl_FragCoord, 1u
-    %37:bool = gte %36, 0.0f
-    if %37 [t: %b11] {  # if_6
-      %b11 = block {  # true
-        %38:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %39:f32 = load_vector_element %38, 0u
-        store_vector_element %x_GLF_color, 1u, %39
+    %39:f32 = load_vector_element %gl_FragCoord, 1u
+    %40:bool = gte %39, 0.0f
+    if %40 [t: $B10] {  # if_6
+      $B10: {  # true
+        %41:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %42:f32 = load_vector_element %41, 0u
+        store_vector_element %x_GLF_color, 1u, %42
         exit_if  # if_6
       }
     }
-    %40:vec4<f32> = load %gl_FragCoord
-    %x_98:vec2<f32> = swizzle %40, xy
-    %42:f32 = access %x_98, 0u
-    %43:f32 = access %x_98, 1u
-    %x_101:vec2<f32> = construct %42, %43
+    %43:vec4<f32> = load %gl_FragCoord
+    %44:vec2<f32> = swizzle %43, xy
+    %x_98:vec2<f32> = let %44
+    %46:f32 = access %x_98, 0u
+    %47:f32 = access %x_98, 1u
+    %48:vec2<f32> = construct %46, %47
+    %x_101:vec2<f32> = let %48
     store %temp, %x_101
-    %45:f32 = access %x_101, 1u
-    %46:bool = gte %45, 0.0f
-    if %46 [t: %b12] {  # if_7
-      %b12 = block {  # true
-        %47:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %48:f32 = load_vector_element %47, 0u
-        store_vector_element %x_GLF_color, 2u, %48
+    %50:f32 = access %x_101, 1u
+    %51:bool = gte %50, 0.0f
+    if %51 [t: $B11] {  # if_7
+      $B11: {  # true
+        %52:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %53:f32 = load_vector_element %52, 0u
+        store_vector_element %x_GLF_color, 2u, %53
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+    %56:void = call %main_1
+    %57:vec4<f32> = load %x_GLF_color
+    %58:main_out = construct %57
+    ret %58
   }
 }
-%alwaysZero_vf2_ = func(%coord:ptr<function, vec2<f32>, read_write>):i32 -> %b14 {
-  %b14 = block {
+%alwaysZero_vf2_ = func(%coord:ptr<function, vec2<f32>, read_write>):i32 {
+  $B13: {
     %a:ptr<function, f32, read_write> = var
     %x_110:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
-    %59:f32 = load_vector_element %coord, 1u
-    %60:bool = lt %59, 50.0f
-    if %60 [t: %b15, f: %b16] {  # if_8
-      %b15 = block {  # true
-        %61:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %62:f32 = load_vector_element %61, 1u
-        store %x_110, %62
+    %64:f32 = load_vector_element %coord, 1u
+    %65:bool = lt %64, 50.0f
+    if %65 [t: $B14, f: $B15] {  # if_8
+      $B14: {  # true
+        %66:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %67:f32 = load_vector_element %66, 1u
+        store %x_110, %67
         exit_if  # if_8
       }
-      %b16 = block {  # false
+      $B15: {  # false
         store %x_110, 0.0f
         exit_if  # if_8
       }
     }
-    %x_119:f32 = load %x_110
-    %64:f32 = load %x_110
-    store %a, %64
-    %65:f32 = load_vector_element %gl_FragCoord, 1u
-    %66:bool = lt %65, 50.0f
-    %x_123:f32 = select 0.0f, 1.0f, %66
+    %68:f32 = load %x_110
+    %x_119:f32 = let %68
+    %70:f32 = load %x_110
+    store %a, %70
+    %71:f32 = load_vector_element %gl_FragCoord, 1u
+    %72:bool = lt %71, 50.0f
+    %73:f32 = select 0.0f, 1.0f, %72
+    %x_123:f32 = let %73
     store %b, %x_123
-    %68:f32 = sub %x_119, %x_123
-    %69:bool = lt %68, 1.0f
-    if %69 [t: %b17] {  # if_9
-      %b17 = block {  # true
+    %75:f32 = sub %x_119, %x_123
+    %76:bool = lt %75, 1.0f
+    if %76 [t: $B16] {  # if_9
+      $B16: {  # true
         ret 0i
       }
     }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.msl
index cc45298..7874daf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/frag-coord-func-call-and-ifs/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_43:ptr<function, f32, read_write> = var
     %x_44:ptr<function, f32, read_write> = var
     %x_45:ptr<function, f32, read_write> = var
@@ -23,37 +23,43 @@
     %zero:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %temp:ptr<function, vec2<f32>, read_write> = var
-    %x_47:vec4<f32> = load %gl_FragCoord
-    %13:f32 = access %x_47, 0u
-    %14:f32 = access %x_47, 1u
-    %15:vec2<f32> = construct %13, %14
-    store %param, %15
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_54:f32 = load_vector_element %param, 1u
-        %17:bool = lt %x_54, 50.0f
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
-            %18:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-            %x_60:f32 = load_vector_element %18, 1u
+    %12:vec4<f32> = load %gl_FragCoord
+    %x_47:vec4<f32> = let %12
+    %14:f32 = access %x_47, 0u
+    %15:f32 = access %x_47, 1u
+    %16:vec2<f32> = construct %14, %15
+    store %param, %16
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %17:f32 = load_vector_element %param, 1u
+        %x_54:f32 = let %17
+        %19:bool = lt %x_54, 50.0f
+        if %19 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
+            %20:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+            %21:f32 = load_vector_element %20, 1u
+            %x_60:f32 = let %21
             store %x_44, %x_60
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             store %x_44, 0.0f
             exit_if  # if_1
           }
         }
-        %x_61:f32 = load %x_44
+        %23:f32 = load %x_44
+        %x_61:f32 = let %23
         store %x_43, %x_61
-        %x_63:f32 = load_vector_element %gl_FragCoord, 1u
-        %22:bool = lt %x_63, 50.0f
-        %x_65:f32 = select 0.0f, 1.0f, %22
+        %25:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_63:f32 = let %25
+        %27:bool = lt %x_63, 50.0f
+        %28:f32 = select 0.0f, 1.0f, %27
+        %x_65:f32 = let %28
         store %x_45, %x_65
-        %24:f32 = sub %x_61, %x_65
-        %25:bool = lt %24, 1.0f
-        if %25 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %30:f32 = sub %x_61, %x_65
+        %31:bool = lt %30, 1.0f
+        if %31 [t: $B6] {  # if_2
+          $B6: {  # true
             store %x_46, 0i
             exit_loop  # loop_1
           }
@@ -61,31 +67,33 @@
         store %x_46, 1i
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        break_if true %b3
-      }
     }
-    %x_70:i32 = load %x_46
+    %32:i32 = load %x_46
+    %x_70:i32 = let %32
     store %zero, %x_70
-    %27:bool = eq %x_70, 1i
-    if %27 [t: %b8] {  # if_3
-      %b8 = block {  # true
+    %34:bool = eq %x_70, 1i
+    if %34 [t: $B7] {  # if_3
+      $B7: {  # true
         ret
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f)
-    %x_75:f32 = load_vector_element %gl_FragCoord, 0u
-    %29:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_77:f32 = load_vector_element %29, 0u
-    %31:bool = gte %x_75, %x_77
-    if %31 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %x_82:f32 = load_vector_element %gl_FragCoord, 1u
-        %33:bool = gte %x_82, 0.0f
-        if %33 [t: %b10] {  # if_5
-          %b10 = block {  # true
-            %34:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-            %x_87:f32 = load_vector_element %34, 1u
+    %35:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_75:f32 = let %35
+    %37:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %38:f32 = load_vector_element %37, 0u
+    %x_77:f32 = let %38
+    %40:bool = gte %x_75, %x_77
+    if %40 [t: $B8] {  # if_4
+      $B8: {  # true
+        %41:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_82:f32 = let %41
+        %43:bool = gte %x_82, 0.0f
+        if %43 [t: $B9] {  # if_5
+          $B9: {  # true
+            %44:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+            %45:f32 = load_vector_element %44, 1u
+            %x_87:f32 = let %45
             store_vector_element %x_GLF_color, 0u, %x_87
             exit_if  # if_5
           }
@@ -93,30 +101,36 @@
         exit_if  # if_4
       }
     }
-    %x_90:f32 = load_vector_element %gl_FragCoord, 1u
-    %37:bool = gte %x_90, 0.0f
-    if %37 [t: %b11] {  # if_6
-      %b11 = block {  # true
-        %38:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_95:f32 = load_vector_element %38, 0u
+    %47:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_90:f32 = let %47
+    %49:bool = gte %x_90, 0.0f
+    if %49 [t: $B10] {  # if_6
+      $B10: {  # true
+        %50:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %51:f32 = load_vector_element %50, 0u
+        %x_95:f32 = let %51
         store_vector_element %x_GLF_color, 1u, %x_95
         exit_if  # if_6
       }
     }
-    %x_97:vec4<f32> = load %gl_FragCoord
-    %41:f32 = access %x_97, 0u
-    %42:f32 = access %x_97, 1u
-    %x_98:vec2<f32> = construct %41, %42
-    %44:f32 = access %x_98, 0u
-    %45:f32 = access %x_98, 1u
-    %x_101:vec2<f32> = construct %44, %45
+    %53:vec4<f32> = load %gl_FragCoord
+    %x_97:vec4<f32> = let %53
+    %55:f32 = access %x_97, 0u
+    %56:f32 = access %x_97, 1u
+    %57:vec2<f32> = construct %55, %56
+    %x_98:vec2<f32> = let %57
+    %59:f32 = access %x_98, 0u
+    %60:f32 = access %x_98, 1u
+    %61:vec2<f32> = construct %59, %60
+    %x_101:vec2<f32> = let %61
     store %temp, %x_101
-    %47:f32 = access %x_101, 1u
-    %48:bool = gte %47, 0.0f
-    if %48 [t: %b12] {  # if_7
-      %b12 = block {  # true
-        %49:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_107:f32 = load_vector_element %49, 0u
+    %63:f32 = access %x_101, 1u
+    %64:bool = gte %63, 0.0f
+    if %64 [t: $B11] {  # if_7
+      $B11: {  # true
+        %65:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %66:f32 = load_vector_element %65, 0u
+        %x_107:f32 = let %66
         store_vector_element %x_GLF_color, 2u, %x_107
         exit_if  # if_7
       }
@@ -124,44 +138,49 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %53:void = call %main_1
-    %54:vec4<f32> = load %x_GLF_color
-    %55:main_out = construct %54
-    ret %55
+    %70:void = call %main_1
+    %71:vec4<f32> = load %x_GLF_color
+    %72:main_out = construct %71
+    ret %72
   }
 }
-%alwaysZero_vf2_ = func(%coord:ptr<function, vec2<f32>, read_write>):i32 -> %b14 {
-  %b14 = block {
+%alwaysZero_vf2_ = func(%coord:ptr<function, vec2<f32>, read_write>):i32 {
+  $B13: {
     %a:ptr<function, f32, read_write> = var
     %x_110:ptr<function, f32, read_write> = var
     %b:ptr<function, f32, read_write> = var
-    %x_112:f32 = load_vector_element %coord, 1u
-    %62:bool = lt %x_112, 50.0f
-    if %62 [t: %b15, f: %b16] {  # if_8
-      %b15 = block {  # true
-        %63:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_118:f32 = load_vector_element %63, 1u
+    %78:f32 = load_vector_element %coord, 1u
+    %x_112:f32 = let %78
+    %80:bool = lt %x_112, 50.0f
+    if %80 [t: $B14, f: $B15] {  # if_8
+      $B14: {  # true
+        %81:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %82:f32 = load_vector_element %81, 1u
+        %x_118:f32 = let %82
         store %x_110, %x_118
         exit_if  # if_8
       }
-      %b16 = block {  # false
+      $B15: {  # false
         store %x_110, 0.0f
         exit_if  # if_8
       }
     }
-    %x_119:f32 = load %x_110
+    %84:f32 = load %x_110
+    %x_119:f32 = let %84
     store %a, %x_119
-    %x_121:f32 = load_vector_element %gl_FragCoord, 1u
-    %67:bool = lt %x_121, 50.0f
-    %x_123:f32 = select 0.0f, 1.0f, %67
+    %86:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_121:f32 = let %86
+    %88:bool = lt %x_121, 50.0f
+    %89:f32 = select 0.0f, 1.0f, %88
+    %x_123:f32 = let %89
     store %b, %x_123
-    %69:f32 = sub %x_119, %x_123
-    %70:bool = lt %69, 1.0f
-    if %70 [t: %b17] {  # if_9
-      %b17 = block {  # true
+    %91:f32 = sub %x_119, %x_123
+    %92:bool = lt %91, 1.0f
+    if %92 [t: $B16] {  # if_9
+      $B16: {  # true
         ret 0i
       }
     }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.msl
index c8c425a..93133c8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,89 +8,93 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%fx_ = func():f32 -> %b2 {
-  %b2 = block {
+%fx_ = func():f32 {
+  $B2: {
     %5:f32 = load_vector_element %gl_FragCoord, 1u
     %6:bool = gte %5, 0.0f
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
         %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_55:f32 = load_vector_element %7, 1u
+        %8:f32 = load_vector_element %7, 1u
+        %x_55:f32 = let %8
         ret %x_55
       }
     }
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        if true [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        if true [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
         store %x_GLF_color, vec4<f32>(1.0f)
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret 0.0f
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %x2:ptr<function, f32, read_write> = var
     %B:ptr<function, f32, read_write> = var
     %k0:ptr<function, f32, read_write> = var
     store %x2, 1.0f
     store %B, 1.0f
-    %x_34:f32 = call %fx_
-    %14:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
-    store %x_GLF_color, %14
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %15:f32 = load %x2
-        %16:bool = gt %15, 2.0f
-        if %16 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    %14:f32 = call %fx_
+    %x_34:f32 = let %14
+    %16:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %16
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %17:f32 = load %x2
+        %18:bool = gt %17, 2.0f
+        if %18 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_43:f32 = call %fx_
-        %x_44:f32 = call %fx_
-        %19:f32 = sub %x_43, %x_44
-        store %k0, %19
-        %20:f32 = load %k0
-        store %B, %20
-        %21:f32 = load %B
-        store %x2, %21
-        continue %b10
+        %19:f32 = call %fx_
+        %x_43:f32 = let %19
+        %21:f32 = call %fx_
+        %x_44:f32 = let %21
+        %23:f32 = sub %x_43, %x_44
+        store %k0, %23
+        %24:f32 = load %k0
+        store %B, %24
+        %25:f32 = load %B
+        store %x2, %25
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %24:void = call %main_1
-    %25:vec4<f32> = load %x_GLF_color
-    %26:main_out = construct %25
-    ret %26
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.msl
index 134c58b..ac5c80b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/function-with-uniform-return/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,89 +8,97 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%fx_ = func():f32 -> %b2 {
-  %b2 = block {
-    %x_50:f32 = load_vector_element %gl_FragCoord, 1u
-    %6:bool = gte %x_50, 0.0f
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_55:f32 = load_vector_element %7, 1u
+%fx_ = func():f32 {
+  $B2: {
+    %5:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_50:f32 = let %5
+    %7:bool = gte %x_50, 0.0f
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
+        %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %9:f32 = load_vector_element %8, 1u
+        %x_55:f32 = let %9
         ret %x_55
       }
     }
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        if true [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        if true [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
         store %x_GLF_color, vec4<f32>(1.0f)
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret 0.0f
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %x2:ptr<function, f32, read_write> = var
     %B:ptr<function, f32, read_write> = var
     %k0:ptr<function, f32, read_write> = var
     store %x2, 1.0f
     store %B, 1.0f
-    %x_34:f32 = call %fx_
-    %14:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
-    store %x_GLF_color, %14
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_40:f32 = load %x2
-        %16:bool = gt %x_40, 2.0f
-        if %16 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    %15:f32 = call %fx_
+    %x_34:f32 = let %15
+    %17:vec4<f32> = construct %x_34, 0.0f, 0.0f, 1.0f
+    store %x_GLF_color, %17
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %18:f32 = load %x2
+        %x_40:f32 = let %18
+        %20:bool = gt %x_40, 2.0f
+        if %20 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_43:f32 = call %fx_
-        %x_44:f32 = call %fx_
-        %19:f32 = sub %x_43, %x_44
-        store %k0, %19
-        %x_46:f32 = load %k0
+        %21:f32 = call %fx_
+        %x_43:f32 = let %21
+        %23:f32 = call %fx_
+        %x_44:f32 = let %23
+        %25:f32 = sub %x_43, %x_44
+        store %k0, %25
+        %26:f32 = load %k0
+        %x_46:f32 = let %26
         store %B, %x_46
-        %x_47:f32 = load %B
+        %28:f32 = load %B
+        %x_47:f32 = let %28
         store %x2, %x_47
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %24:void = call %main_1
-    %25:vec4<f32> = load %x_GLF_color
-    %26:main_out = construct %25
-    ret %26
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.msl
index 07862d1..d7e5bf3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_68:ptr<function, bool, read_write> = var, false
     %x_29:ptr<function, i32, read_write> = var
     %x_30:ptr<function, i32, read_write> = var
@@ -31,8 +31,8 @@
     store %i_1, 0i
     store %x_24, 0i
     store %x_23, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_76:ptr<function, bool, read_write> = var
         %x_33:ptr<function, i32, read_write> = var
         %x_92:ptr<function, i32, read_write> = var
@@ -41,18 +41,18 @@
         %x_16:ptr<function, i32, read_write> = var
         %22:i32 = load %x_23
         %23:bool = lt %22, 4i
-        if %23 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %23 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %x_68, false
         store %x_76, false
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7] {  # loop_2
+          $B7: {  # body
             %x_81:ptr<function, bool, read_write> = var
             %x_32:ptr<function, i32, read_write> = var
             %x_90:ptr<function, bool, read_write> = var
@@ -60,143 +60,142 @@
             %27:bool = load %x_76
             store %x_81, %27
             store %x_32, 0i
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
+            loop [b: $B8] {  # loop_3
+              $B8: {  # body
                 %28:ptr<uniform, f32, read> = access %x_8, 0u
-                %x_86:f32 = load %28
+                %29:f32 = load %28
+                %x_86:f32 = let %29
                 store %x_33, 0i
-                %30:bool = load %x_81
-                store %x_90, %30
-                %31:i32 = load %x_32
-                %32:i32 = convert %x_86
-                %33:bool = lt %31, %32
-                if %33 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %31:bool = load %x_81
+                store %x_90, %31
+                %32:i32 = load %x_32
+                %33:i32 = let %32
+                %34:i32 = call %tint_f32_to_i32, %x_86
+                %36:bool = lt %33, %34
+                if %36 [t: $B9, f: $B10] {  # if_2
+                  $B9: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B10: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %x_68, true
-                %34:i32 = load %x_32
-                store %x_29, %34
-                %35:i32 = load %x_32
-                store %x_33, %35
+                %37:i32 = load %x_32
+                store %x_29, %37
+                %38:i32 = load %x_32
+                store %x_33, %38
                 store %x_90, true
                 exit_loop  # loop_3
               }
-              %b10 = block {  # continuing
-                store %x_81, false
-                store %x_32, 0i
-                next_iteration %b9
-              }
             }
-            %36:i32 = load %x_33
-            store %x_34, %36
-            %37:bool = load %x_90
-            if %37 [t: %b13] {  # if_3
-              %b13 = block {  # true
+            %39:i32 = load %x_33
+            store %x_34, %39
+            %40:bool = load %x_90
+            if %40 [t: $B11] {  # if_3
+              $B11: {  # true
                 exit_loop  # loop_2
               }
             }
             store %x_92, 0i
             store %x_68, true
-            %38:i32 = load %x_92
-            store %x_29, %38
-            %39:i32 = load %x_92
-            store %x_34, %39
+            %41:i32 = load %x_92
+            store %x_29, %41
+            %42:i32 = load %x_92
+            store %x_34, %42
             exit_loop  # loop_2
           }
-          %b8 = block {  # continuing
-            store %x_76, false
-            next_iteration %b7
-          }
         }
-        %40:i32 = load %x_34
-        store %x_31, %40
-        %x_93:i32 = load %x_31
-        %x_21:array<i32, 2> = load %localNumbers
+        %43:i32 = load %x_34
+        store %x_31, %43
+        %44:i32 = load %x_31
+        %x_93:i32 = let %44
+        %46:array<i32, 2> = load %localNumbers
+        %x_21:array<i32, 2> = let %46
         %x_22_1:ptr<function, array<i32, 2>, read_write> = var, %x_21
-        %44:ptr<function, i32, read_write> = access %x_22_1, 1u
-        store %44, %x_93
-        %x_22:array<i32, 2> = load %x_22_1
-        %46:array<i32, 2> = load %x_22_1
-        store %localNumbers, %46
-        %47:ptr<function, i32, read_write> = access %globalNumbers, 0i
-        store %47, 0i
-        %x_13:i32 = access %x_22, 1u
+        %49:ptr<function, i32, read_write> = access %x_22_1, 1u
+        store %49, %x_93
+        %50:array<i32, 2> = load %x_22_1
+        %x_22:array<i32, 2> = let %50
+        %52:array<i32, 2> = load %x_22_1
+        store %localNumbers, %52
+        %53:ptr<function, i32, read_write> = access %globalNumbers, 0i
+        store %53, 0i
+        %54:i32 = access %x_22, 1u
+        %x_13:i32 = let %54
         store %param, %x_13
         store %x_17, 0i
         store %x_25, 0i
-        loop [b: %b14, c: %b15] {  # loop_4
-          %b14 = block {  # body
+        loop [b: $B12, c: $B13] {  # loop_4
+          $B12: {  # body
             %x_19:ptr<function, i32, read_write> = var
-            %50:i32 = load %x_25
-            %51:bool = lte %50, %x_13
-            if %51 [t: %b16, f: %b17] {  # if_4
-              %b16 = block {  # true
+            %57:i32 = load %x_25
+            %58:bool = lte %57, %x_13
+            if %58 [t: $B14, f: $B15] {  # if_4
+              $B14: {  # true
                 exit_if  # if_4
               }
-              %b17 = block {  # false
+              $B15: {  # false
                 exit_loop  # loop_4
               }
             }
             %x_102_save:i32 = let %x_13
-            %53:ptr<function, i32, read_write> = access %globalNumbers, %x_13
-            %54:i32 = load %53
-            %55:bool = lte %54, 1i
-            if %55 [t: %b18] {  # if_5
-              %b18 = block {  # true
-                %56:ptr<function, i32, read_write> = access %globalNumbers, %x_102_save
-                store %56, 1i
+            %60:ptr<function, i32, read_write> = access %globalNumbers, %x_13
+            %61:i32 = load %60
+            %62:bool = lte %61, 1i
+            if %62 [t: $B16] {  # if_5
+              $B16: {  # true
+                %63:ptr<function, i32, read_write> = access %globalNumbers, %x_102_save
+                store %63, 1i
                 exit_if  # if_5
               }
             }
-            continue %b15
+            continue  # -> $B13
           }
-          %b15 = block {  # continuing
-            %57:i32 = load %x_25
-            %58:i32 = add %57, 1i
-            store %x_19, %58
-            %59:i32 = load %x_19
-            store %x_17, %59
-            %60:i32 = load %x_19
-            store %x_25, %60
-            next_iteration %b14
+          $B13: {  # continuing
+            %64:i32 = load %x_25
+            %65:i32 = add %64, 1i
+            store %x_19, %65
+            %66:i32 = load %x_19
+            store %x_17, %66
+            %67:i32 = load %x_19
+            store %x_25, %67
+            next_iteration  # -> $B12
           }
         }
-        %61:i32 = load %x_24
-        %62:ptr<uniform, f32, read> = access %x_8, 0u
-        %63:f32 = load %62
-        %64:i32 = convert %63
-        %65:i32 = sub %64, 1i
-        %66:ptr<function, i32, read_write> = access %globalNumbers, %65
-        %67:i32 = load %66
-        %x_15:i32 = add %61, %67
+        %68:i32 = load %x_24
+        %69:i32 = let %68
+        %70:ptr<uniform, f32, read> = access %x_8, 0u
+        %71:f32 = load %70
+        %72:i32 = call %tint_f32_to_i32, %71
+        %73:i32 = sub %72, 1i
+        %74:ptr<function, i32, read_write> = access %globalNumbers, %73
+        %75:i32 = load %74
+        %76:i32 = add %69, %75
+        %x_15:i32 = let %76
         store %acc, %x_15
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %69:i32 = load %x_23
-        %70:i32 = add %69, 1i
-        store %x_16, %70
-        %71:i32 = load %x_16
-        store %i_1, %71
+      $B4: {  # continuing
+        %78:i32 = load %x_23
+        %79:i32 = add %78, 1i
+        store %x_16, %79
+        %80:i32 = load %x_16
+        store %i_1, %80
         store %x_24, %x_15
-        %72:i32 = load %x_16
-        store %x_23, %72
-        next_iteration %b3
+        %81:i32 = load %x_16
+        store %x_23, %81
+        next_iteration  # -> $B3
       }
     }
-    %73:i32 = load %x_24
-    %74:bool = eq %73, 4i
-    if %74 [t: %b19, f: %b20] {  # if_6
-      %b19 = block {  # true
+    %82:i32 = load %x_24
+    %83:bool = eq %82, 4i
+    if %83 [t: $B17, f: $B18] {  # if_6
+      $B17: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_6
       }
-      %b20 = block {  # false
+      $B18: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_6
       }
@@ -204,16 +203,16 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b21 {
-  %b21 = block {
-    %76:void = call %main_1
-    %77:vec4<f32> = load %x_GLF_color
-    %78:main_out = construct %77
-    ret %78
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %85:void = call %main_1
+    %86:vec4<f32> = load %x_GLF_color
+    %87:main_out = construct %86
+    ret %87
   }
 }
-%yieldsZero_ = func():i32 -> %b22 {
-  %b22 = block {
+%yieldsZero_ = func():i32 {
+  $B20: {
     %x_116:ptr<function, bool, read_write> = var, false
     %x_20:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -222,70 +221,73 @@
     %x_134:ptr<function, i32, read_write> = var
     %x_27:ptr<function, i32, read_write> = var
     store %x_118, false
-    loop [b: %b23, c: %b24] {  # loop_5
-      %b23 = block {  # body
+    loop [b: $B21] {  # loop_5
+      $B21: {  # body
         %x_123:ptr<function, bool, read_write> = var
         %x_28:ptr<function, i32, read_write> = var
         %x_132:ptr<function, bool, read_write> = var
         store %i, 0i
-        %90:bool = load %x_118
-        store %x_123, %90
+        %99:bool = load %x_118
+        store %x_123, %99
         store %x_28, 0i
-        loop [b: %b25, c: %b26] {  # loop_6
-          %b25 = block {  # body
-            %91:ptr<uniform, f32, read> = access %x_8, 0u
-            %x_128:f32 = load %91
+        loop [b: $B22] {  # loop_6
+          $B22: {  # body
+            %100:ptr<uniform, f32, read> = access %x_8, 0u
+            %101:f32 = load %100
+            %x_128:f32 = let %101
             store %x_26, 0i
-            %93:bool = load %x_123
-            store %x_132, %93
-            %94:i32 = load %x_28
-            %95:i32 = convert %x_128
-            %96:bool = lt %94, %95
-            if %96 [t: %b27, f: %b28] {  # if_7
-              %b27 = block {  # true
+            %103:bool = load %x_123
+            store %x_132, %103
+            %104:i32 = load %x_28
+            %105:i32 = let %104
+            %106:i32 = call %tint_f32_to_i32, %x_128
+            %107:bool = lt %105, %106
+            if %107 [t: $B23, f: $B24] {  # if_7
+              $B23: {  # true
                 exit_if  # if_7
               }
-              %b28 = block {  # false
+              $B24: {  # false
                 exit_loop  # loop_6
               }
             }
             store %x_116, true
-            %97:i32 = load %x_28
-            store %x_20, %97
-            %98:i32 = load %x_28
-            store %x_26, %98
+            %108:i32 = load %x_28
+            store %x_20, %108
+            %109:i32 = load %x_28
+            store %x_26, %109
             store %x_132, true
             exit_loop  # loop_6
           }
-          %b26 = block {  # continuing
-            store %x_123, false
-            store %x_28, 0i
-            next_iteration %b25
-          }
         }
-        %99:i32 = load %x_26
-        store %x_27, %99
-        %100:bool = load %x_132
-        if %100 [t: %b29] {  # if_8
-          %b29 = block {  # true
+        %110:i32 = load %x_26
+        store %x_27, %110
+        %111:bool = load %x_132
+        if %111 [t: $B25] {  # if_8
+          $B25: {  # true
             exit_loop  # loop_5
           }
         }
         store %x_134, 0i
         store %x_116, true
-        %101:i32 = load %x_134
-        store %x_20, %101
-        %102:i32 = load %x_134
-        store %x_27, %102
+        %112:i32 = load %x_134
+        store %x_20, %112
+        %113:i32 = load %x_134
+        store %x_27, %113
         exit_loop  # loop_5
       }
-      %b24 = block {  # continuing
-        store %x_118, false
-        next_iteration %b23
-      }
     }
-    %103:i32 = load %x_27
-    ret %103
+    %114:i32 = load %x_27
+    ret %114
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B26: {
+    %116:i32 = convert %value
+    %117:bool = gte %value, -2147483648.0f
+    %118:i32 = select -2147483648i, %116, %117
+    %119:bool = lte %value, 2147483520.0f
+    %120:i32 = select 2147483647i, %118, %119
+    ret %120
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.msl
index 101a08d..e75a419 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/global-array-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_68:ptr<function, bool, read_write> = var, false
     %x_29:ptr<function, i32, read_write> = var
     %x_30:ptr<function, i32, read_write> = var
@@ -32,8 +32,8 @@
     store %i_1, 0i
     store %x_24_phi, 0i
     store %x_23_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_33:ptr<function, i32, read_write> = var
         %x_92:ptr<function, i32, read_write> = var
         %x_76_phi:ptr<function, bool, read_write> = var
@@ -41,165 +41,174 @@
         %x_25_phi:ptr<function, i32, read_write> = var
         %22:i32 = load %x_24_phi
         store %x_24, %22
-        %x_23:i32 = load %x_23_phi
-        %24:bool = lt %x_23, 4i
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %23:i32 = load %x_23_phi
+        %x_23:i32 = let %23
+        %25:bool = lt %x_23, 4i
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %x_68, false
         store %x_76_phi, false
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B7] {  # loop_2
+          $B7: {  # body
             %x_81:ptr<function, bool, read_write> = var
             %x_32:ptr<function, i32, read_write> = var
             %x_81_phi:ptr<function, bool, read_write> = var
             %x_32_phi:ptr<function, i32, read_write> = var
             %x_33_phi:ptr<function, i32, read_write> = var
             %x_90_phi:ptr<function, bool, read_write> = var
-            %x_76:bool = load %x_76_phi
+            %32:bool = load %x_76_phi
+            %x_76:bool = let %32
             store %x_30, 0i
             store %x_81_phi, %x_76
             store %x_32_phi, 0i
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
-                %32:bool = load %x_81_phi
-                store %x_81, %32
-                %33:i32 = load %x_32_phi
-                store %x_32, %33
-                %34:ptr<uniform, f32, read> = access %x_8, 0u
-                %x_86:f32 = load %34
+            loop [b: $B8] {  # loop_3
+              $B8: {  # body
+                %34:bool = load %x_81_phi
+                store %x_81, %34
+                %35:i32 = load %x_32_phi
+                store %x_32, %35
+                %36:ptr<uniform, f32, read> = access %x_8, 0u
+                %37:f32 = load %36
+                %x_86:f32 = let %37
                 store %x_33_phi, 0i
-                %36:bool = load %x_81
-                store %x_90_phi, %36
-                %37:i32 = load %x_32
-                %38:i32 = convert %x_86
-                %39:bool = lt %37, %38
-                if %39 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %39:bool = load %x_81
+                store %x_90_phi, %39
+                %40:i32 = load %x_32
+                %41:i32 = let %40
+                %42:i32 = call %tint_f32_to_i32, %x_86
+                %44:bool = lt %41, %42
+                if %44 [t: $B9, f: $B10] {  # if_2
+                  $B9: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B10: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %x_68, true
-                %40:i32 = load %x_32
-                store %x_29, %40
-                %41:i32 = load %x_32
-                store %x_33_phi, %41
+                %45:i32 = load %x_32
+                store %x_29, %45
+                %46:i32 = load %x_32
+                store %x_33_phi, %46
                 store %x_90_phi, true
                 exit_loop  # loop_3
               }
-              %b10 = block {  # continuing
-                store %x_81_phi, false
-                store %x_32_phi, 0i
-                next_iteration %b9
-              }
             }
-            %42:i32 = load %x_33_phi
-            store %x_33, %42
-            %x_90:bool = load %x_90_phi
-            %44:i32 = load %x_33
-            store %x_34_phi, %44
-            if %x_90 [t: %b13] {  # if_3
-              %b13 = block {  # true
+            %47:i32 = load %x_33_phi
+            store %x_33, %47
+            %48:bool = load %x_90_phi
+            %x_90:bool = let %48
+            %50:i32 = load %x_33
+            store %x_34_phi, %50
+            if %x_90 [t: $B11] {  # if_3
+              $B11: {  # true
                 exit_loop  # loop_2
               }
             }
             store %x_92, 0i
             store %x_68, true
-            %45:i32 = load %x_92
-            store %x_29, %45
-            %46:i32 = load %x_92
-            store %x_34_phi, %46
+            %51:i32 = load %x_92
+            store %x_29, %51
+            %52:i32 = load %x_92
+            store %x_34_phi, %52
             exit_loop  # loop_2
           }
-          %b8 = block {  # continuing
-            store %x_76_phi, false
-            next_iteration %b7
-          }
         }
-        %x_34:i32 = load %x_34_phi
+        %53:i32 = load %x_34_phi
+        %x_34:i32 = let %53
         store %x_31, %x_34
-        %x_93:i32 = load %x_31
-        %x_21:array<i32, 2> = load %localNumbers
+        %55:i32 = load %x_31
+        %x_93:i32 = let %55
+        %57:array<i32, 2> = load %localNumbers
+        %x_21:array<i32, 2> = let %57
         %x_22_1:ptr<function, array<i32, 2>, read_write> = var, %x_21
-        %51:ptr<function, i32, read_write> = access %x_22_1, 1u
-        store %51, %x_93
-        %x_22:array<i32, 2> = load %x_22_1
+        %60:ptr<function, i32, read_write> = access %x_22_1, 1u
+        store %60, %x_93
+        %61:array<i32, 2> = load %x_22_1
+        %x_22:array<i32, 2> = let %61
         store %localNumbers, %x_22
-        %53:ptr<function, i32, read_write> = access %globalNumbers, 0i
-        store %53, 0i
-        %x_13:i32 = access %x_22, 1u
+        %63:ptr<function, i32, read_write> = access %globalNumbers, 0i
+        store %63, 0i
+        %64:i32 = access %x_22, 1u
+        %x_13:i32 = let %64
         store %param, %x_13
         store %x_17, 0i
         store %x_25_phi, 0i
-        loop [b: %b14, c: %b15] {  # loop_4
-          %b14 = block {  # body
-            %x_25:i32 = load %x_25_phi
-            %56:bool = lte %x_25, %x_13
-            if %56 [t: %b16, f: %b17] {  # if_4
-              %b16 = block {  # true
+        loop [b: $B12, c: $B13] {  # loop_4
+          $B12: {  # body
+            %66:i32 = load %x_25_phi
+            %x_25:i32 = let %66
+            %68:bool = lte %x_25, %x_13
+            if %68 [t: $B14, f: $B15] {  # if_4
+              $B14: {  # true
                 exit_if  # if_4
               }
-              %b17 = block {  # false
+              $B15: {  # false
                 exit_loop  # loop_4
               }
             }
             %x_102_save:i32 = let %x_13
-            %58:ptr<function, i32, read_write> = access %globalNumbers, %x_102_save
-            %x_18:i32 = load %58
-            %60:bool = lte %x_18, 1i
-            if %60 [t: %b18] {  # if_5
-              %b18 = block {  # true
-                %61:ptr<function, i32, read_write> = access %globalNumbers, %x_102_save
-                store %61, 1i
+            %70:ptr<function, i32, read_write> = access %globalNumbers, %x_102_save
+            %71:i32 = load %70
+            %x_18:i32 = let %71
+            %73:bool = lte %x_18, 1i
+            if %73 [t: $B16] {  # if_5
+              $B16: {  # true
+                %74:ptr<function, i32, read_write> = access %globalNumbers, %x_102_save
+                store %74, 1i
                 exit_if  # if_5
               }
             }
-            continue %b15
+            continue  # -> $B13
           }
-          %b15 = block {  # continuing
-            %x_19:i32 = add %x_25, 1i
+          $B13: {  # continuing
+            %75:i32 = add %x_25, 1i
+            %x_19:i32 = let %75
             store %x_17, %x_19
             store %x_25_phi, %x_19
-            next_iteration %b14
+            next_iteration  # -> $B12
           }
         }
-        %63:ptr<uniform, f32, read> = access %x_8, 0u
-        %x_107:f32 = load %63
-        %65:i32 = convert %x_107
-        %66:i32 = sub %65, 1i
-        %67:ptr<function, i32, read_write> = access %globalNumbers, %66
-        %x_14:i32 = load %67
-        %69:i32 = load %x_24
-        %70:i32 = bitcast %x_14
-        %71:i32 = add %69, %70
-        %x_15:i32 = bitcast %71
+        %77:ptr<uniform, f32, read> = access %x_8, 0u
+        %78:f32 = load %77
+        %x_107:f32 = let %78
+        %80:i32 = call %tint_f32_to_i32, %x_107
+        %81:i32 = sub %80, 1i
+        %82:ptr<function, i32, read_write> = access %globalNumbers, %81
+        %83:i32 = load %82
+        %x_14:i32 = let %83
+        %85:i32 = load %x_24
+        %86:i32 = let %85
+        %87:i32 = bitcast %x_14
+        %88:i32 = add %86, %87
+        %89:i32 = bitcast %88
+        %x_15:i32 = let %89
         store %acc, %x_15
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_16:i32 = add %x_23, 1i
+      $B4: {  # continuing
+        %91:i32 = add %x_23, 1i
+        %x_16:i32 = let %91
         store %i_1, %x_16
         store %x_24_phi, %x_15
         store %x_23_phi, %x_16
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
-    %74:i32 = load %x_24
-    %75:bool = eq %74, 4i
-    if %75 [t: %b19, f: %b20] {  # if_6
-      %b19 = block {  # true
+    %93:i32 = load %x_24
+    %94:bool = eq %93, 4i
+    if %94 [t: $B17, f: $B18] {  # if_6
+      $B17: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_6
       }
-      %b20 = block {  # false
+      $B18: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_6
       }
@@ -207,16 +216,16 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b21 {
-  %b21 = block {
-    %77:void = call %main_1
-    %78:vec4<f32> = load %x_GLF_color
-    %79:main_out = construct %78
-    ret %79
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %96:void = call %main_1
+    %97:vec4<f32> = load %x_GLF_color
+    %98:main_out = construct %97
+    ret %98
   }
 }
-%yieldsZero_ = func():i32 -> %b22 {
-  %b22 = block {
+%yieldsZero_ = func():i32 {
+  $B20: {
     %x_116:ptr<function, bool, read_write> = var, false
     %x_20:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -225,81 +234,87 @@
     %x_118_phi:ptr<function, bool, read_write> = var
     %x_27_phi:ptr<function, i32, read_write> = var
     store %x_118_phi, false
-    loop [b: %b23, c: %b24] {  # loop_5
-      %b23 = block {  # body
+    loop [b: $B21] {  # loop_5
+      $B21: {  # body
         %x_123:ptr<function, bool, read_write> = var
         %x_28:ptr<function, i32, read_write> = var
         %x_123_phi:ptr<function, bool, read_write> = var
         %x_28_phi:ptr<function, i32, read_write> = var
         %x_26_phi:ptr<function, i32, read_write> = var
         %x_132_phi:ptr<function, bool, read_write> = var
-        %x_118:bool = load %x_118_phi
+        %113:bool = load %x_118_phi
+        %x_118:bool = let %113
         store %i, 0i
         store %x_123_phi, %x_118
         store %x_28_phi, 0i
-        loop [b: %b25, c: %b26] {  # loop_6
-          %b25 = block {  # body
-            %95:bool = load %x_123_phi
-            store %x_123, %95
-            %96:i32 = load %x_28_phi
-            store %x_28, %96
-            %97:ptr<uniform, f32, read> = access %x_8, 0u
-            %x_128:f32 = load %97
+        loop [b: $B22] {  # loop_6
+          $B22: {  # body
+            %115:bool = load %x_123_phi
+            store %x_123, %115
+            %116:i32 = load %x_28_phi
+            store %x_28, %116
+            %117:ptr<uniform, f32, read> = access %x_8, 0u
+            %118:f32 = load %117
+            %x_128:f32 = let %118
             store %x_26_phi, 0i
-            %99:bool = load %x_123
-            store %x_132_phi, %99
-            %100:i32 = load %x_28
-            %101:i32 = convert %x_128
-            %102:bool = lt %100, %101
-            if %102 [t: %b27, f: %b28] {  # if_7
-              %b27 = block {  # true
+            %120:bool = load %x_123
+            store %x_132_phi, %120
+            %121:i32 = load %x_28
+            %122:i32 = let %121
+            %123:i32 = call %tint_f32_to_i32, %x_128
+            %124:bool = lt %122, %123
+            if %124 [t: $B23, f: $B24] {  # if_7
+              $B23: {  # true
                 exit_if  # if_7
               }
-              %b28 = block {  # false
+              $B24: {  # false
                 exit_loop  # loop_6
               }
             }
             store %x_116, true
-            %103:i32 = load %x_28
-            store %x_20, %103
-            %104:i32 = load %x_28
-            store %x_26_phi, %104
+            %125:i32 = load %x_28
+            store %x_20, %125
+            %126:i32 = load %x_28
+            store %x_26_phi, %126
             store %x_132_phi, true
             exit_loop  # loop_6
           }
-          %b26 = block {  # continuing
-            store %x_123_phi, false
-            store %x_28_phi, 0i
-            next_iteration %b25
-          }
         }
-        %105:i32 = load %x_26_phi
-        store %x_26, %105
-        %x_132:bool = load %x_132_phi
-        %107:i32 = load %x_26
-        store %x_27_phi, %107
-        if %x_132 [t: %b29] {  # if_8
-          %b29 = block {  # true
+        %127:i32 = load %x_26_phi
+        store %x_26, %127
+        %128:bool = load %x_132_phi
+        %x_132:bool = let %128
+        %130:i32 = load %x_26
+        store %x_27_phi, %130
+        if %x_132 [t: $B25] {  # if_8
+          $B25: {  # true
             exit_loop  # loop_5
           }
         }
         store %x_134, 0i
         store %x_116, true
-        %108:i32 = load %x_134
-        store %x_20, %108
-        %109:i32 = load %x_134
-        store %x_27_phi, %109
+        %131:i32 = load %x_134
+        store %x_20, %131
+        %132:i32 = load %x_134
+        store %x_27_phi, %132
         exit_loop  # loop_5
       }
-      %b24 = block {  # continuing
-        store %x_118_phi, false
-        next_iteration %b23
-      }
     }
-    %x_27:i32 = load %x_27_phi
+    %133:i32 = load %x_27_phi
+    %x_27:i32 = let %133
     ret %x_27
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B26: {
+    %136:i32 = convert %value
+    %137:bool = gte %value, -2147483648.0f
+    %138:i32 = select -2147483648i, %136, %137
+    %139:bool = lte %value, 2147483520.0f
+    %140:i32 = select 2147483647i, %138, %139
+    ret %140
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.msl
index 3617ec2..9bad63a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,16 +8,16 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%main_1 = func():void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_45:ptr<function, bool, read_write> = var
         %x_48:ptr<function, i32, read_write> = var
         %x_50:ptr<function, i32, read_write> = var
@@ -32,14 +32,16 @@
         %x_116:ptr<function, i32, read_write> = var
         %x_161:ptr<function, i32, read_write> = var
         %18:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_40:f32 = load_vector_element %18, 0u
-        %x_41:bool = lt %x_40, -1.0f
+        %19:f32 = load_vector_element %18, 0u
+        %x_40:f32 = let %19
+        %21:bool = lt %x_40, -1.0f
+        %x_41:bool = let %21
         store %x_45, false
         store %x_48, 0i
         store %x_50, 0i
         store %x_52, 0i
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %x_62:ptr<function, i32, read_write> = var
             %x_65:ptr<function, i32, read_write> = var
             %x_67:ptr<function, i32, read_write> = var
@@ -47,115 +49,117 @@
             %x_63:ptr<function, i32, read_write> = var
             %x_51:ptr<function, i32, read_write> = var
             %x_53:ptr<function, i32, read_write> = var
-            %x_55:f32 = load_vector_element %gl_FragCoord, 1u
-            %29:i32 = load %x_48
-            store %x_111, %29
-            %30:bool = load %x_45
-            store %x_112, %30
-            %31:i32 = load %x_52
-            %32:bool = gt %x_55, -1.0f
-            %33:i32 = select 100i, 10i, %32
-            %34:bool = lt %31, %33
-            if %34 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+            %30:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_55:f32 = let %30
+            %32:i32 = load %x_48
+            store %x_111, %32
+            %33:bool = load %x_45
+            store %x_112, %33
+            %34:i32 = load %x_52
+            %35:i32 = let %34
+            %36:bool = gt %x_55, -1.0f
+            %37:i32 = select 100i, 10i, %36
+            %38:bool = lt %35, %37
+            if %38 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_2
               }
             }
-            %35:i32 = load %x_48
-            store %x_62, %35
-            %36:i32 = load %x_50
-            store %x_65, %36
+            %39:i32 = load %x_48
+            store %x_62, %39
+            %40:i32 = load %x_50
+            store %x_65, %40
             store %x_67, 0i
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
+            loop [b: $B8, c: $B9] {  # loop_3
+              $B8: {  # body
                 %x_97:ptr<function, i32, read_write> = var
                 %x_68:ptr<function, i32, read_write> = var
-                %39:i32 = load %x_65
-                store %x_51, %39
-                %40:i32 = load %x_62
-                store %x_49, %40
-                %41:bool = load %x_45
-                store %x_46, %41
-                %42:i32 = load %x_67
-                %43:bool = lt %42, 2i
-                if %43 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %43:i32 = load %x_65
+                store %x_51, %43
+                %44:i32 = load %x_62
+                store %x_49, %44
+                %45:bool = load %x_45
+                store %x_46, %45
+                %46:i32 = load %x_67
+                %47:bool = lt %46, 2i
+                if %47 [t: $B10, f: $B11] {  # if_2
+                  $B10: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B11: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                loop [b: %b13, c: %b14] {  # loop_4
-                  %b13 = block {  # body
+                loop [b: $B12] {  # loop_4
+                  $B12: {  # body
                     %x_78:ptr<function, bool, read_write> = var
                     %x_86:ptr<function, i32, read_write> = var
                     %x_98:ptr<function, bool, read_write> = var
-                    %47:f32 = load_vector_element %gl_FragCoord, 0u
-                    %48:bool = lt %47, -1.0f
-                    store %x_78, %48
-                    %49:bool = lt %x_40, 0.0f
-                    %50:bool = eq %49, false
-                    if %50 [t: %b15] {  # if_3
-                      %b15 = block {  # true
-                        %51:bool = load %x_78
-                        if %51 [t: %b16] {  # if_4
-                          %b16 = block {  # true
+                    %51:f32 = load_vector_element %gl_FragCoord, 0u
+                    %52:bool = lt %51, -1.0f
+                    store %x_78, %52
+                    %53:bool = lt %x_40, 0.0f
+                    %54:bool = eq %53, false
+                    if %54 [t: $B13] {  # if_3
+                      $B13: {  # true
+                        %55:bool = load %x_78
+                        if %55 [t: $B14] {  # if_4
+                          $B14: {  # true
                             store %x_66, 0i
                             exit_loop  # loop_4
                           }
                         }
                         store %x_86, 1i
-                        loop [b: %b17, c: %b18] {  # loop_5
-                          %b17 = block {  # body
+                        loop [b: $B15, c: $B16] {  # loop_5
+                          $B15: {  # body
                             %x_87:ptr<function, i32, read_write> = var
-                            %53:i32 = load %x_65
-                            store %x_97, %53
+                            %57:i32 = load %x_65
+                            store %x_97, %57
                             store %x_98, false
-                            %54:i32 = load %x_86
-                            %55:bool = lt %54, 3i
-                            if %55 [t: %b19, f: %b20] {  # if_5
-                              %b19 = block {  # true
+                            %58:i32 = load %x_86
+                            %59:bool = lt %58, 3i
+                            if %59 [t: $B17, f: $B18] {  # if_5
+                              $B17: {  # true
                                 exit_if  # if_5
                               }
-                              %b20 = block {  # false
+                              $B18: {  # false
                                 exit_loop  # loop_5
                               }
                             }
-                            %56:bool = load %x_78
-                            if %56 [t: %b21] {  # if_6
-                              %b21 = block {  # true
-                                continue %b18
+                            %60:bool = load %x_78
+                            if %60 [t: $B19] {  # if_6
+                              $B19: {  # true
+                                continue  # -> $B16
                               }
                             }
-                            %57:i32 = load %x_86
-                            %58:bool = gt %57, 0i
-                            if %58 [t: %b22] {  # if_7
-                              %b22 = block {  # true
+                            %61:i32 = load %x_86
+                            %62:bool = gt %61, 0i
+                            if %62 [t: $B20] {  # if_7
+                              $B20: {  # true
                                 store %x_97, 1i
                                 store %x_98, true
                                 exit_loop  # loop_5
                               }
                             }
-                            continue %b18
+                            continue  # -> $B16
                           }
-                          %b18 = block {  # continuing
-                            %59:i32 = load %x_86
-                            %60:i32 = add %59, 1i
-                            store %x_87, %60
-                            %61:i32 = load %x_87
-                            store %x_86, %61
-                            next_iteration %b17
+                          $B16: {  # continuing
+                            %63:i32 = load %x_86
+                            %64:i32 = add %63, 1i
+                            store %x_87, %64
+                            %65:i32 = load %x_87
+                            store %x_86, %65
+                            next_iteration  # -> $B15
                           }
                         }
-                        %62:i32 = load %x_97
-                        store %x_66, %62
-                        %63:bool = load %x_98
-                        if %63 [t: %b23] {  # if_8
-                          %b23 = block {  # true
+                        %66:i32 = load %x_97
+                        store %x_66, %66
+                        %67:bool = load %x_98
+                        if %67 [t: $B21] {  # if_8
+                          $B21: {  # true
                             exit_loop  # loop_4
                           }
                         }
@@ -165,194 +169,193 @@
                     store %x_66, 0i
                     exit_loop  # loop_4
                   }
-                  %b14 = block {  # continuing
-                    next_iteration %b13
-                  }
                 }
-                %64:i32 = load %x_62
-                %65:i32 = load %x_66
-                %66:i32 = add %64, %65
-                store %x_63, %66
-                if %x_41 [t: %b24] {  # if_9
-                  %b24 = block {  # true
-                    loop [b: %b25, c: %b26] {  # loop_6
-                      %b25 = block {  # body
-                        if %x_41 [t: %b27, f: %b28] {  # if_10
-                          %b27 = block {  # true
+                %68:i32 = load %x_62
+                %69:i32 = load %x_66
+                %70:i32 = add %68, %69
+                store %x_63, %70
+                if %x_41 [t: $B22] {  # if_9
+                  $B22: {  # true
+                    loop [b: $B23, c: $B24] {  # loop_6
+                      $B23: {  # body
+                        if %x_41 [t: $B25, f: $B26] {  # if_10
+                          $B25: {  # true
                             exit_if  # if_10
                           }
-                          %b28 = block {  # false
+                          $B26: {  # false
                             exit_loop  # loop_6
                           }
                         }
-                        continue %b26
+                        continue  # -> $B24
                       }
-                      %b26 = block {  # continuing
-                        %67:i32 = load %x_52
-                        %68:f32 = convert %67
-                        %69:vec4<f32> = construct %68
-                        store %x_GLF_color, %69
-                        next_iteration %b25
+                      $B24: {  # continuing
+                        %71:i32 = load %x_52
+                        %72:f32 = convert %71
+                        %73:vec4<f32> = construct %72
+                        store %x_GLF_color, %73
+                        next_iteration  # -> $B23
                       }
                     }
-                    %70:i32 = load %x_66
-                    store %x_51, %70
-                    %71:i32 = load %x_63
-                    store %x_49, %71
+                    %74:i32 = load %x_66
+                    store %x_51, %74
+                    %75:i32 = load %x_63
+                    store %x_49, %75
                     store %x_46, true
                     exit_loop  # loop_3
                   }
                 }
-                continue %b10
+                continue  # -> $B9
               }
-              %b10 = block {  # continuing
-                %72:i32 = load %x_67
-                %73:i32 = add %72, 1i
-                store %x_68, %73
-                %74:i32 = load %x_63
-                store %x_62, %74
-                %75:i32 = load %x_66
-                store %x_65, %75
-                %76:i32 = load %x_68
-                store %x_67, %76
-                next_iteration %b9
+              $B9: {  # continuing
+                %76:i32 = load %x_67
+                %77:i32 = add %76, 1i
+                store %x_68, %77
+                %78:i32 = load %x_63
+                store %x_62, %78
+                %79:i32 = load %x_66
+                store %x_65, %79
+                %80:i32 = load %x_68
+                store %x_67, %80
+                next_iteration  # -> $B8
               }
             }
-            %77:i32 = load %x_49
-            store %x_111, %77
-            %78:bool = load %x_46
-            store %x_112, %78
-            %79:bool = load %x_46
-            if %79 [t: %b29] {  # if_11
-              %b29 = block {  # true
+            %81:i32 = load %x_49
+            store %x_111, %81
+            %82:bool = load %x_46
+            store %x_112, %82
+            %83:bool = load %x_46
+            if %83 [t: $B27] {  # if_11
+              $B27: {  # true
                 exit_loop  # loop_2
               }
             }
-            %80:bool = eq %x_41, false
-            if %80 [t: %b30] {  # if_12
-              %b30 = block {  # true
-                %81:i32 = load %x_49
-                store %x_111, %81
-                %82:bool = load %x_46
-                store %x_112, %82
+            %84:bool = eq %x_41, false
+            if %84 [t: $B28] {  # if_12
+              $B28: {  # true
+                %85:i32 = load %x_49
+                store %x_111, %85
+                %86:bool = load %x_46
+                store %x_112, %86
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
-            %83:i32 = load %x_52
-            %84:i32 = add %83, 1i
-            store %x_53, %84
-            %85:bool = load %x_46
-            store %x_45, %85
-            %86:i32 = load %x_49
-            store %x_48, %86
-            %87:i32 = load %x_51
-            store %x_50, %87
-            %88:i32 = load %x_53
-            store %x_52, %88
-            next_iteration %b5
+          $B5: {  # continuing
+            %87:i32 = load %x_52
+            %88:i32 = add %87, 1i
+            store %x_53, %88
+            %89:bool = load %x_46
+            store %x_45, %89
+            %90:i32 = load %x_49
+            store %x_48, %90
+            %91:i32 = load %x_51
+            store %x_50, %91
+            %92:i32 = load %x_53
+            store %x_52, %92
+            next_iteration  # -> $B4
           }
         }
-        %89:bool = load %x_112
-        if %89 [t: %b31] {  # if_13
-          %b31 = block {  # true
+        %93:bool = load %x_112
+        if %93 [t: $B29] {  # if_13
+          $B29: {  # true
             exit_loop  # loop_1
           }
         }
-        %90:i32 = load %x_111
-        store %x_115, %90
+        %94:i32 = load %x_111
+        store %x_115, %94
         store %x_118, 0i
         store %x_120, 0i
-        loop [b: %b32, c: %b33] {  # loop_7
-          %b32 = block {  # body
+        loop [b: $B30, c: $B31] {  # loop_7
+          $B30: {  # body
             %x_154:ptr<function, i32, read_write> = var
             %x_119:ptr<function, i32, read_write> = var
             %x_121:ptr<function, i32, read_write> = var
-            %94:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_123:f32 = load_vector_element %94, 1u
-            %96:i32 = load %x_115
-            store %x_161, %96
-            %97:i32 = load %x_120
-            %98:f32 = add %x_123, 1.0f
-            %99:i32 = convert %98
-            %100:bool = lt %97, %99
-            if %100 [t: %b34, f: %b35] {  # if_14
-              %b34 = block {  # true
+            %98:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %99:f32 = load_vector_element %98, 1u
+            %x_123:f32 = let %99
+            %101:i32 = load %x_115
+            store %x_161, %101
+            %102:i32 = load %x_120
+            %103:i32 = let %102
+            %104:f32 = add %x_123, 1.0f
+            %105:i32 = call %tint_f32_to_i32, %104
+            %107:bool = lt %103, %105
+            if %107 [t: $B32, f: $B33] {  # if_14
+              $B32: {  # true
                 exit_if  # if_14
               }
-              %b35 = block {  # false
+              $B33: {  # false
                 exit_loop  # loop_7
               }
             }
-            loop [b: %b36, c: %b37] {  # loop_8
-              %b36 = block {  # body
+            loop [b: $B34] {  # loop_8
+              $B34: {  # body
                 %x_135:ptr<function, bool, read_write> = var
                 %x_143:ptr<function, i32, read_write> = var
                 %x_155:ptr<function, bool, read_write> = var
-                %104:f32 = load_vector_element %gl_FragCoord, 0u
-                %105:bool = lt %104, -1.0f
-                store %x_135, %105
-                %106:bool = lt %x_40, 0.0f
-                %107:bool = eq %106, false
-                if %107 [t: %b38] {  # if_15
-                  %b38 = block {  # true
-                    %108:bool = load %x_135
-                    if %108 [t: %b39] {  # if_16
-                      %b39 = block {  # true
+                %111:f32 = load_vector_element %gl_FragCoord, 0u
+                %112:bool = lt %111, -1.0f
+                store %x_135, %112
+                %113:bool = lt %x_40, 0.0f
+                %114:bool = eq %113, false
+                if %114 [t: $B35] {  # if_15
+                  $B35: {  # true
+                    %115:bool = load %x_135
+                    if %115 [t: $B36] {  # if_16
+                      $B36: {  # true
                         store %x_119, 0i
                         exit_loop  # loop_8
                       }
                     }
                     store %x_143, 1i
-                    loop [b: %b40, c: %b41] {  # loop_9
-                      %b40 = block {  # body
+                    loop [b: $B37, c: $B38] {  # loop_9
+                      $B37: {  # body
                         %x_144:ptr<function, i32, read_write> = var
-                        %110:i32 = load %x_118
-                        store %x_154, %110
+                        %117:i32 = load %x_118
+                        store %x_154, %117
                         store %x_155, false
-                        %111:i32 = load %x_143
-                        %112:bool = lt %111, 3i
-                        if %112 [t: %b42, f: %b43] {  # if_17
-                          %b42 = block {  # true
+                        %118:i32 = load %x_143
+                        %119:bool = lt %118, 3i
+                        if %119 [t: $B39, f: $B40] {  # if_17
+                          $B39: {  # true
                             exit_if  # if_17
                           }
-                          %b43 = block {  # false
+                          $B40: {  # false
                             exit_loop  # loop_9
                           }
                         }
-                        %113:bool = load %x_135
-                        if %113 [t: %b44] {  # if_18
-                          %b44 = block {  # true
-                            continue %b41
+                        %120:bool = load %x_135
+                        if %120 [t: $B41] {  # if_18
+                          $B41: {  # true
+                            continue  # -> $B38
                           }
                         }
-                        %114:i32 = load %x_143
-                        %115:bool = gt %114, 0i
-                        if %115 [t: %b45] {  # if_19
-                          %b45 = block {  # true
+                        %121:i32 = load %x_143
+                        %122:bool = gt %121, 0i
+                        if %122 [t: $B42] {  # if_19
+                          $B42: {  # true
                             store %x_154, 1i
                             store %x_155, true
                             exit_loop  # loop_9
                           }
                         }
-                        continue %b41
+                        continue  # -> $B38
                       }
-                      %b41 = block {  # continuing
-                        %116:i32 = load %x_143
-                        %117:i32 = add %116, 1i
-                        store %x_144, %117
-                        %118:i32 = load %x_144
-                        store %x_143, %118
-                        next_iteration %b40
+                      $B38: {  # continuing
+                        %123:i32 = load %x_143
+                        %124:i32 = add %123, 1i
+                        store %x_144, %124
+                        %125:i32 = load %x_144
+                        store %x_143, %125
+                        next_iteration  # -> $B37
                       }
                     }
-                    %119:i32 = load %x_154
-                    store %x_119, %119
-                    %120:bool = load %x_155
-                    if %120 [t: %b46] {  # if_20
-                      %b46 = block {  # true
+                    %126:i32 = load %x_154
+                    store %x_119, %126
+                    %127:bool = load %x_155
+                    if %127 [t: $B43] {  # if_20
+                      $B43: {  # true
                         exit_loop  # loop_8
                       }
                     }
@@ -362,66 +365,70 @@
                 store %x_119, 0i
                 exit_loop  # loop_8
               }
-              %b37 = block {  # continuing
-                next_iteration %b36
-              }
             }
-            %121:i32 = load %x_115
-            %122:i32 = load %x_119
-            %123:i32 = add %121, %122
-            store %x_116, %123
-            %124:bool = eq %x_41, false
-            %125:bool = select %x_41, false, %124
-            if %125 [t: %b47] {  # if_21
-              %b47 = block {  # true
-                %126:i32 = load %x_116
-                store %x_161, %126
+            %128:i32 = load %x_115
+            %129:i32 = load %x_119
+            %130:i32 = add %128, %129
+            store %x_116, %130
+            %131:bool = eq %x_41, false
+            %132:bool = select %x_41, false, %131
+            if %132 [t: $B44] {  # if_21
+              $B44: {  # true
+                %133:i32 = load %x_116
+                store %x_161, %133
                 exit_loop  # loop_7
               }
             }
-            continue %b33
+            continue  # -> $B31
           }
-          %b33 = block {  # continuing
-            %127:i32 = load %x_120
-            %128:i32 = add %127, 1i
-            store %x_121, %128
-            %129:i32 = load %x_116
-            store %x_115, %129
-            %130:i32 = load %x_119
-            store %x_118, %130
-            %131:i32 = load %x_121
-            store %x_120, %131
-            next_iteration %b32
+          $B31: {  # continuing
+            %134:i32 = load %x_120
+            %135:i32 = add %134, 1i
+            store %x_121, %135
+            %136:i32 = load %x_116
+            store %x_115, %136
+            %137:i32 = load %x_119
+            store %x_118, %137
+            %138:i32 = load %x_121
+            store %x_120, %138
+            next_iteration  # -> $B30
           }
         }
-        %132:i32 = load %x_161
-        %133:bool = eq %132, 4i
-        if %133 [t: %b48, f: %b49] {  # if_22
-          %b48 = block {  # true
+        %139:i32 = load %x_161
+        %140:bool = eq %139, 4i
+        if %140 [t: $B45, f: $B46] {  # if_22
+          $B45: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_22
           }
-          %b49 = block {  # false
+          $B46: {  # false
             store %x_GLF_color, vec4<f32>(0.0f)
             exit_if  # if_22
           }
         }
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b50 {
-  %b50 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B47: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %136:void = call %main_1
-    %137:vec4<f32> = load %x_GLF_color
-    %138:main_out = construct %137
-    ret %138
+    %143:void = call %main_1
+    %144:vec4<f32> = load %x_GLF_color
+    %145:main_out = construct %144
+    ret %145
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B48: {
+    %147:i32 = convert %value
+    %148:bool = gte %value, -2147483648.0f
+    %149:i32 = select -2147483648i, %147, %148
+    %150:bool = lte %value, 2147483520.0f
+    %151:i32 = select 2147483647i, %149, %150
+    ret %151
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.msl
index 0837621..4e9d9fe 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/increment-value-in-nested-for-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,16 +8,16 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%main_1 = func():void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_45:ptr<function, bool, read_write> = var
         %x_48:ptr<function, i32, read_write> = var
         %x_49:ptr<function, i32, read_write> = var
@@ -35,14 +35,16 @@
         %x_120_phi:ptr<function, i32, read_write> = var
         %x_161_phi:ptr<function, i32, read_write> = var
         %21:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_40:f32 = load_vector_element %21, 0u
-        %x_41:bool = lt %x_40, -1.0f
+        %22:f32 = load_vector_element %21, 0u
+        %x_40:f32 = let %22
+        %24:bool = lt %x_40, -1.0f
+        %x_41:bool = let %24
         store %x_45_phi, false
         store %x_48_phi, 0i
         store %x_50_phi, 0i
         store %x_52_phi, 0i
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %x_62:ptr<function, i32, read_write> = var
             %x_65:ptr<function, i32, read_write> = var
             %x_66:ptr<function, i32, read_write> = var
@@ -54,125 +56,132 @@
             %x_51_phi:ptr<function, i32, read_write> = var
             %x_49_phi:ptr<function, i32, read_write> = var
             %x_46_phi:ptr<function, bool, read_write> = var
-            %35:bool = load %x_45_phi
-            store %x_45, %35
-            %36:i32 = load %x_48_phi
-            store %x_48, %36
-            %x_50:i32 = load %x_50_phi
-            %x_52:i32 = load %x_52_phi
-            %x_55:f32 = load_vector_element %gl_FragCoord, 1u
-            %40:i32 = load %x_48
-            store %x_111_phi, %40
-            %41:bool = load %x_45
-            store %x_112_phi, %41
-            %42:bool = gt %x_55, -1.0f
-            %43:i32 = select 100i, 10i, %42
-            %44:bool = lt %x_52, %43
-            if %44 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+            %37:bool = load %x_45_phi
+            store %x_45, %37
+            %38:i32 = load %x_48_phi
+            store %x_48, %38
+            %39:i32 = load %x_50_phi
+            %x_50:i32 = let %39
+            %41:i32 = load %x_52_phi
+            %x_52:i32 = let %41
+            %43:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_55:f32 = let %43
+            %45:i32 = load %x_48
+            store %x_111_phi, %45
+            %46:bool = load %x_45
+            store %x_112_phi, %46
+            %47:bool = gt %x_55, -1.0f
+            %48:i32 = select 100i, 10i, %47
+            %49:bool = lt %x_52, %48
+            if %49 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_2
               }
             }
-            %45:i32 = load %x_48
-            store %x_62_phi, %45
+            %50:i32 = load %x_48
+            store %x_62_phi, %50
             store %x_65_phi, %x_50
             store %x_67_phi, 0i
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
+            loop [b: $B8, c: $B9] {  # loop_3
+              $B8: {  # body
                 %x_97:ptr<function, i32, read_write> = var
                 %x_68:ptr<function, i32, read_write> = var
                 %x_66_phi:ptr<function, i32, read_write> = var
-                %49:i32 = load %x_62_phi
-                store %x_62, %49
-                %50:i32 = load %x_65_phi
-                store %x_65, %50
-                %x_67:i32 = load %x_67_phi
-                %52:i32 = load %x_65
-                store %x_51_phi, %52
-                %53:i32 = load %x_62
-                store %x_49_phi, %53
-                %54:bool = load %x_45
-                store %x_46_phi, %54
-                %55:bool = lt %x_67, 2i
-                if %55 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %54:i32 = load %x_62_phi
+                store %x_62, %54
+                %55:i32 = load %x_65_phi
+                store %x_65, %55
+                %56:i32 = load %x_67_phi
+                %x_67:i32 = let %56
+                %58:i32 = load %x_65
+                store %x_51_phi, %58
+                %59:i32 = load %x_62
+                store %x_49_phi, %59
+                %60:bool = load %x_45
+                store %x_46_phi, %60
+                %61:bool = lt %x_67, 2i
+                if %61 [t: $B10, f: $B11] {  # if_2
+                  $B10: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B11: {  # false
                     exit_loop  # loop_3
                   }
                 }
-                loop [b: %b13, c: %b14] {  # loop_4
-                  %b13 = block {  # body
+                loop [b: $B12] {  # loop_4
+                  $B12: {  # body
                     %x_78:ptr<function, bool, read_write> = var
                     %x_86_phi:ptr<function, i32, read_write> = var
                     %x_97_phi:ptr<function, i32, read_write> = var
                     %x_98_phi:ptr<function, bool, read_write> = var
-                    %x_77:f32 = load_vector_element %gl_FragCoord, 0u
-                    %61:bool = lt %x_77, -1.0f
-                    store %x_78, %61
-                    %62:bool = lt %x_40, 0.0f
-                    %63:bool = eq %62, false
-                    if %63 [t: %b15] {  # if_3
-                      %b15 = block {  # true
-                        %64:bool = load %x_78
-                        if %64 [t: %b16] {  # if_4
-                          %b16 = block {  # true
+                    %66:f32 = load_vector_element %gl_FragCoord, 0u
+                    %x_77:f32 = let %66
+                    %68:bool = lt %x_77, -1.0f
+                    store %x_78, %68
+                    %69:bool = lt %x_40, 0.0f
+                    %70:bool = eq %69, false
+                    if %70 [t: $B13] {  # if_3
+                      $B13: {  # true
+                        %71:bool = load %x_78
+                        if %71 [t: $B14] {  # if_4
+                          $B14: {  # true
                             store %x_66_phi, 0i
                             exit_loop  # loop_4
                           }
                         }
                         store %x_86_phi, 1i
-                        loop [b: %b17, c: %b18] {  # loop_5
-                          %b17 = block {  # body
+                        loop [b: $B15, c: $B16] {  # loop_5
+                          $B15: {  # body
                             %x_87:ptr<function, i32, read_write> = var
-                            %x_86:i32 = load %x_86_phi
-                            %67:i32 = load %x_65
-                            store %x_97_phi, %67
+                            %73:i32 = load %x_86_phi
+                            %x_86:i32 = let %73
+                            %75:i32 = load %x_65
+                            store %x_97_phi, %75
                             store %x_98_phi, false
-                            %68:bool = lt %x_86, 3i
-                            if %68 [t: %b19, f: %b20] {  # if_5
-                              %b19 = block {  # true
+                            %76:bool = lt %x_86, 3i
+                            if %76 [t: $B17, f: $B18] {  # if_5
+                              $B17: {  # true
                                 exit_if  # if_5
                               }
-                              %b20 = block {  # false
+                              $B18: {  # false
                                 exit_loop  # loop_5
                               }
                             }
-                            %69:bool = load %x_78
-                            if %69 [t: %b21] {  # if_6
-                              %b21 = block {  # true
-                                continue %b18
+                            %77:bool = load %x_78
+                            if %77 [t: $B19] {  # if_6
+                              $B19: {  # true
+                                continue  # -> $B16
                               }
                             }
-                            %70:bool = gt %x_86, 0i
-                            if %70 [t: %b22] {  # if_7
-                              %b22 = block {  # true
+                            %78:bool = gt %x_86, 0i
+                            if %78 [t: $B20] {  # if_7
+                              $B20: {  # true
                                 store %x_97_phi, 1i
                                 store %x_98_phi, true
                                 exit_loop  # loop_5
                               }
                             }
-                            continue %b18
+                            continue  # -> $B16
                           }
-                          %b18 = block {  # continuing
-                            %71:i32 = add %x_86, 1i
-                            store %x_87, %71
-                            %72:i32 = load %x_87
-                            store %x_86_phi, %72
-                            next_iteration %b17
+                          $B16: {  # continuing
+                            %79:i32 = add %x_86, 1i
+                            store %x_87, %79
+                            %80:i32 = load %x_87
+                            store %x_86_phi, %80
+                            next_iteration  # -> $B15
                           }
                         }
-                        %73:i32 = load %x_97_phi
-                        store %x_97, %73
-                        %x_98:bool = load %x_98_phi
-                        %75:i32 = load %x_97
-                        store %x_66_phi, %75
-                        if %x_98 [t: %b23] {  # if_8
-                          %b23 = block {  # true
+                        %81:i32 = load %x_97_phi
+                        store %x_97, %81
+                        %82:bool = load %x_98_phi
+                        %x_98:bool = let %82
+                        %84:i32 = load %x_97
+                        store %x_66_phi, %84
+                        if %x_98 [t: $B21] {  # if_8
+                          $B21: {  # true
                             exit_loop  # loop_4
                           }
                         }
@@ -182,201 +191,208 @@
                     store %x_66_phi, 0i
                     exit_loop  # loop_4
                   }
-                  %b14 = block {  # continuing
-                    next_iteration %b13
-                  }
                 }
-                %76:i32 = load %x_66_phi
-                store %x_66, %76
-                %77:i32 = load %x_62
-                %78:i32 = load %x_66
-                %79:i32 = add %77, %78
-                %80:i32 = bitcast %79
-                store %x_63, %80
-                if %x_41 [t: %b24] {  # if_9
-                  %b24 = block {  # true
-                    loop [b: %b25, c: %b26] {  # loop_6
-                      %b25 = block {  # body
-                        if %x_41 [t: %b27, f: %b28] {  # if_10
-                          %b27 = block {  # true
+                %85:i32 = load %x_66_phi
+                store %x_66, %85
+                %86:i32 = load %x_62
+                %87:i32 = load %x_66
+                %88:i32 = add %86, %87
+                %89:i32 = bitcast %88
+                store %x_63, %89
+                if %x_41 [t: $B22] {  # if_9
+                  $B22: {  # true
+                    loop [b: $B23, c: $B24] {  # loop_6
+                      $B23: {  # body
+                        if %x_41 [t: $B25, f: $B26] {  # if_10
+                          $B25: {  # true
                             exit_if  # if_10
                           }
-                          %b28 = block {  # false
+                          $B26: {  # false
                             exit_loop  # loop_6
                           }
                         }
-                        continue %b26
+                        continue  # -> $B24
                       }
-                      %b26 = block {  # continuing
-                        %x_105:f32 = convert %x_52
-                        %82:vec4<f32> = construct %x_105, %x_105, %x_105, %x_105
-                        store %x_GLF_color, %82
-                        next_iteration %b25
+                      $B24: {  # continuing
+                        %90:f32 = convert %x_52
+                        %x_105:f32 = let %90
+                        %92:vec4<f32> = construct %x_105, %x_105, %x_105, %x_105
+                        store %x_GLF_color, %92
+                        next_iteration  # -> $B23
                       }
                     }
-                    %83:i32 = load %x_66
-                    store %x_51_phi, %83
-                    %84:i32 = load %x_63
-                    store %x_49_phi, %84
+                    %93:i32 = load %x_66
+                    store %x_51_phi, %93
+                    %94:i32 = load %x_63
+                    store %x_49_phi, %94
                     store %x_46_phi, true
                     exit_loop  # loop_3
                   }
                 }
-                continue %b10
+                continue  # -> $B9
               }
-              %b10 = block {  # continuing
-                %85:i32 = add %x_67, 1i
-                store %x_68, %85
-                %86:i32 = load %x_63
-                store %x_62_phi, %86
-                %87:i32 = load %x_66
-                store %x_65_phi, %87
-                %88:i32 = load %x_68
-                store %x_67_phi, %88
-                next_iteration %b9
+              $B9: {  # continuing
+                %95:i32 = add %x_67, 1i
+                store %x_68, %95
+                %96:i32 = load %x_63
+                store %x_62_phi, %96
+                %97:i32 = load %x_66
+                store %x_65_phi, %97
+                %98:i32 = load %x_68
+                store %x_67_phi, %98
+                next_iteration  # -> $B8
               }
             }
-            %x_51:i32 = load %x_51_phi
-            %90:i32 = load %x_49_phi
-            store %x_49, %90
-            %91:bool = load %x_46_phi
-            store %x_46, %91
-            %92:i32 = load %x_49
-            store %x_111_phi, %92
-            %93:bool = load %x_46
-            store %x_112_phi, %93
-            %94:bool = load %x_46
-            if %94 [t: %b29] {  # if_11
-              %b29 = block {  # true
+            %99:i32 = load %x_51_phi
+            %x_51:i32 = let %99
+            %101:i32 = load %x_49_phi
+            store %x_49, %101
+            %102:bool = load %x_46_phi
+            store %x_46, %102
+            %103:i32 = load %x_49
+            store %x_111_phi, %103
+            %104:bool = load %x_46
+            store %x_112_phi, %104
+            %105:bool = load %x_46
+            if %105 [t: $B27] {  # if_11
+              $B27: {  # true
                 exit_loop  # loop_2
               }
             }
-            %95:bool = eq %x_41, false
-            if %95 [t: %b30] {  # if_12
-              %b30 = block {  # true
-                %96:i32 = load %x_49
-                store %x_111_phi, %96
-                %97:bool = load %x_46
-                store %x_112_phi, %97
+            %106:bool = eq %x_41, false
+            if %106 [t: $B28] {  # if_12
+              $B28: {  # true
+                %107:i32 = load %x_49
+                store %x_111_phi, %107
+                %108:bool = load %x_46
+                store %x_112_phi, %108
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
-            %98:i32 = add %x_52, 1i
-            store %x_53, %98
-            %99:bool = load %x_46
-            store %x_45_phi, %99
-            %100:i32 = load %x_49
-            store %x_48_phi, %100
+          $B5: {  # continuing
+            %109:i32 = add %x_52, 1i
+            store %x_53, %109
+            %110:bool = load %x_46
+            store %x_45_phi, %110
+            %111:i32 = load %x_49
+            store %x_48_phi, %111
             store %x_50_phi, %x_51
-            %101:i32 = load %x_53
-            store %x_52_phi, %101
-            next_iteration %b5
+            %112:i32 = load %x_53
+            store %x_52_phi, %112
+            next_iteration  # -> $B4
           }
         }
-        %x_111:i32 = load %x_111_phi
-        %x_112:bool = load %x_112_phi
-        if %x_112 [t: %b31] {  # if_13
-          %b31 = block {  # true
+        %113:i32 = load %x_111_phi
+        %x_111:i32 = let %113
+        %115:bool = load %x_112_phi
+        %x_112:bool = let %115
+        if %x_112 [t: $B29] {  # if_13
+          $B29: {  # true
             exit_loop  # loop_1
           }
         }
         store %x_115_phi, %x_111
         store %x_118_phi, 0i
         store %x_120_phi, 0i
-        loop [b: %b32, c: %b33] {  # loop_7
-          %b32 = block {  # body
+        loop [b: $B30, c: $B31] {  # loop_7
+          $B30: {  # body
             %x_154:ptr<function, i32, read_write> = var
             %x_121:ptr<function, i32, read_write> = var
             %x_119_phi:ptr<function, i32, read_write> = var
-            %107:i32 = load %x_115_phi
-            store %x_115, %107
-            %x_118:i32 = load %x_118_phi
-            %x_120:i32 = load %x_120_phi
-            %110:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_123:f32 = load_vector_element %110, 1u
-            %112:i32 = load %x_115
-            store %x_161_phi, %112
-            %113:f32 = add %x_123, 1.0f
-            %114:i32 = convert %113
-            %115:bool = lt %x_120, %114
-            if %115 [t: %b34, f: %b35] {  # if_14
-              %b34 = block {  # true
+            %120:i32 = load %x_115_phi
+            store %x_115, %120
+            %121:i32 = load %x_118_phi
+            %x_118:i32 = let %121
+            %123:i32 = load %x_120_phi
+            %x_120:i32 = let %123
+            %125:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %126:f32 = load_vector_element %125, 1u
+            %x_123:f32 = let %126
+            %128:i32 = load %x_115
+            store %x_161_phi, %128
+            %129:f32 = add %x_123, 1.0f
+            %130:i32 = call %tint_f32_to_i32, %129
+            %132:bool = lt %x_120, %130
+            if %132 [t: $B32, f: $B33] {  # if_14
+              $B32: {  # true
                 exit_if  # if_14
               }
-              %b35 = block {  # false
+              $B33: {  # false
                 exit_loop  # loop_7
               }
             }
-            loop [b: %b36, c: %b37] {  # loop_8
-              %b36 = block {  # body
+            loop [b: $B34] {  # loop_8
+              $B34: {  # body
                 %x_135:ptr<function, bool, read_write> = var
                 %x_143_phi:ptr<function, i32, read_write> = var
                 %x_154_phi:ptr<function, i32, read_write> = var
                 %x_155_phi:ptr<function, bool, read_write> = var
-                %x_134:f32 = load_vector_element %gl_FragCoord, 0u
-                %121:bool = lt %x_134, -1.0f
-                store %x_135, %121
-                %122:bool = lt %x_40, 0.0f
-                %123:bool = eq %122, false
-                if %123 [t: %b38] {  # if_15
-                  %b38 = block {  # true
-                    %124:bool = load %x_135
-                    if %124 [t: %b39] {  # if_16
-                      %b39 = block {  # true
+                %137:f32 = load_vector_element %gl_FragCoord, 0u
+                %x_134:f32 = let %137
+                %139:bool = lt %x_134, -1.0f
+                store %x_135, %139
+                %140:bool = lt %x_40, 0.0f
+                %141:bool = eq %140, false
+                if %141 [t: $B35] {  # if_15
+                  $B35: {  # true
+                    %142:bool = load %x_135
+                    if %142 [t: $B36] {  # if_16
+                      $B36: {  # true
                         store %x_119_phi, 0i
                         exit_loop  # loop_8
                       }
                     }
                     store %x_143_phi, 1i
-                    loop [b: %b40, c: %b41] {  # loop_9
-                      %b40 = block {  # body
+                    loop [b: $B37, c: $B38] {  # loop_9
+                      $B37: {  # body
                         %x_144:ptr<function, i32, read_write> = var
-                        %x_143:i32 = load %x_143_phi
+                        %144:i32 = load %x_143_phi
+                        %x_143:i32 = let %144
                         store %x_154_phi, %x_118
                         store %x_155_phi, false
-                        %127:bool = lt %x_143, 3i
-                        if %127 [t: %b42, f: %b43] {  # if_17
-                          %b42 = block {  # true
+                        %146:bool = lt %x_143, 3i
+                        if %146 [t: $B39, f: $B40] {  # if_17
+                          $B39: {  # true
                             exit_if  # if_17
                           }
-                          %b43 = block {  # false
+                          $B40: {  # false
                             exit_loop  # loop_9
                           }
                         }
-                        %128:bool = load %x_135
-                        if %128 [t: %b44] {  # if_18
-                          %b44 = block {  # true
-                            continue %b41
+                        %147:bool = load %x_135
+                        if %147 [t: $B41] {  # if_18
+                          $B41: {  # true
+                            continue  # -> $B38
                           }
                         }
-                        %129:bool = gt %x_143, 0i
-                        if %129 [t: %b45] {  # if_19
-                          %b45 = block {  # true
+                        %148:bool = gt %x_143, 0i
+                        if %148 [t: $B42] {  # if_19
+                          $B42: {  # true
                             store %x_154_phi, 1i
                             store %x_155_phi, true
                             exit_loop  # loop_9
                           }
                         }
-                        continue %b41
+                        continue  # -> $B38
                       }
-                      %b41 = block {  # continuing
-                        %130:i32 = add %x_143, 1i
-                        store %x_144, %130
-                        %131:i32 = load %x_144
-                        store %x_143_phi, %131
-                        next_iteration %b40
+                      $B38: {  # continuing
+                        %149:i32 = add %x_143, 1i
+                        store %x_144, %149
+                        %150:i32 = load %x_144
+                        store %x_143_phi, %150
+                        next_iteration  # -> $B37
                       }
                     }
-                    %132:i32 = load %x_154_phi
-                    store %x_154, %132
-                    %x_155:bool = load %x_155_phi
-                    %134:i32 = load %x_154
-                    store %x_119_phi, %134
-                    if %x_155 [t: %b46] {  # if_20
-                      %b46 = block {  # true
+                    %151:i32 = load %x_154_phi
+                    store %x_154, %151
+                    %152:bool = load %x_155_phi
+                    %x_155:bool = let %152
+                    %154:i32 = load %x_154
+                    store %x_119_phi, %154
+                    if %x_155 [t: $B43] {  # if_20
+                      $B43: {  # true
                         exit_loop  # loop_8
                       }
                     }
@@ -386,69 +402,74 @@
                 store %x_119_phi, 0i
                 exit_loop  # loop_8
               }
-              %b37 = block {  # continuing
-                next_iteration %b36
-              }
             }
             %x_119:ptr<function, i32, read_write> = var
-            %136:i32 = load %x_119_phi
-            store %x_119, %136
-            %137:i32 = load %x_115
-            %138:i32 = load %x_119
-            %139:i32 = add %137, %138
-            %140:i32 = bitcast %139
-            store %x_116, %140
-            %141:bool = eq %x_41, false
-            %142:bool = select %x_41, false, %141
-            if %142 [t: %b47] {  # if_21
-              %b47 = block {  # true
-                %143:i32 = load %x_116
-                store %x_161_phi, %143
+            %156:i32 = load %x_119_phi
+            store %x_119, %156
+            %157:i32 = load %x_115
+            %158:i32 = load %x_119
+            %159:i32 = add %157, %158
+            %160:i32 = bitcast %159
+            store %x_116, %160
+            %161:bool = eq %x_41, false
+            %162:bool = select %x_41, false, %161
+            if %162 [t: $B44] {  # if_21
+              $B44: {  # true
+                %163:i32 = load %x_116
+                store %x_161_phi, %163
                 exit_loop  # loop_7
               }
             }
-            continue %b33
+            continue  # -> $B31
           }
-          %b33 = block {  # continuing
-            %144:i32 = add %x_120, 1i
-            store %x_121, %144
-            %145:i32 = load %x_116
-            store %x_115_phi, %145
-            %146:i32 = load %x_119
-            store %x_118_phi, %146
-            %147:i32 = load %x_121
-            store %x_120_phi, %147
-            next_iteration %b32
+          $B31: {  # continuing
+            %164:i32 = add %x_120, 1i
+            store %x_121, %164
+            %165:i32 = load %x_116
+            store %x_115_phi, %165
+            %166:i32 = load %x_119
+            store %x_118_phi, %166
+            %167:i32 = load %x_121
+            store %x_120_phi, %167
+            next_iteration  # -> $B30
           }
         }
-        %x_161:i32 = load %x_161_phi
-        %149:bool = eq %x_161, 4i
-        if %149 [t: %b48, f: %b49] {  # if_22
-          %b48 = block {  # true
+        %168:i32 = load %x_161_phi
+        %x_161:i32 = let %168
+        %170:bool = eq %x_161, 4i
+        if %170 [t: $B45, f: $B46] {  # if_22
+          $B45: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_22
           }
-          %b49 = block {  # false
+          $B46: {  # false
             store %x_GLF_color, vec4<f32>(0.0f)
             exit_if  # if_22
           }
         }
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b50 {
-  %b50 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B47: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %152:void = call %main_1
-    %153:vec4<f32> = load %x_GLF_color
-    %154:main_out = construct %153
-    ret %154
+    %173:void = call %main_1
+    %174:vec4<f32> = load %x_GLF_color
+    %175:main_out = construct %174
+    ret %175
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B48: {
+    %177:i32 = convert %value
+    %178:bool = gte %value, -2147483648.0f
+    %179:i32 = select -2147483648i, %177, %178
+    %180:bool = lte %value, 2147483520.0f
+    %181:i32 = select 2147483647i, %179, %180
+    ret %181
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.msl
index 29dafa7..f9d0cd1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,17 +8,17 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeFrame_ = func():f32 -> %b2 {
-  %b2 = block {
+%makeFrame_ = func():f32 {
+  $B2: {
     %x_60:ptr<function, f32, read_write> = var
     %x_63:ptr<function, f32, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_41:ptr<function, bool, read_write> = var
         %x_8:ptr<function, i32, read_write> = var
         %x_44:ptr<function, f32, read_write> = var
@@ -28,8 +28,8 @@
         store %x_41, false
         store %x_8, 0i
         store %x_44, 0.0f
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %x_50:ptr<function, f32, read_write> = var
             %x_9:ptr<function, i32, read_write> = var
             %x_52:ptr<function, bool, read_write> = var
@@ -40,11 +40,11 @@
             store %x_61, %17
             %18:i32 = load %x_8
             %19:bool = lt %18, 1i
-            if %19 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+            if %19 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_2
               }
             }
@@ -54,21 +54,22 @@
             store %x_9, %21
             %22:bool = load %x_41
             store %x_52, %22
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
+            loop [b: $B8] {  # loop_3
+              $B8: {  # body
                 %23:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_54:f32 = load_vector_element %23, 1u
-                %25:f32 = load %x_50
-                store %x_45, %25
-                %26:bool = load %x_52
-                store %x_42, %26
-                %27:i32 = convert %x_54
-                %28:bool = lt 1i, %27
-                if %28 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %24:f32 = load_vector_element %23, 1u
+                %x_54:f32 = let %24
+                %26:f32 = load %x_50
+                store %x_45, %26
+                %27:bool = load %x_52
+                store %x_42, %27
+                %28:i32 = call %tint_f32_to_i32, %x_54
+                %30:bool = lt 1i, %28
+                if %30 [t: $B9, f: $B10] {  # if_2
+                  $B9: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B10: {  # false
                     exit_loop  # loop_3
                   }
                 }
@@ -76,70 +77,72 @@
                 store %x_42, true
                 exit_loop  # loop_3
               }
-              %b10 = block {  # continuing
-                store %x_50, 0.0f
-                store %x_9, 0i
-                store %x_52, false
-                next_iteration %b9
-              }
             }
-            %29:f32 = load %x_45
-            store %x_60, %29
-            %30:bool = load %x_42
-            store %x_61, %30
-            %31:bool = load %x_42
-            if %31 [t: %b13] {  # if_3
-              %b13 = block {  # true
+            %31:f32 = load %x_45
+            store %x_60, %31
+            %32:bool = load %x_42
+            store %x_61, %32
+            %33:bool = load %x_42
+            if %33 [t: $B11] {  # if_3
+              $B11: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
-            %32:i32 = load %x_9
-            %33:i32 = add %32, 1i
-            store %x_7, %33
-            %34:bool = load %x_42
-            store %x_41, %34
-            %35:i32 = load %x_7
-            store %x_8, %35
-            %36:f32 = load %x_45
-            store %x_44, %36
-            next_iteration %b5
+          $B5: {  # continuing
+            %34:i32 = load %x_9
+            %35:i32 = add %34, 1i
+            store %x_7, %35
+            %36:bool = load %x_42
+            store %x_41, %36
+            %37:i32 = load %x_7
+            store %x_8, %37
+            %38:f32 = load %x_45
+            store %x_44, %38
+            next_iteration  # -> $B4
           }
         }
-        %37:f32 = load %x_60
-        store %x_63, %37
-        %38:bool = load %x_61
-        if %38 [t: %b14] {  # if_4
-          %b14 = block {  # true
+        %39:f32 = load %x_60
+        store %x_63, %39
+        %40:bool = load %x_61
+        if %40 [t: $B12] {  # if_4
+          $B12: {  # true
             exit_loop  # loop_1
           }
         }
         store %x_63, 1.0f
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %39:f32 = load %x_63
-    ret %39
+    %41:f32 = load %x_63
+    ret %41
   }
 }
-%main_1 = func():void -> %b15 {
-  %b15 = block {
-    %x_34:f32 = call %makeFrame_
+%main_1 = func():void {
+  $B13: {
+    %43:f32 = call %makeFrame_
+    %x_34:f32 = let %43
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %46:void = call %main_1
+    %47:vec4<f32> = load %x_GLF_color
+    %48:main_out = construct %47
+    ret %48
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %50:i32 = convert %value
+    %51:bool = gte %value, -2147483648.0f
+    %52:i32 = select -2147483648i, %50, %51
+    %53:bool = lte %value, 2147483520.0f
+    %54:i32 = select 2147483647i, %52, %53
+    ret %54
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.msl
index 37f08f4..ebeda12 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/injection-switch-as-comparison/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,17 +8,17 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeFrame_ = func():f32 -> %b2 {
-  %b2 = block {
+%makeFrame_ = func():f32 {
+  $B2: {
     %x_60:ptr<function, f32, read_write> = var
     %x_63_phi:ptr<function, f32, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_41:ptr<function, bool, read_write> = var
         %x_44:ptr<function, f32, read_write> = var
         %x_45:ptr<function, f32, read_write> = var
@@ -31,8 +31,8 @@
         store %x_41_phi, false
         store %x_8_phi, 0i
         store %x_44_phi, 0.0f
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %x_50:ptr<function, f32, read_write> = var
             %x_9:ptr<function, i32, read_write> = var
             %x_52:ptr<function, bool, read_write> = var
@@ -44,48 +44,50 @@
             %x_42_phi:ptr<function, bool, read_write> = var
             %24:bool = load %x_41_phi
             store %x_41, %24
-            %x_8:i32 = load %x_8_phi
-            %26:f32 = load %x_44_phi
-            store %x_44, %26
-            %27:f32 = load %x_44
-            store %x_60_phi, %27
-            %28:bool = load %x_41
-            store %x_61_phi, %28
-            %29:bool = lt %x_8, 1i
-            if %29 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+            %25:i32 = load %x_8_phi
+            %x_8:i32 = let %25
+            %27:f32 = load %x_44_phi
+            store %x_44, %27
+            %28:f32 = load %x_44
+            store %x_60_phi, %28
+            %29:bool = load %x_41
+            store %x_61_phi, %29
+            %30:bool = lt %x_8, 1i
+            if %30 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_2
               }
             }
-            %30:f32 = load %x_44
-            store %x_50_phi, %30
+            %31:f32 = load %x_44
+            store %x_50_phi, %31
             store %x_9_phi, %x_8
-            %31:bool = load %x_41
-            store %x_52_phi, %31
-            loop [b: %b9, c: %b10] {  # loop_3
-              %b9 = block {  # body
-                %32:f32 = load %x_50_phi
-                store %x_50, %32
-                %33:i32 = load %x_9_phi
-                store %x_9, %33
-                %34:bool = load %x_52_phi
-                store %x_52, %34
-                %35:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_54:f32 = load_vector_element %35, 1u
-                %37:f32 = load %x_50
-                store %x_45_phi, %37
-                %38:bool = load %x_52
-                store %x_42_phi, %38
-                %39:i32 = convert %x_54
-                %40:bool = lt 1i, %39
-                if %40 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+            %32:bool = load %x_41
+            store %x_52_phi, %32
+            loop [b: $B8] {  # loop_3
+              $B8: {  # body
+                %33:f32 = load %x_50_phi
+                store %x_50, %33
+                %34:i32 = load %x_9_phi
+                store %x_9, %34
+                %35:bool = load %x_52_phi
+                store %x_52, %35
+                %36:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %37:f32 = load_vector_element %36, 1u
+                %x_54:f32 = let %37
+                %39:f32 = load %x_50
+                store %x_45_phi, %39
+                %40:bool = load %x_52
+                store %x_42_phi, %40
+                %41:i32 = call %tint_f32_to_i32, %x_54
+                %43:bool = lt 1i, %41
+                if %43 [t: $B9, f: $B10] {  # if_2
+                  $B9: {  # true
                     exit_if  # if_2
                   }
-                  %b12 = block {  # false
+                  $B10: {  # false
                     exit_loop  # loop_3
                   }
                 }
@@ -93,77 +95,81 @@
                 store %x_42_phi, true
                 exit_loop  # loop_3
               }
-              %b10 = block {  # continuing
-                store %x_50_phi, 0.0f
-                store %x_9_phi, 0i
-                store %x_52_phi, false
-                next_iteration %b9
-              }
             }
-            %41:f32 = load %x_45_phi
-            store %x_45, %41
-            %42:bool = load %x_42_phi
-            store %x_42, %42
-            %43:f32 = load %x_45
-            store %x_60_phi, %43
-            %44:bool = load %x_42
-            store %x_61_phi, %44
-            %45:bool = load %x_42
-            if %45 [t: %b13] {  # if_3
-              %b13 = block {  # true
+            %44:f32 = load %x_45_phi
+            store %x_45, %44
+            %45:bool = load %x_42_phi
+            store %x_42, %45
+            %46:f32 = load %x_45
+            store %x_60_phi, %46
+            %47:bool = load %x_42
+            store %x_61_phi, %47
+            %48:bool = load %x_42
+            if %48 [t: $B11] {  # if_3
+              $B11: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
-            %46:i32 = load %x_9
-            %47:i32 = add %46, 1i
-            %48:i32 = bitcast %47
-            store %x_7, %48
-            %49:bool = load %x_42
-            store %x_41_phi, %49
-            %50:i32 = load %x_7
-            store %x_8_phi, %50
-            %51:f32 = load %x_45
-            store %x_44_phi, %51
-            next_iteration %b5
+          $B5: {  # continuing
+            %49:i32 = load %x_9
+            %50:i32 = add %49, 1i
+            %51:i32 = bitcast %50
+            store %x_7, %51
+            %52:bool = load %x_42
+            store %x_41_phi, %52
+            %53:i32 = load %x_7
+            store %x_8_phi, %53
+            %54:f32 = load %x_45
+            store %x_44_phi, %54
+            next_iteration  # -> $B4
           }
         }
-        %52:f32 = load %x_60_phi
-        store %x_60, %52
-        %x_61:bool = load %x_61_phi
-        %54:f32 = load %x_60
-        store %x_63_phi, %54
-        if %x_61 [t: %b14] {  # if_4
-          %b14 = block {  # true
+        %55:f32 = load %x_60_phi
+        store %x_60, %55
+        %56:bool = load %x_61_phi
+        %x_61:bool = let %56
+        %58:f32 = load %x_60
+        store %x_63_phi, %58
+        if %x_61 [t: $B12] {  # if_4
+          $B12: {  # true
             exit_loop  # loop_1
           }
         }
         store %x_63_phi, 1.0f
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %x_63:f32 = load %x_63_phi
+    %59:f32 = load %x_63_phi
+    %x_63:f32 = let %59
     ret %x_63
   }
 }
-%main_1 = func():void -> %b15 {
-  %b15 = block {
-    %x_34:f32 = call %makeFrame_
+%main_1 = func():void {
+  $B13: {
+    %62:f32 = call %makeFrame_
+    %x_34:f32 = let %62
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b16 {
-  %b16 = block {
-    %59:void = call %main_1
-    %60:vec4<f32> = load %x_GLF_color
-    %61:main_out = construct %60
-    ret %61
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %69:i32 = convert %value
+    %70:bool = gte %value, -2147483648.0f
+    %71:i32 = select -2147483648i, %69, %70
+    %72:bool = lte %value, 2147483520.0f
+    %73:i32 = select 2147483647i, %71, %72
+    ret %73
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.msl
index 2e88a5f..48bb465 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,79 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: S = struct @align(8) {
+  f1:i32 @offset(0)
+  f2:mat2x2<f32> @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_41:ptr<function, mat2x2<f32>, read_write> = var
+    %x_6:ptr<function, i32, read_write> = var
+    %x_42:ptr<function, mat2x2<f32>, read_write> = var
+    %x_49:ptr<function, mat2x2<f32>, read_write> = var
+    %8:f32 = load_vector_element %gl_FragCoord, 0u
+    %9:bool = lt %8, 0.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_42, mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f))
+        store %x_49, mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f))
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_42, mat2x2<f32>(vec2<f32>(0.5f, -0.5f), vec2<f32>(-0.5f, 0.5f))
+        store %x_49, mat2x2<f32>(vec2<f32>(0.5f, -0.5f), vec2<f32>(-0.5f, 0.5f))
+        exit_if  # if_1
+      }
+    }
+    %10:mat2x2<f32> = load %x_49
+    %11:mat2x2<f32> = transpose %10
+    %12:S = construct 1i, %11
+    %x_51:S = let %12
+    %14:i32 = access %x_51, 0u
+    %x_52:i32 = let %14
+    store %x_6, %x_52
+    %16:mat2x2<f32> = access %x_51, 1u
+    store %x_41, %16
+    %17:f32 = convert %x_52
+    %18:f32 = let %17
+    %19:ptr<function, vec2<f32>, read_write> = access %x_41, 0u
+    %20:f32 = load_vector_element %19, 0u
+    %21:ptr<function, vec2<f32>, read_write> = access %x_41, 1u
+    %22:f32 = load_vector_element %21, 0u
+    %23:f32 = add %20, %22
+    %24:f32 = let %23
+    %25:ptr<function, vec2<f32>, read_write> = access %x_41, 0u
+    %26:f32 = load_vector_element %25, 1u
+    %27:ptr<function, vec2<f32>, read_write> = access %x_41, 1u
+    %28:f32 = load_vector_element %27, 1u
+    %29:f32 = add %26, %28
+    %30:f32 = let %29
+    %31:f32 = convert %x_52
+    %32:vec4<f32> = construct %18, %24, %30, %31
+    store %x_GLF_color, %32
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    ret %37
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.msl
index 2e88a5f..bb28153 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/int-mat2-struct/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,83 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: S = struct @align(8) {
+  f1:i32 @offset(0)
+  f2:mat2x2<f32> @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_41:ptr<function, mat2x2<f32>, read_write> = var
+    %x_6:ptr<function, i32, read_write> = var
+    %x_42:ptr<function, mat2x2<f32>, read_write> = var
+    %x_49_phi:ptr<function, mat2x2<f32>, read_write> = var
+    %8:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_44:f32 = let %8
+    %10:bool = lt %x_44, 0.0f
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_42, mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f))
+        store %x_49_phi, mat2x2<f32>(vec2<f32>(1.0f, 2.0f), vec2<f32>(3.0f, 4.0f))
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_42, mat2x2<f32>(vec2<f32>(0.5f, -0.5f), vec2<f32>(-0.5f, 0.5f))
+        store %x_49_phi, mat2x2<f32>(vec2<f32>(0.5f, -0.5f), vec2<f32>(-0.5f, 0.5f))
+        exit_if  # if_1
+      }
+    }
+    %11:mat2x2<f32> = load %x_49_phi
+    %x_49:mat2x2<f32> = let %11
+    %13:mat2x2<f32> = transpose %x_49
+    %14:S = construct 1i, %13
+    %x_51:S = let %14
+    %16:i32 = access %x_51, 0u
+    %x_52:i32 = let %16
+    store %x_6, %x_52
+    %18:mat2x2<f32> = access %x_51, 1u
+    store %x_41, %18
+    %19:mat2x2<f32> = load %x_41
+    %x_56:mat2x2<f32> = let %19
+    %21:mat2x2<f32> = load %x_41
+    %x_59:mat2x2<f32> = let %21
+    %23:mat2x2<f32> = load %x_41
+    %x_63:mat2x2<f32> = let %23
+    %25:mat2x2<f32> = load %x_41
+    %x_66:mat2x2<f32> = let %25
+    %27:f32 = convert %x_52
+    %28:f32 = let %27
+    %29:f32 = access %x_56, 0u, 0u
+    %30:f32 = access %x_59, 1u, 0u
+    %31:f32 = add %29, %30
+    %32:f32 = access %x_63, 0u, 1u
+    %33:f32 = access %x_66, 1u, 1u
+    %34:f32 = add %32, %33
+    %35:f32 = convert %x_52
+    %36:vec4<f32> = construct %28, %31, %34, %35
+    store %x_GLF_color, %36
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %39:void = call %main_1
+    %40:vec4<f32> = load %x_GLF_color
+    %41:main_out = construct %40
+    ret %41
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.msl
index 59899f2..3548ada 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %GLF_dead0j:ptr<function, i32, read_write> = var
     %donor_replacementGLF_dead0stack:ptr<function, array<i32, 10>, read_write> = var
@@ -23,41 +23,41 @@
     %matrix_b:ptr<function, vec4<f32>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     store %k, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %k
         %12:bool = lt %11, 4i
-        if %12 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
         %14:f32 = load_vector_element %13, 1u
         %15:bool = gt 0.0f, %14
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %15 [t: $B7] {  # if_2
+          $B7: {  # true
             store %GLF_dead0j, 1i
-            loop [b: %b8, c: %b9] {  # loop_2
-              %b8 = block {  # body
+            loop [b: $B8, c: $B9] {  # loop_2
+              $B8: {  # body
                 %16:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, 0i
                 %17:i32 = load %16
                 %18:bool = lte 1i, %17
-                if %18 [t: %b10, f: %b11] {  # if_3
-                  %b10 = block {  # true
+                if %18 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
                     exit_if  # if_3
                   }
-                  %b11 = block {  # false
+                  $B11: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                continue %b9
+                continue  # -> $B9
               }
-              %b9 = block {  # continuing
-                next_iteration %b8
+              $B9: {  # continuing
+                next_iteration  # -> $B8
               }
             }
             %19:i32 = load %donor_replacementGLF_dead0top
@@ -65,72 +65,75 @@
             %21:i32 = load %donor_replacementGLF_dead0top
             %22:bool = lt %21, 9i
             %23:bool = and %20, %22
-            if %23 [t: %b12, f: %b13] {  # if_4
-              %b12 = block {  # true
+            if %23 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
                 %24:i32 = load %donor_replacementGLF_dead0top
-                %x_17:i32 = add %24, 1i
+                %25:i32 = add %24, 1i
+                %x_17:i32 = let %25
                 store %donor_replacementGLF_dead0top, %x_17
                 store %x_54, %x_17
                 exit_if  # if_4
               }
-              %b13 = block {  # false
+              $B13: {  # false
                 store %x_54, 0i
                 exit_if  # if_4
               }
             }
-            %x_18:i32 = load %x_54
-            %27:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, %x_18
-            store %27, 1i
+            %27:i32 = load %x_54
+            %x_18:i32 = let %27
+            %29:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, %x_18
+            store %29, 1i
             exit_if  # if_2
           }
         }
         store %matrix_b, vec4<f32>(0.0f)
         store %b, 3i
-        loop [b: %b14, c: %b15] {  # loop_3
-          %b14 = block {  # body
-            %28:i32 = load %b
-            %29:bool = gte %28, 0i
-            if %29 [t: %b16, f: %b17] {  # if_5
-              %b16 = block {  # true
+        loop [b: $B14, c: $B15] {  # loop_3
+          $B14: {  # body
+            %30:i32 = load %b
+            %31:bool = gte %30, 0i
+            if %31 [t: $B16, f: $B17] {  # if_5
+              $B16: {  # true
                 exit_if  # if_5
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_20:i32 = load %b
-            %31:i32 = load %b
-            %32:f32 = load_vector_element %matrix_b, %31
-            %33:f32 = sub %32, 1.0f
-            store_vector_element %matrix_b, %x_20, %33
-            continue %b15
-          }
-          %b15 = block {  # continuing
+            %32:i32 = load %b
+            %x_20:i32 = let %32
             %34:i32 = load %b
-            %35:i32 = sub %34, 1i
-            store %b, %35
-            next_iteration %b14
+            %35:f32 = load_vector_element %matrix_b, %34
+            %36:f32 = sub %35, 1.0f
+            store_vector_element %matrix_b, %x_20, %36
+            continue  # -> $B15
+          }
+          $B15: {  # continuing
+            %37:i32 = load %b
+            %38:i32 = sub %37, 1i
+            store %b, %38
+            next_iteration  # -> $B14
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %k
-        %37:i32 = add %36, 1i
-        store %k, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %39:i32 = load %k
+        %40:i32 = add %39, 1i
+        store %k, %40
+        next_iteration  # -> $B3
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B18: {
+    %42:void = call %main_1
+    %43:vec4<f32> = load %x_GLF_color
+    %44:main_out = construct %43
+    ret %44
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.msl
index d43c441..e2c84a0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loop-dead-if-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %GLF_dead0j:ptr<function, i32, read_write> = var
     %donor_replacementGLF_dead0stack:ptr<function, array<i32, 10>, read_write> = var
@@ -23,114 +23,128 @@
     %matrix_b:ptr<function, vec4<f32>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     store %k, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_12:i32 = load %k
-        %12:bool = lt %x_12, 4i
-        if %12 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %11:i32 = load %k
+        %x_12:i32 = let %11
+        %13:bool = lt %x_12, 4i
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_62:f32 = load_vector_element %13, 1u
-        %15:bool = gt 0.0f, %x_62
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %15:f32 = load_vector_element %14, 1u
+        %x_62:f32 = let %15
+        %17:bool = gt 0.0f, %x_62
+        if %17 [t: $B7] {  # if_2
+          $B7: {  # true
             store %GLF_dead0j, 1i
-            loop [b: %b8, c: %b9] {  # loop_2
-              %b8 = block {  # body
-                %16:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, 0i
-                %x_13:i32 = load %16
-                %18:bool = lte 1i, %x_13
-                if %18 [t: %b10, f: %b11] {  # if_3
-                  %b10 = block {  # true
+            loop [b: $B8, c: $B9] {  # loop_2
+              $B8: {  # body
+                %18:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, 0i
+                %19:i32 = load %18
+                %x_13:i32 = let %19
+                %21:bool = lte 1i, %x_13
+                if %21 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
                     exit_if  # if_3
                   }
-                  %b11 = block {  # false
+                  $B11: {  # false
                     exit_loop  # loop_2
                   }
                 }
-                continue %b9
+                continue  # -> $B9
               }
-              %b9 = block {  # continuing
-                next_iteration %b8
+              $B9: {  # continuing
+                next_iteration  # -> $B8
               }
             }
-            %x_14:i32 = load %donor_replacementGLF_dead0top
-            %x_15:i32 = load %donor_replacementGLF_dead0top
-            %21:bool = gte %x_14, 0i
-            %22:bool = lt %x_15, 9i
-            %23:bool = and %21, %22
-            if %23 [t: %b12, f: %b13] {  # if_4
-              %b12 = block {  # true
-                %x_16:i32 = load %donor_replacementGLF_dead0top
-                %x_17:i32 = add %x_16, 1i
+            %22:i32 = load %donor_replacementGLF_dead0top
+            %x_14:i32 = let %22
+            %24:i32 = load %donor_replacementGLF_dead0top
+            %x_15:i32 = let %24
+            %26:bool = gte %x_14, 0i
+            %27:bool = lt %x_15, 9i
+            %28:bool = and %26, %27
+            if %28 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %29:i32 = load %donor_replacementGLF_dead0top
+                %x_16:i32 = let %29
+                %31:i32 = add %x_16, 1i
+                %x_17:i32 = let %31
                 store %donor_replacementGLF_dead0top, %x_17
                 store %x_54, %x_17
                 exit_if  # if_4
               }
-              %b13 = block {  # false
+              $B13: {  # false
                 store %x_54, 0i
                 exit_if  # if_4
               }
             }
-            %x_18:i32 = load %x_54
-            %27:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, %x_18
-            store %27, 1i
+            %33:i32 = load %x_54
+            %x_18:i32 = let %33
+            %35:ptr<function, i32, read_write> = access %donor_replacementGLF_dead0stack, %x_18
+            store %35, 1i
             exit_if  # if_2
           }
         }
         store %matrix_b, vec4<f32>(0.0f)
         store %b, 3i
-        loop [b: %b14, c: %b15] {  # loop_3
-          %b14 = block {  # body
-            %x_19:i32 = load %b
-            %29:bool = gte %x_19, 0i
-            if %29 [t: %b16, f: %b17] {  # if_5
-              %b16 = block {  # true
+        loop [b: $B14, c: $B15] {  # loop_3
+          $B14: {  # body
+            %36:i32 = load %b
+            %x_19:i32 = let %36
+            %38:bool = gte %x_19, 0i
+            if %38 [t: $B16, f: $B17] {  # if_5
+              $B16: {  # true
                 exit_if  # if_5
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_20:i32 = load %b
-            %x_21:i32 = load %b
-            %x_87:f32 = load_vector_element %matrix_b, %x_21
-            %33:f32 = sub %x_87, 1.0f
-            store_vector_element %matrix_b, %x_20, %33
-            continue %b15
+            %39:i32 = load %b
+            %x_20:i32 = let %39
+            %41:i32 = load %b
+            %x_21:i32 = let %41
+            %43:f32 = load_vector_element %matrix_b, %x_21
+            %x_87:f32 = let %43
+            %45:f32 = sub %x_87, 1.0f
+            store_vector_element %matrix_b, %x_20, %45
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %x_22:i32 = load %b
-            %35:i32 = sub %x_22, 1i
-            store %b, %35
-            next_iteration %b14
+          $B15: {  # continuing
+            %46:i32 = load %b
+            %x_22:i32 = let %46
+            %48:i32 = sub %x_22, 1i
+            store %b, %48
+            next_iteration  # -> $B14
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_24:i32 = load %k
-        %37:i32 = add %x_24, 1i
-        store %k, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %49:i32 = load %k
+        %x_24:i32 = let %49
+        %51:i32 = add %x_24, 1i
+        store %k, %51
+        next_iteration  # -> $B3
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b18 {
-  %b18 = block {
-    %39:void = call %main_1
-    %40:vec4<f32> = load %x_GLF_color
-    %41:main_out = construct %40
-    ret %41
+%tint_symbol = @fragment func():main_out {
+  $B18: {
+    %53:void = call %main_1
+    %54:vec4<f32> = load %x_GLF_color
+    %55:main_out = construct %54
+    ret %55
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.msl
index efdd3b1..a6a47b6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,87 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %j:ptr<function, i32, read_write> = var
+    %a:ptr<function, f32, read_write> = var
+    store %j, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %j
+        %6:bool = lt %5, 2i
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %7:i32 = load %j
+        %8:bool = lt %7, 1i
+        if %8 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+            exit_if  # if_2
+          }
+        }
+        %9:i32 = load %j
+        %10:bool = neq %9, 3i
+        if %10 [t: $B8] {  # if_3
+          $B8: {  # true
+            %11:i32 = load %j
+            %12:bool = neq %11, 4i
+            if %12 [t: $B9] {  # if_4
+              $B9: {  # true
+                %13:i32 = load %j
+                %14:bool = eq %13, 5i
+                if %14 [t: $B10, f: $B11] {  # if_5
+                  $B10: {  # true
+                    store_vector_element %x_GLF_color, 0u, 4.0f
+                    exit_if  # if_5
+                  }
+                  $B11: {  # false
+                    store %a, 4.0f
+                    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+                    exit_if  # if_5
+                  }
+                }
+                exit_if  # if_4
+              }
+            }
+            exit_if  # if_3
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %15:i32 = load %j
+        %16:i32 = add %15, 1i
+        store %j, %16
+        next_iteration  # -> $B3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.msl
index efdd3b1..d98575f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loop-nested-ifs/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,93 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %j:ptr<function, i32, read_write> = var
+    %a:ptr<function, f32, read_write> = var
+    store %j, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %j
+        %x_6:i32 = let %5
+        %7:bool = lt %x_6, 2i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %8:i32 = load %j
+        %x_7:i32 = let %8
+        %10:bool = lt %x_7, 1i
+        if %10 [t: $B7] {  # if_2
+          $B7: {  # true
+            store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+            exit_if  # if_2
+          }
+        }
+        %11:i32 = load %j
+        %x_8:i32 = let %11
+        %13:bool = neq %x_8, 3i
+        if %13 [t: $B8] {  # if_3
+          $B8: {  # true
+            %14:i32 = load %j
+            %x_9:i32 = let %14
+            %16:bool = neq %x_9, 4i
+            if %16 [t: $B9] {  # if_4
+              $B9: {  # true
+                %17:i32 = load %j
+                %x_10:i32 = let %17
+                %19:bool = eq %x_10, 5i
+                if %19 [t: $B10, f: $B11] {  # if_5
+                  $B10: {  # true
+                    store_vector_element %x_GLF_color, 0u, 4.0f
+                    exit_if  # if_5
+                  }
+                  $B11: {  # false
+                    store %a, 4.0f
+                    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+                    exit_if  # if_5
+                  }
+                }
+                exit_if  # if_4
+              }
+            }
+            exit_if  # if_3
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %20:i32 = load %j
+        %x_11:i32 = let %20
+        %22:i32 = add %x_11, 1i
+        store %j, %22
+        next_iteration  # -> $B3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.msl
index 9074c79..390eee5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,135 +12,150 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%binarySearch_struct_BinarySearchObject_i1_10_1_ = func(%obj:ptr<function, BinarySearchObject, read_write>):i32 -> %b2 {
-  %b2 = block {
+%binarySearch_struct_BinarySearchObject_i1_10_1_ = func(%obj:ptr<function, BinarySearchObject, read_write>):i32 {
+  $B2: {
     %m:ptr<function, i32, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
         %7:f32 = load_vector_element %6, 0u
         %8:bool = gt %7, 1.0f
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %9:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
         %10:f32 = load_vector_element %9, 0u
-        %11:i32 = convert %10
+        %11:i32 = call %tint_f32_to_i32, %10
         store %m, %11
-        %12:i32 = load %m
-        %13:ptr<function, i32, read_write> = access %obj, 0u, %12
-        %14:i32 = load %13
-        %15:bool = eq %14, 1i
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %13:i32 = load %m
+        %14:ptr<function, i32, read_write> = access %obj, 0u, %13
+        %15:i32 = load %14
+        %16:bool = eq %15, 1i
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
             ret 1i
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %i:ptr<function, i32, read_write> = var
     %obj_1:ptr<function, BinarySearchObject, read_write> = var
     %param:ptr<function, BinarySearchObject, read_write> = var
     store %i, 0i
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %20:i32 = load %i
-        %21:bool = lt %20, 10i
-        if %21 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %21:i32 = load %i
+        %22:bool = lt %21, 10i
+        if %22 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %22:i32 = load %i
-        %23:bool = neq %22, 3i
-        if %23 [t: %b13] {  # if_4
-          %b13 = block {  # true
-            %24:i32 = load %i
-            %25:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %26:f32 = load_vector_element %25, 0u
-            %27:i32 = convert %26
-            %28:i32 = sub %24, %27
-            %29:bool = eq %28, 4i
-            if %29 [t: %b14, f: %b15] {  # if_5
-              %b14 = block {  # true
-                %x_21:i32 = load %i
-                %31:ptr<function, i32, read_write> = access %obj_1, 0u, %x_21
-                store %31, 11i
+        %23:i32 = load %i
+        %24:bool = neq %23, 3i
+        if %24 [t: $B13] {  # if_4
+          $B13: {  # true
+            %25:i32 = load %i
+            %26:i32 = let %25
+            %27:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %28:f32 = load_vector_element %27, 0u
+            %29:i32 = call %tint_f32_to_i32, %28
+            %30:i32 = sub %26, %29
+            %31:bool = eq %30, 4i
+            if %31 [t: $B14, f: $B15] {  # if_5
+              $B14: {  # true
+                %32:i32 = load %i
+                %x_21:i32 = let %32
+                %34:ptr<function, i32, read_write> = access %obj_1, 0u, %x_21
+                store %34, 11i
                 exit_if  # if_5
               }
-              %b15 = block {  # false
-                %32:i32 = load %i
-                %33:bool = eq %32, 6i
-                if %33 [t: %b16] {  # if_6
-                  %b16 = block {  # true
-                    %x_23:i32 = load %i
-                    %35:ptr<function, i32, read_write> = access %obj_1, 0u, %x_23
-                    store %35, 17i
+              $B15: {  # false
+                %35:i32 = load %i
+                %36:bool = eq %35, 6i
+                if %36 [t: $B16] {  # if_6
+                  $B16: {  # true
+                    %37:i32 = load %i
+                    %x_23:i32 = let %37
+                    %39:ptr<function, i32, read_write> = access %obj_1, 0u, %x_23
+                    store %39, 17i
                     exit_if  # if_6
                   }
                 }
-                continue %b10
+                continue  # -> $B10
               }
             }
             exit_if  # if_4
           }
         }
-        loop [b: %b17, c: %b18] {  # loop_3
-          %b17 = block {  # body
-            continue %b18
+        loop [b: $B17, c: $B18] {  # loop_3
+          $B17: {  # body
+            continue  # -> $B18
           }
-          %b18 = block {  # continuing
-            %36:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %x_82:f32 = load_vector_element %36, 1u
-            %38:bool = gt 0.0f, %x_82
-            %39:bool = eq %38, false
-            break_if %39 %b17
+          $B18: {  # continuing
+            %40:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %41:f32 = load_vector_element %40, 1u
+            %x_82:f32 = let %41
+            %43:bool = gt 0.0f, %x_82
+            %44:bool = eq %43, false
+            break_if %44  # -> [t: exit_loop loop_3, f: $B17]
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %40:i32 = load %i
-        %41:i32 = add %40, 1i
-        store %i, %41
-        next_iteration %b9
+      $B10: {  # continuing
+        %45:i32 = load %i
+        %46:i32 = add %45, 1i
+        store %i, %46
+        next_iteration  # -> $B9
       }
     }
-    %42:BinarySearchObject = load %obj_1
-    store %param, %42
-    %x_26:i32 = call %binarySearch_struct_BinarySearchObject_i1_10_1_, %param
+    %47:BinarySearchObject = load %obj_1
+    store %param, %47
+    %48:i32 = call %binarySearch_struct_BinarySearchObject_i1_10_1_, %param
+    %x_26:i32 = let %48
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b19 {
-  %b19 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %55:i32 = convert %value
+    %56:bool = gte %value, -2147483648.0f
+    %57:i32 = select -2147483648i, %55, %56
+    %58:bool = lte %value, 2147483520.0f
+    %59:i32 = select 2147483647i, %57, %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.msl
index d4d695e..ce51edd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/loops-ifs-continues-call/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,135 +12,160 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%binarySearch_struct_BinarySearchObject_i1_10_1_ = func(%obj:ptr<function, BinarySearchObject, read_write>):i32 -> %b2 {
-  %b2 = block {
+%binarySearch_struct_BinarySearchObject_i1_10_1_ = func(%obj:ptr<function, BinarySearchObject, read_write>):i32 {
+  $B2: {
     %m:ptr<function, i32, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_91:f32 = load_vector_element %6, 0u
-        %8:bool = gt %x_91, 1.0f
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %7:f32 = load_vector_element %6, 0u
+        %x_91:f32 = let %7
+        %9:bool = gt %x_91, 1.0f
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %9:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_95:f32 = load_vector_element %9, 0u
-        %11:i32 = convert %x_95
-        store %m, %11
-        %x_14:i32 = load %m
-        %13:ptr<function, i32, read_write> = access %obj, 0u, %x_14
-        %x_15:i32 = load %13
-        %15:bool = eq %x_15, 1i
-        if %15 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %10:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %11:f32 = load_vector_element %10, 0u
+        %x_95:f32 = let %11
+        %13:i32 = call %tint_f32_to_i32, %x_95
+        store %m, %13
+        %15:i32 = load %m
+        %x_14:i32 = let %15
+        %17:ptr<function, i32, read_write> = access %obj, 0u, %x_14
+        %18:i32 = load %17
+        %x_15:i32 = let %18
+        %20:bool = eq %x_15, 1i
+        if %20 [t: $B7] {  # if_2
+          $B7: {  # true
             ret 1i
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %i:ptr<function, i32, read_write> = var
     %obj_1:ptr<function, BinarySearchObject, read_write> = var
     %param:ptr<function, BinarySearchObject, read_write> = var
     store %i, 0i
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_16:i32 = load %i
-        %21:bool = lt %x_16, 10i
-        if %21 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %25:i32 = load %i
+        %x_16:i32 = let %25
+        %27:bool = lt %x_16, 10i
+        if %27 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_17:i32 = load %i
-        %23:bool = neq %x_17, 3i
-        if %23 [t: %b13] {  # if_4
-          %b13 = block {  # true
-            %x_18:i32 = load %i
-            %25:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %x_67:f32 = load_vector_element %25, 0u
-            %27:i32 = convert %x_67
-            %28:i32 = sub %x_18, %27
-            %29:bool = eq %28, 4i
-            if %29 [t: %b14, f: %b15] {  # if_5
-              %b14 = block {  # true
-                %x_21:i32 = load %i
-                %31:ptr<function, i32, read_write> = access %obj_1, 0u, %x_21
-                store %31, 11i
+        %28:i32 = load %i
+        %x_17:i32 = let %28
+        %30:bool = neq %x_17, 3i
+        if %30 [t: $B13] {  # if_4
+          $B13: {  # true
+            %31:i32 = load %i
+            %x_18:i32 = let %31
+            %33:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %34:f32 = load_vector_element %33, 0u
+            %x_67:f32 = let %34
+            %36:i32 = call %tint_f32_to_i32, %x_67
+            %37:i32 = sub %x_18, %36
+            %38:bool = eq %37, 4i
+            if %38 [t: $B14, f: $B15] {  # if_5
+              $B14: {  # true
+                %39:i32 = load %i
+                %x_21:i32 = let %39
+                %41:ptr<function, i32, read_write> = access %obj_1, 0u, %x_21
+                store %41, 11i
                 exit_if  # if_5
               }
-              %b15 = block {  # false
-                %x_22:i32 = load %i
-                %33:bool = eq %x_22, 6i
-                if %33 [t: %b16] {  # if_6
-                  %b16 = block {  # true
-                    %x_23:i32 = load %i
-                    %35:ptr<function, i32, read_write> = access %obj_1, 0u, %x_23
-                    store %35, 17i
+              $B15: {  # false
+                %42:i32 = load %i
+                %x_22:i32 = let %42
+                %44:bool = eq %x_22, 6i
+                if %44 [t: $B16] {  # if_6
+                  $B16: {  # true
+                    %45:i32 = load %i
+                    %x_23:i32 = let %45
+                    %47:ptr<function, i32, read_write> = access %obj_1, 0u, %x_23
+                    store %47, 17i
                     exit_if  # if_6
                   }
                 }
-                continue %b10
+                continue  # -> $B10
               }
             }
             exit_if  # if_4
           }
         }
-        loop [b: %b17, c: %b18] {  # loop_3
-          %b17 = block {  # body
-            continue %b18
+        loop [b: $B17, c: $B18] {  # loop_3
+          $B17: {  # body
+            continue  # -> $B18
           }
-          %b18 = block {  # continuing
-            %36:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %x_82:f32 = load_vector_element %36, 1u
-            %38:bool = gt 0.0f, %x_82
-            %39:bool = eq %38, false
-            break_if %39 %b17
+          $B18: {  # continuing
+            %48:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %49:f32 = load_vector_element %48, 1u
+            %x_82:f32 = let %49
+            %51:bool = gt 0.0f, %x_82
+            %52:bool = eq %51, false
+            break_if %52  # -> [t: exit_loop loop_3, f: $B17]
           }
         }
-        continue %b10
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        %x_24:i32 = load %i
-        %41:i32 = add %x_24, 1i
-        store %i, %41
-        next_iteration %b9
+      $B10: {  # continuing
+        %53:i32 = load %i
+        %x_24:i32 = let %53
+        %55:i32 = add %x_24, 1i
+        store %i, %55
+        next_iteration  # -> $B9
       }
     }
-    %x_84:BinarySearchObject = load %obj_1
+    %56:BinarySearchObject = load %obj_1
+    %x_84:BinarySearchObject = let %56
     store %param, %x_84
-    %x_26:i32 = call %binarySearch_struct_BinarySearchObject_i1_10_1_, %param
+    %58:i32 = call %binarySearch_struct_BinarySearchObject_i1_10_1_, %param
+    %x_26:i32 = let %58
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b19 {
-  %b19 = block {
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+%tint_symbol = @fragment func():main_out {
+  $B19: {
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %65:i32 = convert %value
+    %66:bool = gte %value, -2147483648.0f
+    %67:i32 = select -2147483648i, %65, %66
+    %68:bool = lte %value, 2147483520.0f
+    %69:i32 = select 2147483647i, %67, %68
+    ret %69
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.msl
index cdbf128..3126724 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,59 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%f_mf22_ = func(%m:ptr<function, mat2x2<f32>, read_write>):vec3<f32> {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        ret vec3<f32>(1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B4: {
+    %param:ptr<function, mat2x2<f32>, read_write> = var
+    %x_38:ptr<function, mat2x2<f32>, read_write> = var
+    %8:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_34:f32 = let %8
+    store %x_38, mat2x2<f32>(vec2<f32>(0.0f))
+    %10:bool = gte %x_34, 0.0f
+    if %10 [t: $B5] {  # if_1
+      $B5: {  # true
+        store %x_38, mat2x2<f32>(vec2<f32>(1.0f, 0.0f), vec2<f32>(0.0f, 1.0f))
+        exit_if  # if_1
+      }
+    }
+    %11:mat2x2<f32> = load %x_38
+    %12:mat2x2<f32> = load %x_38
+    %13:mat2x2<f32> = mul %11, %12
+    store %param, %13
+    %14:vec3<f32> = call %f_mf22_, %param
+    %x_40:vec3<f32> = let %14
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.msl
index cdbf128..1d74d95 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/matrices-and-return-in-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,59 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%f_mf22_ = func(%m:ptr<function, mat2x2<f32>, read_write>):vec3<f32> {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        ret vec3<f32>(1.0f)
+      }
+    }
+    unreachable
+  }
+}
+%main_1 = func():void {
+  $B4: {
+    %param:ptr<function, mat2x2<f32>, read_write> = var
+    %x_38_phi:ptr<function, mat2x2<f32>, read_write> = var
+    %8:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_34:f32 = let %8
+    store %x_38_phi, mat2x2<f32>(vec2<f32>(0.0f))
+    %10:bool = gte %x_34, 0.0f
+    if %10 [t: $B5] {  # if_1
+      $B5: {  # true
+        store %x_38_phi, mat2x2<f32>(vec2<f32>(1.0f, 0.0f), vec2<f32>(0.0f, 1.0f))
+        exit_if  # if_1
+      }
+    }
+    %11:mat2x2<f32> = load %x_38_phi
+    %x_38:mat2x2<f32> = let %11
+    %13:mat2x2<f32> = mul %x_38, %x_38
+    store %param, %13
+    %14:vec3<f32> = call %f_mf22_, %param
+    %x_40:vec3<f32> = let %14
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B6: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    ret %20
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.msl
index b283127..b2ae302 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,39 +8,40 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gv:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %6:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %7:f32 = load_vector_element %6, 0u
-    %8:bool = gt %7, 2.0f
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %9:vec4<f32> = load %gv
-        %10:vec4<f32> = mix vec4<f32>(1.0f), vec4<f32>(1.0f), %9
-        %11:vec4<f32> = max %10, vec4<f32>(8.6000003814697265625f)
-        %12:f32 = access %11, 1u
-        %13:i32 = convert %12
-        store %temp, %13
-        %14:i32 = load %temp
-        %15:bool = lt %14, 150i
-        if %15 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            discard
+    %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+    %8:f32 = load_vector_element %7, 0u
+    %9:bool = gt %8, 2.0f
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:vec4<f32> = load %gv
+        %11:vec4<f32> = mix vec4<f32>(1.0f), vec4<f32>(1.0f), %10
+        %12:vec4<f32> = max %11, vec4<f32>(8.6000003814697265625f)
+        %13:f32 = access %12, 1u
+        %14:i32 = call %tint_f32_to_i32, %13
+        store %temp, %14
+        %16:i32 = load %temp
+        %17:bool = lt %16, 150i
+        if %17 [t: $B4] {  # if_2
+          $B4: {  # true
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %16:i32 = load %temp
-        %17:bool = lt %16, 180i
-        if %17 [t: %b5] {  # if_3
-          %b5 = block {  # true
-            discard
+        %18:i32 = load %temp
+        %19:bool = lt %18, 180i
+        if %19 [t: $B5] {  # if_3
+          $B5: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
@@ -51,12 +52,29 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    %24:bool = load %continue_execution
+    %25:bool = eq %24, false
+    if %25 [t: $B7] {  # if_4
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %23
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %27:i32 = convert %value
+    %28:bool = gte %value, -2147483648.0f
+    %29:i32 = select -2147483648i, %27, %28
+    %30:bool = lte %value, 2147483520.0f
+    %31:i32 = select 2147483647i, %29, %30
+    ret %31
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.msl
index d06e1fe..9a38ac1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/max-mix-conditional-discard/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,39 +8,44 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gv:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %6:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_39:f32 = load_vector_element %6, 0u
-    %8:bool = gt %x_39, 2.0f
-    if %8 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_8:vec4<f32> = load %gv
-        %10:vec4<f32> = mix vec4<f32>(1.0f), vec4<f32>(1.0f), %x_8
-        %11:vec4<f32> = max %10, vec4<f32>(8.6000003814697265625f)
-        %12:f32 = access %11, 1u
-        %13:i32 = convert %12
-        store %temp, %13
-        %x_44:i32 = load %temp
-        %15:bool = lt %x_44, 150i
-        if %15 [t: %b4] {  # if_2
-          %b4 = block {  # true
-            discard
+    %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+    %8:f32 = load_vector_element %7, 0u
+    %x_39:f32 = let %8
+    %10:bool = gt %x_39, 2.0f
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:vec4<f32> = load %gv
+        %x_8:vec4<f32> = let %11
+        %13:vec4<f32> = mix vec4<f32>(1.0f), vec4<f32>(1.0f), %x_8
+        %14:vec4<f32> = max %13, vec4<f32>(8.6000003814697265625f)
+        %15:f32 = access %14, 1u
+        %16:i32 = call %tint_f32_to_i32, %15
+        store %temp, %16
+        %18:i32 = load %temp
+        %x_44:i32 = let %18
+        %20:bool = lt %x_44, 150i
+        if %20 [t: $B4] {  # if_2
+          $B4: {  # true
+            store %continue_execution, false
             exit_if  # if_2
           }
         }
-        %x_48:i32 = load %temp
-        %17:bool = lt %x_48, 180i
-        if %17 [t: %b5] {  # if_3
-          %b5 = block {  # true
-            discard
+        %21:i32 = load %temp
+        %x_48:i32 = let %21
+        %23:bool = lt %x_48, 180i
+        if %23 [t: $B5] {  # if_3
+          $B5: {  # true
+            store %continue_execution, false
             exit_if  # if_3
           }
         }
@@ -51,12 +56,29 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    %28:bool = load %continue_execution
+    %29:bool = eq %28, false
+    if %29 [t: $B7] {  # if_4
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %27
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %31:i32 = convert %value
+    %32:bool = gte %value, -2147483648.0f
+    %33:i32 = select -2147483648i, %31, %32
+    %34:bool = lte %value, 2147483520.0f
+    %35:i32 = select 2147483647i, %33, %34
+    ret %35
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.msl
index 792ab03..20211f0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%GLF_live6mand_ = func():vec3<f32> {
+  $B2: {
+    ret vec3<f32>(926.0f, 8.0f, -8.85242279e-41f)
+  }
+}
+%main_1 = func():void {
+  $B3: {
+    %4:vec3<f32> = call %GLF_live6mand_
+    %x_27:vec3<f32> = let %4
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %7:void = call %main_1
+    %8:vec4<f32> = load %x_GLF_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.msl
index 792ab03..20211f0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/mix-floor-add/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::UserCall
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%GLF_live6mand_ = func():vec3<f32> {
+  $B2: {
+    ret vec3<f32>(926.0f, 8.0f, -8.85242279e-41f)
+  }
+}
+%main_1 = func():void {
+  $B3: {
+    %4:vec3<f32> = call %GLF_live6mand_
+    %x_27:vec3<f32> = let %4
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %7:void = call %main_1
+    %8:vec4<f32> = load %x_GLF_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.msl
index f8d5fdd..54eeaf1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,56 +8,56 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m44:ptr<function, mat4x4<f32>, read_write> = var
     %x_10:ptr<function, i32, read_write> = var
     store %m44, mat4x4<f32>(vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f), vec4<f32>(5.0f, 6.0f, 7.0f, 8.0f), vec4<f32>(9.0f, 10.0f, 11.0f, 12.0f), vec4<f32>(13.0f, 14.0f, 15.0f, 16.0f))
     store %x_10, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_11:ptr<function, i32, read_write> = var
         %x_9:ptr<function, i32, read_write> = var
         %9:i32 = load %x_10
         %10:bool = lt %9, 4i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %11:f32 = load_vector_element %gl_FragCoord, 1u
         %12:bool = lt %11, 0.0f
-        if %12 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
         store %x_11, 0i
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
             %x_8:ptr<function, i32, read_write> = var
             %14:i32 = load %x_11
             %15:bool = lt %14, 4i
-            if %15 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+            if %15 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            continue %b9
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
+          $B9: {  # continuing
             %16:i32 = load %x_10
             %17:ptr<function, vec4<f32>, read_write> = access %m44, %16
             %18:i32 = load %x_11
@@ -74,43 +74,46 @@
             store %x_8, %27
             %28:i32 = load %x_8
             store %x_11, %28
-            next_iteration %b8
+            next_iteration  # -> $B8
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %29:i32 = load %x_10
         %30:i32 = add %29, 1i
         store %x_9, %30
         %31:i32 = load %x_9
         store %x_10, %31
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     %32:ptr<function, vec4<f32>, read_write> = access %m44, 1i
-    %x_77:f32 = load_vector_element %32, 1u
+    %33:f32 = load_vector_element %32, 1u
+    %x_77:f32 = let %33
     %x_79_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
-    %35:f32 = sub %x_77, 6.0f
-    store_vector_element %x_79_1, 0u, %35
-    %x_79:vec4<f32> = load %x_79_1
-    %37:ptr<function, vec4<f32>, read_write> = access %m44, 2i
-    %x_81:f32 = load_vector_element %37, 2u
+    %36:f32 = sub %x_77, 6.0f
+    store_vector_element %x_79_1, 0u, %36
+    %37:vec4<f32> = load %x_79_1
+    %x_79:vec4<f32> = let %37
+    %39:ptr<function, vec4<f32>, read_write> = access %m44, 2i
+    %40:f32 = load_vector_element %39, 2u
+    %x_81:f32 = let %40
     %x_83_1:ptr<function, vec4<f32>, read_write> = var, %x_79
-    %40:f32 = sub %x_81, 11.0f
-    store_vector_element %x_83_1, 3u, %40
-    %41:vec4<f32> = load %x_83_1
-    store %x_GLF_color, %41
+    %43:f32 = sub %x_81, 11.0f
+    store_vector_element %x_83_1, 3u, %43
+    %44:vec4<f32> = load %x_83_1
+    store %x_GLF_color, %44
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.msl
index cbec366..2fcd467 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-for-break-mat-color/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   one:f32 @offset(0)
 }
 
@@ -8,103 +8,112 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m44:ptr<function, mat4x4<f32>, read_write> = var
     %x_10_phi:ptr<function, i32, read_write> = var
     store %m44, mat4x4<f32>(vec4<f32>(1.0f, 2.0f, 3.0f, 4.0f), vec4<f32>(5.0f, 6.0f, 7.0f, 8.0f), vec4<f32>(9.0f, 10.0f, 11.0f, 12.0f), vec4<f32>(13.0f, 14.0f, 15.0f, 16.0f))
     store %x_10_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_9:ptr<function, i32, read_write> = var
         %x_11_phi:ptr<function, i32, read_write> = var
-        %x_10:i32 = load %x_10_phi
-        %10:bool = lt %x_10, 4i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %9:i32 = load %x_10_phi
+        %x_10:i32 = let %9
+        %11:bool = lt %x_10, 4i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_63:f32 = load_vector_element %gl_FragCoord, 1u
-        %12:bool = lt %x_63, 0.0f
-        if %12 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %12:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_63:f32 = let %12
+        %14:bool = lt %x_63, 0.0f
+        if %14 [t: $B7] {  # if_2
+          $B7: {  # true
             exit_loop  # loop_1
           }
         }
         store %x_11_phi, 0i
-        loop [b: %b8, c: %b9] {  # loop_2
-          %b8 = block {  # body
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
             %x_8:ptr<function, i32, read_write> = var
-            %x_11:i32 = load %x_11_phi
-            %15:bool = lt %x_11, 4i
-            if %15 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
+            %16:i32 = load %x_11_phi
+            %x_11:i32 = let %16
+            %18:bool = lt %x_11, 4i
+            if %18 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
                 exit_if  # if_3
               }
-              %b11 = block {  # false
+              $B11: {  # false
                 exit_loop  # loop_2
               }
             }
-            continue %b9
+            continue  # -> $B9
           }
-          %b9 = block {  # continuing
-            %16:ptr<uniform, f32, read> = access %x_7, 0u
-            %x_72:f32 = load %16
-            %18:ptr<function, vec4<f32>, read_write> = access %m44, %x_10
-            %x_74:f32 = load_vector_element %18, %x_11
-            %20:ptr<function, vec4<f32>, read_write> = access %m44, %x_10
-            %21:f32 = add %x_74, %x_72
-            store_vector_element %20, %x_11, %21
-            %22:i32 = add %x_11, 1i
-            store %x_8, %22
-            %23:i32 = load %x_8
-            store %x_11_phi, %23
-            next_iteration %b8
+          $B9: {  # continuing
+            %19:ptr<uniform, f32, read> = access %x_7, 0u
+            %20:f32 = load %19
+            %x_72:f32 = let %20
+            %22:ptr<function, vec4<f32>, read_write> = access %m44, %x_10
+            %23:f32 = load_vector_element %22, %x_11
+            %x_74:f32 = let %23
+            %25:ptr<function, vec4<f32>, read_write> = access %m44, %x_10
+            %26:f32 = add %x_74, %x_72
+            store_vector_element %25, %x_11, %26
+            %27:i32 = add %x_11, 1i
+            store %x_8, %27
+            %28:i32 = load %x_8
+            store %x_11_phi, %28
+            next_iteration  # -> $B8
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %24:i32 = add %x_10, 1i
-        store %x_9, %24
-        %25:i32 = load %x_9
-        store %x_10_phi, %25
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = add %x_10, 1i
+        store %x_9, %29
+        %30:i32 = load %x_9
+        store %x_10_phi, %30
+        next_iteration  # -> $B3
       }
     }
-    %26:ptr<function, vec4<f32>, read_write> = access %m44, 1i
-    %x_77:f32 = load_vector_element %26, 1u
+    %31:ptr<function, vec4<f32>, read_write> = access %m44, 1i
+    %32:f32 = load_vector_element %31, 1u
+    %x_77:f32 = let %32
     %x_79_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
-    %29:f32 = sub %x_77, 6.0f
-    store_vector_element %x_79_1, 0u, %29
-    %x_79:vec4<f32> = load %x_79_1
-    %31:ptr<function, vec4<f32>, read_write> = access %m44, 2i
-    %x_81:f32 = load_vector_element %31, 2u
+    %35:f32 = sub %x_77, 6.0f
+    store_vector_element %x_79_1, 0u, %35
+    %36:vec4<f32> = load %x_79_1
+    %x_79:vec4<f32> = let %36
+    %38:ptr<function, vec4<f32>, read_write> = access %m44, 2i
+    %39:f32 = load_vector_element %38, 2u
+    %x_81:f32 = let %39
     %x_83_1:ptr<function, vec4<f32>, read_write> = var, %x_79
-    %34:f32 = sub %x_81, 11.0f
-    store_vector_element %x_83_1, 3u, %34
-    %x_83:vec4<f32> = load %x_83_1
+    %42:f32 = sub %x_81, 11.0f
+    store_vector_element %x_83_1, 3u, %42
+    %43:vec4<f32> = load %x_83_1
+    %x_83:vec4<f32> = let %43
     store %x_GLF_color, %x_83
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %38:void = call %main_1
-    %39:vec4<f32> = load %x_GLF_color
-    %40:main_out = construct %39
-    ret %40
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.msl
index cd79cb1..2d24385 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,25 +8,25 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:i32 = load %i
         %6:bool = lt %5, 10i
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -34,31 +34,31 @@
         %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
         %8:f32 = load_vector_element %7, 1u
         %9:bool = gt 1.0f, %8
-        if %9 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %9 [t: $B7] {  # if_2
+          $B7: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-            if true [t: %b8] {  # if_3
-              %b8 = block {  # true
+            if true [t: $B8] {  # if_3
+              $B8: {  # true
                 ret
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %10:i32 = load %i
         %11:i32 = add %10, 1i
         store %i, %11
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func():main_out {
+  $B9: {
     %13:void = call %main_1
     %14:vec4<f32> = load %x_GLF_color
     %15:main_out = construct %14
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.msl
index b5e5a7a..a72f1be 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-ifs-and-return-in-for-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,61 +8,64 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_7:i32 = load %i
-        %6:bool = lt %x_7, 10i
-        if %6 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %5:i32 = load %i
+        %x_7:i32 = let %5
+        %7:bool = lt %x_7, 10i
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         store %x_GLF_color, vec4<f32>(1.0f)
-        %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_39:f32 = load_vector_element %7, 1u
-        %9:bool = gt 1.0f, %x_39
-        if %9 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        %8:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %9:f32 = load_vector_element %8, 1u
+        %x_39:f32 = let %9
+        %11:bool = gt 1.0f, %x_39
+        if %11 [t: $B7] {  # if_2
+          $B7: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-            if true [t: %b8] {  # if_3
-              %b8 = block {  # true
+            if true [t: $B8] {  # if_3
+              $B8: {  # true
                 ret
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_8:i32 = load %i
-        %11:i32 = add %x_8, 1i
-        store %i, %11
-        next_iteration %b3
+      $B4: {  # continuing
+        %12:i32 = load %i
+        %x_8:i32 = let %12
+        %14:i32 = add %x_8, 1i
+        store %i, %14
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %13:void = call %main_1
-    %14:vec4<f32> = load %x_GLF_color
-    %15:main_out = construct %14
-    ret %15
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    ret %18
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.msl
index f585fda..e4d0340 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %GLF_dead5cols:ptr<function, i32, read_write> = var
     %GLF_dead5rows:ptr<function, i32, read_write> = var
@@ -23,162 +23,176 @@
     %msb10:ptr<function, i32, read_write> = var
     %donor_replacementGLF_dead5sums:ptr<function, array<f32, 9>, read_write> = var
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %11:i32 = load %i
-        %12:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %13:f32 = load_vector_element %12, 0u
-        %14:i32 = convert %13
-        %15:bool = gte %11, %14
-        if %15 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %12:i32 = let %11
+        %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %14:f32 = load_vector_element %13, 0u
+        %15:i32 = call %tint_f32_to_i32, %14
+        %17:bool = gte %12, %15
+        if %17 [t: $B5] {  # if_1
+          $B5: {  # true
             exit_loop  # loop_1
           }
         }
-        %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %17:f32 = load_vector_element %16, 1u
-        %18:bool = gt 0.0f, %17
-        if %18 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %18:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %19:f32 = load_vector_element %18, 1u
+        %20:bool = gt 0.0f, %19
+        if %20 [t: $B6] {  # if_2
+          $B6: {  # true
             store %GLF_dead5cols, 2i
-            loop [b: %b7, c: %b8] {  # loop_2
-              %b7 = block {  # body
-                %19:i32 = load %GLF_dead5cols
-                %20:bool = lte %19, 4i
-                if %20 [t: %b9, f: %b10] {  # if_3
-                  %b9 = block {  # true
+            loop [b: $B7, c: $B8] {  # loop_2
+              $B7: {  # body
+                %21:i32 = load %GLF_dead5cols
+                %22:bool = lte %21, 4i
+                if %22 [t: $B9, f: $B10] {  # if_3
+                  $B9: {  # true
                     exit_if  # if_3
                   }
-                  %b10 = block {  # false
+                  $B10: {  # false
                     exit_loop  # loop_2
                   }
                 }
                 store %GLF_dead5rows, 2i
-                loop [b: %b11, c: %b12] {  # loop_3
-                  %b11 = block {  # body
-                    %21:i32 = load %GLF_dead5rows
-                    %22:bool = lte %21, 4i
-                    if %22 [t: %b13, f: %b14] {  # if_4
-                      %b13 = block {  # true
+                loop [b: $B11, c: $B12] {  # loop_3
+                  $B11: {  # body
+                    %23:i32 = load %GLF_dead5rows
+                    %24:bool = lte %23, 4i
+                    if %24 [t: $B13, f: $B14] {  # if_4
+                      $B13: {  # true
                         exit_if  # if_4
                       }
-                      %b14 = block {  # false
+                      $B14: {  # false
                         exit_loop  # loop_3
                       }
                     }
                     store %GLF_dead5c, 0i
-                    loop [b: %b15, c: %b16] {  # loop_4
-                      %b15 = block {  # body
-                        %23:i32 = load %GLF_dead5c
-                        %24:i32 = load %GLF_dead5cols
-                        %25:bool = lt %23, %24
-                        if %25 [t: %b17, f: %b18] {  # if_5
-                          %b17 = block {  # true
+                    loop [b: $B15, c: $B16] {  # loop_4
+                      $B15: {  # body
+                        %25:i32 = load %GLF_dead5c
+                        %26:i32 = load %GLF_dead5cols
+                        %27:bool = lt %25, %26
+                        if %27 [t: $B17, f: $B18] {  # if_5
+                          $B17: {  # true
                             exit_if  # if_5
                           }
-                          %b18 = block {  # false
+                          $B18: {  # false
                             exit_loop  # loop_4
                           }
                         }
                         store %GLF_dead5r, 0i
-                        loop [b: %b19, c: %b20] {  # loop_5
-                          %b19 = block {  # body
-                            %26:i32 = load %GLF_dead5r
-                            %27:i32 = load %GLF_dead5rows
-                            %28:bool = lt %26, %27
-                            if %28 [t: %b21, f: %b22] {  # if_6
-                              %b21 = block {  # true
+                        loop [b: $B19, c: $B20] {  # loop_5
+                          $B19: {  # body
+                            %28:i32 = load %GLF_dead5r
+                            %29:i32 = load %GLF_dead5rows
+                            %30:bool = lt %28, %29
+                            if %30 [t: $B21, f: $B22] {  # if_6
+                              $B21: {  # true
                                 exit_if  # if_6
                               }
-                              %b22 = block {  # false
+                              $B22: {  # false
                                 exit_loop  # loop_5
                               }
                             }
-                            %x_87:i32 = load %msb10
-                            switch %x_87 [c: (1i 8i, %b23), c: (default, %b24)] {  # switch_1
-                              %b23 = block {  # case
-                                %30:i32 = load %msb10
-                                %31:i32 = load %msb10
-                                %32:bool = gte %31, 0i
+                            %31:i32 = load %msb10
+                            %x_87:i32 = let %31
+                            switch %x_87 [c: (1i 8i, $B23), c: (default, $B24)] {  # switch_1
+                              $B23: {  # case
                                 %33:i32 = load %msb10
-                                %34:bool = lt %33, 9i
-                                %35:bool = and %32, %34
-                                %x_96:i32 = select 0i, %30, %35
-                                %37:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
-                                %38:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
-                                %39:f32 = load %38
-                                %40:f32 = add %39, 1.0f
-                                store %37, %40
+                                %34:i32 = load %msb10
+                                %35:bool = gte %34, 0i
+                                %36:i32 = load %msb10
+                                %37:bool = lt %36, 9i
+                                %38:bool = and %35, %37
+                                %39:i32 = select 0i, %33, %38
+                                %x_96:i32 = let %39
+                                %41:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
+                                %42:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
+                                %43:f32 = load %42
+                                %44:f32 = add %43, 1.0f
+                                store %41, %44
                                 exit_switch  # switch_1
                               }
-                              %b24 = block {  # case
+                              $B24: {  # case
                                 exit_switch  # switch_1
                               }
                             }
-                            continue %b20
+                            continue  # -> $B20
                           }
-                          %b20 = block {  # continuing
-                            %41:i32 = load %GLF_dead5r
-                            %42:i32 = add %41, 1i
-                            store %GLF_dead5r, %42
-                            next_iteration %b19
+                          $B20: {  # continuing
+                            %45:i32 = load %GLF_dead5r
+                            %46:i32 = add %45, 1i
+                            store %GLF_dead5r, %46
+                            next_iteration  # -> $B19
                           }
                         }
-                        continue %b16
+                        continue  # -> $B16
                       }
-                      %b16 = block {  # continuing
-                        %43:i32 = load %GLF_dead5c
-                        %44:i32 = add %43, 1i
-                        store %GLF_dead5c, %44
-                        next_iteration %b15
+                      $B16: {  # continuing
+                        %47:i32 = load %GLF_dead5c
+                        %48:i32 = add %47, 1i
+                        store %GLF_dead5c, %48
+                        next_iteration  # -> $B15
                       }
                     }
-                    %45:i32 = load %msb10
-                    %46:i32 = add %45, 1i
-                    store %msb10, %46
-                    continue %b12
+                    %49:i32 = load %msb10
+                    %50:i32 = add %49, 1i
+                    store %msb10, %50
+                    continue  # -> $B12
                   }
-                  %b12 = block {  # continuing
-                    %47:i32 = load %GLF_dead5rows
-                    %48:i32 = add %47, 1i
-                    store %GLF_dead5rows, %48
-                    next_iteration %b11
+                  $B12: {  # continuing
+                    %51:i32 = load %GLF_dead5rows
+                    %52:i32 = add %51, 1i
+                    store %GLF_dead5rows, %52
+                    next_iteration  # -> $B11
                   }
                 }
-                continue %b8
+                continue  # -> $B8
               }
-              %b8 = block {  # continuing
-                %49:i32 = load %GLF_dead5cols
-                %50:i32 = add %49, 1i
-                store %GLF_dead5cols, %50
-                next_iteration %b7
+              $B8: {  # continuing
+                %53:i32 = load %GLF_dead5cols
+                %54:i32 = add %53, 1i
+                store %GLF_dead5cols, %54
+                next_iteration  # -> $B7
               }
             }
             exit_if  # if_2
           }
         }
-        %51:i32 = load %i
-        %52:i32 = add %51, 1i
-        store %i, %52
-        continue %b4
+        %55:i32 = load %i
+        %56:i32 = add %55, 1i
+        store %i, %56
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_113:i32 = load %i
-        %54:bool = lt %x_113, 200i
-        %55:bool = eq %54, false
-        break_if %55 %b3
+      $B4: {  # continuing
+        %57:i32 = load %i
+        %x_113:i32 = let %57
+        %59:bool = lt %x_113, 200i
+        %60:bool = eq %59, false
+        break_if %60  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b25 {
-  %b25 = block {
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+%tint_symbol = @fragment func():main_out {
+  $B25: {
+    %62:void = call %main_1
+    %63:vec4<f32> = load %x_GLF_color
+    %64:main_out = construct %63
+    ret %64
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B26: {
+    %66:i32 = convert %value
+    %67:bool = gte %value, -2147483648.0f
+    %68:i32 = select -2147483648i, %66, %67
+    %69:bool = lte %value, 2147483520.0f
+    %70:i32 = select 2147483647i, %68, %69
+    ret %70
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.msl
index d85a84a..d5157e2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/nested-loops-switch/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %GLF_dead5cols:ptr<function, i32, read_write> = var
     %GLF_dead5rows:ptr<function, i32, read_write> = var
@@ -23,162 +23,194 @@
     %msb10:ptr<function, i32, read_write> = var
     %donor_replacementGLF_dead5sums:ptr<function, array<f32, 9>, read_write> = var
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_45:i32 = load %i
-        %12:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_47:f32 = load_vector_element %12, 0u
-        %14:i32 = convert %x_47
-        %15:bool = gte %x_45, %14
-        if %15 [t: %b5] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %11:i32 = load %i
+        %x_45:i32 = let %11
+        %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %14:f32 = load_vector_element %13, 0u
+        %x_47:f32 = let %14
+        %16:i32 = call %tint_f32_to_i32, %x_47
+        %18:bool = gte %x_45, %16
+        if %18 [t: $B5] {  # if_1
+          $B5: {  # true
             exit_loop  # loop_1
           }
         }
-        %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_53:f32 = load_vector_element %16, 1u
-        %18:bool = gt 0.0f, %x_53
-        if %18 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %19:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %20:f32 = load_vector_element %19, 1u
+        %x_53:f32 = let %20
+        %22:bool = gt 0.0f, %x_53
+        if %22 [t: $B6] {  # if_2
+          $B6: {  # true
             store %GLF_dead5cols, 2i
-            loop [b: %b7, c: %b8] {  # loop_2
-              %b7 = block {  # body
-                %x_61:i32 = load %GLF_dead5cols
-                %20:bool = lte %x_61, 4i
-                if %20 [t: %b9, f: %b10] {  # if_3
-                  %b9 = block {  # true
+            loop [b: $B7, c: $B8] {  # loop_2
+              $B7: {  # body
+                %23:i32 = load %GLF_dead5cols
+                %x_61:i32 = let %23
+                %25:bool = lte %x_61, 4i
+                if %25 [t: $B9, f: $B10] {  # if_3
+                  $B9: {  # true
                     exit_if  # if_3
                   }
-                  %b10 = block {  # false
+                  $B10: {  # false
                     exit_loop  # loop_2
                   }
                 }
                 store %GLF_dead5rows, 2i
-                loop [b: %b11, c: %b12] {  # loop_3
-                  %b11 = block {  # body
-                    %x_68:i32 = load %GLF_dead5rows
-                    %22:bool = lte %x_68, 4i
-                    if %22 [t: %b13, f: %b14] {  # if_4
-                      %b13 = block {  # true
+                loop [b: $B11, c: $B12] {  # loop_3
+                  $B11: {  # body
+                    %26:i32 = load %GLF_dead5rows
+                    %x_68:i32 = let %26
+                    %28:bool = lte %x_68, 4i
+                    if %28 [t: $B13, f: $B14] {  # if_4
+                      $B13: {  # true
                         exit_if  # if_4
                       }
-                      %b14 = block {  # false
+                      $B14: {  # false
                         exit_loop  # loop_3
                       }
                     }
                     store %GLF_dead5c, 0i
-                    loop [b: %b15, c: %b16] {  # loop_4
-                      %b15 = block {  # body
-                        %x_75:i32 = load %GLF_dead5c
-                        %x_76:i32 = load %GLF_dead5cols
-                        %25:bool = lt %x_75, %x_76
-                        if %25 [t: %b17, f: %b18] {  # if_5
-                          %b17 = block {  # true
+                    loop [b: $B15, c: $B16] {  # loop_4
+                      $B15: {  # body
+                        %29:i32 = load %GLF_dead5c
+                        %x_75:i32 = let %29
+                        %31:i32 = load %GLF_dead5cols
+                        %x_76:i32 = let %31
+                        %33:bool = lt %x_75, %x_76
+                        if %33 [t: $B17, f: $B18] {  # if_5
+                          $B17: {  # true
                             exit_if  # if_5
                           }
-                          %b18 = block {  # false
+                          $B18: {  # false
                             exit_loop  # loop_4
                           }
                         }
                         store %GLF_dead5r, 0i
-                        loop [b: %b19, c: %b20] {  # loop_5
-                          %b19 = block {  # body
-                            %x_83:i32 = load %GLF_dead5r
-                            %x_84:i32 = load %GLF_dead5rows
-                            %28:bool = lt %x_83, %x_84
-                            if %28 [t: %b21, f: %b22] {  # if_6
-                              %b21 = block {  # true
+                        loop [b: $B19, c: $B20] {  # loop_5
+                          $B19: {  # body
+                            %34:i32 = load %GLF_dead5r
+                            %x_83:i32 = let %34
+                            %36:i32 = load %GLF_dead5rows
+                            %x_84:i32 = let %36
+                            %38:bool = lt %x_83, %x_84
+                            if %38 [t: $B21, f: $B22] {  # if_6
+                              $B21: {  # true
                                 exit_if  # if_6
                               }
-                              %b22 = block {  # false
+                              $B22: {  # false
                                 exit_loop  # loop_5
                               }
                             }
-                            %x_87:i32 = load %msb10
-                            switch %x_87 [c: (1i 8i, %b23), c: (default, %b24)] {  # switch_1
-                              %b23 = block {  # case
-                                %x_90:i32 = load %msb10
-                                %x_92:i32 = load %msb10
-                                %x_95:i32 = load %msb10
-                                %33:bool = gte %x_90, 0i
-                                %34:bool = lt %x_92, 9i
-                                %35:bool = and %33, %34
-                                %x_96:i32 = select 0i, %x_95, %35
-                                %37:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
-                                %x_98:f32 = load %37
-                                %39:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
-                                %40:f32 = add %x_98, 1.0f
-                                store %39, %40
+                            %39:i32 = load %msb10
+                            %x_87:i32 = let %39
+                            switch %x_87 [c: (1i 8i, $B23), c: (default, $B24)] {  # switch_1
+                              $B23: {  # case
+                                %41:i32 = load %msb10
+                                %x_90:i32 = let %41
+                                %43:i32 = load %msb10
+                                %x_92:i32 = let %43
+                                %45:i32 = load %msb10
+                                %x_95:i32 = let %45
+                                %47:bool = gte %x_90, 0i
+                                %48:bool = lt %x_92, 9i
+                                %49:bool = and %47, %48
+                                %50:i32 = select 0i, %x_95, %49
+                                %x_96:i32 = let %50
+                                %52:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
+                                %53:f32 = load %52
+                                %x_98:f32 = let %53
+                                %55:ptr<function, f32, read_write> = access %donor_replacementGLF_dead5sums, %x_96
+                                %56:f32 = add %x_98, 1.0f
+                                store %55, %56
                                 exit_switch  # switch_1
                               }
-                              %b24 = block {  # case
+                              $B24: {  # case
                                 exit_switch  # switch_1
                               }
                             }
-                            continue %b20
+                            continue  # -> $B20
                           }
-                          %b20 = block {  # continuing
-                            %x_101:i32 = load %GLF_dead5r
-                            %42:i32 = add %x_101, 1i
-                            store %GLF_dead5r, %42
-                            next_iteration %b19
+                          $B20: {  # continuing
+                            %57:i32 = load %GLF_dead5r
+                            %x_101:i32 = let %57
+                            %59:i32 = add %x_101, 1i
+                            store %GLF_dead5r, %59
+                            next_iteration  # -> $B19
                           }
                         }
-                        continue %b16
+                        continue  # -> $B16
                       }
-                      %b16 = block {  # continuing
-                        %x_103:i32 = load %GLF_dead5c
-                        %44:i32 = add %x_103, 1i
-                        store %GLF_dead5c, %44
-                        next_iteration %b15
+                      $B16: {  # continuing
+                        %60:i32 = load %GLF_dead5c
+                        %x_103:i32 = let %60
+                        %62:i32 = add %x_103, 1i
+                        store %GLF_dead5c, %62
+                        next_iteration  # -> $B15
                       }
                     }
-                    %x_105:i32 = load %msb10
-                    %46:i32 = add %x_105, 1i
-                    store %msb10, %46
-                    continue %b12
+                    %63:i32 = load %msb10
+                    %x_105:i32 = let %63
+                    %65:i32 = add %x_105, 1i
+                    store %msb10, %65
+                    continue  # -> $B12
                   }
-                  %b12 = block {  # continuing
-                    %x_107:i32 = load %GLF_dead5rows
-                    %48:i32 = add %x_107, 1i
-                    store %GLF_dead5rows, %48
-                    next_iteration %b11
+                  $B12: {  # continuing
+                    %66:i32 = load %GLF_dead5rows
+                    %x_107:i32 = let %66
+                    %68:i32 = add %x_107, 1i
+                    store %GLF_dead5rows, %68
+                    next_iteration  # -> $B11
                   }
                 }
-                continue %b8
+                continue  # -> $B8
               }
-              %b8 = block {  # continuing
-                %x_109:i32 = load %GLF_dead5cols
-                %50:i32 = add %x_109, 1i
-                store %GLF_dead5cols, %50
-                next_iteration %b7
+              $B8: {  # continuing
+                %69:i32 = load %GLF_dead5cols
+                %x_109:i32 = let %69
+                %71:i32 = add %x_109, 1i
+                store %GLF_dead5cols, %71
+                next_iteration  # -> $B7
               }
             }
             exit_if  # if_2
           }
         }
-        %x_111:i32 = load %i
-        %52:i32 = add %x_111, 1i
-        store %i, %52
-        continue %b4
+        %72:i32 = load %i
+        %x_111:i32 = let %72
+        %74:i32 = add %x_111, 1i
+        store %i, %74
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_113:i32 = load %i
-        %54:bool = lt %x_113, 200i
-        %55:bool = eq %54, false
-        break_if %55 %b3
+      $B4: {  # continuing
+        %75:i32 = load %i
+        %x_113:i32 = let %75
+        %77:bool = lt %x_113, 200i
+        %78:bool = eq %77, false
+        break_if %78  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b25 {
-  %b25 = block {
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+%tint_symbol = @fragment func():main_out {
+  $B25: {
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B26: {
+    %84:i32 = convert %value
+    %85:bool = gte %value, -2147483648.0f
+    %86:i32 = select -2147483648i, %84, %85
+    %87:bool = lte %value, 2147483520.0f
+    %88:i32 = select 2147483647i, %86, %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.msl
index e61c68e..e5dbee5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_10:ptr<function, array<i32, 1>, read_write> = var
     %x_9:ptr<function, array<i32, 1>, read_write> = var
     %x_7:ptr<function, i32, read_write> = var
@@ -28,15 +28,15 @@
     %12:ptr<function, i32, read_write> = access %x_9, 0i
     %13:i32 = load %12
     store %x_7, %13
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_GLF_color, vec4<f32>(0.0f)
         %14:ptr<function, i32, read_write> = access %x_10, 0i
         %15:i32 = load %14
         %16:i32 = load %x_7
         %17:bool = eq %15, %16
-        if %17 [t: %b4] {  # if_1
-          %b4 = block {  # true
+        if %17 [t: $B4] {  # if_1
+          $B4: {  # true
             store %x_11, 1i
             exit_switch  # switch_1
           }
@@ -47,12 +47,12 @@
     }
     %18:i32 = load %x_11
     %19:bool = eq %18, 1i
-    if %19 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    if %19 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -60,8 +60,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func():main_out {
+  $B7: {
     %21:void = call %main_1
     %22:vec4<f32> = load %x_GLF_color
     %23:main_out = construct %22
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.msl
index 8589cb0..319ffd9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/one-sized-array/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:i32 @offset(0)
 }
 
@@ -8,36 +8,39 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_10:ptr<function, array<i32, 1>, read_write> = var
     %x_9:ptr<function, array<i32, 1>, read_write> = var
     %x_7:ptr<function, i32, read_write> = var
     %x_11_phi:ptr<function, i32, read_write> = var
     %8:ptr<uniform, i32, read> = access %x_5, 0u
-    %x_6:i32 = load %8
-    %10:ptr<function, i32, read_write> = access %x_9, 0i
-    store %10, %x_6
-    %x_37:array<i32, 1> = load %x_9
+    %9:i32 = load %8
+    %x_6:i32 = let %9
+    %11:ptr<function, i32, read_write> = access %x_9, 0i
+    store %11, %x_6
+    %12:array<i32, 1> = load %x_9
+    %x_37:array<i32, 1> = let %12
     store %x_10, %x_37
-    %12:ptr<function, i32, read_write> = access %x_9, 0i
-    %13:i32 = load %12
-    store %x_7, %13
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %14:ptr<function, i32, read_write> = access %x_9, 0i
+    %15:i32 = load %14
+    store %x_7, %15
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_GLF_color, vec4<f32>(0.0f)
-        %14:ptr<function, i32, read_write> = access %x_10, 0i
-        %x_8:i32 = load %14
-        %16:i32 = load %x_7
-        %17:i32 = bitcast %16
-        %18:bool = eq %x_8, %17
-        if %18 [t: %b4] {  # if_1
-          %b4 = block {  # true
+        %16:ptr<function, i32, read_write> = access %x_10, 0i
+        %17:i32 = load %16
+        %x_8:i32 = let %17
+        %19:i32 = load %x_7
+        %20:i32 = bitcast %19
+        %21:bool = eq %x_8, %20
+        if %21 [t: $B4] {  # if_1
+          $B4: {  # true
             store %x_11_phi, 1i
             exit_switch  # switch_1
           }
@@ -46,14 +49,15 @@
         exit_switch  # switch_1
       }
     }
-    %x_11:i32 = load %x_11_phi
-    %20:bool = eq %x_11, 1i
-    if %20 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %22:i32 = load %x_11_phi
+    %x_11:i32 = let %22
+    %24:bool = eq %x_11, 1i
+    if %24 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(0.0f)
         exit_if  # if_2
       }
@@ -61,12 +65,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %22:void = call %main_1
-    %23:vec4<f32> = load %x_GLF_color
-    %24:main_out = construct %23
-    ret %24
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %26:void = call %main_1
+    %27:vec4<f32> = load %x_GLF_color
+    %28:main_out = construct %27
+    ret %28
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.msl
index 1a1c2a3..607fd59 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, bool, read_write> = var
     %x_47:ptr<function, f32, read_write> = var
     %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
@@ -23,24 +23,24 @@
     %9:bool = gt %8, 1.0f
     store %x_30, %9
     %10:bool = load %x_30
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            loop [b: %b6, c: %b7] {  # loop_2
-              %b6 = block {  # body
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4] {  # loop_1
+          $B4: {  # body
+            loop [b: $B5, c: $B6] {  # loop_2
+              $B5: {  # body
                 %11:f32 = load_vector_element %gl_FragCoord, 0u
                 %12:bool = lt %11, 0.0f
-                if %12 [t: %b8] {  # if_2
-                  %b8 = block {  # true
+                if %12 [t: $B7] {  # if_2
+                  $B7: {  # true
                     %13:bool = load %x_30
-                    if %13 [t: %b9, f: %b10] {  # if_3
-                      %b9 = block {  # true
+                    if %13 [t: $B8, f: $B9] {  # if_3
+                      $B8: {  # true
                         store %x_47, 1.0f
                         exit_loop  # loop_2
                       }
-                      %b10 = block {  # false
-                        continue %b7
+                      $B9: {  # false
+                        continue  # -> $B6
                       }
                     }
                     exit_if  # if_2
@@ -49,15 +49,12 @@
                 store %x_47, 0.0f
                 exit_loop  # loop_2
               }
-              %b7 = block {  # continuing
-                next_iteration %b6
+              $B6: {  # continuing
+                next_iteration  # -> $B5
               }
             }
             exit_loop  # loop_1
           }
-          %b5 = block {  # continuing
-            next_iteration %b4
-          }
         }
         %x_48_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
         %15:f32 = load %x_47
@@ -71,8 +68,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
     %19:void = call %main_1
     %20:vec4<f32> = load %x_GLF_color
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.msl
index b4cb2e1..8b81bb1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/return-float-from-while-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,40 +8,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, bool, read_write> = var
     %x_47:ptr<function, f32, read_write> = var
     %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_29:f32 = load_vector_element %7, 0u
-    %9:bool = gt %x_29, 1.0f
-    store %x_30, %9
-    %10:bool = load %x_30
-    if %10 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %8:f32 = load_vector_element %7, 0u
+    %x_29:f32 = let %8
+    %10:bool = gt %x_29, 1.0f
+    store %x_30, %10
+    %11:bool = load %x_30
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4] {  # loop_1
+          $B4: {  # body
             %x_47_phi:ptr<function, f32, read_write> = var
-            loop [b: %b6, c: %b7] {  # loop_2
-              %b6 = block {  # body
-                %x_41:f32 = load_vector_element %gl_FragCoord, 0u
-                %13:bool = lt %x_41, 0.0f
-                if %13 [t: %b8] {  # if_2
-                  %b8 = block {  # true
-                    %14:bool = load %x_30
-                    if %14 [t: %b9, f: %b10] {  # if_3
-                      %b9 = block {  # true
+            loop [b: $B5, c: $B6] {  # loop_2
+              $B5: {  # body
+                %13:f32 = load_vector_element %gl_FragCoord, 0u
+                %x_41:f32 = let %13
+                %15:bool = lt %x_41, 0.0f
+                if %15 [t: $B7] {  # if_2
+                  $B7: {  # true
+                    %16:bool = load %x_30
+                    if %16 [t: $B8, f: $B9] {  # if_3
+                      $B8: {  # true
                         store %x_47_phi, 1.0f
                         exit_loop  # loop_2
                       }
-                      %b10 = block {  # false
-                        continue %b7
+                      $B9: {  # false
+                        continue  # -> $B6
                       }
                     }
                     exit_if  # if_2
@@ -50,22 +52,20 @@
                 store %x_47_phi, 0.0f
                 exit_loop  # loop_2
               }
-              %b7 = block {  # continuing
-                next_iteration %b6
+              $B6: {  # continuing
+                next_iteration  # -> $B5
               }
             }
-            %15:f32 = load %x_47_phi
-            store %x_47, %15
+            %17:f32 = load %x_47_phi
+            store %x_47, %17
             exit_loop  # loop_1
           }
-          %b5 = block {  # continuing
-            next_iteration %b4
-          }
         }
         %x_48_1:ptr<function, vec4<f32>, read_write> = var, vec4<f32>(0.0f)
-        %17:f32 = load %x_47
-        store_vector_element %x_48_1, 1u, %17
-        %x_48:vec4<f32> = load %x_48_1
+        %19:f32 = load %x_47
+        store_vector_element %x_48_1, 1u, %19
+        %20:vec4<f32> = load %x_48_1
+        %x_48:vec4<f32> = let %20
         store %x_GLF_color, %x_48
         exit_if  # if_1
       }
@@ -74,13 +74,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %21:void = call %main_1
-    %22:vec4<f32> = load %x_GLF_color
-    %23:main_out = construct %22
-    ret %23
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.msl
index efdd3b1..6891922 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,97 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%f_ = func():f32 {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %4:i32 = load %i
+        %5:bool = lt %4, 10i
+        if %5 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %6:i32 = load %i
+        %7:f32 = convert %6
+        %8:bool = gte %7, 1.0f
+        if %8 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            ret 1.0f
+          }
+          $B8: {  # false
+            continue  # -> $B4
+          }
+        }
+        unreachable
+      }
+      $B4: {  # continuing
+        %9:i32 = load %i
+        %10:i32 = add %9, 1i
+        store %i, %10
+        next_iteration  # -> $B3
+      }
+    }
+    ret 1.0f
+  }
+}
+%main_1 = func():void {
+  $B9: {
+    %c:ptr<function, vec4<f32>, read_write> = var
+    %i_1:ptr<function, i32, read_write> = var
+    store %c, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %i_1, 0i
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %14:i32 = load %i_1
+        %15:bool = lt %14, 1i
+        if %15 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
+            exit_if  # if_3
+          }
+          $B13: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        continue  # -> $B11
+      }
+      $B11: {  # continuing
+        %16:f32 = call %f_
+        %x_39:f32 = let %16
+        store_vector_element %c, 0u, %x_39
+        %18:i32 = load %i_1
+        %19:i32 = add %18, 1i
+        store %i_1, %19
+        next_iteration  # -> $B10
+      }
+    }
+    %20:vec4<f32> = load %c
+    store %x_GLF_color, %20
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %22:void = call %main_1
+    %23:vec4<f32> = load %x_GLF_color
+    %24:main_out = construct %23
+    ret %24
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.msl
index efdd3b1..5f88afb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/return-in-loop-in-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,103 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%f_ = func():f32 {
+  $B2: {
+    %i:ptr<function, i32, read_write> = var
+    store %i, 1i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %4:i32 = load %i
+        %x_8:i32 = let %4
+        %6:bool = lt %x_8, 10i
+        if %6 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %7:i32 = load %i
+        %x_9:i32 = let %7
+        %9:f32 = convert %x_9
+        %10:bool = gte %9, 1.0f
+        if %10 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            ret 1.0f
+          }
+          $B8: {  # false
+            continue  # -> $B4
+          }
+        }
+        unreachable
+      }
+      $B4: {  # continuing
+        %11:i32 = load %i
+        %x_10:i32 = let %11
+        %13:i32 = add %x_10, 1i
+        store %i, %13
+        next_iteration  # -> $B3
+      }
+    }
+    ret 1.0f
+  }
+}
+%main_1 = func():void {
+  $B9: {
+    %c:ptr<function, vec4<f32>, read_write> = var
+    %i_1:ptr<function, i32, read_write> = var
+    store %c, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %i_1, 0i
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %17:i32 = load %i_1
+        %x_12:i32 = let %17
+        %19:bool = lt %x_12, 1i
+        if %19 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
+            exit_if  # if_3
+          }
+          $B13: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        continue  # -> $B11
+      }
+      $B11: {  # continuing
+        %20:f32 = call %f_
+        %x_39:f32 = let %20
+        store_vector_element %c, 0u, %x_39
+        %22:i32 = load %i_1
+        %x_13:i32 = let %22
+        %24:i32 = add %x_13, 1i
+        store %i_1, %24
+        next_iteration  # -> $B10
+      }
+    }
+    %25:vec4<f32> = load %c
+    %x_41:vec4<f32> = let %25
+    store %x_GLF_color, %x_41
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B14: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.msl
index efdd3b1..cc352a9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.spvasm.expected.ir.msl
@@ -1,6 +1,147 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_36:ptr<function, bool, read_write> = var, false
+    %x_37:ptr<function, vec3<f32>, read_write> = var
+    %x_6:ptr<function, i32, read_write> = var
+    %x_38:ptr<function, vec3<f32>, read_write> = var
+    %x_40:ptr<function, bool, read_write> = var
+    %x_51:ptr<function, vec3<f32>, read_write> = var
+    %x_54:ptr<function, vec3<f32>, read_write> = var
+    %x_55:ptr<function, vec3<f32>, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %x_36, false
+    store %x_40, false
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %x_45:ptr<function, bool, read_write> = var
+        %x_7:ptr<function, i32, read_write> = var
+        %x_52:ptr<function, bool, read_write> = var
+        store %x_6, 0i
+        %14:bool = load %x_40
+        store %x_45, %14
+        store %x_7, 0i
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
+            store %x_51, vec3<f32>(0.0f)
+            %15:bool = load %x_45
+            store %x_52, %15
+            %16:i32 = load %x_7
+            %17:bool = lt %16, 0i
+            if %17 [t: $B5, f: $B6] {  # if_1
+              $B5: {  # true
+                exit_if  # if_1
+              }
+              $B6: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            store %x_36, true
+            store %x_37, vec3<f32>(1.0f)
+            store %x_51, vec3<f32>(1.0f)
+            store %x_52, true
+            exit_loop  # loop_2
+          }
+        }
+        %18:vec3<f32> = load %x_51
+        store %x_55, %18
+        %19:bool = load %x_52
+        if %19 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store %x_54, vec3<f32>(0.0f)
+        store %x_36, true
+        %20:vec3<f32> = load %x_54
+        store %x_55, %20
+        exit_loop  # loop_1
+      }
+    }
+    %21:vec3<f32> = load %x_55
+    store %x_38, %21
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+%GLF_live4drawShape_ = func():vec3<f32> {
+  $B9: {
+    %x_57:ptr<function, bool, read_write> = var, false
+    %x_58:ptr<function, vec3<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %x_60:ptr<function, bool, read_write> = var
+    %x_71:ptr<function, vec3<f32>, read_write> = var
+    %x_74:ptr<function, vec3<f32>, read_write> = var
+    %x_75:ptr<function, vec3<f32>, read_write> = var
+    store %x_60, false
+    loop [b: $B10] {  # loop_3
+      $B10: {  # body
+        %x_65:ptr<function, bool, read_write> = var
+        %x_8:ptr<function, i32, read_write> = var
+        %x_72:ptr<function, bool, read_write> = var
+        store %i, 0i
+        %37:bool = load %x_60
+        store %x_65, %37
+        store %x_8, 0i
+        loop [b: $B11] {  # loop_4
+          $B11: {  # body
+            store %x_71, vec3<f32>(0.0f)
+            %38:bool = load %x_65
+            store %x_72, %38
+            %39:i32 = load %x_8
+            %40:bool = lt %39, 0i
+            if %40 [t: $B12, f: $B13] {  # if_3
+              $B12: {  # true
+                exit_if  # if_3
+              }
+              $B13: {  # false
+                exit_loop  # loop_4
+              }
+            }
+            store %x_57, true
+            store %x_58, vec3<f32>(1.0f)
+            store %x_71, vec3<f32>(1.0f)
+            store %x_72, true
+            exit_loop  # loop_4
+          }
+        }
+        %41:vec3<f32> = load %x_71
+        store %x_75, %41
+        %42:bool = load %x_72
+        if %42 [t: $B14] {  # if_4
+          $B14: {  # true
+            exit_loop  # loop_3
+          }
+        }
+        store %x_74, vec3<f32>(0.0f)
+        store %x_57, true
+        %43:vec3<f32> = load %x_74
+        store %x_75, %43
+        exit_loop  # loop_3
+      }
+    }
+    %44:vec3<f32> = load %x_75
+    ret %44
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.msl
index efdd3b1..58fb21b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/return-inside-loop-in-function/0.wgsl.expected.ir.msl
@@ -1,6 +1,167 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_36:ptr<function, bool, read_write> = var, false
+    %x_37:ptr<function, vec3<f32>, read_write> = var
+    %x_6:ptr<function, i32, read_write> = var
+    %x_38:ptr<function, vec3<f32>, read_write> = var
+    %x_51:ptr<function, vec3<f32>, read_write> = var
+    %x_54:ptr<function, vec3<f32>, read_write> = var
+    %x_40_phi:ptr<function, bool, read_write> = var
+    %x_55_phi:ptr<function, vec3<f32>, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %x_36, false
+    store %x_40_phi, false
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %x_45:ptr<function, bool, read_write> = var
+        %x_45_phi:ptr<function, bool, read_write> = var
+        %x_7_phi:ptr<function, i32, read_write> = var
+        %x_51_phi:ptr<function, vec3<f32>, read_write> = var
+        %x_52_phi:ptr<function, bool, read_write> = var
+        %16:bool = load %x_40_phi
+        %x_40:bool = let %16
+        store %x_6, 0i
+        store %x_45_phi, %x_40
+        store %x_7_phi, 0i
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
+            %18:bool = load %x_45_phi
+            store %x_45, %18
+            %19:i32 = load %x_7_phi
+            %x_7:i32 = let %19
+            store %x_51_phi, vec3<f32>(0.0f)
+            %21:bool = load %x_45
+            store %x_52_phi, %21
+            %22:bool = lt %x_7, 0i
+            if %22 [t: $B5, f: $B6] {  # if_1
+              $B5: {  # true
+                exit_if  # if_1
+              }
+              $B6: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            store %x_36, true
+            store %x_37, vec3<f32>(1.0f)
+            store %x_51_phi, vec3<f32>(1.0f)
+            store %x_52_phi, true
+            exit_loop  # loop_2
+          }
+        }
+        %23:vec3<f32> = load %x_51_phi
+        store %x_51, %23
+        %24:bool = load %x_52_phi
+        %x_52:bool = let %24
+        %26:vec3<f32> = load %x_51
+        store %x_55_phi, %26
+        if %x_52 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store %x_54, vec3<f32>(0.0f)
+        store %x_36, true
+        %27:vec3<f32> = load %x_54
+        store %x_55_phi, %27
+        exit_loop  # loop_1
+      }
+    }
+    %28:vec3<f32> = load %x_55_phi
+    %x_55:vec3<f32> = let %28
+    store %x_38, %x_55
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+%GLF_live4drawShape_ = func():vec3<f32> {
+  $B9: {
+    %x_57:ptr<function, bool, read_write> = var, false
+    %x_58:ptr<function, vec3<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %x_71:ptr<function, vec3<f32>, read_write> = var
+    %x_74:ptr<function, vec3<f32>, read_write> = var
+    %x_60_phi:ptr<function, bool, read_write> = var
+    %x_75_phi:ptr<function, vec3<f32>, read_write> = var
+    store %x_60_phi, false
+    loop [b: $B10] {  # loop_3
+      $B10: {  # body
+        %x_65:ptr<function, bool, read_write> = var
+        %x_65_phi:ptr<function, bool, read_write> = var
+        %x_8_phi:ptr<function, i32, read_write> = var
+        %x_71_phi:ptr<function, vec3<f32>, read_write> = var
+        %x_72_phi:ptr<function, bool, read_write> = var
+        %47:bool = load %x_60_phi
+        %x_60:bool = let %47
+        store %i, 0i
+        store %x_65_phi, %x_60
+        store %x_8_phi, 0i
+        loop [b: $B11] {  # loop_4
+          $B11: {  # body
+            %49:bool = load %x_65_phi
+            store %x_65, %49
+            %50:i32 = load %x_8_phi
+            %x_8:i32 = let %50
+            store %x_71_phi, vec3<f32>(0.0f)
+            %52:bool = load %x_65
+            store %x_72_phi, %52
+            %53:bool = lt %x_8, 0i
+            if %53 [t: $B12, f: $B13] {  # if_3
+              $B12: {  # true
+                exit_if  # if_3
+              }
+              $B13: {  # false
+                exit_loop  # loop_4
+              }
+            }
+            store %x_57, true
+            store %x_58, vec3<f32>(1.0f)
+            store %x_71_phi, vec3<f32>(1.0f)
+            store %x_72_phi, true
+            exit_loop  # loop_4
+          }
+        }
+        %54:vec3<f32> = load %x_71_phi
+        store %x_71, %54
+        %55:bool = load %x_72_phi
+        %x_72:bool = let %55
+        %57:vec3<f32> = load %x_71
+        store %x_75_phi, %57
+        if %x_72 [t: $B14] {  # if_4
+          $B14: {  # true
+            exit_loop  # loop_3
+          }
+        }
+        store %x_74, vec3<f32>(0.0f)
+        store %x_57, true
+        %58:vec3<f32> = load %x_74
+        store %x_75_phi, %58
+        exit_loop  # loop_3
+      }
+    }
+    %59:vec3<f32> = load %x_75_phi
+    %x_75:vec3<f32> = let %59
+    ret %x_75
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.msl
index ad0b846..cd5a7a2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, bool, read_write> = var, false
     %x_37:ptr<function, bool, read_write> = var
     %x_7:ptr<function, i32, read_write> = var
@@ -26,47 +26,48 @@
     %x_56:ptr<function, bool, read_write> = var
     store %x_40, false
     store %x_42, vec3<f32>(0.0f)
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %13:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_47:f32 = load_vector_element %13, 1u
-        %15:vec3<f32> = load %x_42
-        store %x_43, %15
-        %16:bool = lt %x_47, 0.0f
-        if %16 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %14:f32 = load_vector_element %13, 1u
+        %x_47:f32 = let %14
+        %16:vec3<f32> = load %x_42
+        store %x_43, %16
+        %17:bool = lt %x_47, 0.0f
+        if %17 [t: $B5] {  # if_1
+          $B5: {  # true
             store %color, vec3<f32>(1.0f)
             store %x_43, vec3<f32>(1.0f)
             exit_if  # if_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %17:bool = load %x_40
-        store %x_40, %17
-        %18:vec3<f32> = load %x_43
-        store %x_42, %18
-        break_if true %b3
+      $B4: {  # continuing
+        %18:bool = load %x_40
+        store %x_40, %18
+        %19:vec3<f32> = load %x_43
+        store %x_42, %19
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_36, false
-    %19:bool = load %x_40
-    store %x_56, %19
-    loop [b: %b6, c: %b7] {  # loop_2
-      %b6 = block {  # body
+    %20:bool = load %x_40
+    store %x_56, %20
+    loop [b: $B6] {  # loop_2
+      $B6: {  # body
         %x_62:ptr<function, bool, read_write> = var
         store %x_7, 0i
-        %21:bool = load %x_56
-        store %x_62, %21
-        loop [b: %b8, c: %b9] {  # loop_3
-          %b8 = block {  # body
+        %22:bool = load %x_56
+        store %x_62, %22
+        loop [b: $B7] {  # loop_3
+          $B7: {  # body
             %x_68:bool = let true
-            if true [t: %b10, f: %b11] {  # if_2
-              %b10 = block {  # true
+            if true [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
                 exit_if  # if_2
               }
-              %b11 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_3
               }
             }
@@ -74,41 +75,33 @@
             store %x_37, true
             exit_loop  # loop_3
           }
-          %b9 = block {  # continuing
-            store %x_62, false
-            next_iteration %b8
-          }
         }
-        if true [t: %b12] {  # if_3
-          %b12 = block {  # true
+        if true [t: $B10] {  # if_3
+          $B10: {  # true
             exit_loop  # loop_2
           }
         }
         store %x_36, true
         exit_loop  # loop_2
       }
-      %b7 = block {  # continuing
-        store %x_56, false
-        next_iteration %b6
-      }
     }
     store %x_38, true
-    %23:f32 = load_vector_element %x_43, 0u
-    %24:f32 = load_vector_element %x_43, 1u
-    %25:f32 = load_vector_element %x_43, 2u
-    %26:vec4<f32> = construct %23, %24, %25, 1.0f
-    %27:vec4<f32> = add %26, vec4<f32>(1.0f)
-    store %x_GLF_color, %27
+    %24:f32 = load_vector_element %x_43, 0u
+    %25:f32 = load_vector_element %x_43, 1u
+    %26:f32 = load_vector_element %x_43, 2u
+    %27:vec4<f32> = construct %24, %25, %26, 1.0f
+    %28:vec4<f32> = add %27, vec4<f32>(1.0f)
+    store %x_GLF_color, %28
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %29:void = call %main_1
-    %30:vec4<f32> = load %x_GLF_color
-    %31:main_out = construct %30
-    ret %31
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %30:void = call %main_1
+    %31:vec4<f32> = load %x_GLF_color
+    %32:main_out = construct %31
+    ret %32
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.msl
index 032ef39..5960fc9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/returned-boolean-in-vector/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_36:ptr<function, bool, read_write> = var, false
     %x_37:ptr<function, bool, read_write> = var
     %x_7:ptr<function, i32, read_write> = var
@@ -28,68 +28,74 @@
     %x_58_phi:ptr<function, bool, read_write> = var
     store %x_40_phi, false
     store %x_42_phi, vec3<f32>(0.0f)
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_43_phi:ptr<function, vec3<f32>, read_write> = var
         %16:bool = load %x_40_phi
         store %x_40, %16
-        %x_42:vec3<f32> = load %x_42_phi
-        %18:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_47:f32 = load_vector_element %18, 1u
+        %17:vec3<f32> = load %x_42_phi
+        %x_42:vec3<f32> = let %17
+        %19:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %20:f32 = load_vector_element %19, 1u
+        %x_47:f32 = let %20
         store %x_43_phi, %x_42
-        %20:bool = lt %x_47, 0.0f
-        if %20 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        %22:bool = lt %x_47, 0.0f
+        if %22 [t: $B5] {  # if_1
+          $B5: {  # true
             store %color, vec3<f32>(1.0f)
             store %x_43_phi, vec3<f32>(1.0f)
             exit_if  # if_1
           }
         }
-        %21:vec3<f32> = load %x_43_phi
-        store %x_43, %21
-        continue %b4
+        %23:vec3<f32> = load %x_43_phi
+        store %x_43, %23
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %22:bool = load %x_40
-        store %x_40_phi, %22
-        %23:vec3<f32> = load %x_43
-        store %x_42_phi, %23
-        break_if true %b3
+      $B4: {  # continuing
+        %24:bool = load %x_40
+        store %x_40_phi, %24
+        %25:vec3<f32> = load %x_43
+        store %x_42_phi, %25
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_36, false
-    %24:bool = load %x_40
-    store %x_56_phi, %24
+    %26:bool = load %x_40
+    store %x_56_phi, %26
     store %x_58_phi, false
-    loop [b: %b6, c: %b7] {  # loop_2
-      %b6 = block {  # body
+    loop [b: $B6] {  # loop_2
+      $B6: {  # body
         %x_62:ptr<function, bool, read_write> = var
         %x_62_phi:ptr<function, bool, read_write> = var
         %x_64_phi:ptr<function, bool, read_write> = var
         %x_65_phi:ptr<function, i32, read_write> = var
         %x_70_phi:ptr<function, bool, read_write> = var
         %x_71_phi:ptr<function, bool, read_write> = var
-        %x_56:bool = load %x_56_phi
-        %x_58:bool = load %x_58_phi
+        %33:bool = load %x_56_phi
+        %x_56:bool = let %33
+        %35:bool = load %x_58_phi
+        %x_58:bool = let %35
         store %x_7, 0i
         store %x_62_phi, %x_56
         store %x_64_phi, false
         store %x_65_phi, 0i
-        loop [b: %b8, c: %b9] {  # loop_3
-          %b8 = block {  # body
-            %33:bool = load %x_62_phi
-            store %x_62, %33
-            %x_64:bool = load %x_64_phi
-            %x_65:i32 = load %x_65_phi
+        loop [b: $B7] {  # loop_3
+          $B7: {  # body
+            %37:bool = load %x_62_phi
+            store %x_62, %37
+            %38:bool = load %x_64_phi
+            %x_64:bool = let %38
+            %40:i32 = load %x_65_phi
+            %x_65:i32 = let %40
             %x_68:bool = let true
-            %37:bool = load %x_62
-            store %x_70_phi, %37
+            %43:bool = load %x_62
+            store %x_70_phi, %43
             store %x_71_phi, false
-            if true [t: %b10, f: %b11] {  # if_2
-              %b10 = block {  # true
+            if true [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
                 exit_if  # if_2
               }
-              %b11 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_3
               }
             }
@@ -99,48 +105,40 @@
             store %x_71_phi, true
             exit_loop  # loop_3
           }
-          %b9 = block {  # continuing
-            store %x_62_phi, false
-            store %x_64_phi, false
-            store %x_65_phi, 0i
-            next_iteration %b8
-          }
         }
-        %x_70:bool = load %x_70_phi
-        %x_71:bool = load %x_71_phi
-        if true [t: %b12] {  # if_3
-          %b12 = block {  # true
+        %44:bool = load %x_70_phi
+        %x_70:bool = let %44
+        %46:bool = load %x_71_phi
+        %x_71:bool = let %46
+        if true [t: $B10] {  # if_3
+          $B10: {  # true
             exit_loop  # loop_2
           }
         }
         store %x_36, true
         exit_loop  # loop_2
       }
-      %b7 = block {  # continuing
-        store %x_56_phi, false
-        store %x_58_phi, false
-        next_iteration %b6
-      }
     }
     store %x_38, true
     %x_73:f32 = let 1.0f
-    %41:f32 = load_vector_element %x_43, 0u
-    %42:f32 = load_vector_element %x_43, 1u
-    %43:f32 = load_vector_element %x_43, 2u
-    %44:vec4<f32> = construct %41, %42, %43, 1.0f
-    %45:vec4<f32> = construct %x_73, %x_73, %x_73, %x_73
-    %46:vec4<f32> = add %44, %45
-    store %x_GLF_color, %46
+    %49:f32 = load_vector_element %x_43, 0u
+    %50:f32 = load_vector_element %x_43, 1u
+    %51:f32 = load_vector_element %x_43, 2u
+    %52:vec4<f32> = construct %49, %50, %51, 1.0f
+    %53:vec4<f32> = let %52
+    %54:vec4<f32> = construct %x_73, %x_73, %x_73, %x_73
+    %55:vec4<f32> = add %53, %54
+    store %x_GLF_color, %55
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_color
-    %50:main_out = construct %49
-    ret %50
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %57:void = call %main_1
+    %58:vec4<f32> = load %x_GLF_color
+    %59:main_out = construct %58
+    ret %59
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.msl
index 92e2acf..d3470fa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,149 +8,161 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%main_1 = func():void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_38:ptr<function, bool, read_write> = var
         %x_41:ptr<function, vec4<f32>, read_write> = var
         %x_42:ptr<function, vec4<f32>, read_write> = var
         %x_39:ptr<function, bool, read_write> = var
         %9:f32 = load_vector_element %gl_FragCoord, 0u
         %10:f32 = clamp %9, 0.0f, 1.0f
-        %x_34:i32 = convert %10
+        %11:i32 = call %tint_f32_to_i32, %10
+        %x_34:i32 = let %11
         store %x_GLF_color, vec4<f32>(0.0f)
         store %x_38, false
         store %x_41, vec4<f32>(0.0f)
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %x_47:ptr<function, i32, read_write> = var
-            %13:vec4<f32> = load %x_41
-            store %x_42, %13
+            %15:vec4<f32> = load %x_41
+            store %x_42, %15
             store %x_47, 0i
-            loop [b: %b7, c: %b8] {  # loop_3
-              %b7 = block {  # body
+            loop [b: $B6, c: $B7] {  # loop_3
+              $B6: {  # body
                 %x_45:ptr<function, vec4<f32>, read_write> = var
                 %x_48:ptr<function, i32, read_write> = var
-                %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_50:f32 = load_vector_element %16, 1u
-                %18:bool = load %x_38
-                store %x_39, %18
-                %19:i32 = load %x_47
-                %20:i32 = convert %x_50
-                %21:i32 = add %x_34, %20
-                %22:bool = lt %19, %21
-                if %22 [t: %b9, f: %b10] {  # if_1
-                  %b9 = block {  # true
+                %18:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %19:f32 = load_vector_element %18, 1u
+                %x_50:f32 = let %19
+                %21:bool = load %x_38
+                store %x_39, %21
+                %22:i32 = load %x_47
+                %23:i32 = let %22
+                %24:i32 = call %tint_f32_to_i32, %x_50
+                %25:i32 = add %x_34, %24
+                %26:bool = lt %23, %25
+                if %26 [t: $B8, f: $B9] {  # if_1
+                  $B8: {  # true
                     exit_if  # if_1
                   }
-                  %b10 = block {  # false
+                  $B9: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %x_66:ptr<function, vec4<f32>, read_write> = var
                 %x_70:ptr<function, vec4<f32>, read_write> = var
-                %25:bool = lt %x_34, 0i
-                if %25 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %29:bool = lt %x_34, 0i
+                if %29 [t: $B10, f: $B11] {  # if_2
+                  $B10: {  # true
                     store %x_39, true
                     exit_loop  # loop_3
                   }
-                  %b12 = block {  # false
-                    %26:bool = eq %x_34, 1i
-                    if %26 [t: %b13, f: %b14] {  # if_3
-                      %b13 = block {  # true
-                        %27:f32 = convert %x_34
-                        %x_65:vec2<f32> = construct %27
-                        %29:f32 = access %x_65, 0u
-                        %30:vec4<f32> = load %x_42
-                        %31:vec2<f32> = swizzle %30, yz
-                        %32:f32 = access %x_65, 1u
-                        %33:vec4<f32> = construct %29, %31, %32
-                        store %x_66, %33
-                        %34:vec4<f32> = load %x_66
-                        store %x_45, %34
+                  $B11: {  # false
+                    %30:bool = eq %x_34, 1i
+                    if %30 [t: $B12, f: $B13] {  # if_3
+                      $B12: {  # true
+                        %31:f32 = convert %x_34
+                        %32:vec2<f32> = construct %31
+                        %x_65:vec2<f32> = let %32
+                        %34:f32 = access %x_65, 0u
+                        %35:vec4<f32> = load %x_42
+                        %36:vec2<f32> = swizzle %35, yz
+                        %37:f32 = access %x_65, 1u
+                        %38:vec4<f32> = construct %34, %36, %37
+                        store %x_66, %38
+                        %39:vec4<f32> = load %x_66
+                        store %x_45, %39
                         exit_if  # if_3
                       }
-                      %b14 = block {  # false
-                        %35:i32 = add %x_34, 1i
-                        %36:f32 = convert %35
-                        %x_69:vec2<f32> = construct %36
-                        %38:f32 = access %x_69, 0u
-                        %39:vec4<f32> = load %x_42
-                        %40:vec2<f32> = swizzle %39, yz
-                        %41:f32 = access %x_69, 1u
-                        %42:vec4<f32> = construct %38, %40, %41
-                        store %x_70, %42
-                        %43:vec4<f32> = load %x_70
-                        store %x_45, %43
+                      $B13: {  # false
+                        %40:i32 = add %x_34, 1i
+                        %41:f32 = convert %40
+                        %42:vec2<f32> = construct %41
+                        %x_69:vec2<f32> = let %42
+                        %44:f32 = access %x_69, 0u
+                        %45:vec4<f32> = load %x_42
+                        %46:vec2<f32> = swizzle %45, yz
+                        %47:f32 = access %x_69, 1u
+                        %48:vec4<f32> = construct %44, %46, %47
+                        store %x_70, %48
+                        %49:vec4<f32> = load %x_70
+                        store %x_45, %49
                         exit_if  # if_3
                       }
                     }
                     exit_if  # if_2
                   }
                 }
-                continue %b8
+                continue  # -> $B7
               }
-              %b8 = block {  # continuing
-                %44:i32 = load %x_47
-                %45:i32 = add %44, 1i
-                store %x_48, %45
-                %46:vec4<f32> = load %x_45
-                store %x_42, %46
-                %47:i32 = load %x_48
-                store %x_47, %47
-                next_iteration %b7
+              $B7: {  # continuing
+                %50:i32 = load %x_47
+                %51:i32 = add %50, 1i
+                store %x_48, %51
+                %52:vec4<f32> = load %x_45
+                store %x_42, %52
+                %53:i32 = load %x_48
+                store %x_47, %53
+                next_iteration  # -> $B6
               }
             }
-            %48:bool = load %x_39
-            if %48 [t: %b15] {  # if_4
-              %b15 = block {  # true
+            %54:bool = load %x_39
+            if %54 [t: $B14] {  # if_4
+              $B14: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
-            %49:bool = load %x_39
-            store %x_38, %49
-            %50:vec4<f32> = load %x_42
-            store %x_41, %50
-            %51:bool = lt %x_34, 0i
-            %52:bool = eq %51, false
-            break_if %52 %b5
+          $B5: {  # continuing
+            %55:bool = load %x_39
+            store %x_38, %55
+            %56:vec4<f32> = load %x_42
+            store %x_41, %56
+            %57:bool = lt %x_34, 0i
+            %58:bool = eq %57, false
+            break_if %58  # -> [t: exit_loop loop_2, f: $B4]
           }
         }
-        %53:bool = load %x_39
-        if %53 [t: %b16] {  # if_5
-          %b16 = block {  # true
+        %59:bool = load %x_39
+        if %59 [t: $B15] {  # if_5
+          $B15: {  # true
             exit_loop  # loop_1
           }
         }
-        %54:vec4<f32> = load %x_42
-        store %x_GLF_color, %54
+        %60:vec4<f32> = load %x_42
+        store %x_GLF_color, %60
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B17: {
+    %67:i32 = convert %value
+    %68:bool = gte %value, -2147483648.0f
+    %69:i32 = select -2147483648i, %67, %68
+    %70:bool = lte %value, 2147483520.0f
+    %71:i32 = select 2147483647i, %69, %70
+    ret %71
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.msl
index 4517f97..9692897 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/set-color-in-one-iteration-while-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,157 +8,174 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+%main_1 = func():void {
+  $B2: {
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_42:ptr<function, vec4<f32>, read_write> = var
         %x_39:ptr<function, bool, read_write> = var
         %x_38_phi:ptr<function, bool, read_write> = var
         %x_41_phi:ptr<function, vec4<f32>, read_write> = var
-        %x_32:f32 = load_vector_element %gl_FragCoord, 0u
-        %10:f32 = clamp %x_32, 0.0f, 1.0f
-        %x_34:i32 = convert %10
+        %9:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_32:f32 = let %9
+        %11:f32 = clamp %x_32, 0.0f, 1.0f
+        %12:i32 = call %tint_f32_to_i32, %11
+        %x_34:i32 = let %12
         store %x_GLF_color, vec4<f32>(0.0f)
         store %x_38_phi, false
         store %x_41_phi, vec4<f32>(0.0f)
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_2
+          $B4: {  # body
             %x_42_phi:ptr<function, vec4<f32>, read_write> = var
             %x_47_phi:ptr<function, i32, read_write> = var
             %x_39_phi:ptr<function, bool, read_write> = var
-            %x_38:bool = load %x_38_phi
-            %x_41:vec4<f32> = load %x_41_phi
+            %18:bool = load %x_38_phi
+            %x_38:bool = let %18
+            %20:vec4<f32> = load %x_41_phi
+            %x_41:vec4<f32> = let %20
             store %x_42_phi, %x_41
             store %x_47_phi, 0i
-            loop [b: %b7, c: %b8] {  # loop_3
-              %b7 = block {  # body
+            loop [b: $B6, c: $B7] {  # loop_3
+              $B6: {  # body
                 %x_45:ptr<function, vec4<f32>, read_write> = var
                 %x_48:ptr<function, i32, read_write> = var
-                %19:vec4<f32> = load %x_42_phi
-                store %x_42, %19
-                %x_47:i32 = load %x_47_phi
-                %21:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_50:f32 = load_vector_element %21, 1u
+                %24:vec4<f32> = load %x_42_phi
+                store %x_42, %24
+                %25:i32 = load %x_47_phi
+                %x_47:i32 = let %25
+                %27:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %28:f32 = load_vector_element %27, 1u
+                %x_50:f32 = let %28
                 store %x_39_phi, %x_38
-                %23:i32 = convert %x_50
-                %24:i32 = add %x_34, %23
-                %25:bool = lt %x_47, %24
-                if %25 [t: %b9, f: %b10] {  # if_1
-                  %b9 = block {  # true
+                %30:i32 = call %tint_f32_to_i32, %x_50
+                %31:i32 = add %x_34, %30
+                %32:bool = lt %x_47, %31
+                if %32 [t: $B8, f: $B9] {  # if_1
+                  $B8: {  # true
                     exit_if  # if_1
                   }
-                  %b10 = block {  # false
+                  $B9: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 %x_66:ptr<function, vec4<f32>, read_write> = var
                 %x_70:ptr<function, vec4<f32>, read_write> = var
                 %x_45_phi:ptr<function, vec4<f32>, read_write> = var
-                %29:bool = lt %x_34, 0i
-                if %29 [t: %b11, f: %b12] {  # if_2
-                  %b11 = block {  # true
+                %36:bool = lt %x_34, 0i
+                if %36 [t: $B10, f: $B11] {  # if_2
+                  $B10: {  # true
                     store %x_39_phi, true
                     exit_loop  # loop_3
                   }
-                  %b12 = block {  # false
-                    %30:bool = eq %x_34, 1i
-                    if %30 [t: %b13, f: %b14] {  # if_3
-                      %b13 = block {  # true
-                        %x_64:f32 = convert %x_34
-                        %x_65:vec2<f32> = construct %x_64, %x_64
-                        %33:f32 = access %x_65, 0u
-                        %34:f32 = load_vector_element %x_42, 1u
-                        %35:f32 = load_vector_element %x_42, 2u
-                        %36:f32 = access %x_65, 1u
-                        %37:vec4<f32> = construct %33, %34, %35, %36
-                        store %x_66, %37
-                        %38:vec4<f32> = load %x_66
-                        store %x_45_phi, %38
-                        exit_if  # if_3
-                      }
-                      %b14 = block {  # false
-                        %39:i32 = add %x_34, 1i
-                        %x_68:f32 = convert %39
-                        %x_69:vec2<f32> = construct %x_68, %x_68
-                        %42:f32 = access %x_69, 0u
+                  $B11: {  # false
+                    %37:bool = eq %x_34, 1i
+                    if %37 [t: $B12, f: $B13] {  # if_3
+                      $B12: {  # true
+                        %38:f32 = convert %x_34
+                        %x_64:f32 = let %38
+                        %40:vec2<f32> = construct %x_64, %x_64
+                        %x_65:vec2<f32> = let %40
+                        %42:f32 = access %x_65, 0u
                         %43:f32 = load_vector_element %x_42, 1u
                         %44:f32 = load_vector_element %x_42, 2u
-                        %45:f32 = access %x_69, 1u
+                        %45:f32 = access %x_65, 1u
                         %46:vec4<f32> = construct %42, %43, %44, %45
-                        store %x_70, %46
-                        %47:vec4<f32> = load %x_70
+                        store %x_66, %46
+                        %47:vec4<f32> = load %x_66
                         store %x_45_phi, %47
                         exit_if  # if_3
                       }
+                      $B13: {  # false
+                        %48:i32 = add %x_34, 1i
+                        %49:f32 = convert %48
+                        %x_68:f32 = let %49
+                        %51:vec2<f32> = construct %x_68, %x_68
+                        %x_69:vec2<f32> = let %51
+                        %53:f32 = access %x_69, 0u
+                        %54:f32 = load_vector_element %x_42, 1u
+                        %55:f32 = load_vector_element %x_42, 2u
+                        %56:f32 = access %x_69, 1u
+                        %57:vec4<f32> = construct %53, %54, %55, %56
+                        store %x_70, %57
+                        %58:vec4<f32> = load %x_70
+                        store %x_45_phi, %58
+                        exit_if  # if_3
+                      }
                     }
-                    %48:vec4<f32> = load %x_45_phi
-                    store %x_45, %48
+                    %59:vec4<f32> = load %x_45_phi
+                    store %x_45, %59
                     exit_if  # if_2
                   }
                 }
-                continue %b8
+                continue  # -> $B7
               }
-              %b8 = block {  # continuing
-                %49:i32 = add %x_47, 1i
-                store %x_48, %49
-                %50:vec4<f32> = load %x_45
-                store %x_42_phi, %50
-                %51:i32 = load %x_48
-                store %x_47_phi, %51
-                next_iteration %b7
+              $B7: {  # continuing
+                %60:i32 = add %x_47, 1i
+                store %x_48, %60
+                %61:vec4<f32> = load %x_45
+                store %x_42_phi, %61
+                %62:i32 = load %x_48
+                store %x_47_phi, %62
+                next_iteration  # -> $B6
               }
             }
-            %52:bool = load %x_39_phi
-            store %x_39, %52
-            %53:bool = load %x_39
-            if %53 [t: %b15] {  # if_4
-              %b15 = block {  # true
+            %63:bool = load %x_39_phi
+            store %x_39, %63
+            %64:bool = load %x_39
+            if %64 [t: $B14] {  # if_4
+              $B14: {  # true
                 exit_loop  # loop_2
               }
             }
-            continue %b6
+            continue  # -> $B5
           }
-          %b6 = block {  # continuing
-            %54:bool = load %x_39
-            store %x_38_phi, %54
-            %55:vec4<f32> = load %x_42
-            store %x_41_phi, %55
-            %56:bool = lt %x_34, 0i
-            %57:bool = eq %56, false
-            break_if %57 %b5
+          $B5: {  # continuing
+            %65:bool = load %x_39
+            store %x_38_phi, %65
+            %66:vec4<f32> = load %x_42
+            store %x_41_phi, %66
+            %67:bool = lt %x_34, 0i
+            %68:bool = eq %67, false
+            break_if %68  # -> [t: exit_loop loop_2, f: $B4]
           }
         }
-        %58:bool = load %x_39
-        if %58 [t: %b16] {  # if_5
-          %b16 = block {  # true
+        %69:bool = load %x_39
+        if %69 [t: $B15] {  # if_5
+          $B15: {  # true
             exit_loop  # loop_1
           }
         }
-        %59:vec4<f32> = load %x_42
-        store %x_GLF_color, %59
+        %70:vec4<f32> = load %x_42
+        store %x_GLF_color, %70
         exit_loop  # loop_1
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B16: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %62:void = call %main_1
-    %63:vec4<f32> = load %x_GLF_color
-    %64:main_out = construct %63
-    ret %64
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B17: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.msl
index 85c6810..dcb12b1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gv:ptr<private, f32, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %lv:ptr<function, f32, read_write> = var
     %x_43:ptr<function, f32, read_write> = var
     %GLF_live5r:ptr<function, i32, read_write> = var
@@ -24,14 +24,14 @@
     %10:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %11:f32 = load_vector_element %10, 1u
     %12:bool = gt 1.0f, %11
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %13:f32 = load %gv
         %14:f32 = abs %13
         store %x_43, %14
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_43, 260.0f
         exit_if  # if_1
       }
@@ -39,65 +39,66 @@
     %15:f32 = load %x_43
     store %lv, %15
     %16:f32 = load %lv
-    %17:i32 = convert %16
-    %18:bool = lt %17, 250i
-    if %18 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %19:f32 = load %lv
-        %20:i32 = convert %19
-        %21:bool = lt %20, 180i
-        if %21 [t: %b6, f: %b7] {  # if_3
-          %b6 = block {  # true
-            %22:f32 = load %lv
-            %x_65:f32 = clamp %22, 1.0f, 1.0f
+    %17:i32 = call %tint_f32_to_i32, %16
+    %19:bool = lt %17, 250i
+    if %19 [t: $B5] {  # if_2
+      $B5: {  # true
+        %20:f32 = load %lv
+        %21:i32 = call %tint_f32_to_i32, %20
+        %22:bool = lt %21, 180i
+        if %22 [t: $B6, f: $B7] {  # if_3
+          $B6: {  # true
+            %23:f32 = load %lv
+            %24:f32 = clamp %23, 1.0f, 1.0f
+            %x_65:f32 = let %24
             exit_if  # if_3
           }
-          %b7 = block {  # false
-            %24:f32 = load_vector_element %gl_FragCoord, 1u
-            %25:bool = lt %24, 0.0f
-            if %25 [t: %b8] {  # if_4
-              %b8 = block {  # true
-                %26:f32 = load %lv
-                %27:i32 = convert %26
-                %28:bool = lt %27, 210i
-                if %28 [t: %b9] {  # if_5
-                  %b9 = block {  # true
-                    loop [b: %b10, c: %b11] {  # loop_1
-                      %b10 = block {  # body
-                        continue %b11
+          $B7: {  # false
+            %26:f32 = load_vector_element %gl_FragCoord, 1u
+            %27:bool = lt %26, 0.0f
+            if %27 [t: $B8] {  # if_4
+              $B8: {  # true
+                %28:f32 = load %lv
+                %29:i32 = call %tint_f32_to_i32, %28
+                %30:bool = lt %29, 210i
+                if %30 [t: $B9] {  # if_5
+                  $B9: {  # true
+                    loop [b: $B10, c: $B11] {  # loop_1
+                      $B10: {  # body
+                        continue  # -> $B11
                       }
-                      %b11 = block {  # continuing
-                        break_if false %b10
+                      $B11: {  # continuing
+                        break_if false  # -> [t: exit_loop loop_1, f: $B10]
                       }
                     }
                     exit_if  # if_5
                   }
                 }
                 store %GLF_live5r, 0i
-                loop [b: %b12, c: %b13] {  # loop_2
-                  %b12 = block {  # body
-                    if true [t: %b14, f: %b15] {  # if_6
-                      %b14 = block {  # true
+                loop [b: $B12, c: $B13] {  # loop_2
+                  $B12: {  # body
+                    if true [t: $B14, f: $B15] {  # if_6
+                      $B14: {  # true
                         exit_if  # if_6
                       }
-                      %b15 = block {  # false
-                        exit_loop  # loop_2
-                      }
-                    }
-                    %29:i32 = load %GLF_live5_looplimiter6
-                    %30:bool = gte %29, 6i
-                    if %30 [t: %b16] {  # if_7
-                      %b16 = block {  # true
+                      $B15: {  # false
                         exit_loop  # loop_2
                       }
                     }
                     %31:i32 = load %GLF_live5_looplimiter6
-                    %32:i32 = add %31, 1i
-                    store %GLF_live5_looplimiter6, %32
-                    continue %b13
+                    %32:bool = gte %31, 6i
+                    if %32 [t: $B16] {  # if_7
+                      $B16: {  # true
+                        exit_loop  # loop_2
+                      }
+                    }
+                    %33:i32 = load %GLF_live5_looplimiter6
+                    %34:i32 = add %33, 1i
+                    store %GLF_live5_looplimiter6, %34
+                    continue  # -> $B13
                   }
-                  %b13 = block {  # continuing
-                    next_iteration %b12
+                  $B13: {  # continuing
+                    next_iteration  # -> $B12
                   }
                 }
                 exit_if  # if_4
@@ -113,13 +114,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+    %37:void = call %main_1
+    %38:vec4<f32> = load %x_GLF_color
+    %39:main_out = construct %38
+    ret %39
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B18: {
+    %41:i32 = convert %value
+    %42:bool = gte %value, -2147483648.0f
+    %43:i32 = select -2147483648i, %41, %42
+    %44:bool = lte %value, 2147483520.0f
+    %45:i32 = select 2147483647i, %43, %44
+    ret %45
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.msl
index ac4ff0d..d37f6a8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/similar-nested-ifs/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,96 +8,107 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gv:ptr<private, f32, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %lv:ptr<function, f32, read_write> = var
     %x_43:ptr<function, f32, read_write> = var
     %GLF_live5r:ptr<function, i32, read_write> = var
     %GLF_live5_looplimiter6:ptr<function, i32, read_write> = var
     %10:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_45:f32 = load_vector_element %10, 1u
-    %12:bool = gt 1.0f, %x_45
-    if %12 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_50:f32 = load %gv
-        %14:f32 = abs %x_50
-        store %x_43, %14
+    %11:f32 = load_vector_element %10, 1u
+    %x_45:f32 = let %11
+    %13:bool = gt 1.0f, %x_45
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %14:f32 = load %gv
+        %x_50:f32 = let %14
+        %16:f32 = abs %x_50
+        store %x_43, %16
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_43, 260.0f
         exit_if  # if_1
       }
     }
-    %x_52:f32 = load %x_43
+    %17:f32 = load %x_43
+    %x_52:f32 = let %17
     store %lv, %x_52
-    %x_53:f32 = load %lv
-    %17:i32 = convert %x_53
-    %18:bool = lt %17, 250i
-    if %18 [t: %b5] {  # if_2
-      %b5 = block {  # true
-        %x_58:f32 = load %lv
-        %20:i32 = convert %x_58
-        %21:bool = lt %20, 180i
-        if %21 [t: %b6, f: %b7] {  # if_3
-          %b6 = block {  # true
-            %x_64:f32 = load %lv
-            %x_65:f32 = clamp %x_64, 1.0f, 1.0f
+    %19:f32 = load %lv
+    %x_53:f32 = let %19
+    %21:i32 = call %tint_f32_to_i32, %x_53
+    %23:bool = lt %21, 250i
+    if %23 [t: $B5] {  # if_2
+      $B5: {  # true
+        %24:f32 = load %lv
+        %x_58:f32 = let %24
+        %26:i32 = call %tint_f32_to_i32, %x_58
+        %27:bool = lt %26, 180i
+        if %27 [t: $B6, f: $B7] {  # if_3
+          $B6: {  # true
+            %28:f32 = load %lv
+            %x_64:f32 = let %28
+            %30:f32 = clamp %x_64, 1.0f, 1.0f
+            %x_65:f32 = let %30
             exit_if  # if_3
           }
-          %b7 = block {  # false
-            %x_67:f32 = load_vector_element %gl_FragCoord, 1u
-            %25:bool = lt %x_67, 0.0f
-            if %25 [t: %b8] {  # if_4
-              %b8 = block {  # true
-                %x_71:f32 = load %lv
-                %27:i32 = convert %x_71
-                %28:bool = lt %27, 210i
-                if %28 [t: %b9] {  # if_5
-                  %b9 = block {  # true
-                    loop [b: %b10, c: %b11] {  # loop_1
-                      %b10 = block {  # body
-                        continue %b11
+          $B7: {  # false
+            %32:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_67:f32 = let %32
+            %34:bool = lt %x_67, 0.0f
+            if %34 [t: $B8] {  # if_4
+              $B8: {  # true
+                %35:f32 = load %lv
+                %x_71:f32 = let %35
+                %37:i32 = call %tint_f32_to_i32, %x_71
+                %38:bool = lt %37, 210i
+                if %38 [t: $B9] {  # if_5
+                  $B9: {  # true
+                    loop [b: $B10, c: $B11] {  # loop_1
+                      $B10: {  # body
+                        continue  # -> $B11
                       }
-                      %b11 = block {  # continuing
-                        break_if false %b10
+                      $B11: {  # continuing
+                        break_if false  # -> [t: exit_loop loop_1, f: $B10]
                       }
                     }
                     exit_if  # if_5
                   }
                 }
                 store %GLF_live5r, 0i
-                loop [b: %b12, c: %b13] {  # loop_2
-                  %b12 = block {  # body
-                    if true [t: %b14, f: %b15] {  # if_6
-                      %b14 = block {  # true
+                loop [b: $B12, c: $B13] {  # loop_2
+                  $B12: {  # body
+                    if true [t: $B14, f: $B15] {  # if_6
+                      $B14: {  # true
                         exit_if  # if_6
                       }
-                      %b15 = block {  # false
+                      $B15: {  # false
                         exit_loop  # loop_2
                       }
                     }
-                    %x_11:i32 = load %GLF_live5_looplimiter6
-                    %30:bool = gte %x_11, 6i
-                    if %30 [t: %b16] {  # if_7
-                      %b16 = block {  # true
+                    %39:i32 = load %GLF_live5_looplimiter6
+                    %x_11:i32 = let %39
+                    %41:bool = gte %x_11, 6i
+                    if %41 [t: $B16] {  # if_7
+                      $B16: {  # true
                         exit_loop  # loop_2
                       }
                     }
-                    %x_12:i32 = load %GLF_live5_looplimiter6
-                    %32:i32 = add %x_12, 1i
-                    store %GLF_live5_looplimiter6, %32
-                    continue %b13
+                    %42:i32 = load %GLF_live5_looplimiter6
+                    %x_12:i32 = let %42
+                    %44:i32 = add %x_12, 1i
+                    store %GLF_live5_looplimiter6, %44
+                    continue  # -> $B13
                   }
-                  %b13 = block {  # continuing
-                    next_iteration %b12
+                  $B13: {  # continuing
+                    next_iteration  # -> $B12
                   }
                 }
                 exit_if  # if_4
@@ -113,13 +124,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %35:void = call %main_1
-    %36:vec4<f32> = load %x_GLF_color
-    %37:main_out = construct %36
-    ret %37
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B18: {
+    %51:i32 = convert %value
+    %52:bool = gte %value, -2147483648.0f
+    %53:i32 = select -2147483648i, %51, %52
+    %54:bool = lte %value, 2147483520.0f
+    %55:i32 = select 2147483647i, %53, %54
+    ret %55
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.msl
index cdbf128..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.msl
index cdbf128..40ec97c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/smoothstep-after-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Loop
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: min
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.msl
index 793f5ff..074406f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -34,42 +34,44 @@
     store %pos, %19
     %20:f32 = load_vector_element %pos, 0u
     %21:f32 = mul %20, 16.0f
-    %22:i32 = convert %21
-    %23:f32 = load_vector_element %pos, 1u
-    %24:f32 = mul %23, 16.0f
-    %25:i32 = convert %24
-    %26:vec2<i32> = construct %22, %25
-    store %ipos, %26
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = let %22
+    %25:f32 = load_vector_element %pos, 1u
+    %26:f32 = mul %25, 16.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:vec2<i32> = construct %24, %27
+    store %ipos, %28
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %27:i32 = load %i
-        %28:bool = lt %27, 256i
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %29:i32 = load %i
+        %30:bool = lt %29, 256i
+        if %30 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_78:i32 = load %i
-        %30:ptr<private, i32, read_write> = access %map, %x_78
-        store %30, 0i
-        continue %b4
-      }
-      %b4 = block {  # continuing
         %31:i32 = load %i
-        %32:i32 = add %31, 1i
-        store %i, %32
-        next_iteration %b3
+        %x_78:i32 = let %31
+        %33:ptr<private, i32, read_write> = access %map, %x_78
+        store %33, 0i
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %34:i32 = load %i
+        %35:i32 = add %34, 1i
+        store %i, %35
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_102:ptr<function, bool, read_write> = var
         %x_103:ptr<function, bool, read_write> = var
         %x_122:ptr<function, bool, read_write> = var
@@ -78,119 +80,123 @@
         %x_143:ptr<function, bool, read_write> = var
         %x_162:ptr<function, bool, read_write> = var
         %x_163:ptr<function, bool, read_write> = var
-        %41:i32 = load %v
-        %42:i32 = add %41, 1i
-        store %v, %42
+        %44:i32 = load %v
+        %45:i32 = add %44, 1i
+        store %v, %45
         store %directions, 0i
-        %43:i32 = load_vector_element %p, 0u
-        %x_90:bool = gt %43, 0i
+        %46:i32 = load_vector_element %p, 0u
+        %47:bool = gt %46, 0i
+        %x_90:bool = let %47
         store %x_103, %x_90
-        if %x_90 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %45:i32 = load_vector_element %p, 0u
-            %46:i32 = sub %45, 2i
-            %47:i32 = load_vector_element %p, 1u
-            %48:i32 = mul %47, 16i
-            %49:i32 = add %46, %48
-            %50:ptr<private, i32, read_write> = access %map, %49
-            %51:i32 = load %50
-            %52:bool = eq %51, 0i
-            store %x_102, %52
-            %53:bool = load %x_102
-            store %x_103, %53
+        if %x_90 [t: $B9] {  # if_2
+          $B9: {  # true
+            %49:i32 = load_vector_element %p, 0u
+            %50:i32 = sub %49, 2i
+            %51:i32 = load_vector_element %p, 1u
+            %52:i32 = mul %51, 16i
+            %53:i32 = add %50, %52
+            %54:ptr<private, i32, read_write> = access %map, %53
+            %55:i32 = load %54
+            %56:bool = eq %55, 0i
+            store %x_102, %56
+            %57:bool = load %x_102
+            store %x_103, %57
             exit_if  # if_2
           }
         }
-        %54:bool = load %x_103
-        if %54 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %55:i32 = load %directions
-            %56:i32 = add %55, 1i
-            store %directions, %56
+        %58:bool = load %x_103
+        if %58 [t: $B10] {  # if_3
+          $B10: {  # true
+            %59:i32 = load %directions
+            %60:i32 = add %59, 1i
+            store %directions, %60
             exit_if  # if_3
           }
         }
-        %57:i32 = load_vector_element %p, 1u
-        %x_110:bool = gt %57, 0i
+        %61:i32 = load_vector_element %p, 1u
+        %62:bool = gt %61, 0i
+        %x_110:bool = let %62
         store %x_123, %x_110
-        if %x_110 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %59:i32 = load_vector_element %p, 0u
-            %60:i32 = load_vector_element %p, 1u
-            %61:i32 = sub %60, 2i
-            %62:i32 = mul %61, 16i
-            %63:i32 = add %59, %62
-            %64:ptr<private, i32, read_write> = access %map, %63
-            %65:i32 = load %64
-            %66:bool = eq %65, 0i
-            store %x_122, %66
-            %67:bool = load %x_122
-            store %x_123, %67
+        if %x_110 [t: $B11] {  # if_4
+          $B11: {  # true
+            %64:i32 = load_vector_element %p, 0u
+            %65:i32 = load_vector_element %p, 1u
+            %66:i32 = sub %65, 2i
+            %67:i32 = mul %66, 16i
+            %68:i32 = add %64, %67
+            %69:ptr<private, i32, read_write> = access %map, %68
+            %70:i32 = load %69
+            %71:bool = eq %70, 0i
+            store %x_122, %71
+            %72:bool = load %x_122
+            store %x_123, %72
             exit_if  # if_4
           }
         }
-        %68:bool = load %x_123
-        if %68 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %69:i32 = load %directions
-            %70:i32 = add %69, 1i
-            store %directions, %70
+        %73:bool = load %x_123
+        if %73 [t: $B12] {  # if_5
+          $B12: {  # true
+            %74:i32 = load %directions
+            %75:i32 = add %74, 1i
+            store %directions, %75
             exit_if  # if_5
           }
         }
-        %71:i32 = load_vector_element %p, 0u
-        %x_130:bool = lt %71, 14i
+        %76:i32 = load_vector_element %p, 0u
+        %77:bool = lt %76, 14i
+        %x_130:bool = let %77
         store %x_143, %x_130
-        if %x_130 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %73:i32 = load_vector_element %p, 0u
-            %74:i32 = add %73, 2i
-            %75:i32 = load_vector_element %p, 1u
-            %76:i32 = mul %75, 16i
-            %77:i32 = add %74, %76
-            %78:ptr<private, i32, read_write> = access %map, %77
-            %79:i32 = load %78
-            %80:bool = eq %79, 0i
-            store %x_142, %80
-            %81:bool = load %x_142
-            store %x_143, %81
+        if %x_130 [t: $B13] {  # if_6
+          $B13: {  # true
+            %79:i32 = load_vector_element %p, 0u
+            %80:i32 = add %79, 2i
+            %81:i32 = load_vector_element %p, 1u
+            %82:i32 = mul %81, 16i
+            %83:i32 = add %80, %82
+            %84:ptr<private, i32, read_write> = access %map, %83
+            %85:i32 = load %84
+            %86:bool = eq %85, 0i
+            store %x_142, %86
+            %87:bool = load %x_142
+            store %x_143, %87
             exit_if  # if_6
           }
         }
-        %82:bool = load %x_143
-        if %82 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %83:i32 = load %directions
-            %84:i32 = add %83, 1i
-            store %directions, %84
+        %88:bool = load %x_143
+        if %88 [t: $B14] {  # if_7
+          $B14: {  # true
+            %89:i32 = load %directions
+            %90:i32 = add %89, 1i
+            store %directions, %90
             exit_if  # if_7
           }
         }
-        %85:i32 = load_vector_element %p, 1u
-        %x_150:bool = lt %85, 14i
+        %91:i32 = load_vector_element %p, 1u
+        %92:bool = lt %91, 14i
+        %x_150:bool = let %92
         store %x_163, %x_150
-        if %x_150 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %87:i32 = load_vector_element %p, 0u
-            %88:i32 = load_vector_element %p, 1u
-            %89:i32 = add %88, 2i
-            %90:i32 = mul %89, 16i
-            %91:i32 = add %87, %90
-            %92:ptr<private, i32, read_write> = access %map, %91
-            %93:i32 = load %92
-            %94:bool = eq %93, 0i
-            store %x_162, %94
-            %95:bool = load %x_162
-            store %x_163, %95
+        if %x_150 [t: $B15] {  # if_8
+          $B15: {  # true
+            %94:i32 = load_vector_element %p, 0u
+            %95:i32 = load_vector_element %p, 1u
+            %96:i32 = add %95, 2i
+            %97:i32 = mul %96, 16i
+            %98:i32 = add %94, %97
+            %99:ptr<private, i32, read_write> = access %map, %98
+            %100:i32 = load %99
+            %101:bool = eq %100, 0i
+            store %x_162, %101
+            %102:bool = load %x_162
+            store %x_163, %102
             exit_if  # if_8
           }
         }
-        %96:bool = load %x_163
-        if %96 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %97:i32 = load %directions
-            %98:i32 = add %97, 1i
-            store %directions, %98
+        %103:bool = load %x_163
+        if %103 [t: $B16] {  # if_9
+          $B16: {  # true
+            %104:i32 = load %directions
+            %105:i32 = add %104, 1i
+            store %directions, %105
             exit_if  # if_9
           }
         }
@@ -210,384 +216,440 @@
         %x_384:ptr<function, bool, read_write> = var
         %x_396:ptr<function, bool, read_write> = var
         %x_397:ptr<function, bool, read_write> = var
-        %115:i32 = load %directions
-        %116:bool = eq %115, 0i
-        if %116 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %122:i32 = load %directions
+        %123:bool = eq %122, 0i
+        if %123 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %117:i32 = load %i
-                %118:bool = lt %117, 8i
-                if %118 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %124:i32 = load %i
+                %125:bool = lt %124, 8i
+                if %125 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %119:i32 = load %j
-                    %120:bool = lt %119, 8i
-                    if %120 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %126:i32 = load %j
+                    %127:bool = lt %126, 8i
+                    if %127 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %121:i32 = load %j
-                    %122:i32 = mul %121, 2i
-                    %123:i32 = load %i
-                    %124:i32 = mul %123, 2i
-                    %125:i32 = mul %124, 16i
-                    %126:i32 = add %122, %125
-                    %127:ptr<private, i32, read_write> = access %map, %126
-                    %128:i32 = load %127
-                    %129:bool = eq %128, 0i
-                    if %129 [t: %b27] {  # if_13
-                      %b27 = block {  # true
-                        %130:i32 = load %j
-                        %131:i32 = mul %130, 2i
-                        store_vector_element %p, 0u, %131
-                        %132:i32 = load %i
-                        %133:i32 = mul %132, 2i
-                        store_vector_element %p, 1u, %133
+                    %128:i32 = load %j
+                    %129:i32 = mul %128, 2i
+                    %130:i32 = load %i
+                    %131:i32 = mul %130, 2i
+                    %132:i32 = mul %131, 16i
+                    %133:i32 = add %129, %132
+                    %134:ptr<private, i32, read_write> = access %map, %133
+                    %135:i32 = load %134
+                    %136:bool = eq %135, 0i
+                    if %136 [t: $B27] {  # if_13
+                      $B27: {  # true
+                        %137:i32 = load %j
+                        %138:i32 = mul %137, 2i
+                        store_vector_element %p, 0u, %138
+                        %139:i32 = load %i
+                        %140:i32 = mul %139, 2i
+                        store_vector_element %p, 1u, %140
                         store %canwalk, true
                         exit_if  # if_13
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %134:i32 = load %j
-                    %135:i32 = add %134, 1i
-                    store %j, %135
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %141:i32 = load %j
+                    %142:i32 = add %141, 1i
+                    store %j, %142
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %136:i32 = load %i
-                %137:i32 = add %136, 1i
-                store %i, %137
-                next_iteration %b19
+              $B20: {  # continuing
+                %143:i32 = load %i
+                %144:i32 = add %143, 1i
+                store %i, %144
+                next_iteration  # -> $B19
               }
             }
-            %x_209:i32 = load_vector_element %p, 0u
-            %x_211:i32 = load_vector_element %p, 1u
-            %140:i32 = mul %x_211, 16i
-            %141:i32 = add %x_209, %140
-            %142:ptr<private, i32, read_write> = access %map, %141
-            store %142, 1i
+            %145:i32 = load_vector_element %p, 0u
+            %x_209:i32 = let %145
+            %147:i32 = load_vector_element %p, 1u
+            %x_211:i32 = let %147
+            %149:i32 = mul %x_211, 16i
+            %150:i32 = add %x_209, %149
+            %151:ptr<private, i32, read_write> = access %map, %150
+            store %151, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %143:i32 = load %v
-            %144:i32 = load %directions
-            %145:i32 = mod %143, %144
-            store %d, %145
-            %146:i32 = load %v
-            %147:i32 = load %directions
-            %148:i32 = add %146, %147
-            store %v, %148
-            %149:i32 = load %d
-            %x_222:bool = gte %149, 0i
+          $B18: {  # false
+            %152:i32 = load %v
+            %153:i32 = load %directions
+            %154:i32 = call %tint_mod_i32, %152, %153
+            store %d, %154
+            %156:i32 = load %v
+            %157:i32 = load %directions
+            %158:i32 = add %156, %157
+            store %v, %158
+            %159:i32 = load %d
+            %160:bool = gte %159, 0i
+            %x_222:bool = let %160
             store %x_228, %x_222
-            if %x_222 [t: %b28] {  # if_14
-              %b28 = block {  # true
-                %151:i32 = load_vector_element %p, 0u
-                %152:bool = gt %151, 0i
-                store %x_227, %152
-                %153:bool = load %x_227
-                store %x_228, %153
+            if %x_222 [t: $B28] {  # if_14
+              $B28: {  # true
+                %162:i32 = load_vector_element %p, 0u
+                %163:bool = gt %162, 0i
+                store %x_227, %163
+                %164:bool = load %x_227
+                store %x_228, %164
                 exit_if  # if_14
               }
             }
-            %154:bool = load %x_228
-            store %x_241, %154
-            %155:bool = load %x_228
-            if %155 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %156:i32 = load_vector_element %p, 0u
-                %157:i32 = sub %156, 2i
-                %158:i32 = load_vector_element %p, 1u
-                %159:i32 = mul %158, 16i
-                %160:i32 = add %157, %159
-                %161:ptr<private, i32, read_write> = access %map, %160
-                %162:i32 = load %161
-                %163:bool = eq %162, 0i
-                store %x_240, %163
-                %164:bool = load %x_240
-                store %x_241, %164
+            %165:bool = load %x_228
+            store %x_241, %165
+            %166:bool = load %x_228
+            if %166 [t: $B29] {  # if_15
+              $B29: {  # true
+                %167:i32 = load_vector_element %p, 0u
+                %168:i32 = sub %167, 2i
+                %169:i32 = load_vector_element %p, 1u
+                %170:i32 = mul %169, 16i
+                %171:i32 = add %168, %170
+                %172:ptr<private, i32, read_write> = access %map, %171
+                %173:i32 = load %172
+                %174:bool = eq %173, 0i
+                store %x_240, %174
+                %175:bool = load %x_240
+                store %x_241, %175
                 exit_if  # if_15
               }
             }
-            %165:bool = load %x_241
-            if %165 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %166:i32 = load %d
-                %167:i32 = sub %166, 1i
-                store %d, %167
-                %x_247:i32 = load_vector_element %p, 0u
-                %x_249:i32 = load_vector_element %p, 1u
-                %170:i32 = mul %x_249, 16i
-                %171:i32 = add %x_247, %170
-                %172:ptr<private, i32, read_write> = access %map, %171
-                store %172, 1i
-                %x_254:i32 = load_vector_element %p, 0u
-                %x_257:i32 = load_vector_element %p, 1u
-                %175:i32 = sub %x_254, 1i
-                %176:i32 = mul %x_257, 16i
-                %177:i32 = add %175, %176
-                %178:ptr<private, i32, read_write> = access %map, %177
-                store %178, 1i
-                %x_262:i32 = load_vector_element %p, 0u
-                %x_265:i32 = load_vector_element %p, 1u
-                %181:i32 = sub %x_262, 2i
-                %182:i32 = mul %x_265, 16i
-                %183:i32 = add %181, %182
-                %184:ptr<private, i32, read_write> = access %map, %183
-                store %184, 1i
-                %185:i32 = load_vector_element %p, 0u
-                %186:i32 = sub %185, 2i
-                store_vector_element %p, 0u, %186
+            %176:bool = load %x_241
+            if %176 [t: $B30] {  # if_16
+              $B30: {  # true
+                %177:i32 = load %d
+                %178:i32 = sub %177, 1i
+                store %d, %178
+                %179:i32 = load_vector_element %p, 0u
+                %x_247:i32 = let %179
+                %181:i32 = load_vector_element %p, 1u
+                %x_249:i32 = let %181
+                %183:i32 = mul %x_249, 16i
+                %184:i32 = add %x_247, %183
+                %185:ptr<private, i32, read_write> = access %map, %184
+                store %185, 1i
+                %186:i32 = load_vector_element %p, 0u
+                %x_254:i32 = let %186
+                %188:i32 = load_vector_element %p, 1u
+                %x_257:i32 = let %188
+                %190:i32 = sub %x_254, 1i
+                %191:i32 = mul %x_257, 16i
+                %192:i32 = add %190, %191
+                %193:ptr<private, i32, read_write> = access %map, %192
+                store %193, 1i
+                %194:i32 = load_vector_element %p, 0u
+                %x_262:i32 = let %194
+                %196:i32 = load_vector_element %p, 1u
+                %x_265:i32 = let %196
+                %198:i32 = sub %x_262, 2i
+                %199:i32 = mul %x_265, 16i
+                %200:i32 = add %198, %199
+                %201:ptr<private, i32, read_write> = access %map, %200
+                store %201, 1i
+                %202:i32 = load_vector_element %p, 0u
+                %203:i32 = sub %202, 2i
+                store_vector_element %p, 0u, %203
                 exit_if  # if_16
               }
             }
-            %187:i32 = load %d
-            %x_274:bool = gte %187, 0i
+            %204:i32 = load %d
+            %205:bool = gte %204, 0i
+            %x_274:bool = let %205
             store %x_280, %x_274
-            if %x_274 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %189:i32 = load_vector_element %p, 1u
-                %190:bool = gt %189, 0i
-                store %x_279, %190
-                %191:bool = load %x_279
-                store %x_280, %191
+            if %x_274 [t: $B31] {  # if_17
+              $B31: {  # true
+                %207:i32 = load_vector_element %p, 1u
+                %208:bool = gt %207, 0i
+                store %x_279, %208
+                %209:bool = load %x_279
+                store %x_280, %209
                 exit_if  # if_17
               }
             }
-            %192:bool = load %x_280
-            store %x_293, %192
-            %193:bool = load %x_280
-            if %193 [t: %b32] {  # if_18
-              %b32 = block {  # true
-                %194:i32 = load_vector_element %p, 0u
-                %195:i32 = load_vector_element %p, 1u
-                %196:i32 = sub %195, 2i
-                %197:i32 = mul %196, 16i
-                %198:i32 = add %194, %197
-                %199:ptr<private, i32, read_write> = access %map, %198
-                %200:i32 = load %199
-                %201:bool = eq %200, 0i
-                store %x_292, %201
-                %202:bool = load %x_292
-                store %x_293, %202
+            %210:bool = load %x_280
+            store %x_293, %210
+            %211:bool = load %x_280
+            if %211 [t: $B32] {  # if_18
+              $B32: {  # true
+                %212:i32 = load_vector_element %p, 0u
+                %213:i32 = load_vector_element %p, 1u
+                %214:i32 = sub %213, 2i
+                %215:i32 = mul %214, 16i
+                %216:i32 = add %212, %215
+                %217:ptr<private, i32, read_write> = access %map, %216
+                %218:i32 = load %217
+                %219:bool = eq %218, 0i
+                store %x_292, %219
+                %220:bool = load %x_292
+                store %x_293, %220
                 exit_if  # if_18
               }
             }
-            %203:bool = load %x_293
-            if %203 [t: %b33] {  # if_19
-              %b33 = block {  # true
-                %204:i32 = load %d
-                %205:i32 = sub %204, 1i
-                store %d, %205
-                %x_299:i32 = load_vector_element %p, 0u
-                %x_301:i32 = load_vector_element %p, 1u
-                %208:i32 = mul %x_301, 16i
-                %209:i32 = add %x_299, %208
-                %210:ptr<private, i32, read_write> = access %map, %209
-                store %210, 1i
-                %x_306:i32 = load_vector_element %p, 0u
-                %x_308:i32 = load_vector_element %p, 1u
-                %213:i32 = sub %x_308, 1i
-                %214:i32 = mul %213, 16i
-                %215:i32 = add %x_306, %214
-                %216:ptr<private, i32, read_write> = access %map, %215
-                store %216, 1i
-                %x_314:i32 = load_vector_element %p, 0u
-                %x_316:i32 = load_vector_element %p, 1u
-                %219:i32 = sub %x_316, 2i
-                %220:i32 = mul %219, 16i
-                %221:i32 = add %x_314, %220
-                %222:ptr<private, i32, read_write> = access %map, %221
-                store %222, 1i
-                %223:i32 = load_vector_element %p, 1u
-                %224:i32 = sub %223, 2i
-                store_vector_element %p, 1u, %224
+            %221:bool = load %x_293
+            if %221 [t: $B33] {  # if_19
+              $B33: {  # true
+                %222:i32 = load %d
+                %223:i32 = sub %222, 1i
+                store %d, %223
+                %224:i32 = load_vector_element %p, 0u
+                %x_299:i32 = let %224
+                %226:i32 = load_vector_element %p, 1u
+                %x_301:i32 = let %226
+                %228:i32 = mul %x_301, 16i
+                %229:i32 = add %x_299, %228
+                %230:ptr<private, i32, read_write> = access %map, %229
+                store %230, 1i
+                %231:i32 = load_vector_element %p, 0u
+                %x_306:i32 = let %231
+                %233:i32 = load_vector_element %p, 1u
+                %x_308:i32 = let %233
+                %235:i32 = sub %x_308, 1i
+                %236:i32 = mul %235, 16i
+                %237:i32 = add %x_306, %236
+                %238:ptr<private, i32, read_write> = access %map, %237
+                store %238, 1i
+                %239:i32 = load_vector_element %p, 0u
+                %x_314:i32 = let %239
+                %241:i32 = load_vector_element %p, 1u
+                %x_316:i32 = let %241
+                %243:i32 = sub %x_316, 2i
+                %244:i32 = mul %243, 16i
+                %245:i32 = add %x_314, %244
+                %246:ptr<private, i32, read_write> = access %map, %245
+                store %246, 1i
+                %247:i32 = load_vector_element %p, 1u
+                %248:i32 = sub %247, 2i
+                store_vector_element %p, 1u, %248
                 exit_if  # if_19
               }
             }
-            %225:i32 = load %d
-            %x_326:bool = gte %225, 0i
+            %249:i32 = load %d
+            %250:bool = gte %249, 0i
+            %x_326:bool = let %250
             store %x_332, %x_326
-            if %x_326 [t: %b34] {  # if_20
-              %b34 = block {  # true
-                %227:i32 = load_vector_element %p, 0u
-                %228:bool = lt %227, 14i
-                store %x_331, %228
-                %229:bool = load %x_331
-                store %x_332, %229
+            if %x_326 [t: $B34] {  # if_20
+              $B34: {  # true
+                %252:i32 = load_vector_element %p, 0u
+                %253:bool = lt %252, 14i
+                store %x_331, %253
+                %254:bool = load %x_331
+                store %x_332, %254
                 exit_if  # if_20
               }
             }
-            %230:bool = load %x_332
-            store %x_345, %230
-            %231:bool = load %x_332
-            if %231 [t: %b35] {  # if_21
-              %b35 = block {  # true
-                %232:i32 = load_vector_element %p, 0u
-                %233:i32 = add %232, 2i
-                %234:i32 = load_vector_element %p, 1u
-                %235:i32 = mul %234, 16i
-                %236:i32 = add %233, %235
-                %237:ptr<private, i32, read_write> = access %map, %236
-                %238:i32 = load %237
-                %239:bool = eq %238, 0i
-                store %x_344, %239
-                %240:bool = load %x_344
-                store %x_345, %240
+            %255:bool = load %x_332
+            store %x_345, %255
+            %256:bool = load %x_332
+            if %256 [t: $B35] {  # if_21
+              $B35: {  # true
+                %257:i32 = load_vector_element %p, 0u
+                %258:i32 = add %257, 2i
+                %259:i32 = load_vector_element %p, 1u
+                %260:i32 = mul %259, 16i
+                %261:i32 = add %258, %260
+                %262:ptr<private, i32, read_write> = access %map, %261
+                %263:i32 = load %262
+                %264:bool = eq %263, 0i
+                store %x_344, %264
+                %265:bool = load %x_344
+                store %x_345, %265
                 exit_if  # if_21
               }
             }
-            %241:bool = load %x_345
-            if %241 [t: %b36] {  # if_22
-              %b36 = block {  # true
-                %242:i32 = load %d
-                %243:i32 = sub %242, 1i
-                store %d, %243
-                %x_351:i32 = load_vector_element %p, 0u
-                %x_353:i32 = load_vector_element %p, 1u
-                %246:i32 = mul %x_353, 16i
-                %247:i32 = add %x_351, %246
-                %248:ptr<private, i32, read_write> = access %map, %247
-                store %248, 1i
-                %x_358:i32 = load_vector_element %p, 0u
-                %x_361:i32 = load_vector_element %p, 1u
-                %251:i32 = add %x_358, 1i
-                %252:i32 = mul %x_361, 16i
-                %253:i32 = add %251, %252
-                %254:ptr<private, i32, read_write> = access %map, %253
-                store %254, 1i
-                %x_366:i32 = load_vector_element %p, 0u
-                %x_369:i32 = load_vector_element %p, 1u
-                %257:i32 = add %x_366, 2i
-                %258:i32 = mul %x_369, 16i
-                %259:i32 = add %257, %258
-                %260:ptr<private, i32, read_write> = access %map, %259
-                store %260, 1i
-                %261:i32 = load_vector_element %p, 0u
-                %262:i32 = add %261, 2i
-                store_vector_element %p, 0u, %262
+            %266:bool = load %x_345
+            if %266 [t: $B36] {  # if_22
+              $B36: {  # true
+                %267:i32 = load %d
+                %268:i32 = sub %267, 1i
+                store %d, %268
+                %269:i32 = load_vector_element %p, 0u
+                %x_351:i32 = let %269
+                %271:i32 = load_vector_element %p, 1u
+                %x_353:i32 = let %271
+                %273:i32 = mul %x_353, 16i
+                %274:i32 = add %x_351, %273
+                %275:ptr<private, i32, read_write> = access %map, %274
+                store %275, 1i
+                %276:i32 = load_vector_element %p, 0u
+                %x_358:i32 = let %276
+                %278:i32 = load_vector_element %p, 1u
+                %x_361:i32 = let %278
+                %280:i32 = add %x_358, 1i
+                %281:i32 = mul %x_361, 16i
+                %282:i32 = add %280, %281
+                %283:ptr<private, i32, read_write> = access %map, %282
+                store %283, 1i
+                %284:i32 = load_vector_element %p, 0u
+                %x_366:i32 = let %284
+                %286:i32 = load_vector_element %p, 1u
+                %x_369:i32 = let %286
+                %288:i32 = add %x_366, 2i
+                %289:i32 = mul %x_369, 16i
+                %290:i32 = add %288, %289
+                %291:ptr<private, i32, read_write> = access %map, %290
+                store %291, 1i
+                %292:i32 = load_vector_element %p, 0u
+                %293:i32 = add %292, 2i
+                store_vector_element %p, 0u, %293
                 exit_if  # if_22
               }
             }
-            %263:i32 = load %d
-            %x_378:bool = gte %263, 0i
+            %294:i32 = load %d
+            %295:bool = gte %294, 0i
+            %x_378:bool = let %295
             store %x_384, %x_378
-            if %x_378 [t: %b37] {  # if_23
-              %b37 = block {  # true
-                %265:i32 = load_vector_element %p, 1u
-                %266:bool = lt %265, 14i
-                store %x_383, %266
-                %267:bool = load %x_383
-                store %x_384, %267
+            if %x_378 [t: $B37] {  # if_23
+              $B37: {  # true
+                %297:i32 = load_vector_element %p, 1u
+                %298:bool = lt %297, 14i
+                store %x_383, %298
+                %299:bool = load %x_383
+                store %x_384, %299
                 exit_if  # if_23
               }
             }
-            %268:bool = load %x_384
-            store %x_397, %268
-            %269:bool = load %x_384
-            if %269 [t: %b38] {  # if_24
-              %b38 = block {  # true
-                %270:i32 = load_vector_element %p, 0u
-                %271:i32 = load_vector_element %p, 1u
-                %272:i32 = add %271, 2i
-                %273:i32 = mul %272, 16i
-                %274:i32 = add %270, %273
-                %275:ptr<private, i32, read_write> = access %map, %274
-                %276:i32 = load %275
-                %277:bool = eq %276, 0i
-                store %x_396, %277
-                %278:bool = load %x_396
-                store %x_397, %278
+            %300:bool = load %x_384
+            store %x_397, %300
+            %301:bool = load %x_384
+            if %301 [t: $B38] {  # if_24
+              $B38: {  # true
+                %302:i32 = load_vector_element %p, 0u
+                %303:i32 = load_vector_element %p, 1u
+                %304:i32 = add %303, 2i
+                %305:i32 = mul %304, 16i
+                %306:i32 = add %302, %305
+                %307:ptr<private, i32, read_write> = access %map, %306
+                %308:i32 = load %307
+                %309:bool = eq %308, 0i
+                store %x_396, %309
+                %310:bool = load %x_396
+                store %x_397, %310
                 exit_if  # if_24
               }
             }
-            %279:bool = load %x_397
-            if %279 [t: %b39] {  # if_25
-              %b39 = block {  # true
-                %280:i32 = load %d
-                %281:i32 = sub %280, 1i
-                store %d, %281
-                %x_403:i32 = load_vector_element %p, 0u
-                %x_405:i32 = load_vector_element %p, 1u
-                %284:i32 = mul %x_405, 16i
-                %285:i32 = add %x_403, %284
-                %286:ptr<private, i32, read_write> = access %map, %285
-                store %286, 1i
-                %x_410:i32 = load_vector_element %p, 0u
-                %x_412:i32 = load_vector_element %p, 1u
-                %289:i32 = add %x_412, 1i
-                %290:i32 = mul %289, 16i
-                %291:i32 = add %x_410, %290
-                %292:ptr<private, i32, read_write> = access %map, %291
-                store %292, 1i
-                %x_418:i32 = load_vector_element %p, 0u
-                %x_420:i32 = load_vector_element %p, 1u
-                %295:i32 = add %x_420, 2i
-                %296:i32 = mul %295, 16i
-                %297:i32 = add %x_418, %296
-                %298:ptr<private, i32, read_write> = access %map, %297
-                store %298, 1i
-                %299:i32 = load_vector_element %p, 1u
-                %300:i32 = add %299, 2i
-                store_vector_element %p, 1u, %300
+            %311:bool = load %x_397
+            if %311 [t: $B39] {  # if_25
+              $B39: {  # true
+                %312:i32 = load %d
+                %313:i32 = sub %312, 1i
+                store %d, %313
+                %314:i32 = load_vector_element %p, 0u
+                %x_403:i32 = let %314
+                %316:i32 = load_vector_element %p, 1u
+                %x_405:i32 = let %316
+                %318:i32 = mul %x_405, 16i
+                %319:i32 = add %x_403, %318
+                %320:ptr<private, i32, read_write> = access %map, %319
+                store %320, 1i
+                %321:i32 = load_vector_element %p, 0u
+                %x_410:i32 = let %321
+                %323:i32 = load_vector_element %p, 1u
+                %x_412:i32 = let %323
+                %325:i32 = add %x_412, 1i
+                %326:i32 = mul %325, 16i
+                %327:i32 = add %x_410, %326
+                %328:ptr<private, i32, read_write> = access %map, %327
+                store %328, 1i
+                %329:i32 = load_vector_element %p, 0u
+                %x_418:i32 = let %329
+                %331:i32 = load_vector_element %p, 1u
+                %x_420:i32 = let %331
+                %333:i32 = add %x_420, 2i
+                %334:i32 = mul %333, 16i
+                %335:i32 = add %x_418, %334
+                %336:ptr<private, i32, read_write> = access %map, %335
+                store %336, 1i
+                %337:i32 = load_vector_element %p, 1u
+                %338:i32 = add %337, 2i
+                store_vector_element %p, 1u, %338
                 exit_if  # if_25
               }
             }
             exit_if  # if_10
           }
         }
-        %301:i32 = load_vector_element %ipos, 1u
-        %302:i32 = mul %301, 16i
-        %303:i32 = load_vector_element %ipos, 0u
-        %304:i32 = add %302, %303
-        %305:ptr<private, i32, read_write> = access %map, %304
-        %306:i32 = load %305
-        %307:bool = eq %306, 1i
-        if %307 [t: %b40] {  # if_26
-          %b40 = block {  # true
+        %339:i32 = load_vector_element %ipos, 1u
+        %340:i32 = mul %339, 16i
+        %341:i32 = load_vector_element %ipos, 0u
+        %342:i32 = add %340, %341
+        %343:ptr<private, i32, read_write> = access %map, %342
+        %344:i32 = load %343
+        %345:bool = eq %344, 1i
+        if %345 [t: $B40] {  # if_26
+          $B40: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_440:bool = load %canwalk
-        %309:bool = eq %x_440, false
-        break_if %309 %b7
+      $B8: {  # continuing
+        %346:bool = load %canwalk
+        %x_440:bool = let %346
+        %348:bool = eq %x_440, false
+        break_if %348  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b41 {
-  %b41 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B41: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %312:void = call %main_1
-    %313:vec4<f32> = load %x_GLF_color
-    %314:main_out = construct %313
-    ret %314
+    %351:void = call %main_1
+    %352:vec4<f32> = load %x_GLF_color
+    %353:main_out = construct %352
+    ret %353
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B42: {
+    %356:bool = eq %rhs, 0i
+    %357:bool = eq %lhs, -2147483648i
+    %358:bool = eq %rhs, -1i
+    %359:bool = and %357, %358
+    %360:bool = or %356, %359
+    %361:i32 = select %rhs, 1i, %360
+    %362:i32 = let %361
+    %363:i32 = div %lhs, %362
+    %364:i32 = mul %363, %362
+    %365:i32 = sub %lhs, %364
+    ret %365
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B43: {
+    %367:i32 = convert %value
+    %368:bool = gte %value, -2147483648.0f
+    %369:i32 = select -2147483648i, %367, %368
+    %370:bool = lte %value, 2147483520.0f
+    %371:i32 = select 2147483647i, %369, %370
+    ret %371
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.msl
index 44aa392..4809e60 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-access-chains/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -26,52 +26,60 @@
     %directions:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %d:ptr<function, i32, read_write> = var
-    %x_57:vec4<f32> = load %gl_FragCoord
-    %16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_60:vec2<f32> = load %16
-    %18:f32 = access %x_57, 0u
-    %19:f32 = access %x_57, 1u
-    %20:vec2<f32> = construct %18, %19
-    %21:vec2<f32> = div %20, %x_60
-    store %pos, %21
-    %x_63:f32 = load_vector_element %pos, 0u
-    %x_67:f32 = load_vector_element %pos, 1u
-    %24:f32 = mul %x_63, 16.0f
-    %25:i32 = convert %24
-    %26:f32 = mul %x_67, 16.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %25, %27
-    store %ipos, %28
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_57:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %18:vec2<f32> = load %17
+    %x_60:vec2<f32> = let %18
+    %20:f32 = access %x_57, 0u
+    %21:f32 = access %x_57, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_60
+    store %pos, %23
+    %24:f32 = load_vector_element %pos, 0u
+    %x_63:f32 = let %24
+    %26:f32 = load_vector_element %pos, 1u
+    %x_67:f32 = let %26
+    %28:f32 = mul %x_63, 16.0f
+    %29:i32 = call %tint_f32_to_i32, %28
+    %31:i32 = let %29
+    %32:f32 = mul %x_67, 16.0f
+    %33:i32 = call %tint_f32_to_i32, %32
+    %34:vec2<i32> = construct %31, %33
+    store %ipos, %34
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_75:i32 = load %i
-        %30:bool = lt %x_75, 256i
-        if %30 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %35:i32 = load %i
+        %x_75:i32 = let %35
+        %37:bool = lt %x_75, 256i
+        if %37 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_78:i32 = load %i
-        %32:ptr<private, i32, read_write> = access %map, %x_78
-        store %32, 0i
-        continue %b4
+        %38:i32 = load %i
+        %x_78:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %map, %x_78
+        store %40, 0i
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_80:i32 = load %i
-        %34:i32 = add %x_80, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %i
+        %x_80:i32 = let %41
+        %43:i32 = add %x_80, 1i
+        store %i, %43
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_102:ptr<function, bool, read_write> = var
         %x_122:ptr<function, bool, read_write> = var
         %x_142:ptr<function, bool, read_write> = var
@@ -80,119 +88,148 @@
         %x_123_phi:ptr<function, bool, read_write> = var
         %x_143_phi:ptr<function, bool, read_write> = var
         %x_163_phi:ptr<function, bool, read_write> = var
-        %x_86:i32 = load %v
-        %44:i32 = add %x_86, 1i
-        store %v, %44
+        %52:i32 = load %v
+        %x_86:i32 = let %52
+        %54:i32 = add %x_86, 1i
+        store %v, %54
         store %directions, 0i
-        %x_89:i32 = load_vector_element %p, 0u
-        %x_90:bool = gt %x_89, 0i
+        %55:i32 = load_vector_element %p, 0u
+        %x_89:i32 = let %55
+        %57:bool = gt %x_89, 0i
+        %x_90:bool = let %57
         store %x_103_phi, %x_90
-        if %x_90 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %x_94:i32 = load_vector_element %p, 0u
-            %x_97:i32 = load_vector_element %p, 1u
-            %49:i32 = sub %x_94, 2i
-            %50:i32 = mul %x_97, 16i
-            %51:i32 = add %49, %50
-            %52:ptr<private, i32, read_write> = access %map, %51
-            %x_101:i32 = load %52
-            %54:bool = eq %x_101, 0i
-            store %x_102, %54
-            %55:bool = load %x_102
-            store %x_103_phi, %55
+        if %x_90 [t: $B9] {  # if_2
+          $B9: {  # true
+            %59:i32 = load_vector_element %p, 0u
+            %x_94:i32 = let %59
+            %61:i32 = load_vector_element %p, 1u
+            %x_97:i32 = let %61
+            %63:i32 = sub %x_94, 2i
+            %64:i32 = mul %x_97, 16i
+            %65:i32 = add %63, %64
+            %66:ptr<private, i32, read_write> = access %map, %65
+            %67:i32 = load %66
+            %x_101:i32 = let %67
+            %69:bool = eq %x_101, 0i
+            store %x_102, %69
+            %70:bool = load %x_102
+            store %x_103_phi, %70
             exit_if  # if_2
           }
         }
-        %x_103:bool = load %x_103_phi
-        if %x_103 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %x_106:i32 = load %directions
-            %58:i32 = add %x_106, 1i
-            store %directions, %58
+        %71:bool = load %x_103_phi
+        %x_103:bool = let %71
+        if %x_103 [t: $B10] {  # if_3
+          $B10: {  # true
+            %73:i32 = load %directions
+            %x_106:i32 = let %73
+            %75:i32 = add %x_106, 1i
+            store %directions, %75
             exit_if  # if_3
           }
         }
-        %x_109:i32 = load_vector_element %p, 1u
-        %x_110:bool = gt %x_109, 0i
+        %76:i32 = load_vector_element %p, 1u
+        %x_109:i32 = let %76
+        %78:bool = gt %x_109, 0i
+        %x_110:bool = let %78
         store %x_123_phi, %x_110
-        if %x_110 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %x_114:i32 = load_vector_element %p, 0u
-            %x_116:i32 = load_vector_element %p, 1u
-            %63:i32 = sub %x_116, 2i
-            %64:i32 = mul %63, 16i
-            %65:i32 = add %x_114, %64
-            %66:ptr<private, i32, read_write> = access %map, %65
-            %x_121:i32 = load %66
-            %68:bool = eq %x_121, 0i
-            store %x_122, %68
-            %69:bool = load %x_122
-            store %x_123_phi, %69
+        if %x_110 [t: $B11] {  # if_4
+          $B11: {  # true
+            %80:i32 = load_vector_element %p, 0u
+            %x_114:i32 = let %80
+            %82:i32 = load_vector_element %p, 1u
+            %x_116:i32 = let %82
+            %84:i32 = sub %x_116, 2i
+            %85:i32 = mul %84, 16i
+            %86:i32 = add %x_114, %85
+            %87:ptr<private, i32, read_write> = access %map, %86
+            %88:i32 = load %87
+            %x_121:i32 = let %88
+            %90:bool = eq %x_121, 0i
+            store %x_122, %90
+            %91:bool = load %x_122
+            store %x_123_phi, %91
             exit_if  # if_4
           }
         }
-        %x_123:bool = load %x_123_phi
-        if %x_123 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %x_126:i32 = load %directions
-            %72:i32 = add %x_126, 1i
-            store %directions, %72
+        %92:bool = load %x_123_phi
+        %x_123:bool = let %92
+        if %x_123 [t: $B12] {  # if_5
+          $B12: {  # true
+            %94:i32 = load %directions
+            %x_126:i32 = let %94
+            %96:i32 = add %x_126, 1i
+            store %directions, %96
             exit_if  # if_5
           }
         }
-        %x_129:i32 = load_vector_element %p, 0u
-        %x_130:bool = lt %x_129, 14i
+        %97:i32 = load_vector_element %p, 0u
+        %x_129:i32 = let %97
+        %99:bool = lt %x_129, 14i
+        %x_130:bool = let %99
         store %x_143_phi, %x_130
-        if %x_130 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %x_134:i32 = load_vector_element %p, 0u
-            %x_137:i32 = load_vector_element %p, 1u
-            %77:i32 = add %x_134, 2i
-            %78:i32 = mul %x_137, 16i
-            %79:i32 = add %77, %78
-            %80:ptr<private, i32, read_write> = access %map, %79
-            %x_141:i32 = load %80
-            %82:bool = eq %x_141, 0i
-            store %x_142, %82
-            %83:bool = load %x_142
-            store %x_143_phi, %83
+        if %x_130 [t: $B13] {  # if_6
+          $B13: {  # true
+            %101:i32 = load_vector_element %p, 0u
+            %x_134:i32 = let %101
+            %103:i32 = load_vector_element %p, 1u
+            %x_137:i32 = let %103
+            %105:i32 = add %x_134, 2i
+            %106:i32 = mul %x_137, 16i
+            %107:i32 = add %105, %106
+            %108:ptr<private, i32, read_write> = access %map, %107
+            %109:i32 = load %108
+            %x_141:i32 = let %109
+            %111:bool = eq %x_141, 0i
+            store %x_142, %111
+            %112:bool = load %x_142
+            store %x_143_phi, %112
             exit_if  # if_6
           }
         }
-        %x_143:bool = load %x_143_phi
-        if %x_143 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %x_146:i32 = load %directions
-            %86:i32 = add %x_146, 1i
-            store %directions, %86
+        %113:bool = load %x_143_phi
+        %x_143:bool = let %113
+        if %x_143 [t: $B14] {  # if_7
+          $B14: {  # true
+            %115:i32 = load %directions
+            %x_146:i32 = let %115
+            %117:i32 = add %x_146, 1i
+            store %directions, %117
             exit_if  # if_7
           }
         }
-        %x_149:i32 = load_vector_element %p, 1u
-        %x_150:bool = lt %x_149, 14i
+        %118:i32 = load_vector_element %p, 1u
+        %x_149:i32 = let %118
+        %120:bool = lt %x_149, 14i
+        %x_150:bool = let %120
         store %x_163_phi, %x_150
-        if %x_150 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %x_154:i32 = load_vector_element %p, 0u
-            %x_156:i32 = load_vector_element %p, 1u
-            %91:i32 = add %x_156, 2i
-            %92:i32 = mul %91, 16i
-            %93:i32 = add %x_154, %92
-            %94:ptr<private, i32, read_write> = access %map, %93
-            %x_161:i32 = load %94
-            %96:bool = eq %x_161, 0i
-            store %x_162, %96
-            %97:bool = load %x_162
-            store %x_163_phi, %97
+        if %x_150 [t: $B15] {  # if_8
+          $B15: {  # true
+            %122:i32 = load_vector_element %p, 0u
+            %x_154:i32 = let %122
+            %124:i32 = load_vector_element %p, 1u
+            %x_156:i32 = let %124
+            %126:i32 = add %x_156, 2i
+            %127:i32 = mul %126, 16i
+            %128:i32 = add %x_154, %127
+            %129:ptr<private, i32, read_write> = access %map, %128
+            %130:i32 = load %129
+            %x_161:i32 = let %130
+            %132:bool = eq %x_161, 0i
+            store %x_162, %132
+            %133:bool = load %x_162
+            store %x_163_phi, %133
             exit_if  # if_8
           }
         }
-        %x_163:bool = load %x_163_phi
-        if %x_163 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %x_166:i32 = load %directions
-            %100:i32 = add %x_166, 1i
-            store %directions, %100
+        %134:bool = load %x_163_phi
+        %x_163:bool = let %134
+        if %x_163 [t: $B16] {  # if_9
+          $B16: {  # true
+            %136:i32 = load %directions
+            %x_166:i32 = let %136
+            %138:i32 = add %x_166, 1i
+            store %directions, %138
             exit_if  # if_9
           }
         }
@@ -212,380 +249,489 @@
         %x_345_phi:ptr<function, bool, read_write> = var
         %x_384_phi:ptr<function, bool, read_write> = var
         %x_397_phi:ptr<function, bool, read_write> = var
-        %x_168:i32 = load %directions
-        %118:bool = eq %x_168, 0i
-        if %118 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %155:i32 = load %directions
+        %x_168:i32 = let %155
+        %157:bool = eq %x_168, 0i
+        if %157 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %x_177:i32 = load %i
-                %120:bool = lt %x_177, 8i
-                if %120 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %158:i32 = load %i
+                %x_177:i32 = let %158
+                %160:bool = lt %x_177, 8i
+                if %160 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %x_184:i32 = load %j
-                    %122:bool = lt %x_184, 8i
-                    if %122 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %161:i32 = load %j
+                    %x_184:i32 = let %161
+                    %163:bool = lt %x_184, 8i
+                    if %163 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_187:i32 = load %j
-                    %x_189:i32 = load %i
-                    %125:i32 = mul %x_187, 2i
-                    %126:i32 = mul %x_189, 2i
-                    %127:i32 = mul %126, 16i
-                    %128:i32 = add %125, %127
-                    %129:ptr<private, i32, read_write> = access %map, %128
-                    %x_194:i32 = load %129
-                    %131:bool = eq %x_194, 0i
-                    if %131 [t: %b27] {  # if_13
-                      %b27 = block {  # true
-                        %x_198:i32 = load %j
-                        %133:i32 = mul %x_198, 2i
-                        store_vector_element %p, 0u, %133
-                        %x_201:i32 = load %i
-                        %135:i32 = mul %x_201, 2i
-                        store_vector_element %p, 1u, %135
+                    %164:i32 = load %j
+                    %x_187:i32 = let %164
+                    %166:i32 = load %i
+                    %x_189:i32 = let %166
+                    %168:i32 = mul %x_187, 2i
+                    %169:i32 = mul %x_189, 2i
+                    %170:i32 = mul %169, 16i
+                    %171:i32 = add %168, %170
+                    %172:ptr<private, i32, read_write> = access %map, %171
+                    %173:i32 = load %172
+                    %x_194:i32 = let %173
+                    %175:bool = eq %x_194, 0i
+                    if %175 [t: $B27] {  # if_13
+                      $B27: {  # true
+                        %176:i32 = load %j
+                        %x_198:i32 = let %176
+                        %178:i32 = mul %x_198, 2i
+                        store_vector_element %p, 0u, %178
+                        %179:i32 = load %i
+                        %x_201:i32 = let %179
+                        %181:i32 = mul %x_201, 2i
+                        store_vector_element %p, 1u, %181
                         store %canwalk, true
                         exit_if  # if_13
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %x_204:i32 = load %j
-                    %137:i32 = add %x_204, 1i
-                    store %j, %137
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %182:i32 = load %j
+                    %x_204:i32 = let %182
+                    %184:i32 = add %x_204, 1i
+                    store %j, %184
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %x_206:i32 = load %i
-                %139:i32 = add %x_206, 1i
-                store %i, %139
-                next_iteration %b19
+              $B20: {  # continuing
+                %185:i32 = load %i
+                %x_206:i32 = let %185
+                %187:i32 = add %x_206, 1i
+                store %i, %187
+                next_iteration  # -> $B19
               }
             }
-            %x_209:i32 = load_vector_element %p, 0u
-            %x_211:i32 = load_vector_element %p, 1u
-            %142:i32 = mul %x_211, 16i
-            %143:i32 = add %x_209, %142
-            %144:ptr<private, i32, read_write> = access %map, %143
-            store %144, 1i
+            %188:i32 = load_vector_element %p, 0u
+            %x_209:i32 = let %188
+            %190:i32 = load_vector_element %p, 1u
+            %x_211:i32 = let %190
+            %192:i32 = mul %x_211, 16i
+            %193:i32 = add %x_209, %192
+            %194:ptr<private, i32, read_write> = access %map, %193
+            store %194, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %x_215:i32 = load %v
-            %x_216:i32 = load %directions
-            %147:i32 = mod %x_215, %x_216
-            store %d, %147
-            %x_218:i32 = load %directions
-            %x_219:i32 = load %v
-            %150:i32 = add %x_219, %x_218
-            store %v, %150
-            %x_221:i32 = load %d
-            %x_222:bool = gte %x_221, 0i
+          $B18: {  # false
+            %195:i32 = load %v
+            %x_215:i32 = let %195
+            %197:i32 = load %directions
+            %x_216:i32 = let %197
+            %199:i32 = call %tint_mod_i32, %x_215, %x_216
+            store %d, %199
+            %201:i32 = load %directions
+            %x_218:i32 = let %201
+            %203:i32 = load %v
+            %x_219:i32 = let %203
+            %205:i32 = add %x_219, %x_218
+            store %v, %205
+            %206:i32 = load %d
+            %x_221:i32 = let %206
+            %208:bool = gte %x_221, 0i
+            %x_222:bool = let %208
             store %x_228_phi, %x_222
-            if %x_222 [t: %b28] {  # if_14
-              %b28 = block {  # true
-                %x_226:i32 = load_vector_element %p, 0u
-                %154:bool = gt %x_226, 0i
-                store %x_227, %154
-                %155:bool = load %x_227
-                store %x_228_phi, %155
+            if %x_222 [t: $B28] {  # if_14
+              $B28: {  # true
+                %210:i32 = load_vector_element %p, 0u
+                %x_226:i32 = let %210
+                %212:bool = gt %x_226, 0i
+                store %x_227, %212
+                %213:bool = load %x_227
+                store %x_228_phi, %213
                 exit_if  # if_14
               }
             }
-            %x_228:bool = load %x_228_phi
+            %214:bool = load %x_228_phi
+            %x_228:bool = let %214
             store %x_241_phi, %x_228
-            if %x_228 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %x_232:i32 = load_vector_element %p, 0u
-                %x_235:i32 = load_vector_element %p, 1u
-                %159:i32 = sub %x_232, 2i
-                %160:i32 = mul %x_235, 16i
-                %161:i32 = add %159, %160
-                %162:ptr<private, i32, read_write> = access %map, %161
-                %x_239:i32 = load %162
-                %164:bool = eq %x_239, 0i
-                store %x_240, %164
-                %165:bool = load %x_240
-                store %x_241_phi, %165
+            if %x_228 [t: $B29] {  # if_15
+              $B29: {  # true
+                %216:i32 = load_vector_element %p, 0u
+                %x_232:i32 = let %216
+                %218:i32 = load_vector_element %p, 1u
+                %x_235:i32 = let %218
+                %220:i32 = sub %x_232, 2i
+                %221:i32 = mul %x_235, 16i
+                %222:i32 = add %220, %221
+                %223:ptr<private, i32, read_write> = access %map, %222
+                %224:i32 = load %223
+                %x_239:i32 = let %224
+                %226:bool = eq %x_239, 0i
+                store %x_240, %226
+                %227:bool = load %x_240
+                store %x_241_phi, %227
                 exit_if  # if_15
               }
             }
-            %x_241:bool = load %x_241_phi
-            if %x_241 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %x_244:i32 = load %d
-                %168:i32 = sub %x_244, 1i
-                store %d, %168
-                %x_247:i32 = load_vector_element %p, 0u
-                %x_249:i32 = load_vector_element %p, 1u
-                %171:i32 = mul %x_249, 16i
-                %172:i32 = add %x_247, %171
-                %173:ptr<private, i32, read_write> = access %map, %172
-                store %173, 1i
-                %x_254:i32 = load_vector_element %p, 0u
-                %x_257:i32 = load_vector_element %p, 1u
-                %176:i32 = sub %x_254, 1i
-                %177:i32 = mul %x_257, 16i
-                %178:i32 = add %176, %177
-                %179:ptr<private, i32, read_write> = access %map, %178
-                store %179, 1i
-                %x_262:i32 = load_vector_element %p, 0u
-                %x_265:i32 = load_vector_element %p, 1u
-                %182:i32 = sub %x_262, 2i
-                %183:i32 = mul %x_265, 16i
-                %184:i32 = add %182, %183
-                %185:ptr<private, i32, read_write> = access %map, %184
-                store %185, 1i
-                %x_270:i32 = load_vector_element %p, 0u
-                %187:i32 = sub %x_270, 2i
-                store_vector_element %p, 0u, %187
+            %228:bool = load %x_241_phi
+            %x_241:bool = let %228
+            if %x_241 [t: $B30] {  # if_16
+              $B30: {  # true
+                %230:i32 = load %d
+                %x_244:i32 = let %230
+                %232:i32 = sub %x_244, 1i
+                store %d, %232
+                %233:i32 = load_vector_element %p, 0u
+                %x_247:i32 = let %233
+                %235:i32 = load_vector_element %p, 1u
+                %x_249:i32 = let %235
+                %237:i32 = mul %x_249, 16i
+                %238:i32 = add %x_247, %237
+                %239:ptr<private, i32, read_write> = access %map, %238
+                store %239, 1i
+                %240:i32 = load_vector_element %p, 0u
+                %x_254:i32 = let %240
+                %242:i32 = load_vector_element %p, 1u
+                %x_257:i32 = let %242
+                %244:i32 = sub %x_254, 1i
+                %245:i32 = mul %x_257, 16i
+                %246:i32 = add %244, %245
+                %247:ptr<private, i32, read_write> = access %map, %246
+                store %247, 1i
+                %248:i32 = load_vector_element %p, 0u
+                %x_262:i32 = let %248
+                %250:i32 = load_vector_element %p, 1u
+                %x_265:i32 = let %250
+                %252:i32 = sub %x_262, 2i
+                %253:i32 = mul %x_265, 16i
+                %254:i32 = add %252, %253
+                %255:ptr<private, i32, read_write> = access %map, %254
+                store %255, 1i
+                %256:i32 = load_vector_element %p, 0u
+                %x_270:i32 = let %256
+                %258:i32 = sub %x_270, 2i
+                store_vector_element %p, 0u, %258
                 exit_if  # if_16
               }
             }
-            %x_273:i32 = load %d
-            %x_274:bool = gte %x_273, 0i
+            %259:i32 = load %d
+            %x_273:i32 = let %259
+            %261:bool = gte %x_273, 0i
+            %x_274:bool = let %261
             store %x_280_phi, %x_274
-            if %x_274 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %x_278:i32 = load_vector_element %p, 1u
-                %191:bool = gt %x_278, 0i
-                store %x_279, %191
-                %192:bool = load %x_279
-                store %x_280_phi, %192
+            if %x_274 [t: $B31] {  # if_17
+              $B31: {  # true
+                %263:i32 = load_vector_element %p, 1u
+                %x_278:i32 = let %263
+                %265:bool = gt %x_278, 0i
+                store %x_279, %265
+                %266:bool = load %x_279
+                store %x_280_phi, %266
                 exit_if  # if_17
               }
             }
-            %x_280:bool = load %x_280_phi
+            %267:bool = load %x_280_phi
+            %x_280:bool = let %267
             store %x_293_phi, %x_280
-            if %x_280 [t: %b32] {  # if_18
-              %b32 = block {  # true
-                %x_284:i32 = load_vector_element %p, 0u
-                %x_286:i32 = load_vector_element %p, 1u
-                %196:i32 = sub %x_286, 2i
-                %197:i32 = mul %196, 16i
-                %198:i32 = add %x_284, %197
-                %199:ptr<private, i32, read_write> = access %map, %198
-                %x_291:i32 = load %199
-                %201:bool = eq %x_291, 0i
-                store %x_292, %201
-                %202:bool = load %x_292
-                store %x_293_phi, %202
+            if %x_280 [t: $B32] {  # if_18
+              $B32: {  # true
+                %269:i32 = load_vector_element %p, 0u
+                %x_284:i32 = let %269
+                %271:i32 = load_vector_element %p, 1u
+                %x_286:i32 = let %271
+                %273:i32 = sub %x_286, 2i
+                %274:i32 = mul %273, 16i
+                %275:i32 = add %x_284, %274
+                %276:ptr<private, i32, read_write> = access %map, %275
+                %277:i32 = load %276
+                %x_291:i32 = let %277
+                %279:bool = eq %x_291, 0i
+                store %x_292, %279
+                %280:bool = load %x_292
+                store %x_293_phi, %280
                 exit_if  # if_18
               }
             }
-            %x_293:bool = load %x_293_phi
-            if %x_293 [t: %b33] {  # if_19
-              %b33 = block {  # true
-                %x_296:i32 = load %d
-                %205:i32 = sub %x_296, 1i
-                store %d, %205
-                %x_299:i32 = load_vector_element %p, 0u
-                %x_301:i32 = load_vector_element %p, 1u
-                %208:i32 = mul %x_301, 16i
-                %209:i32 = add %x_299, %208
-                %210:ptr<private, i32, read_write> = access %map, %209
-                store %210, 1i
-                %x_306:i32 = load_vector_element %p, 0u
-                %x_308:i32 = load_vector_element %p, 1u
-                %213:i32 = sub %x_308, 1i
-                %214:i32 = mul %213, 16i
-                %215:i32 = add %x_306, %214
-                %216:ptr<private, i32, read_write> = access %map, %215
-                store %216, 1i
-                %x_314:i32 = load_vector_element %p, 0u
-                %x_316:i32 = load_vector_element %p, 1u
-                %219:i32 = sub %x_316, 2i
-                %220:i32 = mul %219, 16i
-                %221:i32 = add %x_314, %220
-                %222:ptr<private, i32, read_write> = access %map, %221
-                store %222, 1i
-                %x_322:i32 = load_vector_element %p, 1u
-                %224:i32 = sub %x_322, 2i
-                store_vector_element %p, 1u, %224
+            %281:bool = load %x_293_phi
+            %x_293:bool = let %281
+            if %x_293 [t: $B33] {  # if_19
+              $B33: {  # true
+                %283:i32 = load %d
+                %x_296:i32 = let %283
+                %285:i32 = sub %x_296, 1i
+                store %d, %285
+                %286:i32 = load_vector_element %p, 0u
+                %x_299:i32 = let %286
+                %288:i32 = load_vector_element %p, 1u
+                %x_301:i32 = let %288
+                %290:i32 = mul %x_301, 16i
+                %291:i32 = add %x_299, %290
+                %292:ptr<private, i32, read_write> = access %map, %291
+                store %292, 1i
+                %293:i32 = load_vector_element %p, 0u
+                %x_306:i32 = let %293
+                %295:i32 = load_vector_element %p, 1u
+                %x_308:i32 = let %295
+                %297:i32 = sub %x_308, 1i
+                %298:i32 = mul %297, 16i
+                %299:i32 = add %x_306, %298
+                %300:ptr<private, i32, read_write> = access %map, %299
+                store %300, 1i
+                %301:i32 = load_vector_element %p, 0u
+                %x_314:i32 = let %301
+                %303:i32 = load_vector_element %p, 1u
+                %x_316:i32 = let %303
+                %305:i32 = sub %x_316, 2i
+                %306:i32 = mul %305, 16i
+                %307:i32 = add %x_314, %306
+                %308:ptr<private, i32, read_write> = access %map, %307
+                store %308, 1i
+                %309:i32 = load_vector_element %p, 1u
+                %x_322:i32 = let %309
+                %311:i32 = sub %x_322, 2i
+                store_vector_element %p, 1u, %311
                 exit_if  # if_19
               }
             }
-            %x_325:i32 = load %d
-            %x_326:bool = gte %x_325, 0i
+            %312:i32 = load %d
+            %x_325:i32 = let %312
+            %314:bool = gte %x_325, 0i
+            %x_326:bool = let %314
             store %x_332_phi, %x_326
-            if %x_326 [t: %b34] {  # if_20
-              %b34 = block {  # true
-                %x_330:i32 = load_vector_element %p, 0u
-                %228:bool = lt %x_330, 14i
-                store %x_331, %228
-                %229:bool = load %x_331
-                store %x_332_phi, %229
+            if %x_326 [t: $B34] {  # if_20
+              $B34: {  # true
+                %316:i32 = load_vector_element %p, 0u
+                %x_330:i32 = let %316
+                %318:bool = lt %x_330, 14i
+                store %x_331, %318
+                %319:bool = load %x_331
+                store %x_332_phi, %319
                 exit_if  # if_20
               }
             }
-            %x_332:bool = load %x_332_phi
+            %320:bool = load %x_332_phi
+            %x_332:bool = let %320
             store %x_345_phi, %x_332
-            if %x_332 [t: %b35] {  # if_21
-              %b35 = block {  # true
-                %x_336:i32 = load_vector_element %p, 0u
-                %x_339:i32 = load_vector_element %p, 1u
-                %233:i32 = add %x_336, 2i
-                %234:i32 = mul %x_339, 16i
-                %235:i32 = add %233, %234
-                %236:ptr<private, i32, read_write> = access %map, %235
-                %x_343:i32 = load %236
-                %238:bool = eq %x_343, 0i
-                store %x_344, %238
-                %239:bool = load %x_344
-                store %x_345_phi, %239
+            if %x_332 [t: $B35] {  # if_21
+              $B35: {  # true
+                %322:i32 = load_vector_element %p, 0u
+                %x_336:i32 = let %322
+                %324:i32 = load_vector_element %p, 1u
+                %x_339:i32 = let %324
+                %326:i32 = add %x_336, 2i
+                %327:i32 = mul %x_339, 16i
+                %328:i32 = add %326, %327
+                %329:ptr<private, i32, read_write> = access %map, %328
+                %330:i32 = load %329
+                %x_343:i32 = let %330
+                %332:bool = eq %x_343, 0i
+                store %x_344, %332
+                %333:bool = load %x_344
+                store %x_345_phi, %333
                 exit_if  # if_21
               }
             }
-            %x_345:bool = load %x_345_phi
-            if %x_345 [t: %b36] {  # if_22
-              %b36 = block {  # true
-                %x_348:i32 = load %d
-                %242:i32 = sub %x_348, 1i
-                store %d, %242
-                %x_351:i32 = load_vector_element %p, 0u
-                %x_353:i32 = load_vector_element %p, 1u
-                %245:i32 = mul %x_353, 16i
-                %246:i32 = add %x_351, %245
-                %247:ptr<private, i32, read_write> = access %map, %246
-                store %247, 1i
-                %x_358:i32 = load_vector_element %p, 0u
-                %x_361:i32 = load_vector_element %p, 1u
-                %250:i32 = add %x_358, 1i
-                %251:i32 = mul %x_361, 16i
-                %252:i32 = add %250, %251
-                %253:ptr<private, i32, read_write> = access %map, %252
-                store %253, 1i
-                %x_366:i32 = load_vector_element %p, 0u
-                %x_369:i32 = load_vector_element %p, 1u
-                %256:i32 = add %x_366, 2i
-                %257:i32 = mul %x_369, 16i
-                %258:i32 = add %256, %257
-                %259:ptr<private, i32, read_write> = access %map, %258
-                store %259, 1i
-                %x_374:i32 = load_vector_element %p, 0u
-                %261:i32 = add %x_374, 2i
-                store_vector_element %p, 0u, %261
+            %334:bool = load %x_345_phi
+            %x_345:bool = let %334
+            if %x_345 [t: $B36] {  # if_22
+              $B36: {  # true
+                %336:i32 = load %d
+                %x_348:i32 = let %336
+                %338:i32 = sub %x_348, 1i
+                store %d, %338
+                %339:i32 = load_vector_element %p, 0u
+                %x_351:i32 = let %339
+                %341:i32 = load_vector_element %p, 1u
+                %x_353:i32 = let %341
+                %343:i32 = mul %x_353, 16i
+                %344:i32 = add %x_351, %343
+                %345:ptr<private, i32, read_write> = access %map, %344
+                store %345, 1i
+                %346:i32 = load_vector_element %p, 0u
+                %x_358:i32 = let %346
+                %348:i32 = load_vector_element %p, 1u
+                %x_361:i32 = let %348
+                %350:i32 = add %x_358, 1i
+                %351:i32 = mul %x_361, 16i
+                %352:i32 = add %350, %351
+                %353:ptr<private, i32, read_write> = access %map, %352
+                store %353, 1i
+                %354:i32 = load_vector_element %p, 0u
+                %x_366:i32 = let %354
+                %356:i32 = load_vector_element %p, 1u
+                %x_369:i32 = let %356
+                %358:i32 = add %x_366, 2i
+                %359:i32 = mul %x_369, 16i
+                %360:i32 = add %358, %359
+                %361:ptr<private, i32, read_write> = access %map, %360
+                store %361, 1i
+                %362:i32 = load_vector_element %p, 0u
+                %x_374:i32 = let %362
+                %364:i32 = add %x_374, 2i
+                store_vector_element %p, 0u, %364
                 exit_if  # if_22
               }
             }
-            %x_377:i32 = load %d
-            %x_378:bool = gte %x_377, 0i
+            %365:i32 = load %d
+            %x_377:i32 = let %365
+            %367:bool = gte %x_377, 0i
+            %x_378:bool = let %367
             store %x_384_phi, %x_378
-            if %x_378 [t: %b37] {  # if_23
-              %b37 = block {  # true
-                %x_382:i32 = load_vector_element %p, 1u
-                %265:bool = lt %x_382, 14i
-                store %x_383, %265
-                %266:bool = load %x_383
-                store %x_384_phi, %266
+            if %x_378 [t: $B37] {  # if_23
+              $B37: {  # true
+                %369:i32 = load_vector_element %p, 1u
+                %x_382:i32 = let %369
+                %371:bool = lt %x_382, 14i
+                store %x_383, %371
+                %372:bool = load %x_383
+                store %x_384_phi, %372
                 exit_if  # if_23
               }
             }
-            %x_384:bool = load %x_384_phi
+            %373:bool = load %x_384_phi
+            %x_384:bool = let %373
             store %x_397_phi, %x_384
-            if %x_384 [t: %b38] {  # if_24
-              %b38 = block {  # true
-                %x_388:i32 = load_vector_element %p, 0u
-                %x_390:i32 = load_vector_element %p, 1u
-                %270:i32 = add %x_390, 2i
-                %271:i32 = mul %270, 16i
-                %272:i32 = add %x_388, %271
-                %273:ptr<private, i32, read_write> = access %map, %272
-                %x_395:i32 = load %273
-                %275:bool = eq %x_395, 0i
-                store %x_396, %275
-                %276:bool = load %x_396
-                store %x_397_phi, %276
+            if %x_384 [t: $B38] {  # if_24
+              $B38: {  # true
+                %375:i32 = load_vector_element %p, 0u
+                %x_388:i32 = let %375
+                %377:i32 = load_vector_element %p, 1u
+                %x_390:i32 = let %377
+                %379:i32 = add %x_390, 2i
+                %380:i32 = mul %379, 16i
+                %381:i32 = add %x_388, %380
+                %382:ptr<private, i32, read_write> = access %map, %381
+                %383:i32 = load %382
+                %x_395:i32 = let %383
+                %385:bool = eq %x_395, 0i
+                store %x_396, %385
+                %386:bool = load %x_396
+                store %x_397_phi, %386
                 exit_if  # if_24
               }
             }
-            %x_397:bool = load %x_397_phi
-            if %x_397 [t: %b39] {  # if_25
-              %b39 = block {  # true
-                %x_400:i32 = load %d
-                %279:i32 = sub %x_400, 1i
-                store %d, %279
-                %x_403:i32 = load_vector_element %p, 0u
-                %x_405:i32 = load_vector_element %p, 1u
-                %282:i32 = mul %x_405, 16i
-                %283:i32 = add %x_403, %282
-                %284:ptr<private, i32, read_write> = access %map, %283
-                store %284, 1i
-                %x_410:i32 = load_vector_element %p, 0u
-                %x_412:i32 = load_vector_element %p, 1u
-                %287:i32 = add %x_412, 1i
-                %288:i32 = mul %287, 16i
-                %289:i32 = add %x_410, %288
-                %290:ptr<private, i32, read_write> = access %map, %289
-                store %290, 1i
-                %x_418:i32 = load_vector_element %p, 0u
-                %x_420:i32 = load_vector_element %p, 1u
-                %293:i32 = add %x_420, 2i
-                %294:i32 = mul %293, 16i
-                %295:i32 = add %x_418, %294
-                %296:ptr<private, i32, read_write> = access %map, %295
-                store %296, 1i
-                %x_426:i32 = load_vector_element %p, 1u
-                %298:i32 = add %x_426, 2i
-                store_vector_element %p, 1u, %298
+            %387:bool = load %x_397_phi
+            %x_397:bool = let %387
+            if %x_397 [t: $B39] {  # if_25
+              $B39: {  # true
+                %389:i32 = load %d
+                %x_400:i32 = let %389
+                %391:i32 = sub %x_400, 1i
+                store %d, %391
+                %392:i32 = load_vector_element %p, 0u
+                %x_403:i32 = let %392
+                %394:i32 = load_vector_element %p, 1u
+                %x_405:i32 = let %394
+                %396:i32 = mul %x_405, 16i
+                %397:i32 = add %x_403, %396
+                %398:ptr<private, i32, read_write> = access %map, %397
+                store %398, 1i
+                %399:i32 = load_vector_element %p, 0u
+                %x_410:i32 = let %399
+                %401:i32 = load_vector_element %p, 1u
+                %x_412:i32 = let %401
+                %403:i32 = add %x_412, 1i
+                %404:i32 = mul %403, 16i
+                %405:i32 = add %x_410, %404
+                %406:ptr<private, i32, read_write> = access %map, %405
+                store %406, 1i
+                %407:i32 = load_vector_element %p, 0u
+                %x_418:i32 = let %407
+                %409:i32 = load_vector_element %p, 1u
+                %x_420:i32 = let %409
+                %411:i32 = add %x_420, 2i
+                %412:i32 = mul %411, 16i
+                %413:i32 = add %x_418, %412
+                %414:ptr<private, i32, read_write> = access %map, %413
+                store %414, 1i
+                %415:i32 = load_vector_element %p, 1u
+                %x_426:i32 = let %415
+                %417:i32 = add %x_426, 2i
+                store_vector_element %p, 1u, %417
                 exit_if  # if_25
               }
             }
             exit_if  # if_10
           }
         }
-        %x_430:i32 = load_vector_element %ipos, 1u
-        %x_433:i32 = load_vector_element %ipos, 0u
-        %301:i32 = mul %x_430, 16i
-        %302:i32 = add %301, %x_433
-        %303:ptr<private, i32, read_write> = access %map, %302
-        %x_436:i32 = load %303
-        %305:bool = eq %x_436, 1i
-        if %305 [t: %b40] {  # if_26
-          %b40 = block {  # true
+        %418:i32 = load_vector_element %ipos, 1u
+        %x_430:i32 = let %418
+        %420:i32 = load_vector_element %ipos, 0u
+        %x_433:i32 = let %420
+        %422:i32 = mul %x_430, 16i
+        %423:i32 = add %422, %x_433
+        %424:ptr<private, i32, read_write> = access %map, %423
+        %425:i32 = load %424
+        %x_436:i32 = let %425
+        %427:bool = eq %x_436, 1i
+        if %427 [t: $B40] {  # if_26
+          $B40: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_440:bool = load %canwalk
-        %307:bool = eq %x_440, false
-        break_if %307 %b7
+      $B8: {  # continuing
+        %428:bool = load %canwalk
+        %x_440:bool = let %428
+        %430:bool = eq %x_440, false
+        break_if %430  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b41 {
-  %b41 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B41: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %310:void = call %main_1
-    %311:vec4<f32> = load %x_GLF_color
-    %312:main_out = construct %311
-    ret %312
+    %433:void = call %main_1
+    %434:vec4<f32> = load %x_GLF_color
+    %435:main_out = construct %434
+    ret %435
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B42: {
+    %438:bool = eq %rhs, 0i
+    %439:bool = eq %lhs, -2147483648i
+    %440:bool = eq %rhs, -1i
+    %441:bool = and %439, %440
+    %442:bool = or %438, %441
+    %443:i32 = select %rhs, 1i, %442
+    %444:i32 = let %443
+    %445:i32 = div %lhs, %444
+    %446:i32 = mul %445, %444
+    %447:i32 = sub %lhs, %446
+    ret %447
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B43: {
+    %449:i32 = convert %value
+    %450:bool = gte %value, -2147483648.0f
+    %451:i32 = select -2147483648i, %449, %450
+    %452:bool = lte %value, 2147483520.0f
+    %453:i32 = select 2147483647i, %451, %452
+    ret %453
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.msl
index 753e982..65d1eb6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_51:ptr<function, f32, read_write> = var
     %x_55:ptr<function, f32, read_write> = var
@@ -33,111 +33,115 @@
     %18:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %19:f32 = load_vector_element %18, 0u
     %20:f32 = mul %19, 0.125f
-    %x_49:f32 = round %20
-    %22:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_51, %22
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %21:f32 = round %20
+    %x_49:f32 = let %21
+    %23:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_51, %23
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_55, -0.5f
         store %x_58, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_68:ptr<function, f32, read_write> = var
             %x_76:ptr<function, f32, read_write> = var
             %x_59:ptr<function, i32, read_write> = var
             store %x_81, 0.0f
-            %26:f32 = load %x_55
-            store %x_82, %26
+            %27:f32 = load %x_55
+            store %x_82, %27
             store %x_83, false
-            %27:i32 = load %x_58
-            %28:bool = lt %27, 800i
-            if %28 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %28:i32 = load %x_58
+            %29:bool = lt %28, 800i
+            if %29 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_75:ptr<function, f32, read_write> = var
-            %30:i32 = load %x_58
-            %31:i32 = mod %30, 32i
-            %32:bool = eq %31, 0i
-            if %32 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %33:f32 = load %x_55
-                %34:f32 = add %33, 0.40000000596046447754f
-                store %x_68, %34
-                %35:f32 = load %x_68
-                store %x_56, %35
+            %31:i32 = load %x_58
+            %32:i32 = call %tint_mod_i32, %31, 32i
+            %34:bool = eq %32, 0i
+            if %34 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %35:f32 = load %x_55
+                %36:f32 = add %35, 0.40000000596046447754f
+                store %x_68, %36
+                %37:f32 = load %x_68
+                store %x_56, %37
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %36:f32 = load %x_55
-                store %x_76, %36
-                %37:i32 = load %x_58
-                %38:f32 = convert %37
-                %39:f32 = round %x_49
-                %40:i32 = load %x_58
-                %41:f32 = convert %40
+              $B9: {  # false
+                %38:f32 = load %x_55
+                store %x_76, %38
+                %39:i32 = load %x_58
+                %40:f32 = convert %39
+                %41:f32 = let %40
                 %42:f32 = round %x_49
-                %43:f32 = div %41, %42
-                %44:f32 = floor %43
-                %45:f32 = mul %39, %44
-                %46:f32 = sub %38, %45
-                %47:bool = lte %46, 0.00999999977648258209f
-                if %47 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %48:f32 = load %x_55
-                    %49:f32 = add %48, 100.0f
-                    store %x_75, %49
-                    %50:f32 = load %x_75
-                    store %x_76, %50
+                %43:f32 = let %42
+                %44:i32 = load %x_58
+                %45:f32 = convert %44
+                %46:f32 = let %45
+                %47:f32 = round %x_49
+                %48:f32 = div %46, %47
+                %49:f32 = floor %48
+                %50:f32 = mul %43, %49
+                %51:f32 = sub %41, %50
+                %52:bool = lte %51, 0.00999999977648258209f
+                if %52 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %53:f32 = load %x_55
+                    %54:f32 = add %53, 100.0f
+                    store %x_75, %54
+                    %55:f32 = load %x_75
+                    store %x_76, %55
                     exit_if  # if_3
                   }
                 }
-                %51:f32 = load %x_76
-                store %x_56, %51
+                %56:f32 = load %x_76
+                store %x_56, %56
                 exit_if  # if_2
               }
             }
-            %52:i32 = load %x_58
-            %53:f32 = convert %52
-            %54:f32 = load %x_51
-            %55:bool = gte %53, %54
-            if %55 [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %56:f32 = load %x_56
-                store %x_81, %56
-                %57:f32 = load %x_56
-                store %x_82, %57
+            %57:i32 = load %x_58
+            %58:f32 = convert %57
+            %59:f32 = load %x_51
+            %60:bool = gte %58, %59
+            if %60 [t: $B11] {  # if_4
+              $B11: {  # true
+                %61:f32 = load %x_56
+                store %x_81, %61
+                %62:f32 = load %x_56
+                store %x_82, %62
                 store %x_83, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %58:i32 = load %x_58
-            %59:i32 = add %58, 1i
-            store %x_59, %59
-            %60:f32 = load %x_56
-            store %x_55, %60
-            %61:i32 = load %x_59
-            store %x_58, %61
-            next_iteration %b4
+          $B5: {  # continuing
+            %63:i32 = load %x_58
+            %64:i32 = add %63, 1i
+            store %x_59, %64
+            %65:f32 = load %x_56
+            store %x_55, %65
+            %66:i32 = load %x_59
+            store %x_58, %66
+            next_iteration  # -> $B4
           }
         }
-        %62:f32 = load %x_81
-        store %x_85, %62
-        %63:bool = load %x_83
-        if %63 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %67:f32 = load %x_81
+        store %x_85, %67
+        %68:bool = load %x_83
+        if %68 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
-        %64:f32 = load %x_82
-        store %x_85, %64
+        %69:f32 = load %x_82
+        store %x_85, %69
         exit_switch  # switch_1
       }
     }
@@ -146,179 +150,198 @@
     %x_95:ptr<function, i32, read_write> = var
     %x_93:ptr<function, f32, read_write> = var
     %x_120:ptr<function, bool, read_write> = var
-    %70:f32 = load %x_85
-    store_vector_element %c, 0u, %70
-    %71:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_88, %71
-    switch 0u [c: (default, %b13)] {  # switch_2
-      %b13 = block {  # case
+    %75:f32 = load %x_85
+    store_vector_element %c, 0u, %75
+    %76:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_88, %76
+    switch 0u [c: (default, $B13)] {  # switch_2
+      $B13: {  # case
         store %x_92, -0.5f
         store %x_95, 1i
-        loop [b: %b14, c: %b15] {  # loop_2
-          %b14 = block {  # body
+        loop [b: $B14, c: $B15] {  # loop_2
+          $B14: {  # body
             %x_105:ptr<function, f32, read_write> = var
             %x_113:ptr<function, f32, read_write> = var
             %x_96:ptr<function, i32, read_write> = var
             store %x_118, 0.0f
-            %75:f32 = load %x_92
-            store %x_119, %75
+            %80:f32 = load %x_92
+            store %x_119, %80
             store %x_120, false
-            %76:i32 = load %x_95
-            %77:bool = lt %76, 800i
-            if %77 [t: %b16, f: %b17] {  # if_6
-              %b16 = block {  # true
+            %81:i32 = load %x_95
+            %82:bool = lt %81, 800i
+            if %82 [t: $B16, f: $B17] {  # if_6
+              $B16: {  # true
                 exit_if  # if_6
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_112:ptr<function, f32, read_write> = var
-            %79:i32 = load %x_95
-            %80:i32 = mod %79, 32i
-            %81:bool = eq %80, 0i
-            if %81 [t: %b18, f: %b19] {  # if_7
-              %b18 = block {  # true
-                %82:f32 = load %x_92
-                %83:f32 = add %82, 0.40000000596046447754f
-                store %x_105, %83
-                %84:f32 = load %x_105
-                store %x_93, %84
+            %84:i32 = load %x_95
+            %85:i32 = call %tint_mod_i32, %84, 32i
+            %86:bool = eq %85, 0i
+            if %86 [t: $B18, f: $B19] {  # if_7
+              $B18: {  # true
+                %87:f32 = load %x_92
+                %88:f32 = add %87, 0.40000000596046447754f
+                store %x_105, %88
+                %89:f32 = load %x_105
+                store %x_93, %89
                 exit_if  # if_7
               }
-              %b19 = block {  # false
-                %85:f32 = load %x_92
-                store %x_113, %85
-                %86:i32 = load %x_95
-                %87:f32 = convert %86
-                %88:f32 = round %x_49
-                %89:i32 = load %x_95
-                %90:f32 = convert %89
-                %91:f32 = round %x_49
-                %92:f32 = div %90, %91
-                %93:f32 = floor %92
-                %94:f32 = mul %88, %93
-                %95:f32 = sub %87, %94
-                %96:bool = lte %95, 0.00999999977648258209f
-                if %96 [t: %b20] {  # if_8
-                  %b20 = block {  # true
-                    %97:f32 = load %x_92
-                    %98:f32 = add %97, 100.0f
-                    store %x_112, %98
-                    %99:f32 = load %x_112
-                    store %x_113, %99
+              $B19: {  # false
+                %90:f32 = load %x_92
+                store %x_113, %90
+                %91:i32 = load %x_95
+                %92:f32 = convert %91
+                %93:f32 = let %92
+                %94:f32 = round %x_49
+                %95:f32 = let %94
+                %96:i32 = load %x_95
+                %97:f32 = convert %96
+                %98:f32 = let %97
+                %99:f32 = round %x_49
+                %100:f32 = div %98, %99
+                %101:f32 = floor %100
+                %102:f32 = mul %95, %101
+                %103:f32 = sub %93, %102
+                %104:bool = lte %103, 0.00999999977648258209f
+                if %104 [t: $B20] {  # if_8
+                  $B20: {  # true
+                    %105:f32 = load %x_92
+                    %106:f32 = add %105, 100.0f
+                    store %x_112, %106
+                    %107:f32 = load %x_112
+                    store %x_113, %107
                     exit_if  # if_8
                   }
                 }
-                %100:f32 = load %x_113
-                store %x_93, %100
+                %108:f32 = load %x_113
+                store %x_93, %108
                 exit_if  # if_7
               }
             }
-            %101:i32 = load %x_95
-            %102:f32 = convert %101
-            %103:f32 = load %x_88
-            %104:bool = gte %102, %103
-            if %104 [t: %b21] {  # if_9
-              %b21 = block {  # true
-                %105:f32 = load %x_93
-                store %x_118, %105
-                %106:f32 = load %x_93
-                store %x_119, %106
+            %109:i32 = load %x_95
+            %110:f32 = convert %109
+            %111:f32 = load %x_88
+            %112:bool = gte %110, %111
+            if %112 [t: $B21] {  # if_9
+              $B21: {  # true
+                %113:f32 = load %x_93
+                store %x_118, %113
+                %114:f32 = load %x_93
+                store %x_119, %114
                 store %x_120, true
                 exit_loop  # loop_2
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %107:i32 = load %x_95
-            %108:i32 = add %107, 1i
-            store %x_96, %108
-            %109:f32 = load %x_93
-            store %x_92, %109
-            %110:i32 = load %x_96
-            store %x_95, %110
-            next_iteration %b14
+          $B15: {  # continuing
+            %115:i32 = load %x_95
+            %116:i32 = add %115, 1i
+            store %x_96, %116
+            %117:f32 = load %x_93
+            store %x_92, %117
+            %118:i32 = load %x_96
+            store %x_95, %118
+            next_iteration  # -> $B14
           }
         }
-        %111:f32 = load %x_118
-        store %x_122, %111
-        %112:bool = load %x_120
-        if %112 [t: %b22] {  # if_10
-          %b22 = block {  # true
+        %119:f32 = load %x_118
+        store %x_122, %119
+        %120:bool = load %x_120
+        if %120 [t: $B22] {  # if_10
+          $B22: {  # true
             exit_switch  # switch_2
           }
         }
-        %113:f32 = load %x_119
-        store %x_122, %113
+        %121:f32 = load %x_119
+        store %x_122, %121
         exit_switch  # switch_2
       }
     }
-    %114:f32 = load %x_122
-    store_vector_element %c, 1u, %114
-    %115:f32 = load_vector_element %c, 0u
-    %116:f32 = load_vector_element %c, 1u
-    %117:f32 = add %115, %116
-    store_vector_element %c, 2u, %117
+    %122:f32 = load %x_122
+    store_vector_element %c, 1u, %122
+    %123:f32 = load_vector_element %c, 0u
+    %124:f32 = load_vector_element %c, 1u
+    %125:f32 = add %123, %124
+    store_vector_element %c, 2u, %125
     store %x_129, 0i
-    loop [b: %b23, c: %b24] {  # loop_3
-      %b23 = block {  # body
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
         %x_130:ptr<function, i32, read_write> = var
-        %119:i32 = load %x_129
-        %120:bool = lt %119, 3i
-        if %120 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
+        %127:i32 = load %x_129
+        %128:bool = lt %127, 3i
+        if %128 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
             exit_if  # if_11
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_3
           }
         }
-        %121:i32 = load %x_129
-        %122:f32 = load_vector_element %c, %121
-        %123:bool = gte %122, 1.0f
-        if %123 [t: %b27] {  # if_12
-          %b27 = block {  # true
-            %124:i32 = load %x_129
-            %125:i32 = load %x_129
-            %126:f32 = load_vector_element %c, %125
-            %127:i32 = load %x_129
-            %128:f32 = load_vector_element %c, %127
-            %129:f32 = mul %126, %128
-            store_vector_element %c, %124, %129
+        %129:i32 = load %x_129
+        %130:f32 = load_vector_element %c, %129
+        %131:bool = gte %130, 1.0f
+        if %131 [t: $B27] {  # if_12
+          $B27: {  # true
+            %132:i32 = load %x_129
+            %133:i32 = load %x_129
+            %134:f32 = load_vector_element %c, %133
+            %135:i32 = load %x_129
+            %136:f32 = load_vector_element %c, %135
+            %137:f32 = mul %134, %136
+            store_vector_element %c, %132, %137
             exit_if  # if_12
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %130:i32 = load %x_129
-        %131:i32 = add %130, 1i
-        store %x_130, %131
-        %132:i32 = load %x_130
-        store %x_129, %132
-        next_iteration %b23
+      $B24: {  # continuing
+        %138:i32 = load %x_129
+        %139:i32 = add %138, 1i
+        store %x_130, %139
+        %140:i32 = load %x_130
+        store %x_129, %140
+        next_iteration  # -> $B23
       }
     }
-    %133:vec3<f32> = load %c
-    %134:vec3<f32> = abs %133
-    %x_145:vec3<f32> = normalize %134
-    %136:f32 = access %x_145, 0u
-    %137:f32 = access %x_145, 1u
-    %138:f32 = access %x_145, 2u
-    %139:vec4<f32> = construct %136, %137, %138, 1.0f
-    store %x_GLF_color, %139
+    %141:vec3<f32> = load %c
+    %142:vec3<f32> = abs %141
+    %143:vec3<f32> = normalize %142
+    %x_145:vec3<f32> = let %143
+    %145:f32 = access %x_145, 0u
+    %146:f32 = access %x_145, 1u
+    %147:f32 = access %x_145, 2u
+    %148:vec4<f32> = construct %145, %146, %147, 1.0f
+    store %x_GLF_color, %148
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %142:void = call %main_1
-    %143:vec4<f32> = load %x_GLF_color
-    %144:main_out = construct %143
-    ret %144
+    %151:void = call %main_1
+    %152:vec4<f32> = load %x_GLF_color
+    %153:main_out = construct %152
+    ret %153
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B29: {
+    %156:bool = eq %rhs, 0i
+    %157:bool = eq %lhs, -2147483648i
+    %158:bool = eq %rhs, -1i
+    %159:bool = and %157, %158
+    %160:bool = or %156, %159
+    %161:i32 = select %rhs, 1i, %160
+    %162:i32 = let %161
+    %163:i32 = div %lhs, %162
+    %164:i32 = mul %163, %162
+    %165:i32 = sub %lhs, %164
+    ret %165
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.msl
index 019333c..f3275e4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_51:ptr<function, f32, read_write> = var
     %x_55:ptr<function, f32, read_write> = var
@@ -34,120 +34,127 @@
     %x_129_phi:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
     %21:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_47:f32 = load_vector_element %21, 0u
-    %23:f32 = mul %x_47, 0.125f
-    %x_49:f32 = round %23
-    %25:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_51, %25
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %22:f32 = load_vector_element %21, 0u
+    %x_47:f32 = let %22
+    %24:f32 = mul %x_47, 0.125f
+    %25:f32 = round %24
+    %x_49:f32 = let %25
+    %27:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_51, %27
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_55_phi, -0.5f
         store %x_58_phi, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_68:ptr<function, f32, read_write> = var
             %x_76:ptr<function, f32, read_write> = var
             %x_59:ptr<function, i32, read_write> = var
             %x_56_phi:ptr<function, f32, read_write> = var
-            %30:f32 = load %x_55_phi
-            store %x_55, %30
-            %x_58:i32 = load %x_58_phi
+            %32:f32 = load %x_55_phi
+            store %x_55, %32
+            %33:i32 = load %x_58_phi
+            %x_58:i32 = let %33
             store %x_81_phi, 0.0f
-            %32:f32 = load %x_55
-            store %x_82_phi, %32
+            %35:f32 = load %x_55
+            store %x_82_phi, %35
             store %x_83_phi, false
-            %33:bool = lt %x_58, 800i
-            if %33 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %36:bool = lt %x_58, 800i
+            if %36 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_75:ptr<function, f32, read_write> = var
             %x_76_phi:ptr<function, f32, read_write> = var
-            %36:i32 = mod %x_58, 32i
-            %37:bool = eq %36, 0i
-            if %37 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %38:f32 = load %x_55
-                %39:f32 = add %38, 0.40000000596046447754f
-                store %x_68, %39
-                %40:f32 = load %x_68
-                store %x_56_phi, %40
+            %39:i32 = call %tint_mod_i32, %x_58, 32i
+            %41:bool = eq %39, 0i
+            if %41 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %42:f32 = load %x_55
+                %43:f32 = add %42, 0.40000000596046447754f
+                store %x_68, %43
+                %44:f32 = load %x_68
+                store %x_56_phi, %44
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %41:f32 = load %x_55
-                store %x_76_phi, %41
-                %42:f32 = convert %x_58
-                %43:f32 = round %x_49
-                %44:f32 = convert %x_58
-                %45:f32 = round %x_49
-                %46:f32 = div %44, %45
-                %47:f32 = floor %46
-                %48:f32 = mul %43, %47
-                %49:f32 = sub %42, %48
-                %50:bool = lte %49, 0.00999999977648258209f
-                if %50 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %51:f32 = load %x_55
-                    %52:f32 = add %51, 100.0f
-                    store %x_75, %52
-                    %53:f32 = load %x_75
-                    store %x_76_phi, %53
+              $B9: {  # false
+                %45:f32 = load %x_55
+                store %x_76_phi, %45
+                %46:f32 = convert %x_58
+                %47:f32 = let %46
+                %48:f32 = round %x_49
+                %49:f32 = let %48
+                %50:f32 = convert %x_58
+                %51:f32 = let %50
+                %52:f32 = round %x_49
+                %53:f32 = div %51, %52
+                %54:f32 = floor %53
+                %55:f32 = mul %49, %54
+                %56:f32 = sub %47, %55
+                %57:bool = lte %56, 0.00999999977648258209f
+                if %57 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %58:f32 = load %x_55
+                    %59:f32 = add %58, 100.0f
+                    store %x_75, %59
+                    %60:f32 = load %x_75
+                    store %x_76_phi, %60
                     exit_if  # if_3
                   }
                 }
-                %54:f32 = load %x_76_phi
-                store %x_76, %54
-                %55:f32 = load %x_76
-                store %x_56_phi, %55
+                %61:f32 = load %x_76_phi
+                store %x_76, %61
+                %62:f32 = load %x_76
+                store %x_56_phi, %62
                 exit_if  # if_2
               }
             }
-            %56:f32 = load %x_56_phi
-            store %x_56, %56
-            %57:f32 = convert %x_58
-            %58:f32 = load %x_51
-            %59:bool = gte %57, %58
-            if %59 [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %60:f32 = load %x_56
-                store %x_81_phi, %60
-                %61:f32 = load %x_56
-                store %x_82_phi, %61
+            %63:f32 = load %x_56_phi
+            store %x_56, %63
+            %64:f32 = convert %x_58
+            %65:f32 = load %x_51
+            %66:bool = gte %64, %65
+            if %66 [t: $B11] {  # if_4
+              $B11: {  # true
+                %67:f32 = load %x_56
+                store %x_81_phi, %67
+                %68:f32 = load %x_56
+                store %x_82_phi, %68
                 store %x_83_phi, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %62:i32 = add %x_58, 1i
-            store %x_59, %62
-            %63:f32 = load %x_56
-            store %x_55_phi, %63
-            %64:i32 = load %x_59
-            store %x_58_phi, %64
-            next_iteration %b4
+          $B5: {  # continuing
+            %69:i32 = add %x_58, 1i
+            store %x_59, %69
+            %70:f32 = load %x_56
+            store %x_55_phi, %70
+            %71:i32 = load %x_59
+            store %x_58_phi, %71
+            next_iteration  # -> $B4
           }
         }
-        %65:f32 = load %x_81_phi
-        store %x_81, %65
-        %66:f32 = load %x_82_phi
-        store %x_82, %66
-        %x_83:bool = load %x_83_phi
-        %68:f32 = load %x_81
-        store %x_85_phi, %68
-        if %x_83 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %72:f32 = load %x_81_phi
+        store %x_81, %72
+        %73:f32 = load %x_82_phi
+        store %x_82, %73
+        %74:bool = load %x_83_phi
+        %x_83:bool = let %74
+        %76:f32 = load %x_81
+        store %x_85_phi, %76
+        if %x_83 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
-        %69:f32 = load %x_82
-        store %x_85_phi, %69
+        %77:f32 = load %x_82
+        store %x_85_phi, %77
         exit_switch  # switch_1
       }
     }
@@ -159,181 +166,211 @@
     %x_118_phi:ptr<function, f32, read_write> = var
     %x_119_phi:ptr<function, f32, read_write> = var
     %x_120_phi:ptr<function, bool, read_write> = var
-    %x_85:f32 = load %x_85_phi
+    %86:f32 = load %x_85_phi
+    %x_85:f32 = let %86
     store_vector_element %c, 0u, %x_85
-    %79:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_88, %79
-    switch 0u [c: (default, %b13)] {  # switch_2
-      %b13 = block {  # case
+    %88:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_88, %88
+    switch 0u [c: (default, $B13)] {  # switch_2
+      $B13: {  # case
         store %x_92_phi, -0.5f
         store %x_95_phi, 1i
-        loop [b: %b14, c: %b15] {  # loop_2
-          %b14 = block {  # body
+        loop [b: $B14, c: $B15] {  # loop_2
+          $B14: {  # body
             %x_105:ptr<function, f32, read_write> = var
             %x_113:ptr<function, f32, read_write> = var
             %x_96:ptr<function, i32, read_write> = var
             %x_93_phi:ptr<function, f32, read_write> = var
-            %84:f32 = load %x_92_phi
-            store %x_92, %84
-            %x_95:i32 = load %x_95_phi
+            %93:f32 = load %x_92_phi
+            store %x_92, %93
+            %94:i32 = load %x_95_phi
+            %x_95:i32 = let %94
             store %x_118_phi, 0.0f
-            %86:f32 = load %x_92
-            store %x_119_phi, %86
+            %96:f32 = load %x_92
+            store %x_119_phi, %96
             store %x_120_phi, false
-            %87:bool = lt %x_95, 800i
-            if %87 [t: %b16, f: %b17] {  # if_6
-              %b16 = block {  # true
+            %97:bool = lt %x_95, 800i
+            if %97 [t: $B16, f: $B17] {  # if_6
+              $B16: {  # true
                 exit_if  # if_6
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_112:ptr<function, f32, read_write> = var
             %x_113_phi:ptr<function, f32, read_write> = var
-            %90:i32 = mod %x_95, 32i
-            %91:bool = eq %90, 0i
-            if %91 [t: %b18, f: %b19] {  # if_7
-              %b18 = block {  # true
-                %92:f32 = load %x_92
-                %93:f32 = add %92, 0.40000000596046447754f
-                store %x_105, %93
-                %94:f32 = load %x_105
-                store %x_93_phi, %94
+            %100:i32 = call %tint_mod_i32, %x_95, 32i
+            %101:bool = eq %100, 0i
+            if %101 [t: $B18, f: $B19] {  # if_7
+              $B18: {  # true
+                %102:f32 = load %x_92
+                %103:f32 = add %102, 0.40000000596046447754f
+                store %x_105, %103
+                %104:f32 = load %x_105
+                store %x_93_phi, %104
                 exit_if  # if_7
               }
-              %b19 = block {  # false
-                %95:f32 = load %x_92
-                store %x_113_phi, %95
-                %96:f32 = convert %x_95
-                %97:f32 = round %x_49
-                %98:f32 = convert %x_95
-                %99:f32 = round %x_49
-                %100:f32 = div %98, %99
-                %101:f32 = floor %100
-                %102:f32 = mul %97, %101
-                %103:f32 = sub %96, %102
-                %104:bool = lte %103, 0.00999999977648258209f
-                if %104 [t: %b20] {  # if_8
-                  %b20 = block {  # true
-                    %105:f32 = load %x_92
-                    %106:f32 = add %105, 100.0f
-                    store %x_112, %106
-                    %107:f32 = load %x_112
-                    store %x_113_phi, %107
+              $B19: {  # false
+                %105:f32 = load %x_92
+                store %x_113_phi, %105
+                %106:f32 = convert %x_95
+                %107:f32 = let %106
+                %108:f32 = round %x_49
+                %109:f32 = let %108
+                %110:f32 = convert %x_95
+                %111:f32 = let %110
+                %112:f32 = round %x_49
+                %113:f32 = div %111, %112
+                %114:f32 = floor %113
+                %115:f32 = mul %109, %114
+                %116:f32 = sub %107, %115
+                %117:bool = lte %116, 0.00999999977648258209f
+                if %117 [t: $B20] {  # if_8
+                  $B20: {  # true
+                    %118:f32 = load %x_92
+                    %119:f32 = add %118, 100.0f
+                    store %x_112, %119
+                    %120:f32 = load %x_112
+                    store %x_113_phi, %120
                     exit_if  # if_8
                   }
                 }
-                %108:f32 = load %x_113_phi
-                store %x_113, %108
-                %109:f32 = load %x_113
-                store %x_93_phi, %109
+                %121:f32 = load %x_113_phi
+                store %x_113, %121
+                %122:f32 = load %x_113
+                store %x_93_phi, %122
                 exit_if  # if_7
               }
             }
-            %110:f32 = load %x_93_phi
-            store %x_93, %110
-            %111:f32 = convert %x_95
-            %112:f32 = load %x_88
-            %113:bool = gte %111, %112
-            if %113 [t: %b21] {  # if_9
-              %b21 = block {  # true
-                %114:f32 = load %x_93
-                store %x_118_phi, %114
-                %115:f32 = load %x_93
-                store %x_119_phi, %115
+            %123:f32 = load %x_93_phi
+            store %x_93, %123
+            %124:f32 = convert %x_95
+            %125:f32 = load %x_88
+            %126:bool = gte %124, %125
+            if %126 [t: $B21] {  # if_9
+              $B21: {  # true
+                %127:f32 = load %x_93
+                store %x_118_phi, %127
+                %128:f32 = load %x_93
+                store %x_119_phi, %128
                 store %x_120_phi, true
                 exit_loop  # loop_2
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %116:i32 = add %x_95, 1i
-            store %x_96, %116
-            %117:f32 = load %x_93
-            store %x_92_phi, %117
-            %118:i32 = load %x_96
-            store %x_95_phi, %118
-            next_iteration %b14
+          $B15: {  # continuing
+            %129:i32 = add %x_95, 1i
+            store %x_96, %129
+            %130:f32 = load %x_93
+            store %x_92_phi, %130
+            %131:i32 = load %x_96
+            store %x_95_phi, %131
+            next_iteration  # -> $B14
           }
         }
-        %119:f32 = load %x_118_phi
-        store %x_118, %119
-        %120:f32 = load %x_119_phi
-        store %x_119, %120
-        %x_120:bool = load %x_120_phi
-        %122:f32 = load %x_118
-        store %x_122_phi, %122
-        if %x_120 [t: %b22] {  # if_10
-          %b22 = block {  # true
+        %132:f32 = load %x_118_phi
+        store %x_118, %132
+        %133:f32 = load %x_119_phi
+        store %x_119, %133
+        %134:bool = load %x_120_phi
+        %x_120:bool = let %134
+        %136:f32 = load %x_118
+        store %x_122_phi, %136
+        if %x_120 [t: $B22] {  # if_10
+          $B22: {  # true
             exit_switch  # switch_2
           }
         }
-        %123:f32 = load %x_119
-        store %x_122_phi, %123
+        %137:f32 = load %x_119
+        store %x_122_phi, %137
         exit_switch  # switch_2
       }
     }
-    %x_122:f32 = load %x_122_phi
+    %138:f32 = load %x_122_phi
+    %x_122:f32 = let %138
     store_vector_element %c, 1u, %x_122
-    %x_124:f32 = load_vector_element %c, 0u
-    %x_125:f32 = load_vector_element %c, 1u
-    %127:f32 = add %x_124, %x_125
-    store_vector_element %c, 2u, %127
+    %140:f32 = load_vector_element %c, 0u
+    %x_124:f32 = let %140
+    %142:f32 = load_vector_element %c, 1u
+    %x_125:f32 = let %142
+    %144:f32 = add %x_124, %x_125
+    store_vector_element %c, 2u, %144
     store %x_129_phi, 0i
-    loop [b: %b23, c: %b24] {  # loop_3
-      %b23 = block {  # body
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
         %x_130:ptr<function, i32, read_write> = var
-        %x_129:i32 = load %x_129_phi
-        %130:bool = lt %x_129, 3i
-        if %130 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
+        %146:i32 = load %x_129_phi
+        %x_129:i32 = let %146
+        %148:bool = lt %x_129, 3i
+        if %148 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
             exit_if  # if_11
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_136:f32 = load_vector_element %c, %x_129
-        %132:bool = gte %x_136, 1.0f
-        if %132 [t: %b27] {  # if_12
-          %b27 = block {  # true
-            %x_140:f32 = load_vector_element %c, %x_129
-            %x_141:f32 = load_vector_element %c, %x_129
-            %135:f32 = mul %x_140, %x_141
-            store_vector_element %c, %x_129, %135
+        %149:f32 = load_vector_element %c, %x_129
+        %x_136:f32 = let %149
+        %151:bool = gte %x_136, 1.0f
+        if %151 [t: $B27] {  # if_12
+          $B27: {  # true
+            %152:f32 = load_vector_element %c, %x_129
+            %x_140:f32 = let %152
+            %154:f32 = load_vector_element %c, %x_129
+            %x_141:f32 = let %154
+            %156:f32 = mul %x_140, %x_141
+            store_vector_element %c, %x_129, %156
             exit_if  # if_12
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %136:i32 = add %x_129, 1i
-        store %x_130, %136
-        %137:i32 = load %x_130
-        store %x_129_phi, %137
-        next_iteration %b23
+      $B24: {  # continuing
+        %157:i32 = add %x_129, 1i
+        store %x_130, %157
+        %158:i32 = load %x_130
+        store %x_129_phi, %158
+        next_iteration  # -> $B23
       }
     }
-    %x_143:vec3<f32> = load %c
-    %139:vec3<f32> = abs %x_143
-    %x_145:vec3<f32> = normalize %139
-    %141:f32 = access %x_145, 0u
-    %142:f32 = access %x_145, 1u
-    %143:f32 = access %x_145, 2u
-    %144:vec4<f32> = construct %141, %142, %143, 1.0f
-    store %x_GLF_color, %144
+    %159:vec3<f32> = load %c
+    %x_143:vec3<f32> = let %159
+    %161:vec3<f32> = abs %x_143
+    %162:vec3<f32> = normalize %161
+    %x_145:vec3<f32> = let %162
+    %164:f32 = access %x_145, 0u
+    %165:f32 = access %x_145, 1u
+    %166:f32 = access %x_145, 2u
+    %167:vec4<f32> = construct %164, %165, %166, 1.0f
+    store %x_GLF_color, %167
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %147:void = call %main_1
-    %148:vec4<f32> = load %x_GLF_color
-    %149:main_out = construct %148
-    ret %149
+    %170:void = call %main_1
+    %171:vec4<f32> = load %x_GLF_color
+    %172:main_out = construct %171
+    ret %172
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B29: {
+    %175:bool = eq %rhs, 0i
+    %176:bool = eq %lhs, -2147483648i
+    %177:bool = eq %rhs, -1i
+    %178:bool = and %176, %177
+    %179:bool = or %175, %178
+    %180:i32 = select %rhs, 1i, %179
+    %181:i32 = let %180
+    %182:i32 = div %lhs, %181
+    %183:i32 = mul %182, %181
+    %184:i32 = sub %lhs, %183
+    ret %184
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.msl
index ea6632a..a8138db 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_53:ptr<function, f32, read_write> = var
     %x_57:ptr<function, f32, read_write> = var
@@ -31,115 +31,121 @@
     %x_135:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
     %18:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_47:f32 = load_vector_element %18, 0u
-    %x_48:vec2<f32> = construct 1.0f, %x_47
-    %21:f32 = mul %x_47, 0.125f
-    %x_50:f32 = round %21
+    %19:f32 = load_vector_element %18, 0u
+    %x_47:f32 = let %19
+    %21:vec2<f32> = construct 1.0f, %x_47
+    %x_48:vec2<f32> = let %21
+    %23:f32 = mul %x_47, 0.125f
+    %24:f32 = round %23
+    %x_50:f32 = let %24
     %x_51:vec2<f32> = let vec2<f32>(0.0f, -0.5f)
-    %24:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_53, %24
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %27:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_53, %27
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_57, -0.5f
         store %x_60, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_70:ptr<function, f32, read_write> = var
             %x_78:ptr<function, f32, read_write> = var
             %x_61:ptr<function, i32, read_write> = var
             store %x_83, 0.0f
-            %28:f32 = load %x_57
-            store %x_84, %28
+            %31:f32 = load %x_57
+            store %x_84, %31
             store %x_85, false
-            %29:i32 = load %x_60
-            %30:bool = lt %29, 800i
-            if %30 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %32:i32 = load %x_60
+            %33:bool = lt %32, 800i
+            if %33 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_77:ptr<function, f32, read_write> = var
-            %32:i32 = load %x_60
-            %33:i32 = mod %32, 32i
-            %34:bool = eq %33, 0i
-            if %34 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %35:f32 = load %x_57
-                %36:f32 = add %35, 0.40000000596046447754f
-                store %x_70, %36
-                %37:f32 = load %x_70
-                store %x_58, %37
+            %35:i32 = load %x_60
+            %36:i32 = call %tint_mod_i32, %35, 32i
+            %38:bool = eq %36, 0i
+            if %38 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %39:f32 = load %x_57
+                %40:f32 = add %39, 0.40000000596046447754f
+                store %x_70, %40
+                %41:f32 = load %x_70
+                store %x_58, %41
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %38:f32 = load %x_57
-                store %x_78, %38
-                %39:i32 = load %x_60
-                %40:f32 = convert %39
-                %41:f32 = round %x_50
-                %42:i32 = load %x_60
-                %43:f32 = convert %42
-                %44:f32 = round %x_50
-                %45:f32 = div %43, %44
-                %46:f32 = floor %45
-                %47:f32 = mul %41, %46
-                %48:f32 = sub %40, %47
-                %49:bool = lte %48, 0.00999999977648258209f
-                if %49 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %50:f32 = load %x_57
-                    %51:f32 = add %50, 100.0f
-                    store %x_77, %51
-                    %52:f32 = load %x_77
-                    store %x_78, %52
+              $B9: {  # false
+                %42:f32 = load %x_57
+                store %x_78, %42
+                %43:i32 = load %x_60
+                %44:f32 = convert %43
+                %45:f32 = let %44
+                %46:f32 = round %x_50
+                %47:f32 = let %46
+                %48:i32 = load %x_60
+                %49:f32 = convert %48
+                %50:f32 = let %49
+                %51:f32 = round %x_50
+                %52:f32 = div %50, %51
+                %53:f32 = floor %52
+                %54:f32 = mul %47, %53
+                %55:f32 = sub %45, %54
+                %56:bool = lte %55, 0.00999999977648258209f
+                if %56 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %57:f32 = load %x_57
+                    %58:f32 = add %57, 100.0f
+                    store %x_77, %58
+                    %59:f32 = load %x_77
+                    store %x_78, %59
                     exit_if  # if_3
                   }
                 }
-                %53:f32 = load %x_78
-                store %x_58, %53
+                %60:f32 = load %x_78
+                store %x_58, %60
                 exit_if  # if_2
               }
             }
-            %54:i32 = load %x_60
-            %55:f32 = convert %54
-            %56:f32 = load %x_53
-            %57:bool = gte %55, %56
-            if %57 [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %58:f32 = load %x_58
-                store %x_83, %58
-                %59:f32 = load %x_58
-                store %x_84, %59
+            %61:i32 = load %x_60
+            %62:f32 = convert %61
+            %63:f32 = load %x_53
+            %64:bool = gte %62, %63
+            if %64 [t: $B11] {  # if_4
+              $B11: {  # true
+                %65:f32 = load %x_58
+                store %x_83, %65
+                %66:f32 = load %x_58
+                store %x_84, %66
                 store %x_85, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %60:i32 = load %x_60
-            %61:i32 = add %60, 1i
-            store %x_61, %61
-            %62:f32 = load %x_58
-            store %x_57, %62
-            %63:i32 = load %x_61
-            store %x_60, %63
-            next_iteration %b4
+          $B5: {  # continuing
+            %67:i32 = load %x_60
+            %68:i32 = add %67, 1i
+            store %x_61, %68
+            %69:f32 = load %x_58
+            store %x_57, %69
+            %70:i32 = load %x_61
+            store %x_60, %70
+            next_iteration  # -> $B4
           }
         }
-        %64:f32 = load %x_83
-        store %x_87, %64
-        %65:bool = load %x_85
-        if %65 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %71:f32 = load %x_83
+        store %x_87, %71
+        %72:bool = load %x_85
+        if %72 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
-        %66:f32 = load %x_84
-        store %x_87, %66
+        %73:f32 = load %x_84
+        store %x_87, %73
         exit_switch  # switch_1
       }
     }
@@ -148,186 +154,207 @@
     %x_101:ptr<function, i32, read_write> = var
     %x_99:ptr<function, f32, read_write> = var
     %x_126:ptr<function, bool, read_write> = var
-    %72:f32 = load %x_84
-    %73:f32 = load %x_83
-    %x_89:vec4<f32> = construct %72, 0.40000000596046447754f, %73, 0.40000000596046447754f
-    %75:f32 = load %x_87
-    store_vector_element %c, 0u, %75
-    %76:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_92, %76
-    switch 0u [c: (default, %b13)] {  # switch_2
-      %b13 = block {  # case
-        %77:f32 = load %x_57
-        %x_95:vec4<f32> = construct %x_51, 0.0f, %77
-        %79:vec3<f32> = construct %x_48, -0.5f
-        %80:f32 = access %79, 2u
-        store %x_98, %80
+    %79:f32 = load %x_84
+    %80:f32 = load %x_83
+    %81:vec4<f32> = construct %79, 0.40000000596046447754f, %80, 0.40000000596046447754f
+    %x_89:vec4<f32> = let %81
+    %83:f32 = load %x_87
+    store_vector_element %c, 0u, %83
+    %84:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_92, %84
+    switch 0u [c: (default, $B13)] {  # switch_2
+      $B13: {  # case
+        %85:f32 = load %x_57
+        %86:vec4<f32> = construct %x_51, 0.0f, %85
+        %x_95:vec4<f32> = let %86
+        %88:vec3<f32> = construct %x_48, -0.5f
+        %89:f32 = access %88, 2u
+        store %x_98, %89
         store %x_101, 1i
-        loop [b: %b14, c: %b15] {  # loop_2
-          %b14 = block {  # body
+        loop [b: $B14, c: $B15] {  # loop_2
+          $B14: {  # body
             %x_111:ptr<function, f32, read_write> = var
             %x_119:ptr<function, f32, read_write> = var
             %x_102:ptr<function, i32, read_write> = var
             store %x_124, 0.0f
-            %84:f32 = load %x_98
-            store %x_125, %84
+            %93:f32 = load %x_98
+            store %x_125, %93
             store %x_126, false
-            %85:i32 = load %x_101
-            %86:bool = lt %85, 800i
-            if %86 [t: %b16, f: %b17] {  # if_6
-              %b16 = block {  # true
+            %94:i32 = load %x_101
+            %95:bool = lt %94, 800i
+            if %95 [t: $B16, f: $B17] {  # if_6
+              $B16: {  # true
                 exit_if  # if_6
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_118:ptr<function, f32, read_write> = var
-            %88:i32 = load %x_101
-            %89:i32 = mod %88, 32i
-            %90:bool = eq %89, 0i
-            if %90 [t: %b18, f: %b19] {  # if_7
-              %b18 = block {  # true
-                %91:f32 = load %x_98
-                %92:f32 = add %91, 0.40000000596046447754f
-                store %x_111, %92
-                %93:f32 = load %x_111
-                store %x_99, %93
+            %97:i32 = load %x_101
+            %98:i32 = call %tint_mod_i32, %97, 32i
+            %99:bool = eq %98, 0i
+            if %99 [t: $B18, f: $B19] {  # if_7
+              $B18: {  # true
+                %100:f32 = load %x_98
+                %101:f32 = add %100, 0.40000000596046447754f
+                store %x_111, %101
+                %102:f32 = load %x_111
+                store %x_99, %102
                 exit_if  # if_7
               }
-              %b19 = block {  # false
-                %94:f32 = load %x_98
-                store %x_119, %94
-                %95:i32 = load %x_101
-                %96:f32 = convert %95
-                %97:f32 = round %x_50
-                %98:i32 = load %x_101
-                %99:f32 = convert %98
-                %100:f32 = round %x_50
-                %101:f32 = div %99, %100
-                %102:f32 = floor %101
-                %103:f32 = mul %97, %102
-                %104:f32 = sub %96, %103
-                %105:bool = lte %104, 0.00999999977648258209f
-                if %105 [t: %b20] {  # if_8
-                  %b20 = block {  # true
-                    %106:f32 = load %x_98
-                    %107:f32 = add %106, 100.0f
-                    store %x_118, %107
-                    %108:f32 = load %x_118
-                    store %x_119, %108
+              $B19: {  # false
+                %103:f32 = load %x_98
+                store %x_119, %103
+                %104:i32 = load %x_101
+                %105:f32 = convert %104
+                %106:f32 = let %105
+                %107:f32 = round %x_50
+                %108:f32 = let %107
+                %109:i32 = load %x_101
+                %110:f32 = convert %109
+                %111:f32 = let %110
+                %112:f32 = round %x_50
+                %113:f32 = div %111, %112
+                %114:f32 = floor %113
+                %115:f32 = mul %108, %114
+                %116:f32 = sub %106, %115
+                %117:bool = lte %116, 0.00999999977648258209f
+                if %117 [t: $B20] {  # if_8
+                  $B20: {  # true
+                    %118:f32 = load %x_98
+                    %119:f32 = add %118, 100.0f
+                    store %x_118, %119
+                    %120:f32 = load %x_118
+                    store %x_119, %120
                     exit_if  # if_8
                   }
                 }
-                %109:f32 = load %x_119
-                store %x_99, %109
+                %121:f32 = load %x_119
+                store %x_99, %121
                 exit_if  # if_7
               }
             }
-            %110:i32 = load %x_101
-            %111:f32 = convert %110
-            %112:f32 = load %x_92
-            %113:bool = gte %111, %112
-            if %113 [t: %b21] {  # if_9
-              %b21 = block {  # true
-                %114:f32 = load %x_99
-                store %x_124, %114
-                %115:f32 = load %x_99
-                store %x_125, %115
+            %122:i32 = load %x_101
+            %123:f32 = convert %122
+            %124:f32 = load %x_92
+            %125:bool = gte %123, %124
+            if %125 [t: $B21] {  # if_9
+              $B21: {  # true
+                %126:f32 = load %x_99
+                store %x_124, %126
+                %127:f32 = load %x_99
+                store %x_125, %127
                 store %x_126, true
                 exit_loop  # loop_2
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %116:i32 = load %x_101
-            %117:i32 = add %116, 1i
-            store %x_102, %117
-            %118:f32 = load %x_99
-            store %x_98, %118
-            %119:i32 = load %x_102
-            store %x_101, %119
-            next_iteration %b14
+          $B15: {  # continuing
+            %128:i32 = load %x_101
+            %129:i32 = add %128, 1i
+            store %x_102, %129
+            %130:f32 = load %x_99
+            store %x_98, %130
+            %131:i32 = load %x_102
+            store %x_101, %131
+            next_iteration  # -> $B14
           }
         }
-        %120:f32 = load %x_124
-        store %x_128, %120
-        %121:bool = load %x_126
-        if %121 [t: %b22] {  # if_10
-          %b22 = block {  # true
+        %132:f32 = load %x_124
+        store %x_128, %132
+        %133:bool = load %x_126
+        if %133 [t: $B22] {  # if_10
+          $B22: {  # true
             exit_switch  # switch_2
           }
         }
-        %122:f32 = load %x_125
-        store %x_128, %122
+        %134:f32 = load %x_125
+        store %x_128, %134
         exit_switch  # switch_2
       }
     }
-    %123:f32 = load %x_128
-    store_vector_element %c, 1u, %123
-    %124:f32 = load_vector_element %c, 0u
-    %125:f32 = load_vector_element %c, 1u
-    %126:f32 = add %124, %125
-    store_vector_element %c, 2u, %126
+    %135:f32 = load %x_128
+    store_vector_element %c, 1u, %135
+    %136:f32 = load_vector_element %c, 0u
+    %137:f32 = load_vector_element %c, 1u
+    %138:f32 = add %136, %137
+    store_vector_element %c, 2u, %138
     store %x_135, 0i
-    loop [b: %b23, c: %b24] {  # loop_3
-      %b23 = block {  # body
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
         %x_136:ptr<function, i32, read_write> = var
-        %128:i32 = load %x_135
-        %129:bool = lt %128, 3i
-        if %129 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
+        %140:i32 = load %x_135
+        %141:bool = lt %140, 3i
+        if %141 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
             exit_if  # if_11
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_3
           }
         }
-        %130:i32 = load %x_135
-        %131:f32 = load_vector_element %c, %130
-        %132:bool = gte %131, 1.0f
-        if %132 [t: %b27] {  # if_12
-          %b27 = block {  # true
-            %133:i32 = load %x_135
-            %134:i32 = load %x_135
-            %135:f32 = load_vector_element %c, %134
-            %136:i32 = load %x_135
-            %137:f32 = load_vector_element %c, %136
-            %138:f32 = mul %135, %137
-            store_vector_element %c, %133, %138
+        %142:i32 = load %x_135
+        %143:f32 = load_vector_element %c, %142
+        %144:bool = gte %143, 1.0f
+        if %144 [t: $B27] {  # if_12
+          $B27: {  # true
+            %145:i32 = load %x_135
+            %146:i32 = load %x_135
+            %147:f32 = load_vector_element %c, %146
+            %148:i32 = load %x_135
+            %149:f32 = load_vector_element %c, %148
+            %150:f32 = mul %147, %149
+            store_vector_element %c, %145, %150
             exit_if  # if_12
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %139:i32 = load %x_135
-        %140:i32 = add %139, 1i
-        store %x_136, %140
-        %141:i32 = load %x_136
-        store %x_135, %141
-        next_iteration %b23
+      $B24: {  # continuing
+        %151:i32 = load %x_135
+        %152:i32 = add %151, 1i
+        store %x_136, %152
+        %153:i32 = load %x_136
+        store %x_135, %153
+        next_iteration  # -> $B23
       }
     }
-    %142:vec3<f32> = load %c
-    %143:vec3<f32> = abs %142
-    %x_151:vec3<f32> = normalize %143
-    %145:f32 = access %x_151, 0u
-    %146:f32 = access %x_151, 1u
-    %147:f32 = access %x_151, 2u
-    %148:vec4<f32> = construct %145, %146, %147, 1.0f
-    store %x_GLF_color, %148
+    %154:vec3<f32> = load %c
+    %155:vec3<f32> = abs %154
+    %156:vec3<f32> = normalize %155
+    %x_151:vec3<f32> = let %156
+    %158:f32 = access %x_151, 0u
+    %159:f32 = access %x_151, 1u
+    %160:f32 = access %x_151, 2u
+    %161:vec4<f32> = construct %158, %159, %160, 1.0f
+    store %x_GLF_color, %161
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %151:void = call %main_1
-    %152:vec4<f32> = load %x_GLF_color
-    %153:main_out = construct %152
-    ret %153
+    %164:void = call %main_1
+    %165:vec4<f32> = load %x_GLF_color
+    %166:main_out = construct %165
+    ret %166
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B29: {
+    %169:bool = eq %rhs, 0i
+    %170:bool = eq %lhs, -2147483648i
+    %171:bool = eq %rhs, -1i
+    %172:bool = and %170, %171
+    %173:bool = or %169, %172
+    %174:i32 = select %rhs, 1i, %173
+    %175:i32 = let %174
+    %176:i32 = div %lhs, %175
+    %177:i32 = mul %176, %175
+    %178:i32 = sub %lhs, %177
+    ret %178
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.msl
index 4446ee9..8d28638 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite-phi/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_53:ptr<function, f32, read_write> = var
     %x_57:ptr<function, f32, read_write> = var
@@ -34,122 +34,130 @@
     %x_135_phi:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
     %21:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_47:f32 = load_vector_element %21, 0u
-    %x_48:vec2<f32> = construct 1.0f, %x_47
-    %24:f32 = mul %x_47, 0.125f
-    %x_50:f32 = round %24
+    %22:f32 = load_vector_element %21, 0u
+    %x_47:f32 = let %22
+    %24:vec2<f32> = construct 1.0f, %x_47
+    %x_48:vec2<f32> = let %24
+    %26:f32 = mul %x_47, 0.125f
+    %27:f32 = round %26
+    %x_50:f32 = let %27
     %x_51:vec2<f32> = let vec2<f32>(0.0f, -0.5f)
-    %27:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_53, %27
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %30:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_53, %30
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_57_phi, -0.5f
         store %x_60_phi, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_70:ptr<function, f32, read_write> = var
             %x_78:ptr<function, f32, read_write> = var
             %x_61:ptr<function, i32, read_write> = var
             %x_58_phi:ptr<function, f32, read_write> = var
-            %32:f32 = load %x_57_phi
-            store %x_57, %32
-            %x_60:i32 = load %x_60_phi
+            %35:f32 = load %x_57_phi
+            store %x_57, %35
+            %36:i32 = load %x_60_phi
+            %x_60:i32 = let %36
             store %x_83_phi, 0.0f
-            %34:f32 = load %x_57
-            store %x_84_phi, %34
+            %38:f32 = load %x_57
+            store %x_84_phi, %38
             store %x_85_phi, false
-            %35:bool = lt %x_60, 800i
-            if %35 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %39:bool = lt %x_60, 800i
+            if %39 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_77:ptr<function, f32, read_write> = var
             %x_78_phi:ptr<function, f32, read_write> = var
-            %38:i32 = mod %x_60, 32i
-            %39:bool = eq %38, 0i
-            if %39 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %40:f32 = load %x_57
-                %41:f32 = add %40, 0.40000000596046447754f
-                store %x_70, %41
-                %42:f32 = load %x_70
-                store %x_58_phi, %42
+            %42:i32 = call %tint_mod_i32, %x_60, 32i
+            %44:bool = eq %42, 0i
+            if %44 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %45:f32 = load %x_57
+                %46:f32 = add %45, 0.40000000596046447754f
+                store %x_70, %46
+                %47:f32 = load %x_70
+                store %x_58_phi, %47
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %43:f32 = load %x_57
-                store %x_78_phi, %43
-                %44:f32 = convert %x_60
-                %45:f32 = round %x_50
-                %46:f32 = convert %x_60
-                %47:f32 = round %x_50
-                %48:f32 = div %46, %47
-                %49:f32 = floor %48
-                %50:f32 = mul %45, %49
-                %51:f32 = sub %44, %50
-                %52:bool = lte %51, 0.00999999977648258209f
-                if %52 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %53:f32 = load %x_57
-                    %54:f32 = add %53, 100.0f
-                    store %x_77, %54
-                    %55:f32 = load %x_77
-                    store %x_78_phi, %55
+              $B9: {  # false
+                %48:f32 = load %x_57
+                store %x_78_phi, %48
+                %49:f32 = convert %x_60
+                %50:f32 = let %49
+                %51:f32 = round %x_50
+                %52:f32 = let %51
+                %53:f32 = convert %x_60
+                %54:f32 = let %53
+                %55:f32 = round %x_50
+                %56:f32 = div %54, %55
+                %57:f32 = floor %56
+                %58:f32 = mul %52, %57
+                %59:f32 = sub %50, %58
+                %60:bool = lte %59, 0.00999999977648258209f
+                if %60 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %61:f32 = load %x_57
+                    %62:f32 = add %61, 100.0f
+                    store %x_77, %62
+                    %63:f32 = load %x_77
+                    store %x_78_phi, %63
                     exit_if  # if_3
                   }
                 }
-                %56:f32 = load %x_78_phi
-                store %x_78, %56
-                %57:f32 = load %x_78
-                store %x_58_phi, %57
+                %64:f32 = load %x_78_phi
+                store %x_78, %64
+                %65:f32 = load %x_78
+                store %x_58_phi, %65
                 exit_if  # if_2
               }
             }
-            %58:f32 = load %x_58_phi
-            store %x_58, %58
-            %59:f32 = convert %x_60
-            %60:f32 = load %x_53
-            %61:bool = gte %59, %60
-            if %61 [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %62:f32 = load %x_58
-                store %x_83_phi, %62
-                %63:f32 = load %x_58
-                store %x_84_phi, %63
+            %66:f32 = load %x_58_phi
+            store %x_58, %66
+            %67:f32 = convert %x_60
+            %68:f32 = load %x_53
+            %69:bool = gte %67, %68
+            if %69 [t: $B11] {  # if_4
+              $B11: {  # true
+                %70:f32 = load %x_58
+                store %x_83_phi, %70
+                %71:f32 = load %x_58
+                store %x_84_phi, %71
                 store %x_85_phi, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %64:i32 = add %x_60, 1i
-            store %x_61, %64
-            %65:f32 = load %x_58
-            store %x_57_phi, %65
-            %66:i32 = load %x_61
-            store %x_60_phi, %66
-            next_iteration %b4
+          $B5: {  # continuing
+            %72:i32 = add %x_60, 1i
+            store %x_61, %72
+            %73:f32 = load %x_58
+            store %x_57_phi, %73
+            %74:i32 = load %x_61
+            store %x_60_phi, %74
+            next_iteration  # -> $B4
           }
         }
-        %67:f32 = load %x_83_phi
-        store %x_83, %67
-        %68:f32 = load %x_84_phi
-        store %x_84, %68
-        %x_85:bool = load %x_85_phi
-        %70:f32 = load %x_83
-        store %x_87_phi, %70
-        if %x_85 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %75:f32 = load %x_83_phi
+        store %x_83, %75
+        %76:f32 = load %x_84_phi
+        store %x_84, %76
+        %77:bool = load %x_85_phi
+        %x_85:bool = let %77
+        %79:f32 = load %x_83
+        store %x_87_phi, %79
+        if %x_85 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
-        %71:f32 = load %x_84
-        store %x_87_phi, %71
+        %80:f32 = load %x_84
+        store %x_87_phi, %80
         exit_switch  # switch_1
       }
     }
@@ -161,188 +169,221 @@
     %x_124_phi:ptr<function, f32, read_write> = var
     %x_125_phi:ptr<function, f32, read_write> = var
     %x_126_phi:ptr<function, bool, read_write> = var
-    %x_87:f32 = load %x_87_phi
-    %81:f32 = load %x_84
-    %82:f32 = load %x_83
-    %x_89:vec4<f32> = construct %81, 0.40000000596046447754f, %82, 0.40000000596046447754f
+    %89:f32 = load %x_87_phi
+    %x_87:f32 = let %89
+    %91:f32 = load %x_84
+    %92:f32 = load %x_83
+    %93:vec4<f32> = construct %91, 0.40000000596046447754f, %92, 0.40000000596046447754f
+    %x_89:vec4<f32> = let %93
     store_vector_element %c, 0u, %x_87
-    %84:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_92, %84
-    switch 0u [c: (default, %b13)] {  # switch_2
-      %b13 = block {  # case
-        %85:f32 = load %x_57
-        %x_95:vec4<f32> = construct %x_51, 0.0f, %85
-        %87:vec3<f32> = construct %x_48, -0.5f
-        %x_96:f32 = access %87, 2u
+    %95:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_92, %95
+    switch 0u [c: (default, $B13)] {  # switch_2
+      $B13: {  # case
+        %96:f32 = load %x_57
+        %97:vec4<f32> = construct %x_51, 0.0f, %96
+        %x_95:vec4<f32> = let %97
+        %99:vec3<f32> = construct %x_48, -0.5f
+        %100:f32 = access %99, 2u
+        %x_96:f32 = let %100
         store %x_98_phi, %x_96
         store %x_101_phi, 1i
-        loop [b: %b14, c: %b15] {  # loop_2
-          %b14 = block {  # body
+        loop [b: $B14, c: $B15] {  # loop_2
+          $B14: {  # body
             %x_111:ptr<function, f32, read_write> = var
             %x_119:ptr<function, f32, read_write> = var
             %x_102:ptr<function, i32, read_write> = var
             %x_99_phi:ptr<function, f32, read_write> = var
-            %93:f32 = load %x_98_phi
-            store %x_98, %93
-            %x_101:i32 = load %x_101_phi
+            %106:f32 = load %x_98_phi
+            store %x_98, %106
+            %107:i32 = load %x_101_phi
+            %x_101:i32 = let %107
             store %x_124_phi, 0.0f
-            %95:f32 = load %x_98
-            store %x_125_phi, %95
+            %109:f32 = load %x_98
+            store %x_125_phi, %109
             store %x_126_phi, false
-            %96:bool = lt %x_101, 800i
-            if %96 [t: %b16, f: %b17] {  # if_6
-              %b16 = block {  # true
+            %110:bool = lt %x_101, 800i
+            if %110 [t: $B16, f: $B17] {  # if_6
+              $B16: {  # true
                 exit_if  # if_6
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_118:ptr<function, f32, read_write> = var
             %x_119_phi:ptr<function, f32, read_write> = var
-            %99:i32 = mod %x_101, 32i
-            %100:bool = eq %99, 0i
-            if %100 [t: %b18, f: %b19] {  # if_7
-              %b18 = block {  # true
-                %101:f32 = load %x_98
-                %102:f32 = add %101, 0.40000000596046447754f
-                store %x_111, %102
-                %103:f32 = load %x_111
-                store %x_99_phi, %103
+            %113:i32 = call %tint_mod_i32, %x_101, 32i
+            %114:bool = eq %113, 0i
+            if %114 [t: $B18, f: $B19] {  # if_7
+              $B18: {  # true
+                %115:f32 = load %x_98
+                %116:f32 = add %115, 0.40000000596046447754f
+                store %x_111, %116
+                %117:f32 = load %x_111
+                store %x_99_phi, %117
                 exit_if  # if_7
               }
-              %b19 = block {  # false
-                %104:f32 = load %x_98
-                store %x_119_phi, %104
-                %105:f32 = convert %x_101
-                %106:f32 = round %x_50
-                %107:f32 = convert %x_101
-                %108:f32 = round %x_50
-                %109:f32 = div %107, %108
-                %110:f32 = floor %109
-                %111:f32 = mul %106, %110
-                %112:f32 = sub %105, %111
-                %113:bool = lte %112, 0.00999999977648258209f
-                if %113 [t: %b20] {  # if_8
-                  %b20 = block {  # true
-                    %114:f32 = load %x_98
-                    %115:f32 = add %114, 100.0f
-                    store %x_118, %115
-                    %116:f32 = load %x_118
-                    store %x_119_phi, %116
+              $B19: {  # false
+                %118:f32 = load %x_98
+                store %x_119_phi, %118
+                %119:f32 = convert %x_101
+                %120:f32 = let %119
+                %121:f32 = round %x_50
+                %122:f32 = let %121
+                %123:f32 = convert %x_101
+                %124:f32 = let %123
+                %125:f32 = round %x_50
+                %126:f32 = div %124, %125
+                %127:f32 = floor %126
+                %128:f32 = mul %122, %127
+                %129:f32 = sub %120, %128
+                %130:bool = lte %129, 0.00999999977648258209f
+                if %130 [t: $B20] {  # if_8
+                  $B20: {  # true
+                    %131:f32 = load %x_98
+                    %132:f32 = add %131, 100.0f
+                    store %x_118, %132
+                    %133:f32 = load %x_118
+                    store %x_119_phi, %133
                     exit_if  # if_8
                   }
                 }
-                %117:f32 = load %x_119_phi
-                store %x_119, %117
-                %118:f32 = load %x_119
-                store %x_99_phi, %118
+                %134:f32 = load %x_119_phi
+                store %x_119, %134
+                %135:f32 = load %x_119
+                store %x_99_phi, %135
                 exit_if  # if_7
               }
             }
-            %119:f32 = load %x_99_phi
-            store %x_99, %119
-            %120:f32 = convert %x_101
-            %121:f32 = load %x_92
-            %122:bool = gte %120, %121
-            if %122 [t: %b21] {  # if_9
-              %b21 = block {  # true
-                %123:f32 = load %x_99
-                store %x_124_phi, %123
-                %124:f32 = load %x_99
-                store %x_125_phi, %124
+            %136:f32 = load %x_99_phi
+            store %x_99, %136
+            %137:f32 = convert %x_101
+            %138:f32 = load %x_92
+            %139:bool = gte %137, %138
+            if %139 [t: $B21] {  # if_9
+              $B21: {  # true
+                %140:f32 = load %x_99
+                store %x_124_phi, %140
+                %141:f32 = load %x_99
+                store %x_125_phi, %141
                 store %x_126_phi, true
                 exit_loop  # loop_2
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %125:i32 = add %x_101, 1i
-            store %x_102, %125
-            %126:f32 = load %x_99
-            store %x_98_phi, %126
-            %127:i32 = load %x_102
-            store %x_101_phi, %127
-            next_iteration %b14
+          $B15: {  # continuing
+            %142:i32 = add %x_101, 1i
+            store %x_102, %142
+            %143:f32 = load %x_99
+            store %x_98_phi, %143
+            %144:i32 = load %x_102
+            store %x_101_phi, %144
+            next_iteration  # -> $B14
           }
         }
-        %128:f32 = load %x_124_phi
-        store %x_124, %128
-        %129:f32 = load %x_125_phi
-        store %x_125, %129
-        %x_126:bool = load %x_126_phi
-        %131:f32 = load %x_124
-        store %x_128_phi, %131
-        if %x_126 [t: %b22] {  # if_10
-          %b22 = block {  # true
+        %145:f32 = load %x_124_phi
+        store %x_124, %145
+        %146:f32 = load %x_125_phi
+        store %x_125, %146
+        %147:bool = load %x_126_phi
+        %x_126:bool = let %147
+        %149:f32 = load %x_124
+        store %x_128_phi, %149
+        if %x_126 [t: $B22] {  # if_10
+          $B22: {  # true
             exit_switch  # switch_2
           }
         }
-        %132:f32 = load %x_125
-        store %x_128_phi, %132
+        %150:f32 = load %x_125
+        store %x_128_phi, %150
         exit_switch  # switch_2
       }
     }
-    %x_128:f32 = load %x_128_phi
+    %151:f32 = load %x_128_phi
+    %x_128:f32 = let %151
     store_vector_element %c, 1u, %x_128
-    %x_130:f32 = load_vector_element %c, 0u
-    %x_131:f32 = load_vector_element %c, 1u
-    %136:f32 = add %x_130, %x_131
-    store_vector_element %c, 2u, %136
+    %153:f32 = load_vector_element %c, 0u
+    %x_130:f32 = let %153
+    %155:f32 = load_vector_element %c, 1u
+    %x_131:f32 = let %155
+    %157:f32 = add %x_130, %x_131
+    store_vector_element %c, 2u, %157
     store %x_135_phi, 0i
-    loop [b: %b23, c: %b24] {  # loop_3
-      %b23 = block {  # body
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
         %x_136:ptr<function, i32, read_write> = var
-        %x_135:i32 = load %x_135_phi
-        %139:bool = lt %x_135, 3i
-        if %139 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
+        %159:i32 = load %x_135_phi
+        %x_135:i32 = let %159
+        %161:bool = lt %x_135, 3i
+        if %161 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
             exit_if  # if_11
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_142:f32 = load_vector_element %c, %x_135
-        %141:bool = gte %x_142, 1.0f
-        if %141 [t: %b27] {  # if_12
-          %b27 = block {  # true
-            %x_146:f32 = load_vector_element %c, %x_135
-            %x_147:f32 = load_vector_element %c, %x_135
-            %144:f32 = mul %x_146, %x_147
-            store_vector_element %c, %x_135, %144
+        %162:f32 = load_vector_element %c, %x_135
+        %x_142:f32 = let %162
+        %164:bool = gte %x_142, 1.0f
+        if %164 [t: $B27] {  # if_12
+          $B27: {  # true
+            %165:f32 = load_vector_element %c, %x_135
+            %x_146:f32 = let %165
+            %167:f32 = load_vector_element %c, %x_135
+            %x_147:f32 = let %167
+            %169:f32 = mul %x_146, %x_147
+            store_vector_element %c, %x_135, %169
             exit_if  # if_12
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %145:i32 = add %x_135, 1i
-        store %x_136, %145
-        %146:i32 = load %x_136
-        store %x_135_phi, %146
-        next_iteration %b23
+      $B24: {  # continuing
+        %170:i32 = add %x_135, 1i
+        store %x_136, %170
+        %171:i32 = load %x_136
+        store %x_135_phi, %171
+        next_iteration  # -> $B23
       }
     }
-    %x_149:vec3<f32> = load %c
-    %148:vec3<f32> = abs %x_149
-    %x_151:vec3<f32> = normalize %148
-    %150:f32 = access %x_151, 0u
-    %151:f32 = access %x_151, 1u
-    %152:f32 = access %x_151, 2u
-    %153:vec4<f32> = construct %150, %151, %152, 1.0f
-    store %x_GLF_color, %153
+    %172:vec3<f32> = load %c
+    %x_149:vec3<f32> = let %172
+    %174:vec3<f32> = abs %x_149
+    %175:vec3<f32> = normalize %174
+    %x_151:vec3<f32> = let %175
+    %177:f32 = access %x_151, 0u
+    %178:f32 = access %x_151, 1u
+    %179:f32 = access %x_151, 2u
+    %180:vec4<f32> = construct %177, %178, %179, 1.0f
+    store %x_GLF_color, %180
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %156:void = call %main_1
-    %157:vec4<f32> = load %x_GLF_color
-    %158:main_out = construct %157
-    ret %158
+    %183:void = call %main_1
+    %184:vec4<f32> = load %x_GLF_color
+    %185:main_out = construct %184
+    ret %185
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B29: {
+    %188:bool = eq %rhs, 0i
+    %189:bool = eq %lhs, -2147483648i
+    %190:bool = eq %rhs, -1i
+    %191:bool = and %189, %190
+    %192:bool = or %188, %191
+    %193:i32 = select %rhs, 1i, %192
+    %194:i32 = let %193
+    %195:i32 = div %lhs, %194
+    %196:i32 = mul %195, %194
+    %197:i32 = sub %lhs, %196
+    ret %197
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.msl
index 04b32e3..0a9d5ab 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_66:ptr<function, i32, read_write> = var
     %x_69:ptr<function, i32, read_write> = var
@@ -23,67 +23,107 @@
     %9:vec2<f32> = swizzle %8, xy
     %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %11:vec2<f32> = load %10
-    %x_56:vec2<f32> = div %9, %11
-    %13:f32 = access %x_56, 0u
-    %14:f32 = mul %13, 10.0f
-    %15:i32 = convert %14
-    %16:f32 = access %x_56, 1u
-    %17:f32 = mul %16, 10.0f
-    %18:i32 = convert %17
-    %19:i32 = mul %18, 10i
-    %x_64:i32 = add %15, %19
+    %12:vec2<f32> = div %9, %11
+    %x_56:vec2<f32> = let %12
+    %14:f32 = access %x_56, 0u
+    %15:f32 = mul %14, 10.0f
+    %16:i32 = call %tint_f32_to_i32, %15
+    %18:i32 = let %16
+    %19:f32 = access %x_56, 1u
+    %20:f32 = mul %19, 10.0f
+    %21:i32 = call %tint_f32_to_i32, %20
+    %22:i32 = mul %21, 10i
+    %23:i32 = add %18, %22
+    %x_64:i32 = let %23
     store %x_66, 100i
     store %x_69, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_67:ptr<function, i32, read_write> = var
         %x_70:ptr<function, i32, read_write> = var
-        %23:i32 = load %x_69
-        %24:bool = lt %23, %x_64
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %27:i32 = load %x_69
+        %28:bool = lt %27, %x_64
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %25:i32 = load %x_66
-        %26:i32 = mul 4i, %25
-        %27:i32 = load %x_66
-        %28:i32 = sub 1000i, %27
-        %29:i32 = mul %26, %28
-        %30:i32 = div %29, 1000i
-        store %x_67, %30
-        %31:i32 = load %x_69
-        %32:i32 = add %31, 1i
-        store %x_70, %32
-        %33:i32 = load %x_67
-        store %x_66, %33
-        %34:i32 = load %x_70
-        store %x_69, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %x_66
+        %30:i32 = mul 4i, %29
+        %31:i32 = load %x_66
+        %32:i32 = sub 1000i, %31
+        %33:i32 = mul %30, %32
+        %34:i32 = call %tint_div_i32, %33, 1000i
+        store %x_67, %34
+        %36:i32 = load %x_69
+        %37:i32 = add %36, 1i
+        store %x_70, %37
+        %38:i32 = load %x_67
+        store %x_66, %38
+        %39:i32 = load %x_70
+        store %x_69, %39
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %35:i32 = load %x_66
-    %36:i32 = mod %35, 16i
-    %37:ptr<function, vec4<f32>, read_write> = access %indexable, %36
-    %38:vec4<f32> = load %37
-    store %x_GLF_color, %38
+    %40:i32 = load %x_66
+    %41:i32 = call %tint_mod_i32, %40, 16i
+    %43:ptr<function, vec4<f32>, read_write> = access %indexable, %41
+    %44:vec4<f32> = load %43
+    store %x_GLF_color, %44
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %41:void = call %main_1
-    %42:vec4<f32> = load %x_GLF_color
-    %43:main_out = construct %42
-    ret %43
+    %47:void = call %main_1
+    %48:vec4<f32> = load %x_GLF_color
+    %49:main_out = construct %48
+    ret %49
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %52:bool = eq %rhs, 0i
+    %53:bool = eq %lhs, -2147483648i
+    %54:bool = eq %rhs, -1i
+    %55:bool = and %53, %54
+    %56:bool = or %52, %55
+    %57:i32 = select %rhs, 1i, %56
+    %58:i32 = div %lhs, %57
+    ret %58
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %61:bool = eq %rhs_1, 0i
+    %62:bool = eq %lhs_1, -2147483648i
+    %63:bool = eq %rhs_1, -1i
+    %64:bool = and %62, %63
+    %65:bool = or %61, %64
+    %66:i32 = select %rhs_1, 1i, %65
+    %67:i32 = let %66
+    %68:i32 = div %lhs_1, %67
+    %69:i32 = mul %68, %67
+    %70:i32 = sub %lhs_1, %69
+    ret %70
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %72:i32 = convert %value
+    %73:bool = gte %value, -2147483648.0f
+    %74:i32 = select -2147483648i, %72, %73
+    %75:bool = lte %value, 2147483520.0f
+    %76:i32 = select 2147483647i, %74, %75
+    ret %76
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.msl
index 09d9f86..761f161 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,89 +8,134 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_66:ptr<function, i32, read_write> = var
     %x_66_phi:ptr<function, i32, read_write> = var
     %x_69_phi:ptr<function, i32, read_write> = var
-    %x_52:vec4<f32> = load %gl_FragCoord
-    %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_55:vec2<f32> = load %10
-    %12:f32 = access %x_52, 0u
-    %13:f32 = access %x_52, 1u
-    %14:vec2<f32> = construct %12, %13
-    %x_56:vec2<f32> = div %14, %x_55
-    %16:f32 = access %x_56, 0u
-    %17:f32 = mul %16, 10.0f
-    %18:i32 = convert %17
-    %19:f32 = access %x_56, 1u
+    %9:vec4<f32> = load %gl_FragCoord
+    %x_52:vec4<f32> = let %9
+    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %12:vec2<f32> = load %11
+    %x_55:vec2<f32> = let %12
+    %14:f32 = access %x_52, 0u
+    %15:f32 = access %x_52, 1u
+    %16:vec2<f32> = construct %14, %15
+    %17:vec2<f32> = div %16, %x_55
+    %x_56:vec2<f32> = let %17
+    %19:f32 = access %x_56, 0u
     %20:f32 = mul %19, 10.0f
-    %21:i32 = convert %20
-    %22:i32 = mul %21, 10i
-    %x_64:i32 = add %18, %22
+    %21:i32 = call %tint_f32_to_i32, %20
+    %23:i32 = let %21
+    %24:f32 = access %x_56, 1u
+    %25:f32 = mul %24, 10.0f
+    %26:i32 = call %tint_f32_to_i32, %25
+    %27:i32 = mul %26, 10i
+    %28:i32 = add %23, %27
+    %x_64:i32 = let %28
     store %x_66_phi, 100i
     store %x_69_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_67:ptr<function, i32, read_write> = var
         %x_70:ptr<function, i32, read_write> = var
-        %26:i32 = load %x_66_phi
-        store %x_66, %26
-        %x_69:i32 = load %x_69_phi
-        %28:bool = lt %x_69, %x_64
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %32:i32 = load %x_66_phi
+        store %x_66, %32
+        %33:i32 = load %x_69_phi
+        %x_69:i32 = let %33
+        %35:bool = lt %x_69, %x_64
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %29:i32 = load %x_66
-        %30:i32 = bitcast %29
-        %31:i32 = mul 4i, %30
-        %32:i32 = load %x_66
-        %33:i32 = bitcast %32
-        %34:i32 = sub 1000i, %33
-        %35:i32 = mul %31, %34
-        %36:i32 = div %35, 1000i
-        store %x_67, %36
-        %37:i32 = add %x_69, 1i
-        store %x_70, %37
-        %38:i32 = load %x_67
-        store %x_66_phi, %38
-        %39:i32 = load %x_70
-        store %x_69_phi, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %36:i32 = load %x_66
+        %37:i32 = bitcast %36
+        %38:i32 = mul 4i, %37
+        %39:i32 = let %38
+        %40:i32 = load %x_66
+        %41:i32 = bitcast %40
+        %42:i32 = sub 1000i, %41
+        %43:i32 = mul %39, %42
+        %44:i32 = call %tint_div_i32, %43, 1000i
+        store %x_67, %44
+        %46:i32 = add %x_69, 1i
+        store %x_70, %46
+        %47:i32 = load %x_67
+        store %x_66_phi, %47
+        %48:i32 = load %x_70
+        store %x_69_phi, %48
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %40:i32 = load %x_66
-    %41:i32 = mod %40, 16i
-    %42:i32 = bitcast %41
-    %43:ptr<function, vec4<f32>, read_write> = access %indexable, %42
-    %x_78:vec4<f32> = load %43
+    %49:i32 = load %x_66
+    %50:i32 = call %tint_mod_i32, %49, 16i
+    %52:i32 = bitcast %50
+    %53:ptr<function, vec4<f32>, read_write> = access %indexable, %52
+    %54:vec4<f32> = load %53
+    %x_78:vec4<f32> = let %54
     store %x_GLF_color, %x_78
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %47:void = call %main_1
-    %48:vec4<f32> = load %x_GLF_color
-    %49:main_out = construct %48
-    ret %49
+    %58:void = call %main_1
+    %59:vec4<f32> = load %x_GLF_color
+    %60:main_out = construct %59
+    ret %60
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %63:bool = eq %rhs, 0i
+    %64:bool = eq %lhs, -2147483648i
+    %65:bool = eq %rhs, -1i
+    %66:bool = and %64, %65
+    %67:bool = or %63, %66
+    %68:i32 = select %rhs, 1i, %67
+    %69:i32 = div %lhs, %68
+    ret %69
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %72:bool = eq %rhs_1, 0i
+    %73:bool = eq %lhs_1, -2147483648i
+    %74:bool = eq %rhs_1, -1i
+    %75:bool = and %73, %74
+    %76:bool = or %72, %75
+    %77:i32 = select %rhs_1, 1i, %76
+    %78:i32 = let %77
+    %79:i32 = div %lhs_1, %78
+    %80:i32 = mul %79, %78
+    %81:i32 = sub %lhs_1, %80
+    ret %81
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %83:i32 = convert %value
+    %84:bool = gte %value, -2147483648.0f
+    %85:i32 = select -2147483648i, %83, %84
+    %86:bool = lte %value, 2147483520.0f
+    %87:i32 = select 2147483647i, %85, %86
+    ret %87
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.msl
index da8daf5..318ce84 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,86 +8,127 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_72:ptr<function, i32, read_write> = var
     %x_75:ptr<function, i32, read_write> = var
     %8:vec4<f32> = load %gl_FragCoord
-    %x_55:vec2<f32> = swizzle %8, xy
-    %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %11:vec2<f32> = load %10
-    %x_59:vec2<f32> = div %x_55, %11
-    %13:f32 = access %x_59, 0u
-    %14:vec4<f32> = construct 0.0f, %x_55, 0.5f
-    %15:f32 = access %14, 3u
-    %16:vec4<f32> = construct %15, 10.0f, vec2<f32>(0.0f)
-    %17:f32 = access %16, 1u
-    %18:f32 = mul %13, %17
-    %19:i32 = convert %18
-    %20:f32 = access %x_59, 1u
-    %21:f32 = mul %20, 10.0f
-    %22:i32 = convert %21
-    %23:i32 = mul %22, 10i
-    %x_70:i32 = add %19, %23
+    %9:vec2<f32> = swizzle %8, xy
+    %x_55:vec2<f32> = let %9
+    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %12:vec2<f32> = load %11
+    %13:vec2<f32> = div %x_55, %12
+    %x_59:vec2<f32> = let %13
+    %15:f32 = access %x_59, 0u
+    %16:vec4<f32> = construct 0.0f, %x_55, 0.5f
+    %17:f32 = access %16, 3u
+    %18:vec4<f32> = construct %17, 10.0f, vec2<f32>(0.0f)
+    %19:f32 = access %18, 1u
+    %20:f32 = mul %15, %19
+    %21:i32 = call %tint_f32_to_i32, %20
+    %23:i32 = let %21
+    %24:f32 = access %x_59, 1u
+    %25:f32 = mul %24, 10.0f
+    %26:i32 = call %tint_f32_to_i32, %25
+    %27:i32 = mul %26, 10i
+    %28:i32 = add %23, %27
+    %x_70:i32 = let %28
     store %x_72, 100i
     store %x_75, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_73:ptr<function, i32, read_write> = var
         %x_76:ptr<function, i32, read_write> = var
-        %27:i32 = load %x_75
-        %28:bool = lt %27, %x_70
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %32:i32 = load %x_75
+        %33:bool = lt %32, %x_70
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %29:i32 = load %x_72
-        %30:i32 = mul 4i, %29
-        %31:i32 = load %x_72
-        %32:i32 = sub 1000i, %31
-        %33:i32 = mul %30, %32
-        %34:i32 = div %33, 1000i
-        store %x_73, %34
-        %35:i32 = load %x_75
-        %36:i32 = add %35, 1i
-        store %x_76, %36
-        %37:i32 = load %x_73
-        store %x_72, %37
-        %38:i32 = load %x_76
-        store %x_75, %38
-        next_iteration %b3
+      $B4: {  # continuing
+        %34:i32 = load %x_72
+        %35:i32 = mul 4i, %34
+        %36:i32 = load %x_72
+        %37:i32 = sub 1000i, %36
+        %38:i32 = mul %35, %37
+        %39:i32 = call %tint_div_i32, %38, 1000i
+        store %x_73, %39
+        %41:i32 = load %x_75
+        %42:i32 = add %41, 1i
+        store %x_76, %42
+        %43:i32 = load %x_73
+        store %x_72, %43
+        %44:i32 = load %x_76
+        store %x_75, %44
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %39:i32 = load %x_72
-    %40:i32 = mod %39, 16i
-    %41:ptr<function, vec4<f32>, read_write> = access %indexable, %40
-    %42:vec4<f32> = load %41
-    store %x_GLF_color, %42
+    %45:i32 = load %x_72
+    %46:i32 = call %tint_mod_i32, %45, 16i
+    %48:ptr<function, vec4<f32>, read_write> = access %indexable, %46
+    %49:vec4<f32> = load %48
+    store %x_GLF_color, %49
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_color
+    %54:main_out = construct %53
+    ret %54
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %57:bool = eq %rhs, 0i
+    %58:bool = eq %lhs, -2147483648i
+    %59:bool = eq %rhs, -1i
+    %60:bool = and %58, %59
+    %61:bool = or %57, %60
+    %62:i32 = select %rhs, 1i, %61
+    %63:i32 = div %lhs, %62
+    ret %63
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %66:bool = eq %rhs_1, 0i
+    %67:bool = eq %lhs_1, -2147483648i
+    %68:bool = eq %rhs_1, -1i
+    %69:bool = and %67, %68
+    %70:bool = or %66, %69
+    %71:i32 = select %rhs_1, 1i, %70
+    %72:i32 = let %71
+    %73:i32 = div %lhs_1, %72
+    %74:i32 = mul %73, %72
+    %75:i32 = sub %lhs_1, %74
+    ret %75
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.msl
index b0c0660..f211f6c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composite2/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,93 +8,139 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_72:ptr<function, i32, read_write> = var
     %x_72_phi:ptr<function, i32, read_write> = var
     %x_75_phi:ptr<function, i32, read_write> = var
-    %x_54:vec4<f32> = load %gl_FragCoord
-    %10:f32 = access %x_54, 0u
-    %11:f32 = access %x_54, 1u
-    %x_55:vec2<f32> = construct %10, %11
-    %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_58:vec2<f32> = load %13
-    %x_59:vec2<f32> = div %x_55, %x_58
-    %16:f32 = access %x_59, 0u
-    %17:vec4<f32> = construct 0.0f, %x_55, 0.5f
-    %18:f32 = access %17, 3u
-    %19:vec4<f32> = construct %18, 10.0f, vec2<f32>(0.0f)
-    %20:f32 = access %19, 1u
-    %21:f32 = mul %16, %20
-    %22:i32 = convert %21
-    %23:f32 = access %x_59, 1u
-    %24:f32 = mul %23, 10.0f
-    %25:i32 = convert %24
-    %26:i32 = mul %25, 10i
-    %x_70:i32 = add %22, %26
+    %9:vec4<f32> = load %gl_FragCoord
+    %x_54:vec4<f32> = let %9
+    %11:f32 = access %x_54, 0u
+    %12:f32 = access %x_54, 1u
+    %13:vec2<f32> = construct %11, %12
+    %x_55:vec2<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_58:vec2<f32> = let %16
+    %18:vec2<f32> = div %x_55, %x_58
+    %x_59:vec2<f32> = let %18
+    %20:f32 = access %x_59, 0u
+    %21:vec4<f32> = construct 0.0f, %x_55, 0.5f
+    %22:f32 = access %21, 3u
+    %23:vec4<f32> = construct %22, 10.0f, vec2<f32>(0.0f)
+    %24:f32 = access %23, 1u
+    %25:f32 = mul %20, %24
+    %26:i32 = call %tint_f32_to_i32, %25
+    %28:i32 = let %26
+    %29:f32 = access %x_59, 1u
+    %30:f32 = mul %29, 10.0f
+    %31:i32 = call %tint_f32_to_i32, %30
+    %32:i32 = mul %31, 10i
+    %33:i32 = add %28, %32
+    %x_70:i32 = let %33
     store %x_72_phi, 100i
     store %x_75_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_73:ptr<function, i32, read_write> = var
         %x_76:ptr<function, i32, read_write> = var
-        %30:i32 = load %x_72_phi
-        store %x_72, %30
-        %x_75:i32 = load %x_75_phi
-        %32:bool = lt %x_75, %x_70
-        if %32 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %37:i32 = load %x_72_phi
+        store %x_72, %37
+        %38:i32 = load %x_75_phi
+        %x_75:i32 = let %38
+        %40:bool = lt %x_75, %x_70
+        if %40 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %33:i32 = load %x_72
-        %34:i32 = bitcast %33
-        %35:i32 = mul 4i, %34
-        %36:i32 = load %x_72
-        %37:i32 = bitcast %36
-        %38:i32 = sub 1000i, %37
-        %39:i32 = mul %35, %38
-        %40:i32 = div %39, 1000i
-        store %x_73, %40
-        %41:i32 = add %x_75, 1i
-        store %x_76, %41
-        %42:i32 = load %x_73
-        store %x_72_phi, %42
-        %43:i32 = load %x_76
-        store %x_75_phi, %43
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %x_72
+        %42:i32 = bitcast %41
+        %43:i32 = mul 4i, %42
+        %44:i32 = let %43
+        %45:i32 = load %x_72
+        %46:i32 = bitcast %45
+        %47:i32 = sub 1000i, %46
+        %48:i32 = mul %44, %47
+        %49:i32 = call %tint_div_i32, %48, 1000i
+        store %x_73, %49
+        %51:i32 = add %x_75, 1i
+        store %x_76, %51
+        %52:i32 = load %x_73
+        store %x_72_phi, %52
+        %53:i32 = load %x_76
+        store %x_75_phi, %53
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %44:i32 = load %x_72
-    %45:i32 = mod %44, 16i
-    %46:i32 = bitcast %45
-    %47:ptr<function, vec4<f32>, read_write> = access %indexable, %46
-    %x_84:vec4<f32> = load %47
+    %54:i32 = load %x_72
+    %55:i32 = call %tint_mod_i32, %54, 16i
+    %57:i32 = bitcast %55
+    %58:ptr<function, vec4<f32>, read_write> = access %indexable, %57
+    %59:vec4<f32> = load %58
+    %x_84:vec4<f32> = let %59
     store %x_GLF_color, %x_84
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %51:void = call %main_1
-    %52:vec4<f32> = load %x_GLF_color
-    %53:main_out = construct %52
-    ret %53
+    %63:void = call %main_1
+    %64:vec4<f32> = load %x_GLF_color
+    %65:main_out = construct %64
+    ret %65
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %68:bool = eq %rhs, 0i
+    %69:bool = eq %lhs, -2147483648i
+    %70:bool = eq %rhs, -1i
+    %71:bool = and %69, %70
+    %72:bool = or %68, %71
+    %73:i32 = select %rhs, 1i, %72
+    %74:i32 = div %lhs, %73
+    ret %74
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %77:bool = eq %rhs_1, 0i
+    %78:bool = eq %lhs_1, -2147483648i
+    %79:bool = eq %rhs_1, -1i
+    %80:bool = and %78, %79
+    %81:bool = or %77, %80
+    %82:i32 = select %rhs_1, 1i, %81
+    %83:i32 = let %82
+    %84:i32 = div %lhs_1, %83
+    %85:i32 = mul %84, %83
+    %86:i32 = sub %lhs_1, %85
+    ret %86
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %88:i32 = convert %value
+    %89:bool = gte %value, -2147483648.0f
+    %90:i32 = select -2147483648i, %88, %89
+    %91:bool = lte %value, 2147483520.0f
+    %92:i32 = select 2147483647i, %90, %91
+    ret %92
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.msl
index 956cf49..4ec86c3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_195:ptr<function, array<i32, 256>, read_write> = var
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
@@ -29,91 +29,98 @@
     %15:vec2<f32> = swizzle %14, xy
     %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %17:vec2<f32> = load %16
-    %x_202:vec2<f32> = div %15, %17
-    %19:f32 = access %x_202, 0u
-    %20:f32 = mul %19, 256.0f
-    %21:i32 = convert %20
-    %22:f32 = access %x_202, 1u
-    %23:f32 = mul %22, 256.0f
-    %24:i32 = convert %23
-    %25:vec2<i32> = construct %21, %24
-    store %x_209, %25
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %26:vec2<i32> = load %x_209
-        store %x_213, %26
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %18:vec2<f32> = div %15, %17
+    %x_202:vec2<f32> = let %18
+    %20:f32 = access %x_202, 0u
+    %21:f32 = mul %20, 256.0f
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = let %22
+    %25:f32 = access %x_202, 1u
+    %26:f32 = mul %25, 256.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:vec2<i32> = construct %24, %27
+    store %x_209, %28
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %29:vec2<i32> = load %x_209
+        store %x_213, %29
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_230:ptr<function, bool, read_write> = var
             %x_231:ptr<function, bool, read_write> = var
-            %x_216:i32 = load_vector_element %x_213, 1u
+            %32:i32 = load_vector_element %x_213, 1u
+            %x_216:i32 = let %32
             store %x_243, vec4<f32>(0.0f)
             store %x_244, false
-            %30:bool = neq %x_216, 256i
-            if %30 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %34:bool = neq %x_216, 256i
+            if %34 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_220:i32 = load_vector_element %x_213, 0u
+            %35:i32 = load_vector_element %x_213, 0u
+            %x_220:i32 = let %35
             store %x_195, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %32:ptr<function, i32, read_write> = access %x_195, %x_216
-            %33:i32 = load %32
-            %34:i32 = add %33, 15i
-            %x_224:bool = lt %x_220, %34
+            %37:ptr<function, i32, read_write> = access %x_195, %x_216
+            %38:i32 = load %37
+            %39:i32 = add %38, 15i
+            %40:bool = lt %x_220, %39
+            %x_224:bool = let %40
             store %x_231, %x_224
-            if %x_224 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            if %x_224 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %36:ptr<function, i32, read_write> = access %x_196, %x_216
-                %37:i32 = load %36
-                %38:i32 = sub %37, 15i
-                %39:bool = gt %x_220, %38
-                store %x_230, %39
-                %40:bool = load %x_230
-                store %x_231, %40
+                %42:ptr<function, i32, read_write> = access %x_196, %x_216
+                %43:i32 = load %42
+                %44:i32 = sub %43, 15i
+                %45:bool = gt %x_220, %44
+                store %x_230, %45
+                %46:bool = load %x_230
+                store %x_231, %46
                 exit_if  # if_2
               }
             }
-            %41:bool = load %x_231
-            if %41 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %47:bool = load %x_231
+            if %47 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %42:ptr<function, i32, read_write> = access %x_197, %x_216
-                %43:i32 = load %42
-                %44:i32 = sub %x_220, %43
-                %45:f32 = convert %44
-                %46:f32 = abs %45
-                %47:f32 = sub 15.0f, %46
-                %x_240:f32 = mul %47, 0.06666667014360427856f
-                %49:vec4<f32> = construct %x_240, %x_240, %x_240, 1.0f
-                store %x_241, %49
-                %50:vec4<f32> = load %x_241
-                store %x_243, %50
+                %48:ptr<function, i32, read_write> = access %x_197, %x_216
+                %49:i32 = load %48
+                %50:i32 = sub %x_220, %49
+                %51:f32 = convert %50
+                %52:f32 = abs %51
+                %53:f32 = sub 15.0f, %52
+                %54:f32 = mul %53, 0.06666667014360427856f
+                %x_240:f32 = let %54
+                %56:vec4<f32> = construct %x_240, %x_240, %x_240, 1.0f
+                store %x_241, %56
+                %57:vec4<f32> = load %x_241
+                store %x_243, %57
                 store %x_244, true
                 exit_loop  # loop_1
               }
             }
-            %51:vec2<i32> = load %x_213
-            %x_214_1:ptr<function, vec2<i32>, read_write> = var, %51
-            %53:i32 = add %x_216, 1i
-            store_vector_element %x_214_1, 1u, %53
-            %x_214:vec2<i32> = load %x_214_1
-            continue %b5
+            %58:vec2<i32> = load %x_213
+            %x_214_1:ptr<function, vec2<i32>, read_write> = var, %58
+            %60:i32 = add %x_216, 1i
+            store_vector_element %x_214_1, 1u, %60
+            %61:vec2<i32> = load %x_214_1
+            %x_214:vec2<i32> = let %61
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_213, %x_214
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %55:vec4<f32> = load %x_243
-        store %x_246, %55
-        %56:bool = load %x_244
-        if %56 [t: %b10] {  # if_4
-          %b10 = block {  # true
+        %63:vec4<f32> = load %x_243
+        store %x_246, %63
+        %64:bool = load %x_244
+        if %64 [t: $B10] {  # if_4
+          $B10: {  # true
             exit_switch  # switch_1
           }
         }
@@ -121,18 +128,28 @@
         exit_switch  # switch_1
       }
     }
-    %57:vec4<f32> = load %x_246
-    store %x_GLF_color, %57
+    %65:vec4<f32> = load %x_246
+    store %x_GLF_color, %65
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %60:void = call %main_1
-    %61:vec4<f32> = load %x_GLF_color
-    %62:main_out = construct %61
-    ret %62
+    %68:void = call %main_1
+    %69:vec4<f32> = load %x_GLF_color
+    %70:main_out = construct %69
+    ret %70
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %72:i32 = convert %value
+    %73:bool = gte %value, -2147483648.0f
+    %74:i32 = select -2147483648i, %72, %73
+    %75:bool = lte %value, 2147483520.0f
+    %76:i32 = select 2147483647i, %74, %75
+    ret %76
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.msl
index 7b2fcd4..cecd947 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_195:ptr<function, array<i32, 256>, read_write> = var
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
@@ -26,99 +26,114 @@
     %x_243_phi:ptr<function, vec4<f32>, read_write> = var
     %x_244_phi:ptr<function, bool, read_write> = var
     %x_246_phi:ptr<function, vec4<f32>, read_write> = var
-    %x_198:vec4<f32> = load %gl_FragCoord
-    %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_201:vec2<f32> = load %16
-    %18:f32 = access %x_198, 0u
-    %19:f32 = access %x_198, 1u
-    %20:vec2<f32> = construct %18, %19
-    %x_202:vec2<f32> = div %20, %x_201
-    %22:f32 = access %x_202, 0u
-    %23:f32 = mul %22, 256.0f
-    %24:i32 = convert %23
-    %25:f32 = access %x_202, 1u
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_198:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %18:vec2<f32> = load %17
+    %x_201:vec2<f32> = let %18
+    %20:f32 = access %x_198, 0u
+    %21:f32 = access %x_198, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_201
+    %x_202:vec2<f32> = let %23
+    %25:f32 = access %x_202, 0u
     %26:f32 = mul %25, 256.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %24, %27
-    store %x_209, %28
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %29:vec2<i32> = load %x_209
-        store %x_213_phi, %29
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %27:i32 = call %tint_f32_to_i32, %26
+    %29:i32 = let %27
+    %30:f32 = access %x_202, 1u
+    %31:f32 = mul %30, 256.0f
+    %32:i32 = call %tint_f32_to_i32, %31
+    %33:vec2<i32> = construct %29, %32
+    store %x_209, %33
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %34:vec2<i32> = load %x_209
+        store %x_213_phi, %34
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_230:ptr<function, bool, read_write> = var
             %x_231_phi:ptr<function, bool, read_write> = var
-            %x_213:vec2<i32> = load %x_213_phi
-            %x_216:i32 = access %x_213, 1u
+            %37:vec2<i32> = load %x_213_phi
+            %x_213:vec2<i32> = let %37
+            %39:i32 = access %x_213, 1u
+            %x_216:i32 = let %39
             store %x_243_phi, vec4<f32>(0.0f)
             store %x_244_phi, false
-            %34:bool = neq %x_216, 256i
-            if %34 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %41:bool = neq %x_216, 256i
+            if %41 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_220:i32 = access %x_213, 0u
+            %42:i32 = access %x_213, 0u
+            %x_220:i32 = let %42
             store %x_195, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %36:ptr<function, i32, read_write> = access %x_195, %x_216
-            %x_222:i32 = load %36
-            %38:i32 = add %x_222, 15i
-            %x_224:bool = lt %x_220, %38
+            %44:ptr<function, i32, read_write> = access %x_195, %x_216
+            %45:i32 = load %44
+            %x_222:i32 = let %45
+            %47:i32 = add %x_222, 15i
+            %48:bool = lt %x_220, %47
+            %x_224:bool = let %48
             store %x_231_phi, %x_224
-            if %x_224 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            if %x_224 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %40:ptr<function, i32, read_write> = access %x_196, %x_216
-                %x_228:i32 = load %40
-                %42:i32 = sub %x_228, 15i
-                %43:bool = gt %x_220, %42
-                store %x_230, %43
-                %44:bool = load %x_230
-                store %x_231_phi, %44
+                %50:ptr<function, i32, read_write> = access %x_196, %x_216
+                %51:i32 = load %50
+                %x_228:i32 = let %51
+                %53:i32 = sub %x_228, 15i
+                %54:bool = gt %x_220, %53
+                store %x_230, %54
+                %55:bool = load %x_230
+                store %x_231_phi, %55
                 exit_if  # if_2
               }
             }
-            %x_231:bool = load %x_231_phi
-            if %x_231 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %56:bool = load %x_231_phi
+            %x_231:bool = let %56
+            if %x_231 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %46:ptr<function, i32, read_write> = access %x_197, %x_216
-                %x_235:i32 = load %46
-                %48:i32 = sub %x_220, %x_235
-                %49:f32 = convert %48
-                %50:f32 = abs %49
-                %51:f32 = sub 15.0f, %50
-                %x_240:f32 = mul %51, 0.06666667014360427856f
-                %53:vec4<f32> = construct %x_240, %x_240, %x_240, 1.0f
-                store %x_241, %53
-                %54:vec4<f32> = load %x_241
-                store %x_243_phi, %54
+                %58:ptr<function, i32, read_write> = access %x_197, %x_216
+                %59:i32 = load %58
+                %x_235:i32 = let %59
+                %61:i32 = sub %x_220, %x_235
+                %62:f32 = convert %61
+                %63:f32 = abs %62
+                %64:f32 = sub 15.0f, %63
+                %65:f32 = mul %64, 0.06666667014360427856f
+                %x_240:f32 = let %65
+                %67:vec4<f32> = construct %x_240, %x_240, %x_240, 1.0f
+                store %x_241, %67
+                %68:vec4<f32> = load %x_241
+                store %x_243_phi, %68
                 store %x_244_phi, true
                 exit_loop  # loop_1
               }
             }
             %x_214_1:ptr<function, vec2<i32>, read_write> = var, %x_213
-            %56:i32 = add %x_216, 1i
-            store_vector_element %x_214_1, 1u, %56
-            %x_214:vec2<i32> = load %x_214_1
-            continue %b5
+            %70:i32 = add %x_216, 1i
+            store_vector_element %x_214_1, 1u, %70
+            %71:vec2<i32> = load %x_214_1
+            %x_214:vec2<i32> = let %71
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_213_phi, %x_214
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %58:vec4<f32> = load %x_243_phi
-        store %x_243, %58
-        %x_244:bool = load %x_244_phi
-        %60:vec4<f32> = load %x_243
-        store %x_246_phi, %60
-        if %x_244 [t: %b10] {  # if_4
-          %b10 = block {  # true
+        %73:vec4<f32> = load %x_243_phi
+        store %x_243, %73
+        %74:bool = load %x_244_phi
+        %x_244:bool = let %74
+        %76:vec4<f32> = load %x_243
+        store %x_246_phi, %76
+        if %x_244 [t: $B10] {  # if_4
+          $B10: {  # true
             exit_switch  # switch_1
           }
         }
@@ -126,18 +141,29 @@
         exit_switch  # switch_1
       }
     }
-    %x_246:vec4<f32> = load %x_246_phi
+    %77:vec4<f32> = load %x_246_phi
+    %x_246:vec4<f32> = let %77
     store %x_GLF_color, %x_246
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %64:void = call %main_1
-    %65:vec4<f32> = load %x_GLF_color
-    %66:main_out = construct %65
-    ret %66
+    %81:void = call %main_1
+    %82:vec4<f32> = load %x_GLF_color
+    %83:main_out = construct %82
+    ret %83
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %85:i32 = convert %value
+    %86:bool = gte %value, -2147483648.0f
+    %87:i32 = select -2147483648i, %85, %86
+    %88:bool = lte %value, 2147483520.0f
+    %89:i32 = select 2147483647i, %87, %88
+    ret %89
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.msl
index 1b90589..aa39c09 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_195:ptr<function, array<i32, 256>, read_write> = var
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
@@ -27,104 +27,113 @@
     %x_252:ptr<function, bool, read_write> = var
     %x_254:ptr<function, vec4<f32>, read_write> = var
     %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_201:vec2<f32> = load %15
-    %17:vec4<f32> = load %gl_FragCoord
-    %18:vec2<f32> = swizzle %17, xy
-    %x_202:vec2<f32> = div %18, %x_201
+    %16:vec2<f32> = load %15
+    %x_201:vec2<f32> = let %16
+    %18:vec4<f32> = load %gl_FragCoord
+    %19:vec2<f32> = swizzle %18, xy
+    %20:vec2<f32> = div %19, %x_201
+    %x_202:vec2<f32> = let %20
     %x_204:i32 = let -82i
-    %21:vec4<f32> = construct %x_201, 15.0f, 15.0f
-    %22:f32 = access %21, 2u
-    %23:vec2<f32> = construct 0.0f, %22
-    store %x_208, %23
+    %23:vec4<f32> = construct %x_201, 15.0f, 15.0f
+    %24:f32 = access %23, 2u
+    %25:vec2<f32> = construct 0.0f, %24
+    store %x_208, %25
     %x_209:i32 = let 120i
-    %25:f32 = access %x_202, 0u
-    %26:f32 = mul %25, 256.0f
-    %27:i32 = convert %26
-    %28:f32 = access %x_202, 1u
-    %29:f32 = mul %28, 256.0f
-    %30:i32 = convert %29
-    %31:vec2<i32> = construct %27, %30
-    store %x_214, %31
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %32:vec2<i32> = load %x_214
-        store %x_218, %32
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %27:f32 = access %x_202, 0u
+    %28:f32 = mul %27, 256.0f
+    %29:i32 = call %tint_f32_to_i32, %28
+    %31:i32 = let %29
+    %32:f32 = access %x_202, 1u
+    %33:f32 = mul %32, 256.0f
+    %34:i32 = call %tint_f32_to_i32, %33
+    %35:vec2<i32> = construct %31, %34
+    store %x_214, %35
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %36:vec2<i32> = load %x_214
+        store %x_218, %36
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_235:ptr<function, bool, read_write> = var
             %x_236:ptr<function, bool, read_write> = var
-            %x_221:i32 = load_vector_element %x_218, 1u
+            %39:i32 = load_vector_element %x_218, 1u
+            %x_221:i32 = let %39
             store %x_251, vec4<f32>(0.0f)
             store %x_252, false
-            %36:bool = neq %x_221, 256i
-            if %36 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %41:bool = neq %x_221, 256i
+            if %41 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_225:i32 = load_vector_element %x_218, 0u
+            %42:i32 = load_vector_element %x_218, 0u
+            %x_225:i32 = let %42
             store %x_195, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %38:ptr<function, i32, read_write> = access %x_195, %x_221
-            %39:i32 = load %38
-            %40:i32 = add %39, 15i
-            %x_229:bool = lt %x_225, %40
+            %44:ptr<function, i32, read_write> = access %x_195, %x_221
+            %45:i32 = load %44
+            %46:i32 = add %45, 15i
+            %47:bool = lt %x_225, %46
+            %x_229:bool = let %47
             store %x_236, %x_229
-            if %x_229 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            if %x_229 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %42:ptr<function, i32, read_write> = access %x_196, %x_221
-                %43:i32 = load %42
-                %44:i32 = sub %43, 15i
-                %45:bool = gt %x_225, %44
-                store %x_235, %45
-                %46:bool = load %x_235
-                store %x_236, %46
+                %49:ptr<function, i32, read_write> = access %x_196, %x_221
+                %50:i32 = load %49
+                %51:i32 = sub %50, 15i
+                %52:bool = gt %x_225, %51
+                store %x_235, %52
+                %53:bool = load %x_235
+                store %x_236, %53
                 exit_if  # if_2
               }
             }
-            %47:bool = load %x_236
-            if %47 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %54:bool = load %x_236
+            if %54 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                 %x_244:i32 = let 335i
-                %49:vec2<f32> = load %x_208
-                %50:buf0 = construct %49
-                %51:f32 = access %50, 0u, 1u
-                %52:ptr<function, i32, read_write> = access %x_197, %x_221
-                %53:i32 = load %52
-                %54:i32 = sub %x_225, %53
-                %55:f32 = convert %54
-                %56:f32 = abs %55
-                %57:f32 = sub %51, %56
-                %x_248:f32 = mul %57, 0.06666667014360427856f
-                %59:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
-                store %x_249, %59
-                %60:vec4<f32> = load %x_249
-                store %x_251, %60
+                %56:vec2<f32> = load %x_208
+                %57:buf0 = construct %56
+                %58:f32 = access %57, 0u, 1u
+                %59:f32 = let %58
+                %60:ptr<function, i32, read_write> = access %x_197, %x_221
+                %61:i32 = load %60
+                %62:i32 = sub %x_225, %61
+                %63:f32 = convert %62
+                %64:f32 = abs %63
+                %65:f32 = sub %59, %64
+                %66:f32 = mul %65, 0.06666667014360427856f
+                %x_248:f32 = let %66
+                %68:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
+                store %x_249, %68
+                %69:vec4<f32> = load %x_249
+                store %x_251, %69
                 store %x_252, true
                 exit_loop  # loop_1
               }
             }
-            %61:vec2<i32> = load %x_218
-            %x_219_1:ptr<function, vec2<i32>, read_write> = var, %61
-            %63:i32 = add %x_221, 1i
-            store_vector_element %x_219_1, 1u, %63
-            %x_219:vec2<i32> = load %x_219_1
-            continue %b5
+            %70:vec2<i32> = load %x_218
+            %x_219_1:ptr<function, vec2<i32>, read_write> = var, %70
+            %72:i32 = add %x_221, 1i
+            store_vector_element %x_219_1, 1u, %72
+            %73:vec2<i32> = load %x_219_1
+            %x_219:vec2<i32> = let %73
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_218, %x_219
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %65:vec4<f32> = load %x_251
-        store %x_254, %65
-        %66:bool = load %x_252
-        if %66 [t: %b10] {  # if_4
-          %b10 = block {  # true
+        %75:vec4<f32> = load %x_251
+        store %x_254, %75
+        %76:bool = load %x_252
+        if %76 [t: $B10] {  # if_4
+          $B10: {  # true
             exit_switch  # switch_1
           }
         }
@@ -132,18 +141,28 @@
         exit_switch  # switch_1
       }
     }
-    %67:vec4<f32> = load %x_254
-    store %x_GLF_color, %67
+    %77:vec4<f32> = load %x_254
+    store %x_GLF_color, %77
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %70:void = call %main_1
-    %71:vec4<f32> = load %x_GLF_color
-    %72:main_out = construct %71
-    ret %72
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %84:i32 = convert %value
+    %85:bool = gte %value, -2147483648.0f
+    %86:i32 = select -2147483648i, %84, %85
+    %87:bool = lte %value, 2147483520.0f
+    %88:i32 = select 2147483647i, %86, %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.msl
index 31517d0..dec9ff5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-composites/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_195:ptr<function, array<i32, 256>, read_write> = var
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
@@ -27,109 +27,125 @@
     %x_251_phi:ptr<function, vec4<f32>, read_write> = var
     %x_252_phi:ptr<function, bool, read_write> = var
     %x_254_phi:ptr<function, vec4<f32>, read_write> = var
-    %x_198:vec4<f32> = load %gl_FragCoord
-    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_201:vec2<f32> = load %17
-    %19:f32 = access %x_198, 0u
-    %20:f32 = access %x_198, 1u
-    %21:vec2<f32> = construct %19, %20
-    %x_202:vec2<f32> = div %21, %x_201
+    %16:vec4<f32> = load %gl_FragCoord
+    %x_198:vec4<f32> = let %16
+    %18:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %19:vec2<f32> = load %18
+    %x_201:vec2<f32> = let %19
+    %21:f32 = access %x_198, 0u
+    %22:f32 = access %x_198, 1u
+    %23:vec2<f32> = construct %21, %22
+    %24:vec2<f32> = div %23, %x_201
+    %x_202:vec2<f32> = let %24
     %x_204:i32 = let -82i
-    %24:vec4<f32> = construct %x_201, 15.0f, 15.0f
-    %25:f32 = access %24, 2u
-    %26:vec2<f32> = construct 0.0f, %25
-    store %x_208, %26
+    %27:vec4<f32> = construct %x_201, 15.0f, 15.0f
+    %28:f32 = access %27, 2u
+    %29:vec2<f32> = construct 0.0f, %28
+    store %x_208, %29
     %x_209:i32 = let 120i
-    %28:f32 = access %x_202, 0u
-    %29:f32 = mul %28, 256.0f
-    %30:i32 = convert %29
-    %31:f32 = access %x_202, 1u
+    %31:f32 = access %x_202, 0u
     %32:f32 = mul %31, 256.0f
-    %33:i32 = convert %32
-    %34:vec2<i32> = construct %30, %33
-    store %x_214, %34
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %35:vec2<i32> = load %x_214
-        store %x_218_phi, %35
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %33:i32 = call %tint_f32_to_i32, %32
+    %35:i32 = let %33
+    %36:f32 = access %x_202, 1u
+    %37:f32 = mul %36, 256.0f
+    %38:i32 = call %tint_f32_to_i32, %37
+    %39:vec2<i32> = construct %35, %38
+    store %x_214, %39
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %40:vec2<i32> = load %x_214
+        store %x_218_phi, %40
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_235:ptr<function, bool, read_write> = var
             %x_236_phi:ptr<function, bool, read_write> = var
-            %x_218:vec2<i32> = load %x_218_phi
-            %x_221:i32 = access %x_218, 1u
+            %43:vec2<i32> = load %x_218_phi
+            %x_218:vec2<i32> = let %43
+            %45:i32 = access %x_218, 1u
+            %x_221:i32 = let %45
             store %x_251_phi, vec4<f32>(0.0f)
             store %x_252_phi, false
-            %40:bool = neq %x_221, 256i
-            if %40 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %47:bool = neq %x_221, 256i
+            if %47 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_225:i32 = access %x_218, 0u
+            %48:i32 = access %x_218, 0u
+            %x_225:i32 = let %48
             store %x_195, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %42:ptr<function, i32, read_write> = access %x_195, %x_221
-            %x_227:i32 = load %42
-            %44:i32 = add %x_227, 15i
-            %x_229:bool = lt %x_225, %44
+            %50:ptr<function, i32, read_write> = access %x_195, %x_221
+            %51:i32 = load %50
+            %x_227:i32 = let %51
+            %53:i32 = add %x_227, 15i
+            %54:bool = lt %x_225, %53
+            %x_229:bool = let %54
             store %x_236_phi, %x_229
-            if %x_229 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            if %x_229 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %46:ptr<function, i32, read_write> = access %x_196, %x_221
-                %x_233:i32 = load %46
-                %48:i32 = sub %x_233, 15i
-                %49:bool = gt %x_225, %48
-                store %x_235, %49
-                %50:bool = load %x_235
-                store %x_236_phi, %50
+                %56:ptr<function, i32, read_write> = access %x_196, %x_221
+                %57:i32 = load %56
+                %x_233:i32 = let %57
+                %59:i32 = sub %x_233, 15i
+                %60:bool = gt %x_225, %59
+                store %x_235, %60
+                %61:bool = load %x_235
+                store %x_236_phi, %61
                 exit_if  # if_2
               }
             }
-            %x_236:bool = load %x_236_phi
-            if %x_236 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %62:bool = load %x_236_phi
+            %x_236:bool = let %62
+            if %x_236 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %52:ptr<function, i32, read_write> = access %x_197, %x_221
-                %x_240:i32 = load %52
+                %64:ptr<function, i32, read_write> = access %x_197, %x_221
+                %65:i32 = load %64
+                %x_240:i32 = let %65
                 %x_244:i32 = let 335i
-                %55:vec2<f32> = load %x_208
-                %56:buf0 = construct %55
-                %57:f32 = access %56, 0u, 1u
-                %58:i32 = sub %x_225, %x_240
-                %59:f32 = convert %58
-                %60:f32 = abs %59
-                %61:f32 = sub %57, %60
-                %x_248:f32 = mul %61, 0.06666667014360427856f
-                %63:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
-                store %x_249, %63
-                %64:vec4<f32> = load %x_249
-                store %x_251_phi, %64
+                %68:vec2<f32> = load %x_208
+                %69:buf0 = construct %68
+                %70:f32 = access %69, 0u, 1u
+                %71:f32 = let %70
+                %72:i32 = sub %x_225, %x_240
+                %73:f32 = convert %72
+                %74:f32 = abs %73
+                %75:f32 = sub %71, %74
+                %76:f32 = mul %75, 0.06666667014360427856f
+                %x_248:f32 = let %76
+                %78:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
+                store %x_249, %78
+                %79:vec4<f32> = load %x_249
+                store %x_251_phi, %79
                 store %x_252_phi, true
                 exit_loop  # loop_1
               }
             }
             %x_219_1:ptr<function, vec2<i32>, read_write> = var, %x_218
-            %66:i32 = add %x_221, 1i
-            store_vector_element %x_219_1, 1u, %66
-            %x_219:vec2<i32> = load %x_219_1
-            continue %b5
+            %81:i32 = add %x_221, 1i
+            store_vector_element %x_219_1, 1u, %81
+            %82:vec2<i32> = load %x_219_1
+            %x_219:vec2<i32> = let %82
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_218_phi, %x_219
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %68:vec4<f32> = load %x_251_phi
-        store %x_251, %68
-        %x_252:bool = load %x_252_phi
-        %70:vec4<f32> = load %x_251
-        store %x_254_phi, %70
-        if %x_252 [t: %b10] {  # if_4
-          %b10 = block {  # true
+        %84:vec4<f32> = load %x_251_phi
+        store %x_251, %84
+        %85:bool = load %x_252_phi
+        %x_252:bool = let %85
+        %87:vec4<f32> = load %x_251
+        store %x_254_phi, %87
+        if %x_252 [t: $B10] {  # if_4
+          $B10: {  # true
             exit_switch  # switch_1
           }
         }
@@ -137,18 +153,29 @@
         exit_switch  # switch_1
       }
     }
-    %x_254:vec4<f32> = load %x_254_phi
+    %88:vec4<f32> = load %x_254_phi
+    %x_254:vec4<f32> = let %88
     store %x_GLF_color, %x_254
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %74:void = call %main_1
-    %75:vec4<f32> = load %x_GLF_color
-    %76:main_out = construct %75
-    ret %76
+    %92:void = call %main_1
+    %93:vec4<f32> = load %x_GLF_color
+    %94:main_out = construct %93
+    ret %94
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %96:i32 = convert %value
+    %97:bool = gte %value, -2147483648.0f
+    %98:i32 = select -2147483648i, %96, %97
+    %99:bool = lte %value, 2147483520.0f
+    %100:i32 = select 2147483647i, %98, %99
+    ret %100
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.msl
index 14c81b1..c8e7081 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
@@ -16,8 +16,8 @@
   %x_60:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f))
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -36,42 +36,44 @@
     store %pos, %21
     %22:f32 = load_vector_element %pos, 0u
     %23:f32 = mul %22, 16.0f
-    %24:i32 = convert %23
-    %25:f32 = load_vector_element %pos, 1u
-    %26:f32 = mul %25, 16.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %24, %27
-    store %ipos, %28
+    %24:i32 = call %tint_f32_to_i32, %23
+    %26:i32 = let %24
+    %27:f32 = load_vector_element %pos, 1u
+    %28:f32 = mul %27, 16.0f
+    %29:i32 = call %tint_f32_to_i32, %28
+    %30:vec2<i32> = construct %26, %29
+    store %ipos, %30
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %29:i32 = load %i
-        %30:bool = lt %29, 256i
-        if %30 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %31:i32 = load %i
+        %32:bool = lt %31, 256i
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_86:i32 = load %i
-        %32:ptr<private, i32, read_write> = access %map, %x_86
-        store %32, 0i
-        continue %b4
-      }
-      %b4 = block {  # continuing
         %33:i32 = load %i
-        %34:i32 = add %33, 1i
-        store %i, %34
-        next_iteration %b3
+        %x_86:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %map, %x_86
+        store %35, 0i
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %36:i32 = load %i
+        %37:i32 = add %36, 1i
+        store %i, %37
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_110:ptr<function, bool, read_write> = var
         %x_111:ptr<function, bool, read_write> = var
         %x_130:ptr<function, bool, read_write> = var
@@ -80,120 +82,125 @@
         %x_151:ptr<function, bool, read_write> = var
         %x_171:ptr<function, bool, read_write> = var
         %x_172:ptr<function, bool, read_write> = var
-        %43:i32 = load %v
-        %44:i32 = add %43, 1i
-        store %v, %44
+        %46:i32 = load %v
+        %47:i32 = add %46, 1i
+        store %v, %47
         store %directions, 0i
-        %45:i32 = load_vector_element %p, 0u
-        %x_98:bool = gt %45, 0i
+        %48:i32 = load_vector_element %p, 0u
+        %49:bool = gt %48, 0i
+        %x_98:bool = let %49
         store %x_111, %x_98
-        if %x_98 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %47:i32 = load_vector_element %p, 0u
-            %48:i32 = sub %47, 2i
-            %49:i32 = load_vector_element %p, 1u
-            %50:i32 = mul %49, 16i
-            %51:i32 = add %48, %50
-            %52:ptr<private, i32, read_write> = access %map, %51
-            %53:i32 = load %52
-            %54:bool = eq %53, 0i
-            store %x_110, %54
-            %55:bool = load %x_110
-            store %x_111, %55
+        if %x_98 [t: $B9] {  # if_2
+          $B9: {  # true
+            %51:i32 = load_vector_element %p, 0u
+            %52:i32 = sub %51, 2i
+            %53:i32 = load_vector_element %p, 1u
+            %54:i32 = mul %53, 16i
+            %55:i32 = add %52, %54
+            %56:ptr<private, i32, read_write> = access %map, %55
+            %57:i32 = load %56
+            %58:bool = eq %57, 0i
+            store %x_110, %58
+            %59:bool = load %x_110
+            store %x_111, %59
             exit_if  # if_2
           }
         }
-        %56:bool = load %x_111
-        if %56 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %57:i32 = load %directions
-            %58:i32 = add %57, 1i
-            store %directions, %58
+        %60:bool = load %x_111
+        if %60 [t: $B10] {  # if_3
+          $B10: {  # true
+            %61:i32 = load %directions
+            %62:i32 = add %61, 1i
+            store %directions, %62
             exit_if  # if_3
           }
         }
-        %59:i32 = load_vector_element %p, 1u
-        %x_118:bool = gt %59, 0i
+        %63:i32 = load_vector_element %p, 1u
+        %64:bool = gt %63, 0i
+        %x_118:bool = let %64
         store %x_131, %x_118
-        if %x_118 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %61:i32 = load_vector_element %p, 0u
-            %62:i32 = load_vector_element %p, 1u
-            %63:i32 = sub %62, 2i
-            %64:i32 = mul %63, 16i
-            %65:i32 = add %61, %64
-            %66:ptr<private, i32, read_write> = access %map, %65
-            %67:i32 = load %66
-            %68:bool = eq %67, 0i
-            store %x_130, %68
-            %69:bool = load %x_130
-            store %x_131, %69
+        if %x_118 [t: $B11] {  # if_4
+          $B11: {  # true
+            %66:i32 = load_vector_element %p, 0u
+            %67:i32 = load_vector_element %p, 1u
+            %68:i32 = sub %67, 2i
+            %69:i32 = mul %68, 16i
+            %70:i32 = add %66, %69
+            %71:ptr<private, i32, read_write> = access %map, %70
+            %72:i32 = load %71
+            %73:bool = eq %72, 0i
+            store %x_130, %73
+            %74:bool = load %x_130
+            store %x_131, %74
             exit_if  # if_4
           }
         }
-        %70:bool = load %x_131
-        if %70 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %71:i32 = load %directions
-            %72:i32 = add %71, 1i
-            store %directions, %72
+        %75:bool = load %x_131
+        if %75 [t: $B12] {  # if_5
+          $B12: {  # true
+            %76:i32 = load %directions
+            %77:i32 = add %76, 1i
+            store %directions, %77
             exit_if  # if_5
           }
         }
-        %73:i32 = load_vector_element %p, 0u
-        %x_138:bool = lt %73, 14i
+        %78:i32 = load_vector_element %p, 0u
+        %79:bool = lt %78, 14i
+        %x_138:bool = let %79
         store %x_151, %x_138
-        if %x_138 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %75:i32 = load_vector_element %p, 0u
-            %76:i32 = add %75, 2i
-            %77:i32 = load_vector_element %p, 1u
-            %78:i32 = mul %77, 16i
-            %79:i32 = add %76, %78
-            %80:ptr<private, i32, read_write> = access %map, %79
-            %81:i32 = load %80
-            %82:bool = eq %81, 0i
-            store %x_150, %82
-            %83:bool = load %x_150
-            store %x_151, %83
+        if %x_138 [t: $B13] {  # if_6
+          $B13: {  # true
+            %81:i32 = load_vector_element %p, 0u
+            %82:i32 = add %81, 2i
+            %83:i32 = load_vector_element %p, 1u
+            %84:i32 = mul %83, 16i
+            %85:i32 = add %82, %84
+            %86:ptr<private, i32, read_write> = access %map, %85
+            %87:i32 = load %86
+            %88:bool = eq %87, 0i
+            store %x_150, %88
+            %89:bool = load %x_150
+            store %x_151, %89
             exit_if  # if_6
           }
         }
-        %84:bool = load %x_151
-        if %84 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %85:i32 = load %directions
-            %86:i32 = add %85, 1i
-            store %directions, %86
+        %90:bool = load %x_151
+        if %90 [t: $B14] {  # if_7
+          $B14: {  # true
+            %91:i32 = load %directions
+            %92:i32 = add %91, 1i
+            store %directions, %92
             exit_if  # if_7
           }
         }
-        %x_156:i32 = sub 256i, %x_68
-        %88:i32 = load_vector_element %p, 1u
-        %x_159:bool = lt %88, 14i
+        %93:i32 = sub 256i, %x_68
+        %x_156:i32 = let %93
+        %95:i32 = load_vector_element %p, 1u
+        %96:bool = lt %95, 14i
+        %x_159:bool = let %96
         store %x_172, %x_159
-        if %x_159 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %90:i32 = load_vector_element %p, 0u
-            %91:i32 = load_vector_element %p, 1u
-            %92:i32 = add %91, 2i
-            %93:i32 = mul %92, 16i
-            %94:i32 = add %90, %93
-            %95:ptr<private, i32, read_write> = access %map, %94
-            %96:i32 = load %95
-            %97:bool = eq %96, 0i
-            store %x_171, %97
-            %98:bool = load %x_171
-            store %x_172, %98
+        if %x_159 [t: $B15] {  # if_8
+          $B15: {  # true
+            %98:i32 = load_vector_element %p, 0u
+            %99:i32 = load_vector_element %p, 1u
+            %100:i32 = add %99, 2i
+            %101:i32 = mul %100, 16i
+            %102:i32 = add %98, %101
+            %103:ptr<private, i32, read_write> = access %map, %102
+            %104:i32 = load %103
+            %105:bool = eq %104, 0i
+            store %x_171, %105
+            %106:bool = load %x_171
+            store %x_172, %106
             exit_if  # if_8
           }
         }
-        %99:bool = load %x_172
-        if %99 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %100:i32 = load %directions
-            %101:i32 = add %100, 1i
-            store %directions, %101
+        %107:bool = load %x_172
+        if %107 [t: $B16] {  # if_9
+          $B16: {  # true
+            %108:i32 = load %directions
+            %109:i32 = add %108, 1i
+            store %directions, %109
             exit_if  # if_9
           }
         }
@@ -213,392 +220,450 @@
         %x_394:ptr<function, bool, read_write> = var
         %x_406:ptr<function, bool, read_write> = var
         %x_407:ptr<function, bool, read_write> = var
-        %118:i32 = load %directions
-        %119:bool = eq %118, 0i
-        if %119 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %126:i32 = load %directions
+        %127:bool = eq %126, 0i
+        if %127 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %x_186:i32 = load %i
-                %121:i32 = load %i
-                %122:bool = lt %121, 8i
-                if %122 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %128:i32 = load %i
+                %x_186:i32 = let %128
+                %130:i32 = load %i
+                %131:bool = lt %130, 8i
+                if %131 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                %x_189:i32 = sub %x_156, %x_186
+                %132:i32 = sub %x_156, %x_186
+                %x_189:i32 = let %132
                 store %x_60, mat2x4<f32>(vec4<f32>(0.0f))
-                if false [t: %b23] {  # if_12
-                  %b23 = block {  # true
-                    continue %b20
+                if false [t: $B23] {  # if_12
+                  $B23: {  # true
+                    continue  # -> $B20
                   }
                 }
-                loop [b: %b24, c: %b25] {  # loop_4
-                  %b24 = block {  # body
-                    %124:i32 = load %j
-                    %125:bool = lt %124, 8i
-                    if %125 [t: %b26, f: %b27] {  # if_13
-                      %b26 = block {  # true
+                loop [b: $B24, c: $B25] {  # loop_4
+                  $B24: {  # body
+                    %134:i32 = load %j
+                    %135:bool = lt %134, 8i
+                    if %135 [t: $B26, f: $B27] {  # if_13
+                      $B26: {  # true
                         exit_if  # if_13
                       }
-                      %b27 = block {  # false
+                      $B27: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %126:i32 = load %j
-                    %127:i32 = mul %126, 2i
-                    %128:i32 = load %i
-                    %129:i32 = mul %128, 2i
-                    %130:i32 = mul %129, 16i
-                    %131:i32 = add %127, %130
-                    %132:ptr<private, i32, read_write> = access %map, %131
-                    %133:i32 = load %132
-                    %134:bool = eq %133, 0i
-                    if %134 [t: %b28] {  # if_14
-                      %b28 = block {  # true
-                        %135:i32 = load %j
-                        %136:i32 = mul %135, 2i
-                        store_vector_element %p, 0u, %136
-                        %137:i32 = load %i
-                        %138:i32 = mul %137, 2i
-                        store_vector_element %p, 1u, %138
+                    %136:i32 = load %j
+                    %137:i32 = mul %136, 2i
+                    %138:i32 = load %i
+                    %139:i32 = mul %138, 2i
+                    %140:i32 = mul %139, 16i
+                    %141:i32 = add %137, %140
+                    %142:ptr<private, i32, read_write> = access %map, %141
+                    %143:i32 = load %142
+                    %144:bool = eq %143, 0i
+                    if %144 [t: $B28] {  # if_14
+                      $B28: {  # true
+                        %145:i32 = load %j
+                        %146:i32 = mul %145, 2i
+                        store_vector_element %p, 0u, %146
+                        %147:i32 = load %i
+                        %148:i32 = mul %147, 2i
+                        store_vector_element %p, 1u, %148
                         store %canwalk, true
                         exit_if  # if_14
                       }
                     }
-                    continue %b25
+                    continue  # -> $B25
                   }
-                  %b25 = block {  # continuing
-                    %139:i32 = load %j
-                    %140:i32 = add %139, 1i
-                    store %j, %140
-                    next_iteration %b24
+                  $B25: {  # continuing
+                    %149:i32 = load %j
+                    %150:i32 = add %149, 1i
+                    store %j, %150
+                    next_iteration  # -> $B24
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %141:i32 = load %i
-                %142:i32 = add %141, 1i
-                store %i, %142
-                next_iteration %b19
+              $B20: {  # continuing
+                %151:i32 = load %i
+                %152:i32 = add %151, 1i
+                store %i, %152
+                next_iteration  # -> $B19
               }
             }
-            %x_219:i32 = load_vector_element %p, 0u
-            %x_221:i32 = load_vector_element %p, 1u
-            %145:i32 = mul %x_221, 16i
-            %146:i32 = add %x_219, %145
-            %147:ptr<private, i32, read_write> = access %map, %146
-            store %147, 1i
+            %153:i32 = load_vector_element %p, 0u
+            %x_219:i32 = let %153
+            %155:i32 = load_vector_element %p, 1u
+            %x_221:i32 = let %155
+            %157:i32 = mul %x_221, 16i
+            %158:i32 = add %x_219, %157
+            %159:ptr<private, i32, read_write> = access %map, %158
+            store %159, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %148:i32 = load %v
-            %149:i32 = load %directions
-            %150:i32 = mod %148, %149
-            store %d, %150
-            %151:i32 = load %v
-            %152:i32 = load %directions
-            %153:i32 = add %151, %152
-            store %v, %153
-            %154:i32 = load %d
-            %x_232:bool = gte %154, 0i
+          $B18: {  # false
+            %160:i32 = load %v
+            %161:i32 = load %directions
+            %162:i32 = call %tint_mod_i32, %160, %161
+            store %d, %162
+            %164:i32 = load %v
+            %165:i32 = load %directions
+            %166:i32 = add %164, %165
+            store %v, %166
+            %167:i32 = load %d
+            %168:bool = gte %167, 0i
+            %x_232:bool = let %168
             store %x_238, %x_232
-            if %x_232 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %156:i32 = load_vector_element %p, 0u
-                %157:bool = gt %156, 0i
-                store %x_237, %157
-                %158:bool = load %x_237
-                store %x_238, %158
+            if %x_232 [t: $B29] {  # if_15
+              $B29: {  # true
+                %170:i32 = load_vector_element %p, 0u
+                %171:bool = gt %170, 0i
+                store %x_237, %171
+                %172:bool = load %x_237
+                store %x_238, %172
                 exit_if  # if_15
               }
             }
-            %159:bool = load %x_238
-            store %x_251, %159
-            %160:bool = load %x_238
-            if %160 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %161:i32 = load_vector_element %p, 0u
-                %162:i32 = sub %161, 2i
-                %163:i32 = load_vector_element %p, 1u
-                %164:i32 = mul %163, 16i
-                %165:i32 = add %162, %164
-                %166:ptr<private, i32, read_write> = access %map, %165
-                %167:i32 = load %166
-                %168:bool = eq %167, 0i
-                store %x_250, %168
-                %169:bool = load %x_250
-                store %x_251, %169
+            %173:bool = load %x_238
+            store %x_251, %173
+            %174:bool = load %x_238
+            if %174 [t: $B30] {  # if_16
+              $B30: {  # true
+                %175:i32 = load_vector_element %p, 0u
+                %176:i32 = sub %175, 2i
+                %177:i32 = load_vector_element %p, 1u
+                %178:i32 = mul %177, 16i
+                %179:i32 = add %176, %178
+                %180:ptr<private, i32, read_write> = access %map, %179
+                %181:i32 = load %180
+                %182:bool = eq %181, 0i
+                store %x_250, %182
+                %183:bool = load %x_250
+                store %x_251, %183
                 exit_if  # if_16
               }
             }
-            %170:bool = load %x_251
-            if %170 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %171:i32 = load %d
-                %172:i32 = sub %171, 1i
-                store %d, %172
-                %x_257:i32 = load_vector_element %p, 0u
-                %x_259:i32 = load_vector_element %p, 1u
-                %175:i32 = mul %x_259, 16i
-                %176:i32 = add %x_257, %175
-                %177:ptr<private, i32, read_write> = access %map, %176
-                store %177, 1i
-                %x_264:i32 = load_vector_element %p, 0u
-                %x_267:i32 = load_vector_element %p, 1u
-                %180:i32 = sub %x_264, 1i
-                %181:i32 = mul %x_267, 16i
-                %182:i32 = add %180, %181
-                %183:ptr<private, i32, read_write> = access %map, %182
-                store %183, 1i
-                %x_272:i32 = load_vector_element %p, 0u
-                %x_275:i32 = load_vector_element %p, 1u
-                %186:i32 = sub %x_272, 2i
-                %187:i32 = mul %x_275, 16i
-                %188:i32 = add %186, %187
-                %189:ptr<private, i32, read_write> = access %map, %188
-                store %189, 1i
-                %190:i32 = load_vector_element %p, 0u
-                %191:i32 = sub %190, 2i
-                store_vector_element %p, 0u, %191
+            %184:bool = load %x_251
+            if %184 [t: $B31] {  # if_17
+              $B31: {  # true
+                %185:i32 = load %d
+                %186:i32 = sub %185, 1i
+                store %d, %186
+                %187:i32 = load_vector_element %p, 0u
+                %x_257:i32 = let %187
+                %189:i32 = load_vector_element %p, 1u
+                %x_259:i32 = let %189
+                %191:i32 = mul %x_259, 16i
+                %192:i32 = add %x_257, %191
+                %193:ptr<private, i32, read_write> = access %map, %192
+                store %193, 1i
+                %194:i32 = load_vector_element %p, 0u
+                %x_264:i32 = let %194
+                %196:i32 = load_vector_element %p, 1u
+                %x_267:i32 = let %196
+                %198:i32 = sub %x_264, 1i
+                %199:i32 = mul %x_267, 16i
+                %200:i32 = add %198, %199
+                %201:ptr<private, i32, read_write> = access %map, %200
+                store %201, 1i
+                %202:i32 = load_vector_element %p, 0u
+                %x_272:i32 = let %202
+                %204:i32 = load_vector_element %p, 1u
+                %x_275:i32 = let %204
+                %206:i32 = sub %x_272, 2i
+                %207:i32 = mul %x_275, 16i
+                %208:i32 = add %206, %207
+                %209:ptr<private, i32, read_write> = access %map, %208
+                store %209, 1i
+                %210:i32 = load_vector_element %p, 0u
+                %211:i32 = sub %210, 2i
+                store_vector_element %p, 0u, %211
                 exit_if  # if_17
               }
             }
-            %192:i32 = load %d
-            %x_284:bool = gte %192, 0i
+            %212:i32 = load %d
+            %213:bool = gte %212, 0i
+            %x_284:bool = let %213
             store %x_290, %x_284
-            if %x_284 [t: %b32] {  # if_18
-              %b32 = block {  # true
-                %194:i32 = load_vector_element %p, 1u
-                %195:bool = gt %194, 0i
-                store %x_289, %195
-                %196:bool = load %x_289
-                store %x_290, %196
+            if %x_284 [t: $B32] {  # if_18
+              $B32: {  # true
+                %215:i32 = load_vector_element %p, 1u
+                %216:bool = gt %215, 0i
+                store %x_289, %216
+                %217:bool = load %x_289
+                store %x_290, %217
                 exit_if  # if_18
               }
             }
-            %197:bool = load %x_290
-            store %x_303, %197
-            %198:bool = load %x_290
-            if %198 [t: %b33] {  # if_19
-              %b33 = block {  # true
-                %199:i32 = load_vector_element %p, 0u
-                %200:i32 = load_vector_element %p, 1u
-                %201:i32 = sub %200, 2i
-                %202:i32 = mul %201, 16i
-                %203:i32 = add %199, %202
-                %204:ptr<private, i32, read_write> = access %map, %203
-                %205:i32 = load %204
-                %206:bool = eq %205, 0i
-                store %x_302, %206
-                %207:bool = load %x_302
-                store %x_303, %207
+            %218:bool = load %x_290
+            store %x_303, %218
+            %219:bool = load %x_290
+            if %219 [t: $B33] {  # if_19
+              $B33: {  # true
+                %220:i32 = load_vector_element %p, 0u
+                %221:i32 = load_vector_element %p, 1u
+                %222:i32 = sub %221, 2i
+                %223:i32 = mul %222, 16i
+                %224:i32 = add %220, %223
+                %225:ptr<private, i32, read_write> = access %map, %224
+                %226:i32 = load %225
+                %227:bool = eq %226, 0i
+                store %x_302, %227
+                %228:bool = load %x_302
+                store %x_303, %228
                 exit_if  # if_19
               }
             }
-            %208:bool = load %x_303
-            if %208 [t: %b34] {  # if_20
-              %b34 = block {  # true
-                %209:i32 = load %d
-                %210:i32 = sub %209, 1i
-                store %d, %210
-                %x_309:i32 = load_vector_element %p, 0u
-                %x_311:i32 = load_vector_element %p, 1u
-                %213:i32 = mul %x_311, 16i
-                %214:i32 = add %x_309, %213
-                %215:ptr<private, i32, read_write> = access %map, %214
-                store %215, 1i
-                %x_316:i32 = load_vector_element %p, 0u
-                %x_318:i32 = load_vector_element %p, 1u
-                %218:i32 = sub %x_318, 1i
-                %219:i32 = mul %218, 16i
-                %220:i32 = add %x_316, %219
-                %221:ptr<private, i32, read_write> = access %map, %220
-                store %221, 1i
-                %x_324:i32 = load_vector_element %p, 0u
-                %x_326:i32 = load_vector_element %p, 1u
-                %224:i32 = sub %x_326, 2i
-                %225:i32 = mul %224, 16i
-                %226:i32 = add %x_324, %225
-                %227:ptr<private, i32, read_write> = access %map, %226
-                store %227, 1i
-                %228:i32 = load_vector_element %p, 1u
-                %229:i32 = sub %228, 2i
-                store_vector_element %p, 1u, %229
+            %229:bool = load %x_303
+            if %229 [t: $B34] {  # if_20
+              $B34: {  # true
+                %230:i32 = load %d
+                %231:i32 = sub %230, 1i
+                store %d, %231
+                %232:i32 = load_vector_element %p, 0u
+                %x_309:i32 = let %232
+                %234:i32 = load_vector_element %p, 1u
+                %x_311:i32 = let %234
+                %236:i32 = mul %x_311, 16i
+                %237:i32 = add %x_309, %236
+                %238:ptr<private, i32, read_write> = access %map, %237
+                store %238, 1i
+                %239:i32 = load_vector_element %p, 0u
+                %x_316:i32 = let %239
+                %241:i32 = load_vector_element %p, 1u
+                %x_318:i32 = let %241
+                %243:i32 = sub %x_318, 1i
+                %244:i32 = mul %243, 16i
+                %245:i32 = add %x_316, %244
+                %246:ptr<private, i32, read_write> = access %map, %245
+                store %246, 1i
+                %247:i32 = load_vector_element %p, 0u
+                %x_324:i32 = let %247
+                %249:i32 = load_vector_element %p, 1u
+                %x_326:i32 = let %249
+                %251:i32 = sub %x_326, 2i
+                %252:i32 = mul %251, 16i
+                %253:i32 = add %x_324, %252
+                %254:ptr<private, i32, read_write> = access %map, %253
+                store %254, 1i
+                %255:i32 = load_vector_element %p, 1u
+                %256:i32 = sub %255, 2i
+                store_vector_element %p, 1u, %256
                 exit_if  # if_20
               }
             }
-            %230:i32 = load %d
-            %x_336:bool = gte %230, 0i
+            %257:i32 = load %d
+            %258:bool = gte %257, 0i
+            %x_336:bool = let %258
             store %x_342, %x_336
-            if %x_336 [t: %b35] {  # if_21
-              %b35 = block {  # true
-                %232:i32 = load_vector_element %p, 0u
-                %233:bool = lt %232, 14i
-                store %x_341, %233
-                %234:bool = load %x_341
-                store %x_342, %234
+            if %x_336 [t: $B35] {  # if_21
+              $B35: {  # true
+                %260:i32 = load_vector_element %p, 0u
+                %261:bool = lt %260, 14i
+                store %x_341, %261
+                %262:bool = load %x_341
+                store %x_342, %262
                 exit_if  # if_21
               }
             }
-            %235:bool = load %x_342
-            store %x_355, %235
-            %236:bool = load %x_342
-            if %236 [t: %b36] {  # if_22
-              %b36 = block {  # true
-                %237:i32 = load_vector_element %p, 0u
-                %238:i32 = add %237, 2i
-                %239:i32 = load_vector_element %p, 1u
-                %240:i32 = mul %239, 16i
-                %241:i32 = add %238, %240
-                %242:ptr<private, i32, read_write> = access %map, %241
-                %243:i32 = load %242
-                %244:bool = eq %243, 0i
-                store %x_354, %244
-                %245:bool = load %x_354
-                store %x_355, %245
+            %263:bool = load %x_342
+            store %x_355, %263
+            %264:bool = load %x_342
+            if %264 [t: $B36] {  # if_22
+              $B36: {  # true
+                %265:i32 = load_vector_element %p, 0u
+                %266:i32 = add %265, 2i
+                %267:i32 = load_vector_element %p, 1u
+                %268:i32 = mul %267, 16i
+                %269:i32 = add %266, %268
+                %270:ptr<private, i32, read_write> = access %map, %269
+                %271:i32 = load %270
+                %272:bool = eq %271, 0i
+                store %x_354, %272
+                %273:bool = load %x_354
+                store %x_355, %273
                 exit_if  # if_22
               }
             }
-            %246:bool = load %x_355
-            if %246 [t: %b37] {  # if_23
-              %b37 = block {  # true
-                %247:i32 = load %d
-                %248:i32 = sub %247, 1i
-                store %d, %248
-                %x_361:i32 = load_vector_element %p, 0u
-                %x_363:i32 = load_vector_element %p, 1u
-                %251:i32 = mul %x_363, 16i
-                %252:i32 = add %x_361, %251
-                %253:ptr<private, i32, read_write> = access %map, %252
-                store %253, 1i
-                %x_368:i32 = load_vector_element %p, 0u
-                %x_371:i32 = load_vector_element %p, 1u
-                %256:i32 = add %x_368, 1i
-                %257:i32 = mul %x_371, 16i
-                %258:i32 = add %256, %257
-                %259:ptr<private, i32, read_write> = access %map, %258
-                store %259, 1i
-                %x_376:i32 = load_vector_element %p, 0u
-                %x_379:i32 = load_vector_element %p, 1u
-                %262:i32 = add %x_376, 2i
-                %263:i32 = mul %x_379, 16i
-                %264:i32 = add %262, %263
-                %265:ptr<private, i32, read_write> = access %map, %264
-                store %265, 1i
-                %266:i32 = load_vector_element %p, 0u
-                %267:i32 = add %266, 2i
-                store_vector_element %p, 0u, %267
+            %274:bool = load %x_355
+            if %274 [t: $B37] {  # if_23
+              $B37: {  # true
+                %275:i32 = load %d
+                %276:i32 = sub %275, 1i
+                store %d, %276
+                %277:i32 = load_vector_element %p, 0u
+                %x_361:i32 = let %277
+                %279:i32 = load_vector_element %p, 1u
+                %x_363:i32 = let %279
+                %281:i32 = mul %x_363, 16i
+                %282:i32 = add %x_361, %281
+                %283:ptr<private, i32, read_write> = access %map, %282
+                store %283, 1i
+                %284:i32 = load_vector_element %p, 0u
+                %x_368:i32 = let %284
+                %286:i32 = load_vector_element %p, 1u
+                %x_371:i32 = let %286
+                %288:i32 = add %x_368, 1i
+                %289:i32 = mul %x_371, 16i
+                %290:i32 = add %288, %289
+                %291:ptr<private, i32, read_write> = access %map, %290
+                store %291, 1i
+                %292:i32 = load_vector_element %p, 0u
+                %x_376:i32 = let %292
+                %294:i32 = load_vector_element %p, 1u
+                %x_379:i32 = let %294
+                %296:i32 = add %x_376, 2i
+                %297:i32 = mul %x_379, 16i
+                %298:i32 = add %296, %297
+                %299:ptr<private, i32, read_write> = access %map, %298
+                store %299, 1i
+                %300:i32 = load_vector_element %p, 0u
+                %301:i32 = add %300, 2i
+                store_vector_element %p, 0u, %301
                 exit_if  # if_23
               }
             }
-            %268:i32 = load %d
-            %x_388:bool = gte %268, 0i
+            %302:i32 = load %d
+            %303:bool = gte %302, 0i
+            %x_388:bool = let %303
             store %x_394, %x_388
-            if %x_388 [t: %b38] {  # if_24
-              %b38 = block {  # true
-                %270:i32 = load_vector_element %p, 1u
-                %271:bool = lt %270, 14i
-                store %x_393, %271
-                %272:bool = load %x_393
-                store %x_394, %272
+            if %x_388 [t: $B38] {  # if_24
+              $B38: {  # true
+                %305:i32 = load_vector_element %p, 1u
+                %306:bool = lt %305, 14i
+                store %x_393, %306
+                %307:bool = load %x_393
+                store %x_394, %307
                 exit_if  # if_24
               }
             }
-            %273:bool = load %x_394
-            store %x_407, %273
-            %274:bool = load %x_394
-            if %274 [t: %b39] {  # if_25
-              %b39 = block {  # true
-                %275:i32 = load_vector_element %p, 0u
-                %276:i32 = load_vector_element %p, 1u
-                %277:i32 = add %276, 2i
-                %278:i32 = mul %277, 16i
-                %279:i32 = add %275, %278
-                %280:ptr<private, i32, read_write> = access %map, %279
-                %281:i32 = load %280
-                %282:bool = eq %281, 0i
-                store %x_406, %282
-                %283:bool = load %x_406
-                store %x_407, %283
+            %308:bool = load %x_394
+            store %x_407, %308
+            %309:bool = load %x_394
+            if %309 [t: $B39] {  # if_25
+              $B39: {  # true
+                %310:i32 = load_vector_element %p, 0u
+                %311:i32 = load_vector_element %p, 1u
+                %312:i32 = add %311, 2i
+                %313:i32 = mul %312, 16i
+                %314:i32 = add %310, %313
+                %315:ptr<private, i32, read_write> = access %map, %314
+                %316:i32 = load %315
+                %317:bool = eq %316, 0i
+                store %x_406, %317
+                %318:bool = load %x_406
+                store %x_407, %318
                 exit_if  # if_25
               }
             }
-            %284:bool = load %x_407
-            if %284 [t: %b40] {  # if_26
-              %b40 = block {  # true
-                %285:i32 = load %d
-                %286:i32 = sub %285, 1i
-                store %d, %286
-                %x_413:i32 = load_vector_element %p, 0u
-                %x_415:i32 = load_vector_element %p, 1u
-                %289:i32 = mul %x_415, 16i
-                %290:i32 = add %x_413, %289
-                %291:ptr<private, i32, read_write> = access %map, %290
-                store %291, 1i
-                %x_420:i32 = load_vector_element %p, 0u
-                %x_422:i32 = load_vector_element %p, 1u
-                %294:i32 = add %x_422, 1i
-                %295:i32 = mul %294, 16i
-                %296:i32 = add %x_420, %295
-                %297:ptr<private, i32, read_write> = access %map, %296
-                store %297, 1i
-                %x_428:i32 = load_vector_element %p, 0u
-                %x_430:i32 = load_vector_element %p, 1u
-                %300:i32 = add %x_430, 2i
-                %301:i32 = mul %300, 16i
-                %302:i32 = add %x_428, %301
-                %303:ptr<private, i32, read_write> = access %map, %302
-                store %303, 1i
-                %304:i32 = load_vector_element %p, 1u
-                %305:i32 = add %304, 2i
-                store_vector_element %p, 1u, %305
+            %319:bool = load %x_407
+            if %319 [t: $B40] {  # if_26
+              $B40: {  # true
+                %320:i32 = load %d
+                %321:i32 = sub %320, 1i
+                store %d, %321
+                %322:i32 = load_vector_element %p, 0u
+                %x_413:i32 = let %322
+                %324:i32 = load_vector_element %p, 1u
+                %x_415:i32 = let %324
+                %326:i32 = mul %x_415, 16i
+                %327:i32 = add %x_413, %326
+                %328:ptr<private, i32, read_write> = access %map, %327
+                store %328, 1i
+                %329:i32 = load_vector_element %p, 0u
+                %x_420:i32 = let %329
+                %331:i32 = load_vector_element %p, 1u
+                %x_422:i32 = let %331
+                %333:i32 = add %x_422, 1i
+                %334:i32 = mul %333, 16i
+                %335:i32 = add %x_420, %334
+                %336:ptr<private, i32, read_write> = access %map, %335
+                store %336, 1i
+                %337:i32 = load_vector_element %p, 0u
+                %x_428:i32 = let %337
+                %339:i32 = load_vector_element %p, 1u
+                %x_430:i32 = let %339
+                %341:i32 = add %x_430, 2i
+                %342:i32 = mul %341, 16i
+                %343:i32 = add %x_428, %342
+                %344:ptr<private, i32, read_write> = access %map, %343
+                store %344, 1i
+                %345:i32 = load_vector_element %p, 1u
+                %346:i32 = add %345, 2i
+                store_vector_element %p, 1u, %346
                 exit_if  # if_26
               }
             }
             exit_if  # if_10
           }
         }
-        %306:i32 = load_vector_element %ipos, 1u
-        %307:i32 = mul %306, 16i
-        %308:i32 = load_vector_element %ipos, 0u
-        %309:i32 = add %307, %308
-        %310:ptr<private, i32, read_write> = access %map, %309
-        %311:i32 = load %310
-        %312:bool = eq %311, 1i
-        if %312 [t: %b41] {  # if_27
-          %b41 = block {  # true
+        %347:i32 = load_vector_element %ipos, 1u
+        %348:i32 = mul %347, 16i
+        %349:i32 = load_vector_element %ipos, 0u
+        %350:i32 = add %348, %349
+        %351:ptr<private, i32, read_write> = access %map, %350
+        %352:i32 = load %351
+        %353:bool = eq %352, 1i
+        if %353 [t: $B41] {  # if_27
+          $B41: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_450:bool = load %canwalk
-        %314:bool = eq %x_450, false
-        break_if %314 %b7
+      $B8: {  # continuing
+        %354:bool = load %canwalk
+        %x_450:bool = let %354
+        %356:bool = eq %x_450, false
+        break_if %356  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b42 {
-  %b42 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B42: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %317:void = call %main_1
-    %318:vec4<f32> = load %x_GLF_color
-    %319:main_out = construct %318
-    ret %319
+    %359:void = call %main_1
+    %360:vec4<f32> = load %x_GLF_color
+    %361:main_out = construct %360
+    ret %361
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B43: {
+    %364:bool = eq %rhs, 0i
+    %365:bool = eq %lhs, -2147483648i
+    %366:bool = eq %rhs, -1i
+    %367:bool = and %365, %366
+    %368:bool = or %364, %367
+    %369:i32 = select %rhs, 1i, %368
+    %370:i32 = let %369
+    %371:i32 = div %lhs, %370
+    %372:i32 = mul %371, %370
+    %373:i32 = sub %lhs, %372
+    ret %373
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B44: {
+    %375:i32 = convert %value
+    %376:bool = gte %value, -2147483648.0f
+    %377:i32 = select -2147483648i, %375, %376
+    %378:bool = lte %value, 2147483520.0f
+    %379:i32 = select 2147483647i, %377, %378
+    ret %379
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.msl
index db37090..4af85c3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-dead-break-and-unroll/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
@@ -16,8 +16,8 @@
   %x_60:ptr<private, mat2x4<f32>, read_write> = var, mat2x4<f32>(vec4<f32>(0.0f))
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -27,53 +27,61 @@
     %directions:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %d:ptr<function, i32, read_write> = var
-    %x_63:vec4<f32> = load %gl_FragCoord
-    %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_67:vec2<f32> = load %17
+    %16:vec4<f32> = load %gl_FragCoord
+    %x_63:vec4<f32> = let %16
+    %18:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %19:vec2<f32> = load %18
+    %x_67:vec2<f32> = let %19
     %x_68:i32 = let -242i
-    %20:f32 = access %x_63, 0u
-    %21:f32 = access %x_63, 1u
-    %22:vec2<f32> = construct %20, %21
-    %23:vec2<f32> = div %22, %x_67
-    store %pos, %23
-    %x_71:f32 = load_vector_element %pos, 0u
-    %x_75:f32 = load_vector_element %pos, 1u
-    %26:f32 = mul %x_71, 16.0f
-    %27:i32 = convert %26
-    %28:f32 = mul %x_75, 16.0f
-    %29:i32 = convert %28
-    %30:vec2<i32> = construct %27, %29
-    store %ipos, %30
+    %22:f32 = access %x_63, 0u
+    %23:f32 = access %x_63, 1u
+    %24:vec2<f32> = construct %22, %23
+    %25:vec2<f32> = div %24, %x_67
+    store %pos, %25
+    %26:f32 = load_vector_element %pos, 0u
+    %x_71:f32 = let %26
+    %28:f32 = load_vector_element %pos, 1u
+    %x_75:f32 = let %28
+    %30:f32 = mul %x_71, 16.0f
+    %31:i32 = call %tint_f32_to_i32, %30
+    %33:i32 = let %31
+    %34:f32 = mul %x_75, 16.0f
+    %35:i32 = call %tint_f32_to_i32, %34
+    %36:vec2<i32> = construct %33, %35
+    store %ipos, %36
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_83:i32 = load %i
-        %32:bool = lt %x_83, 256i
-        if %32 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %37:i32 = load %i
+        %x_83:i32 = let %37
+        %39:bool = lt %x_83, 256i
+        if %39 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_86:i32 = load %i
-        %34:ptr<private, i32, read_write> = access %map, %x_86
-        store %34, 0i
-        continue %b4
+        %40:i32 = load %i
+        %x_86:i32 = let %40
+        %42:ptr<private, i32, read_write> = access %map, %x_86
+        store %42, 0i
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_88:i32 = load %i
-        %36:i32 = add %x_88, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %43:i32 = load %i
+        %x_88:i32 = let %43
+        %45:i32 = add %x_88, 1i
+        store %i, %45
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_110:ptr<function, bool, read_write> = var
         %x_130:ptr<function, bool, read_write> = var
         %x_150:ptr<function, bool, read_write> = var
@@ -82,120 +90,150 @@
         %x_131_phi:ptr<function, bool, read_write> = var
         %x_151_phi:ptr<function, bool, read_write> = var
         %x_172_phi:ptr<function, bool, read_write> = var
-        %x_94:i32 = load %v
-        %46:i32 = add %x_94, 1i
-        store %v, %46
+        %54:i32 = load %v
+        %x_94:i32 = let %54
+        %56:i32 = add %x_94, 1i
+        store %v, %56
         store %directions, 0i
-        %x_97:i32 = load_vector_element %p, 0u
-        %x_98:bool = gt %x_97, 0i
+        %57:i32 = load_vector_element %p, 0u
+        %x_97:i32 = let %57
+        %59:bool = gt %x_97, 0i
+        %x_98:bool = let %59
         store %x_111_phi, %x_98
-        if %x_98 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %x_102:i32 = load_vector_element %p, 0u
-            %x_105:i32 = load_vector_element %p, 1u
-            %51:i32 = sub %x_102, 2i
-            %52:i32 = mul %x_105, 16i
-            %53:i32 = add %51, %52
-            %54:ptr<private, i32, read_write> = access %map, %53
-            %x_109:i32 = load %54
-            %56:bool = eq %x_109, 0i
-            store %x_110, %56
-            %57:bool = load %x_110
-            store %x_111_phi, %57
+        if %x_98 [t: $B9] {  # if_2
+          $B9: {  # true
+            %61:i32 = load_vector_element %p, 0u
+            %x_102:i32 = let %61
+            %63:i32 = load_vector_element %p, 1u
+            %x_105:i32 = let %63
+            %65:i32 = sub %x_102, 2i
+            %66:i32 = mul %x_105, 16i
+            %67:i32 = add %65, %66
+            %68:ptr<private, i32, read_write> = access %map, %67
+            %69:i32 = load %68
+            %x_109:i32 = let %69
+            %71:bool = eq %x_109, 0i
+            store %x_110, %71
+            %72:bool = load %x_110
+            store %x_111_phi, %72
             exit_if  # if_2
           }
         }
-        %x_111:bool = load %x_111_phi
-        if %x_111 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %x_114:i32 = load %directions
-            %60:i32 = add %x_114, 1i
-            store %directions, %60
+        %73:bool = load %x_111_phi
+        %x_111:bool = let %73
+        if %x_111 [t: $B10] {  # if_3
+          $B10: {  # true
+            %75:i32 = load %directions
+            %x_114:i32 = let %75
+            %77:i32 = add %x_114, 1i
+            store %directions, %77
             exit_if  # if_3
           }
         }
-        %x_117:i32 = load_vector_element %p, 1u
-        %x_118:bool = gt %x_117, 0i
+        %78:i32 = load_vector_element %p, 1u
+        %x_117:i32 = let %78
+        %80:bool = gt %x_117, 0i
+        %x_118:bool = let %80
         store %x_131_phi, %x_118
-        if %x_118 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %x_122:i32 = load_vector_element %p, 0u
-            %x_124:i32 = load_vector_element %p, 1u
-            %65:i32 = sub %x_124, 2i
-            %66:i32 = mul %65, 16i
-            %67:i32 = add %x_122, %66
-            %68:ptr<private, i32, read_write> = access %map, %67
-            %x_129:i32 = load %68
-            %70:bool = eq %x_129, 0i
-            store %x_130, %70
-            %71:bool = load %x_130
-            store %x_131_phi, %71
+        if %x_118 [t: $B11] {  # if_4
+          $B11: {  # true
+            %82:i32 = load_vector_element %p, 0u
+            %x_122:i32 = let %82
+            %84:i32 = load_vector_element %p, 1u
+            %x_124:i32 = let %84
+            %86:i32 = sub %x_124, 2i
+            %87:i32 = mul %86, 16i
+            %88:i32 = add %x_122, %87
+            %89:ptr<private, i32, read_write> = access %map, %88
+            %90:i32 = load %89
+            %x_129:i32 = let %90
+            %92:bool = eq %x_129, 0i
+            store %x_130, %92
+            %93:bool = load %x_130
+            store %x_131_phi, %93
             exit_if  # if_4
           }
         }
-        %x_131:bool = load %x_131_phi
-        if %x_131 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %x_134:i32 = load %directions
-            %74:i32 = add %x_134, 1i
-            store %directions, %74
+        %94:bool = load %x_131_phi
+        %x_131:bool = let %94
+        if %x_131 [t: $B12] {  # if_5
+          $B12: {  # true
+            %96:i32 = load %directions
+            %x_134:i32 = let %96
+            %98:i32 = add %x_134, 1i
+            store %directions, %98
             exit_if  # if_5
           }
         }
-        %x_137:i32 = load_vector_element %p, 0u
-        %x_138:bool = lt %x_137, 14i
+        %99:i32 = load_vector_element %p, 0u
+        %x_137:i32 = let %99
+        %101:bool = lt %x_137, 14i
+        %x_138:bool = let %101
         store %x_151_phi, %x_138
-        if %x_138 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %x_142:i32 = load_vector_element %p, 0u
-            %x_145:i32 = load_vector_element %p, 1u
-            %79:i32 = add %x_142, 2i
-            %80:i32 = mul %x_145, 16i
-            %81:i32 = add %79, %80
-            %82:ptr<private, i32, read_write> = access %map, %81
-            %x_149:i32 = load %82
-            %84:bool = eq %x_149, 0i
-            store %x_150, %84
-            %85:bool = load %x_150
-            store %x_151_phi, %85
+        if %x_138 [t: $B13] {  # if_6
+          $B13: {  # true
+            %103:i32 = load_vector_element %p, 0u
+            %x_142:i32 = let %103
+            %105:i32 = load_vector_element %p, 1u
+            %x_145:i32 = let %105
+            %107:i32 = add %x_142, 2i
+            %108:i32 = mul %x_145, 16i
+            %109:i32 = add %107, %108
+            %110:ptr<private, i32, read_write> = access %map, %109
+            %111:i32 = load %110
+            %x_149:i32 = let %111
+            %113:bool = eq %x_149, 0i
+            store %x_150, %113
+            %114:bool = load %x_150
+            store %x_151_phi, %114
             exit_if  # if_6
           }
         }
-        %x_151:bool = load %x_151_phi
-        if %x_151 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %x_154:i32 = load %directions
-            %88:i32 = add %x_154, 1i
-            store %directions, %88
+        %115:bool = load %x_151_phi
+        %x_151:bool = let %115
+        if %x_151 [t: $B14] {  # if_7
+          $B14: {  # true
+            %117:i32 = load %directions
+            %x_154:i32 = let %117
+            %119:i32 = add %x_154, 1i
+            store %directions, %119
             exit_if  # if_7
           }
         }
-        %x_156:i32 = sub 256i, %x_68
-        %x_158:i32 = load_vector_element %p, 1u
-        %x_159:bool = lt %x_158, 14i
+        %120:i32 = sub 256i, %x_68
+        %x_156:i32 = let %120
+        %122:i32 = load_vector_element %p, 1u
+        %x_158:i32 = let %122
+        %124:bool = lt %x_158, 14i
+        %x_159:bool = let %124
         store %x_172_phi, %x_159
-        if %x_159 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %x_163:i32 = load_vector_element %p, 0u
-            %x_165:i32 = load_vector_element %p, 1u
-            %94:i32 = add %x_165, 2i
-            %95:i32 = mul %94, 16i
-            %96:i32 = add %x_163, %95
-            %97:ptr<private, i32, read_write> = access %map, %96
-            %x_170:i32 = load %97
-            %99:bool = eq %x_170, 0i
-            store %x_171, %99
-            %100:bool = load %x_171
-            store %x_172_phi, %100
+        if %x_159 [t: $B15] {  # if_8
+          $B15: {  # true
+            %126:i32 = load_vector_element %p, 0u
+            %x_163:i32 = let %126
+            %128:i32 = load_vector_element %p, 1u
+            %x_165:i32 = let %128
+            %130:i32 = add %x_165, 2i
+            %131:i32 = mul %130, 16i
+            %132:i32 = add %x_163, %131
+            %133:ptr<private, i32, read_write> = access %map, %132
+            %134:i32 = load %133
+            %x_170:i32 = let %134
+            %136:bool = eq %x_170, 0i
+            store %x_171, %136
+            %137:bool = load %x_171
+            store %x_172_phi, %137
             exit_if  # if_8
           }
         }
-        %x_172:bool = load %x_172_phi
-        if %x_172 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %x_175:i32 = load %directions
-            %103:i32 = add %x_175, 1i
-            store %directions, %103
+        %138:bool = load %x_172_phi
+        %x_172:bool = let %138
+        if %x_172 [t: $B16] {  # if_9
+          $B16: {  # true
+            %140:i32 = load %directions
+            %x_175:i32 = let %140
+            %142:i32 = add %x_175, 1i
+            store %directions, %142
             exit_if  # if_9
           }
         }
@@ -215,387 +253,497 @@
         %x_355_phi:ptr<function, bool, read_write> = var
         %x_394_phi:ptr<function, bool, read_write> = var
         %x_407_phi:ptr<function, bool, read_write> = var
-        %x_177:i32 = load %directions
-        %121:bool = eq %x_177, 0i
-        if %121 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %159:i32 = load %directions
+        %x_177:i32 = let %159
+        %161:bool = eq %x_177, 0i
+        if %161 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %x_186:i32 = load %i
-                %123:bool = lt %x_186, 8i
-                if %123 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %162:i32 = load %i
+                %x_186:i32 = let %162
+                %164:bool = lt %x_186, 8i
+                if %164 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                %x_189:i32 = sub %x_156, %x_186
+                %165:i32 = sub %x_156, %x_186
+                %x_189:i32 = let %165
                 store %x_60, mat2x4<f32>(vec4<f32>(0.0f))
-                if false [t: %b23] {  # if_12
-                  %b23 = block {  # true
-                    continue %b20
+                if false [t: $B23] {  # if_12
+                  $B23: {  # true
+                    continue  # -> $B20
                   }
                 }
-                loop [b: %b24, c: %b25] {  # loop_4
-                  %b24 = block {  # body
-                    %x_194:i32 = load %j
-                    %126:bool = lt %x_194, 8i
-                    if %126 [t: %b26, f: %b27] {  # if_13
-                      %b26 = block {  # true
+                loop [b: $B24, c: $B25] {  # loop_4
+                  $B24: {  # body
+                    %167:i32 = load %j
+                    %x_194:i32 = let %167
+                    %169:bool = lt %x_194, 8i
+                    if %169 [t: $B26, f: $B27] {  # if_13
+                      $B26: {  # true
                         exit_if  # if_13
                       }
-                      %b27 = block {  # false
+                      $B27: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_197:i32 = load %j
-                    %x_199:i32 = load %i
-                    %129:i32 = mul %x_197, 2i
-                    %130:i32 = mul %x_199, 2i
-                    %131:i32 = mul %130, 16i
-                    %132:i32 = add %129, %131
-                    %133:ptr<private, i32, read_write> = access %map, %132
-                    %x_204:i32 = load %133
-                    %135:bool = eq %x_204, 0i
-                    if %135 [t: %b28] {  # if_14
-                      %b28 = block {  # true
-                        %x_208:i32 = load %j
-                        %137:i32 = mul %x_208, 2i
-                        store_vector_element %p, 0u, %137
-                        %x_211:i32 = load %i
-                        %139:i32 = mul %x_211, 2i
-                        store_vector_element %p, 1u, %139
+                    %170:i32 = load %j
+                    %x_197:i32 = let %170
+                    %172:i32 = load %i
+                    %x_199:i32 = let %172
+                    %174:i32 = mul %x_197, 2i
+                    %175:i32 = mul %x_199, 2i
+                    %176:i32 = mul %175, 16i
+                    %177:i32 = add %174, %176
+                    %178:ptr<private, i32, read_write> = access %map, %177
+                    %179:i32 = load %178
+                    %x_204:i32 = let %179
+                    %181:bool = eq %x_204, 0i
+                    if %181 [t: $B28] {  # if_14
+                      $B28: {  # true
+                        %182:i32 = load %j
+                        %x_208:i32 = let %182
+                        %184:i32 = mul %x_208, 2i
+                        store_vector_element %p, 0u, %184
+                        %185:i32 = load %i
+                        %x_211:i32 = let %185
+                        %187:i32 = mul %x_211, 2i
+                        store_vector_element %p, 1u, %187
                         store %canwalk, true
                         exit_if  # if_14
                       }
                     }
-                    continue %b25
+                    continue  # -> $B25
                   }
-                  %b25 = block {  # continuing
-                    %x_214:i32 = load %j
-                    %141:i32 = add %x_214, 1i
-                    store %j, %141
-                    next_iteration %b24
+                  $B25: {  # continuing
+                    %188:i32 = load %j
+                    %x_214:i32 = let %188
+                    %190:i32 = add %x_214, 1i
+                    store %j, %190
+                    next_iteration  # -> $B24
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %x_216:i32 = load %i
-                %143:i32 = add %x_216, 1i
-                store %i, %143
-                next_iteration %b19
+              $B20: {  # continuing
+                %191:i32 = load %i
+                %x_216:i32 = let %191
+                %193:i32 = add %x_216, 1i
+                store %i, %193
+                next_iteration  # -> $B19
               }
             }
-            %x_219:i32 = load_vector_element %p, 0u
-            %x_221:i32 = load_vector_element %p, 1u
-            %146:i32 = mul %x_221, 16i
-            %147:i32 = add %x_219, %146
-            %148:ptr<private, i32, read_write> = access %map, %147
-            store %148, 1i
+            %194:i32 = load_vector_element %p, 0u
+            %x_219:i32 = let %194
+            %196:i32 = load_vector_element %p, 1u
+            %x_221:i32 = let %196
+            %198:i32 = mul %x_221, 16i
+            %199:i32 = add %x_219, %198
+            %200:ptr<private, i32, read_write> = access %map, %199
+            store %200, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %x_225:i32 = load %v
-            %x_226:i32 = load %directions
-            %151:i32 = mod %x_225, %x_226
-            store %d, %151
-            %x_228:i32 = load %directions
-            %x_229:i32 = load %v
-            %154:i32 = add %x_229, %x_228
-            store %v, %154
-            %x_231:i32 = load %d
-            %x_232:bool = gte %x_231, 0i
+          $B18: {  # false
+            %201:i32 = load %v
+            %x_225:i32 = let %201
+            %203:i32 = load %directions
+            %x_226:i32 = let %203
+            %205:i32 = call %tint_mod_i32, %x_225, %x_226
+            store %d, %205
+            %207:i32 = load %directions
+            %x_228:i32 = let %207
+            %209:i32 = load %v
+            %x_229:i32 = let %209
+            %211:i32 = add %x_229, %x_228
+            store %v, %211
+            %212:i32 = load %d
+            %x_231:i32 = let %212
+            %214:bool = gte %x_231, 0i
+            %x_232:bool = let %214
             store %x_238_phi, %x_232
-            if %x_232 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %x_236:i32 = load_vector_element %p, 0u
-                %158:bool = gt %x_236, 0i
-                store %x_237, %158
-                %159:bool = load %x_237
-                store %x_238_phi, %159
+            if %x_232 [t: $B29] {  # if_15
+              $B29: {  # true
+                %216:i32 = load_vector_element %p, 0u
+                %x_236:i32 = let %216
+                %218:bool = gt %x_236, 0i
+                store %x_237, %218
+                %219:bool = load %x_237
+                store %x_238_phi, %219
                 exit_if  # if_15
               }
             }
-            %x_238:bool = load %x_238_phi
+            %220:bool = load %x_238_phi
+            %x_238:bool = let %220
             store %x_251_phi, %x_238
-            if %x_238 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %x_242:i32 = load_vector_element %p, 0u
-                %x_245:i32 = load_vector_element %p, 1u
-                %163:i32 = sub %x_242, 2i
-                %164:i32 = mul %x_245, 16i
-                %165:i32 = add %163, %164
-                %166:ptr<private, i32, read_write> = access %map, %165
-                %x_249:i32 = load %166
-                %168:bool = eq %x_249, 0i
-                store %x_250, %168
-                %169:bool = load %x_250
-                store %x_251_phi, %169
+            if %x_238 [t: $B30] {  # if_16
+              $B30: {  # true
+                %222:i32 = load_vector_element %p, 0u
+                %x_242:i32 = let %222
+                %224:i32 = load_vector_element %p, 1u
+                %x_245:i32 = let %224
+                %226:i32 = sub %x_242, 2i
+                %227:i32 = mul %x_245, 16i
+                %228:i32 = add %226, %227
+                %229:ptr<private, i32, read_write> = access %map, %228
+                %230:i32 = load %229
+                %x_249:i32 = let %230
+                %232:bool = eq %x_249, 0i
+                store %x_250, %232
+                %233:bool = load %x_250
+                store %x_251_phi, %233
                 exit_if  # if_16
               }
             }
-            %x_251:bool = load %x_251_phi
-            if %x_251 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %x_254:i32 = load %d
-                %172:i32 = sub %x_254, 1i
-                store %d, %172
-                %x_257:i32 = load_vector_element %p, 0u
-                %x_259:i32 = load_vector_element %p, 1u
-                %175:i32 = mul %x_259, 16i
-                %176:i32 = add %x_257, %175
-                %177:ptr<private, i32, read_write> = access %map, %176
-                store %177, 1i
-                %x_264:i32 = load_vector_element %p, 0u
-                %x_267:i32 = load_vector_element %p, 1u
-                %180:i32 = sub %x_264, 1i
-                %181:i32 = mul %x_267, 16i
-                %182:i32 = add %180, %181
-                %183:ptr<private, i32, read_write> = access %map, %182
-                store %183, 1i
-                %x_272:i32 = load_vector_element %p, 0u
-                %x_275:i32 = load_vector_element %p, 1u
-                %186:i32 = sub %x_272, 2i
-                %187:i32 = mul %x_275, 16i
-                %188:i32 = add %186, %187
-                %189:ptr<private, i32, read_write> = access %map, %188
-                store %189, 1i
-                %x_280:i32 = load_vector_element %p, 0u
-                %191:i32 = sub %x_280, 2i
-                store_vector_element %p, 0u, %191
+            %234:bool = load %x_251_phi
+            %x_251:bool = let %234
+            if %x_251 [t: $B31] {  # if_17
+              $B31: {  # true
+                %236:i32 = load %d
+                %x_254:i32 = let %236
+                %238:i32 = sub %x_254, 1i
+                store %d, %238
+                %239:i32 = load_vector_element %p, 0u
+                %x_257:i32 = let %239
+                %241:i32 = load_vector_element %p, 1u
+                %x_259:i32 = let %241
+                %243:i32 = mul %x_259, 16i
+                %244:i32 = add %x_257, %243
+                %245:ptr<private, i32, read_write> = access %map, %244
+                store %245, 1i
+                %246:i32 = load_vector_element %p, 0u
+                %x_264:i32 = let %246
+                %248:i32 = load_vector_element %p, 1u
+                %x_267:i32 = let %248
+                %250:i32 = sub %x_264, 1i
+                %251:i32 = mul %x_267, 16i
+                %252:i32 = add %250, %251
+                %253:ptr<private, i32, read_write> = access %map, %252
+                store %253, 1i
+                %254:i32 = load_vector_element %p, 0u
+                %x_272:i32 = let %254
+                %256:i32 = load_vector_element %p, 1u
+                %x_275:i32 = let %256
+                %258:i32 = sub %x_272, 2i
+                %259:i32 = mul %x_275, 16i
+                %260:i32 = add %258, %259
+                %261:ptr<private, i32, read_write> = access %map, %260
+                store %261, 1i
+                %262:i32 = load_vector_element %p, 0u
+                %x_280:i32 = let %262
+                %264:i32 = sub %x_280, 2i
+                store_vector_element %p, 0u, %264
                 exit_if  # if_17
               }
             }
-            %x_283:i32 = load %d
-            %x_284:bool = gte %x_283, 0i
+            %265:i32 = load %d
+            %x_283:i32 = let %265
+            %267:bool = gte %x_283, 0i
+            %x_284:bool = let %267
             store %x_290_phi, %x_284
-            if %x_284 [t: %b32] {  # if_18
-              %b32 = block {  # true
-                %x_288:i32 = load_vector_element %p, 1u
-                %195:bool = gt %x_288, 0i
-                store %x_289, %195
-                %196:bool = load %x_289
-                store %x_290_phi, %196
+            if %x_284 [t: $B32] {  # if_18
+              $B32: {  # true
+                %269:i32 = load_vector_element %p, 1u
+                %x_288:i32 = let %269
+                %271:bool = gt %x_288, 0i
+                store %x_289, %271
+                %272:bool = load %x_289
+                store %x_290_phi, %272
                 exit_if  # if_18
               }
             }
-            %x_290:bool = load %x_290_phi
+            %273:bool = load %x_290_phi
+            %x_290:bool = let %273
             store %x_303_phi, %x_290
-            if %x_290 [t: %b33] {  # if_19
-              %b33 = block {  # true
-                %x_294:i32 = load_vector_element %p, 0u
-                %x_296:i32 = load_vector_element %p, 1u
-                %200:i32 = sub %x_296, 2i
-                %201:i32 = mul %200, 16i
-                %202:i32 = add %x_294, %201
-                %203:ptr<private, i32, read_write> = access %map, %202
-                %x_301:i32 = load %203
-                %205:bool = eq %x_301, 0i
-                store %x_302, %205
-                %206:bool = load %x_302
-                store %x_303_phi, %206
+            if %x_290 [t: $B33] {  # if_19
+              $B33: {  # true
+                %275:i32 = load_vector_element %p, 0u
+                %x_294:i32 = let %275
+                %277:i32 = load_vector_element %p, 1u
+                %x_296:i32 = let %277
+                %279:i32 = sub %x_296, 2i
+                %280:i32 = mul %279, 16i
+                %281:i32 = add %x_294, %280
+                %282:ptr<private, i32, read_write> = access %map, %281
+                %283:i32 = load %282
+                %x_301:i32 = let %283
+                %285:bool = eq %x_301, 0i
+                store %x_302, %285
+                %286:bool = load %x_302
+                store %x_303_phi, %286
                 exit_if  # if_19
               }
             }
-            %x_303:bool = load %x_303_phi
-            if %x_303 [t: %b34] {  # if_20
-              %b34 = block {  # true
-                %x_306:i32 = load %d
-                %209:i32 = sub %x_306, 1i
-                store %d, %209
-                %x_309:i32 = load_vector_element %p, 0u
-                %x_311:i32 = load_vector_element %p, 1u
-                %212:i32 = mul %x_311, 16i
-                %213:i32 = add %x_309, %212
-                %214:ptr<private, i32, read_write> = access %map, %213
-                store %214, 1i
-                %x_316:i32 = load_vector_element %p, 0u
-                %x_318:i32 = load_vector_element %p, 1u
-                %217:i32 = sub %x_318, 1i
-                %218:i32 = mul %217, 16i
-                %219:i32 = add %x_316, %218
-                %220:ptr<private, i32, read_write> = access %map, %219
-                store %220, 1i
-                %x_324:i32 = load_vector_element %p, 0u
-                %x_326:i32 = load_vector_element %p, 1u
-                %223:i32 = sub %x_326, 2i
-                %224:i32 = mul %223, 16i
-                %225:i32 = add %x_324, %224
-                %226:ptr<private, i32, read_write> = access %map, %225
-                store %226, 1i
-                %x_332:i32 = load_vector_element %p, 1u
-                %228:i32 = sub %x_332, 2i
-                store_vector_element %p, 1u, %228
+            %287:bool = load %x_303_phi
+            %x_303:bool = let %287
+            if %x_303 [t: $B34] {  # if_20
+              $B34: {  # true
+                %289:i32 = load %d
+                %x_306:i32 = let %289
+                %291:i32 = sub %x_306, 1i
+                store %d, %291
+                %292:i32 = load_vector_element %p, 0u
+                %x_309:i32 = let %292
+                %294:i32 = load_vector_element %p, 1u
+                %x_311:i32 = let %294
+                %296:i32 = mul %x_311, 16i
+                %297:i32 = add %x_309, %296
+                %298:ptr<private, i32, read_write> = access %map, %297
+                store %298, 1i
+                %299:i32 = load_vector_element %p, 0u
+                %x_316:i32 = let %299
+                %301:i32 = load_vector_element %p, 1u
+                %x_318:i32 = let %301
+                %303:i32 = sub %x_318, 1i
+                %304:i32 = mul %303, 16i
+                %305:i32 = add %x_316, %304
+                %306:ptr<private, i32, read_write> = access %map, %305
+                store %306, 1i
+                %307:i32 = load_vector_element %p, 0u
+                %x_324:i32 = let %307
+                %309:i32 = load_vector_element %p, 1u
+                %x_326:i32 = let %309
+                %311:i32 = sub %x_326, 2i
+                %312:i32 = mul %311, 16i
+                %313:i32 = add %x_324, %312
+                %314:ptr<private, i32, read_write> = access %map, %313
+                store %314, 1i
+                %315:i32 = load_vector_element %p, 1u
+                %x_332:i32 = let %315
+                %317:i32 = sub %x_332, 2i
+                store_vector_element %p, 1u, %317
                 exit_if  # if_20
               }
             }
-            %x_335:i32 = load %d
-            %x_336:bool = gte %x_335, 0i
+            %318:i32 = load %d
+            %x_335:i32 = let %318
+            %320:bool = gte %x_335, 0i
+            %x_336:bool = let %320
             store %x_342_phi, %x_336
-            if %x_336 [t: %b35] {  # if_21
-              %b35 = block {  # true
-                %x_340:i32 = load_vector_element %p, 0u
-                %232:bool = lt %x_340, 14i
-                store %x_341, %232
-                %233:bool = load %x_341
-                store %x_342_phi, %233
+            if %x_336 [t: $B35] {  # if_21
+              $B35: {  # true
+                %322:i32 = load_vector_element %p, 0u
+                %x_340:i32 = let %322
+                %324:bool = lt %x_340, 14i
+                store %x_341, %324
+                %325:bool = load %x_341
+                store %x_342_phi, %325
                 exit_if  # if_21
               }
             }
-            %x_342:bool = load %x_342_phi
+            %326:bool = load %x_342_phi
+            %x_342:bool = let %326
             store %x_355_phi, %x_342
-            if %x_342 [t: %b36] {  # if_22
-              %b36 = block {  # true
-                %x_346:i32 = load_vector_element %p, 0u
-                %x_349:i32 = load_vector_element %p, 1u
-                %237:i32 = add %x_346, 2i
-                %238:i32 = mul %x_349, 16i
-                %239:i32 = add %237, %238
-                %240:ptr<private, i32, read_write> = access %map, %239
-                %x_353:i32 = load %240
-                %242:bool = eq %x_353, 0i
-                store %x_354, %242
-                %243:bool = load %x_354
-                store %x_355_phi, %243
+            if %x_342 [t: $B36] {  # if_22
+              $B36: {  # true
+                %328:i32 = load_vector_element %p, 0u
+                %x_346:i32 = let %328
+                %330:i32 = load_vector_element %p, 1u
+                %x_349:i32 = let %330
+                %332:i32 = add %x_346, 2i
+                %333:i32 = mul %x_349, 16i
+                %334:i32 = add %332, %333
+                %335:ptr<private, i32, read_write> = access %map, %334
+                %336:i32 = load %335
+                %x_353:i32 = let %336
+                %338:bool = eq %x_353, 0i
+                store %x_354, %338
+                %339:bool = load %x_354
+                store %x_355_phi, %339
                 exit_if  # if_22
               }
             }
-            %x_355:bool = load %x_355_phi
-            if %x_355 [t: %b37] {  # if_23
-              %b37 = block {  # true
-                %x_358:i32 = load %d
-                %246:i32 = sub %x_358, 1i
-                store %d, %246
-                %x_361:i32 = load_vector_element %p, 0u
-                %x_363:i32 = load_vector_element %p, 1u
-                %249:i32 = mul %x_363, 16i
-                %250:i32 = add %x_361, %249
-                %251:ptr<private, i32, read_write> = access %map, %250
-                store %251, 1i
-                %x_368:i32 = load_vector_element %p, 0u
-                %x_371:i32 = load_vector_element %p, 1u
-                %254:i32 = add %x_368, 1i
-                %255:i32 = mul %x_371, 16i
-                %256:i32 = add %254, %255
-                %257:ptr<private, i32, read_write> = access %map, %256
-                store %257, 1i
-                %x_376:i32 = load_vector_element %p, 0u
-                %x_379:i32 = load_vector_element %p, 1u
-                %260:i32 = add %x_376, 2i
-                %261:i32 = mul %x_379, 16i
-                %262:i32 = add %260, %261
-                %263:ptr<private, i32, read_write> = access %map, %262
-                store %263, 1i
-                %x_384:i32 = load_vector_element %p, 0u
-                %265:i32 = add %x_384, 2i
-                store_vector_element %p, 0u, %265
+            %340:bool = load %x_355_phi
+            %x_355:bool = let %340
+            if %x_355 [t: $B37] {  # if_23
+              $B37: {  # true
+                %342:i32 = load %d
+                %x_358:i32 = let %342
+                %344:i32 = sub %x_358, 1i
+                store %d, %344
+                %345:i32 = load_vector_element %p, 0u
+                %x_361:i32 = let %345
+                %347:i32 = load_vector_element %p, 1u
+                %x_363:i32 = let %347
+                %349:i32 = mul %x_363, 16i
+                %350:i32 = add %x_361, %349
+                %351:ptr<private, i32, read_write> = access %map, %350
+                store %351, 1i
+                %352:i32 = load_vector_element %p, 0u
+                %x_368:i32 = let %352
+                %354:i32 = load_vector_element %p, 1u
+                %x_371:i32 = let %354
+                %356:i32 = add %x_368, 1i
+                %357:i32 = mul %x_371, 16i
+                %358:i32 = add %356, %357
+                %359:ptr<private, i32, read_write> = access %map, %358
+                store %359, 1i
+                %360:i32 = load_vector_element %p, 0u
+                %x_376:i32 = let %360
+                %362:i32 = load_vector_element %p, 1u
+                %x_379:i32 = let %362
+                %364:i32 = add %x_376, 2i
+                %365:i32 = mul %x_379, 16i
+                %366:i32 = add %364, %365
+                %367:ptr<private, i32, read_write> = access %map, %366
+                store %367, 1i
+                %368:i32 = load_vector_element %p, 0u
+                %x_384:i32 = let %368
+                %370:i32 = add %x_384, 2i
+                store_vector_element %p, 0u, %370
                 exit_if  # if_23
               }
             }
-            %x_387:i32 = load %d
-            %x_388:bool = gte %x_387, 0i
+            %371:i32 = load %d
+            %x_387:i32 = let %371
+            %373:bool = gte %x_387, 0i
+            %x_388:bool = let %373
             store %x_394_phi, %x_388
-            if %x_388 [t: %b38] {  # if_24
-              %b38 = block {  # true
-                %x_392:i32 = load_vector_element %p, 1u
-                %269:bool = lt %x_392, 14i
-                store %x_393, %269
-                %270:bool = load %x_393
-                store %x_394_phi, %270
+            if %x_388 [t: $B38] {  # if_24
+              $B38: {  # true
+                %375:i32 = load_vector_element %p, 1u
+                %x_392:i32 = let %375
+                %377:bool = lt %x_392, 14i
+                store %x_393, %377
+                %378:bool = load %x_393
+                store %x_394_phi, %378
                 exit_if  # if_24
               }
             }
-            %x_394:bool = load %x_394_phi
+            %379:bool = load %x_394_phi
+            %x_394:bool = let %379
             store %x_407_phi, %x_394
-            if %x_394 [t: %b39] {  # if_25
-              %b39 = block {  # true
-                %x_398:i32 = load_vector_element %p, 0u
-                %x_400:i32 = load_vector_element %p, 1u
-                %274:i32 = add %x_400, 2i
-                %275:i32 = mul %274, 16i
-                %276:i32 = add %x_398, %275
-                %277:ptr<private, i32, read_write> = access %map, %276
-                %x_405:i32 = load %277
-                %279:bool = eq %x_405, 0i
-                store %x_406, %279
-                %280:bool = load %x_406
-                store %x_407_phi, %280
+            if %x_394 [t: $B39] {  # if_25
+              $B39: {  # true
+                %381:i32 = load_vector_element %p, 0u
+                %x_398:i32 = let %381
+                %383:i32 = load_vector_element %p, 1u
+                %x_400:i32 = let %383
+                %385:i32 = add %x_400, 2i
+                %386:i32 = mul %385, 16i
+                %387:i32 = add %x_398, %386
+                %388:ptr<private, i32, read_write> = access %map, %387
+                %389:i32 = load %388
+                %x_405:i32 = let %389
+                %391:bool = eq %x_405, 0i
+                store %x_406, %391
+                %392:bool = load %x_406
+                store %x_407_phi, %392
                 exit_if  # if_25
               }
             }
-            %x_407:bool = load %x_407_phi
-            if %x_407 [t: %b40] {  # if_26
-              %b40 = block {  # true
-                %x_410:i32 = load %d
-                %283:i32 = sub %x_410, 1i
-                store %d, %283
-                %x_413:i32 = load_vector_element %p, 0u
-                %x_415:i32 = load_vector_element %p, 1u
-                %286:i32 = mul %x_415, 16i
-                %287:i32 = add %x_413, %286
-                %288:ptr<private, i32, read_write> = access %map, %287
-                store %288, 1i
-                %x_420:i32 = load_vector_element %p, 0u
-                %x_422:i32 = load_vector_element %p, 1u
-                %291:i32 = add %x_422, 1i
-                %292:i32 = mul %291, 16i
-                %293:i32 = add %x_420, %292
-                %294:ptr<private, i32, read_write> = access %map, %293
-                store %294, 1i
-                %x_428:i32 = load_vector_element %p, 0u
-                %x_430:i32 = load_vector_element %p, 1u
-                %297:i32 = add %x_430, 2i
-                %298:i32 = mul %297, 16i
-                %299:i32 = add %x_428, %298
-                %300:ptr<private, i32, read_write> = access %map, %299
-                store %300, 1i
-                %x_436:i32 = load_vector_element %p, 1u
-                %302:i32 = add %x_436, 2i
-                store_vector_element %p, 1u, %302
+            %393:bool = load %x_407_phi
+            %x_407:bool = let %393
+            if %x_407 [t: $B40] {  # if_26
+              $B40: {  # true
+                %395:i32 = load %d
+                %x_410:i32 = let %395
+                %397:i32 = sub %x_410, 1i
+                store %d, %397
+                %398:i32 = load_vector_element %p, 0u
+                %x_413:i32 = let %398
+                %400:i32 = load_vector_element %p, 1u
+                %x_415:i32 = let %400
+                %402:i32 = mul %x_415, 16i
+                %403:i32 = add %x_413, %402
+                %404:ptr<private, i32, read_write> = access %map, %403
+                store %404, 1i
+                %405:i32 = load_vector_element %p, 0u
+                %x_420:i32 = let %405
+                %407:i32 = load_vector_element %p, 1u
+                %x_422:i32 = let %407
+                %409:i32 = add %x_422, 1i
+                %410:i32 = mul %409, 16i
+                %411:i32 = add %x_420, %410
+                %412:ptr<private, i32, read_write> = access %map, %411
+                store %412, 1i
+                %413:i32 = load_vector_element %p, 0u
+                %x_428:i32 = let %413
+                %415:i32 = load_vector_element %p, 1u
+                %x_430:i32 = let %415
+                %417:i32 = add %x_430, 2i
+                %418:i32 = mul %417, 16i
+                %419:i32 = add %x_428, %418
+                %420:ptr<private, i32, read_write> = access %map, %419
+                store %420, 1i
+                %421:i32 = load_vector_element %p, 1u
+                %x_436:i32 = let %421
+                %423:i32 = add %x_436, 2i
+                store_vector_element %p, 1u, %423
                 exit_if  # if_26
               }
             }
             exit_if  # if_10
           }
         }
-        %x_440:i32 = load_vector_element %ipos, 1u
-        %x_443:i32 = load_vector_element %ipos, 0u
-        %305:i32 = mul %x_440, 16i
-        %306:i32 = add %305, %x_443
-        %307:ptr<private, i32, read_write> = access %map, %306
-        %x_446:i32 = load %307
-        %309:bool = eq %x_446, 1i
-        if %309 [t: %b41] {  # if_27
-          %b41 = block {  # true
+        %424:i32 = load_vector_element %ipos, 1u
+        %x_440:i32 = let %424
+        %426:i32 = load_vector_element %ipos, 0u
+        %x_443:i32 = let %426
+        %428:i32 = mul %x_440, 16i
+        %429:i32 = add %428, %x_443
+        %430:ptr<private, i32, read_write> = access %map, %429
+        %431:i32 = load %430
+        %x_446:i32 = let %431
+        %433:bool = eq %x_446, 1i
+        if %433 [t: $B41] {  # if_27
+          $B41: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_450:bool = load %canwalk
-        %311:bool = eq %x_450, false
-        break_if %311 %b7
+      $B8: {  # continuing
+        %434:bool = load %canwalk
+        %x_450:bool = let %434
+        %436:bool = eq %x_450, false
+        break_if %436  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b42 {
-  %b42 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B42: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %314:void = call %main_1
-    %315:vec4<f32> = load %x_GLF_color
-    %316:main_out = construct %315
-    ret %316
+    %439:void = call %main_1
+    %440:vec4<f32> = load %x_GLF_color
+    %441:main_out = construct %440
+    ret %441
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B43: {
+    %444:bool = eq %rhs, 0i
+    %445:bool = eq %lhs, -2147483648i
+    %446:bool = eq %rhs, -1i
+    %447:bool = and %445, %446
+    %448:bool = or %444, %447
+    %449:i32 = select %rhs, 1i, %448
+    %450:i32 = let %449
+    %451:i32 = div %lhs, %450
+    %452:i32 = mul %451, %450
+    %453:i32 = sub %lhs, %452
+    ret %453
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B44: {
+    %455:i32 = convert %value
+    %456:bool = gte %value, -2147483648.0f
+    %457:i32 = select -2147483648i, %455, %456
+    %458:bool = lte %value, 2147483520.0f
+    %459:i32 = select 2147483647i, %457, %458
+    ret %459
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.msl
index 0cfc594..2020b95 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
@@ -16,21 +16,21 @@
   %state:ptr<private, array<i32, 16>, read_write> = var
 }
 
-%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
+%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool {
+  $B2: {
     %9:f32 = load_vector_element %pos, 0u
     %10:f32 = load_vector_element %quad, 0u
     %11:bool = lt %9, %10
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         ret false
       }
     }
     %12:f32 = load_vector_element %pos, 1u
     %13:f32 = load_vector_element %quad, 1u
     %14:bool = lt %12, %13
-    if %14 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %14 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
@@ -39,8 +39,8 @@
     %17:f32 = load_vector_element %quad, 2u
     %18:f32 = add %16, %17
     %19:bool = gt %15, %18
-    if %19 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    if %19 [t: $B5] {  # if_3
+      $B5: {  # true
         ret false
       }
     }
@@ -49,16 +49,16 @@
     %22:f32 = load_vector_element %quad, 3u
     %23:f32 = add %21, %22
     %24:bool = gt %20, %23
-    if %24 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    if %24 [t: $B6] {  # if_4
+      $B6: {  # true
         ret false
       }
     }
     ret true
   }
 }
-%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> -> %b7 {
-  %b7 = block {
+%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> {
+  $B7: {
     %res:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
@@ -69,92 +69,127 @@
     %indexable_3:ptr<function, array<vec4<f32>, 16>, read_write> = var
     store %res, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %i, 0i
-    loop [b: %b8, c: %b9] {  # loop_1
-      %b8 = block {  # body
+    loop [b: $B8, c: $B9] {  # loop_1
+      $B8: {  # body
         %35:i32 = load %i
         %36:bool = lt %35, 8i
-        if %36 [t: %b10, f: %b11] {  # if_5
-          %b10 = block {  # true
+        if %36 [t: $B10, f: $B11] {  # if_5
+          $B10: {  # true
             exit_if  # if_5
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_155:i32 = load %i
-        %38:vec2<f32> = load %pos_1
-        store %param, %38
+        %37:i32 = load %i
+        %x_155:i32 = let %37
+        %39:vec2<f32> = load %pos_1
+        store %param, %39
         store %indexable, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %39:ptr<function, vec4<f32>, read_write> = access %indexable, %x_155
-        %40:vec4<f32> = load %39
-        store %param_1, %40
-        %x_159:bool = call %collision_vf2_vf4_, %param, %param_1
-        if %x_159 [t: %b12] {  # if_6
-          %b12 = block {  # true
-            %x_162:i32 = load %i
+        %40:ptr<function, vec4<f32>, read_write> = access %indexable, %x_155
+        %41:vec4<f32> = load %40
+        store %param_1, %41
+        %42:bool = call %collision_vf2_vf4_, %param, %param_1
+        %x_159:bool = let %42
+        if %x_159 [t: $B12] {  # if_6
+          $B12: {  # true
+            %44:i32 = load %i
+            %x_162:i32 = let %44
             store %indexable_1, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %43:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_162
-            %x_164:f32 = load_vector_element %43, 0u
-            %x_166:i32 = load %i
+            %46:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_162
+            %47:f32 = load_vector_element %46, 0u
+            %x_164:f32 = let %47
+            %49:i32 = load %i
+            %x_166:i32 = let %49
             store %indexable_2, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %46:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_166
-            %x_168:f32 = load_vector_element %46, 1u
-            %x_171:i32 = load %i
+            %51:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_166
+            %52:f32 = load_vector_element %51, 1u
+            %x_168:f32 = let %52
+            %54:i32 = load %i
+            %x_171:i32 = let %54
             store %indexable_3, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %49:i32 = convert %x_164
-            %50:i32 = convert %x_168
-            %51:i32 = mul %49, %50
-            %52:i32 = mul %x_171, 9i
-            %53:i32 = add %51, %52
-            %54:i32 = add %53, 11i
-            %55:i32 = mod %54, 16i
-            %56:ptr<function, vec4<f32>, read_write> = access %indexable_3, %55
-            %57:vec4<f32> = load %56
-            store %res, %57
+            %56:i32 = call %tint_f32_to_i32, %x_164
+            %58:i32 = let %56
+            %59:i32 = call %tint_f32_to_i32, %x_168
+            %60:i32 = mul %58, %59
+            %61:i32 = mul %x_171, 9i
+            %62:i32 = add %60, %61
+            %63:i32 = add %62, 11i
+            %64:i32 = call %tint_mod_i32, %63, 16i
+            %66:ptr<function, vec4<f32>, read_write> = access %indexable_3, %64
+            %67:vec4<f32> = load %66
+            store %res, %67
             exit_if  # if_6
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %58:i32 = load %i
-        %59:i32 = add %58, 1i
-        store %i, %59
-        next_iteration %b8
+      $B9: {  # continuing
+        %68:i32 = load %i
+        %69:i32 = add %68, 1i
+        store %i, %69
+        next_iteration  # -> $B8
       }
     }
-    %x_180:vec4<f32> = load %res
+    %70:vec4<f32> = load %res
+    %x_180:vec4<f32> = let %70
     ret %x_180
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %64:vec4<f32> = load %gl_FragCoord
-    %65:vec2<f32> = swizzle %64, xy
-    %66:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %67:vec2<f32> = load %66
-    %68:vec2<f32> = div %65, %67
-    store %lin, %68
-    %69:vec2<f32> = load %lin
-    %70:vec2<f32> = mul %69, 32.0f
-    %71:vec2<f32> = floor %70
-    store %lin, %71
-    %72:vec2<f32> = load %lin
-    store %param_2, %72
-    %x_111:vec4<f32> = call %match_vf2_, %param_2
+    %75:vec4<f32> = load %gl_FragCoord
+    %76:vec2<f32> = swizzle %75, xy
+    %77:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %78:vec2<f32> = load %77
+    %79:vec2<f32> = div %76, %78
+    store %lin, %79
+    %80:vec2<f32> = load %lin
+    %81:vec2<f32> = mul %80, 32.0f
+    %82:vec2<f32> = floor %81
+    store %lin, %82
+    %83:vec2<f32> = load %lin
+    store %param_2, %83
+    %84:vec4<f32> = call %match_vf2_, %param_2
+    %x_111:vec4<f32> = let %84
     store %x_GLF_color, %x_111
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %76:void = call %main_1
-    %77:vec4<f32> = load %x_GLF_color
-    %78:main_out = construct %77
-    ret %78
+    %88:void = call %main_1
+    %89:vec4<f32> = load %x_GLF_color
+    %90:main_out = construct %89
+    ret %90
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %93:bool = eq %rhs, 0i
+    %94:bool = eq %lhs, -2147483648i
+    %95:bool = eq %rhs, -1i
+    %96:bool = and %94, %95
+    %97:bool = or %93, %96
+    %98:i32 = select %rhs, 1i, %97
+    %99:i32 = let %98
+    %100:i32 = div %lhs, %99
+    %101:i32 = mul %100, %99
+    %102:i32 = sub %lhs, %101
+    ret %102
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %104:i32 = convert %value
+    %105:bool = gte %value, -2147483648.0f
+    %106:i32 = select -2147483648i, %104, %105
+    %107:bool = lte %value, 2147483520.0f
+    %108:i32 = select 2147483647i, %106, %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.msl
index c08c00b..fbd62cd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
@@ -16,49 +16,59 @@
   %state:ptr<private, array<i32, 16>, read_write> = var
 }
 
-%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
-    %x_114:f32 = load_vector_element %pos, 0u
-    %x_116:f32 = load_vector_element %quad, 0u
-    %11:bool = lt %x_114, %x_116
-    if %11 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool {
+  $B2: {
+    %9:f32 = load_vector_element %pos, 0u
+    %x_114:f32 = let %9
+    %11:f32 = load_vector_element %quad, 0u
+    %x_116:f32 = let %11
+    %13:bool = lt %x_114, %x_116
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
         ret false
       }
     }
-    %x_121:f32 = load_vector_element %pos, 1u
-    %x_123:f32 = load_vector_element %quad, 1u
-    %14:bool = lt %x_121, %x_123
-    if %14 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %14:f32 = load_vector_element %pos, 1u
+    %x_121:f32 = let %14
+    %16:f32 = load_vector_element %quad, 1u
+    %x_123:f32 = let %16
+    %18:bool = lt %x_121, %x_123
+    if %18 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
-    %x_128:f32 = load_vector_element %pos, 0u
-    %x_130:f32 = load_vector_element %quad, 0u
-    %x_132:f32 = load_vector_element %quad, 2u
-    %18:f32 = add %x_130, %x_132
-    %19:bool = gt %x_128, %18
-    if %19 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %19:f32 = load_vector_element %pos, 0u
+    %x_128:f32 = let %19
+    %21:f32 = load_vector_element %quad, 0u
+    %x_130:f32 = let %21
+    %23:f32 = load_vector_element %quad, 2u
+    %x_132:f32 = let %23
+    %25:f32 = add %x_130, %x_132
+    %26:bool = gt %x_128, %25
+    if %26 [t: $B5] {  # if_3
+      $B5: {  # true
         ret false
       }
     }
-    %x_138:f32 = load_vector_element %pos, 1u
-    %x_140:f32 = load_vector_element %quad, 1u
-    %x_142:f32 = load_vector_element %quad, 3u
-    %23:f32 = add %x_140, %x_142
-    %24:bool = gt %x_138, %23
-    if %24 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %27:f32 = load_vector_element %pos, 1u
+    %x_138:f32 = let %27
+    %29:f32 = load_vector_element %quad, 1u
+    %x_140:f32 = let %29
+    %31:f32 = load_vector_element %quad, 3u
+    %x_142:f32 = let %31
+    %33:f32 = add %x_140, %x_142
+    %34:bool = gt %x_138, %33
+    if %34 [t: $B6] {  # if_4
+      $B6: {  # true
         ret false
       }
     }
     ret true
   }
 }
-%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> -> %b7 {
-  %b7 = block {
+%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> {
+  $B7: {
     %res:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
@@ -69,94 +79,138 @@
     %indexable_3:ptr<function, array<vec4<f32>, 16>, read_write> = var
     store %res, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %i, 0i
-    loop [b: %b8, c: %b9] {  # loop_1
-      %b8 = block {  # body
-        %x_152:i32 = load %i
-        %36:bool = lt %x_152, 8i
-        if %36 [t: %b10, f: %b11] {  # if_5
-          %b10 = block {  # true
+    loop [b: $B8, c: $B9] {  # loop_1
+      $B8: {  # body
+        %45:i32 = load %i
+        %x_152:i32 = let %45
+        %47:bool = lt %x_152, 8i
+        if %47 [t: $B10, f: $B11] {  # if_5
+          $B10: {  # true
             exit_if  # if_5
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_155:i32 = load %i
-        %x_156:vec2<f32> = load %pos_1
+        %48:i32 = load %i
+        %x_155:i32 = let %48
+        %50:vec2<f32> = load %pos_1
+        %x_156:vec2<f32> = let %50
         store %param, %x_156
         store %indexable, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %39:ptr<function, vec4<f32>, read_write> = access %indexable, %x_155
-        %x_158:vec4<f32> = load %39
+        %52:ptr<function, vec4<f32>, read_write> = access %indexable, %x_155
+        %53:vec4<f32> = load %52
+        %x_158:vec4<f32> = let %53
         store %param_1, %x_158
-        %x_159:bool = call %collision_vf2_vf4_, %param, %param_1
-        if %x_159 [t: %b12] {  # if_6
-          %b12 = block {  # true
-            %x_162:i32 = load %i
+        %55:bool = call %collision_vf2_vf4_, %param, %param_1
+        %x_159:bool = let %55
+        if %x_159 [t: $B12] {  # if_6
+          $B12: {  # true
+            %57:i32 = load %i
+            %x_162:i32 = let %57
             store %indexable_1, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %43:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_162
-            %x_164:f32 = load_vector_element %43, 0u
-            %x_166:i32 = load %i
+            %59:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_162
+            %60:f32 = load_vector_element %59, 0u
+            %x_164:f32 = let %60
+            %62:i32 = load %i
+            %x_166:i32 = let %62
             store %indexable_2, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %46:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_166
-            %x_168:f32 = load_vector_element %46, 1u
-            %x_171:i32 = load %i
+            %64:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_166
+            %65:f32 = load_vector_element %64, 1u
+            %x_168:f32 = let %65
+            %67:i32 = load %i
+            %x_171:i32 = let %67
             store %indexable_3, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %49:i32 = convert %x_164
-            %50:i32 = convert %x_168
-            %51:i32 = mul %49, %50
-            %52:i32 = mul %x_171, 9i
-            %53:i32 = add %51, %52
-            %54:i32 = add %53, 11i
-            %55:i32 = mod %54, 16i
-            %56:ptr<function, vec4<f32>, read_write> = access %indexable_3, %55
-            %x_177:vec4<f32> = load %56
+            %69:i32 = call %tint_f32_to_i32, %x_164
+            %71:i32 = let %69
+            %72:i32 = call %tint_f32_to_i32, %x_168
+            %73:i32 = mul %71, %72
+            %74:i32 = mul %x_171, 9i
+            %75:i32 = add %73, %74
+            %76:i32 = add %75, 11i
+            %77:i32 = call %tint_mod_i32, %76, 16i
+            %79:ptr<function, vec4<f32>, read_write> = access %indexable_3, %77
+            %80:vec4<f32> = load %79
+            %x_177:vec4<f32> = let %80
             store %res, %x_177
             exit_if  # if_6
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %x_178:i32 = load %i
-        %59:i32 = add %x_178, 1i
-        store %i, %59
-        next_iteration %b8
+      $B9: {  # continuing
+        %82:i32 = load %i
+        %x_178:i32 = let %82
+        %84:i32 = add %x_178, 1i
+        store %i, %84
+        next_iteration  # -> $B8
       }
     }
-    %x_180:vec4<f32> = load %res
+    %85:vec4<f32> = load %res
+    %x_180:vec4<f32> = let %85
     ret %x_180
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %x_102:vec4<f32> = load %gl_FragCoord
-    %65:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %x_105:vec2<f32> = load %65
-    %67:f32 = access %x_102, 0u
-    %68:f32 = access %x_102, 1u
-    %69:vec2<f32> = construct %67, %68
-    %70:vec2<f32> = div %69, %x_105
-    store %lin, %70
-    %x_107:vec2<f32> = load %lin
-    %72:vec2<f32> = mul %x_107, 32.0f
-    %73:vec2<f32> = floor %72
-    store %lin, %73
-    %x_110:vec2<f32> = load %lin
+    %90:vec4<f32> = load %gl_FragCoord
+    %x_102:vec4<f32> = let %90
+    %92:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %93:vec2<f32> = load %92
+    %x_105:vec2<f32> = let %93
+    %95:f32 = access %x_102, 0u
+    %96:f32 = access %x_102, 1u
+    %97:vec2<f32> = construct %95, %96
+    %98:vec2<f32> = div %97, %x_105
+    store %lin, %98
+    %99:vec2<f32> = load %lin
+    %x_107:vec2<f32> = let %99
+    %101:vec2<f32> = mul %x_107, 32.0f
+    %102:vec2<f32> = floor %101
+    store %lin, %102
+    %103:vec2<f32> = load %lin
+    %x_110:vec2<f32> = let %103
     store %param_2, %x_110
-    %x_111:vec4<f32> = call %match_vf2_, %param_2
+    %105:vec4<f32> = call %match_vf2_, %param_2
+    %x_111:vec4<f32> = let %105
     store %x_GLF_color, %x_111
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %78:void = call %main_1
-    %79:vec4<f32> = load %x_GLF_color
-    %80:main_out = construct %79
-    ret %80
+    %109:void = call %main_1
+    %110:vec4<f32> = load %x_GLF_color
+    %111:main_out = construct %110
+    ret %111
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %114:bool = eq %rhs, 0i
+    %115:bool = eq %lhs, -2147483648i
+    %116:bool = eq %rhs, -1i
+    %117:bool = and %115, %116
+    %118:bool = or %114, %117
+    %119:i32 = select %rhs, 1i, %118
+    %120:i32 = let %119
+    %121:i32 = div %lhs, %120
+    %122:i32 = mul %121, %120
+    %123:i32 = sub %lhs, %122
+    ret %123
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %125:i32 = convert %value
+    %126:bool = gte %value, -2147483648.0f
+    %127:i32 = select -2147483648i, %125, %126
+    %128:bool = lte %value, 2147483520.0f
+    %129:i32 = select 2147483647i, %127, %128
+    ret %129
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.msl
index 497cee1..27c5bc4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
@@ -16,22 +16,22 @@
   %state:ptr<private, array<i32, 16>, read_write> = var
 }
 
-%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
+%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool {
+  $B2: {
     %x_116:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(false)
     %10:f32 = load_vector_element %pos, 0u
     %11:f32 = load_vector_element %quad, 0u
     %12:bool = lt %10, %11
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
         ret false
       }
     }
     %13:f32 = load_vector_element %pos, 1u
     %14:f32 = load_vector_element %quad, 1u
     %15:bool = lt %13, %14
-    if %15 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %15 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
@@ -40,8 +40,8 @@
     %18:f32 = load_vector_element %quad, 2u
     %19:f32 = add %17, %18
     %20:bool = gt %16, %19
-    if %20 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    if %20 [t: $B5] {  # if_3
+      $B5: {  # true
         ret false
       }
     }
@@ -50,16 +50,16 @@
     %23:f32 = load_vector_element %quad, 3u
     %24:f32 = add %22, %23
     %25:bool = gt %21, %24
-    if %25 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    if %25 [t: $B6] {  # if_4
+      $B6: {  # true
         ret false
       }
     }
     ret true
   }
 }
-%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> -> %b7 {
-  %b7 = block {
+%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> {
+  $B7: {
     %res:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
@@ -70,92 +70,127 @@
     %indexable_3:ptr<function, array<vec4<f32>, 16>, read_write> = var
     store %res, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %i, 0i
-    loop [b: %b8, c: %b9] {  # loop_1
-      %b8 = block {  # body
+    loop [b: $B8, c: $B9] {  # loop_1
+      $B8: {  # body
         %36:i32 = load %i
         %37:bool = lt %36, 8i
-        if %37 [t: %b10, f: %b11] {  # if_5
-          %b10 = block {  # true
+        if %37 [t: $B10, f: $B11] {  # if_5
+          $B10: {  # true
             exit_if  # if_5
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_159:i32 = load %i
-        %39:vec2<f32> = load %pos_1
-        store %param, %39
+        %38:i32 = load %i
+        %x_159:i32 = let %38
+        %40:vec2<f32> = load %pos_1
+        store %param, %40
         store %indexable, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %40:ptr<function, vec4<f32>, read_write> = access %indexable, %x_159
-        %41:vec4<f32> = load %40
-        store %param_1, %41
-        %x_163:bool = call %collision_vf2_vf4_, %param, %param_1
-        if %x_163 [t: %b12] {  # if_6
-          %b12 = block {  # true
-            %x_166:i32 = load %i
+        %41:ptr<function, vec4<f32>, read_write> = access %indexable, %x_159
+        %42:vec4<f32> = load %41
+        store %param_1, %42
+        %43:bool = call %collision_vf2_vf4_, %param, %param_1
+        %x_163:bool = let %43
+        if %x_163 [t: $B12] {  # if_6
+          $B12: {  # true
+            %45:i32 = load %i
+            %x_166:i32 = let %45
             store %indexable_1, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %44:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_166
-            %x_168:f32 = load_vector_element %44, 0u
-            %x_170:i32 = load %i
+            %47:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_166
+            %48:f32 = load_vector_element %47, 0u
+            %x_168:f32 = let %48
+            %50:i32 = load %i
+            %x_170:i32 = let %50
             store %indexable_2, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_170
-            %x_172:f32 = load_vector_element %47, 1u
-            %x_175:i32 = load %i
+            %52:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_170
+            %53:f32 = load_vector_element %52, 1u
+            %x_172:f32 = let %53
+            %55:i32 = load %i
+            %x_175:i32 = let %55
             store %indexable_3, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %50:i32 = convert %x_168
-            %51:i32 = convert %x_172
-            %52:i32 = mul %50, %51
-            %53:i32 = mul %x_175, 9i
-            %54:i32 = add %52, %53
-            %55:i32 = add %54, 11i
-            %56:i32 = mod %55, 16i
-            %57:ptr<function, vec4<f32>, read_write> = access %indexable_3, %56
-            %58:vec4<f32> = load %57
-            store %res, %58
+            %57:i32 = call %tint_f32_to_i32, %x_168
+            %59:i32 = let %57
+            %60:i32 = call %tint_f32_to_i32, %x_172
+            %61:i32 = mul %59, %60
+            %62:i32 = mul %x_175, 9i
+            %63:i32 = add %61, %62
+            %64:i32 = add %63, 11i
+            %65:i32 = call %tint_mod_i32, %64, 16i
+            %67:ptr<function, vec4<f32>, read_write> = access %indexable_3, %65
+            %68:vec4<f32> = load %67
+            store %res, %68
             exit_if  # if_6
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %59:i32 = load %i
-        %60:i32 = add %59, 1i
-        store %i, %60
-        next_iteration %b8
+      $B9: {  # continuing
+        %69:i32 = load %i
+        %70:i32 = add %69, 1i
+        store %i, %70
+        next_iteration  # -> $B8
       }
     }
-    %x_184:vec4<f32> = load %res
+    %71:vec4<f32> = load %res
+    %x_184:vec4<f32> = let %71
     ret %x_184
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %65:vec4<f32> = load %gl_FragCoord
-    %66:vec2<f32> = swizzle %65, xy
-    %67:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %68:vec2<f32> = load %67
-    %69:vec2<f32> = div %66, %68
-    store %lin, %69
-    %70:vec2<f32> = load %lin
-    %71:vec2<f32> = mul %70, 32.0f
-    %72:vec2<f32> = floor %71
-    store %lin, %72
-    %73:vec2<f32> = load %lin
-    store %param_2, %73
-    %x_114:vec4<f32> = call %match_vf2_, %param_2
+    %76:vec4<f32> = load %gl_FragCoord
+    %77:vec2<f32> = swizzle %76, xy
+    %78:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %79:vec2<f32> = load %78
+    %80:vec2<f32> = div %77, %79
+    store %lin, %80
+    %81:vec2<f32> = load %lin
+    %82:vec2<f32> = mul %81, 32.0f
+    %83:vec2<f32> = floor %82
+    store %lin, %83
+    %84:vec2<f32> = load %lin
+    store %param_2, %84
+    %85:vec4<f32> = call %match_vf2_, %param_2
+    %x_114:vec4<f32> = let %85
     store %x_GLF_color, %x_114
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %77:void = call %main_1
-    %78:vec4<f32> = load %x_GLF_color
-    %79:main_out = construct %78
-    ret %79
+    %89:void = call %main_1
+    %90:vec4<f32> = load %x_GLF_color
+    %91:main_out = construct %90
+    ret %91
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %94:bool = eq %rhs, 0i
+    %95:bool = eq %lhs, -2147483648i
+    %96:bool = eq %rhs, -1i
+    %97:bool = and %95, %96
+    %98:bool = or %94, %97
+    %99:i32 = select %rhs, 1i, %98
+    %100:i32 = let %99
+    %101:i32 = div %lhs, %100
+    %102:i32 = mul %101, %100
+    %103:i32 = sub %lhs, %102
+    ret %103
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %105:i32 = convert %value
+    %106:bool = gte %value, -2147483648.0f
+    %107:i32 = select -2147483648i, %105, %106
+    %108:bool = lte %value, 2147483520.0f
+    %109:i32 = select 2147483647i, %107, %108
+    ret %109
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.msl
index b3060ef..568103b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-declare-bvec4/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,7 +8,7 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
@@ -16,50 +16,60 @@
   %state:ptr<private, array<i32, 16>, read_write> = var
 }
 
-%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
+%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool {
+  $B2: {
     %x_116:ptr<function, vec4<bool>, read_write> = var, vec4<bool>(false)
-    %x_118:f32 = load_vector_element %pos, 0u
-    %x_120:f32 = load_vector_element %quad, 0u
-    %12:bool = lt %x_118, %x_120
-    if %12 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %10:f32 = load_vector_element %pos, 0u
+    %x_118:f32 = let %10
+    %12:f32 = load_vector_element %quad, 0u
+    %x_120:f32 = let %12
+    %14:bool = lt %x_118, %x_120
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
         ret false
       }
     }
-    %x_125:f32 = load_vector_element %pos, 1u
-    %x_127:f32 = load_vector_element %quad, 1u
-    %15:bool = lt %x_125, %x_127
-    if %15 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %15:f32 = load_vector_element %pos, 1u
+    %x_125:f32 = let %15
+    %17:f32 = load_vector_element %quad, 1u
+    %x_127:f32 = let %17
+    %19:bool = lt %x_125, %x_127
+    if %19 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
-    %x_132:f32 = load_vector_element %pos, 0u
-    %x_134:f32 = load_vector_element %quad, 0u
-    %x_136:f32 = load_vector_element %quad, 2u
-    %19:f32 = add %x_134, %x_136
-    %20:bool = gt %x_132, %19
-    if %20 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %20:f32 = load_vector_element %pos, 0u
+    %x_132:f32 = let %20
+    %22:f32 = load_vector_element %quad, 0u
+    %x_134:f32 = let %22
+    %24:f32 = load_vector_element %quad, 2u
+    %x_136:f32 = let %24
+    %26:f32 = add %x_134, %x_136
+    %27:bool = gt %x_132, %26
+    if %27 [t: $B5] {  # if_3
+      $B5: {  # true
         ret false
       }
     }
-    %x_142:f32 = load_vector_element %pos, 1u
-    %x_144:f32 = load_vector_element %quad, 1u
-    %x_146:f32 = load_vector_element %quad, 3u
-    %24:f32 = add %x_144, %x_146
-    %25:bool = gt %x_142, %24
-    if %25 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %28:f32 = load_vector_element %pos, 1u
+    %x_142:f32 = let %28
+    %30:f32 = load_vector_element %quad, 1u
+    %x_144:f32 = let %30
+    %32:f32 = load_vector_element %quad, 3u
+    %x_146:f32 = let %32
+    %34:f32 = add %x_144, %x_146
+    %35:bool = gt %x_142, %34
+    if %35 [t: $B6] {  # if_4
+      $B6: {  # true
         ret false
       }
     }
     ret true
   }
 }
-%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> -> %b7 {
-  %b7 = block {
+%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> {
+  $B7: {
     %res:ptr<function, vec4<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
@@ -70,94 +80,138 @@
     %indexable_3:ptr<function, array<vec4<f32>, 16>, read_write> = var
     store %res, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %i, 0i
-    loop [b: %b8, c: %b9] {  # loop_1
-      %b8 = block {  # body
-        %x_156:i32 = load %i
-        %37:bool = lt %x_156, 8i
-        if %37 [t: %b10, f: %b11] {  # if_5
-          %b10 = block {  # true
+    loop [b: $B8, c: $B9] {  # loop_1
+      $B8: {  # body
+        %46:i32 = load %i
+        %x_156:i32 = let %46
+        %48:bool = lt %x_156, 8i
+        if %48 [t: $B10, f: $B11] {  # if_5
+          $B10: {  # true
             exit_if  # if_5
           }
-          %b11 = block {  # false
+          $B11: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_159:i32 = load %i
-        %x_160:vec2<f32> = load %pos_1
+        %49:i32 = load %i
+        %x_159:i32 = let %49
+        %51:vec2<f32> = load %pos_1
+        %x_160:vec2<f32> = let %51
         store %param, %x_160
         store %indexable, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %40:ptr<function, vec4<f32>, read_write> = access %indexable, %x_159
-        %x_162:vec4<f32> = load %40
+        %53:ptr<function, vec4<f32>, read_write> = access %indexable, %x_159
+        %54:vec4<f32> = load %53
+        %x_162:vec4<f32> = let %54
         store %param_1, %x_162
-        %x_163:bool = call %collision_vf2_vf4_, %param, %param_1
-        if %x_163 [t: %b12] {  # if_6
-          %b12 = block {  # true
-            %x_166:i32 = load %i
+        %56:bool = call %collision_vf2_vf4_, %param, %param_1
+        %x_163:bool = let %56
+        if %x_163 [t: $B12] {  # if_6
+          $B12: {  # true
+            %58:i32 = load %i
+            %x_166:i32 = let %58
             store %indexable_1, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %44:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_166
-            %x_168:f32 = load_vector_element %44, 0u
-            %x_170:i32 = load %i
+            %60:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_166
+            %61:f32 = load_vector_element %60, 0u
+            %x_168:f32 = let %61
+            %63:i32 = load %i
+            %x_170:i32 = let %63
             store %indexable_2, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_170
-            %x_172:f32 = load_vector_element %47, 1u
-            %x_175:i32 = load %i
+            %65:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_170
+            %66:f32 = load_vector_element %65, 1u
+            %x_172:f32 = let %66
+            %68:i32 = load %i
+            %x_175:i32 = let %68
             store %indexable_3, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %50:i32 = convert %x_168
-            %51:i32 = convert %x_172
-            %52:i32 = mul %50, %51
-            %53:i32 = mul %x_175, 9i
-            %54:i32 = add %52, %53
-            %55:i32 = add %54, 11i
-            %56:i32 = mod %55, 16i
-            %57:ptr<function, vec4<f32>, read_write> = access %indexable_3, %56
-            %x_181:vec4<f32> = load %57
+            %70:i32 = call %tint_f32_to_i32, %x_168
+            %72:i32 = let %70
+            %73:i32 = call %tint_f32_to_i32, %x_172
+            %74:i32 = mul %72, %73
+            %75:i32 = mul %x_175, 9i
+            %76:i32 = add %74, %75
+            %77:i32 = add %76, 11i
+            %78:i32 = call %tint_mod_i32, %77, 16i
+            %80:ptr<function, vec4<f32>, read_write> = access %indexable_3, %78
+            %81:vec4<f32> = load %80
+            %x_181:vec4<f32> = let %81
             store %res, %x_181
             exit_if  # if_6
           }
         }
-        continue %b9
+        continue  # -> $B9
       }
-      %b9 = block {  # continuing
-        %x_182:i32 = load %i
-        %60:i32 = add %x_182, 1i
-        store %i, %60
-        next_iteration %b8
+      $B9: {  # continuing
+        %83:i32 = load %i
+        %x_182:i32 = let %83
+        %85:i32 = add %x_182, 1i
+        store %i, %85
+        next_iteration  # -> $B8
       }
     }
-    %x_184:vec4<f32> = load %res
+    %86:vec4<f32> = load %res
+    %x_184:vec4<f32> = let %86
     ret %x_184
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
+%main_1 = func():void {
+  $B13: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %x_105:vec4<f32> = load %gl_FragCoord
-    %66:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %x_108:vec2<f32> = load %66
-    %68:f32 = access %x_105, 0u
-    %69:f32 = access %x_105, 1u
-    %70:vec2<f32> = construct %68, %69
-    %71:vec2<f32> = div %70, %x_108
-    store %lin, %71
-    %x_110:vec2<f32> = load %lin
-    %73:vec2<f32> = mul %x_110, 32.0f
-    %74:vec2<f32> = floor %73
-    store %lin, %74
-    %x_113:vec2<f32> = load %lin
+    %91:vec4<f32> = load %gl_FragCoord
+    %x_105:vec4<f32> = let %91
+    %93:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %94:vec2<f32> = load %93
+    %x_108:vec2<f32> = let %94
+    %96:f32 = access %x_105, 0u
+    %97:f32 = access %x_105, 1u
+    %98:vec2<f32> = construct %96, %97
+    %99:vec2<f32> = div %98, %x_108
+    store %lin, %99
+    %100:vec2<f32> = load %lin
+    %x_110:vec2<f32> = let %100
+    %102:vec2<f32> = mul %x_110, 32.0f
+    %103:vec2<f32> = floor %102
+    store %lin, %103
+    %104:vec2<f32> = load %lin
+    %x_113:vec2<f32> = let %104
     store %param_2, %x_113
-    %x_114:vec4<f32> = call %match_vf2_, %param_2
+    %106:vec4<f32> = call %match_vf2_, %param_2
+    %x_114:vec4<f32> = let %106
     store %x_GLF_color, %x_114
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %79:void = call %main_1
-    %80:vec4<f32> = load %x_GLF_color
-    %81:main_out = construct %80
-    ret %81
+    %110:void = call %main_1
+    %111:vec4<f32> = load %x_GLF_color
+    %112:main_out = construct %111
+    ret %112
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %115:bool = eq %rhs, 0i
+    %116:bool = eq %lhs, -2147483648i
+    %117:bool = eq %rhs, -1i
+    %118:bool = and %116, %117
+    %119:bool = or %115, %118
+    %120:i32 = select %rhs, 1i, %119
+    %121:i32 = let %120
+    %122:i32 = div %lhs, %121
+    %123:i32 = mul %122, %121
+    %124:i32 = sub %lhs, %123
+    ret %124
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %126:i32 = convert %value
+    %127:bool = gte %value, -2147483648.0f
+    %128:i32 = select -2147483648i, %126, %127
+    %129:bool = lte %value, 2147483520.0f
+    %130:i32 = select 2147483647i, %128, %129
+    ret %130
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.msl
index d3f6144..c0e38bd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,159 +12,167 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %15:i32 = load %f
-    store %k, %15
     %16:i32 = load %f
-    store %i, %16
-    %17:i32 = load %mid
-    %18:i32 = add %17, 1i
-    store %j, %18
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %19:i32 = load %i
-        %20:i32 = load %mid
-        %21:bool = lte %19, %20
-        %22:i32 = load %j
-        %23:i32 = load %to
-        %24:bool = lte %22, %23
-        %25:bool = and %21, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %16
+    %17:i32 = load %f
+    store %i, %17
+    %18:i32 = load %mid
+    %19:i32 = add %18, 1i
+    store %j, %19
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:i32 = load %i
+        %21:i32 = load %mid
+        %22:bool = lte %20, %21
+        %23:i32 = load %j
+        %24:i32 = load %to
+        %25:bool = lte %23, %24
+        %26:bool = and %22, %25
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:i32 = load %i
-        %27:ptr<private, i32, read_write> = access %data, %26
-        %28:i32 = load %27
-        %29:i32 = load %j
-        %30:ptr<private, i32, read_write> = access %data, %29
-        %31:i32 = load %30
-        %32:bool = lt %28, %31
-        if %32 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_280:i32 = load %k
+        %27:i32 = load %i
+        %28:ptr<private, i32, read_write> = access %data, %27
+        %29:i32 = load %28
+        %30:i32 = load %j
+        %31:ptr<private, i32, read_write> = access %data, %30
+        %32:i32 = load %31
+        %33:bool = lt %29, %32
+        if %33 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %34:i32 = load %k
-            %35:i32 = add %34, 1i
-            store %k, %35
-            %x_282:i32 = load %i
-            %37:i32 = load %i
-            %38:i32 = add %37, 1i
-            store %i, %38
-            %39:ptr<private, i32, read_write> = access %temp, %x_280
-            %40:ptr<private, i32, read_write> = access %data, %x_282
-            %41:i32 = load %40
-            store %39, %41
+            %x_280:i32 = let %34
+            %36:i32 = load %k
+            %37:i32 = add %36, 1i
+            store %k, %37
+            %38:i32 = load %i
+            %x_282:i32 = let %38
+            %40:i32 = load %i
+            %41:i32 = add %40, 1i
+            store %i, %41
+            %42:ptr<private, i32, read_write> = access %temp, %x_280
+            %43:ptr<private, i32, read_write> = access %data, %x_282
+            %44:i32 = load %43
+            store %42, %44
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_287:i32 = load %k
-            %43:i32 = load %k
-            %44:i32 = add %43, 1i
-            store %k, %44
-            %x_289:i32 = load %j
-            %46:i32 = load %j
-            %47:i32 = add %46, 1i
-            store %j, %47
-            %48:ptr<private, i32, read_write> = access %temp, %x_287
-            %49:ptr<private, i32, read_write> = access %data, %x_289
-            %50:i32 = load %49
-            store %48, %50
+          $B8: {  # false
+            %45:i32 = load %k
+            %x_287:i32 = let %45
+            %47:i32 = load %k
+            %48:i32 = add %47, 1i
+            store %k, %48
+            %49:i32 = load %j
+            %x_289:i32 = let %49
+            %51:i32 = load %j
+            %52:i32 = add %51, 1i
+            store %j, %52
+            %53:ptr<private, i32, read_write> = access %temp, %x_287
+            %54:ptr<private, i32, read_write> = access %data, %x_289
+            %55:i32 = load %54
+            store %53, %55
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %51:i32 = load %i
-        %52:bool = lt %51, 10i
-        %53:i32 = load %i
-        %54:i32 = load %mid
-        %55:bool = lte %53, %54
-        %56:bool = and %52, %55
-        if %56 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %56:i32 = load %i
+        %57:bool = lt %56, 10i
+        %58:i32 = load %i
+        %59:i32 = load %mid
+        %60:bool = lte %58, %59
+        %61:bool = and %57, %60
+        if %61 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_305:i32 = load %k
-        %58:i32 = load %k
-        %59:i32 = add %58, 1i
-        store %k, %59
-        %x_307:i32 = load %i
-        %61:i32 = load %i
-        %62:i32 = add %61, 1i
-        store %i, %62
-        %63:ptr<private, i32, read_write> = access %temp, %x_305
-        %64:ptr<private, i32, read_write> = access %data, %x_307
-        %65:i32 = load %64
-        store %63, %65
-        continue %b10
+        %62:i32 = load %k
+        %x_305:i32 = let %62
+        %64:i32 = load %k
+        %65:i32 = add %64, 1i
+        store %k, %65
+        %66:i32 = load %i
+        %x_307:i32 = let %66
+        %68:i32 = load %i
+        %69:i32 = add %68, 1i
+        store %i, %69
+        %70:ptr<private, i32, read_write> = access %temp, %x_305
+        %71:ptr<private, i32, read_write> = access %data, %x_307
+        %72:i32 = load %71
+        store %70, %72
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %66:i32 = load %f
-    store %i_1, %66
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %67:i32 = load %i_1
-        %68:i32 = load %to
-        %69:bool = lte %67, %68
-        if %69 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %73:i32 = load %f
+    store %i_1, %73
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %74:i32 = load %i_1
+        %75:i32 = load %to
+        %76:bool = lte %74, %75
+        if %76 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_321:i32 = load %i_1
-        %71:ptr<private, i32, read_write> = access %data, %x_321
-        %72:i32 = load %i_1
-        %73:ptr<private, i32, read_write> = access %temp, %72
-        %74:i32 = load %73
-        store %71, %74
-        continue %b14
+        %77:i32 = load %i_1
+        %x_321:i32 = let %77
+        %79:ptr<private, i32, read_write> = access %data, %x_321
+        %80:i32 = load %i_1
+        %81:ptr<private, i32, read_write> = access %temp, %80
+        %82:i32 = load %81
+        store %79, %82
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %75:i32 = load %i_1
-        %76:i32 = add %75, 1i
-        store %i_1, %76
-        next_iteration %b13
+      $B14: {  # continuing
+        %83:i32 = load %i_1
+        %84:i32 = add %83, 1i
+        store %i_1, %84
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -178,319 +186,332 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %88:i32 = load %m
-        %89:i32 = load %high
-        %90:bool = lte %88, %89
-        if %90 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %96:i32 = load %m
+        %97:i32 = load %high
+        %98:bool = lte %96, %97
+        if %98 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %91:i32 = load %low
-        store %i_2, %91
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %92:i32 = load %i_2
-            %93:i32 = load %high
-            %94:bool = lt %92, %93
-            if %94 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        %99:i32 = load %low
+        store %i_2, %99
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %100:i32 = load %i_2
+            %101:i32 = load %high
+            %102:bool = lt %100, %101
+            if %102 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %95:i32 = load %i_2
-            store %f_1, %95
-            %96:i32 = load %i_2
-            %97:i32 = load %m
-            %98:i32 = add %96, %97
-            %99:i32 = sub %98, 1i
-            store %mid_1, %99
-            %100:i32 = load %i_2
-            %101:i32 = load %m
-            %102:i32 = mul 2i, %101
-            %103:i32 = add %100, %102
-            %104:i32 = sub %103, 1i
-            %105:i32 = load %high
-            %106:i32 = min %104, %105
-            store %to_1, %106
-            %107:i32 = load %f_1
-            store %param, %107
-            %108:i32 = load %mid_1
-            store %param_1, %108
-            %109:i32 = load %to_1
-            store %param_2, %109
-            %110:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %103:i32 = load %i_2
+            store %f_1, %103
+            %104:i32 = load %i_2
+            %105:i32 = load %m
+            %106:i32 = add %104, %105
+            %107:i32 = sub %106, 1i
+            store %mid_1, %107
+            %108:i32 = load %i_2
+            %109:i32 = load %m
+            %110:i32 = mul 2i, %109
+            %111:i32 = add %108, %110
+            %112:i32 = sub %111, 1i
+            %113:i32 = load %high
+            %114:i32 = min %112, %113
+            store %to_1, %114
+            %115:i32 = load %f_1
+            store %param, %115
+            %116:i32 = load %mid_1
+            store %param_1, %116
+            %117:i32 = load %to_1
+            store %param_2, %117
+            %118:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %111:i32 = load %i_2
-            %112:i32 = load %m
-            %113:i32 = mul 2i, %112
-            %114:i32 = add %111, %113
-            store %i_2, %114
-            next_iteration %b22
+          $B23: {  # continuing
+            %119:i32 = load %i_2
+            %120:i32 = load %m
+            %121:i32 = mul 2i, %120
+            %122:i32 = add %119, %121
+            store %i_2, %122
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %115:i32 = load %m
-        %116:i32 = mul 2i, %115
-        store %m, %116
-        next_iteration %b18
+      $B19: {  # continuing
+        %123:i32 = load %m
+        %124:i32 = mul 2i, %123
+        store %m, %124
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %121:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %122:f32 = load_vector_element %121, 0u
-    %123:i32 = convert %122
-    store %i_3, %123
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_93:i32 = load %i_3
-        switch %x_93 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_123:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_123
-            store %126, -5i
+    %129:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %130:f32 = load_vector_element %129, 0u
+    %131:i32 = call %tint_f32_to_i32, %130
+    store %i_3, %131
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %133:i32 = load %i_3
+        %x_93:i32 = let %133
+        switch %x_93 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %135:i32 = load %i_3
+            %x_123:i32 = let %135
+            %137:ptr<private, i32, read_write> = access %data, %x_123
+            store %137, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_121:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_121
-            store %128, -4i
+          $B30: {  # case
+            %138:i32 = load %i_3
+            %x_121:i32 = let %138
+            %140:ptr<private, i32, read_write> = access %data, %x_121
+            store %140, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_119:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_119
-            store %130, -3i
+          $B31: {  # case
+            %141:i32 = load %i_3
+            %x_119:i32 = let %141
+            %143:ptr<private, i32, read_write> = access %data, %x_119
+            store %143, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_117:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_117
-            store %132, -2i
+          $B32: {  # case
+            %144:i32 = load %i_3
+            %x_117:i32 = let %144
+            %146:ptr<private, i32, read_write> = access %data, %x_117
+            store %146, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_115:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_115
-            store %134, -1i
+          $B33: {  # case
+            %147:i32 = load %i_3
+            %x_115:i32 = let %147
+            %149:ptr<private, i32, read_write> = access %data, %x_115
+            store %149, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_113:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_113
-            store %136, 0i
+          $B34: {  # case
+            %150:i32 = load %i_3
+            %x_113:i32 = let %150
+            %152:ptr<private, i32, read_write> = access %data, %x_113
+            store %152, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_111:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_111
-            store %138, 1i
+          $B35: {  # case
+            %153:i32 = load %i_3
+            %x_111:i32 = let %153
+            %155:ptr<private, i32, read_write> = access %data, %x_111
+            store %155, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_109:i32 = load %i_3
-            %140:ptr<private, i32, read_write> = access %data, %x_109
-            store %140, 2i
+          $B36: {  # case
+            %156:i32 = load %i_3
+            %x_109:i32 = let %156
+            %158:ptr<private, i32, read_write> = access %data, %x_109
+            store %158, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_107:i32 = load %i_3
-            %142:ptr<private, i32, read_write> = access %data, %x_107
-            store %142, 3i
+          $B37: {  # case
+            %159:i32 = load %i_3
+            %x_107:i32 = let %159
+            %161:ptr<private, i32, read_write> = access %data, %x_107
+            store %161, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_105:i32 = load %i_3
-            %144:ptr<private, i32, read_write> = access %data, %x_105
-            store %144, 4i
+          $B38: {  # case
+            %162:i32 = load %i_3
+            %x_105:i32 = let %162
+            %164:ptr<private, i32, read_write> = access %data, %x_105
+            store %164, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %145:i32 = load %i_3
-        %146:i32 = add %145, 1i
-        store %i_3, %146
-        continue %b28
+        %165:i32 = load %i_3
+        %166:i32 = add %165, 1i
+        store %i_3, %166
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_127:i32 = load %i_3
-        %148:bool = lt %x_127, 10i
-        %149:bool = eq %148, false
-        break_if %149 %b27
+      $B28: {  # continuing
+        %167:i32 = load %i_3
+        %x_127:i32 = let %167
+        %169:bool = lt %x_127, 10i
+        %170:bool = eq %169, false
+        break_if %170  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %150:i32 = load %j_1
-        %151:bool = lt %150, 10i
-        if %151 [t: %b42, f: %b43] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %171:i32 = load %j_1
+        %172:bool = lt %171, 10i
+        if %172 [t: $B42, f: $B43] {  # if_7
+          $B42: {  # true
             exit_if  # if_7
           }
-          %b43 = block {  # false
+          $B43: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_136:i32 = load %j_1
-        %153:ptr<private, i32, read_write> = access %temp, %x_136
-        %154:i32 = load %j_1
-        %155:ptr<private, i32, read_write> = access %data, %154
-        %156:i32 = load %155
-        store %153, %156
-        continue %b41
+        %173:i32 = load %j_1
+        %x_136:i32 = let %173
+        %175:ptr<private, i32, read_write> = access %temp, %x_136
+        %176:i32 = load %j_1
+        %177:ptr<private, i32, read_write> = access %data, %176
+        %178:i32 = load %177
+        store %175, %178
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %157:i32 = load %j_1
-        %158:i32 = add %157, 1i
-        store %j_1, %158
-        next_iteration %b40
+      $B41: {  # continuing
+        %179:i32 = load %j_1
+        %180:i32 = add %179, 1i
+        store %j_1, %180
+        next_iteration  # -> $B40
       }
     }
-    %159:void = call %mergeSort_
-    %160:f32 = load_vector_element %gl_FragCoord, 1u
-    %161:i32 = convert %160
-    %162:bool = lt %161, 30i
-    if %162 [t: %b44, f: %b45] {  # if_8
-      %b44 = block {  # true
-        %163:ptr<private, i32, read_write> = access %data, 0i
-        %164:i32 = load %163
-        %165:f32 = convert %164
-        %166:f32 = div %165, 10.0f
-        %167:f32 = add 0.5f, %166
-        store %grey, %167
+    %181:void = call %mergeSort_
+    %182:f32 = load_vector_element %gl_FragCoord, 1u
+    %183:i32 = call %tint_f32_to_i32, %182
+    %184:bool = lt %183, 30i
+    if %184 [t: $B44, f: $B45] {  # if_8
+      $B44: {  # true
+        %185:ptr<private, i32, read_write> = access %data, 0i
+        %186:i32 = load %185
+        %187:f32 = convert %186
+        %188:f32 = div %187, 10.0f
+        %189:f32 = add 0.5f, %188
+        store %grey, %189
         exit_if  # if_8
       }
-      %b45 = block {  # false
-        %168:f32 = load_vector_element %gl_FragCoord, 1u
-        %169:i32 = convert %168
-        %170:bool = lt %169, 60i
-        if %170 [t: %b46, f: %b47] {  # if_9
-          %b46 = block {  # true
-            %171:ptr<private, i32, read_write> = access %data, 1i
-            %172:i32 = load %171
-            %173:f32 = convert %172
-            %174:f32 = div %173, 10.0f
-            %175:f32 = add 0.5f, %174
-            store %grey, %175
+      $B45: {  # false
+        %190:f32 = load_vector_element %gl_FragCoord, 1u
+        %191:i32 = call %tint_f32_to_i32, %190
+        %192:bool = lt %191, 60i
+        if %192 [t: $B46, f: $B47] {  # if_9
+          $B46: {  # true
+            %193:ptr<private, i32, read_write> = access %data, 1i
+            %194:i32 = load %193
+            %195:f32 = convert %194
+            %196:f32 = div %195, 10.0f
+            %197:f32 = add 0.5f, %196
+            store %grey, %197
             exit_if  # if_9
           }
-          %b47 = block {  # false
-            %176:f32 = load_vector_element %gl_FragCoord, 1u
-            %177:i32 = convert %176
-            %178:bool = lt %177, 90i
-            if %178 [t: %b48, f: %b49] {  # if_10
-              %b48 = block {  # true
-                %179:ptr<private, i32, read_write> = access %data, 2i
-                %180:i32 = load %179
-                %181:f32 = convert %180
-                %182:f32 = div %181, 10.0f
-                %183:f32 = add 0.5f, %182
-                store %grey, %183
+          $B47: {  # false
+            %198:f32 = load_vector_element %gl_FragCoord, 1u
+            %199:i32 = call %tint_f32_to_i32, %198
+            %200:bool = lt %199, 90i
+            if %200 [t: $B48, f: $B49] {  # if_10
+              $B48: {  # true
+                %201:ptr<private, i32, read_write> = access %data, 2i
+                %202:i32 = load %201
+                %203:f32 = convert %202
+                %204:f32 = div %203, 10.0f
+                %205:f32 = add 0.5f, %204
+                store %grey, %205
                 exit_if  # if_10
               }
-              %b49 = block {  # false
-                %184:f32 = load_vector_element %gl_FragCoord, 1u
-                %185:i32 = convert %184
-                %186:bool = lt %185, 120i
-                if %186 [t: %b50, f: %b51] {  # if_11
-                  %b50 = block {  # true
-                    %187:ptr<private, i32, read_write> = access %data, 3i
-                    %188:i32 = load %187
-                    %189:f32 = convert %188
-                    %190:f32 = div %189, 10.0f
-                    %191:f32 = add 0.5f, %190
-                    store %grey, %191
+              $B49: {  # false
+                %206:f32 = load_vector_element %gl_FragCoord, 1u
+                %207:i32 = call %tint_f32_to_i32, %206
+                %208:bool = lt %207, 120i
+                if %208 [t: $B50, f: $B51] {  # if_11
+                  $B50: {  # true
+                    %209:ptr<private, i32, read_write> = access %data, 3i
+                    %210:i32 = load %209
+                    %211:f32 = convert %210
+                    %212:f32 = div %211, 10.0f
+                    %213:f32 = add 0.5f, %212
+                    store %grey, %213
                     exit_if  # if_11
                   }
-                  %b51 = block {  # false
-                    %192:f32 = load_vector_element %gl_FragCoord, 1u
-                    %193:i32 = convert %192
-                    %194:bool = lt %193, 150i
-                    if %194 [t: %b52, f: %b53] {  # if_12
-                      %b52 = block {  # true
-                        discard
+                  $B51: {  # false
+                    %214:f32 = load_vector_element %gl_FragCoord, 1u
+                    %215:i32 = call %tint_f32_to_i32, %214
+                    %216:bool = lt %215, 150i
+                    if %216 [t: $B52, f: $B53] {  # if_12
+                      $B52: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b53 = block {  # false
-                        %195:f32 = load_vector_element %gl_FragCoord, 1u
-                        %196:i32 = convert %195
-                        %197:bool = lt %196, 180i
-                        if %197 [t: %b54, f: %b55] {  # if_13
-                          %b54 = block {  # true
-                            %198:ptr<private, i32, read_write> = access %data, 5i
-                            %199:i32 = load %198
-                            %200:f32 = convert %199
-                            %201:f32 = div %200, 10.0f
-                            %202:f32 = add 0.5f, %201
-                            store %grey, %202
+                      $B53: {  # false
+                        %217:f32 = load_vector_element %gl_FragCoord, 1u
+                        %218:i32 = call %tint_f32_to_i32, %217
+                        %219:bool = lt %218, 180i
+                        if %219 [t: $B54, f: $B55] {  # if_13
+                          $B54: {  # true
+                            %220:ptr<private, i32, read_write> = access %data, 5i
+                            %221:i32 = load %220
+                            %222:f32 = convert %221
+                            %223:f32 = div %222, 10.0f
+                            %224:f32 = add 0.5f, %223
+                            store %grey, %224
                             exit_if  # if_13
                           }
-                          %b55 = block {  # false
-                            %203:f32 = load_vector_element %gl_FragCoord, 1u
-                            %204:i32 = convert %203
-                            %205:bool = lt %204, 210i
-                            if %205 [t: %b56, f: %b57] {  # if_14
-                              %b56 = block {  # true
-                                %206:ptr<private, i32, read_write> = access %data, 6i
-                                %207:i32 = load %206
-                                %208:f32 = convert %207
-                                %209:f32 = div %208, 10.0f
-                                %210:f32 = add 0.5f, %209
-                                store %grey, %210
+                          $B55: {  # false
+                            %225:f32 = load_vector_element %gl_FragCoord, 1u
+                            %226:i32 = call %tint_f32_to_i32, %225
+                            %227:bool = lt %226, 210i
+                            if %227 [t: $B56, f: $B57] {  # if_14
+                              $B56: {  # true
+                                %228:ptr<private, i32, read_write> = access %data, 6i
+                                %229:i32 = load %228
+                                %230:f32 = convert %229
+                                %231:f32 = div %230, 10.0f
+                                %232:f32 = add 0.5f, %231
+                                store %grey, %232
                                 exit_if  # if_14
                               }
-                              %b57 = block {  # false
-                                %211:f32 = load_vector_element %gl_FragCoord, 1u
-                                %212:i32 = convert %211
-                                %213:bool = lt %212, 240i
-                                if %213 [t: %b58, f: %b59] {  # if_15
-                                  %b58 = block {  # true
-                                    %214:ptr<private, i32, read_write> = access %data, 7i
-                                    %215:i32 = load %214
-                                    %216:f32 = convert %215
-                                    %217:f32 = div %216, 10.0f
-                                    %218:f32 = add 0.5f, %217
-                                    store %grey, %218
+                              $B57: {  # false
+                                %233:f32 = load_vector_element %gl_FragCoord, 1u
+                                %234:i32 = call %tint_f32_to_i32, %233
+                                %235:bool = lt %234, 240i
+                                if %235 [t: $B58, f: $B59] {  # if_15
+                                  $B58: {  # true
+                                    %236:ptr<private, i32, read_write> = access %data, 7i
+                                    %237:i32 = load %236
+                                    %238:f32 = convert %237
+                                    %239:f32 = div %238, 10.0f
+                                    %240:f32 = add 0.5f, %239
+                                    store %grey, %240
                                     exit_if  # if_15
                                   }
-                                  %b59 = block {  # false
-                                    %219:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %220:i32 = convert %219
-                                    %221:bool = lt %220, 270i
-                                    if %221 [t: %b60, f: %b61] {  # if_16
-                                      %b60 = block {  # true
-                                        %222:ptr<private, i32, read_write> = access %data, 8i
-                                        %223:i32 = load %222
-                                        %224:f32 = convert %223
-                                        %225:f32 = div %224, 10.0f
-                                        %226:f32 = add 0.5f, %225
-                                        store %grey, %226
+                                  $B59: {  # false
+                                    %241:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %242:i32 = call %tint_f32_to_i32, %241
+                                    %243:bool = lt %242, 270i
+                                    if %243 [t: $B60, f: $B61] {  # if_16
+                                      $B60: {  # true
+                                        %244:ptr<private, i32, read_write> = access %data, 8i
+                                        %245:i32 = load %244
+                                        %246:f32 = convert %245
+                                        %247:f32 = div %246, 10.0f
+                                        %248:f32 = add 0.5f, %247
+                                        store %grey, %248
                                         exit_if  # if_16
                                       }
-                                      %b61 = block {  # false
-                                        discard
+                                      $B61: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -518,23 +539,41 @@
         exit_if  # if_8
       }
     }
-    %227:f32 = load %grey
-    %x_248:vec3<f32> = construct %227
-    %229:f32 = access %x_248, 0u
-    %230:f32 = access %x_248, 1u
-    %231:f32 = access %x_248, 2u
-    %232:vec4<f32> = construct %229, %230, %231, 1.0f
-    store %x_GLF_color, %232
+    %249:f32 = load %grey
+    %250:vec3<f32> = construct %249
+    %x_248:vec3<f32> = let %250
+    %252:f32 = access %x_248, 0u
+    %253:f32 = access %x_248, 1u
+    %254:f32 = access %x_248, 2u
+    %255:vec4<f32> = construct %252, %253, %254, 1.0f
+    store %x_GLF_color, %255
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b62 {
-  %b62 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B62: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %235:void = call %main_1
-    %236:vec4<f32> = load %x_GLF_color
-    %237:main_out = construct %236
-    ret %237
+    %258:void = call %main_1
+    %259:vec4<f32> = load %x_GLF_color
+    %260:main_out = construct %259
+    %261:bool = load %continue_execution
+    %262:bool = eq %261, false
+    if %262 [t: $B63] {  # if_17
+      $B63: {  # true
+        terminate_invocation
+      }
+    }
+    ret %260
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B64: {
+    %264:i32 = convert %value
+    %265:bool = gte %value, -2147483648.0f
+    %266:i32 = select -2147483648i, %264, %265
+    %267:bool = lte %value, 2147483520.0f
+    %268:i32 = select 2147483647i, %266, %267
+    ret %268
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.msl
index 69006f7..6d082fd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,153 +12,184 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_254:i32 = load %f
+    %16:i32 = load %f
+    %x_254:i32 = let %16
     store %k, %x_254
-    %x_255:i32 = load %f
+    %18:i32 = load %f
+    %x_255:i32 = let %18
     store %i, %x_255
-    %x_256:i32 = load %mid
-    %18:i32 = add %x_256, 1i
-    store %j, %18
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_262:i32 = load %i
-        %x_263:i32 = load %mid
-        %x_265:i32 = load %j
-        %x_266:i32 = load %to
-        %23:bool = lte %x_262, %x_263
-        %24:bool = lte %x_265, %x_266
-        %25:bool = and %23, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %20:i32 = load %mid
+    %x_256:i32 = let %20
+    %22:i32 = add %x_256, 1i
+    store %j, %22
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %23:i32 = load %i
+        %x_262:i32 = let %23
+        %25:i32 = load %mid
+        %x_263:i32 = let %25
+        %27:i32 = load %j
+        %x_265:i32 = let %27
+        %29:i32 = load %to
+        %x_266:i32 = let %29
+        %31:bool = lte %x_262, %x_263
+        %32:bool = lte %x_265, %x_266
+        %33:bool = and %31, %32
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_270:i32 = load %i
-        %27:ptr<private, i32, read_write> = access %data, %x_270
-        %x_272:i32 = load %27
-        %x_273:i32 = load %j
-        %30:ptr<private, i32, read_write> = access %data, %x_273
-        %x_275:i32 = load %30
-        %32:bool = lt %x_272, %x_275
-        if %32 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_280:i32 = load %k
-            %34:i32 = add %x_280, 1i
-            store %k, %34
-            %x_282:i32 = load %i
-            %36:i32 = add %x_282, 1i
-            store %i, %36
-            %37:ptr<private, i32, read_write> = access %data, %x_282
-            %x_285:i32 = load %37
-            %39:ptr<private, i32, read_write> = access %temp, %x_280
-            store %39, %x_285
+        %34:i32 = load %i
+        %x_270:i32 = let %34
+        %36:ptr<private, i32, read_write> = access %data, %x_270
+        %37:i32 = load %36
+        %x_272:i32 = let %37
+        %39:i32 = load %j
+        %x_273:i32 = let %39
+        %41:ptr<private, i32, read_write> = access %data, %x_273
+        %42:i32 = load %41
+        %x_275:i32 = let %42
+        %44:bool = lt %x_272, %x_275
+        if %44 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %45:i32 = load %k
+            %x_280:i32 = let %45
+            %47:i32 = add %x_280, 1i
+            store %k, %47
+            %48:i32 = load %i
+            %x_282:i32 = let %48
+            %50:i32 = add %x_282, 1i
+            store %i, %50
+            %51:ptr<private, i32, read_write> = access %data, %x_282
+            %52:i32 = load %51
+            %x_285:i32 = let %52
+            %54:ptr<private, i32, read_write> = access %temp, %x_280
+            store %54, %x_285
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_287:i32 = load %k
-            %41:i32 = add %x_287, 1i
-            store %k, %41
-            %x_289:i32 = load %j
-            %43:i32 = add %x_289, 1i
-            store %j, %43
-            %44:ptr<private, i32, read_write> = access %data, %x_289
-            %x_292:i32 = load %44
-            %46:ptr<private, i32, read_write> = access %temp, %x_287
-            store %46, %x_292
+          $B8: {  # false
+            %55:i32 = load %k
+            %x_287:i32 = let %55
+            %57:i32 = add %x_287, 1i
+            store %k, %57
+            %58:i32 = load %j
+            %x_289:i32 = let %58
+            %60:i32 = add %x_289, 1i
+            store %j, %60
+            %61:ptr<private, i32, read_write> = access %data, %x_289
+            %62:i32 = load %61
+            %x_292:i32 = let %62
+            %64:ptr<private, i32, read_write> = access %temp, %x_287
+            store %64, %x_292
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_298:i32 = load %i
-        %x_300:i32 = load %i
-        %x_301:i32 = load %mid
-        %50:bool = lt %x_298, 10i
-        %51:bool = lte %x_300, %x_301
-        %52:bool = and %50, %51
-        if %52 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %65:i32 = load %i
+        %x_298:i32 = let %65
+        %67:i32 = load %i
+        %x_300:i32 = let %67
+        %69:i32 = load %mid
+        %x_301:i32 = let %69
+        %71:bool = lt %x_298, 10i
+        %72:bool = lte %x_300, %x_301
+        %73:bool = and %71, %72
+        if %73 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_305:i32 = load %k
-        %54:i32 = add %x_305, 1i
-        store %k, %54
-        %x_307:i32 = load %i
-        %56:i32 = add %x_307, 1i
-        store %i, %56
-        %57:ptr<private, i32, read_write> = access %data, %x_307
-        %x_310:i32 = load %57
-        %59:ptr<private, i32, read_write> = access %temp, %x_305
-        store %59, %x_310
-        continue %b10
+        %74:i32 = load %k
+        %x_305:i32 = let %74
+        %76:i32 = add %x_305, 1i
+        store %k, %76
+        %77:i32 = load %i
+        %x_307:i32 = let %77
+        %79:i32 = add %x_307, 1i
+        store %i, %79
+        %80:ptr<private, i32, read_write> = access %data, %x_307
+        %81:i32 = load %80
+        %x_310:i32 = let %81
+        %83:ptr<private, i32, read_write> = access %temp, %x_305
+        store %83, %x_310
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_312:i32 = load %f
+    %84:i32 = load %f
+    %x_312:i32 = let %84
     store %i_1, %x_312
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_317:i32 = load %i_1
-        %x_318:i32 = load %to
-        %63:bool = lte %x_317, %x_318
-        if %63 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %86:i32 = load %i_1
+        %x_317:i32 = let %86
+        %88:i32 = load %to
+        %x_318:i32 = let %88
+        %90:bool = lte %x_317, %x_318
+        if %90 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_321:i32 = load %i_1
-        %x_322:i32 = load %i_1
-        %66:ptr<private, i32, read_write> = access %temp, %x_322
-        %x_324:i32 = load %66
-        %68:ptr<private, i32, read_write> = access %data, %x_321
-        store %68, %x_324
-        continue %b14
+        %91:i32 = load %i_1
+        %x_321:i32 = let %91
+        %93:i32 = load %i_1
+        %x_322:i32 = let %93
+        %95:ptr<private, i32, read_write> = access %temp, %x_322
+        %96:i32 = load %95
+        %x_324:i32 = let %96
+        %98:ptr<private, i32, read_write> = access %data, %x_321
+        store %98, %x_324
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_326:i32 = load %i_1
-        %70:i32 = add %x_326, 1i
-        store %i_1, %70
-        next_iteration %b13
+      $B14: {  # continuing
+        %99:i32 = load %i_1
+        %x_326:i32 = let %99
+        %101:i32 = add %x_326, 1i
+        store %i_1, %101
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -172,319 +203,372 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_333:i32 = load %m
-        %x_334:i32 = load %high
-        %84:bool = lte %x_333, %x_334
-        if %84 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %113:i32 = load %m
+        %x_333:i32 = let %113
+        %115:i32 = load %high
+        %x_334:i32 = let %115
+        %117:bool = lte %x_333, %x_334
+        if %117 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_337:i32 = load %low
+        %118:i32 = load %low
+        %x_337:i32 = let %118
         store %i_2, %x_337
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %x_342:i32 = load %i_2
-            %x_343:i32 = load %high
-            %88:bool = lt %x_342, %x_343
-            if %88 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %120:i32 = load %i_2
+            %x_342:i32 = let %120
+            %122:i32 = load %high
+            %x_343:i32 = let %122
+            %124:bool = lt %x_342, %x_343
+            if %124 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_346:i32 = load %i_2
+            %125:i32 = load %i_2
+            %x_346:i32 = let %125
             store %f_1, %x_346
-            %x_347:i32 = load %i_2
-            %x_348:i32 = load %m
-            %92:i32 = add %x_347, %x_348
-            %93:i32 = sub %92, 1i
-            store %mid_1, %93
-            %x_351:i32 = load %i_2
-            %x_352:i32 = load %m
-            %x_356:i32 = load %high
-            %97:i32 = mul 2i, %x_352
-            %98:i32 = add %x_351, %97
-            %99:i32 = sub %98, 1i
-            %100:i32 = min %99, %x_356
-            store %to_1, %100
-            %x_358:i32 = load %f_1
+            %127:i32 = load %i_2
+            %x_347:i32 = let %127
+            %129:i32 = load %m
+            %x_348:i32 = let %129
+            %131:i32 = add %x_347, %x_348
+            %132:i32 = sub %131, 1i
+            store %mid_1, %132
+            %133:i32 = load %i_2
+            %x_351:i32 = let %133
+            %135:i32 = load %m
+            %x_352:i32 = let %135
+            %137:i32 = load %high
+            %x_356:i32 = let %137
+            %139:i32 = mul 2i, %x_352
+            %140:i32 = add %x_351, %139
+            %141:i32 = sub %140, 1i
+            %142:i32 = min %141, %x_356
+            store %to_1, %142
+            %143:i32 = load %f_1
+            %x_358:i32 = let %143
             store %param, %x_358
-            %x_359:i32 = load %mid_1
+            %145:i32 = load %mid_1
+            %x_359:i32 = let %145
             store %param_1, %x_359
-            %x_360:i32 = load %to_1
+            %147:i32 = load %to_1
+            %x_360:i32 = let %147
             store %param_2, %x_360
-            %104:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %149:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %x_362:i32 = load %m
-            %x_364:i32 = load %i_2
-            %107:i32 = mul 2i, %x_362
-            %108:i32 = add %x_364, %107
-            store %i_2, %108
-            next_iteration %b22
+          $B23: {  # continuing
+            %150:i32 = load %m
+            %x_362:i32 = let %150
+            %152:i32 = load %i_2
+            %x_364:i32 = let %152
+            %154:i32 = mul 2i, %x_362
+            %155:i32 = add %x_364, %154
+            store %i_2, %155
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_366:i32 = load %m
-        %110:i32 = mul 2i, %x_366
-        store %m, %110
-        next_iteration %b18
+      $B19: {  # continuing
+        %156:i32 = load %m
+        %x_366:i32 = let %156
+        %158:i32 = mul 2i, %x_366
+        store %m, %158
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %115:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_87:f32 = load_vector_element %115, 0u
-    %117:i32 = convert %x_87
-    store %i_3, %117
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_93:i32 = load %i_3
-        switch %x_93 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_123:i32 = load %i_3
-            %120:ptr<private, i32, read_write> = access %data, %x_123
-            store %120, -5i
+    %163:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %164:f32 = load_vector_element %163, 0u
+    %x_87:f32 = let %164
+    %166:i32 = call %tint_f32_to_i32, %x_87
+    store %i_3, %166
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %168:i32 = load %i_3
+        %x_93:i32 = let %168
+        switch %x_93 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %170:i32 = load %i_3
+            %x_123:i32 = let %170
+            %172:ptr<private, i32, read_write> = access %data, %x_123
+            store %172, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_121:i32 = load %i_3
-            %122:ptr<private, i32, read_write> = access %data, %x_121
-            store %122, -4i
+          $B30: {  # case
+            %173:i32 = load %i_3
+            %x_121:i32 = let %173
+            %175:ptr<private, i32, read_write> = access %data, %x_121
+            store %175, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_119:i32 = load %i_3
-            %124:ptr<private, i32, read_write> = access %data, %x_119
-            store %124, -3i
+          $B31: {  # case
+            %176:i32 = load %i_3
+            %x_119:i32 = let %176
+            %178:ptr<private, i32, read_write> = access %data, %x_119
+            store %178, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_117:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_117
-            store %126, -2i
+          $B32: {  # case
+            %179:i32 = load %i_3
+            %x_117:i32 = let %179
+            %181:ptr<private, i32, read_write> = access %data, %x_117
+            store %181, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_115:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_115
-            store %128, -1i
+          $B33: {  # case
+            %182:i32 = load %i_3
+            %x_115:i32 = let %182
+            %184:ptr<private, i32, read_write> = access %data, %x_115
+            store %184, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_113:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_113
-            store %130, 0i
+          $B34: {  # case
+            %185:i32 = load %i_3
+            %x_113:i32 = let %185
+            %187:ptr<private, i32, read_write> = access %data, %x_113
+            store %187, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_111:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_111
-            store %132, 1i
+          $B35: {  # case
+            %188:i32 = load %i_3
+            %x_111:i32 = let %188
+            %190:ptr<private, i32, read_write> = access %data, %x_111
+            store %190, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_109:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_109
-            store %134, 2i
+          $B36: {  # case
+            %191:i32 = load %i_3
+            %x_109:i32 = let %191
+            %193:ptr<private, i32, read_write> = access %data, %x_109
+            store %193, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_107:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_107
-            store %136, 3i
+          $B37: {  # case
+            %194:i32 = load %i_3
+            %x_107:i32 = let %194
+            %196:ptr<private, i32, read_write> = access %data, %x_107
+            store %196, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_105:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_105
-            store %138, 4i
+          $B38: {  # case
+            %197:i32 = load %i_3
+            %x_105:i32 = let %197
+            %199:ptr<private, i32, read_write> = access %data, %x_105
+            store %199, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_125:i32 = load %i_3
-        %140:i32 = add %x_125, 1i
-        store %i_3, %140
-        continue %b28
+        %200:i32 = load %i_3
+        %x_125:i32 = let %200
+        %202:i32 = add %x_125, 1i
+        store %i_3, %202
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_127:i32 = load %i_3
-        %142:bool = lt %x_127, 10i
-        %143:bool = eq %142, false
-        break_if %143 %b27
+      $B28: {  # continuing
+        %203:i32 = load %i_3
+        %x_127:i32 = let %203
+        %205:bool = lt %x_127, 10i
+        %206:bool = eq %205, false
+        break_if %206  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %x_133:i32 = load %j_1
-        %145:bool = lt %x_133, 10i
-        if %145 [t: %b42, f: %b43] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %207:i32 = load %j_1
+        %x_133:i32 = let %207
+        %209:bool = lt %x_133, 10i
+        if %209 [t: $B42, f: $B43] {  # if_7
+          $B42: {  # true
             exit_if  # if_7
           }
-          %b43 = block {  # false
+          $B43: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_136:i32 = load %j_1
-        %x_137:i32 = load %j_1
-        %148:ptr<private, i32, read_write> = access %data, %x_137
-        %x_139:i32 = load %148
-        %150:ptr<private, i32, read_write> = access %temp, %x_136
-        store %150, %x_139
-        continue %b41
+        %210:i32 = load %j_1
+        %x_136:i32 = let %210
+        %212:i32 = load %j_1
+        %x_137:i32 = let %212
+        %214:ptr<private, i32, read_write> = access %data, %x_137
+        %215:i32 = load %214
+        %x_139:i32 = let %215
+        %217:ptr<private, i32, read_write> = access %temp, %x_136
+        store %217, %x_139
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %x_141:i32 = load %j_1
-        %152:i32 = add %x_141, 1i
-        store %j_1, %152
-        next_iteration %b40
+      $B41: {  # continuing
+        %218:i32 = load %j_1
+        %x_141:i32 = let %218
+        %220:i32 = add %x_141, 1i
+        store %j_1, %220
+        next_iteration  # -> $B40
       }
     }
-    %153:void = call %mergeSort_
-    %x_145:f32 = load_vector_element %gl_FragCoord, 1u
-    %155:i32 = convert %x_145
-    %156:bool = lt %155, 30i
-    if %156 [t: %b44, f: %b45] {  # if_8
-      %b44 = block {  # true
-        %157:ptr<private, i32, read_write> = access %data, 0i
-        %x_152:i32 = load %157
-        %159:f32 = convert %x_152
-        %160:f32 = div %159, 10.0f
-        %161:f32 = add 0.5f, %160
-        store %grey, %161
+    %221:void = call %mergeSort_
+    %222:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_145:f32 = let %222
+    %224:i32 = call %tint_f32_to_i32, %x_145
+    %225:bool = lt %224, 30i
+    if %225 [t: $B44, f: $B45] {  # if_8
+      $B44: {  # true
+        %226:ptr<private, i32, read_write> = access %data, 0i
+        %227:i32 = load %226
+        %x_152:i32 = let %227
+        %229:f32 = convert %x_152
+        %230:f32 = div %229, 10.0f
+        %231:f32 = add 0.5f, %230
+        store %grey, %231
         exit_if  # if_8
       }
-      %b45 = block {  # false
-        %x_157:f32 = load_vector_element %gl_FragCoord, 1u
-        %163:i32 = convert %x_157
-        %164:bool = lt %163, 60i
-        if %164 [t: %b46, f: %b47] {  # if_9
-          %b46 = block {  # true
-            %165:ptr<private, i32, read_write> = access %data, 1i
-            %x_164:i32 = load %165
-            %167:f32 = convert %x_164
-            %168:f32 = div %167, 10.0f
-            %169:f32 = add 0.5f, %168
-            store %grey, %169
+      $B45: {  # false
+        %232:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_157:f32 = let %232
+        %234:i32 = call %tint_f32_to_i32, %x_157
+        %235:bool = lt %234, 60i
+        if %235 [t: $B46, f: $B47] {  # if_9
+          $B46: {  # true
+            %236:ptr<private, i32, read_write> = access %data, 1i
+            %237:i32 = load %236
+            %x_164:i32 = let %237
+            %239:f32 = convert %x_164
+            %240:f32 = div %239, 10.0f
+            %241:f32 = add 0.5f, %240
+            store %grey, %241
             exit_if  # if_9
           }
-          %b47 = block {  # false
-            %x_169:f32 = load_vector_element %gl_FragCoord, 1u
-            %171:i32 = convert %x_169
-            %172:bool = lt %171, 90i
-            if %172 [t: %b48, f: %b49] {  # if_10
-              %b48 = block {  # true
-                %173:ptr<private, i32, read_write> = access %data, 2i
-                %x_176:i32 = load %173
-                %175:f32 = convert %x_176
-                %176:f32 = div %175, 10.0f
-                %177:f32 = add 0.5f, %176
-                store %grey, %177
+          $B47: {  # false
+            %242:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_169:f32 = let %242
+            %244:i32 = call %tint_f32_to_i32, %x_169
+            %245:bool = lt %244, 90i
+            if %245 [t: $B48, f: $B49] {  # if_10
+              $B48: {  # true
+                %246:ptr<private, i32, read_write> = access %data, 2i
+                %247:i32 = load %246
+                %x_176:i32 = let %247
+                %249:f32 = convert %x_176
+                %250:f32 = div %249, 10.0f
+                %251:f32 = add 0.5f, %250
+                store %grey, %251
                 exit_if  # if_10
               }
-              %b49 = block {  # false
-                %x_181:f32 = load_vector_element %gl_FragCoord, 1u
-                %179:i32 = convert %x_181
-                %180:bool = lt %179, 120i
-                if %180 [t: %b50, f: %b51] {  # if_11
-                  %b50 = block {  # true
-                    %181:ptr<private, i32, read_write> = access %data, 3i
-                    %x_188:i32 = load %181
-                    %183:f32 = convert %x_188
-                    %184:f32 = div %183, 10.0f
-                    %185:f32 = add 0.5f, %184
-                    store %grey, %185
+              $B49: {  # false
+                %252:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_181:f32 = let %252
+                %254:i32 = call %tint_f32_to_i32, %x_181
+                %255:bool = lt %254, 120i
+                if %255 [t: $B50, f: $B51] {  # if_11
+                  $B50: {  # true
+                    %256:ptr<private, i32, read_write> = access %data, 3i
+                    %257:i32 = load %256
+                    %x_188:i32 = let %257
+                    %259:f32 = convert %x_188
+                    %260:f32 = div %259, 10.0f
+                    %261:f32 = add 0.5f, %260
+                    store %grey, %261
                     exit_if  # if_11
                   }
-                  %b51 = block {  # false
-                    %x_193:f32 = load_vector_element %gl_FragCoord, 1u
-                    %187:i32 = convert %x_193
-                    %188:bool = lt %187, 150i
-                    if %188 [t: %b52, f: %b53] {  # if_12
-                      %b52 = block {  # true
-                        discard
+                  $B51: {  # false
+                    %262:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_193:f32 = let %262
+                    %264:i32 = call %tint_f32_to_i32, %x_193
+                    %265:bool = lt %264, 150i
+                    if %265 [t: $B52, f: $B53] {  # if_12
+                      $B52: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b53 = block {  # false
-                        %x_200:f32 = load_vector_element %gl_FragCoord, 1u
-                        %190:i32 = convert %x_200
-                        %191:bool = lt %190, 180i
-                        if %191 [t: %b54, f: %b55] {  # if_13
-                          %b54 = block {  # true
-                            %192:ptr<private, i32, read_write> = access %data, 5i
-                            %x_207:i32 = load %192
-                            %194:f32 = convert %x_207
-                            %195:f32 = div %194, 10.0f
-                            %196:f32 = add 0.5f, %195
-                            store %grey, %196
+                      $B53: {  # false
+                        %266:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_200:f32 = let %266
+                        %268:i32 = call %tint_f32_to_i32, %x_200
+                        %269:bool = lt %268, 180i
+                        if %269 [t: $B54, f: $B55] {  # if_13
+                          $B54: {  # true
+                            %270:ptr<private, i32, read_write> = access %data, 5i
+                            %271:i32 = load %270
+                            %x_207:i32 = let %271
+                            %273:f32 = convert %x_207
+                            %274:f32 = div %273, 10.0f
+                            %275:f32 = add 0.5f, %274
+                            store %grey, %275
                             exit_if  # if_13
                           }
-                          %b55 = block {  # false
-                            %x_212:f32 = load_vector_element %gl_FragCoord, 1u
-                            %198:i32 = convert %x_212
-                            %199:bool = lt %198, 210i
-                            if %199 [t: %b56, f: %b57] {  # if_14
-                              %b56 = block {  # true
-                                %200:ptr<private, i32, read_write> = access %data, 6i
-                                %x_219:i32 = load %200
-                                %202:f32 = convert %x_219
-                                %203:f32 = div %202, 10.0f
-                                %204:f32 = add 0.5f, %203
-                                store %grey, %204
+                          $B55: {  # false
+                            %276:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_212:f32 = let %276
+                            %278:i32 = call %tint_f32_to_i32, %x_212
+                            %279:bool = lt %278, 210i
+                            if %279 [t: $B56, f: $B57] {  # if_14
+                              $B56: {  # true
+                                %280:ptr<private, i32, read_write> = access %data, 6i
+                                %281:i32 = load %280
+                                %x_219:i32 = let %281
+                                %283:f32 = convert %x_219
+                                %284:f32 = div %283, 10.0f
+                                %285:f32 = add 0.5f, %284
+                                store %grey, %285
                                 exit_if  # if_14
                               }
-                              %b57 = block {  # false
-                                %x_224:f32 = load_vector_element %gl_FragCoord, 1u
-                                %206:i32 = convert %x_224
-                                %207:bool = lt %206, 240i
-                                if %207 [t: %b58, f: %b59] {  # if_15
-                                  %b58 = block {  # true
-                                    %208:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_231:i32 = load %208
-                                    %210:f32 = convert %x_231
-                                    %211:f32 = div %210, 10.0f
-                                    %212:f32 = add 0.5f, %211
-                                    store %grey, %212
+                              $B57: {  # false
+                                %286:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_224:f32 = let %286
+                                %288:i32 = call %tint_f32_to_i32, %x_224
+                                %289:bool = lt %288, 240i
+                                if %289 [t: $B58, f: $B59] {  # if_15
+                                  $B58: {  # true
+                                    %290:ptr<private, i32, read_write> = access %data, 7i
+                                    %291:i32 = load %290
+                                    %x_231:i32 = let %291
+                                    %293:f32 = convert %x_231
+                                    %294:f32 = div %293, 10.0f
+                                    %295:f32 = add 0.5f, %294
+                                    store %grey, %295
                                     exit_if  # if_15
                                   }
-                                  %b59 = block {  # false
-                                    %x_236:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %214:i32 = convert %x_236
-                                    %215:bool = lt %214, 270i
-                                    if %215 [t: %b60, f: %b61] {  # if_16
-                                      %b60 = block {  # true
-                                        %216:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_243:i32 = load %216
-                                        %218:f32 = convert %x_243
-                                        %219:f32 = div %218, 10.0f
-                                        %220:f32 = add 0.5f, %219
-                                        store %grey, %220
+                                  $B59: {  # false
+                                    %296:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_236:f32 = let %296
+                                    %298:i32 = call %tint_f32_to_i32, %x_236
+                                    %299:bool = lt %298, 270i
+                                    if %299 [t: $B60, f: $B61] {  # if_16
+                                      $B60: {  # true
+                                        %300:ptr<private, i32, read_write> = access %data, 8i
+                                        %301:i32 = load %300
+                                        %x_243:i32 = let %301
+                                        %303:f32 = convert %x_243
+                                        %304:f32 = div %303, 10.0f
+                                        %305:f32 = add 0.5f, %304
+                                        store %grey, %305
                                         exit_if  # if_16
                                       }
-                                      %b61 = block {  # false
-                                        discard
+                                      $B61: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -512,23 +596,42 @@
         exit_if  # if_8
       }
     }
-    %x_247:f32 = load %grey
-    %x_248:vec3<f32> = construct %x_247, %x_247, %x_247
-    %223:f32 = access %x_248, 0u
-    %224:f32 = access %x_248, 1u
-    %225:f32 = access %x_248, 2u
-    %226:vec4<f32> = construct %223, %224, %225, 1.0f
-    store %x_GLF_color, %226
+    %306:f32 = load %grey
+    %x_247:f32 = let %306
+    %308:vec3<f32> = construct %x_247, %x_247, %x_247
+    %x_248:vec3<f32> = let %308
+    %310:f32 = access %x_248, 0u
+    %311:f32 = access %x_248, 1u
+    %312:f32 = access %x_248, 2u
+    %313:vec4<f32> = construct %310, %311, %312, 1.0f
+    store %x_GLF_color, %313
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b62 {
-  %b62 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B62: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %229:void = call %main_1
-    %230:vec4<f32> = load %x_GLF_color
-    %231:main_out = construct %230
-    ret %231
+    %316:void = call %main_1
+    %317:vec4<f32> = load %x_GLF_color
+    %318:main_out = construct %317
+    %319:bool = load %continue_execution
+    %320:bool = eq %319, false
+    if %320 [t: $B63] {  # if_17
+      $B63: {  # true
+        terminate_invocation
+      }
+    }
+    ret %318
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B64: {
+    %322:i32 = convert %value
+    %323:bool = gte %value, -2147483648.0f
+    %324:i32 = select -2147483648i, %322, %323
+    %325:bool = lte %value, 2147483520.0f
+    %326:i32 = select 2147483647i, %324, %325
+    ret %326
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.msl
index 57d67b4..6afcf56 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,159 +12,167 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %15:i32 = load %f
-    store %k, %15
     %16:i32 = load %f
-    store %i, %16
-    %17:i32 = load %mid
-    %18:i32 = add %17, 1i
-    store %j, %18
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %19:i32 = load %i
-        %20:i32 = load %mid
-        %21:bool = lte %19, %20
-        %22:i32 = load %j
-        %23:i32 = load %to
-        %24:bool = lte %22, %23
-        %25:bool = and %21, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %16
+    %17:i32 = load %f
+    store %i, %17
+    %18:i32 = load %mid
+    %19:i32 = add %18, 1i
+    store %j, %19
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:i32 = load %i
+        %21:i32 = load %mid
+        %22:bool = lte %20, %21
+        %23:i32 = load %j
+        %24:i32 = load %to
+        %25:bool = lte %23, %24
+        %26:bool = and %22, %25
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:i32 = load %i
-        %27:ptr<private, i32, read_write> = access %data, %26
-        %28:i32 = load %27
-        %29:i32 = load %j
-        %30:ptr<private, i32, read_write> = access %data, %29
-        %31:i32 = load %30
-        %32:bool = lt %28, %31
-        if %32 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_281:i32 = load %k
+        %27:i32 = load %i
+        %28:ptr<private, i32, read_write> = access %data, %27
+        %29:i32 = load %28
+        %30:i32 = load %j
+        %31:ptr<private, i32, read_write> = access %data, %30
+        %32:i32 = load %31
+        %33:bool = lt %29, %32
+        if %33 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %34:i32 = load %k
-            %35:i32 = add %34, 1i
-            store %k, %35
-            %x_283:i32 = load %i
-            %37:i32 = load %i
-            %38:i32 = add %37, 1i
-            store %i, %38
-            %39:ptr<private, i32, read_write> = access %temp, %x_281
-            %40:ptr<private, i32, read_write> = access %data, %x_283
-            %41:i32 = load %40
-            store %39, %41
+            %x_281:i32 = let %34
+            %36:i32 = load %k
+            %37:i32 = add %36, 1i
+            store %k, %37
+            %38:i32 = load %i
+            %x_283:i32 = let %38
+            %40:i32 = load %i
+            %41:i32 = add %40, 1i
+            store %i, %41
+            %42:ptr<private, i32, read_write> = access %temp, %x_281
+            %43:ptr<private, i32, read_write> = access %data, %x_283
+            %44:i32 = load %43
+            store %42, %44
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_288:i32 = load %k
-            %43:i32 = load %k
-            %44:i32 = add %43, 1i
-            store %k, %44
-            %x_290:i32 = load %j
-            %46:i32 = load %j
-            %47:i32 = add %46, 1i
-            store %j, %47
-            %48:ptr<private, i32, read_write> = access %temp, %x_288
-            %49:ptr<private, i32, read_write> = access %data, %x_290
-            %50:i32 = load %49
-            store %48, %50
+          $B8: {  # false
+            %45:i32 = load %k
+            %x_288:i32 = let %45
+            %47:i32 = load %k
+            %48:i32 = add %47, 1i
+            store %k, %48
+            %49:i32 = load %j
+            %x_290:i32 = let %49
+            %51:i32 = load %j
+            %52:i32 = add %51, 1i
+            store %j, %52
+            %53:ptr<private, i32, read_write> = access %temp, %x_288
+            %54:ptr<private, i32, read_write> = access %data, %x_290
+            %55:i32 = load %54
+            store %53, %55
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %51:i32 = load %i
-        %52:bool = lt %51, 10i
-        %53:i32 = load %i
-        %54:i32 = load %mid
-        %55:bool = lte %53, %54
-        %56:bool = and %52, %55
-        if %56 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %56:i32 = load %i
+        %57:bool = lt %56, 10i
+        %58:i32 = load %i
+        %59:i32 = load %mid
+        %60:bool = lte %58, %59
+        %61:bool = and %57, %60
+        if %61 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_306:i32 = load %k
-        %58:i32 = load %k
-        %59:i32 = add %58, 1i
-        store %k, %59
-        %x_308:i32 = load %i
-        %61:i32 = load %i
-        %62:i32 = add %61, 1i
-        store %i, %62
-        %63:ptr<private, i32, read_write> = access %temp, %x_306
-        %64:ptr<private, i32, read_write> = access %data, %x_308
-        %65:i32 = load %64
-        store %63, %65
-        continue %b10
+        %62:i32 = load %k
+        %x_306:i32 = let %62
+        %64:i32 = load %k
+        %65:i32 = add %64, 1i
+        store %k, %65
+        %66:i32 = load %i
+        %x_308:i32 = let %66
+        %68:i32 = load %i
+        %69:i32 = add %68, 1i
+        store %i, %69
+        %70:ptr<private, i32, read_write> = access %temp, %x_306
+        %71:ptr<private, i32, read_write> = access %data, %x_308
+        %72:i32 = load %71
+        store %70, %72
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %66:i32 = load %f
-    store %i_1, %66
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %67:i32 = load %i_1
-        %68:i32 = load %to
-        %69:bool = lte %67, %68
-        if %69 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %73:i32 = load %f
+    store %i_1, %73
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %74:i32 = load %i_1
+        %75:i32 = load %to
+        %76:bool = lte %74, %75
+        if %76 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_322:i32 = load %i_1
-        %71:ptr<private, i32, read_write> = access %data, %x_322
-        %72:i32 = load %i_1
-        %73:ptr<private, i32, read_write> = access %temp, %72
-        %74:i32 = load %73
-        store %71, %74
-        continue %b14
+        %77:i32 = load %i_1
+        %x_322:i32 = let %77
+        %79:ptr<private, i32, read_write> = access %data, %x_322
+        %80:i32 = load %i_1
+        %81:ptr<private, i32, read_write> = access %temp, %80
+        %82:i32 = load %81
+        store %79, %82
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %75:i32 = load %i_1
-        %76:i32 = add %75, 1i
-        store %i_1, %76
-        next_iteration %b13
+      $B14: {  # continuing
+        %83:i32 = load %i_1
+        %84:i32 = add %83, 1i
+        store %i_1, %84
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -178,327 +186,340 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %88:i32 = load %m
-        %89:i32 = load %high
-        %90:bool = lte %88, %89
-        if %90 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %96:i32 = load %m
+        %97:i32 = load %high
+        %98:bool = lte %96, %97
+        if %98 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %91:i32 = load %low
-        store %i_2, %91
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %92:i32 = load %i_2
-            %93:i32 = load %high
-            %94:bool = lt %92, %93
-            if %94 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        %99:i32 = load %low
+        store %i_2, %99
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %100:i32 = load %i_2
+            %101:i32 = load %high
+            %102:bool = lt %100, %101
+            if %102 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %95:i32 = load %i_2
-            store %f_1, %95
-            %96:i32 = load %i_2
-            %97:i32 = load %m
-            %98:i32 = add %96, %97
-            %99:i32 = sub %98, 1i
-            store %mid_1, %99
-            %100:i32 = load %i_2
-            %101:i32 = load %m
-            %102:i32 = mul 2i, %101
-            %103:i32 = add %100, %102
-            %104:i32 = sub %103, 1i
-            %105:i32 = load %high
-            %106:i32 = min %104, %105
-            store %to_1, %106
-            %107:i32 = load %f_1
-            store %param, %107
-            %108:i32 = load %mid_1
-            store %param_1, %108
-            %109:i32 = load %to_1
-            store %param_2, %109
-            %110:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %103:i32 = load %i_2
+            store %f_1, %103
+            %104:i32 = load %i_2
+            %105:i32 = load %m
+            %106:i32 = add %104, %105
+            %107:i32 = sub %106, 1i
+            store %mid_1, %107
+            %108:i32 = load %i_2
+            %109:i32 = load %m
+            %110:i32 = mul 2i, %109
+            %111:i32 = add %108, %110
+            %112:i32 = sub %111, 1i
+            %113:i32 = load %high
+            %114:i32 = min %112, %113
+            store %to_1, %114
+            %115:i32 = load %f_1
+            store %param, %115
+            %116:i32 = load %mid_1
+            store %param_1, %116
+            %117:i32 = load %to_1
+            store %param_2, %117
+            %118:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %111:i32 = load %i_2
-            %112:i32 = load %m
-            %113:i32 = mul 2i, %112
-            %114:i32 = add %111, %113
-            store %i_2, %114
-            next_iteration %b22
+          $B23: {  # continuing
+            %119:i32 = load %i_2
+            %120:i32 = load %m
+            %121:i32 = mul 2i, %120
+            %122:i32 = add %119, %121
+            store %i_2, %122
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %115:i32 = load %m
-        %116:i32 = mul 2i, %115
-        store %m, %116
-        next_iteration %b18
+      $B19: {  # continuing
+        %123:i32 = load %m
+        %124:i32 = mul 2i, %123
+        store %m, %124
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %121:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %122:f32 = load_vector_element %121, 0u
-    %123:i32 = convert %122
-    store %i_3, %123
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_94:i32 = load %i_3
-        switch %x_94 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_124:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_124
-            store %126, -5i
-            if true [t: %b40, f: %b41] {  # if_7
-              %b40 = block {  # true
+    %129:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %130:f32 = load_vector_element %129, 0u
+    %131:i32 = call %tint_f32_to_i32, %130
+    store %i_3, %131
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %133:i32 = load %i_3
+        %x_94:i32 = let %133
+        switch %x_94 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %135:i32 = load %i_3
+            %x_124:i32 = let %135
+            %137:ptr<private, i32, read_write> = access %data, %x_124
+            store %137, -5i
+            if true [t: $B40, f: $B41] {  # if_7
+              $B40: {  # true
                 exit_if  # if_7
               }
-              %b41 = block {  # false
-                continue %b28
+              $B41: {  # false
+                continue  # -> $B28
               }
             }
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_122:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_122
-            store %128, -4i
+          $B30: {  # case
+            %138:i32 = load %i_3
+            %x_122:i32 = let %138
+            %140:ptr<private, i32, read_write> = access %data, %x_122
+            store %140, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_120:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_120
-            store %130, -3i
+          $B31: {  # case
+            %141:i32 = load %i_3
+            %x_120:i32 = let %141
+            %143:ptr<private, i32, read_write> = access %data, %x_120
+            store %143, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_118:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_118
-            store %132, -2i
+          $B32: {  # case
+            %144:i32 = load %i_3
+            %x_118:i32 = let %144
+            %146:ptr<private, i32, read_write> = access %data, %x_118
+            store %146, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_116:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_116
-            store %134, -1i
+          $B33: {  # case
+            %147:i32 = load %i_3
+            %x_116:i32 = let %147
+            %149:ptr<private, i32, read_write> = access %data, %x_116
+            store %149, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_114:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_114
-            store %136, 0i
+          $B34: {  # case
+            %150:i32 = load %i_3
+            %x_114:i32 = let %150
+            %152:ptr<private, i32, read_write> = access %data, %x_114
+            store %152, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_112:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_112
-            store %138, 1i
+          $B35: {  # case
+            %153:i32 = load %i_3
+            %x_112:i32 = let %153
+            %155:ptr<private, i32, read_write> = access %data, %x_112
+            store %155, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_110:i32 = load %i_3
-            %140:ptr<private, i32, read_write> = access %data, %x_110
-            store %140, 2i
+          $B36: {  # case
+            %156:i32 = load %i_3
+            %x_110:i32 = let %156
+            %158:ptr<private, i32, read_write> = access %data, %x_110
+            store %158, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_108:i32 = load %i_3
-            %142:ptr<private, i32, read_write> = access %data, %x_108
-            store %142, 3i
+          $B37: {  # case
+            %159:i32 = load %i_3
+            %x_108:i32 = let %159
+            %161:ptr<private, i32, read_write> = access %data, %x_108
+            store %161, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_106:i32 = load %i_3
-            %144:ptr<private, i32, read_write> = access %data, %x_106
-            store %144, 4i
+          $B38: {  # case
+            %162:i32 = load %i_3
+            %x_106:i32 = let %162
+            %164:ptr<private, i32, read_write> = access %data, %x_106
+            store %164, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %145:i32 = load %i_3
-        %146:i32 = add %145, 1i
-        store %i_3, %146
-        continue %b28
+        %165:i32 = load %i_3
+        %166:i32 = add %165, 1i
+        store %i_3, %166
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_128:i32 = load %i_3
-        %148:bool = lt %x_128, 10i
-        %149:bool = eq %148, false
-        break_if %149 %b27
+      $B28: {  # continuing
+        %167:i32 = load %i_3
+        %x_128:i32 = let %167
+        %169:bool = lt %x_128, 10i
+        %170:bool = eq %169, false
+        break_if %170  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b42, c: %b43] {  # loop_7
-      %b42 = block {  # body
-        %150:i32 = load %j_1
-        %151:bool = lt %150, 10i
-        if %151 [t: %b44, f: %b45] {  # if_8
-          %b44 = block {  # true
+    loop [b: $B42, c: $B43] {  # loop_7
+      $B42: {  # body
+        %171:i32 = load %j_1
+        %172:bool = lt %171, 10i
+        if %172 [t: $B44, f: $B45] {  # if_8
+          $B44: {  # true
             exit_if  # if_8
           }
-          %b45 = block {  # false
+          $B45: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_137:i32 = load %j_1
-        %153:ptr<private, i32, read_write> = access %temp, %x_137
-        %154:i32 = load %j_1
-        %155:ptr<private, i32, read_write> = access %data, %154
-        %156:i32 = load %155
-        store %153, %156
-        continue %b43
+        %173:i32 = load %j_1
+        %x_137:i32 = let %173
+        %175:ptr<private, i32, read_write> = access %temp, %x_137
+        %176:i32 = load %j_1
+        %177:ptr<private, i32, read_write> = access %data, %176
+        %178:i32 = load %177
+        store %175, %178
+        continue  # -> $B43
       }
-      %b43 = block {  # continuing
-        %157:i32 = load %j_1
-        %158:i32 = add %157, 1i
-        store %j_1, %158
-        next_iteration %b42
+      $B43: {  # continuing
+        %179:i32 = load %j_1
+        %180:i32 = add %179, 1i
+        store %j_1, %180
+        next_iteration  # -> $B42
       }
     }
-    %159:void = call %mergeSort_
-    %160:f32 = load_vector_element %gl_FragCoord, 1u
-    %161:i32 = convert %160
-    %162:bool = lt %161, 30i
-    if %162 [t: %b46, f: %b47] {  # if_9
-      %b46 = block {  # true
-        %163:ptr<private, i32, read_write> = access %data, 0i
-        %164:i32 = load %163
-        %165:f32 = convert %164
-        %166:f32 = div %165, 10.0f
-        %167:f32 = add 0.5f, %166
-        store %grey, %167
+    %181:void = call %mergeSort_
+    %182:f32 = load_vector_element %gl_FragCoord, 1u
+    %183:i32 = call %tint_f32_to_i32, %182
+    %184:bool = lt %183, 30i
+    if %184 [t: $B46, f: $B47] {  # if_9
+      $B46: {  # true
+        %185:ptr<private, i32, read_write> = access %data, 0i
+        %186:i32 = load %185
+        %187:f32 = convert %186
+        %188:f32 = div %187, 10.0f
+        %189:f32 = add 0.5f, %188
+        store %grey, %189
         exit_if  # if_9
       }
-      %b47 = block {  # false
-        %168:f32 = load_vector_element %gl_FragCoord, 1u
-        %169:i32 = convert %168
-        %170:bool = lt %169, 60i
-        if %170 [t: %b48, f: %b49] {  # if_10
-          %b48 = block {  # true
-            %171:ptr<private, i32, read_write> = access %data, 1i
-            %172:i32 = load %171
-            %173:f32 = convert %172
-            %174:f32 = div %173, 10.0f
-            %175:f32 = add 0.5f, %174
-            store %grey, %175
+      $B47: {  # false
+        %190:f32 = load_vector_element %gl_FragCoord, 1u
+        %191:i32 = call %tint_f32_to_i32, %190
+        %192:bool = lt %191, 60i
+        if %192 [t: $B48, f: $B49] {  # if_10
+          $B48: {  # true
+            %193:ptr<private, i32, read_write> = access %data, 1i
+            %194:i32 = load %193
+            %195:f32 = convert %194
+            %196:f32 = div %195, 10.0f
+            %197:f32 = add 0.5f, %196
+            store %grey, %197
             exit_if  # if_10
           }
-          %b49 = block {  # false
-            %176:f32 = load_vector_element %gl_FragCoord, 1u
-            %177:i32 = convert %176
-            %178:bool = lt %177, 90i
-            if %178 [t: %b50, f: %b51] {  # if_11
-              %b50 = block {  # true
-                %179:ptr<private, i32, read_write> = access %data, 2i
-                %180:i32 = load %179
-                %181:f32 = convert %180
-                %182:f32 = div %181, 10.0f
-                %183:f32 = add 0.5f, %182
-                store %grey, %183
+          $B49: {  # false
+            %198:f32 = load_vector_element %gl_FragCoord, 1u
+            %199:i32 = call %tint_f32_to_i32, %198
+            %200:bool = lt %199, 90i
+            if %200 [t: $B50, f: $B51] {  # if_11
+              $B50: {  # true
+                %201:ptr<private, i32, read_write> = access %data, 2i
+                %202:i32 = load %201
+                %203:f32 = convert %202
+                %204:f32 = div %203, 10.0f
+                %205:f32 = add 0.5f, %204
+                store %grey, %205
                 exit_if  # if_11
               }
-              %b51 = block {  # false
-                %184:f32 = load_vector_element %gl_FragCoord, 1u
-                %185:i32 = convert %184
-                %186:bool = lt %185, 120i
-                if %186 [t: %b52, f: %b53] {  # if_12
-                  %b52 = block {  # true
-                    %187:ptr<private, i32, read_write> = access %data, 3i
-                    %188:i32 = load %187
-                    %189:f32 = convert %188
-                    %190:f32 = div %189, 10.0f
-                    %191:f32 = add 0.5f, %190
-                    store %grey, %191
+              $B51: {  # false
+                %206:f32 = load_vector_element %gl_FragCoord, 1u
+                %207:i32 = call %tint_f32_to_i32, %206
+                %208:bool = lt %207, 120i
+                if %208 [t: $B52, f: $B53] {  # if_12
+                  $B52: {  # true
+                    %209:ptr<private, i32, read_write> = access %data, 3i
+                    %210:i32 = load %209
+                    %211:f32 = convert %210
+                    %212:f32 = div %211, 10.0f
+                    %213:f32 = add 0.5f, %212
+                    store %grey, %213
                     exit_if  # if_12
                   }
-                  %b53 = block {  # false
-                    %192:f32 = load_vector_element %gl_FragCoord, 1u
-                    %193:i32 = convert %192
-                    %194:bool = lt %193, 150i
-                    if %194 [t: %b54, f: %b55] {  # if_13
-                      %b54 = block {  # true
-                        discard
+                  $B53: {  # false
+                    %214:f32 = load_vector_element %gl_FragCoord, 1u
+                    %215:i32 = call %tint_f32_to_i32, %214
+                    %216:bool = lt %215, 150i
+                    if %216 [t: $B54, f: $B55] {  # if_13
+                      $B54: {  # true
+                        store %continue_execution, false
                         exit_if  # if_13
                       }
-                      %b55 = block {  # false
-                        %195:f32 = load_vector_element %gl_FragCoord, 1u
-                        %196:i32 = convert %195
-                        %197:bool = lt %196, 180i
-                        if %197 [t: %b56, f: %b57] {  # if_14
-                          %b56 = block {  # true
-                            %198:ptr<private, i32, read_write> = access %data, 5i
-                            %199:i32 = load %198
-                            %200:f32 = convert %199
-                            %201:f32 = div %200, 10.0f
-                            %202:f32 = add 0.5f, %201
-                            store %grey, %202
+                      $B55: {  # false
+                        %217:f32 = load_vector_element %gl_FragCoord, 1u
+                        %218:i32 = call %tint_f32_to_i32, %217
+                        %219:bool = lt %218, 180i
+                        if %219 [t: $B56, f: $B57] {  # if_14
+                          $B56: {  # true
+                            %220:ptr<private, i32, read_write> = access %data, 5i
+                            %221:i32 = load %220
+                            %222:f32 = convert %221
+                            %223:f32 = div %222, 10.0f
+                            %224:f32 = add 0.5f, %223
+                            store %grey, %224
                             exit_if  # if_14
                           }
-                          %b57 = block {  # false
-                            %203:f32 = load_vector_element %gl_FragCoord, 1u
-                            %204:i32 = convert %203
-                            %205:bool = lt %204, 210i
-                            if %205 [t: %b58, f: %b59] {  # if_15
-                              %b58 = block {  # true
-                                %206:ptr<private, i32, read_write> = access %data, 6i
-                                %207:i32 = load %206
-                                %208:f32 = convert %207
-                                %209:f32 = div %208, 10.0f
-                                %210:f32 = add 0.5f, %209
-                                store %grey, %210
+                          $B57: {  # false
+                            %225:f32 = load_vector_element %gl_FragCoord, 1u
+                            %226:i32 = call %tint_f32_to_i32, %225
+                            %227:bool = lt %226, 210i
+                            if %227 [t: $B58, f: $B59] {  # if_15
+                              $B58: {  # true
+                                %228:ptr<private, i32, read_write> = access %data, 6i
+                                %229:i32 = load %228
+                                %230:f32 = convert %229
+                                %231:f32 = div %230, 10.0f
+                                %232:f32 = add 0.5f, %231
+                                store %grey, %232
                                 exit_if  # if_15
                               }
-                              %b59 = block {  # false
-                                %211:f32 = load_vector_element %gl_FragCoord, 1u
-                                %212:i32 = convert %211
-                                %213:bool = lt %212, 240i
-                                if %213 [t: %b60, f: %b61] {  # if_16
-                                  %b60 = block {  # true
-                                    %214:ptr<private, i32, read_write> = access %data, 7i
-                                    %215:i32 = load %214
-                                    %216:f32 = convert %215
-                                    %217:f32 = div %216, 10.0f
-                                    %218:f32 = add 0.5f, %217
-                                    store %grey, %218
+                              $B59: {  # false
+                                %233:f32 = load_vector_element %gl_FragCoord, 1u
+                                %234:i32 = call %tint_f32_to_i32, %233
+                                %235:bool = lt %234, 240i
+                                if %235 [t: $B60, f: $B61] {  # if_16
+                                  $B60: {  # true
+                                    %236:ptr<private, i32, read_write> = access %data, 7i
+                                    %237:i32 = load %236
+                                    %238:f32 = convert %237
+                                    %239:f32 = div %238, 10.0f
+                                    %240:f32 = add 0.5f, %239
+                                    store %grey, %240
                                     exit_if  # if_16
                                   }
-                                  %b61 = block {  # false
-                                    %219:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %220:i32 = convert %219
-                                    %221:bool = lt %220, 270i
-                                    if %221 [t: %b62, f: %b63] {  # if_17
-                                      %b62 = block {  # true
-                                        %222:ptr<private, i32, read_write> = access %data, 8i
-                                        %223:i32 = load %222
-                                        %224:f32 = convert %223
-                                        %225:f32 = div %224, 10.0f
-                                        %226:f32 = add 0.5f, %225
-                                        store %grey, %226
+                                  $B61: {  # false
+                                    %241:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %242:i32 = call %tint_f32_to_i32, %241
+                                    %243:bool = lt %242, 270i
+                                    if %243 [t: $B62, f: $B63] {  # if_17
+                                      $B62: {  # true
+                                        %244:ptr<private, i32, read_write> = access %data, 8i
+                                        %245:i32 = load %244
+                                        %246:f32 = convert %245
+                                        %247:f32 = div %246, 10.0f
+                                        %248:f32 = add 0.5f, %247
+                                        store %grey, %248
                                         exit_if  # if_17
                                       }
-                                      %b63 = block {  # false
-                                        discard
+                                      $B63: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_17
                                       }
                                     }
@@ -526,23 +547,41 @@
         exit_if  # if_9
       }
     }
-    %227:f32 = load %grey
-    %x_249:vec3<f32> = construct %227
-    %229:f32 = access %x_249, 0u
-    %230:f32 = access %x_249, 1u
-    %231:f32 = access %x_249, 2u
-    %232:vec4<f32> = construct %229, %230, %231, 1.0f
-    store %x_GLF_color, %232
+    %249:f32 = load %grey
+    %250:vec3<f32> = construct %249
+    %x_249:vec3<f32> = let %250
+    %252:f32 = access %x_249, 0u
+    %253:f32 = access %x_249, 1u
+    %254:f32 = access %x_249, 2u
+    %255:vec4<f32> = construct %252, %253, %254, 1.0f
+    store %x_GLF_color, %255
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b64 {
-  %b64 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B64: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %235:void = call %main_1
-    %236:vec4<f32> = load %x_GLF_color
-    %237:main_out = construct %236
-    ret %237
+    %258:void = call %main_1
+    %259:vec4<f32> = load %x_GLF_color
+    %260:main_out = construct %259
+    %261:bool = load %continue_execution
+    %262:bool = eq %261, false
+    if %262 [t: $B65] {  # if_18
+      $B65: {  # true
+        terminate_invocation
+      }
+    }
+    ret %260
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B66: {
+    %264:i32 = convert %value
+    %265:bool = gte %value, -2147483648.0f
+    %266:i32 = select -2147483648i, %264, %265
+    %267:bool = lte %value, 2147483520.0f
+    %268:i32 = select 2147483647i, %266, %267
+    ret %268
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.msl
index 0413b19..46deb35 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,153 +12,184 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_255:i32 = load %f
+    %16:i32 = load %f
+    %x_255:i32 = let %16
     store %k, %x_255
-    %x_256:i32 = load %f
+    %18:i32 = load %f
+    %x_256:i32 = let %18
     store %i, %x_256
-    %x_257:i32 = load %mid
-    %18:i32 = add %x_257, 1i
-    store %j, %18
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_263:i32 = load %i
-        %x_264:i32 = load %mid
-        %x_266:i32 = load %j
-        %x_267:i32 = load %to
-        %23:bool = lte %x_263, %x_264
-        %24:bool = lte %x_266, %x_267
-        %25:bool = and %23, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %20:i32 = load %mid
+    %x_257:i32 = let %20
+    %22:i32 = add %x_257, 1i
+    store %j, %22
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %23:i32 = load %i
+        %x_263:i32 = let %23
+        %25:i32 = load %mid
+        %x_264:i32 = let %25
+        %27:i32 = load %j
+        %x_266:i32 = let %27
+        %29:i32 = load %to
+        %x_267:i32 = let %29
+        %31:bool = lte %x_263, %x_264
+        %32:bool = lte %x_266, %x_267
+        %33:bool = and %31, %32
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_271:i32 = load %i
-        %27:ptr<private, i32, read_write> = access %data, %x_271
-        %x_273:i32 = load %27
-        %x_274:i32 = load %j
-        %30:ptr<private, i32, read_write> = access %data, %x_274
-        %x_276:i32 = load %30
-        %32:bool = lt %x_273, %x_276
-        if %32 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_281:i32 = load %k
-            %34:i32 = add %x_281, 1i
-            store %k, %34
-            %x_283:i32 = load %i
-            %36:i32 = add %x_283, 1i
-            store %i, %36
-            %37:ptr<private, i32, read_write> = access %data, %x_283
-            %x_286:i32 = load %37
-            %39:ptr<private, i32, read_write> = access %temp, %x_281
-            store %39, %x_286
+        %34:i32 = load %i
+        %x_271:i32 = let %34
+        %36:ptr<private, i32, read_write> = access %data, %x_271
+        %37:i32 = load %36
+        %x_273:i32 = let %37
+        %39:i32 = load %j
+        %x_274:i32 = let %39
+        %41:ptr<private, i32, read_write> = access %data, %x_274
+        %42:i32 = load %41
+        %x_276:i32 = let %42
+        %44:bool = lt %x_273, %x_276
+        if %44 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %45:i32 = load %k
+            %x_281:i32 = let %45
+            %47:i32 = add %x_281, 1i
+            store %k, %47
+            %48:i32 = load %i
+            %x_283:i32 = let %48
+            %50:i32 = add %x_283, 1i
+            store %i, %50
+            %51:ptr<private, i32, read_write> = access %data, %x_283
+            %52:i32 = load %51
+            %x_286:i32 = let %52
+            %54:ptr<private, i32, read_write> = access %temp, %x_281
+            store %54, %x_286
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_288:i32 = load %k
-            %41:i32 = add %x_288, 1i
-            store %k, %41
-            %x_290:i32 = load %j
-            %43:i32 = add %x_290, 1i
-            store %j, %43
-            %44:ptr<private, i32, read_write> = access %data, %x_290
-            %x_293:i32 = load %44
-            %46:ptr<private, i32, read_write> = access %temp, %x_288
-            store %46, %x_293
+          $B8: {  # false
+            %55:i32 = load %k
+            %x_288:i32 = let %55
+            %57:i32 = add %x_288, 1i
+            store %k, %57
+            %58:i32 = load %j
+            %x_290:i32 = let %58
+            %60:i32 = add %x_290, 1i
+            store %j, %60
+            %61:ptr<private, i32, read_write> = access %data, %x_290
+            %62:i32 = load %61
+            %x_293:i32 = let %62
+            %64:ptr<private, i32, read_write> = access %temp, %x_288
+            store %64, %x_293
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_299:i32 = load %i
-        %x_301:i32 = load %i
-        %x_302:i32 = load %mid
-        %50:bool = lt %x_299, 10i
-        %51:bool = lte %x_301, %x_302
-        %52:bool = and %50, %51
-        if %52 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %65:i32 = load %i
+        %x_299:i32 = let %65
+        %67:i32 = load %i
+        %x_301:i32 = let %67
+        %69:i32 = load %mid
+        %x_302:i32 = let %69
+        %71:bool = lt %x_299, 10i
+        %72:bool = lte %x_301, %x_302
+        %73:bool = and %71, %72
+        if %73 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_306:i32 = load %k
-        %54:i32 = add %x_306, 1i
-        store %k, %54
-        %x_308:i32 = load %i
-        %56:i32 = add %x_308, 1i
-        store %i, %56
-        %57:ptr<private, i32, read_write> = access %data, %x_308
-        %x_311:i32 = load %57
-        %59:ptr<private, i32, read_write> = access %temp, %x_306
-        store %59, %x_311
-        continue %b10
+        %74:i32 = load %k
+        %x_306:i32 = let %74
+        %76:i32 = add %x_306, 1i
+        store %k, %76
+        %77:i32 = load %i
+        %x_308:i32 = let %77
+        %79:i32 = add %x_308, 1i
+        store %i, %79
+        %80:ptr<private, i32, read_write> = access %data, %x_308
+        %81:i32 = load %80
+        %x_311:i32 = let %81
+        %83:ptr<private, i32, read_write> = access %temp, %x_306
+        store %83, %x_311
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_313:i32 = load %f
+    %84:i32 = load %f
+    %x_313:i32 = let %84
     store %i_1, %x_313
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_318:i32 = load %i_1
-        %x_319:i32 = load %to
-        %63:bool = lte %x_318, %x_319
-        if %63 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %86:i32 = load %i_1
+        %x_318:i32 = let %86
+        %88:i32 = load %to
+        %x_319:i32 = let %88
+        %90:bool = lte %x_318, %x_319
+        if %90 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_322:i32 = load %i_1
-        %x_323:i32 = load %i_1
-        %66:ptr<private, i32, read_write> = access %temp, %x_323
-        %x_325:i32 = load %66
-        %68:ptr<private, i32, read_write> = access %data, %x_322
-        store %68, %x_325
-        continue %b14
+        %91:i32 = load %i_1
+        %x_322:i32 = let %91
+        %93:i32 = load %i_1
+        %x_323:i32 = let %93
+        %95:ptr<private, i32, read_write> = access %temp, %x_323
+        %96:i32 = load %95
+        %x_325:i32 = let %96
+        %98:ptr<private, i32, read_write> = access %data, %x_322
+        store %98, %x_325
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_327:i32 = load %i_1
-        %70:i32 = add %x_327, 1i
-        store %i_1, %70
-        next_iteration %b13
+      $B14: {  # continuing
+        %99:i32 = load %i_1
+        %x_327:i32 = let %99
+        %101:i32 = add %x_327, 1i
+        store %i_1, %101
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -172,327 +203,380 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_334:i32 = load %m
-        %x_335:i32 = load %high
-        %84:bool = lte %x_334, %x_335
-        if %84 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %113:i32 = load %m
+        %x_334:i32 = let %113
+        %115:i32 = load %high
+        %x_335:i32 = let %115
+        %117:bool = lte %x_334, %x_335
+        if %117 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_338:i32 = load %low
+        %118:i32 = load %low
+        %x_338:i32 = let %118
         store %i_2, %x_338
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %x_343:i32 = load %i_2
-            %x_344:i32 = load %high
-            %88:bool = lt %x_343, %x_344
-            if %88 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %120:i32 = load %i_2
+            %x_343:i32 = let %120
+            %122:i32 = load %high
+            %x_344:i32 = let %122
+            %124:bool = lt %x_343, %x_344
+            if %124 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_347:i32 = load %i_2
+            %125:i32 = load %i_2
+            %x_347:i32 = let %125
             store %f_1, %x_347
-            %x_348:i32 = load %i_2
-            %x_349:i32 = load %m
-            %92:i32 = add %x_348, %x_349
-            %93:i32 = sub %92, 1i
-            store %mid_1, %93
-            %x_352:i32 = load %i_2
-            %x_353:i32 = load %m
-            %x_357:i32 = load %high
-            %97:i32 = mul 2i, %x_353
-            %98:i32 = add %x_352, %97
-            %99:i32 = sub %98, 1i
-            %100:i32 = min %99, %x_357
-            store %to_1, %100
-            %x_359:i32 = load %f_1
+            %127:i32 = load %i_2
+            %x_348:i32 = let %127
+            %129:i32 = load %m
+            %x_349:i32 = let %129
+            %131:i32 = add %x_348, %x_349
+            %132:i32 = sub %131, 1i
+            store %mid_1, %132
+            %133:i32 = load %i_2
+            %x_352:i32 = let %133
+            %135:i32 = load %m
+            %x_353:i32 = let %135
+            %137:i32 = load %high
+            %x_357:i32 = let %137
+            %139:i32 = mul 2i, %x_353
+            %140:i32 = add %x_352, %139
+            %141:i32 = sub %140, 1i
+            %142:i32 = min %141, %x_357
+            store %to_1, %142
+            %143:i32 = load %f_1
+            %x_359:i32 = let %143
             store %param, %x_359
-            %x_360:i32 = load %mid_1
+            %145:i32 = load %mid_1
+            %x_360:i32 = let %145
             store %param_1, %x_360
-            %x_361:i32 = load %to_1
+            %147:i32 = load %to_1
+            %x_361:i32 = let %147
             store %param_2, %x_361
-            %104:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %149:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %x_363:i32 = load %m
-            %x_365:i32 = load %i_2
-            %107:i32 = mul 2i, %x_363
-            %108:i32 = add %x_365, %107
-            store %i_2, %108
-            next_iteration %b22
+          $B23: {  # continuing
+            %150:i32 = load %m
+            %x_363:i32 = let %150
+            %152:i32 = load %i_2
+            %x_365:i32 = let %152
+            %154:i32 = mul 2i, %x_363
+            %155:i32 = add %x_365, %154
+            store %i_2, %155
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_367:i32 = load %m
-        %110:i32 = mul 2i, %x_367
-        store %m, %110
-        next_iteration %b18
+      $B19: {  # continuing
+        %156:i32 = load %m
+        %x_367:i32 = let %156
+        %158:i32 = mul 2i, %x_367
+        store %m, %158
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %115:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_88:f32 = load_vector_element %115, 0u
-    %117:i32 = convert %x_88
-    store %i_3, %117
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_94:i32 = load %i_3
-        switch %x_94 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_124:i32 = load %i_3
-            %120:ptr<private, i32, read_write> = access %data, %x_124
-            store %120, -5i
-            if true [t: %b40, f: %b41] {  # if_7
-              %b40 = block {  # true
+    %163:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %164:f32 = load_vector_element %163, 0u
+    %x_88:f32 = let %164
+    %166:i32 = call %tint_f32_to_i32, %x_88
+    store %i_3, %166
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %168:i32 = load %i_3
+        %x_94:i32 = let %168
+        switch %x_94 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %170:i32 = load %i_3
+            %x_124:i32 = let %170
+            %172:ptr<private, i32, read_write> = access %data, %x_124
+            store %172, -5i
+            if true [t: $B40, f: $B41] {  # if_7
+              $B40: {  # true
                 exit_if  # if_7
               }
-              %b41 = block {  # false
-                continue %b28
+              $B41: {  # false
+                continue  # -> $B28
               }
             }
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_122:i32 = load %i_3
-            %122:ptr<private, i32, read_write> = access %data, %x_122
-            store %122, -4i
+          $B30: {  # case
+            %173:i32 = load %i_3
+            %x_122:i32 = let %173
+            %175:ptr<private, i32, read_write> = access %data, %x_122
+            store %175, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_120:i32 = load %i_3
-            %124:ptr<private, i32, read_write> = access %data, %x_120
-            store %124, -3i
+          $B31: {  # case
+            %176:i32 = load %i_3
+            %x_120:i32 = let %176
+            %178:ptr<private, i32, read_write> = access %data, %x_120
+            store %178, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_118:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_118
-            store %126, -2i
+          $B32: {  # case
+            %179:i32 = load %i_3
+            %x_118:i32 = let %179
+            %181:ptr<private, i32, read_write> = access %data, %x_118
+            store %181, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_116:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_116
-            store %128, -1i
+          $B33: {  # case
+            %182:i32 = load %i_3
+            %x_116:i32 = let %182
+            %184:ptr<private, i32, read_write> = access %data, %x_116
+            store %184, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_114:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_114
-            store %130, 0i
+          $B34: {  # case
+            %185:i32 = load %i_3
+            %x_114:i32 = let %185
+            %187:ptr<private, i32, read_write> = access %data, %x_114
+            store %187, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_112:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_112
-            store %132, 1i
+          $B35: {  # case
+            %188:i32 = load %i_3
+            %x_112:i32 = let %188
+            %190:ptr<private, i32, read_write> = access %data, %x_112
+            store %190, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_110:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_110
-            store %134, 2i
+          $B36: {  # case
+            %191:i32 = load %i_3
+            %x_110:i32 = let %191
+            %193:ptr<private, i32, read_write> = access %data, %x_110
+            store %193, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_108:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_108
-            store %136, 3i
+          $B37: {  # case
+            %194:i32 = load %i_3
+            %x_108:i32 = let %194
+            %196:ptr<private, i32, read_write> = access %data, %x_108
+            store %196, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_106:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_106
-            store %138, 4i
+          $B38: {  # case
+            %197:i32 = load %i_3
+            %x_106:i32 = let %197
+            %199:ptr<private, i32, read_write> = access %data, %x_106
+            store %199, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_126:i32 = load %i_3
-        %140:i32 = add %x_126, 1i
-        store %i_3, %140
-        continue %b28
+        %200:i32 = load %i_3
+        %x_126:i32 = let %200
+        %202:i32 = add %x_126, 1i
+        store %i_3, %202
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_128:i32 = load %i_3
-        %142:bool = lt %x_128, 10i
-        %143:bool = eq %142, false
-        break_if %143 %b27
+      $B28: {  # continuing
+        %203:i32 = load %i_3
+        %x_128:i32 = let %203
+        %205:bool = lt %x_128, 10i
+        %206:bool = eq %205, false
+        break_if %206  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b42, c: %b43] {  # loop_7
-      %b42 = block {  # body
-        %x_134:i32 = load %j_1
-        %145:bool = lt %x_134, 10i
-        if %145 [t: %b44, f: %b45] {  # if_8
-          %b44 = block {  # true
+    loop [b: $B42, c: $B43] {  # loop_7
+      $B42: {  # body
+        %207:i32 = load %j_1
+        %x_134:i32 = let %207
+        %209:bool = lt %x_134, 10i
+        if %209 [t: $B44, f: $B45] {  # if_8
+          $B44: {  # true
             exit_if  # if_8
           }
-          %b45 = block {  # false
+          $B45: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_137:i32 = load %j_1
-        %x_138:i32 = load %j_1
-        %148:ptr<private, i32, read_write> = access %data, %x_138
-        %x_140:i32 = load %148
-        %150:ptr<private, i32, read_write> = access %temp, %x_137
-        store %150, %x_140
-        continue %b43
+        %210:i32 = load %j_1
+        %x_137:i32 = let %210
+        %212:i32 = load %j_1
+        %x_138:i32 = let %212
+        %214:ptr<private, i32, read_write> = access %data, %x_138
+        %215:i32 = load %214
+        %x_140:i32 = let %215
+        %217:ptr<private, i32, read_write> = access %temp, %x_137
+        store %217, %x_140
+        continue  # -> $B43
       }
-      %b43 = block {  # continuing
-        %x_142:i32 = load %j_1
-        %152:i32 = add %x_142, 1i
-        store %j_1, %152
-        next_iteration %b42
+      $B43: {  # continuing
+        %218:i32 = load %j_1
+        %x_142:i32 = let %218
+        %220:i32 = add %x_142, 1i
+        store %j_1, %220
+        next_iteration  # -> $B42
       }
     }
-    %153:void = call %mergeSort_
-    %x_146:f32 = load_vector_element %gl_FragCoord, 1u
-    %155:i32 = convert %x_146
-    %156:bool = lt %155, 30i
-    if %156 [t: %b46, f: %b47] {  # if_9
-      %b46 = block {  # true
-        %157:ptr<private, i32, read_write> = access %data, 0i
-        %x_153:i32 = load %157
-        %159:f32 = convert %x_153
-        %160:f32 = div %159, 10.0f
-        %161:f32 = add 0.5f, %160
-        store %grey, %161
+    %221:void = call %mergeSort_
+    %222:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_146:f32 = let %222
+    %224:i32 = call %tint_f32_to_i32, %x_146
+    %225:bool = lt %224, 30i
+    if %225 [t: $B46, f: $B47] {  # if_9
+      $B46: {  # true
+        %226:ptr<private, i32, read_write> = access %data, 0i
+        %227:i32 = load %226
+        %x_153:i32 = let %227
+        %229:f32 = convert %x_153
+        %230:f32 = div %229, 10.0f
+        %231:f32 = add 0.5f, %230
+        store %grey, %231
         exit_if  # if_9
       }
-      %b47 = block {  # false
-        %x_158:f32 = load_vector_element %gl_FragCoord, 1u
-        %163:i32 = convert %x_158
-        %164:bool = lt %163, 60i
-        if %164 [t: %b48, f: %b49] {  # if_10
-          %b48 = block {  # true
-            %165:ptr<private, i32, read_write> = access %data, 1i
-            %x_165:i32 = load %165
-            %167:f32 = convert %x_165
-            %168:f32 = div %167, 10.0f
-            %169:f32 = add 0.5f, %168
-            store %grey, %169
+      $B47: {  # false
+        %232:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_158:f32 = let %232
+        %234:i32 = call %tint_f32_to_i32, %x_158
+        %235:bool = lt %234, 60i
+        if %235 [t: $B48, f: $B49] {  # if_10
+          $B48: {  # true
+            %236:ptr<private, i32, read_write> = access %data, 1i
+            %237:i32 = load %236
+            %x_165:i32 = let %237
+            %239:f32 = convert %x_165
+            %240:f32 = div %239, 10.0f
+            %241:f32 = add 0.5f, %240
+            store %grey, %241
             exit_if  # if_10
           }
-          %b49 = block {  # false
-            %x_170:f32 = load_vector_element %gl_FragCoord, 1u
-            %171:i32 = convert %x_170
-            %172:bool = lt %171, 90i
-            if %172 [t: %b50, f: %b51] {  # if_11
-              %b50 = block {  # true
-                %173:ptr<private, i32, read_write> = access %data, 2i
-                %x_177:i32 = load %173
-                %175:f32 = convert %x_177
-                %176:f32 = div %175, 10.0f
-                %177:f32 = add 0.5f, %176
-                store %grey, %177
+          $B49: {  # false
+            %242:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_170:f32 = let %242
+            %244:i32 = call %tint_f32_to_i32, %x_170
+            %245:bool = lt %244, 90i
+            if %245 [t: $B50, f: $B51] {  # if_11
+              $B50: {  # true
+                %246:ptr<private, i32, read_write> = access %data, 2i
+                %247:i32 = load %246
+                %x_177:i32 = let %247
+                %249:f32 = convert %x_177
+                %250:f32 = div %249, 10.0f
+                %251:f32 = add 0.5f, %250
+                store %grey, %251
                 exit_if  # if_11
               }
-              %b51 = block {  # false
-                %x_182:f32 = load_vector_element %gl_FragCoord, 1u
-                %179:i32 = convert %x_182
-                %180:bool = lt %179, 120i
-                if %180 [t: %b52, f: %b53] {  # if_12
-                  %b52 = block {  # true
-                    %181:ptr<private, i32, read_write> = access %data, 3i
-                    %x_189:i32 = load %181
-                    %183:f32 = convert %x_189
-                    %184:f32 = div %183, 10.0f
-                    %185:f32 = add 0.5f, %184
-                    store %grey, %185
+              $B51: {  # false
+                %252:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_182:f32 = let %252
+                %254:i32 = call %tint_f32_to_i32, %x_182
+                %255:bool = lt %254, 120i
+                if %255 [t: $B52, f: $B53] {  # if_12
+                  $B52: {  # true
+                    %256:ptr<private, i32, read_write> = access %data, 3i
+                    %257:i32 = load %256
+                    %x_189:i32 = let %257
+                    %259:f32 = convert %x_189
+                    %260:f32 = div %259, 10.0f
+                    %261:f32 = add 0.5f, %260
+                    store %grey, %261
                     exit_if  # if_12
                   }
-                  %b53 = block {  # false
-                    %x_194:f32 = load_vector_element %gl_FragCoord, 1u
-                    %187:i32 = convert %x_194
-                    %188:bool = lt %187, 150i
-                    if %188 [t: %b54, f: %b55] {  # if_13
-                      %b54 = block {  # true
-                        discard
+                  $B53: {  # false
+                    %262:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_194:f32 = let %262
+                    %264:i32 = call %tint_f32_to_i32, %x_194
+                    %265:bool = lt %264, 150i
+                    if %265 [t: $B54, f: $B55] {  # if_13
+                      $B54: {  # true
+                        store %continue_execution, false
                         exit_if  # if_13
                       }
-                      %b55 = block {  # false
-                        %x_201:f32 = load_vector_element %gl_FragCoord, 1u
-                        %190:i32 = convert %x_201
-                        %191:bool = lt %190, 180i
-                        if %191 [t: %b56, f: %b57] {  # if_14
-                          %b56 = block {  # true
-                            %192:ptr<private, i32, read_write> = access %data, 5i
-                            %x_208:i32 = load %192
-                            %194:f32 = convert %x_208
-                            %195:f32 = div %194, 10.0f
-                            %196:f32 = add 0.5f, %195
-                            store %grey, %196
+                      $B55: {  # false
+                        %266:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_201:f32 = let %266
+                        %268:i32 = call %tint_f32_to_i32, %x_201
+                        %269:bool = lt %268, 180i
+                        if %269 [t: $B56, f: $B57] {  # if_14
+                          $B56: {  # true
+                            %270:ptr<private, i32, read_write> = access %data, 5i
+                            %271:i32 = load %270
+                            %x_208:i32 = let %271
+                            %273:f32 = convert %x_208
+                            %274:f32 = div %273, 10.0f
+                            %275:f32 = add 0.5f, %274
+                            store %grey, %275
                             exit_if  # if_14
                           }
-                          %b57 = block {  # false
-                            %x_213:f32 = load_vector_element %gl_FragCoord, 1u
-                            %198:i32 = convert %x_213
-                            %199:bool = lt %198, 210i
-                            if %199 [t: %b58, f: %b59] {  # if_15
-                              %b58 = block {  # true
-                                %200:ptr<private, i32, read_write> = access %data, 6i
-                                %x_220:i32 = load %200
-                                %202:f32 = convert %x_220
-                                %203:f32 = div %202, 10.0f
-                                %204:f32 = add 0.5f, %203
-                                store %grey, %204
+                          $B57: {  # false
+                            %276:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_213:f32 = let %276
+                            %278:i32 = call %tint_f32_to_i32, %x_213
+                            %279:bool = lt %278, 210i
+                            if %279 [t: $B58, f: $B59] {  # if_15
+                              $B58: {  # true
+                                %280:ptr<private, i32, read_write> = access %data, 6i
+                                %281:i32 = load %280
+                                %x_220:i32 = let %281
+                                %283:f32 = convert %x_220
+                                %284:f32 = div %283, 10.0f
+                                %285:f32 = add 0.5f, %284
+                                store %grey, %285
                                 exit_if  # if_15
                               }
-                              %b59 = block {  # false
-                                %x_225:f32 = load_vector_element %gl_FragCoord, 1u
-                                %206:i32 = convert %x_225
-                                %207:bool = lt %206, 240i
-                                if %207 [t: %b60, f: %b61] {  # if_16
-                                  %b60 = block {  # true
-                                    %208:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_232:i32 = load %208
-                                    %210:f32 = convert %x_232
-                                    %211:f32 = div %210, 10.0f
-                                    %212:f32 = add 0.5f, %211
-                                    store %grey, %212
+                              $B59: {  # false
+                                %286:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_225:f32 = let %286
+                                %288:i32 = call %tint_f32_to_i32, %x_225
+                                %289:bool = lt %288, 240i
+                                if %289 [t: $B60, f: $B61] {  # if_16
+                                  $B60: {  # true
+                                    %290:ptr<private, i32, read_write> = access %data, 7i
+                                    %291:i32 = load %290
+                                    %x_232:i32 = let %291
+                                    %293:f32 = convert %x_232
+                                    %294:f32 = div %293, 10.0f
+                                    %295:f32 = add 0.5f, %294
+                                    store %grey, %295
                                     exit_if  # if_16
                                   }
-                                  %b61 = block {  # false
-                                    %x_237:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %214:i32 = convert %x_237
-                                    %215:bool = lt %214, 270i
-                                    if %215 [t: %b62, f: %b63] {  # if_17
-                                      %b62 = block {  # true
-                                        %216:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_244:i32 = load %216
-                                        %218:f32 = convert %x_244
-                                        %219:f32 = div %218, 10.0f
-                                        %220:f32 = add 0.5f, %219
-                                        store %grey, %220
+                                  $B61: {  # false
+                                    %296:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_237:f32 = let %296
+                                    %298:i32 = call %tint_f32_to_i32, %x_237
+                                    %299:bool = lt %298, 270i
+                                    if %299 [t: $B62, f: $B63] {  # if_17
+                                      $B62: {  # true
+                                        %300:ptr<private, i32, read_write> = access %data, 8i
+                                        %301:i32 = load %300
+                                        %x_244:i32 = let %301
+                                        %303:f32 = convert %x_244
+                                        %304:f32 = div %303, 10.0f
+                                        %305:f32 = add 0.5f, %304
+                                        store %grey, %305
                                         exit_if  # if_17
                                       }
-                                      %b63 = block {  # false
-                                        discard
+                                      $B63: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_17
                                       }
                                     }
@@ -520,23 +604,42 @@
         exit_if  # if_9
       }
     }
-    %x_248:f32 = load %grey
-    %x_249:vec3<f32> = construct %x_248, %x_248, %x_248
-    %223:f32 = access %x_249, 0u
-    %224:f32 = access %x_249, 1u
-    %225:f32 = access %x_249, 2u
-    %226:vec4<f32> = construct %223, %224, %225, 1.0f
-    store %x_GLF_color, %226
+    %306:f32 = load %grey
+    %x_248:f32 = let %306
+    %308:vec3<f32> = construct %x_248, %x_248, %x_248
+    %x_249:vec3<f32> = let %308
+    %310:f32 = access %x_249, 0u
+    %311:f32 = access %x_249, 1u
+    %312:f32 = access %x_249, 2u
+    %313:vec4<f32> = construct %310, %311, %312, 1.0f
+    store %x_GLF_color, %313
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b64 {
-  %b64 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B64: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %229:void = call %main_1
-    %230:vec4<f32> = load %x_GLF_color
-    %231:main_out = construct %230
-    ret %231
+    %316:void = call %main_1
+    %317:vec4<f32> = load %x_GLF_color
+    %318:main_out = construct %317
+    %319:bool = load %continue_execution
+    %320:bool = eq %319, false
+    if %320 [t: $B65] {  # if_18
+      $B65: {  # true
+        terminate_invocation
+      }
+    }
+    ret %318
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B66: {
+    %322:i32 = convert %value
+    %323:bool = gte %value, -2147483648.0f
+    %324:i32 = select -2147483648i, %322, %323
+    %325:bool = lte %value, 2147483520.0f
+    %326:i32 = select 2147483647i, %324, %325
+    ret %326
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.msl
index 73c8258..2383ab6 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,203 +12,209 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<f32, 10>, read_write> = var
     %x_40:ptr<function, i32, read_write> = var
     %x_52:ptr<function, i32, read_write> = var
     store %x_40, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_41:ptr<function, i32, read_write> = var
         %10:i32 = load %x_40
         %11:bool = lt %10, 10i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %12:i32 = load %x_40
         %13:ptr<function, f32, read_write> = access %data, %12
-        %14:i32 = load %x_40
-        %15:i32 = sub 10i, %14
-        %16:f32 = convert %15
-        %17:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %18:f32 = load_vector_element %17, 1u
-        %19:f32 = mul %16, %18
-        store %13, %19
-        %20:i32 = load %x_40
-        %21:i32 = add %20, 1i
-        store %x_41, %21
-        %22:i32 = load %x_41
-        store %x_40, %22
-        next_iteration %b3
+        %14:ptr<function, f32, read_write> = let %13
+        %15:i32 = load %x_40
+        %16:i32 = sub 10i, %15
+        %17:f32 = convert %16
+        %18:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %19:f32 = load_vector_element %18, 1u
+        %20:f32 = mul %17, %19
+        store %14, %20
+        %21:i32 = load %x_40
+        %22:i32 = add %21, 1i
+        store %x_41, %22
+        %23:i32 = load %x_41
+        store %x_40, %23
+        next_iteration  # -> $B3
       }
     }
     store %x_52, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_59:ptr<function, i32, read_write> = var
         %x_53:ptr<function, i32, read_write> = var
-        %25:i32 = load %x_52
-        %26:bool = lt %25, 9i
-        if %26 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+        %26:i32 = load %x_52
+        %27:bool = lt %26, 9i
+        if %27 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
         store %x_59, 0i
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
             %x_82:ptr<function, bool, read_write> = var
             %x_83:ptr<function, bool, read_write> = var
             %x_84:ptr<function, bool, read_write> = var
             %x_60:ptr<function, i32, read_write> = var
-            %31:i32 = load %x_59
-            %32:bool = lt %31, 10i
-            if %32 [t: %b13, f: %b14] {  # if_3
-              %b13 = block {  # true
+            %32:i32 = load %x_59
+            %33:bool = lt %32, 10i
+            if %33 [t: $B13, f: $B14] {  # if_3
+              $B13: {  # true
                 exit_if  # if_3
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %33:i32 = load %x_59
-            %34:i32 = load %x_52
-            %35:i32 = add %34, 1i
-            %36:bool = lt %33, %35
-            if %36 [t: %b15] {  # if_4
-              %b15 = block {  # true
-                continue %b12
+            %34:i32 = load %x_59
+            %35:i32 = load %x_52
+            %36:i32 = add %35, 1i
+            %37:bool = lt %34, %36
+            if %37 [t: $B15] {  # if_4
+              $B15: {  # true
+                continue  # -> $B12
               }
             }
-            %x_69_save:i32 = load %x_52
             %38:i32 = load %x_52
-            %39:ptr<function, f32, read_write> = access %data, %38
-            %x_70:f32 = load %39
-            %x_71_save:i32 = load %x_59
-            %42:i32 = load %x_59
-            %43:ptr<function, f32, read_write> = access %data, %42
-            %x_72:f32 = load %43
-            %45:f32 = load_vector_element %gl_FragCoord, 1u
-            %46:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %47:f32 = load_vector_element %46, 1u
-            %48:f32 = mul %47, 0.5f
-            %49:bool = lt %45, %48
-            if %49 [t: %b16, f: %b17] {  # if_5
-              %b16 = block {  # true
-                %50:bool = gt %x_70, %x_72
-                store %x_82, %50
-                %51:bool = load %x_82
-                store %x_84, %51
+            %x_69_save:i32 = let %38
+            %40:i32 = load %x_52
+            %41:ptr<function, f32, read_write> = access %data, %40
+            %42:f32 = load %41
+            %x_70:f32 = let %42
+            %44:i32 = load %x_59
+            %x_71_save:i32 = let %44
+            %46:i32 = load %x_59
+            %47:ptr<function, f32, read_write> = access %data, %46
+            %48:f32 = load %47
+            %x_72:f32 = let %48
+            %50:f32 = load_vector_element %gl_FragCoord, 1u
+            %51:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %52:f32 = load_vector_element %51, 1u
+            %53:f32 = mul %52, 0.5f
+            %54:bool = lt %50, %53
+            if %54 [t: $B16, f: $B17] {  # if_5
+              $B16: {  # true
+                %55:bool = gt %x_70, %x_72
+                store %x_82, %55
+                %56:bool = load %x_82
+                store %x_84, %56
                 exit_if  # if_5
               }
-              %b17 = block {  # false
-                %52:bool = lt %x_70, %x_72
-                store %x_83, %52
-                %53:bool = load %x_83
-                store %x_84, %53
+              $B17: {  # false
+                %57:bool = lt %x_70, %x_72
+                store %x_83, %57
+                %58:bool = load %x_83
+                store %x_84, %58
                 exit_if  # if_5
               }
             }
-            %54:bool = load %x_84
-            if %54 [t: %b18] {  # if_6
-              %b18 = block {  # true
-                %55:ptr<function, f32, read_write> = access %data, %x_69_save
-                %x_87:f32 = load %55
-                %57:ptr<function, f32, read_write> = access %data, %x_69_save
-                %58:ptr<function, f32, read_write> = access %data, %x_71_save
-                %59:f32 = load %58
-                store %57, %59
-                %60:ptr<function, f32, read_write> = access %data, %x_71_save
-                store %60, %x_87
+            %59:bool = load %x_84
+            if %59 [t: $B18] {  # if_6
+              $B18: {  # true
+                %60:ptr<function, f32, read_write> = access %data, %x_69_save
+                %61:f32 = load %60
+                %x_87:f32 = let %61
+                %63:ptr<function, f32, read_write> = access %data, %x_69_save
+                %64:ptr<function, f32, read_write> = access %data, %x_71_save
+                %65:f32 = load %64
+                store %63, %65
+                %66:ptr<function, f32, read_write> = access %data, %x_71_save
+                store %66, %x_87
                 exit_if  # if_6
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %61:i32 = load %x_59
-            %62:i32 = add %61, 1i
-            store %x_60, %62
-            %63:i32 = load %x_60
-            store %x_59, %63
-            next_iteration %b11
+          $B12: {  # continuing
+            %67:i32 = load %x_59
+            %68:i32 = add %67, 1i
+            store %x_60, %68
+            %69:i32 = load %x_60
+            store %x_59, %69
+            next_iteration  # -> $B11
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %64:i32 = load %x_52
-        %65:i32 = add %64, 1i
-        store %x_53, %65
-        %66:i32 = load %x_53
-        store %x_52, %66
-        next_iteration %b7
+      $B8: {  # continuing
+        %70:i32 = load %x_52
+        %71:i32 = add %70, 1i
+        store %x_53, %71
+        %72:i32 = load %x_53
+        store %x_52, %72
+        next_iteration  # -> $B7
       }
     }
-    %67:f32 = load_vector_element %gl_FragCoord, 0u
-    %68:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %69:f32 = load_vector_element %68, 0u
-    %70:f32 = mul %69, 0.5f
-    %71:bool = lt %67, %70
-    if %71 [t: %b19, f: %b20] {  # if_7
-      %b19 = block {  # true
-        %72:ptr<function, f32, read_write> = access %data, 0i
-        %73:f32 = load %72
-        %74:f32 = mul %73, 0.10000000149011611938f
-        %75:ptr<function, f32, read_write> = access %data, 5i
-        %76:f32 = load %75
-        %77:f32 = mul %76, 0.10000000149011611938f
-        %78:ptr<function, f32, read_write> = access %data, 9i
+    %73:f32 = load_vector_element %gl_FragCoord, 0u
+    %74:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %75:f32 = load_vector_element %74, 0u
+    %76:f32 = mul %75, 0.5f
+    %77:bool = lt %73, %76
+    if %77 [t: $B19, f: $B20] {  # if_7
+      $B19: {  # true
+        %78:ptr<function, f32, read_write> = access %data, 0i
         %79:f32 = load %78
         %80:f32 = mul %79, 0.10000000149011611938f
-        %81:vec4<f32> = construct %74, %77, %80, 1.0f
-        store %x_GLF_color, %81
+        %81:ptr<function, f32, read_write> = access %data, 5i
+        %82:f32 = load %81
+        %83:f32 = mul %82, 0.10000000149011611938f
+        %84:ptr<function, f32, read_write> = access %data, 9i
+        %85:f32 = load %84
+        %86:f32 = mul %85, 0.10000000149011611938f
+        %87:vec4<f32> = construct %80, %83, %86, 1.0f
+        store %x_GLF_color, %87
         exit_if  # if_7
       }
-      %b20 = block {  # false
-        %82:ptr<function, f32, read_write> = access %data, 5i
-        %83:f32 = load %82
-        %84:f32 = mul %83, 0.10000000149011611938f
-        %85:ptr<function, f32, read_write> = access %data, 9i
-        %86:f32 = load %85
-        %87:f32 = mul %86, 0.10000000149011611938f
-        %88:ptr<function, f32, read_write> = access %data, 0i
+      $B20: {  # false
+        %88:ptr<function, f32, read_write> = access %data, 5i
         %89:f32 = load %88
         %90:f32 = mul %89, 0.10000000149011611938f
-        %91:vec4<f32> = construct %84, %87, %90, 1.0f
-        store %x_GLF_color, %91
+        %91:ptr<function, f32, read_write> = access %data, 9i
+        %92:f32 = load %91
+        %93:f32 = mul %92, 0.10000000149011611938f
+        %94:ptr<function, f32, read_write> = access %data, 0i
+        %95:f32 = load %94
+        %96:f32 = mul %95, 0.10000000149011611938f
+        %97:vec4<f32> = construct %90, %93, %96, 1.0f
+        store %x_GLF_color, %97
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b21 {
-  %b21 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B21: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %94:void = call %main_1
-    %95:vec4<f32> = load %x_GLF_color
-    %96:main_out = construct %95
-    ret %96
+    %100:void = call %main_1
+    %101:vec4<f32> = load %x_GLF_color
+    %102:main_out = construct %101
+    ret %102
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.msl
index f52edd2..71767f8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,194 +12,213 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<f32, 10>, read_write> = var
     %x_40_phi:ptr<function, i32, read_write> = var
     %x_52_phi:ptr<function, i32, read_write> = var
     store %x_40_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_41:ptr<function, i32, read_write> = var
-        %x_40:i32 = load %x_40_phi
-        %11:bool = lt %x_40, 10i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %10:i32 = load %x_40_phi
+        %x_40:i32 = let %10
+        %12:bool = lt %x_40, 10i
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %12:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_48:f32 = load_vector_element %12, 1u
-        %14:ptr<function, f32, read_write> = access %data, %x_40
-        %15:i32 = sub 10i, %x_40
-        %16:f32 = convert %15
-        %17:f32 = mul %16, %x_48
-        store %14, %17
-        %18:i32 = add %x_40, 1i
-        store %x_41, %18
-        %19:i32 = load %x_41
-        store %x_40_phi, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %13:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %14:f32 = load_vector_element %13, 1u
+        %x_48:f32 = let %14
+        %16:ptr<function, f32, read_write> = access %data, %x_40
+        %17:i32 = sub 10i, %x_40
+        %18:f32 = convert %17
+        %19:f32 = mul %18, %x_48
+        store %16, %19
+        %20:i32 = add %x_40, 1i
+        store %x_41, %20
+        %21:i32 = load %x_41
+        store %x_40_phi, %21
+        next_iteration  # -> $B3
       }
     }
     store %x_52_phi, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_53:ptr<function, i32, read_write> = var
         %x_59_phi:ptr<function, i32, read_write> = var
-        %x_52:i32 = load %x_52_phi
-        %23:bool = lt %x_52, 9i
-        if %23 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+        %24:i32 = load %x_52_phi
+        %x_52:i32 = let %24
+        %26:bool = lt %x_52, 9i
+        if %26 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
         store %x_59_phi, 0i
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
             %x_82:ptr<function, bool, read_write> = var
             %x_83:ptr<function, bool, read_write> = var
             %x_60:ptr<function, i32, read_write> = var
             %x_84_phi:ptr<function, bool, read_write> = var
-            %x_59:i32 = load %x_59_phi
-            %29:bool = lt %x_59, 10i
-            if %29 [t: %b13, f: %b14] {  # if_3
-              %b13 = block {  # true
+            %31:i32 = load %x_59_phi
+            %x_59:i32 = let %31
+            %33:bool = lt %x_59, 10i
+            if %33 [t: $B13, f: $B14] {  # if_3
+              $B13: {  # true
                 exit_if  # if_3
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %30:i32 = add %x_52, 1i
-            %31:bool = lt %x_59, %30
-            if %31 [t: %b15] {  # if_4
-              %b15 = block {  # true
-                continue %b12
+            %34:i32 = add %x_52, 1i
+            %35:bool = lt %x_59, %34
+            if %35 [t: $B15] {  # if_4
+              $B15: {  # true
+                continue  # -> $B12
               }
             }
             %x_69_save:i32 = let %x_52
-            %33:ptr<function, f32, read_write> = access %data, %x_69_save
-            %x_70:f32 = load %33
+            %37:ptr<function, f32, read_write> = access %data, %x_69_save
+            %38:f32 = load %37
+            %x_70:f32 = let %38
             %x_71_save:i32 = let %x_59
-            %36:ptr<function, f32, read_write> = access %data, %x_71_save
-            %x_72:f32 = load %36
-            %x_74:f32 = load_vector_element %gl_FragCoord, 1u
-            %39:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_76:f32 = load_vector_element %39, 1u
-            %41:f32 = mul %x_76, 0.5f
-            %42:bool = lt %x_74, %41
-            if %42 [t: %b16, f: %b17] {  # if_5
-              %b16 = block {  # true
-                %43:bool = gt %x_70, %x_72
-                store %x_82, %43
-                %44:bool = load %x_82
-                store %x_84_phi, %44
+            %41:ptr<function, f32, read_write> = access %data, %x_71_save
+            %42:f32 = load %41
+            %x_72:f32 = let %42
+            %44:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_74:f32 = let %44
+            %46:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %47:f32 = load_vector_element %46, 1u
+            %x_76:f32 = let %47
+            %49:f32 = mul %x_76, 0.5f
+            %50:bool = lt %x_74, %49
+            if %50 [t: $B16, f: $B17] {  # if_5
+              $B16: {  # true
+                %51:bool = gt %x_70, %x_72
+                store %x_82, %51
+                %52:bool = load %x_82
+                store %x_84_phi, %52
                 exit_if  # if_5
               }
-              %b17 = block {  # false
-                %45:bool = lt %x_70, %x_72
-                store %x_83, %45
-                %46:bool = load %x_83
-                store %x_84_phi, %46
+              $B17: {  # false
+                %53:bool = lt %x_70, %x_72
+                store %x_83, %53
+                %54:bool = load %x_83
+                store %x_84_phi, %54
                 exit_if  # if_5
               }
             }
-            %x_84:bool = load %x_84_phi
-            if %x_84 [t: %b18] {  # if_6
-              %b18 = block {  # true
-                %48:ptr<function, f32, read_write> = access %data, %x_69_save
-                %x_87:f32 = load %48
-                %50:ptr<function, f32, read_write> = access %data, %x_71_save
-                %x_88:f32 = load %50
-                %52:ptr<function, f32, read_write> = access %data, %x_69_save
-                store %52, %x_88
-                %53:ptr<function, f32, read_write> = access %data, %x_71_save
-                store %53, %x_87
+            %55:bool = load %x_84_phi
+            %x_84:bool = let %55
+            if %x_84 [t: $B18] {  # if_6
+              $B18: {  # true
+                %57:ptr<function, f32, read_write> = access %data, %x_69_save
+                %58:f32 = load %57
+                %x_87:f32 = let %58
+                %60:ptr<function, f32, read_write> = access %data, %x_71_save
+                %61:f32 = load %60
+                %x_88:f32 = let %61
+                %63:ptr<function, f32, read_write> = access %data, %x_69_save
+                store %63, %x_88
+                %64:ptr<function, f32, read_write> = access %data, %x_71_save
+                store %64, %x_87
                 exit_if  # if_6
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %54:i32 = add %x_59, 1i
-            store %x_60, %54
-            %55:i32 = load %x_60
-            store %x_59_phi, %55
-            next_iteration %b11
+          $B12: {  # continuing
+            %65:i32 = add %x_59, 1i
+            store %x_60, %65
+            %66:i32 = load %x_60
+            store %x_59_phi, %66
+            next_iteration  # -> $B11
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %56:i32 = add %x_52, 1i
-        store %x_53, %56
-        %57:i32 = load %x_53
-        store %x_52_phi, %57
-        next_iteration %b7
+      $B8: {  # continuing
+        %67:i32 = add %x_52, 1i
+        store %x_53, %67
+        %68:i32 = load %x_53
+        store %x_52_phi, %68
+        next_iteration  # -> $B7
       }
     }
-    %x_90:f32 = load_vector_element %gl_FragCoord, 0u
-    %59:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_92:f32 = load_vector_element %59, 0u
-    %61:f32 = mul %x_92, 0.5f
-    %62:bool = lt %x_90, %61
-    if %62 [t: %b19, f: %b20] {  # if_7
-      %b19 = block {  # true
-        %63:ptr<function, f32, read_write> = access %data, 0i
-        %x_99:f32 = load %63
-        %65:ptr<function, f32, read_write> = access %data, 5i
-        %x_102:f32 = load %65
-        %67:ptr<function, f32, read_write> = access %data, 9i
-        %x_105:f32 = load %67
-        %69:f32 = mul %x_99, 0.10000000149011611938f
-        %70:f32 = mul %x_102, 0.10000000149011611938f
-        %71:f32 = mul %x_105, 0.10000000149011611938f
-        %72:vec4<f32> = construct %69, %70, %71, 1.0f
-        store %x_GLF_color, %72
+    %69:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_90:f32 = let %69
+    %71:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %72:f32 = load_vector_element %71, 0u
+    %x_92:f32 = let %72
+    %74:f32 = mul %x_92, 0.5f
+    %75:bool = lt %x_90, %74
+    if %75 [t: $B19, f: $B20] {  # if_7
+      $B19: {  # true
+        %76:ptr<function, f32, read_write> = access %data, 0i
+        %77:f32 = load %76
+        %x_99:f32 = let %77
+        %79:ptr<function, f32, read_write> = access %data, 5i
+        %80:f32 = load %79
+        %x_102:f32 = let %80
+        %82:ptr<function, f32, read_write> = access %data, 9i
+        %83:f32 = load %82
+        %x_105:f32 = let %83
+        %85:f32 = mul %x_99, 0.10000000149011611938f
+        %86:f32 = mul %x_102, 0.10000000149011611938f
+        %87:f32 = mul %x_105, 0.10000000149011611938f
+        %88:vec4<f32> = construct %85, %86, %87, 1.0f
+        store %x_GLF_color, %88
         exit_if  # if_7
       }
-      %b20 = block {  # false
-        %73:ptr<function, f32, read_write> = access %data, 5i
-        %x_109:f32 = load %73
-        %75:ptr<function, f32, read_write> = access %data, 9i
-        %x_112:f32 = load %75
-        %77:ptr<function, f32, read_write> = access %data, 0i
-        %x_115:f32 = load %77
-        %79:f32 = mul %x_109, 0.10000000149011611938f
-        %80:f32 = mul %x_112, 0.10000000149011611938f
-        %81:f32 = mul %x_115, 0.10000000149011611938f
-        %82:vec4<f32> = construct %79, %80, %81, 1.0f
-        store %x_GLF_color, %82
+      $B20: {  # false
+        %89:ptr<function, f32, read_write> = access %data, 5i
+        %90:f32 = load %89
+        %x_109:f32 = let %90
+        %92:ptr<function, f32, read_write> = access %data, 9i
+        %93:f32 = load %92
+        %x_112:f32 = let %93
+        %95:ptr<function, f32, read_write> = access %data, 0i
+        %96:f32 = load %95
+        %x_115:f32 = let %96
+        %98:f32 = mul %x_109, 0.10000000149011611938f
+        %99:f32 = mul %x_112, 0.10000000149011611938f
+        %100:f32 = mul %x_115, 0.10000000149011611938f
+        %101:vec4<f32> = construct %98, %99, %100, 1.0f
+        store %x_GLF_color, %101
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b21 {
-  %b21 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B21: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %85:void = call %main_1
-    %86:vec4<f32> = load %x_GLF_color
-    %87:main_out = construct %86
-    ret %87
+    %104:void = call %main_1
+    %105:vec4<f32> = load %x_GLF_color
+    %106:main_out = construct %105
+    ret %106
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.msl
index 68c775d..8a69eca 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,203 +12,209 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<f32, 10>, read_write> = var
     %x_41:ptr<function, i32, read_write> = var
     %x_53:ptr<function, i32, read_write> = var
     store %x_41, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_42:ptr<function, i32, read_write> = var
         %10:i32 = load %x_41
         %11:bool = lt %10, 10i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %12:i32 = load %x_41
         %13:ptr<function, f32, read_write> = access %data, %12
-        %14:i32 = load %x_41
-        %15:i32 = sub 10i, %14
-        %16:f32 = convert %15
-        %17:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %18:f32 = load_vector_element %17, 1u
-        %19:f32 = mul %16, %18
-        store %13, %19
-        %20:i32 = load %x_41
-        %21:i32 = add %20, 1i
-        store %x_42, %21
-        %22:i32 = load %x_42
-        store %x_41, %22
-        next_iteration %b3
+        %14:ptr<function, f32, read_write> = let %13
+        %15:i32 = load %x_41
+        %16:i32 = sub 10i, %15
+        %17:f32 = convert %16
+        %18:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %19:f32 = load_vector_element %18, 1u
+        %20:f32 = mul %17, %19
+        store %14, %20
+        %21:i32 = load %x_41
+        %22:i32 = add %21, 1i
+        store %x_42, %22
+        %23:i32 = load %x_42
+        store %x_41, %23
+        next_iteration  # -> $B3
       }
     }
     store %x_53, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_60:ptr<function, i32, read_write> = var
         %x_54:ptr<function, i32, read_write> = var
-        %25:i32 = load %x_53
-        %26:bool = lt %25, 9i
-        if %26 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+        %26:i32 = load %x_53
+        %27:bool = lt %26, 9i
+        if %27 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
         store %x_60, 0i
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
             %x_83:ptr<function, bool, read_write> = var
             %x_84:ptr<function, bool, read_write> = var
             %x_85:ptr<function, bool, read_write> = var
             %x_61:ptr<function, i32, read_write> = var
-            %31:i32 = load %x_60
-            %32:bool = lt %31, 10i
-            if %32 [t: %b13, f: %b14] {  # if_3
-              %b13 = block {  # true
+            %32:i32 = load %x_60
+            %33:bool = lt %32, 10i
+            if %33 [t: $B13, f: $B14] {  # if_3
+              $B13: {  # true
                 exit_if  # if_3
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %33:i32 = load %x_60
-            %34:i32 = load %x_53
-            %35:i32 = add %34, 1i
-            %36:bool = lt %33, %35
-            if %36 [t: %b15] {  # if_4
-              %b15 = block {  # true
-                continue %b12
+            %34:i32 = load %x_60
+            %35:i32 = load %x_53
+            %36:i32 = add %35, 1i
+            %37:bool = lt %34, %36
+            if %37 [t: $B15] {  # if_4
+              $B15: {  # true
+                continue  # -> $B12
               }
             }
-            %x_70_save:i32 = load %x_53
             %38:i32 = load %x_53
-            %39:ptr<function, f32, read_write> = access %data, %38
-            %x_71:f32 = load %39
-            %x_72_save:i32 = load %x_60
-            %42:i32 = load %x_60
-            %43:ptr<function, f32, read_write> = access %data, %42
-            %x_73:f32 = load %43
-            %45:f32 = load_vector_element %gl_FragCoord, 1u
-            %46:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %47:f32 = load_vector_element %46, 1u
-            %48:f32 = mul %47, 0.5f
-            %49:bool = lt %45, %48
-            if %49 [t: %b16, f: %b17] {  # if_5
-              %b16 = block {  # true
-                %50:bool = gt %x_71, %x_73
-                store %x_83, %50
-                %51:bool = load %x_83
-                store %x_85, %51
+            %x_70_save:i32 = let %38
+            %40:i32 = load %x_53
+            %41:ptr<function, f32, read_write> = access %data, %40
+            %42:f32 = load %41
+            %x_71:f32 = let %42
+            %44:i32 = load %x_60
+            %x_72_save:i32 = let %44
+            %46:i32 = load %x_60
+            %47:ptr<function, f32, read_write> = access %data, %46
+            %48:f32 = load %47
+            %x_73:f32 = let %48
+            %50:f32 = load_vector_element %gl_FragCoord, 1u
+            %51:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %52:f32 = load_vector_element %51, 1u
+            %53:f32 = mul %52, 0.5f
+            %54:bool = lt %50, %53
+            if %54 [t: $B16, f: $B17] {  # if_5
+              $B16: {  # true
+                %55:bool = gt %x_71, %x_73
+                store %x_83, %55
+                %56:bool = load %x_83
+                store %x_85, %56
                 exit_if  # if_5
               }
-              %b17 = block {  # false
-                %52:bool = lt %x_71, %x_73
-                store %x_84, %52
-                %53:bool = load %x_84
-                store %x_85, %53
+              $B17: {  # false
+                %57:bool = lt %x_71, %x_73
+                store %x_84, %57
+                %58:bool = load %x_84
+                store %x_85, %58
                 exit_if  # if_5
               }
             }
-            %54:bool = load %x_85
-            if %54 [t: %b18] {  # if_6
-              %b18 = block {  # true
-                %55:ptr<function, f32, read_write> = access %data, %x_70_save
-                %x_88:f32 = load %55
-                %57:ptr<function, f32, read_write> = access %data, %x_70_save
-                %58:ptr<function, f32, read_write> = access %data, %x_72_save
-                %59:f32 = load %58
-                store %57, %59
-                %60:ptr<function, f32, read_write> = access %data, %x_72_save
-                store %60, %x_88
+            %59:bool = load %x_85
+            if %59 [t: $B18] {  # if_6
+              $B18: {  # true
+                %60:ptr<function, f32, read_write> = access %data, %x_70_save
+                %61:f32 = load %60
+                %x_88:f32 = let %61
+                %63:ptr<function, f32, read_write> = access %data, %x_70_save
+                %64:ptr<function, f32, read_write> = access %data, %x_72_save
+                %65:f32 = load %64
+                store %63, %65
+                %66:ptr<function, f32, read_write> = access %data, %x_72_save
+                store %66, %x_88
                 exit_if  # if_6
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %61:i32 = load %x_60
-            %62:i32 = add %61, 1i
-            store %x_61, %62
-            %63:i32 = load %x_61
-            store %x_60, %63
-            next_iteration %b11
+          $B12: {  # continuing
+            %67:i32 = load %x_60
+            %68:i32 = add %67, 1i
+            store %x_61, %68
+            %69:i32 = load %x_61
+            store %x_60, %69
+            next_iteration  # -> $B11
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %64:i32 = load %x_53
-        %65:i32 = add %64, 1i
-        store %x_54, %65
-        %66:i32 = load %x_54
-        store %x_53, %66
-        next_iteration %b7
+      $B8: {  # continuing
+        %70:i32 = load %x_53
+        %71:i32 = add %70, 1i
+        store %x_54, %71
+        %72:i32 = load %x_54
+        store %x_53, %72
+        next_iteration  # -> $B7
       }
     }
-    %67:f32 = load_vector_element %gl_FragCoord, 0u
-    %68:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %69:f32 = load_vector_element %68, 0u
-    %70:f32 = mul %69, 0.5f
-    %71:bool = lt %67, %70
-    if %71 [t: %b19, f: %b20] {  # if_7
-      %b19 = block {  # true
-        %72:ptr<function, f32, read_write> = access %data, 0i
-        %73:f32 = load %72
-        %74:f32 = mul %73, 0.10000000149011611938f
-        %75:ptr<function, f32, read_write> = access %data, 5i
-        %76:f32 = load %75
-        %77:f32 = mul %76, 0.10000000149011611938f
-        %78:ptr<function, f32, read_write> = access %data, 9i
+    %73:f32 = load_vector_element %gl_FragCoord, 0u
+    %74:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %75:f32 = load_vector_element %74, 0u
+    %76:f32 = mul %75, 0.5f
+    %77:bool = lt %73, %76
+    if %77 [t: $B19, f: $B20] {  # if_7
+      $B19: {  # true
+        %78:ptr<function, f32, read_write> = access %data, 0i
         %79:f32 = load %78
         %80:f32 = mul %79, 0.10000000149011611938f
-        %81:vec4<f32> = construct %74, %77, %80, 1.0f
-        store %x_GLF_color, %81
+        %81:ptr<function, f32, read_write> = access %data, 5i
+        %82:f32 = load %81
+        %83:f32 = mul %82, 0.10000000149011611938f
+        %84:ptr<function, f32, read_write> = access %data, 9i
+        %85:f32 = load %84
+        %86:f32 = mul %85, 0.10000000149011611938f
+        %87:vec4<f32> = construct %80, %83, %86, 1.0f
+        store %x_GLF_color, %87
         exit_if  # if_7
       }
-      %b20 = block {  # false
-        %82:ptr<function, f32, read_write> = access %data, 5i
-        %83:f32 = load %82
-        %84:f32 = mul %83, 0.10000000149011611938f
-        %85:ptr<function, f32, read_write> = access %data, 9i
-        %86:f32 = load %85
-        %87:f32 = mul %86, 0.10000000149011611938f
-        %88:ptr<function, f32, read_write> = access %data, 0i
+      $B20: {  # false
+        %88:ptr<function, f32, read_write> = access %data, 5i
         %89:f32 = load %88
         %90:f32 = mul %89, 0.10000000149011611938f
-        %91:vec4<f32> = construct %84, %87, %90, 1.0f
-        store %x_GLF_color, %91
+        %91:ptr<function, f32, read_write> = access %data, 9i
+        %92:f32 = load %91
+        %93:f32 = mul %92, 0.10000000149011611938f
+        %94:ptr<function, f32, read_write> = access %data, 0i
+        %95:f32 = load %94
+        %96:f32 = mul %95, 0.10000000149011611938f
+        %97:vec4<f32> = construct %90, %93, %96, 1.0f
+        store %x_GLF_color, %97
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b21 {
-  %b21 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B21: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %94:void = call %main_1
-    %95:vec4<f32> = load %x_GLF_color
-    %96:main_out = construct %95
-    ret %96
+    %100:void = call %main_1
+    %101:vec4<f32> = load %x_GLF_color
+    %102:main_out = construct %101
+    ret %102
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.msl
index b32dd5d..5a407c9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block2/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,194 +12,213 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %data:ptr<function, array<f32, 10>, read_write> = var
     %x_41_phi:ptr<function, i32, read_write> = var
     %x_53_phi:ptr<function, i32, read_write> = var
     store %x_41_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_42:ptr<function, i32, read_write> = var
-        %x_41:i32 = load %x_41_phi
-        %11:bool = lt %x_41, 10i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %10:i32 = load %x_41_phi
+        %x_41:i32 = let %10
+        %12:bool = lt %x_41, 10i
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %12:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-        %x_49:f32 = load_vector_element %12, 1u
-        %14:ptr<function, f32, read_write> = access %data, %x_41
-        %15:i32 = sub 10i, %x_41
-        %16:f32 = convert %15
-        %17:f32 = mul %16, %x_49
-        store %14, %17
-        %18:i32 = add %x_41, 1i
-        store %x_42, %18
-        %19:i32 = load %x_42
-        store %x_41_phi, %19
-        next_iteration %b3
+      $B4: {  # continuing
+        %13:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+        %14:f32 = load_vector_element %13, 1u
+        %x_49:f32 = let %14
+        %16:ptr<function, f32, read_write> = access %data, %x_41
+        %17:i32 = sub 10i, %x_41
+        %18:f32 = convert %17
+        %19:f32 = mul %18, %x_49
+        store %16, %19
+        %20:i32 = add %x_41, 1i
+        store %x_42, %20
+        %21:i32 = load %x_42
+        store %x_41_phi, %21
+        next_iteration  # -> $B3
       }
     }
     store %x_53_phi, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_54:ptr<function, i32, read_write> = var
         %x_60_phi:ptr<function, i32, read_write> = var
-        %x_53:i32 = load %x_53_phi
-        %23:bool = lt %x_53, 9i
-        if %23 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+        %24:i32 = load %x_53_phi
+        %x_53:i32 = let %24
+        %26:bool = lt %x_53, 9i
+        if %26 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
         store %x_60_phi, 0i
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
             %x_83:ptr<function, bool, read_write> = var
             %x_84:ptr<function, bool, read_write> = var
             %x_61:ptr<function, i32, read_write> = var
             %x_85_phi:ptr<function, bool, read_write> = var
-            %x_60:i32 = load %x_60_phi
-            %29:bool = lt %x_60, 10i
-            if %29 [t: %b13, f: %b14] {  # if_3
-              %b13 = block {  # true
+            %31:i32 = load %x_60_phi
+            %x_60:i32 = let %31
+            %33:bool = lt %x_60, 10i
+            if %33 [t: $B13, f: $B14] {  # if_3
+              $B13: {  # true
                 exit_if  # if_3
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %30:i32 = add %x_53, 1i
-            %31:bool = lt %x_60, %30
-            if %31 [t: %b15] {  # if_4
-              %b15 = block {  # true
-                continue %b12
+            %34:i32 = add %x_53, 1i
+            %35:bool = lt %x_60, %34
+            if %35 [t: $B15] {  # if_4
+              $B15: {  # true
+                continue  # -> $B12
               }
             }
             %x_70_save:i32 = let %x_53
-            %33:ptr<function, f32, read_write> = access %data, %x_70_save
-            %x_71:f32 = load %33
+            %37:ptr<function, f32, read_write> = access %data, %x_70_save
+            %38:f32 = load %37
+            %x_71:f32 = let %38
             %x_72_save:i32 = let %x_60
-            %36:ptr<function, f32, read_write> = access %data, %x_72_save
-            %x_73:f32 = load %36
-            %x_75:f32 = load_vector_element %gl_FragCoord, 1u
-            %39:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_77:f32 = load_vector_element %39, 1u
-            %41:f32 = mul %x_77, 0.5f
-            %42:bool = lt %x_75, %41
-            if %42 [t: %b16, f: %b17] {  # if_5
-              %b16 = block {  # true
-                %43:bool = gt %x_71, %x_73
-                store %x_83, %43
-                %44:bool = load %x_83
-                store %x_85_phi, %44
+            %41:ptr<function, f32, read_write> = access %data, %x_72_save
+            %42:f32 = load %41
+            %x_73:f32 = let %42
+            %44:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_75:f32 = let %44
+            %46:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %47:f32 = load_vector_element %46, 1u
+            %x_77:f32 = let %47
+            %49:f32 = mul %x_77, 0.5f
+            %50:bool = lt %x_75, %49
+            if %50 [t: $B16, f: $B17] {  # if_5
+              $B16: {  # true
+                %51:bool = gt %x_71, %x_73
+                store %x_83, %51
+                %52:bool = load %x_83
+                store %x_85_phi, %52
                 exit_if  # if_5
               }
-              %b17 = block {  # false
-                %45:bool = lt %x_71, %x_73
-                store %x_84, %45
-                %46:bool = load %x_84
-                store %x_85_phi, %46
+              $B17: {  # false
+                %53:bool = lt %x_71, %x_73
+                store %x_84, %53
+                %54:bool = load %x_84
+                store %x_85_phi, %54
                 exit_if  # if_5
               }
             }
-            %x_85:bool = load %x_85_phi
-            if %x_85 [t: %b18] {  # if_6
-              %b18 = block {  # true
-                %48:ptr<function, f32, read_write> = access %data, %x_70_save
-                %x_88:f32 = load %48
-                %50:ptr<function, f32, read_write> = access %data, %x_72_save
-                %x_89:f32 = load %50
-                %52:ptr<function, f32, read_write> = access %data, %x_70_save
-                store %52, %x_89
-                %53:ptr<function, f32, read_write> = access %data, %x_72_save
-                store %53, %x_88
+            %55:bool = load %x_85_phi
+            %x_85:bool = let %55
+            if %x_85 [t: $B18] {  # if_6
+              $B18: {  # true
+                %57:ptr<function, f32, read_write> = access %data, %x_70_save
+                %58:f32 = load %57
+                %x_88:f32 = let %58
+                %60:ptr<function, f32, read_write> = access %data, %x_72_save
+                %61:f32 = load %60
+                %x_89:f32 = let %61
+                %63:ptr<function, f32, read_write> = access %data, %x_70_save
+                store %63, %x_89
+                %64:ptr<function, f32, read_write> = access %data, %x_72_save
+                store %64, %x_88
                 exit_if  # if_6
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %54:i32 = add %x_60, 1i
-            store %x_61, %54
-            %55:i32 = load %x_61
-            store %x_60_phi, %55
-            next_iteration %b11
+          $B12: {  # continuing
+            %65:i32 = add %x_60, 1i
+            store %x_61, %65
+            %66:i32 = load %x_61
+            store %x_60_phi, %66
+            next_iteration  # -> $B11
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %56:i32 = add %x_53, 1i
-        store %x_54, %56
-        %57:i32 = load %x_54
-        store %x_53_phi, %57
-        next_iteration %b7
+      $B8: {  # continuing
+        %67:i32 = add %x_53, 1i
+        store %x_54, %67
+        %68:i32 = load %x_54
+        store %x_53_phi, %68
+        next_iteration  # -> $B7
       }
     }
-    %x_91:f32 = load_vector_element %gl_FragCoord, 0u
-    %59:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_93:f32 = load_vector_element %59, 0u
-    %61:f32 = mul %x_93, 0.5f
-    %62:bool = lt %x_91, %61
-    if %62 [t: %b19, f: %b20] {  # if_7
-      %b19 = block {  # true
-        %63:ptr<function, f32, read_write> = access %data, 0i
-        %x_100:f32 = load %63
-        %65:ptr<function, f32, read_write> = access %data, 5i
-        %x_103:f32 = load %65
-        %67:ptr<function, f32, read_write> = access %data, 9i
-        %x_106:f32 = load %67
-        %69:f32 = mul %x_100, 0.10000000149011611938f
-        %70:f32 = mul %x_103, 0.10000000149011611938f
-        %71:f32 = mul %x_106, 0.10000000149011611938f
-        %72:vec4<f32> = construct %69, %70, %71, 1.0f
-        store %x_GLF_color, %72
+    %69:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_91:f32 = let %69
+    %71:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %72:f32 = load_vector_element %71, 0u
+    %x_93:f32 = let %72
+    %74:f32 = mul %x_93, 0.5f
+    %75:bool = lt %x_91, %74
+    if %75 [t: $B19, f: $B20] {  # if_7
+      $B19: {  # true
+        %76:ptr<function, f32, read_write> = access %data, 0i
+        %77:f32 = load %76
+        %x_100:f32 = let %77
+        %79:ptr<function, f32, read_write> = access %data, 5i
+        %80:f32 = load %79
+        %x_103:f32 = let %80
+        %82:ptr<function, f32, read_write> = access %data, 9i
+        %83:f32 = load %82
+        %x_106:f32 = let %83
+        %85:f32 = mul %x_100, 0.10000000149011611938f
+        %86:f32 = mul %x_103, 0.10000000149011611938f
+        %87:f32 = mul %x_106, 0.10000000149011611938f
+        %88:vec4<f32> = construct %85, %86, %87, 1.0f
+        store %x_GLF_color, %88
         exit_if  # if_7
       }
-      %b20 = block {  # false
-        %73:ptr<function, f32, read_write> = access %data, 5i
-        %x_110:f32 = load %73
-        %75:ptr<function, f32, read_write> = access %data, 9i
-        %x_113:f32 = load %75
-        %77:ptr<function, f32, read_write> = access %data, 0i
-        %x_116:f32 = load %77
-        %79:f32 = mul %x_110, 0.10000000149011611938f
-        %80:f32 = mul %x_113, 0.10000000149011611938f
-        %81:f32 = mul %x_116, 0.10000000149011611938f
-        %82:vec4<f32> = construct %79, %80, %81, 1.0f
-        store %x_GLF_color, %82
+      $B20: {  # false
+        %89:ptr<function, f32, read_write> = access %data, 5i
+        %90:f32 = load %89
+        %x_110:f32 = let %90
+        %92:ptr<function, f32, read_write> = access %data, 9i
+        %93:f32 = load %92
+        %x_113:f32 = let %93
+        %95:ptr<function, f32, read_write> = access %data, 0i
+        %96:f32 = load %95
+        %x_116:f32 = let %96
+        %98:f32 = mul %x_110, 0.10000000149011611938f
+        %99:f32 = mul %x_113, 0.10000000149011611938f
+        %100:f32 = mul %x_116, 0.10000000149011611938f
+        %101:vec4<f32> = construct %98, %99, %100, 1.0f
+        store %x_GLF_color, %101
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b21 {
-  %b21 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B21: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %85:void = call %main_1
-    %86:vec4<f32> = load %x_GLF_color
-    %87:main_out = construct %86
-    ret %87
+    %104:void = call %main_1
+    %105:vec4<f32> = load %x_GLF_color
+    %106:main_out = construct %105
+    ret %106
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.msl
index fe30786..ce13e24 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,167 +12,175 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %15:i32 = load %f
-    store %k, %15
     %16:i32 = load %f
-    store %i, %16
-    %17:i32 = load %mid
-    %18:i32 = add %17, 1i
-    store %j, %18
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %19:i32 = load %i
-        %20:i32 = load %mid
-        %21:bool = lte %19, %20
-        %22:i32 = load %j
-        %23:i32 = load %to
-        %24:bool = lte %22, %23
-        %25:bool = and %21, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %16
+    %17:i32 = load %f
+    store %i, %17
+    %18:i32 = load %mid
+    %19:i32 = add %18, 1i
+    store %j, %19
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:i32 = load %i
+        %21:i32 = load %mid
+        %22:bool = lte %20, %21
+        %23:i32 = load %j
+        %24:i32 = load %to
+        %25:bool = lte %23, %24
+        %26:bool = and %22, %25
+        if %26 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:i32 = load %i
-        %27:ptr<private, i32, read_write> = access %data, %26
-        %28:i32 = load %27
-        %29:i32 = load %j
-        %30:ptr<private, i32, read_write> = access %data, %29
-        %31:i32 = load %30
-        %32:bool = lt %28, %31
-        if %32 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_282:i32 = load %k
+        %27:i32 = load %i
+        %28:ptr<private, i32, read_write> = access %data, %27
+        %29:i32 = load %28
+        %30:i32 = load %j
+        %31:ptr<private, i32, read_write> = access %data, %30
+        %32:i32 = load %31
+        %33:bool = lt %29, %32
+        if %33 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %34:i32 = load %k
-            %35:i32 = add %34, 1i
-            store %k, %35
-            %x_284:i32 = load %i
-            %37:i32 = load %i
-            %38:i32 = add %37, 1i
-            store %i, %38
-            %39:ptr<private, i32, read_write> = access %temp, %x_282
-            %40:ptr<private, i32, read_write> = access %data, %x_284
-            %41:i32 = load %40
-            store %39, %41
+            %x_282:i32 = let %34
+            %36:i32 = load %k
+            %37:i32 = add %36, 1i
+            store %k, %37
+            %38:i32 = load %i
+            %x_284:i32 = let %38
+            %40:i32 = load %i
+            %41:i32 = add %40, 1i
+            store %i, %41
+            %42:ptr<private, i32, read_write> = access %temp, %x_282
+            %43:ptr<private, i32, read_write> = access %data, %x_284
+            %44:i32 = load %43
+            store %42, %44
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_289:i32 = load %k
-            %43:i32 = load %k
-            %44:i32 = add %43, 1i
-            store %k, %44
-            %x_291:i32 = load %j
-            %46:i32 = load %j
-            %47:i32 = add %46, 1i
-            store %j, %47
-            %48:ptr<private, i32, read_write> = access %temp, %x_289
-            %49:ptr<private, i32, read_write> = access %data, %x_291
-            %50:i32 = load %49
-            store %48, %50
+          $B8: {  # false
+            %45:i32 = load %k
+            %x_289:i32 = let %45
+            %47:i32 = load %k
+            %48:i32 = add %47, 1i
+            store %k, %48
+            %49:i32 = load %j
+            %x_291:i32 = let %49
+            %51:i32 = load %j
+            %52:i32 = add %51, 1i
+            store %j, %52
+            %53:ptr<private, i32, read_write> = access %temp, %x_289
+            %54:ptr<private, i32, read_write> = access %data, %x_291
+            %55:i32 = load %54
+            store %53, %55
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        if true [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        if true [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
-            continue %b10
+          $B12: {  # false
+            continue  # -> $B10
           }
         }
-        %51:i32 = load %i
-        %52:bool = lt %51, 10i
-        %53:i32 = load %i
-        %54:i32 = load %mid
-        %55:bool = lte %53, %54
-        %56:bool = and %52, %55
-        if %56 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
+        %56:i32 = load %i
+        %57:bool = lt %56, 10i
+        %58:i32 = load %i
+        %59:i32 = load %mid
+        %60:bool = lte %58, %59
+        %61:bool = and %57, %60
+        if %61 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
             exit_if  # if_4
           }
-          %b14 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_309:i32 = load %k
-        %58:i32 = load %k
-        %59:i32 = add %58, 1i
-        store %k, %59
-        %x_311:i32 = load %i
-        %61:i32 = load %i
-        %62:i32 = add %61, 1i
-        store %i, %62
-        %63:ptr<private, i32, read_write> = access %temp, %x_309
-        %64:ptr<private, i32, read_write> = access %data, %x_311
-        %65:i32 = load %64
-        store %63, %65
-        continue %b10
+        %62:i32 = load %k
+        %x_309:i32 = let %62
+        %64:i32 = load %k
+        %65:i32 = add %64, 1i
+        store %k, %65
+        %66:i32 = load %i
+        %x_311:i32 = let %66
+        %68:i32 = load %i
+        %69:i32 = add %68, 1i
+        store %i, %69
+        %70:ptr<private, i32, read_write> = access %temp, %x_309
+        %71:ptr<private, i32, read_write> = access %data, %x_311
+        %72:i32 = load %71
+        store %70, %72
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %66:i32 = load %f
-    store %i_1, %66
-    loop [b: %b15, c: %b16] {  # loop_3
-      %b15 = block {  # body
-        %67:i32 = load %i_1
-        %68:i32 = load %to
-        %69:bool = lte %67, %68
-        if %69 [t: %b17, f: %b18] {  # if_5
-          %b17 = block {  # true
+    %73:i32 = load %f
+    store %i_1, %73
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %74:i32 = load %i_1
+        %75:i32 = load %to
+        %76:bool = lte %74, %75
+        if %76 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
             exit_if  # if_5
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_325:i32 = load %i_1
-        %71:ptr<private, i32, read_write> = access %data, %x_325
-        %72:i32 = load %i_1
-        %73:ptr<private, i32, read_write> = access %temp, %72
-        %74:i32 = load %73
-        store %71, %74
-        continue %b16
+        %77:i32 = load %i_1
+        %x_325:i32 = let %77
+        %79:ptr<private, i32, read_write> = access %data, %x_325
+        %80:i32 = load %i_1
+        %81:ptr<private, i32, read_write> = access %temp, %80
+        %82:i32 = load %81
+        store %79, %82
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        %75:i32 = load %i_1
-        %76:i32 = add %75, 1i
-        store %i_1, %76
-        next_iteration %b15
+      $B16: {  # continuing
+        %83:i32 = load %i_1
+        %84:i32 = add %83, 1i
+        store %i_1, %84
+        next_iteration  # -> $B15
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b19 {
-  %b19 = block {
+%mergeSort_ = func():void {
+  $B19: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -186,319 +194,332 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b20, c: %b21] {  # loop_4
-      %b20 = block {  # body
-        %88:i32 = load %m
-        %89:i32 = load %high
-        %90:bool = lte %88, %89
-        if %90 [t: %b22, f: %b23] {  # if_6
-          %b22 = block {  # true
+    loop [b: $B20, c: $B21] {  # loop_4
+      $B20: {  # body
+        %96:i32 = load %m
+        %97:i32 = load %high
+        %98:bool = lte %96, %97
+        if %98 [t: $B22, f: $B23] {  # if_6
+          $B22: {  # true
             exit_if  # if_6
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_4
           }
         }
-        %91:i32 = load %low
-        store %i_2, %91
-        loop [b: %b24, c: %b25] {  # loop_5
-          %b24 = block {  # body
-            %92:i32 = load %i_2
-            %93:i32 = load %high
-            %94:bool = lt %92, %93
-            if %94 [t: %b26, f: %b27] {  # if_7
-              %b26 = block {  # true
+        %99:i32 = load %low
+        store %i_2, %99
+        loop [b: $B24, c: $B25] {  # loop_5
+          $B24: {  # body
+            %100:i32 = load %i_2
+            %101:i32 = load %high
+            %102:bool = lt %100, %101
+            if %102 [t: $B26, f: $B27] {  # if_7
+              $B26: {  # true
                 exit_if  # if_7
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_5
               }
             }
-            %95:i32 = load %i_2
-            store %f_1, %95
-            %96:i32 = load %i_2
-            %97:i32 = load %m
-            %98:i32 = add %96, %97
-            %99:i32 = sub %98, 1i
-            store %mid_1, %99
-            %100:i32 = load %i_2
-            %101:i32 = load %m
-            %102:i32 = mul 2i, %101
-            %103:i32 = add %100, %102
-            %104:i32 = sub %103, 1i
-            %105:i32 = load %high
-            %106:i32 = min %104, %105
-            store %to_1, %106
-            %107:i32 = load %f_1
-            store %param, %107
-            %108:i32 = load %mid_1
-            store %param_1, %108
-            %109:i32 = load %to_1
-            store %param_2, %109
-            %110:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b25
+            %103:i32 = load %i_2
+            store %f_1, %103
+            %104:i32 = load %i_2
+            %105:i32 = load %m
+            %106:i32 = add %104, %105
+            %107:i32 = sub %106, 1i
+            store %mid_1, %107
+            %108:i32 = load %i_2
+            %109:i32 = load %m
+            %110:i32 = mul 2i, %109
+            %111:i32 = add %108, %110
+            %112:i32 = sub %111, 1i
+            %113:i32 = load %high
+            %114:i32 = min %112, %113
+            store %to_1, %114
+            %115:i32 = load %f_1
+            store %param, %115
+            %116:i32 = load %mid_1
+            store %param_1, %116
+            %117:i32 = load %to_1
+            store %param_2, %117
+            %118:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
-            %111:i32 = load %i_2
-            %112:i32 = load %m
-            %113:i32 = mul 2i, %112
-            %114:i32 = add %111, %113
-            store %i_2, %114
-            next_iteration %b24
+          $B25: {  # continuing
+            %119:i32 = load %i_2
+            %120:i32 = load %m
+            %121:i32 = mul 2i, %120
+            %122:i32 = add %119, %121
+            store %i_2, %122
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %115:i32 = load %m
-        %116:i32 = mul 2i, %115
-        store %m, %116
-        next_iteration %b20
+      $B21: {  # continuing
+        %123:i32 = load %m
+        %124:i32 = mul 2i, %123
+        store %m, %124
+        next_iteration  # -> $B20
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b28 {
-  %b28 = block {
+%main_1 = func():void {
+  $B28: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %121:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %122:f32 = load_vector_element %121, 0u
-    %123:i32 = convert %122
-    store %i_3, %123
-    loop [b: %b29, c: %b30] {  # loop_6
-      %b29 = block {  # body
-        %x_95:i32 = load %i_3
-        switch %x_95 [c: (9i, %b31), c: (8i, %b32), c: (7i, %b33), c: (6i, %b34), c: (5i, %b35), c: (4i, %b36), c: (3i, %b37), c: (2i, %b38), c: (1i, %b39), c: (0i, %b40), c: (default, %b41)] {  # switch_1
-          %b31 = block {  # case
-            %x_125:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_125
-            store %126, -5i
+    %129:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %130:f32 = load_vector_element %129, 0u
+    %131:i32 = call %tint_f32_to_i32, %130
+    store %i_3, %131
+    loop [b: $B29, c: $B30] {  # loop_6
+      $B29: {  # body
+        %133:i32 = load %i_3
+        %x_95:i32 = let %133
+        switch %x_95 [c: (9i, $B31), c: (8i, $B32), c: (7i, $B33), c: (6i, $B34), c: (5i, $B35), c: (4i, $B36), c: (3i, $B37), c: (2i, $B38), c: (1i, $B39), c: (0i, $B40), c: (default, $B41)] {  # switch_1
+          $B31: {  # case
+            %135:i32 = load %i_3
+            %x_125:i32 = let %135
+            %137:ptr<private, i32, read_write> = access %data, %x_125
+            store %137, -5i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_123:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_123
-            store %128, -4i
+          $B32: {  # case
+            %138:i32 = load %i_3
+            %x_123:i32 = let %138
+            %140:ptr<private, i32, read_write> = access %data, %x_123
+            store %140, -4i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_121:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_121
-            store %130, -3i
+          $B33: {  # case
+            %141:i32 = load %i_3
+            %x_121:i32 = let %141
+            %143:ptr<private, i32, read_write> = access %data, %x_121
+            store %143, -3i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_119:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_119
-            store %132, -2i
+          $B34: {  # case
+            %144:i32 = load %i_3
+            %x_119:i32 = let %144
+            %146:ptr<private, i32, read_write> = access %data, %x_119
+            store %146, -2i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_117:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_117
-            store %134, -1i
+          $B35: {  # case
+            %147:i32 = load %i_3
+            %x_117:i32 = let %147
+            %149:ptr<private, i32, read_write> = access %data, %x_117
+            store %149, -1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_115:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_115
-            store %136, 0i
+          $B36: {  # case
+            %150:i32 = load %i_3
+            %x_115:i32 = let %150
+            %152:ptr<private, i32, read_write> = access %data, %x_115
+            store %152, 0i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_113:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_113
-            store %138, 1i
+          $B37: {  # case
+            %153:i32 = load %i_3
+            %x_113:i32 = let %153
+            %155:ptr<private, i32, read_write> = access %data, %x_113
+            store %155, 1i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_111:i32 = load %i_3
-            %140:ptr<private, i32, read_write> = access %data, %x_111
-            store %140, 2i
+          $B38: {  # case
+            %156:i32 = load %i_3
+            %x_111:i32 = let %156
+            %158:ptr<private, i32, read_write> = access %data, %x_111
+            store %158, 2i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
-            %x_109:i32 = load %i_3
-            %142:ptr<private, i32, read_write> = access %data, %x_109
-            store %142, 3i
+          $B39: {  # case
+            %159:i32 = load %i_3
+            %x_109:i32 = let %159
+            %161:ptr<private, i32, read_write> = access %data, %x_109
+            store %161, 3i
             exit_switch  # switch_1
           }
-          %b40 = block {  # case
-            %x_107:i32 = load %i_3
-            %144:ptr<private, i32, read_write> = access %data, %x_107
-            store %144, 4i
+          $B40: {  # case
+            %162:i32 = load %i_3
+            %x_107:i32 = let %162
+            %164:ptr<private, i32, read_write> = access %data, %x_107
+            store %164, 4i
             exit_switch  # switch_1
           }
-          %b41 = block {  # case
+          $B41: {  # case
             exit_switch  # switch_1
           }
         }
-        %145:i32 = load %i_3
-        %146:i32 = add %145, 1i
-        store %i_3, %146
-        continue %b30
+        %165:i32 = load %i_3
+        %166:i32 = add %165, 1i
+        store %i_3, %166
+        continue  # -> $B30
       }
-      %b30 = block {  # continuing
-        %x_129:i32 = load %i_3
-        %148:bool = lt %x_129, 10i
-        %149:bool = eq %148, false
-        break_if %149 %b29
+      $B30: {  # continuing
+        %167:i32 = load %i_3
+        %x_129:i32 = let %167
+        %169:bool = lt %x_129, 10i
+        %170:bool = eq %169, false
+        break_if %170  # -> [t: exit_loop loop_6, f: $B29]
       }
     }
     store %j_1, 0i
-    loop [b: %b42, c: %b43] {  # loop_7
-      %b42 = block {  # body
-        %150:i32 = load %j_1
-        %151:bool = lt %150, 10i
-        if %151 [t: %b44, f: %b45] {  # if_8
-          %b44 = block {  # true
+    loop [b: $B42, c: $B43] {  # loop_7
+      $B42: {  # body
+        %171:i32 = load %j_1
+        %172:bool = lt %171, 10i
+        if %172 [t: $B44, f: $B45] {  # if_8
+          $B44: {  # true
             exit_if  # if_8
           }
-          %b45 = block {  # false
+          $B45: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_138:i32 = load %j_1
-        %153:ptr<private, i32, read_write> = access %temp, %x_138
-        %154:i32 = load %j_1
-        %155:ptr<private, i32, read_write> = access %data, %154
-        %156:i32 = load %155
-        store %153, %156
-        continue %b43
+        %173:i32 = load %j_1
+        %x_138:i32 = let %173
+        %175:ptr<private, i32, read_write> = access %temp, %x_138
+        %176:i32 = load %j_1
+        %177:ptr<private, i32, read_write> = access %data, %176
+        %178:i32 = load %177
+        store %175, %178
+        continue  # -> $B43
       }
-      %b43 = block {  # continuing
-        %157:i32 = load %j_1
-        %158:i32 = add %157, 1i
-        store %j_1, %158
-        next_iteration %b42
+      $B43: {  # continuing
+        %179:i32 = load %j_1
+        %180:i32 = add %179, 1i
+        store %j_1, %180
+        next_iteration  # -> $B42
       }
     }
-    %159:void = call %mergeSort_
-    %160:f32 = load_vector_element %gl_FragCoord, 1u
-    %161:i32 = convert %160
-    %162:bool = lt %161, 30i
-    if %162 [t: %b46, f: %b47] {  # if_9
-      %b46 = block {  # true
-        %163:ptr<private, i32, read_write> = access %data, 0i
-        %164:i32 = load %163
-        %165:f32 = convert %164
-        %166:f32 = div %165, 10.0f
-        %167:f32 = add 0.5f, %166
-        store %grey, %167
+    %181:void = call %mergeSort_
+    %182:f32 = load_vector_element %gl_FragCoord, 1u
+    %183:i32 = call %tint_f32_to_i32, %182
+    %184:bool = lt %183, 30i
+    if %184 [t: $B46, f: $B47] {  # if_9
+      $B46: {  # true
+        %185:ptr<private, i32, read_write> = access %data, 0i
+        %186:i32 = load %185
+        %187:f32 = convert %186
+        %188:f32 = div %187, 10.0f
+        %189:f32 = add 0.5f, %188
+        store %grey, %189
         exit_if  # if_9
       }
-      %b47 = block {  # false
-        %168:f32 = load_vector_element %gl_FragCoord, 1u
-        %169:i32 = convert %168
-        %170:bool = lt %169, 60i
-        if %170 [t: %b48, f: %b49] {  # if_10
-          %b48 = block {  # true
-            %171:ptr<private, i32, read_write> = access %data, 1i
-            %172:i32 = load %171
-            %173:f32 = convert %172
-            %174:f32 = div %173, 10.0f
-            %175:f32 = add 0.5f, %174
-            store %grey, %175
+      $B47: {  # false
+        %190:f32 = load_vector_element %gl_FragCoord, 1u
+        %191:i32 = call %tint_f32_to_i32, %190
+        %192:bool = lt %191, 60i
+        if %192 [t: $B48, f: $B49] {  # if_10
+          $B48: {  # true
+            %193:ptr<private, i32, read_write> = access %data, 1i
+            %194:i32 = load %193
+            %195:f32 = convert %194
+            %196:f32 = div %195, 10.0f
+            %197:f32 = add 0.5f, %196
+            store %grey, %197
             exit_if  # if_10
           }
-          %b49 = block {  # false
-            %176:f32 = load_vector_element %gl_FragCoord, 1u
-            %177:i32 = convert %176
-            %178:bool = lt %177, 90i
-            if %178 [t: %b50, f: %b51] {  # if_11
-              %b50 = block {  # true
-                %179:ptr<private, i32, read_write> = access %data, 2i
-                %180:i32 = load %179
-                %181:f32 = convert %180
-                %182:f32 = div %181, 10.0f
-                %183:f32 = add 0.5f, %182
-                store %grey, %183
+          $B49: {  # false
+            %198:f32 = load_vector_element %gl_FragCoord, 1u
+            %199:i32 = call %tint_f32_to_i32, %198
+            %200:bool = lt %199, 90i
+            if %200 [t: $B50, f: $B51] {  # if_11
+              $B50: {  # true
+                %201:ptr<private, i32, read_write> = access %data, 2i
+                %202:i32 = load %201
+                %203:f32 = convert %202
+                %204:f32 = div %203, 10.0f
+                %205:f32 = add 0.5f, %204
+                store %grey, %205
                 exit_if  # if_11
               }
-              %b51 = block {  # false
-                %184:f32 = load_vector_element %gl_FragCoord, 1u
-                %185:i32 = convert %184
-                %186:bool = lt %185, 120i
-                if %186 [t: %b52, f: %b53] {  # if_12
-                  %b52 = block {  # true
-                    %187:ptr<private, i32, read_write> = access %data, 3i
-                    %188:i32 = load %187
-                    %189:f32 = convert %188
-                    %190:f32 = div %189, 10.0f
-                    %191:f32 = add 0.5f, %190
-                    store %grey, %191
+              $B51: {  # false
+                %206:f32 = load_vector_element %gl_FragCoord, 1u
+                %207:i32 = call %tint_f32_to_i32, %206
+                %208:bool = lt %207, 120i
+                if %208 [t: $B52, f: $B53] {  # if_12
+                  $B52: {  # true
+                    %209:ptr<private, i32, read_write> = access %data, 3i
+                    %210:i32 = load %209
+                    %211:f32 = convert %210
+                    %212:f32 = div %211, 10.0f
+                    %213:f32 = add 0.5f, %212
+                    store %grey, %213
                     exit_if  # if_12
                   }
-                  %b53 = block {  # false
-                    %192:f32 = load_vector_element %gl_FragCoord, 1u
-                    %193:i32 = convert %192
-                    %194:bool = lt %193, 150i
-                    if %194 [t: %b54, f: %b55] {  # if_13
-                      %b54 = block {  # true
-                        discard
+                  $B53: {  # false
+                    %214:f32 = load_vector_element %gl_FragCoord, 1u
+                    %215:i32 = call %tint_f32_to_i32, %214
+                    %216:bool = lt %215, 150i
+                    if %216 [t: $B54, f: $B55] {  # if_13
+                      $B54: {  # true
+                        store %continue_execution, false
                         exit_if  # if_13
                       }
-                      %b55 = block {  # false
-                        %195:f32 = load_vector_element %gl_FragCoord, 1u
-                        %196:i32 = convert %195
-                        %197:bool = lt %196, 180i
-                        if %197 [t: %b56, f: %b57] {  # if_14
-                          %b56 = block {  # true
-                            %198:ptr<private, i32, read_write> = access %data, 5i
-                            %199:i32 = load %198
-                            %200:f32 = convert %199
-                            %201:f32 = div %200, 10.0f
-                            %202:f32 = add 0.5f, %201
-                            store %grey, %202
+                      $B55: {  # false
+                        %217:f32 = load_vector_element %gl_FragCoord, 1u
+                        %218:i32 = call %tint_f32_to_i32, %217
+                        %219:bool = lt %218, 180i
+                        if %219 [t: $B56, f: $B57] {  # if_14
+                          $B56: {  # true
+                            %220:ptr<private, i32, read_write> = access %data, 5i
+                            %221:i32 = load %220
+                            %222:f32 = convert %221
+                            %223:f32 = div %222, 10.0f
+                            %224:f32 = add 0.5f, %223
+                            store %grey, %224
                             exit_if  # if_14
                           }
-                          %b57 = block {  # false
-                            %203:f32 = load_vector_element %gl_FragCoord, 1u
-                            %204:i32 = convert %203
-                            %205:bool = lt %204, 210i
-                            if %205 [t: %b58, f: %b59] {  # if_15
-                              %b58 = block {  # true
-                                %206:ptr<private, i32, read_write> = access %data, 6i
-                                %207:i32 = load %206
-                                %208:f32 = convert %207
-                                %209:f32 = div %208, 10.0f
-                                %210:f32 = add 0.5f, %209
-                                store %grey, %210
+                          $B57: {  # false
+                            %225:f32 = load_vector_element %gl_FragCoord, 1u
+                            %226:i32 = call %tint_f32_to_i32, %225
+                            %227:bool = lt %226, 210i
+                            if %227 [t: $B58, f: $B59] {  # if_15
+                              $B58: {  # true
+                                %228:ptr<private, i32, read_write> = access %data, 6i
+                                %229:i32 = load %228
+                                %230:f32 = convert %229
+                                %231:f32 = div %230, 10.0f
+                                %232:f32 = add 0.5f, %231
+                                store %grey, %232
                                 exit_if  # if_15
                               }
-                              %b59 = block {  # false
-                                %211:f32 = load_vector_element %gl_FragCoord, 1u
-                                %212:i32 = convert %211
-                                %213:bool = lt %212, 240i
-                                if %213 [t: %b60, f: %b61] {  # if_16
-                                  %b60 = block {  # true
-                                    %214:ptr<private, i32, read_write> = access %data, 7i
-                                    %215:i32 = load %214
-                                    %216:f32 = convert %215
-                                    %217:f32 = div %216, 10.0f
-                                    %218:f32 = add 0.5f, %217
-                                    store %grey, %218
+                              $B59: {  # false
+                                %233:f32 = load_vector_element %gl_FragCoord, 1u
+                                %234:i32 = call %tint_f32_to_i32, %233
+                                %235:bool = lt %234, 240i
+                                if %235 [t: $B60, f: $B61] {  # if_16
+                                  $B60: {  # true
+                                    %236:ptr<private, i32, read_write> = access %data, 7i
+                                    %237:i32 = load %236
+                                    %238:f32 = convert %237
+                                    %239:f32 = div %238, 10.0f
+                                    %240:f32 = add 0.5f, %239
+                                    store %grey, %240
                                     exit_if  # if_16
                                   }
-                                  %b61 = block {  # false
-                                    %219:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %220:i32 = convert %219
-                                    %221:bool = lt %220, 270i
-                                    if %221 [t: %b62, f: %b63] {  # if_17
-                                      %b62 = block {  # true
-                                        %222:ptr<private, i32, read_write> = access %data, 8i
-                                        %223:i32 = load %222
-                                        %224:f32 = convert %223
-                                        %225:f32 = div %224, 10.0f
-                                        %226:f32 = add 0.5f, %225
-                                        store %grey, %226
+                                  $B61: {  # false
+                                    %241:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %242:i32 = call %tint_f32_to_i32, %241
+                                    %243:bool = lt %242, 270i
+                                    if %243 [t: $B62, f: $B63] {  # if_17
+                                      $B62: {  # true
+                                        %244:ptr<private, i32, read_write> = access %data, 8i
+                                        %245:i32 = load %244
+                                        %246:f32 = convert %245
+                                        %247:f32 = div %246, 10.0f
+                                        %248:f32 = add 0.5f, %247
+                                        store %grey, %248
                                         exit_if  # if_17
                                       }
-                                      %b63 = block {  # false
-                                        discard
+                                      $B63: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_17
                                       }
                                     }
@@ -526,23 +547,41 @@
         exit_if  # if_9
       }
     }
-    %227:f32 = load %grey
-    %x_250:vec3<f32> = construct %227
-    %229:f32 = access %x_250, 0u
-    %230:f32 = access %x_250, 1u
-    %231:f32 = access %x_250, 2u
-    %232:vec4<f32> = construct %229, %230, %231, 1.0f
-    store %x_GLF_color, %232
+    %249:f32 = load %grey
+    %250:vec3<f32> = construct %249
+    %x_250:vec3<f32> = let %250
+    %252:f32 = access %x_250, 0u
+    %253:f32 = access %x_250, 1u
+    %254:f32 = access %x_250, 2u
+    %255:vec4<f32> = construct %252, %253, %254, 1.0f
+    store %x_GLF_color, %255
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b64 {
-  %b64 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B64: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %235:void = call %main_1
-    %236:vec4<f32> = load %x_GLF_color
-    %237:main_out = construct %236
-    ret %237
+    %258:void = call %main_1
+    %259:vec4<f32> = load %x_GLF_color
+    %260:main_out = construct %259
+    %261:bool = load %continue_execution
+    %262:bool = eq %261, false
+    if %262 [t: $B65] {  # if_18
+      $B65: {  # true
+        terminate_invocation
+      }
+    }
+    ret %260
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B66: {
+    %264:i32 = convert %value
+    %265:bool = gte %value, -2147483648.0f
+    %266:i32 = select -2147483648i, %264, %265
+    %267:bool = lte %value, 2147483520.0f
+    %268:i32 = select 2147483647i, %266, %267
+    ret %268
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.msl
index 1bf7226..4875de3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-double-branch-to-same-block3/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,161 +12,192 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf1, read> = var @binding_point(0, 1)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_256:i32 = load %f
+    %16:i32 = load %f
+    %x_256:i32 = let %16
     store %k, %x_256
-    %x_257:i32 = load %f
+    %18:i32 = load %f
+    %x_257:i32 = let %18
     store %i, %x_257
-    %x_258:i32 = load %mid
-    %18:i32 = add %x_258, 1i
-    store %j, %18
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_264:i32 = load %i
-        %x_265:i32 = load %mid
-        %x_267:i32 = load %j
-        %x_268:i32 = load %to
-        %23:bool = lte %x_264, %x_265
-        %24:bool = lte %x_267, %x_268
-        %25:bool = and %23, %24
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %20:i32 = load %mid
+    %x_258:i32 = let %20
+    %22:i32 = add %x_258, 1i
+    store %j, %22
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %23:i32 = load %i
+        %x_264:i32 = let %23
+        %25:i32 = load %mid
+        %x_265:i32 = let %25
+        %27:i32 = load %j
+        %x_267:i32 = let %27
+        %29:i32 = load %to
+        %x_268:i32 = let %29
+        %31:bool = lte %x_264, %x_265
+        %32:bool = lte %x_267, %x_268
+        %33:bool = and %31, %32
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_272:i32 = load %i
-        %27:ptr<private, i32, read_write> = access %data, %x_272
-        %x_274:i32 = load %27
-        %x_275:i32 = load %j
-        %30:ptr<private, i32, read_write> = access %data, %x_275
-        %x_277:i32 = load %30
-        %32:bool = lt %x_274, %x_277
-        if %32 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_282:i32 = load %k
-            %34:i32 = add %x_282, 1i
-            store %k, %34
-            %x_284:i32 = load %i
-            %36:i32 = add %x_284, 1i
-            store %i, %36
-            %37:ptr<private, i32, read_write> = access %data, %x_284
-            %x_287:i32 = load %37
-            %39:ptr<private, i32, read_write> = access %temp, %x_282
-            store %39, %x_287
+        %34:i32 = load %i
+        %x_272:i32 = let %34
+        %36:ptr<private, i32, read_write> = access %data, %x_272
+        %37:i32 = load %36
+        %x_274:i32 = let %37
+        %39:i32 = load %j
+        %x_275:i32 = let %39
+        %41:ptr<private, i32, read_write> = access %data, %x_275
+        %42:i32 = load %41
+        %x_277:i32 = let %42
+        %44:bool = lt %x_274, %x_277
+        if %44 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %45:i32 = load %k
+            %x_282:i32 = let %45
+            %47:i32 = add %x_282, 1i
+            store %k, %47
+            %48:i32 = load %i
+            %x_284:i32 = let %48
+            %50:i32 = add %x_284, 1i
+            store %i, %50
+            %51:ptr<private, i32, read_write> = access %data, %x_284
+            %52:i32 = load %51
+            %x_287:i32 = let %52
+            %54:ptr<private, i32, read_write> = access %temp, %x_282
+            store %54, %x_287
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_289:i32 = load %k
-            %41:i32 = add %x_289, 1i
-            store %k, %41
-            %x_291:i32 = load %j
-            %43:i32 = add %x_291, 1i
-            store %j, %43
-            %44:ptr<private, i32, read_write> = access %data, %x_291
-            %x_294:i32 = load %44
-            %46:ptr<private, i32, read_write> = access %temp, %x_289
-            store %46, %x_294
+          $B8: {  # false
+            %55:i32 = load %k
+            %x_289:i32 = let %55
+            %57:i32 = add %x_289, 1i
+            store %k, %57
+            %58:i32 = load %j
+            %x_291:i32 = let %58
+            %60:i32 = add %x_291, 1i
+            store %j, %60
+            %61:ptr<private, i32, read_write> = access %data, %x_291
+            %62:i32 = load %61
+            %x_294:i32 = let %62
+            %64:ptr<private, i32, read_write> = access %temp, %x_289
+            store %64, %x_294
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        if true [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        if true [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
-            continue %b10
+          $B12: {  # false
+            continue  # -> $B10
           }
         }
-        %x_301:i32 = load %i
-        %x_303:i32 = load %i
-        %x_304:i32 = load %mid
-        %50:bool = lt %x_301, 10i
-        %51:bool = lte %x_303, %x_304
-        %52:bool = and %50, %51
-        if %52 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
+        %65:i32 = load %i
+        %x_301:i32 = let %65
+        %67:i32 = load %i
+        %x_303:i32 = let %67
+        %69:i32 = load %mid
+        %x_304:i32 = let %69
+        %71:bool = lt %x_301, 10i
+        %72:bool = lte %x_303, %x_304
+        %73:bool = and %71, %72
+        if %73 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
             exit_if  # if_4
           }
-          %b14 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_309:i32 = load %k
-        %54:i32 = add %x_309, 1i
-        store %k, %54
-        %x_311:i32 = load %i
-        %56:i32 = add %x_311, 1i
-        store %i, %56
-        %57:ptr<private, i32, read_write> = access %data, %x_311
-        %x_314:i32 = load %57
-        %59:ptr<private, i32, read_write> = access %temp, %x_309
-        store %59, %x_314
-        continue %b10
+        %74:i32 = load %k
+        %x_309:i32 = let %74
+        %76:i32 = add %x_309, 1i
+        store %k, %76
+        %77:i32 = load %i
+        %x_311:i32 = let %77
+        %79:i32 = add %x_311, 1i
+        store %i, %79
+        %80:ptr<private, i32, read_write> = access %data, %x_311
+        %81:i32 = load %80
+        %x_314:i32 = let %81
+        %83:ptr<private, i32, read_write> = access %temp, %x_309
+        store %83, %x_314
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_316:i32 = load %f
+    %84:i32 = load %f
+    %x_316:i32 = let %84
     store %i_1, %x_316
-    loop [b: %b15, c: %b16] {  # loop_3
-      %b15 = block {  # body
-        %x_321:i32 = load %i_1
-        %x_322:i32 = load %to
-        %63:bool = lte %x_321, %x_322
-        if %63 [t: %b17, f: %b18] {  # if_5
-          %b17 = block {  # true
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %86:i32 = load %i_1
+        %x_321:i32 = let %86
+        %88:i32 = load %to
+        %x_322:i32 = let %88
+        %90:bool = lte %x_321, %x_322
+        if %90 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
             exit_if  # if_5
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_325:i32 = load %i_1
-        %x_326:i32 = load %i_1
-        %66:ptr<private, i32, read_write> = access %temp, %x_326
-        %x_328:i32 = load %66
-        %68:ptr<private, i32, read_write> = access %data, %x_325
-        store %68, %x_328
-        continue %b16
+        %91:i32 = load %i_1
+        %x_325:i32 = let %91
+        %93:i32 = load %i_1
+        %x_326:i32 = let %93
+        %95:ptr<private, i32, read_write> = access %temp, %x_326
+        %96:i32 = load %95
+        %x_328:i32 = let %96
+        %98:ptr<private, i32, read_write> = access %data, %x_325
+        store %98, %x_328
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        %x_330:i32 = load %i_1
-        %70:i32 = add %x_330, 1i
-        store %i_1, %70
-        next_iteration %b15
+      $B16: {  # continuing
+        %99:i32 = load %i_1
+        %x_330:i32 = let %99
+        %101:i32 = add %x_330, 1i
+        store %i_1, %101
+        next_iteration  # -> $B15
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b19 {
-  %b19 = block {
+%mergeSort_ = func():void {
+  $B19: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -180,319 +211,372 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b20, c: %b21] {  # loop_4
-      %b20 = block {  # body
-        %x_337:i32 = load %m
-        %x_338:i32 = load %high
-        %84:bool = lte %x_337, %x_338
-        if %84 [t: %b22, f: %b23] {  # if_6
-          %b22 = block {  # true
+    loop [b: $B20, c: $B21] {  # loop_4
+      $B20: {  # body
+        %113:i32 = load %m
+        %x_337:i32 = let %113
+        %115:i32 = load %high
+        %x_338:i32 = let %115
+        %117:bool = lte %x_337, %x_338
+        if %117 [t: $B22, f: $B23] {  # if_6
+          $B22: {  # true
             exit_if  # if_6
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_341:i32 = load %low
+        %118:i32 = load %low
+        %x_341:i32 = let %118
         store %i_2, %x_341
-        loop [b: %b24, c: %b25] {  # loop_5
-          %b24 = block {  # body
-            %x_346:i32 = load %i_2
-            %x_347:i32 = load %high
-            %88:bool = lt %x_346, %x_347
-            if %88 [t: %b26, f: %b27] {  # if_7
-              %b26 = block {  # true
+        loop [b: $B24, c: $B25] {  # loop_5
+          $B24: {  # body
+            %120:i32 = load %i_2
+            %x_346:i32 = let %120
+            %122:i32 = load %high
+            %x_347:i32 = let %122
+            %124:bool = lt %x_346, %x_347
+            if %124 [t: $B26, f: $B27] {  # if_7
+              $B26: {  # true
                 exit_if  # if_7
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_350:i32 = load %i_2
+            %125:i32 = load %i_2
+            %x_350:i32 = let %125
             store %f_1, %x_350
-            %x_351:i32 = load %i_2
-            %x_352:i32 = load %m
-            %92:i32 = add %x_351, %x_352
-            %93:i32 = sub %92, 1i
-            store %mid_1, %93
-            %x_355:i32 = load %i_2
-            %x_356:i32 = load %m
-            %x_360:i32 = load %high
-            %97:i32 = mul 2i, %x_356
-            %98:i32 = add %x_355, %97
-            %99:i32 = sub %98, 1i
-            %100:i32 = min %99, %x_360
-            store %to_1, %100
-            %x_362:i32 = load %f_1
+            %127:i32 = load %i_2
+            %x_351:i32 = let %127
+            %129:i32 = load %m
+            %x_352:i32 = let %129
+            %131:i32 = add %x_351, %x_352
+            %132:i32 = sub %131, 1i
+            store %mid_1, %132
+            %133:i32 = load %i_2
+            %x_355:i32 = let %133
+            %135:i32 = load %m
+            %x_356:i32 = let %135
+            %137:i32 = load %high
+            %x_360:i32 = let %137
+            %139:i32 = mul 2i, %x_356
+            %140:i32 = add %x_355, %139
+            %141:i32 = sub %140, 1i
+            %142:i32 = min %141, %x_360
+            store %to_1, %142
+            %143:i32 = load %f_1
+            %x_362:i32 = let %143
             store %param, %x_362
-            %x_363:i32 = load %mid_1
+            %145:i32 = load %mid_1
+            %x_363:i32 = let %145
             store %param_1, %x_363
-            %x_364:i32 = load %to_1
+            %147:i32 = load %to_1
+            %x_364:i32 = let %147
             store %param_2, %x_364
-            %104:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b25
+            %149:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
-            %x_366:i32 = load %m
-            %x_368:i32 = load %i_2
-            %107:i32 = mul 2i, %x_366
-            %108:i32 = add %x_368, %107
-            store %i_2, %108
-            next_iteration %b24
+          $B25: {  # continuing
+            %150:i32 = load %m
+            %x_366:i32 = let %150
+            %152:i32 = load %i_2
+            %x_368:i32 = let %152
+            %154:i32 = mul 2i, %x_366
+            %155:i32 = add %x_368, %154
+            store %i_2, %155
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %x_370:i32 = load %m
-        %110:i32 = mul 2i, %x_370
-        store %m, %110
-        next_iteration %b20
+      $B21: {  # continuing
+        %156:i32 = load %m
+        %x_370:i32 = let %156
+        %158:i32 = mul 2i, %x_370
+        store %m, %158
+        next_iteration  # -> $B20
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b28 {
-  %b28 = block {
+%main_1 = func():void {
+  $B28: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %115:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_89:f32 = load_vector_element %115, 0u
-    %117:i32 = convert %x_89
-    store %i_3, %117
-    loop [b: %b29, c: %b30] {  # loop_6
-      %b29 = block {  # body
-        %x_95:i32 = load %i_3
-        switch %x_95 [c: (9i, %b31), c: (8i, %b32), c: (7i, %b33), c: (6i, %b34), c: (5i, %b35), c: (4i, %b36), c: (3i, %b37), c: (2i, %b38), c: (1i, %b39), c: (0i, %b40), c: (default, %b41)] {  # switch_1
-          %b31 = block {  # case
-            %x_125:i32 = load %i_3
-            %120:ptr<private, i32, read_write> = access %data, %x_125
-            store %120, -5i
+    %163:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %164:f32 = load_vector_element %163, 0u
+    %x_89:f32 = let %164
+    %166:i32 = call %tint_f32_to_i32, %x_89
+    store %i_3, %166
+    loop [b: $B29, c: $B30] {  # loop_6
+      $B29: {  # body
+        %168:i32 = load %i_3
+        %x_95:i32 = let %168
+        switch %x_95 [c: (9i, $B31), c: (8i, $B32), c: (7i, $B33), c: (6i, $B34), c: (5i, $B35), c: (4i, $B36), c: (3i, $B37), c: (2i, $B38), c: (1i, $B39), c: (0i, $B40), c: (default, $B41)] {  # switch_1
+          $B31: {  # case
+            %170:i32 = load %i_3
+            %x_125:i32 = let %170
+            %172:ptr<private, i32, read_write> = access %data, %x_125
+            store %172, -5i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_123:i32 = load %i_3
-            %122:ptr<private, i32, read_write> = access %data, %x_123
-            store %122, -4i
+          $B32: {  # case
+            %173:i32 = load %i_3
+            %x_123:i32 = let %173
+            %175:ptr<private, i32, read_write> = access %data, %x_123
+            store %175, -4i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_121:i32 = load %i_3
-            %124:ptr<private, i32, read_write> = access %data, %x_121
-            store %124, -3i
+          $B33: {  # case
+            %176:i32 = load %i_3
+            %x_121:i32 = let %176
+            %178:ptr<private, i32, read_write> = access %data, %x_121
+            store %178, -3i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_119:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_119
-            store %126, -2i
+          $B34: {  # case
+            %179:i32 = load %i_3
+            %x_119:i32 = let %179
+            %181:ptr<private, i32, read_write> = access %data, %x_119
+            store %181, -2i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_117:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_117
-            store %128, -1i
+          $B35: {  # case
+            %182:i32 = load %i_3
+            %x_117:i32 = let %182
+            %184:ptr<private, i32, read_write> = access %data, %x_117
+            store %184, -1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_115:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_115
-            store %130, 0i
+          $B36: {  # case
+            %185:i32 = load %i_3
+            %x_115:i32 = let %185
+            %187:ptr<private, i32, read_write> = access %data, %x_115
+            store %187, 0i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_113:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_113
-            store %132, 1i
+          $B37: {  # case
+            %188:i32 = load %i_3
+            %x_113:i32 = let %188
+            %190:ptr<private, i32, read_write> = access %data, %x_113
+            store %190, 1i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_111:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_111
-            store %134, 2i
+          $B38: {  # case
+            %191:i32 = load %i_3
+            %x_111:i32 = let %191
+            %193:ptr<private, i32, read_write> = access %data, %x_111
+            store %193, 2i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
-            %x_109:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_109
-            store %136, 3i
+          $B39: {  # case
+            %194:i32 = load %i_3
+            %x_109:i32 = let %194
+            %196:ptr<private, i32, read_write> = access %data, %x_109
+            store %196, 3i
             exit_switch  # switch_1
           }
-          %b40 = block {  # case
-            %x_107:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_107
-            store %138, 4i
+          $B40: {  # case
+            %197:i32 = load %i_3
+            %x_107:i32 = let %197
+            %199:ptr<private, i32, read_write> = access %data, %x_107
+            store %199, 4i
             exit_switch  # switch_1
           }
-          %b41 = block {  # case
+          $B41: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_127:i32 = load %i_3
-        %140:i32 = add %x_127, 1i
-        store %i_3, %140
-        continue %b30
+        %200:i32 = load %i_3
+        %x_127:i32 = let %200
+        %202:i32 = add %x_127, 1i
+        store %i_3, %202
+        continue  # -> $B30
       }
-      %b30 = block {  # continuing
-        %x_129:i32 = load %i_3
-        %142:bool = lt %x_129, 10i
-        %143:bool = eq %142, false
-        break_if %143 %b29
+      $B30: {  # continuing
+        %203:i32 = load %i_3
+        %x_129:i32 = let %203
+        %205:bool = lt %x_129, 10i
+        %206:bool = eq %205, false
+        break_if %206  # -> [t: exit_loop loop_6, f: $B29]
       }
     }
     store %j_1, 0i
-    loop [b: %b42, c: %b43] {  # loop_7
-      %b42 = block {  # body
-        %x_135:i32 = load %j_1
-        %145:bool = lt %x_135, 10i
-        if %145 [t: %b44, f: %b45] {  # if_8
-          %b44 = block {  # true
+    loop [b: $B42, c: $B43] {  # loop_7
+      $B42: {  # body
+        %207:i32 = load %j_1
+        %x_135:i32 = let %207
+        %209:bool = lt %x_135, 10i
+        if %209 [t: $B44, f: $B45] {  # if_8
+          $B44: {  # true
             exit_if  # if_8
           }
-          %b45 = block {  # false
+          $B45: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_138:i32 = load %j_1
-        %x_139:i32 = load %j_1
-        %148:ptr<private, i32, read_write> = access %data, %x_139
-        %x_141:i32 = load %148
-        %150:ptr<private, i32, read_write> = access %temp, %x_138
-        store %150, %x_141
-        continue %b43
+        %210:i32 = load %j_1
+        %x_138:i32 = let %210
+        %212:i32 = load %j_1
+        %x_139:i32 = let %212
+        %214:ptr<private, i32, read_write> = access %data, %x_139
+        %215:i32 = load %214
+        %x_141:i32 = let %215
+        %217:ptr<private, i32, read_write> = access %temp, %x_138
+        store %217, %x_141
+        continue  # -> $B43
       }
-      %b43 = block {  # continuing
-        %x_143:i32 = load %j_1
-        %152:i32 = add %x_143, 1i
-        store %j_1, %152
-        next_iteration %b42
+      $B43: {  # continuing
+        %218:i32 = load %j_1
+        %x_143:i32 = let %218
+        %220:i32 = add %x_143, 1i
+        store %j_1, %220
+        next_iteration  # -> $B42
       }
     }
-    %153:void = call %mergeSort_
-    %x_147:f32 = load_vector_element %gl_FragCoord, 1u
-    %155:i32 = convert %x_147
-    %156:bool = lt %155, 30i
-    if %156 [t: %b46, f: %b47] {  # if_9
-      %b46 = block {  # true
-        %157:ptr<private, i32, read_write> = access %data, 0i
-        %x_154:i32 = load %157
-        %159:f32 = convert %x_154
-        %160:f32 = div %159, 10.0f
-        %161:f32 = add 0.5f, %160
-        store %grey, %161
+    %221:void = call %mergeSort_
+    %222:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_147:f32 = let %222
+    %224:i32 = call %tint_f32_to_i32, %x_147
+    %225:bool = lt %224, 30i
+    if %225 [t: $B46, f: $B47] {  # if_9
+      $B46: {  # true
+        %226:ptr<private, i32, read_write> = access %data, 0i
+        %227:i32 = load %226
+        %x_154:i32 = let %227
+        %229:f32 = convert %x_154
+        %230:f32 = div %229, 10.0f
+        %231:f32 = add 0.5f, %230
+        store %grey, %231
         exit_if  # if_9
       }
-      %b47 = block {  # false
-        %x_159:f32 = load_vector_element %gl_FragCoord, 1u
-        %163:i32 = convert %x_159
-        %164:bool = lt %163, 60i
-        if %164 [t: %b48, f: %b49] {  # if_10
-          %b48 = block {  # true
-            %165:ptr<private, i32, read_write> = access %data, 1i
-            %x_166:i32 = load %165
-            %167:f32 = convert %x_166
-            %168:f32 = div %167, 10.0f
-            %169:f32 = add 0.5f, %168
-            store %grey, %169
+      $B47: {  # false
+        %232:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_159:f32 = let %232
+        %234:i32 = call %tint_f32_to_i32, %x_159
+        %235:bool = lt %234, 60i
+        if %235 [t: $B48, f: $B49] {  # if_10
+          $B48: {  # true
+            %236:ptr<private, i32, read_write> = access %data, 1i
+            %237:i32 = load %236
+            %x_166:i32 = let %237
+            %239:f32 = convert %x_166
+            %240:f32 = div %239, 10.0f
+            %241:f32 = add 0.5f, %240
+            store %grey, %241
             exit_if  # if_10
           }
-          %b49 = block {  # false
-            %x_171:f32 = load_vector_element %gl_FragCoord, 1u
-            %171:i32 = convert %x_171
-            %172:bool = lt %171, 90i
-            if %172 [t: %b50, f: %b51] {  # if_11
-              %b50 = block {  # true
-                %173:ptr<private, i32, read_write> = access %data, 2i
-                %x_178:i32 = load %173
-                %175:f32 = convert %x_178
-                %176:f32 = div %175, 10.0f
-                %177:f32 = add 0.5f, %176
-                store %grey, %177
+          $B49: {  # false
+            %242:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_171:f32 = let %242
+            %244:i32 = call %tint_f32_to_i32, %x_171
+            %245:bool = lt %244, 90i
+            if %245 [t: $B50, f: $B51] {  # if_11
+              $B50: {  # true
+                %246:ptr<private, i32, read_write> = access %data, 2i
+                %247:i32 = load %246
+                %x_178:i32 = let %247
+                %249:f32 = convert %x_178
+                %250:f32 = div %249, 10.0f
+                %251:f32 = add 0.5f, %250
+                store %grey, %251
                 exit_if  # if_11
               }
-              %b51 = block {  # false
-                %x_183:f32 = load_vector_element %gl_FragCoord, 1u
-                %179:i32 = convert %x_183
-                %180:bool = lt %179, 120i
-                if %180 [t: %b52, f: %b53] {  # if_12
-                  %b52 = block {  # true
-                    %181:ptr<private, i32, read_write> = access %data, 3i
-                    %x_190:i32 = load %181
-                    %183:f32 = convert %x_190
-                    %184:f32 = div %183, 10.0f
-                    %185:f32 = add 0.5f, %184
-                    store %grey, %185
+              $B51: {  # false
+                %252:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_183:f32 = let %252
+                %254:i32 = call %tint_f32_to_i32, %x_183
+                %255:bool = lt %254, 120i
+                if %255 [t: $B52, f: $B53] {  # if_12
+                  $B52: {  # true
+                    %256:ptr<private, i32, read_write> = access %data, 3i
+                    %257:i32 = load %256
+                    %x_190:i32 = let %257
+                    %259:f32 = convert %x_190
+                    %260:f32 = div %259, 10.0f
+                    %261:f32 = add 0.5f, %260
+                    store %grey, %261
                     exit_if  # if_12
                   }
-                  %b53 = block {  # false
-                    %x_195:f32 = load_vector_element %gl_FragCoord, 1u
-                    %187:i32 = convert %x_195
-                    %188:bool = lt %187, 150i
-                    if %188 [t: %b54, f: %b55] {  # if_13
-                      %b54 = block {  # true
-                        discard
+                  $B53: {  # false
+                    %262:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_195:f32 = let %262
+                    %264:i32 = call %tint_f32_to_i32, %x_195
+                    %265:bool = lt %264, 150i
+                    if %265 [t: $B54, f: $B55] {  # if_13
+                      $B54: {  # true
+                        store %continue_execution, false
                         exit_if  # if_13
                       }
-                      %b55 = block {  # false
-                        %x_202:f32 = load_vector_element %gl_FragCoord, 1u
-                        %190:i32 = convert %x_202
-                        %191:bool = lt %190, 180i
-                        if %191 [t: %b56, f: %b57] {  # if_14
-                          %b56 = block {  # true
-                            %192:ptr<private, i32, read_write> = access %data, 5i
-                            %x_209:i32 = load %192
-                            %194:f32 = convert %x_209
-                            %195:f32 = div %194, 10.0f
-                            %196:f32 = add 0.5f, %195
-                            store %grey, %196
+                      $B55: {  # false
+                        %266:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_202:f32 = let %266
+                        %268:i32 = call %tint_f32_to_i32, %x_202
+                        %269:bool = lt %268, 180i
+                        if %269 [t: $B56, f: $B57] {  # if_14
+                          $B56: {  # true
+                            %270:ptr<private, i32, read_write> = access %data, 5i
+                            %271:i32 = load %270
+                            %x_209:i32 = let %271
+                            %273:f32 = convert %x_209
+                            %274:f32 = div %273, 10.0f
+                            %275:f32 = add 0.5f, %274
+                            store %grey, %275
                             exit_if  # if_14
                           }
-                          %b57 = block {  # false
-                            %x_214:f32 = load_vector_element %gl_FragCoord, 1u
-                            %198:i32 = convert %x_214
-                            %199:bool = lt %198, 210i
-                            if %199 [t: %b58, f: %b59] {  # if_15
-                              %b58 = block {  # true
-                                %200:ptr<private, i32, read_write> = access %data, 6i
-                                %x_221:i32 = load %200
-                                %202:f32 = convert %x_221
-                                %203:f32 = div %202, 10.0f
-                                %204:f32 = add 0.5f, %203
-                                store %grey, %204
+                          $B57: {  # false
+                            %276:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_214:f32 = let %276
+                            %278:i32 = call %tint_f32_to_i32, %x_214
+                            %279:bool = lt %278, 210i
+                            if %279 [t: $B58, f: $B59] {  # if_15
+                              $B58: {  # true
+                                %280:ptr<private, i32, read_write> = access %data, 6i
+                                %281:i32 = load %280
+                                %x_221:i32 = let %281
+                                %283:f32 = convert %x_221
+                                %284:f32 = div %283, 10.0f
+                                %285:f32 = add 0.5f, %284
+                                store %grey, %285
                                 exit_if  # if_15
                               }
-                              %b59 = block {  # false
-                                %x_226:f32 = load_vector_element %gl_FragCoord, 1u
-                                %206:i32 = convert %x_226
-                                %207:bool = lt %206, 240i
-                                if %207 [t: %b60, f: %b61] {  # if_16
-                                  %b60 = block {  # true
-                                    %208:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_233:i32 = load %208
-                                    %210:f32 = convert %x_233
-                                    %211:f32 = div %210, 10.0f
-                                    %212:f32 = add 0.5f, %211
-                                    store %grey, %212
+                              $B59: {  # false
+                                %286:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_226:f32 = let %286
+                                %288:i32 = call %tint_f32_to_i32, %x_226
+                                %289:bool = lt %288, 240i
+                                if %289 [t: $B60, f: $B61] {  # if_16
+                                  $B60: {  # true
+                                    %290:ptr<private, i32, read_write> = access %data, 7i
+                                    %291:i32 = load %290
+                                    %x_233:i32 = let %291
+                                    %293:f32 = convert %x_233
+                                    %294:f32 = div %293, 10.0f
+                                    %295:f32 = add 0.5f, %294
+                                    store %grey, %295
                                     exit_if  # if_16
                                   }
-                                  %b61 = block {  # false
-                                    %x_238:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %214:i32 = convert %x_238
-                                    %215:bool = lt %214, 270i
-                                    if %215 [t: %b62, f: %b63] {  # if_17
-                                      %b62 = block {  # true
-                                        %216:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_245:i32 = load %216
-                                        %218:f32 = convert %x_245
-                                        %219:f32 = div %218, 10.0f
-                                        %220:f32 = add 0.5f, %219
-                                        store %grey, %220
+                                  $B61: {  # false
+                                    %296:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_238:f32 = let %296
+                                    %298:i32 = call %tint_f32_to_i32, %x_238
+                                    %299:bool = lt %298, 270i
+                                    if %299 [t: $B62, f: $B63] {  # if_17
+                                      $B62: {  # true
+                                        %300:ptr<private, i32, read_write> = access %data, 8i
+                                        %301:i32 = load %300
+                                        %x_245:i32 = let %301
+                                        %303:f32 = convert %x_245
+                                        %304:f32 = div %303, 10.0f
+                                        %305:f32 = add 0.5f, %304
+                                        store %grey, %305
                                         exit_if  # if_17
                                       }
-                                      %b63 = block {  # false
-                                        discard
+                                      $B63: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_17
                                       }
                                     }
@@ -520,23 +604,42 @@
         exit_if  # if_9
       }
     }
-    %x_249:f32 = load %grey
-    %x_250:vec3<f32> = construct %x_249, %x_249, %x_249
-    %223:f32 = access %x_250, 0u
-    %224:f32 = access %x_250, 1u
-    %225:f32 = access %x_250, 2u
-    %226:vec4<f32> = construct %223, %224, %225, 1.0f
-    store %x_GLF_color, %226
+    %306:f32 = load %grey
+    %x_249:f32 = let %306
+    %308:vec3<f32> = construct %x_249, %x_249, %x_249
+    %x_250:vec3<f32> = let %308
+    %310:f32 = access %x_250, 0u
+    %311:f32 = access %x_250, 1u
+    %312:f32 = access %x_250, 2u
+    %313:vec4<f32> = construct %310, %311, %312, 1.0f
+    store %x_GLF_color, %313
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b64 {
-  %b64 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B64: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %229:void = call %main_1
-    %230:vec4<f32> = load %x_GLF_color
-    %231:main_out = construct %230
-    ret %231
+    %316:void = call %main_1
+    %317:vec4<f32> = load %x_GLF_color
+    %318:main_out = construct %317
+    %319:bool = load %continue_execution
+    %320:bool = eq %319, false
+    if %320 [t: $B65] {  # if_18
+      $B65: {  # true
+        terminate_invocation
+      }
+    }
+    ret %318
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B66: {
+    %322:i32 = convert %value
+    %323:bool = gte %value, -2147483648.0f
+    %324:i32 = select -2147483648i, %322, %323
+    %325:bool = lte %value, 2147483520.0f
+    %326:i32 = select 2147483647i, %324, %325
+    ret %326
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.msl
index 28251dc..818b861 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.spvasm.expected.ir.msl
@@ -1,6 +1,1080 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %tree:ptr<function, array<BST, 10>, read_write> = var
+    %x_62:ptr<function, i32, read_write> = var
+    %x_90:ptr<function, bool, read_write> = var
+    %x_357:ptr<function, i32, read_write> = var
+    %x_360:ptr<function, i32, read_write> = var
+    %x_362:ptr<function, i32, read_write> = var
+    %9:ptr<function, BST, read_write> = access %tree, 0i
+    store %9, BST(9i, -1i, -1i)
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        store %x_62, 0i
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %x_88:ptr<function, i32, read_write> = var
+            %x_80:ptr<function, i32, read_write> = var
+            %x_63:ptr<function, i32, read_write> = var
+            store %x_90, false
+            %13:i32 = load %x_62
+            %14:bool = lte %13, 1i
+            if %14 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
+                exit_if  # if_1
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            %15:i32 = load %x_62
+            %16:ptr<function, i32, read_write> = access %tree, %15, 0u
+            %17:i32 = load %16
+            %18:bool = lte 5i, %17
+            if %18 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %19:i32 = load %x_62
+                %x_82_save:i32 = let %19
+                %21:i32 = load %x_62
+                %22:ptr<function, i32, read_write> = access %tree, %21, 1u
+                %23:i32 = load %22
+                %24:bool = eq %23, -1i
+                if %24 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
+                    %25:ptr<function, i32, read_write> = access %tree, %x_82_save, 1u
+                    store %25, 1i
+                    %26:ptr<function, BST, read_write> = access %tree, 1i
+                    store %26, BST(5i, -1i, -1i)
+                    store %x_90, true
+                    exit_loop  # loop_1
+                  }
+                  $B11: {  # false
+                    %27:ptr<function, i32, read_write> = access %tree, %x_82_save, 1u
+                    %28:i32 = load %27
+                    store %x_88, %28
+                    %29:i32 = load %x_88
+                    store %x_63, %29
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+              $B9: {  # false
+                %30:i32 = load %x_62
+                %x_74_save:i32 = let %30
+                %32:i32 = load %x_62
+                %33:ptr<function, i32, read_write> = access %tree, %32, 2u
+                %34:i32 = load %33
+                %35:bool = eq %34, -1i
+                if %35 [t: $B12, f: $B13] {  # if_4
+                  $B12: {  # true
+                    %36:ptr<function, i32, read_write> = access %tree, %x_74_save, 2u
+                    store %36, 1i
+                    %37:ptr<function, BST, read_write> = access %tree, 1i
+                    store %37, BST(5i, -1i, -1i)
+                    store %x_90, true
+                    exit_loop  # loop_1
+                  }
+                  $B13: {  # false
+                    %38:ptr<function, i32, read_write> = access %tree, %x_74_save, 2u
+                    %39:i32 = load %38
+                    store %x_80, %39
+                    %40:i32 = load %x_80
+                    store %x_63, %40
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+            }
+            unreachable
+          }
+          $B5: {  # continuing
+            %41:i32 = load %x_63
+            store %x_62, %41
+            next_iteration  # -> $B4
+          }
+        }
+        %42:bool = load %x_90
+        if %42 [t: $B14] {  # if_5
+          $B14: {  # true
+            exit_switch  # switch_1
+          }
+        }
+        exit_switch  # switch_1
+      }
+    }
+    %x_95:ptr<function, i32, read_write> = var
+    %x_123:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B15)] {  # switch_2
+      $B15: {  # case
+        store %x_95, 0i
+        loop [b: $B16, c: $B17] {  # loop_2
+          $B16: {  # body
+            %x_121:ptr<function, i32, read_write> = var
+            %x_113:ptr<function, i32, read_write> = var
+            %x_96:ptr<function, i32, read_write> = var
+            store %x_123, false
+            %48:i32 = load %x_95
+            %49:bool = lte %48, 2i
+            if %49 [t: $B18, f: $B19] {  # if_6
+              $B18: {  # true
+                exit_if  # if_6
+              }
+              $B19: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %50:i32 = load %x_95
+            %51:ptr<function, i32, read_write> = access %tree, %50, 0u
+            %52:i32 = load %51
+            %53:bool = lte 12i, %52
+            if %53 [t: $B20, f: $B21] {  # if_7
+              $B20: {  # true
+                %54:i32 = load %x_95
+                %x_115_save:i32 = let %54
+                %56:i32 = load %x_95
+                %57:ptr<function, i32, read_write> = access %tree, %56, 1u
+                %58:i32 = load %57
+                %59:bool = eq %58, -1i
+                if %59 [t: $B22, f: $B23] {  # if_8
+                  $B22: {  # true
+                    %60:ptr<function, i32, read_write> = access %tree, %x_115_save, 1u
+                    store %60, 2i
+                    %61:ptr<function, BST, read_write> = access %tree, 2i
+                    store %61, BST(12i, -1i, -1i)
+                    store %x_123, true
+                    exit_loop  # loop_2
+                  }
+                  $B23: {  # false
+                    %62:ptr<function, i32, read_write> = access %tree, %x_115_save, 1u
+                    %63:i32 = load %62
+                    store %x_121, %63
+                    %64:i32 = load %x_121
+                    store %x_96, %64
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+              $B21: {  # false
+                %65:i32 = load %x_95
+                %x_107_save:i32 = let %65
+                %67:i32 = load %x_95
+                %68:ptr<function, i32, read_write> = access %tree, %67, 2u
+                %69:i32 = load %68
+                %70:bool = eq %69, -1i
+                if %70 [t: $B24, f: $B25] {  # if_9
+                  $B24: {  # true
+                    %71:ptr<function, i32, read_write> = access %tree, %x_107_save, 2u
+                    store %71, 2i
+                    %72:ptr<function, BST, read_write> = access %tree, 2i
+                    store %72, BST(12i, -1i, -1i)
+                    store %x_123, true
+                    exit_loop  # loop_2
+                  }
+                  $B25: {  # false
+                    %73:ptr<function, i32, read_write> = access %tree, %x_107_save, 2u
+                    %74:i32 = load %73
+                    store %x_113, %74
+                    %75:i32 = load %x_113
+                    store %x_96, %75
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+            }
+            unreachable
+          }
+          $B17: {  # continuing
+            %76:i32 = load %x_96
+            store %x_95, %76
+            next_iteration  # -> $B16
+          }
+        }
+        %77:bool = load %x_123
+        if %77 [t: $B26] {  # if_10
+          $B26: {  # true
+            exit_switch  # switch_2
+          }
+        }
+        exit_switch  # switch_2
+      }
+    }
+    %x_128:ptr<function, i32, read_write> = var
+    %x_156:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B27)] {  # switch_3
+      $B27: {  # case
+        store %x_128, 0i
+        loop [b: $B28, c: $B29] {  # loop_3
+          $B28: {  # body
+            %x_154:ptr<function, i32, read_write> = var
+            %x_146:ptr<function, i32, read_write> = var
+            %x_129:ptr<function, i32, read_write> = var
+            store %x_156, false
+            %83:i32 = load %x_128
+            %84:bool = lte %83, 3i
+            if %84 [t: $B30, f: $B31] {  # if_11
+              $B30: {  # true
+                exit_if  # if_11
+              }
+              $B31: {  # false
+                exit_loop  # loop_3
+              }
+            }
+            %85:i32 = load %x_128
+            %86:ptr<function, i32, read_write> = access %tree, %85, 0u
+            %87:i32 = load %86
+            %88:bool = lte 15i, %87
+            if %88 [t: $B32, f: $B33] {  # if_12
+              $B32: {  # true
+                %89:i32 = load %x_128
+                %x_148_save:i32 = let %89
+                %91:i32 = load %x_128
+                %92:ptr<function, i32, read_write> = access %tree, %91, 1u
+                %93:i32 = load %92
+                %94:bool = eq %93, -1i
+                if %94 [t: $B34, f: $B35] {  # if_13
+                  $B34: {  # true
+                    %95:ptr<function, i32, read_write> = access %tree, %x_148_save, 1u
+                    store %95, 3i
+                    %96:ptr<function, BST, read_write> = access %tree, 3i
+                    store %96, BST(15i, -1i, -1i)
+                    store %x_156, true
+                    exit_loop  # loop_3
+                  }
+                  $B35: {  # false
+                    %97:ptr<function, i32, read_write> = access %tree, %x_148_save, 1u
+                    %98:i32 = load %97
+                    store %x_154, %98
+                    %99:i32 = load %x_154
+                    store %x_129, %99
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+              $B33: {  # false
+                %100:i32 = load %x_128
+                %x_140_save:i32 = let %100
+                %102:i32 = load %x_128
+                %103:ptr<function, i32, read_write> = access %tree, %102, 2u
+                %104:i32 = load %103
+                %105:bool = eq %104, -1i
+                if %105 [t: $B36, f: $B37] {  # if_14
+                  $B36: {  # true
+                    %106:ptr<function, i32, read_write> = access %tree, %x_140_save, 2u
+                    store %106, 3i
+                    %107:ptr<function, BST, read_write> = access %tree, 3i
+                    store %107, BST(15i, -1i, -1i)
+                    store %x_156, true
+                    exit_loop  # loop_3
+                  }
+                  $B37: {  # false
+                    %108:ptr<function, i32, read_write> = access %tree, %x_140_save, 2u
+                    %109:i32 = load %108
+                    store %x_146, %109
+                    %110:i32 = load %x_146
+                    store %x_129, %110
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+            }
+            unreachable
+          }
+          $B29: {  # continuing
+            %111:i32 = load %x_129
+            store %x_128, %111
+            next_iteration  # -> $B28
+          }
+        }
+        %112:bool = load %x_156
+        if %112 [t: $B38] {  # if_15
+          $B38: {  # true
+            exit_switch  # switch_3
+          }
+        }
+        exit_switch  # switch_3
+      }
+    }
+    %x_161:ptr<function, i32, read_write> = var
+    %x_189:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B39)] {  # switch_4
+      $B39: {  # case
+        store %x_161, 0i
+        loop [b: $B40, c: $B41] {  # loop_4
+          $B40: {  # body
+            %x_187:ptr<function, i32, read_write> = var
+            %x_179:ptr<function, i32, read_write> = var
+            %x_162:ptr<function, i32, read_write> = var
+            store %x_189, false
+            %118:i32 = load %x_161
+            %119:bool = lte %118, 4i
+            if %119 [t: $B42, f: $B43] {  # if_16
+              $B42: {  # true
+                exit_if  # if_16
+              }
+              $B43: {  # false
+                exit_loop  # loop_4
+              }
+            }
+            %120:i32 = load %x_161
+            %121:ptr<function, i32, read_write> = access %tree, %120, 0u
+            %122:i32 = load %121
+            %123:bool = lte 7i, %122
+            if %123 [t: $B44, f: $B45] {  # if_17
+              $B44: {  # true
+                %124:i32 = load %x_161
+                %x_181_save:i32 = let %124
+                %126:i32 = load %x_161
+                %127:ptr<function, i32, read_write> = access %tree, %126, 1u
+                %128:i32 = load %127
+                %129:bool = eq %128, -1i
+                if %129 [t: $B46, f: $B47] {  # if_18
+                  $B46: {  # true
+                    %130:ptr<function, i32, read_write> = access %tree, %x_181_save, 1u
+                    store %130, 4i
+                    %131:ptr<function, BST, read_write> = access %tree, 4i
+                    store %131, BST(7i, -1i, -1i)
+                    store %x_189, true
+                    exit_loop  # loop_4
+                  }
+                  $B47: {  # false
+                    %132:ptr<function, i32, read_write> = access %tree, %x_181_save, 1u
+                    %133:i32 = load %132
+                    store %x_187, %133
+                    %134:i32 = load %x_187
+                    store %x_162, %134
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+              $B45: {  # false
+                %135:i32 = load %x_161
+                %x_173_save:i32 = let %135
+                %137:i32 = load %x_161
+                %138:ptr<function, i32, read_write> = access %tree, %137, 2u
+                %139:i32 = load %138
+                %140:bool = eq %139, -1i
+                if %140 [t: $B48, f: $B49] {  # if_19
+                  $B48: {  # true
+                    %141:ptr<function, i32, read_write> = access %tree, %x_173_save, 2u
+                    store %141, 4i
+                    %142:ptr<function, BST, read_write> = access %tree, 4i
+                    store %142, BST(7i, -1i, -1i)
+                    store %x_189, true
+                    exit_loop  # loop_4
+                  }
+                  $B49: {  # false
+                    %143:ptr<function, i32, read_write> = access %tree, %x_173_save, 2u
+                    %144:i32 = load %143
+                    store %x_179, %144
+                    %145:i32 = load %x_179
+                    store %x_162, %145
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+            }
+            unreachable
+          }
+          $B41: {  # continuing
+            %146:i32 = load %x_162
+            store %x_161, %146
+            next_iteration  # -> $B40
+          }
+        }
+        %147:bool = load %x_189
+        if %147 [t: $B50] {  # if_20
+          $B50: {  # true
+            exit_switch  # switch_4
+          }
+        }
+        exit_switch  # switch_4
+      }
+    }
+    %x_194:ptr<function, i32, read_write> = var
+    %x_222:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B51)] {  # switch_5
+      $B51: {  # case
+        store %x_194, 0i
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %x_220:ptr<function, i32, read_write> = var
+            %x_212:ptr<function, i32, read_write> = var
+            %x_195:ptr<function, i32, read_write> = var
+            store %x_222, false
+            %153:i32 = load %x_194
+            %154:bool = lte %153, 5i
+            if %154 [t: $B54, f: $B55] {  # if_21
+              $B54: {  # true
+                exit_if  # if_21
+              }
+              $B55: {  # false
+                exit_loop  # loop_5
+              }
+            }
+            %155:i32 = load %x_194
+            %156:ptr<function, i32, read_write> = access %tree, %155, 0u
+            %157:i32 = load %156
+            %158:bool = lte 8i, %157
+            if %158 [t: $B56, f: $B57] {  # if_22
+              $B56: {  # true
+                %159:i32 = load %x_194
+                %x_214_save:i32 = let %159
+                %161:i32 = load %x_194
+                %162:ptr<function, i32, read_write> = access %tree, %161, 1u
+                %163:i32 = load %162
+                %164:bool = eq %163, -1i
+                if %164 [t: $B58, f: $B59] {  # if_23
+                  $B58: {  # true
+                    %165:ptr<function, i32, read_write> = access %tree, %x_214_save, 1u
+                    store %165, 5i
+                    %166:ptr<function, BST, read_write> = access %tree, 5i
+                    store %166, BST(8i, -1i, -1i)
+                    store %x_222, true
+                    exit_loop  # loop_5
+                  }
+                  $B59: {  # false
+                    %167:ptr<function, i32, read_write> = access %tree, %x_214_save, 1u
+                    %168:i32 = load %167
+                    store %x_220, %168
+                    %169:i32 = load %x_220
+                    store %x_195, %169
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+              $B57: {  # false
+                %170:i32 = load %x_194
+                %x_206_save:i32 = let %170
+                %172:i32 = load %x_194
+                %173:ptr<function, i32, read_write> = access %tree, %172, 2u
+                %174:i32 = load %173
+                %175:bool = eq %174, -1i
+                if %175 [t: $B60, f: $B61] {  # if_24
+                  $B60: {  # true
+                    %176:ptr<function, i32, read_write> = access %tree, %x_206_save, 2u
+                    store %176, 5i
+                    %177:ptr<function, BST, read_write> = access %tree, 5i
+                    store %177, BST(8i, -1i, -1i)
+                    store %x_222, true
+                    exit_loop  # loop_5
+                  }
+                  $B61: {  # false
+                    %178:ptr<function, i32, read_write> = access %tree, %x_206_save, 2u
+                    %179:i32 = load %178
+                    store %x_212, %179
+                    %180:i32 = load %x_212
+                    store %x_195, %180
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+            }
+            unreachable
+          }
+          $B53: {  # continuing
+            %181:i32 = load %x_195
+            store %x_194, %181
+            next_iteration  # -> $B52
+          }
+        }
+        %182:bool = load %x_222
+        if %182 [t: $B62] {  # if_25
+          $B62: {  # true
+            exit_switch  # switch_5
+          }
+        }
+        exit_switch  # switch_5
+      }
+    }
+    %x_227:ptr<function, i32, read_write> = var
+    %x_255:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B63)] {  # switch_6
+      $B63: {  # case
+        store %x_227, 0i
+        loop [b: $B64, c: $B65] {  # loop_6
+          $B64: {  # body
+            %x_253:ptr<function, i32, read_write> = var
+            %x_245:ptr<function, i32, read_write> = var
+            %x_228:ptr<function, i32, read_write> = var
+            store %x_255, false
+            %188:i32 = load %x_227
+            %189:bool = lte %188, 6i
+            if %189 [t: $B66, f: $B67] {  # if_26
+              $B66: {  # true
+                exit_if  # if_26
+              }
+              $B67: {  # false
+                exit_loop  # loop_6
+              }
+            }
+            %190:i32 = load %x_227
+            %191:ptr<function, i32, read_write> = access %tree, %190, 0u
+            %192:i32 = load %191
+            %193:bool = lte 2i, %192
+            if %193 [t: $B68, f: $B69] {  # if_27
+              $B68: {  # true
+                %194:i32 = load %x_227
+                %x_247_save:i32 = let %194
+                %196:i32 = load %x_227
+                %197:ptr<function, i32, read_write> = access %tree, %196, 1u
+                %198:i32 = load %197
+                %199:bool = eq %198, -1i
+                if %199 [t: $B70, f: $B71] {  # if_28
+                  $B70: {  # true
+                    %200:ptr<function, i32, read_write> = access %tree, %x_247_save, 1u
+                    store %200, 6i
+                    %201:ptr<function, BST, read_write> = access %tree, 6i
+                    store %201, BST(2i, -1i, -1i)
+                    store %x_255, true
+                    exit_loop  # loop_6
+                  }
+                  $B71: {  # false
+                    %202:ptr<function, i32, read_write> = access %tree, %x_247_save, 1u
+                    %203:i32 = load %202
+                    store %x_253, %203
+                    %204:i32 = load %x_253
+                    store %x_228, %204
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+              $B69: {  # false
+                %205:i32 = load %x_227
+                %x_239_save:i32 = let %205
+                %207:i32 = load %x_227
+                %208:ptr<function, i32, read_write> = access %tree, %207, 2u
+                %209:i32 = load %208
+                %210:bool = eq %209, -1i
+                if %210 [t: $B72, f: $B73] {  # if_29
+                  $B72: {  # true
+                    %211:ptr<function, i32, read_write> = access %tree, %x_239_save, 2u
+                    store %211, 6i
+                    %212:ptr<function, BST, read_write> = access %tree, 6i
+                    store %212, BST(2i, -1i, -1i)
+                    store %x_255, true
+                    exit_loop  # loop_6
+                  }
+                  $B73: {  # false
+                    %213:ptr<function, i32, read_write> = access %tree, %x_239_save, 2u
+                    %214:i32 = load %213
+                    store %x_245, %214
+                    %215:i32 = load %x_245
+                    store %x_228, %215
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+            }
+            unreachable
+          }
+          $B65: {  # continuing
+            %216:i32 = load %x_228
+            store %x_227, %216
+            next_iteration  # -> $B64
+          }
+        }
+        %217:bool = load %x_255
+        if %217 [t: $B74] {  # if_30
+          $B74: {  # true
+            exit_switch  # switch_6
+          }
+        }
+        exit_switch  # switch_6
+      }
+    }
+    %x_260:ptr<function, i32, read_write> = var
+    %x_288:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B75)] {  # switch_7
+      $B75: {  # case
+        store %x_260, 0i
+        loop [b: $B76, c: $B77] {  # loop_7
+          $B76: {  # body
+            %x_286:ptr<function, i32, read_write> = var
+            %x_278:ptr<function, i32, read_write> = var
+            %x_261:ptr<function, i32, read_write> = var
+            store %x_288, false
+            %223:i32 = load %x_260
+            %224:bool = lte %223, 7i
+            if %224 [t: $B78, f: $B79] {  # if_31
+              $B78: {  # true
+                exit_if  # if_31
+              }
+              $B79: {  # false
+                exit_loop  # loop_7
+              }
+            }
+            %225:i32 = load %x_260
+            %226:ptr<function, i32, read_write> = access %tree, %225, 0u
+            %227:i32 = load %226
+            %228:bool = lte 6i, %227
+            if %228 [t: $B80, f: $B81] {  # if_32
+              $B80: {  # true
+                %229:i32 = load %x_260
+                %x_280_save:i32 = let %229
+                %231:i32 = load %x_260
+                %232:ptr<function, i32, read_write> = access %tree, %231, 1u
+                %233:i32 = load %232
+                %234:bool = eq %233, -1i
+                if %234 [t: $B82, f: $B83] {  # if_33
+                  $B82: {  # true
+                    %235:ptr<function, i32, read_write> = access %tree, %x_280_save, 1u
+                    store %235, 7i
+                    %236:ptr<function, BST, read_write> = access %tree, 7i
+                    store %236, BST(6i, -1i, -1i)
+                    store %x_288, true
+                    exit_loop  # loop_7
+                  }
+                  $B83: {  # false
+                    %237:ptr<function, i32, read_write> = access %tree, %x_280_save, 1u
+                    %238:i32 = load %237
+                    store %x_286, %238
+                    %239:i32 = load %x_286
+                    store %x_261, %239
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+              $B81: {  # false
+                %240:i32 = load %x_260
+                %x_272_save:i32 = let %240
+                %242:i32 = load %x_260
+                %243:ptr<function, i32, read_write> = access %tree, %242, 2u
+                %244:i32 = load %243
+                %245:bool = eq %244, -1i
+                if %245 [t: $B84, f: $B85] {  # if_34
+                  $B84: {  # true
+                    %246:ptr<function, i32, read_write> = access %tree, %x_272_save, 2u
+                    store %246, 7i
+                    %247:ptr<function, BST, read_write> = access %tree, 7i
+                    store %247, BST(6i, -1i, -1i)
+                    store %x_288, true
+                    exit_loop  # loop_7
+                  }
+                  $B85: {  # false
+                    %248:ptr<function, i32, read_write> = access %tree, %x_272_save, 2u
+                    %249:i32 = load %248
+                    store %x_278, %249
+                    %250:i32 = load %x_278
+                    store %x_261, %250
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+            }
+            unreachable
+          }
+          $B77: {  # continuing
+            %251:i32 = load %x_261
+            store %x_260, %251
+            next_iteration  # -> $B76
+          }
+        }
+        %252:bool = load %x_288
+        if %252 [t: $B86] {  # if_35
+          $B86: {  # true
+            exit_switch  # switch_7
+          }
+        }
+        exit_switch  # switch_7
+      }
+    }
+    %x_293:ptr<function, i32, read_write> = var
+    %x_321:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B87)] {  # switch_8
+      $B87: {  # case
+        store %x_293, 0i
+        loop [b: $B88, c: $B89] {  # loop_8
+          $B88: {  # body
+            %x_319:ptr<function, i32, read_write> = var
+            %x_311:ptr<function, i32, read_write> = var
+            %x_294:ptr<function, i32, read_write> = var
+            store %x_321, false
+            %258:i32 = load %x_293
+            %259:bool = lte %258, 8i
+            if %259 [t: $B90, f: $B91] {  # if_36
+              $B90: {  # true
+                exit_if  # if_36
+              }
+              $B91: {  # false
+                exit_loop  # loop_8
+              }
+            }
+            %260:i32 = load %x_293
+            %261:ptr<function, i32, read_write> = access %tree, %260, 0u
+            %262:i32 = load %261
+            %263:bool = lte 17i, %262
+            if %263 [t: $B92, f: $B93] {  # if_37
+              $B92: {  # true
+                %264:i32 = load %x_293
+                %x_313_save:i32 = let %264
+                %266:i32 = load %x_293
+                %267:ptr<function, i32, read_write> = access %tree, %266, 1u
+                %268:i32 = load %267
+                %269:bool = eq %268, -1i
+                if %269 [t: $B94, f: $B95] {  # if_38
+                  $B94: {  # true
+                    %270:ptr<function, i32, read_write> = access %tree, %x_313_save, 1u
+                    store %270, 8i
+                    %271:ptr<function, BST, read_write> = access %tree, 8i
+                    store %271, BST(17i, -1i, -1i)
+                    store %x_321, true
+                    exit_loop  # loop_8
+                  }
+                  $B95: {  # false
+                    %272:ptr<function, i32, read_write> = access %tree, %x_313_save, 1u
+                    %273:i32 = load %272
+                    store %x_319, %273
+                    %274:i32 = load %x_319
+                    store %x_294, %274
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+              $B93: {  # false
+                %275:i32 = load %x_293
+                %x_305_save:i32 = let %275
+                %277:i32 = load %x_293
+                %278:ptr<function, i32, read_write> = access %tree, %277, 2u
+                %279:i32 = load %278
+                %280:bool = eq %279, -1i
+                if %280 [t: $B96, f: $B97] {  # if_39
+                  $B96: {  # true
+                    %281:ptr<function, i32, read_write> = access %tree, %x_305_save, 2u
+                    store %281, 8i
+                    %282:ptr<function, BST, read_write> = access %tree, 8i
+                    store %282, BST(17i, -1i, -1i)
+                    store %x_321, true
+                    exit_loop  # loop_8
+                  }
+                  $B97: {  # false
+                    %283:ptr<function, i32, read_write> = access %tree, %x_305_save, 2u
+                    %284:i32 = load %283
+                    store %x_311, %284
+                    %285:i32 = load %x_311
+                    store %x_294, %285
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+            }
+            unreachable
+          }
+          $B89: {  # continuing
+            %286:i32 = load %x_294
+            store %x_293, %286
+            next_iteration  # -> $B88
+          }
+        }
+        %287:bool = load %x_321
+        if %287 [t: $B98] {  # if_40
+          $B98: {  # true
+            exit_switch  # switch_8
+          }
+        }
+        exit_switch  # switch_8
+      }
+    }
+    %x_326:ptr<function, i32, read_write> = var
+    %x_354:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B99)] {  # switch_9
+      $B99: {  # case
+        store %x_326, 0i
+        loop [b: $B100, c: $B101] {  # loop_9
+          $B100: {  # body
+            %x_352:ptr<function, i32, read_write> = var
+            %x_344:ptr<function, i32, read_write> = var
+            %x_327:ptr<function, i32, read_write> = var
+            store %x_354, false
+            %293:i32 = load %x_326
+            %294:bool = lte %293, 9i
+            if %294 [t: $B102, f: $B103] {  # if_41
+              $B102: {  # true
+                exit_if  # if_41
+              }
+              $B103: {  # false
+                exit_loop  # loop_9
+              }
+            }
+            %295:i32 = load %x_326
+            %296:ptr<function, i32, read_write> = access %tree, %295, 0u
+            %297:i32 = load %296
+            %298:bool = lte 13i, %297
+            if %298 [t: $B104, f: $B105] {  # if_42
+              $B104: {  # true
+                %299:i32 = load %x_326
+                %x_346_save:i32 = let %299
+                %301:i32 = load %x_326
+                %302:ptr<function, i32, read_write> = access %tree, %301, 1u
+                %303:i32 = load %302
+                %304:bool = eq %303, -1i
+                if %304 [t: $B106, f: $B107] {  # if_43
+                  $B106: {  # true
+                    %305:ptr<function, i32, read_write> = access %tree, %x_346_save, 1u
+                    store %305, 9i
+                    %306:ptr<function, BST, read_write> = access %tree, 9i
+                    store %306, BST(13i, -1i, -1i)
+                    store %x_354, true
+                    exit_loop  # loop_9
+                  }
+                  $B107: {  # false
+                    %307:ptr<function, i32, read_write> = access %tree, %x_346_save, 1u
+                    %308:i32 = load %307
+                    store %x_352, %308
+                    %309:i32 = load %x_352
+                    store %x_327, %309
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+              $B105: {  # false
+                %310:i32 = load %x_326
+                %x_338_save:i32 = let %310
+                %312:i32 = load %x_326
+                %313:ptr<function, i32, read_write> = access %tree, %312, 2u
+                %314:i32 = load %313
+                %315:bool = eq %314, -1i
+                if %315 [t: $B108, f: $B109] {  # if_44
+                  $B108: {  # true
+                    %316:ptr<function, i32, read_write> = access %tree, %x_338_save, 2u
+                    store %316, 9i
+                    %317:ptr<function, BST, read_write> = access %tree, 9i
+                    store %317, BST(13i, -1i, -1i)
+                    store %x_354, true
+                    exit_loop  # loop_9
+                  }
+                  $B109: {  # false
+                    %318:ptr<function, i32, read_write> = access %tree, %x_338_save, 2u
+                    %319:i32 = load %318
+                    store %x_344, %319
+                    %320:i32 = load %x_344
+                    store %x_327, %320
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+            }
+            unreachable
+          }
+          $B101: {  # continuing
+            %321:i32 = load %x_327
+            store %x_326, %321
+            next_iteration  # -> $B100
+          }
+        }
+        %322:bool = load %x_354
+        if %322 [t: $B110] {  # if_45
+          $B110: {  # true
+            exit_switch  # switch_9
+          }
+        }
+        exit_switch  # switch_9
+      }
+    }
+    store %x_357, 0i
+    store %x_360, 0i
+    store %x_362, 0i
+    loop [b: $B111, c: $B112] {  # loop_10
+      $B111: {  # body
+        %x_392:ptr<function, i32, read_write> = var
+        %x_358:ptr<function, i32, read_write> = var
+        %x_402:ptr<function, i32, read_write> = var
+        %x_407:ptr<function, i32, read_write> = var
+        %x_361:ptr<function, i32, read_write> = var
+        %x_363:ptr<function, i32, read_write> = var
+        %x_365:i32 = let -9i
+        %330:i32 = load %x_362
+        %331:bool = lt %330, 20i
+        if %331 [t: $B113, f: $B114] {  # if_46
+          $B113: {  # true
+            exit_if  # if_46
+          }
+          $B114: {  # false
+            exit_loop  # loop_10
+          }
+        }
+        %x_374:ptr<function, i32, read_write> = var
+        %x_393:ptr<function, bool, read_write> = var
+        switch 0u [c: (default, $B115)] {  # switch_10
+          $B115: {  # case
+            store %x_374, 0i
+            loop [b: $B116, c: $B117] {  # loop_11
+              $B116: {  # body
+                %334:i32 = load %x_357
+                store %x_392, %334
+                store %x_393, false
+                %335:i32 = load %x_374
+                %336:bool = neq %335, -1i
+                if %336 [t: $B118, f: $B119] {  # if_47
+                  $B118: {  # true
+                    exit_if  # if_47
+                  }
+                  $B119: {  # false
+                    exit_loop  # loop_11
+                  }
+                }
+                %337:i32 = load %x_374
+                %338:ptr<function, BST, read_write> = access %tree, %337
+                %339:BST = load %338
+                %x_381:BST = let %339
+                %341:i32 = access %x_381, 0u
+                %x_382:i32 = let %341
+                %343:i32 = access %x_381, 1u
+                %x_383:i32 = let %343
+                %345:i32 = access %x_381, 2u
+                %x_385:i32 = let %345
+                %347:i32 = load %x_362
+                %348:bool = eq %x_382, %347
+                if %348 [t: $B120] {  # if_48
+                  $B120: {  # true
+                    %349:i32 = load %x_362
+                    store %x_392, %349
+                    store %x_393, true
+                    exit_loop  # loop_11
+                  }
+                }
+                %350:f32 = load_vector_element %x_GLF_color, 3u
+                %x_389:f32 = let %350
+                continue  # -> $B117
+              }
+              $B117: {  # continuing
+                %352:i32 = load %x_362
+                %353:bool = lte %352, %x_382
+                %354:bool = eq %353, false
+                %355:i32 = select %x_383, %x_385, %354
+                store %x_374, %355
+                next_iteration  # -> $B116
+              }
+            }
+            %356:i32 = load %x_392
+            store %x_358, %356
+            %357:bool = load %x_393
+            if %357 [t: $B121] {  # if_49
+              $B121: {  # true
+                exit_switch  # switch_10
+              }
+            }
+            store %x_358, -1i
+            exit_switch  # switch_10
+          }
+        }
+        %x_401:ptr<function, i32, read_write> = var
+        %x_406:ptr<function, i32, read_write> = var
+        %360:i32 = load %x_362
+        switch %360 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B122), c: (default, $B123)] {  # switch_11
+          $B122: {  # case
+            %361:i32 = load %x_360
+            store %x_402, %361
+            %362:i32 = load %x_358
+            %363:i32 = load %x_362
+            %364:bool = eq %362, %363
+            if %364 [t: $B124] {  # if_50
+              $B124: {  # true
+                %365:i32 = load %x_360
+                %366:i32 = add %365, 1i
+                store %x_401, %366
+                %367:i32 = load %x_401
+                store %x_402, %367
+                exit_if  # if_50
+              }
+            }
+            %368:i32 = load %x_402
+            store %x_361, %368
+            exit_switch  # switch_11
+          }
+          $B123: {  # case
+            %369:i32 = load %x_360
+            store %x_407, %369
+            %370:i32 = load %x_358
+            %371:bool = eq %370, -1i
+            if %371 [t: $B125] {  # if_51
+              $B125: {  # true
+                %372:i32 = load %x_360
+                %373:i32 = add %372, 1i
+                store %x_406, %373
+                %374:i32 = load %x_406
+                store %x_407, %374
+                exit_if  # if_51
+              }
+            }
+            %375:i32 = load %x_407
+            store %x_361, %375
+            exit_switch  # switch_11
+          }
+        }
+        continue  # -> $B112
+      }
+      $B112: {  # continuing
+        %376:i32 = load %x_362
+        %377:i32 = add %376, 1i
+        store %x_363, %377
+        %378:i32 = load %x_358
+        store %x_357, %378
+        %379:i32 = load %x_361
+        store %x_360, %379
+        %380:i32 = load %x_363
+        store %x_362, %380
+        next_iteration  # -> $B111
+      }
+    }
+    %381:i32 = load %x_360
+    %382:bool = eq %381, 20i
+    if %382 [t: $B126, f: $B127] {  # if_52
+      $B126: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_52
+      }
+      $B127: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_52
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B128: {
+    %384:void = call %main_1
+    %385:vec4<f32> = load %x_GLF_color
+    %386:main_out = construct %385
+    ret %386
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.msl
index 28251dc..4b1d489 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl.expected.ir.msl
@@ -1,6 +1,1124 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %tree:ptr<function, array<BST, 10>, read_write> = var
+    %x_360:ptr<function, i32, read_write> = var
+    %x_62_phi:ptr<function, i32, read_write> = var
+    %x_90_phi:ptr<function, bool, read_write> = var
+    %x_357_phi:ptr<function, i32, read_write> = var
+    %x_360_phi:ptr<function, i32, read_write> = var
+    %x_362_phi:ptr<function, i32, read_write> = var
+    %10:ptr<function, BST, read_write> = access %tree, 0i
+    store %10, BST(9i, -1i, -1i)
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        store %x_62_phi, 0i
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %x_88:ptr<function, i32, read_write> = var
+            %x_80:ptr<function, i32, read_write> = var
+            %x_63:ptr<function, i32, read_write> = var
+            %x_63_phi:ptr<function, i32, read_write> = var
+            %15:i32 = load %x_62_phi
+            %x_62:i32 = let %15
+            store %x_90_phi, false
+            %17:bool = lte %x_62, 1i
+            if %17 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
+                exit_if  # if_1
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            %18:ptr<function, i32, read_write> = access %tree, %x_62, 0u
+            %19:i32 = load %18
+            %x_69:i32 = let %19
+            %21:bool = lte 5i, %x_69
+            if %21 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %x_82_save:i32 = let %x_62
+                %23:ptr<function, i32, read_write> = access %tree, %x_82_save, 1u
+                %24:i32 = load %23
+                %x_83:i32 = let %24
+                %26:bool = eq %x_83, -1i
+                if %26 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
+                    %27:ptr<function, i32, read_write> = access %tree, %x_82_save, 1u
+                    store %27, 1i
+                    %28:ptr<function, BST, read_write> = access %tree, 1i
+                    store %28, BST(5i, -1i, -1i)
+                    store %x_90_phi, true
+                    exit_loop  # loop_1
+                  }
+                  $B11: {  # false
+                    %29:ptr<function, i32, read_write> = access %tree, %x_82_save, 1u
+                    %30:i32 = load %29
+                    store %x_88, %30
+                    %31:i32 = load %x_88
+                    store %x_63_phi, %31
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+              $B9: {  # false
+                %x_74_save:i32 = let %x_62
+                %33:ptr<function, i32, read_write> = access %tree, %x_74_save, 2u
+                %34:i32 = load %33
+                %x_75:i32 = let %34
+                %36:bool = eq %x_75, -1i
+                if %36 [t: $B12, f: $B13] {  # if_4
+                  $B12: {  # true
+                    %37:ptr<function, i32, read_write> = access %tree, %x_74_save, 2u
+                    store %37, 1i
+                    %38:ptr<function, BST, read_write> = access %tree, 1i
+                    store %38, BST(5i, -1i, -1i)
+                    store %x_90_phi, true
+                    exit_loop  # loop_1
+                  }
+                  $B13: {  # false
+                    %39:ptr<function, i32, read_write> = access %tree, %x_74_save, 2u
+                    %40:i32 = load %39
+                    store %x_80, %40
+                    %41:i32 = load %x_80
+                    store %x_63_phi, %41
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+            }
+            unreachable
+          }
+          $B5: {  # continuing
+            %42:i32 = load %x_63_phi
+            store %x_63, %42
+            %43:i32 = load %x_63
+            store %x_62_phi, %43
+            next_iteration  # -> $B4
+          }
+        }
+        %44:bool = load %x_90_phi
+        %x_90:bool = let %44
+        if %x_90 [t: $B14] {  # if_5
+          $B14: {  # true
+            exit_switch  # switch_1
+          }
+        }
+        exit_switch  # switch_1
+      }
+    }
+    %x_95_phi:ptr<function, i32, read_write> = var
+    %x_123_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B15)] {  # switch_2
+      $B15: {  # case
+        store %x_95_phi, 0i
+        loop [b: $B16, c: $B17] {  # loop_2
+          $B16: {  # body
+            %x_121:ptr<function, i32, read_write> = var
+            %x_113:ptr<function, i32, read_write> = var
+            %x_96:ptr<function, i32, read_write> = var
+            %x_96_phi:ptr<function, i32, read_write> = var
+            %52:i32 = load %x_95_phi
+            %x_95:i32 = let %52
+            store %x_123_phi, false
+            %54:bool = lte %x_95, 2i
+            if %54 [t: $B18, f: $B19] {  # if_6
+              $B18: {  # true
+                exit_if  # if_6
+              }
+              $B19: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %55:ptr<function, i32, read_write> = access %tree, %x_95, 0u
+            %56:i32 = load %55
+            %x_102:i32 = let %56
+            %58:bool = lte 12i, %x_102
+            if %58 [t: $B20, f: $B21] {  # if_7
+              $B20: {  # true
+                %x_115_save:i32 = let %x_95
+                %60:ptr<function, i32, read_write> = access %tree, %x_115_save, 1u
+                %61:i32 = load %60
+                %x_116:i32 = let %61
+                %63:bool = eq %x_116, -1i
+                if %63 [t: $B22, f: $B23] {  # if_8
+                  $B22: {  # true
+                    %64:ptr<function, i32, read_write> = access %tree, %x_115_save, 1u
+                    store %64, 2i
+                    %65:ptr<function, BST, read_write> = access %tree, 2i
+                    store %65, BST(12i, -1i, -1i)
+                    store %x_123_phi, true
+                    exit_loop  # loop_2
+                  }
+                  $B23: {  # false
+                    %66:ptr<function, i32, read_write> = access %tree, %x_115_save, 1u
+                    %67:i32 = load %66
+                    store %x_121, %67
+                    %68:i32 = load %x_121
+                    store %x_96_phi, %68
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+              $B21: {  # false
+                %x_107_save:i32 = let %x_95
+                %70:ptr<function, i32, read_write> = access %tree, %x_107_save, 2u
+                %71:i32 = load %70
+                %x_108:i32 = let %71
+                %73:bool = eq %x_108, -1i
+                if %73 [t: $B24, f: $B25] {  # if_9
+                  $B24: {  # true
+                    %74:ptr<function, i32, read_write> = access %tree, %x_107_save, 2u
+                    store %74, 2i
+                    %75:ptr<function, BST, read_write> = access %tree, 2i
+                    store %75, BST(12i, -1i, -1i)
+                    store %x_123_phi, true
+                    exit_loop  # loop_2
+                  }
+                  $B25: {  # false
+                    %76:ptr<function, i32, read_write> = access %tree, %x_107_save, 2u
+                    %77:i32 = load %76
+                    store %x_113, %77
+                    %78:i32 = load %x_113
+                    store %x_96_phi, %78
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+            }
+            unreachable
+          }
+          $B17: {  # continuing
+            %79:i32 = load %x_96_phi
+            store %x_96, %79
+            %80:i32 = load %x_96
+            store %x_95_phi, %80
+            next_iteration  # -> $B16
+          }
+        }
+        %81:bool = load %x_123_phi
+        %x_123:bool = let %81
+        if %x_123 [t: $B26] {  # if_10
+          $B26: {  # true
+            exit_switch  # switch_2
+          }
+        }
+        exit_switch  # switch_2
+      }
+    }
+    %x_128_phi:ptr<function, i32, read_write> = var
+    %x_156_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B27)] {  # switch_3
+      $B27: {  # case
+        store %x_128_phi, 0i
+        loop [b: $B28, c: $B29] {  # loop_3
+          $B28: {  # body
+            %x_154:ptr<function, i32, read_write> = var
+            %x_146:ptr<function, i32, read_write> = var
+            %x_129:ptr<function, i32, read_write> = var
+            %x_129_phi:ptr<function, i32, read_write> = var
+            %89:i32 = load %x_128_phi
+            %x_128:i32 = let %89
+            store %x_156_phi, false
+            %91:bool = lte %x_128, 3i
+            if %91 [t: $B30, f: $B31] {  # if_11
+              $B30: {  # true
+                exit_if  # if_11
+              }
+              $B31: {  # false
+                exit_loop  # loop_3
+              }
+            }
+            %92:ptr<function, i32, read_write> = access %tree, %x_128, 0u
+            %93:i32 = load %92
+            %x_135:i32 = let %93
+            %95:bool = lte 15i, %x_135
+            if %95 [t: $B32, f: $B33] {  # if_12
+              $B32: {  # true
+                %x_148_save:i32 = let %x_128
+                %97:ptr<function, i32, read_write> = access %tree, %x_148_save, 1u
+                %98:i32 = load %97
+                %x_149:i32 = let %98
+                %100:bool = eq %x_149, -1i
+                if %100 [t: $B34, f: $B35] {  # if_13
+                  $B34: {  # true
+                    %101:ptr<function, i32, read_write> = access %tree, %x_148_save, 1u
+                    store %101, 3i
+                    %102:ptr<function, BST, read_write> = access %tree, 3i
+                    store %102, BST(15i, -1i, -1i)
+                    store %x_156_phi, true
+                    exit_loop  # loop_3
+                  }
+                  $B35: {  # false
+                    %103:ptr<function, i32, read_write> = access %tree, %x_148_save, 1u
+                    %104:i32 = load %103
+                    store %x_154, %104
+                    %105:i32 = load %x_154
+                    store %x_129_phi, %105
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+              $B33: {  # false
+                %x_140_save:i32 = let %x_128
+                %107:ptr<function, i32, read_write> = access %tree, %x_140_save, 2u
+                %108:i32 = load %107
+                %x_141:i32 = let %108
+                %110:bool = eq %x_141, -1i
+                if %110 [t: $B36, f: $B37] {  # if_14
+                  $B36: {  # true
+                    %111:ptr<function, i32, read_write> = access %tree, %x_140_save, 2u
+                    store %111, 3i
+                    %112:ptr<function, BST, read_write> = access %tree, 3i
+                    store %112, BST(15i, -1i, -1i)
+                    store %x_156_phi, true
+                    exit_loop  # loop_3
+                  }
+                  $B37: {  # false
+                    %113:ptr<function, i32, read_write> = access %tree, %x_140_save, 2u
+                    %114:i32 = load %113
+                    store %x_146, %114
+                    %115:i32 = load %x_146
+                    store %x_129_phi, %115
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+            }
+            unreachable
+          }
+          $B29: {  # continuing
+            %116:i32 = load %x_129_phi
+            store %x_129, %116
+            %117:i32 = load %x_129
+            store %x_128_phi, %117
+            next_iteration  # -> $B28
+          }
+        }
+        %118:bool = load %x_156_phi
+        %x_156:bool = let %118
+        if %x_156 [t: $B38] {  # if_15
+          $B38: {  # true
+            exit_switch  # switch_3
+          }
+        }
+        exit_switch  # switch_3
+      }
+    }
+    %x_161_phi:ptr<function, i32, read_write> = var
+    %x_189_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B39)] {  # switch_4
+      $B39: {  # case
+        store %x_161_phi, 0i
+        loop [b: $B40, c: $B41] {  # loop_4
+          $B40: {  # body
+            %x_187:ptr<function, i32, read_write> = var
+            %x_179:ptr<function, i32, read_write> = var
+            %x_162:ptr<function, i32, read_write> = var
+            %x_162_phi:ptr<function, i32, read_write> = var
+            %126:i32 = load %x_161_phi
+            %x_161:i32 = let %126
+            store %x_189_phi, false
+            %128:bool = lte %x_161, 4i
+            if %128 [t: $B42, f: $B43] {  # if_16
+              $B42: {  # true
+                exit_if  # if_16
+              }
+              $B43: {  # false
+                exit_loop  # loop_4
+              }
+            }
+            %129:ptr<function, i32, read_write> = access %tree, %x_161, 0u
+            %130:i32 = load %129
+            %x_168:i32 = let %130
+            %132:bool = lte 7i, %x_168
+            if %132 [t: $B44, f: $B45] {  # if_17
+              $B44: {  # true
+                %x_181_save:i32 = let %x_161
+                %134:ptr<function, i32, read_write> = access %tree, %x_181_save, 1u
+                %135:i32 = load %134
+                %x_182:i32 = let %135
+                %137:bool = eq %x_182, -1i
+                if %137 [t: $B46, f: $B47] {  # if_18
+                  $B46: {  # true
+                    %138:ptr<function, i32, read_write> = access %tree, %x_181_save, 1u
+                    store %138, 4i
+                    %139:ptr<function, BST, read_write> = access %tree, 4i
+                    store %139, BST(7i, -1i, -1i)
+                    store %x_189_phi, true
+                    exit_loop  # loop_4
+                  }
+                  $B47: {  # false
+                    %140:ptr<function, i32, read_write> = access %tree, %x_181_save, 1u
+                    %141:i32 = load %140
+                    store %x_187, %141
+                    %142:i32 = load %x_187
+                    store %x_162_phi, %142
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+              $B45: {  # false
+                %x_173_save:i32 = let %x_161
+                %144:ptr<function, i32, read_write> = access %tree, %x_173_save, 2u
+                %145:i32 = load %144
+                %x_174:i32 = let %145
+                %147:bool = eq %x_174, -1i
+                if %147 [t: $B48, f: $B49] {  # if_19
+                  $B48: {  # true
+                    %148:ptr<function, i32, read_write> = access %tree, %x_173_save, 2u
+                    store %148, 4i
+                    %149:ptr<function, BST, read_write> = access %tree, 4i
+                    store %149, BST(7i, -1i, -1i)
+                    store %x_189_phi, true
+                    exit_loop  # loop_4
+                  }
+                  $B49: {  # false
+                    %150:ptr<function, i32, read_write> = access %tree, %x_173_save, 2u
+                    %151:i32 = load %150
+                    store %x_179, %151
+                    %152:i32 = load %x_179
+                    store %x_162_phi, %152
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+            }
+            unreachable
+          }
+          $B41: {  # continuing
+            %153:i32 = load %x_162_phi
+            store %x_162, %153
+            %154:i32 = load %x_162
+            store %x_161_phi, %154
+            next_iteration  # -> $B40
+          }
+        }
+        %155:bool = load %x_189_phi
+        %x_189:bool = let %155
+        if %x_189 [t: $B50] {  # if_20
+          $B50: {  # true
+            exit_switch  # switch_4
+          }
+        }
+        exit_switch  # switch_4
+      }
+    }
+    %x_194_phi:ptr<function, i32, read_write> = var
+    %x_222_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B51)] {  # switch_5
+      $B51: {  # case
+        store %x_194_phi, 0i
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %x_220:ptr<function, i32, read_write> = var
+            %x_212:ptr<function, i32, read_write> = var
+            %x_195:ptr<function, i32, read_write> = var
+            %x_195_phi:ptr<function, i32, read_write> = var
+            %163:i32 = load %x_194_phi
+            %x_194:i32 = let %163
+            store %x_222_phi, false
+            %165:bool = lte %x_194, 5i
+            if %165 [t: $B54, f: $B55] {  # if_21
+              $B54: {  # true
+                exit_if  # if_21
+              }
+              $B55: {  # false
+                exit_loop  # loop_5
+              }
+            }
+            %166:ptr<function, i32, read_write> = access %tree, %x_194, 0u
+            %167:i32 = load %166
+            %x_201:i32 = let %167
+            %169:bool = lte 8i, %x_201
+            if %169 [t: $B56, f: $B57] {  # if_22
+              $B56: {  # true
+                %x_214_save:i32 = let %x_194
+                %171:ptr<function, i32, read_write> = access %tree, %x_214_save, 1u
+                %172:i32 = load %171
+                %x_215:i32 = let %172
+                %174:bool = eq %x_215, -1i
+                if %174 [t: $B58, f: $B59] {  # if_23
+                  $B58: {  # true
+                    %175:ptr<function, i32, read_write> = access %tree, %x_214_save, 1u
+                    store %175, 5i
+                    %176:ptr<function, BST, read_write> = access %tree, 5i
+                    store %176, BST(8i, -1i, -1i)
+                    store %x_222_phi, true
+                    exit_loop  # loop_5
+                  }
+                  $B59: {  # false
+                    %177:ptr<function, i32, read_write> = access %tree, %x_214_save, 1u
+                    %178:i32 = load %177
+                    store %x_220, %178
+                    %179:i32 = load %x_220
+                    store %x_195_phi, %179
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+              $B57: {  # false
+                %x_206_save:i32 = let %x_194
+                %181:ptr<function, i32, read_write> = access %tree, %x_206_save, 2u
+                %182:i32 = load %181
+                %x_207:i32 = let %182
+                %184:bool = eq %x_207, -1i
+                if %184 [t: $B60, f: $B61] {  # if_24
+                  $B60: {  # true
+                    %185:ptr<function, i32, read_write> = access %tree, %x_206_save, 2u
+                    store %185, 5i
+                    %186:ptr<function, BST, read_write> = access %tree, 5i
+                    store %186, BST(8i, -1i, -1i)
+                    store %x_222_phi, true
+                    exit_loop  # loop_5
+                  }
+                  $B61: {  # false
+                    %187:ptr<function, i32, read_write> = access %tree, %x_206_save, 2u
+                    %188:i32 = load %187
+                    store %x_212, %188
+                    %189:i32 = load %x_212
+                    store %x_195_phi, %189
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+            }
+            unreachable
+          }
+          $B53: {  # continuing
+            %190:i32 = load %x_195_phi
+            store %x_195, %190
+            %191:i32 = load %x_195
+            store %x_194_phi, %191
+            next_iteration  # -> $B52
+          }
+        }
+        %192:bool = load %x_222_phi
+        %x_222:bool = let %192
+        if %x_222 [t: $B62] {  # if_25
+          $B62: {  # true
+            exit_switch  # switch_5
+          }
+        }
+        exit_switch  # switch_5
+      }
+    }
+    %x_227_phi:ptr<function, i32, read_write> = var
+    %x_255_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B63)] {  # switch_6
+      $B63: {  # case
+        store %x_227_phi, 0i
+        loop [b: $B64, c: $B65] {  # loop_6
+          $B64: {  # body
+            %x_253:ptr<function, i32, read_write> = var
+            %x_245:ptr<function, i32, read_write> = var
+            %x_228:ptr<function, i32, read_write> = var
+            %x_228_phi:ptr<function, i32, read_write> = var
+            %200:i32 = load %x_227_phi
+            %x_227:i32 = let %200
+            store %x_255_phi, false
+            %202:bool = lte %x_227, 6i
+            if %202 [t: $B66, f: $B67] {  # if_26
+              $B66: {  # true
+                exit_if  # if_26
+              }
+              $B67: {  # false
+                exit_loop  # loop_6
+              }
+            }
+            %203:ptr<function, i32, read_write> = access %tree, %x_227, 0u
+            %204:i32 = load %203
+            %x_234:i32 = let %204
+            %206:bool = lte 2i, %x_234
+            if %206 [t: $B68, f: $B69] {  # if_27
+              $B68: {  # true
+                %x_247_save:i32 = let %x_227
+                %208:ptr<function, i32, read_write> = access %tree, %x_247_save, 1u
+                %209:i32 = load %208
+                %x_248:i32 = let %209
+                %211:bool = eq %x_248, -1i
+                if %211 [t: $B70, f: $B71] {  # if_28
+                  $B70: {  # true
+                    %212:ptr<function, i32, read_write> = access %tree, %x_247_save, 1u
+                    store %212, 6i
+                    %213:ptr<function, BST, read_write> = access %tree, 6i
+                    store %213, BST(2i, -1i, -1i)
+                    store %x_255_phi, true
+                    exit_loop  # loop_6
+                  }
+                  $B71: {  # false
+                    %214:ptr<function, i32, read_write> = access %tree, %x_247_save, 1u
+                    %215:i32 = load %214
+                    store %x_253, %215
+                    %216:i32 = load %x_253
+                    store %x_228_phi, %216
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+              $B69: {  # false
+                %x_239_save:i32 = let %x_227
+                %218:ptr<function, i32, read_write> = access %tree, %x_239_save, 2u
+                %219:i32 = load %218
+                %x_240:i32 = let %219
+                %221:bool = eq %x_240, -1i
+                if %221 [t: $B72, f: $B73] {  # if_29
+                  $B72: {  # true
+                    %222:ptr<function, i32, read_write> = access %tree, %x_239_save, 2u
+                    store %222, 6i
+                    %223:ptr<function, BST, read_write> = access %tree, 6i
+                    store %223, BST(2i, -1i, -1i)
+                    store %x_255_phi, true
+                    exit_loop  # loop_6
+                  }
+                  $B73: {  # false
+                    %224:ptr<function, i32, read_write> = access %tree, %x_239_save, 2u
+                    %225:i32 = load %224
+                    store %x_245, %225
+                    %226:i32 = load %x_245
+                    store %x_228_phi, %226
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+            }
+            unreachable
+          }
+          $B65: {  # continuing
+            %227:i32 = load %x_228_phi
+            store %x_228, %227
+            %228:i32 = load %x_228
+            store %x_227_phi, %228
+            next_iteration  # -> $B64
+          }
+        }
+        %229:bool = load %x_255_phi
+        %x_255:bool = let %229
+        if %x_255 [t: $B74] {  # if_30
+          $B74: {  # true
+            exit_switch  # switch_6
+          }
+        }
+        exit_switch  # switch_6
+      }
+    }
+    %x_260_phi:ptr<function, i32, read_write> = var
+    %x_288_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B75)] {  # switch_7
+      $B75: {  # case
+        store %x_260_phi, 0i
+        loop [b: $B76, c: $B77] {  # loop_7
+          $B76: {  # body
+            %x_286:ptr<function, i32, read_write> = var
+            %x_278:ptr<function, i32, read_write> = var
+            %x_261:ptr<function, i32, read_write> = var
+            %x_261_phi:ptr<function, i32, read_write> = var
+            %237:i32 = load %x_260_phi
+            %x_260:i32 = let %237
+            store %x_288_phi, false
+            %239:bool = lte %x_260, 7i
+            if %239 [t: $B78, f: $B79] {  # if_31
+              $B78: {  # true
+                exit_if  # if_31
+              }
+              $B79: {  # false
+                exit_loop  # loop_7
+              }
+            }
+            %240:ptr<function, i32, read_write> = access %tree, %x_260, 0u
+            %241:i32 = load %240
+            %x_267:i32 = let %241
+            %243:bool = lte 6i, %x_267
+            if %243 [t: $B80, f: $B81] {  # if_32
+              $B80: {  # true
+                %x_280_save:i32 = let %x_260
+                %245:ptr<function, i32, read_write> = access %tree, %x_280_save, 1u
+                %246:i32 = load %245
+                %x_281:i32 = let %246
+                %248:bool = eq %x_281, -1i
+                if %248 [t: $B82, f: $B83] {  # if_33
+                  $B82: {  # true
+                    %249:ptr<function, i32, read_write> = access %tree, %x_280_save, 1u
+                    store %249, 7i
+                    %250:ptr<function, BST, read_write> = access %tree, 7i
+                    store %250, BST(6i, -1i, -1i)
+                    store %x_288_phi, true
+                    exit_loop  # loop_7
+                  }
+                  $B83: {  # false
+                    %251:ptr<function, i32, read_write> = access %tree, %x_280_save, 1u
+                    %252:i32 = load %251
+                    store %x_286, %252
+                    %253:i32 = load %x_286
+                    store %x_261_phi, %253
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+              $B81: {  # false
+                %x_272_save:i32 = let %x_260
+                %255:ptr<function, i32, read_write> = access %tree, %x_272_save, 2u
+                %256:i32 = load %255
+                %x_273:i32 = let %256
+                %258:bool = eq %x_273, -1i
+                if %258 [t: $B84, f: $B85] {  # if_34
+                  $B84: {  # true
+                    %259:ptr<function, i32, read_write> = access %tree, %x_272_save, 2u
+                    store %259, 7i
+                    %260:ptr<function, BST, read_write> = access %tree, 7i
+                    store %260, BST(6i, -1i, -1i)
+                    store %x_288_phi, true
+                    exit_loop  # loop_7
+                  }
+                  $B85: {  # false
+                    %261:ptr<function, i32, read_write> = access %tree, %x_272_save, 2u
+                    %262:i32 = load %261
+                    store %x_278, %262
+                    %263:i32 = load %x_278
+                    store %x_261_phi, %263
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+            }
+            unreachable
+          }
+          $B77: {  # continuing
+            %264:i32 = load %x_261_phi
+            store %x_261, %264
+            %265:i32 = load %x_261
+            store %x_260_phi, %265
+            next_iteration  # -> $B76
+          }
+        }
+        %266:bool = load %x_288_phi
+        %x_288:bool = let %266
+        if %x_288 [t: $B86] {  # if_35
+          $B86: {  # true
+            exit_switch  # switch_7
+          }
+        }
+        exit_switch  # switch_7
+      }
+    }
+    %x_293_phi:ptr<function, i32, read_write> = var
+    %x_321_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B87)] {  # switch_8
+      $B87: {  # case
+        store %x_293_phi, 0i
+        loop [b: $B88, c: $B89] {  # loop_8
+          $B88: {  # body
+            %x_319:ptr<function, i32, read_write> = var
+            %x_311:ptr<function, i32, read_write> = var
+            %x_294:ptr<function, i32, read_write> = var
+            %x_294_phi:ptr<function, i32, read_write> = var
+            %274:i32 = load %x_293_phi
+            %x_293:i32 = let %274
+            store %x_321_phi, false
+            %276:bool = lte %x_293, 8i
+            if %276 [t: $B90, f: $B91] {  # if_36
+              $B90: {  # true
+                exit_if  # if_36
+              }
+              $B91: {  # false
+                exit_loop  # loop_8
+              }
+            }
+            %277:ptr<function, i32, read_write> = access %tree, %x_293, 0u
+            %278:i32 = load %277
+            %x_300:i32 = let %278
+            %280:bool = lte 17i, %x_300
+            if %280 [t: $B92, f: $B93] {  # if_37
+              $B92: {  # true
+                %x_313_save:i32 = let %x_293
+                %282:ptr<function, i32, read_write> = access %tree, %x_313_save, 1u
+                %283:i32 = load %282
+                %x_314:i32 = let %283
+                %285:bool = eq %x_314, -1i
+                if %285 [t: $B94, f: $B95] {  # if_38
+                  $B94: {  # true
+                    %286:ptr<function, i32, read_write> = access %tree, %x_313_save, 1u
+                    store %286, 8i
+                    %287:ptr<function, BST, read_write> = access %tree, 8i
+                    store %287, BST(17i, -1i, -1i)
+                    store %x_321_phi, true
+                    exit_loop  # loop_8
+                  }
+                  $B95: {  # false
+                    %288:ptr<function, i32, read_write> = access %tree, %x_313_save, 1u
+                    %289:i32 = load %288
+                    store %x_319, %289
+                    %290:i32 = load %x_319
+                    store %x_294_phi, %290
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+              $B93: {  # false
+                %x_305_save:i32 = let %x_293
+                %292:ptr<function, i32, read_write> = access %tree, %x_305_save, 2u
+                %293:i32 = load %292
+                %x_306:i32 = let %293
+                %295:bool = eq %x_306, -1i
+                if %295 [t: $B96, f: $B97] {  # if_39
+                  $B96: {  # true
+                    %296:ptr<function, i32, read_write> = access %tree, %x_305_save, 2u
+                    store %296, 8i
+                    %297:ptr<function, BST, read_write> = access %tree, 8i
+                    store %297, BST(17i, -1i, -1i)
+                    store %x_321_phi, true
+                    exit_loop  # loop_8
+                  }
+                  $B97: {  # false
+                    %298:ptr<function, i32, read_write> = access %tree, %x_305_save, 2u
+                    %299:i32 = load %298
+                    store %x_311, %299
+                    %300:i32 = load %x_311
+                    store %x_294_phi, %300
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+            }
+            unreachable
+          }
+          $B89: {  # continuing
+            %301:i32 = load %x_294_phi
+            store %x_294, %301
+            %302:i32 = load %x_294
+            store %x_293_phi, %302
+            next_iteration  # -> $B88
+          }
+        }
+        %303:bool = load %x_321_phi
+        %x_321:bool = let %303
+        if %x_321 [t: $B98] {  # if_40
+          $B98: {  # true
+            exit_switch  # switch_8
+          }
+        }
+        exit_switch  # switch_8
+      }
+    }
+    %x_326_phi:ptr<function, i32, read_write> = var
+    %x_354_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B99)] {  # switch_9
+      $B99: {  # case
+        store %x_326_phi, 0i
+        loop [b: $B100, c: $B101] {  # loop_9
+          $B100: {  # body
+            %x_352:ptr<function, i32, read_write> = var
+            %x_344:ptr<function, i32, read_write> = var
+            %x_327:ptr<function, i32, read_write> = var
+            %x_327_phi:ptr<function, i32, read_write> = var
+            %311:i32 = load %x_326_phi
+            %x_326:i32 = let %311
+            store %x_354_phi, false
+            %313:bool = lte %x_326, 9i
+            if %313 [t: $B102, f: $B103] {  # if_41
+              $B102: {  # true
+                exit_if  # if_41
+              }
+              $B103: {  # false
+                exit_loop  # loop_9
+              }
+            }
+            %314:ptr<function, i32, read_write> = access %tree, %x_326, 0u
+            %315:i32 = load %314
+            %x_333:i32 = let %315
+            %317:bool = lte 13i, %x_333
+            if %317 [t: $B104, f: $B105] {  # if_42
+              $B104: {  # true
+                %x_346_save:i32 = let %x_326
+                %319:ptr<function, i32, read_write> = access %tree, %x_346_save, 1u
+                %320:i32 = load %319
+                %x_347:i32 = let %320
+                %322:bool = eq %x_347, -1i
+                if %322 [t: $B106, f: $B107] {  # if_43
+                  $B106: {  # true
+                    %323:ptr<function, i32, read_write> = access %tree, %x_346_save, 1u
+                    store %323, 9i
+                    %324:ptr<function, BST, read_write> = access %tree, 9i
+                    store %324, BST(13i, -1i, -1i)
+                    store %x_354_phi, true
+                    exit_loop  # loop_9
+                  }
+                  $B107: {  # false
+                    %325:ptr<function, i32, read_write> = access %tree, %x_346_save, 1u
+                    %326:i32 = load %325
+                    store %x_352, %326
+                    %327:i32 = load %x_352
+                    store %x_327_phi, %327
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+              $B105: {  # false
+                %x_338_save:i32 = let %x_326
+                %329:ptr<function, i32, read_write> = access %tree, %x_338_save, 2u
+                %330:i32 = load %329
+                %x_339:i32 = let %330
+                %332:bool = eq %x_339, -1i
+                if %332 [t: $B108, f: $B109] {  # if_44
+                  $B108: {  # true
+                    %333:ptr<function, i32, read_write> = access %tree, %x_338_save, 2u
+                    store %333, 9i
+                    %334:ptr<function, BST, read_write> = access %tree, 9i
+                    store %334, BST(13i, -1i, -1i)
+                    store %x_354_phi, true
+                    exit_loop  # loop_9
+                  }
+                  $B109: {  # false
+                    %335:ptr<function, i32, read_write> = access %tree, %x_338_save, 2u
+                    %336:i32 = load %335
+                    store %x_344, %336
+                    %337:i32 = load %x_344
+                    store %x_327_phi, %337
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+            }
+            unreachable
+          }
+          $B101: {  # continuing
+            %338:i32 = load %x_327_phi
+            store %x_327, %338
+            %339:i32 = load %x_327
+            store %x_326_phi, %339
+            next_iteration  # -> $B100
+          }
+        }
+        %340:bool = load %x_354_phi
+        %x_354:bool = let %340
+        if %x_354 [t: $B110] {  # if_45
+          $B110: {  # true
+            exit_switch  # switch_9
+          }
+        }
+        exit_switch  # switch_9
+      }
+    }
+    store %x_357_phi, 0i
+    store %x_360_phi, 0i
+    store %x_362_phi, 0i
+    loop [b: $B111, c: $B112] {  # loop_10
+      $B111: {  # body
+        %x_392:ptr<function, i32, read_write> = var
+        %x_402:ptr<function, i32, read_write> = var
+        %x_407:ptr<function, i32, read_write> = var
+        %x_363:ptr<function, i32, read_write> = var
+        %x_358_phi:ptr<function, i32, read_write> = var
+        %x_361_phi:ptr<function, i32, read_write> = var
+        %348:i32 = load %x_357_phi
+        %x_357:i32 = let %348
+        %350:i32 = load %x_360_phi
+        store %x_360, %350
+        %351:i32 = load %x_362_phi
+        %x_362:i32 = let %351
+        %x_365:i32 = let -9i
+        %354:bool = lt %x_362, 20i
+        if %354 [t: $B113, f: $B114] {  # if_46
+          $B113: {  # true
+            exit_if  # if_46
+          }
+          $B114: {  # false
+            exit_loop  # loop_10
+          }
+        }
+        %x_374_phi:ptr<function, i32, read_write> = var
+        %x_392_phi:ptr<function, i32, read_write> = var
+        %x_393_phi:ptr<function, bool, read_write> = var
+        switch 0u [c: (default, $B115)] {  # switch_10
+          $B115: {  # case
+            store %x_374_phi, 0i
+            loop [b: $B116, c: $B117] {  # loop_11
+              $B116: {  # body
+                %358:i32 = load %x_374_phi
+                %x_374:i32 = let %358
+                store %x_392_phi, %x_357
+                store %x_393_phi, false
+                %360:bool = neq %x_374, -1i
+                if %360 [t: $B118, f: $B119] {  # if_47
+                  $B118: {  # true
+                    exit_if  # if_47
+                  }
+                  $B119: {  # false
+                    exit_loop  # loop_11
+                  }
+                }
+                %361:ptr<function, BST, read_write> = access %tree, %x_374
+                %362:BST = load %361
+                %x_381:BST = let %362
+                %364:i32 = access %x_381, 0u
+                %x_382:i32 = let %364
+                %366:i32 = access %x_381, 1u
+                %x_383:i32 = let %366
+                %368:i32 = access %x_381, 2u
+                %x_385:i32 = let %368
+                %370:bool = eq %x_382, %x_362
+                if %370 [t: $B120] {  # if_48
+                  $B120: {  # true
+                    store %x_392_phi, %x_362
+                    store %x_393_phi, true
+                    exit_loop  # loop_11
+                  }
+                }
+                %371:f32 = load_vector_element %x_GLF_color, 3u
+                %x_389:f32 = let %371
+                continue  # -> $B117
+              }
+              $B117: {  # continuing
+                %373:bool = lte %x_362, %x_382
+                %374:bool = eq %373, false
+                %375:i32 = select %x_383, %x_385, %374
+                store %x_374_phi, %375
+                next_iteration  # -> $B116
+              }
+            }
+            %376:i32 = load %x_392_phi
+            store %x_392, %376
+            %377:bool = load %x_393_phi
+            %x_393:bool = let %377
+            %379:i32 = load %x_392
+            store %x_358_phi, %379
+            if %x_393 [t: $B121] {  # if_49
+              $B121: {  # true
+                exit_switch  # switch_10
+              }
+            }
+            store %x_358_phi, -1i
+            exit_switch  # switch_10
+          }
+        }
+        %x_358:ptr<function, i32, read_write> = var
+        %x_401:ptr<function, i32, read_write> = var
+        %x_406:ptr<function, i32, read_write> = var
+        %x_402_phi:ptr<function, i32, read_write> = var
+        %x_407_phi:ptr<function, i32, read_write> = var
+        %385:i32 = load %x_358_phi
+        store %x_358, %385
+        switch %x_362 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B122), c: (default, $B123)] {  # switch_11
+          $B122: {  # case
+            %386:i32 = load %x_360
+            store %x_402_phi, %386
+            %387:i32 = load %x_358
+            %388:i32 = let %387
+            %389:i32 = bitcast %x_362
+            %390:bool = eq %388, %389
+            if %390 [t: $B124] {  # if_50
+              $B124: {  # true
+                %391:i32 = load %x_360
+                %392:i32 = add %391, 1i
+                %393:i32 = bitcast %392
+                store %x_401, %393
+                %394:i32 = load %x_401
+                store %x_402_phi, %394
+                exit_if  # if_50
+              }
+            }
+            %395:i32 = load %x_402_phi
+            store %x_402, %395
+            %396:i32 = load %x_402
+            store %x_361_phi, %396
+            exit_switch  # switch_11
+          }
+          $B123: {  # case
+            %397:i32 = load %x_360
+            store %x_407_phi, %397
+            %398:i32 = load %x_358
+            %399:bool = eq %398, -1i
+            if %399 [t: $B125] {  # if_51
+              $B125: {  # true
+                %400:i32 = load %x_360
+                %401:i32 = add %400, 1i
+                %402:i32 = bitcast %401
+                store %x_406, %402
+                %403:i32 = load %x_406
+                store %x_407_phi, %403
+                exit_if  # if_51
+              }
+            }
+            %404:i32 = load %x_407_phi
+            store %x_407, %404
+            %405:i32 = load %x_407
+            store %x_361_phi, %405
+            exit_switch  # switch_11
+          }
+        }
+        %406:i32 = load %x_361_phi
+        %x_361:i32 = let %406
+        continue  # -> $B112
+      }
+      $B112: {  # continuing
+        %408:i32 = add %x_362, 1i
+        store %x_363, %408
+        %409:i32 = load %x_358
+        store %x_357_phi, %409
+        store %x_360_phi, %x_361
+        %410:i32 = load %x_363
+        store %x_362_phi, %410
+        next_iteration  # -> $B111
+      }
+    }
+    %411:i32 = load %x_360
+    %412:bool = eq %411, 20i
+    if %412 [t: $B126, f: $B127] {  # if_52
+      $B126: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_52
+      }
+      $B127: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_52
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B128: {
+    %414:void = call %main_1
+    %415:vec4<f32> = load %x_GLF_color
+    %416:main_out = construct %415
+    ret %416
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.msl
index ff27fc7..08020c7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_77:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_78:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_79:ptr<function, array<vec4<f32>, 8>, read_write> = var
@@ -28,65 +28,70 @@
     %14:vec2<f32> = load %13
     %15:vec2<f32> = div %12, %14
     %16:vec2<f32> = mul %15, 32.0f
-    %x_87:vec2<f32> = floor %16
+    %17:vec2<f32> = floor %16
+    %x_87:vec2<f32> = let %17
     store %x_89, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %x_92, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_121:ptr<function, bool, read_write> = var
         %x_136:ptr<function, vec4<f32>, read_write> = var
         %x_90:ptr<function, vec4<f32>, read_write> = var
         %x_93:ptr<function, i32, read_write> = var
-        %22:i32 = load %x_92
-        %23:bool = lt %22, 8i
-        if %23 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %23:i32 = load %x_92
+        %24:bool = lt %23, 8i
+        if %24 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_98:ptr<function, vec4<f32>, read_write> = var
         store %x_77, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %25:i32 = load %x_92
-        %26:ptr<function, vec4<f32>, read_write> = access %x_77, %25
-        %27:vec4<f32> = load %26
-        store %x_98, %27
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %x_101:f32 = access %x_87, 0u
-            %x_102:f32 = load_vector_element %x_98, 0u
-            %30:bool = lt %x_101, %x_102
-            if %30 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        %26:i32 = load %x_92
+        %27:ptr<function, vec4<f32>, read_write> = access %x_77, %26
+        %28:vec4<f32> = load %27
+        store %x_98, %28
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %29:f32 = access %x_87, 0u
+            %x_101:f32 = let %29
+            %31:f32 = load_vector_element %x_98, 0u
+            %x_102:f32 = let %31
+            %33:bool = lt %x_101, %x_102
+            if %33 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_121, false
                 exit_switch  # switch_1
               }
             }
-            %x_106:f32 = access %x_87, 1u
-            %x_107:f32 = load_vector_element %x_98, 1u
-            %33:bool = lt %x_106, %x_107
-            if %33 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %34:f32 = access %x_87, 1u
+            %x_106:f32 = let %34
+            %36:f32 = load_vector_element %x_98, 1u
+            %x_107:f32 = let %36
+            %38:bool = lt %x_106, %x_107
+            if %38 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_121, false
                 exit_switch  # switch_1
               }
             }
-            %34:f32 = load_vector_element %x_98, 2u
-            %35:f32 = add %x_102, %34
-            %36:bool = gt %x_101, %35
-            if %36 [t: %b10] {  # if_4
-              %b10 = block {  # true
+            %39:f32 = load_vector_element %x_98, 2u
+            %40:f32 = add %x_102, %39
+            %41:bool = gt %x_101, %40
+            if %41 [t: $B10] {  # if_4
+              $B10: {  # true
                 store %x_121, false
                 exit_switch  # switch_1
               }
             }
-            %37:f32 = load_vector_element %x_98, 3u
-            %38:f32 = add %x_107, %37
-            %39:bool = gt %x_106, %38
-            if %39 [t: %b11] {  # if_5
-              %b11 = block {  # true
+            %42:f32 = load_vector_element %x_98, 3u
+            %43:f32 = add %x_107, %42
+            %44:bool = gt %x_106, %43
+            if %44 [t: $B11] {  # if_5
+              $B11: {  # true
                 store %x_121, false
                 exit_switch  # switch_1
               }
@@ -95,61 +100,89 @@
             exit_switch  # switch_1
           }
         }
-        %40:vec4<f32> = load %x_89
-        store %x_90, %40
-        %41:bool = load %x_121
-        if %41 [t: %b12] {  # if_6
-          %b12 = block {  # true
+        %45:vec4<f32> = load %x_89
+        store %x_90, %45
+        %46:bool = load %x_121
+        if %46 [t: $B12] {  # if_6
+          $B12: {  # true
             store %x_78, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %42:i32 = load %x_92
-            %43:ptr<function, vec4<f32>, read_write> = access %x_78, %42
-            %x_125:f32 = load_vector_element %43, 0u
+            %47:i32 = load %x_92
+            %48:ptr<function, vec4<f32>, read_write> = access %x_78, %47
+            %49:f32 = load_vector_element %48, 0u
+            %x_125:f32 = let %49
             store %x_79, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %45:i32 = load %x_92
-            %46:ptr<function, vec4<f32>, read_write> = access %x_79, %45
-            %x_128:f32 = load_vector_element %46, 1u
-            store %x_80, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %48:i32 = convert %x_125
-            %49:i32 = convert %x_128
-            %50:i32 = mul %48, %49
             %51:i32 = load %x_92
-            %52:i32 = mul %51, 9i
-            %53:i32 = add %50, %52
-            %54:i32 = add %53, 11i
-            %55:i32 = mod %54, 16i
-            %56:ptr<function, vec4<f32>, read_write> = access %x_80, %55
-            %57:vec4<f32> = load %56
-            store %x_136, %57
-            %58:vec4<f32> = load %x_136
-            store %x_90, %58
+            %52:ptr<function, vec4<f32>, read_write> = access %x_79, %51
+            %53:f32 = load_vector_element %52, 1u
+            %x_128:f32 = let %53
+            store %x_80, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
+            %55:i32 = call %tint_f32_to_i32, %x_125
+            %57:i32 = let %55
+            %58:i32 = call %tint_f32_to_i32, %x_128
+            %59:i32 = mul %57, %58
+            %60:i32 = load %x_92
+            %61:i32 = mul %60, 9i
+            %62:i32 = add %59, %61
+            %63:i32 = add %62, 11i
+            %64:i32 = call %tint_mod_i32, %63, 16i
+            %66:ptr<function, vec4<f32>, read_write> = access %x_80, %64
+            %67:vec4<f32> = load %66
+            store %x_136, %67
+            %68:vec4<f32> = load %x_136
+            store %x_90, %68
             exit_if  # if_6
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %59:i32 = load %x_92
-        %60:i32 = add %59, 1i
-        store %x_93, %60
-        %61:vec4<f32> = load %x_90
-        store %x_89, %61
-        %62:i32 = load %x_93
-        store %x_92, %62
-        next_iteration %b3
+      $B4: {  # continuing
+        %69:i32 = load %x_92
+        %70:i32 = add %69, 1i
+        store %x_93, %70
+        %71:vec4<f32> = load %x_90
+        store %x_89, %71
+        %72:i32 = load %x_93
+        store %x_92, %72
+        next_iteration  # -> $B3
       }
     }
-    %63:vec4<f32> = load %x_89
-    store %x_GLF_color, %63
+    %73:vec4<f32> = load %x_89
+    store %x_GLF_color, %73
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %66:void = call %main_1
-    %67:vec4<f32> = load %x_GLF_color
-    %68:main_out = construct %67
-    ret %68
+    %76:void = call %main_1
+    %77:vec4<f32> = load %x_GLF_color
+    %78:main_out = construct %77
+    ret %78
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %81:bool = eq %rhs, 0i
+    %82:bool = eq %lhs, -2147483648i
+    %83:bool = eq %rhs, -1i
+    %84:bool = and %82, %83
+    %85:bool = or %81, %84
+    %86:i32 = select %rhs, 1i, %85
+    %87:i32 = let %86
+    %88:i32 = div %lhs, %87
+    %89:i32 = mul %88, %87
+    %90:i32 = sub %lhs, %89
+    ret %90
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %92:i32 = convert %value
+    %93:bool = gte %value, -2147483648.0f
+    %94:i32 = select -2147483648i, %92, %93
+    %95:bool = lte %value, 2147483520.0f
+    %96:i32 = select 2147483647i, %94, %95
+    ret %96
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.msl
index 7899a65..8854829 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-null-in-phi-and-unroll/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_77:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_78:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_79:ptr<function, array<vec4<f32>, 8>, read_write> = var
@@ -23,74 +23,82 @@
     %x_89:ptr<function, vec4<f32>, read_write> = var
     %x_89_phi:ptr<function, vec4<f32>, read_write> = var
     %x_92_phi:ptr<function, i32, read_write> = var
-    %x_81:vec4<f32> = load %gl_FragCoord
-    %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_84:vec2<f32> = load %13
-    %15:f32 = access %x_81, 0u
-    %16:f32 = access %x_81, 1u
-    %17:vec2<f32> = construct %15, %16
-    %18:vec2<f32> = div %17, %x_84
-    %19:vec2<f32> = mul %18, 32.0f
-    %x_87:vec2<f32> = floor %19
+    %12:vec4<f32> = load %gl_FragCoord
+    %x_81:vec4<f32> = let %12
+    %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %15:vec2<f32> = load %14
+    %x_84:vec2<f32> = let %15
+    %17:f32 = access %x_81, 0u
+    %18:f32 = access %x_81, 1u
+    %19:vec2<f32> = construct %17, %18
+    %20:vec2<f32> = div %19, %x_84
+    %21:vec2<f32> = mul %20, 32.0f
+    %22:vec2<f32> = floor %21
+    %x_87:vec2<f32> = let %22
     store %x_89_phi, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %x_92_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_136:ptr<function, vec4<f32>, read_write> = var
         %x_93:ptr<function, i32, read_write> = var
         %x_121_phi:ptr<function, bool, read_write> = var
         %x_90_phi:ptr<function, vec4<f32>, read_write> = var
-        %25:vec4<f32> = load %x_89_phi
-        store %x_89, %25
-        %x_92:i32 = load %x_92_phi
-        %27:bool = lt %x_92, 8i
-        if %27 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %28:vec4<f32> = load %x_89_phi
+        store %x_89, %28
+        %29:i32 = load %x_92_phi
+        %x_92:i32 = let %29
+        %31:bool = lt %x_92, 8i
+        if %31 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_98:ptr<function, vec4<f32>, read_write> = var
         store %x_77, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %29:ptr<function, vec4<f32>, read_write> = access %x_77, %x_92
-        %30:vec4<f32> = load %29
-        store %x_98, %30
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %x_101:f32 = access %x_87, 0u
-            %x_102:f32 = load_vector_element %x_98, 0u
-            %33:bool = lt %x_101, %x_102
-            if %33 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        %33:ptr<function, vec4<f32>, read_write> = access %x_77, %x_92
+        %34:vec4<f32> = load %33
+        store %x_98, %34
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %35:f32 = access %x_87, 0u
+            %x_101:f32 = let %35
+            %37:f32 = load_vector_element %x_98, 0u
+            %x_102:f32 = let %37
+            %39:bool = lt %x_101, %x_102
+            if %39 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_121_phi, false
                 exit_switch  # switch_1
               }
             }
-            %x_106:f32 = access %x_87, 1u
-            %x_107:f32 = load_vector_element %x_98, 1u
-            %36:bool = lt %x_106, %x_107
-            if %36 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %40:f32 = access %x_87, 1u
+            %x_106:f32 = let %40
+            %42:f32 = load_vector_element %x_98, 1u
+            %x_107:f32 = let %42
+            %44:bool = lt %x_106, %x_107
+            if %44 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_121_phi, false
                 exit_switch  # switch_1
               }
             }
-            %37:f32 = load_vector_element %x_98, 2u
-            %38:f32 = add %x_102, %37
-            %39:bool = gt %x_101, %38
-            if %39 [t: %b10] {  # if_4
-              %b10 = block {  # true
+            %45:f32 = load_vector_element %x_98, 2u
+            %46:f32 = add %x_102, %45
+            %47:bool = gt %x_101, %46
+            if %47 [t: $B10] {  # if_4
+              $B10: {  # true
                 store %x_121_phi, false
                 exit_switch  # switch_1
               }
             }
-            %40:f32 = load_vector_element %x_98, 3u
-            %41:f32 = add %x_107, %40
-            %42:bool = gt %x_106, %41
-            if %42 [t: %b11] {  # if_5
-              %b11 = block {  # true
+            %48:f32 = load_vector_element %x_98, 3u
+            %49:f32 = add %x_107, %48
+            %50:bool = gt %x_106, %49
+            if %50 [t: $B11] {  # if_5
+              $B11: {  # true
                 store %x_121_phi, false
                 exit_switch  # switch_1
               }
@@ -99,57 +107,87 @@
             exit_switch  # switch_1
           }
         }
-        %x_121:bool = load %x_121_phi
-        %44:vec4<f32> = load %x_89
-        store %x_90_phi, %44
-        if %x_121 [t: %b12] {  # if_6
-          %b12 = block {  # true
+        %51:bool = load %x_121_phi
+        %x_121:bool = let %51
+        %53:vec4<f32> = load %x_89
+        store %x_90_phi, %53
+        if %x_121 [t: $B12] {  # if_6
+          $B12: {  # true
             store %x_78, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %45:ptr<function, vec4<f32>, read_write> = access %x_78, %x_92
-            %x_125:f32 = load_vector_element %45, 0u
+            %54:ptr<function, vec4<f32>, read_write> = access %x_78, %x_92
+            %55:f32 = load_vector_element %54, 0u
+            %x_125:f32 = let %55
             store %x_79, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:ptr<function, vec4<f32>, read_write> = access %x_79, %x_92
-            %x_128:f32 = load_vector_element %47, 1u
+            %57:ptr<function, vec4<f32>, read_write> = access %x_79, %x_92
+            %58:f32 = load_vector_element %57, 1u
+            %x_128:f32 = let %58
             store %x_80, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %49:i32 = convert %x_125
-            %50:i32 = convert %x_128
-            %51:i32 = mul %49, %50
-            %52:i32 = mul %x_92, 9i
-            %53:i32 = add %51, %52
-            %54:i32 = add %53, 11i
-            %55:i32 = mod %54, 16i
-            %56:ptr<function, vec4<f32>, read_write> = access %x_80, %55
-            %57:vec4<f32> = load %56
-            store %x_136, %57
-            %58:vec4<f32> = load %x_136
-            store %x_90_phi, %58
+            %60:i32 = call %tint_f32_to_i32, %x_125
+            %62:i32 = let %60
+            %63:i32 = call %tint_f32_to_i32, %x_128
+            %64:i32 = mul %62, %63
+            %65:i32 = mul %x_92, 9i
+            %66:i32 = add %64, %65
+            %67:i32 = add %66, 11i
+            %68:i32 = call %tint_mod_i32, %67, 16i
+            %70:ptr<function, vec4<f32>, read_write> = access %x_80, %68
+            %71:vec4<f32> = load %70
+            store %x_136, %71
+            %72:vec4<f32> = load %x_136
+            store %x_90_phi, %72
             exit_if  # if_6
           }
         }
-        %x_90:vec4<f32> = load %x_90_phi
-        continue %b4
+        %73:vec4<f32> = load %x_90_phi
+        %x_90:vec4<f32> = let %73
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %60:i32 = add %x_92, 1i
-        store %x_93, %60
+      $B4: {  # continuing
+        %75:i32 = add %x_92, 1i
+        store %x_93, %75
         store %x_89_phi, %x_90
-        %61:i32 = load %x_93
-        store %x_92_phi, %61
-        next_iteration %b3
+        %76:i32 = load %x_93
+        store %x_92_phi, %76
+        next_iteration  # -> $B3
       }
     }
-    %62:vec4<f32> = load %x_89
-    store %x_GLF_color, %62
+    %77:vec4<f32> = load %x_89
+    store %x_GLF_color, %77
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %65:void = call %main_1
-    %66:vec4<f32> = load %x_GLF_color
-    %67:main_out = construct %66
-    ret %67
+    %80:void = call %main_1
+    %81:vec4<f32> = load %x_GLF_color
+    %82:main_out = construct %81
+    ret %82
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %85:bool = eq %rhs, 0i
+    %86:bool = eq %lhs, -2147483648i
+    %87:bool = eq %rhs, -1i
+    %88:bool = and %86, %87
+    %89:bool = or %85, %88
+    %90:i32 = select %rhs, 1i, %89
+    %91:i32 = let %90
+    %92:i32 = div %lhs, %91
+    %93:i32 = mul %92, %91
+    %94:i32 = sub %lhs, %93
+    ret %94
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %96:i32 = convert %value
+    %97:bool = gte %value, -2147483648.0f
+    %98:i32 = select -2147483648i, %96, %97
+    %99:bool = lte %value, 2147483520.0f
+    %100:i32 = select 2147483647i, %98, %99
+    ret %100
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.msl
index 4b323ce..1f49091 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_69:ptr<function, i32, read_write> = var
     %x_72:ptr<function, i32, read_write> = var
@@ -23,71 +23,112 @@
     %9:vec2<f32> = swizzle %8, xy
     %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %11:vec2<f32> = load %10
-    %x_59:vec2<f32> = div %9, %11
-    %13:f32 = access %x_59, 0u
-    %14:f32 = mul %13, 10.0f
-    %15:i32 = convert %14
-    %16:f32 = access %x_59, 1u
-    %17:f32 = mul %16, 10.0f
-    %18:i32 = convert %17
-    %19:i32 = mul %18, 10i
-    %x_67:i32 = add %15, %19
+    %12:vec2<f32> = div %9, %11
+    %x_59:vec2<f32> = let %12
+    %14:f32 = access %x_59, 0u
+    %15:f32 = mul %14, 10.0f
+    %16:i32 = call %tint_f32_to_i32, %15
+    %18:i32 = let %16
+    %19:f32 = access %x_59, 1u
+    %20:f32 = mul %19, 10.0f
+    %21:i32 = call %tint_f32_to_i32, %20
+    %22:i32 = mul %21, 10i
+    %23:i32 = add %18, %22
+    %x_67:i32 = let %23
     store %x_69, 100i
     store %x_72, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_70:ptr<function, i32, read_write> = var
         %x_73:ptr<function, i32, read_write> = var
-        %23:i32 = load %x_72
-        %24:bool = lt %23, %x_67
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %27:i32 = load %x_72
+        %28:bool = lt %27, %x_67
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %25:i32 = load %x_69
-        %26:i32 = mul 4i, %25
-        %27:i32 = load %x_69
-        %28:i32 = sub 1000i, %27
-        %29:i32 = mul %26, %28
-        %30:i32 = div %29, 1000i
-        store %x_70, %30
-        %31:i32 = load %x_72
-        %32:i32 = add %31, 1i
-        store %x_73, %32
-        %33:i32 = load %x_70
-        store %x_69, %33
-        %34:i32 = load %x_73
-        store %x_72, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %x_69
+        %30:i32 = mul 4i, %29
+        %31:i32 = load %x_69
+        %32:i32 = sub 1000i, %31
+        %33:i32 = mul %30, %32
+        %34:i32 = call %tint_div_i32, %33, 1000i
+        store %x_70, %34
+        %36:i32 = load %x_72
+        %37:i32 = add %36, 1i
+        store %x_73, %37
+        %38:i32 = load %x_70
+        store %x_69, %38
+        %39:i32 = load %x_73
+        store %x_72, %39
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_80:array<vec4<f32>, 16> = load %indexable
+    %40:array<vec4<f32>, 16> = load %indexable
+    %x_80:array<vec4<f32>, 16> = let %40
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_80
     %x_81:vec2<f32> = let vec2<f32>(1.0f, 0.5f)
-    %37:i32 = load %x_69
-    %38:i32 = mod %37, 16i
-    %39:ptr<function, vec4<f32>, read_write> = access %indexable, %38
-    %40:vec4<f32> = load %39
-    store %x_GLF_color, %40
+    %43:i32 = load %x_69
+    %44:i32 = call %tint_mod_i32, %43, 16i
+    %46:ptr<function, vec4<f32>, read_write> = access %indexable, %44
+    %47:vec4<f32> = load %46
+    store %x_GLF_color, %47
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %43:void = call %main_1
-    %44:vec4<f32> = load %x_GLF_color
-    %45:main_out = construct %44
-    ret %45
+    %50:void = call %main_1
+    %51:vec4<f32> = load %x_GLF_color
+    %52:main_out = construct %51
+    ret %52
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %55:bool = eq %rhs, 0i
+    %56:bool = eq %lhs, -2147483648i
+    %57:bool = eq %rhs, -1i
+    %58:bool = and %56, %57
+    %59:bool = or %55, %58
+    %60:i32 = select %rhs, 1i, %59
+    %61:i32 = div %lhs, %60
+    ret %61
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %64:bool = eq %rhs_1, 0i
+    %65:bool = eq %lhs_1, -2147483648i
+    %66:bool = eq %rhs_1, -1i
+    %67:bool = and %65, %66
+    %68:bool = or %64, %67
+    %69:i32 = select %rhs_1, 1i, %68
+    %70:i32 = let %69
+    %71:i32 = div %lhs_1, %70
+    %72:i32 = mul %71, %70
+    %73:i32 = sub %lhs_1, %72
+    ret %73
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %75:i32 = convert %value
+    %76:bool = gte %value, -2147483648.0f
+    %77:i32 = select -2147483648i, %75, %76
+    %78:bool = lte %value, 2147483520.0f
+    %79:i32 = select 2147483647i, %77, %78
+    ret %79
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.msl
index be17432..611a5c8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,93 +8,139 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_69:ptr<function, i32, read_write> = var
     %x_69_phi:ptr<function, i32, read_write> = var
     %x_72_phi:ptr<function, i32, read_write> = var
-    %x_55:vec4<f32> = load %gl_FragCoord
-    %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_58:vec2<f32> = load %10
-    %12:f32 = access %x_55, 0u
-    %13:f32 = access %x_55, 1u
-    %14:vec2<f32> = construct %12, %13
-    %x_59:vec2<f32> = div %14, %x_58
-    %16:f32 = access %x_59, 0u
-    %17:f32 = mul %16, 10.0f
-    %18:i32 = convert %17
-    %19:f32 = access %x_59, 1u
+    %9:vec4<f32> = load %gl_FragCoord
+    %x_55:vec4<f32> = let %9
+    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %12:vec2<f32> = load %11
+    %x_58:vec2<f32> = let %12
+    %14:f32 = access %x_55, 0u
+    %15:f32 = access %x_55, 1u
+    %16:vec2<f32> = construct %14, %15
+    %17:vec2<f32> = div %16, %x_58
+    %x_59:vec2<f32> = let %17
+    %19:f32 = access %x_59, 0u
     %20:f32 = mul %19, 10.0f
-    %21:i32 = convert %20
-    %22:i32 = mul %21, 10i
-    %x_67:i32 = add %18, %22
+    %21:i32 = call %tint_f32_to_i32, %20
+    %23:i32 = let %21
+    %24:f32 = access %x_59, 1u
+    %25:f32 = mul %24, 10.0f
+    %26:i32 = call %tint_f32_to_i32, %25
+    %27:i32 = mul %26, 10i
+    %28:i32 = add %23, %27
+    %x_67:i32 = let %28
     store %x_69_phi, 100i
     store %x_72_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_70:ptr<function, i32, read_write> = var
         %x_73:ptr<function, i32, read_write> = var
-        %26:i32 = load %x_69_phi
-        store %x_69, %26
-        %x_72:i32 = load %x_72_phi
-        %28:bool = lt %x_72, %x_67
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %32:i32 = load %x_69_phi
+        store %x_69, %32
+        %33:i32 = load %x_72_phi
+        %x_72:i32 = let %33
+        %35:bool = lt %x_72, %x_67
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %29:i32 = load %x_69
-        %30:i32 = bitcast %29
-        %31:i32 = mul 4i, %30
-        %32:i32 = load %x_69
-        %33:i32 = bitcast %32
-        %34:i32 = sub 1000i, %33
-        %35:i32 = mul %31, %34
-        %36:i32 = div %35, 1000i
-        store %x_70, %36
-        %37:i32 = add %x_72, 1i
-        store %x_73, %37
-        %38:i32 = load %x_70
-        store %x_69_phi, %38
-        %39:i32 = load %x_73
-        store %x_72_phi, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %36:i32 = load %x_69
+        %37:i32 = bitcast %36
+        %38:i32 = mul 4i, %37
+        %39:i32 = let %38
+        %40:i32 = load %x_69
+        %41:i32 = bitcast %40
+        %42:i32 = sub 1000i, %41
+        %43:i32 = mul %39, %42
+        %44:i32 = call %tint_div_i32, %43, 1000i
+        store %x_70, %44
+        %46:i32 = add %x_72, 1i
+        store %x_73, %46
+        %47:i32 = load %x_70
+        store %x_69_phi, %47
+        %48:i32 = load %x_73
+        store %x_72_phi, %48
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_80:array<vec4<f32>, 16> = load %indexable
+    %49:array<vec4<f32>, 16> = load %indexable
+    %x_80:array<vec4<f32>, 16> = let %49
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_80
     %x_81:vec2<f32> = let vec2<f32>(1.0f, 0.5f)
-    %42:i32 = load %x_69
-    %43:i32 = mod %42, 16i
-    %44:i32 = bitcast %43
-    %45:ptr<function, vec4<f32>, read_write> = access %indexable, %44
-    %x_83:vec4<f32> = load %45
+    %52:i32 = load %x_69
+    %53:i32 = call %tint_mod_i32, %52, 16i
+    %55:i32 = bitcast %53
+    %56:ptr<function, vec4<f32>, read_write> = access %indexable, %55
+    %57:vec4<f32> = load %56
+    %x_83:vec4<f32> = let %57
     store %x_GLF_color, %x_83
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %49:void = call %main_1
-    %50:vec4<f32> = load %x_GLF_color
-    %51:main_out = construct %50
-    ret %51
+    %61:void = call %main_1
+    %62:vec4<f32> = load %x_GLF_color
+    %63:main_out = construct %62
+    ret %63
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %66:bool = eq %rhs, 0i
+    %67:bool = eq %lhs, -2147483648i
+    %68:bool = eq %rhs, -1i
+    %69:bool = and %67, %68
+    %70:bool = or %66, %69
+    %71:i32 = select %rhs, 1i, %70
+    %72:i32 = div %lhs, %71
+    ret %72
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %75:bool = eq %rhs_1, 0i
+    %76:bool = eq %lhs_1, -2147483648i
+    %77:bool = eq %rhs_1, -1i
+    %78:bool = and %76, %77
+    %79:bool = or %75, %78
+    %80:i32 = select %rhs_1, 1i, %79
+    %81:i32 = let %80
+    %82:i32 = div %lhs_1, %81
+    %83:i32 = mul %82, %81
+    %84:i32 = sub %lhs_1, %83
+    ret %84
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %86:i32 = convert %value
+    %87:bool = gte %value, -2147483648.0f
+    %88:i32 = select -2147483648i, %86, %87
+    %89:bool = lte %value, 2147483520.0f
+    %90:i32 = select 2147483647i, %88, %89
+    ret %90
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.msl
index 7c78244..e38912f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_69:ptr<function, i32, read_write> = var
     %x_72:ptr<function, i32, read_write> = var
@@ -23,68 +23,108 @@
     %9:vec2<f32> = swizzle %8, xy
     %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %11:vec2<f32> = load %10
-    %x_59:vec2<f32> = div %9, %11
-    %13:f32 = access %x_59, 0u
-    %14:f32 = mul %13, 10.0f
-    %15:i32 = convert %14
-    %16:f32 = access %x_59, 1u
-    %17:f32 = mul %16, 10.0f
-    %18:i32 = convert %17
-    %19:i32 = mul %18, 10i
-    %x_67:i32 = add %15, %19
+    %12:vec2<f32> = div %9, %11
+    %x_59:vec2<f32> = let %12
+    %14:f32 = access %x_59, 0u
+    %15:f32 = mul %14, 10.0f
+    %16:i32 = call %tint_f32_to_i32, %15
+    %18:i32 = let %16
+    %19:f32 = access %x_59, 1u
+    %20:f32 = mul %19, 10.0f
+    %21:i32 = call %tint_f32_to_i32, %20
+    %22:i32 = mul %21, 10i
+    %23:i32 = add %18, %22
+    %x_67:i32 = let %23
     store %x_69, 100i
     store %x_72, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_70:ptr<function, i32, read_write> = var
         %x_73:ptr<function, i32, read_write> = var
-        %23:i32 = load %x_72
-        %24:bool = lt %23, %x_67
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %27:i32 = load %x_72
+        %28:bool = lt %27, %x_67
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %25:i32 = load %x_69
-        %26:i32 = mul 4i, %25
-        %27:i32 = load %x_69
-        %28:i32 = sub 1000i, %27
-        %29:i32 = mul %26, %28
-        %30:i32 = div %29, 1000i
-        store %x_70, %30
-        %31:i32 = load %x_72
-        %32:i32 = add %31, 1i
-        store %x_73, %32
-        %33:i32 = load %x_70
-        store %x_69, %33
-        %34:i32 = load %x_73
-        store %x_72, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %29:i32 = load %x_69
+        %30:i32 = mul 4i, %29
+        %31:i32 = load %x_69
+        %32:i32 = sub 1000i, %31
+        %33:i32 = mul %30, %32
+        %34:i32 = call %tint_div_i32, %33, 1000i
+        store %x_70, %34
+        %36:i32 = load %x_72
+        %37:i32 = add %36, 1i
+        store %x_73, %37
+        %38:i32 = load %x_70
+        store %x_69, %38
+        %39:i32 = load %x_73
+        store %x_72, %39
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
     %x_80:vec2<f32> = let vec2<f32>(1.0f, 0.5f)
-    %36:i32 = load %x_69
-    %37:i32 = mod %36, 16i
-    %38:ptr<function, vec4<f32>, read_write> = access %indexable, %37
-    %39:vec4<f32> = load %38
-    store %x_GLF_color, %39
+    %41:i32 = load %x_69
+    %42:i32 = call %tint_mod_i32, %41, 16i
+    %44:ptr<function, vec4<f32>, read_write> = access %indexable, %42
+    %45:vec4<f32> = load %44
+    store %x_GLF_color, %45
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+    %48:void = call %main_1
+    %49:vec4<f32> = load %x_GLF_color
+    %50:main_out = construct %49
+    ret %50
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %53:bool = eq %rhs, 0i
+    %54:bool = eq %lhs, -2147483648i
+    %55:bool = eq %rhs, -1i
+    %56:bool = and %54, %55
+    %57:bool = or %53, %56
+    %58:i32 = select %rhs, 1i, %57
+    %59:i32 = div %lhs, %58
+    ret %59
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %62:bool = eq %rhs_1, 0i
+    %63:bool = eq %lhs_1, -2147483648i
+    %64:bool = eq %rhs_1, -1i
+    %65:bool = and %63, %64
+    %66:bool = or %62, %65
+    %67:i32 = select %rhs_1, 1i, %66
+    %68:i32 = let %67
+    %69:i32 = div %lhs_1, %68
+    %70:i32 = mul %69, %68
+    %71:i32 = sub %lhs_1, %70
+    ret %71
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %73:i32 = convert %value
+    %74:bool = gte %value, -2147483648.0f
+    %75:i32 = select -2147483648i, %73, %74
+    %76:bool = lte %value, 2147483520.0f
+    %77:i32 = select 2147483647i, %75, %76
+    ret %77
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.msl
index f8cb527..cf23ec9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bifurcation-Os-mutate-var-vector-shuffle/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,90 +8,135 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_69:ptr<function, i32, read_write> = var
     %x_69_phi:ptr<function, i32, read_write> = var
     %x_72_phi:ptr<function, i32, read_write> = var
-    %x_55:vec4<f32> = load %gl_FragCoord
-    %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_58:vec2<f32> = load %10
-    %12:f32 = access %x_55, 0u
-    %13:f32 = access %x_55, 1u
-    %14:vec2<f32> = construct %12, %13
-    %x_59:vec2<f32> = div %14, %x_58
-    %16:f32 = access %x_59, 0u
-    %17:f32 = mul %16, 10.0f
-    %18:i32 = convert %17
-    %19:f32 = access %x_59, 1u
+    %9:vec4<f32> = load %gl_FragCoord
+    %x_55:vec4<f32> = let %9
+    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %12:vec2<f32> = load %11
+    %x_58:vec2<f32> = let %12
+    %14:f32 = access %x_55, 0u
+    %15:f32 = access %x_55, 1u
+    %16:vec2<f32> = construct %14, %15
+    %17:vec2<f32> = div %16, %x_58
+    %x_59:vec2<f32> = let %17
+    %19:f32 = access %x_59, 0u
     %20:f32 = mul %19, 10.0f
-    %21:i32 = convert %20
-    %22:i32 = mul %21, 10i
-    %x_67:i32 = add %18, %22
+    %21:i32 = call %tint_f32_to_i32, %20
+    %23:i32 = let %21
+    %24:f32 = access %x_59, 1u
+    %25:f32 = mul %24, 10.0f
+    %26:i32 = call %tint_f32_to_i32, %25
+    %27:i32 = mul %26, 10i
+    %28:i32 = add %23, %27
+    %x_67:i32 = let %28
     store %x_69_phi, 100i
     store %x_72_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_70:ptr<function, i32, read_write> = var
         %x_73:ptr<function, i32, read_write> = var
-        %26:i32 = load %x_69_phi
-        store %x_69, %26
-        %x_72:i32 = load %x_72_phi
-        %28:bool = lt %x_72, %x_67
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %32:i32 = load %x_69_phi
+        store %x_69, %32
+        %33:i32 = load %x_72_phi
+        %x_72:i32 = let %33
+        %35:bool = lt %x_72, %x_67
+        if %35 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %29:i32 = load %x_69
-        %30:i32 = bitcast %29
-        %31:i32 = mul 4i, %30
-        %32:i32 = load %x_69
-        %33:i32 = bitcast %32
-        %34:i32 = sub 1000i, %33
-        %35:i32 = mul %31, %34
-        %36:i32 = div %35, 1000i
-        store %x_70, %36
-        %37:i32 = add %x_72, 1i
-        store %x_73, %37
-        %38:i32 = load %x_70
-        store %x_69_phi, %38
-        %39:i32 = load %x_73
-        store %x_72_phi, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %36:i32 = load %x_69
+        %37:i32 = bitcast %36
+        %38:i32 = mul 4i, %37
+        %39:i32 = let %38
+        %40:i32 = load %x_69
+        %41:i32 = bitcast %40
+        %42:i32 = sub 1000i, %41
+        %43:i32 = mul %39, %42
+        %44:i32 = call %tint_div_i32, %43, 1000i
+        store %x_70, %44
+        %46:i32 = add %x_72, 1i
+        store %x_73, %46
+        %47:i32 = load %x_70
+        store %x_69_phi, %47
+        %48:i32 = load %x_73
+        store %x_72_phi, %48
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
     %x_80:vec2<f32> = let vec2<f32>(1.0f, 0.5f)
-    %41:i32 = load %x_69
-    %42:i32 = mod %41, 16i
-    %43:i32 = bitcast %42
-    %44:ptr<function, vec4<f32>, read_write> = access %indexable, %43
-    %x_82:vec4<f32> = load %44
+    %50:i32 = load %x_69
+    %51:i32 = call %tint_mod_i32, %50, 16i
+    %53:i32 = bitcast %51
+    %54:ptr<function, vec4<f32>, read_write> = access %indexable, %53
+    %55:vec4<f32> = load %54
+    %x_82:vec4<f32> = let %55
     store %x_GLF_color, %x_82
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_color
-    %50:main_out = construct %49
-    ret %50
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B8: {
+    %64:bool = eq %rhs, 0i
+    %65:bool = eq %lhs, -2147483648i
+    %66:bool = eq %rhs, -1i
+    %67:bool = and %65, %66
+    %68:bool = or %64, %67
+    %69:i32 = select %rhs, 1i, %68
+    %70:i32 = div %lhs, %69
+    ret %70
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B9: {
+    %73:bool = eq %rhs_1, 0i
+    %74:bool = eq %lhs_1, -2147483648i
+    %75:bool = eq %rhs_1, -1i
+    %76:bool = and %74, %75
+    %77:bool = or %73, %76
+    %78:i32 = select %rhs_1, 1i, %77
+    %79:i32 = let %78
+    %80:i32 = div %lhs_1, %79
+    %81:i32 = mul %80, %79
+    %82:i32 = sub %lhs_1, %81
+    ret %82
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %84:i32 = convert %value
+    %85:bool = gte %value, -2147483648.0f
+    %86:i32 = select -2147483648i, %84, %85
+    %87:bool = lte %value, 2147483520.0f
+    %88:i32 = select 2147483647i, %86, %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.msl
index 1a1969f..8eae509 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,30 +12,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool -> %b2 {
-  %b2 = block {
+%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool {
+  $B2: {
     %x_144:ptr<function, bool, read_write> = var
     %9:f32 = load_vector_element %gl_FragCoord, 1u
     %10:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
     %11:f32 = load_vector_element %10, 1u
     %12:f32 = div %11, 2.0f
     %13:bool = lt %9, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %14:f32 = load %a
         %15:f32 = load %b
         %16:bool = gt %14, %15
         store %x_144, %16
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %17:f32 = load %a
         %18:f32 = load %b
         %19:bool = lt %17, %18
@@ -43,12 +43,13 @@
         exit_if  # if_1
       }
     }
-    %x_160:bool = load %x_144
+    %20:bool = load %x_144
+    %x_160:bool = let %20
     ret %x_160
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %i:ptr<function, i32, read_write> = var
     %data:ptr<function, array<f32, 10>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -58,164 +59,169 @@
     %param_1:ptr<function, f32, read_write> = var
     %temp:ptr<function, f32, read_write> = var
     store %i, 0i
-    loop [b: %b6, c: %b7] {  # loop_1
-      %b6 = block {  # body
-        %30:i32 = load %i
-        %31:bool = lt %30, 10i
-        if %31 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+    loop [b: $B6, c: $B7] {  # loop_1
+      $B6: {  # body
+        %31:i32 = load %i
+        %32:bool = lt %31, 10i
+        if %32 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             exit_if  # if_2
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_59:i32 = load %i
-        %33:ptr<function, f32, read_write> = access %data, %x_59
-        %34:i32 = load %i
-        %35:i32 = sub 10i, %34
-        %36:f32 = convert %35
-        %37:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-        %38:f32 = load_vector_element %37, 1u
-        %39:f32 = mul %36, %38
-        store %33, %39
-        continue %b7
+        %33:i32 = load %i
+        %x_59:i32 = let %33
+        %35:ptr<function, f32, read_write> = access %data, %x_59
+        %36:i32 = load %i
+        %37:i32 = sub 10i, %36
+        %38:f32 = convert %37
+        %39:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+        %40:f32 = load_vector_element %39, 1u
+        %41:f32 = mul %38, %40
+        store %35, %41
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %40:i32 = load %i
-        %41:i32 = add %40, 1i
-        store %i, %41
-        next_iteration %b6
+      $B7: {  # continuing
+        %42:i32 = load %i
+        %43:i32 = add %42, 1i
+        store %i, %43
+        next_iteration  # -> $B6
       }
     }
     store %i_1, 0i
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %42:i32 = load %i_1
-        %43:bool = lt %42, 9i
-        if %43 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %44:i32 = load %i_1
+        %45:bool = lt %44, 9i
+        if %45 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
         store %j, 0i
-        loop [b: %b14, c: %b15] {  # loop_3
-          %b14 = block {  # body
-            %44:i32 = load %j
-            %45:bool = lt %44, 10i
-            if %45 [t: %b16, f: %b17] {  # if_4
-              %b16 = block {  # true
+        loop [b: $B14, c: $B15] {  # loop_3
+          $B14: {  # body
+            %46:i32 = load %j
+            %47:bool = lt %46, 10i
+            if %47 [t: $B16, f: $B17] {  # if_4
+              $B16: {  # true
                 exit_if  # if_4
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_3
               }
             }
-            %46:i32 = load %j
-            %47:i32 = load %i_1
-            %48:i32 = add %47, 1i
-            %49:bool = lt %46, %48
-            if %49 [t: %b18] {  # if_5
-              %b18 = block {  # true
-                continue %b15
+            %48:i32 = load %j
+            %49:i32 = load %i_1
+            %50:i32 = add %49, 1i
+            %51:bool = lt %48, %50
+            if %51 [t: $B18] {  # if_5
+              $B18: {  # true
+                continue  # -> $B15
               }
             }
-            %x_90:i32 = load %j
-            %51:i32 = load %i_1
-            %52:ptr<function, f32, read_write> = access %data, %51
-            %53:f32 = load %52
-            store %param, %53
-            %54:ptr<function, f32, read_write> = access %data, %x_90
-            %55:f32 = load %54
-            store %param_1, %55
-            %x_95:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %52:i32 = load %j
+            %x_90:i32 = let %52
+            %54:i32 = load %i_1
+            %55:ptr<function, f32, read_write> = access %data, %54
+            %56:f32 = load %55
+            store %param, %56
+            %57:ptr<function, f32, read_write> = access %data, %x_90
+            %58:f32 = load %57
+            store %param_1, %58
+            %59:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %x_95:bool = let %59
             store %doSwap, %x_95
-            %57:bool = load %doSwap
-            if %57 [t: %b19] {  # if_6
-              %b19 = block {  # true
-                %58:i32 = load %i_1
-                %59:ptr<function, f32, read_write> = access %data, %58
-                %60:f32 = load %59
-                store %temp, %60
-                %x_102:i32 = load %i_1
-                %62:ptr<function, f32, read_write> = access %data, %x_102
-                %63:i32 = load %j
-                %64:ptr<function, f32, read_write> = access %data, %63
-                %65:f32 = load %64
-                store %62, %65
-                %x_107:i32 = load %j
-                %67:ptr<function, f32, read_write> = access %data, %x_107
-                %68:f32 = load %temp
-                store %67, %68
+            %61:bool = load %doSwap
+            if %61 [t: $B19] {  # if_6
+              $B19: {  # true
+                %62:i32 = load %i_1
+                %63:ptr<function, f32, read_write> = access %data, %62
+                %64:f32 = load %63
+                store %temp, %64
+                %65:i32 = load %i_1
+                %x_102:i32 = let %65
+                %67:ptr<function, f32, read_write> = access %data, %x_102
+                %68:i32 = load %j
+                %69:ptr<function, f32, read_write> = access %data, %68
+                %70:f32 = load %69
+                store %67, %70
+                %71:i32 = load %j
+                %x_107:i32 = let %71
+                %73:ptr<function, f32, read_write> = access %data, %x_107
+                %74:f32 = load %temp
+                store %73, %74
                 exit_if  # if_6
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %69:i32 = load %j
-            %70:i32 = add %69, 1i
-            store %j, %70
-            next_iteration %b14
+          $B15: {  # continuing
+            %75:i32 = load %j
+            %76:i32 = add %75, 1i
+            store %j, %76
+            next_iteration  # -> $B14
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %71:i32 = load %i_1
-        %72:i32 = add %71, 1i
-        store %i_1, %72
-        next_iteration %b10
+      $B11: {  # continuing
+        %77:i32 = load %i_1
+        %78:i32 = add %77, 1i
+        store %i_1, %78
+        next_iteration  # -> $B10
       }
     }
-    %73:f32 = load_vector_element %gl_FragCoord, 0u
-    %74:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %75:f32 = load_vector_element %74, 0u
-    %76:f32 = div %75, 2.0f
-    %77:bool = lt %73, %76
-    if %77 [t: %b20, f: %b21] {  # if_7
-      %b20 = block {  # true
-        %78:ptr<function, f32, read_write> = access %data, 0i
-        %79:f32 = load %78
-        %80:f32 = div %79, 10.0f
-        %81:ptr<function, f32, read_write> = access %data, 5i
-        %82:f32 = load %81
-        %83:f32 = div %82, 10.0f
-        %84:ptr<function, f32, read_write> = access %data, 9i
+    %79:f32 = load_vector_element %gl_FragCoord, 0u
+    %80:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %81:f32 = load_vector_element %80, 0u
+    %82:f32 = div %81, 2.0f
+    %83:bool = lt %79, %82
+    if %83 [t: $B20, f: $B21] {  # if_7
+      $B20: {  # true
+        %84:ptr<function, f32, read_write> = access %data, 0i
         %85:f32 = load %84
         %86:f32 = div %85, 10.0f
-        %87:vec4<f32> = construct %80, %83, %86, 1.0f
-        store %x_GLF_color, %87
+        %87:ptr<function, f32, read_write> = access %data, 5i
+        %88:f32 = load %87
+        %89:f32 = div %88, 10.0f
+        %90:ptr<function, f32, read_write> = access %data, 9i
+        %91:f32 = load %90
+        %92:f32 = div %91, 10.0f
+        %93:vec4<f32> = construct %86, %89, %92, 1.0f
+        store %x_GLF_color, %93
         exit_if  # if_7
       }
-      %b21 = block {  # false
-        %88:ptr<function, f32, read_write> = access %data, 5i
-        %89:f32 = load %88
-        %90:f32 = div %89, 10.0f
-        %91:ptr<function, f32, read_write> = access %data, 9i
-        %92:f32 = load %91
-        %93:f32 = div %92, 10.0f
-        %94:ptr<function, f32, read_write> = access %data, 0i
+      $B21: {  # false
+        %94:ptr<function, f32, read_write> = access %data, 5i
         %95:f32 = load %94
         %96:f32 = div %95, 10.0f
-        %97:vec4<f32> = construct %90, %93, %96, 1.0f
-        store %x_GLF_color, %97
+        %97:ptr<function, f32, read_write> = access %data, 9i
+        %98:f32 = load %97
+        %99:f32 = div %98, 10.0f
+        %100:ptr<function, f32, read_write> = access %data, 0i
+        %101:f32 = load %100
+        %102:f32 = div %101, 10.0f
+        %103:vec4<f32> = construct %96, %99, %102, 1.0f
+        store %x_GLF_color, %103
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b22 {
-  %b22 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B22: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %100:void = call %main_1
-    %101:vec4<f32> = load %x_GLF_color
-    %102:main_out = construct %101
-    ret %102
+    %106:void = call %main_1
+    %107:vec4<f32> = load %x_GLF_color
+    %108:main_out = construct %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.msl
index 3d6e70c..45d77af 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,43 +12,50 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool -> %b2 {
-  %b2 = block {
+%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool {
+  $B2: {
     %x_144:ptr<function, bool, read_write> = var
-    %x_146:f32 = load_vector_element %gl_FragCoord, 1u
-    %10:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_148:f32 = load_vector_element %10, 1u
-    %12:f32 = div %x_148, 2.0f
-    %13:bool = lt %x_146, %12
-    if %13 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %x_154:f32 = load %a
-        %x_155:f32 = load %b
-        %16:bool = gt %x_154, %x_155
-        store %x_144, %16
+    %9:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_146:f32 = let %9
+    %11:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %12:f32 = load_vector_element %11, 1u
+    %x_148:f32 = let %12
+    %14:f32 = div %x_148, 2.0f
+    %15:bool = lt %x_146, %14
+    if %15 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %16:f32 = load %a
+        %x_154:f32 = let %16
+        %18:f32 = load %b
+        %x_155:f32 = let %18
+        %20:bool = gt %x_154, %x_155
+        store %x_144, %20
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %x_157:f32 = load %a
-        %x_158:f32 = load %b
-        %19:bool = lt %x_157, %x_158
-        store %x_144, %19
+      $B4: {  # false
+        %21:f32 = load %a
+        %x_157:f32 = let %21
+        %23:f32 = load %b
+        %x_158:f32 = let %23
+        %25:bool = lt %x_157, %x_158
+        store %x_144, %25
         exit_if  # if_1
       }
     }
-    %x_160:bool = load %x_144
+    %26:bool = load %x_144
+    %x_160:bool = let %26
     ret %x_160
   }
 }
-%main_1 = func():void -> %b5 {
-  %b5 = block {
+%main_1 = func():void {
+  $B5: {
     %i:ptr<function, i32, read_write> = var
     %data:ptr<function, array<f32, 10>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -58,164 +65,196 @@
     %param_1:ptr<function, f32, read_write> = var
     %temp:ptr<function, f32, read_write> = var
     store %i, 0i
-    loop [b: %b6, c: %b7] {  # loop_1
-      %b6 = block {  # body
-        %x_56:i32 = load %i
-        %31:bool = lt %x_56, 10i
-        if %31 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+    loop [b: $B6, c: $B7] {  # loop_1
+      $B6: {  # body
+        %37:i32 = load %i
+        %x_56:i32 = let %37
+        %39:bool = lt %x_56, 10i
+        if %39 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             exit_if  # if_2
           }
-          %b9 = block {  # false
+          $B9: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_59:i32 = load %i
-        %x_60:i32 = load %i
-        %34:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-        %x_64:f32 = load_vector_element %34, 1u
-        %36:ptr<function, f32, read_write> = access %data, %x_59
-        %37:i32 = sub 10i, %x_60
-        %38:f32 = convert %37
-        %39:f32 = mul %38, %x_64
-        store %36, %39
-        continue %b7
+        %40:i32 = load %i
+        %x_59:i32 = let %40
+        %42:i32 = load %i
+        %x_60:i32 = let %42
+        %44:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+        %45:f32 = load_vector_element %44, 1u
+        %x_64:f32 = let %45
+        %47:ptr<function, f32, read_write> = access %data, %x_59
+        %48:i32 = sub 10i, %x_60
+        %49:f32 = convert %48
+        %50:f32 = mul %49, %x_64
+        store %47, %50
+        continue  # -> $B7
       }
-      %b7 = block {  # continuing
-        %x_67:i32 = load %i
-        %41:i32 = add %x_67, 1i
-        store %i, %41
-        next_iteration %b6
+      $B7: {  # continuing
+        %51:i32 = load %i
+        %x_67:i32 = let %51
+        %53:i32 = add %x_67, 1i
+        store %i, %53
+        next_iteration  # -> $B6
       }
     }
     store %i_1, 0i
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_73:i32 = load %i_1
-        %43:bool = lt %x_73, 9i
-        if %43 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %54:i32 = load %i_1
+        %x_73:i32 = let %54
+        %56:bool = lt %x_73, 9i
+        if %56 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
         store %j, 0i
-        loop [b: %b14, c: %b15] {  # loop_3
-          %b14 = block {  # body
-            %x_80:i32 = load %j
-            %45:bool = lt %x_80, 10i
-            if %45 [t: %b16, f: %b17] {  # if_4
-              %b16 = block {  # true
+        loop [b: $B14, c: $B15] {  # loop_3
+          $B14: {  # body
+            %57:i32 = load %j
+            %x_80:i32 = let %57
+            %59:bool = lt %x_80, 10i
+            if %59 [t: $B16, f: $B17] {  # if_4
+              $B16: {  # true
                 exit_if  # if_4
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_83:i32 = load %j
-            %x_84:i32 = load %i_1
-            %48:i32 = add %x_84, 1i
-            %49:bool = lt %x_83, %48
-            if %49 [t: %b18] {  # if_5
-              %b18 = block {  # true
-                continue %b15
+            %60:i32 = load %j
+            %x_83:i32 = let %60
+            %62:i32 = load %i_1
+            %x_84:i32 = let %62
+            %64:i32 = add %x_84, 1i
+            %65:bool = lt %x_83, %64
+            if %65 [t: $B18] {  # if_5
+              $B18: {  # true
+                continue  # -> $B15
               }
             }
-            %x_89:i32 = load %i_1
-            %x_90:i32 = load %j
-            %52:ptr<function, f32, read_write> = access %data, %x_89
-            %x_92:f32 = load %52
+            %66:i32 = load %i_1
+            %x_89:i32 = let %66
+            %68:i32 = load %j
+            %x_90:i32 = let %68
+            %70:ptr<function, f32, read_write> = access %data, %x_89
+            %71:f32 = load %70
+            %x_92:f32 = let %71
             store %param, %x_92
-            %54:ptr<function, f32, read_write> = access %data, %x_90
-            %x_94:f32 = load %54
+            %73:ptr<function, f32, read_write> = access %data, %x_90
+            %74:f32 = load %73
+            %x_94:f32 = let %74
             store %param_1, %x_94
-            %x_95:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %76:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %x_95:bool = let %76
             store %doSwap, %x_95
-            %x_96:bool = load %doSwap
-            if %x_96 [t: %b19] {  # if_6
-              %b19 = block {  # true
-                %x_99:i32 = load %i_1
-                %59:ptr<function, f32, read_write> = access %data, %x_99
-                %x_101:f32 = load %59
+            %78:bool = load %doSwap
+            %x_96:bool = let %78
+            if %x_96 [t: $B19] {  # if_6
+              $B19: {  # true
+                %80:i32 = load %i_1
+                %x_99:i32 = let %80
+                %82:ptr<function, f32, read_write> = access %data, %x_99
+                %83:f32 = load %82
+                %x_101:f32 = let %83
                 store %temp, %x_101
-                %x_102:i32 = load %i_1
-                %x_103:i32 = load %j
-                %63:ptr<function, f32, read_write> = access %data, %x_103
-                %x_105:f32 = load %63
-                %65:ptr<function, f32, read_write> = access %data, %x_102
-                store %65, %x_105
-                %x_107:i32 = load %j
-                %x_108:f32 = load %temp
-                %68:ptr<function, f32, read_write> = access %data, %x_107
-                store %68, %x_108
+                %85:i32 = load %i_1
+                %x_102:i32 = let %85
+                %87:i32 = load %j
+                %x_103:i32 = let %87
+                %89:ptr<function, f32, read_write> = access %data, %x_103
+                %90:f32 = load %89
+                %x_105:f32 = let %90
+                %92:ptr<function, f32, read_write> = access %data, %x_102
+                store %92, %x_105
+                %93:i32 = load %j
+                %x_107:i32 = let %93
+                %95:f32 = load %temp
+                %x_108:f32 = let %95
+                %97:ptr<function, f32, read_write> = access %data, %x_107
+                store %97, %x_108
                 exit_if  # if_6
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %x_110:i32 = load %j
-            %70:i32 = add %x_110, 1i
-            store %j, %70
-            next_iteration %b14
+          $B15: {  # continuing
+            %98:i32 = load %j
+            %x_110:i32 = let %98
+            %100:i32 = add %x_110, 1i
+            store %j, %100
+            next_iteration  # -> $B14
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %x_112:i32 = load %i_1
-        %72:i32 = add %x_112, 1i
-        store %i_1, %72
-        next_iteration %b10
+      $B11: {  # continuing
+        %101:i32 = load %i_1
+        %x_112:i32 = let %101
+        %103:i32 = add %x_112, 1i
+        store %i_1, %103
+        next_iteration  # -> $B10
       }
     }
-    %x_115:f32 = load_vector_element %gl_FragCoord, 0u
-    %74:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_117:f32 = load_vector_element %74, 0u
-    %76:f32 = div %x_117, 2.0f
-    %77:bool = lt %x_115, %76
-    if %77 [t: %b20, f: %b21] {  # if_7
-      %b20 = block {  # true
-        %78:ptr<function, f32, read_write> = access %data, 0i
-        %x_124:f32 = load %78
-        %80:ptr<function, f32, read_write> = access %data, 5i
-        %x_127:f32 = load %80
-        %82:ptr<function, f32, read_write> = access %data, 9i
-        %x_130:f32 = load %82
-        %84:f32 = div %x_124, 10.0f
-        %85:f32 = div %x_127, 10.0f
-        %86:f32 = div %x_130, 10.0f
-        %87:vec4<f32> = construct %84, %85, %86, 1.0f
-        store %x_GLF_color, %87
+    %104:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_115:f32 = let %104
+    %106:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %107:f32 = load_vector_element %106, 0u
+    %x_117:f32 = let %107
+    %109:f32 = div %x_117, 2.0f
+    %110:bool = lt %x_115, %109
+    if %110 [t: $B20, f: $B21] {  # if_7
+      $B20: {  # true
+        %111:ptr<function, f32, read_write> = access %data, 0i
+        %112:f32 = load %111
+        %x_124:f32 = let %112
+        %114:ptr<function, f32, read_write> = access %data, 5i
+        %115:f32 = load %114
+        %x_127:f32 = let %115
+        %117:ptr<function, f32, read_write> = access %data, 9i
+        %118:f32 = load %117
+        %x_130:f32 = let %118
+        %120:f32 = div %x_124, 10.0f
+        %121:f32 = div %x_127, 10.0f
+        %122:f32 = div %x_130, 10.0f
+        %123:vec4<f32> = construct %120, %121, %122, 1.0f
+        store %x_GLF_color, %123
         exit_if  # if_7
       }
-      %b21 = block {  # false
-        %88:ptr<function, f32, read_write> = access %data, 5i
-        %x_134:f32 = load %88
-        %90:ptr<function, f32, read_write> = access %data, 9i
-        %x_137:f32 = load %90
-        %92:ptr<function, f32, read_write> = access %data, 0i
-        %x_140:f32 = load %92
-        %94:f32 = div %x_134, 10.0f
-        %95:f32 = div %x_137, 10.0f
-        %96:f32 = div %x_140, 10.0f
-        %97:vec4<f32> = construct %94, %95, %96, 1.0f
-        store %x_GLF_color, %97
+      $B21: {  # false
+        %124:ptr<function, f32, read_write> = access %data, 5i
+        %125:f32 = load %124
+        %x_134:f32 = let %125
+        %127:ptr<function, f32, read_write> = access %data, 9i
+        %128:f32 = load %127
+        %x_137:f32 = let %128
+        %130:ptr<function, f32, read_write> = access %data, 0i
+        %131:f32 = load %130
+        %x_140:f32 = let %131
+        %133:f32 = div %x_134, 10.0f
+        %134:f32 = div %x_137, 10.0f
+        %135:f32 = div %x_140, 10.0f
+        %136:vec4<f32> = construct %133, %134, %135, 1.0f
+        store %x_GLF_color, %136
         exit_if  # if_7
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b22 {
-  %b22 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B22: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %100:void = call %main_1
-    %101:vec4<f32> = load %x_GLF_color
-    %102:main_out = construct %101
-    ret %102
+    %139:void = call %main_1
+    %140:vec4<f32> = load %x_GLF_color
+    %141:main_out = construct %140
+    ret %141
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.msl
index fcefbe1..35c6b0e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,15 +12,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool -> %b2 {
-  %b2 = block {
+%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool {
+  $B2: {
     %x_147:ptr<function, bool, read_write> = var
     %x_158:ptr<function, f32, read_write> = var
     %x_159:ptr<function, f32, read_write> = var
@@ -35,19 +35,20 @@
     %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
     %20:f32 = load_vector_element %19, 1u
     %21:f32 = div %20, 2.0f
-    %x_153:bool = lt %18, %21
-    if %x_153 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %23:f32 = load %a
-        store %x_158, %23
-        %24:f32 = load %x_158
-        store %x_160, %24
+    %22:bool = lt %18, %21
+    %x_153:bool = let %22
+    if %x_153 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %24:f32 = load %a
+        store %x_158, %24
+        %25:f32 = load %x_158
+        store %x_160, %25
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_159, 0.0f
-        %25:f32 = load %x_159
-        store %x_160, %25
+        %26:f32 = load %x_159
+        store %x_160, %26
         exit_if  # if_1
       }
     }
@@ -55,50 +56,51 @@
     %x_167:ptr<function, f32, read_write> = var
     %x_168:ptr<function, f32, read_write> = var
     %guard155:ptr<function, bool, read_write> = var, true
-    if false [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    if false [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %30:bool = load %guard155
-        if %30 [t: %b7] {  # if_3
-          %b7 = block {  # true
-            if %x_153 [t: %b8, f: %b9] {  # if_4
-              %b8 = block {  # true
-                %31:f32 = load %b
-                store %x_166, %31
-                %32:f32 = load %x_166
-                store %x_168, %32
-                exit_if  # if_4
-              }
-              %b9 = block {  # false
-                store %x_167, 0.0f
-                %33:f32 = load %x_167
+      $B6: {  # false
+        %31:bool = load %guard155
+        if %31 [t: $B7] {  # if_3
+          $B7: {  # true
+            if %x_153 [t: $B8, f: $B9] {  # if_4
+              $B8: {  # true
+                %32:f32 = load %b
+                store %x_166, %32
+                %33:f32 = load %x_166
                 store %x_168, %33
                 exit_if  # if_4
               }
+              $B9: {  # false
+                store %x_167, 0.0f
+                %34:f32 = load %x_167
+                store %x_168, %34
+                exit_if  # if_4
+              }
             }
-            %34:f32 = load %x_160
-            %35:f32 = load %x_168
-            %x_169:bool = gt %34, %35
-            if %x_153 [t: %b10] {  # if_5
-              %b10 = block {  # true
+            %35:f32 = load %x_160
+            %36:f32 = load %x_168
+            %37:bool = gt %35, %36
+            %x_169:bool = let %37
+            if %x_153 [t: $B10] {  # if_5
+              $B10: {  # true
                 store %x_147, %x_169
                 exit_if  # if_5
               }
             }
-            if true [t: %b11, f: %b12] {  # if_6
-              %b11 = block {  # true
+            if true [t: $B11, f: $B12] {  # if_6
+              $B11: {  # true
                 exit_if  # if_6
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 store %guard155, false
                 exit_if  # if_6
               }
             }
-            %37:bool = load %guard155
-            if %37 [t: %b13] {  # if_7
-              %b13 = block {  # true
+            %39:bool = load %guard155
+            if %39 [t: $B13] {  # if_7
+              $B13: {  # true
                 store %guard155, false
                 exit_if  # if_7
               }
@@ -109,54 +111,55 @@
         exit_if  # if_2
       }
     }
-    if %x_153 [t: %b14, f: %b15] {  # if_8
-      %b14 = block {  # true
+    if %x_153 [t: $B14, f: $B15] {  # if_8
+      $B14: {  # true
         store %x_179, 0.0f
-        %38:f32 = load %x_179
-        store %x_180, %38
-        exit_if  # if_8
-      }
-      %b15 = block {  # false
-        %39:f32 = load %a
-        store %x_178, %39
-        %40:f32 = load %x_178
+        %40:f32 = load %x_179
         store %x_180, %40
         exit_if  # if_8
       }
-    }
-    if %x_153 [t: %b16, f: %b17] {  # if_9
-      %b16 = block {  # true
-        store %x_185, 0.0f
-        %41:f32 = load %x_185
-        store %x_186, %41
-        exit_if  # if_9
+      $B15: {  # false
+        %41:f32 = load %a
+        store %x_178, %41
+        %42:f32 = load %x_178
+        store %x_180, %42
+        exit_if  # if_8
       }
-      %b17 = block {  # false
-        %42:f32 = load %b
-        store %x_184, %42
-        %43:f32 = load %x_184
+    }
+    if %x_153 [t: $B16, f: $B17] {  # if_9
+      $B16: {  # true
+        store %x_185, 0.0f
+        %43:f32 = load %x_185
         store %x_186, %43
         exit_if  # if_9
       }
+      $B17: {  # false
+        %44:f32 = load %b
+        store %x_184, %44
+        %45:f32 = load %x_184
+        store %x_186, %45
+        exit_if  # if_9
+      }
     }
-    if %x_153 [t: %b18, f: %b19] {  # if_10
-      %b18 = block {  # true
+    if %x_153 [t: $B18, f: $B19] {  # if_10
+      $B18: {  # true
         exit_if  # if_10
       }
-      %b19 = block {  # false
-        %44:f32 = load %x_180
-        %45:f32 = load %x_186
-        %46:bool = lt %44, %45
-        store %x_147, %46
+      $B19: {  # false
+        %46:f32 = load %x_180
+        %47:f32 = load %x_186
+        %48:bool = lt %46, %47
+        store %x_147, %48
         exit_if  # if_10
       }
     }
-    %x_191:bool = load %x_147
+    %49:bool = load %x_147
+    %x_191:bool = let %49
     ret %x_191
   }
 }
-%main_1 = func():void -> %b20 {
-  %b20 = block {
+%main_1 = func():void {
+  $B20: {
     %i:ptr<function, i32, read_write> = var
     %data:ptr<function, array<f32, 10>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -166,164 +169,169 @@
     %param_1:ptr<function, f32, read_write> = var
     %temp:ptr<function, f32, read_write> = var
     store %i, 0i
-    loop [b: %b21, c: %b22] {  # loop_1
-      %b21 = block {  # body
-        %57:i32 = load %i
-        %58:bool = lt %57, 10i
-        if %58 [t: %b23, f: %b24] {  # if_11
-          %b23 = block {  # true
+    loop [b: $B21, c: $B22] {  # loop_1
+      $B21: {  # body
+        %60:i32 = load %i
+        %61:bool = lt %60, 10i
+        if %61 [t: $B23, f: $B24] {  # if_11
+          $B23: {  # true
             exit_if  # if_11
           }
-          %b24 = block {  # false
+          $B24: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_62:i32 = load %i
-        %60:ptr<function, f32, read_write> = access %data, %x_62
-        %61:i32 = load %i
-        %62:i32 = sub 10i, %61
-        %63:f32 = convert %62
-        %64:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-        %65:f32 = load_vector_element %64, 1u
-        %66:f32 = mul %63, %65
-        store %60, %66
-        continue %b22
+        %62:i32 = load %i
+        %x_62:i32 = let %62
+        %64:ptr<function, f32, read_write> = access %data, %x_62
+        %65:i32 = load %i
+        %66:i32 = sub 10i, %65
+        %67:f32 = convert %66
+        %68:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+        %69:f32 = load_vector_element %68, 1u
+        %70:f32 = mul %67, %69
+        store %64, %70
+        continue  # -> $B22
       }
-      %b22 = block {  # continuing
-        %67:i32 = load %i
-        %68:i32 = add %67, 1i
-        store %i, %68
-        next_iteration %b21
+      $B22: {  # continuing
+        %71:i32 = load %i
+        %72:i32 = add %71, 1i
+        store %i, %72
+        next_iteration  # -> $B21
       }
     }
     store %i_1, 0i
-    loop [b: %b25, c: %b26] {  # loop_2
-      %b25 = block {  # body
-        %69:i32 = load %i_1
-        %70:bool = lt %69, 9i
-        if %70 [t: %b27, f: %b28] {  # if_12
-          %b27 = block {  # true
+    loop [b: $B25, c: $B26] {  # loop_2
+      $B25: {  # body
+        %73:i32 = load %i_1
+        %74:bool = lt %73, 9i
+        if %74 [t: $B27, f: $B28] {  # if_12
+          $B27: {  # true
             exit_if  # if_12
           }
-          %b28 = block {  # false
+          $B28: {  # false
             exit_loop  # loop_2
           }
         }
         store %j, 0i
-        loop [b: %b29, c: %b30] {  # loop_3
-          %b29 = block {  # body
-            %71:i32 = load %j
-            %72:bool = lt %71, 10i
-            if %72 [t: %b31, f: %b32] {  # if_13
-              %b31 = block {  # true
+        loop [b: $B29, c: $B30] {  # loop_3
+          $B29: {  # body
+            %75:i32 = load %j
+            %76:bool = lt %75, 10i
+            if %76 [t: $B31, f: $B32] {  # if_13
+              $B31: {  # true
                 exit_if  # if_13
               }
-              %b32 = block {  # false
+              $B32: {  # false
                 exit_loop  # loop_3
               }
             }
-            %73:i32 = load %j
-            %74:i32 = load %i_1
-            %75:i32 = add %74, 1i
-            %76:bool = lt %73, %75
-            if %76 [t: %b33] {  # if_14
-              %b33 = block {  # true
-                continue %b30
+            %77:i32 = load %j
+            %78:i32 = load %i_1
+            %79:i32 = add %78, 1i
+            %80:bool = lt %77, %79
+            if %80 [t: $B33] {  # if_14
+              $B33: {  # true
+                continue  # -> $B30
               }
             }
-            %x_93:i32 = load %j
-            %78:i32 = load %i_1
-            %79:ptr<function, f32, read_write> = access %data, %78
-            %80:f32 = load %79
-            store %param, %80
-            %81:ptr<function, f32, read_write> = access %data, %x_93
-            %82:f32 = load %81
-            store %param_1, %82
-            %x_98:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %81:i32 = load %j
+            %x_93:i32 = let %81
+            %83:i32 = load %i_1
+            %84:ptr<function, f32, read_write> = access %data, %83
+            %85:f32 = load %84
+            store %param, %85
+            %86:ptr<function, f32, read_write> = access %data, %x_93
+            %87:f32 = load %86
+            store %param_1, %87
+            %88:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %x_98:bool = let %88
             store %doSwap, %x_98
-            %84:bool = load %doSwap
-            if %84 [t: %b34] {  # if_15
-              %b34 = block {  # true
-                %85:i32 = load %i_1
-                %86:ptr<function, f32, read_write> = access %data, %85
-                %87:f32 = load %86
-                store %temp, %87
-                %x_105:i32 = load %i_1
-                %89:ptr<function, f32, read_write> = access %data, %x_105
-                %90:i32 = load %j
-                %91:ptr<function, f32, read_write> = access %data, %90
-                %92:f32 = load %91
-                store %89, %92
-                %x_110:i32 = load %j
-                %94:ptr<function, f32, read_write> = access %data, %x_110
-                %95:f32 = load %temp
-                store %94, %95
+            %90:bool = load %doSwap
+            if %90 [t: $B34] {  # if_15
+              $B34: {  # true
+                %91:i32 = load %i_1
+                %92:ptr<function, f32, read_write> = access %data, %91
+                %93:f32 = load %92
+                store %temp, %93
+                %94:i32 = load %i_1
+                %x_105:i32 = let %94
+                %96:ptr<function, f32, read_write> = access %data, %x_105
+                %97:i32 = load %j
+                %98:ptr<function, f32, read_write> = access %data, %97
+                %99:f32 = load %98
+                store %96, %99
+                %100:i32 = load %j
+                %x_110:i32 = let %100
+                %102:ptr<function, f32, read_write> = access %data, %x_110
+                %103:f32 = load %temp
+                store %102, %103
                 exit_if  # if_15
               }
             }
-            continue %b30
+            continue  # -> $B30
           }
-          %b30 = block {  # continuing
-            %96:i32 = load %j
-            %97:i32 = add %96, 1i
-            store %j, %97
-            next_iteration %b29
+          $B30: {  # continuing
+            %104:i32 = load %j
+            %105:i32 = add %104, 1i
+            store %j, %105
+            next_iteration  # -> $B29
           }
         }
-        continue %b26
+        continue  # -> $B26
       }
-      %b26 = block {  # continuing
-        %98:i32 = load %i_1
-        %99:i32 = add %98, 1i
-        store %i_1, %99
-        next_iteration %b25
+      $B26: {  # continuing
+        %106:i32 = load %i_1
+        %107:i32 = add %106, 1i
+        store %i_1, %107
+        next_iteration  # -> $B25
       }
     }
-    %100:f32 = load_vector_element %gl_FragCoord, 0u
-    %101:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %102:f32 = load_vector_element %101, 0u
-    %103:f32 = div %102, 2.0f
-    %104:bool = lt %100, %103
-    if %104 [t: %b35, f: %b36] {  # if_16
-      %b35 = block {  # true
-        %105:ptr<function, f32, read_write> = access %data, 0i
-        %106:f32 = load %105
-        %107:f32 = div %106, 10.0f
-        %108:ptr<function, f32, read_write> = access %data, 5i
-        %109:f32 = load %108
-        %110:f32 = div %109, 10.0f
-        %111:ptr<function, f32, read_write> = access %data, 9i
-        %112:f32 = load %111
-        %113:f32 = div %112, 10.0f
-        %114:vec4<f32> = construct %107, %110, %113, 1.0f
-        store %x_GLF_color, %114
+    %108:f32 = load_vector_element %gl_FragCoord, 0u
+    %109:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %110:f32 = load_vector_element %109, 0u
+    %111:f32 = div %110, 2.0f
+    %112:bool = lt %108, %111
+    if %112 [t: $B35, f: $B36] {  # if_16
+      $B35: {  # true
+        %113:ptr<function, f32, read_write> = access %data, 0i
+        %114:f32 = load %113
+        %115:f32 = div %114, 10.0f
+        %116:ptr<function, f32, read_write> = access %data, 5i
+        %117:f32 = load %116
+        %118:f32 = div %117, 10.0f
+        %119:ptr<function, f32, read_write> = access %data, 9i
+        %120:f32 = load %119
+        %121:f32 = div %120, 10.0f
+        %122:vec4<f32> = construct %115, %118, %121, 1.0f
+        store %x_GLF_color, %122
         exit_if  # if_16
       }
-      %b36 = block {  # false
-        %115:ptr<function, f32, read_write> = access %data, 5i
-        %116:f32 = load %115
-        %117:f32 = div %116, 10.0f
-        %118:ptr<function, f32, read_write> = access %data, 9i
-        %119:f32 = load %118
-        %120:f32 = div %119, 10.0f
-        %121:ptr<function, f32, read_write> = access %data, 0i
-        %122:f32 = load %121
-        %123:f32 = div %122, 10.0f
-        %124:vec4<f32> = construct %117, %120, %123, 1.0f
-        store %x_GLF_color, %124
+      $B36: {  # false
+        %123:ptr<function, f32, read_write> = access %data, 5i
+        %124:f32 = load %123
+        %125:f32 = div %124, 10.0f
+        %126:ptr<function, f32, read_write> = access %data, 9i
+        %127:f32 = load %126
+        %128:f32 = div %127, 10.0f
+        %129:ptr<function, f32, read_write> = access %data, 0i
+        %130:f32 = load %129
+        %131:f32 = div %130, 10.0f
+        %132:vec4<f32> = construct %125, %128, %131, 1.0f
+        store %x_GLF_color, %132
         exit_if  # if_16
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b37 {
-  %b37 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B37: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %127:void = call %main_1
-    %128:vec4<f32> = load %x_GLF_color
-    %129:main_out = construct %128
-    ret %129
+    %135:void = call %main_1
+    %136:vec4<f32> = load %x_GLF_color
+    %137:main_out = construct %136
+    ret %137
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.msl
index 5d79343..5a97e0c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-bubblesort-flag-complex-conditionals/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,15 +12,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_9:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool -> %b2 {
-  %b2 = block {
+%checkSwap_f1_f1_ = func(%a:ptr<function, f32, read_write>, %b:ptr<function, f32, read_write>):bool {
+  $B2: {
     %x_147:ptr<function, bool, read_write> = var
     %x_158:ptr<function, f32, read_write> = var
     %x_159:ptr<function, f32, read_write> = var
@@ -31,74 +31,80 @@
     %x_160_phi:ptr<function, f32, read_write> = var
     %x_180_phi:ptr<function, f32, read_write> = var
     %x_186_phi:ptr<function, f32, read_write> = var
-    %x_149:f32 = load_vector_element %gl_FragCoord, 1u
-    %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_151:f32 = load_vector_element %19, 1u
-    %21:f32 = div %x_151, 2.0f
-    %x_153:bool = lt %x_149, %21
-    if %x_153 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %23:f32 = load %a
-        store %x_158, %23
-        %24:f32 = load %x_158
-        store %x_160_phi, %24
+    %18:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_149:f32 = let %18
+    %20:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %21:f32 = load_vector_element %20, 1u
+    %x_151:f32 = let %21
+    %23:f32 = div %x_151, 2.0f
+    %24:bool = lt %x_149, %23
+    %x_153:bool = let %24
+    if %x_153 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %26:f32 = load %a
+        store %x_158, %26
+        %27:f32 = load %x_158
+        store %x_160_phi, %27
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         store %x_159, 0.0f
-        %25:f32 = load %x_159
-        store %x_160_phi, %25
+        %28:f32 = load %x_159
+        store %x_160_phi, %28
         exit_if  # if_1
       }
     }
     %x_166:ptr<function, f32, read_write> = var
     %x_167:ptr<function, f32, read_write> = var
     %x_168_phi:ptr<function, f32, read_write> = var
-    %x_160:f32 = load %x_160_phi
+    %32:f32 = load %x_160_phi
+    %x_160:f32 = let %32
     %guard155:ptr<function, bool, read_write> = var, true
-    if false [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    if false [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         exit_if  # if_2
       }
-      %b6 = block {  # false
-        %31:bool = load %guard155
-        if %31 [t: %b7] {  # if_3
-          %b7 = block {  # true
-            if %x_153 [t: %b8, f: %b9] {  # if_4
-              %b8 = block {  # true
-                %32:f32 = load %b
-                store %x_166, %32
-                %33:f32 = load %x_166
-                store %x_168_phi, %33
+      $B6: {  # false
+        %35:bool = load %guard155
+        if %35 [t: $B7] {  # if_3
+          $B7: {  # true
+            if %x_153 [t: $B8, f: $B9] {  # if_4
+              $B8: {  # true
+                %36:f32 = load %b
+                store %x_166, %36
+                %37:f32 = load %x_166
+                store %x_168_phi, %37
                 exit_if  # if_4
               }
-              %b9 = block {  # false
+              $B9: {  # false
                 store %x_167, 0.0f
-                %34:f32 = load %x_167
-                store %x_168_phi, %34
+                %38:f32 = load %x_167
+                store %x_168_phi, %38
                 exit_if  # if_4
               }
             }
-            %x_168:f32 = load %x_168_phi
-            %x_169:bool = gt %x_160, %x_168
-            if %x_153 [t: %b10] {  # if_5
-              %b10 = block {  # true
+            %39:f32 = load %x_168_phi
+            %x_168:f32 = let %39
+            %41:bool = gt %x_160, %x_168
+            %x_169:bool = let %41
+            if %x_153 [t: $B10] {  # if_5
+              $B10: {  # true
                 store %x_147, %x_169
                 exit_if  # if_5
               }
             }
-            if true [t: %b11, f: %b12] {  # if_6
-              %b11 = block {  # true
+            if true [t: $B11, f: $B12] {  # if_6
+              $B11: {  # true
                 exit_if  # if_6
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 store %guard155, false
                 exit_if  # if_6
               }
             }
-            %37:bool = load %guard155
-            if %37 [t: %b13] {  # if_7
-              %b13 = block {  # true
+            %43:bool = load %guard155
+            if %43 [t: $B13] {  # if_7
+              $B13: {  # true
                 store %guard155, false
                 exit_if  # if_7
               }
@@ -109,54 +115,57 @@
         exit_if  # if_2
       }
     }
-    if %x_153 [t: %b14, f: %b15] {  # if_8
-      %b14 = block {  # true
+    if %x_153 [t: $B14, f: $B15] {  # if_8
+      $B14: {  # true
         store %x_179, 0.0f
-        %38:f32 = load %x_179
-        store %x_180_phi, %38
+        %44:f32 = load %x_179
+        store %x_180_phi, %44
         exit_if  # if_8
       }
-      %b15 = block {  # false
-        %39:f32 = load %a
-        store %x_178, %39
-        %40:f32 = load %x_178
-        store %x_180_phi, %40
+      $B15: {  # false
+        %45:f32 = load %a
+        store %x_178, %45
+        %46:f32 = load %x_178
+        store %x_180_phi, %46
         exit_if  # if_8
       }
     }
-    %x_180:f32 = load %x_180_phi
-    if %x_153 [t: %b16, f: %b17] {  # if_9
-      %b16 = block {  # true
+    %47:f32 = load %x_180_phi
+    %x_180:f32 = let %47
+    if %x_153 [t: $B16, f: $B17] {  # if_9
+      $B16: {  # true
         store %x_185, 0.0f
-        %42:f32 = load %x_185
-        store %x_186_phi, %42
+        %49:f32 = load %x_185
+        store %x_186_phi, %49
         exit_if  # if_9
       }
-      %b17 = block {  # false
-        %43:f32 = load %b
-        store %x_184, %43
-        %44:f32 = load %x_184
-        store %x_186_phi, %44
+      $B17: {  # false
+        %50:f32 = load %b
+        store %x_184, %50
+        %51:f32 = load %x_184
+        store %x_186_phi, %51
         exit_if  # if_9
       }
     }
-    %x_186:f32 = load %x_186_phi
-    if %x_153 [t: %b18, f: %b19] {  # if_10
-      %b18 = block {  # true
+    %52:f32 = load %x_186_phi
+    %x_186:f32 = let %52
+    if %x_153 [t: $B18, f: $B19] {  # if_10
+      $B18: {  # true
         exit_if  # if_10
       }
-      %b19 = block {  # false
-        %46:bool = lt %x_180, %x_186
-        store %x_147, %46
+      $B19: {  # false
+        %54:bool = lt %x_180, %x_186
+        store %x_147, %54
         exit_if  # if_10
       }
     }
-    %x_191:bool = load %x_147
+    %55:bool = load %x_147
+    %x_191:bool = let %55
     ret %x_191
   }
 }
-%main_1 = func():void -> %b20 {
-  %b20 = block {
+%main_1 = func():void {
+  $B20: {
     %i:ptr<function, i32, read_write> = var
     %data:ptr<function, array<f32, 10>, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
@@ -166,164 +175,196 @@
     %param_1:ptr<function, f32, read_write> = var
     %temp:ptr<function, f32, read_write> = var
     store %i, 0i
-    loop [b: %b21, c: %b22] {  # loop_1
-      %b21 = block {  # body
-        %x_59:i32 = load %i
-        %58:bool = lt %x_59, 10i
-        if %58 [t: %b23, f: %b24] {  # if_11
-          %b23 = block {  # true
+    loop [b: $B21, c: $B22] {  # loop_1
+      $B21: {  # body
+        %66:i32 = load %i
+        %x_59:i32 = let %66
+        %68:bool = lt %x_59, 10i
+        if %68 [t: $B23, f: $B24] {  # if_11
+          $B23: {  # true
             exit_if  # if_11
           }
-          %b24 = block {  # false
+          $B24: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_62:i32 = load %i
-        %x_63:i32 = load %i
-        %61:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-        %x_67:f32 = load_vector_element %61, 1u
-        %63:ptr<function, f32, read_write> = access %data, %x_62
-        %64:i32 = sub 10i, %x_63
-        %65:f32 = convert %64
-        %66:f32 = mul %65, %x_67
-        store %63, %66
-        continue %b22
+        %69:i32 = load %i
+        %x_62:i32 = let %69
+        %71:i32 = load %i
+        %x_63:i32 = let %71
+        %73:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+        %74:f32 = load_vector_element %73, 1u
+        %x_67:f32 = let %74
+        %76:ptr<function, f32, read_write> = access %data, %x_62
+        %77:i32 = sub 10i, %x_63
+        %78:f32 = convert %77
+        %79:f32 = mul %78, %x_67
+        store %76, %79
+        continue  # -> $B22
       }
-      %b22 = block {  # continuing
-        %x_70:i32 = load %i
-        %68:i32 = add %x_70, 1i
-        store %i, %68
-        next_iteration %b21
+      $B22: {  # continuing
+        %80:i32 = load %i
+        %x_70:i32 = let %80
+        %82:i32 = add %x_70, 1i
+        store %i, %82
+        next_iteration  # -> $B21
       }
     }
     store %i_1, 0i
-    loop [b: %b25, c: %b26] {  # loop_2
-      %b25 = block {  # body
-        %x_76:i32 = load %i_1
-        %70:bool = lt %x_76, 9i
-        if %70 [t: %b27, f: %b28] {  # if_12
-          %b27 = block {  # true
+    loop [b: $B25, c: $B26] {  # loop_2
+      $B25: {  # body
+        %83:i32 = load %i_1
+        %x_76:i32 = let %83
+        %85:bool = lt %x_76, 9i
+        if %85 [t: $B27, f: $B28] {  # if_12
+          $B27: {  # true
             exit_if  # if_12
           }
-          %b28 = block {  # false
+          $B28: {  # false
             exit_loop  # loop_2
           }
         }
         store %j, 0i
-        loop [b: %b29, c: %b30] {  # loop_3
-          %b29 = block {  # body
-            %x_83:i32 = load %j
-            %72:bool = lt %x_83, 10i
-            if %72 [t: %b31, f: %b32] {  # if_13
-              %b31 = block {  # true
+        loop [b: $B29, c: $B30] {  # loop_3
+          $B29: {  # body
+            %86:i32 = load %j
+            %x_83:i32 = let %86
+            %88:bool = lt %x_83, 10i
+            if %88 [t: $B31, f: $B32] {  # if_13
+              $B31: {  # true
                 exit_if  # if_13
               }
-              %b32 = block {  # false
+              $B32: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_86:i32 = load %j
-            %x_87:i32 = load %i_1
-            %75:i32 = add %x_87, 1i
-            %76:bool = lt %x_86, %75
-            if %76 [t: %b33] {  # if_14
-              %b33 = block {  # true
-                continue %b30
+            %89:i32 = load %j
+            %x_86:i32 = let %89
+            %91:i32 = load %i_1
+            %x_87:i32 = let %91
+            %93:i32 = add %x_87, 1i
+            %94:bool = lt %x_86, %93
+            if %94 [t: $B33] {  # if_14
+              $B33: {  # true
+                continue  # -> $B30
               }
             }
-            %x_92:i32 = load %i_1
-            %x_93:i32 = load %j
-            %79:ptr<function, f32, read_write> = access %data, %x_92
-            %x_95:f32 = load %79
+            %95:i32 = load %i_1
+            %x_92:i32 = let %95
+            %97:i32 = load %j
+            %x_93:i32 = let %97
+            %99:ptr<function, f32, read_write> = access %data, %x_92
+            %100:f32 = load %99
+            %x_95:f32 = let %100
             store %param, %x_95
-            %81:ptr<function, f32, read_write> = access %data, %x_93
-            %x_97:f32 = load %81
+            %102:ptr<function, f32, read_write> = access %data, %x_93
+            %103:f32 = load %102
+            %x_97:f32 = let %103
             store %param_1, %x_97
-            %x_98:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %105:bool = call %checkSwap_f1_f1_, %param, %param_1
+            %x_98:bool = let %105
             store %doSwap, %x_98
-            %x_99:bool = load %doSwap
-            if %x_99 [t: %b34] {  # if_15
-              %b34 = block {  # true
-                %x_102:i32 = load %i_1
-                %86:ptr<function, f32, read_write> = access %data, %x_102
-                %x_104:f32 = load %86
+            %107:bool = load %doSwap
+            %x_99:bool = let %107
+            if %x_99 [t: $B34] {  # if_15
+              $B34: {  # true
+                %109:i32 = load %i_1
+                %x_102:i32 = let %109
+                %111:ptr<function, f32, read_write> = access %data, %x_102
+                %112:f32 = load %111
+                %x_104:f32 = let %112
                 store %temp, %x_104
-                %x_105:i32 = load %i_1
-                %x_106:i32 = load %j
-                %90:ptr<function, f32, read_write> = access %data, %x_106
-                %x_108:f32 = load %90
-                %92:ptr<function, f32, read_write> = access %data, %x_105
-                store %92, %x_108
-                %x_110:i32 = load %j
-                %x_111:f32 = load %temp
-                %95:ptr<function, f32, read_write> = access %data, %x_110
-                store %95, %x_111
+                %114:i32 = load %i_1
+                %x_105:i32 = let %114
+                %116:i32 = load %j
+                %x_106:i32 = let %116
+                %118:ptr<function, f32, read_write> = access %data, %x_106
+                %119:f32 = load %118
+                %x_108:f32 = let %119
+                %121:ptr<function, f32, read_write> = access %data, %x_105
+                store %121, %x_108
+                %122:i32 = load %j
+                %x_110:i32 = let %122
+                %124:f32 = load %temp
+                %x_111:f32 = let %124
+                %126:ptr<function, f32, read_write> = access %data, %x_110
+                store %126, %x_111
                 exit_if  # if_15
               }
             }
-            continue %b30
+            continue  # -> $B30
           }
-          %b30 = block {  # continuing
-            %x_113:i32 = load %j
-            %97:i32 = add %x_113, 1i
-            store %j, %97
-            next_iteration %b29
+          $B30: {  # continuing
+            %127:i32 = load %j
+            %x_113:i32 = let %127
+            %129:i32 = add %x_113, 1i
+            store %j, %129
+            next_iteration  # -> $B29
           }
         }
-        continue %b26
+        continue  # -> $B26
       }
-      %b26 = block {  # continuing
-        %x_115:i32 = load %i_1
-        %99:i32 = add %x_115, 1i
-        store %i_1, %99
-        next_iteration %b25
+      $B26: {  # continuing
+        %130:i32 = load %i_1
+        %x_115:i32 = let %130
+        %132:i32 = add %x_115, 1i
+        store %i_1, %132
+        next_iteration  # -> $B25
       }
     }
-    %x_118:f32 = load_vector_element %gl_FragCoord, 0u
-    %101:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_120:f32 = load_vector_element %101, 0u
-    %103:f32 = div %x_120, 2.0f
-    %104:bool = lt %x_118, %103
-    if %104 [t: %b35, f: %b36] {  # if_16
-      %b35 = block {  # true
-        %105:ptr<function, f32, read_write> = access %data, 0i
-        %x_127:f32 = load %105
-        %107:ptr<function, f32, read_write> = access %data, 5i
-        %x_130:f32 = load %107
-        %109:ptr<function, f32, read_write> = access %data, 9i
-        %x_133:f32 = load %109
-        %111:f32 = div %x_127, 10.0f
-        %112:f32 = div %x_130, 10.0f
-        %113:f32 = div %x_133, 10.0f
-        %114:vec4<f32> = construct %111, %112, %113, 1.0f
-        store %x_GLF_color, %114
+    %133:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_118:f32 = let %133
+    %135:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %136:f32 = load_vector_element %135, 0u
+    %x_120:f32 = let %136
+    %138:f32 = div %x_120, 2.0f
+    %139:bool = lt %x_118, %138
+    if %139 [t: $B35, f: $B36] {  # if_16
+      $B35: {  # true
+        %140:ptr<function, f32, read_write> = access %data, 0i
+        %141:f32 = load %140
+        %x_127:f32 = let %141
+        %143:ptr<function, f32, read_write> = access %data, 5i
+        %144:f32 = load %143
+        %x_130:f32 = let %144
+        %146:ptr<function, f32, read_write> = access %data, 9i
+        %147:f32 = load %146
+        %x_133:f32 = let %147
+        %149:f32 = div %x_127, 10.0f
+        %150:f32 = div %x_130, 10.0f
+        %151:f32 = div %x_133, 10.0f
+        %152:vec4<f32> = construct %149, %150, %151, 1.0f
+        store %x_GLF_color, %152
         exit_if  # if_16
       }
-      %b36 = block {  # false
-        %115:ptr<function, f32, read_write> = access %data, 5i
-        %x_137:f32 = load %115
-        %117:ptr<function, f32, read_write> = access %data, 9i
-        %x_140:f32 = load %117
-        %119:ptr<function, f32, read_write> = access %data, 0i
-        %x_143:f32 = load %119
-        %121:f32 = div %x_137, 10.0f
-        %122:f32 = div %x_140, 10.0f
-        %123:f32 = div %x_143, 10.0f
-        %124:vec4<f32> = construct %121, %122, %123, 1.0f
-        store %x_GLF_color, %124
+      $B36: {  # false
+        %153:ptr<function, f32, read_write> = access %data, 5i
+        %154:f32 = load %153
+        %x_137:f32 = let %154
+        %156:ptr<function, f32, read_write> = access %data, 9i
+        %157:f32 = load %156
+        %x_140:f32 = let %157
+        %159:ptr<function, f32, read_write> = access %data, 0i
+        %160:f32 = load %159
+        %x_143:f32 = let %160
+        %162:f32 = div %x_137, 10.0f
+        %163:f32 = div %x_140, 10.0f
+        %164:f32 = div %x_143, 10.0f
+        %165:vec4<f32> = construct %162, %163, %164, 1.0f
+        store %x_GLF_color, %165
         exit_if  # if_16
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b37 {
-  %b37 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B37: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %127:void = call %main_1
-    %128:vec4<f32> = load %x_GLF_color
-    %129:main_out = construct %128
-    ret %129
+    %168:void = call %main_1
+    %169:vec4<f32> = load %x_GLF_color
+    %170:main_out = construct %169
+    ret %170
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.msl
index 7ff3415..bef05c1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_65:ptr<function, i32, read_write> = var
     %x_68:ptr<function, i32, read_write> = var
@@ -25,79 +25,119 @@
     %11:vec2<f32> = load %10
     %12:vec2<f32> = div %9, %11
     %13:vec2<f32> = mul %12, 8.0f
-    %x_57:vec2<f32> = floor %13
-    %15:f32 = access %x_57, 0u
-    %16:i32 = convert %15
-    %17:i32 = mul %16, 8i
-    %18:f32 = access %x_57, 1u
-    %19:i32 = convert %18
-    %x_63:i32 = add %17, %19
+    %14:vec2<f32> = floor %13
+    %x_57:vec2<f32> = let %14
+    %16:f32 = access %x_57, 0u
+    %17:i32 = call %tint_f32_to_i32, %16
+    %19:i32 = mul %17, 8i
+    %20:i32 = let %19
+    %21:f32 = access %x_57, 1u
+    %22:i32 = call %tint_f32_to_i32, %21
+    %23:i32 = add %20, %22
+    %x_63:i32 = let %23
     store %x_65, 0i
     store %x_68, %x_63
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_79:ptr<function, i32, read_write> = var
         %x_80:ptr<function, i32, read_write> = var
         %x_69:ptr<function, i32, read_write> = var
-        %24:i32 = load %x_68
-        %25:bool = gt %24, 1i
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %28:i32 = load %x_68
+        %29:bool = gt %28, 1i
+        if %29 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %26:i32 = load %x_68
-        %27:i32 = and %26, 1i
-        %28:bool = eq %27, 1i
-        if %28 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %29:i32 = load %x_68
-            %30:i32 = mul 3i, %29
-            %31:i32 = add %30, 1i
-            store %x_79, %31
-            %32:i32 = load %x_79
-            store %x_69, %32
+        %30:i32 = load %x_68
+        %31:i32 = and %30, 1i
+        %32:bool = eq %31, 1i
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %33:i32 = load %x_68
+            %34:i32 = mul 3i, %33
+            %35:i32 = add %34, 1i
+            store %x_79, %35
+            %36:i32 = load %x_79
+            store %x_69, %36
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %33:i32 = load %x_68
-            %34:i32 = div %33, 2i
-            store %x_80, %34
-            %35:i32 = load %x_80
-            store %x_69, %35
+          $B8: {  # false
+            %37:i32 = load %x_68
+            %38:i32 = call %tint_div_i32, %37, 2i
+            store %x_80, %38
+            %40:i32 = load %x_80
+            store %x_69, %40
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %x_65
-        %37:i32 = add %36, 1i
-        store %x_65, %37
-        %38:i32 = load %x_69
-        store %x_68, %38
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %x_65
+        %42:i32 = add %41, 1i
+        store %x_65, %42
+        %43:i32 = load %x_69
+        store %x_68, %43
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %39:i32 = load %x_65
-    %40:i32 = mod %39, 16i
-    %41:ptr<function, vec4<f32>, read_write> = access %indexable, %40
-    %42:vec4<f32> = load %41
-    store %x_GLF_color, %42
+    %44:i32 = load %x_65
+    %45:i32 = call %tint_mod_i32, %44, 16i
+    %47:ptr<function, vec4<f32>, read_write> = access %indexable, %45
+    %48:vec4<f32> = load %47
+    store %x_GLF_color, %48
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %45:void = call %main_1
-    %46:vec4<f32> = load %x_GLF_color
-    %47:main_out = construct %46
-    ret %47
+    %51:void = call %main_1
+    %52:vec4<f32> = load %x_GLF_color
+    %53:main_out = construct %52
+    ret %53
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %56:bool = eq %rhs, 0i
+    %57:bool = eq %lhs, -2147483648i
+    %58:bool = eq %rhs, -1i
+    %59:bool = and %57, %58
+    %60:bool = or %56, %59
+    %61:i32 = select %rhs, 1i, %60
+    %62:i32 = div %lhs, %61
+    ret %62
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B11: {
+    %65:bool = eq %rhs_1, 0i
+    %66:bool = eq %lhs_1, -2147483648i
+    %67:bool = eq %rhs_1, -1i
+    %68:bool = and %66, %67
+    %69:bool = or %65, %68
+    %70:i32 = select %rhs_1, 1i, %69
+    %71:i32 = let %70
+    %72:i32 = div %lhs_1, %71
+    %73:i32 = mul %72, %71
+    %74:i32 = sub %lhs_1, %73
+    ret %74
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %76:i32 = convert %value
+    %77:bool = gte %value, -2147483648.0f
+    %78:i32 = select -2147483648i, %76, %77
+    %79:bool = lte %value, 2147483520.0f
+    %80:i32 = select 2147483647i, %78, %79
+    ret %80
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.msl
index f21b508..ee51673 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,100 +8,145 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_65:ptr<function, i32, read_write> = var
     %x_65_phi:ptr<function, i32, read_write> = var
     %x_68_phi:ptr<function, i32, read_write> = var
-    %x_51:vec4<f32> = load %gl_FragCoord
-    %10:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_54:vec2<f32> = load %10
-    %12:f32 = access %x_51, 0u
-    %13:f32 = access %x_51, 1u
-    %14:vec2<f32> = construct %12, %13
-    %15:vec2<f32> = div %14, %x_54
-    %16:vec2<f32> = mul %15, 8.0f
-    %x_57:vec2<f32> = floor %16
-    %18:f32 = access %x_57, 0u
-    %19:i32 = convert %18
-    %20:i32 = mul %19, 8i
-    %21:f32 = access %x_57, 1u
-    %22:i32 = convert %21
-    %x_63:i32 = add %20, %22
+    %9:vec4<f32> = load %gl_FragCoord
+    %x_51:vec4<f32> = let %9
+    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %12:vec2<f32> = load %11
+    %x_54:vec2<f32> = let %12
+    %14:f32 = access %x_51, 0u
+    %15:f32 = access %x_51, 1u
+    %16:vec2<f32> = construct %14, %15
+    %17:vec2<f32> = div %16, %x_54
+    %18:vec2<f32> = mul %17, 8.0f
+    %19:vec2<f32> = floor %18
+    %x_57:vec2<f32> = let %19
+    %21:f32 = access %x_57, 0u
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = mul %22, 8i
+    %25:i32 = let %24
+    %26:f32 = access %x_57, 1u
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:i32 = add %25, %27
+    %x_63:i32 = let %28
     store %x_65_phi, 0i
     store %x_68_phi, %x_63
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_79:ptr<function, i32, read_write> = var
         %x_80:ptr<function, i32, read_write> = var
         %x_69_phi:ptr<function, i32, read_write> = var
-        %27:i32 = load %x_65_phi
-        store %x_65, %27
-        %x_68:i32 = load %x_68_phi
-        %29:bool = gt %x_68, 1i
-        if %29 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %33:i32 = load %x_65_phi
+        store %x_65, %33
+        %34:i32 = load %x_68_phi
+        %x_68:i32 = let %34
+        %36:bool = gt %x_68, 1i
+        if %36 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %30:i32 = and %x_68, 1i
-        %31:bool = eq %30, 1i
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %32:i32 = mul 3i, %x_68
-            %33:i32 = add %32, 1i
-            store %x_79, %33
-            %34:i32 = load %x_79
-            store %x_69_phi, %34
+        %37:i32 = and %x_68, 1i
+        %38:bool = eq %37, 1i
+        if %38 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %39:i32 = mul 3i, %x_68
+            %40:i32 = add %39, 1i
+            store %x_79, %40
+            %41:i32 = load %x_79
+            store %x_69_phi, %41
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %35:i32 = div %x_68, 2i
-            store %x_80, %35
-            %36:i32 = load %x_80
-            store %x_69_phi, %36
+          $B8: {  # false
+            %42:i32 = call %tint_div_i32, %x_68, 2i
+            store %x_80, %42
+            %44:i32 = load %x_80
+            store %x_69_phi, %44
             exit_if  # if_2
           }
         }
-        %x_69:i32 = load %x_69_phi
-        continue %b4
+        %45:i32 = load %x_69_phi
+        %x_69:i32 = let %45
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %38:i32 = load %x_65
-        %39:i32 = add %38, 1i
-        %40:i32 = bitcast %39
-        store %x_65_phi, %40
+      $B4: {  # continuing
+        %47:i32 = load %x_65
+        %48:i32 = add %47, 1i
+        %49:i32 = bitcast %48
+        store %x_65_phi, %49
         store %x_68_phi, %x_69
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %41:i32 = load %x_65
-    %42:i32 = mod %41, 16i
-    %43:i32 = bitcast %42
-    %44:ptr<function, vec4<f32>, read_write> = access %indexable, %43
-    %x_83:vec4<f32> = load %44
+    %50:i32 = load %x_65
+    %51:i32 = call %tint_mod_i32, %50, 16i
+    %53:i32 = bitcast %51
+    %54:ptr<function, vec4<f32>, read_write> = access %indexable, %53
+    %55:vec4<f32> = load %54
+    %x_83:vec4<f32> = let %55
     store %x_GLF_color, %x_83
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_color
-    %50:main_out = construct %49
-    ret %50
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    ret %61
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %64:bool = eq %rhs, 0i
+    %65:bool = eq %lhs, -2147483648i
+    %66:bool = eq %rhs, -1i
+    %67:bool = and %65, %66
+    %68:bool = or %64, %67
+    %69:i32 = select %rhs, 1i, %68
+    %70:i32 = div %lhs, %69
+    ret %70
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B11: {
+    %73:bool = eq %rhs_1, 0i
+    %74:bool = eq %lhs_1, -2147483648i
+    %75:bool = eq %rhs_1, -1i
+    %76:bool = and %74, %75
+    %77:bool = or %73, %76
+    %78:i32 = select %rhs_1, 1i, %77
+    %79:i32 = let %78
+    %80:i32 = div %lhs_1, %79
+    %81:i32 = mul %80, %79
+    %82:i32 = sub %lhs_1, %81
+    ret %82
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %84:i32 = convert %value
+    %85:bool = gte %value, -2147483648.0f
+    %86:i32 = select -2147483648i, %84, %85
+    %87:bool = lte %value, 2147483520.0f
+    %88:i32 = select 2147483647i, %86, %87
+    ret %88
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.msl
index 5f64ee1..2168e8f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,105 +8,152 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_71:ptr<function, i32, read_write> = var
     %x_74:ptr<function, i32, read_write> = var
-    %x_54:vec4<f32> = load %gl_FragCoord
-    %9:vec4<f32> = load %gl_FragCoord
-    %x_55:vec2<f32> = swizzle %9, xy
-    %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %12:vec2<f32> = load %11
-    %13:vec2<f32> = div %x_55, %12
-    %x_61:vec2<f32> = mul %13, 8.0f
-    %x_62:vec2<f32> = floor %x_61
-    %16:f32 = access %x_62, 0u
-    %17:i32 = convert %16
-    %18:i32 = mul %17, 8i
-    %19:f32 = access %x_62, 1u
-    %20:i32 = convert %19
-    %x_69:i32 = add %18, %20
+    %8:vec4<f32> = load %gl_FragCoord
+    %x_54:vec4<f32> = let %8
+    %10:vec4<f32> = load %gl_FragCoord
+    %11:vec2<f32> = swizzle %10, xy
+    %x_55:vec2<f32> = let %11
+    %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %14:vec2<f32> = load %13
+    %15:vec2<f32> = div %x_55, %14
+    %16:vec2<f32> = mul %15, 8.0f
+    %x_61:vec2<f32> = let %16
+    %18:vec2<f32> = floor %x_61
+    %x_62:vec2<f32> = let %18
+    %20:f32 = access %x_62, 0u
+    %21:i32 = call %tint_f32_to_i32, %20
+    %23:i32 = mul %21, 8i
+    %24:i32 = let %23
+    %25:f32 = access %x_62, 1u
+    %26:i32 = call %tint_f32_to_i32, %25
+    %27:i32 = add %24, %26
+    %x_69:i32 = let %27
     store %x_71, 0i
     store %x_74, %x_69
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_85:ptr<function, i32, read_write> = var
         %x_86:ptr<function, i32, read_write> = var
         %x_75:ptr<function, i32, read_write> = var
-        %25:i32 = load %x_74
-        %26:bool = gt %25, 1i
-        if %26 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %32:i32 = load %x_74
+        %33:bool = gt %32, 1i
+        if %33 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %27:i32 = load %x_74
-        %28:i32 = and %27, 1i
-        %29:bool = eq %28, 1i
-        if %29 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %30:i32 = load %x_74
-            %31:i32 = mul 3i, %30
-            %32:i32 = add %31, 1i
-            store %x_85, %32
-            %33:i32 = load %x_85
-            store %x_75, %33
+        %34:i32 = load %x_74
+        %35:i32 = and %34, 1i
+        %36:bool = eq %35, 1i
+        if %36 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %37:i32 = load %x_74
+            %38:i32 = mul 3i, %37
+            %39:i32 = add %38, 1i
+            store %x_85, %39
+            %40:i32 = load %x_85
+            store %x_75, %40
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %34:i32 = load %x_74
-            %35:i32 = div %34, 2i
-            store %x_86, %35
-            %36:i32 = load %x_86
-            store %x_75, %36
+          $B8: {  # false
+            %41:i32 = load %x_74
+            %42:i32 = call %tint_div_i32, %41, 2i
+            store %x_86, %42
+            %44:i32 = load %x_86
+            store %x_75, %44
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %37:i32 = load %x_71
-        %38:i32 = add %37, 1i
-        store %x_71, %38
-        %39:i32 = load %x_75
-        store %x_74, %39
-        next_iteration %b3
+      $B4: {  # continuing
+        %45:i32 = load %x_71
+        %46:i32 = add %45, 1i
+        store %x_71, %46
+        %47:i32 = load %x_75
+        store %x_74, %47
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_88:array<vec4<f32>, 16> = load %indexable
+    %48:array<vec4<f32>, 16> = load %indexable
+    %x_88:array<vec4<f32>, 16> = let %48
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_88
-    %41:array<vec4<f32>, 16> = construct vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), %x_54, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    %x_89:vec4<f32> = access %41, 1u
-    %43:vec4<f32> = construct 0.0f, 8.0f, %x_55
-    %44:vec4<f32> = construct %x_61, 0.5f, 1.0f
-    %x_90:array<vec4<f32>, 16> = construct vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), %43, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), %44
-    %46:i32 = load %x_71
-    %47:i32 = mod %46, 16i
-    %48:ptr<function, vec4<f32>, read_write> = access %indexable, %47
-    %49:vec4<f32> = load %48
-    store %x_GLF_color, %49
+    %50:array<vec4<f32>, 16> = construct vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), %x_54, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %51:vec4<f32> = access %50, 1u
+    %x_89:vec4<f32> = let %51
+    %53:vec4<f32> = construct 0.0f, 8.0f, %x_55
+    %54:vec4<f32> = let %53
+    %55:vec4<f32> = construct %x_61, 0.5f, 1.0f
+    %56:array<vec4<f32>, 16> = construct vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), %54, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), %55
+    %x_90:array<vec4<f32>, 16> = let %56
+    %58:i32 = load %x_71
+    %59:i32 = call %tint_mod_i32, %58, 16i
+    %61:ptr<function, vec4<f32>, read_write> = access %indexable, %59
+    %62:vec4<f32> = load %61
+    store %x_GLF_color, %62
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %52:void = call %main_1
-    %53:vec4<f32> = load %x_GLF_color
-    %54:main_out = construct %53
-    ret %54
+    %65:void = call %main_1
+    %66:vec4<f32> = load %x_GLF_color
+    %67:main_out = construct %66
+    ret %67
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %70:bool = eq %rhs, 0i
+    %71:bool = eq %lhs, -2147483648i
+    %72:bool = eq %rhs, -1i
+    %73:bool = and %71, %72
+    %74:bool = or %70, %73
+    %75:i32 = select %rhs, 1i, %74
+    %76:i32 = div %lhs, %75
+    ret %76
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B11: {
+    %79:bool = eq %rhs_1, 0i
+    %80:bool = eq %lhs_1, -2147483648i
+    %81:bool = eq %rhs_1, -1i
+    %82:bool = and %80, %81
+    %83:bool = or %79, %82
+    %84:i32 = select %rhs_1, 1i, %83
+    %85:i32 = let %84
+    %86:i32 = div %lhs_1, %85
+    %87:i32 = mul %86, %85
+    %88:i32 = sub %lhs_1, %87
+    ret %88
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %90:i32 = convert %value
+    %91:bool = gte %value, -2147483648.0f
+    %92:i32 = select -2147483648i, %90, %91
+    %93:bool = lte %value, 2147483520.0f
+    %94:i32 = select 2147483647i, %92, %93
+    ret %94
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.msl
index 547cc92..29ae266 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-collatz-O-mutate-composite-construct-extract/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,108 +8,159 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_71:ptr<function, i32, read_write> = var
     %x_71_phi:ptr<function, i32, read_write> = var
     %x_74_phi:ptr<function, i32, read_write> = var
-    %x_54:vec4<f32> = load %gl_FragCoord
-    %10:f32 = access %x_54, 0u
-    %11:f32 = access %x_54, 1u
-    %x_55:vec2<f32> = construct %10, %11
-    %13:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_58:vec2<f32> = load %13
-    %15:vec2<f32> = div %x_55, %x_58
-    %x_61:vec2<f32> = mul %15, 8.0f
-    %x_62:vec2<f32> = floor %x_61
-    %18:f32 = access %x_62, 0u
-    %19:i32 = convert %18
-    %20:i32 = mul %19, 8i
-    %21:f32 = access %x_62, 1u
-    %22:i32 = convert %21
-    %x_69:i32 = add %20, %22
+    %9:vec4<f32> = load %gl_FragCoord
+    %x_54:vec4<f32> = let %9
+    %11:f32 = access %x_54, 0u
+    %12:f32 = access %x_54, 1u
+    %13:vec2<f32> = construct %11, %12
+    %x_55:vec2<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_58:vec2<f32> = let %16
+    %18:vec2<f32> = div %x_55, %x_58
+    %19:vec2<f32> = mul %18, 8.0f
+    %x_61:vec2<f32> = let %19
+    %21:vec2<f32> = floor %x_61
+    %x_62:vec2<f32> = let %21
+    %23:f32 = access %x_62, 0u
+    %24:i32 = call %tint_f32_to_i32, %23
+    %26:i32 = mul %24, 8i
+    %27:i32 = let %26
+    %28:f32 = access %x_62, 1u
+    %29:i32 = call %tint_f32_to_i32, %28
+    %30:i32 = add %27, %29
+    %x_69:i32 = let %30
     store %x_71_phi, 0i
     store %x_74_phi, %x_69
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_85:ptr<function, i32, read_write> = var
         %x_86:ptr<function, i32, read_write> = var
         %x_75_phi:ptr<function, i32, read_write> = var
-        %27:i32 = load %x_71_phi
-        store %x_71, %27
-        %x_74:i32 = load %x_74_phi
-        %29:bool = gt %x_74, 1i
-        if %29 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %35:i32 = load %x_71_phi
+        store %x_71, %35
+        %36:i32 = load %x_74_phi
+        %x_74:i32 = let %36
+        %38:bool = gt %x_74, 1i
+        if %38 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %30:i32 = and %x_74, 1i
-        %31:bool = eq %30, 1i
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %32:i32 = mul 3i, %x_74
-            %33:i32 = add %32, 1i
-            store %x_85, %33
-            %34:i32 = load %x_85
-            store %x_75_phi, %34
+        %39:i32 = and %x_74, 1i
+        %40:bool = eq %39, 1i
+        if %40 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %41:i32 = mul 3i, %x_74
+            %42:i32 = add %41, 1i
+            store %x_85, %42
+            %43:i32 = load %x_85
+            store %x_75_phi, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %35:i32 = div %x_74, 2i
-            store %x_86, %35
-            %36:i32 = load %x_86
-            store %x_75_phi, %36
+          $B8: {  # false
+            %44:i32 = call %tint_div_i32, %x_74, 2i
+            store %x_86, %44
+            %46:i32 = load %x_86
+            store %x_75_phi, %46
             exit_if  # if_2
           }
         }
-        %x_75:i32 = load %x_75_phi
-        continue %b4
+        %47:i32 = load %x_75_phi
+        %x_75:i32 = let %47
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %38:i32 = load %x_71
-        %39:i32 = add %38, 1i
-        %40:i32 = bitcast %39
-        store %x_71_phi, %40
+      $B4: {  # continuing
+        %49:i32 = load %x_71
+        %50:i32 = add %49, 1i
+        %51:i32 = bitcast %50
+        store %x_71_phi, %51
         store %x_74_phi, %x_75
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_88:array<vec4<f32>, 16> = load %indexable
+    %52:array<vec4<f32>, 16> = load %indexable
+    %x_88:array<vec4<f32>, 16> = let %52
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_88
-    %42:array<vec4<f32>, 16> = construct vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), %x_54, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    %x_89:vec4<f32> = access %42, 1u
-    %44:vec4<f32> = construct 0.0f, 8.0f, %x_55
-    %45:vec4<f32> = construct %x_61, 0.5f, 1.0f
-    %x_90:array<vec4<f32>, 16> = construct vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), %44, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), %45
-    %47:i32 = load %x_71
-    %48:i32 = mod %47, 16i
-    %49:i32 = bitcast %48
-    %50:ptr<function, vec4<f32>, read_write> = access %indexable, %49
-    %x_92:vec4<f32> = load %50
+    %54:array<vec4<f32>, 16> = construct vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), %x_54, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %55:vec4<f32> = access %54, 1u
+    %x_89:vec4<f32> = let %55
+    %57:vec4<f32> = construct 0.0f, 8.0f, %x_55
+    %58:vec4<f32> = let %57
+    %59:vec4<f32> = construct %x_61, 0.5f, 1.0f
+    %60:array<vec4<f32>, 16> = construct vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), %58, vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), %59
+    %x_90:array<vec4<f32>, 16> = let %60
+    %62:i32 = load %x_71
+    %63:i32 = call %tint_mod_i32, %62, 16i
+    %65:i32 = bitcast %63
+    %66:ptr<function, vec4<f32>, read_write> = access %indexable, %65
+    %67:vec4<f32> = load %66
+    %x_92:vec4<f32> = let %67
     store %x_GLF_color, %x_92
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b9 {
-  %b9 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B9: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %54:void = call %main_1
-    %55:vec4<f32> = load %x_GLF_color
-    %56:main_out = construct %55
-    ret %56
+    %71:void = call %main_1
+    %72:vec4<f32> = load %x_GLF_color
+    %73:main_out = construct %72
+    ret %73
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B10: {
+    %76:bool = eq %rhs, 0i
+    %77:bool = eq %lhs, -2147483648i
+    %78:bool = eq %rhs, -1i
+    %79:bool = and %77, %78
+    %80:bool = or %76, %79
+    %81:i32 = select %rhs, 1i, %80
+    %82:i32 = div %lhs, %81
+    ret %82
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B11: {
+    %85:bool = eq %rhs_1, 0i
+    %86:bool = eq %lhs_1, -2147483648i
+    %87:bool = eq %rhs_1, -1i
+    %88:bool = and %86, %87
+    %89:bool = or %85, %88
+    %90:i32 = select %rhs_1, 1i, %89
+    %91:i32 = let %90
+    %92:i32 = div %lhs_1, %91
+    %93:i32 = mul %92, %91
+    %94:i32 = sub %lhs_1, %93
+    ret %94
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %96:i32 = convert %value
+    %97:bool = gte %value, -2147483648.0f
+    %98:i32 = select -2147483648i, %96, %97
+    %99:bool = lte %value, 2147483520.0f
+    %100:i32 = select 2147483647i, %98, %99
+    ret %100
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.msl
index 9214b0d..cea86da 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_51:ptr<function, f32, read_write> = var
     %x_55:ptr<function, f32, read_write> = var
@@ -33,111 +33,115 @@
     %18:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %19:f32 = load_vector_element %18, 0u
     %20:f32 = mul %19, 0.125f
-    %x_49:f32 = round %20
-    %22:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_51, %22
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %21:f32 = round %20
+    %x_49:f32 = let %21
+    %23:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_51, %23
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_55, -0.5f
         store %x_58, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_68:ptr<function, f32, read_write> = var
             %x_76:ptr<function, f32, read_write> = var
             %x_59:ptr<function, i32, read_write> = var
             store %x_81, 0.0f
-            %26:f32 = load %x_55
-            store %x_82, %26
+            %27:f32 = load %x_55
+            store %x_82, %27
             store %x_83, false
-            %27:i32 = load %x_58
-            %28:bool = lt %27, 800i
-            if %28 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %28:i32 = load %x_58
+            %29:bool = lt %28, 800i
+            if %29 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_75:ptr<function, f32, read_write> = var
-            %30:i32 = load %x_58
-            %31:i32 = mod %30, 32i
-            %32:bool = eq %31, 0i
-            if %32 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %33:f32 = load %x_55
-                %34:f32 = add %33, 0.40000000596046447754f
-                store %x_68, %34
-                %35:f32 = load %x_68
-                store %x_56, %35
+            %31:i32 = load %x_58
+            %32:i32 = call %tint_mod_i32, %31, 32i
+            %34:bool = eq %32, 0i
+            if %34 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %35:f32 = load %x_55
+                %36:f32 = add %35, 0.40000000596046447754f
+                store %x_68, %36
+                %37:f32 = load %x_68
+                store %x_56, %37
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %36:f32 = load %x_55
-                store %x_76, %36
-                %37:i32 = load %x_58
-                %38:f32 = convert %37
-                %39:f32 = round %x_49
-                %40:i32 = load %x_58
-                %41:f32 = convert %40
+              $B9: {  # false
+                %38:f32 = load %x_55
+                store %x_76, %38
+                %39:i32 = load %x_58
+                %40:f32 = convert %39
+                %41:f32 = let %40
                 %42:f32 = round %x_49
-                %43:f32 = div %41, %42
-                %44:f32 = floor %43
-                %45:f32 = mul %39, %44
-                %46:f32 = sub %38, %45
-                %47:bool = lte %46, 0.00999999977648258209f
-                if %47 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %48:f32 = load %x_55
-                    %49:f32 = add %48, 100.0f
-                    store %x_75, %49
-                    %50:f32 = load %x_75
-                    store %x_76, %50
+                %43:f32 = let %42
+                %44:i32 = load %x_58
+                %45:f32 = convert %44
+                %46:f32 = let %45
+                %47:f32 = round %x_49
+                %48:f32 = div %46, %47
+                %49:f32 = floor %48
+                %50:f32 = mul %43, %49
+                %51:f32 = sub %41, %50
+                %52:bool = lte %51, 0.00999999977648258209f
+                if %52 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %53:f32 = load %x_55
+                    %54:f32 = add %53, 100.0f
+                    store %x_75, %54
+                    %55:f32 = load %x_75
+                    store %x_76, %55
                     exit_if  # if_3
                   }
                 }
-                %51:f32 = load %x_76
-                store %x_56, %51
+                %56:f32 = load %x_76
+                store %x_56, %56
                 exit_if  # if_2
               }
             }
-            %52:i32 = load %x_58
-            %53:f32 = convert %52
-            %54:f32 = load %x_51
-            %55:bool = gte %53, %54
-            if %55 [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %56:f32 = load %x_56
-                store %x_81, %56
-                %57:f32 = load %x_56
-                store %x_82, %57
+            %57:i32 = load %x_58
+            %58:f32 = convert %57
+            %59:f32 = load %x_51
+            %60:bool = gte %58, %59
+            if %60 [t: $B11] {  # if_4
+              $B11: {  # true
+                %61:f32 = load %x_56
+                store %x_81, %61
+                %62:f32 = load %x_56
+                store %x_82, %62
                 store %x_83, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %58:i32 = load %x_58
-            %59:i32 = add %58, 1i
-            store %x_59, %59
-            %60:f32 = load %x_56
-            store %x_55, %60
-            %61:i32 = load %x_59
-            store %x_58, %61
-            next_iteration %b4
+          $B5: {  # continuing
+            %63:i32 = load %x_58
+            %64:i32 = add %63, 1i
+            store %x_59, %64
+            %65:f32 = load %x_56
+            store %x_55, %65
+            %66:i32 = load %x_59
+            store %x_58, %66
+            next_iteration  # -> $B4
           }
         }
-        %62:f32 = load %x_81
-        store %x_85, %62
-        %63:bool = load %x_83
-        if %63 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %67:f32 = load %x_81
+        store %x_85, %67
+        %68:bool = load %x_83
+        if %68 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
-        %64:f32 = load %x_82
-        store %x_85, %64
+        %69:f32 = load %x_82
+        store %x_85, %69
         exit_switch  # switch_1
       }
     }
@@ -146,179 +150,198 @@
     %x_95:ptr<function, i32, read_write> = var
     %x_93:ptr<function, f32, read_write> = var
     %x_120:ptr<function, bool, read_write> = var
-    %70:f32 = load %x_85
-    store_vector_element %c, 0u, %70
-    %71:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_88, %71
-    switch 0u [c: (default, %b13)] {  # switch_2
-      %b13 = block {  # case
+    %75:f32 = load %x_85
+    store_vector_element %c, 0u, %75
+    %76:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_88, %76
+    switch 0u [c: (default, $B13)] {  # switch_2
+      $B13: {  # case
         store %x_92, -0.5f
         store %x_95, 1i
-        loop [b: %b14, c: %b15] {  # loop_2
-          %b14 = block {  # body
+        loop [b: $B14, c: $B15] {  # loop_2
+          $B14: {  # body
             %x_113:ptr<function, f32, read_write> = var
             %x_112:ptr<function, f32, read_write> = var
             %x_96:ptr<function, i32, read_write> = var
             store %x_118, 0.0f
-            %75:f32 = load %x_92
-            store %x_119, %75
+            %80:f32 = load %x_92
+            store %x_119, %80
             store %x_120, false
-            %76:i32 = load %x_95
-            %77:bool = lt %76, 800i
-            if %77 [t: %b16, f: %b17] {  # if_6
-              %b16 = block {  # true
+            %81:i32 = load %x_95
+            %82:bool = lt %81, 800i
+            if %82 [t: $B16, f: $B17] {  # if_6
+              $B16: {  # true
                 exit_if  # if_6
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_111:ptr<function, f32, read_write> = var
-            %79:i32 = load %x_95
-            %80:i32 = mod %79, 32i
-            %81:bool = eq %80, 0i
-            if %81 [t: %b18, f: %b19] {  # if_7
-              %b18 = block {  # true
-                %82:f32 = load %x_92
-                %83:f32 = add %82, 0.40000000596046447754f
-                store %x_113, %83
-                %84:f32 = load %x_113
-                store %x_93, %84
+            %84:i32 = load %x_95
+            %85:i32 = call %tint_mod_i32, %84, 32i
+            %86:bool = eq %85, 0i
+            if %86 [t: $B18, f: $B19] {  # if_7
+              $B18: {  # true
+                %87:f32 = load %x_92
+                %88:f32 = add %87, 0.40000000596046447754f
+                store %x_113, %88
+                %89:f32 = load %x_113
+                store %x_93, %89
                 exit_if  # if_7
               }
-              %b19 = block {  # false
-                %85:f32 = load %x_92
-                store %x_112, %85
-                %86:i32 = load %x_95
-                %87:f32 = convert %86
-                %88:f32 = round %x_49
-                %89:i32 = load %x_95
-                %90:f32 = convert %89
-                %91:f32 = round %x_49
-                %92:f32 = div %90, %91
-                %93:f32 = floor %92
-                %94:f32 = mul %88, %93
-                %95:f32 = sub %87, %94
-                %96:bool = lte %95, 0.00999999977648258209f
-                if %96 [t: %b20] {  # if_8
-                  %b20 = block {  # true
-                    %97:f32 = load %x_92
-                    %98:f32 = add %97, 100.0f
-                    store %x_111, %98
-                    %99:f32 = load %x_111
-                    store %x_112, %99
+              $B19: {  # false
+                %90:f32 = load %x_92
+                store %x_112, %90
+                %91:i32 = load %x_95
+                %92:f32 = convert %91
+                %93:f32 = let %92
+                %94:f32 = round %x_49
+                %95:f32 = let %94
+                %96:i32 = load %x_95
+                %97:f32 = convert %96
+                %98:f32 = let %97
+                %99:f32 = round %x_49
+                %100:f32 = div %98, %99
+                %101:f32 = floor %100
+                %102:f32 = mul %95, %101
+                %103:f32 = sub %93, %102
+                %104:bool = lte %103, 0.00999999977648258209f
+                if %104 [t: $B20] {  # if_8
+                  $B20: {  # true
+                    %105:f32 = load %x_92
+                    %106:f32 = add %105, 100.0f
+                    store %x_111, %106
+                    %107:f32 = load %x_111
+                    store %x_112, %107
                     exit_if  # if_8
                   }
                 }
-                %100:f32 = load %x_112
-                store %x_93, %100
+                %108:f32 = load %x_112
+                store %x_93, %108
                 exit_if  # if_7
               }
             }
-            %101:i32 = load %x_95
-            %102:f32 = convert %101
-            %103:f32 = load %x_88
-            %104:bool = gte %102, %103
-            if %104 [t: %b21] {  # if_9
-              %b21 = block {  # true
-                %105:f32 = load %x_93
-                store %x_118, %105
-                %106:f32 = load %x_93
-                store %x_119, %106
+            %109:i32 = load %x_95
+            %110:f32 = convert %109
+            %111:f32 = load %x_88
+            %112:bool = gte %110, %111
+            if %112 [t: $B21] {  # if_9
+              $B21: {  # true
+                %113:f32 = load %x_93
+                store %x_118, %113
+                %114:f32 = load %x_93
+                store %x_119, %114
                 store %x_120, true
                 exit_loop  # loop_2
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %107:i32 = load %x_95
-            %108:i32 = add %107, 1i
-            store %x_96, %108
-            %109:f32 = load %x_93
-            store %x_92, %109
-            %110:i32 = load %x_96
-            store %x_95, %110
-            next_iteration %b14
+          $B15: {  # continuing
+            %115:i32 = load %x_95
+            %116:i32 = add %115, 1i
+            store %x_96, %116
+            %117:f32 = load %x_93
+            store %x_92, %117
+            %118:i32 = load %x_96
+            store %x_95, %118
+            next_iteration  # -> $B14
           }
         }
-        %111:f32 = load %x_118
-        store %x_122, %111
-        %112:bool = load %x_120
-        if %112 [t: %b22] {  # if_10
-          %b22 = block {  # true
+        %119:f32 = load %x_118
+        store %x_122, %119
+        %120:bool = load %x_120
+        if %120 [t: $B22] {  # if_10
+          $B22: {  # true
             exit_switch  # switch_2
           }
         }
-        %113:f32 = load %x_119
-        store %x_122, %113
+        %121:f32 = load %x_119
+        store %x_122, %121
         exit_switch  # switch_2
       }
     }
-    %114:f32 = load %x_122
-    store_vector_element %c, 1u, %114
-    %115:f32 = load_vector_element %c, 0u
-    %116:f32 = load_vector_element %c, 1u
-    %117:f32 = add %115, %116
-    store_vector_element %c, 2u, %117
+    %122:f32 = load %x_122
+    store_vector_element %c, 1u, %122
+    %123:f32 = load_vector_element %c, 0u
+    %124:f32 = load_vector_element %c, 1u
+    %125:f32 = add %123, %124
+    store_vector_element %c, 2u, %125
     store %x_129, 0i
-    loop [b: %b23, c: %b24] {  # loop_3
-      %b23 = block {  # body
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
         %x_130:ptr<function, i32, read_write> = var
-        %119:i32 = load %x_129
-        %120:bool = lt %119, 3i
-        if %120 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
+        %127:i32 = load %x_129
+        %128:bool = lt %127, 3i
+        if %128 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
             exit_if  # if_11
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_3
           }
         }
-        %121:i32 = load %x_129
-        %122:f32 = load_vector_element %c, %121
-        %123:bool = gte %122, 1.0f
-        if %123 [t: %b27] {  # if_12
-          %b27 = block {  # true
-            %124:i32 = load %x_129
-            %125:i32 = load %x_129
-            %126:f32 = load_vector_element %c, %125
-            %127:i32 = load %x_129
-            %128:f32 = load_vector_element %c, %127
-            %129:f32 = mul %126, %128
-            store_vector_element %c, %124, %129
+        %129:i32 = load %x_129
+        %130:f32 = load_vector_element %c, %129
+        %131:bool = gte %130, 1.0f
+        if %131 [t: $B27] {  # if_12
+          $B27: {  # true
+            %132:i32 = load %x_129
+            %133:i32 = load %x_129
+            %134:f32 = load_vector_element %c, %133
+            %135:i32 = load %x_129
+            %136:f32 = load_vector_element %c, %135
+            %137:f32 = mul %134, %136
+            store_vector_element %c, %132, %137
             exit_if  # if_12
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %130:i32 = load %x_129
-        %131:i32 = add %130, 1i
-        store %x_130, %131
-        %132:i32 = load %x_130
-        store %x_129, %132
-        next_iteration %b23
+      $B24: {  # continuing
+        %138:i32 = load %x_129
+        %139:i32 = add %138, 1i
+        store %x_130, %139
+        %140:i32 = load %x_130
+        store %x_129, %140
+        next_iteration  # -> $B23
       }
     }
-    %133:vec3<f32> = load %c
-    %134:vec3<f32> = abs %133
-    %x_145:vec3<f32> = normalize %134
-    %136:f32 = access %x_145, 0u
-    %137:f32 = access %x_145, 1u
-    %138:f32 = access %x_145, 2u
-    %139:vec4<f32> = construct %136, %137, %138, 1.0f
-    store %x_GLF_color, %139
+    %141:vec3<f32> = load %c
+    %142:vec3<f32> = abs %141
+    %143:vec3<f32> = normalize %142
+    %x_145:vec3<f32> = let %143
+    %145:f32 = access %x_145, 0u
+    %146:f32 = access %x_145, 1u
+    %147:f32 = access %x_145, 2u
+    %148:vec4<f32> = construct %145, %146, %147, 1.0f
+    store %x_GLF_color, %148
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %142:void = call %main_1
-    %143:vec4<f32> = load %x_GLF_color
-    %144:main_out = construct %143
-    ret %144
+    %151:void = call %main_1
+    %152:vec4<f32> = load %x_GLF_color
+    %153:main_out = construct %152
+    ret %153
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B29: {
+    %156:bool = eq %rhs, 0i
+    %157:bool = eq %lhs, -2147483648i
+    %158:bool = eq %rhs, -1i
+    %159:bool = and %157, %158
+    %160:bool = or %156, %159
+    %161:i32 = select %rhs, 1i, %160
+    %162:i32 = let %161
+    %163:i32 = div %lhs, %162
+    %164:i32 = mul %163, %162
+    %165:i32 = sub %lhs, %164
+    ret %165
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.msl
index e4684a2..b5f2e5b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-colorgrid-modulo-O-move-block-down/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_51:ptr<function, f32, read_write> = var
     %x_55:ptr<function, f32, read_write> = var
@@ -34,120 +34,127 @@
     %x_129_phi:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
     %21:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_47:f32 = load_vector_element %21, 0u
-    %23:f32 = mul %x_47, 0.125f
-    %x_49:f32 = round %23
-    %25:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_51, %25
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %22:f32 = load_vector_element %21, 0u
+    %x_47:f32 = let %22
+    %24:f32 = mul %x_47, 0.125f
+    %25:f32 = round %24
+    %x_49:f32 = let %25
+    %27:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_51, %27
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_55_phi, -0.5f
         store %x_58_phi, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_68:ptr<function, f32, read_write> = var
             %x_76:ptr<function, f32, read_write> = var
             %x_59:ptr<function, i32, read_write> = var
             %x_56_phi:ptr<function, f32, read_write> = var
-            %30:f32 = load %x_55_phi
-            store %x_55, %30
-            %x_58:i32 = load %x_58_phi
+            %32:f32 = load %x_55_phi
+            store %x_55, %32
+            %33:i32 = load %x_58_phi
+            %x_58:i32 = let %33
             store %x_81_phi, 0.0f
-            %32:f32 = load %x_55
-            store %x_82_phi, %32
+            %35:f32 = load %x_55
+            store %x_82_phi, %35
             store %x_83_phi, false
-            %33:bool = lt %x_58, 800i
-            if %33 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %36:bool = lt %x_58, 800i
+            if %36 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_75:ptr<function, f32, read_write> = var
             %x_76_phi:ptr<function, f32, read_write> = var
-            %36:i32 = mod %x_58, 32i
-            %37:bool = eq %36, 0i
-            if %37 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %38:f32 = load %x_55
-                %39:f32 = add %38, 0.40000000596046447754f
-                store %x_68, %39
-                %40:f32 = load %x_68
-                store %x_56_phi, %40
+            %39:i32 = call %tint_mod_i32, %x_58, 32i
+            %41:bool = eq %39, 0i
+            if %41 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %42:f32 = load %x_55
+                %43:f32 = add %42, 0.40000000596046447754f
+                store %x_68, %43
+                %44:f32 = load %x_68
+                store %x_56_phi, %44
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %41:f32 = load %x_55
-                store %x_76_phi, %41
-                %42:f32 = convert %x_58
-                %43:f32 = round %x_49
-                %44:f32 = convert %x_58
-                %45:f32 = round %x_49
-                %46:f32 = div %44, %45
-                %47:f32 = floor %46
-                %48:f32 = mul %43, %47
-                %49:f32 = sub %42, %48
-                %50:bool = lte %49, 0.00999999977648258209f
-                if %50 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %51:f32 = load %x_55
-                    %52:f32 = add %51, 100.0f
-                    store %x_75, %52
-                    %53:f32 = load %x_75
-                    store %x_76_phi, %53
+              $B9: {  # false
+                %45:f32 = load %x_55
+                store %x_76_phi, %45
+                %46:f32 = convert %x_58
+                %47:f32 = let %46
+                %48:f32 = round %x_49
+                %49:f32 = let %48
+                %50:f32 = convert %x_58
+                %51:f32 = let %50
+                %52:f32 = round %x_49
+                %53:f32 = div %51, %52
+                %54:f32 = floor %53
+                %55:f32 = mul %49, %54
+                %56:f32 = sub %47, %55
+                %57:bool = lte %56, 0.00999999977648258209f
+                if %57 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %58:f32 = load %x_55
+                    %59:f32 = add %58, 100.0f
+                    store %x_75, %59
+                    %60:f32 = load %x_75
+                    store %x_76_phi, %60
                     exit_if  # if_3
                   }
                 }
-                %54:f32 = load %x_76_phi
-                store %x_76, %54
-                %55:f32 = load %x_76
-                store %x_56_phi, %55
+                %61:f32 = load %x_76_phi
+                store %x_76, %61
+                %62:f32 = load %x_76
+                store %x_56_phi, %62
                 exit_if  # if_2
               }
             }
-            %56:f32 = load %x_56_phi
-            store %x_56, %56
-            %57:f32 = convert %x_58
-            %58:f32 = load %x_51
-            %59:bool = gte %57, %58
-            if %59 [t: %b11] {  # if_4
-              %b11 = block {  # true
-                %60:f32 = load %x_56
-                store %x_81_phi, %60
-                %61:f32 = load %x_56
-                store %x_82_phi, %61
+            %63:f32 = load %x_56_phi
+            store %x_56, %63
+            %64:f32 = convert %x_58
+            %65:f32 = load %x_51
+            %66:bool = gte %64, %65
+            if %66 [t: $B11] {  # if_4
+              $B11: {  # true
+                %67:f32 = load %x_56
+                store %x_81_phi, %67
+                %68:f32 = load %x_56
+                store %x_82_phi, %68
                 store %x_83_phi, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %62:i32 = add %x_58, 1i
-            store %x_59, %62
-            %63:f32 = load %x_56
-            store %x_55_phi, %63
-            %64:i32 = load %x_59
-            store %x_58_phi, %64
-            next_iteration %b4
+          $B5: {  # continuing
+            %69:i32 = add %x_58, 1i
+            store %x_59, %69
+            %70:f32 = load %x_56
+            store %x_55_phi, %70
+            %71:i32 = load %x_59
+            store %x_58_phi, %71
+            next_iteration  # -> $B4
           }
         }
-        %65:f32 = load %x_81_phi
-        store %x_81, %65
-        %66:f32 = load %x_82_phi
-        store %x_82, %66
-        %x_83:bool = load %x_83_phi
-        %68:f32 = load %x_81
-        store %x_85_phi, %68
-        if %x_83 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %72:f32 = load %x_81_phi
+        store %x_81, %72
+        %73:f32 = load %x_82_phi
+        store %x_82, %73
+        %74:bool = load %x_83_phi
+        %x_83:bool = let %74
+        %76:f32 = load %x_81
+        store %x_85_phi, %76
+        if %x_83 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
-        %69:f32 = load %x_82
-        store %x_85_phi, %69
+        %77:f32 = load %x_82
+        store %x_85_phi, %77
         exit_switch  # switch_1
       }
     }
@@ -159,181 +166,211 @@
     %x_118_phi:ptr<function, f32, read_write> = var
     %x_119_phi:ptr<function, f32, read_write> = var
     %x_120_phi:ptr<function, bool, read_write> = var
-    %x_85:f32 = load %x_85_phi
+    %86:f32 = load %x_85_phi
+    %x_85:f32 = let %86
     store_vector_element %c, 0u, %x_85
-    %79:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_88, %79
-    switch 0u [c: (default, %b13)] {  # switch_2
-      %b13 = block {  # case
+    %88:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_88, %88
+    switch 0u [c: (default, $B13)] {  # switch_2
+      $B13: {  # case
         store %x_92_phi, -0.5f
         store %x_95_phi, 1i
-        loop [b: %b14, c: %b15] {  # loop_2
-          %b14 = block {  # body
+        loop [b: $B14, c: $B15] {  # loop_2
+          $B14: {  # body
             %x_113:ptr<function, f32, read_write> = var
             %x_112:ptr<function, f32, read_write> = var
             %x_96:ptr<function, i32, read_write> = var
             %x_93_phi:ptr<function, f32, read_write> = var
-            %84:f32 = load %x_92_phi
-            store %x_92, %84
-            %x_95:i32 = load %x_95_phi
+            %93:f32 = load %x_92_phi
+            store %x_92, %93
+            %94:i32 = load %x_95_phi
+            %x_95:i32 = let %94
             store %x_118_phi, 0.0f
-            %86:f32 = load %x_92
-            store %x_119_phi, %86
+            %96:f32 = load %x_92
+            store %x_119_phi, %96
             store %x_120_phi, false
-            %87:bool = lt %x_95, 800i
-            if %87 [t: %b16, f: %b17] {  # if_6
-              %b16 = block {  # true
+            %97:bool = lt %x_95, 800i
+            if %97 [t: $B16, f: $B17] {  # if_6
+              $B16: {  # true
                 exit_if  # if_6
               }
-              %b17 = block {  # false
+              $B17: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_111:ptr<function, f32, read_write> = var
             %x_112_phi:ptr<function, f32, read_write> = var
-            %90:i32 = mod %x_95, 32i
-            %91:bool = eq %90, 0i
-            if %91 [t: %b18, f: %b19] {  # if_7
-              %b18 = block {  # true
-                %92:f32 = load %x_92
-                %93:f32 = add %92, 0.40000000596046447754f
-                store %x_113, %93
-                %94:f32 = load %x_113
-                store %x_93_phi, %94
+            %100:i32 = call %tint_mod_i32, %x_95, 32i
+            %101:bool = eq %100, 0i
+            if %101 [t: $B18, f: $B19] {  # if_7
+              $B18: {  # true
+                %102:f32 = load %x_92
+                %103:f32 = add %102, 0.40000000596046447754f
+                store %x_113, %103
+                %104:f32 = load %x_113
+                store %x_93_phi, %104
                 exit_if  # if_7
               }
-              %b19 = block {  # false
-                %95:f32 = load %x_92
-                store %x_112_phi, %95
-                %96:f32 = convert %x_95
-                %97:f32 = round %x_49
-                %98:f32 = convert %x_95
-                %99:f32 = round %x_49
-                %100:f32 = div %98, %99
-                %101:f32 = floor %100
-                %102:f32 = mul %97, %101
-                %103:f32 = sub %96, %102
-                %104:bool = lte %103, 0.00999999977648258209f
-                if %104 [t: %b20] {  # if_8
-                  %b20 = block {  # true
-                    %105:f32 = load %x_92
-                    %106:f32 = add %105, 100.0f
-                    store %x_111, %106
-                    %107:f32 = load %x_111
-                    store %x_112_phi, %107
+              $B19: {  # false
+                %105:f32 = load %x_92
+                store %x_112_phi, %105
+                %106:f32 = convert %x_95
+                %107:f32 = let %106
+                %108:f32 = round %x_49
+                %109:f32 = let %108
+                %110:f32 = convert %x_95
+                %111:f32 = let %110
+                %112:f32 = round %x_49
+                %113:f32 = div %111, %112
+                %114:f32 = floor %113
+                %115:f32 = mul %109, %114
+                %116:f32 = sub %107, %115
+                %117:bool = lte %116, 0.00999999977648258209f
+                if %117 [t: $B20] {  # if_8
+                  $B20: {  # true
+                    %118:f32 = load %x_92
+                    %119:f32 = add %118, 100.0f
+                    store %x_111, %119
+                    %120:f32 = load %x_111
+                    store %x_112_phi, %120
                     exit_if  # if_8
                   }
                 }
-                %108:f32 = load %x_112_phi
-                store %x_112, %108
-                %109:f32 = load %x_112
-                store %x_93_phi, %109
+                %121:f32 = load %x_112_phi
+                store %x_112, %121
+                %122:f32 = load %x_112
+                store %x_93_phi, %122
                 exit_if  # if_7
               }
             }
-            %110:f32 = load %x_93_phi
-            store %x_93, %110
-            %111:f32 = convert %x_95
-            %112:f32 = load %x_88
-            %113:bool = gte %111, %112
-            if %113 [t: %b21] {  # if_9
-              %b21 = block {  # true
-                %114:f32 = load %x_93
-                store %x_118_phi, %114
-                %115:f32 = load %x_93
-                store %x_119_phi, %115
+            %123:f32 = load %x_93_phi
+            store %x_93, %123
+            %124:f32 = convert %x_95
+            %125:f32 = load %x_88
+            %126:bool = gte %124, %125
+            if %126 [t: $B21] {  # if_9
+              $B21: {  # true
+                %127:f32 = load %x_93
+                store %x_118_phi, %127
+                %128:f32 = load %x_93
+                store %x_119_phi, %128
                 store %x_120_phi, true
                 exit_loop  # loop_2
               }
             }
-            continue %b15
+            continue  # -> $B15
           }
-          %b15 = block {  # continuing
-            %116:i32 = add %x_95, 1i
-            store %x_96, %116
-            %117:f32 = load %x_93
-            store %x_92_phi, %117
-            %118:i32 = load %x_96
-            store %x_95_phi, %118
-            next_iteration %b14
+          $B15: {  # continuing
+            %129:i32 = add %x_95, 1i
+            store %x_96, %129
+            %130:f32 = load %x_93
+            store %x_92_phi, %130
+            %131:i32 = load %x_96
+            store %x_95_phi, %131
+            next_iteration  # -> $B14
           }
         }
-        %119:f32 = load %x_118_phi
-        store %x_118, %119
-        %120:f32 = load %x_119_phi
-        store %x_119, %120
-        %x_120:bool = load %x_120_phi
-        %122:f32 = load %x_118
-        store %x_122_phi, %122
-        if %x_120 [t: %b22] {  # if_10
-          %b22 = block {  # true
+        %132:f32 = load %x_118_phi
+        store %x_118, %132
+        %133:f32 = load %x_119_phi
+        store %x_119, %133
+        %134:bool = load %x_120_phi
+        %x_120:bool = let %134
+        %136:f32 = load %x_118
+        store %x_122_phi, %136
+        if %x_120 [t: $B22] {  # if_10
+          $B22: {  # true
             exit_switch  # switch_2
           }
         }
-        %123:f32 = load %x_119
-        store %x_122_phi, %123
+        %137:f32 = load %x_119
+        store %x_122_phi, %137
         exit_switch  # switch_2
       }
     }
-    %x_122:f32 = load %x_122_phi
+    %138:f32 = load %x_122_phi
+    %x_122:f32 = let %138
     store_vector_element %c, 1u, %x_122
-    %x_124:f32 = load_vector_element %c, 0u
-    %x_125:f32 = load_vector_element %c, 1u
-    %127:f32 = add %x_124, %x_125
-    store_vector_element %c, 2u, %127
+    %140:f32 = load_vector_element %c, 0u
+    %x_124:f32 = let %140
+    %142:f32 = load_vector_element %c, 1u
+    %x_125:f32 = let %142
+    %144:f32 = add %x_124, %x_125
+    store_vector_element %c, 2u, %144
     store %x_129_phi, 0i
-    loop [b: %b23, c: %b24] {  # loop_3
-      %b23 = block {  # body
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
         %x_130:ptr<function, i32, read_write> = var
-        %x_129:i32 = load %x_129_phi
-        %130:bool = lt %x_129, 3i
-        if %130 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
+        %146:i32 = load %x_129_phi
+        %x_129:i32 = let %146
+        %148:bool = lt %x_129, 3i
+        if %148 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
             exit_if  # if_11
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_136:f32 = load_vector_element %c, %x_129
-        %132:bool = gte %x_136, 1.0f
-        if %132 [t: %b27] {  # if_12
-          %b27 = block {  # true
-            %x_140:f32 = load_vector_element %c, %x_129
-            %x_141:f32 = load_vector_element %c, %x_129
-            %135:f32 = mul %x_140, %x_141
-            store_vector_element %c, %x_129, %135
+        %149:f32 = load_vector_element %c, %x_129
+        %x_136:f32 = let %149
+        %151:bool = gte %x_136, 1.0f
+        if %151 [t: $B27] {  # if_12
+          $B27: {  # true
+            %152:f32 = load_vector_element %c, %x_129
+            %x_140:f32 = let %152
+            %154:f32 = load_vector_element %c, %x_129
+            %x_141:f32 = let %154
+            %156:f32 = mul %x_140, %x_141
+            store_vector_element %c, %x_129, %156
             exit_if  # if_12
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %136:i32 = add %x_129, 1i
-        store %x_130, %136
-        %137:i32 = load %x_130
-        store %x_129_phi, %137
-        next_iteration %b23
+      $B24: {  # continuing
+        %157:i32 = add %x_129, 1i
+        store %x_130, %157
+        %158:i32 = load %x_130
+        store %x_129_phi, %158
+        next_iteration  # -> $B23
       }
     }
-    %x_143:vec3<f32> = load %c
-    %139:vec3<f32> = abs %x_143
-    %x_145:vec3<f32> = normalize %139
-    %141:f32 = access %x_145, 0u
-    %142:f32 = access %x_145, 1u
-    %143:f32 = access %x_145, 2u
-    %144:vec4<f32> = construct %141, %142, %143, 1.0f
-    store %x_GLF_color, %144
+    %159:vec3<f32> = load %c
+    %x_143:vec3<f32> = let %159
+    %161:vec3<f32> = abs %x_143
+    %162:vec3<f32> = normalize %161
+    %x_145:vec3<f32> = let %162
+    %164:f32 = access %x_145, 0u
+    %165:f32 = access %x_145, 1u
+    %166:f32 = access %x_145, 2u
+    %167:vec4<f32> = construct %164, %165, %166, 1.0f
+    store %x_GLF_color, %167
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %147:void = call %main_1
-    %148:vec4<f32> = load %x_GLF_color
-    %149:main_out = construct %148
-    ret %149
+    %170:void = call %main_1
+    %171:vec4<f32> = load %x_GLF_color
+    %172:main_out = construct %171
+    ret %172
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B29: {
+    %175:bool = eq %rhs, 0i
+    %176:bool = eq %lhs, -2147483648i
+    %177:bool = eq %rhs, -1i
+    %178:bool = and %176, %177
+    %179:bool = or %175, %178
+    %180:i32 = select %rhs, 1i, %179
+    %181:i32 = let %180
+    %182:i32 = div %lhs, %181
+    %183:i32 = mul %182, %181
+    %184:i32 = sub %lhs, %183
+    ret %184
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.msl
index e0d3a32..f1bf5f2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -34,42 +34,44 @@
     store %pos, %19
     %20:f32 = load_vector_element %pos, 0u
     %21:f32 = mul %20, 16.0f
-    %22:i32 = convert %21
-    %23:f32 = load_vector_element %pos, 1u
-    %24:f32 = mul %23, 16.0f
-    %25:i32 = convert %24
-    %26:vec2<i32> = construct %22, %25
-    store %ipos, %26
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = let %22
+    %25:f32 = load_vector_element %pos, 1u
+    %26:f32 = mul %25, 16.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:vec2<i32> = construct %24, %27
+    store %ipos, %28
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %27:i32 = load %i
-        %28:bool = lt %27, 256i
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %29:i32 = load %i
+        %30:bool = lt %29, 256i
+        if %30 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_80:i32 = load %i
-        %30:ptr<private, i32, read_write> = access %map, %x_80
-        store %30, 0i
-        continue %b4
-      }
-      %b4 = block {  # continuing
         %31:i32 = load %i
-        %32:i32 = add %31, 1i
-        store %i, %32
-        next_iteration %b3
+        %x_80:i32 = let %31
+        %33:ptr<private, i32, read_write> = access %map, %x_80
+        store %33, 0i
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %34:i32 = load %i
+        %35:i32 = add %34, 1i
+        store %i, %35
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_104:ptr<function, bool, read_write> = var
         %x_105:ptr<function, bool, read_write> = var
         %x_124:ptr<function, bool, read_write> = var
@@ -78,119 +80,123 @@
         %x_145:ptr<function, bool, read_write> = var
         %x_164:ptr<function, bool, read_write> = var
         %x_165:ptr<function, bool, read_write> = var
-        %41:i32 = load %v
-        %42:i32 = add %41, 1i
-        store %v, %42
+        %44:i32 = load %v
+        %45:i32 = add %44, 1i
+        store %v, %45
         store %directions, 0i
-        %43:i32 = load_vector_element %p, 0u
-        %x_92:bool = gt %43, 0i
+        %46:i32 = load_vector_element %p, 0u
+        %47:bool = gt %46, 0i
+        %x_92:bool = let %47
         store %x_105, %x_92
-        if %x_92 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %45:i32 = load_vector_element %p, 0u
-            %46:i32 = sub %45, 2i
-            %47:i32 = load_vector_element %p, 1u
-            %48:i32 = mul %47, 16i
-            %49:i32 = add %46, %48
-            %50:ptr<private, i32, read_write> = access %map, %49
-            %51:i32 = load %50
-            %52:bool = eq %51, 0i
-            store %x_104, %52
-            %53:bool = load %x_104
-            store %x_105, %53
+        if %x_92 [t: $B9] {  # if_2
+          $B9: {  # true
+            %49:i32 = load_vector_element %p, 0u
+            %50:i32 = sub %49, 2i
+            %51:i32 = load_vector_element %p, 1u
+            %52:i32 = mul %51, 16i
+            %53:i32 = add %50, %52
+            %54:ptr<private, i32, read_write> = access %map, %53
+            %55:i32 = load %54
+            %56:bool = eq %55, 0i
+            store %x_104, %56
+            %57:bool = load %x_104
+            store %x_105, %57
             exit_if  # if_2
           }
         }
-        %54:bool = load %x_105
-        if %54 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %55:i32 = load %directions
-            %56:i32 = add %55, 1i
-            store %directions, %56
+        %58:bool = load %x_105
+        if %58 [t: $B10] {  # if_3
+          $B10: {  # true
+            %59:i32 = load %directions
+            %60:i32 = add %59, 1i
+            store %directions, %60
             exit_if  # if_3
           }
         }
-        %57:i32 = load_vector_element %p, 1u
-        %x_112:bool = gt %57, 0i
+        %61:i32 = load_vector_element %p, 1u
+        %62:bool = gt %61, 0i
+        %x_112:bool = let %62
         store %x_125, %x_112
-        if %x_112 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %59:i32 = load_vector_element %p, 0u
-            %60:i32 = load_vector_element %p, 1u
-            %61:i32 = sub %60, 2i
-            %62:i32 = mul %61, 16i
-            %63:i32 = add %59, %62
-            %64:ptr<private, i32, read_write> = access %map, %63
-            %65:i32 = load %64
-            %66:bool = eq %65, 0i
-            store %x_124, %66
-            %67:bool = load %x_124
-            store %x_125, %67
+        if %x_112 [t: $B11] {  # if_4
+          $B11: {  # true
+            %64:i32 = load_vector_element %p, 0u
+            %65:i32 = load_vector_element %p, 1u
+            %66:i32 = sub %65, 2i
+            %67:i32 = mul %66, 16i
+            %68:i32 = add %64, %67
+            %69:ptr<private, i32, read_write> = access %map, %68
+            %70:i32 = load %69
+            %71:bool = eq %70, 0i
+            store %x_124, %71
+            %72:bool = load %x_124
+            store %x_125, %72
             exit_if  # if_4
           }
         }
-        %68:bool = load %x_125
-        if %68 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %69:i32 = load %directions
-            %70:i32 = add %69, 1i
-            store %directions, %70
+        %73:bool = load %x_125
+        if %73 [t: $B12] {  # if_5
+          $B12: {  # true
+            %74:i32 = load %directions
+            %75:i32 = add %74, 1i
+            store %directions, %75
             exit_if  # if_5
           }
         }
-        %71:i32 = load_vector_element %p, 0u
-        %x_132:bool = lt %71, 14i
+        %76:i32 = load_vector_element %p, 0u
+        %77:bool = lt %76, 14i
+        %x_132:bool = let %77
         store %x_145, %x_132
-        if %x_132 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %73:i32 = load_vector_element %p, 0u
-            %74:i32 = add %73, 2i
-            %75:i32 = load_vector_element %p, 1u
-            %76:i32 = mul %75, 16i
-            %77:i32 = add %74, %76
-            %78:ptr<private, i32, read_write> = access %map, %77
-            %79:i32 = load %78
-            %80:bool = eq %79, 0i
-            store %x_144, %80
-            %81:bool = load %x_144
-            store %x_145, %81
+        if %x_132 [t: $B13] {  # if_6
+          $B13: {  # true
+            %79:i32 = load_vector_element %p, 0u
+            %80:i32 = add %79, 2i
+            %81:i32 = load_vector_element %p, 1u
+            %82:i32 = mul %81, 16i
+            %83:i32 = add %80, %82
+            %84:ptr<private, i32, read_write> = access %map, %83
+            %85:i32 = load %84
+            %86:bool = eq %85, 0i
+            store %x_144, %86
+            %87:bool = load %x_144
+            store %x_145, %87
             exit_if  # if_6
           }
         }
-        %82:bool = load %x_145
-        if %82 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %83:i32 = load %directions
-            %84:i32 = add %83, 1i
-            store %directions, %84
+        %88:bool = load %x_145
+        if %88 [t: $B14] {  # if_7
+          $B14: {  # true
+            %89:i32 = load %directions
+            %90:i32 = add %89, 1i
+            store %directions, %90
             exit_if  # if_7
           }
         }
-        %85:i32 = load_vector_element %p, 1u
-        %x_152:bool = lt %85, 14i
+        %91:i32 = load_vector_element %p, 1u
+        %92:bool = lt %91, 14i
+        %x_152:bool = let %92
         store %x_165, %x_152
-        if %x_152 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %87:i32 = load_vector_element %p, 0u
-            %88:i32 = load_vector_element %p, 1u
-            %89:i32 = add %88, 2i
-            %90:i32 = mul %89, 16i
-            %91:i32 = add %87, %90
-            %92:ptr<private, i32, read_write> = access %map, %91
-            %93:i32 = load %92
-            %94:bool = eq %93, 0i
-            store %x_164, %94
-            %95:bool = load %x_164
-            store %x_165, %95
+        if %x_152 [t: $B15] {  # if_8
+          $B15: {  # true
+            %94:i32 = load_vector_element %p, 0u
+            %95:i32 = load_vector_element %p, 1u
+            %96:i32 = add %95, 2i
+            %97:i32 = mul %96, 16i
+            %98:i32 = add %94, %97
+            %99:ptr<private, i32, read_write> = access %map, %98
+            %100:i32 = load %99
+            %101:bool = eq %100, 0i
+            store %x_164, %101
+            %102:bool = load %x_164
+            store %x_165, %102
             exit_if  # if_8
           }
         }
-        %96:bool = load %x_165
-        if %96 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %97:i32 = load %directions
-            %98:i32 = add %97, 1i
-            store %directions, %98
+        %103:bool = load %x_165
+        if %103 [t: $B16] {  # if_9
+          $B16: {  # true
+            %104:i32 = load %directions
+            %105:i32 = add %104, 1i
+            store %directions, %105
             exit_if  # if_9
           }
         }
@@ -220,457 +226,515 @@
         %x_412:ptr<function, bool, read_write> = var
         %x_424:ptr<function, bool, read_write> = var
         %x_425:ptr<function, bool, read_write> = var
-        %125:i32 = load %directions
-        %126:bool = eq %125, 0i
-        if %126 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %132:i32 = load %directions
+        %133:bool = eq %132, 0i
+        if %133 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %127:i32 = load %i
-                %128:bool = lt %127, 8i
-                if %128 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %134:i32 = load %i
+                %135:bool = lt %134, 8i
+                if %135 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %129:i32 = load %j
-                    %130:bool = lt %129, 8i
-                    if %130 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %136:i32 = load %j
+                    %137:bool = lt %136, 8i
+                    if %137 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %131:i32 = load %j
-                    %132:i32 = mul %131, 2i
-                    %133:i32 = load %i
-                    %134:i32 = mul %133, 2i
-                    %135:i32 = mul %134, 16i
-                    %136:i32 = add %132, %135
-                    %137:ptr<private, i32, read_write> = access %map, %136
-                    %138:i32 = load %137
-                    %139:bool = eq %138, 0i
-                    if %139 [t: %b27] {  # if_13
-                      %b27 = block {  # true
-                        %140:i32 = load %j
-                        %141:i32 = mul %140, 2i
-                        store_vector_element %p, 0u, %141
-                        %142:i32 = load %i
-                        %143:i32 = mul %142, 2i
-                        store_vector_element %p, 1u, %143
+                    %138:i32 = load %j
+                    %139:i32 = mul %138, 2i
+                    %140:i32 = load %i
+                    %141:i32 = mul %140, 2i
+                    %142:i32 = mul %141, 16i
+                    %143:i32 = add %139, %142
+                    %144:ptr<private, i32, read_write> = access %map, %143
+                    %145:i32 = load %144
+                    %146:bool = eq %145, 0i
+                    if %146 [t: $B27] {  # if_13
+                      $B27: {  # true
+                        %147:i32 = load %j
+                        %148:i32 = mul %147, 2i
+                        store_vector_element %p, 0u, %148
+                        %149:i32 = load %i
+                        %150:i32 = mul %149, 2i
+                        store_vector_element %p, 1u, %150
                         store %canwalk, true
                         exit_if  # if_13
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %144:i32 = load %j
-                    %145:i32 = add %144, 1i
-                    store %j, %145
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %151:i32 = load %j
+                    %152:i32 = add %151, 1i
+                    store %j, %152
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %146:i32 = load %i
-                %147:i32 = add %146, 1i
-                store %i, %147
-                next_iteration %b19
+              $B20: {  # continuing
+                %153:i32 = load %i
+                %154:i32 = add %153, 1i
+                store %i, %154
+                next_iteration  # -> $B19
               }
             }
-            %x_211:i32 = load_vector_element %p, 0u
-            %x_213:i32 = load_vector_element %p, 1u
-            %150:i32 = mul %x_213, 16i
-            %151:i32 = add %x_211, %150
-            %152:ptr<private, i32, read_write> = access %map, %151
-            store %152, 1i
+            %155:i32 = load_vector_element %p, 0u
+            %x_211:i32 = let %155
+            %157:i32 = load_vector_element %p, 1u
+            %x_213:i32 = let %157
+            %159:i32 = mul %x_213, 16i
+            %160:i32 = add %x_211, %159
+            %161:ptr<private, i32, read_write> = access %map, %160
+            store %161, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %153:i32 = load %v
-            %154:i32 = load %directions
-            %155:i32 = mod %153, %154
-            store %d, %155
-            %156:i32 = load %v
-            %157:i32 = load %directions
-            %158:i32 = add %156, %157
-            store %v, %158
-            %159:i32 = load %d
-            %x_224:bool = gte %159, 0i
+          $B18: {  # false
+            %162:i32 = load %v
+            %163:i32 = load %directions
+            %164:i32 = call %tint_mod_i32, %162, %163
+            store %d, %164
+            %166:i32 = load %v
+            %167:i32 = load %directions
+            %168:i32 = add %166, %167
+            store %v, %168
+            %169:i32 = load %d
+            %170:bool = gte %169, 0i
+            %x_224:bool = let %170
             store %x_230, %x_224
-            if %x_224 [t: %b28] {  # if_14
-              %b28 = block {  # true
-                %161:i32 = load_vector_element %p, 0u
-                %162:bool = gt %161, 0i
-                store %x_229, %162
-                %163:bool = load %x_229
-                store %x_230, %163
+            if %x_224 [t: $B28] {  # if_14
+              $B28: {  # true
+                %172:i32 = load_vector_element %p, 0u
+                %173:bool = gt %172, 0i
+                store %x_229, %173
+                %174:bool = load %x_229
+                store %x_230, %174
                 exit_if  # if_14
               }
             }
-            %164:bool = load %x_230
-            store %x_243, %164
-            %165:bool = load %x_230
-            if %165 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %166:i32 = load_vector_element %p, 0u
-                %167:i32 = sub %166, 2i
-                %168:i32 = load_vector_element %p, 1u
-                %169:i32 = mul %168, 16i
-                %170:i32 = add %167, %169
-                %171:ptr<private, i32, read_write> = access %map, %170
-                %172:i32 = load %171
-                %173:bool = eq %172, 0i
-                store %x_242, %173
-                %174:bool = load %x_242
-                store %x_243, %174
+            %175:bool = load %x_230
+            store %x_243, %175
+            %176:bool = load %x_230
+            if %176 [t: $B29] {  # if_15
+              $B29: {  # true
+                %177:i32 = load_vector_element %p, 0u
+                %178:i32 = sub %177, 2i
+                %179:i32 = load_vector_element %p, 1u
+                %180:i32 = mul %179, 16i
+                %181:i32 = add %178, %180
+                %182:ptr<private, i32, read_write> = access %map, %181
+                %183:i32 = load %182
+                %184:bool = eq %183, 0i
+                store %x_242, %184
+                %185:bool = load %x_242
+                store %x_243, %185
                 exit_if  # if_15
               }
             }
-            %175:bool = load %x_243
-            if %175 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %176:i32 = load %d
-                %177:i32 = sub %176, 1i
-                store %d, %177
-                %x_249:i32 = load_vector_element %p, 0u
-                %x_251:i32 = load_vector_element %p, 1u
-                %180:i32 = mul %x_251, 16i
-                %181:i32 = add %x_249, %180
-                %182:ptr<private, i32, read_write> = access %map, %181
-                store %182, 1i
-                %x_256:i32 = load_vector_element %p, 0u
-                %x_259:i32 = load_vector_element %p, 1u
-                %185:i32 = sub %x_256, 1i
-                %186:i32 = mul %x_259, 16i
-                %187:i32 = add %185, %186
-                %188:ptr<private, i32, read_write> = access %map, %187
-                store %188, 1i
-                %x_264:i32 = load_vector_element %p, 0u
-                %x_267:i32 = load_vector_element %p, 1u
-                %191:i32 = sub %x_264, 2i
-                %192:i32 = mul %x_267, 16i
-                %193:i32 = add %191, %192
-                %194:ptr<private, i32, read_write> = access %map, %193
-                store %194, 1i
-                %195:i32 = load_vector_element %p, 0u
-                %196:i32 = sub %195, 2i
-                store_vector_element %p, 0u, %196
+            %186:bool = load %x_243
+            if %186 [t: $B30] {  # if_16
+              $B30: {  # true
+                %187:i32 = load %d
+                %188:i32 = sub %187, 1i
+                store %d, %188
+                %189:i32 = load_vector_element %p, 0u
+                %x_249:i32 = let %189
+                %191:i32 = load_vector_element %p, 1u
+                %x_251:i32 = let %191
+                %193:i32 = mul %x_251, 16i
+                %194:i32 = add %x_249, %193
+                %195:ptr<private, i32, read_write> = access %map, %194
+                store %195, 1i
+                %196:i32 = load_vector_element %p, 0u
+                %x_256:i32 = let %196
+                %198:i32 = load_vector_element %p, 1u
+                %x_259:i32 = let %198
+                %200:i32 = sub %x_256, 1i
+                %201:i32 = mul %x_259, 16i
+                %202:i32 = add %200, %201
+                %203:ptr<private, i32, read_write> = access %map, %202
+                store %203, 1i
+                %204:i32 = load_vector_element %p, 0u
+                %x_264:i32 = let %204
+                %206:i32 = load_vector_element %p, 1u
+                %x_267:i32 = let %206
+                %208:i32 = sub %x_264, 2i
+                %209:i32 = mul %x_267, 16i
+                %210:i32 = add %208, %209
+                %211:ptr<private, i32, read_write> = access %map, %210
+                store %211, 1i
+                %212:i32 = load_vector_element %p, 0u
+                %213:i32 = sub %212, 2i
+                store_vector_element %p, 0u, %213
                 exit_if  # if_16
               }
             }
-            %197:i32 = load %d
-            %x_276:bool = gte %197, 0i
+            %214:i32 = load %d
+            %215:bool = gte %214, 0i
+            %x_276:bool = let %215
             store %x_282, %x_276
-            if %x_276 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %199:i32 = load_vector_element %p, 1u
-                %200:bool = gt %199, 0i
-                store %x_281, %200
-                %201:bool = load %x_281
-                store %x_282, %201
+            if %x_276 [t: $B31] {  # if_17
+              $B31: {  # true
+                %217:i32 = load_vector_element %p, 1u
+                %218:bool = gt %217, 0i
+                store %x_281, %218
+                %219:bool = load %x_281
+                store %x_282, %219
                 exit_if  # if_17
               }
             }
-            %202:bool = load %x_282
-            if %202 [t: %b32, f: %b33] {  # if_18
-              %b32 = block {  # true
-                %203:i32 = load_vector_element %p, 0u
-                store %x_288, %203
-                %204:i32 = load %x_288
-                store %x_290, %204
+            %220:bool = load %x_282
+            if %220 [t: $B32, f: $B33] {  # if_18
+              $B32: {  # true
+                %221:i32 = load_vector_element %p, 0u
+                store %x_288, %221
+                %222:i32 = load %x_288
+                store %x_290, %222
                 exit_if  # if_18
               }
-              %b33 = block {  # false
+              $B33: {  # false
                 store %x_289, 0i
-                %205:i32 = load %x_289
-                store %x_290, %205
+                %223:i32 = load %x_289
+                store %x_290, %223
                 exit_if  # if_18
               }
             }
-            %206:bool = load %x_282
-            if %206 [t: %b34, f: %b35] {  # if_19
-              %b34 = block {  # true
-                %207:i32 = load_vector_element %p, 1u
-                store %x_295, %207
-                %208:i32 = load %x_295
-                store %x_297, %208
+            %224:bool = load %x_282
+            if %224 [t: $B34, f: $B35] {  # if_19
+              $B34: {  # true
+                %225:i32 = load_vector_element %p, 1u
+                store %x_295, %225
+                %226:i32 = load %x_295
+                store %x_297, %226
                 exit_if  # if_19
               }
-              %b35 = block {  # false
+              $B35: {  # false
                 store %x_296, 0i
-                %209:i32 = load %x_296
-                store %x_297, %209
+                %227:i32 = load %x_296
+                store %x_297, %227
                 exit_if  # if_19
               }
             }
-            %210:i32 = load %x_297
-            %211:i32 = sub %210, 2i
-            %x_299:i32 = mul %211, 16i
-            %213:bool = load %x_282
-            if %213 [t: %b36, f: %b37] {  # if_20
-              %b36 = block {  # true
-                %214:array<i32, 256> = load %map
-                store %x_303, %214
-                %215:array<i32, 256> = load %x_303
-                store %x_305, %215
+            %228:i32 = load %x_297
+            %229:i32 = sub %228, 2i
+            %230:i32 = mul %229, 16i
+            %x_299:i32 = let %230
+            %232:bool = load %x_282
+            if %232 [t: $B36, f: $B37] {  # if_20
+              $B36: {  # true
+                %233:array<i32, 256> = load %map
+                store %x_303, %233
+                %234:array<i32, 256> = load %x_303
+                store %x_305, %234
                 exit_if  # if_20
               }
-              %b37 = block {  # false
+              $B37: {  # false
                 store %x_304, array<i32, 256>(0i)
-                %216:array<i32, 256> = load %x_304
-                store %x_305, %216
+                %235:array<i32, 256> = load %x_304
+                store %x_305, %235
                 exit_if  # if_20
               }
             }
-            %217:bool = load %x_282
-            if %217 [t: %b38] {  # if_21
-              %b38 = block {  # true
+            %236:bool = load %x_282
+            if %236 [t: $B38] {  # if_21
+              $B38: {  # true
                 store %map, array<i32, 256>(0i)
                 exit_if  # if_21
               }
             }
-            %218:bool = load %x_282
-            if %218 [t: %b39] {  # if_22
-              %b39 = block {  # true
-                %219:array<i32, 256> = load %x_305
-                store %map, %219
+            %237:bool = load %x_282
+            if %237 [t: $B39] {  # if_22
+              $B39: {  # true
+                %238:array<i32, 256> = load %x_305
+                store %map, %238
                 exit_if  # if_22
               }
             }
-            %220:bool = load %x_282
-            if %220 [t: %b40, f: %b41] {  # if_23
-              %b40 = block {  # true
-                %221:i32 = load %x_290
-                %222:i32 = add %221, %x_299
-                %223:ptr<private, i32, read_write> = access %map, %222
-                %224:i32 = load %223
-                store %x_315, %224
-                %225:i32 = load %x_315
-                store %x_317, %225
+            %239:bool = load %x_282
+            if %239 [t: $B40, f: $B41] {  # if_23
+              $B40: {  # true
+                %240:i32 = load %x_290
+                %241:i32 = add %240, %x_299
+                %242:ptr<private, i32, read_write> = access %map, %241
+                %243:i32 = load %242
+                store %x_315, %243
+                %244:i32 = load %x_315
+                store %x_317, %244
                 exit_if  # if_23
               }
-              %b41 = block {  # false
+              $B41: {  # false
                 store %x_316, 0i
-                %226:i32 = load %x_316
-                store %x_317, %226
+                %245:i32 = load %x_316
+                store %x_317, %245
                 exit_if  # if_23
               }
             }
-            %227:bool = load %x_282
-            %228:i32 = load %x_317
-            %229:bool = eq %228, 0i
-            %230:bool = load %x_282
-            %231:bool = select %227, %229, %230
-            if %231 [t: %b42] {  # if_24
-              %b42 = block {  # true
-                %232:i32 = load %d
-                %233:i32 = sub %232, 1i
-                store %d, %233
-                %x_326:i32 = load_vector_element %p, 0u
-                %x_328:i32 = load_vector_element %p, 1u
-                %236:i32 = mul %x_328, 16i
-                %237:i32 = add %x_326, %236
-                %238:ptr<private, i32, read_write> = access %map, %237
-                store %238, 1i
-                %x_333:i32 = load_vector_element %p, 0u
-                %x_335:i32 = load_vector_element %p, 1u
-                %241:i32 = sub %x_335, 1i
-                %242:i32 = mul %241, 16i
-                %243:i32 = add %x_333, %242
-                %244:ptr<private, i32, read_write> = access %map, %243
-                store %244, 1i
-                %x_341:i32 = load_vector_element %p, 0u
-                %x_343:i32 = load_vector_element %p, 1u
-                %x_345:array<i32, 256> = load %map
+            %246:bool = load %x_282
+            %247:i32 = load %x_317
+            %248:bool = eq %247, 0i
+            %249:bool = load %x_282
+            %250:bool = select %246, %248, %249
+            if %250 [t: $B42] {  # if_24
+              $B42: {  # true
+                %251:i32 = load %d
+                %252:i32 = sub %251, 1i
+                store %d, %252
+                %253:i32 = load_vector_element %p, 0u
+                %x_326:i32 = let %253
+                %255:i32 = load_vector_element %p, 1u
+                %x_328:i32 = let %255
+                %257:i32 = mul %x_328, 16i
+                %258:i32 = add %x_326, %257
+                %259:ptr<private, i32, read_write> = access %map, %258
+                store %259, 1i
+                %260:i32 = load_vector_element %p, 0u
+                %x_333:i32 = let %260
+                %262:i32 = load_vector_element %p, 1u
+                %x_335:i32 = let %262
+                %264:i32 = sub %x_335, 1i
+                %265:i32 = mul %264, 16i
+                %266:i32 = add %x_333, %265
+                %267:ptr<private, i32, read_write> = access %map, %266
+                store %267, 1i
+                %268:i32 = load_vector_element %p, 0u
+                %x_341:i32 = let %268
+                %270:i32 = load_vector_element %p, 1u
+                %x_343:i32 = let %270
+                %272:array<i32, 256> = load %map
+                %x_345:array<i32, 256> = let %272
                 store %map, array<i32, 256>(0i)
                 store %map, %x_345
-                %248:i32 = sub %x_343, 2i
-                %249:i32 = mul %248, 16i
-                %250:i32 = add %x_341, %249
-                %251:ptr<private, i32, read_write> = access %map, %250
-                store %251, 1i
-                %252:i32 = load_vector_element %p, 1u
-                %253:i32 = sub %252, 2i
-                store_vector_element %p, 1u, %253
+                %274:i32 = sub %x_343, 2i
+                %275:i32 = mul %274, 16i
+                %276:i32 = add %x_341, %275
+                %277:ptr<private, i32, read_write> = access %map, %276
+                store %277, 1i
+                %278:i32 = load_vector_element %p, 1u
+                %279:i32 = sub %278, 2i
+                store_vector_element %p, 1u, %279
                 exit_if  # if_24
               }
             }
-            %254:i32 = load %d
-            %x_354:bool = gte %254, 0i
+            %280:i32 = load %d
+            %281:bool = gte %280, 0i
+            %x_354:bool = let %281
             store %x_360, %x_354
-            if %x_354 [t: %b43] {  # if_25
-              %b43 = block {  # true
-                %256:i32 = load_vector_element %p, 0u
-                %257:bool = lt %256, 14i
-                store %x_359, %257
-                %258:bool = load %x_359
-                store %x_360, %258
+            if %x_354 [t: $B43] {  # if_25
+              $B43: {  # true
+                %283:i32 = load_vector_element %p, 0u
+                %284:bool = lt %283, 14i
+                store %x_359, %284
+                %285:bool = load %x_359
+                store %x_360, %285
                 exit_if  # if_25
               }
             }
-            %259:bool = load %x_360
-            store %x_373, %259
-            %260:bool = load %x_360
-            if %260 [t: %b44] {  # if_26
-              %b44 = block {  # true
-                %261:i32 = load_vector_element %p, 0u
-                %262:i32 = add %261, 2i
-                %263:i32 = load_vector_element %p, 1u
-                %264:i32 = mul %263, 16i
-                %265:i32 = add %262, %264
-                %266:ptr<private, i32, read_write> = access %map, %265
-                %267:i32 = load %266
-                %268:bool = eq %267, 0i
-                store %x_372, %268
-                %269:bool = load %x_372
-                store %x_373, %269
+            %286:bool = load %x_360
+            store %x_373, %286
+            %287:bool = load %x_360
+            if %287 [t: $B44] {  # if_26
+              $B44: {  # true
+                %288:i32 = load_vector_element %p, 0u
+                %289:i32 = add %288, 2i
+                %290:i32 = load_vector_element %p, 1u
+                %291:i32 = mul %290, 16i
+                %292:i32 = add %289, %291
+                %293:ptr<private, i32, read_write> = access %map, %292
+                %294:i32 = load %293
+                %295:bool = eq %294, 0i
+                store %x_372, %295
+                %296:bool = load %x_372
+                store %x_373, %296
                 exit_if  # if_26
               }
             }
-            %270:bool = load %x_373
-            if %270 [t: %b45] {  # if_27
-              %b45 = block {  # true
-                %271:i32 = load %d
-                %272:i32 = sub %271, 1i
-                store %d, %272
-                %x_379:i32 = load_vector_element %p, 0u
-                %x_381:i32 = load_vector_element %p, 1u
-                %275:i32 = mul %x_381, 16i
-                %276:i32 = add %x_379, %275
-                %277:ptr<private, i32, read_write> = access %map, %276
-                store %277, 1i
-                %x_386:i32 = load_vector_element %p, 0u
-                %x_389:i32 = load_vector_element %p, 1u
-                %280:i32 = add %x_386, 1i
-                %281:i32 = mul %x_389, 16i
-                %282:i32 = add %280, %281
-                %283:ptr<private, i32, read_write> = access %map, %282
-                store %283, 1i
-                %x_394:i32 = load_vector_element %p, 0u
-                %x_397:i32 = load_vector_element %p, 1u
-                %286:i32 = add %x_394, 2i
-                %287:i32 = mul %x_397, 16i
-                %288:i32 = add %286, %287
-                %289:ptr<private, i32, read_write> = access %map, %288
-                store %289, 1i
-                %290:i32 = load_vector_element %p, 0u
-                %291:i32 = add %290, 2i
-                store_vector_element %p, 0u, %291
+            %297:bool = load %x_373
+            if %297 [t: $B45] {  # if_27
+              $B45: {  # true
+                %298:i32 = load %d
+                %299:i32 = sub %298, 1i
+                store %d, %299
+                %300:i32 = load_vector_element %p, 0u
+                %x_379:i32 = let %300
+                %302:i32 = load_vector_element %p, 1u
+                %x_381:i32 = let %302
+                %304:i32 = mul %x_381, 16i
+                %305:i32 = add %x_379, %304
+                %306:ptr<private, i32, read_write> = access %map, %305
+                store %306, 1i
+                %307:i32 = load_vector_element %p, 0u
+                %x_386:i32 = let %307
+                %309:i32 = load_vector_element %p, 1u
+                %x_389:i32 = let %309
+                %311:i32 = add %x_386, 1i
+                %312:i32 = mul %x_389, 16i
+                %313:i32 = add %311, %312
+                %314:ptr<private, i32, read_write> = access %map, %313
+                store %314, 1i
+                %315:i32 = load_vector_element %p, 0u
+                %x_394:i32 = let %315
+                %317:i32 = load_vector_element %p, 1u
+                %x_397:i32 = let %317
+                %319:i32 = add %x_394, 2i
+                %320:i32 = mul %x_397, 16i
+                %321:i32 = add %319, %320
+                %322:ptr<private, i32, read_write> = access %map, %321
+                store %322, 1i
+                %323:i32 = load_vector_element %p, 0u
+                %324:i32 = add %323, 2i
+                store_vector_element %p, 0u, %324
                 exit_if  # if_27
               }
             }
-            %292:i32 = load %d
-            %x_406:bool = gte %292, 0i
+            %325:i32 = load %d
+            %326:bool = gte %325, 0i
+            %x_406:bool = let %326
             store %x_412, %x_406
-            if %x_406 [t: %b46] {  # if_28
-              %b46 = block {  # true
-                %294:i32 = load_vector_element %p, 1u
-                %295:bool = lt %294, 14i
-                store %x_411, %295
-                %296:bool = load %x_411
-                store %x_412, %296
+            if %x_406 [t: $B46] {  # if_28
+              $B46: {  # true
+                %328:i32 = load_vector_element %p, 1u
+                %329:bool = lt %328, 14i
+                store %x_411, %329
+                %330:bool = load %x_411
+                store %x_412, %330
                 exit_if  # if_28
               }
             }
-            %297:bool = load %x_412
-            store %x_425, %297
-            %298:bool = load %x_412
-            if %298 [t: %b47] {  # if_29
-              %b47 = block {  # true
-                %299:i32 = load_vector_element %p, 0u
-                %300:i32 = load_vector_element %p, 1u
-                %301:i32 = add %300, 2i
-                %302:i32 = mul %301, 16i
-                %303:i32 = add %299, %302
-                %304:ptr<private, i32, read_write> = access %map, %303
-                %305:i32 = load %304
-                %306:bool = eq %305, 0i
-                store %x_424, %306
-                %307:bool = load %x_424
-                store %x_425, %307
+            %331:bool = load %x_412
+            store %x_425, %331
+            %332:bool = load %x_412
+            if %332 [t: $B47] {  # if_29
+              $B47: {  # true
+                %333:i32 = load_vector_element %p, 0u
+                %334:i32 = load_vector_element %p, 1u
+                %335:i32 = add %334, 2i
+                %336:i32 = mul %335, 16i
+                %337:i32 = add %333, %336
+                %338:ptr<private, i32, read_write> = access %map, %337
+                %339:i32 = load %338
+                %340:bool = eq %339, 0i
+                store %x_424, %340
+                %341:bool = load %x_424
+                store %x_425, %341
                 exit_if  # if_29
               }
             }
-            %308:bool = load %x_425
-            if %308 [t: %b48] {  # if_30
-              %b48 = block {  # true
-                %309:i32 = load %d
-                %310:i32 = sub %309, 1i
-                store %d, %310
-                %x_431:i32 = load_vector_element %p, 0u
-                %x_433:i32 = load_vector_element %p, 1u
-                %313:i32 = mul %x_433, 16i
-                %314:i32 = add %x_431, %313
-                %315:ptr<private, i32, read_write> = access %map, %314
-                store %315, 1i
-                %x_438:i32 = load_vector_element %p, 0u
-                %x_440:i32 = load_vector_element %p, 1u
-                %318:i32 = add %x_440, 1i
-                %319:i32 = mul %318, 16i
-                %320:i32 = add %x_438, %319
-                %321:ptr<private, i32, read_write> = access %map, %320
-                store %321, 1i
-                %x_446:i32 = load_vector_element %p, 0u
-                %x_448:i32 = load_vector_element %p, 1u
-                %324:i32 = add %x_448, 2i
-                %325:i32 = mul %324, 16i
-                %326:i32 = add %x_446, %325
-                %327:ptr<private, i32, read_write> = access %map, %326
-                store %327, 1i
-                %328:i32 = load_vector_element %p, 1u
-                %329:i32 = add %328, 2i
-                store_vector_element %p, 1u, %329
+            %342:bool = load %x_425
+            if %342 [t: $B48] {  # if_30
+              $B48: {  # true
+                %343:i32 = load %d
+                %344:i32 = sub %343, 1i
+                store %d, %344
+                %345:i32 = load_vector_element %p, 0u
+                %x_431:i32 = let %345
+                %347:i32 = load_vector_element %p, 1u
+                %x_433:i32 = let %347
+                %349:i32 = mul %x_433, 16i
+                %350:i32 = add %x_431, %349
+                %351:ptr<private, i32, read_write> = access %map, %350
+                store %351, 1i
+                %352:i32 = load_vector_element %p, 0u
+                %x_438:i32 = let %352
+                %354:i32 = load_vector_element %p, 1u
+                %x_440:i32 = let %354
+                %356:i32 = add %x_440, 1i
+                %357:i32 = mul %356, 16i
+                %358:i32 = add %x_438, %357
+                %359:ptr<private, i32, read_write> = access %map, %358
+                store %359, 1i
+                %360:i32 = load_vector_element %p, 0u
+                %x_446:i32 = let %360
+                %362:i32 = load_vector_element %p, 1u
+                %x_448:i32 = let %362
+                %364:i32 = add %x_448, 2i
+                %365:i32 = mul %364, 16i
+                %366:i32 = add %x_446, %365
+                %367:ptr<private, i32, read_write> = access %map, %366
+                store %367, 1i
+                %368:i32 = load_vector_element %p, 1u
+                %369:i32 = add %368, 2i
+                store_vector_element %p, 1u, %369
                 exit_if  # if_30
               }
             }
             exit_if  # if_10
           }
         }
-        %330:i32 = load_vector_element %ipos, 1u
-        %331:i32 = mul %330, 16i
-        %332:i32 = load_vector_element %ipos, 0u
-        %333:i32 = add %331, %332
-        %334:ptr<private, i32, read_write> = access %map, %333
-        %335:i32 = load %334
-        %336:bool = eq %335, 1i
-        if %336 [t: %b49] {  # if_31
-          %b49 = block {  # true
+        %370:i32 = load_vector_element %ipos, 1u
+        %371:i32 = mul %370, 16i
+        %372:i32 = load_vector_element %ipos, 0u
+        %373:i32 = add %371, %372
+        %374:ptr<private, i32, read_write> = access %map, %373
+        %375:i32 = load %374
+        %376:bool = eq %375, 1i
+        if %376 [t: $B49] {  # if_31
+          $B49: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_468:bool = load %canwalk
-        %338:bool = eq %x_468, false
-        break_if %338 %b7
+      $B8: {  # continuing
+        %377:bool = load %canwalk
+        %x_468:bool = let %377
+        %379:bool = eq %x_468, false
+        break_if %379  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b50 {
-  %b50 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B50: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %341:void = call %main_1
-    %342:vec4<f32> = load %x_GLF_color
-    %343:main_out = construct %342
-    ret %343
+    %382:void = call %main_1
+    %383:vec4<f32> = load %x_GLF_color
+    %384:main_out = construct %383
+    ret %384
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B51: {
+    %387:bool = eq %rhs, 0i
+    %388:bool = eq %lhs, -2147483648i
+    %389:bool = eq %rhs, -1i
+    %390:bool = and %388, %389
+    %391:bool = or %387, %390
+    %392:i32 = select %rhs, 1i, %391
+    %393:i32 = let %392
+    %394:i32 = div %lhs, %393
+    %395:i32 = mul %394, %393
+    %396:i32 = sub %lhs, %395
+    ret %396
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B52: {
+    %398:i32 = convert %value
+    %399:bool = gte %value, -2147483648.0f
+    %400:i32 = select -2147483648i, %398, %399
+    %401:bool = lte %value, 2147483520.0f
+    %402:i32 = select 2147483647i, %400, %401
+    ret %402
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.msl
index 4a5700b..4a41b3c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -26,52 +26,60 @@
     %directions:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %d:ptr<function, i32, read_write> = var
-    %x_59:vec4<f32> = load %gl_FragCoord
-    %16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_62:vec2<f32> = load %16
-    %18:f32 = access %x_59, 0u
-    %19:f32 = access %x_59, 1u
-    %20:vec2<f32> = construct %18, %19
-    %21:vec2<f32> = div %20, %x_62
-    store %pos, %21
-    %x_65:f32 = load_vector_element %pos, 0u
-    %x_69:f32 = load_vector_element %pos, 1u
-    %24:f32 = mul %x_65, 16.0f
-    %25:i32 = convert %24
-    %26:f32 = mul %x_69, 16.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %25, %27
-    store %ipos, %28
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_59:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %18:vec2<f32> = load %17
+    %x_62:vec2<f32> = let %18
+    %20:f32 = access %x_59, 0u
+    %21:f32 = access %x_59, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_62
+    store %pos, %23
+    %24:f32 = load_vector_element %pos, 0u
+    %x_65:f32 = let %24
+    %26:f32 = load_vector_element %pos, 1u
+    %x_69:f32 = let %26
+    %28:f32 = mul %x_65, 16.0f
+    %29:i32 = call %tint_f32_to_i32, %28
+    %31:i32 = let %29
+    %32:f32 = mul %x_69, 16.0f
+    %33:i32 = call %tint_f32_to_i32, %32
+    %34:vec2<i32> = construct %31, %33
+    store %ipos, %34
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_77:i32 = load %i
-        %30:bool = lt %x_77, 256i
-        if %30 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %35:i32 = load %i
+        %x_77:i32 = let %35
+        %37:bool = lt %x_77, 256i
+        if %37 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_80:i32 = load %i
-        %32:ptr<private, i32, read_write> = access %map, %x_80
-        store %32, 0i
-        continue %b4
+        %38:i32 = load %i
+        %x_80:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %map, %x_80
+        store %40, 0i
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_82:i32 = load %i
-        %34:i32 = add %x_82, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %i
+        %x_82:i32 = let %41
+        %43:i32 = add %x_82, 1i
+        store %i, %43
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_104:ptr<function, bool, read_write> = var
         %x_124:ptr<function, bool, read_write> = var
         %x_144:ptr<function, bool, read_write> = var
@@ -80,119 +88,148 @@
         %x_125_phi:ptr<function, bool, read_write> = var
         %x_145_phi:ptr<function, bool, read_write> = var
         %x_165_phi:ptr<function, bool, read_write> = var
-        %x_88:i32 = load %v
-        %44:i32 = add %x_88, 1i
-        store %v, %44
+        %52:i32 = load %v
+        %x_88:i32 = let %52
+        %54:i32 = add %x_88, 1i
+        store %v, %54
         store %directions, 0i
-        %x_91:i32 = load_vector_element %p, 0u
-        %x_92:bool = gt %x_91, 0i
+        %55:i32 = load_vector_element %p, 0u
+        %x_91:i32 = let %55
+        %57:bool = gt %x_91, 0i
+        %x_92:bool = let %57
         store %x_105_phi, %x_92
-        if %x_92 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %x_96:i32 = load_vector_element %p, 0u
-            %x_99:i32 = load_vector_element %p, 1u
-            %49:i32 = sub %x_96, 2i
-            %50:i32 = mul %x_99, 16i
-            %51:i32 = add %49, %50
-            %52:ptr<private, i32, read_write> = access %map, %51
-            %x_103:i32 = load %52
-            %54:bool = eq %x_103, 0i
-            store %x_104, %54
-            %55:bool = load %x_104
-            store %x_105_phi, %55
+        if %x_92 [t: $B9] {  # if_2
+          $B9: {  # true
+            %59:i32 = load_vector_element %p, 0u
+            %x_96:i32 = let %59
+            %61:i32 = load_vector_element %p, 1u
+            %x_99:i32 = let %61
+            %63:i32 = sub %x_96, 2i
+            %64:i32 = mul %x_99, 16i
+            %65:i32 = add %63, %64
+            %66:ptr<private, i32, read_write> = access %map, %65
+            %67:i32 = load %66
+            %x_103:i32 = let %67
+            %69:bool = eq %x_103, 0i
+            store %x_104, %69
+            %70:bool = load %x_104
+            store %x_105_phi, %70
             exit_if  # if_2
           }
         }
-        %x_105:bool = load %x_105_phi
-        if %x_105 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %x_108:i32 = load %directions
-            %58:i32 = add %x_108, 1i
-            store %directions, %58
+        %71:bool = load %x_105_phi
+        %x_105:bool = let %71
+        if %x_105 [t: $B10] {  # if_3
+          $B10: {  # true
+            %73:i32 = load %directions
+            %x_108:i32 = let %73
+            %75:i32 = add %x_108, 1i
+            store %directions, %75
             exit_if  # if_3
           }
         }
-        %x_111:i32 = load_vector_element %p, 1u
-        %x_112:bool = gt %x_111, 0i
+        %76:i32 = load_vector_element %p, 1u
+        %x_111:i32 = let %76
+        %78:bool = gt %x_111, 0i
+        %x_112:bool = let %78
         store %x_125_phi, %x_112
-        if %x_112 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %x_116:i32 = load_vector_element %p, 0u
-            %x_118:i32 = load_vector_element %p, 1u
-            %63:i32 = sub %x_118, 2i
-            %64:i32 = mul %63, 16i
-            %65:i32 = add %x_116, %64
-            %66:ptr<private, i32, read_write> = access %map, %65
-            %x_123:i32 = load %66
-            %68:bool = eq %x_123, 0i
-            store %x_124, %68
-            %69:bool = load %x_124
-            store %x_125_phi, %69
+        if %x_112 [t: $B11] {  # if_4
+          $B11: {  # true
+            %80:i32 = load_vector_element %p, 0u
+            %x_116:i32 = let %80
+            %82:i32 = load_vector_element %p, 1u
+            %x_118:i32 = let %82
+            %84:i32 = sub %x_118, 2i
+            %85:i32 = mul %84, 16i
+            %86:i32 = add %x_116, %85
+            %87:ptr<private, i32, read_write> = access %map, %86
+            %88:i32 = load %87
+            %x_123:i32 = let %88
+            %90:bool = eq %x_123, 0i
+            store %x_124, %90
+            %91:bool = load %x_124
+            store %x_125_phi, %91
             exit_if  # if_4
           }
         }
-        %x_125:bool = load %x_125_phi
-        if %x_125 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %x_128:i32 = load %directions
-            %72:i32 = add %x_128, 1i
-            store %directions, %72
+        %92:bool = load %x_125_phi
+        %x_125:bool = let %92
+        if %x_125 [t: $B12] {  # if_5
+          $B12: {  # true
+            %94:i32 = load %directions
+            %x_128:i32 = let %94
+            %96:i32 = add %x_128, 1i
+            store %directions, %96
             exit_if  # if_5
           }
         }
-        %x_131:i32 = load_vector_element %p, 0u
-        %x_132:bool = lt %x_131, 14i
+        %97:i32 = load_vector_element %p, 0u
+        %x_131:i32 = let %97
+        %99:bool = lt %x_131, 14i
+        %x_132:bool = let %99
         store %x_145_phi, %x_132
-        if %x_132 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %x_136:i32 = load_vector_element %p, 0u
-            %x_139:i32 = load_vector_element %p, 1u
-            %77:i32 = add %x_136, 2i
-            %78:i32 = mul %x_139, 16i
-            %79:i32 = add %77, %78
-            %80:ptr<private, i32, read_write> = access %map, %79
-            %x_143:i32 = load %80
-            %82:bool = eq %x_143, 0i
-            store %x_144, %82
-            %83:bool = load %x_144
-            store %x_145_phi, %83
+        if %x_132 [t: $B13] {  # if_6
+          $B13: {  # true
+            %101:i32 = load_vector_element %p, 0u
+            %x_136:i32 = let %101
+            %103:i32 = load_vector_element %p, 1u
+            %x_139:i32 = let %103
+            %105:i32 = add %x_136, 2i
+            %106:i32 = mul %x_139, 16i
+            %107:i32 = add %105, %106
+            %108:ptr<private, i32, read_write> = access %map, %107
+            %109:i32 = load %108
+            %x_143:i32 = let %109
+            %111:bool = eq %x_143, 0i
+            store %x_144, %111
+            %112:bool = load %x_144
+            store %x_145_phi, %112
             exit_if  # if_6
           }
         }
-        %x_145:bool = load %x_145_phi
-        if %x_145 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %x_148:i32 = load %directions
-            %86:i32 = add %x_148, 1i
-            store %directions, %86
+        %113:bool = load %x_145_phi
+        %x_145:bool = let %113
+        if %x_145 [t: $B14] {  # if_7
+          $B14: {  # true
+            %115:i32 = load %directions
+            %x_148:i32 = let %115
+            %117:i32 = add %x_148, 1i
+            store %directions, %117
             exit_if  # if_7
           }
         }
-        %x_151:i32 = load_vector_element %p, 1u
-        %x_152:bool = lt %x_151, 14i
+        %118:i32 = load_vector_element %p, 1u
+        %x_151:i32 = let %118
+        %120:bool = lt %x_151, 14i
+        %x_152:bool = let %120
         store %x_165_phi, %x_152
-        if %x_152 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %x_156:i32 = load_vector_element %p, 0u
-            %x_158:i32 = load_vector_element %p, 1u
-            %91:i32 = add %x_158, 2i
-            %92:i32 = mul %91, 16i
-            %93:i32 = add %x_156, %92
-            %94:ptr<private, i32, read_write> = access %map, %93
-            %x_163:i32 = load %94
-            %96:bool = eq %x_163, 0i
-            store %x_164, %96
-            %97:bool = load %x_164
-            store %x_165_phi, %97
+        if %x_152 [t: $B15] {  # if_8
+          $B15: {  # true
+            %122:i32 = load_vector_element %p, 0u
+            %x_156:i32 = let %122
+            %124:i32 = load_vector_element %p, 1u
+            %x_158:i32 = let %124
+            %126:i32 = add %x_158, 2i
+            %127:i32 = mul %126, 16i
+            %128:i32 = add %x_156, %127
+            %129:ptr<private, i32, read_write> = access %map, %128
+            %130:i32 = load %129
+            %x_163:i32 = let %130
+            %132:bool = eq %x_163, 0i
+            store %x_164, %132
+            %133:bool = load %x_164
+            store %x_165_phi, %133
             exit_if  # if_8
           }
         }
-        %x_165:bool = load %x_165_phi
-        if %x_165 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %x_168:i32 = load %directions
-            %100:i32 = add %x_168, 1i
-            store %directions, %100
+        %134:bool = load %x_165_phi
+        %x_165:bool = let %134
+        if %x_165 [t: $B16] {  # if_9
+          $B16: {  # true
+            %136:i32 = load %directions
+            %x_168:i32 = let %136
+            %138:i32 = add %x_168, 1i
+            store %directions, %138
             exit_if  # if_9
           }
         }
@@ -222,447 +259,559 @@
         %x_373_phi:ptr<function, bool, read_write> = var
         %x_412_phi:ptr<function, bool, read_write> = var
         %x_425_phi:ptr<function, bool, read_write> = var
-        %x_170:i32 = load %directions
-        %128:bool = eq %x_170, 0i
-        if %128 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %165:i32 = load %directions
+        %x_170:i32 = let %165
+        %167:bool = eq %x_170, 0i
+        if %167 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %x_179:i32 = load %i
-                %130:bool = lt %x_179, 8i
-                if %130 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %168:i32 = load %i
+                %x_179:i32 = let %168
+                %170:bool = lt %x_179, 8i
+                if %170 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %x_186:i32 = load %j
-                    %132:bool = lt %x_186, 8i
-                    if %132 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %171:i32 = load %j
+                    %x_186:i32 = let %171
+                    %173:bool = lt %x_186, 8i
+                    if %173 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_189:i32 = load %j
-                    %x_191:i32 = load %i
-                    %135:i32 = mul %x_189, 2i
-                    %136:i32 = mul %x_191, 2i
-                    %137:i32 = mul %136, 16i
-                    %138:i32 = add %135, %137
-                    %139:ptr<private, i32, read_write> = access %map, %138
-                    %x_196:i32 = load %139
-                    %141:bool = eq %x_196, 0i
-                    if %141 [t: %b27] {  # if_13
-                      %b27 = block {  # true
-                        %x_200:i32 = load %j
-                        %143:i32 = mul %x_200, 2i
-                        store_vector_element %p, 0u, %143
-                        %x_203:i32 = load %i
-                        %145:i32 = mul %x_203, 2i
-                        store_vector_element %p, 1u, %145
+                    %174:i32 = load %j
+                    %x_189:i32 = let %174
+                    %176:i32 = load %i
+                    %x_191:i32 = let %176
+                    %178:i32 = mul %x_189, 2i
+                    %179:i32 = mul %x_191, 2i
+                    %180:i32 = mul %179, 16i
+                    %181:i32 = add %178, %180
+                    %182:ptr<private, i32, read_write> = access %map, %181
+                    %183:i32 = load %182
+                    %x_196:i32 = let %183
+                    %185:bool = eq %x_196, 0i
+                    if %185 [t: $B27] {  # if_13
+                      $B27: {  # true
+                        %186:i32 = load %j
+                        %x_200:i32 = let %186
+                        %188:i32 = mul %x_200, 2i
+                        store_vector_element %p, 0u, %188
+                        %189:i32 = load %i
+                        %x_203:i32 = let %189
+                        %191:i32 = mul %x_203, 2i
+                        store_vector_element %p, 1u, %191
                         store %canwalk, true
                         exit_if  # if_13
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %x_206:i32 = load %j
-                    %147:i32 = add %x_206, 1i
-                    store %j, %147
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %192:i32 = load %j
+                    %x_206:i32 = let %192
+                    %194:i32 = add %x_206, 1i
+                    store %j, %194
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %x_208:i32 = load %i
-                %149:i32 = add %x_208, 1i
-                store %i, %149
-                next_iteration %b19
+              $B20: {  # continuing
+                %195:i32 = load %i
+                %x_208:i32 = let %195
+                %197:i32 = add %x_208, 1i
+                store %i, %197
+                next_iteration  # -> $B19
               }
             }
-            %x_211:i32 = load_vector_element %p, 0u
-            %x_213:i32 = load_vector_element %p, 1u
-            %152:i32 = mul %x_213, 16i
-            %153:i32 = add %x_211, %152
-            %154:ptr<private, i32, read_write> = access %map, %153
-            store %154, 1i
+            %198:i32 = load_vector_element %p, 0u
+            %x_211:i32 = let %198
+            %200:i32 = load_vector_element %p, 1u
+            %x_213:i32 = let %200
+            %202:i32 = mul %x_213, 16i
+            %203:i32 = add %x_211, %202
+            %204:ptr<private, i32, read_write> = access %map, %203
+            store %204, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %x_217:i32 = load %v
-            %x_218:i32 = load %directions
-            %157:i32 = mod %x_217, %x_218
-            store %d, %157
-            %x_220:i32 = load %directions
-            %x_221:i32 = load %v
-            %160:i32 = add %x_221, %x_220
-            store %v, %160
-            %x_223:i32 = load %d
-            %x_224:bool = gte %x_223, 0i
+          $B18: {  # false
+            %205:i32 = load %v
+            %x_217:i32 = let %205
+            %207:i32 = load %directions
+            %x_218:i32 = let %207
+            %209:i32 = call %tint_mod_i32, %x_217, %x_218
+            store %d, %209
+            %211:i32 = load %directions
+            %x_220:i32 = let %211
+            %213:i32 = load %v
+            %x_221:i32 = let %213
+            %215:i32 = add %x_221, %x_220
+            store %v, %215
+            %216:i32 = load %d
+            %x_223:i32 = let %216
+            %218:bool = gte %x_223, 0i
+            %x_224:bool = let %218
             store %x_230_phi, %x_224
-            if %x_224 [t: %b28] {  # if_14
-              %b28 = block {  # true
-                %x_228:i32 = load_vector_element %p, 0u
-                %164:bool = gt %x_228, 0i
-                store %x_229, %164
-                %165:bool = load %x_229
-                store %x_230_phi, %165
+            if %x_224 [t: $B28] {  # if_14
+              $B28: {  # true
+                %220:i32 = load_vector_element %p, 0u
+                %x_228:i32 = let %220
+                %222:bool = gt %x_228, 0i
+                store %x_229, %222
+                %223:bool = load %x_229
+                store %x_230_phi, %223
                 exit_if  # if_14
               }
             }
-            %x_230:bool = load %x_230_phi
+            %224:bool = load %x_230_phi
+            %x_230:bool = let %224
             store %x_243_phi, %x_230
-            if %x_230 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %x_234:i32 = load_vector_element %p, 0u
-                %x_237:i32 = load_vector_element %p, 1u
-                %169:i32 = sub %x_234, 2i
-                %170:i32 = mul %x_237, 16i
-                %171:i32 = add %169, %170
-                %172:ptr<private, i32, read_write> = access %map, %171
-                %x_241:i32 = load %172
-                %174:bool = eq %x_241, 0i
-                store %x_242, %174
-                %175:bool = load %x_242
-                store %x_243_phi, %175
+            if %x_230 [t: $B29] {  # if_15
+              $B29: {  # true
+                %226:i32 = load_vector_element %p, 0u
+                %x_234:i32 = let %226
+                %228:i32 = load_vector_element %p, 1u
+                %x_237:i32 = let %228
+                %230:i32 = sub %x_234, 2i
+                %231:i32 = mul %x_237, 16i
+                %232:i32 = add %230, %231
+                %233:ptr<private, i32, read_write> = access %map, %232
+                %234:i32 = load %233
+                %x_241:i32 = let %234
+                %236:bool = eq %x_241, 0i
+                store %x_242, %236
+                %237:bool = load %x_242
+                store %x_243_phi, %237
                 exit_if  # if_15
               }
             }
-            %x_243:bool = load %x_243_phi
-            if %x_243 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %x_246:i32 = load %d
-                %178:i32 = sub %x_246, 1i
-                store %d, %178
-                %x_249:i32 = load_vector_element %p, 0u
-                %x_251:i32 = load_vector_element %p, 1u
-                %181:i32 = mul %x_251, 16i
-                %182:i32 = add %x_249, %181
-                %183:ptr<private, i32, read_write> = access %map, %182
-                store %183, 1i
-                %x_256:i32 = load_vector_element %p, 0u
-                %x_259:i32 = load_vector_element %p, 1u
-                %186:i32 = sub %x_256, 1i
-                %187:i32 = mul %x_259, 16i
-                %188:i32 = add %186, %187
-                %189:ptr<private, i32, read_write> = access %map, %188
-                store %189, 1i
-                %x_264:i32 = load_vector_element %p, 0u
-                %x_267:i32 = load_vector_element %p, 1u
-                %192:i32 = sub %x_264, 2i
-                %193:i32 = mul %x_267, 16i
-                %194:i32 = add %192, %193
-                %195:ptr<private, i32, read_write> = access %map, %194
-                store %195, 1i
-                %x_272:i32 = load_vector_element %p, 0u
-                %197:i32 = sub %x_272, 2i
-                store_vector_element %p, 0u, %197
+            %238:bool = load %x_243_phi
+            %x_243:bool = let %238
+            if %x_243 [t: $B30] {  # if_16
+              $B30: {  # true
+                %240:i32 = load %d
+                %x_246:i32 = let %240
+                %242:i32 = sub %x_246, 1i
+                store %d, %242
+                %243:i32 = load_vector_element %p, 0u
+                %x_249:i32 = let %243
+                %245:i32 = load_vector_element %p, 1u
+                %x_251:i32 = let %245
+                %247:i32 = mul %x_251, 16i
+                %248:i32 = add %x_249, %247
+                %249:ptr<private, i32, read_write> = access %map, %248
+                store %249, 1i
+                %250:i32 = load_vector_element %p, 0u
+                %x_256:i32 = let %250
+                %252:i32 = load_vector_element %p, 1u
+                %x_259:i32 = let %252
+                %254:i32 = sub %x_256, 1i
+                %255:i32 = mul %x_259, 16i
+                %256:i32 = add %254, %255
+                %257:ptr<private, i32, read_write> = access %map, %256
+                store %257, 1i
+                %258:i32 = load_vector_element %p, 0u
+                %x_264:i32 = let %258
+                %260:i32 = load_vector_element %p, 1u
+                %x_267:i32 = let %260
+                %262:i32 = sub %x_264, 2i
+                %263:i32 = mul %x_267, 16i
+                %264:i32 = add %262, %263
+                %265:ptr<private, i32, read_write> = access %map, %264
+                store %265, 1i
+                %266:i32 = load_vector_element %p, 0u
+                %x_272:i32 = let %266
+                %268:i32 = sub %x_272, 2i
+                store_vector_element %p, 0u, %268
                 exit_if  # if_16
               }
             }
-            %x_275:i32 = load %d
-            %x_276:bool = gte %x_275, 0i
+            %269:i32 = load %d
+            %x_275:i32 = let %269
+            %271:bool = gte %x_275, 0i
+            %x_276:bool = let %271
             store %x_282_phi, %x_276
-            if %x_276 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %x_280:i32 = load_vector_element %p, 1u
-                %201:bool = gt %x_280, 0i
-                store %x_281, %201
-                %202:bool = load %x_281
-                store %x_282_phi, %202
+            if %x_276 [t: $B31] {  # if_17
+              $B31: {  # true
+                %273:i32 = load_vector_element %p, 1u
+                %x_280:i32 = let %273
+                %275:bool = gt %x_280, 0i
+                store %x_281, %275
+                %276:bool = load %x_281
+                store %x_282_phi, %276
                 exit_if  # if_17
               }
             }
-            %x_282:bool = load %x_282_phi
-            if %x_282 [t: %b32, f: %b33] {  # if_18
-              %b32 = block {  # true
-                %204:i32 = load_vector_element %p, 0u
-                store %x_288, %204
-                %205:i32 = load %x_288
-                store %x_290_phi, %205
+            %277:bool = load %x_282_phi
+            %x_282:bool = let %277
+            if %x_282 [t: $B32, f: $B33] {  # if_18
+              $B32: {  # true
+                %279:i32 = load_vector_element %p, 0u
+                store %x_288, %279
+                %280:i32 = load %x_288
+                store %x_290_phi, %280
                 exit_if  # if_18
               }
-              %b33 = block {  # false
+              $B33: {  # false
                 store %x_289, 0i
-                %206:i32 = load %x_289
-                store %x_290_phi, %206
+                %281:i32 = load %x_289
+                store %x_290_phi, %281
                 exit_if  # if_18
               }
             }
-            %x_290:i32 = load %x_290_phi
-            if %x_282 [t: %b34, f: %b35] {  # if_19
-              %b34 = block {  # true
-                %208:i32 = load_vector_element %p, 1u
-                store %x_295, %208
-                %209:i32 = load %x_295
-                store %x_297_phi, %209
+            %282:i32 = load %x_290_phi
+            %x_290:i32 = let %282
+            if %x_282 [t: $B34, f: $B35] {  # if_19
+              $B34: {  # true
+                %284:i32 = load_vector_element %p, 1u
+                store %x_295, %284
+                %285:i32 = load %x_295
+                store %x_297_phi, %285
                 exit_if  # if_19
               }
-              %b35 = block {  # false
+              $B35: {  # false
                 store %x_296, 0i
-                %210:i32 = load %x_296
-                store %x_297_phi, %210
+                %286:i32 = load %x_296
+                store %x_297_phi, %286
                 exit_if  # if_19
               }
             }
-            %x_297:i32 = load %x_297_phi
-            %212:i32 = sub %x_297, 2i
-            %x_299:i32 = mul %212, 16i
-            if %x_282 [t: %b36, f: %b37] {  # if_20
-              %b36 = block {  # true
-                %214:array<i32, 256> = load %map
-                store %x_303, %214
-                %215:array<i32, 256> = load %x_303
-                store %x_305_phi, %215
+            %287:i32 = load %x_297_phi
+            %x_297:i32 = let %287
+            %289:i32 = sub %x_297, 2i
+            %290:i32 = mul %289, 16i
+            %x_299:i32 = let %290
+            if %x_282 [t: $B36, f: $B37] {  # if_20
+              $B36: {  # true
+                %292:array<i32, 256> = load %map
+                store %x_303, %292
+                %293:array<i32, 256> = load %x_303
+                store %x_305_phi, %293
                 exit_if  # if_20
               }
-              %b37 = block {  # false
+              $B37: {  # false
                 store %x_304, array<i32, 256>(0i)
-                %216:array<i32, 256> = load %x_304
-                store %x_305_phi, %216
+                %294:array<i32, 256> = load %x_304
+                store %x_305_phi, %294
                 exit_if  # if_20
               }
             }
-            %x_305:array<i32, 256> = load %x_305_phi
-            if %x_282 [t: %b38] {  # if_21
-              %b38 = block {  # true
+            %295:array<i32, 256> = load %x_305_phi
+            %x_305:array<i32, 256> = let %295
+            if %x_282 [t: $B38] {  # if_21
+              $B38: {  # true
                 store %map, array<i32, 256>(0i)
                 exit_if  # if_21
               }
             }
-            if %x_282 [t: %b39] {  # if_22
-              %b39 = block {  # true
+            if %x_282 [t: $B39] {  # if_22
+              $B39: {  # true
                 store %map, %x_305
                 exit_if  # if_22
               }
             }
-            if %x_282 [t: %b40, f: %b41] {  # if_23
-              %b40 = block {  # true
-                %218:i32 = add %x_290, %x_299
-                %219:ptr<private, i32, read_write> = access %map, %218
-                %220:i32 = load %219
-                store %x_315, %220
-                %221:i32 = load %x_315
-                store %x_317_phi, %221
+            if %x_282 [t: $B40, f: $B41] {  # if_23
+              $B40: {  # true
+                %297:i32 = add %x_290, %x_299
+                %298:ptr<private, i32, read_write> = access %map, %297
+                %299:i32 = load %298
+                store %x_315, %299
+                %300:i32 = load %x_315
+                store %x_317_phi, %300
                 exit_if  # if_23
               }
-              %b41 = block {  # false
+              $B41: {  # false
                 store %x_316, 0i
-                %222:i32 = load %x_316
-                store %x_317_phi, %222
+                %301:i32 = load %x_316
+                store %x_317_phi, %301
                 exit_if  # if_23
               }
             }
-            %x_317:i32 = load %x_317_phi
-            %x_318:bool = eq %x_317, 0i
-            %225:bool = select %x_282, %x_318, %x_282
-            if %225 [t: %b42] {  # if_24
-              %b42 = block {  # true
-                %x_323:i32 = load %d
-                %227:i32 = sub %x_323, 1i
-                store %d, %227
-                %x_326:i32 = load_vector_element %p, 0u
-                %x_328:i32 = load_vector_element %p, 1u
-                %230:i32 = mul %x_328, 16i
-                %231:i32 = add %x_326, %230
-                %232:ptr<private, i32, read_write> = access %map, %231
-                store %232, 1i
-                %x_333:i32 = load_vector_element %p, 0u
-                %x_335:i32 = load_vector_element %p, 1u
-                %235:i32 = sub %x_335, 1i
-                %236:i32 = mul %235, 16i
-                %237:i32 = add %x_333, %236
-                %238:ptr<private, i32, read_write> = access %map, %237
-                store %238, 1i
-                %x_341:i32 = load_vector_element %p, 0u
-                %x_343:i32 = load_vector_element %p, 1u
-                %x_345:array<i32, 256> = load %map
+            %302:i32 = load %x_317_phi
+            %x_317:i32 = let %302
+            %304:bool = eq %x_317, 0i
+            %x_318:bool = let %304
+            %306:bool = select %x_282, %x_318, %x_282
+            if %306 [t: $B42] {  # if_24
+              $B42: {  # true
+                %307:i32 = load %d
+                %x_323:i32 = let %307
+                %309:i32 = sub %x_323, 1i
+                store %d, %309
+                %310:i32 = load_vector_element %p, 0u
+                %x_326:i32 = let %310
+                %312:i32 = load_vector_element %p, 1u
+                %x_328:i32 = let %312
+                %314:i32 = mul %x_328, 16i
+                %315:i32 = add %x_326, %314
+                %316:ptr<private, i32, read_write> = access %map, %315
+                store %316, 1i
+                %317:i32 = load_vector_element %p, 0u
+                %x_333:i32 = let %317
+                %319:i32 = load_vector_element %p, 1u
+                %x_335:i32 = let %319
+                %321:i32 = sub %x_335, 1i
+                %322:i32 = mul %321, 16i
+                %323:i32 = add %x_333, %322
+                %324:ptr<private, i32, read_write> = access %map, %323
+                store %324, 1i
+                %325:i32 = load_vector_element %p, 0u
+                %x_341:i32 = let %325
+                %327:i32 = load_vector_element %p, 1u
+                %x_343:i32 = let %327
+                %329:array<i32, 256> = load %map
+                %x_345:array<i32, 256> = let %329
                 store %map, array<i32, 256>(0i)
                 store %map, %x_345
-                %242:i32 = sub %x_343, 2i
-                %243:i32 = mul %242, 16i
-                %244:i32 = add %x_341, %243
-                %245:ptr<private, i32, read_write> = access %map, %244
-                store %245, 1i
-                %x_350:i32 = load_vector_element %p, 1u
-                %247:i32 = sub %x_350, 2i
-                store_vector_element %p, 1u, %247
+                %331:i32 = sub %x_343, 2i
+                %332:i32 = mul %331, 16i
+                %333:i32 = add %x_341, %332
+                %334:ptr<private, i32, read_write> = access %map, %333
+                store %334, 1i
+                %335:i32 = load_vector_element %p, 1u
+                %x_350:i32 = let %335
+                %337:i32 = sub %x_350, 2i
+                store_vector_element %p, 1u, %337
                 exit_if  # if_24
               }
             }
-            %x_353:i32 = load %d
-            %x_354:bool = gte %x_353, 0i
+            %338:i32 = load %d
+            %x_353:i32 = let %338
+            %340:bool = gte %x_353, 0i
+            %x_354:bool = let %340
             store %x_360_phi, %x_354
-            if %x_354 [t: %b43] {  # if_25
-              %b43 = block {  # true
-                %x_358:i32 = load_vector_element %p, 0u
-                %251:bool = lt %x_358, 14i
-                store %x_359, %251
-                %252:bool = load %x_359
-                store %x_360_phi, %252
+            if %x_354 [t: $B43] {  # if_25
+              $B43: {  # true
+                %342:i32 = load_vector_element %p, 0u
+                %x_358:i32 = let %342
+                %344:bool = lt %x_358, 14i
+                store %x_359, %344
+                %345:bool = load %x_359
+                store %x_360_phi, %345
                 exit_if  # if_25
               }
             }
-            %x_360:bool = load %x_360_phi
+            %346:bool = load %x_360_phi
+            %x_360:bool = let %346
             store %x_373_phi, %x_360
-            if %x_360 [t: %b44] {  # if_26
-              %b44 = block {  # true
-                %x_364:i32 = load_vector_element %p, 0u
-                %x_367:i32 = load_vector_element %p, 1u
-                %256:i32 = add %x_364, 2i
-                %257:i32 = mul %x_367, 16i
-                %258:i32 = add %256, %257
-                %259:ptr<private, i32, read_write> = access %map, %258
-                %x_371:i32 = load %259
-                %261:bool = eq %x_371, 0i
-                store %x_372, %261
-                %262:bool = load %x_372
-                store %x_373_phi, %262
+            if %x_360 [t: $B44] {  # if_26
+              $B44: {  # true
+                %348:i32 = load_vector_element %p, 0u
+                %x_364:i32 = let %348
+                %350:i32 = load_vector_element %p, 1u
+                %x_367:i32 = let %350
+                %352:i32 = add %x_364, 2i
+                %353:i32 = mul %x_367, 16i
+                %354:i32 = add %352, %353
+                %355:ptr<private, i32, read_write> = access %map, %354
+                %356:i32 = load %355
+                %x_371:i32 = let %356
+                %358:bool = eq %x_371, 0i
+                store %x_372, %358
+                %359:bool = load %x_372
+                store %x_373_phi, %359
                 exit_if  # if_26
               }
             }
-            %x_373:bool = load %x_373_phi
-            if %x_373 [t: %b45] {  # if_27
-              %b45 = block {  # true
-                %x_376:i32 = load %d
-                %265:i32 = sub %x_376, 1i
-                store %d, %265
-                %x_379:i32 = load_vector_element %p, 0u
-                %x_381:i32 = load_vector_element %p, 1u
-                %268:i32 = mul %x_381, 16i
-                %269:i32 = add %x_379, %268
-                %270:ptr<private, i32, read_write> = access %map, %269
-                store %270, 1i
-                %x_386:i32 = load_vector_element %p, 0u
-                %x_389:i32 = load_vector_element %p, 1u
-                %273:i32 = add %x_386, 1i
-                %274:i32 = mul %x_389, 16i
-                %275:i32 = add %273, %274
-                %276:ptr<private, i32, read_write> = access %map, %275
-                store %276, 1i
-                %x_394:i32 = load_vector_element %p, 0u
-                %x_397:i32 = load_vector_element %p, 1u
-                %279:i32 = add %x_394, 2i
-                %280:i32 = mul %x_397, 16i
-                %281:i32 = add %279, %280
-                %282:ptr<private, i32, read_write> = access %map, %281
-                store %282, 1i
-                %x_402:i32 = load_vector_element %p, 0u
-                %284:i32 = add %x_402, 2i
-                store_vector_element %p, 0u, %284
+            %360:bool = load %x_373_phi
+            %x_373:bool = let %360
+            if %x_373 [t: $B45] {  # if_27
+              $B45: {  # true
+                %362:i32 = load %d
+                %x_376:i32 = let %362
+                %364:i32 = sub %x_376, 1i
+                store %d, %364
+                %365:i32 = load_vector_element %p, 0u
+                %x_379:i32 = let %365
+                %367:i32 = load_vector_element %p, 1u
+                %x_381:i32 = let %367
+                %369:i32 = mul %x_381, 16i
+                %370:i32 = add %x_379, %369
+                %371:ptr<private, i32, read_write> = access %map, %370
+                store %371, 1i
+                %372:i32 = load_vector_element %p, 0u
+                %x_386:i32 = let %372
+                %374:i32 = load_vector_element %p, 1u
+                %x_389:i32 = let %374
+                %376:i32 = add %x_386, 1i
+                %377:i32 = mul %x_389, 16i
+                %378:i32 = add %376, %377
+                %379:ptr<private, i32, read_write> = access %map, %378
+                store %379, 1i
+                %380:i32 = load_vector_element %p, 0u
+                %x_394:i32 = let %380
+                %382:i32 = load_vector_element %p, 1u
+                %x_397:i32 = let %382
+                %384:i32 = add %x_394, 2i
+                %385:i32 = mul %x_397, 16i
+                %386:i32 = add %384, %385
+                %387:ptr<private, i32, read_write> = access %map, %386
+                store %387, 1i
+                %388:i32 = load_vector_element %p, 0u
+                %x_402:i32 = let %388
+                %390:i32 = add %x_402, 2i
+                store_vector_element %p, 0u, %390
                 exit_if  # if_27
               }
             }
-            %x_405:i32 = load %d
-            %x_406:bool = gte %x_405, 0i
+            %391:i32 = load %d
+            %x_405:i32 = let %391
+            %393:bool = gte %x_405, 0i
+            %x_406:bool = let %393
             store %x_412_phi, %x_406
-            if %x_406 [t: %b46] {  # if_28
-              %b46 = block {  # true
-                %x_410:i32 = load_vector_element %p, 1u
-                %288:bool = lt %x_410, 14i
-                store %x_411, %288
-                %289:bool = load %x_411
-                store %x_412_phi, %289
+            if %x_406 [t: $B46] {  # if_28
+              $B46: {  # true
+                %395:i32 = load_vector_element %p, 1u
+                %x_410:i32 = let %395
+                %397:bool = lt %x_410, 14i
+                store %x_411, %397
+                %398:bool = load %x_411
+                store %x_412_phi, %398
                 exit_if  # if_28
               }
             }
-            %x_412:bool = load %x_412_phi
+            %399:bool = load %x_412_phi
+            %x_412:bool = let %399
             store %x_425_phi, %x_412
-            if %x_412 [t: %b47] {  # if_29
-              %b47 = block {  # true
-                %x_416:i32 = load_vector_element %p, 0u
-                %x_418:i32 = load_vector_element %p, 1u
-                %293:i32 = add %x_418, 2i
-                %294:i32 = mul %293, 16i
-                %295:i32 = add %x_416, %294
-                %296:ptr<private, i32, read_write> = access %map, %295
-                %x_423:i32 = load %296
-                %298:bool = eq %x_423, 0i
-                store %x_424, %298
-                %299:bool = load %x_424
-                store %x_425_phi, %299
+            if %x_412 [t: $B47] {  # if_29
+              $B47: {  # true
+                %401:i32 = load_vector_element %p, 0u
+                %x_416:i32 = let %401
+                %403:i32 = load_vector_element %p, 1u
+                %x_418:i32 = let %403
+                %405:i32 = add %x_418, 2i
+                %406:i32 = mul %405, 16i
+                %407:i32 = add %x_416, %406
+                %408:ptr<private, i32, read_write> = access %map, %407
+                %409:i32 = load %408
+                %x_423:i32 = let %409
+                %411:bool = eq %x_423, 0i
+                store %x_424, %411
+                %412:bool = load %x_424
+                store %x_425_phi, %412
                 exit_if  # if_29
               }
             }
-            %x_425:bool = load %x_425_phi
-            if %x_425 [t: %b48] {  # if_30
-              %b48 = block {  # true
-                %x_428:i32 = load %d
-                %302:i32 = sub %x_428, 1i
-                store %d, %302
-                %x_431:i32 = load_vector_element %p, 0u
-                %x_433:i32 = load_vector_element %p, 1u
-                %305:i32 = mul %x_433, 16i
-                %306:i32 = add %x_431, %305
-                %307:ptr<private, i32, read_write> = access %map, %306
-                store %307, 1i
-                %x_438:i32 = load_vector_element %p, 0u
-                %x_440:i32 = load_vector_element %p, 1u
-                %310:i32 = add %x_440, 1i
-                %311:i32 = mul %310, 16i
-                %312:i32 = add %x_438, %311
-                %313:ptr<private, i32, read_write> = access %map, %312
-                store %313, 1i
-                %x_446:i32 = load_vector_element %p, 0u
-                %x_448:i32 = load_vector_element %p, 1u
-                %316:i32 = add %x_448, 2i
-                %317:i32 = mul %316, 16i
-                %318:i32 = add %x_446, %317
-                %319:ptr<private, i32, read_write> = access %map, %318
-                store %319, 1i
-                %x_454:i32 = load_vector_element %p, 1u
-                %321:i32 = add %x_454, 2i
-                store_vector_element %p, 1u, %321
+            %413:bool = load %x_425_phi
+            %x_425:bool = let %413
+            if %x_425 [t: $B48] {  # if_30
+              $B48: {  # true
+                %415:i32 = load %d
+                %x_428:i32 = let %415
+                %417:i32 = sub %x_428, 1i
+                store %d, %417
+                %418:i32 = load_vector_element %p, 0u
+                %x_431:i32 = let %418
+                %420:i32 = load_vector_element %p, 1u
+                %x_433:i32 = let %420
+                %422:i32 = mul %x_433, 16i
+                %423:i32 = add %x_431, %422
+                %424:ptr<private, i32, read_write> = access %map, %423
+                store %424, 1i
+                %425:i32 = load_vector_element %p, 0u
+                %x_438:i32 = let %425
+                %427:i32 = load_vector_element %p, 1u
+                %x_440:i32 = let %427
+                %429:i32 = add %x_440, 1i
+                %430:i32 = mul %429, 16i
+                %431:i32 = add %x_438, %430
+                %432:ptr<private, i32, read_write> = access %map, %431
+                store %432, 1i
+                %433:i32 = load_vector_element %p, 0u
+                %x_446:i32 = let %433
+                %435:i32 = load_vector_element %p, 1u
+                %x_448:i32 = let %435
+                %437:i32 = add %x_448, 2i
+                %438:i32 = mul %437, 16i
+                %439:i32 = add %x_446, %438
+                %440:ptr<private, i32, read_write> = access %map, %439
+                store %440, 1i
+                %441:i32 = load_vector_element %p, 1u
+                %x_454:i32 = let %441
+                %443:i32 = add %x_454, 2i
+                store_vector_element %p, 1u, %443
                 exit_if  # if_30
               }
             }
             exit_if  # if_10
           }
         }
-        %x_458:i32 = load_vector_element %ipos, 1u
-        %x_461:i32 = load_vector_element %ipos, 0u
-        %324:i32 = mul %x_458, 16i
-        %325:i32 = add %324, %x_461
-        %326:ptr<private, i32, read_write> = access %map, %325
-        %x_464:i32 = load %326
-        %328:bool = eq %x_464, 1i
-        if %328 [t: %b49] {  # if_31
-          %b49 = block {  # true
+        %444:i32 = load_vector_element %ipos, 1u
+        %x_458:i32 = let %444
+        %446:i32 = load_vector_element %ipos, 0u
+        %x_461:i32 = let %446
+        %448:i32 = mul %x_458, 16i
+        %449:i32 = add %448, %x_461
+        %450:ptr<private, i32, read_write> = access %map, %449
+        %451:i32 = load %450
+        %x_464:i32 = let %451
+        %453:bool = eq %x_464, 1i
+        if %453 [t: $B49] {  # if_31
+          $B49: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_468:bool = load %canwalk
-        %330:bool = eq %x_468, false
-        break_if %330 %b7
+      $B8: {  # continuing
+        %454:bool = load %canwalk
+        %x_468:bool = let %454
+        %456:bool = eq %x_468, false
+        break_if %456  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b50 {
-  %b50 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B50: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %333:void = call %main_1
-    %334:vec4<f32> = load %x_GLF_color
-    %335:main_out = construct %334
-    ret %335
+    %459:void = call %main_1
+    %460:vec4<f32> = load %x_GLF_color
+    %461:main_out = construct %460
+    ret %461
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B51: {
+    %464:bool = eq %rhs, 0i
+    %465:bool = eq %lhs, -2147483648i
+    %466:bool = eq %rhs, -1i
+    %467:bool = and %465, %466
+    %468:bool = or %464, %467
+    %469:i32 = select %rhs, 1i, %468
+    %470:i32 = let %469
+    %471:i32 = div %lhs, %470
+    %472:i32 = mul %471, %470
+    %473:i32 = sub %lhs, %472
+    ret %473
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B52: {
+    %475:i32 = convert %value
+    %476:bool = gte %value, -2147483648.0f
+    %477:i32 = select -2147483648i, %475, %476
+    %478:bool = lte %value, 2147483520.0f
+    %479:i32 = select 2147483647i, %477, %478
+    ret %479
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.msl
index 5b39cf9..0a0497a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -34,42 +34,44 @@
     store %pos, %19
     %20:f32 = load_vector_element %pos, 0u
     %21:f32 = mul %20, 16.0f
-    %22:i32 = convert %21
-    %23:f32 = load_vector_element %pos, 1u
-    %24:f32 = mul %23, 16.0f
-    %25:i32 = convert %24
-    %26:vec2<i32> = construct %22, %25
-    store %ipos, %26
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = let %22
+    %25:f32 = load_vector_element %pos, 1u
+    %26:f32 = mul %25, 16.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:vec2<i32> = construct %24, %27
+    store %ipos, %28
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %27:i32 = load %i
-        %28:bool = lt %27, 256i
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %29:i32 = load %i
+        %30:bool = lt %29, 256i
+        if %30 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_80:i32 = load %i
-        %30:ptr<private, i32, read_write> = access %map, %x_80
-        store %30, 0i
-        continue %b4
-      }
-      %b4 = block {  # continuing
         %31:i32 = load %i
-        %32:i32 = add %31, 1i
-        store %i, %32
-        next_iteration %b3
+        %x_80:i32 = let %31
+        %33:ptr<private, i32, read_write> = access %map, %x_80
+        store %33, 0i
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %34:i32 = load %i
+        %35:i32 = add %34, 1i
+        store %i, %35
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_104:ptr<function, bool, read_write> = var
         %x_105:ptr<function, bool, read_write> = var
         %x_124:ptr<function, bool, read_write> = var
@@ -78,119 +80,123 @@
         %x_145:ptr<function, bool, read_write> = var
         %x_164:ptr<function, bool, read_write> = var
         %x_165:ptr<function, bool, read_write> = var
-        %41:i32 = load %v
-        %42:i32 = add %41, 1i
-        store %v, %42
+        %44:i32 = load %v
+        %45:i32 = add %44, 1i
+        store %v, %45
         store %directions, 0i
-        %43:i32 = load_vector_element %p, 0u
-        %x_92:bool = gt %43, 0i
+        %46:i32 = load_vector_element %p, 0u
+        %47:bool = gt %46, 0i
+        %x_92:bool = let %47
         store %x_105, %x_92
-        if %x_92 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %45:i32 = load_vector_element %p, 0u
-            %46:i32 = sub %45, 2i
-            %47:i32 = load_vector_element %p, 1u
-            %48:i32 = mul %47, 16i
-            %49:i32 = add %46, %48
-            %50:ptr<private, i32, read_write> = access %map, %49
-            %51:i32 = load %50
-            %52:bool = eq %51, 0i
-            store %x_104, %52
-            %53:bool = load %x_104
-            store %x_105, %53
+        if %x_92 [t: $B9] {  # if_2
+          $B9: {  # true
+            %49:i32 = load_vector_element %p, 0u
+            %50:i32 = sub %49, 2i
+            %51:i32 = load_vector_element %p, 1u
+            %52:i32 = mul %51, 16i
+            %53:i32 = add %50, %52
+            %54:ptr<private, i32, read_write> = access %map, %53
+            %55:i32 = load %54
+            %56:bool = eq %55, 0i
+            store %x_104, %56
+            %57:bool = load %x_104
+            store %x_105, %57
             exit_if  # if_2
           }
         }
-        %54:bool = load %x_105
-        if %54 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %55:i32 = load %directions
-            %56:i32 = add %55, 1i
-            store %directions, %56
+        %58:bool = load %x_105
+        if %58 [t: $B10] {  # if_3
+          $B10: {  # true
+            %59:i32 = load %directions
+            %60:i32 = add %59, 1i
+            store %directions, %60
             exit_if  # if_3
           }
         }
-        %57:i32 = load_vector_element %p, 1u
-        %x_112:bool = gt %57, 0i
+        %61:i32 = load_vector_element %p, 1u
+        %62:bool = gt %61, 0i
+        %x_112:bool = let %62
         store %x_125, %x_112
-        if %x_112 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %59:i32 = load_vector_element %p, 0u
-            %60:i32 = load_vector_element %p, 1u
-            %61:i32 = sub %60, 2i
-            %62:i32 = mul %61, 16i
-            %63:i32 = add %59, %62
-            %64:ptr<private, i32, read_write> = access %map, %63
-            %65:i32 = load %64
-            %66:bool = eq %65, 0i
-            store %x_124, %66
-            %67:bool = load %x_124
-            store %x_125, %67
+        if %x_112 [t: $B11] {  # if_4
+          $B11: {  # true
+            %64:i32 = load_vector_element %p, 0u
+            %65:i32 = load_vector_element %p, 1u
+            %66:i32 = sub %65, 2i
+            %67:i32 = mul %66, 16i
+            %68:i32 = add %64, %67
+            %69:ptr<private, i32, read_write> = access %map, %68
+            %70:i32 = load %69
+            %71:bool = eq %70, 0i
+            store %x_124, %71
+            %72:bool = load %x_124
+            store %x_125, %72
             exit_if  # if_4
           }
         }
-        %68:bool = load %x_125
-        if %68 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %69:i32 = load %directions
-            %70:i32 = add %69, 1i
-            store %directions, %70
+        %73:bool = load %x_125
+        if %73 [t: $B12] {  # if_5
+          $B12: {  # true
+            %74:i32 = load %directions
+            %75:i32 = add %74, 1i
+            store %directions, %75
             exit_if  # if_5
           }
         }
-        %71:i32 = load_vector_element %p, 0u
-        %x_132:bool = lt %71, 14i
+        %76:i32 = load_vector_element %p, 0u
+        %77:bool = lt %76, 14i
+        %x_132:bool = let %77
         store %x_145, %x_132
-        if %x_132 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %73:i32 = load_vector_element %p, 0u
-            %74:i32 = add %73, 2i
-            %75:i32 = load_vector_element %p, 1u
-            %76:i32 = mul %75, 16i
-            %77:i32 = add %74, %76
-            %78:ptr<private, i32, read_write> = access %map, %77
-            %79:i32 = load %78
-            %80:bool = eq %79, 0i
-            store %x_144, %80
-            %81:bool = load %x_144
-            store %x_145, %81
+        if %x_132 [t: $B13] {  # if_6
+          $B13: {  # true
+            %79:i32 = load_vector_element %p, 0u
+            %80:i32 = add %79, 2i
+            %81:i32 = load_vector_element %p, 1u
+            %82:i32 = mul %81, 16i
+            %83:i32 = add %80, %82
+            %84:ptr<private, i32, read_write> = access %map, %83
+            %85:i32 = load %84
+            %86:bool = eq %85, 0i
+            store %x_144, %86
+            %87:bool = load %x_144
+            store %x_145, %87
             exit_if  # if_6
           }
         }
-        %82:bool = load %x_145
-        if %82 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %83:i32 = load %directions
-            %84:i32 = add %83, 1i
-            store %directions, %84
+        %88:bool = load %x_145
+        if %88 [t: $B14] {  # if_7
+          $B14: {  # true
+            %89:i32 = load %directions
+            %90:i32 = add %89, 1i
+            store %directions, %90
             exit_if  # if_7
           }
         }
-        %85:i32 = load_vector_element %p, 1u
-        %x_152:bool = lt %85, 14i
+        %91:i32 = load_vector_element %p, 1u
+        %92:bool = lt %91, 14i
+        %x_152:bool = let %92
         store %x_165, %x_152
-        if %x_152 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %87:i32 = load_vector_element %p, 0u
-            %88:i32 = load_vector_element %p, 1u
-            %89:i32 = add %88, 2i
-            %90:i32 = mul %89, 16i
-            %91:i32 = add %87, %90
-            %92:ptr<private, i32, read_write> = access %map, %91
-            %93:i32 = load %92
-            %94:bool = eq %93, 0i
-            store %x_164, %94
-            %95:bool = load %x_164
-            store %x_165, %95
+        if %x_152 [t: $B15] {  # if_8
+          $B15: {  # true
+            %94:i32 = load_vector_element %p, 0u
+            %95:i32 = load_vector_element %p, 1u
+            %96:i32 = add %95, 2i
+            %97:i32 = mul %96, 16i
+            %98:i32 = add %94, %97
+            %99:ptr<private, i32, read_write> = access %map, %98
+            %100:i32 = load %99
+            %101:bool = eq %100, 0i
+            store %x_164, %101
+            %102:bool = load %x_164
+            store %x_165, %102
             exit_if  # if_8
           }
         }
-        %96:bool = load %x_165
-        if %96 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %97:i32 = load %directions
-            %98:i32 = add %97, 1i
-            store %directions, %98
+        %103:bool = load %x_165
+        if %103 [t: $B16] {  # if_9
+          $B16: {  # true
+            %104:i32 = load %directions
+            %105:i32 = add %104, 1i
+            store %directions, %105
             exit_if  # if_9
           }
         }
@@ -210,390 +216,450 @@
         %x_388:ptr<function, bool, read_write> = var
         %x_400:ptr<function, bool, read_write> = var
         %x_401:ptr<function, bool, read_write> = var
-        %115:i32 = load %directions
-        %116:bool = eq %115, 0i
-        if %116 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %122:i32 = load %directions
+        %123:bool = eq %122, 0i
+        if %123 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %117:i32 = load %i
-                %118:bool = lt %117, 8i
-                if %118 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %124:i32 = load %i
+                %125:bool = lt %124, 8i
+                if %125 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %119:i32 = load %j
-                    %120:bool = lt %119, 8i
-                    if %120 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %126:i32 = load %j
+                    %127:bool = lt %126, 8i
+                    if %127 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %121:i32 = load %j
-                    %122:i32 = mul %121, 2i
-                    %123:i32 = load %i
-                    %124:i32 = mul %123, 2i
-                    %125:i32 = mul %124, 16i
-                    %126:i32 = add %122, %125
-                    %127:ptr<private, i32, read_write> = access %map, %126
-                    %128:i32 = load %127
-                    %129:bool = eq %128, 0i
-                    if %129 [t: %b27] {  # if_13
-                      %b27 = block {  # true
-                        %130:i32 = load %j
-                        %131:i32 = mul %130, 2i
-                        store_vector_element %p, 0u, %131
-                        %132:i32 = load %i
-                        %133:i32 = mul %132, 2i
-                        store_vector_element %p, 1u, %133
+                    %128:i32 = load %j
+                    %129:i32 = mul %128, 2i
+                    %130:i32 = load %i
+                    %131:i32 = mul %130, 2i
+                    %132:i32 = mul %131, 16i
+                    %133:i32 = add %129, %132
+                    %134:ptr<private, i32, read_write> = access %map, %133
+                    %135:i32 = load %134
+                    %136:bool = eq %135, 0i
+                    if %136 [t: $B27] {  # if_13
+                      $B27: {  # true
+                        %137:i32 = load %j
+                        %138:i32 = mul %137, 2i
+                        store_vector_element %p, 0u, %138
+                        %139:i32 = load %i
+                        %140:i32 = mul %139, 2i
+                        store_vector_element %p, 1u, %140
                         store %canwalk, true
                         exit_if  # if_13
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %134:i32 = load %j
-                    %135:i32 = add %134, 1i
-                    store %j, %135
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %141:i32 = load %j
+                    %142:i32 = add %141, 1i
+                    store %j, %142
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %136:i32 = load %i
-                %137:i32 = add %136, 1i
-                store %i, %137
-                next_iteration %b19
+              $B20: {  # continuing
+                %143:i32 = load %i
+                %144:i32 = add %143, 1i
+                store %i, %144
+                next_iteration  # -> $B19
               }
             }
-            %x_211:i32 = load_vector_element %p, 0u
-            %x_213:i32 = load_vector_element %p, 1u
-            %140:i32 = mul %x_213, 16i
-            %141:i32 = add %x_211, %140
-            %142:ptr<private, i32, read_write> = access %map, %141
-            store %142, 1i
+            %145:i32 = load_vector_element %p, 0u
+            %x_211:i32 = let %145
+            %147:i32 = load_vector_element %p, 1u
+            %x_213:i32 = let %147
+            %149:i32 = mul %x_213, 16i
+            %150:i32 = add %x_211, %149
+            %151:ptr<private, i32, read_write> = access %map, %150
+            store %151, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %143:i32 = load %v
-            %144:i32 = load %directions
-            %145:i32 = mod %143, %144
-            store %d, %145
-            %146:i32 = load %v
-            %147:i32 = load %directions
-            %148:i32 = add %146, %147
-            store %v, %148
-            %149:i32 = load %d
-            %x_224:bool = gte %149, 0i
+          $B18: {  # false
+            %152:i32 = load %v
+            %153:i32 = load %directions
+            %154:i32 = call %tint_mod_i32, %152, %153
+            store %d, %154
+            %156:i32 = load %v
+            %157:i32 = load %directions
+            %158:i32 = add %156, %157
+            store %v, %158
+            %159:i32 = load %d
+            %160:bool = gte %159, 0i
+            %x_224:bool = let %160
             store %x_230, %x_224
-            if %x_224 [t: %b28] {  # if_14
-              %b28 = block {  # true
-                %151:i32 = load_vector_element %p, 0u
-                %152:bool = gt %151, 0i
-                store %x_229, %152
-                %153:bool = load %x_229
-                store %x_230, %153
+            if %x_224 [t: $B28] {  # if_14
+              $B28: {  # true
+                %162:i32 = load_vector_element %p, 0u
+                %163:bool = gt %162, 0i
+                store %x_229, %163
+                %164:bool = load %x_229
+                store %x_230, %164
                 exit_if  # if_14
               }
             }
-            %154:bool = load %x_230
-            store %x_243, %154
-            %155:bool = load %x_230
-            if %155 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %156:i32 = load_vector_element %p, 0u
-                %157:i32 = sub %156, 2i
-                %158:i32 = load_vector_element %p, 1u
-                %159:i32 = mul %158, 16i
-                %160:i32 = add %157, %159
-                %161:ptr<private, i32, read_write> = access %map, %160
-                %162:i32 = load %161
-                %163:bool = eq %162, 0i
-                store %x_242, %163
-                %164:bool = load %x_242
-                store %x_243, %164
+            %165:bool = load %x_230
+            store %x_243, %165
+            %166:bool = load %x_230
+            if %166 [t: $B29] {  # if_15
+              $B29: {  # true
+                %167:i32 = load_vector_element %p, 0u
+                %168:i32 = sub %167, 2i
+                %169:i32 = load_vector_element %p, 1u
+                %170:i32 = mul %169, 16i
+                %171:i32 = add %168, %170
+                %172:ptr<private, i32, read_write> = access %map, %171
+                %173:i32 = load %172
+                %174:bool = eq %173, 0i
+                store %x_242, %174
+                %175:bool = load %x_242
+                store %x_243, %175
                 exit_if  # if_15
               }
             }
-            %165:bool = load %x_243
-            if %165 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %166:i32 = load %d
-                %167:i32 = sub %166, 1i
-                store %d, %167
-                %x_249:i32 = load_vector_element %p, 0u
-                %x_251:i32 = load_vector_element %p, 1u
-                %170:i32 = mul %x_251, 16i
-                %171:i32 = add %x_249, %170
-                %172:ptr<private, i32, read_write> = access %map, %171
-                store %172, 1i
-                %x_256:i32 = load_vector_element %p, 0u
-                %x_259:i32 = load_vector_element %p, 1u
-                %175:i32 = sub %x_256, 1i
-                %176:i32 = mul %x_259, 16i
-                %177:i32 = add %175, %176
-                %178:ptr<private, i32, read_write> = access %map, %177
-                store %178, 1i
-                %x_264:i32 = load_vector_element %p, 0u
-                %x_267:i32 = load_vector_element %p, 1u
-                %181:i32 = sub %x_264, 2i
-                %182:i32 = mul %x_267, 16i
-                %183:i32 = add %181, %182
-                %184:ptr<private, i32, read_write> = access %map, %183
-                store %184, 1i
-                %185:i32 = load_vector_element %p, 0u
-                %186:i32 = sub %185, 2i
-                store_vector_element %p, 0u, %186
+            %176:bool = load %x_243
+            if %176 [t: $B30] {  # if_16
+              $B30: {  # true
+                %177:i32 = load %d
+                %178:i32 = sub %177, 1i
+                store %d, %178
+                %179:i32 = load_vector_element %p, 0u
+                %x_249:i32 = let %179
+                %181:i32 = load_vector_element %p, 1u
+                %x_251:i32 = let %181
+                %183:i32 = mul %x_251, 16i
+                %184:i32 = add %x_249, %183
+                %185:ptr<private, i32, read_write> = access %map, %184
+                store %185, 1i
+                %186:i32 = load_vector_element %p, 0u
+                %x_256:i32 = let %186
+                %188:i32 = load_vector_element %p, 1u
+                %x_259:i32 = let %188
+                %190:i32 = sub %x_256, 1i
+                %191:i32 = mul %x_259, 16i
+                %192:i32 = add %190, %191
+                %193:ptr<private, i32, read_write> = access %map, %192
+                store %193, 1i
+                %194:i32 = load_vector_element %p, 0u
+                %x_264:i32 = let %194
+                %196:i32 = load_vector_element %p, 1u
+                %x_267:i32 = let %196
+                %198:i32 = sub %x_264, 2i
+                %199:i32 = mul %x_267, 16i
+                %200:i32 = add %198, %199
+                %201:ptr<private, i32, read_write> = access %map, %200
+                store %201, 1i
+                %202:i32 = load_vector_element %p, 0u
+                %203:i32 = sub %202, 2i
+                store_vector_element %p, 0u, %203
                 exit_if  # if_16
               }
             }
-            %187:i32 = load %d
-            %x_276:bool = gte %187, 0i
+            %204:i32 = load %d
+            %205:bool = gte %204, 0i
+            %x_276:bool = let %205
             store %x_282, %x_276
-            if %x_276 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %189:i32 = load_vector_element %p, 1u
-                %190:bool = gt %189, 0i
-                store %x_281, %190
-                %191:bool = load %x_281
-                store %x_282, %191
+            if %x_276 [t: $B31] {  # if_17
+              $B31: {  # true
+                %207:i32 = load_vector_element %p, 1u
+                %208:bool = gt %207, 0i
+                store %x_281, %208
+                %209:bool = load %x_281
+                store %x_282, %209
                 exit_if  # if_17
               }
             }
-            %192:bool = load %x_282
-            store %x_296, %192
-            %193:bool = load %x_282
-            if %193 [t: %b32] {  # if_18
-              %b32 = block {  # true
-                %x_286:i32 = load_vector_element %p, 0u
-                %x_288:i32 = load_vector_element %p, 1u
-                %x_291:array<i32, 256> = load %map
+            %210:bool = load %x_282
+            store %x_296, %210
+            %211:bool = load %x_282
+            if %211 [t: $B32] {  # if_18
+              $B32: {  # true
+                %212:i32 = load_vector_element %p, 0u
+                %x_286:i32 = let %212
+                %214:i32 = load_vector_element %p, 1u
+                %x_288:i32 = let %214
+                %216:array<i32, 256> = load %map
+                %x_291:array<i32, 256> = let %216
                 store %map, array<i32, 256>(0i)
                 store %map, %x_291
-                %197:i32 = sub %x_288, 2i
-                %198:i32 = mul %197, 16i
-                %199:i32 = add %x_286, %198
-                %200:ptr<private, i32, read_write> = access %map, %199
-                %201:i32 = load %200
-                %202:bool = eq %201, 0i
-                store %x_295, %202
-                %203:bool = load %x_295
-                store %x_296, %203
+                %218:i32 = sub %x_288, 2i
+                %219:i32 = mul %218, 16i
+                %220:i32 = add %x_286, %219
+                %221:ptr<private, i32, read_write> = access %map, %220
+                %222:i32 = load %221
+                %223:bool = eq %222, 0i
+                store %x_295, %223
+                %224:bool = load %x_295
+                store %x_296, %224
                 exit_if  # if_18
               }
             }
-            %204:bool = load %x_296
-            if %204 [t: %b33] {  # if_19
-              %b33 = block {  # true
-                %205:i32 = load %d
-                %206:i32 = sub %205, 1i
-                store %d, %206
-                %x_302:i32 = load_vector_element %p, 0u
-                %x_304:i32 = load_vector_element %p, 1u
-                %209:i32 = mul %x_304, 16i
-                %210:i32 = add %x_302, %209
-                %211:ptr<private, i32, read_write> = access %map, %210
-                store %211, 1i
-                %x_309:i32 = load_vector_element %p, 0u
-                %x_311:i32 = load_vector_element %p, 1u
-                %214:i32 = sub %x_311, 1i
-                %215:i32 = mul %214, 16i
-                %216:i32 = add %x_309, %215
-                %217:ptr<private, i32, read_write> = access %map, %216
-                store %217, 1i
-                %x_317:i32 = load_vector_element %p, 0u
-                %x_319:i32 = load_vector_element %p, 1u
-                %x_321:array<i32, 256> = load %map
+            %225:bool = load %x_296
+            if %225 [t: $B33] {  # if_19
+              $B33: {  # true
+                %226:i32 = load %d
+                %227:i32 = sub %226, 1i
+                store %d, %227
+                %228:i32 = load_vector_element %p, 0u
+                %x_302:i32 = let %228
+                %230:i32 = load_vector_element %p, 1u
+                %x_304:i32 = let %230
+                %232:i32 = mul %x_304, 16i
+                %233:i32 = add %x_302, %232
+                %234:ptr<private, i32, read_write> = access %map, %233
+                store %234, 1i
+                %235:i32 = load_vector_element %p, 0u
+                %x_309:i32 = let %235
+                %237:i32 = load_vector_element %p, 1u
+                %x_311:i32 = let %237
+                %239:i32 = sub %x_311, 1i
+                %240:i32 = mul %239, 16i
+                %241:i32 = add %x_309, %240
+                %242:ptr<private, i32, read_write> = access %map, %241
+                store %242, 1i
+                %243:i32 = load_vector_element %p, 0u
+                %x_317:i32 = let %243
+                %245:i32 = load_vector_element %p, 1u
+                %x_319:i32 = let %245
+                %247:array<i32, 256> = load %map
+                %x_321:array<i32, 256> = let %247
                 store %map, array<i32, 256>(0i)
                 store %map, %x_321
-                %221:i32 = sub %x_319, 2i
-                %222:i32 = mul %221, 16i
-                %223:i32 = add %x_317, %222
-                %224:ptr<private, i32, read_write> = access %map, %223
-                store %224, 1i
-                %225:i32 = load_vector_element %p, 1u
-                %226:i32 = sub %225, 2i
-                store_vector_element %p, 1u, %226
+                %249:i32 = sub %x_319, 2i
+                %250:i32 = mul %249, 16i
+                %251:i32 = add %x_317, %250
+                %252:ptr<private, i32, read_write> = access %map, %251
+                store %252, 1i
+                %253:i32 = load_vector_element %p, 1u
+                %254:i32 = sub %253, 2i
+                store_vector_element %p, 1u, %254
                 exit_if  # if_19
               }
             }
-            %227:i32 = load %d
-            %x_330:bool = gte %227, 0i
+            %255:i32 = load %d
+            %256:bool = gte %255, 0i
+            %x_330:bool = let %256
             store %x_336, %x_330
-            if %x_330 [t: %b34] {  # if_20
-              %b34 = block {  # true
-                %229:i32 = load_vector_element %p, 0u
-                %230:bool = lt %229, 14i
-                store %x_335, %230
-                %231:bool = load %x_335
-                store %x_336, %231
+            if %x_330 [t: $B34] {  # if_20
+              $B34: {  # true
+                %258:i32 = load_vector_element %p, 0u
+                %259:bool = lt %258, 14i
+                store %x_335, %259
+                %260:bool = load %x_335
+                store %x_336, %260
                 exit_if  # if_20
               }
             }
-            %232:bool = load %x_336
-            store %x_349, %232
-            %233:bool = load %x_336
-            if %233 [t: %b35] {  # if_21
-              %b35 = block {  # true
-                %234:i32 = load_vector_element %p, 0u
-                %235:i32 = add %234, 2i
-                %236:i32 = load_vector_element %p, 1u
-                %237:i32 = mul %236, 16i
-                %238:i32 = add %235, %237
-                %239:ptr<private, i32, read_write> = access %map, %238
-                %240:i32 = load %239
-                %241:bool = eq %240, 0i
-                store %x_348, %241
-                %242:bool = load %x_348
-                store %x_349, %242
+            %261:bool = load %x_336
+            store %x_349, %261
+            %262:bool = load %x_336
+            if %262 [t: $B35] {  # if_21
+              $B35: {  # true
+                %263:i32 = load_vector_element %p, 0u
+                %264:i32 = add %263, 2i
+                %265:i32 = load_vector_element %p, 1u
+                %266:i32 = mul %265, 16i
+                %267:i32 = add %264, %266
+                %268:ptr<private, i32, read_write> = access %map, %267
+                %269:i32 = load %268
+                %270:bool = eq %269, 0i
+                store %x_348, %270
+                %271:bool = load %x_348
+                store %x_349, %271
                 exit_if  # if_21
               }
             }
-            %243:bool = load %x_349
-            if %243 [t: %b36] {  # if_22
-              %b36 = block {  # true
-                %244:i32 = load %d
-                %245:i32 = sub %244, 1i
-                store %d, %245
-                %x_355:i32 = load_vector_element %p, 0u
-                %x_357:i32 = load_vector_element %p, 1u
-                %248:i32 = mul %x_357, 16i
-                %249:i32 = add %x_355, %248
-                %250:ptr<private, i32, read_write> = access %map, %249
-                store %250, 1i
-                %x_362:i32 = load_vector_element %p, 0u
-                %x_365:i32 = load_vector_element %p, 1u
-                %253:i32 = add %x_362, 1i
-                %254:i32 = mul %x_365, 16i
-                %255:i32 = add %253, %254
-                %256:ptr<private, i32, read_write> = access %map, %255
-                store %256, 1i
-                %x_370:i32 = load_vector_element %p, 0u
-                %x_373:i32 = load_vector_element %p, 1u
-                %259:i32 = add %x_370, 2i
-                %260:i32 = mul %x_373, 16i
-                %261:i32 = add %259, %260
-                %262:ptr<private, i32, read_write> = access %map, %261
-                store %262, 1i
-                %263:i32 = load_vector_element %p, 0u
-                %264:i32 = add %263, 2i
-                store_vector_element %p, 0u, %264
+            %272:bool = load %x_349
+            if %272 [t: $B36] {  # if_22
+              $B36: {  # true
+                %273:i32 = load %d
+                %274:i32 = sub %273, 1i
+                store %d, %274
+                %275:i32 = load_vector_element %p, 0u
+                %x_355:i32 = let %275
+                %277:i32 = load_vector_element %p, 1u
+                %x_357:i32 = let %277
+                %279:i32 = mul %x_357, 16i
+                %280:i32 = add %x_355, %279
+                %281:ptr<private, i32, read_write> = access %map, %280
+                store %281, 1i
+                %282:i32 = load_vector_element %p, 0u
+                %x_362:i32 = let %282
+                %284:i32 = load_vector_element %p, 1u
+                %x_365:i32 = let %284
+                %286:i32 = add %x_362, 1i
+                %287:i32 = mul %x_365, 16i
+                %288:i32 = add %286, %287
+                %289:ptr<private, i32, read_write> = access %map, %288
+                store %289, 1i
+                %290:i32 = load_vector_element %p, 0u
+                %x_370:i32 = let %290
+                %292:i32 = load_vector_element %p, 1u
+                %x_373:i32 = let %292
+                %294:i32 = add %x_370, 2i
+                %295:i32 = mul %x_373, 16i
+                %296:i32 = add %294, %295
+                %297:ptr<private, i32, read_write> = access %map, %296
+                store %297, 1i
+                %298:i32 = load_vector_element %p, 0u
+                %299:i32 = add %298, 2i
+                store_vector_element %p, 0u, %299
                 exit_if  # if_22
               }
             }
-            %265:i32 = load %d
-            %x_382:bool = gte %265, 0i
+            %300:i32 = load %d
+            %301:bool = gte %300, 0i
+            %x_382:bool = let %301
             store %x_388, %x_382
-            if %x_382 [t: %b37] {  # if_23
-              %b37 = block {  # true
-                %267:i32 = load_vector_element %p, 1u
-                %268:bool = lt %267, 14i
-                store %x_387, %268
-                %269:bool = load %x_387
-                store %x_388, %269
+            if %x_382 [t: $B37] {  # if_23
+              $B37: {  # true
+                %303:i32 = load_vector_element %p, 1u
+                %304:bool = lt %303, 14i
+                store %x_387, %304
+                %305:bool = load %x_387
+                store %x_388, %305
                 exit_if  # if_23
               }
             }
-            %270:bool = load %x_388
-            store %x_401, %270
-            %271:bool = load %x_388
-            if %271 [t: %b38] {  # if_24
-              %b38 = block {  # true
-                %272:i32 = load_vector_element %p, 0u
-                %273:i32 = load_vector_element %p, 1u
-                %274:i32 = add %273, 2i
-                %275:i32 = mul %274, 16i
-                %276:i32 = add %272, %275
-                %277:ptr<private, i32, read_write> = access %map, %276
-                %278:i32 = load %277
-                %279:bool = eq %278, 0i
-                store %x_400, %279
-                %280:bool = load %x_400
-                store %x_401, %280
+            %306:bool = load %x_388
+            store %x_401, %306
+            %307:bool = load %x_388
+            if %307 [t: $B38] {  # if_24
+              $B38: {  # true
+                %308:i32 = load_vector_element %p, 0u
+                %309:i32 = load_vector_element %p, 1u
+                %310:i32 = add %309, 2i
+                %311:i32 = mul %310, 16i
+                %312:i32 = add %308, %311
+                %313:ptr<private, i32, read_write> = access %map, %312
+                %314:i32 = load %313
+                %315:bool = eq %314, 0i
+                store %x_400, %315
+                %316:bool = load %x_400
+                store %x_401, %316
                 exit_if  # if_24
               }
             }
-            %281:bool = load %x_401
-            if %281 [t: %b39] {  # if_25
-              %b39 = block {  # true
-                %282:i32 = load %d
-                %283:i32 = sub %282, 1i
-                store %d, %283
-                %x_407:i32 = load_vector_element %p, 0u
-                %x_409:i32 = load_vector_element %p, 1u
-                %286:i32 = mul %x_409, 16i
-                %287:i32 = add %x_407, %286
-                %288:ptr<private, i32, read_write> = access %map, %287
-                store %288, 1i
-                %x_414:i32 = load_vector_element %p, 0u
-                %x_416:i32 = load_vector_element %p, 1u
-                %291:i32 = add %x_416, 1i
-                %292:i32 = mul %291, 16i
-                %293:i32 = add %x_414, %292
-                %294:ptr<private, i32, read_write> = access %map, %293
-                store %294, 1i
-                %x_422:i32 = load_vector_element %p, 0u
-                %x_424:i32 = load_vector_element %p, 1u
-                %297:i32 = add %x_424, 2i
-                %298:i32 = mul %297, 16i
-                %299:i32 = add %x_422, %298
-                %300:ptr<private, i32, read_write> = access %map, %299
-                store %300, 1i
-                %301:i32 = load_vector_element %p, 1u
-                %302:i32 = add %301, 2i
-                store_vector_element %p, 1u, %302
+            %317:bool = load %x_401
+            if %317 [t: $B39] {  # if_25
+              $B39: {  # true
+                %318:i32 = load %d
+                %319:i32 = sub %318, 1i
+                store %d, %319
+                %320:i32 = load_vector_element %p, 0u
+                %x_407:i32 = let %320
+                %322:i32 = load_vector_element %p, 1u
+                %x_409:i32 = let %322
+                %324:i32 = mul %x_409, 16i
+                %325:i32 = add %x_407, %324
+                %326:ptr<private, i32, read_write> = access %map, %325
+                store %326, 1i
+                %327:i32 = load_vector_element %p, 0u
+                %x_414:i32 = let %327
+                %329:i32 = load_vector_element %p, 1u
+                %x_416:i32 = let %329
+                %331:i32 = add %x_416, 1i
+                %332:i32 = mul %331, 16i
+                %333:i32 = add %x_414, %332
+                %334:ptr<private, i32, read_write> = access %map, %333
+                store %334, 1i
+                %335:i32 = load_vector_element %p, 0u
+                %x_422:i32 = let %335
+                %337:i32 = load_vector_element %p, 1u
+                %x_424:i32 = let %337
+                %339:i32 = add %x_424, 2i
+                %340:i32 = mul %339, 16i
+                %341:i32 = add %x_422, %340
+                %342:ptr<private, i32, read_write> = access %map, %341
+                store %342, 1i
+                %343:i32 = load_vector_element %p, 1u
+                %344:i32 = add %343, 2i
+                store_vector_element %p, 1u, %344
                 exit_if  # if_25
               }
             }
             exit_if  # if_10
           }
         }
-        %303:i32 = load_vector_element %ipos, 1u
-        %304:i32 = mul %303, 16i
-        %305:i32 = load_vector_element %ipos, 0u
-        %306:i32 = add %304, %305
-        %307:ptr<private, i32, read_write> = access %map, %306
-        %308:i32 = load %307
-        %309:bool = eq %308, 1i
-        if %309 [t: %b40] {  # if_26
-          %b40 = block {  # true
+        %345:i32 = load_vector_element %ipos, 1u
+        %346:i32 = mul %345, 16i
+        %347:i32 = load_vector_element %ipos, 0u
+        %348:i32 = add %346, %347
+        %349:ptr<private, i32, read_write> = access %map, %348
+        %350:i32 = load %349
+        %351:bool = eq %350, 1i
+        if %351 [t: $B40] {  # if_26
+          $B40: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_444:bool = load %canwalk
-        %311:bool = eq %x_444, false
-        break_if %311 %b7
+      $B8: {  # continuing
+        %352:bool = load %canwalk
+        %x_444:bool = let %352
+        %354:bool = eq %x_444, false
+        break_if %354  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b41 {
-  %b41 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B41: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %314:void = call %main_1
-    %315:vec4<f32> = load %x_GLF_color
-    %316:main_out = construct %315
-    ret %316
+    %357:void = call %main_1
+    %358:vec4<f32> = load %x_GLF_color
+    %359:main_out = construct %358
+    ret %359
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B42: {
+    %362:bool = eq %rhs, 0i
+    %363:bool = eq %lhs, -2147483648i
+    %364:bool = eq %rhs, -1i
+    %365:bool = and %363, %364
+    %366:bool = or %362, %365
+    %367:i32 = select %rhs, 1i, %366
+    %368:i32 = let %367
+    %369:i32 = div %lhs, %368
+    %370:i32 = mul %369, %368
+    %371:i32 = sub %lhs, %370
+    ret %371
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B43: {
+    %373:i32 = convert %value
+    %374:bool = gte %value, -2147483648.0f
+    %375:i32 = select -2147483648i, %373, %374
+    %376:bool = lte %value, 2147483520.0f
+    %377:i32 = select 2147483647i, %375, %376
+    ret %377
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.msl
index 8bc1ff7..ebdc5e4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-maze-flatten-copy-composite/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,15 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %map:ptr<private, array<i32, 256>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
@@ -26,52 +26,60 @@
     %directions:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %d:ptr<function, i32, read_write> = var
-    %x_59:vec4<f32> = load %gl_FragCoord
-    %16:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_62:vec2<f32> = load %16
-    %18:f32 = access %x_59, 0u
-    %19:f32 = access %x_59, 1u
-    %20:vec2<f32> = construct %18, %19
-    %21:vec2<f32> = div %20, %x_62
-    store %pos, %21
-    %x_65:f32 = load_vector_element %pos, 0u
-    %x_69:f32 = load_vector_element %pos, 1u
-    %24:f32 = mul %x_65, 16.0f
-    %25:i32 = convert %24
-    %26:f32 = mul %x_69, 16.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %25, %27
-    store %ipos, %28
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_59:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %18:vec2<f32> = load %17
+    %x_62:vec2<f32> = let %18
+    %20:f32 = access %x_59, 0u
+    %21:f32 = access %x_59, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_62
+    store %pos, %23
+    %24:f32 = load_vector_element %pos, 0u
+    %x_65:f32 = let %24
+    %26:f32 = load_vector_element %pos, 1u
+    %x_69:f32 = let %26
+    %28:f32 = mul %x_65, 16.0f
+    %29:i32 = call %tint_f32_to_i32, %28
+    %31:i32 = let %29
+    %32:f32 = mul %x_69, 16.0f
+    %33:i32 = call %tint_f32_to_i32, %32
+    %34:vec2<i32> = construct %31, %33
+    store %ipos, %34
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_77:i32 = load %i
-        %30:bool = lt %x_77, 256i
-        if %30 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %35:i32 = load %i
+        %x_77:i32 = let %35
+        %37:bool = lt %x_77, 256i
+        if %37 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_80:i32 = load %i
-        %32:ptr<private, i32, read_write> = access %map, %x_80
-        store %32, 0i
-        continue %b4
+        %38:i32 = load %i
+        %x_80:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %map, %x_80
+        store %40, 0i
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_82:i32 = load %i
-        %34:i32 = add %x_82, 1i
-        store %i, %34
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %i
+        %x_82:i32 = let %41
+        %43:i32 = add %x_82, 1i
+        store %i, %43
+        next_iteration  # -> $B3
       }
     }
     store %p, vec2<i32>(0i)
     store %canwalk, true
     store %v, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_104:ptr<function, bool, read_write> = var
         %x_124:ptr<function, bool, read_write> = var
         %x_144:ptr<function, bool, read_write> = var
@@ -80,119 +88,148 @@
         %x_125_phi:ptr<function, bool, read_write> = var
         %x_145_phi:ptr<function, bool, read_write> = var
         %x_165_phi:ptr<function, bool, read_write> = var
-        %x_88:i32 = load %v
-        %44:i32 = add %x_88, 1i
-        store %v, %44
+        %52:i32 = load %v
+        %x_88:i32 = let %52
+        %54:i32 = add %x_88, 1i
+        store %v, %54
         store %directions, 0i
-        %x_91:i32 = load_vector_element %p, 0u
-        %x_92:bool = gt %x_91, 0i
+        %55:i32 = load_vector_element %p, 0u
+        %x_91:i32 = let %55
+        %57:bool = gt %x_91, 0i
+        %x_92:bool = let %57
         store %x_105_phi, %x_92
-        if %x_92 [t: %b9] {  # if_2
-          %b9 = block {  # true
-            %x_96:i32 = load_vector_element %p, 0u
-            %x_99:i32 = load_vector_element %p, 1u
-            %49:i32 = sub %x_96, 2i
-            %50:i32 = mul %x_99, 16i
-            %51:i32 = add %49, %50
-            %52:ptr<private, i32, read_write> = access %map, %51
-            %x_103:i32 = load %52
-            %54:bool = eq %x_103, 0i
-            store %x_104, %54
-            %55:bool = load %x_104
-            store %x_105_phi, %55
+        if %x_92 [t: $B9] {  # if_2
+          $B9: {  # true
+            %59:i32 = load_vector_element %p, 0u
+            %x_96:i32 = let %59
+            %61:i32 = load_vector_element %p, 1u
+            %x_99:i32 = let %61
+            %63:i32 = sub %x_96, 2i
+            %64:i32 = mul %x_99, 16i
+            %65:i32 = add %63, %64
+            %66:ptr<private, i32, read_write> = access %map, %65
+            %67:i32 = load %66
+            %x_103:i32 = let %67
+            %69:bool = eq %x_103, 0i
+            store %x_104, %69
+            %70:bool = load %x_104
+            store %x_105_phi, %70
             exit_if  # if_2
           }
         }
-        %x_105:bool = load %x_105_phi
-        if %x_105 [t: %b10] {  # if_3
-          %b10 = block {  # true
-            %x_108:i32 = load %directions
-            %58:i32 = add %x_108, 1i
-            store %directions, %58
+        %71:bool = load %x_105_phi
+        %x_105:bool = let %71
+        if %x_105 [t: $B10] {  # if_3
+          $B10: {  # true
+            %73:i32 = load %directions
+            %x_108:i32 = let %73
+            %75:i32 = add %x_108, 1i
+            store %directions, %75
             exit_if  # if_3
           }
         }
-        %x_111:i32 = load_vector_element %p, 1u
-        %x_112:bool = gt %x_111, 0i
+        %76:i32 = load_vector_element %p, 1u
+        %x_111:i32 = let %76
+        %78:bool = gt %x_111, 0i
+        %x_112:bool = let %78
         store %x_125_phi, %x_112
-        if %x_112 [t: %b11] {  # if_4
-          %b11 = block {  # true
-            %x_116:i32 = load_vector_element %p, 0u
-            %x_118:i32 = load_vector_element %p, 1u
-            %63:i32 = sub %x_118, 2i
-            %64:i32 = mul %63, 16i
-            %65:i32 = add %x_116, %64
-            %66:ptr<private, i32, read_write> = access %map, %65
-            %x_123:i32 = load %66
-            %68:bool = eq %x_123, 0i
-            store %x_124, %68
-            %69:bool = load %x_124
-            store %x_125_phi, %69
+        if %x_112 [t: $B11] {  # if_4
+          $B11: {  # true
+            %80:i32 = load_vector_element %p, 0u
+            %x_116:i32 = let %80
+            %82:i32 = load_vector_element %p, 1u
+            %x_118:i32 = let %82
+            %84:i32 = sub %x_118, 2i
+            %85:i32 = mul %84, 16i
+            %86:i32 = add %x_116, %85
+            %87:ptr<private, i32, read_write> = access %map, %86
+            %88:i32 = load %87
+            %x_123:i32 = let %88
+            %90:bool = eq %x_123, 0i
+            store %x_124, %90
+            %91:bool = load %x_124
+            store %x_125_phi, %91
             exit_if  # if_4
           }
         }
-        %x_125:bool = load %x_125_phi
-        if %x_125 [t: %b12] {  # if_5
-          %b12 = block {  # true
-            %x_128:i32 = load %directions
-            %72:i32 = add %x_128, 1i
-            store %directions, %72
+        %92:bool = load %x_125_phi
+        %x_125:bool = let %92
+        if %x_125 [t: $B12] {  # if_5
+          $B12: {  # true
+            %94:i32 = load %directions
+            %x_128:i32 = let %94
+            %96:i32 = add %x_128, 1i
+            store %directions, %96
             exit_if  # if_5
           }
         }
-        %x_131:i32 = load_vector_element %p, 0u
-        %x_132:bool = lt %x_131, 14i
+        %97:i32 = load_vector_element %p, 0u
+        %x_131:i32 = let %97
+        %99:bool = lt %x_131, 14i
+        %x_132:bool = let %99
         store %x_145_phi, %x_132
-        if %x_132 [t: %b13] {  # if_6
-          %b13 = block {  # true
-            %x_136:i32 = load_vector_element %p, 0u
-            %x_139:i32 = load_vector_element %p, 1u
-            %77:i32 = add %x_136, 2i
-            %78:i32 = mul %x_139, 16i
-            %79:i32 = add %77, %78
-            %80:ptr<private, i32, read_write> = access %map, %79
-            %x_143:i32 = load %80
-            %82:bool = eq %x_143, 0i
-            store %x_144, %82
-            %83:bool = load %x_144
-            store %x_145_phi, %83
+        if %x_132 [t: $B13] {  # if_6
+          $B13: {  # true
+            %101:i32 = load_vector_element %p, 0u
+            %x_136:i32 = let %101
+            %103:i32 = load_vector_element %p, 1u
+            %x_139:i32 = let %103
+            %105:i32 = add %x_136, 2i
+            %106:i32 = mul %x_139, 16i
+            %107:i32 = add %105, %106
+            %108:ptr<private, i32, read_write> = access %map, %107
+            %109:i32 = load %108
+            %x_143:i32 = let %109
+            %111:bool = eq %x_143, 0i
+            store %x_144, %111
+            %112:bool = load %x_144
+            store %x_145_phi, %112
             exit_if  # if_6
           }
         }
-        %x_145:bool = load %x_145_phi
-        if %x_145 [t: %b14] {  # if_7
-          %b14 = block {  # true
-            %x_148:i32 = load %directions
-            %86:i32 = add %x_148, 1i
-            store %directions, %86
+        %113:bool = load %x_145_phi
+        %x_145:bool = let %113
+        if %x_145 [t: $B14] {  # if_7
+          $B14: {  # true
+            %115:i32 = load %directions
+            %x_148:i32 = let %115
+            %117:i32 = add %x_148, 1i
+            store %directions, %117
             exit_if  # if_7
           }
         }
-        %x_151:i32 = load_vector_element %p, 1u
-        %x_152:bool = lt %x_151, 14i
+        %118:i32 = load_vector_element %p, 1u
+        %x_151:i32 = let %118
+        %120:bool = lt %x_151, 14i
+        %x_152:bool = let %120
         store %x_165_phi, %x_152
-        if %x_152 [t: %b15] {  # if_8
-          %b15 = block {  # true
-            %x_156:i32 = load_vector_element %p, 0u
-            %x_158:i32 = load_vector_element %p, 1u
-            %91:i32 = add %x_158, 2i
-            %92:i32 = mul %91, 16i
-            %93:i32 = add %x_156, %92
-            %94:ptr<private, i32, read_write> = access %map, %93
-            %x_163:i32 = load %94
-            %96:bool = eq %x_163, 0i
-            store %x_164, %96
-            %97:bool = load %x_164
-            store %x_165_phi, %97
+        if %x_152 [t: $B15] {  # if_8
+          $B15: {  # true
+            %122:i32 = load_vector_element %p, 0u
+            %x_156:i32 = let %122
+            %124:i32 = load_vector_element %p, 1u
+            %x_158:i32 = let %124
+            %126:i32 = add %x_158, 2i
+            %127:i32 = mul %126, 16i
+            %128:i32 = add %x_156, %127
+            %129:ptr<private, i32, read_write> = access %map, %128
+            %130:i32 = load %129
+            %x_163:i32 = let %130
+            %132:bool = eq %x_163, 0i
+            store %x_164, %132
+            %133:bool = load %x_164
+            store %x_165_phi, %133
             exit_if  # if_8
           }
         }
-        %x_165:bool = load %x_165_phi
-        if %x_165 [t: %b16] {  # if_9
-          %b16 = block {  # true
-            %x_168:i32 = load %directions
-            %100:i32 = add %x_168, 1i
-            store %directions, %100
+        %134:bool = load %x_165_phi
+        %x_165:bool = let %134
+        if %x_165 [t: $B16] {  # if_9
+          $B16: {  # true
+            %136:i32 = load %directions
+            %x_168:i32 = let %136
+            %138:i32 = add %x_168, 1i
+            store %directions, %138
             exit_if  # if_9
           }
         }
@@ -212,386 +249,497 @@
         %x_349_phi:ptr<function, bool, read_write> = var
         %x_388_phi:ptr<function, bool, read_write> = var
         %x_401_phi:ptr<function, bool, read_write> = var
-        %x_170:i32 = load %directions
-        %118:bool = eq %x_170, 0i
-        if %118 [t: %b17, f: %b18] {  # if_10
-          %b17 = block {  # true
+        %155:i32 = load %directions
+        %x_170:i32 = let %155
+        %157:bool = eq %x_170, 0i
+        if %157 [t: $B17, f: $B18] {  # if_10
+          $B17: {  # true
             store %canwalk, false
             store %i, 0i
-            loop [b: %b19, c: %b20] {  # loop_3
-              %b19 = block {  # body
-                %x_179:i32 = load %i
-                %120:bool = lt %x_179, 8i
-                if %120 [t: %b21, f: %b22] {  # if_11
-                  %b21 = block {  # true
+            loop [b: $B19, c: $B20] {  # loop_3
+              $B19: {  # body
+                %158:i32 = load %i
+                %x_179:i32 = let %158
+                %160:bool = lt %x_179, 8i
+                if %160 [t: $B21, f: $B22] {  # if_11
+                  $B21: {  # true
                     exit_if  # if_11
                   }
-                  %b22 = block {  # false
+                  $B22: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %j, 0i
-                loop [b: %b23, c: %b24] {  # loop_4
-                  %b23 = block {  # body
-                    %x_186:i32 = load %j
-                    %122:bool = lt %x_186, 8i
-                    if %122 [t: %b25, f: %b26] {  # if_12
-                      %b25 = block {  # true
+                loop [b: $B23, c: $B24] {  # loop_4
+                  $B23: {  # body
+                    %161:i32 = load %j
+                    %x_186:i32 = let %161
+                    %163:bool = lt %x_186, 8i
+                    if %163 [t: $B25, f: $B26] {  # if_12
+                      $B25: {  # true
                         exit_if  # if_12
                       }
-                      %b26 = block {  # false
+                      $B26: {  # false
                         exit_loop  # loop_4
                       }
                     }
-                    %x_189:i32 = load %j
-                    %x_191:i32 = load %i
-                    %125:i32 = mul %x_189, 2i
-                    %126:i32 = mul %x_191, 2i
-                    %127:i32 = mul %126, 16i
-                    %128:i32 = add %125, %127
-                    %129:ptr<private, i32, read_write> = access %map, %128
-                    %x_196:i32 = load %129
-                    %131:bool = eq %x_196, 0i
-                    if %131 [t: %b27] {  # if_13
-                      %b27 = block {  # true
-                        %x_200:i32 = load %j
-                        %133:i32 = mul %x_200, 2i
-                        store_vector_element %p, 0u, %133
-                        %x_203:i32 = load %i
-                        %135:i32 = mul %x_203, 2i
-                        store_vector_element %p, 1u, %135
+                    %164:i32 = load %j
+                    %x_189:i32 = let %164
+                    %166:i32 = load %i
+                    %x_191:i32 = let %166
+                    %168:i32 = mul %x_189, 2i
+                    %169:i32 = mul %x_191, 2i
+                    %170:i32 = mul %169, 16i
+                    %171:i32 = add %168, %170
+                    %172:ptr<private, i32, read_write> = access %map, %171
+                    %173:i32 = load %172
+                    %x_196:i32 = let %173
+                    %175:bool = eq %x_196, 0i
+                    if %175 [t: $B27] {  # if_13
+                      $B27: {  # true
+                        %176:i32 = load %j
+                        %x_200:i32 = let %176
+                        %178:i32 = mul %x_200, 2i
+                        store_vector_element %p, 0u, %178
+                        %179:i32 = load %i
+                        %x_203:i32 = let %179
+                        %181:i32 = mul %x_203, 2i
+                        store_vector_element %p, 1u, %181
                         store %canwalk, true
                         exit_if  # if_13
                       }
                     }
-                    continue %b24
+                    continue  # -> $B24
                   }
-                  %b24 = block {  # continuing
-                    %x_206:i32 = load %j
-                    %137:i32 = add %x_206, 1i
-                    store %j, %137
-                    next_iteration %b23
+                  $B24: {  # continuing
+                    %182:i32 = load %j
+                    %x_206:i32 = let %182
+                    %184:i32 = add %x_206, 1i
+                    store %j, %184
+                    next_iteration  # -> $B23
                   }
                 }
-                continue %b20
+                continue  # -> $B20
               }
-              %b20 = block {  # continuing
-                %x_208:i32 = load %i
-                %139:i32 = add %x_208, 1i
-                store %i, %139
-                next_iteration %b19
+              $B20: {  # continuing
+                %185:i32 = load %i
+                %x_208:i32 = let %185
+                %187:i32 = add %x_208, 1i
+                store %i, %187
+                next_iteration  # -> $B19
               }
             }
-            %x_211:i32 = load_vector_element %p, 0u
-            %x_213:i32 = load_vector_element %p, 1u
-            %142:i32 = mul %x_213, 16i
-            %143:i32 = add %x_211, %142
-            %144:ptr<private, i32, read_write> = access %map, %143
-            store %144, 1i
+            %188:i32 = load_vector_element %p, 0u
+            %x_211:i32 = let %188
+            %190:i32 = load_vector_element %p, 1u
+            %x_213:i32 = let %190
+            %192:i32 = mul %x_213, 16i
+            %193:i32 = add %x_211, %192
+            %194:ptr<private, i32, read_write> = access %map, %193
+            store %194, 1i
             exit_if  # if_10
           }
-          %b18 = block {  # false
-            %x_217:i32 = load %v
-            %x_218:i32 = load %directions
-            %147:i32 = mod %x_217, %x_218
-            store %d, %147
-            %x_220:i32 = load %directions
-            %x_221:i32 = load %v
-            %150:i32 = add %x_221, %x_220
-            store %v, %150
-            %x_223:i32 = load %d
-            %x_224:bool = gte %x_223, 0i
+          $B18: {  # false
+            %195:i32 = load %v
+            %x_217:i32 = let %195
+            %197:i32 = load %directions
+            %x_218:i32 = let %197
+            %199:i32 = call %tint_mod_i32, %x_217, %x_218
+            store %d, %199
+            %201:i32 = load %directions
+            %x_220:i32 = let %201
+            %203:i32 = load %v
+            %x_221:i32 = let %203
+            %205:i32 = add %x_221, %x_220
+            store %v, %205
+            %206:i32 = load %d
+            %x_223:i32 = let %206
+            %208:bool = gte %x_223, 0i
+            %x_224:bool = let %208
             store %x_230_phi, %x_224
-            if %x_224 [t: %b28] {  # if_14
-              %b28 = block {  # true
-                %x_228:i32 = load_vector_element %p, 0u
-                %154:bool = gt %x_228, 0i
-                store %x_229, %154
-                %155:bool = load %x_229
-                store %x_230_phi, %155
+            if %x_224 [t: $B28] {  # if_14
+              $B28: {  # true
+                %210:i32 = load_vector_element %p, 0u
+                %x_228:i32 = let %210
+                %212:bool = gt %x_228, 0i
+                store %x_229, %212
+                %213:bool = load %x_229
+                store %x_230_phi, %213
                 exit_if  # if_14
               }
             }
-            %x_230:bool = load %x_230_phi
+            %214:bool = load %x_230_phi
+            %x_230:bool = let %214
             store %x_243_phi, %x_230
-            if %x_230 [t: %b29] {  # if_15
-              %b29 = block {  # true
-                %x_234:i32 = load_vector_element %p, 0u
-                %x_237:i32 = load_vector_element %p, 1u
-                %159:i32 = sub %x_234, 2i
-                %160:i32 = mul %x_237, 16i
-                %161:i32 = add %159, %160
-                %162:ptr<private, i32, read_write> = access %map, %161
-                %x_241:i32 = load %162
-                %164:bool = eq %x_241, 0i
-                store %x_242, %164
-                %165:bool = load %x_242
-                store %x_243_phi, %165
+            if %x_230 [t: $B29] {  # if_15
+              $B29: {  # true
+                %216:i32 = load_vector_element %p, 0u
+                %x_234:i32 = let %216
+                %218:i32 = load_vector_element %p, 1u
+                %x_237:i32 = let %218
+                %220:i32 = sub %x_234, 2i
+                %221:i32 = mul %x_237, 16i
+                %222:i32 = add %220, %221
+                %223:ptr<private, i32, read_write> = access %map, %222
+                %224:i32 = load %223
+                %x_241:i32 = let %224
+                %226:bool = eq %x_241, 0i
+                store %x_242, %226
+                %227:bool = load %x_242
+                store %x_243_phi, %227
                 exit_if  # if_15
               }
             }
-            %x_243:bool = load %x_243_phi
-            if %x_243 [t: %b30] {  # if_16
-              %b30 = block {  # true
-                %x_246:i32 = load %d
-                %168:i32 = sub %x_246, 1i
-                store %d, %168
-                %x_249:i32 = load_vector_element %p, 0u
-                %x_251:i32 = load_vector_element %p, 1u
-                %171:i32 = mul %x_251, 16i
-                %172:i32 = add %x_249, %171
-                %173:ptr<private, i32, read_write> = access %map, %172
-                store %173, 1i
-                %x_256:i32 = load_vector_element %p, 0u
-                %x_259:i32 = load_vector_element %p, 1u
-                %176:i32 = sub %x_256, 1i
-                %177:i32 = mul %x_259, 16i
-                %178:i32 = add %176, %177
-                %179:ptr<private, i32, read_write> = access %map, %178
-                store %179, 1i
-                %x_264:i32 = load_vector_element %p, 0u
-                %x_267:i32 = load_vector_element %p, 1u
-                %182:i32 = sub %x_264, 2i
-                %183:i32 = mul %x_267, 16i
-                %184:i32 = add %182, %183
-                %185:ptr<private, i32, read_write> = access %map, %184
-                store %185, 1i
-                %x_272:i32 = load_vector_element %p, 0u
-                %187:i32 = sub %x_272, 2i
-                store_vector_element %p, 0u, %187
-                exit_if  # if_16
-              }
-            }
-            %x_275:i32 = load %d
-            %x_276:bool = gte %x_275, 0i
-            store %x_282_phi, %x_276
-            if %x_276 [t: %b31] {  # if_17
-              %b31 = block {  # true
-                %x_280:i32 = load_vector_element %p, 1u
-                %191:bool = gt %x_280, 0i
-                store %x_281, %191
-                %192:bool = load %x_281
-                store %x_282_phi, %192
-                exit_if  # if_17
-              }
-            }
-            %x_282:bool = load %x_282_phi
-            store %x_296_phi, %x_282
-            if %x_282 [t: %b32] {  # if_18
-              %b32 = block {  # true
-                %x_286:i32 = load_vector_element %p, 0u
-                %x_288:i32 = load_vector_element %p, 1u
-                %x_291:array<i32, 256> = load %map
-                store %map, array<i32, 256>(0i)
-                store %map, %x_291
-                %197:i32 = sub %x_288, 2i
-                %198:i32 = mul %197, 16i
-                %199:i32 = add %x_286, %198
-                %200:ptr<private, i32, read_write> = access %map, %199
-                %x_294:i32 = load %200
-                %202:bool = eq %x_294, 0i
-                store %x_295, %202
-                %203:bool = load %x_295
-                store %x_296_phi, %203
-                exit_if  # if_18
-              }
-            }
-            %x_296:bool = load %x_296_phi
-            if %x_296 [t: %b33] {  # if_19
-              %b33 = block {  # true
-                %x_299:i32 = load %d
-                %206:i32 = sub %x_299, 1i
-                store %d, %206
-                %x_302:i32 = load_vector_element %p, 0u
-                %x_304:i32 = load_vector_element %p, 1u
-                %209:i32 = mul %x_304, 16i
-                %210:i32 = add %x_302, %209
-                %211:ptr<private, i32, read_write> = access %map, %210
-                store %211, 1i
-                %x_309:i32 = load_vector_element %p, 0u
-                %x_311:i32 = load_vector_element %p, 1u
-                %214:i32 = sub %x_311, 1i
-                %215:i32 = mul %214, 16i
-                %216:i32 = add %x_309, %215
-                %217:ptr<private, i32, read_write> = access %map, %216
-                store %217, 1i
-                %x_317:i32 = load_vector_element %p, 0u
-                %x_319:i32 = load_vector_element %p, 1u
-                %x_321:array<i32, 256> = load %map
-                store %map, array<i32, 256>(0i)
-                store %map, %x_321
-                %221:i32 = sub %x_319, 2i
-                %222:i32 = mul %221, 16i
-                %223:i32 = add %x_317, %222
-                %224:ptr<private, i32, read_write> = access %map, %223
-                store %224, 1i
-                %x_326:i32 = load_vector_element %p, 1u
-                %226:i32 = sub %x_326, 2i
-                store_vector_element %p, 1u, %226
-                exit_if  # if_19
-              }
-            }
-            %x_329:i32 = load %d
-            %x_330:bool = gte %x_329, 0i
-            store %x_336_phi, %x_330
-            if %x_330 [t: %b34] {  # if_20
-              %b34 = block {  # true
-                %x_334:i32 = load_vector_element %p, 0u
-                %230:bool = lt %x_334, 14i
-                store %x_335, %230
-                %231:bool = load %x_335
-                store %x_336_phi, %231
-                exit_if  # if_20
-              }
-            }
-            %x_336:bool = load %x_336_phi
-            store %x_349_phi, %x_336
-            if %x_336 [t: %b35] {  # if_21
-              %b35 = block {  # true
-                %x_340:i32 = load_vector_element %p, 0u
-                %x_343:i32 = load_vector_element %p, 1u
-                %235:i32 = add %x_340, 2i
-                %236:i32 = mul %x_343, 16i
-                %237:i32 = add %235, %236
-                %238:ptr<private, i32, read_write> = access %map, %237
-                %x_347:i32 = load %238
-                %240:bool = eq %x_347, 0i
-                store %x_348, %240
-                %241:bool = load %x_348
-                store %x_349_phi, %241
-                exit_if  # if_21
-              }
-            }
-            %x_349:bool = load %x_349_phi
-            if %x_349 [t: %b36] {  # if_22
-              %b36 = block {  # true
-                %x_352:i32 = load %d
-                %244:i32 = sub %x_352, 1i
-                store %d, %244
-                %x_355:i32 = load_vector_element %p, 0u
-                %x_357:i32 = load_vector_element %p, 1u
-                %247:i32 = mul %x_357, 16i
-                %248:i32 = add %x_355, %247
-                %249:ptr<private, i32, read_write> = access %map, %248
-                store %249, 1i
-                %x_362:i32 = load_vector_element %p, 0u
-                %x_365:i32 = load_vector_element %p, 1u
-                %252:i32 = add %x_362, 1i
-                %253:i32 = mul %x_365, 16i
+            %228:bool = load %x_243_phi
+            %x_243:bool = let %228
+            if %x_243 [t: $B30] {  # if_16
+              $B30: {  # true
+                %230:i32 = load %d
+                %x_246:i32 = let %230
+                %232:i32 = sub %x_246, 1i
+                store %d, %232
+                %233:i32 = load_vector_element %p, 0u
+                %x_249:i32 = let %233
+                %235:i32 = load_vector_element %p, 1u
+                %x_251:i32 = let %235
+                %237:i32 = mul %x_251, 16i
+                %238:i32 = add %x_249, %237
+                %239:ptr<private, i32, read_write> = access %map, %238
+                store %239, 1i
+                %240:i32 = load_vector_element %p, 0u
+                %x_256:i32 = let %240
+                %242:i32 = load_vector_element %p, 1u
+                %x_259:i32 = let %242
+                %244:i32 = sub %x_256, 1i
+                %245:i32 = mul %x_259, 16i
+                %246:i32 = add %244, %245
+                %247:ptr<private, i32, read_write> = access %map, %246
+                store %247, 1i
+                %248:i32 = load_vector_element %p, 0u
+                %x_264:i32 = let %248
+                %250:i32 = load_vector_element %p, 1u
+                %x_267:i32 = let %250
+                %252:i32 = sub %x_264, 2i
+                %253:i32 = mul %x_267, 16i
                 %254:i32 = add %252, %253
                 %255:ptr<private, i32, read_write> = access %map, %254
                 store %255, 1i
-                %x_370:i32 = load_vector_element %p, 0u
-                %x_373:i32 = load_vector_element %p, 1u
-                %258:i32 = add %x_370, 2i
-                %259:i32 = mul %x_373, 16i
-                %260:i32 = add %258, %259
-                %261:ptr<private, i32, read_write> = access %map, %260
-                store %261, 1i
-                %x_378:i32 = load_vector_element %p, 0u
-                %263:i32 = add %x_378, 2i
-                store_vector_element %p, 0u, %263
+                %256:i32 = load_vector_element %p, 0u
+                %x_272:i32 = let %256
+                %258:i32 = sub %x_272, 2i
+                store_vector_element %p, 0u, %258
+                exit_if  # if_16
+              }
+            }
+            %259:i32 = load %d
+            %x_275:i32 = let %259
+            %261:bool = gte %x_275, 0i
+            %x_276:bool = let %261
+            store %x_282_phi, %x_276
+            if %x_276 [t: $B31] {  # if_17
+              $B31: {  # true
+                %263:i32 = load_vector_element %p, 1u
+                %x_280:i32 = let %263
+                %265:bool = gt %x_280, 0i
+                store %x_281, %265
+                %266:bool = load %x_281
+                store %x_282_phi, %266
+                exit_if  # if_17
+              }
+            }
+            %267:bool = load %x_282_phi
+            %x_282:bool = let %267
+            store %x_296_phi, %x_282
+            if %x_282 [t: $B32] {  # if_18
+              $B32: {  # true
+                %269:i32 = load_vector_element %p, 0u
+                %x_286:i32 = let %269
+                %271:i32 = load_vector_element %p, 1u
+                %x_288:i32 = let %271
+                %273:array<i32, 256> = load %map
+                %x_291:array<i32, 256> = let %273
+                store %map, array<i32, 256>(0i)
+                store %map, %x_291
+                %275:i32 = sub %x_288, 2i
+                %276:i32 = mul %275, 16i
+                %277:i32 = add %x_286, %276
+                %278:ptr<private, i32, read_write> = access %map, %277
+                %279:i32 = load %278
+                %x_294:i32 = let %279
+                %281:bool = eq %x_294, 0i
+                store %x_295, %281
+                %282:bool = load %x_295
+                store %x_296_phi, %282
+                exit_if  # if_18
+              }
+            }
+            %283:bool = load %x_296_phi
+            %x_296:bool = let %283
+            if %x_296 [t: $B33] {  # if_19
+              $B33: {  # true
+                %285:i32 = load %d
+                %x_299:i32 = let %285
+                %287:i32 = sub %x_299, 1i
+                store %d, %287
+                %288:i32 = load_vector_element %p, 0u
+                %x_302:i32 = let %288
+                %290:i32 = load_vector_element %p, 1u
+                %x_304:i32 = let %290
+                %292:i32 = mul %x_304, 16i
+                %293:i32 = add %x_302, %292
+                %294:ptr<private, i32, read_write> = access %map, %293
+                store %294, 1i
+                %295:i32 = load_vector_element %p, 0u
+                %x_309:i32 = let %295
+                %297:i32 = load_vector_element %p, 1u
+                %x_311:i32 = let %297
+                %299:i32 = sub %x_311, 1i
+                %300:i32 = mul %299, 16i
+                %301:i32 = add %x_309, %300
+                %302:ptr<private, i32, read_write> = access %map, %301
+                store %302, 1i
+                %303:i32 = load_vector_element %p, 0u
+                %x_317:i32 = let %303
+                %305:i32 = load_vector_element %p, 1u
+                %x_319:i32 = let %305
+                %307:array<i32, 256> = load %map
+                %x_321:array<i32, 256> = let %307
+                store %map, array<i32, 256>(0i)
+                store %map, %x_321
+                %309:i32 = sub %x_319, 2i
+                %310:i32 = mul %309, 16i
+                %311:i32 = add %x_317, %310
+                %312:ptr<private, i32, read_write> = access %map, %311
+                store %312, 1i
+                %313:i32 = load_vector_element %p, 1u
+                %x_326:i32 = let %313
+                %315:i32 = sub %x_326, 2i
+                store_vector_element %p, 1u, %315
+                exit_if  # if_19
+              }
+            }
+            %316:i32 = load %d
+            %x_329:i32 = let %316
+            %318:bool = gte %x_329, 0i
+            %x_330:bool = let %318
+            store %x_336_phi, %x_330
+            if %x_330 [t: $B34] {  # if_20
+              $B34: {  # true
+                %320:i32 = load_vector_element %p, 0u
+                %x_334:i32 = let %320
+                %322:bool = lt %x_334, 14i
+                store %x_335, %322
+                %323:bool = load %x_335
+                store %x_336_phi, %323
+                exit_if  # if_20
+              }
+            }
+            %324:bool = load %x_336_phi
+            %x_336:bool = let %324
+            store %x_349_phi, %x_336
+            if %x_336 [t: $B35] {  # if_21
+              $B35: {  # true
+                %326:i32 = load_vector_element %p, 0u
+                %x_340:i32 = let %326
+                %328:i32 = load_vector_element %p, 1u
+                %x_343:i32 = let %328
+                %330:i32 = add %x_340, 2i
+                %331:i32 = mul %x_343, 16i
+                %332:i32 = add %330, %331
+                %333:ptr<private, i32, read_write> = access %map, %332
+                %334:i32 = load %333
+                %x_347:i32 = let %334
+                %336:bool = eq %x_347, 0i
+                store %x_348, %336
+                %337:bool = load %x_348
+                store %x_349_phi, %337
+                exit_if  # if_21
+              }
+            }
+            %338:bool = load %x_349_phi
+            %x_349:bool = let %338
+            if %x_349 [t: $B36] {  # if_22
+              $B36: {  # true
+                %340:i32 = load %d
+                %x_352:i32 = let %340
+                %342:i32 = sub %x_352, 1i
+                store %d, %342
+                %343:i32 = load_vector_element %p, 0u
+                %x_355:i32 = let %343
+                %345:i32 = load_vector_element %p, 1u
+                %x_357:i32 = let %345
+                %347:i32 = mul %x_357, 16i
+                %348:i32 = add %x_355, %347
+                %349:ptr<private, i32, read_write> = access %map, %348
+                store %349, 1i
+                %350:i32 = load_vector_element %p, 0u
+                %x_362:i32 = let %350
+                %352:i32 = load_vector_element %p, 1u
+                %x_365:i32 = let %352
+                %354:i32 = add %x_362, 1i
+                %355:i32 = mul %x_365, 16i
+                %356:i32 = add %354, %355
+                %357:ptr<private, i32, read_write> = access %map, %356
+                store %357, 1i
+                %358:i32 = load_vector_element %p, 0u
+                %x_370:i32 = let %358
+                %360:i32 = load_vector_element %p, 1u
+                %x_373:i32 = let %360
+                %362:i32 = add %x_370, 2i
+                %363:i32 = mul %x_373, 16i
+                %364:i32 = add %362, %363
+                %365:ptr<private, i32, read_write> = access %map, %364
+                store %365, 1i
+                %366:i32 = load_vector_element %p, 0u
+                %x_378:i32 = let %366
+                %368:i32 = add %x_378, 2i
+                store_vector_element %p, 0u, %368
                 exit_if  # if_22
               }
             }
-            %x_381:i32 = load %d
-            %x_382:bool = gte %x_381, 0i
+            %369:i32 = load %d
+            %x_381:i32 = let %369
+            %371:bool = gte %x_381, 0i
+            %x_382:bool = let %371
             store %x_388_phi, %x_382
-            if %x_382 [t: %b37] {  # if_23
-              %b37 = block {  # true
-                %x_386:i32 = load_vector_element %p, 1u
-                %267:bool = lt %x_386, 14i
-                store %x_387, %267
-                %268:bool = load %x_387
-                store %x_388_phi, %268
+            if %x_382 [t: $B37] {  # if_23
+              $B37: {  # true
+                %373:i32 = load_vector_element %p, 1u
+                %x_386:i32 = let %373
+                %375:bool = lt %x_386, 14i
+                store %x_387, %375
+                %376:bool = load %x_387
+                store %x_388_phi, %376
                 exit_if  # if_23
               }
             }
-            %x_388:bool = load %x_388_phi
+            %377:bool = load %x_388_phi
+            %x_388:bool = let %377
             store %x_401_phi, %x_388
-            if %x_388 [t: %b38] {  # if_24
-              %b38 = block {  # true
-                %x_392:i32 = load_vector_element %p, 0u
-                %x_394:i32 = load_vector_element %p, 1u
-                %272:i32 = add %x_394, 2i
-                %273:i32 = mul %272, 16i
-                %274:i32 = add %x_392, %273
-                %275:ptr<private, i32, read_write> = access %map, %274
-                %x_399:i32 = load %275
-                %277:bool = eq %x_399, 0i
-                store %x_400, %277
-                %278:bool = load %x_400
-                store %x_401_phi, %278
+            if %x_388 [t: $B38] {  # if_24
+              $B38: {  # true
+                %379:i32 = load_vector_element %p, 0u
+                %x_392:i32 = let %379
+                %381:i32 = load_vector_element %p, 1u
+                %x_394:i32 = let %381
+                %383:i32 = add %x_394, 2i
+                %384:i32 = mul %383, 16i
+                %385:i32 = add %x_392, %384
+                %386:ptr<private, i32, read_write> = access %map, %385
+                %387:i32 = load %386
+                %x_399:i32 = let %387
+                %389:bool = eq %x_399, 0i
+                store %x_400, %389
+                %390:bool = load %x_400
+                store %x_401_phi, %390
                 exit_if  # if_24
               }
             }
-            %x_401:bool = load %x_401_phi
-            if %x_401 [t: %b39] {  # if_25
-              %b39 = block {  # true
-                %x_404:i32 = load %d
-                %281:i32 = sub %x_404, 1i
-                store %d, %281
-                %x_407:i32 = load_vector_element %p, 0u
-                %x_409:i32 = load_vector_element %p, 1u
-                %284:i32 = mul %x_409, 16i
-                %285:i32 = add %x_407, %284
-                %286:ptr<private, i32, read_write> = access %map, %285
-                store %286, 1i
-                %x_414:i32 = load_vector_element %p, 0u
-                %x_416:i32 = load_vector_element %p, 1u
-                %289:i32 = add %x_416, 1i
-                %290:i32 = mul %289, 16i
-                %291:i32 = add %x_414, %290
-                %292:ptr<private, i32, read_write> = access %map, %291
-                store %292, 1i
-                %x_422:i32 = load_vector_element %p, 0u
-                %x_424:i32 = load_vector_element %p, 1u
-                %295:i32 = add %x_424, 2i
-                %296:i32 = mul %295, 16i
-                %297:i32 = add %x_422, %296
-                %298:ptr<private, i32, read_write> = access %map, %297
-                store %298, 1i
-                %x_430:i32 = load_vector_element %p, 1u
-                %300:i32 = add %x_430, 2i
-                store_vector_element %p, 1u, %300
+            %391:bool = load %x_401_phi
+            %x_401:bool = let %391
+            if %x_401 [t: $B39] {  # if_25
+              $B39: {  # true
+                %393:i32 = load %d
+                %x_404:i32 = let %393
+                %395:i32 = sub %x_404, 1i
+                store %d, %395
+                %396:i32 = load_vector_element %p, 0u
+                %x_407:i32 = let %396
+                %398:i32 = load_vector_element %p, 1u
+                %x_409:i32 = let %398
+                %400:i32 = mul %x_409, 16i
+                %401:i32 = add %x_407, %400
+                %402:ptr<private, i32, read_write> = access %map, %401
+                store %402, 1i
+                %403:i32 = load_vector_element %p, 0u
+                %x_414:i32 = let %403
+                %405:i32 = load_vector_element %p, 1u
+                %x_416:i32 = let %405
+                %407:i32 = add %x_416, 1i
+                %408:i32 = mul %407, 16i
+                %409:i32 = add %x_414, %408
+                %410:ptr<private, i32, read_write> = access %map, %409
+                store %410, 1i
+                %411:i32 = load_vector_element %p, 0u
+                %x_422:i32 = let %411
+                %413:i32 = load_vector_element %p, 1u
+                %x_424:i32 = let %413
+                %415:i32 = add %x_424, 2i
+                %416:i32 = mul %415, 16i
+                %417:i32 = add %x_422, %416
+                %418:ptr<private, i32, read_write> = access %map, %417
+                store %418, 1i
+                %419:i32 = load_vector_element %p, 1u
+                %x_430:i32 = let %419
+                %421:i32 = add %x_430, 2i
+                store_vector_element %p, 1u, %421
                 exit_if  # if_25
               }
             }
             exit_if  # if_10
           }
         }
-        %x_434:i32 = load_vector_element %ipos, 1u
-        %x_437:i32 = load_vector_element %ipos, 0u
-        %303:i32 = mul %x_434, 16i
-        %304:i32 = add %303, %x_437
-        %305:ptr<private, i32, read_write> = access %map, %304
-        %x_440:i32 = load %305
-        %307:bool = eq %x_440, 1i
-        if %307 [t: %b40] {  # if_26
-          %b40 = block {  # true
+        %422:i32 = load_vector_element %ipos, 1u
+        %x_434:i32 = let %422
+        %424:i32 = load_vector_element %ipos, 0u
+        %x_437:i32 = let %424
+        %426:i32 = mul %x_434, 16i
+        %427:i32 = add %426, %x_437
+        %428:ptr<private, i32, read_write> = access %map, %427
+        %429:i32 = load %428
+        %x_440:i32 = let %429
+        %431:bool = eq %x_440, 1i
+        if %431 [t: $B40] {  # if_26
+          $B40: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             ret
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_444:bool = load %canwalk
-        %309:bool = eq %x_444, false
-        break_if %309 %b7
+      $B8: {  # continuing
+        %432:bool = load %canwalk
+        %x_444:bool = let %432
+        %434:bool = eq %x_444, false
+        break_if %434  # -> [t: exit_loop loop_2, f: $B7]
       }
     }
     store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b41 {
-  %b41 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B41: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %312:void = call %main_1
-    %313:vec4<f32> = load %x_GLF_color
-    %314:main_out = construct %313
-    ret %314
+    %437:void = call %main_1
+    %438:vec4<f32> = load %x_GLF_color
+    %439:main_out = construct %438
+    ret %439
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B42: {
+    %442:bool = eq %rhs, 0i
+    %443:bool = eq %lhs, -2147483648i
+    %444:bool = eq %rhs, -1i
+    %445:bool = and %443, %444
+    %446:bool = or %442, %445
+    %447:i32 = select %rhs, 1i, %446
+    %448:i32 = let %447
+    %449:i32 = div %lhs, %448
+    %450:i32 = mul %449, %448
+    %451:i32 = sub %lhs, %450
+    ret %451
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B43: {
+    %453:i32 = convert %value
+    %454:bool = gte %value, -2147483648.0f
+    %455:i32 = select -2147483648i, %453, %454
+    %456:bool = lte %value, 2147483520.0f
+    %457:i32 = select 2147483647i, %455, %456
+    ret %457
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.msl
index 1754b25..6c8a36e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, array<i32, 10>, read_write> = var
     %data:ptr<function, array<i32, 10>, read_write> = var
     %x_63:ptr<function, i32, read_write> = var
@@ -24,12 +25,12 @@
     %x_190:ptr<function, f32, read_write> = var
     %x_262:ptr<function, f32, read_write> = var
     %x_263:ptr<function, f32, read_write> = var
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %14:f32 = load_vector_element %13, 0u
-    %15:i32 = convert %14
-    store %x_63, %15
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %15:f32 = load_vector_element %14, 0u
+    %16:i32 = call %tint_f32_to_i32, %15
+    store %x_63, %16
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_100:ptr<function, i32, read_write> = var
         %x_98:ptr<function, i32, read_write> = var
         %x_96:ptr<function, i32, read_write> = var
@@ -41,584 +42,609 @@
         %x_84:ptr<function, i32, read_write> = var
         %x_82:ptr<function, i32, read_write> = var
         %x_64:ptr<function, i32, read_write> = var
-        %x_68:array<i32, 10> = load %data
+        %29:array<i32, 10> = load %data
+        %x_68:array<i32, 10> = let %29
         store %data, array<i32, 10>(0i)
         store %data, %x_68
-        %28:i32 = load %x_63
-        %29:i32 = add %28, 1i
-        store %x_64, %29
-        %30:i32 = load %x_63
-        switch %30 [c: (9i, %b5), c: (8i, %b6), c: (7i, %b7), c: (6i, %b8), c: (5i, %b9), c: (4i, %b10), c: (3i, %b11), c: (2i, %b12), c: (1i, %b13), c: (0i, %b14), c: (default, %b15)] {  # switch_1
-          %b5 = block {  # case
-            %31:i32 = load %x_63
-            %32:ptr<function, i32, read_write> = access %data, %31
-            store %32, -5i
-            %33:i32 = load %x_63
-            %34:i32 = add %33, 1i
-            store %x_100, %34
-            %35:i32 = load %x_100
-            store %x_64, %35
-            exit_switch  # switch_1
-          }
-          %b6 = block {  # case
+        %31:i32 = load %x_63
+        %32:i32 = add %31, 1i
+        store %x_64, %32
+        %33:i32 = load %x_63
+        switch %33 [c: (9i, $B5), c: (8i, $B6), c: (7i, $B7), c: (6i, $B8), c: (5i, $B9), c: (4i, $B10), c: (3i, $B11), c: (2i, $B12), c: (1i, $B13), c: (0i, $B14), c: (default, $B15)] {  # switch_1
+          $B5: {  # case
+            %34:i32 = load %x_63
+            %35:ptr<function, i32, read_write> = access %data, %34
+            store %35, -5i
             %36:i32 = load %x_63
-            %37:ptr<function, i32, read_write> = access %data, %36
-            store %37, -4i
-            %38:i32 = load %x_63
-            %39:i32 = add %38, 1i
-            store %x_98, %39
-            %40:i32 = load %x_98
-            store %x_64, %40
+            %37:i32 = add %36, 1i
+            store %x_100, %37
+            %38:i32 = load %x_100
+            store %x_64, %38
             exit_switch  # switch_1
           }
-          %b7 = block {  # case
+          $B6: {  # case
+            %39:i32 = load %x_63
+            %40:ptr<function, i32, read_write> = access %data, %39
+            store %40, -4i
             %41:i32 = load %x_63
-            %42:ptr<function, i32, read_write> = access %data, %41
-            store %42, -3i
-            %43:i32 = load %x_63
-            %44:i32 = add %43, 1i
-            store %x_96, %44
-            %45:i32 = load %x_96
-            store %x_64, %45
+            %42:i32 = add %41, 1i
+            store %x_98, %42
+            %43:i32 = load %x_98
+            store %x_64, %43
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
+          $B7: {  # case
+            %44:i32 = load %x_63
+            %45:ptr<function, i32, read_write> = access %data, %44
+            store %45, -3i
             %46:i32 = load %x_63
-            %47:ptr<function, i32, read_write> = access %data, %46
-            store %47, -2i
-            %48:i32 = load %x_63
-            %49:i32 = add %48, 1i
-            store %x_94, %49
-            %50:i32 = load %x_94
-            store %x_64, %50
+            %47:i32 = add %46, 1i
+            store %x_96, %47
+            %48:i32 = load %x_96
+            store %x_64, %48
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
+          $B8: {  # case
+            %49:i32 = load %x_63
+            %50:ptr<function, i32, read_write> = access %data, %49
+            store %50, -2i
             %51:i32 = load %x_63
-            %52:ptr<function, i32, read_write> = access %data, %51
-            store %52, -1i
-            %53:i32 = load %x_63
-            %54:i32 = add %53, 1i
-            store %x_92, %54
-            %55:i32 = load %x_92
-            store %x_64, %55
+            %52:i32 = add %51, 1i
+            store %x_94, %52
+            %53:i32 = load %x_94
+            store %x_64, %53
             exit_switch  # switch_1
           }
-          %b10 = block {  # case
+          $B9: {  # case
+            %54:i32 = load %x_63
+            %55:ptr<function, i32, read_write> = access %data, %54
+            store %55, -1i
             %56:i32 = load %x_63
-            %57:ptr<function, i32, read_write> = access %data, %56
-            store %57, 0i
-            %58:i32 = load %x_63
-            %59:i32 = add %58, 1i
-            store %x_90, %59
-            %60:i32 = load %x_90
-            store %x_64, %60
+            %57:i32 = add %56, 1i
+            store %x_92, %57
+            %58:i32 = load %x_92
+            store %x_64, %58
             exit_switch  # switch_1
           }
-          %b11 = block {  # case
+          $B10: {  # case
+            %59:i32 = load %x_63
+            %60:ptr<function, i32, read_write> = access %data, %59
+            store %60, 0i
             %61:i32 = load %x_63
-            %62:ptr<function, i32, read_write> = access %data, %61
-            store %62, 1i
-            %63:i32 = load %x_63
-            %64:i32 = add %63, 1i
-            store %x_88, %64
-            %65:i32 = load %x_88
-            store %x_64, %65
+            %62:i32 = add %61, 1i
+            store %x_90, %62
+            %63:i32 = load %x_90
+            store %x_64, %63
             exit_switch  # switch_1
           }
-          %b12 = block {  # case
+          $B11: {  # case
+            %64:i32 = load %x_63
+            %65:ptr<function, i32, read_write> = access %data, %64
+            store %65, 1i
             %66:i32 = load %x_63
-            %67:ptr<function, i32, read_write> = access %data, %66
-            store %67, 2i
-            %68:i32 = load %x_63
-            %69:i32 = add %68, 1i
-            store %x_86, %69
-            %70:i32 = load %x_86
-            store %x_64, %70
+            %67:i32 = add %66, 1i
+            store %x_88, %67
+            %68:i32 = load %x_88
+            store %x_64, %68
             exit_switch  # switch_1
           }
-          %b13 = block {  # case
+          $B12: {  # case
+            %69:i32 = load %x_63
+            %70:ptr<function, i32, read_write> = access %data, %69
+            store %70, 2i
             %71:i32 = load %x_63
-            %72:ptr<function, i32, read_write> = access %data, %71
-            store %72, 3i
-            %73:i32 = load %x_63
-            %74:i32 = add %73, 1i
-            store %x_84, %74
-            %75:i32 = load %x_84
-            store %x_64, %75
+            %72:i32 = add %71, 1i
+            store %x_86, %72
+            %73:i32 = load %x_86
+            store %x_64, %73
             exit_switch  # switch_1
           }
-          %b14 = block {  # case
+          $B13: {  # case
+            %74:i32 = load %x_63
+            %75:ptr<function, i32, read_write> = access %data, %74
+            store %75, 3i
             %76:i32 = load %x_63
-            %77:ptr<function, i32, read_write> = access %data, %76
-            store %77, 4i
-            %78:i32 = load %x_63
-            %79:i32 = add %78, 1i
-            store %x_82, %79
-            %80:i32 = load %x_82
-            store %x_64, %80
+            %77:i32 = add %76, 1i
+            store %x_84, %77
+            %78:i32 = load %x_84
+            store %x_64, %78
             exit_switch  # switch_1
           }
-          %b15 = block {  # case
+          $B14: {  # case
+            %79:i32 = load %x_63
+            %80:ptr<function, i32, read_write> = access %data, %79
+            store %80, 4i
+            %81:i32 = load %x_63
+            %82:i32 = add %81, 1i
+            store %x_82, %82
+            %83:i32 = load %x_82
+            store %x_64, %83
+            exit_switch  # switch_1
+          }
+          $B15: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %81:i32 = load %x_64
-        store %x_63, %81
-        %82:i32 = load %x_64
-        %83:bool = lt %82, 10i
-        %84:bool = eq %83, false
-        break_if %84 %b3
+      $B4: {  # continuing
+        %84:i32 = load %x_64
+        store %x_63, %84
+        %85:i32 = load %x_64
+        %86:bool = lt %85, 10i
+        %87:bool = eq %86, false
+        break_if %87  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_103, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
         %x_104:ptr<function, i32, read_write> = var
-        %86:i32 = load %x_103
-        %87:bool = lt %86, 10i
-        if %87 [t: %b18, f: %b19] {  # if_1
-          %b18 = block {  # true
+        %89:i32 = load %x_103
+        %90:bool = lt %89, 10i
+        if %90 [t: $B18, f: $B19] {  # if_1
+          $B18: {  # true
             exit_if  # if_1
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %88:i32 = load %x_103
-        %89:ptr<function, i32, read_write> = access %temp, %88
-        %90:i32 = load %x_103
-        %91:ptr<function, i32, read_write> = access %data, %90
-        %92:i32 = load %91
-        store %89, %92
+      $B17: {  # continuing
+        %91:i32 = load %x_103
+        %92:ptr<function, i32, read_write> = access %temp, %91
         %93:i32 = load %x_103
-        %94:i32 = add %93, 1i
-        store %x_104, %94
-        %95:i32 = load %x_104
-        store %x_103, %95
-        next_iteration %b16
+        %94:ptr<function, i32, read_write> = access %data, %93
+        %95:i32 = load %94
+        store %92, %95
+        %96:i32 = load %x_103
+        %97:i32 = add %96, 1i
+        store %x_104, %97
+        %98:i32 = load %x_104
+        store %x_103, %98
+        next_iteration  # -> $B16
       }
     }
     store %x_112, 1i
-    loop [b: %b20, c: %b21] {  # loop_3
-      %b20 = block {  # body
+    loop [b: $B20, c: $B21] {  # loop_3
+      $B20: {  # body
         %x_119:ptr<function, i32, read_write> = var
         %x_113:ptr<function, i32, read_write> = var
-        %98:i32 = load %x_112
-        %99:bool = lte %98, 9i
-        if %99 [t: %b22, f: %b23] {  # if_2
-          %b22 = block {  # true
+        %101:i32 = load %x_112
+        %102:bool = lte %101, 9i
+        if %102 [t: $B22, f: $B23] {  # if_2
+          $B22: {  # true
             exit_if  # if_2
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_3
           }
         }
         store %x_119, 0i
-        loop [b: %b24, c: %b25] {  # loop_4
-          %b24 = block {  # body
+        loop [b: $B24, c: $B25] {  # loop_4
+          $B24: {  # body
             %x_131:ptr<function, i32, read_write> = var
             %x_134:ptr<function, i32, read_write> = var
             %x_136:ptr<function, i32, read_write> = var
             %x_158:ptr<function, i32, read_write> = var
             %x_161:ptr<function, i32, read_write> = var
             %x_171:ptr<function, i32, read_write> = var
-            %106:i32 = load %x_119
-            %107:bool = lt %106, 9i
-            if %107 [t: %b26, f: %b27] {  # if_3
-              %b26 = block {  # true
+            %109:i32 = load %x_119
+            %110:bool = lt %109, 9i
+            if %110 [t: $B26, f: $B27] {  # if_3
+              $B26: {  # true
                 exit_if  # if_3
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_4
               }
             }
-            %108:i32 = load %x_119
-            %109:i32 = load %x_112
-            %x_125:i32 = add %108, %109
-            %x_126:i32 = sub %x_125, 1i
-            %112:i32 = load %x_119
-            %113:i32 = load %x_112
-            %114:i32 = mul 2i, %113
-            %x_120:i32 = add %112, %114
-            %116:i32 = sub %x_120, 1i
-            %x_129:i32 = min %116, 9i
-            %118:i32 = load %x_119
-            store %x_131, %118
+            %111:i32 = load %x_119
+            %112:i32 = load %x_112
+            %113:i32 = add %111, %112
+            %x_125:i32 = let %113
+            %115:i32 = sub %x_125, 1i
+            %x_126:i32 = let %115
+            %117:i32 = load %x_119
+            %118:i32 = load %x_112
+            %119:i32 = mul 2i, %118
+            %120:i32 = add %117, %119
+            %x_120:i32 = let %120
+            %122:i32 = sub %x_120, 1i
+            %123:i32 = min %122, 9i
+            %x_129:i32 = let %123
+            %125:i32 = load %x_119
+            store %x_131, %125
             store %x_134, %x_125
-            %119:i32 = load %x_119
-            store %x_136, %119
-            loop [b: %b28, c: %b29] {  # loop_5
-              %b28 = block {  # body
+            %126:i32 = load %x_119
+            store %x_136, %126
+            loop [b: $B28, c: $B29] {  # loop_5
+              $B28: {  # body
                 %x_151:ptr<function, i32, read_write> = var
                 %x_154:ptr<function, i32, read_write> = var
                 %x_135:ptr<function, i32, read_write> = var
                 %x_137:ptr<function, i32, read_write> = var
-                %124:i32 = load %x_136
-                %125:bool = lte %124, %x_126
-                %126:i32 = load %x_134
-                %127:bool = lte %126, %x_129
-                %128:bool = and %125, %127
-                if %128 [t: %b30, f: %b31] {  # if_4
-                  %b30 = block {  # true
+                %131:i32 = load %x_136
+                %132:bool = lte %131, %x_126
+                %133:i32 = load %x_134
+                %134:bool = lte %133, %x_129
+                %135:bool = and %132, %134
+                if %135 [t: $B30, f: $B31] {  # if_4
+                  $B30: {  # true
                     exit_if  # if_4
                   }
-                  %b31 = block {  # false
+                  $B31: {  # false
                     exit_loop  # loop_5
                   }
                 }
-                %x_143_save:i32 = load %x_136
-                %x_145_save:i32 = load %x_134
-                %131:i32 = load %x_131
-                %x_132:i32 = add %131, 1i
-                %133:i32 = load %x_136
-                %134:ptr<function, i32, read_write> = access %data, %133
-                %135:i32 = load %134
-                %136:i32 = load %x_134
-                %137:ptr<function, i32, read_write> = access %data, %136
-                %138:i32 = load %137
-                %139:bool = lt %135, %138
-                if %139 [t: %b32, f: %b33] {  # if_5
-                  %b32 = block {  # true
-                    %140:i32 = load %x_136
-                    %141:i32 = add %140, 1i
-                    store %x_151, %141
-                    %142:i32 = load %x_131
-                    %143:ptr<function, i32, read_write> = access %temp, %142
-                    %144:ptr<function, i32, read_write> = access %data, %x_143_save
-                    %145:i32 = load %144
-                    store %143, %145
-                    %146:i32 = load %x_134
-                    store %x_135, %146
-                    %147:i32 = load %x_151
-                    store %x_137, %147
+                %136:i32 = load %x_136
+                %x_143_save:i32 = let %136
+                %138:i32 = load %x_134
+                %x_145_save:i32 = let %138
+                %140:i32 = load %x_131
+                %141:i32 = add %140, 1i
+                %x_132:i32 = let %141
+                %143:i32 = load %x_136
+                %144:ptr<function, i32, read_write> = access %data, %143
+                %145:i32 = load %144
+                %146:i32 = load %x_134
+                %147:ptr<function, i32, read_write> = access %data, %146
+                %148:i32 = load %147
+                %149:bool = lt %145, %148
+                if %149 [t: $B32, f: $B33] {  # if_5
+                  $B32: {  # true
+                    %150:i32 = load %x_136
+                    %151:i32 = add %150, 1i
+                    store %x_151, %151
+                    %152:i32 = load %x_131
+                    %153:ptr<function, i32, read_write> = access %temp, %152
+                    %154:ptr<function, i32, read_write> = access %data, %x_143_save
+                    %155:i32 = load %154
+                    store %153, %155
+                    %156:i32 = load %x_134
+                    store %x_135, %156
+                    %157:i32 = load %x_151
+                    store %x_137, %157
                     exit_if  # if_5
                   }
-                  %b33 = block {  # false
-                    %148:i32 = load %x_134
-                    %149:i32 = add %148, 1i
-                    store %x_154, %149
-                    %150:i32 = load %x_131
-                    %151:ptr<function, i32, read_write> = access %temp, %150
-                    %152:ptr<function, i32, read_write> = access %data, %x_145_save
-                    %153:i32 = load %152
-                    store %151, %153
-                    %154:i32 = load %x_154
-                    store %x_135, %154
-                    %155:i32 = load %x_136
-                    store %x_137, %155
+                  $B33: {  # false
+                    %158:i32 = load %x_134
+                    %159:i32 = add %158, 1i
+                    store %x_154, %159
+                    %160:i32 = load %x_131
+                    %161:ptr<function, i32, read_write> = access %temp, %160
+                    %162:ptr<function, i32, read_write> = access %data, %x_145_save
+                    %163:i32 = load %162
+                    store %161, %163
+                    %164:i32 = load %x_154
+                    store %x_135, %164
+                    %165:i32 = load %x_136
+                    store %x_137, %165
                     exit_if  # if_5
                   }
                 }
-                continue %b29
+                continue  # -> $B29
               }
-              %b29 = block {  # continuing
+              $B29: {  # continuing
                 store %x_131, %x_132
-                %156:i32 = load %x_135
-                store %x_134, %156
-                %157:i32 = load %x_137
-                store %x_136, %157
-                next_iteration %b28
+                %166:i32 = load %x_135
+                store %x_134, %166
+                %167:i32 = load %x_137
+                store %x_136, %167
+                next_iteration  # -> $B28
               }
             }
-            %158:i32 = load %x_131
-            store %x_158, %158
-            %159:i32 = load %x_136
-            store %x_161, %159
-            loop [b: %b34, c: %b35] {  # loop_6
-              %b34 = block {  # body
+            %168:i32 = load %x_131
+            store %x_158, %168
+            %169:i32 = load %x_136
+            store %x_161, %169
+            loop [b: $B34, c: $B35] {  # loop_6
+              $B34: {  # body
                 %x_159:ptr<function, i32, read_write> = var
                 %x_162:ptr<function, i32, read_write> = var
-                %162:i32 = load %x_161
-                %163:bool = lt %162, 10i
-                %164:i32 = load %x_161
-                %165:bool = lte %164, %x_126
-                %166:bool = and %163, %165
-                if %166 [t: %b36, f: %b37] {  # if_6
-                  %b36 = block {  # true
+                %172:i32 = load %x_161
+                %173:bool = lt %172, 10i
+                %174:i32 = load %x_161
+                %175:bool = lte %174, %x_126
+                %176:bool = and %173, %175
+                if %176 [t: $B36, f: $B37] {  # if_6
+                  $B36: {  # true
                     exit_if  # if_6
                   }
-                  %b37 = block {  # false
+                  $B37: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                continue %b35
+                continue  # -> $B35
               }
-              %b35 = block {  # continuing
-                %167:i32 = load %x_158
-                %168:i32 = add %167, 1i
-                store %x_159, %168
-                %169:i32 = load %x_161
-                %170:i32 = add %169, 1i
-                store %x_162, %170
-                %171:i32 = load %x_158
-                %172:ptr<function, i32, read_write> = access %temp, %171
-                %173:i32 = load %x_161
-                %174:ptr<function, i32, read_write> = access %data, %173
-                %175:i32 = load %174
-                store %172, %175
-                %176:i32 = load %x_159
-                store %x_158, %176
-                %177:i32 = load %x_162
-                store %x_161, %177
-                next_iteration %b34
+              $B35: {  # continuing
+                %177:i32 = load %x_158
+                %178:i32 = add %177, 1i
+                store %x_159, %178
+                %179:i32 = load %x_161
+                %180:i32 = add %179, 1i
+                store %x_162, %180
+                %181:i32 = load %x_158
+                %182:ptr<function, i32, read_write> = access %temp, %181
+                %183:i32 = load %x_161
+                %184:ptr<function, i32, read_write> = access %data, %183
+                %185:i32 = load %184
+                store %182, %185
+                %186:i32 = load %x_159
+                store %x_158, %186
+                %187:i32 = load %x_162
+                store %x_161, %187
+                next_iteration  # -> $B34
               }
             }
-            %178:i32 = load %x_119
-            store %x_171, %178
-            loop [b: %b38, c: %b39] {  # loop_7
-              %b38 = block {  # body
+            %188:i32 = load %x_119
+            store %x_171, %188
+            loop [b: $B38, c: $B39] {  # loop_7
+              $B38: {  # body
                 %x_172:ptr<function, i32, read_write> = var
-                %180:i32 = load %x_171
-                %181:bool = lte %180, %x_129
-                if %181 [t: %b40, f: %b41] {  # if_7
-                  %b40 = block {  # true
+                %190:i32 = load %x_171
+                %191:bool = lte %190, %x_129
+                if %191 [t: $B40, f: $B41] {  # if_7
+                  $B40: {  # true
                     exit_if  # if_7
                   }
-                  %b41 = block {  # false
+                  $B41: {  # false
                     exit_loop  # loop_7
                   }
                 }
-                continue %b39
+                continue  # -> $B39
               }
-              %b39 = block {  # continuing
-                %182:i32 = load %x_171
-                %183:ptr<function, i32, read_write> = access %data, %182
-                %184:i32 = load %x_171
-                %185:ptr<function, i32, read_write> = access %temp, %184
-                %186:i32 = load %185
-                store %183, %186
-                %187:i32 = load %x_171
-                %188:i32 = add %187, 1i
-                store %x_172, %188
-                %189:i32 = load %x_172
-                store %x_171, %189
-                next_iteration %b38
+              $B39: {  # continuing
+                %192:i32 = load %x_171
+                %193:ptr<function, i32, read_write> = access %data, %192
+                %194:i32 = load %x_171
+                %195:ptr<function, i32, read_write> = access %temp, %194
+                %196:i32 = load %195
+                store %193, %196
+                %197:i32 = load %x_171
+                %198:i32 = add %197, 1i
+                store %x_172, %198
+                %199:i32 = load %x_172
+                store %x_171, %199
+                next_iteration  # -> $B38
               }
             }
-            continue %b25
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
+          $B25: {  # continuing
             store %x_119, %x_120
-            next_iteration %b24
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %190:i32 = load %x_112
-        %191:i32 = mul 2i, %190
-        store %x_113, %191
-        %192:i32 = load %x_113
-        store %x_112, %192
-        next_iteration %b20
+      $B21: {  # continuing
+        %200:i32 = load %x_112
+        %201:i32 = mul 2i, %200
+        store %x_113, %201
+        %202:i32 = load %x_113
+        store %x_112, %202
+        next_iteration  # -> $B20
       }
     }
     %x_181:ptr<function, i32, read_write> = var
     %x_199:ptr<function, f32, read_write> = var
     %x_261:ptr<function, f32, read_write> = var
-    %196:f32 = load_vector_element %gl_FragCoord, 1u
-    %197:i32 = convert %196
-    store %x_181, %197
-    %198:i32 = load %x_181
-    %199:bool = lt %198, 30i
-    if %199 [t: %b42, f: %b43] {  # if_8
-      %b42 = block {  # true
-        %200:ptr<function, i32, read_write> = access %data, 0i
-        %201:i32 = load %200
-        %202:f32 = convert %201
-        %203:f32 = mul %202, 0.10000000149011611938f
-        %204:f32 = add 0.5f, %203
-        store %x_190, %204
-        %205:f32 = load %x_190
-        store %x_263, %205
+    %206:f32 = load_vector_element %gl_FragCoord, 1u
+    %207:i32 = call %tint_f32_to_i32, %206
+    store %x_181, %207
+    %208:i32 = load %x_181
+    %209:bool = lt %208, 30i
+    if %209 [t: $B42, f: $B43] {  # if_8
+      $B42: {  # true
+        %210:ptr<function, i32, read_write> = access %data, 0i
+        %211:i32 = load %210
+        %212:f32 = convert %211
+        %213:f32 = mul %212, 0.10000000149011611938f
+        %214:f32 = add 0.5f, %213
+        store %x_190, %214
+        %215:f32 = load %x_190
+        store %x_263, %215
         exit_if  # if_8
       }
-      %b43 = block {  # false
+      $B43: {  # false
         %x_208:ptr<function, f32, read_write> = var
         %x_260:ptr<function, f32, read_write> = var
-        %208:i32 = load %x_181
-        %209:bool = lt %208, 60i
-        if %209 [t: %b44, f: %b45] {  # if_9
-          %b44 = block {  # true
-            %210:ptr<function, i32, read_write> = access %data, 1i
-            %211:i32 = load %210
-            %212:f32 = convert %211
-            %213:f32 = mul %212, 0.10000000149011611938f
-            %214:f32 = add 0.5f, %213
-            store %x_199, %214
-            %215:f32 = load %x_199
-            store %x_262, %215
+        %218:i32 = load %x_181
+        %219:bool = lt %218, 60i
+        if %219 [t: $B44, f: $B45] {  # if_9
+          $B44: {  # true
+            %220:ptr<function, i32, read_write> = access %data, 1i
+            %221:i32 = load %220
+            %222:f32 = convert %221
+            %223:f32 = mul %222, 0.10000000149011611938f
+            %224:f32 = add 0.5f, %223
+            store %x_199, %224
+            %225:f32 = load %x_199
+            store %x_262, %225
             exit_if  # if_9
           }
-          %b45 = block {  # false
+          $B45: {  # false
             %x_217:ptr<function, f32, read_write> = var
             %x_259:ptr<function, f32, read_write> = var
-            %218:i32 = load %x_181
-            %219:bool = lt %218, 90i
-            if %219 [t: %b46, f: %b47] {  # if_10
-              %b46 = block {  # true
-                %220:ptr<function, i32, read_write> = access %data, 2i
-                %221:i32 = load %220
-                %222:f32 = convert %221
-                %223:f32 = mul %222, 0.10000000149011611938f
-                %224:f32 = add 0.5f, %223
-                store %x_208, %224
-                %225:f32 = load %x_208
-                store %x_261, %225
+            %228:i32 = load %x_181
+            %229:bool = lt %228, 90i
+            if %229 [t: $B46, f: $B47] {  # if_10
+              $B46: {  # true
+                %230:ptr<function, i32, read_write> = access %data, 2i
+                %231:i32 = load %230
+                %232:f32 = convert %231
+                %233:f32 = mul %232, 0.10000000149011611938f
+                %234:f32 = add 0.5f, %233
+                store %x_208, %234
+                %235:f32 = load %x_208
+                store %x_261, %235
                 exit_if  # if_10
               }
-              %b47 = block {  # false
-                %226:i32 = load %x_181
-                %227:bool = lt %226, 120i
-                if %227 [t: %b48, f: %b49] {  # if_11
-                  %b48 = block {  # true
-                    %228:ptr<function, i32, read_write> = access %data, 3i
-                    %229:i32 = load %228
-                    %230:f32 = convert %229
-                    %231:f32 = mul %230, 0.10000000149011611938f
-                    %232:f32 = add 0.5f, %231
-                    store %x_217, %232
-                    %233:f32 = load %x_217
-                    store %x_260, %233
+              $B47: {  # false
+                %236:i32 = load %x_181
+                %237:bool = lt %236, 120i
+                if %237 [t: $B48, f: $B49] {  # if_11
+                  $B48: {  # true
+                    %238:ptr<function, i32, read_write> = access %data, 3i
+                    %239:i32 = load %238
+                    %240:f32 = convert %239
+                    %241:f32 = mul %240, 0.10000000149011611938f
+                    %242:f32 = add 0.5f, %241
+                    store %x_217, %242
+                    %243:f32 = load %x_217
+                    store %x_260, %243
                     exit_if  # if_11
                   }
-                  %b49 = block {  # false
+                  $B49: {  # false
                     %x_230:ptr<function, f32, read_write> = var
                     %x_258:ptr<function, f32, read_write> = var
-                    %236:i32 = load %x_181
-                    %237:bool = lt %236, 150i
-                    if %237 [t: %b50, f: %b51] {  # if_12
-                      %b50 = block {  # true
-                        discard
+                    %246:i32 = load %x_181
+                    %247:bool = lt %246, 150i
+                    if %247 [t: $B50, f: $B51] {  # if_12
+                      $B50: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b51 = block {  # false
+                      $B51: {  # false
                         %x_239:ptr<function, f32, read_write> = var
                         %x_257:ptr<function, f32, read_write> = var
-                        %240:i32 = load %x_181
-                        %241:bool = lt %240, 180i
-                        if %241 [t: %b52, f: %b53] {  # if_13
-                          %b52 = block {  # true
-                            %242:ptr<function, i32, read_write> = access %data, 5i
-                            %243:i32 = load %242
-                            %244:f32 = convert %243
-                            %245:f32 = mul %244, 0.10000000149011611938f
-                            %246:f32 = add 0.5f, %245
-                            store %x_230, %246
-                            %247:f32 = load %x_230
-                            store %x_259, %247
+                        %250:i32 = load %x_181
+                        %251:bool = lt %250, 180i
+                        if %251 [t: $B52, f: $B53] {  # if_13
+                          $B52: {  # true
+                            %252:ptr<function, i32, read_write> = access %data, 5i
+                            %253:i32 = load %252
+                            %254:f32 = convert %253
+                            %255:f32 = mul %254, 0.10000000149011611938f
+                            %256:f32 = add 0.5f, %255
+                            store %x_230, %256
+                            %257:f32 = load %x_230
+                            store %x_259, %257
                             exit_if  # if_13
                           }
-                          %b53 = block {  # false
+                          $B53: {  # false
                             %x_248:ptr<function, f32, read_write> = var
                             %x_256:ptr<function, f32, read_write> = var
-                            %250:i32 = load %x_181
-                            %251:bool = lt %250, 210i
-                            if %251 [t: %b54, f: %b55] {  # if_14
-                              %b54 = block {  # true
-                                %252:ptr<function, i32, read_write> = access %data, 6i
-                                %253:i32 = load %252
-                                %254:f32 = convert %253
-                                %255:f32 = mul %254, 0.10000000149011611938f
-                                %256:f32 = add 0.5f, %255
-                                store %x_239, %256
-                                %257:f32 = load %x_239
-                                store %x_258, %257
+                            %260:i32 = load %x_181
+                            %261:bool = lt %260, 210i
+                            if %261 [t: $B54, f: $B55] {  # if_14
+                              $B54: {  # true
+                                %262:ptr<function, i32, read_write> = access %data, 6i
+                                %263:i32 = load %262
+                                %264:f32 = convert %263
+                                %265:f32 = mul %264, 0.10000000149011611938f
+                                %266:f32 = add 0.5f, %265
+                                store %x_239, %266
+                                %267:f32 = load %x_239
+                                store %x_258, %267
                                 exit_if  # if_14
                               }
-                              %b55 = block {  # false
-                                %258:i32 = load %x_181
-                                %259:bool = lt %258, 240i
-                                if %259 [t: %b56, f: %b57] {  # if_15
-                                  %b56 = block {  # true
-                                    %260:ptr<function, i32, read_write> = access %data, 7i
-                                    %261:i32 = load %260
-                                    %262:f32 = convert %261
-                                    %263:f32 = mul %262, 0.10000000149011611938f
-                                    %264:f32 = add 0.5f, %263
-                                    store %x_248, %264
-                                    %265:f32 = load %x_248
-                                    store %x_257, %265
+                              $B55: {  # false
+                                %268:i32 = load %x_181
+                                %269:bool = lt %268, 240i
+                                if %269 [t: $B56, f: $B57] {  # if_15
+                                  $B56: {  # true
+                                    %270:ptr<function, i32, read_write> = access %data, 7i
+                                    %271:i32 = load %270
+                                    %272:f32 = convert %271
+                                    %273:f32 = mul %272, 0.10000000149011611938f
+                                    %274:f32 = add 0.5f, %273
+                                    store %x_248, %274
+                                    %275:f32 = load %x_248
+                                    store %x_257, %275
                                     exit_if  # if_15
                                   }
-                                  %b57 = block {  # false
-                                    %266:i32 = load %x_181
-                                    %267:bool = lt %266, 270i
-                                    if %267 [t: %b58, f: %b59] {  # if_16
-                                      %b58 = block {  # true
+                                  $B57: {  # false
+                                    %276:i32 = load %x_181
+                                    %277:bool = lt %276, 270i
+                                    if %277 [t: $B58, f: $B59] {  # if_16
+                                      $B58: {  # true
                                         exit_if  # if_16
                                       }
-                                      %b59 = block {  # false
-                                        discard
+                                      $B59: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
-                                    %268:ptr<function, i32, read_write> = access %data, 8i
-                                    %269:i32 = load %268
-                                    %270:f32 = convert %269
-                                    %271:f32 = mul %270, 0.10000000149011611938f
-                                    %272:f32 = add 0.5f, %271
-                                    store %x_256, %272
-                                    %273:f32 = load %x_256
-                                    store %x_257, %273
+                                    %278:ptr<function, i32, read_write> = access %data, 8i
+                                    %279:i32 = load %278
+                                    %280:f32 = convert %279
+                                    %281:f32 = mul %280, 0.10000000149011611938f
+                                    %282:f32 = add 0.5f, %281
+                                    store %x_256, %282
+                                    %283:f32 = load %x_256
+                                    store %x_257, %283
                                     exit_if  # if_15
                                   }
                                 }
-                                %274:f32 = load %x_257
-                                store %x_258, %274
+                                %284:f32 = load %x_257
+                                store %x_258, %284
                                 exit_if  # if_14
                               }
                             }
-                            %275:f32 = load %x_258
-                            store %x_259, %275
+                            %285:f32 = load %x_258
+                            store %x_259, %285
                             exit_if  # if_13
                           }
                         }
                         exit_if  # if_12
                       }
                     }
-                    %276:f32 = load %x_259
-                    store %x_260, %276
+                    %286:f32 = load %x_259
+                    store %x_260, %286
                     exit_if  # if_11
                   }
                 }
-                %277:f32 = load %x_260
-                store %x_261, %277
+                %287:f32 = load %x_260
+                store %x_261, %287
                 exit_if  # if_10
               }
             }
-            %278:f32 = load %x_261
-            store %x_262, %278
+            %288:f32 = load %x_261
+            store %x_262, %288
             exit_if  # if_9
           }
         }
-        %279:f32 = load %x_262
-        store %x_263, %279
+        %289:f32 = load %x_262
+        store %x_263, %289
         exit_if  # if_8
       }
     }
-    %280:f32 = load %x_263
-    %281:f32 = load %x_263
-    %282:f32 = load %x_263
-    %283:vec4<f32> = construct %280, %281, %282, 1.0f
-    store %x_GLF_color, %283
+    %290:f32 = load %x_263
+    %291:f32 = load %x_263
+    %292:f32 = load %x_263
+    %293:vec4<f32> = construct %290, %291, %292, 1.0f
+    store %x_GLF_color, %293
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b60 {
-  %b60 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B60: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %286:void = call %main_1
-    %287:vec4<f32> = load %x_GLF_color
-    %288:main_out = construct %287
-    ret %288
+    %296:void = call %main_1
+    %297:vec4<f32> = load %x_GLF_color
+    %298:main_out = construct %297
+    %299:bool = load %continue_execution
+    %300:bool = eq %299, false
+    if %300 [t: $B61] {  # if_17
+      $B61: {  # true
+        terminate_invocation
+      }
+    }
+    ret %298
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B62: {
+    %302:i32 = convert %value
+    %303:bool = gte %value, -2147483648.0f
+    %304:i32 = select -2147483648i, %302, %303
+    %305:bool = lte %value, 2147483520.0f
+    %306:i32 = select 2147483647i, %304, %305
+    ret %306
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.msl
index dcf7074..6e33be4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, array<i32, 10>, read_write> = var
     %data:ptr<function, array<i32, 10>, read_write> = var
     %x_190:ptr<function, f32, read_write> = var
@@ -24,12 +25,14 @@
     %x_103_phi:ptr<function, i32, read_write> = var
     %x_112_phi:ptr<function, i32, read_write> = var
     %x_263_phi:ptr<function, f32, read_write> = var
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_60:f32 = load_vector_element %13, 0u
-    %x_61:i32 = convert %x_60
+    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %15:f32 = load_vector_element %14, 0u
+    %x_60:f32 = let %15
+    %17:i32 = call %tint_f32_to_i32, %x_60
+    %x_61:i32 = let %17
     store %x_63_phi, %x_61
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_100:ptr<function, i32, read_write> = var
         %x_98:ptr<function, i32, read_write> = var
         %x_96:ptr<function, i32, read_write> = var
@@ -41,163 +44,170 @@
         %x_84:ptr<function, i32, read_write> = var
         %x_82:ptr<function, i32, read_write> = var
         %x_64_phi:ptr<function, i32, read_write> = var
-        %x_63:i32 = load %x_63_phi
-        %x_68:array<i32, 10> = load %data
+        %31:i32 = load %x_63_phi
+        %x_63:i32 = let %31
+        %33:array<i32, 10> = load %data
+        %x_68:array<i32, 10> = let %33
         store %data, array<i32, 10>(0i)
         store %data, %x_68
-        %x_69:i32 = add %x_63, 1i
+        %35:i32 = add %x_63, 1i
+        %x_69:i32 = let %35
         store %x_64_phi, %x_69
-        switch %x_63 [c: (9i, %b5), c: (8i, %b6), c: (7i, %b7), c: (6i, %b8), c: (5i, %b9), c: (4i, %b10), c: (3i, %b11), c: (2i, %b12), c: (1i, %b13), c: (0i, %b14), c: (default, %b15)] {  # switch_1
-          %b5 = block {  # case
-            %30:ptr<function, i32, read_write> = access %data, %x_63
-            store %30, -5i
-            %31:i32 = add %x_63, 1i
-            store %x_100, %31
-            %32:i32 = load %x_100
-            store %x_64_phi, %32
+        switch %x_63 [c: (9i, $B5), c: (8i, $B6), c: (7i, $B7), c: (6i, $B8), c: (5i, $B9), c: (4i, $B10), c: (3i, $B11), c: (2i, $B12), c: (1i, $B13), c: (0i, $B14), c: (default, $B15)] {  # switch_1
+          $B5: {  # case
+            %37:ptr<function, i32, read_write> = access %data, %x_63
+            store %37, -5i
+            %38:i32 = add %x_63, 1i
+            store %x_100, %38
+            %39:i32 = load %x_100
+            store %x_64_phi, %39
             exit_switch  # switch_1
           }
-          %b6 = block {  # case
-            %33:ptr<function, i32, read_write> = access %data, %x_63
-            store %33, -4i
-            %34:i32 = add %x_63, 1i
-            store %x_98, %34
-            %35:i32 = load %x_98
-            store %x_64_phi, %35
+          $B6: {  # case
+            %40:ptr<function, i32, read_write> = access %data, %x_63
+            store %40, -4i
+            %41:i32 = add %x_63, 1i
+            store %x_98, %41
+            %42:i32 = load %x_98
+            store %x_64_phi, %42
             exit_switch  # switch_1
           }
-          %b7 = block {  # case
-            %36:ptr<function, i32, read_write> = access %data, %x_63
-            store %36, -3i
-            %37:i32 = add %x_63, 1i
-            store %x_96, %37
-            %38:i32 = load %x_96
-            store %x_64_phi, %38
+          $B7: {  # case
+            %43:ptr<function, i32, read_write> = access %data, %x_63
+            store %43, -3i
+            %44:i32 = add %x_63, 1i
+            store %x_96, %44
+            %45:i32 = load %x_96
+            store %x_64_phi, %45
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
-            %39:ptr<function, i32, read_write> = access %data, %x_63
-            store %39, -2i
-            %40:i32 = add %x_63, 1i
-            store %x_94, %40
-            %41:i32 = load %x_94
-            store %x_64_phi, %41
+          $B8: {  # case
+            %46:ptr<function, i32, read_write> = access %data, %x_63
+            store %46, -2i
+            %47:i32 = add %x_63, 1i
+            store %x_94, %47
+            %48:i32 = load %x_94
+            store %x_64_phi, %48
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
-            %42:ptr<function, i32, read_write> = access %data, %x_63
-            store %42, -1i
-            %43:i32 = add %x_63, 1i
-            store %x_92, %43
-            %44:i32 = load %x_92
-            store %x_64_phi, %44
+          $B9: {  # case
+            %49:ptr<function, i32, read_write> = access %data, %x_63
+            store %49, -1i
+            %50:i32 = add %x_63, 1i
+            store %x_92, %50
+            %51:i32 = load %x_92
+            store %x_64_phi, %51
             exit_switch  # switch_1
           }
-          %b10 = block {  # case
-            %45:ptr<function, i32, read_write> = access %data, %x_63
-            store %45, 0i
-            %46:i32 = add %x_63, 1i
-            store %x_90, %46
-            %47:i32 = load %x_90
-            store %x_64_phi, %47
+          $B10: {  # case
+            %52:ptr<function, i32, read_write> = access %data, %x_63
+            store %52, 0i
+            %53:i32 = add %x_63, 1i
+            store %x_90, %53
+            %54:i32 = load %x_90
+            store %x_64_phi, %54
             exit_switch  # switch_1
           }
-          %b11 = block {  # case
-            %48:ptr<function, i32, read_write> = access %data, %x_63
-            store %48, 1i
-            %49:i32 = add %x_63, 1i
-            store %x_88, %49
-            %50:i32 = load %x_88
-            store %x_64_phi, %50
+          $B11: {  # case
+            %55:ptr<function, i32, read_write> = access %data, %x_63
+            store %55, 1i
+            %56:i32 = add %x_63, 1i
+            store %x_88, %56
+            %57:i32 = load %x_88
+            store %x_64_phi, %57
             exit_switch  # switch_1
           }
-          %b12 = block {  # case
-            %51:ptr<function, i32, read_write> = access %data, %x_63
-            store %51, 2i
-            %52:i32 = add %x_63, 1i
-            store %x_86, %52
-            %53:i32 = load %x_86
-            store %x_64_phi, %53
+          $B12: {  # case
+            %58:ptr<function, i32, read_write> = access %data, %x_63
+            store %58, 2i
+            %59:i32 = add %x_63, 1i
+            store %x_86, %59
+            %60:i32 = load %x_86
+            store %x_64_phi, %60
             exit_switch  # switch_1
           }
-          %b13 = block {  # case
-            %54:ptr<function, i32, read_write> = access %data, %x_63
-            store %54, 3i
-            %55:i32 = add %x_63, 1i
-            store %x_84, %55
-            %56:i32 = load %x_84
-            store %x_64_phi, %56
+          $B13: {  # case
+            %61:ptr<function, i32, read_write> = access %data, %x_63
+            store %61, 3i
+            %62:i32 = add %x_63, 1i
+            store %x_84, %62
+            %63:i32 = load %x_84
+            store %x_64_phi, %63
             exit_switch  # switch_1
           }
-          %b14 = block {  # case
-            %57:ptr<function, i32, read_write> = access %data, %x_63
-            store %57, 4i
-            %58:i32 = add %x_63, 1i
-            store %x_82, %58
-            %59:i32 = load %x_82
-            store %x_64_phi, %59
+          $B14: {  # case
+            %64:ptr<function, i32, read_write> = access %data, %x_63
+            store %64, 4i
+            %65:i32 = add %x_63, 1i
+            store %x_82, %65
+            %66:i32 = load %x_82
+            store %x_64_phi, %66
             exit_switch  # switch_1
           }
-          %b15 = block {  # case
+          $B15: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_64:i32 = load %x_64_phi
-        continue %b4
+        %67:i32 = load %x_64_phi
+        %x_64:i32 = let %67
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_63_phi, %x_64
-        %61:bool = lt %x_64, 10i
-        %62:bool = eq %61, false
-        break_if %62 %b3
+        %69:bool = lt %x_64, 10i
+        %70:bool = eq %69, false
+        break_if %70  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_103_phi, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
         %x_104:ptr<function, i32, read_write> = var
-        %x_103:i32 = load %x_103_phi
-        %65:bool = lt %x_103, 10i
-        if %65 [t: %b18, f: %b19] {  # if_1
-          %b18 = block {  # true
+        %72:i32 = load %x_103_phi
+        %x_103:i32 = let %72
+        %74:bool = lt %x_103, 10i
+        if %74 [t: $B18, f: $B19] {  # if_1
+          $B18: {  # true
             exit_if  # if_1
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %66:ptr<function, i32, read_write> = access %data, %x_103
-        %x_109:i32 = load %66
-        %68:ptr<function, i32, read_write> = access %temp, %x_103
-        store %68, %x_109
-        %69:i32 = add %x_103, 1i
-        store %x_104, %69
-        %70:i32 = load %x_104
-        store %x_103_phi, %70
-        next_iteration %b16
+      $B17: {  # continuing
+        %75:ptr<function, i32, read_write> = access %data, %x_103
+        %76:i32 = load %75
+        %x_109:i32 = let %76
+        %78:ptr<function, i32, read_write> = access %temp, %x_103
+        store %78, %x_109
+        %79:i32 = add %x_103, 1i
+        store %x_104, %79
+        %80:i32 = load %x_104
+        store %x_103_phi, %80
+        next_iteration  # -> $B16
       }
     }
     store %x_112_phi, 1i
-    loop [b: %b20, c: %b21] {  # loop_3
-      %b20 = block {  # body
+    loop [b: $B20, c: $B21] {  # loop_3
+      $B20: {  # body
         %x_113:ptr<function, i32, read_write> = var
         %x_119_phi:ptr<function, i32, read_write> = var
-        %x_112:i32 = load %x_112_phi
-        %74:bool = lte %x_112, 9i
-        if %74 [t: %b22, f: %b23] {  # if_2
-          %b22 = block {  # true
+        %83:i32 = load %x_112_phi
+        %x_112:i32 = let %83
+        %85:bool = lte %x_112, 9i
+        if %85 [t: $B22, f: $B23] {  # if_2
+          $B22: {  # true
             exit_if  # if_2
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_3
           }
         }
         store %x_119_phi, 0i
-        loop [b: %b24, c: %b25] {  # loop_4
-          %b24 = block {  # body
+        loop [b: $B24, c: $B25] {  # loop_4
+          $B24: {  # body
             %x_131:ptr<function, i32, read_write> = var
             %x_136:ptr<function, i32, read_write> = var
             %x_131_phi:ptr<function, i32, read_write> = var
@@ -206,399 +216,445 @@
             %x_158_phi:ptr<function, i32, read_write> = var
             %x_161_phi:ptr<function, i32, read_write> = var
             %x_171_phi:ptr<function, i32, read_write> = var
-            %x_119:i32 = load %x_119_phi
-            %84:bool = lt %x_119, 9i
-            if %84 [t: %b26, f: %b27] {  # if_3
-              %b26 = block {  # true
+            %94:i32 = load %x_119_phi
+            %x_119:i32 = let %94
+            %96:bool = lt %x_119, 9i
+            if %96 [t: $B26, f: $B27] {  # if_3
+              $B26: {  # true
                 exit_if  # if_3
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_4
               }
             }
-            %x_125:i32 = add %x_119, %x_112
-            %x_126:i32 = sub %x_125, 1i
-            %87:i32 = mul 2i, %x_112
-            %x_120:i32 = add %x_119, %87
-            %89:i32 = sub %x_120, 1i
-            %x_129:i32 = min %89, 9i
+            %97:i32 = add %x_119, %x_112
+            %x_125:i32 = let %97
+            %99:i32 = sub %x_125, 1i
+            %x_126:i32 = let %99
+            %101:i32 = mul 2i, %x_112
+            %102:i32 = add %x_119, %101
+            %x_120:i32 = let %102
+            %104:i32 = sub %x_120, 1i
+            %105:i32 = min %104, 9i
+            %x_129:i32 = let %105
             store %x_131_phi, %x_119
             store %x_134_phi, %x_125
             store %x_136_phi, %x_119
-            loop [b: %b28, c: %b29] {  # loop_5
-              %b28 = block {  # body
+            loop [b: $B28, c: $B29] {  # loop_5
+              $B28: {  # body
                 %x_151:ptr<function, i32, read_write> = var
                 %x_154:ptr<function, i32, read_write> = var
                 %x_135_phi:ptr<function, i32, read_write> = var
                 %x_137_phi:ptr<function, i32, read_write> = var
-                %95:i32 = load %x_131_phi
-                store %x_131, %95
-                %x_134:i32 = load %x_134_phi
-                %97:i32 = load %x_136_phi
-                store %x_136, %97
-                %98:i32 = load %x_136
-                %99:bool = lte %98, %x_126
-                %100:bool = lte %x_134, %x_129
-                %101:bool = and %99, %100
-                if %101 [t: %b30, f: %b31] {  # if_4
-                  %b30 = block {  # true
+                %111:i32 = load %x_131_phi
+                store %x_131, %111
+                %112:i32 = load %x_134_phi
+                %x_134:i32 = let %112
+                %114:i32 = load %x_136_phi
+                store %x_136, %114
+                %115:i32 = load %x_136
+                %116:bool = lte %115, %x_126
+                %117:bool = lte %x_134, %x_129
+                %118:bool = and %116, %117
+                if %118 [t: $B30, f: $B31] {  # if_4
+                  $B30: {  # true
                     exit_if  # if_4
                   }
-                  %b31 = block {  # false
+                  $B31: {  # false
                     exit_loop  # loop_5
                   }
                 }
-                %x_143_save:i32 = load %x_136
-                %103:ptr<function, i32, read_write> = access %data, %x_143_save
-                %x_144:i32 = load %103
+                %119:i32 = load %x_136
+                %x_143_save:i32 = let %119
+                %121:ptr<function, i32, read_write> = access %data, %x_143_save
+                %122:i32 = load %121
+                %x_144:i32 = let %122
                 %x_145_save:i32 = let %x_134
-                %106:ptr<function, i32, read_write> = access %data, %x_145_save
-                %x_146:i32 = load %106
-                %108:i32 = load %x_131
-                %109:i32 = add %108, 1i
-                %x_132:i32 = bitcast %109
-                %111:bool = lt %x_144, %x_146
-                if %111 [t: %b32, f: %b33] {  # if_5
-                  %b32 = block {  # true
-                    %112:i32 = load %x_136
-                    %113:i32 = add %112, 1i
-                    %114:i32 = bitcast %113
-                    store %x_151, %114
-                    %115:ptr<function, i32, read_write> = access %data, %x_143_save
-                    %x_152:i32 = load %115
-                    %117:i32 = load %x_131
-                    %118:ptr<function, i32, read_write> = access %temp, %117
-                    store %118, %x_152
+                %125:ptr<function, i32, read_write> = access %data, %x_145_save
+                %126:i32 = load %125
+                %x_146:i32 = let %126
+                %128:i32 = load %x_131
+                %129:i32 = add %128, 1i
+                %130:i32 = bitcast %129
+                %x_132:i32 = let %130
+                %132:bool = lt %x_144, %x_146
+                if %132 [t: $B32, f: $B33] {  # if_5
+                  $B32: {  # true
+                    %133:i32 = load %x_136
+                    %134:i32 = add %133, 1i
+                    %135:i32 = bitcast %134
+                    store %x_151, %135
+                    %136:ptr<function, i32, read_write> = access %data, %x_143_save
+                    %137:i32 = load %136
+                    %x_152:i32 = let %137
+                    %139:i32 = load %x_131
+                    %140:ptr<function, i32, read_write> = access %temp, %139
+                    store %140, %x_152
                     store %x_135_phi, %x_134
-                    %119:i32 = load %x_151
-                    store %x_137_phi, %119
+                    %141:i32 = load %x_151
+                    store %x_137_phi, %141
                     exit_if  # if_5
                   }
-                  %b33 = block {  # false
-                    %120:i32 = add %x_134, 1i
-                    store %x_154, %120
-                    %121:ptr<function, i32, read_write> = access %data, %x_145_save
-                    %x_155:i32 = load %121
-                    %123:i32 = load %x_131
-                    %124:ptr<function, i32, read_write> = access %temp, %123
-                    store %124, %x_155
-                    %125:i32 = load %x_154
-                    store %x_135_phi, %125
-                    %126:i32 = load %x_136
-                    store %x_137_phi, %126
+                  $B33: {  # false
+                    %142:i32 = add %x_134, 1i
+                    store %x_154, %142
+                    %143:ptr<function, i32, read_write> = access %data, %x_145_save
+                    %144:i32 = load %143
+                    %x_155:i32 = let %144
+                    %146:i32 = load %x_131
+                    %147:ptr<function, i32, read_write> = access %temp, %146
+                    store %147, %x_155
+                    %148:i32 = load %x_154
+                    store %x_135_phi, %148
+                    %149:i32 = load %x_136
+                    store %x_137_phi, %149
                     exit_if  # if_5
                   }
                 }
-                %x_135:i32 = load %x_135_phi
-                %x_137:i32 = load %x_137_phi
-                continue %b29
+                %150:i32 = load %x_135_phi
+                %x_135:i32 = let %150
+                %152:i32 = load %x_137_phi
+                %x_137:i32 = let %152
+                continue  # -> $B29
               }
-              %b29 = block {  # continuing
+              $B29: {  # continuing
                 store %x_131_phi, %x_132
                 store %x_134_phi, %x_135
                 store %x_136_phi, %x_137
-                next_iteration %b28
+                next_iteration  # -> $B28
               }
             }
-            %129:i32 = load %x_131
-            store %x_158_phi, %129
-            %130:i32 = load %x_136
-            store %x_161_phi, %130
-            loop [b: %b34, c: %b35] {  # loop_6
-              %b34 = block {  # body
+            %154:i32 = load %x_131
+            store %x_158_phi, %154
+            %155:i32 = load %x_136
+            store %x_161_phi, %155
+            loop [b: $B34, c: $B35] {  # loop_6
+              $B34: {  # body
                 %x_159:ptr<function, i32, read_write> = var
                 %x_162:ptr<function, i32, read_write> = var
-                %x_158:i32 = load %x_158_phi
-                %x_161:i32 = load %x_161_phi
-                %135:bool = lt %x_161, 10i
-                %136:bool = lte %x_161, %x_126
-                %137:bool = and %135, %136
-                if %137 [t: %b36, f: %b37] {  # if_6
-                  %b36 = block {  # true
+                %158:i32 = load %x_158_phi
+                %x_158:i32 = let %158
+                %160:i32 = load %x_161_phi
+                %x_161:i32 = let %160
+                %162:bool = lt %x_161, 10i
+                %163:bool = lte %x_161, %x_126
+                %164:bool = and %162, %163
+                if %164 [t: $B36, f: $B37] {  # if_6
+                  $B36: {  # true
                     exit_if  # if_6
                   }
-                  %b37 = block {  # false
+                  $B37: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                continue %b35
+                continue  # -> $B35
               }
-              %b35 = block {  # continuing
-                %138:i32 = add %x_158, 1i
-                store %x_159, %138
-                %139:i32 = add %x_161, 1i
-                store %x_162, %139
-                %140:ptr<function, i32, read_write> = access %data, %x_161
-                %x_168:i32 = load %140
-                %142:ptr<function, i32, read_write> = access %temp, %x_158
-                store %142, %x_168
-                %143:i32 = load %x_159
-                store %x_158_phi, %143
-                %144:i32 = load %x_162
-                store %x_161_phi, %144
-                next_iteration %b34
+              $B35: {  # continuing
+                %165:i32 = add %x_158, 1i
+                store %x_159, %165
+                %166:i32 = add %x_161, 1i
+                store %x_162, %166
+                %167:ptr<function, i32, read_write> = access %data, %x_161
+                %168:i32 = load %167
+                %x_168:i32 = let %168
+                %170:ptr<function, i32, read_write> = access %temp, %x_158
+                store %170, %x_168
+                %171:i32 = load %x_159
+                store %x_158_phi, %171
+                %172:i32 = load %x_162
+                store %x_161_phi, %172
+                next_iteration  # -> $B34
               }
             }
             store %x_171_phi, %x_119
-            loop [b: %b38, c: %b39] {  # loop_7
-              %b38 = block {  # body
+            loop [b: $B38, c: $B39] {  # loop_7
+              $B38: {  # body
                 %x_172:ptr<function, i32, read_write> = var
-                %x_171:i32 = load %x_171_phi
-                %147:bool = lte %x_171, %x_129
-                if %147 [t: %b40, f: %b41] {  # if_7
-                  %b40 = block {  # true
+                %174:i32 = load %x_171_phi
+                %x_171:i32 = let %174
+                %176:bool = lte %x_171, %x_129
+                if %176 [t: $B40, f: $B41] {  # if_7
+                  $B40: {  # true
                     exit_if  # if_7
                   }
-                  %b41 = block {  # false
+                  $B41: {  # false
                     exit_loop  # loop_7
                   }
                 }
-                continue %b39
+                continue  # -> $B39
               }
-              %b39 = block {  # continuing
-                %148:ptr<function, i32, read_write> = access %temp, %x_171
-                %x_177:i32 = load %148
-                %150:ptr<function, i32, read_write> = access %data, %x_171
-                store %150, %x_177
-                %151:i32 = add %x_171, 1i
-                store %x_172, %151
-                %152:i32 = load %x_172
-                store %x_171_phi, %152
-                next_iteration %b38
+              $B39: {  # continuing
+                %177:ptr<function, i32, read_write> = access %temp, %x_171
+                %178:i32 = load %177
+                %x_177:i32 = let %178
+                %180:ptr<function, i32, read_write> = access %data, %x_171
+                store %180, %x_177
+                %181:i32 = add %x_171, 1i
+                store %x_172, %181
+                %182:i32 = load %x_172
+                store %x_171_phi, %182
+                next_iteration  # -> $B38
               }
             }
-            continue %b25
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
+          $B25: {  # continuing
             store %x_119_phi, %x_120
-            next_iteration %b24
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %153:i32 = mul 2i, %x_112
-        store %x_113, %153
-        %154:i32 = load %x_113
-        store %x_112_phi, %154
-        next_iteration %b20
+      $B21: {  # continuing
+        %183:i32 = mul 2i, %x_112
+        store %x_113, %183
+        %184:i32 = load %x_113
+        store %x_112_phi, %184
+        next_iteration  # -> $B20
       }
     }
     %x_181:ptr<function, i32, read_write> = var
     %x_199:ptr<function, f32, read_write> = var
     %x_261:ptr<function, f32, read_write> = var
     %x_262_phi:ptr<function, f32, read_write> = var
-    %x_180:f32 = load_vector_element %gl_FragCoord, 1u
-    %160:i32 = convert %x_180
-    store %x_181, %160
-    %161:i32 = load %x_181
-    %162:bool = lt %161, 30i
-    if %162 [t: %b42, f: %b43] {  # if_8
-      %b42 = block {  # true
-        %163:ptr<function, i32, read_write> = access %data, 0i
-        %x_187:i32 = load %163
-        %165:f32 = convert %x_187
-        %166:f32 = mul %165, 0.10000000149011611938f
-        %167:f32 = add 0.5f, %166
-        store %x_190, %167
-        %168:f32 = load %x_190
-        store %x_263_phi, %168
+    %189:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_180:f32 = let %189
+    %191:i32 = call %tint_f32_to_i32, %x_180
+    store %x_181, %191
+    %192:i32 = load %x_181
+    %193:bool = lt %192, 30i
+    if %193 [t: $B42, f: $B43] {  # if_8
+      $B42: {  # true
+        %194:ptr<function, i32, read_write> = access %data, 0i
+        %195:i32 = load %194
+        %x_187:i32 = let %195
+        %197:f32 = convert %x_187
+        %198:f32 = mul %197, 0.10000000149011611938f
+        %199:f32 = add 0.5f, %198
+        store %x_190, %199
+        %200:f32 = load %x_190
+        store %x_263_phi, %200
         exit_if  # if_8
       }
-      %b43 = block {  # false
+      $B43: {  # false
         %x_208:ptr<function, f32, read_write> = var
         %x_260:ptr<function, f32, read_write> = var
         %x_261_phi:ptr<function, f32, read_write> = var
-        %172:i32 = load %x_181
-        %173:bool = lt %172, 60i
-        if %173 [t: %b44, f: %b45] {  # if_9
-          %b44 = block {  # true
-            %174:ptr<function, i32, read_write> = access %data, 1i
-            %x_196:i32 = load %174
-            %176:f32 = convert %x_196
-            %177:f32 = mul %176, 0.10000000149011611938f
-            %178:f32 = add 0.5f, %177
-            store %x_199, %178
-            %179:f32 = load %x_199
-            store %x_262_phi, %179
+        %204:i32 = load %x_181
+        %205:bool = lt %204, 60i
+        if %205 [t: $B44, f: $B45] {  # if_9
+          $B44: {  # true
+            %206:ptr<function, i32, read_write> = access %data, 1i
+            %207:i32 = load %206
+            %x_196:i32 = let %207
+            %209:f32 = convert %x_196
+            %210:f32 = mul %209, 0.10000000149011611938f
+            %211:f32 = add 0.5f, %210
+            store %x_199, %211
+            %212:f32 = load %x_199
+            store %x_262_phi, %212
             exit_if  # if_9
           }
-          %b45 = block {  # false
+          $B45: {  # false
             %x_217:ptr<function, f32, read_write> = var
             %x_259:ptr<function, f32, read_write> = var
             %x_260_phi:ptr<function, f32, read_write> = var
-            %183:i32 = load %x_181
-            %184:bool = lt %183, 90i
-            if %184 [t: %b46, f: %b47] {  # if_10
-              %b46 = block {  # true
-                %185:ptr<function, i32, read_write> = access %data, 2i
-                %x_205:i32 = load %185
-                %187:f32 = convert %x_205
-                %188:f32 = mul %187, 0.10000000149011611938f
-                %189:f32 = add 0.5f, %188
-                store %x_208, %189
-                %190:f32 = load %x_208
-                store %x_261_phi, %190
+            %216:i32 = load %x_181
+            %217:bool = lt %216, 90i
+            if %217 [t: $B46, f: $B47] {  # if_10
+              $B46: {  # true
+                %218:ptr<function, i32, read_write> = access %data, 2i
+                %219:i32 = load %218
+                %x_205:i32 = let %219
+                %221:f32 = convert %x_205
+                %222:f32 = mul %221, 0.10000000149011611938f
+                %223:f32 = add 0.5f, %222
+                store %x_208, %223
+                %224:f32 = load %x_208
+                store %x_261_phi, %224
                 exit_if  # if_10
               }
-              %b47 = block {  # false
-                %191:i32 = load %x_181
-                %192:bool = lt %191, 120i
-                if %192 [t: %b48, f: %b49] {  # if_11
-                  %b48 = block {  # true
-                    %193:ptr<function, i32, read_write> = access %data, 3i
-                    %x_214:i32 = load %193
-                    %195:f32 = convert %x_214
-                    %196:f32 = mul %195, 0.10000000149011611938f
-                    %197:f32 = add 0.5f, %196
-                    store %x_217, %197
-                    %198:f32 = load %x_217
-                    store %x_260_phi, %198
+              $B47: {  # false
+                %225:i32 = load %x_181
+                %226:bool = lt %225, 120i
+                if %226 [t: $B48, f: $B49] {  # if_11
+                  $B48: {  # true
+                    %227:ptr<function, i32, read_write> = access %data, 3i
+                    %228:i32 = load %227
+                    %x_214:i32 = let %228
+                    %230:f32 = convert %x_214
+                    %231:f32 = mul %230, 0.10000000149011611938f
+                    %232:f32 = add 0.5f, %231
+                    store %x_217, %232
+                    %233:f32 = load %x_217
+                    store %x_260_phi, %233
                     exit_if  # if_11
                   }
-                  %b49 = block {  # false
+                  $B49: {  # false
                     %x_230:ptr<function, f32, read_write> = var
                     %x_258:ptr<function, f32, read_write> = var
                     %x_259_phi:ptr<function, f32, read_write> = var
-                    %202:i32 = load %x_181
-                    %203:bool = lt %202, 150i
-                    if %203 [t: %b50, f: %b51] {  # if_12
-                      %b50 = block {  # true
-                        discard
+                    %237:i32 = load %x_181
+                    %238:bool = lt %237, 150i
+                    if %238 [t: $B50, f: $B51] {  # if_12
+                      $B50: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b51 = block {  # false
+                      $B51: {  # false
                         %x_239:ptr<function, f32, read_write> = var
                         %x_257:ptr<function, f32, read_write> = var
                         %x_258_phi:ptr<function, f32, read_write> = var
-                        %207:i32 = load %x_181
-                        %208:bool = lt %207, 180i
-                        if %208 [t: %b52, f: %b53] {  # if_13
-                          %b52 = block {  # true
-                            %209:ptr<function, i32, read_write> = access %data, 5i
-                            %x_227:i32 = load %209
-                            %211:f32 = convert %x_227
-                            %212:f32 = mul %211, 0.10000000149011611938f
-                            %213:f32 = add 0.5f, %212
-                            store %x_230, %213
-                            %214:f32 = load %x_230
-                            store %x_259_phi, %214
+                        %242:i32 = load %x_181
+                        %243:bool = lt %242, 180i
+                        if %243 [t: $B52, f: $B53] {  # if_13
+                          $B52: {  # true
+                            %244:ptr<function, i32, read_write> = access %data, 5i
+                            %245:i32 = load %244
+                            %x_227:i32 = let %245
+                            %247:f32 = convert %x_227
+                            %248:f32 = mul %247, 0.10000000149011611938f
+                            %249:f32 = add 0.5f, %248
+                            store %x_230, %249
+                            %250:f32 = load %x_230
+                            store %x_259_phi, %250
                             exit_if  # if_13
                           }
-                          %b53 = block {  # false
+                          $B53: {  # false
                             %x_248:ptr<function, f32, read_write> = var
                             %x_256:ptr<function, f32, read_write> = var
                             %x_257_phi:ptr<function, f32, read_write> = var
-                            %218:i32 = load %x_181
-                            %219:bool = lt %218, 210i
-                            if %219 [t: %b54, f: %b55] {  # if_14
-                              %b54 = block {  # true
-                                %220:ptr<function, i32, read_write> = access %data, 6i
-                                %x_236:i32 = load %220
-                                %222:f32 = convert %x_236
-                                %223:f32 = mul %222, 0.10000000149011611938f
-                                %224:f32 = add 0.5f, %223
-                                store %x_239, %224
-                                %225:f32 = load %x_239
-                                store %x_258_phi, %225
+                            %254:i32 = load %x_181
+                            %255:bool = lt %254, 210i
+                            if %255 [t: $B54, f: $B55] {  # if_14
+                              $B54: {  # true
+                                %256:ptr<function, i32, read_write> = access %data, 6i
+                                %257:i32 = load %256
+                                %x_236:i32 = let %257
+                                %259:f32 = convert %x_236
+                                %260:f32 = mul %259, 0.10000000149011611938f
+                                %261:f32 = add 0.5f, %260
+                                store %x_239, %261
+                                %262:f32 = load %x_239
+                                store %x_258_phi, %262
                                 exit_if  # if_14
                               }
-                              %b55 = block {  # false
-                                %226:i32 = load %x_181
-                                %227:bool = lt %226, 240i
-                                if %227 [t: %b56, f: %b57] {  # if_15
-                                  %b56 = block {  # true
-                                    %228:ptr<function, i32, read_write> = access %data, 7i
-                                    %x_245:i32 = load %228
-                                    %230:f32 = convert %x_245
-                                    %231:f32 = mul %230, 0.10000000149011611938f
-                                    %232:f32 = add 0.5f, %231
-                                    store %x_248, %232
-                                    %233:f32 = load %x_248
-                                    store %x_257_phi, %233
+                              $B55: {  # false
+                                %263:i32 = load %x_181
+                                %264:bool = lt %263, 240i
+                                if %264 [t: $B56, f: $B57] {  # if_15
+                                  $B56: {  # true
+                                    %265:ptr<function, i32, read_write> = access %data, 7i
+                                    %266:i32 = load %265
+                                    %x_245:i32 = let %266
+                                    %268:f32 = convert %x_245
+                                    %269:f32 = mul %268, 0.10000000149011611938f
+                                    %270:f32 = add 0.5f, %269
+                                    store %x_248, %270
+                                    %271:f32 = load %x_248
+                                    store %x_257_phi, %271
                                     exit_if  # if_15
                                   }
-                                  %b57 = block {  # false
-                                    %234:i32 = load %x_181
-                                    %235:bool = lt %234, 270i
-                                    if %235 [t: %b58, f: %b59] {  # if_16
-                                      %b58 = block {  # true
+                                  $B57: {  # false
+                                    %272:i32 = load %x_181
+                                    %273:bool = lt %272, 270i
+                                    if %273 [t: $B58, f: $B59] {  # if_16
+                                      $B58: {  # true
                                         exit_if  # if_16
                                       }
-                                      %b59 = block {  # false
-                                        discard
+                                      $B59: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
-                                    %236:ptr<function, i32, read_write> = access %data, 8i
-                                    %x_253:i32 = load %236
-                                    %238:f32 = convert %x_253
-                                    %239:f32 = mul %238, 0.10000000149011611938f
-                                    %240:f32 = add 0.5f, %239
-                                    store %x_256, %240
-                                    %241:f32 = load %x_256
-                                    store %x_257_phi, %241
+                                    %274:ptr<function, i32, read_write> = access %data, 8i
+                                    %275:i32 = load %274
+                                    %x_253:i32 = let %275
+                                    %277:f32 = convert %x_253
+                                    %278:f32 = mul %277, 0.10000000149011611938f
+                                    %279:f32 = add 0.5f, %278
+                                    store %x_256, %279
+                                    %280:f32 = load %x_256
+                                    store %x_257_phi, %280
                                     exit_if  # if_15
                                   }
                                 }
-                                %242:f32 = load %x_257_phi
-                                store %x_257, %242
-                                %243:f32 = load %x_257
-                                store %x_258_phi, %243
+                                %281:f32 = load %x_257_phi
+                                store %x_257, %281
+                                %282:f32 = load %x_257
+                                store %x_258_phi, %282
                                 exit_if  # if_14
                               }
                             }
-                            %244:f32 = load %x_258_phi
-                            store %x_258, %244
-                            %245:f32 = load %x_258
-                            store %x_259_phi, %245
+                            %283:f32 = load %x_258_phi
+                            store %x_258, %283
+                            %284:f32 = load %x_258
+                            store %x_259_phi, %284
                             exit_if  # if_13
                           }
                         }
-                        %246:f32 = load %x_259_phi
-                        store %x_259, %246
+                        %285:f32 = load %x_259_phi
+                        store %x_259, %285
                         exit_if  # if_12
                       }
                     }
-                    %247:f32 = load %x_259
-                    store %x_260_phi, %247
+                    %286:f32 = load %x_259
+                    store %x_260_phi, %286
                     exit_if  # if_11
                   }
                 }
-                %248:f32 = load %x_260_phi
-                store %x_260, %248
-                %249:f32 = load %x_260
-                store %x_261_phi, %249
+                %287:f32 = load %x_260_phi
+                store %x_260, %287
+                %288:f32 = load %x_260
+                store %x_261_phi, %288
                 exit_if  # if_10
               }
             }
-            %250:f32 = load %x_261_phi
-            store %x_261, %250
-            %251:f32 = load %x_261
-            store %x_262_phi, %251
+            %289:f32 = load %x_261_phi
+            store %x_261, %289
+            %290:f32 = load %x_261
+            store %x_262_phi, %290
             exit_if  # if_9
           }
         }
-        %252:f32 = load %x_262_phi
-        store %x_262, %252
-        %253:f32 = load %x_262
-        store %x_263_phi, %253
+        %291:f32 = load %x_262_phi
+        store %x_262, %291
+        %292:f32 = load %x_262
+        store %x_263_phi, %292
         exit_if  # if_8
       }
     }
-    %x_263:f32 = load %x_263_phi
-    %255:vec4<f32> = construct %x_263, %x_263, %x_263, 1.0f
-    store %x_GLF_color, %255
+    %293:f32 = load %x_263_phi
+    %x_263:f32 = let %293
+    %295:vec4<f32> = construct %x_263, %x_263, %x_263, 1.0f
+    store %x_GLF_color, %295
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b60 {
-  %b60 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B60: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %258:void = call %main_1
-    %259:vec4<f32> = load %x_GLF_color
-    %260:main_out = construct %259
-    ret %260
+    %298:void = call %main_1
+    %299:vec4<f32> = load %x_GLF_color
+    %300:main_out = construct %299
+    %301:bool = load %continue_execution
+    %302:bool = eq %301, false
+    if %302 [t: $B61] {  # if_17
+      $B61: {  # true
+        terminate_invocation
+      }
+    }
+    ret %300
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B62: {
+    %304:i32 = convert %value
+    %305:bool = gte %value, -2147483648.0f
+    %306:i32 = select -2147483648i, %304, %305
+    %307:bool = lte %value, 2147483520.0f
+    %308:i32 = select 2147483647i, %306, %307
+    ret %308
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.msl
index 18d1c87..55888a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, array<i32, 10>, read_write> = var
     %data:ptr<function, array<i32, 10>, read_write> = var
     %x_63:ptr<function, i32, read_write> = var
@@ -24,12 +25,12 @@
     %x_189:ptr<function, f32, read_write> = var
     %x_261:ptr<function, f32, read_write> = var
     %x_262:ptr<function, f32, read_write> = var
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %14:f32 = load_vector_element %13, 0u
-    %15:i32 = convert %14
-    store %x_63, %15
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %15:f32 = load_vector_element %14, 0u
+    %16:i32 = call %tint_f32_to_i32, %15
+    store %x_63, %16
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_99:ptr<function, i32, read_write> = var
         %x_97:ptr<function, i32, read_write> = var
         %x_95:ptr<function, i32, read_write> = var
@@ -41,581 +42,605 @@
         %x_83:ptr<function, i32, read_write> = var
         %x_81:ptr<function, i32, read_write> = var
         %x_64:ptr<function, i32, read_write> = var
-        %27:i32 = load %x_63
-        %28:i32 = add %27, 1i
-        store %x_64, %28
         %29:i32 = load %x_63
-        switch %29 [c: (9i, %b5), c: (8i, %b6), c: (7i, %b7), c: (6i, %b8), c: (5i, %b9), c: (4i, %b10), c: (3i, %b11), c: (2i, %b12), c: (1i, %b13), c: (0i, %b14), c: (default, %b15)] {  # switch_1
-          %b5 = block {  # case
-            %30:i32 = load %x_63
-            %31:ptr<function, i32, read_write> = access %data, %30
-            store %31, -5i
+        %30:i32 = add %29, 1i
+        store %x_64, %30
+        %31:i32 = load %x_63
+        switch %31 [c: (9i, $B5), c: (8i, $B6), c: (7i, $B7), c: (6i, $B8), c: (5i, $B9), c: (4i, $B10), c: (3i, $B11), c: (2i, $B12), c: (1i, $B13), c: (0i, $B14), c: (default, $B15)] {  # switch_1
+          $B5: {  # case
             %32:i32 = load %x_63
-            %33:i32 = add %32, 1i
-            store %x_99, %33
-            %34:i32 = load %x_99
-            store %x_64, %34
+            %33:ptr<function, i32, read_write> = access %data, %32
+            store %33, -5i
+            %34:i32 = load %x_63
+            %35:i32 = add %34, 1i
+            store %x_99, %35
+            %36:i32 = load %x_99
+            store %x_64, %36
             exit_switch  # switch_1
           }
-          %b6 = block {  # case
-            %35:i32 = load %x_63
-            %36:ptr<function, i32, read_write> = access %data, %35
-            store %36, -4i
+          $B6: {  # case
             %37:i32 = load %x_63
-            %38:i32 = add %37, 1i
-            store %x_97, %38
-            %39:i32 = load %x_97
-            store %x_64, %39
+            %38:ptr<function, i32, read_write> = access %data, %37
+            store %38, -4i
+            %39:i32 = load %x_63
+            %40:i32 = add %39, 1i
+            store %x_97, %40
+            %41:i32 = load %x_97
+            store %x_64, %41
             exit_switch  # switch_1
           }
-          %b7 = block {  # case
-            %40:i32 = load %x_63
-            %41:ptr<function, i32, read_write> = access %data, %40
-            store %41, -3i
+          $B7: {  # case
             %42:i32 = load %x_63
-            %43:i32 = add %42, 1i
-            store %x_95, %43
-            %44:i32 = load %x_95
-            store %x_64, %44
+            %43:ptr<function, i32, read_write> = access %data, %42
+            store %43, -3i
+            %44:i32 = load %x_63
+            %45:i32 = add %44, 1i
+            store %x_95, %45
+            %46:i32 = load %x_95
+            store %x_64, %46
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
-            %45:i32 = load %x_63
-            %46:ptr<function, i32, read_write> = access %data, %45
-            store %46, -2i
+          $B8: {  # case
             %47:i32 = load %x_63
-            %48:i32 = add %47, 1i
-            store %x_93, %48
-            %49:i32 = load %x_93
-            store %x_64, %49
+            %48:ptr<function, i32, read_write> = access %data, %47
+            store %48, -2i
+            %49:i32 = load %x_63
+            %50:i32 = add %49, 1i
+            store %x_93, %50
+            %51:i32 = load %x_93
+            store %x_64, %51
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
-            %50:i32 = load %x_63
-            %51:ptr<function, i32, read_write> = access %data, %50
-            store %51, -1i
+          $B9: {  # case
             %52:i32 = load %x_63
-            %53:i32 = add %52, 1i
-            store %x_91, %53
-            %54:i32 = load %x_91
-            store %x_64, %54
+            %53:ptr<function, i32, read_write> = access %data, %52
+            store %53, -1i
+            %54:i32 = load %x_63
+            %55:i32 = add %54, 1i
+            store %x_91, %55
+            %56:i32 = load %x_91
+            store %x_64, %56
             exit_switch  # switch_1
           }
-          %b10 = block {  # case
-            %55:i32 = load %x_63
-            %56:ptr<function, i32, read_write> = access %data, %55
-            store %56, 0i
+          $B10: {  # case
             %57:i32 = load %x_63
-            %58:i32 = add %57, 1i
-            store %x_89, %58
-            %59:i32 = load %x_89
-            store %x_64, %59
+            %58:ptr<function, i32, read_write> = access %data, %57
+            store %58, 0i
+            %59:i32 = load %x_63
+            %60:i32 = add %59, 1i
+            store %x_89, %60
+            %61:i32 = load %x_89
+            store %x_64, %61
             exit_switch  # switch_1
           }
-          %b11 = block {  # case
-            %60:i32 = load %x_63
-            %61:ptr<function, i32, read_write> = access %data, %60
-            store %61, 1i
+          $B11: {  # case
             %62:i32 = load %x_63
-            %63:i32 = add %62, 1i
-            store %x_87, %63
-            %64:i32 = load %x_87
-            store %x_64, %64
+            %63:ptr<function, i32, read_write> = access %data, %62
+            store %63, 1i
+            %64:i32 = load %x_63
+            %65:i32 = add %64, 1i
+            store %x_87, %65
+            %66:i32 = load %x_87
+            store %x_64, %66
             exit_switch  # switch_1
           }
-          %b12 = block {  # case
-            %65:i32 = load %x_63
-            %66:ptr<function, i32, read_write> = access %data, %65
-            store %66, 2i
+          $B12: {  # case
             %67:i32 = load %x_63
-            %68:i32 = add %67, 1i
-            store %x_85, %68
-            %69:i32 = load %x_85
-            store %x_64, %69
+            %68:ptr<function, i32, read_write> = access %data, %67
+            store %68, 2i
+            %69:i32 = load %x_63
+            %70:i32 = add %69, 1i
+            store %x_85, %70
+            %71:i32 = load %x_85
+            store %x_64, %71
             exit_switch  # switch_1
           }
-          %b13 = block {  # case
-            %70:i32 = load %x_63
-            %71:ptr<function, i32, read_write> = access %data, %70
-            store %71, 3i
+          $B13: {  # case
             %72:i32 = load %x_63
-            %73:i32 = add %72, 1i
-            store %x_83, %73
-            %74:i32 = load %x_83
-            store %x_64, %74
+            %73:ptr<function, i32, read_write> = access %data, %72
+            store %73, 3i
+            %74:i32 = load %x_63
+            %75:i32 = add %74, 1i
+            store %x_83, %75
+            %76:i32 = load %x_83
+            store %x_64, %76
             exit_switch  # switch_1
           }
-          %b14 = block {  # case
-            %75:i32 = load %x_63
-            %76:ptr<function, i32, read_write> = access %data, %75
-            store %76, 4i
+          $B14: {  # case
             %77:i32 = load %x_63
-            %78:i32 = add %77, 1i
-            store %x_81, %78
-            %79:i32 = load %x_81
-            store %x_64, %79
+            %78:ptr<function, i32, read_write> = access %data, %77
+            store %78, 4i
+            %79:i32 = load %x_63
+            %80:i32 = add %79, 1i
+            store %x_81, %80
+            %81:i32 = load %x_81
+            store %x_64, %81
             exit_switch  # switch_1
           }
-          %b15 = block {  # case
+          $B15: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %80:i32 = load %x_64
-        store %x_63, %80
-        %81:i32 = load %x_64
-        %82:bool = lt %81, 10i
-        %83:bool = eq %82, false
-        break_if %83 %b3
+      $B4: {  # continuing
+        %82:i32 = load %x_64
+        store %x_63, %82
+        %83:i32 = load %x_64
+        %84:bool = lt %83, 10i
+        %85:bool = eq %84, false
+        break_if %85  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_102, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
         %x_103:ptr<function, i32, read_write> = var
-        %85:i32 = load %x_102
-        %86:bool = lt %85, 10i
-        if %86 [t: %b18, f: %b19] {  # if_1
-          %b18 = block {  # true
+        %87:i32 = load %x_102
+        %88:bool = lt %87, 10i
+        if %88 [t: $B18, f: $B19] {  # if_1
+          $B18: {  # true
             exit_if  # if_1
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %87:i32 = load %x_102
-        %88:ptr<function, i32, read_write> = access %temp, %87
+      $B17: {  # continuing
         %89:i32 = load %x_102
-        %90:ptr<function, i32, read_write> = access %data, %89
-        %91:i32 = load %90
-        store %88, %91
-        %92:i32 = load %x_102
-        %93:i32 = add %92, 1i
-        store %x_103, %93
-        %94:i32 = load %x_103
-        store %x_102, %94
-        next_iteration %b16
+        %90:ptr<function, i32, read_write> = access %temp, %89
+        %91:i32 = load %x_102
+        %92:ptr<function, i32, read_write> = access %data, %91
+        %93:i32 = load %92
+        store %90, %93
+        %94:i32 = load %x_102
+        %95:i32 = add %94, 1i
+        store %x_103, %95
+        %96:i32 = load %x_103
+        store %x_102, %96
+        next_iteration  # -> $B16
       }
     }
     store %x_111, 1i
-    loop [b: %b20, c: %b21] {  # loop_3
-      %b20 = block {  # body
+    loop [b: $B20, c: $B21] {  # loop_3
+      $B20: {  # body
         %x_118:ptr<function, i32, read_write> = var
         %x_112:ptr<function, i32, read_write> = var
-        %97:i32 = load %x_111
-        %98:bool = lte %97, 9i
-        if %98 [t: %b22, f: %b23] {  # if_2
-          %b22 = block {  # true
+        %99:i32 = load %x_111
+        %100:bool = lte %99, 9i
+        if %100 [t: $B22, f: $B23] {  # if_2
+          $B22: {  # true
             exit_if  # if_2
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_3
           }
         }
         store %x_118, 0i
-        loop [b: %b24, c: %b25] {  # loop_4
-          %b24 = block {  # body
+        loop [b: $B24, c: $B25] {  # loop_4
+          $B24: {  # body
             %x_130:ptr<function, i32, read_write> = var
             %x_133:ptr<function, i32, read_write> = var
             %x_135:ptr<function, i32, read_write> = var
             %x_157:ptr<function, i32, read_write> = var
             %x_160:ptr<function, i32, read_write> = var
             %x_170:ptr<function, i32, read_write> = var
-            %105:i32 = load %x_118
-            %106:bool = lt %105, 9i
-            if %106 [t: %b26, f: %b27] {  # if_3
-              %b26 = block {  # true
+            %107:i32 = load %x_118
+            %108:bool = lt %107, 9i
+            if %108 [t: $B26, f: $B27] {  # if_3
+              $B26: {  # true
                 exit_if  # if_3
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_4
               }
             }
-            %107:i32 = load %x_118
-            %108:i32 = load %x_111
-            %x_124:i32 = add %107, %108
-            %x_125:i32 = sub %x_124, 1i
-            %111:i32 = load %x_118
-            %112:i32 = load %x_111
-            %113:i32 = mul 2i, %112
-            %x_119:i32 = add %111, %113
-            %115:i32 = sub %x_119, 1i
-            %x_128:i32 = min %115, 9i
-            %117:i32 = load %x_118
-            store %x_130, %117
+            %109:i32 = load %x_118
+            %110:i32 = load %x_111
+            %111:i32 = add %109, %110
+            %x_124:i32 = let %111
+            %113:i32 = sub %x_124, 1i
+            %x_125:i32 = let %113
+            %115:i32 = load %x_118
+            %116:i32 = load %x_111
+            %117:i32 = mul 2i, %116
+            %118:i32 = add %115, %117
+            %x_119:i32 = let %118
+            %120:i32 = sub %x_119, 1i
+            %121:i32 = min %120, 9i
+            %x_128:i32 = let %121
+            %123:i32 = load %x_118
+            store %x_130, %123
             store %x_133, %x_124
-            %118:i32 = load %x_118
-            store %x_135, %118
-            loop [b: %b28, c: %b29] {  # loop_5
-              %b28 = block {  # body
+            %124:i32 = load %x_118
+            store %x_135, %124
+            loop [b: $B28, c: $B29] {  # loop_5
+              $B28: {  # body
                 %x_150:ptr<function, i32, read_write> = var
                 %x_153:ptr<function, i32, read_write> = var
                 %x_134:ptr<function, i32, read_write> = var
                 %x_136:ptr<function, i32, read_write> = var
-                %123:i32 = load %x_135
-                %124:bool = lte %123, %x_125
-                %125:i32 = load %x_133
-                %126:bool = lte %125, %x_128
-                %127:bool = and %124, %126
-                if %127 [t: %b30, f: %b31] {  # if_4
-                  %b30 = block {  # true
+                %129:i32 = load %x_135
+                %130:bool = lte %129, %x_125
+                %131:i32 = load %x_133
+                %132:bool = lte %131, %x_128
+                %133:bool = and %130, %132
+                if %133 [t: $B30, f: $B31] {  # if_4
+                  $B30: {  # true
                     exit_if  # if_4
                   }
-                  %b31 = block {  # false
+                  $B31: {  # false
                     exit_loop  # loop_5
                   }
                 }
-                %x_142_save:i32 = load %x_135
-                %x_144_save:i32 = load %x_133
-                %130:i32 = load %x_130
-                %x_131:i32 = add %130, 1i
-                %132:i32 = load %x_135
-                %133:ptr<function, i32, read_write> = access %data, %132
-                %134:i32 = load %133
-                %135:i32 = load %x_133
-                %136:ptr<function, i32, read_write> = access %data, %135
-                %137:i32 = load %136
-                %138:bool = lt %134, %137
-                if %138 [t: %b32, f: %b33] {  # if_5
-                  %b32 = block {  # true
-                    %139:i32 = load %x_135
-                    %140:i32 = add %139, 1i
-                    store %x_150, %140
-                    %141:i32 = load %x_130
-                    %142:ptr<function, i32, read_write> = access %temp, %141
-                    %143:ptr<function, i32, read_write> = access %data, %x_142_save
-                    %144:i32 = load %143
-                    store %142, %144
-                    %145:i32 = load %x_133
-                    store %x_134, %145
-                    %146:i32 = load %x_150
-                    store %x_136, %146
+                %134:i32 = load %x_135
+                %x_142_save:i32 = let %134
+                %136:i32 = load %x_133
+                %x_144_save:i32 = let %136
+                %138:i32 = load %x_130
+                %139:i32 = add %138, 1i
+                %x_131:i32 = let %139
+                %141:i32 = load %x_135
+                %142:ptr<function, i32, read_write> = access %data, %141
+                %143:i32 = load %142
+                %144:i32 = load %x_133
+                %145:ptr<function, i32, read_write> = access %data, %144
+                %146:i32 = load %145
+                %147:bool = lt %143, %146
+                if %147 [t: $B32, f: $B33] {  # if_5
+                  $B32: {  # true
+                    %148:i32 = load %x_135
+                    %149:i32 = add %148, 1i
+                    store %x_150, %149
+                    %150:i32 = load %x_130
+                    %151:ptr<function, i32, read_write> = access %temp, %150
+                    %152:ptr<function, i32, read_write> = access %data, %x_142_save
+                    %153:i32 = load %152
+                    store %151, %153
+                    %154:i32 = load %x_133
+                    store %x_134, %154
+                    %155:i32 = load %x_150
+                    store %x_136, %155
                     exit_if  # if_5
                   }
-                  %b33 = block {  # false
-                    %147:i32 = load %x_133
-                    %148:i32 = add %147, 1i
-                    store %x_153, %148
-                    %149:i32 = load %x_130
-                    %150:ptr<function, i32, read_write> = access %temp, %149
-                    %151:ptr<function, i32, read_write> = access %data, %x_144_save
-                    %152:i32 = load %151
-                    store %150, %152
-                    %153:i32 = load %x_153
-                    store %x_134, %153
-                    %154:i32 = load %x_135
-                    store %x_136, %154
+                  $B33: {  # false
+                    %156:i32 = load %x_133
+                    %157:i32 = add %156, 1i
+                    store %x_153, %157
+                    %158:i32 = load %x_130
+                    %159:ptr<function, i32, read_write> = access %temp, %158
+                    %160:ptr<function, i32, read_write> = access %data, %x_144_save
+                    %161:i32 = load %160
+                    store %159, %161
+                    %162:i32 = load %x_153
+                    store %x_134, %162
+                    %163:i32 = load %x_135
+                    store %x_136, %163
                     exit_if  # if_5
                   }
                 }
-                continue %b29
+                continue  # -> $B29
               }
-              %b29 = block {  # continuing
+              $B29: {  # continuing
                 store %x_130, %x_131
-                %155:i32 = load %x_134
-                store %x_133, %155
-                %156:i32 = load %x_136
-                store %x_135, %156
-                next_iteration %b28
+                %164:i32 = load %x_134
+                store %x_133, %164
+                %165:i32 = load %x_136
+                store %x_135, %165
+                next_iteration  # -> $B28
               }
             }
-            %157:i32 = load %x_130
-            store %x_157, %157
-            %158:i32 = load %x_135
-            store %x_160, %158
-            loop [b: %b34, c: %b35] {  # loop_6
-              %b34 = block {  # body
+            %166:i32 = load %x_130
+            store %x_157, %166
+            %167:i32 = load %x_135
+            store %x_160, %167
+            loop [b: $B34, c: $B35] {  # loop_6
+              $B34: {  # body
                 %x_158:ptr<function, i32, read_write> = var
                 %x_161:ptr<function, i32, read_write> = var
-                %161:i32 = load %x_160
-                %162:bool = lt %161, 10i
-                %163:i32 = load %x_160
-                %164:bool = lte %163, %x_125
-                %165:bool = and %162, %164
-                if %165 [t: %b36, f: %b37] {  # if_6
-                  %b36 = block {  # true
+                %170:i32 = load %x_160
+                %171:bool = lt %170, 10i
+                %172:i32 = load %x_160
+                %173:bool = lte %172, %x_125
+                %174:bool = and %171, %173
+                if %174 [t: $B36, f: $B37] {  # if_6
+                  $B36: {  # true
                     exit_if  # if_6
                   }
-                  %b37 = block {  # false
+                  $B37: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                continue %b35
+                continue  # -> $B35
               }
-              %b35 = block {  # continuing
-                %166:i32 = load %x_157
-                %167:i32 = add %166, 1i
-                store %x_158, %167
-                %168:i32 = load %x_160
-                %169:i32 = add %168, 1i
-                store %x_161, %169
-                %170:i32 = load %x_157
-                %171:ptr<function, i32, read_write> = access %temp, %170
-                %172:i32 = load %x_160
-                %173:ptr<function, i32, read_write> = access %data, %172
-                %174:i32 = load %173
-                store %171, %174
-                %175:i32 = load %x_158
-                store %x_157, %175
-                %176:i32 = load %x_161
-                store %x_160, %176
-                next_iteration %b34
+              $B35: {  # continuing
+                %175:i32 = load %x_157
+                %176:i32 = add %175, 1i
+                store %x_158, %176
+                %177:i32 = load %x_160
+                %178:i32 = add %177, 1i
+                store %x_161, %178
+                %179:i32 = load %x_157
+                %180:ptr<function, i32, read_write> = access %temp, %179
+                %181:i32 = load %x_160
+                %182:ptr<function, i32, read_write> = access %data, %181
+                %183:i32 = load %182
+                store %180, %183
+                %184:i32 = load %x_158
+                store %x_157, %184
+                %185:i32 = load %x_161
+                store %x_160, %185
+                next_iteration  # -> $B34
               }
             }
-            %177:i32 = load %x_118
-            store %x_170, %177
-            loop [b: %b38, c: %b39] {  # loop_7
-              %b38 = block {  # body
+            %186:i32 = load %x_118
+            store %x_170, %186
+            loop [b: $B38, c: $B39] {  # loop_7
+              $B38: {  # body
                 %x_171:ptr<function, i32, read_write> = var
-                %179:i32 = load %x_170
-                %180:bool = lte %179, %x_128
-                if %180 [t: %b40, f: %b41] {  # if_7
-                  %b40 = block {  # true
+                %188:i32 = load %x_170
+                %189:bool = lte %188, %x_128
+                if %189 [t: $B40, f: $B41] {  # if_7
+                  $B40: {  # true
                     exit_if  # if_7
                   }
-                  %b41 = block {  # false
+                  $B41: {  # false
                     exit_loop  # loop_7
                   }
                 }
-                continue %b39
+                continue  # -> $B39
               }
-              %b39 = block {  # continuing
-                %181:i32 = load %x_170
-                %182:ptr<function, i32, read_write> = access %data, %181
-                %183:i32 = load %x_170
-                %184:ptr<function, i32, read_write> = access %temp, %183
-                %185:i32 = load %184
-                store %182, %185
-                %186:i32 = load %x_170
-                %187:i32 = add %186, 1i
-                store %x_171, %187
-                %188:i32 = load %x_171
-                store %x_170, %188
-                next_iteration %b38
+              $B39: {  # continuing
+                %190:i32 = load %x_170
+                %191:ptr<function, i32, read_write> = access %data, %190
+                %192:i32 = load %x_170
+                %193:ptr<function, i32, read_write> = access %temp, %192
+                %194:i32 = load %193
+                store %191, %194
+                %195:i32 = load %x_170
+                %196:i32 = add %195, 1i
+                store %x_171, %196
+                %197:i32 = load %x_171
+                store %x_170, %197
+                next_iteration  # -> $B38
               }
             }
-            continue %b25
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
+          $B25: {  # continuing
             store %x_118, %x_119
-            next_iteration %b24
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %189:i32 = load %x_111
-        %190:i32 = mul 2i, %189
-        store %x_112, %190
-        %191:i32 = load %x_112
-        store %x_111, %191
-        next_iteration %b20
+      $B21: {  # continuing
+        %198:i32 = load %x_111
+        %199:i32 = mul 2i, %198
+        store %x_112, %199
+        %200:i32 = load %x_112
+        store %x_111, %200
+        next_iteration  # -> $B20
       }
     }
     %x_180:ptr<function, i32, read_write> = var
     %x_198:ptr<function, f32, read_write> = var
     %x_260:ptr<function, f32, read_write> = var
-    %195:f32 = load_vector_element %gl_FragCoord, 1u
-    %196:i32 = convert %195
-    store %x_180, %196
-    %197:i32 = load %x_180
-    %198:bool = lt %197, 30i
-    if %198 [t: %b42, f: %b43] {  # if_8
-      %b42 = block {  # true
-        %199:ptr<function, i32, read_write> = access %data, 0i
-        %200:i32 = load %199
-        %201:f32 = convert %200
-        %202:f32 = mul %201, 0.10000000149011611938f
-        %203:f32 = add 0.5f, %202
-        store %x_189, %203
-        %204:f32 = load %x_189
-        store %x_262, %204
+    %204:f32 = load_vector_element %gl_FragCoord, 1u
+    %205:i32 = call %tint_f32_to_i32, %204
+    store %x_180, %205
+    %206:i32 = load %x_180
+    %207:bool = lt %206, 30i
+    if %207 [t: $B42, f: $B43] {  # if_8
+      $B42: {  # true
+        %208:ptr<function, i32, read_write> = access %data, 0i
+        %209:i32 = load %208
+        %210:f32 = convert %209
+        %211:f32 = mul %210, 0.10000000149011611938f
+        %212:f32 = add 0.5f, %211
+        store %x_189, %212
+        %213:f32 = load %x_189
+        store %x_262, %213
         exit_if  # if_8
       }
-      %b43 = block {  # false
+      $B43: {  # false
         %x_207:ptr<function, f32, read_write> = var
         %x_259:ptr<function, f32, read_write> = var
-        %207:i32 = load %x_180
-        %208:bool = lt %207, 60i
-        if %208 [t: %b44, f: %b45] {  # if_9
-          %b44 = block {  # true
-            %209:ptr<function, i32, read_write> = access %data, 1i
-            %210:i32 = load %209
-            %211:f32 = convert %210
-            %212:f32 = mul %211, 0.10000000149011611938f
-            %213:f32 = add 0.5f, %212
-            store %x_198, %213
-            %214:f32 = load %x_198
-            store %x_261, %214
+        %216:i32 = load %x_180
+        %217:bool = lt %216, 60i
+        if %217 [t: $B44, f: $B45] {  # if_9
+          $B44: {  # true
+            %218:ptr<function, i32, read_write> = access %data, 1i
+            %219:i32 = load %218
+            %220:f32 = convert %219
+            %221:f32 = mul %220, 0.10000000149011611938f
+            %222:f32 = add 0.5f, %221
+            store %x_198, %222
+            %223:f32 = load %x_198
+            store %x_261, %223
             exit_if  # if_9
           }
-          %b45 = block {  # false
+          $B45: {  # false
             %x_216:ptr<function, f32, read_write> = var
             %x_258:ptr<function, f32, read_write> = var
-            %217:i32 = load %x_180
-            %218:bool = lt %217, 90i
-            if %218 [t: %b46, f: %b47] {  # if_10
-              %b46 = block {  # true
-                %219:ptr<function, i32, read_write> = access %data, 2i
-                %220:i32 = load %219
-                %221:f32 = convert %220
-                %222:f32 = mul %221, 0.10000000149011611938f
-                %223:f32 = add 0.5f, %222
-                store %x_207, %223
-                %224:f32 = load %x_207
-                store %x_260, %224
+            %226:i32 = load %x_180
+            %227:bool = lt %226, 90i
+            if %227 [t: $B46, f: $B47] {  # if_10
+              $B46: {  # true
+                %228:ptr<function, i32, read_write> = access %data, 2i
+                %229:i32 = load %228
+                %230:f32 = convert %229
+                %231:f32 = mul %230, 0.10000000149011611938f
+                %232:f32 = add 0.5f, %231
+                store %x_207, %232
+                %233:f32 = load %x_207
+                store %x_260, %233
                 exit_if  # if_10
               }
-              %b47 = block {  # false
-                %225:i32 = load %x_180
-                %226:bool = lt %225, 120i
-                if %226 [t: %b48, f: %b49] {  # if_11
-                  %b48 = block {  # true
-                    %227:ptr<function, i32, read_write> = access %data, 3i
-                    %228:i32 = load %227
-                    %229:f32 = convert %228
-                    %230:f32 = mul %229, 0.10000000149011611938f
-                    %231:f32 = add 0.5f, %230
-                    store %x_216, %231
-                    %232:f32 = load %x_216
-                    store %x_259, %232
+              $B47: {  # false
+                %234:i32 = load %x_180
+                %235:bool = lt %234, 120i
+                if %235 [t: $B48, f: $B49] {  # if_11
+                  $B48: {  # true
+                    %236:ptr<function, i32, read_write> = access %data, 3i
+                    %237:i32 = load %236
+                    %238:f32 = convert %237
+                    %239:f32 = mul %238, 0.10000000149011611938f
+                    %240:f32 = add 0.5f, %239
+                    store %x_216, %240
+                    %241:f32 = load %x_216
+                    store %x_259, %241
                     exit_if  # if_11
                   }
-                  %b49 = block {  # false
+                  $B49: {  # false
                     %x_229:ptr<function, f32, read_write> = var
                     %x_257:ptr<function, f32, read_write> = var
-                    %235:i32 = load %x_180
-                    %236:bool = lt %235, 150i
-                    if %236 [t: %b50, f: %b51] {  # if_12
-                      %b50 = block {  # true
-                        discard
+                    %244:i32 = load %x_180
+                    %245:bool = lt %244, 150i
+                    if %245 [t: $B50, f: $B51] {  # if_12
+                      $B50: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b51 = block {  # false
+                      $B51: {  # false
                         %x_238:ptr<function, f32, read_write> = var
                         %x_256:ptr<function, f32, read_write> = var
-                        %239:i32 = load %x_180
-                        %240:bool = lt %239, 180i
-                        if %240 [t: %b52, f: %b53] {  # if_13
-                          %b52 = block {  # true
-                            %241:ptr<function, i32, read_write> = access %data, 5i
-                            %242:i32 = load %241
-                            %243:f32 = convert %242
-                            %244:f32 = mul %243, 0.10000000149011611938f
-                            %245:f32 = add 0.5f, %244
-                            store %x_229, %245
-                            %246:f32 = load %x_229
-                            store %x_258, %246
+                        %248:i32 = load %x_180
+                        %249:bool = lt %248, 180i
+                        if %249 [t: $B52, f: $B53] {  # if_13
+                          $B52: {  # true
+                            %250:ptr<function, i32, read_write> = access %data, 5i
+                            %251:i32 = load %250
+                            %252:f32 = convert %251
+                            %253:f32 = mul %252, 0.10000000149011611938f
+                            %254:f32 = add 0.5f, %253
+                            store %x_229, %254
+                            %255:f32 = load %x_229
+                            store %x_258, %255
                             exit_if  # if_13
                           }
-                          %b53 = block {  # false
+                          $B53: {  # false
                             %x_247:ptr<function, f32, read_write> = var
                             %x_255:ptr<function, f32, read_write> = var
-                            %249:i32 = load %x_180
-                            %250:bool = lt %249, 210i
-                            if %250 [t: %b54, f: %b55] {  # if_14
-                              %b54 = block {  # true
-                                %251:ptr<function, i32, read_write> = access %data, 6i
-                                %252:i32 = load %251
-                                %253:f32 = convert %252
-                                %254:f32 = mul %253, 0.10000000149011611938f
-                                %255:f32 = add 0.5f, %254
-                                store %x_238, %255
-                                %256:f32 = load %x_238
-                                store %x_257, %256
+                            %258:i32 = load %x_180
+                            %259:bool = lt %258, 210i
+                            if %259 [t: $B54, f: $B55] {  # if_14
+                              $B54: {  # true
+                                %260:ptr<function, i32, read_write> = access %data, 6i
+                                %261:i32 = load %260
+                                %262:f32 = convert %261
+                                %263:f32 = mul %262, 0.10000000149011611938f
+                                %264:f32 = add 0.5f, %263
+                                store %x_238, %264
+                                %265:f32 = load %x_238
+                                store %x_257, %265
                                 exit_if  # if_14
                               }
-                              %b55 = block {  # false
-                                %257:i32 = load %x_180
-                                %258:bool = lt %257, 240i
-                                if %258 [t: %b56, f: %b57] {  # if_15
-                                  %b56 = block {  # true
-                                    %259:ptr<function, i32, read_write> = access %data, 7i
-                                    %260:i32 = load %259
-                                    %261:f32 = convert %260
-                                    %262:f32 = mul %261, 0.10000000149011611938f
-                                    %263:f32 = add 0.5f, %262
-                                    store %x_247, %263
-                                    %264:f32 = load %x_247
-                                    store %x_256, %264
+                              $B55: {  # false
+                                %266:i32 = load %x_180
+                                %267:bool = lt %266, 240i
+                                if %267 [t: $B56, f: $B57] {  # if_15
+                                  $B56: {  # true
+                                    %268:ptr<function, i32, read_write> = access %data, 7i
+                                    %269:i32 = load %268
+                                    %270:f32 = convert %269
+                                    %271:f32 = mul %270, 0.10000000149011611938f
+                                    %272:f32 = add 0.5f, %271
+                                    store %x_247, %272
+                                    %273:f32 = load %x_247
+                                    store %x_256, %273
                                     exit_if  # if_15
                                   }
-                                  %b57 = block {  # false
-                                    %265:i32 = load %x_180
-                                    %266:bool = lt %265, 270i
-                                    if %266 [t: %b58, f: %b59] {  # if_16
-                                      %b58 = block {  # true
+                                  $B57: {  # false
+                                    %274:i32 = load %x_180
+                                    %275:bool = lt %274, 270i
+                                    if %275 [t: $B58, f: $B59] {  # if_16
+                                      $B58: {  # true
                                         exit_if  # if_16
                                       }
-                                      %b59 = block {  # false
-                                        discard
+                                      $B59: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
-                                    %267:ptr<function, i32, read_write> = access %data, 8i
-                                    %268:i32 = load %267
-                                    %269:f32 = convert %268
-                                    %270:f32 = mul %269, 0.10000000149011611938f
-                                    %271:f32 = add 0.5f, %270
-                                    store %x_255, %271
-                                    %272:f32 = load %x_255
-                                    store %x_256, %272
+                                    %276:ptr<function, i32, read_write> = access %data, 8i
+                                    %277:i32 = load %276
+                                    %278:f32 = convert %277
+                                    %279:f32 = mul %278, 0.10000000149011611938f
+                                    %280:f32 = add 0.5f, %279
+                                    store %x_255, %280
+                                    %281:f32 = load %x_255
+                                    store %x_256, %281
                                     exit_if  # if_15
                                   }
                                 }
-                                %273:f32 = load %x_256
-                                store %x_257, %273
+                                %282:f32 = load %x_256
+                                store %x_257, %282
                                 exit_if  # if_14
                               }
                             }
-                            %274:f32 = load %x_257
-                            store %x_258, %274
+                            %283:f32 = load %x_257
+                            store %x_258, %283
                             exit_if  # if_13
                           }
                         }
                         exit_if  # if_12
                       }
                     }
-                    %275:f32 = load %x_258
-                    store %x_259, %275
+                    %284:f32 = load %x_258
+                    store %x_259, %284
                     exit_if  # if_11
                   }
                 }
-                %276:f32 = load %x_259
-                store %x_260, %276
+                %285:f32 = load %x_259
+                store %x_260, %285
                 exit_if  # if_10
               }
             }
-            %277:f32 = load %x_260
-            store %x_261, %277
+            %286:f32 = load %x_260
+            store %x_261, %286
             exit_if  # if_9
           }
         }
-        %278:f32 = load %x_261
-        store %x_262, %278
+        %287:f32 = load %x_261
+        store %x_262, %287
         exit_if  # if_8
       }
     }
-    %279:f32 = load %x_262
-    %280:f32 = load %x_262
-    %281:f32 = load %x_262
-    %282:vec4<f32> = construct %279, %280, %281, 1.0f
-    store %x_GLF_color, %282
+    %288:f32 = load %x_262
+    %289:f32 = load %x_262
+    %290:f32 = load %x_262
+    %291:vec4<f32> = construct %288, %289, %290, 1.0f
+    store %x_GLF_color, %291
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b60 {
-  %b60 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B60: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %285:void = call %main_1
-    %286:vec4<f32> = load %x_GLF_color
-    %287:main_out = construct %286
-    ret %287
+    %294:void = call %main_1
+    %295:vec4<f32> = load %x_GLF_color
+    %296:main_out = construct %295
+    %297:bool = load %continue_execution
+    %298:bool = eq %297, false
+    if %298 [t: $B61] {  # if_17
+      $B61: {  # true
+        terminate_invocation
+      }
+    }
+    ret %296
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B62: {
+    %300:i32 = convert %value
+    %301:bool = gte %value, -2147483648.0f
+    %302:i32 = select -2147483648i, %300, %301
+    %303:bool = lte %value, 2147483520.0f
+    %304:i32 = select 2147483647i, %302, %303
+    ret %304
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.msl
index 9c88446..a9738a1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-O-prop-up-mutate-var/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, array<i32, 10>, read_write> = var
     %data:ptr<function, array<i32, 10>, read_write> = var
     %x_189:ptr<function, f32, read_write> = var
@@ -24,12 +25,14 @@
     %x_102_phi:ptr<function, i32, read_write> = var
     %x_111_phi:ptr<function, i32, read_write> = var
     %x_262_phi:ptr<function, f32, read_write> = var
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_60:f32 = load_vector_element %13, 0u
-    %x_61:i32 = convert %x_60
+    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %15:f32 = load_vector_element %14, 0u
+    %x_60:f32 = let %15
+    %17:i32 = call %tint_f32_to_i32, %x_60
+    %x_61:i32 = let %17
     store %x_63_phi, %x_61
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_99:ptr<function, i32, read_write> = var
         %x_97:ptr<function, i32, read_write> = var
         %x_95:ptr<function, i32, read_write> = var
@@ -41,160 +44,166 @@
         %x_83:ptr<function, i32, read_write> = var
         %x_81:ptr<function, i32, read_write> = var
         %x_64_phi:ptr<function, i32, read_write> = var
-        %x_63:i32 = load %x_63_phi
-        %x_68:i32 = add %x_63, 1i
+        %31:i32 = load %x_63_phi
+        %x_63:i32 = let %31
+        %33:i32 = add %x_63, 1i
+        %x_68:i32 = let %33
         store %x_64_phi, %x_68
-        switch %x_63 [c: (9i, %b5), c: (8i, %b6), c: (7i, %b7), c: (6i, %b8), c: (5i, %b9), c: (4i, %b10), c: (3i, %b11), c: (2i, %b12), c: (1i, %b13), c: (0i, %b14), c: (default, %b15)] {  # switch_1
-          %b5 = block {  # case
-            %29:ptr<function, i32, read_write> = access %data, %x_63
-            store %29, -5i
-            %30:i32 = add %x_63, 1i
-            store %x_99, %30
-            %31:i32 = load %x_99
-            store %x_64_phi, %31
-            exit_switch  # switch_1
-          }
-          %b6 = block {  # case
-            %32:ptr<function, i32, read_write> = access %data, %x_63
-            store %32, -4i
-            %33:i32 = add %x_63, 1i
-            store %x_97, %33
-            %34:i32 = load %x_97
-            store %x_64_phi, %34
-            exit_switch  # switch_1
-          }
-          %b7 = block {  # case
+        switch %x_63 [c: (9i, $B5), c: (8i, $B6), c: (7i, $B7), c: (6i, $B8), c: (5i, $B9), c: (4i, $B10), c: (3i, $B11), c: (2i, $B12), c: (1i, $B13), c: (0i, $B14), c: (default, $B15)] {  # switch_1
+          $B5: {  # case
             %35:ptr<function, i32, read_write> = access %data, %x_63
-            store %35, -3i
+            store %35, -5i
             %36:i32 = add %x_63, 1i
-            store %x_95, %36
-            %37:i32 = load %x_95
+            store %x_99, %36
+            %37:i32 = load %x_99
             store %x_64_phi, %37
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
+          $B6: {  # case
             %38:ptr<function, i32, read_write> = access %data, %x_63
-            store %38, -2i
+            store %38, -4i
             %39:i32 = add %x_63, 1i
-            store %x_93, %39
-            %40:i32 = load %x_93
+            store %x_97, %39
+            %40:i32 = load %x_97
             store %x_64_phi, %40
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
+          $B7: {  # case
             %41:ptr<function, i32, read_write> = access %data, %x_63
-            store %41, -1i
+            store %41, -3i
             %42:i32 = add %x_63, 1i
-            store %x_91, %42
-            %43:i32 = load %x_91
+            store %x_95, %42
+            %43:i32 = load %x_95
             store %x_64_phi, %43
             exit_switch  # switch_1
           }
-          %b10 = block {  # case
+          $B8: {  # case
             %44:ptr<function, i32, read_write> = access %data, %x_63
-            store %44, 0i
+            store %44, -2i
             %45:i32 = add %x_63, 1i
-            store %x_89, %45
-            %46:i32 = load %x_89
+            store %x_93, %45
+            %46:i32 = load %x_93
             store %x_64_phi, %46
             exit_switch  # switch_1
           }
-          %b11 = block {  # case
+          $B9: {  # case
             %47:ptr<function, i32, read_write> = access %data, %x_63
-            store %47, 1i
+            store %47, -1i
             %48:i32 = add %x_63, 1i
-            store %x_87, %48
-            %49:i32 = load %x_87
+            store %x_91, %48
+            %49:i32 = load %x_91
             store %x_64_phi, %49
             exit_switch  # switch_1
           }
-          %b12 = block {  # case
+          $B10: {  # case
             %50:ptr<function, i32, read_write> = access %data, %x_63
-            store %50, 2i
+            store %50, 0i
             %51:i32 = add %x_63, 1i
-            store %x_85, %51
-            %52:i32 = load %x_85
+            store %x_89, %51
+            %52:i32 = load %x_89
             store %x_64_phi, %52
             exit_switch  # switch_1
           }
-          %b13 = block {  # case
+          $B11: {  # case
             %53:ptr<function, i32, read_write> = access %data, %x_63
-            store %53, 3i
+            store %53, 1i
             %54:i32 = add %x_63, 1i
-            store %x_83, %54
-            %55:i32 = load %x_83
+            store %x_87, %54
+            %55:i32 = load %x_87
             store %x_64_phi, %55
             exit_switch  # switch_1
           }
-          %b14 = block {  # case
+          $B12: {  # case
             %56:ptr<function, i32, read_write> = access %data, %x_63
-            store %56, 4i
+            store %56, 2i
             %57:i32 = add %x_63, 1i
-            store %x_81, %57
-            %58:i32 = load %x_81
+            store %x_85, %57
+            %58:i32 = load %x_85
             store %x_64_phi, %58
             exit_switch  # switch_1
           }
-          %b15 = block {  # case
+          $B13: {  # case
+            %59:ptr<function, i32, read_write> = access %data, %x_63
+            store %59, 3i
+            %60:i32 = add %x_63, 1i
+            store %x_83, %60
+            %61:i32 = load %x_83
+            store %x_64_phi, %61
+            exit_switch  # switch_1
+          }
+          $B14: {  # case
+            %62:ptr<function, i32, read_write> = access %data, %x_63
+            store %62, 4i
+            %63:i32 = add %x_63, 1i
+            store %x_81, %63
+            %64:i32 = load %x_81
+            store %x_64_phi, %64
+            exit_switch  # switch_1
+          }
+          $B15: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_64:i32 = load %x_64_phi
-        continue %b4
+        %65:i32 = load %x_64_phi
+        %x_64:i32 = let %65
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_63_phi, %x_64
-        %60:bool = lt %x_64, 10i
-        %61:bool = eq %60, false
-        break_if %61 %b3
+        %67:bool = lt %x_64, 10i
+        %68:bool = eq %67, false
+        break_if %68  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_102_phi, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
         %x_103:ptr<function, i32, read_write> = var
-        %x_102:i32 = load %x_102_phi
-        %64:bool = lt %x_102, 10i
-        if %64 [t: %b18, f: %b19] {  # if_1
-          %b18 = block {  # true
+        %70:i32 = load %x_102_phi
+        %x_102:i32 = let %70
+        %72:bool = lt %x_102, 10i
+        if %72 [t: $B18, f: $B19] {  # if_1
+          $B18: {  # true
             exit_if  # if_1
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %65:ptr<function, i32, read_write> = access %data, %x_102
-        %x_108:i32 = load %65
-        %67:ptr<function, i32, read_write> = access %temp, %x_102
-        store %67, %x_108
-        %68:i32 = add %x_102, 1i
-        store %x_103, %68
-        %69:i32 = load %x_103
-        store %x_102_phi, %69
-        next_iteration %b16
+      $B17: {  # continuing
+        %73:ptr<function, i32, read_write> = access %data, %x_102
+        %74:i32 = load %73
+        %x_108:i32 = let %74
+        %76:ptr<function, i32, read_write> = access %temp, %x_102
+        store %76, %x_108
+        %77:i32 = add %x_102, 1i
+        store %x_103, %77
+        %78:i32 = load %x_103
+        store %x_102_phi, %78
+        next_iteration  # -> $B16
       }
     }
     store %x_111_phi, 1i
-    loop [b: %b20, c: %b21] {  # loop_3
-      %b20 = block {  # body
+    loop [b: $B20, c: $B21] {  # loop_3
+      $B20: {  # body
         %x_112:ptr<function, i32, read_write> = var
         %x_118_phi:ptr<function, i32, read_write> = var
-        %x_111:i32 = load %x_111_phi
-        %73:bool = lte %x_111, 9i
-        if %73 [t: %b22, f: %b23] {  # if_2
-          %b22 = block {  # true
+        %81:i32 = load %x_111_phi
+        %x_111:i32 = let %81
+        %83:bool = lte %x_111, 9i
+        if %83 [t: $B22, f: $B23] {  # if_2
+          $B22: {  # true
             exit_if  # if_2
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_3
           }
         }
         store %x_118_phi, 0i
-        loop [b: %b24, c: %b25] {  # loop_4
-          %b24 = block {  # body
+        loop [b: $B24, c: $B25] {  # loop_4
+          $B24: {  # body
             %x_130:ptr<function, i32, read_write> = var
             %x_135:ptr<function, i32, read_write> = var
             %x_130_phi:ptr<function, i32, read_write> = var
@@ -203,399 +212,445 @@
             %x_157_phi:ptr<function, i32, read_write> = var
             %x_160_phi:ptr<function, i32, read_write> = var
             %x_170_phi:ptr<function, i32, read_write> = var
-            %x_118:i32 = load %x_118_phi
-            %83:bool = lt %x_118, 9i
-            if %83 [t: %b26, f: %b27] {  # if_3
-              %b26 = block {  # true
+            %92:i32 = load %x_118_phi
+            %x_118:i32 = let %92
+            %94:bool = lt %x_118, 9i
+            if %94 [t: $B26, f: $B27] {  # if_3
+              $B26: {  # true
                 exit_if  # if_3
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_4
               }
             }
-            %x_124:i32 = add %x_118, %x_111
-            %x_125:i32 = sub %x_124, 1i
-            %86:i32 = mul 2i, %x_111
-            %x_119:i32 = add %x_118, %86
-            %88:i32 = sub %x_119, 1i
-            %x_128:i32 = min %88, 9i
+            %95:i32 = add %x_118, %x_111
+            %x_124:i32 = let %95
+            %97:i32 = sub %x_124, 1i
+            %x_125:i32 = let %97
+            %99:i32 = mul 2i, %x_111
+            %100:i32 = add %x_118, %99
+            %x_119:i32 = let %100
+            %102:i32 = sub %x_119, 1i
+            %103:i32 = min %102, 9i
+            %x_128:i32 = let %103
             store %x_130_phi, %x_118
             store %x_133_phi, %x_124
             store %x_135_phi, %x_118
-            loop [b: %b28, c: %b29] {  # loop_5
-              %b28 = block {  # body
+            loop [b: $B28, c: $B29] {  # loop_5
+              $B28: {  # body
                 %x_150:ptr<function, i32, read_write> = var
                 %x_153:ptr<function, i32, read_write> = var
                 %x_134_phi:ptr<function, i32, read_write> = var
                 %x_136_phi:ptr<function, i32, read_write> = var
-                %94:i32 = load %x_130_phi
-                store %x_130, %94
-                %x_133:i32 = load %x_133_phi
-                %96:i32 = load %x_135_phi
-                store %x_135, %96
-                %97:i32 = load %x_135
-                %98:bool = lte %97, %x_125
-                %99:bool = lte %x_133, %x_128
-                %100:bool = and %98, %99
-                if %100 [t: %b30, f: %b31] {  # if_4
-                  %b30 = block {  # true
+                %109:i32 = load %x_130_phi
+                store %x_130, %109
+                %110:i32 = load %x_133_phi
+                %x_133:i32 = let %110
+                %112:i32 = load %x_135_phi
+                store %x_135, %112
+                %113:i32 = load %x_135
+                %114:bool = lte %113, %x_125
+                %115:bool = lte %x_133, %x_128
+                %116:bool = and %114, %115
+                if %116 [t: $B30, f: $B31] {  # if_4
+                  $B30: {  # true
                     exit_if  # if_4
                   }
-                  %b31 = block {  # false
+                  $B31: {  # false
                     exit_loop  # loop_5
                   }
                 }
-                %x_142_save:i32 = load %x_135
-                %102:ptr<function, i32, read_write> = access %data, %x_142_save
-                %x_143:i32 = load %102
+                %117:i32 = load %x_135
+                %x_142_save:i32 = let %117
+                %119:ptr<function, i32, read_write> = access %data, %x_142_save
+                %120:i32 = load %119
+                %x_143:i32 = let %120
                 %x_144_save:i32 = let %x_133
-                %105:ptr<function, i32, read_write> = access %data, %x_144_save
-                %x_145:i32 = load %105
-                %107:i32 = load %x_130
-                %108:i32 = add %107, 1i
-                %x_131:i32 = bitcast %108
-                %110:bool = lt %x_143, %x_145
-                if %110 [t: %b32, f: %b33] {  # if_5
-                  %b32 = block {  # true
-                    %111:i32 = load %x_135
-                    %112:i32 = add %111, 1i
-                    %113:i32 = bitcast %112
-                    store %x_150, %113
-                    %114:ptr<function, i32, read_write> = access %data, %x_142_save
-                    %x_151:i32 = load %114
-                    %116:i32 = load %x_130
-                    %117:ptr<function, i32, read_write> = access %temp, %116
-                    store %117, %x_151
+                %123:ptr<function, i32, read_write> = access %data, %x_144_save
+                %124:i32 = load %123
+                %x_145:i32 = let %124
+                %126:i32 = load %x_130
+                %127:i32 = add %126, 1i
+                %128:i32 = bitcast %127
+                %x_131:i32 = let %128
+                %130:bool = lt %x_143, %x_145
+                if %130 [t: $B32, f: $B33] {  # if_5
+                  $B32: {  # true
+                    %131:i32 = load %x_135
+                    %132:i32 = add %131, 1i
+                    %133:i32 = bitcast %132
+                    store %x_150, %133
+                    %134:ptr<function, i32, read_write> = access %data, %x_142_save
+                    %135:i32 = load %134
+                    %x_151:i32 = let %135
+                    %137:i32 = load %x_130
+                    %138:ptr<function, i32, read_write> = access %temp, %137
+                    store %138, %x_151
                     store %x_134_phi, %x_133
-                    %118:i32 = load %x_150
-                    store %x_136_phi, %118
+                    %139:i32 = load %x_150
+                    store %x_136_phi, %139
                     exit_if  # if_5
                   }
-                  %b33 = block {  # false
-                    %119:i32 = add %x_133, 1i
-                    store %x_153, %119
-                    %120:ptr<function, i32, read_write> = access %data, %x_144_save
-                    %x_154:i32 = load %120
-                    %122:i32 = load %x_130
-                    %123:ptr<function, i32, read_write> = access %temp, %122
-                    store %123, %x_154
-                    %124:i32 = load %x_153
-                    store %x_134_phi, %124
-                    %125:i32 = load %x_135
-                    store %x_136_phi, %125
+                  $B33: {  # false
+                    %140:i32 = add %x_133, 1i
+                    store %x_153, %140
+                    %141:ptr<function, i32, read_write> = access %data, %x_144_save
+                    %142:i32 = load %141
+                    %x_154:i32 = let %142
+                    %144:i32 = load %x_130
+                    %145:ptr<function, i32, read_write> = access %temp, %144
+                    store %145, %x_154
+                    %146:i32 = load %x_153
+                    store %x_134_phi, %146
+                    %147:i32 = load %x_135
+                    store %x_136_phi, %147
                     exit_if  # if_5
                   }
                 }
-                %x_134:i32 = load %x_134_phi
-                %x_136:i32 = load %x_136_phi
-                continue %b29
+                %148:i32 = load %x_134_phi
+                %x_134:i32 = let %148
+                %150:i32 = load %x_136_phi
+                %x_136:i32 = let %150
+                continue  # -> $B29
               }
-              %b29 = block {  # continuing
+              $B29: {  # continuing
                 store %x_130_phi, %x_131
                 store %x_133_phi, %x_134
                 store %x_135_phi, %x_136
-                next_iteration %b28
+                next_iteration  # -> $B28
               }
             }
-            %128:i32 = load %x_130
-            store %x_157_phi, %128
-            %129:i32 = load %x_135
-            store %x_160_phi, %129
-            loop [b: %b34, c: %b35] {  # loop_6
-              %b34 = block {  # body
+            %152:i32 = load %x_130
+            store %x_157_phi, %152
+            %153:i32 = load %x_135
+            store %x_160_phi, %153
+            loop [b: $B34, c: $B35] {  # loop_6
+              $B34: {  # body
                 %x_158:ptr<function, i32, read_write> = var
                 %x_161:ptr<function, i32, read_write> = var
-                %x_157:i32 = load %x_157_phi
-                %x_160:i32 = load %x_160_phi
-                %134:bool = lt %x_160, 10i
-                %135:bool = lte %x_160, %x_125
-                %136:bool = and %134, %135
-                if %136 [t: %b36, f: %b37] {  # if_6
-                  %b36 = block {  # true
+                %156:i32 = load %x_157_phi
+                %x_157:i32 = let %156
+                %158:i32 = load %x_160_phi
+                %x_160:i32 = let %158
+                %160:bool = lt %x_160, 10i
+                %161:bool = lte %x_160, %x_125
+                %162:bool = and %160, %161
+                if %162 [t: $B36, f: $B37] {  # if_6
+                  $B36: {  # true
                     exit_if  # if_6
                   }
-                  %b37 = block {  # false
+                  $B37: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                continue %b35
+                continue  # -> $B35
               }
-              %b35 = block {  # continuing
-                %137:i32 = add %x_157, 1i
-                store %x_158, %137
-                %138:i32 = add %x_160, 1i
-                store %x_161, %138
-                %139:ptr<function, i32, read_write> = access %data, %x_160
-                %x_167:i32 = load %139
-                %141:ptr<function, i32, read_write> = access %temp, %x_157
-                store %141, %x_167
-                %142:i32 = load %x_158
-                store %x_157_phi, %142
-                %143:i32 = load %x_161
-                store %x_160_phi, %143
-                next_iteration %b34
+              $B35: {  # continuing
+                %163:i32 = add %x_157, 1i
+                store %x_158, %163
+                %164:i32 = add %x_160, 1i
+                store %x_161, %164
+                %165:ptr<function, i32, read_write> = access %data, %x_160
+                %166:i32 = load %165
+                %x_167:i32 = let %166
+                %168:ptr<function, i32, read_write> = access %temp, %x_157
+                store %168, %x_167
+                %169:i32 = load %x_158
+                store %x_157_phi, %169
+                %170:i32 = load %x_161
+                store %x_160_phi, %170
+                next_iteration  # -> $B34
               }
             }
             store %x_170_phi, %x_118
-            loop [b: %b38, c: %b39] {  # loop_7
-              %b38 = block {  # body
+            loop [b: $B38, c: $B39] {  # loop_7
+              $B38: {  # body
                 %x_171:ptr<function, i32, read_write> = var
-                %x_170:i32 = load %x_170_phi
-                %146:bool = lte %x_170, %x_128
-                if %146 [t: %b40, f: %b41] {  # if_7
-                  %b40 = block {  # true
+                %172:i32 = load %x_170_phi
+                %x_170:i32 = let %172
+                %174:bool = lte %x_170, %x_128
+                if %174 [t: $B40, f: $B41] {  # if_7
+                  $B40: {  # true
                     exit_if  # if_7
                   }
-                  %b41 = block {  # false
+                  $B41: {  # false
                     exit_loop  # loop_7
                   }
                 }
-                continue %b39
+                continue  # -> $B39
               }
-              %b39 = block {  # continuing
-                %147:ptr<function, i32, read_write> = access %temp, %x_170
-                %x_176:i32 = load %147
-                %149:ptr<function, i32, read_write> = access %data, %x_170
-                store %149, %x_176
-                %150:i32 = add %x_170, 1i
-                store %x_171, %150
-                %151:i32 = load %x_171
-                store %x_170_phi, %151
-                next_iteration %b38
+              $B39: {  # continuing
+                %175:ptr<function, i32, read_write> = access %temp, %x_170
+                %176:i32 = load %175
+                %x_176:i32 = let %176
+                %178:ptr<function, i32, read_write> = access %data, %x_170
+                store %178, %x_176
+                %179:i32 = add %x_170, 1i
+                store %x_171, %179
+                %180:i32 = load %x_171
+                store %x_170_phi, %180
+                next_iteration  # -> $B38
               }
             }
-            continue %b25
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
+          $B25: {  # continuing
             store %x_118_phi, %x_119
-            next_iteration %b24
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %152:i32 = mul 2i, %x_111
-        store %x_112, %152
-        %153:i32 = load %x_112
-        store %x_111_phi, %153
-        next_iteration %b20
+      $B21: {  # continuing
+        %181:i32 = mul 2i, %x_111
+        store %x_112, %181
+        %182:i32 = load %x_112
+        store %x_111_phi, %182
+        next_iteration  # -> $B20
       }
     }
     %x_180:ptr<function, i32, read_write> = var
     %x_198:ptr<function, f32, read_write> = var
     %x_260:ptr<function, f32, read_write> = var
     %x_261_phi:ptr<function, f32, read_write> = var
-    %x_179:f32 = load_vector_element %gl_FragCoord, 1u
-    %159:i32 = convert %x_179
-    store %x_180, %159
-    %160:i32 = load %x_180
-    %161:bool = lt %160, 30i
-    if %161 [t: %b42, f: %b43] {  # if_8
-      %b42 = block {  # true
-        %162:ptr<function, i32, read_write> = access %data, 0i
-        %x_186:i32 = load %162
-        %164:f32 = convert %x_186
-        %165:f32 = mul %164, 0.10000000149011611938f
-        %166:f32 = add 0.5f, %165
-        store %x_189, %166
-        %167:f32 = load %x_189
-        store %x_262_phi, %167
+    %187:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_179:f32 = let %187
+    %189:i32 = call %tint_f32_to_i32, %x_179
+    store %x_180, %189
+    %190:i32 = load %x_180
+    %191:bool = lt %190, 30i
+    if %191 [t: $B42, f: $B43] {  # if_8
+      $B42: {  # true
+        %192:ptr<function, i32, read_write> = access %data, 0i
+        %193:i32 = load %192
+        %x_186:i32 = let %193
+        %195:f32 = convert %x_186
+        %196:f32 = mul %195, 0.10000000149011611938f
+        %197:f32 = add 0.5f, %196
+        store %x_189, %197
+        %198:f32 = load %x_189
+        store %x_262_phi, %198
         exit_if  # if_8
       }
-      %b43 = block {  # false
+      $B43: {  # false
         %x_207:ptr<function, f32, read_write> = var
         %x_259:ptr<function, f32, read_write> = var
         %x_260_phi:ptr<function, f32, read_write> = var
-        %171:i32 = load %x_180
-        %172:bool = lt %171, 60i
-        if %172 [t: %b44, f: %b45] {  # if_9
-          %b44 = block {  # true
-            %173:ptr<function, i32, read_write> = access %data, 1i
-            %x_195:i32 = load %173
-            %175:f32 = convert %x_195
-            %176:f32 = mul %175, 0.10000000149011611938f
-            %177:f32 = add 0.5f, %176
-            store %x_198, %177
-            %178:f32 = load %x_198
-            store %x_261_phi, %178
+        %202:i32 = load %x_180
+        %203:bool = lt %202, 60i
+        if %203 [t: $B44, f: $B45] {  # if_9
+          $B44: {  # true
+            %204:ptr<function, i32, read_write> = access %data, 1i
+            %205:i32 = load %204
+            %x_195:i32 = let %205
+            %207:f32 = convert %x_195
+            %208:f32 = mul %207, 0.10000000149011611938f
+            %209:f32 = add 0.5f, %208
+            store %x_198, %209
+            %210:f32 = load %x_198
+            store %x_261_phi, %210
             exit_if  # if_9
           }
-          %b45 = block {  # false
+          $B45: {  # false
             %x_216:ptr<function, f32, read_write> = var
             %x_258:ptr<function, f32, read_write> = var
             %x_259_phi:ptr<function, f32, read_write> = var
-            %182:i32 = load %x_180
-            %183:bool = lt %182, 90i
-            if %183 [t: %b46, f: %b47] {  # if_10
-              %b46 = block {  # true
-                %184:ptr<function, i32, read_write> = access %data, 2i
-                %x_204:i32 = load %184
-                %186:f32 = convert %x_204
-                %187:f32 = mul %186, 0.10000000149011611938f
-                %188:f32 = add 0.5f, %187
-                store %x_207, %188
-                %189:f32 = load %x_207
-                store %x_260_phi, %189
+            %214:i32 = load %x_180
+            %215:bool = lt %214, 90i
+            if %215 [t: $B46, f: $B47] {  # if_10
+              $B46: {  # true
+                %216:ptr<function, i32, read_write> = access %data, 2i
+                %217:i32 = load %216
+                %x_204:i32 = let %217
+                %219:f32 = convert %x_204
+                %220:f32 = mul %219, 0.10000000149011611938f
+                %221:f32 = add 0.5f, %220
+                store %x_207, %221
+                %222:f32 = load %x_207
+                store %x_260_phi, %222
                 exit_if  # if_10
               }
-              %b47 = block {  # false
-                %190:i32 = load %x_180
-                %191:bool = lt %190, 120i
-                if %191 [t: %b48, f: %b49] {  # if_11
-                  %b48 = block {  # true
-                    %192:ptr<function, i32, read_write> = access %data, 3i
-                    %x_213:i32 = load %192
-                    %194:f32 = convert %x_213
-                    %195:f32 = mul %194, 0.10000000149011611938f
-                    %196:f32 = add 0.5f, %195
-                    store %x_216, %196
-                    %197:f32 = load %x_216
-                    store %x_259_phi, %197
+              $B47: {  # false
+                %223:i32 = load %x_180
+                %224:bool = lt %223, 120i
+                if %224 [t: $B48, f: $B49] {  # if_11
+                  $B48: {  # true
+                    %225:ptr<function, i32, read_write> = access %data, 3i
+                    %226:i32 = load %225
+                    %x_213:i32 = let %226
+                    %228:f32 = convert %x_213
+                    %229:f32 = mul %228, 0.10000000149011611938f
+                    %230:f32 = add 0.5f, %229
+                    store %x_216, %230
+                    %231:f32 = load %x_216
+                    store %x_259_phi, %231
                     exit_if  # if_11
                   }
-                  %b49 = block {  # false
+                  $B49: {  # false
                     %x_229:ptr<function, f32, read_write> = var
                     %x_257:ptr<function, f32, read_write> = var
                     %x_258_phi:ptr<function, f32, read_write> = var
-                    %201:i32 = load %x_180
-                    %202:bool = lt %201, 150i
-                    if %202 [t: %b50, f: %b51] {  # if_12
-                      %b50 = block {  # true
-                        discard
+                    %235:i32 = load %x_180
+                    %236:bool = lt %235, 150i
+                    if %236 [t: $B50, f: $B51] {  # if_12
+                      $B50: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b51 = block {  # false
+                      $B51: {  # false
                         %x_238:ptr<function, f32, read_write> = var
                         %x_256:ptr<function, f32, read_write> = var
                         %x_257_phi:ptr<function, f32, read_write> = var
-                        %206:i32 = load %x_180
-                        %207:bool = lt %206, 180i
-                        if %207 [t: %b52, f: %b53] {  # if_13
-                          %b52 = block {  # true
-                            %208:ptr<function, i32, read_write> = access %data, 5i
-                            %x_226:i32 = load %208
-                            %210:f32 = convert %x_226
-                            %211:f32 = mul %210, 0.10000000149011611938f
-                            %212:f32 = add 0.5f, %211
-                            store %x_229, %212
-                            %213:f32 = load %x_229
-                            store %x_258_phi, %213
+                        %240:i32 = load %x_180
+                        %241:bool = lt %240, 180i
+                        if %241 [t: $B52, f: $B53] {  # if_13
+                          $B52: {  # true
+                            %242:ptr<function, i32, read_write> = access %data, 5i
+                            %243:i32 = load %242
+                            %x_226:i32 = let %243
+                            %245:f32 = convert %x_226
+                            %246:f32 = mul %245, 0.10000000149011611938f
+                            %247:f32 = add 0.5f, %246
+                            store %x_229, %247
+                            %248:f32 = load %x_229
+                            store %x_258_phi, %248
                             exit_if  # if_13
                           }
-                          %b53 = block {  # false
+                          $B53: {  # false
                             %x_247:ptr<function, f32, read_write> = var
                             %x_255:ptr<function, f32, read_write> = var
                             %x_256_phi:ptr<function, f32, read_write> = var
-                            %217:i32 = load %x_180
-                            %218:bool = lt %217, 210i
-                            if %218 [t: %b54, f: %b55] {  # if_14
-                              %b54 = block {  # true
-                                %219:ptr<function, i32, read_write> = access %data, 6i
-                                %x_235:i32 = load %219
-                                %221:f32 = convert %x_235
-                                %222:f32 = mul %221, 0.10000000149011611938f
-                                %223:f32 = add 0.5f, %222
-                                store %x_238, %223
-                                %224:f32 = load %x_238
-                                store %x_257_phi, %224
+                            %252:i32 = load %x_180
+                            %253:bool = lt %252, 210i
+                            if %253 [t: $B54, f: $B55] {  # if_14
+                              $B54: {  # true
+                                %254:ptr<function, i32, read_write> = access %data, 6i
+                                %255:i32 = load %254
+                                %x_235:i32 = let %255
+                                %257:f32 = convert %x_235
+                                %258:f32 = mul %257, 0.10000000149011611938f
+                                %259:f32 = add 0.5f, %258
+                                store %x_238, %259
+                                %260:f32 = load %x_238
+                                store %x_257_phi, %260
                                 exit_if  # if_14
                               }
-                              %b55 = block {  # false
-                                %225:i32 = load %x_180
-                                %226:bool = lt %225, 240i
-                                if %226 [t: %b56, f: %b57] {  # if_15
-                                  %b56 = block {  # true
-                                    %227:ptr<function, i32, read_write> = access %data, 7i
-                                    %x_244:i32 = load %227
-                                    %229:f32 = convert %x_244
-                                    %230:f32 = mul %229, 0.10000000149011611938f
-                                    %231:f32 = add 0.5f, %230
-                                    store %x_247, %231
-                                    %232:f32 = load %x_247
-                                    store %x_256_phi, %232
+                              $B55: {  # false
+                                %261:i32 = load %x_180
+                                %262:bool = lt %261, 240i
+                                if %262 [t: $B56, f: $B57] {  # if_15
+                                  $B56: {  # true
+                                    %263:ptr<function, i32, read_write> = access %data, 7i
+                                    %264:i32 = load %263
+                                    %x_244:i32 = let %264
+                                    %266:f32 = convert %x_244
+                                    %267:f32 = mul %266, 0.10000000149011611938f
+                                    %268:f32 = add 0.5f, %267
+                                    store %x_247, %268
+                                    %269:f32 = load %x_247
+                                    store %x_256_phi, %269
                                     exit_if  # if_15
                                   }
-                                  %b57 = block {  # false
-                                    %233:i32 = load %x_180
-                                    %234:bool = lt %233, 270i
-                                    if %234 [t: %b58, f: %b59] {  # if_16
-                                      %b58 = block {  # true
+                                  $B57: {  # false
+                                    %270:i32 = load %x_180
+                                    %271:bool = lt %270, 270i
+                                    if %271 [t: $B58, f: $B59] {  # if_16
+                                      $B58: {  # true
                                         exit_if  # if_16
                                       }
-                                      %b59 = block {  # false
-                                        discard
+                                      $B59: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
-                                    %235:ptr<function, i32, read_write> = access %data, 8i
-                                    %x_252:i32 = load %235
-                                    %237:f32 = convert %x_252
-                                    %238:f32 = mul %237, 0.10000000149011611938f
-                                    %239:f32 = add 0.5f, %238
-                                    store %x_255, %239
-                                    %240:f32 = load %x_255
-                                    store %x_256_phi, %240
+                                    %272:ptr<function, i32, read_write> = access %data, 8i
+                                    %273:i32 = load %272
+                                    %x_252:i32 = let %273
+                                    %275:f32 = convert %x_252
+                                    %276:f32 = mul %275, 0.10000000149011611938f
+                                    %277:f32 = add 0.5f, %276
+                                    store %x_255, %277
+                                    %278:f32 = load %x_255
+                                    store %x_256_phi, %278
                                     exit_if  # if_15
                                   }
                                 }
-                                %241:f32 = load %x_256_phi
-                                store %x_256, %241
-                                %242:f32 = load %x_256
-                                store %x_257_phi, %242
+                                %279:f32 = load %x_256_phi
+                                store %x_256, %279
+                                %280:f32 = load %x_256
+                                store %x_257_phi, %280
                                 exit_if  # if_14
                               }
                             }
-                            %243:f32 = load %x_257_phi
-                            store %x_257, %243
-                            %244:f32 = load %x_257
-                            store %x_258_phi, %244
+                            %281:f32 = load %x_257_phi
+                            store %x_257, %281
+                            %282:f32 = load %x_257
+                            store %x_258_phi, %282
                             exit_if  # if_13
                           }
                         }
-                        %245:f32 = load %x_258_phi
-                        store %x_258, %245
+                        %283:f32 = load %x_258_phi
+                        store %x_258, %283
                         exit_if  # if_12
                       }
                     }
-                    %246:f32 = load %x_258
-                    store %x_259_phi, %246
+                    %284:f32 = load %x_258
+                    store %x_259_phi, %284
                     exit_if  # if_11
                   }
                 }
-                %247:f32 = load %x_259_phi
-                store %x_259, %247
-                %248:f32 = load %x_259
-                store %x_260_phi, %248
+                %285:f32 = load %x_259_phi
+                store %x_259, %285
+                %286:f32 = load %x_259
+                store %x_260_phi, %286
                 exit_if  # if_10
               }
             }
-            %249:f32 = load %x_260_phi
-            store %x_260, %249
-            %250:f32 = load %x_260
-            store %x_261_phi, %250
+            %287:f32 = load %x_260_phi
+            store %x_260, %287
+            %288:f32 = load %x_260
+            store %x_261_phi, %288
             exit_if  # if_9
           }
         }
-        %251:f32 = load %x_261_phi
-        store %x_261, %251
-        %252:f32 = load %x_261
-        store %x_262_phi, %252
+        %289:f32 = load %x_261_phi
+        store %x_261, %289
+        %290:f32 = load %x_261
+        store %x_262_phi, %290
         exit_if  # if_8
       }
     }
-    %x_262:f32 = load %x_262_phi
-    %254:vec4<f32> = construct %x_262, %x_262, %x_262, 1.0f
-    store %x_GLF_color, %254
+    %291:f32 = load %x_262_phi
+    %x_262:f32 = let %291
+    %293:vec4<f32> = construct %x_262, %x_262, %x_262, 1.0f
+    store %x_GLF_color, %293
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b60 {
-  %b60 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B60: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %257:void = call %main_1
-    %258:vec4<f32> = load %x_GLF_color
-    %259:main_out = construct %258
-    ret %259
+    %296:void = call %main_1
+    %297:vec4<f32> = load %x_GLF_color
+    %298:main_out = construct %297
+    %299:bool = load %continue_execution
+    %300:bool = eq %299, false
+    if %300 [t: $B61] {  # if_17
+      $B61: {  # true
+        terminate_invocation
+      }
+    }
+    ret %298
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B62: {
+    %302:i32 = convert %value
+    %303:bool = gte %value, -2147483648.0f
+    %304:i32 = select -2147483648i, %302, %303
+    %305:bool = lte %value, 2147483520.0f
+    %306:i32 = select 2147483647i, %304, %305
+    ret %306
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.msl
index 1a5c34a..f8a1127 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,158 +8,166 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %i
-        %19:i32 = load %mid
-        %20:bool = lte %18, %19
-        %21:i32 = load %j
-        %22:i32 = load %to
-        %23:bool = lte %21, %22
-        %24:bool = and %20, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %20:i32 = load %mid
+        %21:bool = lte %19, %20
+        %22:i32 = load %j
+        %23:i32 = load %to
+        %24:bool = lte %22, %23
+        %25:bool = and %21, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %25:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %25
-        %27:i32 = load %26
-        %28:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %28
-        %30:i32 = load %29
-        %31:bool = lt %27, %30
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_277:i32 = load %k
+        %26:i32 = load %i
+        %27:ptr<private, i32, read_write> = access %data, %26
+        %28:i32 = load %27
+        %29:i32 = load %j
+        %30:ptr<private, i32, read_write> = access %data, %29
+        %31:i32 = load %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %33:i32 = load %k
-            %34:i32 = add %33, 1i
-            store %k, %34
-            %x_279:i32 = load %i
-            %36:i32 = load %i
-            %37:i32 = add %36, 1i
-            store %i, %37
-            %38:ptr<private, i32, read_write> = access %temp, %x_277
-            %39:ptr<private, i32, read_write> = access %data, %x_279
-            %40:i32 = load %39
-            store %38, %40
+            %x_277:i32 = let %33
+            %35:i32 = load %k
+            %36:i32 = add %35, 1i
+            store %k, %36
+            %37:i32 = load %i
+            %x_279:i32 = let %37
+            %39:i32 = load %i
+            %40:i32 = add %39, 1i
+            store %i, %40
+            %41:ptr<private, i32, read_write> = access %temp, %x_277
+            %42:ptr<private, i32, read_write> = access %data, %x_279
+            %43:i32 = load %42
+            store %41, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_284:i32 = load %k
-            %42:i32 = load %k
-            %43:i32 = add %42, 1i
-            store %k, %43
-            %x_286:i32 = load %j
-            %45:i32 = load %j
-            %46:i32 = add %45, 1i
-            store %j, %46
-            %47:ptr<private, i32, read_write> = access %temp, %x_284
-            %48:ptr<private, i32, read_write> = access %data, %x_286
-            %49:i32 = load %48
-            store %47, %49
+          $B8: {  # false
+            %44:i32 = load %k
+            %x_284:i32 = let %44
+            %46:i32 = load %k
+            %47:i32 = add %46, 1i
+            store %k, %47
+            %48:i32 = load %j
+            %x_286:i32 = let %48
+            %50:i32 = load %j
+            %51:i32 = add %50, 1i
+            store %j, %51
+            %52:ptr<private, i32, read_write> = access %temp, %x_284
+            %53:ptr<private, i32, read_write> = access %data, %x_286
+            %54:i32 = load %53
+            store %52, %54
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %50:i32 = load %i
-        %51:bool = lt %50, 10i
-        %52:i32 = load %i
-        %53:i32 = load %mid
-        %54:bool = lte %52, %53
-        %55:bool = and %51, %54
-        if %55 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %55:i32 = load %i
+        %56:bool = lt %55, 10i
+        %57:i32 = load %i
+        %58:i32 = load %mid
+        %59:bool = lte %57, %58
+        %60:bool = and %56, %59
+        if %60 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_302:i32 = load %k
-        %57:i32 = load %k
-        %58:i32 = add %57, 1i
-        store %k, %58
-        %x_304:i32 = load %i
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        %62:ptr<private, i32, read_write> = access %temp, %x_302
-        %63:ptr<private, i32, read_write> = access %data, %x_304
-        %64:i32 = load %63
-        store %62, %64
-        continue %b10
+        %61:i32 = load %k
+        %x_302:i32 = let %61
+        %63:i32 = load %k
+        %64:i32 = add %63, 1i
+        store %k, %64
+        %65:i32 = load %i
+        %x_304:i32 = let %65
+        %67:i32 = load %i
+        %68:i32 = add %67, 1i
+        store %i, %68
+        %69:ptr<private, i32, read_write> = access %temp, %x_302
+        %70:ptr<private, i32, read_write> = access %data, %x_304
+        %71:i32 = load %70
+        store %69, %71
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %65:i32 = load %f
-    store %i_1, %65
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %66:i32 = load %i_1
-        %67:i32 = load %to
-        %68:bool = lte %66, %67
-        if %68 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %72:i32 = load %f
+    store %i_1, %72
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %73:i32 = load %i_1
+        %74:i32 = load %to
+        %75:bool = lte %73, %74
+        if %75 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_318:i32 = load %i_1
-        %70:ptr<private, i32, read_write> = access %data, %x_318
-        %71:i32 = load %i_1
-        %72:ptr<private, i32, read_write> = access %temp, %71
-        %73:i32 = load %72
-        store %70, %73
-        continue %b14
+        %76:i32 = load %i_1
+        %x_318:i32 = let %76
+        %78:ptr<private, i32, read_write> = access %data, %x_318
+        %79:i32 = load %i_1
+        %80:ptr<private, i32, read_write> = access %temp, %79
+        %81:i32 = load %80
+        store %78, %81
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %74:i32 = load %i_1
-        %75:i32 = add %74, 1i
-        store %i_1, %75
-        next_iteration %b13
+      $B14: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -173,319 +181,332 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %87:i32 = load %m
-        %88:i32 = load %high
-        %89:bool = lte %87, %88
-        if %89 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %95:i32 = load %m
+        %96:i32 = load %high
+        %97:bool = lte %95, %96
+        if %97 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %90:i32 = load %low
-        store %i_2, %90
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %91:i32 = load %i_2
-            %92:i32 = load %high
-            %93:bool = lt %91, %92
-            if %93 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        %98:i32 = load %low
+        store %i_2, %98
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %99:i32 = load %i_2
+            %100:i32 = load %high
+            %101:bool = lt %99, %100
+            if %101 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %94:i32 = load %i_2
-            store %f_1, %94
-            %95:i32 = load %i_2
-            %96:i32 = load %m
-            %97:i32 = add %95, %96
-            %98:i32 = sub %97, 1i
-            store %mid_1, %98
-            %99:i32 = load %i_2
-            %100:i32 = load %m
-            %101:i32 = mul 2i, %100
-            %102:i32 = add %99, %101
-            %103:i32 = sub %102, 1i
-            %104:i32 = load %high
-            %105:i32 = min %103, %104
-            store %to_1, %105
-            %106:i32 = load %f_1
-            store %param, %106
-            %107:i32 = load %mid_1
-            store %param_1, %107
-            %108:i32 = load %to_1
-            store %param_2, %108
-            %109:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %102:i32 = load %i_2
+            store %f_1, %102
+            %103:i32 = load %i_2
+            %104:i32 = load %m
+            %105:i32 = add %103, %104
+            %106:i32 = sub %105, 1i
+            store %mid_1, %106
+            %107:i32 = load %i_2
+            %108:i32 = load %m
+            %109:i32 = mul 2i, %108
+            %110:i32 = add %107, %109
+            %111:i32 = sub %110, 1i
+            %112:i32 = load %high
+            %113:i32 = min %111, %112
+            store %to_1, %113
+            %114:i32 = load %f_1
+            store %param, %114
+            %115:i32 = load %mid_1
+            store %param_1, %115
+            %116:i32 = load %to_1
+            store %param_2, %116
+            %117:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %110:i32 = load %i_2
-            %111:i32 = load %m
-            %112:i32 = mul 2i, %111
-            %113:i32 = add %110, %112
-            store %i_2, %113
-            next_iteration %b22
+          $B23: {  # continuing
+            %118:i32 = load %i_2
+            %119:i32 = load %m
+            %120:i32 = mul 2i, %119
+            %121:i32 = add %118, %120
+            store %i_2, %121
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %114:i32 = load %m
-        %115:i32 = mul 2i, %114
-        store %m, %115
-        next_iteration %b18
+      $B19: {  # continuing
+        %122:i32 = load %m
+        %123:i32 = mul 2i, %122
+        store %m, %123
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %120:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %121:f32 = load_vector_element %120, 0u
-    %122:i32 = convert %121
-    store %i_3, %122
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_90:i32 = load %i_3
-        switch %x_90 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_120:i32 = load %i_3
-            %125:ptr<private, i32, read_write> = access %data, %x_120
-            store %125, -5i
+    %128:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %129:f32 = load_vector_element %128, 0u
+    %130:i32 = call %tint_f32_to_i32, %129
+    store %i_3, %130
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %132:i32 = load %i_3
+        %x_90:i32 = let %132
+        switch %x_90 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %134:i32 = load %i_3
+            %x_120:i32 = let %134
+            %136:ptr<private, i32, read_write> = access %data, %x_120
+            store %136, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_118:i32 = load %i_3
-            %127:ptr<private, i32, read_write> = access %data, %x_118
-            store %127, -4i
+          $B30: {  # case
+            %137:i32 = load %i_3
+            %x_118:i32 = let %137
+            %139:ptr<private, i32, read_write> = access %data, %x_118
+            store %139, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_116:i32 = load %i_3
-            %129:ptr<private, i32, read_write> = access %data, %x_116
-            store %129, -3i
+          $B31: {  # case
+            %140:i32 = load %i_3
+            %x_116:i32 = let %140
+            %142:ptr<private, i32, read_write> = access %data, %x_116
+            store %142, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_114:i32 = load %i_3
-            %131:ptr<private, i32, read_write> = access %data, %x_114
-            store %131, -2i
+          $B32: {  # case
+            %143:i32 = load %i_3
+            %x_114:i32 = let %143
+            %145:ptr<private, i32, read_write> = access %data, %x_114
+            store %145, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_112:i32 = load %i_3
-            %133:ptr<private, i32, read_write> = access %data, %x_112
-            store %133, -1i
+          $B33: {  # case
+            %146:i32 = load %i_3
+            %x_112:i32 = let %146
+            %148:ptr<private, i32, read_write> = access %data, %x_112
+            store %148, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_110:i32 = load %i_3
-            %135:ptr<private, i32, read_write> = access %data, %x_110
-            store %135, 0i
+          $B34: {  # case
+            %149:i32 = load %i_3
+            %x_110:i32 = let %149
+            %151:ptr<private, i32, read_write> = access %data, %x_110
+            store %151, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_108:i32 = load %i_3
-            %137:ptr<private, i32, read_write> = access %data, %x_108
-            store %137, 1i
+          $B35: {  # case
+            %152:i32 = load %i_3
+            %x_108:i32 = let %152
+            %154:ptr<private, i32, read_write> = access %data, %x_108
+            store %154, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_106:i32 = load %i_3
-            %139:ptr<private, i32, read_write> = access %data, %x_106
-            store %139, 2i
+          $B36: {  # case
+            %155:i32 = load %i_3
+            %x_106:i32 = let %155
+            %157:ptr<private, i32, read_write> = access %data, %x_106
+            store %157, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_104:i32 = load %i_3
-            %141:ptr<private, i32, read_write> = access %data, %x_104
-            store %141, 3i
+          $B37: {  # case
+            %158:i32 = load %i_3
+            %x_104:i32 = let %158
+            %160:ptr<private, i32, read_write> = access %data, %x_104
+            store %160, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_102:i32 = load %i_3
-            %143:ptr<private, i32, read_write> = access %data, %x_102
-            store %143, 4i
+          $B38: {  # case
+            %161:i32 = load %i_3
+            %x_102:i32 = let %161
+            %163:ptr<private, i32, read_write> = access %data, %x_102
+            store %163, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %144:i32 = load %i_3
-        %145:i32 = add %144, 1i
-        store %i_3, %145
-        continue %b28
+        %164:i32 = load %i_3
+        %165:i32 = add %164, 1i
+        store %i_3, %165
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_124:i32 = load %i_3
-        %147:bool = lt %x_124, 10i
-        %148:bool = eq %147, false
-        break_if %148 %b27
+      $B28: {  # continuing
+        %166:i32 = load %i_3
+        %x_124:i32 = let %166
+        %168:bool = lt %x_124, 10i
+        %169:bool = eq %168, false
+        break_if %169  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %149:i32 = load %j_1
-        %150:bool = lt %149, 10i
-        if %150 [t: %b42, f: %b43] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %170:i32 = load %j_1
+        %171:bool = lt %170, 10i
+        if %171 [t: $B42, f: $B43] {  # if_7
+          $B42: {  # true
             exit_if  # if_7
           }
-          %b43 = block {  # false
+          $B43: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_133:i32 = load %j_1
-        %152:ptr<private, i32, read_write> = access %temp, %x_133
-        %153:i32 = load %j_1
-        %154:ptr<private, i32, read_write> = access %data, %153
-        %155:i32 = load %154
-        store %152, %155
-        continue %b41
+        %172:i32 = load %j_1
+        %x_133:i32 = let %172
+        %174:ptr<private, i32, read_write> = access %temp, %x_133
+        %175:i32 = load %j_1
+        %176:ptr<private, i32, read_write> = access %data, %175
+        %177:i32 = load %176
+        store %174, %177
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %156:i32 = load %j_1
-        %157:i32 = add %156, 1i
-        store %j_1, %157
-        next_iteration %b40
+      $B41: {  # continuing
+        %178:i32 = load %j_1
+        %179:i32 = add %178, 1i
+        store %j_1, %179
+        next_iteration  # -> $B40
       }
     }
-    %158:void = call %mergeSort_
-    %159:f32 = load_vector_element %gl_FragCoord, 1u
-    %160:i32 = convert %159
-    %161:bool = lt %160, 30i
-    if %161 [t: %b44, f: %b45] {  # if_8
-      %b44 = block {  # true
-        %162:ptr<private, i32, read_write> = access %data, 0i
-        %163:i32 = load %162
-        %164:f32 = convert %163
-        %165:f32 = div %164, 10.0f
-        %166:f32 = add 0.5f, %165
-        store %grey, %166
+    %180:void = call %mergeSort_
+    %181:f32 = load_vector_element %gl_FragCoord, 1u
+    %182:i32 = call %tint_f32_to_i32, %181
+    %183:bool = lt %182, 30i
+    if %183 [t: $B44, f: $B45] {  # if_8
+      $B44: {  # true
+        %184:ptr<private, i32, read_write> = access %data, 0i
+        %185:i32 = load %184
+        %186:f32 = convert %185
+        %187:f32 = div %186, 10.0f
+        %188:f32 = add 0.5f, %187
+        store %grey, %188
         exit_if  # if_8
       }
-      %b45 = block {  # false
-        %167:f32 = load_vector_element %gl_FragCoord, 1u
-        %168:i32 = convert %167
-        %169:bool = lt %168, 60i
-        if %169 [t: %b46, f: %b47] {  # if_9
-          %b46 = block {  # true
-            %170:ptr<private, i32, read_write> = access %data, 1i
-            %171:i32 = load %170
-            %172:f32 = convert %171
-            %173:f32 = div %172, 10.0f
-            %174:f32 = add 0.5f, %173
-            store %grey, %174
+      $B45: {  # false
+        %189:f32 = load_vector_element %gl_FragCoord, 1u
+        %190:i32 = call %tint_f32_to_i32, %189
+        %191:bool = lt %190, 60i
+        if %191 [t: $B46, f: $B47] {  # if_9
+          $B46: {  # true
+            %192:ptr<private, i32, read_write> = access %data, 1i
+            %193:i32 = load %192
+            %194:f32 = convert %193
+            %195:f32 = div %194, 10.0f
+            %196:f32 = add 0.5f, %195
+            store %grey, %196
             exit_if  # if_9
           }
-          %b47 = block {  # false
-            %175:f32 = load_vector_element %gl_FragCoord, 1u
-            %176:i32 = convert %175
-            %177:bool = lt %176, 90i
-            if %177 [t: %b48, f: %b49] {  # if_10
-              %b48 = block {  # true
-                %178:ptr<private, i32, read_write> = access %data, 2i
-                %179:i32 = load %178
-                %180:f32 = convert %179
-                %181:f32 = div %180, 10.0f
-                %182:f32 = add 0.5f, %181
-                store %grey, %182
+          $B47: {  # false
+            %197:f32 = load_vector_element %gl_FragCoord, 1u
+            %198:i32 = call %tint_f32_to_i32, %197
+            %199:bool = lt %198, 90i
+            if %199 [t: $B48, f: $B49] {  # if_10
+              $B48: {  # true
+                %200:ptr<private, i32, read_write> = access %data, 2i
+                %201:i32 = load %200
+                %202:f32 = convert %201
+                %203:f32 = div %202, 10.0f
+                %204:f32 = add 0.5f, %203
+                store %grey, %204
                 exit_if  # if_10
               }
-              %b49 = block {  # false
-                %183:f32 = load_vector_element %gl_FragCoord, 1u
-                %184:i32 = convert %183
-                %185:bool = lt %184, 120i
-                if %185 [t: %b50, f: %b51] {  # if_11
-                  %b50 = block {  # true
-                    %186:ptr<private, i32, read_write> = access %data, 3i
-                    %187:i32 = load %186
-                    %188:f32 = convert %187
-                    %189:f32 = div %188, 10.0f
-                    %190:f32 = add 0.5f, %189
-                    store %grey, %190
+              $B49: {  # false
+                %205:f32 = load_vector_element %gl_FragCoord, 1u
+                %206:i32 = call %tint_f32_to_i32, %205
+                %207:bool = lt %206, 120i
+                if %207 [t: $B50, f: $B51] {  # if_11
+                  $B50: {  # true
+                    %208:ptr<private, i32, read_write> = access %data, 3i
+                    %209:i32 = load %208
+                    %210:f32 = convert %209
+                    %211:f32 = div %210, 10.0f
+                    %212:f32 = add 0.5f, %211
+                    store %grey, %212
                     exit_if  # if_11
                   }
-                  %b51 = block {  # false
-                    %191:f32 = load_vector_element %gl_FragCoord, 1u
-                    %192:i32 = convert %191
-                    %193:bool = lt %192, 150i
-                    if %193 [t: %b52, f: %b53] {  # if_12
-                      %b52 = block {  # true
-                        discard
+                  $B51: {  # false
+                    %213:f32 = load_vector_element %gl_FragCoord, 1u
+                    %214:i32 = call %tint_f32_to_i32, %213
+                    %215:bool = lt %214, 150i
+                    if %215 [t: $B52, f: $B53] {  # if_12
+                      $B52: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b53 = block {  # false
-                        %194:f32 = load_vector_element %gl_FragCoord, 1u
-                        %195:i32 = convert %194
-                        %196:bool = lt %195, 180i
-                        if %196 [t: %b54, f: %b55] {  # if_13
-                          %b54 = block {  # true
-                            %197:ptr<private, i32, read_write> = access %data, 5i
-                            %198:i32 = load %197
-                            %199:f32 = convert %198
-                            %200:f32 = div %199, 10.0f
-                            %201:f32 = add 0.5f, %200
-                            store %grey, %201
+                      $B53: {  # false
+                        %216:f32 = load_vector_element %gl_FragCoord, 1u
+                        %217:i32 = call %tint_f32_to_i32, %216
+                        %218:bool = lt %217, 180i
+                        if %218 [t: $B54, f: $B55] {  # if_13
+                          $B54: {  # true
+                            %219:ptr<private, i32, read_write> = access %data, 5i
+                            %220:i32 = load %219
+                            %221:f32 = convert %220
+                            %222:f32 = div %221, 10.0f
+                            %223:f32 = add 0.5f, %222
+                            store %grey, %223
                             exit_if  # if_13
                           }
-                          %b55 = block {  # false
-                            %202:f32 = load_vector_element %gl_FragCoord, 1u
-                            %203:i32 = convert %202
-                            %204:bool = lt %203, 210i
-                            if %204 [t: %b56, f: %b57] {  # if_14
-                              %b56 = block {  # true
-                                %205:ptr<private, i32, read_write> = access %data, 6i
-                                %206:i32 = load %205
-                                %207:f32 = convert %206
-                                %208:f32 = div %207, 10.0f
-                                %209:f32 = add 0.5f, %208
-                                store %grey, %209
+                          $B55: {  # false
+                            %224:f32 = load_vector_element %gl_FragCoord, 1u
+                            %225:i32 = call %tint_f32_to_i32, %224
+                            %226:bool = lt %225, 210i
+                            if %226 [t: $B56, f: $B57] {  # if_14
+                              $B56: {  # true
+                                %227:ptr<private, i32, read_write> = access %data, 6i
+                                %228:i32 = load %227
+                                %229:f32 = convert %228
+                                %230:f32 = div %229, 10.0f
+                                %231:f32 = add 0.5f, %230
+                                store %grey, %231
                                 exit_if  # if_14
                               }
-                              %b57 = block {  # false
-                                %210:f32 = load_vector_element %gl_FragCoord, 1u
-                                %211:i32 = convert %210
-                                %212:bool = lt %211, 240i
-                                if %212 [t: %b58, f: %b59] {  # if_15
-                                  %b58 = block {  # true
-                                    %213:ptr<private, i32, read_write> = access %data, 7i
-                                    %214:i32 = load %213
-                                    %215:f32 = convert %214
-                                    %216:f32 = div %215, 10.0f
-                                    %217:f32 = add 0.5f, %216
-                                    store %grey, %217
+                              $B57: {  # false
+                                %232:f32 = load_vector_element %gl_FragCoord, 1u
+                                %233:i32 = call %tint_f32_to_i32, %232
+                                %234:bool = lt %233, 240i
+                                if %234 [t: $B58, f: $B59] {  # if_15
+                                  $B58: {  # true
+                                    %235:ptr<private, i32, read_write> = access %data, 7i
+                                    %236:i32 = load %235
+                                    %237:f32 = convert %236
+                                    %238:f32 = div %237, 10.0f
+                                    %239:f32 = add 0.5f, %238
+                                    store %grey, %239
                                     exit_if  # if_15
                                   }
-                                  %b59 = block {  # false
-                                    %218:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %219:i32 = convert %218
-                                    %220:bool = lt %219, 270i
-                                    if %220 [t: %b60, f: %b61] {  # if_16
-                                      %b60 = block {  # true
-                                        %221:ptr<private, i32, read_write> = access %data, 8i
-                                        %222:i32 = load %221
-                                        %223:f32 = convert %222
-                                        %224:f32 = div %223, 10.0f
-                                        %225:f32 = add 0.5f, %224
-                                        store %grey, %225
+                                  $B59: {  # false
+                                    %240:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %241:i32 = call %tint_f32_to_i32, %240
+                                    %242:bool = lt %241, 270i
+                                    if %242 [t: $B60, f: $B61] {  # if_16
+                                      $B60: {  # true
+                                        %243:ptr<private, i32, read_write> = access %data, 8i
+                                        %244:i32 = load %243
+                                        %245:f32 = convert %244
+                                        %246:f32 = div %245, 10.0f
+                                        %247:f32 = add 0.5f, %246
+                                        store %grey, %247
                                         exit_if  # if_16
                                       }
-                                      %b61 = block {  # false
-                                        discard
+                                      $B61: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -513,23 +534,41 @@
         exit_if  # if_8
       }
     }
-    %226:f32 = load %grey
-    %x_245:vec3<f32> = construct %226
-    %228:f32 = access %x_245, 0u
-    %229:f32 = access %x_245, 1u
-    %230:f32 = access %x_245, 2u
-    %231:vec4<f32> = construct %228, %229, %230, 1.0f
-    store %x_GLF_color, %231
+    %248:f32 = load %grey
+    %249:vec3<f32> = construct %248
+    %x_245:vec3<f32> = let %249
+    %251:f32 = access %x_245, 0u
+    %252:f32 = access %x_245, 1u
+    %253:f32 = access %x_245, 2u
+    %254:vec4<f32> = construct %251, %252, %253, 1.0f
+    store %x_GLF_color, %254
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b62 {
-  %b62 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B62: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %234:void = call %main_1
-    %235:vec4<f32> = load %x_GLF_color
-    %236:main_out = construct %235
-    ret %236
+    %257:void = call %main_1
+    %258:vec4<f32> = load %x_GLF_color
+    %259:main_out = construct %258
+    %260:bool = load %continue_execution
+    %261:bool = eq %260, false
+    if %261 [t: $B63] {  # if_17
+      $B63: {  # true
+        terminate_invocation
+      }
+    }
+    ret %259
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B64: {
+    %263:i32 = convert %value
+    %264:bool = gte %value, -2147483648.0f
+    %265:i32 = select -2147483648i, %263, %264
+    %266:bool = lte %value, 2147483520.0f
+    %267:i32 = select 2147483647i, %265, %266
+    ret %267
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.msl
index 5763af40..3b9439c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,152 +8,183 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_251:i32 = load %f
+    %15:i32 = load %f
+    %x_251:i32 = let %15
     store %k, %x_251
-    %x_252:i32 = load %f
+    %17:i32 = load %f
+    %x_252:i32 = let %17
     store %i, %x_252
-    %x_253:i32 = load %mid
-    %17:i32 = add %x_253, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_259:i32 = load %i
-        %x_260:i32 = load %mid
-        %x_262:i32 = load %j
-        %x_263:i32 = load %to
-        %22:bool = lte %x_259, %x_260
-        %23:bool = lte %x_262, %x_263
-        %24:bool = and %22, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %mid
+    %x_253:i32 = let %19
+    %21:i32 = add %x_253, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %i
+        %x_259:i32 = let %22
+        %24:i32 = load %mid
+        %x_260:i32 = let %24
+        %26:i32 = load %j
+        %x_262:i32 = let %26
+        %28:i32 = load %to
+        %x_263:i32 = let %28
+        %30:bool = lte %x_259, %x_260
+        %31:bool = lte %x_262, %x_263
+        %32:bool = and %30, %31
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_267:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %x_267
-        %x_269:i32 = load %26
-        %x_270:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %x_270
-        %x_272:i32 = load %29
-        %31:bool = lt %x_269, %x_272
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_277:i32 = load %k
-            %33:i32 = add %x_277, 1i
-            store %k, %33
-            %x_279:i32 = load %i
-            %35:i32 = add %x_279, 1i
-            store %i, %35
-            %36:ptr<private, i32, read_write> = access %data, %x_279
-            %x_282:i32 = load %36
-            %38:ptr<private, i32, read_write> = access %temp, %x_277
-            store %38, %x_282
+        %33:i32 = load %i
+        %x_267:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_267
+        %36:i32 = load %35
+        %x_269:i32 = let %36
+        %38:i32 = load %j
+        %x_270:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %data, %x_270
+        %41:i32 = load %40
+        %x_272:i32 = let %41
+        %43:bool = lt %x_269, %x_272
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %44:i32 = load %k
+            %x_277:i32 = let %44
+            %46:i32 = add %x_277, 1i
+            store %k, %46
+            %47:i32 = load %i
+            %x_279:i32 = let %47
+            %49:i32 = add %x_279, 1i
+            store %i, %49
+            %50:ptr<private, i32, read_write> = access %data, %x_279
+            %51:i32 = load %50
+            %x_282:i32 = let %51
+            %53:ptr<private, i32, read_write> = access %temp, %x_277
+            store %53, %x_282
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_284:i32 = load %k
-            %40:i32 = add %x_284, 1i
-            store %k, %40
-            %x_286:i32 = load %j
-            %42:i32 = add %x_286, 1i
-            store %j, %42
-            %43:ptr<private, i32, read_write> = access %data, %x_286
-            %x_289:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %temp, %x_284
-            store %45, %x_289
+          $B8: {  # false
+            %54:i32 = load %k
+            %x_284:i32 = let %54
+            %56:i32 = add %x_284, 1i
+            store %k, %56
+            %57:i32 = load %j
+            %x_286:i32 = let %57
+            %59:i32 = add %x_286, 1i
+            store %j, %59
+            %60:ptr<private, i32, read_write> = access %data, %x_286
+            %61:i32 = load %60
+            %x_289:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %temp, %x_284
+            store %63, %x_289
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_295:i32 = load %i
-        %x_297:i32 = load %i
-        %x_298:i32 = load %mid
-        %49:bool = lt %x_295, 10i
-        %50:bool = lte %x_297, %x_298
-        %51:bool = and %49, %50
-        if %51 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %64:i32 = load %i
+        %x_295:i32 = let %64
+        %66:i32 = load %i
+        %x_297:i32 = let %66
+        %68:i32 = load %mid
+        %x_298:i32 = let %68
+        %70:bool = lt %x_295, 10i
+        %71:bool = lte %x_297, %x_298
+        %72:bool = and %70, %71
+        if %72 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_302:i32 = load %k
-        %53:i32 = add %x_302, 1i
-        store %k, %53
-        %x_304:i32 = load %i
-        %55:i32 = add %x_304, 1i
-        store %i, %55
-        %56:ptr<private, i32, read_write> = access %data, %x_304
-        %x_307:i32 = load %56
-        %58:ptr<private, i32, read_write> = access %temp, %x_302
-        store %58, %x_307
-        continue %b10
+        %73:i32 = load %k
+        %x_302:i32 = let %73
+        %75:i32 = add %x_302, 1i
+        store %k, %75
+        %76:i32 = load %i
+        %x_304:i32 = let %76
+        %78:i32 = add %x_304, 1i
+        store %i, %78
+        %79:ptr<private, i32, read_write> = access %data, %x_304
+        %80:i32 = load %79
+        %x_307:i32 = let %80
+        %82:ptr<private, i32, read_write> = access %temp, %x_302
+        store %82, %x_307
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_309:i32 = load %f
+    %83:i32 = load %f
+    %x_309:i32 = let %83
     store %i_1, %x_309
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_314:i32 = load %i_1
-        %x_315:i32 = load %to
-        %62:bool = lte %x_314, %x_315
-        if %62 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %85:i32 = load %i_1
+        %x_314:i32 = let %85
+        %87:i32 = load %to
+        %x_315:i32 = let %87
+        %89:bool = lte %x_314, %x_315
+        if %89 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_318:i32 = load %i_1
-        %x_319:i32 = load %i_1
-        %65:ptr<private, i32, read_write> = access %temp, %x_319
-        %x_321:i32 = load %65
-        %67:ptr<private, i32, read_write> = access %data, %x_318
-        store %67, %x_321
-        continue %b14
+        %90:i32 = load %i_1
+        %x_318:i32 = let %90
+        %92:i32 = load %i_1
+        %x_319:i32 = let %92
+        %94:ptr<private, i32, read_write> = access %temp, %x_319
+        %95:i32 = load %94
+        %x_321:i32 = let %95
+        %97:ptr<private, i32, read_write> = access %data, %x_318
+        store %97, %x_321
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_323:i32 = load %i_1
-        %69:i32 = add %x_323, 1i
-        store %i_1, %69
-        next_iteration %b13
+      $B14: {  # continuing
+        %98:i32 = load %i_1
+        %x_323:i32 = let %98
+        %100:i32 = add %x_323, 1i
+        store %i_1, %100
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -167,319 +198,372 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_330:i32 = load %m
-        %x_331:i32 = load %high
-        %83:bool = lte %x_330, %x_331
-        if %83 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %112:i32 = load %m
+        %x_330:i32 = let %112
+        %114:i32 = load %high
+        %x_331:i32 = let %114
+        %116:bool = lte %x_330, %x_331
+        if %116 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_334:i32 = load %low
+        %117:i32 = load %low
+        %x_334:i32 = let %117
         store %i_2, %x_334
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %x_339:i32 = load %i_2
-            %x_340:i32 = load %high
-            %87:bool = lt %x_339, %x_340
-            if %87 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %119:i32 = load %i_2
+            %x_339:i32 = let %119
+            %121:i32 = load %high
+            %x_340:i32 = let %121
+            %123:bool = lt %x_339, %x_340
+            if %123 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_343:i32 = load %i_2
+            %124:i32 = load %i_2
+            %x_343:i32 = let %124
             store %f_1, %x_343
-            %x_344:i32 = load %i_2
-            %x_345:i32 = load %m
-            %91:i32 = add %x_344, %x_345
-            %92:i32 = sub %91, 1i
-            store %mid_1, %92
-            %x_348:i32 = load %i_2
-            %x_349:i32 = load %m
-            %x_353:i32 = load %high
-            %96:i32 = mul 2i, %x_349
-            %97:i32 = add %x_348, %96
-            %98:i32 = sub %97, 1i
-            %99:i32 = min %98, %x_353
-            store %to_1, %99
-            %x_355:i32 = load %f_1
+            %126:i32 = load %i_2
+            %x_344:i32 = let %126
+            %128:i32 = load %m
+            %x_345:i32 = let %128
+            %130:i32 = add %x_344, %x_345
+            %131:i32 = sub %130, 1i
+            store %mid_1, %131
+            %132:i32 = load %i_2
+            %x_348:i32 = let %132
+            %134:i32 = load %m
+            %x_349:i32 = let %134
+            %136:i32 = load %high
+            %x_353:i32 = let %136
+            %138:i32 = mul 2i, %x_349
+            %139:i32 = add %x_348, %138
+            %140:i32 = sub %139, 1i
+            %141:i32 = min %140, %x_353
+            store %to_1, %141
+            %142:i32 = load %f_1
+            %x_355:i32 = let %142
             store %param, %x_355
-            %x_356:i32 = load %mid_1
+            %144:i32 = load %mid_1
+            %x_356:i32 = let %144
             store %param_1, %x_356
-            %x_357:i32 = load %to_1
+            %146:i32 = load %to_1
+            %x_357:i32 = let %146
             store %param_2, %x_357
-            %103:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %148:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %x_359:i32 = load %m
-            %x_361:i32 = load %i_2
-            %106:i32 = mul 2i, %x_359
-            %107:i32 = add %x_361, %106
-            store %i_2, %107
-            next_iteration %b22
+          $B23: {  # continuing
+            %149:i32 = load %m
+            %x_359:i32 = let %149
+            %151:i32 = load %i_2
+            %x_361:i32 = let %151
+            %153:i32 = mul 2i, %x_359
+            %154:i32 = add %x_361, %153
+            store %i_2, %154
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_363:i32 = load %m
-        %109:i32 = mul 2i, %x_363
-        store %m, %109
-        next_iteration %b18
+      $B19: {  # continuing
+        %155:i32 = load %m
+        %x_363:i32 = let %155
+        %157:i32 = mul 2i, %x_363
+        store %m, %157
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %114:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_84:f32 = load_vector_element %114, 0u
-    %116:i32 = convert %x_84
-    store %i_3, %116
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_90:i32 = load %i_3
-        switch %x_90 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_120:i32 = load %i_3
-            %119:ptr<private, i32, read_write> = access %data, %x_120
-            store %119, -5i
+    %162:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %163:f32 = load_vector_element %162, 0u
+    %x_84:f32 = let %163
+    %165:i32 = call %tint_f32_to_i32, %x_84
+    store %i_3, %165
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %167:i32 = load %i_3
+        %x_90:i32 = let %167
+        switch %x_90 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %169:i32 = load %i_3
+            %x_120:i32 = let %169
+            %171:ptr<private, i32, read_write> = access %data, %x_120
+            store %171, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_118:i32 = load %i_3
-            %121:ptr<private, i32, read_write> = access %data, %x_118
-            store %121, -4i
+          $B30: {  # case
+            %172:i32 = load %i_3
+            %x_118:i32 = let %172
+            %174:ptr<private, i32, read_write> = access %data, %x_118
+            store %174, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_116:i32 = load %i_3
-            %123:ptr<private, i32, read_write> = access %data, %x_116
-            store %123, -3i
+          $B31: {  # case
+            %175:i32 = load %i_3
+            %x_116:i32 = let %175
+            %177:ptr<private, i32, read_write> = access %data, %x_116
+            store %177, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_114:i32 = load %i_3
-            %125:ptr<private, i32, read_write> = access %data, %x_114
-            store %125, -2i
+          $B32: {  # case
+            %178:i32 = load %i_3
+            %x_114:i32 = let %178
+            %180:ptr<private, i32, read_write> = access %data, %x_114
+            store %180, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_112:i32 = load %i_3
-            %127:ptr<private, i32, read_write> = access %data, %x_112
-            store %127, -1i
+          $B33: {  # case
+            %181:i32 = load %i_3
+            %x_112:i32 = let %181
+            %183:ptr<private, i32, read_write> = access %data, %x_112
+            store %183, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_110:i32 = load %i_3
-            %129:ptr<private, i32, read_write> = access %data, %x_110
-            store %129, 0i
+          $B34: {  # case
+            %184:i32 = load %i_3
+            %x_110:i32 = let %184
+            %186:ptr<private, i32, read_write> = access %data, %x_110
+            store %186, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_108:i32 = load %i_3
-            %131:ptr<private, i32, read_write> = access %data, %x_108
-            store %131, 1i
+          $B35: {  # case
+            %187:i32 = load %i_3
+            %x_108:i32 = let %187
+            %189:ptr<private, i32, read_write> = access %data, %x_108
+            store %189, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_106:i32 = load %i_3
-            %133:ptr<private, i32, read_write> = access %data, %x_106
-            store %133, 2i
+          $B36: {  # case
+            %190:i32 = load %i_3
+            %x_106:i32 = let %190
+            %192:ptr<private, i32, read_write> = access %data, %x_106
+            store %192, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_104:i32 = load %i_3
-            %135:ptr<private, i32, read_write> = access %data, %x_104
-            store %135, 3i
+          $B37: {  # case
+            %193:i32 = load %i_3
+            %x_104:i32 = let %193
+            %195:ptr<private, i32, read_write> = access %data, %x_104
+            store %195, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_102:i32 = load %i_3
-            %137:ptr<private, i32, read_write> = access %data, %x_102
-            store %137, 4i
+          $B38: {  # case
+            %196:i32 = load %i_3
+            %x_102:i32 = let %196
+            %198:ptr<private, i32, read_write> = access %data, %x_102
+            store %198, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_122:i32 = load %i_3
-        %139:i32 = add %x_122, 1i
-        store %i_3, %139
-        continue %b28
+        %199:i32 = load %i_3
+        %x_122:i32 = let %199
+        %201:i32 = add %x_122, 1i
+        store %i_3, %201
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_124:i32 = load %i_3
-        %141:bool = lt %x_124, 10i
-        %142:bool = eq %141, false
-        break_if %142 %b27
+      $B28: {  # continuing
+        %202:i32 = load %i_3
+        %x_124:i32 = let %202
+        %204:bool = lt %x_124, 10i
+        %205:bool = eq %204, false
+        break_if %205  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %x_130:i32 = load %j_1
-        %144:bool = lt %x_130, 10i
-        if %144 [t: %b42, f: %b43] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %206:i32 = load %j_1
+        %x_130:i32 = let %206
+        %208:bool = lt %x_130, 10i
+        if %208 [t: $B42, f: $B43] {  # if_7
+          $B42: {  # true
             exit_if  # if_7
           }
-          %b43 = block {  # false
+          $B43: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_133:i32 = load %j_1
-        %x_134:i32 = load %j_1
-        %147:ptr<private, i32, read_write> = access %data, %x_134
-        %x_136:i32 = load %147
-        %149:ptr<private, i32, read_write> = access %temp, %x_133
-        store %149, %x_136
-        continue %b41
+        %209:i32 = load %j_1
+        %x_133:i32 = let %209
+        %211:i32 = load %j_1
+        %x_134:i32 = let %211
+        %213:ptr<private, i32, read_write> = access %data, %x_134
+        %214:i32 = load %213
+        %x_136:i32 = let %214
+        %216:ptr<private, i32, read_write> = access %temp, %x_133
+        store %216, %x_136
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %x_138:i32 = load %j_1
-        %151:i32 = add %x_138, 1i
-        store %j_1, %151
-        next_iteration %b40
+      $B41: {  # continuing
+        %217:i32 = load %j_1
+        %x_138:i32 = let %217
+        %219:i32 = add %x_138, 1i
+        store %j_1, %219
+        next_iteration  # -> $B40
       }
     }
-    %152:void = call %mergeSort_
-    %x_142:f32 = load_vector_element %gl_FragCoord, 1u
-    %154:i32 = convert %x_142
-    %155:bool = lt %154, 30i
-    if %155 [t: %b44, f: %b45] {  # if_8
-      %b44 = block {  # true
-        %156:ptr<private, i32, read_write> = access %data, 0i
-        %x_149:i32 = load %156
-        %158:f32 = convert %x_149
-        %159:f32 = div %158, 10.0f
-        %160:f32 = add 0.5f, %159
-        store %grey, %160
+    %220:void = call %mergeSort_
+    %221:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_142:f32 = let %221
+    %223:i32 = call %tint_f32_to_i32, %x_142
+    %224:bool = lt %223, 30i
+    if %224 [t: $B44, f: $B45] {  # if_8
+      $B44: {  # true
+        %225:ptr<private, i32, read_write> = access %data, 0i
+        %226:i32 = load %225
+        %x_149:i32 = let %226
+        %228:f32 = convert %x_149
+        %229:f32 = div %228, 10.0f
+        %230:f32 = add 0.5f, %229
+        store %grey, %230
         exit_if  # if_8
       }
-      %b45 = block {  # false
-        %x_154:f32 = load_vector_element %gl_FragCoord, 1u
-        %162:i32 = convert %x_154
-        %163:bool = lt %162, 60i
-        if %163 [t: %b46, f: %b47] {  # if_9
-          %b46 = block {  # true
-            %164:ptr<private, i32, read_write> = access %data, 1i
-            %x_161:i32 = load %164
-            %166:f32 = convert %x_161
-            %167:f32 = div %166, 10.0f
-            %168:f32 = add 0.5f, %167
-            store %grey, %168
+      $B45: {  # false
+        %231:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_154:f32 = let %231
+        %233:i32 = call %tint_f32_to_i32, %x_154
+        %234:bool = lt %233, 60i
+        if %234 [t: $B46, f: $B47] {  # if_9
+          $B46: {  # true
+            %235:ptr<private, i32, read_write> = access %data, 1i
+            %236:i32 = load %235
+            %x_161:i32 = let %236
+            %238:f32 = convert %x_161
+            %239:f32 = div %238, 10.0f
+            %240:f32 = add 0.5f, %239
+            store %grey, %240
             exit_if  # if_9
           }
-          %b47 = block {  # false
-            %x_166:f32 = load_vector_element %gl_FragCoord, 1u
-            %170:i32 = convert %x_166
-            %171:bool = lt %170, 90i
-            if %171 [t: %b48, f: %b49] {  # if_10
-              %b48 = block {  # true
-                %172:ptr<private, i32, read_write> = access %data, 2i
-                %x_173:i32 = load %172
-                %174:f32 = convert %x_173
-                %175:f32 = div %174, 10.0f
-                %176:f32 = add 0.5f, %175
-                store %grey, %176
+          $B47: {  # false
+            %241:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_166:f32 = let %241
+            %243:i32 = call %tint_f32_to_i32, %x_166
+            %244:bool = lt %243, 90i
+            if %244 [t: $B48, f: $B49] {  # if_10
+              $B48: {  # true
+                %245:ptr<private, i32, read_write> = access %data, 2i
+                %246:i32 = load %245
+                %x_173:i32 = let %246
+                %248:f32 = convert %x_173
+                %249:f32 = div %248, 10.0f
+                %250:f32 = add 0.5f, %249
+                store %grey, %250
                 exit_if  # if_10
               }
-              %b49 = block {  # false
-                %x_178:f32 = load_vector_element %gl_FragCoord, 1u
-                %178:i32 = convert %x_178
-                %179:bool = lt %178, 120i
-                if %179 [t: %b50, f: %b51] {  # if_11
-                  %b50 = block {  # true
-                    %180:ptr<private, i32, read_write> = access %data, 3i
-                    %x_185:i32 = load %180
-                    %182:f32 = convert %x_185
-                    %183:f32 = div %182, 10.0f
-                    %184:f32 = add 0.5f, %183
-                    store %grey, %184
+              $B49: {  # false
+                %251:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_178:f32 = let %251
+                %253:i32 = call %tint_f32_to_i32, %x_178
+                %254:bool = lt %253, 120i
+                if %254 [t: $B50, f: $B51] {  # if_11
+                  $B50: {  # true
+                    %255:ptr<private, i32, read_write> = access %data, 3i
+                    %256:i32 = load %255
+                    %x_185:i32 = let %256
+                    %258:f32 = convert %x_185
+                    %259:f32 = div %258, 10.0f
+                    %260:f32 = add 0.5f, %259
+                    store %grey, %260
                     exit_if  # if_11
                   }
-                  %b51 = block {  # false
-                    %x_190:f32 = load_vector_element %gl_FragCoord, 1u
-                    %186:i32 = convert %x_190
-                    %187:bool = lt %186, 150i
-                    if %187 [t: %b52, f: %b53] {  # if_12
-                      %b52 = block {  # true
-                        discard
+                  $B51: {  # false
+                    %261:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_190:f32 = let %261
+                    %263:i32 = call %tint_f32_to_i32, %x_190
+                    %264:bool = lt %263, 150i
+                    if %264 [t: $B52, f: $B53] {  # if_12
+                      $B52: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b53 = block {  # false
-                        %x_197:f32 = load_vector_element %gl_FragCoord, 1u
-                        %189:i32 = convert %x_197
-                        %190:bool = lt %189, 180i
-                        if %190 [t: %b54, f: %b55] {  # if_13
-                          %b54 = block {  # true
-                            %191:ptr<private, i32, read_write> = access %data, 5i
-                            %x_204:i32 = load %191
-                            %193:f32 = convert %x_204
-                            %194:f32 = div %193, 10.0f
-                            %195:f32 = add 0.5f, %194
-                            store %grey, %195
+                      $B53: {  # false
+                        %265:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_197:f32 = let %265
+                        %267:i32 = call %tint_f32_to_i32, %x_197
+                        %268:bool = lt %267, 180i
+                        if %268 [t: $B54, f: $B55] {  # if_13
+                          $B54: {  # true
+                            %269:ptr<private, i32, read_write> = access %data, 5i
+                            %270:i32 = load %269
+                            %x_204:i32 = let %270
+                            %272:f32 = convert %x_204
+                            %273:f32 = div %272, 10.0f
+                            %274:f32 = add 0.5f, %273
+                            store %grey, %274
                             exit_if  # if_13
                           }
-                          %b55 = block {  # false
-                            %x_209:f32 = load_vector_element %gl_FragCoord, 1u
-                            %197:i32 = convert %x_209
-                            %198:bool = lt %197, 210i
-                            if %198 [t: %b56, f: %b57] {  # if_14
-                              %b56 = block {  # true
-                                %199:ptr<private, i32, read_write> = access %data, 6i
-                                %x_216:i32 = load %199
-                                %201:f32 = convert %x_216
-                                %202:f32 = div %201, 10.0f
-                                %203:f32 = add 0.5f, %202
-                                store %grey, %203
+                          $B55: {  # false
+                            %275:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_209:f32 = let %275
+                            %277:i32 = call %tint_f32_to_i32, %x_209
+                            %278:bool = lt %277, 210i
+                            if %278 [t: $B56, f: $B57] {  # if_14
+                              $B56: {  # true
+                                %279:ptr<private, i32, read_write> = access %data, 6i
+                                %280:i32 = load %279
+                                %x_216:i32 = let %280
+                                %282:f32 = convert %x_216
+                                %283:f32 = div %282, 10.0f
+                                %284:f32 = add 0.5f, %283
+                                store %grey, %284
                                 exit_if  # if_14
                               }
-                              %b57 = block {  # false
-                                %x_221:f32 = load_vector_element %gl_FragCoord, 1u
-                                %205:i32 = convert %x_221
-                                %206:bool = lt %205, 240i
-                                if %206 [t: %b58, f: %b59] {  # if_15
-                                  %b58 = block {  # true
-                                    %207:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_228:i32 = load %207
-                                    %209:f32 = convert %x_228
-                                    %210:f32 = div %209, 10.0f
-                                    %211:f32 = add 0.5f, %210
-                                    store %grey, %211
+                              $B57: {  # false
+                                %285:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_221:f32 = let %285
+                                %287:i32 = call %tint_f32_to_i32, %x_221
+                                %288:bool = lt %287, 240i
+                                if %288 [t: $B58, f: $B59] {  # if_15
+                                  $B58: {  # true
+                                    %289:ptr<private, i32, read_write> = access %data, 7i
+                                    %290:i32 = load %289
+                                    %x_228:i32 = let %290
+                                    %292:f32 = convert %x_228
+                                    %293:f32 = div %292, 10.0f
+                                    %294:f32 = add 0.5f, %293
+                                    store %grey, %294
                                     exit_if  # if_15
                                   }
-                                  %b59 = block {  # false
-                                    %x_233:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %213:i32 = convert %x_233
-                                    %214:bool = lt %213, 270i
-                                    if %214 [t: %b60, f: %b61] {  # if_16
-                                      %b60 = block {  # true
-                                        %215:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_240:i32 = load %215
-                                        %217:f32 = convert %x_240
-                                        %218:f32 = div %217, 10.0f
-                                        %219:f32 = add 0.5f, %218
-                                        store %grey, %219
+                                  $B59: {  # false
+                                    %295:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_233:f32 = let %295
+                                    %297:i32 = call %tint_f32_to_i32, %x_233
+                                    %298:bool = lt %297, 270i
+                                    if %298 [t: $B60, f: $B61] {  # if_16
+                                      $B60: {  # true
+                                        %299:ptr<private, i32, read_write> = access %data, 8i
+                                        %300:i32 = load %299
+                                        %x_240:i32 = let %300
+                                        %302:f32 = convert %x_240
+                                        %303:f32 = div %302, 10.0f
+                                        %304:f32 = add 0.5f, %303
+                                        store %grey, %304
                                         exit_if  # if_16
                                       }
-                                      %b61 = block {  # false
-                                        discard
+                                      $B61: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -507,23 +591,42 @@
         exit_if  # if_8
       }
     }
-    %x_244:f32 = load %grey
-    %x_245:vec3<f32> = construct %x_244, %x_244, %x_244
-    %222:f32 = access %x_245, 0u
-    %223:f32 = access %x_245, 1u
-    %224:f32 = access %x_245, 2u
-    %225:vec4<f32> = construct %222, %223, %224, 1.0f
-    store %x_GLF_color, %225
+    %305:f32 = load %grey
+    %x_244:f32 = let %305
+    %307:vec3<f32> = construct %x_244, %x_244, %x_244
+    %x_245:vec3<f32> = let %307
+    %309:f32 = access %x_245, 0u
+    %310:f32 = access %x_245, 1u
+    %311:f32 = access %x_245, 2u
+    %312:vec4<f32> = construct %309, %310, %311, 1.0f
+    store %x_GLF_color, %312
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b62 {
-  %b62 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B62: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %228:void = call %main_1
-    %229:vec4<f32> = load %x_GLF_color
-    %230:main_out = construct %229
-    ret %230
+    %315:void = call %main_1
+    %316:vec4<f32> = load %x_GLF_color
+    %317:main_out = construct %316
+    %318:bool = load %continue_execution
+    %319:bool = eq %318, false
+    if %319 [t: $B63] {  # if_17
+      $B63: {  # true
+        terminate_invocation
+      }
+    }
+    ret %317
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B64: {
+    %321:i32 = convert %value
+    %322:bool = gte %value, -2147483648.0f
+    %323:i32 = select -2147483648i, %321, %322
+    %324:bool = lte %value, 2147483520.0f
+    %325:i32 = select 2147483647i, %323, %324
+    ret %325
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.msl
index 098a59e..e64dc3d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,158 +8,166 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %i
-        %19:i32 = load %mid
-        %20:bool = lte %18, %19
-        %21:i32 = load %j
-        %22:i32 = load %to
-        %23:bool = lte %21, %22
-        %24:bool = and %20, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %20:i32 = load %mid
+        %21:bool = lte %19, %20
+        %22:i32 = load %j
+        %23:i32 = load %to
+        %24:bool = lte %22, %23
+        %25:bool = and %21, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %25:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %25
-        %27:i32 = load %26
-        %28:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %28
-        %30:i32 = load %29
-        %31:bool = lt %27, %30
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_288:i32 = load %k
+        %26:i32 = load %i
+        %27:ptr<private, i32, read_write> = access %data, %26
+        %28:i32 = load %27
+        %29:i32 = load %j
+        %30:ptr<private, i32, read_write> = access %data, %29
+        %31:i32 = load %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %33:i32 = load %k
-            %34:i32 = add %33, 1i
-            store %k, %34
-            %x_290:i32 = load %i
-            %36:i32 = load %i
-            %37:i32 = add %36, 1i
-            store %i, %37
-            %38:ptr<private, i32, read_write> = access %temp, %x_288
-            %39:ptr<private, i32, read_write> = access %data, %x_290
-            %40:i32 = load %39
-            store %38, %40
+            %x_288:i32 = let %33
+            %35:i32 = load %k
+            %36:i32 = add %35, 1i
+            store %k, %36
+            %37:i32 = load %i
+            %x_290:i32 = let %37
+            %39:i32 = load %i
+            %40:i32 = add %39, 1i
+            store %i, %40
+            %41:ptr<private, i32, read_write> = access %temp, %x_288
+            %42:ptr<private, i32, read_write> = access %data, %x_290
+            %43:i32 = load %42
+            store %41, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_295:i32 = load %k
-            %42:i32 = load %k
-            %43:i32 = add %42, 1i
-            store %k, %43
-            %x_297:i32 = load %j
-            %45:i32 = load %j
-            %46:i32 = add %45, 1i
-            store %j, %46
-            %47:ptr<private, i32, read_write> = access %temp, %x_295
-            %48:ptr<private, i32, read_write> = access %data, %x_297
-            %49:i32 = load %48
-            store %47, %49
+          $B8: {  # false
+            %44:i32 = load %k
+            %x_295:i32 = let %44
+            %46:i32 = load %k
+            %47:i32 = add %46, 1i
+            store %k, %47
+            %48:i32 = load %j
+            %x_297:i32 = let %48
+            %50:i32 = load %j
+            %51:i32 = add %50, 1i
+            store %j, %51
+            %52:ptr<private, i32, read_write> = access %temp, %x_295
+            %53:ptr<private, i32, read_write> = access %data, %x_297
+            %54:i32 = load %53
+            store %52, %54
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %50:i32 = load %i
-        %51:bool = lt %50, 10i
-        %52:i32 = load %i
-        %53:i32 = load %mid
-        %54:bool = lte %52, %53
-        %55:bool = and %51, %54
-        if %55 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %55:i32 = load %i
+        %56:bool = lt %55, 10i
+        %57:i32 = load %i
+        %58:i32 = load %mid
+        %59:bool = lte %57, %58
+        %60:bool = and %56, %59
+        if %60 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_313:i32 = load %k
-        %57:i32 = load %k
-        %58:i32 = add %57, 1i
-        store %k, %58
-        %x_315:i32 = load %i
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        %62:ptr<private, i32, read_write> = access %temp, %x_313
-        %63:ptr<private, i32, read_write> = access %data, %x_315
-        %64:i32 = load %63
-        store %62, %64
-        continue %b10
+        %61:i32 = load %k
+        %x_313:i32 = let %61
+        %63:i32 = load %k
+        %64:i32 = add %63, 1i
+        store %k, %64
+        %65:i32 = load %i
+        %x_315:i32 = let %65
+        %67:i32 = load %i
+        %68:i32 = add %67, 1i
+        store %i, %68
+        %69:ptr<private, i32, read_write> = access %temp, %x_313
+        %70:ptr<private, i32, read_write> = access %data, %x_315
+        %71:i32 = load %70
+        store %69, %71
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %65:i32 = load %f
-    store %i_1, %65
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %66:i32 = load %i_1
-        %67:i32 = load %to
-        %68:bool = lte %66, %67
-        if %68 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %72:i32 = load %f
+    store %i_1, %72
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %73:i32 = load %i_1
+        %74:i32 = load %to
+        %75:bool = lte %73, %74
+        if %75 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_329:i32 = load %i_1
-        %70:ptr<private, i32, read_write> = access %data, %x_329
-        %71:i32 = load %i_1
-        %72:ptr<private, i32, read_write> = access %temp, %71
-        %73:i32 = load %72
-        store %70, %73
-        continue %b14
+        %76:i32 = load %i_1
+        %x_329:i32 = let %76
+        %78:ptr<private, i32, read_write> = access %data, %x_329
+        %79:i32 = load %i_1
+        %80:ptr<private, i32, read_write> = access %temp, %79
+        %81:i32 = load %80
+        store %78, %81
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %74:i32 = load %i_1
-        %75:i32 = add %74, 1i
-        store %i_1, %75
-        next_iteration %b13
+      $B14: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -173,347 +181,362 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %87:i32 = load %m
-        %88:i32 = load %high
-        %89:bool = lte %87, %88
-        if %89 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %95:i32 = load %m
+        %96:i32 = load %high
+        %97:bool = lte %95, %96
+        if %97 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %90:i32 = load %low
-        store %i_2, %90
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %91:i32 = load %i_2
-            %92:i32 = load %high
-            %93:bool = lt %91, %92
-            if %93 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        %98:i32 = load %low
+        store %i_2, %98
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %99:i32 = load %i_2
+            %100:i32 = load %high
+            %101:bool = lt %99, %100
+            if %101 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %94:i32 = load %i_2
-            store %f_1, %94
-            %95:i32 = load %i_2
-            %96:i32 = load %m
-            %97:i32 = add %95, %96
-            %98:i32 = sub %97, 1i
-            store %mid_1, %98
-            %99:i32 = load %i_2
-            %100:i32 = load %m
-            %101:i32 = mul 2i, %100
-            %102:i32 = add %99, %101
-            %103:i32 = sub %102, 1i
-            %104:i32 = load %high
-            %105:i32 = min %103, %104
-            store %to_1, %105
-            %106:i32 = load %f_1
-            store %param, %106
-            %107:i32 = load %mid_1
-            store %param_1, %107
-            %108:i32 = load %to_1
-            store %param_2, %108
-            %109:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %102:i32 = load %i_2
+            store %f_1, %102
+            %103:i32 = load %i_2
+            %104:i32 = load %m
+            %105:i32 = add %103, %104
+            %106:i32 = sub %105, 1i
+            store %mid_1, %106
+            %107:i32 = load %i_2
+            %108:i32 = load %m
+            %109:i32 = mul 2i, %108
+            %110:i32 = add %107, %109
+            %111:i32 = sub %110, 1i
+            %112:i32 = load %high
+            %113:i32 = min %111, %112
+            store %to_1, %113
+            %114:i32 = load %f_1
+            store %param, %114
+            %115:i32 = load %mid_1
+            store %param_1, %115
+            %116:i32 = load %to_1
+            store %param_2, %116
+            %117:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %110:i32 = load %i_2
-            %111:i32 = load %m
-            %112:i32 = mul 2i, %111
-            %113:i32 = add %110, %112
-            store %i_2, %113
-            next_iteration %b22
+          $B23: {  # continuing
+            %118:i32 = load %i_2
+            %119:i32 = load %m
+            %120:i32 = mul 2i, %119
+            %121:i32 = add %118, %120
+            store %i_2, %121
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %114:i32 = load %m
-        %115:i32 = mul 2i, %114
-        store %m, %115
-        next_iteration %b18
+      $B19: {  # continuing
+        %122:i32 = load %m
+        %123:i32 = mul 2i, %122
+        store %m, %123
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %120:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %121:f32 = load_vector_element %120, 0u
-    %122:i32 = convert %121
-    store %i_3, %122
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_92:i32 = load %i_3
-        switch %x_92 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_122:i32 = load %i_3
-            %125:ptr<private, i32, read_write> = access %data, %x_122
-            store %125, -5i
+    %128:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %129:f32 = load_vector_element %128, 0u
+    %130:i32 = call %tint_f32_to_i32, %129
+    store %i_3, %130
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %132:i32 = load %i_3
+        %x_92:i32 = let %132
+        switch %x_92 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %134:i32 = load %i_3
+            %x_122:i32 = let %134
+            %136:ptr<private, i32, read_write> = access %data, %x_122
+            store %136, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_120:i32 = load %i_3
-            %127:ptr<private, i32, read_write> = access %data, %x_120
-            store %127, -4i
+          $B30: {  # case
+            %137:i32 = load %i_3
+            %x_120:i32 = let %137
+            %139:ptr<private, i32, read_write> = access %data, %x_120
+            store %139, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_118:i32 = load %i_3
-            %129:ptr<private, i32, read_write> = access %data, %x_118
-            store %129, -3i
+          $B31: {  # case
+            %140:i32 = load %i_3
+            %x_118:i32 = let %140
+            %142:ptr<private, i32, read_write> = access %data, %x_118
+            store %142, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_116:i32 = load %i_3
-            %131:ptr<private, i32, read_write> = access %data, %x_116
-            store %131, -2i
+          $B32: {  # case
+            %143:i32 = load %i_3
+            %x_116:i32 = let %143
+            %145:ptr<private, i32, read_write> = access %data, %x_116
+            store %145, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_114:i32 = load %i_3
-            %133:ptr<private, i32, read_write> = access %data, %x_114
-            store %133, -1i
+          $B33: {  # case
+            %146:i32 = load %i_3
+            %x_114:i32 = let %146
+            %148:ptr<private, i32, read_write> = access %data, %x_114
+            store %148, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_112:i32 = load %i_3
-            %135:ptr<private, i32, read_write> = access %data, %x_112
-            store %135, 0i
+          $B34: {  # case
+            %149:i32 = load %i_3
+            %x_112:i32 = let %149
+            %151:ptr<private, i32, read_write> = access %data, %x_112
+            store %151, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_110:i32 = load %i_3
-            %137:ptr<private, i32, read_write> = access %data, %x_110
-            store %137, 1i
+          $B35: {  # case
+            %152:i32 = load %i_3
+            %x_110:i32 = let %152
+            %154:ptr<private, i32, read_write> = access %data, %x_110
+            store %154, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_108:i32 = load %i_3
-            %139:ptr<private, i32, read_write> = access %data, %x_108
-            store %139, 2i
+          $B36: {  # case
+            %155:i32 = load %i_3
+            %x_108:i32 = let %155
+            %157:ptr<private, i32, read_write> = access %data, %x_108
+            store %157, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_106:i32 = load %i_3
-            %141:ptr<private, i32, read_write> = access %data, %x_106
-            store %141, 3i
+          $B37: {  # case
+            %158:i32 = load %i_3
+            %x_106:i32 = let %158
+            %160:ptr<private, i32, read_write> = access %data, %x_106
+            store %160, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_104:i32 = load %i_3
-            %143:ptr<private, i32, read_write> = access %data, %x_104
-            store %143, 4i
+          $B38: {  # case
+            %161:i32 = load %i_3
+            %x_104:i32 = let %161
+            %163:ptr<private, i32, read_write> = access %data, %x_104
+            store %163, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %144:i32 = load %i_3
-        %145:i32 = add %144, 1i
-        store %i_3, %145
-        continue %b28
+        %164:i32 = load %i_3
+        %165:i32 = add %164, 1i
+        store %i_3, %165
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_126:i32 = load %i_3
-        %147:bool = lt %x_126, 10i
-        %148:bool = eq %147, false
-        break_if %148 %b27
+      $B28: {  # continuing
+        %166:i32 = load %i_3
+        %x_126:i32 = let %166
+        %168:bool = lt %x_126, 10i
+        %169:bool = eq %168, false
+        break_if %169  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %149:i32 = load %j_1
-        %x_133:bool = lt %149, 10i
-        %151:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %152:f32 = load_vector_element %151, 0u
-        %153:bool = lte %152, 1.0f
-        %154:bool = eq %153, false
-        if %154 [t: %b42] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %170:i32 = load %j_1
+        %171:bool = lt %170, 10i
+        %x_133:bool = let %171
+        %173:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %174:f32 = load_vector_element %173, 0u
+        %175:bool = lte %174, 1.0f
+        %176:bool = eq %175, false
+        if %176 [t: $B42] {  # if_7
+          $B42: {  # true
             store %grey, 1.0f
             exit_if  # if_7
           }
         }
-        if %x_133 [t: %b43, f: %b44] {  # if_8
-          %b43 = block {  # true
+        if %x_133 [t: $B43, f: $B44] {  # if_8
+          $B43: {  # true
             exit_if  # if_8
           }
-          %b44 = block {  # false
+          $B44: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_140:i32 = load %j_1
-        %156:ptr<private, i32, read_write> = access %temp, %x_140
-        %157:i32 = load %j_1
-        %158:ptr<private, i32, read_write> = access %data, %157
-        %159:i32 = load %158
-        store %156, %159
-        continue %b41
+        %177:i32 = load %j_1
+        %x_140:i32 = let %177
+        %179:ptr<private, i32, read_write> = access %temp, %x_140
+        %180:i32 = load %j_1
+        %181:ptr<private, i32, read_write> = access %data, %180
+        %182:i32 = load %181
+        store %179, %182
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %160:i32 = load %j_1
-        %161:i32 = add %160, 1i
-        store %j_1, %161
-        next_iteration %b40
+      $B41: {  # continuing
+        %183:i32 = load %j_1
+        %184:i32 = add %183, 1i
+        store %j_1, %184
+        next_iteration  # -> $B40
       }
     }
-    %162:void = call %mergeSort_
-    %163:f32 = load_vector_element %gl_FragCoord, 1u
-    %164:i32 = convert %163
-    %165:bool = lt %164, 30i
-    if %165 [t: %b45, f: %b46] {  # if_9
-      %b45 = block {  # true
-        %166:ptr<private, i32, read_write> = access %data, 0i
-        %167:i32 = load %166
-        %168:f32 = convert %167
-        %169:f32 = div %168, 10.0f
-        %170:f32 = add 0.5f, %169
-        store %grey, %170
+    %185:void = call %mergeSort_
+    %186:f32 = load_vector_element %gl_FragCoord, 1u
+    %187:i32 = call %tint_f32_to_i32, %186
+    %188:bool = lt %187, 30i
+    if %188 [t: $B45, f: $B46] {  # if_9
+      $B45: {  # true
+        %189:ptr<private, i32, read_write> = access %data, 0i
+        %190:i32 = load %189
+        %191:f32 = convert %190
+        %192:f32 = div %191, 10.0f
+        %193:f32 = add 0.5f, %192
+        store %grey, %193
         exit_if  # if_9
       }
-      %b46 = block {  # false
-        %171:f32 = load_vector_element %gl_FragCoord, 1u
-        %172:i32 = convert %171
-        %173:bool = lt %172, 60i
-        if %173 [t: %b47, f: %b48] {  # if_10
-          %b47 = block {  # true
-            %174:ptr<private, i32, read_write> = access %data, 1i
-            %175:i32 = load %174
-            %176:f32 = convert %175
-            %177:f32 = div %176, 10.0f
-            %178:f32 = add 0.5f, %177
-            store %grey, %178
+      $B46: {  # false
+        %194:f32 = load_vector_element %gl_FragCoord, 1u
+        %195:i32 = call %tint_f32_to_i32, %194
+        %196:bool = lt %195, 60i
+        if %196 [t: $B47, f: $B48] {  # if_10
+          $B47: {  # true
+            %197:ptr<private, i32, read_write> = access %data, 1i
+            %198:i32 = load %197
+            %199:f32 = convert %198
+            %200:f32 = div %199, 10.0f
+            %201:f32 = add 0.5f, %200
+            store %grey, %201
             exit_if  # if_10
           }
-          %b48 = block {  # false
-            %179:f32 = load_vector_element %gl_FragCoord, 1u
-            %180:i32 = convert %179
-            %181:bool = lt %180, 90i
-            if %181 [t: %b49, f: %b50] {  # if_11
-              %b49 = block {  # true
-                %182:ptr<private, i32, read_write> = access %data, 2i
-                %183:i32 = load %182
-                %184:f32 = convert %183
-                %185:f32 = div %184, 10.0f
-                %186:f32 = add 0.5f, %185
-                store %grey, %186
+          $B48: {  # false
+            %202:f32 = load_vector_element %gl_FragCoord, 1u
+            %203:i32 = call %tint_f32_to_i32, %202
+            %204:bool = lt %203, 90i
+            if %204 [t: $B49, f: $B50] {  # if_11
+              $B49: {  # true
+                %205:ptr<private, i32, read_write> = access %data, 2i
+                %206:i32 = load %205
+                %207:f32 = convert %206
+                %208:f32 = div %207, 10.0f
+                %209:f32 = add 0.5f, %208
+                store %grey, %209
                 exit_if  # if_11
               }
-              %b50 = block {  # false
-                %187:f32 = load_vector_element %gl_FragCoord, 1u
-                %188:i32 = convert %187
-                %189:bool = lt %188, 120i
-                if %189 [t: %b51, f: %b52] {  # if_12
-                  %b51 = block {  # true
-                    %190:ptr<private, i32, read_write> = access %data, 3i
-                    %191:i32 = load %190
-                    %192:f32 = convert %191
-                    %193:f32 = div %192, 10.0f
-                    %194:f32 = add 0.5f, %193
-                    store %grey, %194
+              $B50: {  # false
+                %210:f32 = load_vector_element %gl_FragCoord, 1u
+                %211:i32 = call %tint_f32_to_i32, %210
+                %212:bool = lt %211, 120i
+                if %212 [t: $B51, f: $B52] {  # if_12
+                  $B51: {  # true
+                    %213:ptr<private, i32, read_write> = access %data, 3i
+                    %214:i32 = load %213
+                    %215:f32 = convert %214
+                    %216:f32 = div %215, 10.0f
+                    %217:f32 = add 0.5f, %216
+                    store %grey, %217
                     exit_if  # if_12
                   }
-                  %b52 = block {  # false
-                    %195:f32 = load_vector_element %gl_FragCoord, 1u
-                    %196:i32 = convert %195
-                    %197:bool = lt %196, 150i
-                    if %197 [t: %b53, f: %b54] {  # if_13
-                      %b53 = block {  # true
-                        discard
+                  $B52: {  # false
+                    %218:f32 = load_vector_element %gl_FragCoord, 1u
+                    %219:i32 = call %tint_f32_to_i32, %218
+                    %220:bool = lt %219, 150i
+                    if %220 [t: $B53, f: $B54] {  # if_13
+                      $B53: {  # true
+                        store %continue_execution, false
                         exit_if  # if_13
                       }
-                      %b54 = block {  # false
-                        %198:f32 = load_vector_element %gl_FragCoord, 1u
-                        %199:i32 = convert %198
-                        %200:bool = lt %199, 180i
-                        if %200 [t: %b55, f: %b56] {  # if_14
-                          %b55 = block {  # true
-                            %201:ptr<private, i32, read_write> = access %data, 5i
-                            %202:i32 = load %201
-                            %203:f32 = convert %202
-                            %204:f32 = div %203, 10.0f
-                            %205:f32 = add 0.5f, %204
-                            store %grey, %205
+                      $B54: {  # false
+                        %221:f32 = load_vector_element %gl_FragCoord, 1u
+                        %222:i32 = call %tint_f32_to_i32, %221
+                        %223:bool = lt %222, 180i
+                        if %223 [t: $B55, f: $B56] {  # if_14
+                          $B55: {  # true
+                            %224:ptr<private, i32, read_write> = access %data, 5i
+                            %225:i32 = load %224
+                            %226:f32 = convert %225
+                            %227:f32 = div %226, 10.0f
+                            %228:f32 = add 0.5f, %227
+                            store %grey, %228
                             exit_if  # if_14
                           }
-                          %b56 = block {  # false
-                            %206:f32 = load_vector_element %gl_FragCoord, 1u
-                            %207:i32 = convert %206
-                            %208:bool = lt %207, 210i
-                            if %208 [t: %b57, f: %b58] {  # if_15
-                              %b57 = block {  # true
-                                %209:ptr<private, i32, read_write> = access %data, 6i
-                                %210:i32 = load %209
-                                %211:f32 = convert %210
-                                %212:f32 = div %211, 10.0f
-                                %213:f32 = add 0.5f, %212
-                                store %grey, %213
+                          $B56: {  # false
+                            %229:f32 = load_vector_element %gl_FragCoord, 1u
+                            %230:i32 = call %tint_f32_to_i32, %229
+                            %231:bool = lt %230, 210i
+                            if %231 [t: $B57, f: $B58] {  # if_15
+                              $B57: {  # true
+                                %232:ptr<private, i32, read_write> = access %data, 6i
+                                %233:i32 = load %232
+                                %234:f32 = convert %233
+                                %235:f32 = div %234, 10.0f
+                                %236:f32 = add 0.5f, %235
+                                store %grey, %236
                                 exit_if  # if_15
                               }
-                              %b58 = block {  # false
-                                %214:f32 = load_vector_element %gl_FragCoord, 1u
-                                %215:i32 = convert %214
-                                %216:bool = lt %215, 240i
-                                if %216 [t: %b59, f: %b60] {  # if_16
-                                  %b59 = block {  # true
-                                    %217:ptr<private, i32, read_write> = access %data, 7i
-                                    %218:i32 = load %217
-                                    %219:f32 = convert %218
-                                    %220:f32 = div %219, 10.0f
-                                    %221:f32 = add 0.5f, %220
-                                    store %grey, %221
+                              $B58: {  # false
+                                %237:f32 = load_vector_element %gl_FragCoord, 1u
+                                %238:i32 = call %tint_f32_to_i32, %237
+                                %239:bool = lt %238, 240i
+                                if %239 [t: $B59, f: $B60] {  # if_16
+                                  $B59: {  # true
+                                    %240:ptr<private, i32, read_write> = access %data, 7i
+                                    %241:i32 = load %240
+                                    %242:f32 = convert %241
+                                    %243:f32 = div %242, 10.0f
+                                    %244:f32 = add 0.5f, %243
+                                    store %grey, %244
                                     exit_if  # if_16
                                   }
-                                  %b60 = block {  # false
-                                    %x_240:f32 = load_vector_element %gl_FragCoord, 1u
+                                  $B60: {  # false
+                                    %245:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_240:f32 = let %245
                                     %guard233:ptr<function, bool, read_write> = var, true
-                                    %224:i32 = convert %x_240
-                                    %225:bool = lt %224, 270i
-                                    if %225 [t: %b61, f: %b62] {  # if_17
-                                      %b61 = block {  # true
-                                        %226:ptr<private, i32, read_write> = access %data, 8i
-                                        %227:i32 = load %226
-                                        %228:f32 = convert %227
-                                        %229:f32 = div %228, 10.0f
-                                        %230:f32 = add 0.5f, %229
-                                        store %grey, %230
+                                    %248:i32 = call %tint_f32_to_i32, %x_240
+                                    %249:bool = lt %248, 270i
+                                    if %249 [t: $B61, f: $B62] {  # if_17
+                                      $B61: {  # true
+                                        %250:ptr<private, i32, read_write> = access %data, 8i
+                                        %251:i32 = load %250
+                                        %252:f32 = convert %251
+                                        %253:f32 = div %252, 10.0f
+                                        %254:f32 = add 0.5f, %253
+                                        store %grey, %254
                                         store %guard233, false
                                         exit_if  # if_17
                                       }
-                                      %b62 = block {  # false
-                                        %231:bool = load %guard233
-                                        if %231 [t: %b63] {  # if_18
-                                          %b63 = block {  # true
-                                            %232:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-                                            %233:f32 = load_vector_element %232, 1u
-                                            %234:bool = lt 0.0f, %233
-                                            %235:bool = eq %234, false
-                                            if %235 [t: %b64] {  # if_19
-                                              %b64 = block {  # true
+                                      $B62: {  # false
+                                        %255:bool = load %guard233
+                                        if %255 [t: $B63] {  # if_18
+                                          $B63: {  # true
+                                            %256:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+                                            %257:f32 = load_vector_element %256, 1u
+                                            %258:bool = lt 0.0f, %257
+                                            %259:bool = eq %258, false
+                                            if %259 [t: $B64] {  # if_19
+                                              $B64: {  # true
                                                 store %guard233, false
                                                 exit_if  # if_19
                                               }
                                             }
-                                            %236:bool = load %guard233
-                                            if %236 [t: %b65] {  # if_20
-                                              %b65 = block {  # true
-                                                discard
+                                            %260:bool = load %guard233
+                                            if %260 [t: $B65] {  # if_20
+                                              $B65: {  # true
+                                                store %continue_execution, false
                                                 exit_if  # if_20
                                               }
                                             }
@@ -547,23 +570,41 @@
         exit_if  # if_9
       }
     }
-    %237:f32 = load %grey
-    %x_256:vec3<f32> = construct %237
-    %239:f32 = access %x_256, 0u
-    %240:f32 = access %x_256, 1u
-    %241:f32 = access %x_256, 2u
-    %242:vec4<f32> = construct %239, %240, %241, 1.0f
-    store %x_GLF_color, %242
+    %261:f32 = load %grey
+    %262:vec3<f32> = construct %261
+    %x_256:vec3<f32> = let %262
+    %264:f32 = access %x_256, 0u
+    %265:f32 = access %x_256, 1u
+    %266:f32 = access %x_256, 2u
+    %267:vec4<f32> = construct %264, %265, %266, 1.0f
+    store %x_GLF_color, %267
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b66 {
-  %b66 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B66: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %245:void = call %main_1
-    %246:vec4<f32> = load %x_GLF_color
-    %247:main_out = construct %246
-    ret %247
+    %270:void = call %main_1
+    %271:vec4<f32> = load %x_GLF_color
+    %272:main_out = construct %271
+    %273:bool = load %continue_execution
+    %274:bool = eq %273, false
+    if %274 [t: $B67] {  # if_21
+      $B67: {  # true
+        terminate_invocation
+      }
+    }
+    ret %272
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B68: {
+    %276:i32 = convert %value
+    %277:bool = gte %value, -2147483648.0f
+    %278:i32 = select -2147483648i, %276, %277
+    %279:bool = lte %value, 2147483520.0f
+    %280:i32 = select 2147483647i, %278, %279
+    ret %280
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.msl
index 3ce10a9..e940594 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-dead-code/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,152 +8,183 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_262:i32 = load %f
+    %15:i32 = load %f
+    %x_262:i32 = let %15
     store %k, %x_262
-    %x_263:i32 = load %f
+    %17:i32 = load %f
+    %x_263:i32 = let %17
     store %i, %x_263
-    %x_264:i32 = load %mid
-    %17:i32 = add %x_264, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_270:i32 = load %i
-        %x_271:i32 = load %mid
-        %x_273:i32 = load %j
-        %x_274:i32 = load %to
-        %22:bool = lte %x_270, %x_271
-        %23:bool = lte %x_273, %x_274
-        %24:bool = and %22, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %mid
+    %x_264:i32 = let %19
+    %21:i32 = add %x_264, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %i
+        %x_270:i32 = let %22
+        %24:i32 = load %mid
+        %x_271:i32 = let %24
+        %26:i32 = load %j
+        %x_273:i32 = let %26
+        %28:i32 = load %to
+        %x_274:i32 = let %28
+        %30:bool = lte %x_270, %x_271
+        %31:bool = lte %x_273, %x_274
+        %32:bool = and %30, %31
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_278:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %x_278
-        %x_280:i32 = load %26
-        %x_281:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %x_281
-        %x_283:i32 = load %29
-        %31:bool = lt %x_280, %x_283
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_288:i32 = load %k
-            %33:i32 = add %x_288, 1i
-            store %k, %33
-            %x_290:i32 = load %i
-            %35:i32 = add %x_290, 1i
-            store %i, %35
-            %36:ptr<private, i32, read_write> = access %data, %x_290
-            %x_293:i32 = load %36
-            %38:ptr<private, i32, read_write> = access %temp, %x_288
-            store %38, %x_293
+        %33:i32 = load %i
+        %x_278:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_278
+        %36:i32 = load %35
+        %x_280:i32 = let %36
+        %38:i32 = load %j
+        %x_281:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %data, %x_281
+        %41:i32 = load %40
+        %x_283:i32 = let %41
+        %43:bool = lt %x_280, %x_283
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %44:i32 = load %k
+            %x_288:i32 = let %44
+            %46:i32 = add %x_288, 1i
+            store %k, %46
+            %47:i32 = load %i
+            %x_290:i32 = let %47
+            %49:i32 = add %x_290, 1i
+            store %i, %49
+            %50:ptr<private, i32, read_write> = access %data, %x_290
+            %51:i32 = load %50
+            %x_293:i32 = let %51
+            %53:ptr<private, i32, read_write> = access %temp, %x_288
+            store %53, %x_293
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_295:i32 = load %k
-            %40:i32 = add %x_295, 1i
-            store %k, %40
-            %x_297:i32 = load %j
-            %42:i32 = add %x_297, 1i
-            store %j, %42
-            %43:ptr<private, i32, read_write> = access %data, %x_297
-            %x_300:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %temp, %x_295
-            store %45, %x_300
+          $B8: {  # false
+            %54:i32 = load %k
+            %x_295:i32 = let %54
+            %56:i32 = add %x_295, 1i
+            store %k, %56
+            %57:i32 = load %j
+            %x_297:i32 = let %57
+            %59:i32 = add %x_297, 1i
+            store %j, %59
+            %60:ptr<private, i32, read_write> = access %data, %x_297
+            %61:i32 = load %60
+            %x_300:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %temp, %x_295
+            store %63, %x_300
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_306:i32 = load %i
-        %x_308:i32 = load %i
-        %x_309:i32 = load %mid
-        %49:bool = lt %x_306, 10i
-        %50:bool = lte %x_308, %x_309
-        %51:bool = and %49, %50
-        if %51 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %64:i32 = load %i
+        %x_306:i32 = let %64
+        %66:i32 = load %i
+        %x_308:i32 = let %66
+        %68:i32 = load %mid
+        %x_309:i32 = let %68
+        %70:bool = lt %x_306, 10i
+        %71:bool = lte %x_308, %x_309
+        %72:bool = and %70, %71
+        if %72 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_313:i32 = load %k
-        %53:i32 = add %x_313, 1i
-        store %k, %53
-        %x_315:i32 = load %i
-        %55:i32 = add %x_315, 1i
-        store %i, %55
-        %56:ptr<private, i32, read_write> = access %data, %x_315
-        %x_318:i32 = load %56
-        %58:ptr<private, i32, read_write> = access %temp, %x_313
-        store %58, %x_318
-        continue %b10
+        %73:i32 = load %k
+        %x_313:i32 = let %73
+        %75:i32 = add %x_313, 1i
+        store %k, %75
+        %76:i32 = load %i
+        %x_315:i32 = let %76
+        %78:i32 = add %x_315, 1i
+        store %i, %78
+        %79:ptr<private, i32, read_write> = access %data, %x_315
+        %80:i32 = load %79
+        %x_318:i32 = let %80
+        %82:ptr<private, i32, read_write> = access %temp, %x_313
+        store %82, %x_318
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_320:i32 = load %f
+    %83:i32 = load %f
+    %x_320:i32 = let %83
     store %i_1, %x_320
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_325:i32 = load %i_1
-        %x_326:i32 = load %to
-        %62:bool = lte %x_325, %x_326
-        if %62 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %85:i32 = load %i_1
+        %x_325:i32 = let %85
+        %87:i32 = load %to
+        %x_326:i32 = let %87
+        %89:bool = lte %x_325, %x_326
+        if %89 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_329:i32 = load %i_1
-        %x_330:i32 = load %i_1
-        %65:ptr<private, i32, read_write> = access %temp, %x_330
-        %x_332:i32 = load %65
-        %67:ptr<private, i32, read_write> = access %data, %x_329
-        store %67, %x_332
-        continue %b14
+        %90:i32 = load %i_1
+        %x_329:i32 = let %90
+        %92:i32 = load %i_1
+        %x_330:i32 = let %92
+        %94:ptr<private, i32, read_write> = access %temp, %x_330
+        %95:i32 = load %94
+        %x_332:i32 = let %95
+        %97:ptr<private, i32, read_write> = access %data, %x_329
+        store %97, %x_332
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_334:i32 = load %i_1
-        %69:i32 = add %x_334, 1i
-        store %i_1, %69
-        next_iteration %b13
+      $B14: {  # continuing
+        %98:i32 = load %i_1
+        %x_334:i32 = let %98
+        %100:i32 = add %x_334, 1i
+        store %i_1, %100
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -167,347 +198,403 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_341:i32 = load %m
-        %x_342:i32 = load %high
-        %83:bool = lte %x_341, %x_342
-        if %83 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %112:i32 = load %m
+        %x_341:i32 = let %112
+        %114:i32 = load %high
+        %x_342:i32 = let %114
+        %116:bool = lte %x_341, %x_342
+        if %116 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_345:i32 = load %low
+        %117:i32 = load %low
+        %x_345:i32 = let %117
         store %i_2, %x_345
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %x_350:i32 = load %i_2
-            %x_351:i32 = load %high
-            %87:bool = lt %x_350, %x_351
-            if %87 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %119:i32 = load %i_2
+            %x_350:i32 = let %119
+            %121:i32 = load %high
+            %x_351:i32 = let %121
+            %123:bool = lt %x_350, %x_351
+            if %123 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_354:i32 = load %i_2
+            %124:i32 = load %i_2
+            %x_354:i32 = let %124
             store %f_1, %x_354
-            %x_355:i32 = load %i_2
-            %x_356:i32 = load %m
-            %91:i32 = add %x_355, %x_356
-            %92:i32 = sub %91, 1i
-            store %mid_1, %92
-            %x_359:i32 = load %i_2
-            %x_360:i32 = load %m
-            %x_364:i32 = load %high
-            %96:i32 = mul 2i, %x_360
-            %97:i32 = add %x_359, %96
-            %98:i32 = sub %97, 1i
-            %99:i32 = min %98, %x_364
-            store %to_1, %99
-            %x_366:i32 = load %f_1
+            %126:i32 = load %i_2
+            %x_355:i32 = let %126
+            %128:i32 = load %m
+            %x_356:i32 = let %128
+            %130:i32 = add %x_355, %x_356
+            %131:i32 = sub %130, 1i
+            store %mid_1, %131
+            %132:i32 = load %i_2
+            %x_359:i32 = let %132
+            %134:i32 = load %m
+            %x_360:i32 = let %134
+            %136:i32 = load %high
+            %x_364:i32 = let %136
+            %138:i32 = mul 2i, %x_360
+            %139:i32 = add %x_359, %138
+            %140:i32 = sub %139, 1i
+            %141:i32 = min %140, %x_364
+            store %to_1, %141
+            %142:i32 = load %f_1
+            %x_366:i32 = let %142
             store %param, %x_366
-            %x_367:i32 = load %mid_1
+            %144:i32 = load %mid_1
+            %x_367:i32 = let %144
             store %param_1, %x_367
-            %x_368:i32 = load %to_1
+            %146:i32 = load %to_1
+            %x_368:i32 = let %146
             store %param_2, %x_368
-            %103:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %148:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %x_370:i32 = load %m
-            %x_372:i32 = load %i_2
-            %106:i32 = mul 2i, %x_370
-            %107:i32 = add %x_372, %106
-            store %i_2, %107
-            next_iteration %b22
+          $B23: {  # continuing
+            %149:i32 = load %m
+            %x_370:i32 = let %149
+            %151:i32 = load %i_2
+            %x_372:i32 = let %151
+            %153:i32 = mul 2i, %x_370
+            %154:i32 = add %x_372, %153
+            store %i_2, %154
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_374:i32 = load %m
-        %109:i32 = mul 2i, %x_374
-        store %m, %109
-        next_iteration %b18
+      $B19: {  # continuing
+        %155:i32 = load %m
+        %x_374:i32 = let %155
+        %157:i32 = mul 2i, %x_374
+        store %m, %157
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %114:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_86:f32 = load_vector_element %114, 0u
-    %116:i32 = convert %x_86
-    store %i_3, %116
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_92:i32 = load %i_3
-        switch %x_92 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_122:i32 = load %i_3
-            %119:ptr<private, i32, read_write> = access %data, %x_122
-            store %119, -5i
+    %162:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %163:f32 = load_vector_element %162, 0u
+    %x_86:f32 = let %163
+    %165:i32 = call %tint_f32_to_i32, %x_86
+    store %i_3, %165
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %167:i32 = load %i_3
+        %x_92:i32 = let %167
+        switch %x_92 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %169:i32 = load %i_3
+            %x_122:i32 = let %169
+            %171:ptr<private, i32, read_write> = access %data, %x_122
+            store %171, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_120:i32 = load %i_3
-            %121:ptr<private, i32, read_write> = access %data, %x_120
-            store %121, -4i
+          $B30: {  # case
+            %172:i32 = load %i_3
+            %x_120:i32 = let %172
+            %174:ptr<private, i32, read_write> = access %data, %x_120
+            store %174, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_118:i32 = load %i_3
-            %123:ptr<private, i32, read_write> = access %data, %x_118
-            store %123, -3i
+          $B31: {  # case
+            %175:i32 = load %i_3
+            %x_118:i32 = let %175
+            %177:ptr<private, i32, read_write> = access %data, %x_118
+            store %177, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_116:i32 = load %i_3
-            %125:ptr<private, i32, read_write> = access %data, %x_116
-            store %125, -2i
+          $B32: {  # case
+            %178:i32 = load %i_3
+            %x_116:i32 = let %178
+            %180:ptr<private, i32, read_write> = access %data, %x_116
+            store %180, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_114:i32 = load %i_3
-            %127:ptr<private, i32, read_write> = access %data, %x_114
-            store %127, -1i
+          $B33: {  # case
+            %181:i32 = load %i_3
+            %x_114:i32 = let %181
+            %183:ptr<private, i32, read_write> = access %data, %x_114
+            store %183, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_112:i32 = load %i_3
-            %129:ptr<private, i32, read_write> = access %data, %x_112
-            store %129, 0i
+          $B34: {  # case
+            %184:i32 = load %i_3
+            %x_112:i32 = let %184
+            %186:ptr<private, i32, read_write> = access %data, %x_112
+            store %186, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_110:i32 = load %i_3
-            %131:ptr<private, i32, read_write> = access %data, %x_110
-            store %131, 1i
+          $B35: {  # case
+            %187:i32 = load %i_3
+            %x_110:i32 = let %187
+            %189:ptr<private, i32, read_write> = access %data, %x_110
+            store %189, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_108:i32 = load %i_3
-            %133:ptr<private, i32, read_write> = access %data, %x_108
-            store %133, 2i
+          $B36: {  # case
+            %190:i32 = load %i_3
+            %x_108:i32 = let %190
+            %192:ptr<private, i32, read_write> = access %data, %x_108
+            store %192, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_106:i32 = load %i_3
-            %135:ptr<private, i32, read_write> = access %data, %x_106
-            store %135, 3i
+          $B37: {  # case
+            %193:i32 = load %i_3
+            %x_106:i32 = let %193
+            %195:ptr<private, i32, read_write> = access %data, %x_106
+            store %195, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_104:i32 = load %i_3
-            %137:ptr<private, i32, read_write> = access %data, %x_104
-            store %137, 4i
+          $B38: {  # case
+            %196:i32 = load %i_3
+            %x_104:i32 = let %196
+            %198:ptr<private, i32, read_write> = access %data, %x_104
+            store %198, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_124:i32 = load %i_3
-        %139:i32 = add %x_124, 1i
-        store %i_3, %139
-        continue %b28
+        %199:i32 = load %i_3
+        %x_124:i32 = let %199
+        %201:i32 = add %x_124, 1i
+        store %i_3, %201
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_126:i32 = load %i_3
-        %141:bool = lt %x_126, 10i
-        %142:bool = eq %141, false
-        break_if %142 %b27
+      $B28: {  # continuing
+        %202:i32 = load %i_3
+        %x_126:i32 = let %202
+        %204:bool = lt %x_126, 10i
+        %205:bool = eq %204, false
+        break_if %205  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %x_132:i32 = load %j_1
-        %x_133:bool = lt %x_132, 10i
-        %145:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %x_135:f32 = load_vector_element %145, 0u
-        %147:bool = lte %x_135, 1.0f
-        %148:bool = eq %147, false
-        if %148 [t: %b42] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %206:i32 = load %j_1
+        %x_132:i32 = let %206
+        %208:bool = lt %x_132, 10i
+        %x_133:bool = let %208
+        %210:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %211:f32 = load_vector_element %210, 0u
+        %x_135:f32 = let %211
+        %213:bool = lte %x_135, 1.0f
+        %214:bool = eq %213, false
+        if %214 [t: $B42] {  # if_7
+          $B42: {  # true
             store %grey, 1.0f
             exit_if  # if_7
           }
         }
-        if %x_133 [t: %b43, f: %b44] {  # if_8
-          %b43 = block {  # true
+        if %x_133 [t: $B43, f: $B44] {  # if_8
+          $B43: {  # true
             exit_if  # if_8
           }
-          %b44 = block {  # false
+          $B44: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_140:i32 = load %j_1
-        %x_141:i32 = load %j_1
-        %151:ptr<private, i32, read_write> = access %data, %x_141
-        %x_143:i32 = load %151
-        %153:ptr<private, i32, read_write> = access %temp, %x_140
-        store %153, %x_143
-        continue %b41
+        %215:i32 = load %j_1
+        %x_140:i32 = let %215
+        %217:i32 = load %j_1
+        %x_141:i32 = let %217
+        %219:ptr<private, i32, read_write> = access %data, %x_141
+        %220:i32 = load %219
+        %x_143:i32 = let %220
+        %222:ptr<private, i32, read_write> = access %temp, %x_140
+        store %222, %x_143
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %x_145:i32 = load %j_1
-        %155:i32 = add %x_145, 1i
-        store %j_1, %155
-        next_iteration %b40
+      $B41: {  # continuing
+        %223:i32 = load %j_1
+        %x_145:i32 = let %223
+        %225:i32 = add %x_145, 1i
+        store %j_1, %225
+        next_iteration  # -> $B40
       }
     }
-    %156:void = call %mergeSort_
-    %x_149:f32 = load_vector_element %gl_FragCoord, 1u
-    %158:i32 = convert %x_149
-    %159:bool = lt %158, 30i
-    if %159 [t: %b45, f: %b46] {  # if_9
-      %b45 = block {  # true
-        %160:ptr<private, i32, read_write> = access %data, 0i
-        %x_156:i32 = load %160
-        %162:f32 = convert %x_156
-        %163:f32 = div %162, 10.0f
-        %164:f32 = add 0.5f, %163
-        store %grey, %164
+    %226:void = call %mergeSort_
+    %227:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_149:f32 = let %227
+    %229:i32 = call %tint_f32_to_i32, %x_149
+    %230:bool = lt %229, 30i
+    if %230 [t: $B45, f: $B46] {  # if_9
+      $B45: {  # true
+        %231:ptr<private, i32, read_write> = access %data, 0i
+        %232:i32 = load %231
+        %x_156:i32 = let %232
+        %234:f32 = convert %x_156
+        %235:f32 = div %234, 10.0f
+        %236:f32 = add 0.5f, %235
+        store %grey, %236
         exit_if  # if_9
       }
-      %b46 = block {  # false
-        %x_161:f32 = load_vector_element %gl_FragCoord, 1u
-        %166:i32 = convert %x_161
-        %167:bool = lt %166, 60i
-        if %167 [t: %b47, f: %b48] {  # if_10
-          %b47 = block {  # true
-            %168:ptr<private, i32, read_write> = access %data, 1i
-            %x_168:i32 = load %168
-            %170:f32 = convert %x_168
-            %171:f32 = div %170, 10.0f
-            %172:f32 = add 0.5f, %171
-            store %grey, %172
+      $B46: {  # false
+        %237:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_161:f32 = let %237
+        %239:i32 = call %tint_f32_to_i32, %x_161
+        %240:bool = lt %239, 60i
+        if %240 [t: $B47, f: $B48] {  # if_10
+          $B47: {  # true
+            %241:ptr<private, i32, read_write> = access %data, 1i
+            %242:i32 = load %241
+            %x_168:i32 = let %242
+            %244:f32 = convert %x_168
+            %245:f32 = div %244, 10.0f
+            %246:f32 = add 0.5f, %245
+            store %grey, %246
             exit_if  # if_10
           }
-          %b48 = block {  # false
-            %x_173:f32 = load_vector_element %gl_FragCoord, 1u
-            %174:i32 = convert %x_173
-            %175:bool = lt %174, 90i
-            if %175 [t: %b49, f: %b50] {  # if_11
-              %b49 = block {  # true
-                %176:ptr<private, i32, read_write> = access %data, 2i
-                %x_180:i32 = load %176
-                %178:f32 = convert %x_180
-                %179:f32 = div %178, 10.0f
-                %180:f32 = add 0.5f, %179
-                store %grey, %180
+          $B48: {  # false
+            %247:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_173:f32 = let %247
+            %249:i32 = call %tint_f32_to_i32, %x_173
+            %250:bool = lt %249, 90i
+            if %250 [t: $B49, f: $B50] {  # if_11
+              $B49: {  # true
+                %251:ptr<private, i32, read_write> = access %data, 2i
+                %252:i32 = load %251
+                %x_180:i32 = let %252
+                %254:f32 = convert %x_180
+                %255:f32 = div %254, 10.0f
+                %256:f32 = add 0.5f, %255
+                store %grey, %256
                 exit_if  # if_11
               }
-              %b50 = block {  # false
-                %x_185:f32 = load_vector_element %gl_FragCoord, 1u
-                %182:i32 = convert %x_185
-                %183:bool = lt %182, 120i
-                if %183 [t: %b51, f: %b52] {  # if_12
-                  %b51 = block {  # true
-                    %184:ptr<private, i32, read_write> = access %data, 3i
-                    %x_192:i32 = load %184
-                    %186:f32 = convert %x_192
-                    %187:f32 = div %186, 10.0f
-                    %188:f32 = add 0.5f, %187
-                    store %grey, %188
+              $B50: {  # false
+                %257:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_185:f32 = let %257
+                %259:i32 = call %tint_f32_to_i32, %x_185
+                %260:bool = lt %259, 120i
+                if %260 [t: $B51, f: $B52] {  # if_12
+                  $B51: {  # true
+                    %261:ptr<private, i32, read_write> = access %data, 3i
+                    %262:i32 = load %261
+                    %x_192:i32 = let %262
+                    %264:f32 = convert %x_192
+                    %265:f32 = div %264, 10.0f
+                    %266:f32 = add 0.5f, %265
+                    store %grey, %266
                     exit_if  # if_12
                   }
-                  %b52 = block {  # false
-                    %x_197:f32 = load_vector_element %gl_FragCoord, 1u
-                    %190:i32 = convert %x_197
-                    %191:bool = lt %190, 150i
-                    if %191 [t: %b53, f: %b54] {  # if_13
-                      %b53 = block {  # true
-                        discard
+                  $B52: {  # false
+                    %267:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_197:f32 = let %267
+                    %269:i32 = call %tint_f32_to_i32, %x_197
+                    %270:bool = lt %269, 150i
+                    if %270 [t: $B53, f: $B54] {  # if_13
+                      $B53: {  # true
+                        store %continue_execution, false
                         exit_if  # if_13
                       }
-                      %b54 = block {  # false
-                        %x_204:f32 = load_vector_element %gl_FragCoord, 1u
-                        %193:i32 = convert %x_204
-                        %194:bool = lt %193, 180i
-                        if %194 [t: %b55, f: %b56] {  # if_14
-                          %b55 = block {  # true
-                            %195:ptr<private, i32, read_write> = access %data, 5i
-                            %x_211:i32 = load %195
-                            %197:f32 = convert %x_211
-                            %198:f32 = div %197, 10.0f
-                            %199:f32 = add 0.5f, %198
-                            store %grey, %199
+                      $B54: {  # false
+                        %271:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_204:f32 = let %271
+                        %273:i32 = call %tint_f32_to_i32, %x_204
+                        %274:bool = lt %273, 180i
+                        if %274 [t: $B55, f: $B56] {  # if_14
+                          $B55: {  # true
+                            %275:ptr<private, i32, read_write> = access %data, 5i
+                            %276:i32 = load %275
+                            %x_211:i32 = let %276
+                            %278:f32 = convert %x_211
+                            %279:f32 = div %278, 10.0f
+                            %280:f32 = add 0.5f, %279
+                            store %grey, %280
                             exit_if  # if_14
                           }
-                          %b56 = block {  # false
-                            %x_216:f32 = load_vector_element %gl_FragCoord, 1u
-                            %201:i32 = convert %x_216
-                            %202:bool = lt %201, 210i
-                            if %202 [t: %b57, f: %b58] {  # if_15
-                              %b57 = block {  # true
-                                %203:ptr<private, i32, read_write> = access %data, 6i
-                                %x_223:i32 = load %203
-                                %205:f32 = convert %x_223
-                                %206:f32 = div %205, 10.0f
-                                %207:f32 = add 0.5f, %206
-                                store %grey, %207
+                          $B56: {  # false
+                            %281:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_216:f32 = let %281
+                            %283:i32 = call %tint_f32_to_i32, %x_216
+                            %284:bool = lt %283, 210i
+                            if %284 [t: $B57, f: $B58] {  # if_15
+                              $B57: {  # true
+                                %285:ptr<private, i32, read_write> = access %data, 6i
+                                %286:i32 = load %285
+                                %x_223:i32 = let %286
+                                %288:f32 = convert %x_223
+                                %289:f32 = div %288, 10.0f
+                                %290:f32 = add 0.5f, %289
+                                store %grey, %290
                                 exit_if  # if_15
                               }
-                              %b58 = block {  # false
-                                %x_228:f32 = load_vector_element %gl_FragCoord, 1u
-                                %209:i32 = convert %x_228
-                                %210:bool = lt %209, 240i
-                                if %210 [t: %b59, f: %b60] {  # if_16
-                                  %b59 = block {  # true
-                                    %211:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_235:i32 = load %211
-                                    %213:f32 = convert %x_235
-                                    %214:f32 = div %213, 10.0f
-                                    %215:f32 = add 0.5f, %214
-                                    store %grey, %215
+                              $B58: {  # false
+                                %291:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_228:f32 = let %291
+                                %293:i32 = call %tint_f32_to_i32, %x_228
+                                %294:bool = lt %293, 240i
+                                if %294 [t: $B59, f: $B60] {  # if_16
+                                  $B59: {  # true
+                                    %295:ptr<private, i32, read_write> = access %data, 7i
+                                    %296:i32 = load %295
+                                    %x_235:i32 = let %296
+                                    %298:f32 = convert %x_235
+                                    %299:f32 = div %298, 10.0f
+                                    %300:f32 = add 0.5f, %299
+                                    store %grey, %300
                                     exit_if  # if_16
                                   }
-                                  %b60 = block {  # false
-                                    %x_240:f32 = load_vector_element %gl_FragCoord, 1u
+                                  $B60: {  # false
+                                    %301:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_240:f32 = let %301
                                     %guard233:ptr<function, bool, read_write> = var, true
-                                    %218:i32 = convert %x_240
-                                    %219:bool = lt %218, 270i
-                                    if %219 [t: %b61, f: %b62] {  # if_17
-                                      %b61 = block {  # true
-                                        %220:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_247:i32 = load %220
-                                        %222:f32 = convert %x_247
-                                        %223:f32 = div %222, 10.0f
-                                        %224:f32 = add 0.5f, %223
-                                        store %grey, %224
+                                    %304:i32 = call %tint_f32_to_i32, %x_240
+                                    %305:bool = lt %304, 270i
+                                    if %305 [t: $B61, f: $B62] {  # if_17
+                                      $B61: {  # true
+                                        %306:ptr<private, i32, read_write> = access %data, 8i
+                                        %307:i32 = load %306
+                                        %x_247:i32 = let %307
+                                        %309:f32 = convert %x_247
+                                        %310:f32 = div %309, 10.0f
+                                        %311:f32 = add 0.5f, %310
+                                        store %grey, %311
                                         store %guard233, false
                                         exit_if  # if_17
                                       }
-                                      %b62 = block {  # false
-                                        %225:bool = load %guard233
-                                        if %225 [t: %b63] {  # if_18
-                                          %b63 = block {  # true
-                                            %226:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-                                            %x_252:f32 = load_vector_element %226, 1u
-                                            %228:bool = lt 0.0f, %x_252
-                                            %229:bool = eq %228, false
-                                            if %229 [t: %b64] {  # if_19
-                                              %b64 = block {  # true
+                                      $B62: {  # false
+                                        %312:bool = load %guard233
+                                        if %312 [t: $B63] {  # if_18
+                                          $B63: {  # true
+                                            %313:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+                                            %314:f32 = load_vector_element %313, 1u
+                                            %x_252:f32 = let %314
+                                            %316:bool = lt 0.0f, %x_252
+                                            %317:bool = eq %316, false
+                                            if %317 [t: $B64] {  # if_19
+                                              $B64: {  # true
                                                 store %guard233, false
                                                 exit_if  # if_19
                                               }
                                             }
-                                            %230:bool = load %guard233
-                                            if %230 [t: %b65] {  # if_20
-                                              %b65 = block {  # true
-                                                discard
+                                            %318:bool = load %guard233
+                                            if %318 [t: $B65] {  # if_20
+                                              $B65: {  # true
+                                                store %continue_execution, false
                                                 exit_if  # if_20
                                               }
                                             }
@@ -541,23 +628,42 @@
         exit_if  # if_9
       }
     }
-    %x_255:f32 = load %grey
-    %x_256:vec3<f32> = construct %x_255, %x_255, %x_255
-    %233:f32 = access %x_256, 0u
-    %234:f32 = access %x_256, 1u
-    %235:f32 = access %x_256, 2u
-    %236:vec4<f32> = construct %233, %234, %235, 1.0f
-    store %x_GLF_color, %236
+    %319:f32 = load %grey
+    %x_255:f32 = let %319
+    %321:vec3<f32> = construct %x_255, %x_255, %x_255
+    %x_256:vec3<f32> = let %321
+    %323:f32 = access %x_256, 0u
+    %324:f32 = access %x_256, 1u
+    %325:f32 = access %x_256, 2u
+    %326:vec4<f32> = construct %323, %324, %325, 1.0f
+    store %x_GLF_color, %326
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b66 {
-  %b66 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B66: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %239:void = call %main_1
-    %240:vec4<f32> = load %x_GLF_color
-    %241:main_out = construct %240
-    ret %241
+    %329:void = call %main_1
+    %330:vec4<f32> = load %x_GLF_color
+    %331:main_out = construct %330
+    %332:bool = load %continue_execution
+    %333:bool = eq %332, false
+    if %333 [t: $B67] {  # if_21
+      $B67: {  # true
+        terminate_invocation
+      }
+    }
+    ret %331
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B68: {
+    %335:i32 = convert %value
+    %336:bool = gte %value, -2147483648.0f
+    %337:i32 = select -2147483648i, %335, %336
+    %338:bool = lte %value, 2147483520.0f
+    %339:i32 = select 2147483647i, %337, %338
+    ret %339
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.msl
index a2ee86f..7dda55c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,29 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_285:ptr<function, i32, read_write> = var
         %x_286:ptr<function, i32, read_write> = var
         %x_287:ptr<function, i32, read_write> = var
@@ -49,326 +50,336 @@
         %x_366:ptr<function, i32, read_write> = var
         %x_365:ptr<function, i32, read_write> = var
         %x_367:ptr<function, i32, read_write> = var
-        %36:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %37:f32 = load_vector_element %36, 0u
-        %38:bool = gte 1.0f, %37
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %37:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %38:f32 = load_vector_element %37, 0u
+        %39:bool = gte 1.0f, %38
+        if %39 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
-            continue %b4
+          $B6: {  # false
+            continue  # -> $B4
           }
         }
-        %39:i32 = load %i
-        %40:i32 = load %mid
-        %41:bool = lte %39, %40
-        %42:i32 = load %j
-        %43:i32 = load %to
-        %44:bool = lte %42, %43
-        %45:bool = and %41, %44
-        if %45 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        %40:i32 = load %i
+        %41:i32 = load %mid
+        %42:bool = lte %40, %41
+        %43:i32 = load %j
+        %44:i32 = load %to
+        %45:bool = lte %43, %44
+        %46:bool = and %42, %45
+        if %46 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %46:i32 = load %i
-        %47:ptr<private, i32, read_write> = access %data, %46
-        %48:i32 = load %47
-        %49:i32 = load %j
-        %50:ptr<private, i32, read_write> = access %data, %49
-        %51:i32 = load %50
-        %x_280:bool = lt %48, %51
-        if %x_280 [t: %b9, f: %b10] {  # if_3
-          %b9 = block {  # true
-            %53:i32 = load %k
-            store %x_285, %53
-            %54:i32 = load %x_285
-            store %x_287, %54
+        %47:i32 = load %i
+        %48:ptr<private, i32, read_write> = access %data, %47
+        %49:i32 = load %48
+        %50:i32 = load %j
+        %51:ptr<private, i32, read_write> = access %data, %50
+        %52:i32 = load %51
+        %53:bool = lt %49, %52
+        %x_280:bool = let %53
+        if %x_280 [t: $B9, f: $B10] {  # if_3
+          $B9: {  # true
+            %55:i32 = load %k
+            store %x_285, %55
+            %56:i32 = load %x_285
+            store %x_287, %56
             exit_if  # if_3
           }
-          %b10 = block {  # false
+          $B10: {  # false
             store %x_286, 0i
-            %55:i32 = load %x_286
-            store %x_287, %55
+            %57:i32 = load %x_286
+            store %x_287, %57
             exit_if  # if_3
           }
         }
-        %56:i32 = load %x_287
-        %x_288:i32 = add %56, 1i
-        if %x_280 [t: %b11] {  # if_4
-          %b11 = block {  # true
+        %58:i32 = load %x_287
+        %59:i32 = add %58, 1i
+        %x_288:i32 = let %59
+        if %x_280 [t: $B11] {  # if_4
+          $B11: {  # true
             store %k, %x_288
-            %58:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %59:f32 = load_vector_element %58, 0u
-            %60:bool = lte 1.0f, %59
-            %61:bool = eq %60, false
-            if %61 [t: %b12, f: %b13] {  # if_5
-              %b12 = block {  # true
+            %61:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %62:f32 = load_vector_element %61, 0u
+            %63:bool = lte 1.0f, %62
+            %64:bool = eq %63, false
+            if %64 [t: $B12, f: $B13] {  # if_5
+              $B12: {  # true
                 exit_if  # if_5
               }
-              %b13 = block {  # false
-                continue %b4
+              $B13: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_4
           }
         }
-        %62:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %63:f32 = load_vector_element %62, 1u
-        %64:bool = gte %63, 0.0f
-        if %64 [t: %b14, f: %b15] {  # if_6
-          %b14 = block {  # true
+        %65:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %66:f32 = load_vector_element %65, 1u
+        %67:bool = gte %66, 0.0f
+        if %67 [t: $B14, f: $B15] {  # if_6
+          $B14: {  # true
             exit_if  # if_6
           }
-          %b15 = block {  # false
-            continue %b4
+          $B15: {  # false
+            continue  # -> $B4
           }
         }
         %x_300:i32 = let 0i
-        if %x_280 [t: %b16, f: %b17] {  # if_7
-          %b16 = block {  # true
-            %66:i32 = load %i
-            store %x_305, %66
-            %67:i32 = load %x_305
-            store %x_307, %67
+        if %x_280 [t: $B16, f: $B17] {  # if_7
+          $B16: {  # true
+            %69:i32 = load %i
+            store %x_305, %69
+            %70:i32 = load %x_305
+            store %x_307, %70
             exit_if  # if_7
           }
-          %b17 = block {  # false
+          $B17: {  # false
             store %x_306, 0i
-            %68:i32 = load %x_306
-            store %x_307, %68
+            %71:i32 = load %x_306
+            store %x_307, %71
             exit_if  # if_7
           }
         }
-        %69:i32 = load %x_307
-        %x_309:i32 = select %x_300, %69, %x_280
-        if %x_280 [t: %b18] {  # if_8
-          %b18 = block {  # true
-            %71:i32 = add %x_309, 1i
-            store %i, %71
+        %72:i32 = load %x_307
+        %73:i32 = select %x_300, %72, %x_280
+        %x_309:i32 = let %73
+        if %x_280 [t: $B18] {  # if_8
+          $B18: {  # true
+            %75:i32 = add %x_309, 1i
+            store %i, %75
             exit_if  # if_8
           }
         }
         %x_315:i32 = let 0i
-        if %x_280 [t: %b19, f: %b20] {  # if_9
-          %b19 = block {  # true
-            %73:ptr<private, i32, read_write> = access %data, %x_309
-            %74:i32 = load %73
-            store %x_320, %74
-            %75:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_322:f32 = load_vector_element %75, 1u
-            %77:i32 = load %x_320
-            store %x_328, %77
-            %78:bool = lte 0.0f, %x_322
-            %79:bool = eq %78, false
-            if %79 [t: %b21] {  # if_10
-              %b21 = block {  # true
-                continue %b4
+        if %x_280 [t: $B19, f: $B20] {  # if_9
+          $B19: {  # true
+            %77:ptr<private, i32, read_write> = access %data, %x_309
+            %78:i32 = load %77
+            store %x_320, %78
+            %79:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %80:f32 = load_vector_element %79, 1u
+            %x_322:f32 = let %80
+            %82:i32 = load %x_320
+            store %x_328, %82
+            %83:bool = lte 0.0f, %x_322
+            %84:bool = eq %83, false
+            if %84 [t: $B21] {  # if_10
+              $B21: {  # true
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
-          %b20 = block {  # false
+          $B20: {  # false
             store %x_324, 0i
-            %80:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_326:f32 = load_vector_element %80, 1u
-            %82:i32 = load %x_324
-            store %x_328, %82
-            %83:bool = lt %x_326, 0.0f
-            %84:bool = eq %83, false
-            if %84 [t: %b22, f: %b23] {  # if_11
-              %b22 = block {  # true
+            %85:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %86:f32 = load_vector_element %85, 1u
+            %x_326:f32 = let %86
+            %88:i32 = load %x_324
+            store %x_328, %88
+            %89:bool = lt %x_326, 0.0f
+            %90:bool = eq %89, false
+            if %90 [t: $B22, f: $B23] {  # if_11
+              $B22: {  # true
                 exit_if  # if_11
               }
-              %b23 = block {  # false
-                continue %b4
+              $B23: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
         }
-        if %x_280 [t: %b24] {  # if_12
-          %b24 = block {  # true
-            %85:i32 = load %x_287
-            %86:ptr<private, i32, read_write> = access %temp, %85
-            %87:i32 = load %x_328
-            %88:i32 = select %x_315, %87, %x_280
-            store %86, %88
+        if %x_280 [t: $B24] {  # if_12
+          $B24: {  # true
+            %91:i32 = load %x_287
+            %92:ptr<private, i32, read_write> = access %temp, %91
+            %93:ptr<private, i32, read_write> = let %92
+            %94:i32 = load %x_328
+            %95:i32 = select %x_315, %94, %x_280
+            store %93, %95
             exit_if  # if_12
           }
         }
-        if %x_280 [t: %b25, f: %b26] {  # if_13
-          %b25 = block {  # true
+        if %x_280 [t: $B25, f: $B26] {  # if_13
+          $B25: {  # true
             store %x_339, 0i
-            %89:i32 = load %x_339
-            store %x_340, %89
+            %96:i32 = load %x_339
+            store %x_340, %96
             exit_if  # if_13
           }
-          %b26 = block {  # false
-            %90:i32 = load %k
-            store %x_338, %90
-            %91:i32 = load %x_338
-            store %x_340, %91
+          $B26: {  # false
+            %97:i32 = load %k
+            store %x_338, %97
+            %98:i32 = load %x_338
+            store %x_340, %98
             exit_if  # if_13
           }
         }
-        if %x_280 [t: %b27, f: %b28] {  # if_14
-          %b27 = block {  # true
+        if %x_280 [t: $B27, f: $B28] {  # if_14
+          $B27: {  # true
             exit_if  # if_14
           }
-          %b28 = block {  # false
-            %92:i32 = load %x_340
-            %93:i32 = add %92, 1i
-            store %k, %93
+          $B28: {  # false
+            %99:i32 = load %x_340
+            %100:i32 = add %99, 1i
+            store %k, %100
             exit_if  # if_14
           }
         }
-        %94:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %95:f32 = load_vector_element %94, 0u
-        %96:bool = lte 1.0f, %95
-        %97:bool = eq %96, false
-        if %97 [t: %b29, f: %b30] {  # if_15
-          %b29 = block {  # true
+        %101:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %102:f32 = load_vector_element %101, 0u
+        %103:bool = lte 1.0f, %102
+        %104:bool = eq %103, false
+        if %104 [t: $B29, f: $B30] {  # if_15
+          $B29: {  # true
             exit_if  # if_15
           }
-          %b30 = block {  # false
-            continue %b4
+          $B30: {  # false
+            continue  # -> $B4
           }
         }
-        if %x_280 [t: %b31, f: %b32] {  # if_16
-          %b31 = block {  # true
+        if %x_280 [t: $B31, f: $B32] {  # if_16
+          $B31: {  # true
             store %x_352, 0i
-            %98:i32 = load %x_352
-            store %x_353, %98
+            %105:i32 = load %x_352
+            store %x_353, %105
             exit_if  # if_16
           }
-          %b32 = block {  # false
-            %99:i32 = load %j
-            store %x_351, %99
-            %100:i32 = load %x_351
-            store %x_353, %100
+          $B32: {  # false
+            %106:i32 = load %j
+            store %x_351, %106
+            %107:i32 = load %x_351
+            store %x_353, %107
             exit_if  # if_16
           }
         }
-        %101:i32 = load %x_353
-        %x_357:i32 = select %101, 0i, %x_280
-        if %x_280 [t: %b33, f: %b34] {  # if_17
-          %b33 = block {  # true
+        %108:i32 = load %x_353
+        %109:i32 = select %108, 0i, %x_280
+        %x_357:i32 = let %109
+        if %x_280 [t: $B33, f: $B34] {  # if_17
+          $B33: {  # true
             exit_if  # if_17
           }
-          %b34 = block {  # false
-            %103:i32 = add %x_357, 1i
-            store %j, %103
+          $B34: {  # false
+            %111:i32 = add %x_357, 1i
+            store %j, %111
             exit_if  # if_17
           }
         }
-        if %x_280 [t: %b35, f: %b36] {  # if_18
-          %b35 = block {  # true
+        if %x_280 [t: $B35, f: $B36] {  # if_18
+          $B35: {  # true
             store %x_366, 0i
-            %104:i32 = load %x_366
-            store %x_367, %104
+            %112:i32 = load %x_366
+            store %x_367, %112
             exit_if  # if_18
           }
-          %b36 = block {  # false
-            %105:ptr<private, i32, read_write> = access %data, %x_357
-            %106:i32 = load %105
-            store %x_365, %106
-            %107:i32 = load %x_365
-            store %x_367, %107
+          $B36: {  # false
+            %113:ptr<private, i32, read_write> = access %data, %x_357
+            %114:i32 = load %113
+            store %x_365, %114
+            %115:i32 = load %x_365
+            store %x_367, %115
             exit_if  # if_18
           }
         }
-        if %x_280 [t: %b37, f: %b38] {  # if_19
-          %b37 = block {  # true
+        if %x_280 [t: $B37, f: $B38] {  # if_19
+          $B37: {  # true
             exit_if  # if_19
           }
-          %b38 = block {  # false
-            %108:i32 = load %x_340
-            %109:ptr<private, i32, read_write> = access %temp, %108
-            %110:i32 = load %x_367
-            store %109, %110
+          $B38: {  # false
+            %116:i32 = load %x_340
+            %117:ptr<private, i32, read_write> = access %temp, %116
+            %118:i32 = load %x_367
+            store %117, %118
             exit_if  # if_19
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b39, c: %b40] {  # loop_2
-      %b39 = block {  # body
-        %111:i32 = load %i
-        %112:bool = lt %111, 10i
-        %113:i32 = load %i
-        %114:i32 = load %mid
-        %115:bool = lte %113, %114
-        %116:bool = and %112, %115
-        if %116 [t: %b41, f: %b42] {  # if_20
-          %b41 = block {  # true
+    loop [b: $B39, c: $B40] {  # loop_2
+      $B39: {  # body
+        %119:i32 = load %i
+        %120:bool = lt %119, 10i
+        %121:i32 = load %i
+        %122:i32 = load %mid
+        %123:bool = lte %121, %122
+        %124:bool = and %120, %123
+        if %124 [t: $B41, f: $B42] {  # if_20
+          $B41: {  # true
             exit_if  # if_20
           }
-          %b42 = block {  # false
+          $B42: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_383:i32 = load %k
-        %118:i32 = load %k
-        %119:i32 = add %118, 1i
-        store %k, %119
-        %x_385:i32 = load %i
-        %121:i32 = load %i
-        %122:i32 = add %121, 1i
-        store %i, %122
-        %123:ptr<private, i32, read_write> = access %temp, %x_383
-        %124:ptr<private, i32, read_write> = access %data, %x_385
-        %125:i32 = load %124
-        store %123, %125
-        continue %b40
+        %125:i32 = load %k
+        %x_383:i32 = let %125
+        %127:i32 = load %k
+        %128:i32 = add %127, 1i
+        store %k, %128
+        %129:i32 = load %i
+        %x_385:i32 = let %129
+        %131:i32 = load %i
+        %132:i32 = add %131, 1i
+        store %i, %132
+        %133:ptr<private, i32, read_write> = access %temp, %x_383
+        %134:ptr<private, i32, read_write> = access %data, %x_385
+        %135:i32 = load %134
+        store %133, %135
+        continue  # -> $B40
       }
-      %b40 = block {  # continuing
-        next_iteration %b39
+      $B40: {  # continuing
+        next_iteration  # -> $B39
       }
     }
-    %126:i32 = load %f
-    store %i_1, %126
-    loop [b: %b43, c: %b44] {  # loop_3
-      %b43 = block {  # body
-        %127:i32 = load %i_1
-        %128:i32 = load %to
-        %129:bool = lte %127, %128
-        if %129 [t: %b45, f: %b46] {  # if_21
-          %b45 = block {  # true
+    %136:i32 = load %f
+    store %i_1, %136
+    loop [b: $B43, c: $B44] {  # loop_3
+      $B43: {  # body
+        %137:i32 = load %i_1
+        %138:i32 = load %to
+        %139:bool = lte %137, %138
+        if %139 [t: $B45, f: $B46] {  # if_21
+          $B45: {  # true
             exit_if  # if_21
           }
-          %b46 = block {  # false
+          $B46: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_399:i32 = load %i_1
-        %131:ptr<private, i32, read_write> = access %data, %x_399
-        %132:i32 = load %i_1
-        %133:ptr<private, i32, read_write> = access %temp, %132
-        %134:i32 = load %133
-        store %131, %134
-        continue %b44
+        %140:i32 = load %i_1
+        %x_399:i32 = let %140
+        %142:ptr<private, i32, read_write> = access %data, %x_399
+        %143:i32 = load %i_1
+        %144:ptr<private, i32, read_write> = access %temp, %143
+        %145:i32 = load %144
+        store %142, %145
+        continue  # -> $B44
       }
-      %b44 = block {  # continuing
-        %135:i32 = load %i_1
-        %136:i32 = add %135, 1i
-        store %i_1, %136
-        next_iteration %b43
+      $B44: {  # continuing
+        %146:i32 = load %i_1
+        %147:i32 = add %146, 1i
+        store %i_1, %147
+        next_iteration  # -> $B43
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b47 {
-  %b47 = block {
+%mergeSort_ = func():void {
+  $B47: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -382,319 +393,332 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b48, c: %b49] {  # loop_4
-      %b48 = block {  # body
-        %148:i32 = load %m
-        %149:i32 = load %high
-        %150:bool = lte %148, %149
-        if %150 [t: %b50, f: %b51] {  # if_22
-          %b50 = block {  # true
+    loop [b: $B48, c: $B49] {  # loop_4
+      $B48: {  # body
+        %159:i32 = load %m
+        %160:i32 = load %high
+        %161:bool = lte %159, %160
+        if %161 [t: $B50, f: $B51] {  # if_22
+          $B50: {  # true
             exit_if  # if_22
           }
-          %b51 = block {  # false
+          $B51: {  # false
             exit_loop  # loop_4
           }
         }
-        %151:i32 = load %low
-        store %i_2, %151
-        loop [b: %b52, c: %b53] {  # loop_5
-          %b52 = block {  # body
-            %152:i32 = load %i_2
-            %153:i32 = load %high
-            %154:bool = lt %152, %153
-            if %154 [t: %b54, f: %b55] {  # if_23
-              %b54 = block {  # true
+        %162:i32 = load %low
+        store %i_2, %162
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %163:i32 = load %i_2
+            %164:i32 = load %high
+            %165:bool = lt %163, %164
+            if %165 [t: $B54, f: $B55] {  # if_23
+              $B54: {  # true
                 exit_if  # if_23
               }
-              %b55 = block {  # false
+              $B55: {  # false
                 exit_loop  # loop_5
               }
             }
-            %155:i32 = load %i_2
-            store %f_1, %155
-            %156:i32 = load %i_2
-            %157:i32 = load %m
-            %158:i32 = add %156, %157
-            %159:i32 = sub %158, 1i
-            store %mid_1, %159
-            %160:i32 = load %i_2
-            %161:i32 = load %m
-            %162:i32 = mul 2i, %161
-            %163:i32 = add %160, %162
-            %164:i32 = sub %163, 1i
-            %165:i32 = load %high
-            %166:i32 = min %164, %165
-            store %to_1, %166
-            %167:i32 = load %f_1
-            store %param, %167
-            %168:i32 = load %mid_1
-            store %param_1, %168
-            %169:i32 = load %to_1
-            store %param_2, %169
-            %170:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b53
-          }
-          %b53 = block {  # continuing
+            %166:i32 = load %i_2
+            store %f_1, %166
+            %167:i32 = load %i_2
+            %168:i32 = load %m
+            %169:i32 = add %167, %168
+            %170:i32 = sub %169, 1i
+            store %mid_1, %170
             %171:i32 = load %i_2
             %172:i32 = load %m
             %173:i32 = mul 2i, %172
             %174:i32 = add %171, %173
-            store %i_2, %174
-            next_iteration %b52
+            %175:i32 = sub %174, 1i
+            %176:i32 = load %high
+            %177:i32 = min %175, %176
+            store %to_1, %177
+            %178:i32 = load %f_1
+            store %param, %178
+            %179:i32 = load %mid_1
+            store %param_1, %179
+            %180:i32 = load %to_1
+            store %param_2, %180
+            %181:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B53
+          }
+          $B53: {  # continuing
+            %182:i32 = load %i_2
+            %183:i32 = load %m
+            %184:i32 = mul 2i, %183
+            %185:i32 = add %182, %184
+            store %i_2, %185
+            next_iteration  # -> $B52
           }
         }
-        continue %b49
+        continue  # -> $B49
       }
-      %b49 = block {  # continuing
-        %175:i32 = load %m
-        %176:i32 = mul 2i, %175
-        store %m, %176
-        next_iteration %b48
+      $B49: {  # continuing
+        %186:i32 = load %m
+        %187:i32 = mul 2i, %186
+        store %m, %187
+        next_iteration  # -> $B48
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b56 {
-  %b56 = block {
+%main_1 = func():void {
+  $B56: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %181:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %182:f32 = load_vector_element %181, 0u
-    %183:i32 = convert %182
-    store %i_3, %183
-    loop [b: %b57, c: %b58] {  # loop_6
-      %b57 = block {  # body
-        %x_94:i32 = load %i_3
-        switch %x_94 [c: (9i, %b59), c: (8i, %b60), c: (7i, %b61), c: (6i, %b62), c: (5i, %b63), c: (4i, %b64), c: (3i, %b65), c: (2i, %b66), c: (1i, %b67), c: (0i, %b68), c: (default, %b69)] {  # switch_1
-          %b59 = block {  # case
-            %x_124:i32 = load %i_3
-            %186:ptr<private, i32, read_write> = access %data, %x_124
-            store %186, -5i
+    %192:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %193:f32 = load_vector_element %192, 0u
+    %194:i32 = call %tint_f32_to_i32, %193
+    store %i_3, %194
+    loop [b: $B57, c: $B58] {  # loop_6
+      $B57: {  # body
+        %196:i32 = load %i_3
+        %x_94:i32 = let %196
+        switch %x_94 [c: (9i, $B59), c: (8i, $B60), c: (7i, $B61), c: (6i, $B62), c: (5i, $B63), c: (4i, $B64), c: (3i, $B65), c: (2i, $B66), c: (1i, $B67), c: (0i, $B68), c: (default, $B69)] {  # switch_1
+          $B59: {  # case
+            %198:i32 = load %i_3
+            %x_124:i32 = let %198
+            %200:ptr<private, i32, read_write> = access %data, %x_124
+            store %200, -5i
             exit_switch  # switch_1
           }
-          %b60 = block {  # case
-            %x_122:i32 = load %i_3
-            %188:ptr<private, i32, read_write> = access %data, %x_122
-            store %188, -4i
+          $B60: {  # case
+            %201:i32 = load %i_3
+            %x_122:i32 = let %201
+            %203:ptr<private, i32, read_write> = access %data, %x_122
+            store %203, -4i
             exit_switch  # switch_1
           }
-          %b61 = block {  # case
-            %x_120:i32 = load %i_3
-            %190:ptr<private, i32, read_write> = access %data, %x_120
-            store %190, -3i
+          $B61: {  # case
+            %204:i32 = load %i_3
+            %x_120:i32 = let %204
+            %206:ptr<private, i32, read_write> = access %data, %x_120
+            store %206, -3i
             exit_switch  # switch_1
           }
-          %b62 = block {  # case
-            %x_118:i32 = load %i_3
-            %192:ptr<private, i32, read_write> = access %data, %x_118
-            store %192, -2i
+          $B62: {  # case
+            %207:i32 = load %i_3
+            %x_118:i32 = let %207
+            %209:ptr<private, i32, read_write> = access %data, %x_118
+            store %209, -2i
             exit_switch  # switch_1
           }
-          %b63 = block {  # case
-            %x_116:i32 = load %i_3
-            %194:ptr<private, i32, read_write> = access %data, %x_116
-            store %194, -1i
+          $B63: {  # case
+            %210:i32 = load %i_3
+            %x_116:i32 = let %210
+            %212:ptr<private, i32, read_write> = access %data, %x_116
+            store %212, -1i
             exit_switch  # switch_1
           }
-          %b64 = block {  # case
-            %x_114:i32 = load %i_3
-            %196:ptr<private, i32, read_write> = access %data, %x_114
-            store %196, 0i
+          $B64: {  # case
+            %213:i32 = load %i_3
+            %x_114:i32 = let %213
+            %215:ptr<private, i32, read_write> = access %data, %x_114
+            store %215, 0i
             exit_switch  # switch_1
           }
-          %b65 = block {  # case
-            %x_112:i32 = load %i_3
-            %198:ptr<private, i32, read_write> = access %data, %x_112
-            store %198, 1i
+          $B65: {  # case
+            %216:i32 = load %i_3
+            %x_112:i32 = let %216
+            %218:ptr<private, i32, read_write> = access %data, %x_112
+            store %218, 1i
             exit_switch  # switch_1
           }
-          %b66 = block {  # case
-            %x_110:i32 = load %i_3
-            %200:ptr<private, i32, read_write> = access %data, %x_110
-            store %200, 2i
+          $B66: {  # case
+            %219:i32 = load %i_3
+            %x_110:i32 = let %219
+            %221:ptr<private, i32, read_write> = access %data, %x_110
+            store %221, 2i
             exit_switch  # switch_1
           }
-          %b67 = block {  # case
-            %x_108:i32 = load %i_3
-            %202:ptr<private, i32, read_write> = access %data, %x_108
-            store %202, 3i
+          $B67: {  # case
+            %222:i32 = load %i_3
+            %x_108:i32 = let %222
+            %224:ptr<private, i32, read_write> = access %data, %x_108
+            store %224, 3i
             exit_switch  # switch_1
           }
-          %b68 = block {  # case
-            %x_106:i32 = load %i_3
-            %204:ptr<private, i32, read_write> = access %data, %x_106
-            store %204, 4i
+          $B68: {  # case
+            %225:i32 = load %i_3
+            %x_106:i32 = let %225
+            %227:ptr<private, i32, read_write> = access %data, %x_106
+            store %227, 4i
             exit_switch  # switch_1
           }
-          %b69 = block {  # case
+          $B69: {  # case
             exit_switch  # switch_1
           }
         }
-        %205:i32 = load %i_3
-        %206:i32 = add %205, 1i
-        store %i_3, %206
-        continue %b58
+        %228:i32 = load %i_3
+        %229:i32 = add %228, 1i
+        store %i_3, %229
+        continue  # -> $B58
       }
-      %b58 = block {  # continuing
-        %x_128:i32 = load %i_3
-        %208:bool = lt %x_128, 10i
-        %209:bool = eq %208, false
-        break_if %209 %b57
+      $B58: {  # continuing
+        %230:i32 = load %i_3
+        %x_128:i32 = let %230
+        %232:bool = lt %x_128, 10i
+        %233:bool = eq %232, false
+        break_if %233  # -> [t: exit_loop loop_6, f: $B57]
       }
     }
     store %j_1, 0i
-    loop [b: %b70, c: %b71] {  # loop_7
-      %b70 = block {  # body
-        %210:i32 = load %j_1
-        %211:bool = lt %210, 10i
-        if %211 [t: %b72, f: %b73] {  # if_24
-          %b72 = block {  # true
+    loop [b: $B70, c: $B71] {  # loop_7
+      $B70: {  # body
+        %234:i32 = load %j_1
+        %235:bool = lt %234, 10i
+        if %235 [t: $B72, f: $B73] {  # if_24
+          $B72: {  # true
             exit_if  # if_24
           }
-          %b73 = block {  # false
+          $B73: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_137:i32 = load %j_1
-        %213:ptr<private, i32, read_write> = access %temp, %x_137
-        %214:i32 = load %j_1
-        %215:ptr<private, i32, read_write> = access %data, %214
-        %216:i32 = load %215
-        store %213, %216
-        continue %b71
+        %236:i32 = load %j_1
+        %x_137:i32 = let %236
+        %238:ptr<private, i32, read_write> = access %temp, %x_137
+        %239:i32 = load %j_1
+        %240:ptr<private, i32, read_write> = access %data, %239
+        %241:i32 = load %240
+        store %238, %241
+        continue  # -> $B71
       }
-      %b71 = block {  # continuing
-        %217:i32 = load %j_1
-        %218:i32 = add %217, 1i
-        store %j_1, %218
-        next_iteration %b70
+      $B71: {  # continuing
+        %242:i32 = load %j_1
+        %243:i32 = add %242, 1i
+        store %j_1, %243
+        next_iteration  # -> $B70
       }
     }
-    %219:void = call %mergeSort_
-    %220:f32 = load_vector_element %gl_FragCoord, 1u
-    %221:i32 = convert %220
-    %222:bool = lt %221, 30i
-    if %222 [t: %b74, f: %b75] {  # if_25
-      %b74 = block {  # true
-        %223:ptr<private, i32, read_write> = access %data, 0i
-        %224:i32 = load %223
-        %225:f32 = convert %224
-        %226:f32 = div %225, 10.0f
-        %227:f32 = add 0.5f, %226
-        store %grey, %227
+    %244:void = call %mergeSort_
+    %245:f32 = load_vector_element %gl_FragCoord, 1u
+    %246:i32 = call %tint_f32_to_i32, %245
+    %247:bool = lt %246, 30i
+    if %247 [t: $B74, f: $B75] {  # if_25
+      $B74: {  # true
+        %248:ptr<private, i32, read_write> = access %data, 0i
+        %249:i32 = load %248
+        %250:f32 = convert %249
+        %251:f32 = div %250, 10.0f
+        %252:f32 = add 0.5f, %251
+        store %grey, %252
         exit_if  # if_25
       }
-      %b75 = block {  # false
-        %228:f32 = load_vector_element %gl_FragCoord, 1u
-        %229:i32 = convert %228
-        %230:bool = lt %229, 60i
-        if %230 [t: %b76, f: %b77] {  # if_26
-          %b76 = block {  # true
-            %231:ptr<private, i32, read_write> = access %data, 1i
-            %232:i32 = load %231
-            %233:f32 = convert %232
-            %234:f32 = div %233, 10.0f
-            %235:f32 = add 0.5f, %234
-            store %grey, %235
+      $B75: {  # false
+        %253:f32 = load_vector_element %gl_FragCoord, 1u
+        %254:i32 = call %tint_f32_to_i32, %253
+        %255:bool = lt %254, 60i
+        if %255 [t: $B76, f: $B77] {  # if_26
+          $B76: {  # true
+            %256:ptr<private, i32, read_write> = access %data, 1i
+            %257:i32 = load %256
+            %258:f32 = convert %257
+            %259:f32 = div %258, 10.0f
+            %260:f32 = add 0.5f, %259
+            store %grey, %260
             exit_if  # if_26
           }
-          %b77 = block {  # false
-            %236:f32 = load_vector_element %gl_FragCoord, 1u
-            %237:i32 = convert %236
-            %238:bool = lt %237, 90i
-            if %238 [t: %b78, f: %b79] {  # if_27
-              %b78 = block {  # true
-                %239:ptr<private, i32, read_write> = access %data, 2i
-                %240:i32 = load %239
-                %241:f32 = convert %240
-                %242:f32 = div %241, 10.0f
-                %243:f32 = add 0.5f, %242
-                store %grey, %243
+          $B77: {  # false
+            %261:f32 = load_vector_element %gl_FragCoord, 1u
+            %262:i32 = call %tint_f32_to_i32, %261
+            %263:bool = lt %262, 90i
+            if %263 [t: $B78, f: $B79] {  # if_27
+              $B78: {  # true
+                %264:ptr<private, i32, read_write> = access %data, 2i
+                %265:i32 = load %264
+                %266:f32 = convert %265
+                %267:f32 = div %266, 10.0f
+                %268:f32 = add 0.5f, %267
+                store %grey, %268
                 exit_if  # if_27
               }
-              %b79 = block {  # false
-                %244:f32 = load_vector_element %gl_FragCoord, 1u
-                %245:i32 = convert %244
-                %246:bool = lt %245, 120i
-                if %246 [t: %b80, f: %b81] {  # if_28
-                  %b80 = block {  # true
-                    %247:ptr<private, i32, read_write> = access %data, 3i
-                    %248:i32 = load %247
-                    %249:f32 = convert %248
-                    %250:f32 = div %249, 10.0f
-                    %251:f32 = add 0.5f, %250
-                    store %grey, %251
+              $B79: {  # false
+                %269:f32 = load_vector_element %gl_FragCoord, 1u
+                %270:i32 = call %tint_f32_to_i32, %269
+                %271:bool = lt %270, 120i
+                if %271 [t: $B80, f: $B81] {  # if_28
+                  $B80: {  # true
+                    %272:ptr<private, i32, read_write> = access %data, 3i
+                    %273:i32 = load %272
+                    %274:f32 = convert %273
+                    %275:f32 = div %274, 10.0f
+                    %276:f32 = add 0.5f, %275
+                    store %grey, %276
                     exit_if  # if_28
                   }
-                  %b81 = block {  # false
-                    %252:f32 = load_vector_element %gl_FragCoord, 1u
-                    %253:i32 = convert %252
-                    %254:bool = lt %253, 150i
-                    if %254 [t: %b82, f: %b83] {  # if_29
-                      %b82 = block {  # true
-                        discard
+                  $B81: {  # false
+                    %277:f32 = load_vector_element %gl_FragCoord, 1u
+                    %278:i32 = call %tint_f32_to_i32, %277
+                    %279:bool = lt %278, 150i
+                    if %279 [t: $B82, f: $B83] {  # if_29
+                      $B82: {  # true
+                        store %continue_execution, false
                         exit_if  # if_29
                       }
-                      %b83 = block {  # false
-                        %255:f32 = load_vector_element %gl_FragCoord, 1u
-                        %256:i32 = convert %255
-                        %257:bool = lt %256, 180i
-                        if %257 [t: %b84, f: %b85] {  # if_30
-                          %b84 = block {  # true
-                            %258:ptr<private, i32, read_write> = access %data, 5i
-                            %259:i32 = load %258
-                            %260:f32 = convert %259
-                            %261:f32 = div %260, 10.0f
-                            %262:f32 = add 0.5f, %261
-                            store %grey, %262
+                      $B83: {  # false
+                        %280:f32 = load_vector_element %gl_FragCoord, 1u
+                        %281:i32 = call %tint_f32_to_i32, %280
+                        %282:bool = lt %281, 180i
+                        if %282 [t: $B84, f: $B85] {  # if_30
+                          $B84: {  # true
+                            %283:ptr<private, i32, read_write> = access %data, 5i
+                            %284:i32 = load %283
+                            %285:f32 = convert %284
+                            %286:f32 = div %285, 10.0f
+                            %287:f32 = add 0.5f, %286
+                            store %grey, %287
                             exit_if  # if_30
                           }
-                          %b85 = block {  # false
-                            %263:f32 = load_vector_element %gl_FragCoord, 1u
-                            %264:i32 = convert %263
-                            %265:bool = lt %264, 210i
-                            if %265 [t: %b86, f: %b87] {  # if_31
-                              %b86 = block {  # true
-                                %266:ptr<private, i32, read_write> = access %data, 6i
-                                %267:i32 = load %266
-                                %268:f32 = convert %267
-                                %269:f32 = div %268, 10.0f
-                                %270:f32 = add 0.5f, %269
-                                store %grey, %270
+                          $B85: {  # false
+                            %288:f32 = load_vector_element %gl_FragCoord, 1u
+                            %289:i32 = call %tint_f32_to_i32, %288
+                            %290:bool = lt %289, 210i
+                            if %290 [t: $B86, f: $B87] {  # if_31
+                              $B86: {  # true
+                                %291:ptr<private, i32, read_write> = access %data, 6i
+                                %292:i32 = load %291
+                                %293:f32 = convert %292
+                                %294:f32 = div %293, 10.0f
+                                %295:f32 = add 0.5f, %294
+                                store %grey, %295
                                 exit_if  # if_31
                               }
-                              %b87 = block {  # false
-                                %271:f32 = load_vector_element %gl_FragCoord, 1u
-                                %272:i32 = convert %271
-                                %273:bool = lt %272, 240i
-                                if %273 [t: %b88, f: %b89] {  # if_32
-                                  %b88 = block {  # true
-                                    %274:ptr<private, i32, read_write> = access %data, 7i
-                                    %275:i32 = load %274
-                                    %276:f32 = convert %275
-                                    %277:f32 = div %276, 10.0f
-                                    %278:f32 = add 0.5f, %277
-                                    store %grey, %278
+                              $B87: {  # false
+                                %296:f32 = load_vector_element %gl_FragCoord, 1u
+                                %297:i32 = call %tint_f32_to_i32, %296
+                                %298:bool = lt %297, 240i
+                                if %298 [t: $B88, f: $B89] {  # if_32
+                                  $B88: {  # true
+                                    %299:ptr<private, i32, read_write> = access %data, 7i
+                                    %300:i32 = load %299
+                                    %301:f32 = convert %300
+                                    %302:f32 = div %301, 10.0f
+                                    %303:f32 = add 0.5f, %302
+                                    store %grey, %303
                                     exit_if  # if_32
                                   }
-                                  %b89 = block {  # false
-                                    %279:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %280:i32 = convert %279
-                                    %281:bool = lt %280, 270i
-                                    if %281 [t: %b90, f: %b91] {  # if_33
-                                      %b90 = block {  # true
-                                        %282:ptr<private, i32, read_write> = access %data, 8i
-                                        %283:i32 = load %282
-                                        %284:f32 = convert %283
-                                        %285:f32 = div %284, 10.0f
-                                        %286:f32 = add 0.5f, %285
-                                        store %grey, %286
+                                  $B89: {  # false
+                                    %304:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %305:i32 = call %tint_f32_to_i32, %304
+                                    %306:bool = lt %305, 270i
+                                    if %306 [t: $B90, f: $B91] {  # if_33
+                                      $B90: {  # true
+                                        %307:ptr<private, i32, read_write> = access %data, 8i
+                                        %308:i32 = load %307
+                                        %309:f32 = convert %308
+                                        %310:f32 = div %309, 10.0f
+                                        %311:f32 = add 0.5f, %310
+                                        store %grey, %311
                                         exit_if  # if_33
                                       }
-                                      %b91 = block {  # false
-                                        discard
+                                      $B91: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_33
                                       }
                                     }
@@ -722,23 +746,41 @@
         exit_if  # if_25
       }
     }
-    %287:f32 = load %grey
-    %x_249:vec3<f32> = construct %287
-    %289:f32 = access %x_249, 0u
-    %290:f32 = access %x_249, 1u
-    %291:f32 = access %x_249, 2u
-    %292:vec4<f32> = construct %289, %290, %291, 1.0f
-    store %x_GLF_color, %292
+    %312:f32 = load %grey
+    %313:vec3<f32> = construct %312
+    %x_249:vec3<f32> = let %313
+    %315:f32 = access %x_249, 0u
+    %316:f32 = access %x_249, 1u
+    %317:f32 = access %x_249, 2u
+    %318:vec4<f32> = construct %315, %316, %317, 1.0f
+    store %x_GLF_color, %318
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b92 {
-  %b92 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B92: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %295:void = call %main_1
-    %296:vec4<f32> = load %x_GLF_color
-    %297:main_out = construct %296
-    ret %297
+    %321:void = call %main_1
+    %322:vec4<f32> = load %x_GLF_color
+    %323:main_out = construct %322
+    %324:bool = load %continue_execution
+    %325:bool = eq %324, false
+    if %325 [t: $B93] {  # if_34
+      $B93: {  # true
+        terminate_invocation
+      }
+    }
+    ret %323
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B94: {
+    %327:i32 = convert %value
+    %328:bool = gte %value, -2147483648.0f
+    %329:i32 = select -2147483648i, %327, %328
+    %330:bool = lte %value, 2147483520.0f
+    %331:i32 = select 2147483647i, %329, %330
+    ret %331
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.msl
index 7b7ac34..bc9c8ee 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,29 +8,33 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_255:i32 = load %f
+    %15:i32 = load %f
+    %x_255:i32 = let %15
     store %k, %x_255
-    %x_256:i32 = load %f
+    %17:i32 = load %f
+    %x_256:i32 = let %17
     store %i, %x_256
-    %x_257:i32 = load %mid
-    %17:i32 = add %x_257, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %19:i32 = load %mid
+    %x_257:i32 = let %19
+    %21:i32 = add %x_257, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_285:ptr<function, i32, read_write> = var
         %x_286:ptr<function, i32, read_write> = var
         %x_305:ptr<function, i32, read_write> = var
@@ -49,323 +53,360 @@
         %x_340_phi:ptr<function, i32, read_write> = var
         %x_353_phi:ptr<function, i32, read_write> = var
         %x_367_phi:ptr<function, i32, read_write> = var
-        %36:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %x_261:f32 = load_vector_element %36, 0u
-        %38:bool = gte 1.0f, %x_261
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %40:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %41:f32 = load_vector_element %40, 0u
+        %x_261:f32 = let %41
+        %43:bool = gte 1.0f, %x_261
+        if %43 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
-            continue %b4
+          $B6: {  # false
+            continue  # -> $B4
           }
         }
-        %x_266:i32 = load %i
-        %x_267:i32 = load %mid
-        %x_269:i32 = load %j
-        %x_270:i32 = load %to
-        %43:bool = lte %x_266, %x_267
-        %44:bool = lte %x_269, %x_270
-        %45:bool = and %43, %44
-        if %45 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        %44:i32 = load %i
+        %x_266:i32 = let %44
+        %46:i32 = load %mid
+        %x_267:i32 = let %46
+        %48:i32 = load %j
+        %x_269:i32 = let %48
+        %50:i32 = load %to
+        %x_270:i32 = let %50
+        %52:bool = lte %x_266, %x_267
+        %53:bool = lte %x_269, %x_270
+        %54:bool = and %52, %53
+        if %54 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_274:i32 = load %i
-        %47:ptr<private, i32, read_write> = access %data, %x_274
-        %x_276:i32 = load %47
-        %x_277:i32 = load %j
-        %50:ptr<private, i32, read_write> = access %data, %x_277
-        %x_279:i32 = load %50
-        %x_280:bool = lt %x_276, %x_279
-        if %x_280 [t: %b9, f: %b10] {  # if_3
-          %b9 = block {  # true
-            %53:i32 = load %k
-            store %x_285, %53
-            %54:i32 = load %x_285
-            store %x_287_phi, %54
+        %55:i32 = load %i
+        %x_274:i32 = let %55
+        %57:ptr<private, i32, read_write> = access %data, %x_274
+        %58:i32 = load %57
+        %x_276:i32 = let %58
+        %60:i32 = load %j
+        %x_277:i32 = let %60
+        %62:ptr<private, i32, read_write> = access %data, %x_277
+        %63:i32 = load %62
+        %x_279:i32 = let %63
+        %65:bool = lt %x_276, %x_279
+        %x_280:bool = let %65
+        if %x_280 [t: $B9, f: $B10] {  # if_3
+          $B9: {  # true
+            %67:i32 = load %k
+            store %x_285, %67
+            %68:i32 = load %x_285
+            store %x_287_phi, %68
             exit_if  # if_3
           }
-          %b10 = block {  # false
+          $B10: {  # false
             store %x_286, 0i
-            %55:i32 = load %x_286
-            store %x_287_phi, %55
+            %69:i32 = load %x_286
+            store %x_287_phi, %69
             exit_if  # if_3
           }
         }
-        %x_287:i32 = load %x_287_phi
-        %x_288:i32 = add %x_287, 1i
-        if %x_280 [t: %b11] {  # if_4
-          %b11 = block {  # true
+        %70:i32 = load %x_287_phi
+        %x_287:i32 = let %70
+        %72:i32 = add %x_287, 1i
+        %x_288:i32 = let %72
+        if %x_280 [t: $B11] {  # if_4
+          $B11: {  # true
             store %k, %x_288
-            %58:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_293:f32 = load_vector_element %58, 0u
-            %60:bool = lte 1.0f, %x_293
-            %61:bool = eq %60, false
-            if %61 [t: %b12, f: %b13] {  # if_5
-              %b12 = block {  # true
+            %74:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %75:f32 = load_vector_element %74, 0u
+            %x_293:f32 = let %75
+            %77:bool = lte 1.0f, %x_293
+            %78:bool = eq %77, false
+            if %78 [t: $B12, f: $B13] {  # if_5
+              $B12: {  # true
                 exit_if  # if_5
               }
-              %b13 = block {  # false
-                continue %b4
+              $B13: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_4
           }
         }
-        %62:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %x_297:f32 = load_vector_element %62, 1u
-        %64:bool = gte %x_297, 0.0f
-        if %64 [t: %b14, f: %b15] {  # if_6
-          %b14 = block {  # true
+        %79:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %80:f32 = load_vector_element %79, 1u
+        %x_297:f32 = let %80
+        %82:bool = gte %x_297, 0.0f
+        if %82 [t: $B14, f: $B15] {  # if_6
+          $B14: {  # true
             exit_if  # if_6
           }
-          %b15 = block {  # false
-            continue %b4
+          $B15: {  # false
+            continue  # -> $B4
           }
         }
         %x_300:i32 = let 0i
-        if %x_280 [t: %b16, f: %b17] {  # if_7
-          %b16 = block {  # true
-            %66:i32 = load %i
-            store %x_305, %66
-            %67:i32 = load %x_305
-            store %x_307_phi, %67
+        if %x_280 [t: $B16, f: $B17] {  # if_7
+          $B16: {  # true
+            %84:i32 = load %i
+            store %x_305, %84
+            %85:i32 = load %x_305
+            store %x_307_phi, %85
             exit_if  # if_7
           }
-          %b17 = block {  # false
+          $B17: {  # false
             store %x_306, 0i
-            %68:i32 = load %x_306
-            store %x_307_phi, %68
+            %86:i32 = load %x_306
+            store %x_307_phi, %86
             exit_if  # if_7
           }
         }
-        %x_307:i32 = load %x_307_phi
-        %x_309:i32 = select %x_300, %x_307, %x_280
-        if %x_280 [t: %b18] {  # if_8
-          %b18 = block {  # true
-            %71:i32 = add %x_309, 1i
-            store %i, %71
+        %87:i32 = load %x_307_phi
+        %x_307:i32 = let %87
+        %89:i32 = select %x_300, %x_307, %x_280
+        %x_309:i32 = let %89
+        if %x_280 [t: $B18] {  # if_8
+          $B18: {  # true
+            %91:i32 = add %x_309, 1i
+            store %i, %91
             exit_if  # if_8
           }
         }
         %x_315:i32 = let 0i
-        if %x_280 [t: %b19, f: %b20] {  # if_9
-          %b19 = block {  # true
-            %73:ptr<private, i32, read_write> = access %data, %x_309
-            %74:i32 = load %73
-            store %x_320, %74
-            %75:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_322:f32 = load_vector_element %75, 1u
-            %77:i32 = load %x_320
-            store %x_328_phi, %77
-            %78:bool = lte 0.0f, %x_322
-            %79:bool = eq %78, false
-            if %79 [t: %b21] {  # if_10
-              %b21 = block {  # true
-                continue %b4
+        if %x_280 [t: $B19, f: $B20] {  # if_9
+          $B19: {  # true
+            %93:ptr<private, i32, read_write> = access %data, %x_309
+            %94:i32 = load %93
+            store %x_320, %94
+            %95:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %96:f32 = load_vector_element %95, 1u
+            %x_322:f32 = let %96
+            %98:i32 = load %x_320
+            store %x_328_phi, %98
+            %99:bool = lte 0.0f, %x_322
+            %100:bool = eq %99, false
+            if %100 [t: $B21] {  # if_10
+              $B21: {  # true
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
-          %b20 = block {  # false
+          $B20: {  # false
             store %x_324, 0i
-            %80:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_326:f32 = load_vector_element %80, 1u
-            %82:i32 = load %x_324
-            store %x_328_phi, %82
-            %83:bool = lt %x_326, 0.0f
-            %84:bool = eq %83, false
-            if %84 [t: %b22, f: %b23] {  # if_11
-              %b22 = block {  # true
+            %101:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %102:f32 = load_vector_element %101, 1u
+            %x_326:f32 = let %102
+            %104:i32 = load %x_324
+            store %x_328_phi, %104
+            %105:bool = lt %x_326, 0.0f
+            %106:bool = eq %105, false
+            if %106 [t: $B22, f: $B23] {  # if_11
+              $B22: {  # true
                 exit_if  # if_11
               }
-              %b23 = block {  # false
-                continue %b4
+              $B23: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
         }
-        %x_328:i32 = load %x_328_phi
-        if %x_280 [t: %b24] {  # if_12
-          %b24 = block {  # true
-            %86:ptr<private, i32, read_write> = access %temp, %x_287
-            %87:i32 = select %x_315, %x_328, %x_280
-            store %86, %87
+        %107:i32 = load %x_328_phi
+        %x_328:i32 = let %107
+        if %x_280 [t: $B24] {  # if_12
+          $B24: {  # true
+            %109:ptr<private, i32, read_write> = access %temp, %x_287
+            %110:i32 = select %x_315, %x_328, %x_280
+            store %109, %110
             exit_if  # if_12
           }
         }
-        if %x_280 [t: %b25, f: %b26] {  # if_13
-          %b25 = block {  # true
+        if %x_280 [t: $B25, f: $B26] {  # if_13
+          $B25: {  # true
             store %x_339, 0i
-            %88:i32 = load %x_339
-            store %x_340_phi, %88
+            %111:i32 = load %x_339
+            store %x_340_phi, %111
             exit_if  # if_13
           }
-          %b26 = block {  # false
-            %89:i32 = load %k
-            store %x_338, %89
-            %90:i32 = load %x_338
-            store %x_340_phi, %90
+          $B26: {  # false
+            %112:i32 = load %k
+            store %x_338, %112
+            %113:i32 = load %x_338
+            store %x_340_phi, %113
             exit_if  # if_13
           }
         }
-        %x_340:i32 = load %x_340_phi
-        if %x_280 [t: %b27, f: %b28] {  # if_14
-          %b27 = block {  # true
+        %114:i32 = load %x_340_phi
+        %x_340:i32 = let %114
+        if %x_280 [t: $B27, f: $B28] {  # if_14
+          $B27: {  # true
             exit_if  # if_14
           }
-          %b28 = block {  # false
-            %92:i32 = add %x_340, 1i
-            store %k, %92
+          $B28: {  # false
+            %116:i32 = add %x_340, 1i
+            store %k, %116
             exit_if  # if_14
           }
         }
-        %93:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %x_345:f32 = load_vector_element %93, 0u
-        %95:bool = lte 1.0f, %x_345
-        %96:bool = eq %95, false
-        if %96 [t: %b29, f: %b30] {  # if_15
-          %b29 = block {  # true
+        %117:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %118:f32 = load_vector_element %117, 0u
+        %x_345:f32 = let %118
+        %120:bool = lte 1.0f, %x_345
+        %121:bool = eq %120, false
+        if %121 [t: $B29, f: $B30] {  # if_15
+          $B29: {  # true
             exit_if  # if_15
           }
-          %b30 = block {  # false
-            continue %b4
+          $B30: {  # false
+            continue  # -> $B4
           }
         }
-        if %x_280 [t: %b31, f: %b32] {  # if_16
-          %b31 = block {  # true
+        if %x_280 [t: $B31, f: $B32] {  # if_16
+          $B31: {  # true
             store %x_352, 0i
-            %97:i32 = load %x_352
-            store %x_353_phi, %97
+            %122:i32 = load %x_352
+            store %x_353_phi, %122
             exit_if  # if_16
           }
-          %b32 = block {  # false
-            %98:i32 = load %j
-            store %x_351, %98
-            %99:i32 = load %x_351
-            store %x_353_phi, %99
+          $B32: {  # false
+            %123:i32 = load %j
+            store %x_351, %123
+            %124:i32 = load %x_351
+            store %x_353_phi, %124
             exit_if  # if_16
           }
         }
-        %x_353:i32 = load %x_353_phi
+        %125:i32 = load %x_353_phi
+        %x_353:i32 = let %125
         %x_355:i32 = let 0i
-        %x_357:i32 = select %x_353, %x_355, %x_280
-        if %x_280 [t: %b33, f: %b34] {  # if_17
-          %b33 = block {  # true
+        %128:i32 = select %x_353, %x_355, %x_280
+        %x_357:i32 = let %128
+        if %x_280 [t: $B33, f: $B34] {  # if_17
+          $B33: {  # true
             exit_if  # if_17
           }
-          %b34 = block {  # false
-            %103:i32 = add %x_357, 1i
-            store %j, %103
+          $B34: {  # false
+            %130:i32 = add %x_357, 1i
+            store %j, %130
             exit_if  # if_17
           }
         }
-        if %x_280 [t: %b35, f: %b36] {  # if_18
-          %b35 = block {  # true
+        if %x_280 [t: $B35, f: $B36] {  # if_18
+          $B35: {  # true
             store %x_366, 0i
-            %104:i32 = load %x_366
-            store %x_367_phi, %104
+            %131:i32 = load %x_366
+            store %x_367_phi, %131
             exit_if  # if_18
           }
-          %b36 = block {  # false
-            %105:ptr<private, i32, read_write> = access %data, %x_357
-            %106:i32 = load %105
-            store %x_365, %106
-            %107:i32 = load %x_365
-            store %x_367_phi, %107
+          $B36: {  # false
+            %132:ptr<private, i32, read_write> = access %data, %x_357
+            %133:i32 = load %132
+            store %x_365, %133
+            %134:i32 = load %x_365
+            store %x_367_phi, %134
             exit_if  # if_18
           }
         }
-        %x_367:i32 = load %x_367_phi
-        if %x_280 [t: %b37, f: %b38] {  # if_19
-          %b37 = block {  # true
+        %135:i32 = load %x_367_phi
+        %x_367:i32 = let %135
+        if %x_280 [t: $B37, f: $B38] {  # if_19
+          $B37: {  # true
             exit_if  # if_19
           }
-          %b38 = block {  # false
-            %109:ptr<private, i32, read_write> = access %temp, %x_340
-            store %109, %x_367
+          $B38: {  # false
+            %137:ptr<private, i32, read_write> = access %temp, %x_340
+            store %137, %x_367
             exit_if  # if_19
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b39, c: %b40] {  # loop_2
-      %b39 = block {  # body
-        %x_376:i32 = load %i
-        %x_378:i32 = load %i
-        %x_379:i32 = load %mid
-        %113:bool = lt %x_376, 10i
-        %114:bool = lte %x_378, %x_379
-        %115:bool = and %113, %114
-        if %115 [t: %b41, f: %b42] {  # if_20
-          %b41 = block {  # true
+    loop [b: $B39, c: $B40] {  # loop_2
+      $B39: {  # body
+        %138:i32 = load %i
+        %x_376:i32 = let %138
+        %140:i32 = load %i
+        %x_378:i32 = let %140
+        %142:i32 = load %mid
+        %x_379:i32 = let %142
+        %144:bool = lt %x_376, 10i
+        %145:bool = lte %x_378, %x_379
+        %146:bool = and %144, %145
+        if %146 [t: $B41, f: $B42] {  # if_20
+          $B41: {  # true
             exit_if  # if_20
           }
-          %b42 = block {  # false
+          $B42: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_383:i32 = load %k
-        %117:i32 = add %x_383, 1i
-        store %k, %117
-        %x_385:i32 = load %i
-        %119:i32 = add %x_385, 1i
-        store %i, %119
-        %120:ptr<private, i32, read_write> = access %data, %x_385
-        %x_388:i32 = load %120
-        %122:ptr<private, i32, read_write> = access %temp, %x_383
-        store %122, %x_388
-        continue %b40
+        %147:i32 = load %k
+        %x_383:i32 = let %147
+        %149:i32 = add %x_383, 1i
+        store %k, %149
+        %150:i32 = load %i
+        %x_385:i32 = let %150
+        %152:i32 = add %x_385, 1i
+        store %i, %152
+        %153:ptr<private, i32, read_write> = access %data, %x_385
+        %154:i32 = load %153
+        %x_388:i32 = let %154
+        %156:ptr<private, i32, read_write> = access %temp, %x_383
+        store %156, %x_388
+        continue  # -> $B40
       }
-      %b40 = block {  # continuing
-        next_iteration %b39
+      $B40: {  # continuing
+        next_iteration  # -> $B39
       }
     }
-    %x_390:i32 = load %f
+    %157:i32 = load %f
+    %x_390:i32 = let %157
     store %i_1, %x_390
-    loop [b: %b43, c: %b44] {  # loop_3
-      %b43 = block {  # body
-        %x_395:i32 = load %i_1
-        %x_396:i32 = load %to
-        %126:bool = lte %x_395, %x_396
-        if %126 [t: %b45, f: %b46] {  # if_21
-          %b45 = block {  # true
+    loop [b: $B43, c: $B44] {  # loop_3
+      $B43: {  # body
+        %159:i32 = load %i_1
+        %x_395:i32 = let %159
+        %161:i32 = load %to
+        %x_396:i32 = let %161
+        %163:bool = lte %x_395, %x_396
+        if %163 [t: $B45, f: $B46] {  # if_21
+          $B45: {  # true
             exit_if  # if_21
           }
-          %b46 = block {  # false
+          $B46: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_399:i32 = load %i_1
-        %x_400:i32 = load %i_1
-        %129:ptr<private, i32, read_write> = access %temp, %x_400
-        %x_402:i32 = load %129
-        %131:ptr<private, i32, read_write> = access %data, %x_399
-        store %131, %x_402
-        continue %b44
+        %164:i32 = load %i_1
+        %x_399:i32 = let %164
+        %166:i32 = load %i_1
+        %x_400:i32 = let %166
+        %168:ptr<private, i32, read_write> = access %temp, %x_400
+        %169:i32 = load %168
+        %x_402:i32 = let %169
+        %171:ptr<private, i32, read_write> = access %data, %x_399
+        store %171, %x_402
+        continue  # -> $B44
       }
-      %b44 = block {  # continuing
-        %x_404:i32 = load %i_1
-        %133:i32 = add %x_404, 1i
-        store %i_1, %133
-        next_iteration %b43
+      $B44: {  # continuing
+        %172:i32 = load %i_1
+        %x_404:i32 = let %172
+        %174:i32 = add %x_404, 1i
+        store %i_1, %174
+        next_iteration  # -> $B43
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b47 {
-  %b47 = block {
+%mergeSort_ = func():void {
+  $B47: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -379,319 +420,372 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b48, c: %b49] {  # loop_4
-      %b48 = block {  # body
-        %x_411:i32 = load %m
-        %x_412:i32 = load %high
-        %147:bool = lte %x_411, %x_412
-        if %147 [t: %b50, f: %b51] {  # if_22
-          %b50 = block {  # true
+    loop [b: $B48, c: $B49] {  # loop_4
+      $B48: {  # body
+        %186:i32 = load %m
+        %x_411:i32 = let %186
+        %188:i32 = load %high
+        %x_412:i32 = let %188
+        %190:bool = lte %x_411, %x_412
+        if %190 [t: $B50, f: $B51] {  # if_22
+          $B50: {  # true
             exit_if  # if_22
           }
-          %b51 = block {  # false
+          $B51: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_415:i32 = load %low
+        %191:i32 = load %low
+        %x_415:i32 = let %191
         store %i_2, %x_415
-        loop [b: %b52, c: %b53] {  # loop_5
-          %b52 = block {  # body
-            %x_420:i32 = load %i_2
-            %x_421:i32 = load %high
-            %151:bool = lt %x_420, %x_421
-            if %151 [t: %b54, f: %b55] {  # if_23
-              %b54 = block {  # true
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %193:i32 = load %i_2
+            %x_420:i32 = let %193
+            %195:i32 = load %high
+            %x_421:i32 = let %195
+            %197:bool = lt %x_420, %x_421
+            if %197 [t: $B54, f: $B55] {  # if_23
+              $B54: {  # true
                 exit_if  # if_23
               }
-              %b55 = block {  # false
+              $B55: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_424:i32 = load %i_2
+            %198:i32 = load %i_2
+            %x_424:i32 = let %198
             store %f_1, %x_424
-            %x_425:i32 = load %i_2
-            %x_426:i32 = load %m
-            %155:i32 = add %x_425, %x_426
-            %156:i32 = sub %155, 1i
-            store %mid_1, %156
-            %x_429:i32 = load %i_2
-            %x_430:i32 = load %m
-            %x_434:i32 = load %high
-            %160:i32 = mul 2i, %x_430
-            %161:i32 = add %x_429, %160
-            %162:i32 = sub %161, 1i
-            %163:i32 = min %162, %x_434
-            store %to_1, %163
-            %x_436:i32 = load %f_1
+            %200:i32 = load %i_2
+            %x_425:i32 = let %200
+            %202:i32 = load %m
+            %x_426:i32 = let %202
+            %204:i32 = add %x_425, %x_426
+            %205:i32 = sub %204, 1i
+            store %mid_1, %205
+            %206:i32 = load %i_2
+            %x_429:i32 = let %206
+            %208:i32 = load %m
+            %x_430:i32 = let %208
+            %210:i32 = load %high
+            %x_434:i32 = let %210
+            %212:i32 = mul 2i, %x_430
+            %213:i32 = add %x_429, %212
+            %214:i32 = sub %213, 1i
+            %215:i32 = min %214, %x_434
+            store %to_1, %215
+            %216:i32 = load %f_1
+            %x_436:i32 = let %216
             store %param, %x_436
-            %x_437:i32 = load %mid_1
+            %218:i32 = load %mid_1
+            %x_437:i32 = let %218
             store %param_1, %x_437
-            %x_438:i32 = load %to_1
+            %220:i32 = load %to_1
+            %x_438:i32 = let %220
             store %param_2, %x_438
-            %167:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b53
+            %222:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B53
           }
-          %b53 = block {  # continuing
-            %x_440:i32 = load %m
-            %x_442:i32 = load %i_2
-            %170:i32 = mul 2i, %x_440
-            %171:i32 = add %x_442, %170
-            store %i_2, %171
-            next_iteration %b52
+          $B53: {  # continuing
+            %223:i32 = load %m
+            %x_440:i32 = let %223
+            %225:i32 = load %i_2
+            %x_442:i32 = let %225
+            %227:i32 = mul 2i, %x_440
+            %228:i32 = add %x_442, %227
+            store %i_2, %228
+            next_iteration  # -> $B52
           }
         }
-        continue %b49
+        continue  # -> $B49
       }
-      %b49 = block {  # continuing
-        %x_444:i32 = load %m
-        %173:i32 = mul 2i, %x_444
-        store %m, %173
-        next_iteration %b48
+      $B49: {  # continuing
+        %229:i32 = load %m
+        %x_444:i32 = let %229
+        %231:i32 = mul 2i, %x_444
+        store %m, %231
+        next_iteration  # -> $B48
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b56 {
-  %b56 = block {
+%main_1 = func():void {
+  $B56: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %178:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_88:f32 = load_vector_element %178, 0u
-    %180:i32 = convert %x_88
-    store %i_3, %180
-    loop [b: %b57, c: %b58] {  # loop_6
-      %b57 = block {  # body
-        %x_94:i32 = load %i_3
-        switch %x_94 [c: (9i, %b59), c: (8i, %b60), c: (7i, %b61), c: (6i, %b62), c: (5i, %b63), c: (4i, %b64), c: (3i, %b65), c: (2i, %b66), c: (1i, %b67), c: (0i, %b68), c: (default, %b69)] {  # switch_1
-          %b59 = block {  # case
-            %x_124:i32 = load %i_3
-            %183:ptr<private, i32, read_write> = access %data, %x_124
-            store %183, -5i
+    %236:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %237:f32 = load_vector_element %236, 0u
+    %x_88:f32 = let %237
+    %239:i32 = call %tint_f32_to_i32, %x_88
+    store %i_3, %239
+    loop [b: $B57, c: $B58] {  # loop_6
+      $B57: {  # body
+        %241:i32 = load %i_3
+        %x_94:i32 = let %241
+        switch %x_94 [c: (9i, $B59), c: (8i, $B60), c: (7i, $B61), c: (6i, $B62), c: (5i, $B63), c: (4i, $B64), c: (3i, $B65), c: (2i, $B66), c: (1i, $B67), c: (0i, $B68), c: (default, $B69)] {  # switch_1
+          $B59: {  # case
+            %243:i32 = load %i_3
+            %x_124:i32 = let %243
+            %245:ptr<private, i32, read_write> = access %data, %x_124
+            store %245, -5i
             exit_switch  # switch_1
           }
-          %b60 = block {  # case
-            %x_122:i32 = load %i_3
-            %185:ptr<private, i32, read_write> = access %data, %x_122
-            store %185, -4i
+          $B60: {  # case
+            %246:i32 = load %i_3
+            %x_122:i32 = let %246
+            %248:ptr<private, i32, read_write> = access %data, %x_122
+            store %248, -4i
             exit_switch  # switch_1
           }
-          %b61 = block {  # case
-            %x_120:i32 = load %i_3
-            %187:ptr<private, i32, read_write> = access %data, %x_120
-            store %187, -3i
+          $B61: {  # case
+            %249:i32 = load %i_3
+            %x_120:i32 = let %249
+            %251:ptr<private, i32, read_write> = access %data, %x_120
+            store %251, -3i
             exit_switch  # switch_1
           }
-          %b62 = block {  # case
-            %x_118:i32 = load %i_3
-            %189:ptr<private, i32, read_write> = access %data, %x_118
-            store %189, -2i
+          $B62: {  # case
+            %252:i32 = load %i_3
+            %x_118:i32 = let %252
+            %254:ptr<private, i32, read_write> = access %data, %x_118
+            store %254, -2i
             exit_switch  # switch_1
           }
-          %b63 = block {  # case
-            %x_116:i32 = load %i_3
-            %191:ptr<private, i32, read_write> = access %data, %x_116
-            store %191, -1i
+          $B63: {  # case
+            %255:i32 = load %i_3
+            %x_116:i32 = let %255
+            %257:ptr<private, i32, read_write> = access %data, %x_116
+            store %257, -1i
             exit_switch  # switch_1
           }
-          %b64 = block {  # case
-            %x_114:i32 = load %i_3
-            %193:ptr<private, i32, read_write> = access %data, %x_114
-            store %193, 0i
+          $B64: {  # case
+            %258:i32 = load %i_3
+            %x_114:i32 = let %258
+            %260:ptr<private, i32, read_write> = access %data, %x_114
+            store %260, 0i
             exit_switch  # switch_1
           }
-          %b65 = block {  # case
-            %x_112:i32 = load %i_3
-            %195:ptr<private, i32, read_write> = access %data, %x_112
-            store %195, 1i
+          $B65: {  # case
+            %261:i32 = load %i_3
+            %x_112:i32 = let %261
+            %263:ptr<private, i32, read_write> = access %data, %x_112
+            store %263, 1i
             exit_switch  # switch_1
           }
-          %b66 = block {  # case
-            %x_110:i32 = load %i_3
-            %197:ptr<private, i32, read_write> = access %data, %x_110
-            store %197, 2i
+          $B66: {  # case
+            %264:i32 = load %i_3
+            %x_110:i32 = let %264
+            %266:ptr<private, i32, read_write> = access %data, %x_110
+            store %266, 2i
             exit_switch  # switch_1
           }
-          %b67 = block {  # case
-            %x_108:i32 = load %i_3
-            %199:ptr<private, i32, read_write> = access %data, %x_108
-            store %199, 3i
+          $B67: {  # case
+            %267:i32 = load %i_3
+            %x_108:i32 = let %267
+            %269:ptr<private, i32, read_write> = access %data, %x_108
+            store %269, 3i
             exit_switch  # switch_1
           }
-          %b68 = block {  # case
-            %x_106:i32 = load %i_3
-            %201:ptr<private, i32, read_write> = access %data, %x_106
-            store %201, 4i
+          $B68: {  # case
+            %270:i32 = load %i_3
+            %x_106:i32 = let %270
+            %272:ptr<private, i32, read_write> = access %data, %x_106
+            store %272, 4i
             exit_switch  # switch_1
           }
-          %b69 = block {  # case
+          $B69: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_126:i32 = load %i_3
-        %203:i32 = add %x_126, 1i
-        store %i_3, %203
-        continue %b58
+        %273:i32 = load %i_3
+        %x_126:i32 = let %273
+        %275:i32 = add %x_126, 1i
+        store %i_3, %275
+        continue  # -> $B58
       }
-      %b58 = block {  # continuing
-        %x_128:i32 = load %i_3
-        %205:bool = lt %x_128, 10i
-        %206:bool = eq %205, false
-        break_if %206 %b57
+      $B58: {  # continuing
+        %276:i32 = load %i_3
+        %x_128:i32 = let %276
+        %278:bool = lt %x_128, 10i
+        %279:bool = eq %278, false
+        break_if %279  # -> [t: exit_loop loop_6, f: $B57]
       }
     }
     store %j_1, 0i
-    loop [b: %b70, c: %b71] {  # loop_7
-      %b70 = block {  # body
-        %x_134:i32 = load %j_1
-        %208:bool = lt %x_134, 10i
-        if %208 [t: %b72, f: %b73] {  # if_24
-          %b72 = block {  # true
+    loop [b: $B70, c: $B71] {  # loop_7
+      $B70: {  # body
+        %280:i32 = load %j_1
+        %x_134:i32 = let %280
+        %282:bool = lt %x_134, 10i
+        if %282 [t: $B72, f: $B73] {  # if_24
+          $B72: {  # true
             exit_if  # if_24
           }
-          %b73 = block {  # false
+          $B73: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_137:i32 = load %j_1
-        %x_138:i32 = load %j_1
-        %211:ptr<private, i32, read_write> = access %data, %x_138
-        %x_140:i32 = load %211
-        %213:ptr<private, i32, read_write> = access %temp, %x_137
-        store %213, %x_140
-        continue %b71
+        %283:i32 = load %j_1
+        %x_137:i32 = let %283
+        %285:i32 = load %j_1
+        %x_138:i32 = let %285
+        %287:ptr<private, i32, read_write> = access %data, %x_138
+        %288:i32 = load %287
+        %x_140:i32 = let %288
+        %290:ptr<private, i32, read_write> = access %temp, %x_137
+        store %290, %x_140
+        continue  # -> $B71
       }
-      %b71 = block {  # continuing
-        %x_142:i32 = load %j_1
-        %215:i32 = add %x_142, 1i
-        store %j_1, %215
-        next_iteration %b70
+      $B71: {  # continuing
+        %291:i32 = load %j_1
+        %x_142:i32 = let %291
+        %293:i32 = add %x_142, 1i
+        store %j_1, %293
+        next_iteration  # -> $B70
       }
     }
-    %216:void = call %mergeSort_
-    %x_146:f32 = load_vector_element %gl_FragCoord, 1u
-    %218:i32 = convert %x_146
-    %219:bool = lt %218, 30i
-    if %219 [t: %b74, f: %b75] {  # if_25
-      %b74 = block {  # true
-        %220:ptr<private, i32, read_write> = access %data, 0i
-        %x_153:i32 = load %220
-        %222:f32 = convert %x_153
-        %223:f32 = div %222, 10.0f
-        %224:f32 = add 0.5f, %223
-        store %grey, %224
+    %294:void = call %mergeSort_
+    %295:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_146:f32 = let %295
+    %297:i32 = call %tint_f32_to_i32, %x_146
+    %298:bool = lt %297, 30i
+    if %298 [t: $B74, f: $B75] {  # if_25
+      $B74: {  # true
+        %299:ptr<private, i32, read_write> = access %data, 0i
+        %300:i32 = load %299
+        %x_153:i32 = let %300
+        %302:f32 = convert %x_153
+        %303:f32 = div %302, 10.0f
+        %304:f32 = add 0.5f, %303
+        store %grey, %304
         exit_if  # if_25
       }
-      %b75 = block {  # false
-        %x_158:f32 = load_vector_element %gl_FragCoord, 1u
-        %226:i32 = convert %x_158
-        %227:bool = lt %226, 60i
-        if %227 [t: %b76, f: %b77] {  # if_26
-          %b76 = block {  # true
-            %228:ptr<private, i32, read_write> = access %data, 1i
-            %x_165:i32 = load %228
-            %230:f32 = convert %x_165
-            %231:f32 = div %230, 10.0f
-            %232:f32 = add 0.5f, %231
-            store %grey, %232
+      $B75: {  # false
+        %305:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_158:f32 = let %305
+        %307:i32 = call %tint_f32_to_i32, %x_158
+        %308:bool = lt %307, 60i
+        if %308 [t: $B76, f: $B77] {  # if_26
+          $B76: {  # true
+            %309:ptr<private, i32, read_write> = access %data, 1i
+            %310:i32 = load %309
+            %x_165:i32 = let %310
+            %312:f32 = convert %x_165
+            %313:f32 = div %312, 10.0f
+            %314:f32 = add 0.5f, %313
+            store %grey, %314
             exit_if  # if_26
           }
-          %b77 = block {  # false
-            %x_170:f32 = load_vector_element %gl_FragCoord, 1u
-            %234:i32 = convert %x_170
-            %235:bool = lt %234, 90i
-            if %235 [t: %b78, f: %b79] {  # if_27
-              %b78 = block {  # true
-                %236:ptr<private, i32, read_write> = access %data, 2i
-                %x_177:i32 = load %236
-                %238:f32 = convert %x_177
-                %239:f32 = div %238, 10.0f
-                %240:f32 = add 0.5f, %239
-                store %grey, %240
+          $B77: {  # false
+            %315:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_170:f32 = let %315
+            %317:i32 = call %tint_f32_to_i32, %x_170
+            %318:bool = lt %317, 90i
+            if %318 [t: $B78, f: $B79] {  # if_27
+              $B78: {  # true
+                %319:ptr<private, i32, read_write> = access %data, 2i
+                %320:i32 = load %319
+                %x_177:i32 = let %320
+                %322:f32 = convert %x_177
+                %323:f32 = div %322, 10.0f
+                %324:f32 = add 0.5f, %323
+                store %grey, %324
                 exit_if  # if_27
               }
-              %b79 = block {  # false
-                %x_182:f32 = load_vector_element %gl_FragCoord, 1u
-                %242:i32 = convert %x_182
-                %243:bool = lt %242, 120i
-                if %243 [t: %b80, f: %b81] {  # if_28
-                  %b80 = block {  # true
-                    %244:ptr<private, i32, read_write> = access %data, 3i
-                    %x_189:i32 = load %244
-                    %246:f32 = convert %x_189
-                    %247:f32 = div %246, 10.0f
-                    %248:f32 = add 0.5f, %247
-                    store %grey, %248
+              $B79: {  # false
+                %325:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_182:f32 = let %325
+                %327:i32 = call %tint_f32_to_i32, %x_182
+                %328:bool = lt %327, 120i
+                if %328 [t: $B80, f: $B81] {  # if_28
+                  $B80: {  # true
+                    %329:ptr<private, i32, read_write> = access %data, 3i
+                    %330:i32 = load %329
+                    %x_189:i32 = let %330
+                    %332:f32 = convert %x_189
+                    %333:f32 = div %332, 10.0f
+                    %334:f32 = add 0.5f, %333
+                    store %grey, %334
                     exit_if  # if_28
                   }
-                  %b81 = block {  # false
-                    %x_194:f32 = load_vector_element %gl_FragCoord, 1u
-                    %250:i32 = convert %x_194
-                    %251:bool = lt %250, 150i
-                    if %251 [t: %b82, f: %b83] {  # if_29
-                      %b82 = block {  # true
-                        discard
+                  $B81: {  # false
+                    %335:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_194:f32 = let %335
+                    %337:i32 = call %tint_f32_to_i32, %x_194
+                    %338:bool = lt %337, 150i
+                    if %338 [t: $B82, f: $B83] {  # if_29
+                      $B82: {  # true
+                        store %continue_execution, false
                         exit_if  # if_29
                       }
-                      %b83 = block {  # false
-                        %x_201:f32 = load_vector_element %gl_FragCoord, 1u
-                        %253:i32 = convert %x_201
-                        %254:bool = lt %253, 180i
-                        if %254 [t: %b84, f: %b85] {  # if_30
-                          %b84 = block {  # true
-                            %255:ptr<private, i32, read_write> = access %data, 5i
-                            %x_208:i32 = load %255
-                            %257:f32 = convert %x_208
-                            %258:f32 = div %257, 10.0f
-                            %259:f32 = add 0.5f, %258
-                            store %grey, %259
+                      $B83: {  # false
+                        %339:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_201:f32 = let %339
+                        %341:i32 = call %tint_f32_to_i32, %x_201
+                        %342:bool = lt %341, 180i
+                        if %342 [t: $B84, f: $B85] {  # if_30
+                          $B84: {  # true
+                            %343:ptr<private, i32, read_write> = access %data, 5i
+                            %344:i32 = load %343
+                            %x_208:i32 = let %344
+                            %346:f32 = convert %x_208
+                            %347:f32 = div %346, 10.0f
+                            %348:f32 = add 0.5f, %347
+                            store %grey, %348
                             exit_if  # if_30
                           }
-                          %b85 = block {  # false
-                            %x_213:f32 = load_vector_element %gl_FragCoord, 1u
-                            %261:i32 = convert %x_213
-                            %262:bool = lt %261, 210i
-                            if %262 [t: %b86, f: %b87] {  # if_31
-                              %b86 = block {  # true
-                                %263:ptr<private, i32, read_write> = access %data, 6i
-                                %x_220:i32 = load %263
-                                %265:f32 = convert %x_220
-                                %266:f32 = div %265, 10.0f
-                                %267:f32 = add 0.5f, %266
-                                store %grey, %267
+                          $B85: {  # false
+                            %349:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_213:f32 = let %349
+                            %351:i32 = call %tint_f32_to_i32, %x_213
+                            %352:bool = lt %351, 210i
+                            if %352 [t: $B86, f: $B87] {  # if_31
+                              $B86: {  # true
+                                %353:ptr<private, i32, read_write> = access %data, 6i
+                                %354:i32 = load %353
+                                %x_220:i32 = let %354
+                                %356:f32 = convert %x_220
+                                %357:f32 = div %356, 10.0f
+                                %358:f32 = add 0.5f, %357
+                                store %grey, %358
                                 exit_if  # if_31
                               }
-                              %b87 = block {  # false
-                                %x_225:f32 = load_vector_element %gl_FragCoord, 1u
-                                %269:i32 = convert %x_225
-                                %270:bool = lt %269, 240i
-                                if %270 [t: %b88, f: %b89] {  # if_32
-                                  %b88 = block {  # true
-                                    %271:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_232:i32 = load %271
-                                    %273:f32 = convert %x_232
-                                    %274:f32 = div %273, 10.0f
-                                    %275:f32 = add 0.5f, %274
-                                    store %grey, %275
+                              $B87: {  # false
+                                %359:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_225:f32 = let %359
+                                %361:i32 = call %tint_f32_to_i32, %x_225
+                                %362:bool = lt %361, 240i
+                                if %362 [t: $B88, f: $B89] {  # if_32
+                                  $B88: {  # true
+                                    %363:ptr<private, i32, read_write> = access %data, 7i
+                                    %364:i32 = load %363
+                                    %x_232:i32 = let %364
+                                    %366:f32 = convert %x_232
+                                    %367:f32 = div %366, 10.0f
+                                    %368:f32 = add 0.5f, %367
+                                    store %grey, %368
                                     exit_if  # if_32
                                   }
-                                  %b89 = block {  # false
-                                    %x_237:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %277:i32 = convert %x_237
-                                    %278:bool = lt %277, 270i
-                                    if %278 [t: %b90, f: %b91] {  # if_33
-                                      %b90 = block {  # true
-                                        %279:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_244:i32 = load %279
-                                        %281:f32 = convert %x_244
-                                        %282:f32 = div %281, 10.0f
-                                        %283:f32 = add 0.5f, %282
-                                        store %grey, %283
+                                  $B89: {  # false
+                                    %369:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_237:f32 = let %369
+                                    %371:i32 = call %tint_f32_to_i32, %x_237
+                                    %372:bool = lt %371, 270i
+                                    if %372 [t: $B90, f: $B91] {  # if_33
+                                      $B90: {  # true
+                                        %373:ptr<private, i32, read_write> = access %data, 8i
+                                        %374:i32 = load %373
+                                        %x_244:i32 = let %374
+                                        %376:f32 = convert %x_244
+                                        %377:f32 = div %376, 10.0f
+                                        %378:f32 = add 0.5f, %377
+                                        store %grey, %378
                                         exit_if  # if_33
                                       }
-                                      %b91 = block {  # false
-                                        discard
+                                      $B91: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_33
                                       }
                                     }
@@ -719,23 +813,42 @@
         exit_if  # if_25
       }
     }
-    %x_248:f32 = load %grey
-    %x_249:vec3<f32> = construct %x_248, %x_248, %x_248
-    %286:f32 = access %x_249, 0u
-    %287:f32 = access %x_249, 1u
-    %288:f32 = access %x_249, 2u
-    %289:vec4<f32> = construct %286, %287, %288, 1.0f
-    store %x_GLF_color, %289
+    %379:f32 = load %grey
+    %x_248:f32 = let %379
+    %381:vec3<f32> = construct %x_248, %x_248, %x_248
+    %x_249:vec3<f32> = let %381
+    %383:f32 = access %x_249, 0u
+    %384:f32 = access %x_249, 1u
+    %385:f32 = access %x_249, 2u
+    %386:vec4<f32> = construct %383, %384, %385, 1.0f
+    store %x_GLF_color, %386
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b92 {
-  %b92 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B92: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %292:void = call %main_1
-    %293:vec4<f32> = load %x_GLF_color
-    %294:main_out = construct %293
-    ret %294
+    %389:void = call %main_1
+    %390:vec4<f32> = load %x_GLF_color
+    %391:main_out = construct %390
+    %392:bool = load %continue_execution
+    %393:bool = eq %392, false
+    if %393 [t: $B93] {  # if_34
+      $B93: {  # true
+        terminate_invocation
+      }
+    }
+    ret %391
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B94: {
+    %395:i32 = convert %value
+    %396:bool = gte %value, -2147483648.0f
+    %397:i32 = select -2147483648i, %395, %396
+    %398:bool = lte %value, 2147483520.0f
+    %399:i32 = select 2147483647i, %397, %398
+    ret %399
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.msl
index deefa9c..043faac 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,29 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_283:ptr<function, i32, read_write> = var
         %x_284:ptr<function, i32, read_write> = var
         %x_285:ptr<function, i32, read_write> = var
@@ -49,323 +50,333 @@
         %x_364:ptr<function, i32, read_write> = var
         %x_363:ptr<function, i32, read_write> = var
         %x_365:ptr<function, i32, read_write> = var
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
-            continue %b4
+          $B6: {  # false
+            continue  # -> $B4
           }
         }
-        %36:i32 = load %i
-        %37:i32 = load %mid
-        %38:bool = lte %36, %37
-        %39:i32 = load %j
-        %40:i32 = load %to
-        %41:bool = lte %39, %40
-        %42:bool = and %38, %41
-        if %42 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        %37:i32 = load %i
+        %38:i32 = load %mid
+        %39:bool = lte %37, %38
+        %40:i32 = load %j
+        %41:i32 = load %to
+        %42:bool = lte %40, %41
+        %43:bool = and %39, %42
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:i32 = load %i
-        %44:ptr<private, i32, read_write> = access %data, %43
-        %45:i32 = load %44
-        %46:i32 = load %j
-        %47:ptr<private, i32, read_write> = access %data, %46
-        %48:i32 = load %47
-        %x_278:bool = lt %45, %48
-        if %x_278 [t: %b9, f: %b10] {  # if_3
-          %b9 = block {  # true
-            %50:i32 = load %k
-            store %x_283, %50
-            %51:i32 = load %x_283
-            store %x_285, %51
+        %44:i32 = load %i
+        %45:ptr<private, i32, read_write> = access %data, %44
+        %46:i32 = load %45
+        %47:i32 = load %j
+        %48:ptr<private, i32, read_write> = access %data, %47
+        %49:i32 = load %48
+        %50:bool = lt %46, %49
+        %x_278:bool = let %50
+        if %x_278 [t: $B9, f: $B10] {  # if_3
+          $B9: {  # true
+            %52:i32 = load %k
+            store %x_283, %52
+            %53:i32 = load %x_283
+            store %x_285, %53
             exit_if  # if_3
           }
-          %b10 = block {  # false
+          $B10: {  # false
             store %x_284, 0i
-            %52:i32 = load %x_284
-            store %x_285, %52
+            %54:i32 = load %x_284
+            store %x_285, %54
             exit_if  # if_3
           }
         }
-        %53:i32 = load %x_285
-        %x_286:i32 = add %53, 1i
-        if %x_278 [t: %b11] {  # if_4
-          %b11 = block {  # true
+        %55:i32 = load %x_285
+        %56:i32 = add %55, 1i
+        %x_286:i32 = let %56
+        if %x_278 [t: $B11] {  # if_4
+          $B11: {  # true
             store %k, %x_286
-            %55:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %56:f32 = load_vector_element %55, 0u
-            %57:bool = lte 1.0f, %56
-            %58:bool = eq %57, false
-            if %58 [t: %b12, f: %b13] {  # if_5
-              %b12 = block {  # true
+            %58:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %59:f32 = load_vector_element %58, 0u
+            %60:bool = lte 1.0f, %59
+            %61:bool = eq %60, false
+            if %61 [t: $B12, f: $B13] {  # if_5
+              $B12: {  # true
                 exit_if  # if_5
               }
-              %b13 = block {  # false
-                continue %b4
+              $B13: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_4
           }
         }
-        %59:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %60:f32 = load_vector_element %59, 1u
-        %61:bool = gte %60, 0.0f
-        if %61 [t: %b14, f: %b15] {  # if_6
-          %b14 = block {  # true
+        %62:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %63:f32 = load_vector_element %62, 1u
+        %64:bool = gte %63, 0.0f
+        if %64 [t: $B14, f: $B15] {  # if_6
+          $B14: {  # true
             exit_if  # if_6
           }
-          %b15 = block {  # false
-            continue %b4
+          $B15: {  # false
+            continue  # -> $B4
           }
         }
         %x_298:i32 = let 0i
-        if %x_278 [t: %b16, f: %b17] {  # if_7
-          %b16 = block {  # true
-            %63:i32 = load %i
-            store %x_303, %63
-            %64:i32 = load %x_303
-            store %x_305, %64
+        if %x_278 [t: $B16, f: $B17] {  # if_7
+          $B16: {  # true
+            %66:i32 = load %i
+            store %x_303, %66
+            %67:i32 = load %x_303
+            store %x_305, %67
             exit_if  # if_7
           }
-          %b17 = block {  # false
+          $B17: {  # false
             store %x_304, 0i
-            %65:i32 = load %x_304
-            store %x_305, %65
+            %68:i32 = load %x_304
+            store %x_305, %68
             exit_if  # if_7
           }
         }
-        %66:i32 = load %x_305
-        %x_307:i32 = select %x_298, %66, %x_278
-        if %x_278 [t: %b18] {  # if_8
-          %b18 = block {  # true
-            %68:i32 = add %x_307, 1i
-            store %i, %68
+        %69:i32 = load %x_305
+        %70:i32 = select %x_298, %69, %x_278
+        %x_307:i32 = let %70
+        if %x_278 [t: $B18] {  # if_8
+          $B18: {  # true
+            %72:i32 = add %x_307, 1i
+            store %i, %72
             exit_if  # if_8
           }
         }
         %x_313:i32 = let 0i
-        if %x_278 [t: %b19, f: %b20] {  # if_9
-          %b19 = block {  # true
-            %70:ptr<private, i32, read_write> = access %data, %x_307
-            %71:i32 = load %70
-            store %x_318, %71
-            %72:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_320:f32 = load_vector_element %72, 1u
-            %74:i32 = load %x_318
-            store %x_326, %74
-            %75:bool = lte 0.0f, %x_320
-            %76:bool = eq %75, false
-            if %76 [t: %b21] {  # if_10
-              %b21 = block {  # true
-                continue %b4
+        if %x_278 [t: $B19, f: $B20] {  # if_9
+          $B19: {  # true
+            %74:ptr<private, i32, read_write> = access %data, %x_307
+            %75:i32 = load %74
+            store %x_318, %75
+            %76:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %77:f32 = load_vector_element %76, 1u
+            %x_320:f32 = let %77
+            %79:i32 = load %x_318
+            store %x_326, %79
+            %80:bool = lte 0.0f, %x_320
+            %81:bool = eq %80, false
+            if %81 [t: $B21] {  # if_10
+              $B21: {  # true
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
-          %b20 = block {  # false
+          $B20: {  # false
             store %x_322, 0i
-            %77:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_324:f32 = load_vector_element %77, 1u
-            %79:i32 = load %x_322
-            store %x_326, %79
-            %80:bool = lt %x_324, 0.0f
-            %81:bool = eq %80, false
-            if %81 [t: %b22, f: %b23] {  # if_11
-              %b22 = block {  # true
+            %82:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %83:f32 = load_vector_element %82, 1u
+            %x_324:f32 = let %83
+            %85:i32 = load %x_322
+            store %x_326, %85
+            %86:bool = lt %x_324, 0.0f
+            %87:bool = eq %86, false
+            if %87 [t: $B22, f: $B23] {  # if_11
+              $B22: {  # true
                 exit_if  # if_11
               }
-              %b23 = block {  # false
-                continue %b4
+              $B23: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
         }
-        if %x_278 [t: %b24] {  # if_12
-          %b24 = block {  # true
-            %82:i32 = load %x_285
-            %83:ptr<private, i32, read_write> = access %temp, %82
-            %84:i32 = load %x_326
-            %85:i32 = select %x_313, %84, %x_278
-            store %83, %85
+        if %x_278 [t: $B24] {  # if_12
+          $B24: {  # true
+            %88:i32 = load %x_285
+            %89:ptr<private, i32, read_write> = access %temp, %88
+            %90:ptr<private, i32, read_write> = let %89
+            %91:i32 = load %x_326
+            %92:i32 = select %x_313, %91, %x_278
+            store %90, %92
             exit_if  # if_12
           }
         }
-        if %x_278 [t: %b25, f: %b26] {  # if_13
-          %b25 = block {  # true
+        if %x_278 [t: $B25, f: $B26] {  # if_13
+          $B25: {  # true
             store %x_337, 0i
-            %86:i32 = load %x_337
-            store %x_338, %86
+            %93:i32 = load %x_337
+            store %x_338, %93
             exit_if  # if_13
           }
-          %b26 = block {  # false
-            %87:i32 = load %k
-            store %x_336, %87
-            %88:i32 = load %x_336
-            store %x_338, %88
+          $B26: {  # false
+            %94:i32 = load %k
+            store %x_336, %94
+            %95:i32 = load %x_336
+            store %x_338, %95
             exit_if  # if_13
           }
         }
-        if %x_278 [t: %b27, f: %b28] {  # if_14
-          %b27 = block {  # true
+        if %x_278 [t: $B27, f: $B28] {  # if_14
+          $B27: {  # true
             exit_if  # if_14
           }
-          %b28 = block {  # false
-            %89:i32 = load %x_338
-            %90:i32 = add %89, 1i
-            store %k, %90
+          $B28: {  # false
+            %96:i32 = load %x_338
+            %97:i32 = add %96, 1i
+            store %k, %97
             exit_if  # if_14
           }
         }
-        %91:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %92:f32 = load_vector_element %91, 0u
-        %93:bool = lte 1.0f, %92
-        %94:bool = eq %93, false
-        if %94 [t: %b29, f: %b30] {  # if_15
-          %b29 = block {  # true
+        %98:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %99:f32 = load_vector_element %98, 0u
+        %100:bool = lte 1.0f, %99
+        %101:bool = eq %100, false
+        if %101 [t: $B29, f: $B30] {  # if_15
+          $B29: {  # true
             exit_if  # if_15
           }
-          %b30 = block {  # false
-            continue %b4
+          $B30: {  # false
+            continue  # -> $B4
           }
         }
-        if %x_278 [t: %b31, f: %b32] {  # if_16
-          %b31 = block {  # true
+        if %x_278 [t: $B31, f: $B32] {  # if_16
+          $B31: {  # true
             store %x_350, 0i
-            %95:i32 = load %x_350
-            store %x_351, %95
+            %102:i32 = load %x_350
+            store %x_351, %102
             exit_if  # if_16
           }
-          %b32 = block {  # false
-            %96:i32 = load %j
-            store %x_349, %96
-            %97:i32 = load %x_349
-            store %x_351, %97
+          $B32: {  # false
+            %103:i32 = load %j
+            store %x_349, %103
+            %104:i32 = load %x_349
+            store %x_351, %104
             exit_if  # if_16
           }
         }
-        %98:i32 = load %x_351
-        %x_355:i32 = select %98, 0i, %x_278
-        if %x_278 [t: %b33, f: %b34] {  # if_17
-          %b33 = block {  # true
+        %105:i32 = load %x_351
+        %106:i32 = select %105, 0i, %x_278
+        %x_355:i32 = let %106
+        if %x_278 [t: $B33, f: $B34] {  # if_17
+          $B33: {  # true
             exit_if  # if_17
           }
-          %b34 = block {  # false
-            %100:i32 = add %x_355, 1i
-            store %j, %100
+          $B34: {  # false
+            %108:i32 = add %x_355, 1i
+            store %j, %108
             exit_if  # if_17
           }
         }
-        if %x_278 [t: %b35, f: %b36] {  # if_18
-          %b35 = block {  # true
+        if %x_278 [t: $B35, f: $B36] {  # if_18
+          $B35: {  # true
             store %x_364, 0i
-            %101:i32 = load %x_364
-            store %x_365, %101
+            %109:i32 = load %x_364
+            store %x_365, %109
             exit_if  # if_18
           }
-          %b36 = block {  # false
-            %102:ptr<private, i32, read_write> = access %data, %x_355
-            %103:i32 = load %102
-            store %x_363, %103
-            %104:i32 = load %x_363
-            store %x_365, %104
+          $B36: {  # false
+            %110:ptr<private, i32, read_write> = access %data, %x_355
+            %111:i32 = load %110
+            store %x_363, %111
+            %112:i32 = load %x_363
+            store %x_365, %112
             exit_if  # if_18
           }
         }
-        if %x_278 [t: %b37, f: %b38] {  # if_19
-          %b37 = block {  # true
+        if %x_278 [t: $B37, f: $B38] {  # if_19
+          $B37: {  # true
             exit_if  # if_19
           }
-          %b38 = block {  # false
-            %105:i32 = load %x_338
-            %106:ptr<private, i32, read_write> = access %temp, %105
-            %107:i32 = load %x_365
-            store %106, %107
+          $B38: {  # false
+            %113:i32 = load %x_338
+            %114:ptr<private, i32, read_write> = access %temp, %113
+            %115:i32 = load %x_365
+            store %114, %115
             exit_if  # if_19
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b39, c: %b40] {  # loop_2
-      %b39 = block {  # body
-        %108:i32 = load %i
-        %109:bool = lt %108, 10i
-        %110:i32 = load %i
-        %111:i32 = load %mid
-        %112:bool = lte %110, %111
-        %113:bool = and %109, %112
-        if %113 [t: %b41, f: %b42] {  # if_20
-          %b41 = block {  # true
+    loop [b: $B39, c: $B40] {  # loop_2
+      $B39: {  # body
+        %116:i32 = load %i
+        %117:bool = lt %116, 10i
+        %118:i32 = load %i
+        %119:i32 = load %mid
+        %120:bool = lte %118, %119
+        %121:bool = and %117, %120
+        if %121 [t: $B41, f: $B42] {  # if_20
+          $B41: {  # true
             exit_if  # if_20
           }
-          %b42 = block {  # false
+          $B42: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_381:i32 = load %k
-        %115:i32 = load %k
-        %116:i32 = add %115, 1i
-        store %k, %116
-        %x_383:i32 = load %i
-        %118:i32 = load %i
-        %119:i32 = add %118, 1i
-        store %i, %119
-        %120:ptr<private, i32, read_write> = access %temp, %x_381
-        %121:ptr<private, i32, read_write> = access %data, %x_383
-        %122:i32 = load %121
-        store %120, %122
-        continue %b40
+        %122:i32 = load %k
+        %x_381:i32 = let %122
+        %124:i32 = load %k
+        %125:i32 = add %124, 1i
+        store %k, %125
+        %126:i32 = load %i
+        %x_383:i32 = let %126
+        %128:i32 = load %i
+        %129:i32 = add %128, 1i
+        store %i, %129
+        %130:ptr<private, i32, read_write> = access %temp, %x_381
+        %131:ptr<private, i32, read_write> = access %data, %x_383
+        %132:i32 = load %131
+        store %130, %132
+        continue  # -> $B40
       }
-      %b40 = block {  # continuing
-        next_iteration %b39
+      $B40: {  # continuing
+        next_iteration  # -> $B39
       }
     }
-    %123:i32 = load %f
-    store %i_1, %123
-    loop [b: %b43, c: %b44] {  # loop_3
-      %b43 = block {  # body
-        %124:i32 = load %i_1
-        %125:i32 = load %to
-        %126:bool = lte %124, %125
-        if %126 [t: %b45, f: %b46] {  # if_21
-          %b45 = block {  # true
+    %133:i32 = load %f
+    store %i_1, %133
+    loop [b: $B43, c: $B44] {  # loop_3
+      $B43: {  # body
+        %134:i32 = load %i_1
+        %135:i32 = load %to
+        %136:bool = lte %134, %135
+        if %136 [t: $B45, f: $B46] {  # if_21
+          $B45: {  # true
             exit_if  # if_21
           }
-          %b46 = block {  # false
+          $B46: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_397:i32 = load %i_1
-        %128:ptr<private, i32, read_write> = access %data, %x_397
-        %129:i32 = load %i_1
-        %130:ptr<private, i32, read_write> = access %temp, %129
-        %131:i32 = load %130
-        store %128, %131
-        continue %b44
+        %137:i32 = load %i_1
+        %x_397:i32 = let %137
+        %139:ptr<private, i32, read_write> = access %data, %x_397
+        %140:i32 = load %i_1
+        %141:ptr<private, i32, read_write> = access %temp, %140
+        %142:i32 = load %141
+        store %139, %142
+        continue  # -> $B44
       }
-      %b44 = block {  # continuing
-        %132:i32 = load %i_1
-        %133:i32 = add %132, 1i
-        store %i_1, %133
-        next_iteration %b43
+      $B44: {  # continuing
+        %143:i32 = load %i_1
+        %144:i32 = add %143, 1i
+        store %i_1, %144
+        next_iteration  # -> $B43
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b47 {
-  %b47 = block {
+%mergeSort_ = func():void {
+  $B47: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -379,319 +390,332 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b48, c: %b49] {  # loop_4
-      %b48 = block {  # body
-        %145:i32 = load %m
-        %146:i32 = load %high
-        %147:bool = lte %145, %146
-        if %147 [t: %b50, f: %b51] {  # if_22
-          %b50 = block {  # true
+    loop [b: $B48, c: $B49] {  # loop_4
+      $B48: {  # body
+        %156:i32 = load %m
+        %157:i32 = load %high
+        %158:bool = lte %156, %157
+        if %158 [t: $B50, f: $B51] {  # if_22
+          $B50: {  # true
             exit_if  # if_22
           }
-          %b51 = block {  # false
+          $B51: {  # false
             exit_loop  # loop_4
           }
         }
-        %148:i32 = load %low
-        store %i_2, %148
-        loop [b: %b52, c: %b53] {  # loop_5
-          %b52 = block {  # body
-            %149:i32 = load %i_2
-            %150:i32 = load %high
-            %151:bool = lt %149, %150
-            if %151 [t: %b54, f: %b55] {  # if_23
-              %b54 = block {  # true
+        %159:i32 = load %low
+        store %i_2, %159
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %160:i32 = load %i_2
+            %161:i32 = load %high
+            %162:bool = lt %160, %161
+            if %162 [t: $B54, f: $B55] {  # if_23
+              $B54: {  # true
                 exit_if  # if_23
               }
-              %b55 = block {  # false
+              $B55: {  # false
                 exit_loop  # loop_5
               }
             }
-            %152:i32 = load %i_2
-            store %f_1, %152
-            %153:i32 = load %i_2
-            %154:i32 = load %m
-            %155:i32 = add %153, %154
-            %156:i32 = sub %155, 1i
-            store %mid_1, %156
-            %157:i32 = load %i_2
-            %158:i32 = load %m
-            %159:i32 = mul 2i, %158
-            %160:i32 = add %157, %159
-            %161:i32 = sub %160, 1i
-            %162:i32 = load %high
-            %163:i32 = min %161, %162
-            store %to_1, %163
-            %164:i32 = load %f_1
-            store %param, %164
-            %165:i32 = load %mid_1
-            store %param_1, %165
-            %166:i32 = load %to_1
-            store %param_2, %166
-            %167:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b53
-          }
-          %b53 = block {  # continuing
+            %163:i32 = load %i_2
+            store %f_1, %163
+            %164:i32 = load %i_2
+            %165:i32 = load %m
+            %166:i32 = add %164, %165
+            %167:i32 = sub %166, 1i
+            store %mid_1, %167
             %168:i32 = load %i_2
             %169:i32 = load %m
             %170:i32 = mul 2i, %169
             %171:i32 = add %168, %170
-            store %i_2, %171
-            next_iteration %b52
+            %172:i32 = sub %171, 1i
+            %173:i32 = load %high
+            %174:i32 = min %172, %173
+            store %to_1, %174
+            %175:i32 = load %f_1
+            store %param, %175
+            %176:i32 = load %mid_1
+            store %param_1, %176
+            %177:i32 = load %to_1
+            store %param_2, %177
+            %178:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B53
+          }
+          $B53: {  # continuing
+            %179:i32 = load %i_2
+            %180:i32 = load %m
+            %181:i32 = mul 2i, %180
+            %182:i32 = add %179, %181
+            store %i_2, %182
+            next_iteration  # -> $B52
           }
         }
-        continue %b49
+        continue  # -> $B49
       }
-      %b49 = block {  # continuing
-        %172:i32 = load %m
-        %173:i32 = mul 2i, %172
-        store %m, %173
-        next_iteration %b48
+      $B49: {  # continuing
+        %183:i32 = load %m
+        %184:i32 = mul 2i, %183
+        store %m, %184
+        next_iteration  # -> $B48
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b56 {
-  %b56 = block {
+%main_1 = func():void {
+  $B56: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %178:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %179:f32 = load_vector_element %178, 0u
-    %180:i32 = convert %179
-    store %i_3, %180
-    loop [b: %b57, c: %b58] {  # loop_6
-      %b57 = block {  # body
-        %x_94:i32 = load %i_3
-        switch %x_94 [c: (9i, %b59), c: (8i, %b60), c: (7i, %b61), c: (6i, %b62), c: (5i, %b63), c: (4i, %b64), c: (3i, %b65), c: (2i, %b66), c: (1i, %b67), c: (0i, %b68), c: (default, %b69)] {  # switch_1
-          %b59 = block {  # case
-            %x_124:i32 = load %i_3
-            %183:ptr<private, i32, read_write> = access %data, %x_124
-            store %183, -5i
+    %189:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %190:f32 = load_vector_element %189, 0u
+    %191:i32 = call %tint_f32_to_i32, %190
+    store %i_3, %191
+    loop [b: $B57, c: $B58] {  # loop_6
+      $B57: {  # body
+        %193:i32 = load %i_3
+        %x_94:i32 = let %193
+        switch %x_94 [c: (9i, $B59), c: (8i, $B60), c: (7i, $B61), c: (6i, $B62), c: (5i, $B63), c: (4i, $B64), c: (3i, $B65), c: (2i, $B66), c: (1i, $B67), c: (0i, $B68), c: (default, $B69)] {  # switch_1
+          $B59: {  # case
+            %195:i32 = load %i_3
+            %x_124:i32 = let %195
+            %197:ptr<private, i32, read_write> = access %data, %x_124
+            store %197, -5i
             exit_switch  # switch_1
           }
-          %b60 = block {  # case
-            %x_122:i32 = load %i_3
-            %185:ptr<private, i32, read_write> = access %data, %x_122
-            store %185, -4i
+          $B60: {  # case
+            %198:i32 = load %i_3
+            %x_122:i32 = let %198
+            %200:ptr<private, i32, read_write> = access %data, %x_122
+            store %200, -4i
             exit_switch  # switch_1
           }
-          %b61 = block {  # case
-            %x_120:i32 = load %i_3
-            %187:ptr<private, i32, read_write> = access %data, %x_120
-            store %187, -3i
+          $B61: {  # case
+            %201:i32 = load %i_3
+            %x_120:i32 = let %201
+            %203:ptr<private, i32, read_write> = access %data, %x_120
+            store %203, -3i
             exit_switch  # switch_1
           }
-          %b62 = block {  # case
-            %x_118:i32 = load %i_3
-            %189:ptr<private, i32, read_write> = access %data, %x_118
-            store %189, -2i
+          $B62: {  # case
+            %204:i32 = load %i_3
+            %x_118:i32 = let %204
+            %206:ptr<private, i32, read_write> = access %data, %x_118
+            store %206, -2i
             exit_switch  # switch_1
           }
-          %b63 = block {  # case
-            %x_116:i32 = load %i_3
-            %191:ptr<private, i32, read_write> = access %data, %x_116
-            store %191, -1i
+          $B63: {  # case
+            %207:i32 = load %i_3
+            %x_116:i32 = let %207
+            %209:ptr<private, i32, read_write> = access %data, %x_116
+            store %209, -1i
             exit_switch  # switch_1
           }
-          %b64 = block {  # case
-            %x_114:i32 = load %i_3
-            %193:ptr<private, i32, read_write> = access %data, %x_114
-            store %193, 0i
+          $B64: {  # case
+            %210:i32 = load %i_3
+            %x_114:i32 = let %210
+            %212:ptr<private, i32, read_write> = access %data, %x_114
+            store %212, 0i
             exit_switch  # switch_1
           }
-          %b65 = block {  # case
-            %x_112:i32 = load %i_3
-            %195:ptr<private, i32, read_write> = access %data, %x_112
-            store %195, 1i
+          $B65: {  # case
+            %213:i32 = load %i_3
+            %x_112:i32 = let %213
+            %215:ptr<private, i32, read_write> = access %data, %x_112
+            store %215, 1i
             exit_switch  # switch_1
           }
-          %b66 = block {  # case
-            %x_110:i32 = load %i_3
-            %197:ptr<private, i32, read_write> = access %data, %x_110
-            store %197, 2i
+          $B66: {  # case
+            %216:i32 = load %i_3
+            %x_110:i32 = let %216
+            %218:ptr<private, i32, read_write> = access %data, %x_110
+            store %218, 2i
             exit_switch  # switch_1
           }
-          %b67 = block {  # case
-            %x_108:i32 = load %i_3
-            %199:ptr<private, i32, read_write> = access %data, %x_108
-            store %199, 3i
+          $B67: {  # case
+            %219:i32 = load %i_3
+            %x_108:i32 = let %219
+            %221:ptr<private, i32, read_write> = access %data, %x_108
+            store %221, 3i
             exit_switch  # switch_1
           }
-          %b68 = block {  # case
-            %x_106:i32 = load %i_3
-            %201:ptr<private, i32, read_write> = access %data, %x_106
-            store %201, 4i
+          $B68: {  # case
+            %222:i32 = load %i_3
+            %x_106:i32 = let %222
+            %224:ptr<private, i32, read_write> = access %data, %x_106
+            store %224, 4i
             exit_switch  # switch_1
           }
-          %b69 = block {  # case
+          $B69: {  # case
             exit_switch  # switch_1
           }
         }
-        %202:i32 = load %i_3
-        %203:i32 = add %202, 1i
-        store %i_3, %203
-        continue %b58
+        %225:i32 = load %i_3
+        %226:i32 = add %225, 1i
+        store %i_3, %226
+        continue  # -> $B58
       }
-      %b58 = block {  # continuing
-        %x_128:i32 = load %i_3
-        %205:bool = lt %x_128, 10i
-        %206:bool = eq %205, false
-        break_if %206 %b57
+      $B58: {  # continuing
+        %227:i32 = load %i_3
+        %x_128:i32 = let %227
+        %229:bool = lt %x_128, 10i
+        %230:bool = eq %229, false
+        break_if %230  # -> [t: exit_loop loop_6, f: $B57]
       }
     }
     store %j_1, 0i
-    loop [b: %b70, c: %b71] {  # loop_7
-      %b70 = block {  # body
-        %207:i32 = load %j_1
-        %208:bool = lt %207, 10i
-        if %208 [t: %b72, f: %b73] {  # if_24
-          %b72 = block {  # true
+    loop [b: $B70, c: $B71] {  # loop_7
+      $B70: {  # body
+        %231:i32 = load %j_1
+        %232:bool = lt %231, 10i
+        if %232 [t: $B72, f: $B73] {  # if_24
+          $B72: {  # true
             exit_if  # if_24
           }
-          %b73 = block {  # false
+          $B73: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_137:i32 = load %j_1
-        %210:ptr<private, i32, read_write> = access %temp, %x_137
-        %211:i32 = load %j_1
-        %212:ptr<private, i32, read_write> = access %data, %211
-        %213:i32 = load %212
-        store %210, %213
-        continue %b71
+        %233:i32 = load %j_1
+        %x_137:i32 = let %233
+        %235:ptr<private, i32, read_write> = access %temp, %x_137
+        %236:i32 = load %j_1
+        %237:ptr<private, i32, read_write> = access %data, %236
+        %238:i32 = load %237
+        store %235, %238
+        continue  # -> $B71
       }
-      %b71 = block {  # continuing
-        %214:i32 = load %j_1
-        %215:i32 = add %214, 1i
-        store %j_1, %215
-        next_iteration %b70
+      $B71: {  # continuing
+        %239:i32 = load %j_1
+        %240:i32 = add %239, 1i
+        store %j_1, %240
+        next_iteration  # -> $B70
       }
     }
-    %216:void = call %mergeSort_
-    %217:f32 = load_vector_element %gl_FragCoord, 1u
-    %218:i32 = convert %217
-    %219:bool = lt %218, 30i
-    if %219 [t: %b74, f: %b75] {  # if_25
-      %b74 = block {  # true
-        %220:ptr<private, i32, read_write> = access %data, 0i
-        %221:i32 = load %220
-        %222:f32 = convert %221
-        %223:f32 = div %222, 10.0f
-        %224:f32 = add 0.5f, %223
-        store %grey, %224
+    %241:void = call %mergeSort_
+    %242:f32 = load_vector_element %gl_FragCoord, 1u
+    %243:i32 = call %tint_f32_to_i32, %242
+    %244:bool = lt %243, 30i
+    if %244 [t: $B74, f: $B75] {  # if_25
+      $B74: {  # true
+        %245:ptr<private, i32, read_write> = access %data, 0i
+        %246:i32 = load %245
+        %247:f32 = convert %246
+        %248:f32 = div %247, 10.0f
+        %249:f32 = add 0.5f, %248
+        store %grey, %249
         exit_if  # if_25
       }
-      %b75 = block {  # false
-        %225:f32 = load_vector_element %gl_FragCoord, 1u
-        %226:i32 = convert %225
-        %227:bool = lt %226, 60i
-        if %227 [t: %b76, f: %b77] {  # if_26
-          %b76 = block {  # true
-            %228:ptr<private, i32, read_write> = access %data, 1i
-            %229:i32 = load %228
-            %230:f32 = convert %229
-            %231:f32 = div %230, 10.0f
-            %232:f32 = add 0.5f, %231
-            store %grey, %232
+      $B75: {  # false
+        %250:f32 = load_vector_element %gl_FragCoord, 1u
+        %251:i32 = call %tint_f32_to_i32, %250
+        %252:bool = lt %251, 60i
+        if %252 [t: $B76, f: $B77] {  # if_26
+          $B76: {  # true
+            %253:ptr<private, i32, read_write> = access %data, 1i
+            %254:i32 = load %253
+            %255:f32 = convert %254
+            %256:f32 = div %255, 10.0f
+            %257:f32 = add 0.5f, %256
+            store %grey, %257
             exit_if  # if_26
           }
-          %b77 = block {  # false
-            %233:f32 = load_vector_element %gl_FragCoord, 1u
-            %234:i32 = convert %233
-            %235:bool = lt %234, 90i
-            if %235 [t: %b78, f: %b79] {  # if_27
-              %b78 = block {  # true
-                %236:ptr<private, i32, read_write> = access %data, 2i
-                %237:i32 = load %236
-                %238:f32 = convert %237
-                %239:f32 = div %238, 10.0f
-                %240:f32 = add 0.5f, %239
-                store %grey, %240
+          $B77: {  # false
+            %258:f32 = load_vector_element %gl_FragCoord, 1u
+            %259:i32 = call %tint_f32_to_i32, %258
+            %260:bool = lt %259, 90i
+            if %260 [t: $B78, f: $B79] {  # if_27
+              $B78: {  # true
+                %261:ptr<private, i32, read_write> = access %data, 2i
+                %262:i32 = load %261
+                %263:f32 = convert %262
+                %264:f32 = div %263, 10.0f
+                %265:f32 = add 0.5f, %264
+                store %grey, %265
                 exit_if  # if_27
               }
-              %b79 = block {  # false
-                %241:f32 = load_vector_element %gl_FragCoord, 1u
-                %242:i32 = convert %241
-                %243:bool = lt %242, 120i
-                if %243 [t: %b80, f: %b81] {  # if_28
-                  %b80 = block {  # true
-                    %244:ptr<private, i32, read_write> = access %data, 3i
-                    %245:i32 = load %244
-                    %246:f32 = convert %245
-                    %247:f32 = div %246, 10.0f
-                    %248:f32 = add 0.5f, %247
-                    store %grey, %248
+              $B79: {  # false
+                %266:f32 = load_vector_element %gl_FragCoord, 1u
+                %267:i32 = call %tint_f32_to_i32, %266
+                %268:bool = lt %267, 120i
+                if %268 [t: $B80, f: $B81] {  # if_28
+                  $B80: {  # true
+                    %269:ptr<private, i32, read_write> = access %data, 3i
+                    %270:i32 = load %269
+                    %271:f32 = convert %270
+                    %272:f32 = div %271, 10.0f
+                    %273:f32 = add 0.5f, %272
+                    store %grey, %273
                     exit_if  # if_28
                   }
-                  %b81 = block {  # false
-                    %249:f32 = load_vector_element %gl_FragCoord, 1u
-                    %250:i32 = convert %249
-                    %251:bool = lt %250, 150i
-                    if %251 [t: %b82, f: %b83] {  # if_29
-                      %b82 = block {  # true
-                        discard
+                  $B81: {  # false
+                    %274:f32 = load_vector_element %gl_FragCoord, 1u
+                    %275:i32 = call %tint_f32_to_i32, %274
+                    %276:bool = lt %275, 150i
+                    if %276 [t: $B82, f: $B83] {  # if_29
+                      $B82: {  # true
+                        store %continue_execution, false
                         exit_if  # if_29
                       }
-                      %b83 = block {  # false
-                        %252:f32 = load_vector_element %gl_FragCoord, 1u
-                        %253:i32 = convert %252
-                        %254:bool = lt %253, 180i
-                        if %254 [t: %b84, f: %b85] {  # if_30
-                          %b84 = block {  # true
-                            %255:ptr<private, i32, read_write> = access %data, 5i
-                            %256:i32 = load %255
-                            %257:f32 = convert %256
-                            %258:f32 = div %257, 10.0f
-                            %259:f32 = add 0.5f, %258
-                            store %grey, %259
+                      $B83: {  # false
+                        %277:f32 = load_vector_element %gl_FragCoord, 1u
+                        %278:i32 = call %tint_f32_to_i32, %277
+                        %279:bool = lt %278, 180i
+                        if %279 [t: $B84, f: $B85] {  # if_30
+                          $B84: {  # true
+                            %280:ptr<private, i32, read_write> = access %data, 5i
+                            %281:i32 = load %280
+                            %282:f32 = convert %281
+                            %283:f32 = div %282, 10.0f
+                            %284:f32 = add 0.5f, %283
+                            store %grey, %284
                             exit_if  # if_30
                           }
-                          %b85 = block {  # false
-                            %260:f32 = load_vector_element %gl_FragCoord, 1u
-                            %261:i32 = convert %260
-                            %262:bool = lt %261, 210i
-                            if %262 [t: %b86, f: %b87] {  # if_31
-                              %b86 = block {  # true
-                                %263:ptr<private, i32, read_write> = access %data, 6i
-                                %264:i32 = load %263
-                                %265:f32 = convert %264
-                                %266:f32 = div %265, 10.0f
-                                %267:f32 = add 0.5f, %266
-                                store %grey, %267
+                          $B85: {  # false
+                            %285:f32 = load_vector_element %gl_FragCoord, 1u
+                            %286:i32 = call %tint_f32_to_i32, %285
+                            %287:bool = lt %286, 210i
+                            if %287 [t: $B86, f: $B87] {  # if_31
+                              $B86: {  # true
+                                %288:ptr<private, i32, read_write> = access %data, 6i
+                                %289:i32 = load %288
+                                %290:f32 = convert %289
+                                %291:f32 = div %290, 10.0f
+                                %292:f32 = add 0.5f, %291
+                                store %grey, %292
                                 exit_if  # if_31
                               }
-                              %b87 = block {  # false
-                                %268:f32 = load_vector_element %gl_FragCoord, 1u
-                                %269:i32 = convert %268
-                                %270:bool = lt %269, 240i
-                                if %270 [t: %b88, f: %b89] {  # if_32
-                                  %b88 = block {  # true
-                                    %271:ptr<private, i32, read_write> = access %data, 7i
-                                    %272:i32 = load %271
-                                    %273:f32 = convert %272
-                                    %274:f32 = div %273, 10.0f
-                                    %275:f32 = add 0.5f, %274
-                                    store %grey, %275
+                              $B87: {  # false
+                                %293:f32 = load_vector_element %gl_FragCoord, 1u
+                                %294:i32 = call %tint_f32_to_i32, %293
+                                %295:bool = lt %294, 240i
+                                if %295 [t: $B88, f: $B89] {  # if_32
+                                  $B88: {  # true
+                                    %296:ptr<private, i32, read_write> = access %data, 7i
+                                    %297:i32 = load %296
+                                    %298:f32 = convert %297
+                                    %299:f32 = div %298, 10.0f
+                                    %300:f32 = add 0.5f, %299
+                                    store %grey, %300
                                     exit_if  # if_32
                                   }
-                                  %b89 = block {  # false
-                                    %276:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %277:i32 = convert %276
-                                    %278:bool = lt %277, 270i
-                                    if %278 [t: %b90, f: %b91] {  # if_33
-                                      %b90 = block {  # true
-                                        %279:ptr<private, i32, read_write> = access %data, 8i
-                                        %280:i32 = load %279
-                                        %281:f32 = convert %280
-                                        %282:f32 = div %281, 10.0f
-                                        %283:f32 = add 0.5f, %282
-                                        store %grey, %283
+                                  $B89: {  # false
+                                    %301:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %302:i32 = call %tint_f32_to_i32, %301
+                                    %303:bool = lt %302, 270i
+                                    if %303 [t: $B90, f: $B91] {  # if_33
+                                      $B90: {  # true
+                                        %304:ptr<private, i32, read_write> = access %data, 8i
+                                        %305:i32 = load %304
+                                        %306:f32 = convert %305
+                                        %307:f32 = div %306, 10.0f
+                                        %308:f32 = add 0.5f, %307
+                                        store %grey, %308
                                         exit_if  # if_33
                                       }
-                                      %b91 = block {  # false
-                                        discard
+                                      $B91: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_33
                                       }
                                     }
@@ -719,23 +743,41 @@
         exit_if  # if_25
       }
     }
-    %284:f32 = load %grey
-    %x_249:vec3<f32> = construct %284
-    %286:f32 = access %x_249, 0u
-    %287:f32 = access %x_249, 1u
-    %288:f32 = access %x_249, 2u
-    %289:vec4<f32> = construct %286, %287, %288, 1.0f
-    store %x_GLF_color, %289
+    %309:f32 = load %grey
+    %310:vec3<f32> = construct %309
+    %x_249:vec3<f32> = let %310
+    %312:f32 = access %x_249, 0u
+    %313:f32 = access %x_249, 1u
+    %314:f32 = access %x_249, 2u
+    %315:vec4<f32> = construct %312, %313, %314, 1.0f
+    store %x_GLF_color, %315
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b92 {
-  %b92 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B92: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %292:void = call %main_1
-    %293:vec4<f32> = load %x_GLF_color
-    %294:main_out = construct %293
-    ret %294
+    %318:void = call %main_1
+    %319:vec4<f32> = load %x_GLF_color
+    %320:main_out = construct %319
+    %321:bool = load %continue_execution
+    %322:bool = eq %321, false
+    if %322 [t: $B93] {  # if_34
+      $B93: {  # true
+        terminate_invocation
+      }
+    }
+    ret %320
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B94: {
+    %324:i32 = convert %value
+    %325:bool = gte %value, -2147483648.0f
+    %326:i32 = select -2147483648i, %324, %325
+    %327:bool = lte %value, 2147483520.0f
+    %328:i32 = select 2147483647i, %326, %327
+    ret %328
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.msl
index 64b59ee..2a265bc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-flatten-selection-dead-continues/2-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,29 +8,33 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_255:i32 = load %f
+    %15:i32 = load %f
+    %x_255:i32 = let %15
     store %k, %x_255
-    %x_256:i32 = load %f
+    %17:i32 = load %f
+    %x_256:i32 = let %17
     store %i, %x_256
-    %x_257:i32 = load %mid
-    %17:i32 = add %x_257, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %19:i32 = load %mid
+    %x_257:i32 = let %19
+    %21:i32 = add %x_257, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_283:ptr<function, i32, read_write> = var
         %x_284:ptr<function, i32, read_write> = var
         %x_303:ptr<function, i32, read_write> = var
@@ -49,320 +53,356 @@
         %x_338_phi:ptr<function, i32, read_write> = var
         %x_351_phi:ptr<function, i32, read_write> = var
         %x_365_phi:ptr<function, i32, read_write> = var
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
-            continue %b4
+          $B6: {  # false
+            continue  # -> $B4
           }
         }
-        %x_264:i32 = load %i
-        %x_265:i32 = load %mid
-        %x_267:i32 = load %j
-        %x_268:i32 = load %to
-        %40:bool = lte %x_264, %x_265
-        %41:bool = lte %x_267, %x_268
-        %42:bool = and %40, %41
-        if %42 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        %40:i32 = load %i
+        %x_264:i32 = let %40
+        %42:i32 = load %mid
+        %x_265:i32 = let %42
+        %44:i32 = load %j
+        %x_267:i32 = let %44
+        %46:i32 = load %to
+        %x_268:i32 = let %46
+        %48:bool = lte %x_264, %x_265
+        %49:bool = lte %x_267, %x_268
+        %50:bool = and %48, %49
+        if %50 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_272:i32 = load %i
-        %44:ptr<private, i32, read_write> = access %data, %x_272
-        %x_274:i32 = load %44
-        %x_275:i32 = load %j
-        %47:ptr<private, i32, read_write> = access %data, %x_275
-        %x_277:i32 = load %47
-        %x_278:bool = lt %x_274, %x_277
-        if %x_278 [t: %b9, f: %b10] {  # if_3
-          %b9 = block {  # true
-            %50:i32 = load %k
-            store %x_283, %50
-            %51:i32 = load %x_283
-            store %x_285_phi, %51
+        %51:i32 = load %i
+        %x_272:i32 = let %51
+        %53:ptr<private, i32, read_write> = access %data, %x_272
+        %54:i32 = load %53
+        %x_274:i32 = let %54
+        %56:i32 = load %j
+        %x_275:i32 = let %56
+        %58:ptr<private, i32, read_write> = access %data, %x_275
+        %59:i32 = load %58
+        %x_277:i32 = let %59
+        %61:bool = lt %x_274, %x_277
+        %x_278:bool = let %61
+        if %x_278 [t: $B9, f: $B10] {  # if_3
+          $B9: {  # true
+            %63:i32 = load %k
+            store %x_283, %63
+            %64:i32 = load %x_283
+            store %x_285_phi, %64
             exit_if  # if_3
           }
-          %b10 = block {  # false
+          $B10: {  # false
             store %x_284, 0i
-            %52:i32 = load %x_284
-            store %x_285_phi, %52
+            %65:i32 = load %x_284
+            store %x_285_phi, %65
             exit_if  # if_3
           }
         }
-        %x_285:i32 = load %x_285_phi
-        %x_286:i32 = add %x_285, 1i
-        if %x_278 [t: %b11] {  # if_4
-          %b11 = block {  # true
+        %66:i32 = load %x_285_phi
+        %x_285:i32 = let %66
+        %68:i32 = add %x_285, 1i
+        %x_286:i32 = let %68
+        if %x_278 [t: $B11] {  # if_4
+          $B11: {  # true
             store %k, %x_286
-            %55:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_291:f32 = load_vector_element %55, 0u
-            %57:bool = lte 1.0f, %x_291
-            %58:bool = eq %57, false
-            if %58 [t: %b12, f: %b13] {  # if_5
-              %b12 = block {  # true
+            %70:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %71:f32 = load_vector_element %70, 0u
+            %x_291:f32 = let %71
+            %73:bool = lte 1.0f, %x_291
+            %74:bool = eq %73, false
+            if %74 [t: $B12, f: $B13] {  # if_5
+              $B12: {  # true
                 exit_if  # if_5
               }
-              %b13 = block {  # false
-                continue %b4
+              $B13: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_4
           }
         }
-        %59:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %x_295:f32 = load_vector_element %59, 1u
-        %61:bool = gte %x_295, 0.0f
-        if %61 [t: %b14, f: %b15] {  # if_6
-          %b14 = block {  # true
+        %75:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %76:f32 = load_vector_element %75, 1u
+        %x_295:f32 = let %76
+        %78:bool = gte %x_295, 0.0f
+        if %78 [t: $B14, f: $B15] {  # if_6
+          $B14: {  # true
             exit_if  # if_6
           }
-          %b15 = block {  # false
-            continue %b4
+          $B15: {  # false
+            continue  # -> $B4
           }
         }
         %x_298:i32 = let 0i
-        if %x_278 [t: %b16, f: %b17] {  # if_7
-          %b16 = block {  # true
-            %63:i32 = load %i
-            store %x_303, %63
-            %64:i32 = load %x_303
-            store %x_305_phi, %64
+        if %x_278 [t: $B16, f: $B17] {  # if_7
+          $B16: {  # true
+            %80:i32 = load %i
+            store %x_303, %80
+            %81:i32 = load %x_303
+            store %x_305_phi, %81
             exit_if  # if_7
           }
-          %b17 = block {  # false
+          $B17: {  # false
             store %x_304, 0i
-            %65:i32 = load %x_304
-            store %x_305_phi, %65
+            %82:i32 = load %x_304
+            store %x_305_phi, %82
             exit_if  # if_7
           }
         }
-        %x_305:i32 = load %x_305_phi
-        %x_307:i32 = select %x_298, %x_305, %x_278
-        if %x_278 [t: %b18] {  # if_8
-          %b18 = block {  # true
-            %68:i32 = add %x_307, 1i
-            store %i, %68
+        %83:i32 = load %x_305_phi
+        %x_305:i32 = let %83
+        %85:i32 = select %x_298, %x_305, %x_278
+        %x_307:i32 = let %85
+        if %x_278 [t: $B18] {  # if_8
+          $B18: {  # true
+            %87:i32 = add %x_307, 1i
+            store %i, %87
             exit_if  # if_8
           }
         }
         %x_313:i32 = let 0i
-        if %x_278 [t: %b19, f: %b20] {  # if_9
-          %b19 = block {  # true
-            %70:ptr<private, i32, read_write> = access %data, %x_307
-            %71:i32 = load %70
-            store %x_318, %71
-            %72:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_320:f32 = load_vector_element %72, 1u
-            %74:i32 = load %x_318
-            store %x_326_phi, %74
-            %75:bool = lte 0.0f, %x_320
-            %76:bool = eq %75, false
-            if %76 [t: %b21] {  # if_10
-              %b21 = block {  # true
-                continue %b4
+        if %x_278 [t: $B19, f: $B20] {  # if_9
+          $B19: {  # true
+            %89:ptr<private, i32, read_write> = access %data, %x_307
+            %90:i32 = load %89
+            store %x_318, %90
+            %91:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %92:f32 = load_vector_element %91, 1u
+            %x_320:f32 = let %92
+            %94:i32 = load %x_318
+            store %x_326_phi, %94
+            %95:bool = lte 0.0f, %x_320
+            %96:bool = eq %95, false
+            if %96 [t: $B21] {  # if_10
+              $B21: {  # true
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
-          %b20 = block {  # false
+          $B20: {  # false
             store %x_322, 0i
-            %77:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-            %x_324:f32 = load_vector_element %77, 1u
-            %79:i32 = load %x_322
-            store %x_326_phi, %79
-            %80:bool = lt %x_324, 0.0f
-            %81:bool = eq %80, false
-            if %81 [t: %b22, f: %b23] {  # if_11
-              %b22 = block {  # true
+            %97:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+            %98:f32 = load_vector_element %97, 1u
+            %x_324:f32 = let %98
+            %100:i32 = load %x_322
+            store %x_326_phi, %100
+            %101:bool = lt %x_324, 0.0f
+            %102:bool = eq %101, false
+            if %102 [t: $B22, f: $B23] {  # if_11
+              $B22: {  # true
                 exit_if  # if_11
               }
-              %b23 = block {  # false
-                continue %b4
+              $B23: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_9
           }
         }
-        %x_326:i32 = load %x_326_phi
-        if %x_278 [t: %b24] {  # if_12
-          %b24 = block {  # true
-            %83:ptr<private, i32, read_write> = access %temp, %x_285
-            %84:i32 = select %x_313, %x_326, %x_278
-            store %83, %84
+        %103:i32 = load %x_326_phi
+        %x_326:i32 = let %103
+        if %x_278 [t: $B24] {  # if_12
+          $B24: {  # true
+            %105:ptr<private, i32, read_write> = access %temp, %x_285
+            %106:i32 = select %x_313, %x_326, %x_278
+            store %105, %106
             exit_if  # if_12
           }
         }
-        if %x_278 [t: %b25, f: %b26] {  # if_13
-          %b25 = block {  # true
+        if %x_278 [t: $B25, f: $B26] {  # if_13
+          $B25: {  # true
             store %x_337, 0i
-            %85:i32 = load %x_337
-            store %x_338_phi, %85
+            %107:i32 = load %x_337
+            store %x_338_phi, %107
             exit_if  # if_13
           }
-          %b26 = block {  # false
-            %86:i32 = load %k
-            store %x_336, %86
-            %87:i32 = load %x_336
-            store %x_338_phi, %87
+          $B26: {  # false
+            %108:i32 = load %k
+            store %x_336, %108
+            %109:i32 = load %x_336
+            store %x_338_phi, %109
             exit_if  # if_13
           }
         }
-        %x_338:i32 = load %x_338_phi
-        if %x_278 [t: %b27, f: %b28] {  # if_14
-          %b27 = block {  # true
+        %110:i32 = load %x_338_phi
+        %x_338:i32 = let %110
+        if %x_278 [t: $B27, f: $B28] {  # if_14
+          $B27: {  # true
             exit_if  # if_14
           }
-          %b28 = block {  # false
-            %89:i32 = add %x_338, 1i
-            store %k, %89
+          $B28: {  # false
+            %112:i32 = add %x_338, 1i
+            store %k, %112
             exit_if  # if_14
           }
         }
-        %90:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-        %x_343:f32 = load_vector_element %90, 0u
-        %92:bool = lte 1.0f, %x_343
-        %93:bool = eq %92, false
-        if %93 [t: %b29, f: %b30] {  # if_15
-          %b29 = block {  # true
+        %113:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+        %114:f32 = load_vector_element %113, 0u
+        %x_343:f32 = let %114
+        %116:bool = lte 1.0f, %x_343
+        %117:bool = eq %116, false
+        if %117 [t: $B29, f: $B30] {  # if_15
+          $B29: {  # true
             exit_if  # if_15
           }
-          %b30 = block {  # false
-            continue %b4
+          $B30: {  # false
+            continue  # -> $B4
           }
         }
-        if %x_278 [t: %b31, f: %b32] {  # if_16
-          %b31 = block {  # true
+        if %x_278 [t: $B31, f: $B32] {  # if_16
+          $B31: {  # true
             store %x_350, 0i
-            %94:i32 = load %x_350
-            store %x_351_phi, %94
+            %118:i32 = load %x_350
+            store %x_351_phi, %118
             exit_if  # if_16
           }
-          %b32 = block {  # false
-            %95:i32 = load %j
-            store %x_349, %95
-            %96:i32 = load %x_349
-            store %x_351_phi, %96
+          $B32: {  # false
+            %119:i32 = load %j
+            store %x_349, %119
+            %120:i32 = load %x_349
+            store %x_351_phi, %120
             exit_if  # if_16
           }
         }
-        %x_351:i32 = load %x_351_phi
+        %121:i32 = load %x_351_phi
+        %x_351:i32 = let %121
         %x_353:i32 = let 0i
-        %x_355:i32 = select %x_351, %x_353, %x_278
-        if %x_278 [t: %b33, f: %b34] {  # if_17
-          %b33 = block {  # true
+        %124:i32 = select %x_351, %x_353, %x_278
+        %x_355:i32 = let %124
+        if %x_278 [t: $B33, f: $B34] {  # if_17
+          $B33: {  # true
             exit_if  # if_17
           }
-          %b34 = block {  # false
-            %100:i32 = add %x_355, 1i
-            store %j, %100
+          $B34: {  # false
+            %126:i32 = add %x_355, 1i
+            store %j, %126
             exit_if  # if_17
           }
         }
-        if %x_278 [t: %b35, f: %b36] {  # if_18
-          %b35 = block {  # true
+        if %x_278 [t: $B35, f: $B36] {  # if_18
+          $B35: {  # true
             store %x_364, 0i
-            %101:i32 = load %x_364
-            store %x_365_phi, %101
+            %127:i32 = load %x_364
+            store %x_365_phi, %127
             exit_if  # if_18
           }
-          %b36 = block {  # false
-            %102:ptr<private, i32, read_write> = access %data, %x_355
-            %103:i32 = load %102
-            store %x_363, %103
-            %104:i32 = load %x_363
-            store %x_365_phi, %104
+          $B36: {  # false
+            %128:ptr<private, i32, read_write> = access %data, %x_355
+            %129:i32 = load %128
+            store %x_363, %129
+            %130:i32 = load %x_363
+            store %x_365_phi, %130
             exit_if  # if_18
           }
         }
-        %x_365:i32 = load %x_365_phi
-        if %x_278 [t: %b37, f: %b38] {  # if_19
-          %b37 = block {  # true
+        %131:i32 = load %x_365_phi
+        %x_365:i32 = let %131
+        if %x_278 [t: $B37, f: $B38] {  # if_19
+          $B37: {  # true
             exit_if  # if_19
           }
-          %b38 = block {  # false
-            %106:ptr<private, i32, read_write> = access %temp, %x_338
-            store %106, %x_365
+          $B38: {  # false
+            %133:ptr<private, i32, read_write> = access %temp, %x_338
+            store %133, %x_365
             exit_if  # if_19
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b39, c: %b40] {  # loop_2
-      %b39 = block {  # body
-        %x_374:i32 = load %i
-        %x_376:i32 = load %i
-        %x_377:i32 = load %mid
-        %110:bool = lt %x_374, 10i
-        %111:bool = lte %x_376, %x_377
-        %112:bool = and %110, %111
-        if %112 [t: %b41, f: %b42] {  # if_20
-          %b41 = block {  # true
+    loop [b: $B39, c: $B40] {  # loop_2
+      $B39: {  # body
+        %134:i32 = load %i
+        %x_374:i32 = let %134
+        %136:i32 = load %i
+        %x_376:i32 = let %136
+        %138:i32 = load %mid
+        %x_377:i32 = let %138
+        %140:bool = lt %x_374, 10i
+        %141:bool = lte %x_376, %x_377
+        %142:bool = and %140, %141
+        if %142 [t: $B41, f: $B42] {  # if_20
+          $B41: {  # true
             exit_if  # if_20
           }
-          %b42 = block {  # false
+          $B42: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_381:i32 = load %k
-        %114:i32 = add %x_381, 1i
-        store %k, %114
-        %x_383:i32 = load %i
-        %116:i32 = add %x_383, 1i
-        store %i, %116
-        %117:ptr<private, i32, read_write> = access %data, %x_383
-        %x_386:i32 = load %117
-        %119:ptr<private, i32, read_write> = access %temp, %x_381
-        store %119, %x_386
-        continue %b40
+        %143:i32 = load %k
+        %x_381:i32 = let %143
+        %145:i32 = add %x_381, 1i
+        store %k, %145
+        %146:i32 = load %i
+        %x_383:i32 = let %146
+        %148:i32 = add %x_383, 1i
+        store %i, %148
+        %149:ptr<private, i32, read_write> = access %data, %x_383
+        %150:i32 = load %149
+        %x_386:i32 = let %150
+        %152:ptr<private, i32, read_write> = access %temp, %x_381
+        store %152, %x_386
+        continue  # -> $B40
       }
-      %b40 = block {  # continuing
-        next_iteration %b39
+      $B40: {  # continuing
+        next_iteration  # -> $B39
       }
     }
-    %x_388:i32 = load %f
+    %153:i32 = load %f
+    %x_388:i32 = let %153
     store %i_1, %x_388
-    loop [b: %b43, c: %b44] {  # loop_3
-      %b43 = block {  # body
-        %x_393:i32 = load %i_1
-        %x_394:i32 = load %to
-        %123:bool = lte %x_393, %x_394
-        if %123 [t: %b45, f: %b46] {  # if_21
-          %b45 = block {  # true
+    loop [b: $B43, c: $B44] {  # loop_3
+      $B43: {  # body
+        %155:i32 = load %i_1
+        %x_393:i32 = let %155
+        %157:i32 = load %to
+        %x_394:i32 = let %157
+        %159:bool = lte %x_393, %x_394
+        if %159 [t: $B45, f: $B46] {  # if_21
+          $B45: {  # true
             exit_if  # if_21
           }
-          %b46 = block {  # false
+          $B46: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_397:i32 = load %i_1
-        %x_398:i32 = load %i_1
-        %126:ptr<private, i32, read_write> = access %temp, %x_398
-        %x_400:i32 = load %126
-        %128:ptr<private, i32, read_write> = access %data, %x_397
-        store %128, %x_400
-        continue %b44
+        %160:i32 = load %i_1
+        %x_397:i32 = let %160
+        %162:i32 = load %i_1
+        %x_398:i32 = let %162
+        %164:ptr<private, i32, read_write> = access %temp, %x_398
+        %165:i32 = load %164
+        %x_400:i32 = let %165
+        %167:ptr<private, i32, read_write> = access %data, %x_397
+        store %167, %x_400
+        continue  # -> $B44
       }
-      %b44 = block {  # continuing
-        %x_402:i32 = load %i_1
-        %130:i32 = add %x_402, 1i
-        store %i_1, %130
-        next_iteration %b43
+      $B44: {  # continuing
+        %168:i32 = load %i_1
+        %x_402:i32 = let %168
+        %170:i32 = add %x_402, 1i
+        store %i_1, %170
+        next_iteration  # -> $B43
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b47 {
-  %b47 = block {
+%mergeSort_ = func():void {
+  $B47: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -376,319 +416,372 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b48, c: %b49] {  # loop_4
-      %b48 = block {  # body
-        %x_409:i32 = load %m
-        %x_410:i32 = load %high
-        %144:bool = lte %x_409, %x_410
-        if %144 [t: %b50, f: %b51] {  # if_22
-          %b50 = block {  # true
+    loop [b: $B48, c: $B49] {  # loop_4
+      $B48: {  # body
+        %182:i32 = load %m
+        %x_409:i32 = let %182
+        %184:i32 = load %high
+        %x_410:i32 = let %184
+        %186:bool = lte %x_409, %x_410
+        if %186 [t: $B50, f: $B51] {  # if_22
+          $B50: {  # true
             exit_if  # if_22
           }
-          %b51 = block {  # false
+          $B51: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_413:i32 = load %low
+        %187:i32 = load %low
+        %x_413:i32 = let %187
         store %i_2, %x_413
-        loop [b: %b52, c: %b53] {  # loop_5
-          %b52 = block {  # body
-            %x_418:i32 = load %i_2
-            %x_419:i32 = load %high
-            %148:bool = lt %x_418, %x_419
-            if %148 [t: %b54, f: %b55] {  # if_23
-              %b54 = block {  # true
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %189:i32 = load %i_2
+            %x_418:i32 = let %189
+            %191:i32 = load %high
+            %x_419:i32 = let %191
+            %193:bool = lt %x_418, %x_419
+            if %193 [t: $B54, f: $B55] {  # if_23
+              $B54: {  # true
                 exit_if  # if_23
               }
-              %b55 = block {  # false
+              $B55: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_422:i32 = load %i_2
+            %194:i32 = load %i_2
+            %x_422:i32 = let %194
             store %f_1, %x_422
-            %x_423:i32 = load %i_2
-            %x_424:i32 = load %m
-            %152:i32 = add %x_423, %x_424
-            %153:i32 = sub %152, 1i
-            store %mid_1, %153
-            %x_427:i32 = load %i_2
-            %x_428:i32 = load %m
-            %x_432:i32 = load %high
-            %157:i32 = mul 2i, %x_428
-            %158:i32 = add %x_427, %157
-            %159:i32 = sub %158, 1i
-            %160:i32 = min %159, %x_432
-            store %to_1, %160
-            %x_434:i32 = load %f_1
+            %196:i32 = load %i_2
+            %x_423:i32 = let %196
+            %198:i32 = load %m
+            %x_424:i32 = let %198
+            %200:i32 = add %x_423, %x_424
+            %201:i32 = sub %200, 1i
+            store %mid_1, %201
+            %202:i32 = load %i_2
+            %x_427:i32 = let %202
+            %204:i32 = load %m
+            %x_428:i32 = let %204
+            %206:i32 = load %high
+            %x_432:i32 = let %206
+            %208:i32 = mul 2i, %x_428
+            %209:i32 = add %x_427, %208
+            %210:i32 = sub %209, 1i
+            %211:i32 = min %210, %x_432
+            store %to_1, %211
+            %212:i32 = load %f_1
+            %x_434:i32 = let %212
             store %param, %x_434
-            %x_435:i32 = load %mid_1
+            %214:i32 = load %mid_1
+            %x_435:i32 = let %214
             store %param_1, %x_435
-            %x_436:i32 = load %to_1
+            %216:i32 = load %to_1
+            %x_436:i32 = let %216
             store %param_2, %x_436
-            %164:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b53
+            %218:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B53
           }
-          %b53 = block {  # continuing
-            %x_438:i32 = load %m
-            %x_440:i32 = load %i_2
-            %167:i32 = mul 2i, %x_438
-            %168:i32 = add %x_440, %167
-            store %i_2, %168
-            next_iteration %b52
+          $B53: {  # continuing
+            %219:i32 = load %m
+            %x_438:i32 = let %219
+            %221:i32 = load %i_2
+            %x_440:i32 = let %221
+            %223:i32 = mul 2i, %x_438
+            %224:i32 = add %x_440, %223
+            store %i_2, %224
+            next_iteration  # -> $B52
           }
         }
-        continue %b49
+        continue  # -> $B49
       }
-      %b49 = block {  # continuing
-        %x_442:i32 = load %m
-        %170:i32 = mul 2i, %x_442
-        store %m, %170
-        next_iteration %b48
+      $B49: {  # continuing
+        %225:i32 = load %m
+        %x_442:i32 = let %225
+        %227:i32 = mul 2i, %x_442
+        store %m, %227
+        next_iteration  # -> $B48
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b56 {
-  %b56 = block {
+%main_1 = func():void {
+  $B56: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %175:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_88:f32 = load_vector_element %175, 0u
-    %177:i32 = convert %x_88
-    store %i_3, %177
-    loop [b: %b57, c: %b58] {  # loop_6
-      %b57 = block {  # body
-        %x_94:i32 = load %i_3
-        switch %x_94 [c: (9i, %b59), c: (8i, %b60), c: (7i, %b61), c: (6i, %b62), c: (5i, %b63), c: (4i, %b64), c: (3i, %b65), c: (2i, %b66), c: (1i, %b67), c: (0i, %b68), c: (default, %b69)] {  # switch_1
-          %b59 = block {  # case
-            %x_124:i32 = load %i_3
-            %180:ptr<private, i32, read_write> = access %data, %x_124
-            store %180, -5i
+    %232:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %233:f32 = load_vector_element %232, 0u
+    %x_88:f32 = let %233
+    %235:i32 = call %tint_f32_to_i32, %x_88
+    store %i_3, %235
+    loop [b: $B57, c: $B58] {  # loop_6
+      $B57: {  # body
+        %237:i32 = load %i_3
+        %x_94:i32 = let %237
+        switch %x_94 [c: (9i, $B59), c: (8i, $B60), c: (7i, $B61), c: (6i, $B62), c: (5i, $B63), c: (4i, $B64), c: (3i, $B65), c: (2i, $B66), c: (1i, $B67), c: (0i, $B68), c: (default, $B69)] {  # switch_1
+          $B59: {  # case
+            %239:i32 = load %i_3
+            %x_124:i32 = let %239
+            %241:ptr<private, i32, read_write> = access %data, %x_124
+            store %241, -5i
             exit_switch  # switch_1
           }
-          %b60 = block {  # case
-            %x_122:i32 = load %i_3
-            %182:ptr<private, i32, read_write> = access %data, %x_122
-            store %182, -4i
+          $B60: {  # case
+            %242:i32 = load %i_3
+            %x_122:i32 = let %242
+            %244:ptr<private, i32, read_write> = access %data, %x_122
+            store %244, -4i
             exit_switch  # switch_1
           }
-          %b61 = block {  # case
-            %x_120:i32 = load %i_3
-            %184:ptr<private, i32, read_write> = access %data, %x_120
-            store %184, -3i
+          $B61: {  # case
+            %245:i32 = load %i_3
+            %x_120:i32 = let %245
+            %247:ptr<private, i32, read_write> = access %data, %x_120
+            store %247, -3i
             exit_switch  # switch_1
           }
-          %b62 = block {  # case
-            %x_118:i32 = load %i_3
-            %186:ptr<private, i32, read_write> = access %data, %x_118
-            store %186, -2i
+          $B62: {  # case
+            %248:i32 = load %i_3
+            %x_118:i32 = let %248
+            %250:ptr<private, i32, read_write> = access %data, %x_118
+            store %250, -2i
             exit_switch  # switch_1
           }
-          %b63 = block {  # case
-            %x_116:i32 = load %i_3
-            %188:ptr<private, i32, read_write> = access %data, %x_116
-            store %188, -1i
+          $B63: {  # case
+            %251:i32 = load %i_3
+            %x_116:i32 = let %251
+            %253:ptr<private, i32, read_write> = access %data, %x_116
+            store %253, -1i
             exit_switch  # switch_1
           }
-          %b64 = block {  # case
-            %x_114:i32 = load %i_3
-            %190:ptr<private, i32, read_write> = access %data, %x_114
-            store %190, 0i
+          $B64: {  # case
+            %254:i32 = load %i_3
+            %x_114:i32 = let %254
+            %256:ptr<private, i32, read_write> = access %data, %x_114
+            store %256, 0i
             exit_switch  # switch_1
           }
-          %b65 = block {  # case
-            %x_112:i32 = load %i_3
-            %192:ptr<private, i32, read_write> = access %data, %x_112
-            store %192, 1i
+          $B65: {  # case
+            %257:i32 = load %i_3
+            %x_112:i32 = let %257
+            %259:ptr<private, i32, read_write> = access %data, %x_112
+            store %259, 1i
             exit_switch  # switch_1
           }
-          %b66 = block {  # case
-            %x_110:i32 = load %i_3
-            %194:ptr<private, i32, read_write> = access %data, %x_110
-            store %194, 2i
+          $B66: {  # case
+            %260:i32 = load %i_3
+            %x_110:i32 = let %260
+            %262:ptr<private, i32, read_write> = access %data, %x_110
+            store %262, 2i
             exit_switch  # switch_1
           }
-          %b67 = block {  # case
-            %x_108:i32 = load %i_3
-            %196:ptr<private, i32, read_write> = access %data, %x_108
-            store %196, 3i
+          $B67: {  # case
+            %263:i32 = load %i_3
+            %x_108:i32 = let %263
+            %265:ptr<private, i32, read_write> = access %data, %x_108
+            store %265, 3i
             exit_switch  # switch_1
           }
-          %b68 = block {  # case
-            %x_106:i32 = load %i_3
-            %198:ptr<private, i32, read_write> = access %data, %x_106
-            store %198, 4i
+          $B68: {  # case
+            %266:i32 = load %i_3
+            %x_106:i32 = let %266
+            %268:ptr<private, i32, read_write> = access %data, %x_106
+            store %268, 4i
             exit_switch  # switch_1
           }
-          %b69 = block {  # case
+          $B69: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_126:i32 = load %i_3
-        %200:i32 = add %x_126, 1i
-        store %i_3, %200
-        continue %b58
+        %269:i32 = load %i_3
+        %x_126:i32 = let %269
+        %271:i32 = add %x_126, 1i
+        store %i_3, %271
+        continue  # -> $B58
       }
-      %b58 = block {  # continuing
-        %x_128:i32 = load %i_3
-        %202:bool = lt %x_128, 10i
-        %203:bool = eq %202, false
-        break_if %203 %b57
+      $B58: {  # continuing
+        %272:i32 = load %i_3
+        %x_128:i32 = let %272
+        %274:bool = lt %x_128, 10i
+        %275:bool = eq %274, false
+        break_if %275  # -> [t: exit_loop loop_6, f: $B57]
       }
     }
     store %j_1, 0i
-    loop [b: %b70, c: %b71] {  # loop_7
-      %b70 = block {  # body
-        %x_134:i32 = load %j_1
-        %205:bool = lt %x_134, 10i
-        if %205 [t: %b72, f: %b73] {  # if_24
-          %b72 = block {  # true
+    loop [b: $B70, c: $B71] {  # loop_7
+      $B70: {  # body
+        %276:i32 = load %j_1
+        %x_134:i32 = let %276
+        %278:bool = lt %x_134, 10i
+        if %278 [t: $B72, f: $B73] {  # if_24
+          $B72: {  # true
             exit_if  # if_24
           }
-          %b73 = block {  # false
+          $B73: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_137:i32 = load %j_1
-        %x_138:i32 = load %j_1
-        %208:ptr<private, i32, read_write> = access %data, %x_138
-        %x_140:i32 = load %208
-        %210:ptr<private, i32, read_write> = access %temp, %x_137
-        store %210, %x_140
-        continue %b71
+        %279:i32 = load %j_1
+        %x_137:i32 = let %279
+        %281:i32 = load %j_1
+        %x_138:i32 = let %281
+        %283:ptr<private, i32, read_write> = access %data, %x_138
+        %284:i32 = load %283
+        %x_140:i32 = let %284
+        %286:ptr<private, i32, read_write> = access %temp, %x_137
+        store %286, %x_140
+        continue  # -> $B71
       }
-      %b71 = block {  # continuing
-        %x_142:i32 = load %j_1
-        %212:i32 = add %x_142, 1i
-        store %j_1, %212
-        next_iteration %b70
+      $B71: {  # continuing
+        %287:i32 = load %j_1
+        %x_142:i32 = let %287
+        %289:i32 = add %x_142, 1i
+        store %j_1, %289
+        next_iteration  # -> $B70
       }
     }
-    %213:void = call %mergeSort_
-    %x_146:f32 = load_vector_element %gl_FragCoord, 1u
-    %215:i32 = convert %x_146
-    %216:bool = lt %215, 30i
-    if %216 [t: %b74, f: %b75] {  # if_25
-      %b74 = block {  # true
-        %217:ptr<private, i32, read_write> = access %data, 0i
-        %x_153:i32 = load %217
-        %219:f32 = convert %x_153
-        %220:f32 = div %219, 10.0f
-        %221:f32 = add 0.5f, %220
-        store %grey, %221
+    %290:void = call %mergeSort_
+    %291:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_146:f32 = let %291
+    %293:i32 = call %tint_f32_to_i32, %x_146
+    %294:bool = lt %293, 30i
+    if %294 [t: $B74, f: $B75] {  # if_25
+      $B74: {  # true
+        %295:ptr<private, i32, read_write> = access %data, 0i
+        %296:i32 = load %295
+        %x_153:i32 = let %296
+        %298:f32 = convert %x_153
+        %299:f32 = div %298, 10.0f
+        %300:f32 = add 0.5f, %299
+        store %grey, %300
         exit_if  # if_25
       }
-      %b75 = block {  # false
-        %x_158:f32 = load_vector_element %gl_FragCoord, 1u
-        %223:i32 = convert %x_158
-        %224:bool = lt %223, 60i
-        if %224 [t: %b76, f: %b77] {  # if_26
-          %b76 = block {  # true
-            %225:ptr<private, i32, read_write> = access %data, 1i
-            %x_165:i32 = load %225
-            %227:f32 = convert %x_165
-            %228:f32 = div %227, 10.0f
-            %229:f32 = add 0.5f, %228
-            store %grey, %229
+      $B75: {  # false
+        %301:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_158:f32 = let %301
+        %303:i32 = call %tint_f32_to_i32, %x_158
+        %304:bool = lt %303, 60i
+        if %304 [t: $B76, f: $B77] {  # if_26
+          $B76: {  # true
+            %305:ptr<private, i32, read_write> = access %data, 1i
+            %306:i32 = load %305
+            %x_165:i32 = let %306
+            %308:f32 = convert %x_165
+            %309:f32 = div %308, 10.0f
+            %310:f32 = add 0.5f, %309
+            store %grey, %310
             exit_if  # if_26
           }
-          %b77 = block {  # false
-            %x_170:f32 = load_vector_element %gl_FragCoord, 1u
-            %231:i32 = convert %x_170
-            %232:bool = lt %231, 90i
-            if %232 [t: %b78, f: %b79] {  # if_27
-              %b78 = block {  # true
-                %233:ptr<private, i32, read_write> = access %data, 2i
-                %x_177:i32 = load %233
-                %235:f32 = convert %x_177
-                %236:f32 = div %235, 10.0f
-                %237:f32 = add 0.5f, %236
-                store %grey, %237
+          $B77: {  # false
+            %311:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_170:f32 = let %311
+            %313:i32 = call %tint_f32_to_i32, %x_170
+            %314:bool = lt %313, 90i
+            if %314 [t: $B78, f: $B79] {  # if_27
+              $B78: {  # true
+                %315:ptr<private, i32, read_write> = access %data, 2i
+                %316:i32 = load %315
+                %x_177:i32 = let %316
+                %318:f32 = convert %x_177
+                %319:f32 = div %318, 10.0f
+                %320:f32 = add 0.5f, %319
+                store %grey, %320
                 exit_if  # if_27
               }
-              %b79 = block {  # false
-                %x_182:f32 = load_vector_element %gl_FragCoord, 1u
-                %239:i32 = convert %x_182
-                %240:bool = lt %239, 120i
-                if %240 [t: %b80, f: %b81] {  # if_28
-                  %b80 = block {  # true
-                    %241:ptr<private, i32, read_write> = access %data, 3i
-                    %x_189:i32 = load %241
-                    %243:f32 = convert %x_189
-                    %244:f32 = div %243, 10.0f
-                    %245:f32 = add 0.5f, %244
-                    store %grey, %245
+              $B79: {  # false
+                %321:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_182:f32 = let %321
+                %323:i32 = call %tint_f32_to_i32, %x_182
+                %324:bool = lt %323, 120i
+                if %324 [t: $B80, f: $B81] {  # if_28
+                  $B80: {  # true
+                    %325:ptr<private, i32, read_write> = access %data, 3i
+                    %326:i32 = load %325
+                    %x_189:i32 = let %326
+                    %328:f32 = convert %x_189
+                    %329:f32 = div %328, 10.0f
+                    %330:f32 = add 0.5f, %329
+                    store %grey, %330
                     exit_if  # if_28
                   }
-                  %b81 = block {  # false
-                    %x_194:f32 = load_vector_element %gl_FragCoord, 1u
-                    %247:i32 = convert %x_194
-                    %248:bool = lt %247, 150i
-                    if %248 [t: %b82, f: %b83] {  # if_29
-                      %b82 = block {  # true
-                        discard
+                  $B81: {  # false
+                    %331:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_194:f32 = let %331
+                    %333:i32 = call %tint_f32_to_i32, %x_194
+                    %334:bool = lt %333, 150i
+                    if %334 [t: $B82, f: $B83] {  # if_29
+                      $B82: {  # true
+                        store %continue_execution, false
                         exit_if  # if_29
                       }
-                      %b83 = block {  # false
-                        %x_201:f32 = load_vector_element %gl_FragCoord, 1u
-                        %250:i32 = convert %x_201
-                        %251:bool = lt %250, 180i
-                        if %251 [t: %b84, f: %b85] {  # if_30
-                          %b84 = block {  # true
-                            %252:ptr<private, i32, read_write> = access %data, 5i
-                            %x_208:i32 = load %252
-                            %254:f32 = convert %x_208
-                            %255:f32 = div %254, 10.0f
-                            %256:f32 = add 0.5f, %255
-                            store %grey, %256
+                      $B83: {  # false
+                        %335:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_201:f32 = let %335
+                        %337:i32 = call %tint_f32_to_i32, %x_201
+                        %338:bool = lt %337, 180i
+                        if %338 [t: $B84, f: $B85] {  # if_30
+                          $B84: {  # true
+                            %339:ptr<private, i32, read_write> = access %data, 5i
+                            %340:i32 = load %339
+                            %x_208:i32 = let %340
+                            %342:f32 = convert %x_208
+                            %343:f32 = div %342, 10.0f
+                            %344:f32 = add 0.5f, %343
+                            store %grey, %344
                             exit_if  # if_30
                           }
-                          %b85 = block {  # false
-                            %x_213:f32 = load_vector_element %gl_FragCoord, 1u
-                            %258:i32 = convert %x_213
-                            %259:bool = lt %258, 210i
-                            if %259 [t: %b86, f: %b87] {  # if_31
-                              %b86 = block {  # true
-                                %260:ptr<private, i32, read_write> = access %data, 6i
-                                %x_220:i32 = load %260
-                                %262:f32 = convert %x_220
-                                %263:f32 = div %262, 10.0f
-                                %264:f32 = add 0.5f, %263
-                                store %grey, %264
+                          $B85: {  # false
+                            %345:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_213:f32 = let %345
+                            %347:i32 = call %tint_f32_to_i32, %x_213
+                            %348:bool = lt %347, 210i
+                            if %348 [t: $B86, f: $B87] {  # if_31
+                              $B86: {  # true
+                                %349:ptr<private, i32, read_write> = access %data, 6i
+                                %350:i32 = load %349
+                                %x_220:i32 = let %350
+                                %352:f32 = convert %x_220
+                                %353:f32 = div %352, 10.0f
+                                %354:f32 = add 0.5f, %353
+                                store %grey, %354
                                 exit_if  # if_31
                               }
-                              %b87 = block {  # false
-                                %x_225:f32 = load_vector_element %gl_FragCoord, 1u
-                                %266:i32 = convert %x_225
-                                %267:bool = lt %266, 240i
-                                if %267 [t: %b88, f: %b89] {  # if_32
-                                  %b88 = block {  # true
-                                    %268:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_232:i32 = load %268
-                                    %270:f32 = convert %x_232
-                                    %271:f32 = div %270, 10.0f
-                                    %272:f32 = add 0.5f, %271
-                                    store %grey, %272
+                              $B87: {  # false
+                                %355:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_225:f32 = let %355
+                                %357:i32 = call %tint_f32_to_i32, %x_225
+                                %358:bool = lt %357, 240i
+                                if %358 [t: $B88, f: $B89] {  # if_32
+                                  $B88: {  # true
+                                    %359:ptr<private, i32, read_write> = access %data, 7i
+                                    %360:i32 = load %359
+                                    %x_232:i32 = let %360
+                                    %362:f32 = convert %x_232
+                                    %363:f32 = div %362, 10.0f
+                                    %364:f32 = add 0.5f, %363
+                                    store %grey, %364
                                     exit_if  # if_32
                                   }
-                                  %b89 = block {  # false
-                                    %x_237:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %274:i32 = convert %x_237
-                                    %275:bool = lt %274, 270i
-                                    if %275 [t: %b90, f: %b91] {  # if_33
-                                      %b90 = block {  # true
-                                        %276:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_244:i32 = load %276
-                                        %278:f32 = convert %x_244
-                                        %279:f32 = div %278, 10.0f
-                                        %280:f32 = add 0.5f, %279
-                                        store %grey, %280
+                                  $B89: {  # false
+                                    %365:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_237:f32 = let %365
+                                    %367:i32 = call %tint_f32_to_i32, %x_237
+                                    %368:bool = lt %367, 270i
+                                    if %368 [t: $B90, f: $B91] {  # if_33
+                                      $B90: {  # true
+                                        %369:ptr<private, i32, read_write> = access %data, 8i
+                                        %370:i32 = load %369
+                                        %x_244:i32 = let %370
+                                        %372:f32 = convert %x_244
+                                        %373:f32 = div %372, 10.0f
+                                        %374:f32 = add 0.5f, %373
+                                        store %grey, %374
                                         exit_if  # if_33
                                       }
-                                      %b91 = block {  # false
-                                        discard
+                                      $B91: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_33
                                       }
                                     }
@@ -716,23 +809,42 @@
         exit_if  # if_25
       }
     }
-    %x_248:f32 = load %grey
-    %x_249:vec3<f32> = construct %x_248, %x_248, %x_248
-    %283:f32 = access %x_249, 0u
-    %284:f32 = access %x_249, 1u
-    %285:f32 = access %x_249, 2u
-    %286:vec4<f32> = construct %283, %284, %285, 1.0f
-    store %x_GLF_color, %286
+    %375:f32 = load %grey
+    %x_248:f32 = let %375
+    %377:vec3<f32> = construct %x_248, %x_248, %x_248
+    %x_249:vec3<f32> = let %377
+    %379:f32 = access %x_249, 0u
+    %380:f32 = access %x_249, 1u
+    %381:f32 = access %x_249, 2u
+    %382:vec4<f32> = construct %379, %380, %381, 1.0f
+    store %x_GLF_color, %382
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b92 {
-  %b92 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B92: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %289:void = call %main_1
-    %290:vec4<f32> = load %x_GLF_color
-    %291:main_out = construct %290
-    ret %291
+    %385:void = call %main_1
+    %386:vec4<f32> = load %x_GLF_color
+    %387:main_out = construct %386
+    %388:bool = load %continue_execution
+    %389:bool = eq %388, false
+    if %389 [t: $B93] {  # if_34
+      $B93: {  # true
+        terminate_invocation
+      }
+    }
+    ret %387
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B94: {
+    %391:i32 = convert %value
+    %392:bool = gte %value, -2147483648.0f
+    %393:i32 = select -2147483648i, %391, %392
+    %394:bool = lte %value, 2147483520.0f
+    %395:i32 = select 2147483647i, %393, %394
+    ret %395
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.msl
index 6e8d8a0..fc12253 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,158 +8,166 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %i
-        %19:i32 = load %mid
-        %20:bool = lte %18, %19
-        %21:i32 = load %j
-        %22:i32 = load %to
-        %23:bool = lte %21, %22
-        %24:bool = and %20, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %20:i32 = load %mid
+        %21:bool = lte %19, %20
+        %22:i32 = load %j
+        %23:i32 = load %to
+        %24:bool = lte %22, %23
+        %25:bool = and %21, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %25:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %25
-        %27:i32 = load %26
-        %28:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %28
-        %30:i32 = load %29
-        %31:bool = lt %27, %30
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_329:i32 = load %k
+        %26:i32 = load %i
+        %27:ptr<private, i32, read_write> = access %data, %26
+        %28:i32 = load %27
+        %29:i32 = load %j
+        %30:ptr<private, i32, read_write> = access %data, %29
+        %31:i32 = load %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %33:i32 = load %k
-            %34:i32 = add %33, 1i
-            store %k, %34
-            %x_331:i32 = load %i
-            %36:i32 = load %i
-            %37:i32 = add %36, 1i
-            store %i, %37
-            %38:ptr<private, i32, read_write> = access %temp, %x_329
-            %39:ptr<private, i32, read_write> = access %data, %x_331
-            %40:i32 = load %39
-            store %38, %40
+            %x_329:i32 = let %33
+            %35:i32 = load %k
+            %36:i32 = add %35, 1i
+            store %k, %36
+            %37:i32 = load %i
+            %x_331:i32 = let %37
+            %39:i32 = load %i
+            %40:i32 = add %39, 1i
+            store %i, %40
+            %41:ptr<private, i32, read_write> = access %temp, %x_329
+            %42:ptr<private, i32, read_write> = access %data, %x_331
+            %43:i32 = load %42
+            store %41, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_336:i32 = load %k
-            %42:i32 = load %k
-            %43:i32 = add %42, 1i
-            store %k, %43
-            %x_338:i32 = load %j
-            %45:i32 = load %j
-            %46:i32 = add %45, 1i
-            store %j, %46
-            %47:ptr<private, i32, read_write> = access %temp, %x_336
-            %48:ptr<private, i32, read_write> = access %data, %x_338
-            %49:i32 = load %48
-            store %47, %49
+          $B8: {  # false
+            %44:i32 = load %k
+            %x_336:i32 = let %44
+            %46:i32 = load %k
+            %47:i32 = add %46, 1i
+            store %k, %47
+            %48:i32 = load %j
+            %x_338:i32 = let %48
+            %50:i32 = load %j
+            %51:i32 = add %50, 1i
+            store %j, %51
+            %52:ptr<private, i32, read_write> = access %temp, %x_336
+            %53:ptr<private, i32, read_write> = access %data, %x_338
+            %54:i32 = load %53
+            store %52, %54
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %50:i32 = load %i
-        %51:bool = lt %50, 10i
-        %52:i32 = load %i
-        %53:i32 = load %mid
-        %54:bool = lte %52, %53
-        %55:bool = and %51, %54
-        if %55 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %55:i32 = load %i
+        %56:bool = lt %55, 10i
+        %57:i32 = load %i
+        %58:i32 = load %mid
+        %59:bool = lte %57, %58
+        %60:bool = and %56, %59
+        if %60 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_354:i32 = load %k
-        %57:i32 = load %k
-        %58:i32 = add %57, 1i
-        store %k, %58
-        %x_356:i32 = load %i
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        %62:ptr<private, i32, read_write> = access %temp, %x_354
-        %63:ptr<private, i32, read_write> = access %data, %x_356
-        %64:i32 = load %63
-        store %62, %64
-        continue %b10
+        %61:i32 = load %k
+        %x_354:i32 = let %61
+        %63:i32 = load %k
+        %64:i32 = add %63, 1i
+        store %k, %64
+        %65:i32 = load %i
+        %x_356:i32 = let %65
+        %67:i32 = load %i
+        %68:i32 = add %67, 1i
+        store %i, %68
+        %69:ptr<private, i32, read_write> = access %temp, %x_354
+        %70:ptr<private, i32, read_write> = access %data, %x_356
+        %71:i32 = load %70
+        store %69, %71
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %65:i32 = load %f
-    store %i_1, %65
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %66:i32 = load %i_1
-        %67:i32 = load %to
-        %68:bool = lte %66, %67
-        if %68 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %72:i32 = load %f
+    store %i_1, %72
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %73:i32 = load %i_1
+        %74:i32 = load %to
+        %75:bool = lte %73, %74
+        if %75 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_370:i32 = load %i_1
-        %70:ptr<private, i32, read_write> = access %data, %x_370
-        %71:i32 = load %i_1
-        %72:ptr<private, i32, read_write> = access %temp, %71
-        %73:i32 = load %72
-        store %70, %73
-        continue %b14
+        %76:i32 = load %i_1
+        %x_370:i32 = let %76
+        %78:ptr<private, i32, read_write> = access %data, %x_370
+        %79:i32 = load %i_1
+        %80:ptr<private, i32, read_write> = access %temp, %79
+        %81:i32 = load %80
+        store %78, %81
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %74:i32 = load %i_1
-        %75:i32 = add %74, 1i
-        store %i_1, %75
-        next_iteration %b13
+      $B14: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b17 {
-  %b17 = block {
+%main_1 = func():void {
+  $B17: {
     %x_85:ptr<function, i32, read_write> = var
     %x_86:ptr<function, i32, read_write> = var
     %x_87:ptr<function, i32, read_write> = var
@@ -173,316 +181,332 @@
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %90:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %91:f32 = load_vector_element %90, 0u
-    %92:i32 = convert %91
-    store %i_3, %92
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_102:i32 = load %i_3
-        switch %x_102 [c: (9i, %b20), c: (8i, %b21), c: (7i, %b22), c: (6i, %b23), c: (5i, %b24), c: (4i, %b25), c: (3i, %b26), c: (2i, %b27), c: (1i, %b28), c: (0i, %b29), c: (default, %b30)] {  # switch_1
-          %b20 = block {  # case
-            %x_132:i32 = load %i_3
-            %95:ptr<private, i32, read_write> = access %data, %x_132
-            store %95, -5i
+    %98:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %99:f32 = load_vector_element %98, 0u
+    %100:i32 = call %tint_f32_to_i32, %99
+    store %i_3, %100
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %102:i32 = load %i_3
+        %x_102:i32 = let %102
+        switch %x_102 [c: (9i, $B20), c: (8i, $B21), c: (7i, $B22), c: (6i, $B23), c: (5i, $B24), c: (4i, $B25), c: (3i, $B26), c: (2i, $B27), c: (1i, $B28), c: (0i, $B29), c: (default, $B30)] {  # switch_1
+          $B20: {  # case
+            %104:i32 = load %i_3
+            %x_132:i32 = let %104
+            %106:ptr<private, i32, read_write> = access %data, %x_132
+            store %106, -5i
             exit_switch  # switch_1
           }
-          %b21 = block {  # case
-            %x_130:i32 = load %i_3
-            %97:ptr<private, i32, read_write> = access %data, %x_130
-            store %97, -4i
+          $B21: {  # case
+            %107:i32 = load %i_3
+            %x_130:i32 = let %107
+            %109:ptr<private, i32, read_write> = access %data, %x_130
+            store %109, -4i
             exit_switch  # switch_1
           }
-          %b22 = block {  # case
-            %x_128:i32 = load %i_3
-            %99:ptr<private, i32, read_write> = access %data, %x_128
-            store %99, -3i
+          $B22: {  # case
+            %110:i32 = load %i_3
+            %x_128:i32 = let %110
+            %112:ptr<private, i32, read_write> = access %data, %x_128
+            store %112, -3i
             exit_switch  # switch_1
           }
-          %b23 = block {  # case
-            %x_126:i32 = load %i_3
-            %101:ptr<private, i32, read_write> = access %data, %x_126
-            store %101, -2i
+          $B23: {  # case
+            %113:i32 = load %i_3
+            %x_126:i32 = let %113
+            %115:ptr<private, i32, read_write> = access %data, %x_126
+            store %115, -2i
             exit_switch  # switch_1
           }
-          %b24 = block {  # case
-            %x_124:i32 = load %i_3
-            %103:ptr<private, i32, read_write> = access %data, %x_124
-            store %103, -1i
+          $B24: {  # case
+            %116:i32 = load %i_3
+            %x_124:i32 = let %116
+            %118:ptr<private, i32, read_write> = access %data, %x_124
+            store %118, -1i
             exit_switch  # switch_1
           }
-          %b25 = block {  # case
-            %x_122:i32 = load %i_3
-            %105:ptr<private, i32, read_write> = access %data, %x_122
-            store %105, 0i
+          $B25: {  # case
+            %119:i32 = load %i_3
+            %x_122:i32 = let %119
+            %121:ptr<private, i32, read_write> = access %data, %x_122
+            store %121, 0i
             exit_switch  # switch_1
           }
-          %b26 = block {  # case
-            %x_120:i32 = load %i_3
-            %107:ptr<private, i32, read_write> = access %data, %x_120
-            store %107, 1i
+          $B26: {  # case
+            %122:i32 = load %i_3
+            %x_120:i32 = let %122
+            %124:ptr<private, i32, read_write> = access %data, %x_120
+            store %124, 1i
             exit_switch  # switch_1
           }
-          %b27 = block {  # case
-            %x_118:i32 = load %i_3
-            %109:ptr<private, i32, read_write> = access %data, %x_118
-            store %109, 2i
+          $B27: {  # case
+            %125:i32 = load %i_3
+            %x_118:i32 = let %125
+            %127:ptr<private, i32, read_write> = access %data, %x_118
+            store %127, 2i
             exit_switch  # switch_1
           }
-          %b28 = block {  # case
-            %x_116:i32 = load %i_3
-            %111:ptr<private, i32, read_write> = access %data, %x_116
-            store %111, 3i
+          $B28: {  # case
+            %128:i32 = load %i_3
+            %x_116:i32 = let %128
+            %130:ptr<private, i32, read_write> = access %data, %x_116
+            store %130, 3i
             exit_switch  # switch_1
           }
-          %b29 = block {  # case
-            %x_114:i32 = load %i_3
-            %113:ptr<private, i32, read_write> = access %data, %x_114
-            store %113, 4i
+          $B29: {  # case
+            %131:i32 = load %i_3
+            %x_114:i32 = let %131
+            %133:ptr<private, i32, read_write> = access %data, %x_114
+            store %133, 4i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
+          $B30: {  # case
             exit_switch  # switch_1
           }
         }
-        %114:i32 = load %i_3
-        %115:i32 = add %114, 1i
-        store %i_3, %115
-        continue %b19
+        %134:i32 = load %i_3
+        %135:i32 = add %134, 1i
+        store %i_3, %135
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_136:i32 = load %i_3
-        %117:bool = lt %x_136, 10i
-        %118:bool = eq %117, false
-        break_if %118 %b18
+      $B19: {  # continuing
+        %136:i32 = load %i_3
+        %x_136:i32 = let %136
+        %138:bool = lt %x_136, 10i
+        %139:bool = eq %138, false
+        break_if %139  # -> [t: exit_loop loop_4, f: $B18]
       }
     }
     store %j_1, 0i
-    loop [b: %b31, c: %b32] {  # loop_5
-      %b31 = block {  # body
-        %119:i32 = load %j_1
-        %120:bool = lt %119, 10i
-        if %120 [t: %b33, f: %b34] {  # if_5
-          %b33 = block {  # true
+    loop [b: $B31, c: $B32] {  # loop_5
+      $B31: {  # body
+        %140:i32 = load %j_1
+        %141:bool = lt %140, 10i
+        if %141 [t: $B33, f: $B34] {  # if_5
+          $B33: {  # true
             exit_if  # if_5
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_145:i32 = load %j_1
-        %122:ptr<private, i32, read_write> = access %temp, %x_145
-        %123:i32 = load %j_1
-        %124:ptr<private, i32, read_write> = access %data, %123
-        %125:i32 = load %124
-        store %122, %125
-        continue %b32
+        %142:i32 = load %j_1
+        %x_145:i32 = let %142
+        %144:ptr<private, i32, read_write> = access %temp, %x_145
+        %145:i32 = load %j_1
+        %146:ptr<private, i32, read_write> = access %data, %145
+        %147:i32 = load %146
+        store %144, %147
+        continue  # -> $B32
       }
-      %b32 = block {  # continuing
-        %126:i32 = load %j_1
-        %127:i32 = add %126, 1i
-        store %j_1, %127
-        next_iteration %b31
+      $B32: {  # continuing
+        %148:i32 = load %j_1
+        %149:i32 = add %148, 1i
+        store %j_1, %149
+        next_iteration  # -> $B31
       }
     }
     store %x_94, 0i
     store %x_93, 9i
     store %x_92, 1i
-    loop [b: %b35, c: %b36] {  # loop_6
-      %b35 = block {  # body
-        %128:i32 = load %x_92
-        %129:i32 = load %x_93
-        %130:bool = lte %128, %129
-        if %130 [t: %b37, f: %b38] {  # if_6
-          %b37 = block {  # true
+    loop [b: $B35, c: $B36] {  # loop_6
+      $B35: {  # body
+        %150:i32 = load %x_92
+        %151:i32 = load %x_93
+        %152:bool = lte %150, %151
+        if %152 [t: $B37, f: $B38] {  # if_6
+          $B37: {  # true
             exit_if  # if_6
           }
-          %b38 = block {  # false
+          $B38: {  # false
             exit_loop  # loop_6
           }
         }
-        %131:i32 = load %x_94
-        store %x_91, %131
-        loop [b: %b39, c: %b40] {  # loop_7
-          %b39 = block {  # body
-            %132:i32 = load %x_91
-            %133:i32 = load %x_93
-            %134:bool = lt %132, %133
-            if %134 [t: %b41, f: %b42] {  # if_7
-              %b41 = block {  # true
+        %153:i32 = load %x_94
+        store %x_91, %153
+        loop [b: $B39, c: $B40] {  # loop_7
+          $B39: {  # body
+            %154:i32 = load %x_91
+            %155:i32 = load %x_93
+            %156:bool = lt %154, %155
+            if %156 [t: $B41, f: $B42] {  # if_7
+              $B41: {  # true
                 exit_if  # if_7
               }
-              %b42 = block {  # false
+              $B42: {  # false
                 exit_loop  # loop_7
               }
             }
-            %135:i32 = load %x_91
-            store %x_90, %135
-            %x_170:i32 = load %x_91
-            %x_171:i32 = load %x_92
-            %x_173:array<i32, 10> = load %data
+            %157:i32 = load %x_91
+            store %x_90, %157
+            %158:i32 = load %x_91
+            %x_170:i32 = let %158
+            %160:i32 = load %x_92
+            %x_171:i32 = let %160
+            %162:array<i32, 10> = load %data
+            %x_173:array<i32, 10> = let %162
             store %data, array<i32, 10>(0i)
             store %data, %x_173
-            %139:i32 = add %x_170, %x_171
-            %140:i32 = sub %139, 1i
-            store %x_89, %140
-            %141:i32 = load %x_91
-            %142:i32 = load %x_92
-            %143:i32 = mul 2i, %142
-            %144:i32 = add %141, %143
-            %145:i32 = sub %144, 1i
-            %146:i32 = load %x_93
-            %147:i32 = min %145, %146
-            store %x_88, %147
-            %148:i32 = load %x_90
-            store %x_87, %148
-            %149:i32 = load %x_89
-            store %x_86, %149
-            %150:i32 = load %x_88
-            store %x_85, %150
-            %151:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
-            continue %b40
+            %164:i32 = add %x_170, %x_171
+            %165:i32 = sub %164, 1i
+            store %x_89, %165
+            %166:i32 = load %x_91
+            %167:i32 = load %x_92
+            %168:i32 = mul 2i, %167
+            %169:i32 = add %166, %168
+            %170:i32 = sub %169, 1i
+            %171:i32 = load %x_93
+            %172:i32 = min %170, %171
+            store %x_88, %172
+            %173:i32 = load %x_90
+            store %x_87, %173
+            %174:i32 = load %x_89
+            store %x_86, %174
+            %175:i32 = load %x_88
+            store %x_85, %175
+            %176:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
+            continue  # -> $B40
           }
-          %b40 = block {  # continuing
-            %152:i32 = load %x_91
-            %153:i32 = load %x_92
-            %154:i32 = mul 2i, %153
-            %155:i32 = add %152, %154
-            store %x_91, %155
-            next_iteration %b39
+          $B40: {  # continuing
+            %177:i32 = load %x_91
+            %178:i32 = load %x_92
+            %179:i32 = mul 2i, %178
+            %180:i32 = add %177, %179
+            store %x_91, %180
+            next_iteration  # -> $B39
           }
         }
-        continue %b36
+        continue  # -> $B36
       }
-      %b36 = block {  # continuing
-        %156:i32 = load %x_92
-        %157:i32 = mul 2i, %156
-        store %x_92, %157
-        next_iteration %b35
+      $B36: {  # continuing
+        %181:i32 = load %x_92
+        %182:i32 = mul 2i, %181
+        store %x_92, %182
+        next_iteration  # -> $B35
       }
     }
-    %158:f32 = load_vector_element %gl_FragCoord, 1u
-    %159:i32 = convert %158
-    %160:bool = lt %159, 30i
-    if %160 [t: %b43, f: %b44] {  # if_8
-      %b43 = block {  # true
-        %161:ptr<private, i32, read_write> = access %data, 0i
-        %162:i32 = load %161
-        %163:f32 = convert %162
-        %164:f32 = div %163, 10.0f
-        %165:f32 = add 0.5f, %164
-        store %grey, %165
+    %183:f32 = load_vector_element %gl_FragCoord, 1u
+    %184:i32 = call %tint_f32_to_i32, %183
+    %185:bool = lt %184, 30i
+    if %185 [t: $B43, f: $B44] {  # if_8
+      $B43: {  # true
+        %186:ptr<private, i32, read_write> = access %data, 0i
+        %187:i32 = load %186
+        %188:f32 = convert %187
+        %189:f32 = div %188, 10.0f
+        %190:f32 = add 0.5f, %189
+        store %grey, %190
         exit_if  # if_8
       }
-      %b44 = block {  # false
-        %166:f32 = load_vector_element %gl_FragCoord, 1u
-        %167:i32 = convert %166
-        %168:bool = lt %167, 60i
-        if %168 [t: %b45, f: %b46] {  # if_9
-          %b45 = block {  # true
-            %169:ptr<private, i32, read_write> = access %data, 1i
-            %170:i32 = load %169
-            %171:f32 = convert %170
-            %172:f32 = div %171, 10.0f
-            %173:f32 = add 0.5f, %172
-            store %grey, %173
+      $B44: {  # false
+        %191:f32 = load_vector_element %gl_FragCoord, 1u
+        %192:i32 = call %tint_f32_to_i32, %191
+        %193:bool = lt %192, 60i
+        if %193 [t: $B45, f: $B46] {  # if_9
+          $B45: {  # true
+            %194:ptr<private, i32, read_write> = access %data, 1i
+            %195:i32 = load %194
+            %196:f32 = convert %195
+            %197:f32 = div %196, 10.0f
+            %198:f32 = add 0.5f, %197
+            store %grey, %198
             exit_if  # if_9
           }
-          %b46 = block {  # false
-            %174:f32 = load_vector_element %gl_FragCoord, 1u
-            %175:i32 = convert %174
-            %176:bool = lt %175, 90i
-            if %176 [t: %b47, f: %b48] {  # if_10
-              %b47 = block {  # true
-                %177:ptr<private, i32, read_write> = access %data, 2i
-                %178:i32 = load %177
-                %179:f32 = convert %178
-                %180:f32 = div %179, 10.0f
-                %181:f32 = add 0.5f, %180
-                store %grey, %181
+          $B46: {  # false
+            %199:f32 = load_vector_element %gl_FragCoord, 1u
+            %200:i32 = call %tint_f32_to_i32, %199
+            %201:bool = lt %200, 90i
+            if %201 [t: $B47, f: $B48] {  # if_10
+              $B47: {  # true
+                %202:ptr<private, i32, read_write> = access %data, 2i
+                %203:i32 = load %202
+                %204:f32 = convert %203
+                %205:f32 = div %204, 10.0f
+                %206:f32 = add 0.5f, %205
+                store %grey, %206
                 exit_if  # if_10
               }
-              %b48 = block {  # false
-                %182:f32 = load_vector_element %gl_FragCoord, 1u
-                %183:i32 = convert %182
-                %184:bool = lt %183, 120i
-                if %184 [t: %b49, f: %b50] {  # if_11
-                  %b49 = block {  # true
-                    %185:ptr<private, i32, read_write> = access %data, 3i
-                    %186:i32 = load %185
-                    %187:f32 = convert %186
-                    %188:f32 = div %187, 10.0f
-                    %189:f32 = add 0.5f, %188
-                    store %grey, %189
+              $B48: {  # false
+                %207:f32 = load_vector_element %gl_FragCoord, 1u
+                %208:i32 = call %tint_f32_to_i32, %207
+                %209:bool = lt %208, 120i
+                if %209 [t: $B49, f: $B50] {  # if_11
+                  $B49: {  # true
+                    %210:ptr<private, i32, read_write> = access %data, 3i
+                    %211:i32 = load %210
+                    %212:f32 = convert %211
+                    %213:f32 = div %212, 10.0f
+                    %214:f32 = add 0.5f, %213
+                    store %grey, %214
                     exit_if  # if_11
                   }
-                  %b50 = block {  # false
-                    %190:f32 = load_vector_element %gl_FragCoord, 1u
-                    %191:i32 = convert %190
-                    %192:bool = lt %191, 150i
-                    if %192 [t: %b51, f: %b52] {  # if_12
-                      %b51 = block {  # true
-                        discard
+                  $B50: {  # false
+                    %215:f32 = load_vector_element %gl_FragCoord, 1u
+                    %216:i32 = call %tint_f32_to_i32, %215
+                    %217:bool = lt %216, 150i
+                    if %217 [t: $B51, f: $B52] {  # if_12
+                      $B51: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b52 = block {  # false
-                        %193:f32 = load_vector_element %gl_FragCoord, 1u
-                        %194:i32 = convert %193
-                        %195:bool = lt %194, 180i
-                        if %195 [t: %b53, f: %b54] {  # if_13
-                          %b53 = block {  # true
-                            %196:ptr<private, i32, read_write> = access %data, 5i
-                            %197:i32 = load %196
-                            %198:f32 = convert %197
-                            %199:f32 = div %198, 10.0f
-                            %200:f32 = add 0.5f, %199
-                            store %grey, %200
+                      $B52: {  # false
+                        %218:f32 = load_vector_element %gl_FragCoord, 1u
+                        %219:i32 = call %tint_f32_to_i32, %218
+                        %220:bool = lt %219, 180i
+                        if %220 [t: $B53, f: $B54] {  # if_13
+                          $B53: {  # true
+                            %221:ptr<private, i32, read_write> = access %data, 5i
+                            %222:i32 = load %221
+                            %223:f32 = convert %222
+                            %224:f32 = div %223, 10.0f
+                            %225:f32 = add 0.5f, %224
+                            store %grey, %225
                             exit_if  # if_13
                           }
-                          %b54 = block {  # false
-                            %201:f32 = load_vector_element %gl_FragCoord, 1u
-                            %202:i32 = convert %201
-                            %203:bool = lt %202, 210i
-                            if %203 [t: %b55, f: %b56] {  # if_14
-                              %b55 = block {  # true
-                                %204:ptr<private, i32, read_write> = access %data, 6i
-                                %205:i32 = load %204
-                                %206:f32 = convert %205
-                                %207:f32 = div %206, 10.0f
-                                %208:f32 = add 0.5f, %207
-                                store %grey, %208
+                          $B54: {  # false
+                            %226:f32 = load_vector_element %gl_FragCoord, 1u
+                            %227:i32 = call %tint_f32_to_i32, %226
+                            %228:bool = lt %227, 210i
+                            if %228 [t: $B55, f: $B56] {  # if_14
+                              $B55: {  # true
+                                %229:ptr<private, i32, read_write> = access %data, 6i
+                                %230:i32 = load %229
+                                %231:f32 = convert %230
+                                %232:f32 = div %231, 10.0f
+                                %233:f32 = add 0.5f, %232
+                                store %grey, %233
                                 exit_if  # if_14
                               }
-                              %b56 = block {  # false
-                                %209:f32 = load_vector_element %gl_FragCoord, 1u
-                                %210:i32 = convert %209
-                                %211:bool = lt %210, 240i
-                                if %211 [t: %b57, f: %b58] {  # if_15
-                                  %b57 = block {  # true
-                                    %212:ptr<private, i32, read_write> = access %data, 7i
-                                    %213:i32 = load %212
-                                    %214:f32 = convert %213
-                                    %215:f32 = div %214, 10.0f
-                                    %216:f32 = add 0.5f, %215
-                                    store %grey, %216
+                              $B56: {  # false
+                                %234:f32 = load_vector_element %gl_FragCoord, 1u
+                                %235:i32 = call %tint_f32_to_i32, %234
+                                %236:bool = lt %235, 240i
+                                if %236 [t: $B57, f: $B58] {  # if_15
+                                  $B57: {  # true
+                                    %237:ptr<private, i32, read_write> = access %data, 7i
+                                    %238:i32 = load %237
+                                    %239:f32 = convert %238
+                                    %240:f32 = div %239, 10.0f
+                                    %241:f32 = add 0.5f, %240
+                                    store %grey, %241
                                     exit_if  # if_15
                                   }
-                                  %b58 = block {  # false
-                                    %217:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %218:i32 = convert %217
-                                    %219:bool = lt %218, 270i
-                                    if %219 [t: %b59, f: %b60] {  # if_16
-                                      %b59 = block {  # true
-                                        %220:ptr<private, i32, read_write> = access %data, 8i
-                                        %221:i32 = load %220
-                                        %222:f32 = convert %221
-                                        %223:f32 = div %222, 10.0f
-                                        %224:f32 = add 0.5f, %223
-                                        store %grey, %224
+                                  $B58: {  # false
+                                    %242:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %243:i32 = call %tint_f32_to_i32, %242
+                                    %244:bool = lt %243, 270i
+                                    if %244 [t: $B59, f: $B60] {  # if_16
+                                      $B59: {  # true
+                                        %245:ptr<private, i32, read_write> = access %data, 8i
+                                        %246:i32 = load %245
+                                        %247:f32 = convert %246
+                                        %248:f32 = div %247, 10.0f
+                                        %249:f32 = add 0.5f, %248
+                                        store %grey, %249
                                         exit_if  # if_16
                                       }
-                                      %b60 = block {  # false
-                                        discard
+                                      $B60: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -510,27 +534,35 @@
         exit_if  # if_8
       }
     }
-    %225:f32 = load %grey
-    %x_297:vec3<f32> = construct %225
-    %227:f32 = access %x_297, 0u
-    %228:f32 = access %x_297, 1u
-    %229:f32 = access %x_297, 2u
-    %230:vec4<f32> = construct %227, %228, %229, 1.0f
-    store %x_GLF_color, %230
+    %250:f32 = load %grey
+    %251:vec3<f32> = construct %250
+    %x_297:vec3<f32> = let %251
+    %253:f32 = access %x_297, 0u
+    %254:f32 = access %x_297, 1u
+    %255:f32 = access %x_297, 2u
+    %256:vec4<f32> = construct %253, %254, %255, 1.0f
+    store %x_GLF_color, %256
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b61 {
-  %b61 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B61: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %233:void = call %main_1
-    %234:vec4<f32> = load %x_GLF_color
-    %235:main_out = construct %234
-    ret %235
+    %259:void = call %main_1
+    %260:vec4<f32> = load %x_GLF_color
+    %261:main_out = construct %260
+    %262:bool = load %continue_execution
+    %263:bool = eq %262, false
+    if %263 [t: $B62] {  # if_17
+      $B62: {  # true
+        terminate_invocation
+      }
+    }
+    ret %261
   }
 }
-%mergeSort_ = func():void -> %b62 {
-  %b62 = block {
+%mergeSort_ = func():void {
+  $B63: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -544,79 +576,89 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b63, c: %b64] {  # loop_8
-      %b63 = block {  # body
-        %247:i32 = load %m
-        %248:i32 = load %high
-        %249:bool = lte %247, %248
-        if %249 [t: %b65, f: %b66] {  # if_17
-          %b65 = block {  # true
-            exit_if  # if_17
+    loop [b: $B64, c: $B65] {  # loop_8
+      $B64: {  # body
+        %275:i32 = load %m
+        %276:i32 = load %high
+        %277:bool = lte %275, %276
+        if %277 [t: $B66, f: $B67] {  # if_18
+          $B66: {  # true
+            exit_if  # if_18
           }
-          %b66 = block {  # false
+          $B67: {  # false
             exit_loop  # loop_8
           }
         }
-        %250:i32 = load %low
-        store %i_2, %250
-        loop [b: %b67, c: %b68] {  # loop_9
-          %b67 = block {  # body
-            %251:i32 = load %i_2
-            %252:i32 = load %high
-            %253:bool = lt %251, %252
-            if %253 [t: %b69, f: %b70] {  # if_18
-              %b69 = block {  # true
-                exit_if  # if_18
+        %278:i32 = load %low
+        store %i_2, %278
+        loop [b: $B68, c: $B69] {  # loop_9
+          $B68: {  # body
+            %279:i32 = load %i_2
+            %280:i32 = load %high
+            %281:bool = lt %279, %280
+            if %281 [t: $B70, f: $B71] {  # if_19
+              $B70: {  # true
+                exit_if  # if_19
               }
-              %b70 = block {  # false
+              $B71: {  # false
                 exit_loop  # loop_9
               }
             }
-            %254:i32 = load %i_2
-            store %f_1, %254
-            %255:i32 = load %i_2
-            %256:i32 = load %m
-            %257:i32 = add %255, %256
-            %258:i32 = sub %257, 1i
-            store %mid_1, %258
-            %259:i32 = load %i_2
-            %260:i32 = load %m
-            %261:i32 = mul 2i, %260
-            %262:i32 = add %259, %261
-            %263:i32 = sub %262, 1i
-            %264:i32 = load %high
-            %265:i32 = min %263, %264
-            store %to_1, %265
-            %266:i32 = load %f_1
-            store %param, %266
-            %267:i32 = load %mid_1
-            store %param_1, %267
-            %268:i32 = load %to_1
-            store %param_2, %268
-            %269:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b68
+            %282:i32 = load %i_2
+            store %f_1, %282
+            %283:i32 = load %i_2
+            %284:i32 = load %m
+            %285:i32 = add %283, %284
+            %286:i32 = sub %285, 1i
+            store %mid_1, %286
+            %287:i32 = load %i_2
+            %288:i32 = load %m
+            %289:i32 = mul 2i, %288
+            %290:i32 = add %287, %289
+            %291:i32 = sub %290, 1i
+            %292:i32 = load %high
+            %293:i32 = min %291, %292
+            store %to_1, %293
+            %294:i32 = load %f_1
+            store %param, %294
+            %295:i32 = load %mid_1
+            store %param_1, %295
+            %296:i32 = load %to_1
+            store %param_2, %296
+            %297:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B69
           }
-          %b68 = block {  # continuing
-            %270:i32 = load %i_2
-            %271:i32 = load %m
-            %272:i32 = mul 2i, %271
-            %273:i32 = add %270, %272
-            store %i_2, %273
-            next_iteration %b67
+          $B69: {  # continuing
+            %298:i32 = load %i_2
+            %299:i32 = load %m
+            %300:i32 = mul 2i, %299
+            %301:i32 = add %298, %300
+            store %i_2, %301
+            next_iteration  # -> $B68
           }
         }
-        continue %b64
+        continue  # -> $B65
       }
-      %b64 = block {  # continuing
-        %274:i32 = load %m
-        %275:i32 = mul 2i, %274
-        store %m, %275
-        next_iteration %b63
+      $B65: {  # continuing
+        %302:i32 = load %m
+        %303:i32 = mul 2i, %302
+        store %m, %303
+        next_iteration  # -> $B64
       }
     }
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B72: {
+    %305:i32 = convert %value
+    %306:bool = gte %value, -2147483648.0f
+    %307:i32 = select -2147483648i, %305, %306
+    %308:bool = lte %value, 2147483520.0f
+    %309:i32 = select 2147483647i, %307, %308
+    ret %309
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.msl
index 2f38fb7..718309b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,152 +8,183 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_303:i32 = load %f
+    %15:i32 = load %f
+    %x_303:i32 = let %15
     store %k, %x_303
-    %x_304:i32 = load %f
+    %17:i32 = load %f
+    %x_304:i32 = let %17
     store %i, %x_304
-    %x_305:i32 = load %mid
-    %17:i32 = add %x_305, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_311:i32 = load %i
-        %x_312:i32 = load %mid
-        %x_314:i32 = load %j
-        %x_315:i32 = load %to
-        %22:bool = lte %x_311, %x_312
-        %23:bool = lte %x_314, %x_315
-        %24:bool = and %22, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %mid
+    %x_305:i32 = let %19
+    %21:i32 = add %x_305, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %i
+        %x_311:i32 = let %22
+        %24:i32 = load %mid
+        %x_312:i32 = let %24
+        %26:i32 = load %j
+        %x_314:i32 = let %26
+        %28:i32 = load %to
+        %x_315:i32 = let %28
+        %30:bool = lte %x_311, %x_312
+        %31:bool = lte %x_314, %x_315
+        %32:bool = and %30, %31
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_319:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %x_319
-        %x_321:i32 = load %26
-        %x_322:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %x_322
-        %x_324:i32 = load %29
-        %31:bool = lt %x_321, %x_324
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_329:i32 = load %k
-            %33:i32 = add %x_329, 1i
-            store %k, %33
-            %x_331:i32 = load %i
-            %35:i32 = add %x_331, 1i
-            store %i, %35
-            %36:ptr<private, i32, read_write> = access %data, %x_331
-            %x_334:i32 = load %36
-            %38:ptr<private, i32, read_write> = access %temp, %x_329
-            store %38, %x_334
+        %33:i32 = load %i
+        %x_319:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_319
+        %36:i32 = load %35
+        %x_321:i32 = let %36
+        %38:i32 = load %j
+        %x_322:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %data, %x_322
+        %41:i32 = load %40
+        %x_324:i32 = let %41
+        %43:bool = lt %x_321, %x_324
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %44:i32 = load %k
+            %x_329:i32 = let %44
+            %46:i32 = add %x_329, 1i
+            store %k, %46
+            %47:i32 = load %i
+            %x_331:i32 = let %47
+            %49:i32 = add %x_331, 1i
+            store %i, %49
+            %50:ptr<private, i32, read_write> = access %data, %x_331
+            %51:i32 = load %50
+            %x_334:i32 = let %51
+            %53:ptr<private, i32, read_write> = access %temp, %x_329
+            store %53, %x_334
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_336:i32 = load %k
-            %40:i32 = add %x_336, 1i
-            store %k, %40
-            %x_338:i32 = load %j
-            %42:i32 = add %x_338, 1i
-            store %j, %42
-            %43:ptr<private, i32, read_write> = access %data, %x_338
-            %x_341:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %temp, %x_336
-            store %45, %x_341
+          $B8: {  # false
+            %54:i32 = load %k
+            %x_336:i32 = let %54
+            %56:i32 = add %x_336, 1i
+            store %k, %56
+            %57:i32 = load %j
+            %x_338:i32 = let %57
+            %59:i32 = add %x_338, 1i
+            store %j, %59
+            %60:ptr<private, i32, read_write> = access %data, %x_338
+            %61:i32 = load %60
+            %x_341:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %temp, %x_336
+            store %63, %x_341
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_347:i32 = load %i
-        %x_349:i32 = load %i
-        %x_350:i32 = load %mid
-        %49:bool = lt %x_347, 10i
-        %50:bool = lte %x_349, %x_350
-        %51:bool = and %49, %50
-        if %51 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %64:i32 = load %i
+        %x_347:i32 = let %64
+        %66:i32 = load %i
+        %x_349:i32 = let %66
+        %68:i32 = load %mid
+        %x_350:i32 = let %68
+        %70:bool = lt %x_347, 10i
+        %71:bool = lte %x_349, %x_350
+        %72:bool = and %70, %71
+        if %72 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_354:i32 = load %k
-        %53:i32 = add %x_354, 1i
-        store %k, %53
-        %x_356:i32 = load %i
-        %55:i32 = add %x_356, 1i
-        store %i, %55
-        %56:ptr<private, i32, read_write> = access %data, %x_356
-        %x_359:i32 = load %56
-        %58:ptr<private, i32, read_write> = access %temp, %x_354
-        store %58, %x_359
-        continue %b10
+        %73:i32 = load %k
+        %x_354:i32 = let %73
+        %75:i32 = add %x_354, 1i
+        store %k, %75
+        %76:i32 = load %i
+        %x_356:i32 = let %76
+        %78:i32 = add %x_356, 1i
+        store %i, %78
+        %79:ptr<private, i32, read_write> = access %data, %x_356
+        %80:i32 = load %79
+        %x_359:i32 = let %80
+        %82:ptr<private, i32, read_write> = access %temp, %x_354
+        store %82, %x_359
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_361:i32 = load %f
+    %83:i32 = load %f
+    %x_361:i32 = let %83
     store %i_1, %x_361
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_366:i32 = load %i_1
-        %x_367:i32 = load %to
-        %62:bool = lte %x_366, %x_367
-        if %62 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %85:i32 = load %i_1
+        %x_366:i32 = let %85
+        %87:i32 = load %to
+        %x_367:i32 = let %87
+        %89:bool = lte %x_366, %x_367
+        if %89 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_370:i32 = load %i_1
-        %x_371:i32 = load %i_1
-        %65:ptr<private, i32, read_write> = access %temp, %x_371
-        %x_373:i32 = load %65
-        %67:ptr<private, i32, read_write> = access %data, %x_370
-        store %67, %x_373
-        continue %b14
+        %90:i32 = load %i_1
+        %x_370:i32 = let %90
+        %92:i32 = load %i_1
+        %x_371:i32 = let %92
+        %94:ptr<private, i32, read_write> = access %temp, %x_371
+        %95:i32 = load %94
+        %x_373:i32 = let %95
+        %97:ptr<private, i32, read_write> = access %data, %x_370
+        store %97, %x_373
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_375:i32 = load %i_1
-        %69:i32 = add %x_375, 1i
-        store %i_1, %69
-        next_iteration %b13
+      $B14: {  # continuing
+        %98:i32 = load %i_1
+        %x_375:i32 = let %98
+        %100:i32 = add %x_375, 1i
+        store %i_1, %100
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b17 {
-  %b17 = block {
+%main_1 = func():void {
+  $B17: {
     %x_85:ptr<function, i32, read_write> = var
     %x_86:ptr<function, i32, read_write> = var
     %x_87:ptr<function, i32, read_write> = var
@@ -167,316 +198,370 @@
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %84:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_96:f32 = load_vector_element %84, 0u
-    %86:i32 = convert %x_96
-    store %i_3, %86
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_102:i32 = load %i_3
-        switch %x_102 [c: (9i, %b20), c: (8i, %b21), c: (7i, %b22), c: (6i, %b23), c: (5i, %b24), c: (4i, %b25), c: (3i, %b26), c: (2i, %b27), c: (1i, %b28), c: (0i, %b29), c: (default, %b30)] {  # switch_1
-          %b20 = block {  # case
-            %x_132:i32 = load %i_3
-            %89:ptr<private, i32, read_write> = access %data, %x_132
-            store %89, -5i
+    %115:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %116:f32 = load_vector_element %115, 0u
+    %x_96:f32 = let %116
+    %118:i32 = call %tint_f32_to_i32, %x_96
+    store %i_3, %118
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %120:i32 = load %i_3
+        %x_102:i32 = let %120
+        switch %x_102 [c: (9i, $B20), c: (8i, $B21), c: (7i, $B22), c: (6i, $B23), c: (5i, $B24), c: (4i, $B25), c: (3i, $B26), c: (2i, $B27), c: (1i, $B28), c: (0i, $B29), c: (default, $B30)] {  # switch_1
+          $B20: {  # case
+            %122:i32 = load %i_3
+            %x_132:i32 = let %122
+            %124:ptr<private, i32, read_write> = access %data, %x_132
+            store %124, -5i
             exit_switch  # switch_1
           }
-          %b21 = block {  # case
-            %x_130:i32 = load %i_3
-            %91:ptr<private, i32, read_write> = access %data, %x_130
-            store %91, -4i
+          $B21: {  # case
+            %125:i32 = load %i_3
+            %x_130:i32 = let %125
+            %127:ptr<private, i32, read_write> = access %data, %x_130
+            store %127, -4i
             exit_switch  # switch_1
           }
-          %b22 = block {  # case
-            %x_128:i32 = load %i_3
-            %93:ptr<private, i32, read_write> = access %data, %x_128
-            store %93, -3i
+          $B22: {  # case
+            %128:i32 = load %i_3
+            %x_128:i32 = let %128
+            %130:ptr<private, i32, read_write> = access %data, %x_128
+            store %130, -3i
             exit_switch  # switch_1
           }
-          %b23 = block {  # case
-            %x_126:i32 = load %i_3
-            %95:ptr<private, i32, read_write> = access %data, %x_126
-            store %95, -2i
+          $B23: {  # case
+            %131:i32 = load %i_3
+            %x_126:i32 = let %131
+            %133:ptr<private, i32, read_write> = access %data, %x_126
+            store %133, -2i
             exit_switch  # switch_1
           }
-          %b24 = block {  # case
-            %x_124:i32 = load %i_3
-            %97:ptr<private, i32, read_write> = access %data, %x_124
-            store %97, -1i
+          $B24: {  # case
+            %134:i32 = load %i_3
+            %x_124:i32 = let %134
+            %136:ptr<private, i32, read_write> = access %data, %x_124
+            store %136, -1i
             exit_switch  # switch_1
           }
-          %b25 = block {  # case
-            %x_122:i32 = load %i_3
-            %99:ptr<private, i32, read_write> = access %data, %x_122
-            store %99, 0i
+          $B25: {  # case
+            %137:i32 = load %i_3
+            %x_122:i32 = let %137
+            %139:ptr<private, i32, read_write> = access %data, %x_122
+            store %139, 0i
             exit_switch  # switch_1
           }
-          %b26 = block {  # case
-            %x_120:i32 = load %i_3
-            %101:ptr<private, i32, read_write> = access %data, %x_120
-            store %101, 1i
+          $B26: {  # case
+            %140:i32 = load %i_3
+            %x_120:i32 = let %140
+            %142:ptr<private, i32, read_write> = access %data, %x_120
+            store %142, 1i
             exit_switch  # switch_1
           }
-          %b27 = block {  # case
-            %x_118:i32 = load %i_3
-            %103:ptr<private, i32, read_write> = access %data, %x_118
-            store %103, 2i
+          $B27: {  # case
+            %143:i32 = load %i_3
+            %x_118:i32 = let %143
+            %145:ptr<private, i32, read_write> = access %data, %x_118
+            store %145, 2i
             exit_switch  # switch_1
           }
-          %b28 = block {  # case
-            %x_116:i32 = load %i_3
-            %105:ptr<private, i32, read_write> = access %data, %x_116
-            store %105, 3i
+          $B28: {  # case
+            %146:i32 = load %i_3
+            %x_116:i32 = let %146
+            %148:ptr<private, i32, read_write> = access %data, %x_116
+            store %148, 3i
             exit_switch  # switch_1
           }
-          %b29 = block {  # case
-            %x_114:i32 = load %i_3
-            %107:ptr<private, i32, read_write> = access %data, %x_114
-            store %107, 4i
+          $B29: {  # case
+            %149:i32 = load %i_3
+            %x_114:i32 = let %149
+            %151:ptr<private, i32, read_write> = access %data, %x_114
+            store %151, 4i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
+          $B30: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_134:i32 = load %i_3
-        %109:i32 = add %x_134, 1i
-        store %i_3, %109
-        continue %b19
+        %152:i32 = load %i_3
+        %x_134:i32 = let %152
+        %154:i32 = add %x_134, 1i
+        store %i_3, %154
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_136:i32 = load %i_3
-        %111:bool = lt %x_136, 10i
-        %112:bool = eq %111, false
-        break_if %112 %b18
+      $B19: {  # continuing
+        %155:i32 = load %i_3
+        %x_136:i32 = let %155
+        %157:bool = lt %x_136, 10i
+        %158:bool = eq %157, false
+        break_if %158  # -> [t: exit_loop loop_4, f: $B18]
       }
     }
     store %j_1, 0i
-    loop [b: %b31, c: %b32] {  # loop_5
-      %b31 = block {  # body
-        %x_142:i32 = load %j_1
-        %114:bool = lt %x_142, 10i
-        if %114 [t: %b33, f: %b34] {  # if_5
-          %b33 = block {  # true
+    loop [b: $B31, c: $B32] {  # loop_5
+      $B31: {  # body
+        %159:i32 = load %j_1
+        %x_142:i32 = let %159
+        %161:bool = lt %x_142, 10i
+        if %161 [t: $B33, f: $B34] {  # if_5
+          $B33: {  # true
             exit_if  # if_5
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_145:i32 = load %j_1
-        %x_146:i32 = load %j_1
-        %117:ptr<private, i32, read_write> = access %data, %x_146
-        %x_148:i32 = load %117
-        %119:ptr<private, i32, read_write> = access %temp, %x_145
-        store %119, %x_148
-        continue %b32
+        %162:i32 = load %j_1
+        %x_145:i32 = let %162
+        %164:i32 = load %j_1
+        %x_146:i32 = let %164
+        %166:ptr<private, i32, read_write> = access %data, %x_146
+        %167:i32 = load %166
+        %x_148:i32 = let %167
+        %169:ptr<private, i32, read_write> = access %temp, %x_145
+        store %169, %x_148
+        continue  # -> $B32
       }
-      %b32 = block {  # continuing
-        %x_150:i32 = load %j_1
-        %121:i32 = add %x_150, 1i
-        store %j_1, %121
-        next_iteration %b31
+      $B32: {  # continuing
+        %170:i32 = load %j_1
+        %x_150:i32 = let %170
+        %172:i32 = add %x_150, 1i
+        store %j_1, %172
+        next_iteration  # -> $B31
       }
     }
     store %x_94, 0i
     store %x_93, 9i
     store %x_92, 1i
-    loop [b: %b35, c: %b36] {  # loop_6
-      %b35 = block {  # body
-        %x_156:i32 = load %x_92
-        %x_157:i32 = load %x_93
-        %124:bool = lte %x_156, %x_157
-        if %124 [t: %b37, f: %b38] {  # if_6
-          %b37 = block {  # true
+    loop [b: $B35, c: $B36] {  # loop_6
+      $B35: {  # body
+        %173:i32 = load %x_92
+        %x_156:i32 = let %173
+        %175:i32 = load %x_93
+        %x_157:i32 = let %175
+        %177:bool = lte %x_156, %x_157
+        if %177 [t: $B37, f: $B38] {  # if_6
+          $B37: {  # true
             exit_if  # if_6
           }
-          %b38 = block {  # false
+          $B38: {  # false
             exit_loop  # loop_6
           }
         }
-        %x_160:i32 = load %x_94
+        %178:i32 = load %x_94
+        %x_160:i32 = let %178
         store %x_91, %x_160
-        loop [b: %b39, c: %b40] {  # loop_7
-          %b39 = block {  # body
-            %x_165:i32 = load %x_91
-            %x_166:i32 = load %x_93
-            %128:bool = lt %x_165, %x_166
-            if %128 [t: %b41, f: %b42] {  # if_7
-              %b41 = block {  # true
+        loop [b: $B39, c: $B40] {  # loop_7
+          $B39: {  # body
+            %180:i32 = load %x_91
+            %x_165:i32 = let %180
+            %182:i32 = load %x_93
+            %x_166:i32 = let %182
+            %184:bool = lt %x_165, %x_166
+            if %184 [t: $B41, f: $B42] {  # if_7
+              $B41: {  # true
                 exit_if  # if_7
               }
-              %b42 = block {  # false
+              $B42: {  # false
                 exit_loop  # loop_7
               }
             }
-            %x_169:i32 = load %x_91
+            %185:i32 = load %x_91
+            %x_169:i32 = let %185
             store %x_90, %x_169
-            %x_170:i32 = load %x_91
-            %x_171:i32 = load %x_92
-            %x_173:array<i32, 10> = load %data
+            %187:i32 = load %x_91
+            %x_170:i32 = let %187
+            %189:i32 = load %x_92
+            %x_171:i32 = let %189
+            %191:array<i32, 10> = load %data
+            %x_173:array<i32, 10> = let %191
             store %data, array<i32, 10>(0i)
             store %data, %x_173
-            %133:i32 = add %x_170, %x_171
-            %134:i32 = sub %133, 1i
-            store %x_89, %134
-            %x_175:i32 = load %x_91
-            %x_176:i32 = load %x_92
-            %x_180:i32 = load %x_93
-            %138:i32 = mul 2i, %x_176
-            %139:i32 = add %x_175, %138
-            %140:i32 = sub %139, 1i
-            %141:i32 = min %140, %x_180
-            store %x_88, %141
-            %x_182:i32 = load %x_90
+            %193:i32 = add %x_170, %x_171
+            %194:i32 = sub %193, 1i
+            store %x_89, %194
+            %195:i32 = load %x_91
+            %x_175:i32 = let %195
+            %197:i32 = load %x_92
+            %x_176:i32 = let %197
+            %199:i32 = load %x_93
+            %x_180:i32 = let %199
+            %201:i32 = mul 2i, %x_176
+            %202:i32 = add %x_175, %201
+            %203:i32 = sub %202, 1i
+            %204:i32 = min %203, %x_180
+            store %x_88, %204
+            %205:i32 = load %x_90
+            %x_182:i32 = let %205
             store %x_87, %x_182
-            %x_183:i32 = load %x_89
+            %207:i32 = load %x_89
+            %x_183:i32 = let %207
             store %x_86, %x_183
-            %x_184:i32 = load %x_88
+            %209:i32 = load %x_88
+            %x_184:i32 = let %209
             store %x_85, %x_184
-            %145:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
-            continue %b40
+            %211:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
+            continue  # -> $B40
           }
-          %b40 = block {  # continuing
-            %x_186:i32 = load %x_92
-            %x_188:i32 = load %x_91
-            %148:i32 = mul 2i, %x_186
-            %149:i32 = add %x_188, %148
-            store %x_91, %149
-            next_iteration %b39
+          $B40: {  # continuing
+            %212:i32 = load %x_92
+            %x_186:i32 = let %212
+            %214:i32 = load %x_91
+            %x_188:i32 = let %214
+            %216:i32 = mul 2i, %x_186
+            %217:i32 = add %x_188, %216
+            store %x_91, %217
+            next_iteration  # -> $B39
           }
         }
-        continue %b36
+        continue  # -> $B36
       }
-      %b36 = block {  # continuing
-        %x_190:i32 = load %x_92
-        %151:i32 = mul 2i, %x_190
-        store %x_92, %151
-        next_iteration %b35
+      $B36: {  # continuing
+        %218:i32 = load %x_92
+        %x_190:i32 = let %218
+        %220:i32 = mul 2i, %x_190
+        store %x_92, %220
+        next_iteration  # -> $B35
       }
     }
-    %x_194:f32 = load_vector_element %gl_FragCoord, 1u
-    %153:i32 = convert %x_194
-    %154:bool = lt %153, 30i
-    if %154 [t: %b43, f: %b44] {  # if_8
-      %b43 = block {  # true
-        %155:ptr<private, i32, read_write> = access %data, 0i
-        %x_201:i32 = load %155
-        %157:f32 = convert %x_201
-        %158:f32 = div %157, 10.0f
-        %159:f32 = add 0.5f, %158
-        store %grey, %159
+    %221:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_194:f32 = let %221
+    %223:i32 = call %tint_f32_to_i32, %x_194
+    %224:bool = lt %223, 30i
+    if %224 [t: $B43, f: $B44] {  # if_8
+      $B43: {  # true
+        %225:ptr<private, i32, read_write> = access %data, 0i
+        %226:i32 = load %225
+        %x_201:i32 = let %226
+        %228:f32 = convert %x_201
+        %229:f32 = div %228, 10.0f
+        %230:f32 = add 0.5f, %229
+        store %grey, %230
         exit_if  # if_8
       }
-      %b44 = block {  # false
-        %x_206:f32 = load_vector_element %gl_FragCoord, 1u
-        %161:i32 = convert %x_206
-        %162:bool = lt %161, 60i
-        if %162 [t: %b45, f: %b46] {  # if_9
-          %b45 = block {  # true
-            %163:ptr<private, i32, read_write> = access %data, 1i
-            %x_213:i32 = load %163
-            %165:f32 = convert %x_213
-            %166:f32 = div %165, 10.0f
-            %167:f32 = add 0.5f, %166
-            store %grey, %167
+      $B44: {  # false
+        %231:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_206:f32 = let %231
+        %233:i32 = call %tint_f32_to_i32, %x_206
+        %234:bool = lt %233, 60i
+        if %234 [t: $B45, f: $B46] {  # if_9
+          $B45: {  # true
+            %235:ptr<private, i32, read_write> = access %data, 1i
+            %236:i32 = load %235
+            %x_213:i32 = let %236
+            %238:f32 = convert %x_213
+            %239:f32 = div %238, 10.0f
+            %240:f32 = add 0.5f, %239
+            store %grey, %240
             exit_if  # if_9
           }
-          %b46 = block {  # false
-            %x_218:f32 = load_vector_element %gl_FragCoord, 1u
-            %169:i32 = convert %x_218
-            %170:bool = lt %169, 90i
-            if %170 [t: %b47, f: %b48] {  # if_10
-              %b47 = block {  # true
-                %171:ptr<private, i32, read_write> = access %data, 2i
-                %x_225:i32 = load %171
-                %173:f32 = convert %x_225
-                %174:f32 = div %173, 10.0f
-                %175:f32 = add 0.5f, %174
-                store %grey, %175
+          $B46: {  # false
+            %241:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_218:f32 = let %241
+            %243:i32 = call %tint_f32_to_i32, %x_218
+            %244:bool = lt %243, 90i
+            if %244 [t: $B47, f: $B48] {  # if_10
+              $B47: {  # true
+                %245:ptr<private, i32, read_write> = access %data, 2i
+                %246:i32 = load %245
+                %x_225:i32 = let %246
+                %248:f32 = convert %x_225
+                %249:f32 = div %248, 10.0f
+                %250:f32 = add 0.5f, %249
+                store %grey, %250
                 exit_if  # if_10
               }
-              %b48 = block {  # false
-                %x_230:f32 = load_vector_element %gl_FragCoord, 1u
-                %177:i32 = convert %x_230
-                %178:bool = lt %177, 120i
-                if %178 [t: %b49, f: %b50] {  # if_11
-                  %b49 = block {  # true
-                    %179:ptr<private, i32, read_write> = access %data, 3i
-                    %x_237:i32 = load %179
-                    %181:f32 = convert %x_237
-                    %182:f32 = div %181, 10.0f
-                    %183:f32 = add 0.5f, %182
-                    store %grey, %183
+              $B48: {  # false
+                %251:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_230:f32 = let %251
+                %253:i32 = call %tint_f32_to_i32, %x_230
+                %254:bool = lt %253, 120i
+                if %254 [t: $B49, f: $B50] {  # if_11
+                  $B49: {  # true
+                    %255:ptr<private, i32, read_write> = access %data, 3i
+                    %256:i32 = load %255
+                    %x_237:i32 = let %256
+                    %258:f32 = convert %x_237
+                    %259:f32 = div %258, 10.0f
+                    %260:f32 = add 0.5f, %259
+                    store %grey, %260
                     exit_if  # if_11
                   }
-                  %b50 = block {  # false
-                    %x_242:f32 = load_vector_element %gl_FragCoord, 1u
-                    %185:i32 = convert %x_242
-                    %186:bool = lt %185, 150i
-                    if %186 [t: %b51, f: %b52] {  # if_12
-                      %b51 = block {  # true
-                        discard
+                  $B50: {  # false
+                    %261:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_242:f32 = let %261
+                    %263:i32 = call %tint_f32_to_i32, %x_242
+                    %264:bool = lt %263, 150i
+                    if %264 [t: $B51, f: $B52] {  # if_12
+                      $B51: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b52 = block {  # false
-                        %x_249:f32 = load_vector_element %gl_FragCoord, 1u
-                        %188:i32 = convert %x_249
-                        %189:bool = lt %188, 180i
-                        if %189 [t: %b53, f: %b54] {  # if_13
-                          %b53 = block {  # true
-                            %190:ptr<private, i32, read_write> = access %data, 5i
-                            %x_256:i32 = load %190
-                            %192:f32 = convert %x_256
-                            %193:f32 = div %192, 10.0f
-                            %194:f32 = add 0.5f, %193
-                            store %grey, %194
+                      $B52: {  # false
+                        %265:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_249:f32 = let %265
+                        %267:i32 = call %tint_f32_to_i32, %x_249
+                        %268:bool = lt %267, 180i
+                        if %268 [t: $B53, f: $B54] {  # if_13
+                          $B53: {  # true
+                            %269:ptr<private, i32, read_write> = access %data, 5i
+                            %270:i32 = load %269
+                            %x_256:i32 = let %270
+                            %272:f32 = convert %x_256
+                            %273:f32 = div %272, 10.0f
+                            %274:f32 = add 0.5f, %273
+                            store %grey, %274
                             exit_if  # if_13
                           }
-                          %b54 = block {  # false
-                            %x_261:f32 = load_vector_element %gl_FragCoord, 1u
-                            %196:i32 = convert %x_261
-                            %197:bool = lt %196, 210i
-                            if %197 [t: %b55, f: %b56] {  # if_14
-                              %b55 = block {  # true
-                                %198:ptr<private, i32, read_write> = access %data, 6i
-                                %x_268:i32 = load %198
-                                %200:f32 = convert %x_268
-                                %201:f32 = div %200, 10.0f
-                                %202:f32 = add 0.5f, %201
-                                store %grey, %202
+                          $B54: {  # false
+                            %275:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_261:f32 = let %275
+                            %277:i32 = call %tint_f32_to_i32, %x_261
+                            %278:bool = lt %277, 210i
+                            if %278 [t: $B55, f: $B56] {  # if_14
+                              $B55: {  # true
+                                %279:ptr<private, i32, read_write> = access %data, 6i
+                                %280:i32 = load %279
+                                %x_268:i32 = let %280
+                                %282:f32 = convert %x_268
+                                %283:f32 = div %282, 10.0f
+                                %284:f32 = add 0.5f, %283
+                                store %grey, %284
                                 exit_if  # if_14
                               }
-                              %b56 = block {  # false
-                                %x_273:f32 = load_vector_element %gl_FragCoord, 1u
-                                %204:i32 = convert %x_273
-                                %205:bool = lt %204, 240i
-                                if %205 [t: %b57, f: %b58] {  # if_15
-                                  %b57 = block {  # true
-                                    %206:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_280:i32 = load %206
-                                    %208:f32 = convert %x_280
-                                    %209:f32 = div %208, 10.0f
-                                    %210:f32 = add 0.5f, %209
-                                    store %grey, %210
+                              $B56: {  # false
+                                %285:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_273:f32 = let %285
+                                %287:i32 = call %tint_f32_to_i32, %x_273
+                                %288:bool = lt %287, 240i
+                                if %288 [t: $B57, f: $B58] {  # if_15
+                                  $B57: {  # true
+                                    %289:ptr<private, i32, read_write> = access %data, 7i
+                                    %290:i32 = load %289
+                                    %x_280:i32 = let %290
+                                    %292:f32 = convert %x_280
+                                    %293:f32 = div %292, 10.0f
+                                    %294:f32 = add 0.5f, %293
+                                    store %grey, %294
                                     exit_if  # if_15
                                   }
-                                  %b58 = block {  # false
-                                    %x_285:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %212:i32 = convert %x_285
-                                    %213:bool = lt %212, 270i
-                                    if %213 [t: %b59, f: %b60] {  # if_16
-                                      %b59 = block {  # true
-                                        %214:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_292:i32 = load %214
-                                        %216:f32 = convert %x_292
-                                        %217:f32 = div %216, 10.0f
-                                        %218:f32 = add 0.5f, %217
-                                        store %grey, %218
+                                  $B58: {  # false
+                                    %295:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_285:f32 = let %295
+                                    %297:i32 = call %tint_f32_to_i32, %x_285
+                                    %298:bool = lt %297, 270i
+                                    if %298 [t: $B59, f: $B60] {  # if_16
+                                      $B59: {  # true
+                                        %299:ptr<private, i32, read_write> = access %data, 8i
+                                        %300:i32 = load %299
+                                        %x_292:i32 = let %300
+                                        %302:f32 = convert %x_292
+                                        %303:f32 = div %302, 10.0f
+                                        %304:f32 = add 0.5f, %303
+                                        store %grey, %304
                                         exit_if  # if_16
                                       }
-                                      %b60 = block {  # false
-                                        discard
+                                      $B60: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -504,27 +589,36 @@
         exit_if  # if_8
       }
     }
-    %x_296:f32 = load %grey
-    %x_297:vec3<f32> = construct %x_296, %x_296, %x_296
-    %221:f32 = access %x_297, 0u
-    %222:f32 = access %x_297, 1u
-    %223:f32 = access %x_297, 2u
-    %224:vec4<f32> = construct %221, %222, %223, 1.0f
-    store %x_GLF_color, %224
+    %305:f32 = load %grey
+    %x_296:f32 = let %305
+    %307:vec3<f32> = construct %x_296, %x_296, %x_296
+    %x_297:vec3<f32> = let %307
+    %309:f32 = access %x_297, 0u
+    %310:f32 = access %x_297, 1u
+    %311:f32 = access %x_297, 2u
+    %312:vec4<f32> = construct %309, %310, %311, 1.0f
+    store %x_GLF_color, %312
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b61 {
-  %b61 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B61: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %227:void = call %main_1
-    %228:vec4<f32> = load %x_GLF_color
-    %229:main_out = construct %228
-    ret %229
+    %315:void = call %main_1
+    %316:vec4<f32> = load %x_GLF_color
+    %317:main_out = construct %316
+    %318:bool = load %continue_execution
+    %319:bool = eq %318, false
+    if %319 [t: $B62] {  # if_17
+      $B62: {  # true
+        terminate_invocation
+      }
+    }
+    ret %317
   }
 }
-%mergeSort_ = func():void -> %b62 {
-  %b62 = block {
+%mergeSort_ = func():void {
+  $B63: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -538,79 +632,106 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b63, c: %b64] {  # loop_8
-      %b63 = block {  # body
-        %x_382:i32 = load %m
-        %x_383:i32 = load %high
-        %243:bool = lte %x_382, %x_383
-        if %243 [t: %b65, f: %b66] {  # if_17
-          %b65 = block {  # true
-            exit_if  # if_17
+    loop [b: $B64, c: $B65] {  # loop_8
+      $B64: {  # body
+        %331:i32 = load %m
+        %x_382:i32 = let %331
+        %333:i32 = load %high
+        %x_383:i32 = let %333
+        %335:bool = lte %x_382, %x_383
+        if %335 [t: $B66, f: $B67] {  # if_18
+          $B66: {  # true
+            exit_if  # if_18
           }
-          %b66 = block {  # false
+          $B67: {  # false
             exit_loop  # loop_8
           }
         }
-        %x_386:i32 = load %low
+        %336:i32 = load %low
+        %x_386:i32 = let %336
         store %i_2, %x_386
-        loop [b: %b67, c: %b68] {  # loop_9
-          %b67 = block {  # body
-            %x_391:i32 = load %i_2
-            %x_392:i32 = load %high
-            %247:bool = lt %x_391, %x_392
-            if %247 [t: %b69, f: %b70] {  # if_18
-              %b69 = block {  # true
-                exit_if  # if_18
+        loop [b: $B68, c: $B69] {  # loop_9
+          $B68: {  # body
+            %338:i32 = load %i_2
+            %x_391:i32 = let %338
+            %340:i32 = load %high
+            %x_392:i32 = let %340
+            %342:bool = lt %x_391, %x_392
+            if %342 [t: $B70, f: $B71] {  # if_19
+              $B70: {  # true
+                exit_if  # if_19
               }
-              %b70 = block {  # false
+              $B71: {  # false
                 exit_loop  # loop_9
               }
             }
-            %x_395:i32 = load %i_2
+            %343:i32 = load %i_2
+            %x_395:i32 = let %343
             store %f_1, %x_395
-            %x_396:i32 = load %i_2
-            %x_397:i32 = load %m
-            %251:i32 = add %x_396, %x_397
-            %252:i32 = sub %251, 1i
-            store %mid_1, %252
-            %x_400:i32 = load %i_2
-            %x_401:i32 = load %m
-            %x_405:i32 = load %high
-            %256:i32 = mul 2i, %x_401
-            %257:i32 = add %x_400, %256
-            %258:i32 = sub %257, 1i
-            %259:i32 = min %258, %x_405
-            store %to_1, %259
-            %x_407:i32 = load %f_1
+            %345:i32 = load %i_2
+            %x_396:i32 = let %345
+            %347:i32 = load %m
+            %x_397:i32 = let %347
+            %349:i32 = add %x_396, %x_397
+            %350:i32 = sub %349, 1i
+            store %mid_1, %350
+            %351:i32 = load %i_2
+            %x_400:i32 = let %351
+            %353:i32 = load %m
+            %x_401:i32 = let %353
+            %355:i32 = load %high
+            %x_405:i32 = let %355
+            %357:i32 = mul 2i, %x_401
+            %358:i32 = add %x_400, %357
+            %359:i32 = sub %358, 1i
+            %360:i32 = min %359, %x_405
+            store %to_1, %360
+            %361:i32 = load %f_1
+            %x_407:i32 = let %361
             store %param, %x_407
-            %x_408:i32 = load %mid_1
+            %363:i32 = load %mid_1
+            %x_408:i32 = let %363
             store %param_1, %x_408
-            %x_409:i32 = load %to_1
+            %365:i32 = load %to_1
+            %x_409:i32 = let %365
             store %param_2, %x_409
-            %263:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b68
+            %367:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B69
           }
-          %b68 = block {  # continuing
-            %x_411:i32 = load %m
-            %x_413:i32 = load %i_2
-            %266:i32 = mul 2i, %x_411
-            %267:i32 = add %x_413, %266
-            store %i_2, %267
-            next_iteration %b67
+          $B69: {  # continuing
+            %368:i32 = load %m
+            %x_411:i32 = let %368
+            %370:i32 = load %i_2
+            %x_413:i32 = let %370
+            %372:i32 = mul 2i, %x_411
+            %373:i32 = add %x_413, %372
+            store %i_2, %373
+            next_iteration  # -> $B68
           }
         }
-        continue %b64
+        continue  # -> $B65
       }
-      %b64 = block {  # continuing
-        %x_415:i32 = load %m
-        %269:i32 = mul 2i, %x_415
-        store %m, %269
-        next_iteration %b63
+      $B65: {  # continuing
+        %374:i32 = load %m
+        %x_415:i32 = let %374
+        %376:i32 = mul 2i, %x_415
+        store %m, %376
+        next_iteration  # -> $B64
       }
     }
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B72: {
+    %378:i32 = convert %value
+    %379:bool = gte %value, -2147483648.0f
+    %380:i32 = select -2147483648i, %378, %379
+    %381:bool = lte %value, 2147483520.0f
+    %382:i32 = select 2147483647i, %380, %381
+    ret %382
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.msl
index 5904e30..d85f331 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,158 +8,166 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %i
-        %19:i32 = load %mid
-        %20:bool = lte %18, %19
-        %21:i32 = load %j
-        %22:i32 = load %to
-        %23:bool = lte %21, %22
-        %24:bool = and %20, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %20:i32 = load %mid
+        %21:bool = lte %19, %20
+        %22:i32 = load %j
+        %23:i32 = load %to
+        %24:bool = lte %22, %23
+        %25:bool = and %21, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %25:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %25
-        %27:i32 = load %26
-        %28:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %28
-        %30:i32 = load %29
-        %31:bool = lt %27, %30
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_328:i32 = load %k
+        %26:i32 = load %i
+        %27:ptr<private, i32, read_write> = access %data, %26
+        %28:i32 = load %27
+        %29:i32 = load %j
+        %30:ptr<private, i32, read_write> = access %data, %29
+        %31:i32 = load %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %33:i32 = load %k
-            %34:i32 = add %33, 1i
-            store %k, %34
-            %x_330:i32 = load %i
-            %36:i32 = load %i
-            %37:i32 = add %36, 1i
-            store %i, %37
-            %38:ptr<private, i32, read_write> = access %temp, %x_328
-            %39:ptr<private, i32, read_write> = access %data, %x_330
-            %40:i32 = load %39
-            store %38, %40
+            %x_328:i32 = let %33
+            %35:i32 = load %k
+            %36:i32 = add %35, 1i
+            store %k, %36
+            %37:i32 = load %i
+            %x_330:i32 = let %37
+            %39:i32 = load %i
+            %40:i32 = add %39, 1i
+            store %i, %40
+            %41:ptr<private, i32, read_write> = access %temp, %x_328
+            %42:ptr<private, i32, read_write> = access %data, %x_330
+            %43:i32 = load %42
+            store %41, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_335:i32 = load %k
-            %42:i32 = load %k
-            %43:i32 = add %42, 1i
-            store %k, %43
-            %x_337:i32 = load %j
-            %45:i32 = load %j
-            %46:i32 = add %45, 1i
-            store %j, %46
-            %47:ptr<private, i32, read_write> = access %temp, %x_335
-            %48:ptr<private, i32, read_write> = access %data, %x_337
-            %49:i32 = load %48
-            store %47, %49
+          $B8: {  # false
+            %44:i32 = load %k
+            %x_335:i32 = let %44
+            %46:i32 = load %k
+            %47:i32 = add %46, 1i
+            store %k, %47
+            %48:i32 = load %j
+            %x_337:i32 = let %48
+            %50:i32 = load %j
+            %51:i32 = add %50, 1i
+            store %j, %51
+            %52:ptr<private, i32, read_write> = access %temp, %x_335
+            %53:ptr<private, i32, read_write> = access %data, %x_337
+            %54:i32 = load %53
+            store %52, %54
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %50:i32 = load %i
-        %51:bool = lt %50, 10i
-        %52:i32 = load %i
-        %53:i32 = load %mid
-        %54:bool = lte %52, %53
-        %55:bool = and %51, %54
-        if %55 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %55:i32 = load %i
+        %56:bool = lt %55, 10i
+        %57:i32 = load %i
+        %58:i32 = load %mid
+        %59:bool = lte %57, %58
+        %60:bool = and %56, %59
+        if %60 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_353:i32 = load %k
-        %57:i32 = load %k
-        %58:i32 = add %57, 1i
-        store %k, %58
-        %x_355:i32 = load %i
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        %62:ptr<private, i32, read_write> = access %temp, %x_353
-        %63:ptr<private, i32, read_write> = access %data, %x_355
-        %64:i32 = load %63
-        store %62, %64
-        continue %b10
+        %61:i32 = load %k
+        %x_353:i32 = let %61
+        %63:i32 = load %k
+        %64:i32 = add %63, 1i
+        store %k, %64
+        %65:i32 = load %i
+        %x_355:i32 = let %65
+        %67:i32 = load %i
+        %68:i32 = add %67, 1i
+        store %i, %68
+        %69:ptr<private, i32, read_write> = access %temp, %x_353
+        %70:ptr<private, i32, read_write> = access %data, %x_355
+        %71:i32 = load %70
+        store %69, %71
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %65:i32 = load %f
-    store %i_1, %65
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %66:i32 = load %i_1
-        %67:i32 = load %to
-        %68:bool = lte %66, %67
-        if %68 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %72:i32 = load %f
+    store %i_1, %72
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %73:i32 = load %i_1
+        %74:i32 = load %to
+        %75:bool = lte %73, %74
+        if %75 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_369:i32 = load %i_1
-        %70:ptr<private, i32, read_write> = access %data, %x_369
-        %71:i32 = load %i_1
-        %72:ptr<private, i32, read_write> = access %temp, %71
-        %73:i32 = load %72
-        store %70, %73
-        continue %b14
+        %76:i32 = load %i_1
+        %x_369:i32 = let %76
+        %78:ptr<private, i32, read_write> = access %data, %x_369
+        %79:i32 = load %i_1
+        %80:ptr<private, i32, read_write> = access %temp, %79
+        %81:i32 = load %80
+        store %78, %81
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %74:i32 = load %i_1
-        %75:i32 = add %74, 1i
-        store %i_1, %75
-        next_iteration %b13
+      $B14: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b17 {
-  %b17 = block {
+%main_1 = func():void {
+  $B17: {
     %x_85:ptr<function, i32, read_write> = var
     %x_86:ptr<function, i32, read_write> = var
     %x_87:ptr<function, i32, read_write> = var
@@ -173,313 +181,326 @@
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %90:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %91:f32 = load_vector_element %90, 0u
-    %92:i32 = convert %91
-    store %i_3, %92
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_102:i32 = load %i_3
-        switch %x_102 [c: (9i, %b20), c: (8i, %b21), c: (7i, %b22), c: (6i, %b23), c: (5i, %b24), c: (4i, %b25), c: (3i, %b26), c: (2i, %b27), c: (1i, %b28), c: (0i, %b29), c: (default, %b30)] {  # switch_1
-          %b20 = block {  # case
-            %x_132:i32 = load %i_3
-            %95:ptr<private, i32, read_write> = access %data, %x_132
-            store %95, -5i
+    %98:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %99:f32 = load_vector_element %98, 0u
+    %100:i32 = call %tint_f32_to_i32, %99
+    store %i_3, %100
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %102:i32 = load %i_3
+        %x_102:i32 = let %102
+        switch %x_102 [c: (9i, $B20), c: (8i, $B21), c: (7i, $B22), c: (6i, $B23), c: (5i, $B24), c: (4i, $B25), c: (3i, $B26), c: (2i, $B27), c: (1i, $B28), c: (0i, $B29), c: (default, $B30)] {  # switch_1
+          $B20: {  # case
+            %104:i32 = load %i_3
+            %x_132:i32 = let %104
+            %106:ptr<private, i32, read_write> = access %data, %x_132
+            store %106, -5i
             exit_switch  # switch_1
           }
-          %b21 = block {  # case
-            %x_130:i32 = load %i_3
-            %97:ptr<private, i32, read_write> = access %data, %x_130
-            store %97, -4i
+          $B21: {  # case
+            %107:i32 = load %i_3
+            %x_130:i32 = let %107
+            %109:ptr<private, i32, read_write> = access %data, %x_130
+            store %109, -4i
             exit_switch  # switch_1
           }
-          %b22 = block {  # case
-            %x_128:i32 = load %i_3
-            %99:ptr<private, i32, read_write> = access %data, %x_128
-            store %99, -3i
+          $B22: {  # case
+            %110:i32 = load %i_3
+            %x_128:i32 = let %110
+            %112:ptr<private, i32, read_write> = access %data, %x_128
+            store %112, -3i
             exit_switch  # switch_1
           }
-          %b23 = block {  # case
-            %x_126:i32 = load %i_3
-            %101:ptr<private, i32, read_write> = access %data, %x_126
-            store %101, -2i
+          $B23: {  # case
+            %113:i32 = load %i_3
+            %x_126:i32 = let %113
+            %115:ptr<private, i32, read_write> = access %data, %x_126
+            store %115, -2i
             exit_switch  # switch_1
           }
-          %b24 = block {  # case
-            %x_124:i32 = load %i_3
-            %103:ptr<private, i32, read_write> = access %data, %x_124
-            store %103, -1i
+          $B24: {  # case
+            %116:i32 = load %i_3
+            %x_124:i32 = let %116
+            %118:ptr<private, i32, read_write> = access %data, %x_124
+            store %118, -1i
             exit_switch  # switch_1
           }
-          %b25 = block {  # case
-            %x_122:i32 = load %i_3
-            %105:ptr<private, i32, read_write> = access %data, %x_122
-            store %105, 0i
+          $B25: {  # case
+            %119:i32 = load %i_3
+            %x_122:i32 = let %119
+            %121:ptr<private, i32, read_write> = access %data, %x_122
+            store %121, 0i
             exit_switch  # switch_1
           }
-          %b26 = block {  # case
-            %x_120:i32 = load %i_3
-            %107:ptr<private, i32, read_write> = access %data, %x_120
-            store %107, 1i
+          $B26: {  # case
+            %122:i32 = load %i_3
+            %x_120:i32 = let %122
+            %124:ptr<private, i32, read_write> = access %data, %x_120
+            store %124, 1i
             exit_switch  # switch_1
           }
-          %b27 = block {  # case
-            %x_118:i32 = load %i_3
-            %109:ptr<private, i32, read_write> = access %data, %x_118
-            store %109, 2i
+          $B27: {  # case
+            %125:i32 = load %i_3
+            %x_118:i32 = let %125
+            %127:ptr<private, i32, read_write> = access %data, %x_118
+            store %127, 2i
             exit_switch  # switch_1
           }
-          %b28 = block {  # case
-            %x_116:i32 = load %i_3
-            %111:ptr<private, i32, read_write> = access %data, %x_116
-            store %111, 3i
+          $B28: {  # case
+            %128:i32 = load %i_3
+            %x_116:i32 = let %128
+            %130:ptr<private, i32, read_write> = access %data, %x_116
+            store %130, 3i
             exit_switch  # switch_1
           }
-          %b29 = block {  # case
-            %x_114:i32 = load %i_3
-            %113:ptr<private, i32, read_write> = access %data, %x_114
-            store %113, 4i
+          $B29: {  # case
+            %131:i32 = load %i_3
+            %x_114:i32 = let %131
+            %133:ptr<private, i32, read_write> = access %data, %x_114
+            store %133, 4i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
+          $B30: {  # case
             exit_switch  # switch_1
           }
         }
-        %114:i32 = load %i_3
-        %115:i32 = add %114, 1i
-        store %i_3, %115
-        continue %b19
+        %134:i32 = load %i_3
+        %135:i32 = add %134, 1i
+        store %i_3, %135
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_136:i32 = load %i_3
-        %117:bool = lt %x_136, 10i
-        %118:bool = eq %117, false
-        break_if %118 %b18
+      $B19: {  # continuing
+        %136:i32 = load %i_3
+        %x_136:i32 = let %136
+        %138:bool = lt %x_136, 10i
+        %139:bool = eq %138, false
+        break_if %139  # -> [t: exit_loop loop_4, f: $B18]
       }
     }
     store %j_1, 0i
-    loop [b: %b31, c: %b32] {  # loop_5
-      %b31 = block {  # body
-        %119:i32 = load %j_1
-        %120:bool = lt %119, 10i
-        if %120 [t: %b33, f: %b34] {  # if_5
-          %b33 = block {  # true
+    loop [b: $B31, c: $B32] {  # loop_5
+      $B31: {  # body
+        %140:i32 = load %j_1
+        %141:bool = lt %140, 10i
+        if %141 [t: $B33, f: $B34] {  # if_5
+          $B33: {  # true
             exit_if  # if_5
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_145:i32 = load %j_1
-        %122:ptr<private, i32, read_write> = access %temp, %x_145
-        %123:i32 = load %j_1
-        %124:ptr<private, i32, read_write> = access %data, %123
-        %125:i32 = load %124
-        store %122, %125
-        continue %b32
+        %142:i32 = load %j_1
+        %x_145:i32 = let %142
+        %144:ptr<private, i32, read_write> = access %temp, %x_145
+        %145:i32 = load %j_1
+        %146:ptr<private, i32, read_write> = access %data, %145
+        %147:i32 = load %146
+        store %144, %147
+        continue  # -> $B32
       }
-      %b32 = block {  # continuing
-        %126:i32 = load %j_1
-        %127:i32 = add %126, 1i
-        store %j_1, %127
-        next_iteration %b31
+      $B32: {  # continuing
+        %148:i32 = load %j_1
+        %149:i32 = add %148, 1i
+        store %j_1, %149
+        next_iteration  # -> $B31
       }
     }
     store %x_94, 0i
     store %x_93, 9i
     store %x_92, 1i
-    loop [b: %b35, c: %b36] {  # loop_6
-      %b35 = block {  # body
-        %128:i32 = load %x_92
-        %129:i32 = load %x_93
-        %130:bool = lte %128, %129
-        if %130 [t: %b37, f: %b38] {  # if_6
-          %b37 = block {  # true
+    loop [b: $B35, c: $B36] {  # loop_6
+      $B35: {  # body
+        %150:i32 = load %x_92
+        %151:i32 = load %x_93
+        %152:bool = lte %150, %151
+        if %152 [t: $B37, f: $B38] {  # if_6
+          $B37: {  # true
             exit_if  # if_6
           }
-          %b38 = block {  # false
+          $B38: {  # false
             exit_loop  # loop_6
           }
         }
-        %131:i32 = load %x_94
-        store %x_91, %131
-        loop [b: %b39, c: %b40] {  # loop_7
-          %b39 = block {  # body
-            %132:i32 = load %x_91
-            %133:i32 = load %x_93
-            %134:bool = lt %132, %133
-            if %134 [t: %b41, f: %b42] {  # if_7
-              %b41 = block {  # true
+        %153:i32 = load %x_94
+        store %x_91, %153
+        loop [b: $B39, c: $B40] {  # loop_7
+          $B39: {  # body
+            %154:i32 = load %x_91
+            %155:i32 = load %x_93
+            %156:bool = lt %154, %155
+            if %156 [t: $B41, f: $B42] {  # if_7
+              $B41: {  # true
                 exit_if  # if_7
               }
-              %b42 = block {  # false
+              $B42: {  # false
                 exit_loop  # loop_7
               }
             }
-            %135:i32 = load %x_91
-            store %x_90, %135
-            %136:i32 = load %x_91
-            %137:i32 = load %x_92
-            %138:i32 = add %136, %137
-            %139:i32 = sub %138, 1i
-            store %x_89, %139
-            %140:i32 = load %x_91
-            %141:i32 = load %x_92
-            %142:i32 = mul 2i, %141
-            %143:i32 = add %140, %142
-            %144:i32 = sub %143, 1i
-            %145:i32 = load %x_93
-            %146:i32 = min %144, %145
-            store %x_88, %146
-            %147:i32 = load %x_90
-            store %x_87, %147
-            %148:i32 = load %x_89
-            store %x_86, %148
-            %149:i32 = load %x_88
-            store %x_85, %149
-            %150:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
-            continue %b40
+            %157:i32 = load %x_91
+            store %x_90, %157
+            %158:i32 = load %x_91
+            %159:i32 = load %x_92
+            %160:i32 = add %158, %159
+            %161:i32 = sub %160, 1i
+            store %x_89, %161
+            %162:i32 = load %x_91
+            %163:i32 = load %x_92
+            %164:i32 = mul 2i, %163
+            %165:i32 = add %162, %164
+            %166:i32 = sub %165, 1i
+            %167:i32 = load %x_93
+            %168:i32 = min %166, %167
+            store %x_88, %168
+            %169:i32 = load %x_90
+            store %x_87, %169
+            %170:i32 = load %x_89
+            store %x_86, %170
+            %171:i32 = load %x_88
+            store %x_85, %171
+            %172:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
+            continue  # -> $B40
           }
-          %b40 = block {  # continuing
-            %151:i32 = load %x_91
-            %152:i32 = load %x_92
-            %153:i32 = mul 2i, %152
-            %154:i32 = add %151, %153
-            store %x_91, %154
-            next_iteration %b39
+          $B40: {  # continuing
+            %173:i32 = load %x_91
+            %174:i32 = load %x_92
+            %175:i32 = mul 2i, %174
+            %176:i32 = add %173, %175
+            store %x_91, %176
+            next_iteration  # -> $B39
           }
         }
-        continue %b36
+        continue  # -> $B36
       }
-      %b36 = block {  # continuing
-        %155:i32 = load %x_92
-        %156:i32 = mul 2i, %155
-        store %x_92, %156
-        next_iteration %b35
+      $B36: {  # continuing
+        %177:i32 = load %x_92
+        %178:i32 = mul 2i, %177
+        store %x_92, %178
+        next_iteration  # -> $B35
       }
     }
-    %157:f32 = load_vector_element %gl_FragCoord, 1u
-    %158:i32 = convert %157
-    %159:bool = lt %158, 30i
-    if %159 [t: %b43, f: %b44] {  # if_8
-      %b43 = block {  # true
-        %160:ptr<private, i32, read_write> = access %data, 0i
-        %161:i32 = load %160
-        %162:f32 = convert %161
-        %163:f32 = div %162, 10.0f
-        %164:f32 = add 0.5f, %163
-        store %grey, %164
+    %179:f32 = load_vector_element %gl_FragCoord, 1u
+    %180:i32 = call %tint_f32_to_i32, %179
+    %181:bool = lt %180, 30i
+    if %181 [t: $B43, f: $B44] {  # if_8
+      $B43: {  # true
+        %182:ptr<private, i32, read_write> = access %data, 0i
+        %183:i32 = load %182
+        %184:f32 = convert %183
+        %185:f32 = div %184, 10.0f
+        %186:f32 = add 0.5f, %185
+        store %grey, %186
         exit_if  # if_8
       }
-      %b44 = block {  # false
-        %165:f32 = load_vector_element %gl_FragCoord, 1u
-        %166:i32 = convert %165
-        %167:bool = lt %166, 60i
-        if %167 [t: %b45, f: %b46] {  # if_9
-          %b45 = block {  # true
-            %168:ptr<private, i32, read_write> = access %data, 1i
-            %169:i32 = load %168
-            %170:f32 = convert %169
-            %171:f32 = div %170, 10.0f
-            %172:f32 = add 0.5f, %171
-            store %grey, %172
+      $B44: {  # false
+        %187:f32 = load_vector_element %gl_FragCoord, 1u
+        %188:i32 = call %tint_f32_to_i32, %187
+        %189:bool = lt %188, 60i
+        if %189 [t: $B45, f: $B46] {  # if_9
+          $B45: {  # true
+            %190:ptr<private, i32, read_write> = access %data, 1i
+            %191:i32 = load %190
+            %192:f32 = convert %191
+            %193:f32 = div %192, 10.0f
+            %194:f32 = add 0.5f, %193
+            store %grey, %194
             exit_if  # if_9
           }
-          %b46 = block {  # false
-            %173:f32 = load_vector_element %gl_FragCoord, 1u
-            %174:i32 = convert %173
-            %175:bool = lt %174, 90i
-            if %175 [t: %b47, f: %b48] {  # if_10
-              %b47 = block {  # true
-                %176:ptr<private, i32, read_write> = access %data, 2i
-                %177:i32 = load %176
-                %178:f32 = convert %177
-                %179:f32 = div %178, 10.0f
-                %180:f32 = add 0.5f, %179
-                store %grey, %180
+          $B46: {  # false
+            %195:f32 = load_vector_element %gl_FragCoord, 1u
+            %196:i32 = call %tint_f32_to_i32, %195
+            %197:bool = lt %196, 90i
+            if %197 [t: $B47, f: $B48] {  # if_10
+              $B47: {  # true
+                %198:ptr<private, i32, read_write> = access %data, 2i
+                %199:i32 = load %198
+                %200:f32 = convert %199
+                %201:f32 = div %200, 10.0f
+                %202:f32 = add 0.5f, %201
+                store %grey, %202
                 exit_if  # if_10
               }
-              %b48 = block {  # false
-                %181:f32 = load_vector_element %gl_FragCoord, 1u
-                %182:i32 = convert %181
-                %183:bool = lt %182, 120i
-                if %183 [t: %b49, f: %b50] {  # if_11
-                  %b49 = block {  # true
-                    %184:ptr<private, i32, read_write> = access %data, 3i
-                    %185:i32 = load %184
-                    %186:f32 = convert %185
-                    %187:f32 = div %186, 10.0f
-                    %188:f32 = add 0.5f, %187
-                    store %grey, %188
+              $B48: {  # false
+                %203:f32 = load_vector_element %gl_FragCoord, 1u
+                %204:i32 = call %tint_f32_to_i32, %203
+                %205:bool = lt %204, 120i
+                if %205 [t: $B49, f: $B50] {  # if_11
+                  $B49: {  # true
+                    %206:ptr<private, i32, read_write> = access %data, 3i
+                    %207:i32 = load %206
+                    %208:f32 = convert %207
+                    %209:f32 = div %208, 10.0f
+                    %210:f32 = add 0.5f, %209
+                    store %grey, %210
                     exit_if  # if_11
                   }
-                  %b50 = block {  # false
-                    %189:f32 = load_vector_element %gl_FragCoord, 1u
-                    %190:i32 = convert %189
-                    %191:bool = lt %190, 150i
-                    if %191 [t: %b51, f: %b52] {  # if_12
-                      %b51 = block {  # true
-                        discard
+                  $B50: {  # false
+                    %211:f32 = load_vector_element %gl_FragCoord, 1u
+                    %212:i32 = call %tint_f32_to_i32, %211
+                    %213:bool = lt %212, 150i
+                    if %213 [t: $B51, f: $B52] {  # if_12
+                      $B51: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b52 = block {  # false
-                        %192:f32 = load_vector_element %gl_FragCoord, 1u
-                        %193:i32 = convert %192
-                        %194:bool = lt %193, 180i
-                        if %194 [t: %b53, f: %b54] {  # if_13
-                          %b53 = block {  # true
-                            %195:ptr<private, i32, read_write> = access %data, 5i
-                            %196:i32 = load %195
-                            %197:f32 = convert %196
-                            %198:f32 = div %197, 10.0f
-                            %199:f32 = add 0.5f, %198
-                            store %grey, %199
+                      $B52: {  # false
+                        %214:f32 = load_vector_element %gl_FragCoord, 1u
+                        %215:i32 = call %tint_f32_to_i32, %214
+                        %216:bool = lt %215, 180i
+                        if %216 [t: $B53, f: $B54] {  # if_13
+                          $B53: {  # true
+                            %217:ptr<private, i32, read_write> = access %data, 5i
+                            %218:i32 = load %217
+                            %219:f32 = convert %218
+                            %220:f32 = div %219, 10.0f
+                            %221:f32 = add 0.5f, %220
+                            store %grey, %221
                             exit_if  # if_13
                           }
-                          %b54 = block {  # false
-                            %200:f32 = load_vector_element %gl_FragCoord, 1u
-                            %201:i32 = convert %200
-                            %202:bool = lt %201, 210i
-                            if %202 [t: %b55, f: %b56] {  # if_14
-                              %b55 = block {  # true
-                                %203:ptr<private, i32, read_write> = access %data, 6i
-                                %204:i32 = load %203
-                                %205:f32 = convert %204
-                                %206:f32 = div %205, 10.0f
-                                %207:f32 = add 0.5f, %206
-                                store %grey, %207
+                          $B54: {  # false
+                            %222:f32 = load_vector_element %gl_FragCoord, 1u
+                            %223:i32 = call %tint_f32_to_i32, %222
+                            %224:bool = lt %223, 210i
+                            if %224 [t: $B55, f: $B56] {  # if_14
+                              $B55: {  # true
+                                %225:ptr<private, i32, read_write> = access %data, 6i
+                                %226:i32 = load %225
+                                %227:f32 = convert %226
+                                %228:f32 = div %227, 10.0f
+                                %229:f32 = add 0.5f, %228
+                                store %grey, %229
                                 exit_if  # if_14
                               }
-                              %b56 = block {  # false
-                                %208:f32 = load_vector_element %gl_FragCoord, 1u
-                                %209:i32 = convert %208
-                                %210:bool = lt %209, 240i
-                                if %210 [t: %b57, f: %b58] {  # if_15
-                                  %b57 = block {  # true
-                                    %211:ptr<private, i32, read_write> = access %data, 7i
-                                    %212:i32 = load %211
-                                    %213:f32 = convert %212
-                                    %214:f32 = div %213, 10.0f
-                                    %215:f32 = add 0.5f, %214
-                                    store %grey, %215
+                              $B56: {  # false
+                                %230:f32 = load_vector_element %gl_FragCoord, 1u
+                                %231:i32 = call %tint_f32_to_i32, %230
+                                %232:bool = lt %231, 240i
+                                if %232 [t: $B57, f: $B58] {  # if_15
+                                  $B57: {  # true
+                                    %233:ptr<private, i32, read_write> = access %data, 7i
+                                    %234:i32 = load %233
+                                    %235:f32 = convert %234
+                                    %236:f32 = div %235, 10.0f
+                                    %237:f32 = add 0.5f, %236
+                                    store %grey, %237
                                     exit_if  # if_15
                                   }
-                                  %b58 = block {  # false
-                                    %216:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %217:i32 = convert %216
-                                    %218:bool = lt %217, 270i
-                                    if %218 [t: %b59, f: %b60] {  # if_16
-                                      %b59 = block {  # true
-                                        %219:ptr<private, i32, read_write> = access %data, 8i
-                                        %220:i32 = load %219
-                                        %221:f32 = convert %220
-                                        %222:f32 = div %221, 10.0f
-                                        %223:f32 = add 0.5f, %222
-                                        store %grey, %223
+                                  $B58: {  # false
+                                    %238:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %239:i32 = call %tint_f32_to_i32, %238
+                                    %240:bool = lt %239, 270i
+                                    if %240 [t: $B59, f: $B60] {  # if_16
+                                      $B59: {  # true
+                                        %241:ptr<private, i32, read_write> = access %data, 8i
+                                        %242:i32 = load %241
+                                        %243:f32 = convert %242
+                                        %244:f32 = div %243, 10.0f
+                                        %245:f32 = add 0.5f, %244
+                                        store %grey, %245
                                         exit_if  # if_16
                                       }
-                                      %b60 = block {  # false
-                                        discard
+                                      $B60: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -507,27 +528,35 @@
         exit_if  # if_8
       }
     }
-    %224:f32 = load %grey
-    %x_296:vec3<f32> = construct %224
-    %226:f32 = access %x_296, 0u
-    %227:f32 = access %x_296, 1u
-    %228:f32 = access %x_296, 2u
-    %229:vec4<f32> = construct %226, %227, %228, 1.0f
-    store %x_GLF_color, %229
+    %246:f32 = load %grey
+    %247:vec3<f32> = construct %246
+    %x_296:vec3<f32> = let %247
+    %249:f32 = access %x_296, 0u
+    %250:f32 = access %x_296, 1u
+    %251:f32 = access %x_296, 2u
+    %252:vec4<f32> = construct %249, %250, %251, 1.0f
+    store %x_GLF_color, %252
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b61 {
-  %b61 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B61: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %232:void = call %main_1
-    %233:vec4<f32> = load %x_GLF_color
-    %234:main_out = construct %233
-    ret %234
+    %255:void = call %main_1
+    %256:vec4<f32> = load %x_GLF_color
+    %257:main_out = construct %256
+    %258:bool = load %continue_execution
+    %259:bool = eq %258, false
+    if %259 [t: $B62] {  # if_17
+      $B62: {  # true
+        terminate_invocation
+      }
+    }
+    ret %257
   }
 }
-%mergeSort_ = func():void -> %b62 {
-  %b62 = block {
+%mergeSort_ = func():void {
+  $B63: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -541,79 +570,89 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b63, c: %b64] {  # loop_8
-      %b63 = block {  # body
-        %246:i32 = load %m
-        %247:i32 = load %high
-        %248:bool = lte %246, %247
-        if %248 [t: %b65, f: %b66] {  # if_17
-          %b65 = block {  # true
-            exit_if  # if_17
+    loop [b: $B64, c: $B65] {  # loop_8
+      $B64: {  # body
+        %271:i32 = load %m
+        %272:i32 = load %high
+        %273:bool = lte %271, %272
+        if %273 [t: $B66, f: $B67] {  # if_18
+          $B66: {  # true
+            exit_if  # if_18
           }
-          %b66 = block {  # false
+          $B67: {  # false
             exit_loop  # loop_8
           }
         }
-        %249:i32 = load %low
-        store %i_2, %249
-        loop [b: %b67, c: %b68] {  # loop_9
-          %b67 = block {  # body
-            %250:i32 = load %i_2
-            %251:i32 = load %high
-            %252:bool = lt %250, %251
-            if %252 [t: %b69, f: %b70] {  # if_18
-              %b69 = block {  # true
-                exit_if  # if_18
+        %274:i32 = load %low
+        store %i_2, %274
+        loop [b: $B68, c: $B69] {  # loop_9
+          $B68: {  # body
+            %275:i32 = load %i_2
+            %276:i32 = load %high
+            %277:bool = lt %275, %276
+            if %277 [t: $B70, f: $B71] {  # if_19
+              $B70: {  # true
+                exit_if  # if_19
               }
-              %b70 = block {  # false
+              $B71: {  # false
                 exit_loop  # loop_9
               }
             }
-            %253:i32 = load %i_2
-            store %f_1, %253
-            %254:i32 = load %i_2
-            %255:i32 = load %m
-            %256:i32 = add %254, %255
-            %257:i32 = sub %256, 1i
-            store %mid_1, %257
-            %258:i32 = load %i_2
-            %259:i32 = load %m
-            %260:i32 = mul 2i, %259
-            %261:i32 = add %258, %260
-            %262:i32 = sub %261, 1i
-            %263:i32 = load %high
-            %264:i32 = min %262, %263
-            store %to_1, %264
-            %265:i32 = load %f_1
-            store %param, %265
-            %266:i32 = load %mid_1
-            store %param_1, %266
-            %267:i32 = load %to_1
-            store %param_2, %267
-            %268:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b68
+            %278:i32 = load %i_2
+            store %f_1, %278
+            %279:i32 = load %i_2
+            %280:i32 = load %m
+            %281:i32 = add %279, %280
+            %282:i32 = sub %281, 1i
+            store %mid_1, %282
+            %283:i32 = load %i_2
+            %284:i32 = load %m
+            %285:i32 = mul 2i, %284
+            %286:i32 = add %283, %285
+            %287:i32 = sub %286, 1i
+            %288:i32 = load %high
+            %289:i32 = min %287, %288
+            store %to_1, %289
+            %290:i32 = load %f_1
+            store %param, %290
+            %291:i32 = load %mid_1
+            store %param_1, %291
+            %292:i32 = load %to_1
+            store %param_2, %292
+            %293:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B69
           }
-          %b68 = block {  # continuing
-            %269:i32 = load %i_2
-            %270:i32 = load %m
-            %271:i32 = mul 2i, %270
-            %272:i32 = add %269, %271
-            store %i_2, %272
-            next_iteration %b67
+          $B69: {  # continuing
+            %294:i32 = load %i_2
+            %295:i32 = load %m
+            %296:i32 = mul 2i, %295
+            %297:i32 = add %294, %296
+            store %i_2, %297
+            next_iteration  # -> $B68
           }
         }
-        continue %b64
+        continue  # -> $B65
       }
-      %b64 = block {  # continuing
-        %273:i32 = load %m
-        %274:i32 = mul 2i, %273
-        store %m, %274
-        next_iteration %b63
+      $B65: {  # continuing
+        %298:i32 = load %m
+        %299:i32 = mul 2i, %298
+        store %m, %299
+        next_iteration  # -> $B64
       }
     }
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B72: {
+    %301:i32 = convert %value
+    %302:bool = gte %value, -2147483648.0f
+    %303:i32 = select -2147483648i, %301, %302
+    %304:bool = lte %value, 2147483520.0f
+    %305:i32 = select 2147483647i, %303, %304
+    ret %305
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.msl
index 68e4cd0..e1fb12b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-mergesort-func-inline-mutate-var/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,152 +8,183 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_302:i32 = load %f
+    %15:i32 = load %f
+    %x_302:i32 = let %15
     store %k, %x_302
-    %x_303:i32 = load %f
+    %17:i32 = load %f
+    %x_303:i32 = let %17
     store %i, %x_303
-    %x_304:i32 = load %mid
-    %17:i32 = add %x_304, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_310:i32 = load %i
-        %x_311:i32 = load %mid
-        %x_313:i32 = load %j
-        %x_314:i32 = load %to
-        %22:bool = lte %x_310, %x_311
-        %23:bool = lte %x_313, %x_314
-        %24:bool = and %22, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %mid
+    %x_304:i32 = let %19
+    %21:i32 = add %x_304, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %i
+        %x_310:i32 = let %22
+        %24:i32 = load %mid
+        %x_311:i32 = let %24
+        %26:i32 = load %j
+        %x_313:i32 = let %26
+        %28:i32 = load %to
+        %x_314:i32 = let %28
+        %30:bool = lte %x_310, %x_311
+        %31:bool = lte %x_313, %x_314
+        %32:bool = and %30, %31
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_318:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %x_318
-        %x_320:i32 = load %26
-        %x_321:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %x_321
-        %x_323:i32 = load %29
-        %31:bool = lt %x_320, %x_323
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_328:i32 = load %k
-            %33:i32 = add %x_328, 1i
-            store %k, %33
-            %x_330:i32 = load %i
-            %35:i32 = add %x_330, 1i
-            store %i, %35
-            %36:ptr<private, i32, read_write> = access %data, %x_330
-            %x_333:i32 = load %36
-            %38:ptr<private, i32, read_write> = access %temp, %x_328
-            store %38, %x_333
+        %33:i32 = load %i
+        %x_318:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_318
+        %36:i32 = load %35
+        %x_320:i32 = let %36
+        %38:i32 = load %j
+        %x_321:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %data, %x_321
+        %41:i32 = load %40
+        %x_323:i32 = let %41
+        %43:bool = lt %x_320, %x_323
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %44:i32 = load %k
+            %x_328:i32 = let %44
+            %46:i32 = add %x_328, 1i
+            store %k, %46
+            %47:i32 = load %i
+            %x_330:i32 = let %47
+            %49:i32 = add %x_330, 1i
+            store %i, %49
+            %50:ptr<private, i32, read_write> = access %data, %x_330
+            %51:i32 = load %50
+            %x_333:i32 = let %51
+            %53:ptr<private, i32, read_write> = access %temp, %x_328
+            store %53, %x_333
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_335:i32 = load %k
-            %40:i32 = add %x_335, 1i
-            store %k, %40
-            %x_337:i32 = load %j
-            %42:i32 = add %x_337, 1i
-            store %j, %42
-            %43:ptr<private, i32, read_write> = access %data, %x_337
-            %x_340:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %temp, %x_335
-            store %45, %x_340
+          $B8: {  # false
+            %54:i32 = load %k
+            %x_335:i32 = let %54
+            %56:i32 = add %x_335, 1i
+            store %k, %56
+            %57:i32 = load %j
+            %x_337:i32 = let %57
+            %59:i32 = add %x_337, 1i
+            store %j, %59
+            %60:ptr<private, i32, read_write> = access %data, %x_337
+            %61:i32 = load %60
+            %x_340:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %temp, %x_335
+            store %63, %x_340
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_346:i32 = load %i
-        %x_348:i32 = load %i
-        %x_349:i32 = load %mid
-        %49:bool = lt %x_346, 10i
-        %50:bool = lte %x_348, %x_349
-        %51:bool = and %49, %50
-        if %51 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %64:i32 = load %i
+        %x_346:i32 = let %64
+        %66:i32 = load %i
+        %x_348:i32 = let %66
+        %68:i32 = load %mid
+        %x_349:i32 = let %68
+        %70:bool = lt %x_346, 10i
+        %71:bool = lte %x_348, %x_349
+        %72:bool = and %70, %71
+        if %72 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_353:i32 = load %k
-        %53:i32 = add %x_353, 1i
-        store %k, %53
-        %x_355:i32 = load %i
-        %55:i32 = add %x_355, 1i
-        store %i, %55
-        %56:ptr<private, i32, read_write> = access %data, %x_355
-        %x_358:i32 = load %56
-        %58:ptr<private, i32, read_write> = access %temp, %x_353
-        store %58, %x_358
-        continue %b10
+        %73:i32 = load %k
+        %x_353:i32 = let %73
+        %75:i32 = add %x_353, 1i
+        store %k, %75
+        %76:i32 = load %i
+        %x_355:i32 = let %76
+        %78:i32 = add %x_355, 1i
+        store %i, %78
+        %79:ptr<private, i32, read_write> = access %data, %x_355
+        %80:i32 = load %79
+        %x_358:i32 = let %80
+        %82:ptr<private, i32, read_write> = access %temp, %x_353
+        store %82, %x_358
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_360:i32 = load %f
+    %83:i32 = load %f
+    %x_360:i32 = let %83
     store %i_1, %x_360
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_365:i32 = load %i_1
-        %x_366:i32 = load %to
-        %62:bool = lte %x_365, %x_366
-        if %62 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %85:i32 = load %i_1
+        %x_365:i32 = let %85
+        %87:i32 = load %to
+        %x_366:i32 = let %87
+        %89:bool = lte %x_365, %x_366
+        if %89 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_369:i32 = load %i_1
-        %x_370:i32 = load %i_1
-        %65:ptr<private, i32, read_write> = access %temp, %x_370
-        %x_372:i32 = load %65
-        %67:ptr<private, i32, read_write> = access %data, %x_369
-        store %67, %x_372
-        continue %b14
+        %90:i32 = load %i_1
+        %x_369:i32 = let %90
+        %92:i32 = load %i_1
+        %x_370:i32 = let %92
+        %94:ptr<private, i32, read_write> = access %temp, %x_370
+        %95:i32 = load %94
+        %x_372:i32 = let %95
+        %97:ptr<private, i32, read_write> = access %data, %x_369
+        store %97, %x_372
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_374:i32 = load %i_1
-        %69:i32 = add %x_374, 1i
-        store %i_1, %69
-        next_iteration %b13
+      $B14: {  # continuing
+        %98:i32 = load %i_1
+        %x_374:i32 = let %98
+        %100:i32 = add %x_374, 1i
+        store %i_1, %100
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b17 {
-  %b17 = block {
+%main_1 = func():void {
+  $B17: {
     %x_85:ptr<function, i32, read_write> = var
     %x_86:ptr<function, i32, read_write> = var
     %x_87:ptr<function, i32, read_write> = var
@@ -167,313 +198,366 @@
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %84:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_96:f32 = load_vector_element %84, 0u
-    %86:i32 = convert %x_96
-    store %i_3, %86
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_102:i32 = load %i_3
-        switch %x_102 [c: (9i, %b20), c: (8i, %b21), c: (7i, %b22), c: (6i, %b23), c: (5i, %b24), c: (4i, %b25), c: (3i, %b26), c: (2i, %b27), c: (1i, %b28), c: (0i, %b29), c: (default, %b30)] {  # switch_1
-          %b20 = block {  # case
-            %x_132:i32 = load %i_3
-            %89:ptr<private, i32, read_write> = access %data, %x_132
-            store %89, -5i
+    %115:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %116:f32 = load_vector_element %115, 0u
+    %x_96:f32 = let %116
+    %118:i32 = call %tint_f32_to_i32, %x_96
+    store %i_3, %118
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %120:i32 = load %i_3
+        %x_102:i32 = let %120
+        switch %x_102 [c: (9i, $B20), c: (8i, $B21), c: (7i, $B22), c: (6i, $B23), c: (5i, $B24), c: (4i, $B25), c: (3i, $B26), c: (2i, $B27), c: (1i, $B28), c: (0i, $B29), c: (default, $B30)] {  # switch_1
+          $B20: {  # case
+            %122:i32 = load %i_3
+            %x_132:i32 = let %122
+            %124:ptr<private, i32, read_write> = access %data, %x_132
+            store %124, -5i
             exit_switch  # switch_1
           }
-          %b21 = block {  # case
-            %x_130:i32 = load %i_3
-            %91:ptr<private, i32, read_write> = access %data, %x_130
-            store %91, -4i
+          $B21: {  # case
+            %125:i32 = load %i_3
+            %x_130:i32 = let %125
+            %127:ptr<private, i32, read_write> = access %data, %x_130
+            store %127, -4i
             exit_switch  # switch_1
           }
-          %b22 = block {  # case
-            %x_128:i32 = load %i_3
-            %93:ptr<private, i32, read_write> = access %data, %x_128
-            store %93, -3i
+          $B22: {  # case
+            %128:i32 = load %i_3
+            %x_128:i32 = let %128
+            %130:ptr<private, i32, read_write> = access %data, %x_128
+            store %130, -3i
             exit_switch  # switch_1
           }
-          %b23 = block {  # case
-            %x_126:i32 = load %i_3
-            %95:ptr<private, i32, read_write> = access %data, %x_126
-            store %95, -2i
+          $B23: {  # case
+            %131:i32 = load %i_3
+            %x_126:i32 = let %131
+            %133:ptr<private, i32, read_write> = access %data, %x_126
+            store %133, -2i
             exit_switch  # switch_1
           }
-          %b24 = block {  # case
-            %x_124:i32 = load %i_3
-            %97:ptr<private, i32, read_write> = access %data, %x_124
-            store %97, -1i
+          $B24: {  # case
+            %134:i32 = load %i_3
+            %x_124:i32 = let %134
+            %136:ptr<private, i32, read_write> = access %data, %x_124
+            store %136, -1i
             exit_switch  # switch_1
           }
-          %b25 = block {  # case
-            %x_122:i32 = load %i_3
-            %99:ptr<private, i32, read_write> = access %data, %x_122
-            store %99, 0i
+          $B25: {  # case
+            %137:i32 = load %i_3
+            %x_122:i32 = let %137
+            %139:ptr<private, i32, read_write> = access %data, %x_122
+            store %139, 0i
             exit_switch  # switch_1
           }
-          %b26 = block {  # case
-            %x_120:i32 = load %i_3
-            %101:ptr<private, i32, read_write> = access %data, %x_120
-            store %101, 1i
+          $B26: {  # case
+            %140:i32 = load %i_3
+            %x_120:i32 = let %140
+            %142:ptr<private, i32, read_write> = access %data, %x_120
+            store %142, 1i
             exit_switch  # switch_1
           }
-          %b27 = block {  # case
-            %x_118:i32 = load %i_3
-            %103:ptr<private, i32, read_write> = access %data, %x_118
-            store %103, 2i
+          $B27: {  # case
+            %143:i32 = load %i_3
+            %x_118:i32 = let %143
+            %145:ptr<private, i32, read_write> = access %data, %x_118
+            store %145, 2i
             exit_switch  # switch_1
           }
-          %b28 = block {  # case
-            %x_116:i32 = load %i_3
-            %105:ptr<private, i32, read_write> = access %data, %x_116
-            store %105, 3i
+          $B28: {  # case
+            %146:i32 = load %i_3
+            %x_116:i32 = let %146
+            %148:ptr<private, i32, read_write> = access %data, %x_116
+            store %148, 3i
             exit_switch  # switch_1
           }
-          %b29 = block {  # case
-            %x_114:i32 = load %i_3
-            %107:ptr<private, i32, read_write> = access %data, %x_114
-            store %107, 4i
+          $B29: {  # case
+            %149:i32 = load %i_3
+            %x_114:i32 = let %149
+            %151:ptr<private, i32, read_write> = access %data, %x_114
+            store %151, 4i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
+          $B30: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_134:i32 = load %i_3
-        %109:i32 = add %x_134, 1i
-        store %i_3, %109
-        continue %b19
+        %152:i32 = load %i_3
+        %x_134:i32 = let %152
+        %154:i32 = add %x_134, 1i
+        store %i_3, %154
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_136:i32 = load %i_3
-        %111:bool = lt %x_136, 10i
-        %112:bool = eq %111, false
-        break_if %112 %b18
+      $B19: {  # continuing
+        %155:i32 = load %i_3
+        %x_136:i32 = let %155
+        %157:bool = lt %x_136, 10i
+        %158:bool = eq %157, false
+        break_if %158  # -> [t: exit_loop loop_4, f: $B18]
       }
     }
     store %j_1, 0i
-    loop [b: %b31, c: %b32] {  # loop_5
-      %b31 = block {  # body
-        %x_142:i32 = load %j_1
-        %114:bool = lt %x_142, 10i
-        if %114 [t: %b33, f: %b34] {  # if_5
-          %b33 = block {  # true
+    loop [b: $B31, c: $B32] {  # loop_5
+      $B31: {  # body
+        %159:i32 = load %j_1
+        %x_142:i32 = let %159
+        %161:bool = lt %x_142, 10i
+        if %161 [t: $B33, f: $B34] {  # if_5
+          $B33: {  # true
             exit_if  # if_5
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_145:i32 = load %j_1
-        %x_146:i32 = load %j_1
-        %117:ptr<private, i32, read_write> = access %data, %x_146
-        %x_148:i32 = load %117
-        %119:ptr<private, i32, read_write> = access %temp, %x_145
-        store %119, %x_148
-        continue %b32
+        %162:i32 = load %j_1
+        %x_145:i32 = let %162
+        %164:i32 = load %j_1
+        %x_146:i32 = let %164
+        %166:ptr<private, i32, read_write> = access %data, %x_146
+        %167:i32 = load %166
+        %x_148:i32 = let %167
+        %169:ptr<private, i32, read_write> = access %temp, %x_145
+        store %169, %x_148
+        continue  # -> $B32
       }
-      %b32 = block {  # continuing
-        %x_150:i32 = load %j_1
-        %121:i32 = add %x_150, 1i
-        store %j_1, %121
-        next_iteration %b31
+      $B32: {  # continuing
+        %170:i32 = load %j_1
+        %x_150:i32 = let %170
+        %172:i32 = add %x_150, 1i
+        store %j_1, %172
+        next_iteration  # -> $B31
       }
     }
     store %x_94, 0i
     store %x_93, 9i
     store %x_92, 1i
-    loop [b: %b35, c: %b36] {  # loop_6
-      %b35 = block {  # body
-        %x_156:i32 = load %x_92
-        %x_157:i32 = load %x_93
-        %124:bool = lte %x_156, %x_157
-        if %124 [t: %b37, f: %b38] {  # if_6
-          %b37 = block {  # true
+    loop [b: $B35, c: $B36] {  # loop_6
+      $B35: {  # body
+        %173:i32 = load %x_92
+        %x_156:i32 = let %173
+        %175:i32 = load %x_93
+        %x_157:i32 = let %175
+        %177:bool = lte %x_156, %x_157
+        if %177 [t: $B37, f: $B38] {  # if_6
+          $B37: {  # true
             exit_if  # if_6
           }
-          %b38 = block {  # false
+          $B38: {  # false
             exit_loop  # loop_6
           }
         }
-        %x_160:i32 = load %x_94
+        %178:i32 = load %x_94
+        %x_160:i32 = let %178
         store %x_91, %x_160
-        loop [b: %b39, c: %b40] {  # loop_7
-          %b39 = block {  # body
-            %x_165:i32 = load %x_91
-            %x_166:i32 = load %x_93
-            %128:bool = lt %x_165, %x_166
-            if %128 [t: %b41, f: %b42] {  # if_7
-              %b41 = block {  # true
+        loop [b: $B39, c: $B40] {  # loop_7
+          $B39: {  # body
+            %180:i32 = load %x_91
+            %x_165:i32 = let %180
+            %182:i32 = load %x_93
+            %x_166:i32 = let %182
+            %184:bool = lt %x_165, %x_166
+            if %184 [t: $B41, f: $B42] {  # if_7
+              $B41: {  # true
                 exit_if  # if_7
               }
-              %b42 = block {  # false
+              $B42: {  # false
                 exit_loop  # loop_7
               }
             }
-            %x_169:i32 = load %x_91
+            %185:i32 = load %x_91
+            %x_169:i32 = let %185
             store %x_90, %x_169
-            %x_170:i32 = load %x_91
-            %x_171:i32 = load %x_92
-            %132:i32 = add %x_170, %x_171
-            %133:i32 = sub %132, 1i
-            store %x_89, %133
-            %x_174:i32 = load %x_91
-            %x_175:i32 = load %x_92
-            %x_179:i32 = load %x_93
-            %137:i32 = mul 2i, %x_175
-            %138:i32 = add %x_174, %137
-            %139:i32 = sub %138, 1i
-            %140:i32 = min %139, %x_179
-            store %x_88, %140
-            %x_181:i32 = load %x_90
+            %187:i32 = load %x_91
+            %x_170:i32 = let %187
+            %189:i32 = load %x_92
+            %x_171:i32 = let %189
+            %191:i32 = add %x_170, %x_171
+            %192:i32 = sub %191, 1i
+            store %x_89, %192
+            %193:i32 = load %x_91
+            %x_174:i32 = let %193
+            %195:i32 = load %x_92
+            %x_175:i32 = let %195
+            %197:i32 = load %x_93
+            %x_179:i32 = let %197
+            %199:i32 = mul 2i, %x_175
+            %200:i32 = add %x_174, %199
+            %201:i32 = sub %200, 1i
+            %202:i32 = min %201, %x_179
+            store %x_88, %202
+            %203:i32 = load %x_90
+            %x_181:i32 = let %203
             store %x_87, %x_181
-            %x_182:i32 = load %x_89
+            %205:i32 = load %x_89
+            %x_182:i32 = let %205
             store %x_86, %x_182
-            %x_183:i32 = load %x_88
+            %207:i32 = load %x_88
+            %x_183:i32 = let %207
             store %x_85, %x_183
-            %144:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
-            continue %b40
+            %209:void = call %merge_i1_i1_i1_, %x_87, %x_86, %x_85
+            continue  # -> $B40
           }
-          %b40 = block {  # continuing
-            %x_185:i32 = load %x_92
-            %x_187:i32 = load %x_91
-            %147:i32 = mul 2i, %x_185
-            %148:i32 = add %x_187, %147
-            store %x_91, %148
-            next_iteration %b39
+          $B40: {  # continuing
+            %210:i32 = load %x_92
+            %x_185:i32 = let %210
+            %212:i32 = load %x_91
+            %x_187:i32 = let %212
+            %214:i32 = mul 2i, %x_185
+            %215:i32 = add %x_187, %214
+            store %x_91, %215
+            next_iteration  # -> $B39
           }
         }
-        continue %b36
+        continue  # -> $B36
       }
-      %b36 = block {  # continuing
-        %x_189:i32 = load %x_92
-        %150:i32 = mul 2i, %x_189
-        store %x_92, %150
-        next_iteration %b35
+      $B36: {  # continuing
+        %216:i32 = load %x_92
+        %x_189:i32 = let %216
+        %218:i32 = mul 2i, %x_189
+        store %x_92, %218
+        next_iteration  # -> $B35
       }
     }
-    %x_193:f32 = load_vector_element %gl_FragCoord, 1u
-    %152:i32 = convert %x_193
-    %153:bool = lt %152, 30i
-    if %153 [t: %b43, f: %b44] {  # if_8
-      %b43 = block {  # true
-        %154:ptr<private, i32, read_write> = access %data, 0i
-        %x_200:i32 = load %154
-        %156:f32 = convert %x_200
-        %157:f32 = div %156, 10.0f
-        %158:f32 = add 0.5f, %157
-        store %grey, %158
+    %219:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_193:f32 = let %219
+    %221:i32 = call %tint_f32_to_i32, %x_193
+    %222:bool = lt %221, 30i
+    if %222 [t: $B43, f: $B44] {  # if_8
+      $B43: {  # true
+        %223:ptr<private, i32, read_write> = access %data, 0i
+        %224:i32 = load %223
+        %x_200:i32 = let %224
+        %226:f32 = convert %x_200
+        %227:f32 = div %226, 10.0f
+        %228:f32 = add 0.5f, %227
+        store %grey, %228
         exit_if  # if_8
       }
-      %b44 = block {  # false
-        %x_205:f32 = load_vector_element %gl_FragCoord, 1u
-        %160:i32 = convert %x_205
-        %161:bool = lt %160, 60i
-        if %161 [t: %b45, f: %b46] {  # if_9
-          %b45 = block {  # true
-            %162:ptr<private, i32, read_write> = access %data, 1i
-            %x_212:i32 = load %162
-            %164:f32 = convert %x_212
-            %165:f32 = div %164, 10.0f
-            %166:f32 = add 0.5f, %165
-            store %grey, %166
+      $B44: {  # false
+        %229:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_205:f32 = let %229
+        %231:i32 = call %tint_f32_to_i32, %x_205
+        %232:bool = lt %231, 60i
+        if %232 [t: $B45, f: $B46] {  # if_9
+          $B45: {  # true
+            %233:ptr<private, i32, read_write> = access %data, 1i
+            %234:i32 = load %233
+            %x_212:i32 = let %234
+            %236:f32 = convert %x_212
+            %237:f32 = div %236, 10.0f
+            %238:f32 = add 0.5f, %237
+            store %grey, %238
             exit_if  # if_9
           }
-          %b46 = block {  # false
-            %x_217:f32 = load_vector_element %gl_FragCoord, 1u
-            %168:i32 = convert %x_217
-            %169:bool = lt %168, 90i
-            if %169 [t: %b47, f: %b48] {  # if_10
-              %b47 = block {  # true
-                %170:ptr<private, i32, read_write> = access %data, 2i
-                %x_224:i32 = load %170
-                %172:f32 = convert %x_224
-                %173:f32 = div %172, 10.0f
-                %174:f32 = add 0.5f, %173
-                store %grey, %174
+          $B46: {  # false
+            %239:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_217:f32 = let %239
+            %241:i32 = call %tint_f32_to_i32, %x_217
+            %242:bool = lt %241, 90i
+            if %242 [t: $B47, f: $B48] {  # if_10
+              $B47: {  # true
+                %243:ptr<private, i32, read_write> = access %data, 2i
+                %244:i32 = load %243
+                %x_224:i32 = let %244
+                %246:f32 = convert %x_224
+                %247:f32 = div %246, 10.0f
+                %248:f32 = add 0.5f, %247
+                store %grey, %248
                 exit_if  # if_10
               }
-              %b48 = block {  # false
-                %x_229:f32 = load_vector_element %gl_FragCoord, 1u
-                %176:i32 = convert %x_229
-                %177:bool = lt %176, 120i
-                if %177 [t: %b49, f: %b50] {  # if_11
-                  %b49 = block {  # true
-                    %178:ptr<private, i32, read_write> = access %data, 3i
-                    %x_236:i32 = load %178
-                    %180:f32 = convert %x_236
-                    %181:f32 = div %180, 10.0f
-                    %182:f32 = add 0.5f, %181
-                    store %grey, %182
+              $B48: {  # false
+                %249:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_229:f32 = let %249
+                %251:i32 = call %tint_f32_to_i32, %x_229
+                %252:bool = lt %251, 120i
+                if %252 [t: $B49, f: $B50] {  # if_11
+                  $B49: {  # true
+                    %253:ptr<private, i32, read_write> = access %data, 3i
+                    %254:i32 = load %253
+                    %x_236:i32 = let %254
+                    %256:f32 = convert %x_236
+                    %257:f32 = div %256, 10.0f
+                    %258:f32 = add 0.5f, %257
+                    store %grey, %258
                     exit_if  # if_11
                   }
-                  %b50 = block {  # false
-                    %x_241:f32 = load_vector_element %gl_FragCoord, 1u
-                    %184:i32 = convert %x_241
-                    %185:bool = lt %184, 150i
-                    if %185 [t: %b51, f: %b52] {  # if_12
-                      %b51 = block {  # true
-                        discard
+                  $B50: {  # false
+                    %259:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_241:f32 = let %259
+                    %261:i32 = call %tint_f32_to_i32, %x_241
+                    %262:bool = lt %261, 150i
+                    if %262 [t: $B51, f: $B52] {  # if_12
+                      $B51: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b52 = block {  # false
-                        %x_248:f32 = load_vector_element %gl_FragCoord, 1u
-                        %187:i32 = convert %x_248
-                        %188:bool = lt %187, 180i
-                        if %188 [t: %b53, f: %b54] {  # if_13
-                          %b53 = block {  # true
-                            %189:ptr<private, i32, read_write> = access %data, 5i
-                            %x_255:i32 = load %189
-                            %191:f32 = convert %x_255
-                            %192:f32 = div %191, 10.0f
-                            %193:f32 = add 0.5f, %192
-                            store %grey, %193
+                      $B52: {  # false
+                        %263:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_248:f32 = let %263
+                        %265:i32 = call %tint_f32_to_i32, %x_248
+                        %266:bool = lt %265, 180i
+                        if %266 [t: $B53, f: $B54] {  # if_13
+                          $B53: {  # true
+                            %267:ptr<private, i32, read_write> = access %data, 5i
+                            %268:i32 = load %267
+                            %x_255:i32 = let %268
+                            %270:f32 = convert %x_255
+                            %271:f32 = div %270, 10.0f
+                            %272:f32 = add 0.5f, %271
+                            store %grey, %272
                             exit_if  # if_13
                           }
-                          %b54 = block {  # false
-                            %x_260:f32 = load_vector_element %gl_FragCoord, 1u
-                            %195:i32 = convert %x_260
-                            %196:bool = lt %195, 210i
-                            if %196 [t: %b55, f: %b56] {  # if_14
-                              %b55 = block {  # true
-                                %197:ptr<private, i32, read_write> = access %data, 6i
-                                %x_267:i32 = load %197
-                                %199:f32 = convert %x_267
-                                %200:f32 = div %199, 10.0f
-                                %201:f32 = add 0.5f, %200
-                                store %grey, %201
+                          $B54: {  # false
+                            %273:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_260:f32 = let %273
+                            %275:i32 = call %tint_f32_to_i32, %x_260
+                            %276:bool = lt %275, 210i
+                            if %276 [t: $B55, f: $B56] {  # if_14
+                              $B55: {  # true
+                                %277:ptr<private, i32, read_write> = access %data, 6i
+                                %278:i32 = load %277
+                                %x_267:i32 = let %278
+                                %280:f32 = convert %x_267
+                                %281:f32 = div %280, 10.0f
+                                %282:f32 = add 0.5f, %281
+                                store %grey, %282
                                 exit_if  # if_14
                               }
-                              %b56 = block {  # false
-                                %x_272:f32 = load_vector_element %gl_FragCoord, 1u
-                                %203:i32 = convert %x_272
-                                %204:bool = lt %203, 240i
-                                if %204 [t: %b57, f: %b58] {  # if_15
-                                  %b57 = block {  # true
-                                    %205:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_279:i32 = load %205
-                                    %207:f32 = convert %x_279
-                                    %208:f32 = div %207, 10.0f
-                                    %209:f32 = add 0.5f, %208
-                                    store %grey, %209
+                              $B56: {  # false
+                                %283:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_272:f32 = let %283
+                                %285:i32 = call %tint_f32_to_i32, %x_272
+                                %286:bool = lt %285, 240i
+                                if %286 [t: $B57, f: $B58] {  # if_15
+                                  $B57: {  # true
+                                    %287:ptr<private, i32, read_write> = access %data, 7i
+                                    %288:i32 = load %287
+                                    %x_279:i32 = let %288
+                                    %290:f32 = convert %x_279
+                                    %291:f32 = div %290, 10.0f
+                                    %292:f32 = add 0.5f, %291
+                                    store %grey, %292
                                     exit_if  # if_15
                                   }
-                                  %b58 = block {  # false
-                                    %x_284:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %211:i32 = convert %x_284
-                                    %212:bool = lt %211, 270i
-                                    if %212 [t: %b59, f: %b60] {  # if_16
-                                      %b59 = block {  # true
-                                        %213:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_291:i32 = load %213
-                                        %215:f32 = convert %x_291
-                                        %216:f32 = div %215, 10.0f
-                                        %217:f32 = add 0.5f, %216
-                                        store %grey, %217
+                                  $B58: {  # false
+                                    %293:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_284:f32 = let %293
+                                    %295:i32 = call %tint_f32_to_i32, %x_284
+                                    %296:bool = lt %295, 270i
+                                    if %296 [t: $B59, f: $B60] {  # if_16
+                                      $B59: {  # true
+                                        %297:ptr<private, i32, read_write> = access %data, 8i
+                                        %298:i32 = load %297
+                                        %x_291:i32 = let %298
+                                        %300:f32 = convert %x_291
+                                        %301:f32 = div %300, 10.0f
+                                        %302:f32 = add 0.5f, %301
+                                        store %grey, %302
                                         exit_if  # if_16
                                       }
-                                      %b60 = block {  # false
-                                        discard
+                                      $B60: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
@@ -501,27 +585,36 @@
         exit_if  # if_8
       }
     }
-    %x_295:f32 = load %grey
-    %x_296:vec3<f32> = construct %x_295, %x_295, %x_295
-    %220:f32 = access %x_296, 0u
-    %221:f32 = access %x_296, 1u
-    %222:f32 = access %x_296, 2u
-    %223:vec4<f32> = construct %220, %221, %222, 1.0f
-    store %x_GLF_color, %223
+    %303:f32 = load %grey
+    %x_295:f32 = let %303
+    %305:vec3<f32> = construct %x_295, %x_295, %x_295
+    %x_296:vec3<f32> = let %305
+    %307:f32 = access %x_296, 0u
+    %308:f32 = access %x_296, 1u
+    %309:f32 = access %x_296, 2u
+    %310:vec4<f32> = construct %307, %308, %309, 1.0f
+    store %x_GLF_color, %310
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b61 {
-  %b61 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B61: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %226:void = call %main_1
-    %227:vec4<f32> = load %x_GLF_color
-    %228:main_out = construct %227
-    ret %228
+    %313:void = call %main_1
+    %314:vec4<f32> = load %x_GLF_color
+    %315:main_out = construct %314
+    %316:bool = load %continue_execution
+    %317:bool = eq %316, false
+    if %317 [t: $B62] {  # if_17
+      $B62: {  # true
+        terminate_invocation
+      }
+    }
+    ret %315
   }
 }
-%mergeSort_ = func():void -> %b62 {
-  %b62 = block {
+%mergeSort_ = func():void {
+  $B63: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -535,79 +628,106 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b63, c: %b64] {  # loop_8
-      %b63 = block {  # body
-        %x_381:i32 = load %m
-        %x_382:i32 = load %high
-        %242:bool = lte %x_381, %x_382
-        if %242 [t: %b65, f: %b66] {  # if_17
-          %b65 = block {  # true
-            exit_if  # if_17
+    loop [b: $B64, c: $B65] {  # loop_8
+      $B64: {  # body
+        %329:i32 = load %m
+        %x_381:i32 = let %329
+        %331:i32 = load %high
+        %x_382:i32 = let %331
+        %333:bool = lte %x_381, %x_382
+        if %333 [t: $B66, f: $B67] {  # if_18
+          $B66: {  # true
+            exit_if  # if_18
           }
-          %b66 = block {  # false
+          $B67: {  # false
             exit_loop  # loop_8
           }
         }
-        %x_385:i32 = load %low
+        %334:i32 = load %low
+        %x_385:i32 = let %334
         store %i_2, %x_385
-        loop [b: %b67, c: %b68] {  # loop_9
-          %b67 = block {  # body
-            %x_390:i32 = load %i_2
-            %x_391:i32 = load %high
-            %246:bool = lt %x_390, %x_391
-            if %246 [t: %b69, f: %b70] {  # if_18
-              %b69 = block {  # true
-                exit_if  # if_18
+        loop [b: $B68, c: $B69] {  # loop_9
+          $B68: {  # body
+            %336:i32 = load %i_2
+            %x_390:i32 = let %336
+            %338:i32 = load %high
+            %x_391:i32 = let %338
+            %340:bool = lt %x_390, %x_391
+            if %340 [t: $B70, f: $B71] {  # if_19
+              $B70: {  # true
+                exit_if  # if_19
               }
-              %b70 = block {  # false
+              $B71: {  # false
                 exit_loop  # loop_9
               }
             }
-            %x_394:i32 = load %i_2
+            %341:i32 = load %i_2
+            %x_394:i32 = let %341
             store %f_1, %x_394
-            %x_395:i32 = load %i_2
-            %x_396:i32 = load %m
-            %250:i32 = add %x_395, %x_396
-            %251:i32 = sub %250, 1i
-            store %mid_1, %251
-            %x_399:i32 = load %i_2
-            %x_400:i32 = load %m
-            %x_404:i32 = load %high
-            %255:i32 = mul 2i, %x_400
-            %256:i32 = add %x_399, %255
-            %257:i32 = sub %256, 1i
-            %258:i32 = min %257, %x_404
-            store %to_1, %258
-            %x_406:i32 = load %f_1
+            %343:i32 = load %i_2
+            %x_395:i32 = let %343
+            %345:i32 = load %m
+            %x_396:i32 = let %345
+            %347:i32 = add %x_395, %x_396
+            %348:i32 = sub %347, 1i
+            store %mid_1, %348
+            %349:i32 = load %i_2
+            %x_399:i32 = let %349
+            %351:i32 = load %m
+            %x_400:i32 = let %351
+            %353:i32 = load %high
+            %x_404:i32 = let %353
+            %355:i32 = mul 2i, %x_400
+            %356:i32 = add %x_399, %355
+            %357:i32 = sub %356, 1i
+            %358:i32 = min %357, %x_404
+            store %to_1, %358
+            %359:i32 = load %f_1
+            %x_406:i32 = let %359
             store %param, %x_406
-            %x_407:i32 = load %mid_1
+            %361:i32 = load %mid_1
+            %x_407:i32 = let %361
             store %param_1, %x_407
-            %x_408:i32 = load %to_1
+            %363:i32 = load %to_1
+            %x_408:i32 = let %363
             store %param_2, %x_408
-            %262:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b68
+            %365:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B69
           }
-          %b68 = block {  # continuing
-            %x_410:i32 = load %m
-            %x_412:i32 = load %i_2
-            %265:i32 = mul 2i, %x_410
-            %266:i32 = add %x_412, %265
-            store %i_2, %266
-            next_iteration %b67
+          $B69: {  # continuing
+            %366:i32 = load %m
+            %x_410:i32 = let %366
+            %368:i32 = load %i_2
+            %x_412:i32 = let %368
+            %370:i32 = mul 2i, %x_410
+            %371:i32 = add %x_412, %370
+            store %i_2, %371
+            next_iteration  # -> $B68
           }
         }
-        continue %b64
+        continue  # -> $B65
       }
-      %b64 = block {  # continuing
-        %x_414:i32 = load %m
-        %268:i32 = mul 2i, %x_414
-        store %m, %268
-        next_iteration %b63
+      $B65: {  # continuing
+        %372:i32 = load %m
+        %x_414:i32 = let %372
+        %374:i32 = mul 2i, %x_414
+        store %m, %374
+        next_iteration  # -> $B64
       }
     }
     ret
   }
 }
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B72: {
+    %376:i32 = convert %value
+    %377:bool = gte %value, -2147483648.0f
+    %378:i32 = select -2147483648i, %376, %377
+    %379:bool = lte %value, 2147483520.0f
+    %380:i32 = select 2147483647i, %378, %379
+    ret %380
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.msl
index 5c08107..546198e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_77:ptr<function, vec2<i32>, read_write> = var
     %x_80:ptr<function, i32, read_write> = var
@@ -27,151 +27,179 @@
     %13:vec2<f32> = swizzle %12, xy
     %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %15:vec2<f32> = load %14
-    %x_60:vec2<f32> = div %13, %15
-    %17:f32 = access %x_60, 0u
-    %18:f32 = mul %17, 8.0f
-    %x_63:i32 = convert %18
-    %20:f32 = access %x_60, 1u
-    %21:f32 = mul %20, 8.0f
-    %x_66:i32 = convert %21
-    %23:i32 = and %x_63, 5i
-    %24:i32 = and %x_66, 10i
-    %25:i32 = or %23, %24
-    %26:i32 = mul %25, 8i
-    %27:i32 = and %x_66, 5i
-    %28:i32 = and %x_63, 10i
+    %16:vec2<f32> = div %13, %15
+    %x_60:vec2<f32> = let %16
+    %18:f32 = access %x_60, 0u
+    %19:f32 = mul %18, 8.0f
+    %20:i32 = call %tint_f32_to_i32, %19
+    %x_63:i32 = let %20
+    %23:f32 = access %x_60, 1u
+    %24:f32 = mul %23, 8.0f
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_66:i32 = let %25
+    %27:i32 = and %x_63, 5i
+    %28:i32 = and %x_66, 10i
     %29:i32 = or %27, %28
-    %30:i32 = add %26, %29
-    %31:vec2<i32> = construct %30, 0i
-    store %x_77, %31
+    %30:i32 = mul %29, 8i
+    %31:i32 = and %x_66, 5i
+    %32:i32 = and %x_63, 10i
+    %33:i32 = or %31, %32
+    %34:i32 = add %30, %33
+    %35:vec2<i32> = construct %34, 0i
+    store %x_77, %35
     store %x_80, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_91:ptr<function, vec2<i32>, read_write> = var
         %x_92:ptr<function, vec2<i32>, read_write> = var
         %x_99:ptr<function, vec2<i32>, read_write> = var
         %x_100:ptr<function, vec2<i32>, read_write> = var
         %x_81:ptr<function, i32, read_write> = var
-        %37:i32 = load %x_80
-        %38:bool = lt %37, 100i
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %41:i32 = load %x_80
+        %42:bool = lt %41, 100i
+        if %42 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %39:vec2<i32> = load %x_77
-        store %x_92, %39
-        %40:i32 = load_vector_element %x_77, 0u
-        %41:bool = gt %40, 0i
-        if %41 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %42:vec2<i32> = load %x_77
-            store %x_91, %42
-            %43:i32 = load_vector_element %x_77, 1u
-            %44:i32 = sub %43, 1i
-            store_vector_element %x_91, 1u, %44
-            %45:vec2<i32> = load %x_91
-            store %x_92, %45
+        %43:vec2<i32> = load %x_77
+        store %x_92, %43
+        %44:i32 = load_vector_element %x_77, 0u
+        %45:bool = gt %44, 0i
+        if %45 [t: $B7] {  # if_2
+          $B7: {  # true
+            %46:vec2<i32> = load %x_77
+            store %x_91, %46
+            %47:i32 = load_vector_element %x_77, 1u
+            %48:i32 = sub %47, 1i
+            store_vector_element %x_91, 1u, %48
+            %49:vec2<i32> = load %x_91
+            store %x_92, %49
             exit_if  # if_2
           }
         }
-        %46:vec2<i32> = load %x_92
-        store %x_100, %46
-        %47:i32 = load_vector_element %x_92, 0u
-        %48:bool = lt %47, 0i
-        if %48 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %49:vec2<i32> = load %x_92
-            store %x_99, %49
-            %50:i32 = load_vector_element %x_92, 1u
-            %51:i32 = add %50, 1i
-            store_vector_element %x_99, 1u, %51
-            %52:vec2<i32> = load %x_99
-            store %x_100, %52
+        %50:vec2<i32> = load %x_92
+        store %x_100, %50
+        %51:i32 = load_vector_element %x_92, 0u
+        %52:bool = lt %51, 0i
+        if %52 [t: $B8] {  # if_3
+          $B8: {  # true
+            %53:vec2<i32> = load %x_92
+            store %x_99, %53
+            %54:i32 = load_vector_element %x_92, 1u
+            %55:i32 = add %54, 1i
+            store_vector_element %x_99, 1u, %55
+            %56:vec2<i32> = load %x_99
+            store %x_100, %56
             exit_if  # if_3
           }
         }
-        %53:vec2<i32> = load %x_100
-        %x_78_1:ptr<function, vec2<i32>, read_write> = var, %53
-        %55:i32 = load_vector_element %x_100, 0u
-        %56:i32 = load_vector_element %x_100, 1u
-        %57:i32 = div %56, 2i
-        %58:i32 = add %55, %57
-        store_vector_element %x_78_1, 0u, %58
-        %x_78:vec2<i32> = load %x_78_1
-        continue %b4
+        %57:vec2<i32> = load %x_100
+        %x_78_1:ptr<function, vec2<i32>, read_write> = var, %57
+        %59:i32 = load_vector_element %x_100, 0u
+        %60:i32 = let %59
+        %61:i32 = load_vector_element %x_100, 1u
+        %62:i32 = call %tint_div_i32, %61, 2i
+        %64:i32 = add %60, %62
+        store_vector_element %x_78_1, 0u, %64
+        %65:vec2<i32> = load %x_78_1
+        %x_78:vec2<i32> = let %65
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %60:i32 = load %x_80
-        %61:i32 = add %60, 1i
-        store %x_81, %61
+      $B4: {  # continuing
+        %67:i32 = load %x_80
+        %68:i32 = add %67, 1i
+        store %x_81, %68
         store %x_77, %x_78
-        %62:i32 = load %x_81
-        store %x_80, %62
-        next_iteration %b3
+        %69:i32 = load %x_81
+        store %x_80, %69
+        next_iteration  # -> $B3
       }
     }
-    %x_105:i32 = load_vector_element %x_77, 0u
-    %64:vec2<i32> = load %x_77
-    store %x_111, %64
-    %65:bool = lt %x_105, 0i
-    if %65 [t: %b9] {  # if_4
-      %b9 = block {  # true
+    %70:i32 = load_vector_element %x_77, 0u
+    %x_105:i32 = let %70
+    %72:vec2<i32> = load %x_77
+    store %x_111, %72
+    %73:bool = lt %x_105, 0i
+    if %73 [t: $B9] {  # if_4
+      $B9: {  # true
         store %x_110, vec2<i32>(0i)
-        %66:i32 = negation %x_105
-        store_vector_element %x_110, 0u, %66
-        %67:vec2<i32> = load %x_110
-        store %x_111, %67
+        %74:i32 = negation %x_105
+        store_vector_element %x_110, 0u, %74
+        %75:vec2<i32> = load %x_110
+        store %x_111, %75
         exit_if  # if_4
       }
     }
-    %68:vec2<i32> = load %x_111
-    store %x_113, %68
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    %76:vec2<i32> = load %x_111
+    store %x_113, %76
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_114:ptr<function, vec2<i32>, read_write> = var
-        %70:i32 = load_vector_element %x_113, 0u
-        store %x_116, %70
-        %71:i32 = load %x_116
-        %72:bool = gt %71, 15i
-        if %72 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %78:i32 = load_vector_element %x_113, 0u
+        store %x_116, %78
+        %79:i32 = load %x_116
+        %80:bool = gt %79, 15i
+        if %80 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_114, vec2<i32>(0i)
-        %73:i32 = load %x_116
-        %74:i32 = sub %73, 16i
-        store_vector_element %x_114, 0u, %74
-        %75:vec2<i32> = load %x_114
-        store %x_113, %75
-        next_iteration %b10
+        %81:i32 = load %x_116
+        %82:i32 = sub %81, 16i
+        store_vector_element %x_114, 0u, %82
+        %83:vec2<i32> = load %x_114
+        store %x_113, %83
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %76:i32 = load %x_116
-    %77:ptr<function, vec4<f32>, read_write> = access %indexable, %76
-    %78:vec4<f32> = load %77
-    store %x_GLF_color, %78
+    %84:i32 = load %x_116
+    %85:ptr<function, vec4<f32>, read_write> = access %indexable, %84
+    %86:vec4<f32> = load %85
+    store %x_GLF_color, %86
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %81:void = call %main_1
-    %82:vec4<f32> = load %x_GLF_color
-    %83:main_out = construct %82
-    ret %83
+    %89:void = call %main_1
+    %90:vec4<f32> = load %x_GLF_color
+    %91:main_out = construct %90
+    ret %91
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %94:bool = eq %rhs, 0i
+    %95:bool = eq %lhs, -2147483648i
+    %96:bool = eq %rhs, -1i
+    %97:bool = and %95, %96
+    %98:bool = or %94, %97
+    %99:i32 = select %rhs, 1i, %98
+    %100:i32 = div %lhs, %99
+    ret %100
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %102:i32 = convert %value
+    %103:bool = gte %value, -2147483648.0f
+    %104:i32 = select -2147483648i, %102, %103
+    %105:bool = lte %value, 2147483520.0f
+    %106:i32 = select 2147483647i, %104, %105
+    ret %106
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.msl
index a222196..37f898b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_77:ptr<function, vec2<i32>, read_write> = var
     %x_110:ptr<function, vec2<i32>, read_write> = var
@@ -24,159 +24,195 @@
     %x_80_phi:ptr<function, i32, read_write> = var
     %x_111_phi:ptr<function, vec2<i32>, read_write> = var
     %x_113_phi:ptr<function, vec2<i32>, read_write> = var
-    %x_56:vec4<f32> = load %gl_FragCoord
-    %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_59:vec2<f32> = load %14
-    %16:f32 = access %x_56, 0u
-    %17:f32 = access %x_56, 1u
-    %18:vec2<f32> = construct %16, %17
-    %x_60:vec2<f32> = div %18, %x_59
-    %20:f32 = access %x_60, 0u
-    %21:f32 = mul %20, 8.0f
-    %x_63:i32 = convert %21
-    %23:f32 = access %x_60, 1u
+    %13:vec4<f32> = load %gl_FragCoord
+    %x_56:vec4<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_59:vec2<f32> = let %16
+    %18:f32 = access %x_56, 0u
+    %19:f32 = access %x_56, 1u
+    %20:vec2<f32> = construct %18, %19
+    %21:vec2<f32> = div %20, %x_59
+    %x_60:vec2<f32> = let %21
+    %23:f32 = access %x_60, 0u
     %24:f32 = mul %23, 8.0f
-    %x_66:i32 = convert %24
-    %26:i32 = and %x_63, 5i
-    %27:i32 = and %x_66, 10i
-    %28:i32 = or %26, %27
-    %29:i32 = mul %28, 8i
-    %30:i32 = and %x_66, 5i
-    %31:i32 = and %x_63, 10i
-    %32:i32 = or %30, %31
-    %33:i32 = add %29, %32
-    %x_75:vec2<i32> = construct %33, 0i
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_63:i32 = let %25
+    %28:f32 = access %x_60, 1u
+    %29:f32 = mul %28, 8.0f
+    %30:i32 = call %tint_f32_to_i32, %29
+    %x_66:i32 = let %30
+    %32:i32 = and %x_63, 5i
+    %33:i32 = and %x_66, 10i
+    %34:i32 = or %32, %33
+    %35:i32 = mul %34, 8i
+    %36:i32 = and %x_66, 5i
+    %37:i32 = and %x_63, 10i
+    %38:i32 = or %36, %37
+    %39:i32 = add %35, %38
+    %40:vec2<i32> = construct %39, 0i
+    %x_75:vec2<i32> = let %40
     store %x_77_phi, %x_75
     store %x_80_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_91:ptr<function, vec2<i32>, read_write> = var
         %x_99:ptr<function, vec2<i32>, read_write> = var
         %x_81:ptr<function, i32, read_write> = var
         %x_92_phi:ptr<function, vec2<i32>, read_write> = var
         %x_100_phi:ptr<function, vec2<i32>, read_write> = var
-        %40:vec2<i32> = load %x_77_phi
-        store %x_77, %40
-        %x_80:i32 = load %x_80_phi
-        %42:bool = lt %x_80, 100i
-        if %42 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %47:vec2<i32> = load %x_77_phi
+        store %x_77, %47
+        %48:i32 = load %x_80_phi
+        %x_80:i32 = let %48
+        %50:bool = lt %x_80, 100i
+        if %50 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:vec2<i32> = load %x_77
-        store %x_92_phi, %43
-        %44:i32 = load_vector_element %x_77, 0u
-        %45:bool = gt %44, 0i
-        if %45 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %46:vec2<i32> = load %x_77
-            store %x_91, %46
-            %47:i32 = load_vector_element %x_77, 1u
-            %48:i32 = sub %47, 1i
-            store_vector_element %x_91, 1u, %48
-            %49:vec2<i32> = load %x_91
-            store %x_92_phi, %49
+        %51:vec2<i32> = load %x_77
+        store %x_92_phi, %51
+        %52:i32 = load_vector_element %x_77, 0u
+        %53:bool = gt %52, 0i
+        if %53 [t: $B7] {  # if_2
+          $B7: {  # true
+            %54:vec2<i32> = load %x_77
+            store %x_91, %54
+            %55:i32 = load_vector_element %x_77, 1u
+            %56:i32 = sub %55, 1i
+            store_vector_element %x_91, 1u, %56
+            %57:vec2<i32> = load %x_91
+            store %x_92_phi, %57
             exit_if  # if_2
           }
         }
-        %x_92:vec2<i32> = load %x_92_phi
+        %58:vec2<i32> = load %x_92_phi
+        %x_92:vec2<i32> = let %58
         store %x_100_phi, %x_92
-        %51:i32 = access %x_92, 0u
-        %52:bool = lt %51, 0i
-        if %52 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %60:i32 = access %x_92, 0u
+        %61:bool = lt %60, 0i
+        if %61 [t: $B8] {  # if_3
+          $B8: {  # true
             store %x_99, %x_92
-            %53:i32 = access %x_92, 1u
-            %54:i32 = add %53, 1i
-            store_vector_element %x_99, 1u, %54
-            %55:vec2<i32> = load %x_99
-            store %x_100_phi, %55
+            %62:i32 = access %x_92, 1u
+            %63:i32 = add %62, 1i
+            store_vector_element %x_99, 1u, %63
+            %64:vec2<i32> = load %x_99
+            store %x_100_phi, %64
             exit_if  # if_3
           }
         }
-        %x_100:vec2<i32> = load %x_100_phi
+        %65:vec2<i32> = load %x_100_phi
+        %x_100:vec2<i32> = let %65
         %x_78_1:ptr<function, vec2<i32>, read_write> = var, %x_100
-        %58:i32 = access %x_100, 0u
-        %59:i32 = access %x_100, 1u
-        %60:i32 = div %59, 2i
-        %61:i32 = add %58, %60
-        store_vector_element %x_78_1, 0u, %61
-        %x_78:vec2<i32> = load %x_78_1
-        continue %b4
+        %68:i32 = access %x_100, 0u
+        %69:i32 = access %x_100, 1u
+        %70:i32 = call %tint_div_i32, %69, 2i
+        %72:i32 = add %68, %70
+        store_vector_element %x_78_1, 0u, %72
+        %73:vec2<i32> = load %x_78_1
+        %x_78:vec2<i32> = let %73
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %63:i32 = add %x_80, 1i
-        store %x_81, %63
+      $B4: {  # continuing
+        %75:i32 = add %x_80, 1i
+        store %x_81, %75
         store %x_77_phi, %x_78
-        %64:i32 = load %x_81
-        store %x_80_phi, %64
-        next_iteration %b3
+        %76:i32 = load %x_81
+        store %x_80_phi, %76
+        next_iteration  # -> $B3
       }
     }
-    %x_105:i32 = load_vector_element %x_77, 0u
-    %66:vec2<i32> = load %x_77
-    store %x_111_phi, %66
-    %67:bool = lt %x_105, 0i
-    if %67 [t: %b9] {  # if_4
-      %b9 = block {  # true
+    %77:i32 = load_vector_element %x_77, 0u
+    %x_105:i32 = let %77
+    %79:vec2<i32> = load %x_77
+    store %x_111_phi, %79
+    %80:bool = lt %x_105, 0i
+    if %80 [t: $B9] {  # if_4
+      $B9: {  # true
         store %x_110, vec2<i32>(0i)
-        %68:i32 = negation %x_105
-        store_vector_element %x_110, 0u, %68
-        %69:vec2<i32> = load %x_110
-        store %x_111_phi, %69
+        %81:i32 = negation %x_105
+        store_vector_element %x_110, 0u, %81
+        %82:vec2<i32> = load %x_110
+        store %x_111_phi, %82
         exit_if  # if_4
       }
     }
-    %x_111:vec2<i32> = load %x_111_phi
+    %83:vec2<i32> = load %x_111_phi
+    %x_111:vec2<i32> = let %83
     store %x_113_phi, %x_111
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_114:ptr<function, vec2<i32>, read_write> = var
-        %x_113:vec2<i32> = load %x_113_phi
-        %73:i32 = access %x_113, 0u
-        store %x_116, %73
-        %74:i32 = load %x_116
-        %75:bool = gt %74, 15i
-        if %75 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %86:vec2<i32> = load %x_113_phi
+        %x_113:vec2<i32> = let %86
+        %88:i32 = access %x_113, 0u
+        store %x_116, %88
+        %89:i32 = load %x_116
+        %90:bool = gt %89, 15i
+        if %90 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_114, vec2<i32>(0i)
-        %76:i32 = load %x_116
-        %77:i32 = sub %76, 16i
-        %78:i32 = bitcast %77
-        store_vector_element %x_114, 0u, %78
-        %79:vec2<i32> = load %x_114
-        store %x_113_phi, %79
-        next_iteration %b10
+        %91:i32 = load %x_116
+        %92:i32 = sub %91, 16i
+        %93:i32 = bitcast %92
+        store_vector_element %x_114, 0u, %93
+        %94:vec2<i32> = load %x_114
+        store %x_113_phi, %94
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %80:i32 = load %x_116
-    %81:ptr<function, vec4<f32>, read_write> = access %indexable, %80
-    %x_121:vec4<f32> = load %81
+    %95:i32 = load %x_116
+    %96:ptr<function, vec4<f32>, read_write> = access %indexable, %95
+    %97:vec4<f32> = load %96
+    %x_121:vec4<f32> = let %97
     store %x_GLF_color, %x_121
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %85:void = call %main_1
-    %86:vec4<f32> = load %x_GLF_color
-    %87:main_out = construct %86
-    ret %87
+    %101:void = call %main_1
+    %102:vec4<f32> = load %x_GLF_color
+    %103:main_out = construct %102
+    ret %103
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %106:bool = eq %rhs, 0i
+    %107:bool = eq %lhs, -2147483648i
+    %108:bool = eq %rhs, -1i
+    %109:bool = and %107, %108
+    %110:bool = or %106, %109
+    %111:i32 = select %rhs, 1i, %110
+    %112:i32 = div %lhs, %111
+    ret %112
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %114:i32 = convert %value
+    %115:bool = gte %value, -2147483648.0f
+    %116:i32 = select -2147483648i, %114, %115
+    %117:bool = lte %value, 2147483520.0f
+    %118:i32 = select 2147483647i, %116, %117
+    ret %118
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.msl
index 0a710b9..2d0afab3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_80:ptr<function, vec2<i32>, read_write> = var
     %x_83:ptr<function, i32, read_write> = var
@@ -27,154 +27,183 @@
     %13:vec2<f32> = swizzle %12, xy
     %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %15:vec2<f32> = load %14
-    %x_63:vec2<f32> = div %13, %15
-    %17:f32 = access %x_63, 0u
-    %18:f32 = mul %17, 8.0f
-    %x_66:i32 = convert %18
-    %20:f32 = access %x_63, 1u
-    %21:f32 = mul %20, 8.0f
-    %x_69:i32 = convert %21
-    %23:i32 = and %x_66, 5i
-    %24:i32 = and %x_69, 10i
-    %25:i32 = or %23, %24
-    %26:i32 = mul %25, 8i
-    %27:i32 = and %x_69, 5i
-    %28:i32 = and %x_66, 10i
+    %16:vec2<f32> = div %13, %15
+    %x_63:vec2<f32> = let %16
+    %18:f32 = access %x_63, 0u
+    %19:f32 = mul %18, 8.0f
+    %20:i32 = call %tint_f32_to_i32, %19
+    %x_66:i32 = let %20
+    %23:f32 = access %x_63, 1u
+    %24:f32 = mul %23, 8.0f
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_69:i32 = let %25
+    %27:i32 = and %x_66, 5i
+    %28:i32 = and %x_69, 10i
     %29:i32 = or %27, %28
-    %30:i32 = add %26, %29
-    %31:vec2<i32> = construct %30, 0i
-    store %x_80, %31
+    %30:i32 = mul %29, 8i
+    %31:i32 = and %x_69, 5i
+    %32:i32 = and %x_66, 10i
+    %33:i32 = or %31, %32
+    %34:i32 = add %30, %33
+    %35:vec2<i32> = construct %34, 0i
+    store %x_80, %35
     store %x_83, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_94:ptr<function, vec2<i32>, read_write> = var
         %x_95:ptr<function, vec2<i32>, read_write> = var
         %x_102:ptr<function, vec2<i32>, read_write> = var
         %x_103:ptr<function, vec2<i32>, read_write> = var
         %x_84:ptr<function, i32, read_write> = var
-        %37:i32 = load %x_83
-        %38:bool = lt %37, 100i
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %41:i32 = load %x_83
+        %42:bool = lt %41, 100i
+        if %42 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %39:vec2<i32> = load %x_80
-        store %x_95, %39
-        %40:i32 = load_vector_element %x_80, 0u
-        %41:bool = gt %40, 0i
-        if %41 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %42:vec2<i32> = load %x_80
-            store %x_94, %42
-            %43:i32 = load_vector_element %x_80, 1u
-            %44:i32 = sub %43, 1i
-            store_vector_element %x_94, 1u, %44
-            %45:vec2<i32> = load %x_94
-            store %x_95, %45
+        %43:vec2<i32> = load %x_80
+        store %x_95, %43
+        %44:i32 = load_vector_element %x_80, 0u
+        %45:bool = gt %44, 0i
+        if %45 [t: $B7] {  # if_2
+          $B7: {  # true
+            %46:vec2<i32> = load %x_80
+            store %x_94, %46
+            %47:i32 = load_vector_element %x_80, 1u
+            %48:i32 = sub %47, 1i
+            store_vector_element %x_94, 1u, %48
+            %49:vec2<i32> = load %x_94
+            store %x_95, %49
             exit_if  # if_2
           }
         }
-        %46:vec2<i32> = load %x_95
-        store %x_103, %46
-        %47:i32 = load_vector_element %x_95, 0u
-        %48:bool = lt %47, 0i
-        if %48 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %49:vec2<i32> = load %x_95
-            store %x_102, %49
-            %50:i32 = load_vector_element %x_95, 1u
-            %51:i32 = add %50, 1i
-            store_vector_element %x_102, 1u, %51
-            %52:vec2<i32> = load %x_102
-            store %x_103, %52
+        %50:vec2<i32> = load %x_95
+        store %x_103, %50
+        %51:i32 = load_vector_element %x_95, 0u
+        %52:bool = lt %51, 0i
+        if %52 [t: $B8] {  # if_3
+          $B8: {  # true
+            %53:vec2<i32> = load %x_95
+            store %x_102, %53
+            %54:i32 = load_vector_element %x_95, 1u
+            %55:i32 = add %54, 1i
+            store_vector_element %x_102, 1u, %55
+            %56:vec2<i32> = load %x_102
+            store %x_103, %56
             exit_if  # if_3
           }
         }
-        %53:vec2<i32> = load %x_103
-        %x_81_1:ptr<function, vec2<i32>, read_write> = var, %53
-        %55:i32 = load_vector_element %x_103, 0u
-        %56:i32 = load_vector_element %x_103, 1u
-        %57:i32 = div %56, 2i
-        %58:i32 = add %55, %57
-        store_vector_element %x_81_1, 0u, %58
-        %x_81:vec2<i32> = load %x_81_1
-        continue %b4
+        %57:vec2<i32> = load %x_103
+        %x_81_1:ptr<function, vec2<i32>, read_write> = var, %57
+        %59:i32 = load_vector_element %x_103, 0u
+        %60:i32 = let %59
+        %61:i32 = load_vector_element %x_103, 1u
+        %62:i32 = call %tint_div_i32, %61, 2i
+        %64:i32 = add %60, %62
+        store_vector_element %x_81_1, 0u, %64
+        %65:vec2<i32> = load %x_81_1
+        %x_81:vec2<i32> = let %65
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %60:i32 = load %x_83
-        %61:i32 = add %60, 1i
-        store %x_84, %61
+      $B4: {  # continuing
+        %67:i32 = load %x_83
+        %68:i32 = add %67, 1i
+        store %x_84, %68
         store %x_80, %x_81
-        %62:i32 = load %x_84
-        store %x_83, %62
-        next_iteration %b3
+        %69:i32 = load %x_84
+        store %x_83, %69
+        next_iteration  # -> $B3
       }
     }
-    %x_108:i32 = load_vector_element %x_80, 0u
-    %64:vec2<i32> = load %x_80
-    store %x_114, %64
-    %65:bool = lt %x_108, 0i
-    if %65 [t: %b9] {  # if_4
-      %b9 = block {  # true
+    %70:i32 = load_vector_element %x_80, 0u
+    %x_108:i32 = let %70
+    %72:vec2<i32> = load %x_80
+    store %x_114, %72
+    %73:bool = lt %x_108, 0i
+    if %73 [t: $B9] {  # if_4
+      $B9: {  # true
         store %x_113, vec2<i32>(0i)
-        %66:i32 = negation %x_108
-        store_vector_element %x_113, 0u, %66
-        %67:vec2<i32> = load %x_113
-        store %x_114, %67
+        %74:i32 = negation %x_108
+        store_vector_element %x_113, 0u, %74
+        %75:vec2<i32> = load %x_113
+        store %x_114, %75
         exit_if  # if_4
       }
     }
-    %68:vec2<i32> = load %x_114
-    store %x_116, %68
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    %76:vec2<i32> = load %x_114
+    store %x_116, %76
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_117:ptr<function, vec2<i32>, read_write> = var
-        %70:i32 = load_vector_element %x_116, 0u
-        store %x_119, %70
-        %71:i32 = load %x_119
-        %72:bool = gt %71, 15i
-        if %72 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %78:i32 = load_vector_element %x_116, 0u
+        store %x_119, %78
+        %79:i32 = load %x_119
+        %80:bool = gt %79, 15i
+        if %80 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_117, vec2<i32>(0i)
-        %73:i32 = load %x_119
-        %74:i32 = sub %73, 16i
-        store_vector_element %x_117, 0u, %74
-        %75:vec2<i32> = load %x_117
-        store %x_116, %75
-        next_iteration %b10
+        %81:i32 = load %x_119
+        %82:i32 = sub %81, 16i
+        store_vector_element %x_117, 0u, %82
+        %83:vec2<i32> = load %x_117
+        store %x_116, %83
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_123:array<vec4<f32>, 16> = load %indexable
+    %84:array<vec4<f32>, 16> = load %indexable
+    %x_123:array<vec4<f32>, 16> = let %84
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_123
-    %77:i32 = load %x_119
-    %78:ptr<function, vec4<f32>, read_write> = access %indexable, %77
-    %79:vec4<f32> = load %78
-    store %x_GLF_color, %79
+    %86:i32 = load %x_119
+    %87:ptr<function, vec4<f32>, read_write> = access %indexable, %86
+    %88:vec4<f32> = load %87
+    store %x_GLF_color, %88
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %82:void = call %main_1
-    %83:vec4<f32> = load %x_GLF_color
-    %84:main_out = construct %83
-    ret %84
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    ret %93
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %96:bool = eq %rhs, 0i
+    %97:bool = eq %lhs, -2147483648i
+    %98:bool = eq %rhs, -1i
+    %99:bool = and %97, %98
+    %100:bool = or %96, %99
+    %101:i32 = select %rhs, 1i, %100
+    %102:i32 = div %lhs, %101
+    ret %102
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %104:i32 = convert %value
+    %105:bool = gte %value, -2147483648.0f
+    %106:i32 = select -2147483648i, %104, %105
+    %107:bool = lte %value, 2147483520.0f
+    %108:i32 = select 2147483647i, %106, %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.msl
index 453db69..11e508b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-O-mutate-variable/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_80:ptr<function, vec2<i32>, read_write> = var
     %x_113:ptr<function, vec2<i32>, read_write> = var
@@ -24,162 +24,199 @@
     %x_83_phi:ptr<function, i32, read_write> = var
     %x_114_phi:ptr<function, vec2<i32>, read_write> = var
     %x_116_phi:ptr<function, vec2<i32>, read_write> = var
-    %x_59:vec4<f32> = load %gl_FragCoord
-    %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_62:vec2<f32> = load %14
-    %16:f32 = access %x_59, 0u
-    %17:f32 = access %x_59, 1u
-    %18:vec2<f32> = construct %16, %17
-    %x_63:vec2<f32> = div %18, %x_62
-    %20:f32 = access %x_63, 0u
-    %21:f32 = mul %20, 8.0f
-    %x_66:i32 = convert %21
-    %23:f32 = access %x_63, 1u
+    %13:vec4<f32> = load %gl_FragCoord
+    %x_59:vec4<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_62:vec2<f32> = let %16
+    %18:f32 = access %x_59, 0u
+    %19:f32 = access %x_59, 1u
+    %20:vec2<f32> = construct %18, %19
+    %21:vec2<f32> = div %20, %x_62
+    %x_63:vec2<f32> = let %21
+    %23:f32 = access %x_63, 0u
     %24:f32 = mul %23, 8.0f
-    %x_69:i32 = convert %24
-    %26:i32 = and %x_66, 5i
-    %27:i32 = and %x_69, 10i
-    %28:i32 = or %26, %27
-    %29:i32 = mul %28, 8i
-    %30:i32 = and %x_69, 5i
-    %31:i32 = and %x_66, 10i
-    %32:i32 = or %30, %31
-    %33:i32 = add %29, %32
-    %x_78:vec2<i32> = construct %33, 0i
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_66:i32 = let %25
+    %28:f32 = access %x_63, 1u
+    %29:f32 = mul %28, 8.0f
+    %30:i32 = call %tint_f32_to_i32, %29
+    %x_69:i32 = let %30
+    %32:i32 = and %x_66, 5i
+    %33:i32 = and %x_69, 10i
+    %34:i32 = or %32, %33
+    %35:i32 = mul %34, 8i
+    %36:i32 = and %x_69, 5i
+    %37:i32 = and %x_66, 10i
+    %38:i32 = or %36, %37
+    %39:i32 = add %35, %38
+    %40:vec2<i32> = construct %39, 0i
+    %x_78:vec2<i32> = let %40
     store %x_80_phi, %x_78
     store %x_83_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_94:ptr<function, vec2<i32>, read_write> = var
         %x_102:ptr<function, vec2<i32>, read_write> = var
         %x_84:ptr<function, i32, read_write> = var
         %x_95_phi:ptr<function, vec2<i32>, read_write> = var
         %x_103_phi:ptr<function, vec2<i32>, read_write> = var
-        %40:vec2<i32> = load %x_80_phi
-        store %x_80, %40
-        %x_83:i32 = load %x_83_phi
-        %42:bool = lt %x_83, 100i
-        if %42 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %47:vec2<i32> = load %x_80_phi
+        store %x_80, %47
+        %48:i32 = load %x_83_phi
+        %x_83:i32 = let %48
+        %50:bool = lt %x_83, 100i
+        if %50 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:vec2<i32> = load %x_80
-        store %x_95_phi, %43
-        %44:i32 = load_vector_element %x_80, 0u
-        %45:bool = gt %44, 0i
-        if %45 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %46:vec2<i32> = load %x_80
-            store %x_94, %46
-            %47:i32 = load_vector_element %x_80, 1u
-            %48:i32 = sub %47, 1i
-            store_vector_element %x_94, 1u, %48
-            %49:vec2<i32> = load %x_94
-            store %x_95_phi, %49
+        %51:vec2<i32> = load %x_80
+        store %x_95_phi, %51
+        %52:i32 = load_vector_element %x_80, 0u
+        %53:bool = gt %52, 0i
+        if %53 [t: $B7] {  # if_2
+          $B7: {  # true
+            %54:vec2<i32> = load %x_80
+            store %x_94, %54
+            %55:i32 = load_vector_element %x_80, 1u
+            %56:i32 = sub %55, 1i
+            store_vector_element %x_94, 1u, %56
+            %57:vec2<i32> = load %x_94
+            store %x_95_phi, %57
             exit_if  # if_2
           }
         }
-        %x_95:vec2<i32> = load %x_95_phi
+        %58:vec2<i32> = load %x_95_phi
+        %x_95:vec2<i32> = let %58
         store %x_103_phi, %x_95
-        %51:i32 = access %x_95, 0u
-        %52:bool = lt %51, 0i
-        if %52 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %60:i32 = access %x_95, 0u
+        %61:bool = lt %60, 0i
+        if %61 [t: $B8] {  # if_3
+          $B8: {  # true
             store %x_102, %x_95
-            %53:i32 = access %x_95, 1u
-            %54:i32 = add %53, 1i
-            store_vector_element %x_102, 1u, %54
-            %55:vec2<i32> = load %x_102
-            store %x_103_phi, %55
+            %62:i32 = access %x_95, 1u
+            %63:i32 = add %62, 1i
+            store_vector_element %x_102, 1u, %63
+            %64:vec2<i32> = load %x_102
+            store %x_103_phi, %64
             exit_if  # if_3
           }
         }
-        %x_103:vec2<i32> = load %x_103_phi
+        %65:vec2<i32> = load %x_103_phi
+        %x_103:vec2<i32> = let %65
         %x_81_1:ptr<function, vec2<i32>, read_write> = var, %x_103
-        %58:i32 = access %x_103, 0u
-        %59:i32 = access %x_103, 1u
-        %60:i32 = div %59, 2i
-        %61:i32 = add %58, %60
-        store_vector_element %x_81_1, 0u, %61
-        %x_81:vec2<i32> = load %x_81_1
-        continue %b4
+        %68:i32 = access %x_103, 0u
+        %69:i32 = access %x_103, 1u
+        %70:i32 = call %tint_div_i32, %69, 2i
+        %72:i32 = add %68, %70
+        store_vector_element %x_81_1, 0u, %72
+        %73:vec2<i32> = load %x_81_1
+        %x_81:vec2<i32> = let %73
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %63:i32 = add %x_83, 1i
-        store %x_84, %63
+      $B4: {  # continuing
+        %75:i32 = add %x_83, 1i
+        store %x_84, %75
         store %x_80_phi, %x_81
-        %64:i32 = load %x_84
-        store %x_83_phi, %64
-        next_iteration %b3
+        %76:i32 = load %x_84
+        store %x_83_phi, %76
+        next_iteration  # -> $B3
       }
     }
-    %x_108:i32 = load_vector_element %x_80, 0u
-    %66:vec2<i32> = load %x_80
-    store %x_114_phi, %66
-    %67:bool = lt %x_108, 0i
-    if %67 [t: %b9] {  # if_4
-      %b9 = block {  # true
+    %77:i32 = load_vector_element %x_80, 0u
+    %x_108:i32 = let %77
+    %79:vec2<i32> = load %x_80
+    store %x_114_phi, %79
+    %80:bool = lt %x_108, 0i
+    if %80 [t: $B9] {  # if_4
+      $B9: {  # true
         store %x_113, vec2<i32>(0i)
-        %68:i32 = negation %x_108
-        store_vector_element %x_113, 0u, %68
-        %69:vec2<i32> = load %x_113
-        store %x_114_phi, %69
+        %81:i32 = negation %x_108
+        store_vector_element %x_113, 0u, %81
+        %82:vec2<i32> = load %x_113
+        store %x_114_phi, %82
         exit_if  # if_4
       }
     }
-    %x_114:vec2<i32> = load %x_114_phi
+    %83:vec2<i32> = load %x_114_phi
+    %x_114:vec2<i32> = let %83
     store %x_116_phi, %x_114
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_117:ptr<function, vec2<i32>, read_write> = var
-        %x_116:vec2<i32> = load %x_116_phi
-        %73:i32 = access %x_116, 0u
-        store %x_119, %73
-        %74:i32 = load %x_119
-        %75:bool = gt %74, 15i
-        if %75 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %86:vec2<i32> = load %x_116_phi
+        %x_116:vec2<i32> = let %86
+        %88:i32 = access %x_116, 0u
+        store %x_119, %88
+        %89:i32 = load %x_119
+        %90:bool = gt %89, 15i
+        if %90 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_117, vec2<i32>(0i)
-        %76:i32 = load %x_119
-        %77:i32 = sub %76, 16i
-        %78:i32 = bitcast %77
-        store_vector_element %x_117, 0u, %78
-        %79:vec2<i32> = load %x_117
-        store %x_116_phi, %79
-        next_iteration %b10
+        %91:i32 = load %x_119
+        %92:i32 = sub %91, 16i
+        %93:i32 = bitcast %92
+        store_vector_element %x_117, 0u, %93
+        %94:vec2<i32> = load %x_117
+        store %x_116_phi, %94
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_123:array<vec4<f32>, 16> = load %indexable
+    %95:array<vec4<f32>, 16> = load %indexable
+    %x_123:array<vec4<f32>, 16> = let %95
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_123
-    %81:i32 = load %x_119
-    %82:ptr<function, vec4<f32>, read_write> = access %indexable, %81
-    %x_125:vec4<f32> = load %82
+    %97:i32 = load %x_119
+    %98:ptr<function, vec4<f32>, read_write> = access %indexable, %97
+    %99:vec4<f32> = load %98
+    %x_125:vec4<f32> = let %99
     store %x_GLF_color, %x_125
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %86:void = call %main_1
-    %87:vec4<f32> = load %x_GLF_color
-    %88:main_out = construct %87
-    ret %88
+    %103:void = call %main_1
+    %104:vec4<f32> = load %x_GLF_color
+    %105:main_out = construct %104
+    ret %105
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %108:bool = eq %rhs, 0i
+    %109:bool = eq %lhs, -2147483648i
+    %110:bool = eq %rhs, -1i
+    %111:bool = and %109, %110
+    %112:bool = or %108, %111
+    %113:i32 = select %rhs, 1i, %112
+    %114:i32 = div %lhs, %113
+    ret %114
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %116:i32 = convert %value
+    %117:bool = gte %value, -2147483648.0f
+    %118:i32 = select -2147483648i, %116, %117
+    %119:bool = lte %value, 2147483520.0f
+    %120:i32 = select 2147483647i, %118, %119
+    ret %120
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.msl
index a6e3807..7b6e195 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_76:ptr<function, vec2<i32>, read_write> = var
     %x_79:ptr<function, i32, read_write> = var
@@ -27,153 +27,181 @@
     %13:vec2<f32> = swizzle %12, xy
     %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %15:vec2<f32> = load %14
-    %x_59:vec2<f32> = div %13, %15
-    %17:f32 = access %x_59, 0u
-    %18:f32 = mul %17, 8.0f
-    %x_62:i32 = convert %18
-    %20:f32 = access %x_59, 1u
-    %21:f32 = mul %20, 8.0f
-    %x_65:i32 = convert %21
-    %23:i32 = and %x_62, 5i
-    %24:i32 = and %x_65, 10i
-    %25:i32 = or %23, %24
-    %26:i32 = mul %25, 8i
-    %27:i32 = and %x_65, 5i
-    %28:i32 = and %x_62, 10i
+    %16:vec2<f32> = div %13, %15
+    %x_59:vec2<f32> = let %16
+    %18:f32 = access %x_59, 0u
+    %19:f32 = mul %18, 8.0f
+    %20:i32 = call %tint_f32_to_i32, %19
+    %x_62:i32 = let %20
+    %23:f32 = access %x_59, 1u
+    %24:f32 = mul %23, 8.0f
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_65:i32 = let %25
+    %27:i32 = and %x_62, 5i
+    %28:i32 = and %x_65, 10i
     %29:i32 = or %27, %28
-    %30:i32 = add %26, %29
-    %31:vec2<i32> = construct %30, 0i
-    store %x_76, %31
+    %30:i32 = mul %29, 8i
+    %31:i32 = and %x_65, 5i
+    %32:i32 = and %x_62, 10i
+    %33:i32 = or %31, %32
+    %34:i32 = add %30, %33
+    %35:vec2<i32> = construct %34, 0i
+    store %x_76, %35
     store %x_79, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_90:ptr<function, vec2<i32>, read_write> = var
         %x_91:ptr<function, vec2<i32>, read_write> = var
         %x_98:ptr<function, vec2<i32>, read_write> = var
         %x_99:ptr<function, vec2<i32>, read_write> = var
         %x_80:ptr<function, i32, read_write> = var
-        %37:i32 = load %x_79
-        %38:bool = lt %37, 100i
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %41:i32 = load %x_79
+        %42:bool = lt %41, 100i
+        if %42 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %39:vec2<i32> = load %x_76
-        store %x_91, %39
-        %40:i32 = load_vector_element %x_76, 0u
-        %41:bool = gt %40, 0i
-        if %41 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %42:vec2<i32> = load %x_76
-            store %x_90, %42
-            %43:i32 = load_vector_element %x_76, 1u
-            %44:i32 = sub %43, 1i
-            store_vector_element %x_90, 1u, %44
-            %45:vec2<i32> = load %x_90
-            store %x_91, %45
+        %43:vec2<i32> = load %x_76
+        store %x_91, %43
+        %44:i32 = load_vector_element %x_76, 0u
+        %45:bool = gt %44, 0i
+        if %45 [t: $B7] {  # if_2
+          $B7: {  # true
+            %46:vec2<i32> = load %x_76
+            store %x_90, %46
+            %47:i32 = load_vector_element %x_76, 1u
+            %48:i32 = sub %47, 1i
+            store_vector_element %x_90, 1u, %48
+            %49:vec2<i32> = load %x_90
+            store %x_91, %49
             exit_if  # if_2
           }
         }
-        %46:vec2<i32> = load %x_91
-        store %x_99, %46
-        %47:i32 = load_vector_element %x_91, 0u
-        %48:bool = lt %47, 0i
-        if %48 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %49:vec2<i32> = load %x_91
-            store %x_98, %49
-            %50:i32 = load_vector_element %x_91, 1u
-            %51:i32 = add %50, 1i
-            store_vector_element %x_98, 1u, %51
-            %52:vec2<i32> = load %x_98
-            store %x_99, %52
+        %50:vec2<i32> = load %x_91
+        store %x_99, %50
+        %51:i32 = load_vector_element %x_91, 0u
+        %52:bool = lt %51, 0i
+        if %52 [t: $B8] {  # if_3
+          $B8: {  # true
+            %53:vec2<i32> = load %x_91
+            store %x_98, %53
+            %54:i32 = load_vector_element %x_91, 1u
+            %55:i32 = add %54, 1i
+            store_vector_element %x_98, 1u, %55
+            %56:vec2<i32> = load %x_98
+            store %x_99, %56
             exit_if  # if_3
           }
         }
-        %53:vec2<i32> = load %x_99
-        %x_77_1:ptr<function, vec2<i32>, read_write> = var, %53
-        %55:i32 = load_vector_element %x_99, 0u
-        %56:i32 = load_vector_element %x_99, 1u
-        %57:i32 = div %56, 2i
-        %58:i32 = add %55, %57
-        store_vector_element %x_77_1, 0u, %58
-        %x_77:vec2<i32> = load %x_77_1
-        continue %b4
+        %57:vec2<i32> = load %x_99
+        %x_77_1:ptr<function, vec2<i32>, read_write> = var, %57
+        %59:i32 = load_vector_element %x_99, 0u
+        %60:i32 = let %59
+        %61:i32 = load_vector_element %x_99, 1u
+        %62:i32 = call %tint_div_i32, %61, 2i
+        %64:i32 = add %60, %62
+        store_vector_element %x_77_1, 0u, %64
+        %65:vec2<i32> = load %x_77_1
+        %x_77:vec2<i32> = let %65
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %60:i32 = load %x_79
-        %61:i32 = add %60, 1i
-        store %x_80, %61
+      $B4: {  # continuing
+        %67:i32 = load %x_79
+        %68:i32 = add %67, 1i
+        store %x_80, %68
         store %x_76, %x_77
-        %62:i32 = load %x_80
-        store %x_79, %62
-        next_iteration %b3
+        %69:i32 = load %x_80
+        store %x_79, %69
+        next_iteration  # -> $B3
       }
     }
-    %x_104:i32 = load_vector_element %x_76, 0u
-    %64:vec2<i32> = load %x_76
-    store %x_110, %64
-    %65:bool = lt %x_104, 0i
-    if %65 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %66:vec2<i32> = load %x_76
-        store %x_109, %66
-        %67:i32 = negation %x_104
-        store_vector_element %x_109, 0u, %67
-        %68:vec2<i32> = load %x_109
-        store %x_110, %68
+    %70:i32 = load_vector_element %x_76, 0u
+    %x_104:i32 = let %70
+    %72:vec2<i32> = load %x_76
+    store %x_110, %72
+    %73:bool = lt %x_104, 0i
+    if %73 [t: $B9] {  # if_4
+      $B9: {  # true
+        %74:vec2<i32> = load %x_76
+        store %x_109, %74
+        %75:i32 = negation %x_104
+        store_vector_element %x_109, 0u, %75
+        %76:vec2<i32> = load %x_109
+        store %x_110, %76
         exit_if  # if_4
       }
     }
-    %69:vec2<i32> = load %x_110
-    store %x_112, %69
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    %77:vec2<i32> = load %x_110
+    store %x_112, %77
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_113:ptr<function, vec2<i32>, read_write> = var
-        %71:i32 = load_vector_element %x_112, 0u
-        store %x_115, %71
-        %72:i32 = load %x_115
-        %73:bool = gt %72, 15i
-        if %73 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %79:i32 = load_vector_element %x_112, 0u
+        store %x_115, %79
+        %80:i32 = load %x_115
+        %81:bool = gt %80, 15i
+        if %81 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %74:vec2<i32> = load %x_112
-        store %x_113, %74
-        %75:i32 = load %x_115
-        %76:i32 = sub %75, 16i
-        store_vector_element %x_113, 0u, %76
-        %77:vec2<i32> = load %x_113
-        store %x_112, %77
-        next_iteration %b10
+      $B11: {  # continuing
+        %82:vec2<i32> = load %x_112
+        store %x_113, %82
+        %83:i32 = load %x_115
+        %84:i32 = sub %83, 16i
+        store_vector_element %x_113, 0u, %84
+        %85:vec2<i32> = load %x_113
+        store %x_112, %85
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %78:i32 = load %x_115
-    %79:ptr<function, vec4<f32>, read_write> = access %indexable, %78
-    %80:vec4<f32> = load %79
-    store %x_GLF_color, %80
+    %86:i32 = load %x_115
+    %87:ptr<function, vec4<f32>, read_write> = access %indexable, %86
+    %88:vec4<f32> = load %87
+    store %x_GLF_color, %88
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %83:void = call %main_1
-    %84:vec4<f32> = load %x_GLF_color
-    %85:main_out = construct %84
-    ret %85
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    ret %93
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %96:bool = eq %rhs, 0i
+    %97:bool = eq %lhs, -2147483648i
+    %98:bool = eq %rhs, -1i
+    %99:bool = and %97, %98
+    %100:bool = or %96, %99
+    %101:i32 = select %rhs, 1i, %100
+    %102:i32 = div %lhs, %101
+    ret %102
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %104:i32 = convert %value
+    %105:bool = gte %value, -2147483648.0f
+    %106:i32 = select -2147483648i, %104, %105
+    %107:bool = lte %value, 2147483520.0f
+    %108:i32 = select 2147483647i, %106, %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.msl
index fb26df0..f48bba4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_76:ptr<function, vec2<i32>, read_write> = var
     %x_109:ptr<function, vec2<i32>, read_write> = var
@@ -24,160 +24,196 @@
     %x_79_phi:ptr<function, i32, read_write> = var
     %x_110_phi:ptr<function, vec2<i32>, read_write> = var
     %x_112_phi:ptr<function, vec2<i32>, read_write> = var
-    %x_55:vec4<f32> = load %gl_FragCoord
-    %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_58:vec2<f32> = load %14
-    %16:f32 = access %x_55, 0u
-    %17:f32 = access %x_55, 1u
-    %18:vec2<f32> = construct %16, %17
-    %x_59:vec2<f32> = div %18, %x_58
-    %20:f32 = access %x_59, 0u
-    %21:f32 = mul %20, 8.0f
-    %x_62:i32 = convert %21
-    %23:f32 = access %x_59, 1u
+    %13:vec4<f32> = load %gl_FragCoord
+    %x_55:vec4<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_58:vec2<f32> = let %16
+    %18:f32 = access %x_55, 0u
+    %19:f32 = access %x_55, 1u
+    %20:vec2<f32> = construct %18, %19
+    %21:vec2<f32> = div %20, %x_58
+    %x_59:vec2<f32> = let %21
+    %23:f32 = access %x_59, 0u
     %24:f32 = mul %23, 8.0f
-    %x_65:i32 = convert %24
-    %26:i32 = and %x_62, 5i
-    %27:i32 = and %x_65, 10i
-    %28:i32 = or %26, %27
-    %29:i32 = mul %28, 8i
-    %30:i32 = and %x_65, 5i
-    %31:i32 = and %x_62, 10i
-    %32:i32 = or %30, %31
-    %33:i32 = add %29, %32
-    %x_74:vec2<i32> = construct %33, 0i
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_62:i32 = let %25
+    %28:f32 = access %x_59, 1u
+    %29:f32 = mul %28, 8.0f
+    %30:i32 = call %tint_f32_to_i32, %29
+    %x_65:i32 = let %30
+    %32:i32 = and %x_62, 5i
+    %33:i32 = and %x_65, 10i
+    %34:i32 = or %32, %33
+    %35:i32 = mul %34, 8i
+    %36:i32 = and %x_65, 5i
+    %37:i32 = and %x_62, 10i
+    %38:i32 = or %36, %37
+    %39:i32 = add %35, %38
+    %40:vec2<i32> = construct %39, 0i
+    %x_74:vec2<i32> = let %40
     store %x_76_phi, %x_74
     store %x_79_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_90:ptr<function, vec2<i32>, read_write> = var
         %x_98:ptr<function, vec2<i32>, read_write> = var
         %x_80:ptr<function, i32, read_write> = var
         %x_91_phi:ptr<function, vec2<i32>, read_write> = var
         %x_99_phi:ptr<function, vec2<i32>, read_write> = var
-        %40:vec2<i32> = load %x_76_phi
-        store %x_76, %40
-        %x_79:i32 = load %x_79_phi
-        %42:bool = lt %x_79, 100i
-        if %42 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %47:vec2<i32> = load %x_76_phi
+        store %x_76, %47
+        %48:i32 = load %x_79_phi
+        %x_79:i32 = let %48
+        %50:bool = lt %x_79, 100i
+        if %50 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:vec2<i32> = load %x_76
-        store %x_91_phi, %43
-        %44:i32 = load_vector_element %x_76, 0u
-        %45:bool = gt %44, 0i
-        if %45 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %46:vec2<i32> = load %x_76
-            store %x_90, %46
-            %47:i32 = load_vector_element %x_76, 1u
-            %48:i32 = sub %47, 1i
-            store_vector_element %x_90, 1u, %48
-            %49:vec2<i32> = load %x_90
-            store %x_91_phi, %49
+        %51:vec2<i32> = load %x_76
+        store %x_91_phi, %51
+        %52:i32 = load_vector_element %x_76, 0u
+        %53:bool = gt %52, 0i
+        if %53 [t: $B7] {  # if_2
+          $B7: {  # true
+            %54:vec2<i32> = load %x_76
+            store %x_90, %54
+            %55:i32 = load_vector_element %x_76, 1u
+            %56:i32 = sub %55, 1i
+            store_vector_element %x_90, 1u, %56
+            %57:vec2<i32> = load %x_90
+            store %x_91_phi, %57
             exit_if  # if_2
           }
         }
-        %x_91:vec2<i32> = load %x_91_phi
+        %58:vec2<i32> = load %x_91_phi
+        %x_91:vec2<i32> = let %58
         store %x_99_phi, %x_91
-        %51:i32 = access %x_91, 0u
-        %52:bool = lt %51, 0i
-        if %52 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %60:i32 = access %x_91, 0u
+        %61:bool = lt %60, 0i
+        if %61 [t: $B8] {  # if_3
+          $B8: {  # true
             store %x_98, %x_91
-            %53:i32 = access %x_91, 1u
-            %54:i32 = add %53, 1i
-            store_vector_element %x_98, 1u, %54
-            %55:vec2<i32> = load %x_98
-            store %x_99_phi, %55
+            %62:i32 = access %x_91, 1u
+            %63:i32 = add %62, 1i
+            store_vector_element %x_98, 1u, %63
+            %64:vec2<i32> = load %x_98
+            store %x_99_phi, %64
             exit_if  # if_3
           }
         }
-        %x_99:vec2<i32> = load %x_99_phi
+        %65:vec2<i32> = load %x_99_phi
+        %x_99:vec2<i32> = let %65
         %x_77_1:ptr<function, vec2<i32>, read_write> = var, %x_99
-        %58:i32 = access %x_99, 0u
-        %59:i32 = access %x_99, 1u
-        %60:i32 = div %59, 2i
-        %61:i32 = add %58, %60
-        store_vector_element %x_77_1, 0u, %61
-        %x_77:vec2<i32> = load %x_77_1
-        continue %b4
+        %68:i32 = access %x_99, 0u
+        %69:i32 = access %x_99, 1u
+        %70:i32 = call %tint_div_i32, %69, 2i
+        %72:i32 = add %68, %70
+        store_vector_element %x_77_1, 0u, %72
+        %73:vec2<i32> = load %x_77_1
+        %x_77:vec2<i32> = let %73
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %63:i32 = add %x_79, 1i
-        store %x_80, %63
+      $B4: {  # continuing
+        %75:i32 = add %x_79, 1i
+        store %x_80, %75
         store %x_76_phi, %x_77
-        %64:i32 = load %x_80
-        store %x_79_phi, %64
-        next_iteration %b3
+        %76:i32 = load %x_80
+        store %x_79_phi, %76
+        next_iteration  # -> $B3
       }
     }
-    %x_104:i32 = load_vector_element %x_76, 0u
-    %66:vec2<i32> = load %x_76
-    store %x_110_phi, %66
-    %67:bool = lt %x_104, 0i
-    if %67 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %68:vec2<i32> = load %x_76
-        store %x_109, %68
-        %69:i32 = negation %x_104
-        store_vector_element %x_109, 0u, %69
-        %70:vec2<i32> = load %x_109
-        store %x_110_phi, %70
+    %77:i32 = load_vector_element %x_76, 0u
+    %x_104:i32 = let %77
+    %79:vec2<i32> = load %x_76
+    store %x_110_phi, %79
+    %80:bool = lt %x_104, 0i
+    if %80 [t: $B9] {  # if_4
+      $B9: {  # true
+        %81:vec2<i32> = load %x_76
+        store %x_109, %81
+        %82:i32 = negation %x_104
+        store_vector_element %x_109, 0u, %82
+        %83:vec2<i32> = load %x_109
+        store %x_110_phi, %83
         exit_if  # if_4
       }
     }
-    %x_110:vec2<i32> = load %x_110_phi
+    %84:vec2<i32> = load %x_110_phi
+    %x_110:vec2<i32> = let %84
     store %x_112_phi, %x_110
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_113:ptr<function, vec2<i32>, read_write> = var
-        %x_112:vec2<i32> = load %x_112_phi
-        %74:i32 = access %x_112, 0u
-        store %x_115, %74
-        %75:i32 = load %x_115
-        %76:bool = gt %75, 15i
-        if %76 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %87:vec2<i32> = load %x_112_phi
+        %x_112:vec2<i32> = let %87
+        %89:i32 = access %x_112, 0u
+        store %x_115, %89
+        %90:i32 = load %x_115
+        %91:bool = gt %90, 15i
+        if %91 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_113, %x_112
-        %77:i32 = load %x_115
-        %78:i32 = sub %77, 16i
-        %79:i32 = bitcast %78
-        store_vector_element %x_113, 0u, %79
-        %80:vec2<i32> = load %x_113
-        store %x_112_phi, %80
-        next_iteration %b10
+        %92:i32 = load %x_115
+        %93:i32 = sub %92, 16i
+        %94:i32 = bitcast %93
+        store_vector_element %x_113, 0u, %94
+        %95:vec2<i32> = load %x_113
+        store %x_112_phi, %95
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %81:i32 = load %x_115
-    %82:ptr<function, vec4<f32>, read_write> = access %indexable, %81
-    %x_120:vec4<f32> = load %82
+    %96:i32 = load %x_115
+    %97:ptr<function, vec4<f32>, read_write> = access %indexable, %96
+    %98:vec4<f32> = load %97
+    %x_120:vec4<f32> = let %98
     store %x_GLF_color, %x_120
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %86:void = call %main_1
-    %87:vec4<f32> = load %x_GLF_color
-    %88:main_out = construct %87
-    ret %88
+    %102:void = call %main_1
+    %103:vec4<f32> = load %x_GLF_color
+    %104:main_out = construct %103
+    ret %104
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %107:bool = eq %rhs, 0i
+    %108:bool = eq %lhs, -2147483648i
+    %109:bool = eq %rhs, -1i
+    %110:bool = and %108, %109
+    %111:bool = or %107, %110
+    %112:i32 = select %rhs, 1i, %111
+    %113:i32 = div %lhs, %112
+    ret %113
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %115:i32 = convert %value
+    %116:bool = gte %value, -2147483648.0f
+    %117:i32 = select -2147483648i, %115, %116
+    %118:bool = lte %value, 2147483520.0f
+    %119:i32 = select 2147483647i, %117, %118
+    ret %119
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.msl
index f6efa9e..e4a6707 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_80:ptr<function, vec2<i32>, read_write> = var
     %x_83:ptr<function, i32, read_write> = var
@@ -27,156 +27,185 @@
     %13:vec2<f32> = swizzle %12, xy
     %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %15:vec2<f32> = load %14
-    %x_62:vec2<f32> = div %13, %15
-    %17:f32 = access %x_62, 0u
-    %18:f32 = mul %17, 8.0f
-    %x_65:i32 = convert %18
-    %20:f32 = access %x_62, 1u
-    %21:f32 = mul %20, 8.0f
-    %x_69:i32 = convert %21
-    %23:i32 = and %x_65, 5i
-    %24:i32 = and %x_69, 10i
-    %25:i32 = or %23, %24
-    %26:i32 = mul %25, 8i
-    %27:i32 = and %x_69, 5i
-    %28:i32 = and %x_65, 10i
+    %16:vec2<f32> = div %13, %15
+    %x_62:vec2<f32> = let %16
+    %18:f32 = access %x_62, 0u
+    %19:f32 = mul %18, 8.0f
+    %20:i32 = call %tint_f32_to_i32, %19
+    %x_65:i32 = let %20
+    %23:f32 = access %x_62, 1u
+    %24:f32 = mul %23, 8.0f
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_69:i32 = let %25
+    %27:i32 = and %x_65, 5i
+    %28:i32 = and %x_69, 10i
     %29:i32 = or %27, %28
-    %30:i32 = add %26, %29
-    %31:vec2<i32> = construct %30, 0i
-    store %x_80, %31
+    %30:i32 = mul %29, 8i
+    %31:i32 = and %x_69, 5i
+    %32:i32 = and %x_65, 10i
+    %33:i32 = or %31, %32
+    %34:i32 = add %30, %33
+    %35:vec2<i32> = construct %34, 0i
+    store %x_80, %35
     store %x_83, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_94:ptr<function, vec2<i32>, read_write> = var
         %x_95:ptr<function, vec2<i32>, read_write> = var
         %x_102:ptr<function, vec2<i32>, read_write> = var
         %x_103:ptr<function, vec2<i32>, read_write> = var
         %x_84:ptr<function, i32, read_write> = var
-        %37:i32 = load %x_83
-        %38:bool = lt %37, 100i
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %41:i32 = load %x_83
+        %42:bool = lt %41, 100i
+        if %42 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %39:vec2<i32> = load %x_80
-        store %x_95, %39
-        %40:i32 = load_vector_element %x_80, 0u
-        %41:bool = gt %40, 0i
-        if %41 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %42:vec2<i32> = load %x_80
-            store %x_94, %42
-            %43:i32 = load_vector_element %x_80, 1u
-            %44:i32 = sub %43, 1i
-            store_vector_element %x_94, 1u, %44
-            %45:vec2<i32> = load %x_94
-            store %x_95, %45
+        %43:vec2<i32> = load %x_80
+        store %x_95, %43
+        %44:i32 = load_vector_element %x_80, 0u
+        %45:bool = gt %44, 0i
+        if %45 [t: $B7] {  # if_2
+          $B7: {  # true
+            %46:vec2<i32> = load %x_80
+            store %x_94, %46
+            %47:i32 = load_vector_element %x_80, 1u
+            %48:i32 = sub %47, 1i
+            store_vector_element %x_94, 1u, %48
+            %49:vec2<i32> = load %x_94
+            store %x_95, %49
             exit_if  # if_2
           }
         }
-        %46:vec2<i32> = load %x_95
-        store %x_103, %46
-        %47:i32 = load_vector_element %x_95, 0u
-        %48:bool = lt %47, 0i
-        if %48 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %49:vec2<i32> = load %x_95
-            store %x_102, %49
-            %50:i32 = load_vector_element %x_95, 1u
-            %51:i32 = add %50, 1i
-            store_vector_element %x_102, 1u, %51
-            %52:vec2<i32> = load %x_102
-            store %x_103, %52
+        %50:vec2<i32> = load %x_95
+        store %x_103, %50
+        %51:i32 = load_vector_element %x_95, 0u
+        %52:bool = lt %51, 0i
+        if %52 [t: $B8] {  # if_3
+          $B8: {  # true
+            %53:vec2<i32> = load %x_95
+            store %x_102, %53
+            %54:i32 = load_vector_element %x_95, 1u
+            %55:i32 = add %54, 1i
+            store_vector_element %x_102, 1u, %55
+            %56:vec2<i32> = load %x_102
+            store %x_103, %56
             exit_if  # if_3
           }
         }
-        %53:vec2<i32> = load %x_103
-        %x_81_1:ptr<function, vec2<i32>, read_write> = var, %53
-        %55:i32 = load_vector_element %x_103, 0u
-        %56:i32 = load_vector_element %x_103, 1u
-        %57:i32 = div %56, 2i
-        %58:i32 = add %55, %57
-        store_vector_element %x_81_1, 0u, %58
-        %x_81:vec2<i32> = load %x_81_1
-        continue %b4
+        %57:vec2<i32> = load %x_103
+        %x_81_1:ptr<function, vec2<i32>, read_write> = var, %57
+        %59:i32 = load_vector_element %x_103, 0u
+        %60:i32 = let %59
+        %61:i32 = load_vector_element %x_103, 1u
+        %62:i32 = call %tint_div_i32, %61, 2i
+        %64:i32 = add %60, %62
+        store_vector_element %x_81_1, 0u, %64
+        %65:vec2<i32> = load %x_81_1
+        %x_81:vec2<i32> = let %65
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %60:i32 = load %x_83
-        %61:i32 = add %60, 1i
-        store %x_84, %61
+      $B4: {  # continuing
+        %67:i32 = load %x_83
+        %68:i32 = add %67, 1i
+        store %x_84, %68
         store %x_80, %x_81
-        %62:i32 = load %x_84
-        store %x_83, %62
-        next_iteration %b3
+        %69:i32 = load %x_84
+        store %x_83, %69
+        next_iteration  # -> $B3
       }
     }
-    %x_108:i32 = load_vector_element %x_80, 0u
-    %64:vec2<i32> = load %x_80
-    store %x_114, %64
-    %65:bool = lt %x_108, 0i
-    if %65 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %66:vec2<i32> = load %x_80
-        store %x_113, %66
-        %67:i32 = negation %x_108
-        store_vector_element %x_113, 0u, %67
-        %68:vec2<i32> = load %x_113
-        store %x_114, %68
+    %70:i32 = load_vector_element %x_80, 0u
+    %x_108:i32 = let %70
+    %72:vec2<i32> = load %x_80
+    store %x_114, %72
+    %73:bool = lt %x_108, 0i
+    if %73 [t: $B9] {  # if_4
+      $B9: {  # true
+        %74:vec2<i32> = load %x_80
+        store %x_113, %74
+        %75:i32 = negation %x_108
+        store_vector_element %x_113, 0u, %75
+        %76:vec2<i32> = load %x_113
+        store %x_114, %76
         exit_if  # if_4
       }
     }
-    %69:vec2<i32> = load %x_114
-    store %x_116, %69
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    %77:vec2<i32> = load %x_114
+    store %x_116, %77
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_117:ptr<function, vec2<i32>, read_write> = var
-        %71:i32 = load_vector_element %x_116, 0u
-        store %x_119, %71
-        %72:i32 = load %x_119
-        %73:bool = gt %72, 15i
-        if %73 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %79:i32 = load_vector_element %x_116, 0u
+        store %x_119, %79
+        %80:i32 = load %x_119
+        %81:bool = gt %80, 15i
+        if %81 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %74:vec2<i32> = load %x_116
-        store %x_117, %74
-        %75:i32 = load %x_119
-        %76:i32 = sub %75, 16i
-        store_vector_element %x_117, 0u, %76
-        %77:vec2<i32> = load %x_117
-        store %x_116, %77
-        next_iteration %b10
+      $B11: {  # continuing
+        %82:vec2<i32> = load %x_116
+        store %x_117, %82
+        %83:i32 = load %x_119
+        %84:i32 = sub %83, 16i
+        store_vector_element %x_117, 0u, %84
+        %85:vec2<i32> = load %x_117
+        store %x_116, %85
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_124:array<vec4<f32>, 16> = load %indexable
+    %86:array<vec4<f32>, 16> = load %indexable
+    %x_124:array<vec4<f32>, 16> = let %86
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_124
-    %79:i32 = load %x_119
-    %80:ptr<function, vec4<f32>, read_write> = access %indexable, %79
-    %81:vec4<f32> = load %80
-    store %x_GLF_color, %81
+    %88:i32 = load %x_119
+    %89:ptr<function, vec4<f32>, read_write> = access %indexable, %88
+    %90:vec4<f32> = load %89
+    store %x_GLF_color, %90
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %84:void = call %main_1
-    %85:vec4<f32> = load %x_GLF_color
-    %86:main_out = construct %85
-    ret %86
+    %93:void = call %main_1
+    %94:vec4<f32> = load %x_GLF_color
+    %95:main_out = construct %94
+    ret %95
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %98:bool = eq %rhs, 0i
+    %99:bool = eq %lhs, -2147483648i
+    %100:bool = eq %rhs, -1i
+    %101:bool = and %99, %100
+    %102:bool = or %98, %101
+    %103:i32 = select %rhs, 1i, %102
+    %104:i32 = div %lhs, %103
+    ret %104
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %106:i32 = convert %value
+    %107:bool = gte %value, -2147483648.0f
+    %108:i32 = select -2147483648i, %106, %107
+    %109:bool = lte %value, 2147483520.0f
+    %110:i32 = select 2147483647i, %108, %109
+    ret %110
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.msl
index 699169d..a4cf65d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_80:ptr<function, vec2<i32>, read_write> = var
     %x_113:ptr<function, vec2<i32>, read_write> = var
@@ -24,163 +24,200 @@
     %x_83_phi:ptr<function, i32, read_write> = var
     %x_114_phi:ptr<function, vec2<i32>, read_write> = var
     %x_116_phi:ptr<function, vec2<i32>, read_write> = var
-    %x_58:vec4<f32> = load %gl_FragCoord
-    %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_61:vec2<f32> = load %14
-    %16:f32 = access %x_58, 0u
-    %17:f32 = access %x_58, 1u
-    %18:vec2<f32> = construct %16, %17
-    %x_62:vec2<f32> = div %18, %x_61
-    %20:f32 = access %x_62, 0u
-    %21:f32 = mul %20, 8.0f
-    %x_65:i32 = convert %21
-    %23:f32 = access %x_62, 1u
+    %13:vec4<f32> = load %gl_FragCoord
+    %x_58:vec4<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_61:vec2<f32> = let %16
+    %18:f32 = access %x_58, 0u
+    %19:f32 = access %x_58, 1u
+    %20:vec2<f32> = construct %18, %19
+    %21:vec2<f32> = div %20, %x_61
+    %x_62:vec2<f32> = let %21
+    %23:f32 = access %x_62, 0u
     %24:f32 = mul %23, 8.0f
-    %x_69:i32 = convert %24
-    %26:i32 = and %x_65, 5i
-    %27:i32 = and %x_69, 10i
-    %28:i32 = or %26, %27
-    %29:i32 = mul %28, 8i
-    %30:i32 = and %x_69, 5i
-    %31:i32 = and %x_65, 10i
-    %32:i32 = or %30, %31
-    %33:i32 = add %29, %32
-    %x_78:vec2<i32> = construct %33, 0i
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_65:i32 = let %25
+    %28:f32 = access %x_62, 1u
+    %29:f32 = mul %28, 8.0f
+    %30:i32 = call %tint_f32_to_i32, %29
+    %x_69:i32 = let %30
+    %32:i32 = and %x_65, 5i
+    %33:i32 = and %x_69, 10i
+    %34:i32 = or %32, %33
+    %35:i32 = mul %34, 8i
+    %36:i32 = and %x_69, 5i
+    %37:i32 = and %x_65, 10i
+    %38:i32 = or %36, %37
+    %39:i32 = add %35, %38
+    %40:vec2<i32> = construct %39, 0i
+    %x_78:vec2<i32> = let %40
     store %x_80_phi, %x_78
     store %x_83_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_94:ptr<function, vec2<i32>, read_write> = var
         %x_102:ptr<function, vec2<i32>, read_write> = var
         %x_84:ptr<function, i32, read_write> = var
         %x_95_phi:ptr<function, vec2<i32>, read_write> = var
         %x_103_phi:ptr<function, vec2<i32>, read_write> = var
-        %40:vec2<i32> = load %x_80_phi
-        store %x_80, %40
-        %x_83:i32 = load %x_83_phi
-        %42:bool = lt %x_83, 100i
-        if %42 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %47:vec2<i32> = load %x_80_phi
+        store %x_80, %47
+        %48:i32 = load %x_83_phi
+        %x_83:i32 = let %48
+        %50:bool = lt %x_83, 100i
+        if %50 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:vec2<i32> = load %x_80
-        store %x_95_phi, %43
-        %44:i32 = load_vector_element %x_80, 0u
-        %45:bool = gt %44, 0i
-        if %45 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %46:vec2<i32> = load %x_80
-            store %x_94, %46
-            %47:i32 = load_vector_element %x_80, 1u
-            %48:i32 = sub %47, 1i
-            store_vector_element %x_94, 1u, %48
-            %49:vec2<i32> = load %x_94
-            store %x_95_phi, %49
+        %51:vec2<i32> = load %x_80
+        store %x_95_phi, %51
+        %52:i32 = load_vector_element %x_80, 0u
+        %53:bool = gt %52, 0i
+        if %53 [t: $B7] {  # if_2
+          $B7: {  # true
+            %54:vec2<i32> = load %x_80
+            store %x_94, %54
+            %55:i32 = load_vector_element %x_80, 1u
+            %56:i32 = sub %55, 1i
+            store_vector_element %x_94, 1u, %56
+            %57:vec2<i32> = load %x_94
+            store %x_95_phi, %57
             exit_if  # if_2
           }
         }
-        %x_95:vec2<i32> = load %x_95_phi
+        %58:vec2<i32> = load %x_95_phi
+        %x_95:vec2<i32> = let %58
         store %x_103_phi, %x_95
-        %51:i32 = access %x_95, 0u
-        %52:bool = lt %51, 0i
-        if %52 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %60:i32 = access %x_95, 0u
+        %61:bool = lt %60, 0i
+        if %61 [t: $B8] {  # if_3
+          $B8: {  # true
             store %x_102, %x_95
-            %53:i32 = access %x_95, 1u
-            %54:i32 = add %53, 1i
-            store_vector_element %x_102, 1u, %54
-            %55:vec2<i32> = load %x_102
-            store %x_103_phi, %55
+            %62:i32 = access %x_95, 1u
+            %63:i32 = add %62, 1i
+            store_vector_element %x_102, 1u, %63
+            %64:vec2<i32> = load %x_102
+            store %x_103_phi, %64
             exit_if  # if_3
           }
         }
-        %x_103:vec2<i32> = load %x_103_phi
+        %65:vec2<i32> = load %x_103_phi
+        %x_103:vec2<i32> = let %65
         %x_81_1:ptr<function, vec2<i32>, read_write> = var, %x_103
-        %58:i32 = access %x_103, 0u
-        %59:i32 = access %x_103, 1u
-        %60:i32 = div %59, 2i
-        %61:i32 = add %58, %60
-        store_vector_element %x_81_1, 0u, %61
-        %x_81:vec2<i32> = load %x_81_1
-        continue %b4
+        %68:i32 = access %x_103, 0u
+        %69:i32 = access %x_103, 1u
+        %70:i32 = call %tint_div_i32, %69, 2i
+        %72:i32 = add %68, %70
+        store_vector_element %x_81_1, 0u, %72
+        %73:vec2<i32> = load %x_81_1
+        %x_81:vec2<i32> = let %73
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %63:i32 = add %x_83, 1i
-        store %x_84, %63
+      $B4: {  # continuing
+        %75:i32 = add %x_83, 1i
+        store %x_84, %75
         store %x_80_phi, %x_81
-        %64:i32 = load %x_84
-        store %x_83_phi, %64
-        next_iteration %b3
+        %76:i32 = load %x_84
+        store %x_83_phi, %76
+        next_iteration  # -> $B3
       }
     }
-    %x_108:i32 = load_vector_element %x_80, 0u
-    %66:vec2<i32> = load %x_80
-    store %x_114_phi, %66
-    %67:bool = lt %x_108, 0i
-    if %67 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %68:vec2<i32> = load %x_80
-        store %x_113, %68
-        %69:i32 = negation %x_108
-        store_vector_element %x_113, 0u, %69
-        %70:vec2<i32> = load %x_113
-        store %x_114_phi, %70
+    %77:i32 = load_vector_element %x_80, 0u
+    %x_108:i32 = let %77
+    %79:vec2<i32> = load %x_80
+    store %x_114_phi, %79
+    %80:bool = lt %x_108, 0i
+    if %80 [t: $B9] {  # if_4
+      $B9: {  # true
+        %81:vec2<i32> = load %x_80
+        store %x_113, %81
+        %82:i32 = negation %x_108
+        store_vector_element %x_113, 0u, %82
+        %83:vec2<i32> = load %x_113
+        store %x_114_phi, %83
         exit_if  # if_4
       }
     }
-    %x_114:vec2<i32> = load %x_114_phi
+    %84:vec2<i32> = load %x_114_phi
+    %x_114:vec2<i32> = let %84
     store %x_116_phi, %x_114
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_117:ptr<function, vec2<i32>, read_write> = var
-        %x_116:vec2<i32> = load %x_116_phi
-        %74:i32 = access %x_116, 0u
-        store %x_119, %74
-        %75:i32 = load %x_119
-        %76:bool = gt %75, 15i
-        if %76 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %87:vec2<i32> = load %x_116_phi
+        %x_116:vec2<i32> = let %87
+        %89:i32 = access %x_116, 0u
+        store %x_119, %89
+        %90:i32 = load %x_119
+        %91:bool = gt %90, 15i
+        if %91 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_117, %x_116
-        %77:i32 = load %x_119
-        %78:i32 = sub %77, 16i
-        %79:i32 = bitcast %78
-        store_vector_element %x_117, 0u, %79
-        %80:vec2<i32> = load %x_117
-        store %x_116_phi, %80
-        next_iteration %b10
+        %92:i32 = load %x_119
+        %93:i32 = sub %92, 16i
+        %94:i32 = bitcast %93
+        store_vector_element %x_117, 0u, %94
+        %95:vec2<i32> = load %x_117
+        store %x_116_phi, %95
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %x_124:array<vec4<f32>, 16> = load %indexable
+    %96:array<vec4<f32>, 16> = load %indexable
+    %x_124:array<vec4<f32>, 16> = let %96
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f))
     store %indexable, %x_124
-    %82:i32 = load %x_119
-    %83:ptr<function, vec4<f32>, read_write> = access %indexable, %82
-    %x_125:vec4<f32> = load %83
+    %98:i32 = load %x_119
+    %99:ptr<function, vec4<f32>, read_write> = access %indexable, %98
+    %100:vec4<f32> = load %99
+    %x_125:vec4<f32> = let %100
     store %x_GLF_color, %x_125
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %104:void = call %main_1
+    %105:vec4<f32> = load %x_GLF_color
+    %106:main_out = construct %105
+    ret %106
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %109:bool = eq %rhs, 0i
+    %110:bool = eq %lhs, -2147483648i
+    %111:bool = eq %rhs, -1i
+    %112:bool = and %110, %111
+    %113:bool = or %109, %112
+    %114:i32 = select %rhs, 1i, %113
+    %115:i32 = div %lhs, %114
+    ret %115
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %117:i32 = convert %value
+    %118:bool = gte %value, -2147483648.0f
+    %119:i32 = select -2147483648i, %117, %118
+    %120:bool = lte %value, 2147483520.0f
+    %121:i32 = select 2147483647i, %119, %120
+    ret %121
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.msl
index 46959eb..10601ee 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_80:ptr<function, vec2<i32>, read_write> = var
     %x_83:ptr<function, i32, read_write> = var
@@ -27,153 +27,181 @@
     %13:vec2<f32> = swizzle %12, xy
     %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %15:vec2<f32> = load %14
-    %x_62:vec2<f32> = div %13, %15
-    %17:f32 = access %x_62, 0u
-    %18:f32 = mul %17, 8.0f
-    %x_65:i32 = convert %18
-    %20:f32 = access %x_62, 1u
-    %21:f32 = mul %20, 8.0f
-    %x_69:i32 = convert %21
-    %23:i32 = and %x_65, 5i
-    %24:i32 = and %x_69, 10i
-    %25:i32 = or %23, %24
-    %26:i32 = mul %25, 8i
-    %27:i32 = and %x_69, 5i
-    %28:i32 = and %x_65, 10i
+    %16:vec2<f32> = div %13, %15
+    %x_62:vec2<f32> = let %16
+    %18:f32 = access %x_62, 0u
+    %19:f32 = mul %18, 8.0f
+    %20:i32 = call %tint_f32_to_i32, %19
+    %x_65:i32 = let %20
+    %23:f32 = access %x_62, 1u
+    %24:f32 = mul %23, 8.0f
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_69:i32 = let %25
+    %27:i32 = and %x_65, 5i
+    %28:i32 = and %x_69, 10i
     %29:i32 = or %27, %28
-    %30:i32 = add %26, %29
-    %31:vec2<i32> = construct %30, 0i
-    store %x_80, %31
+    %30:i32 = mul %29, 8i
+    %31:i32 = and %x_69, 5i
+    %32:i32 = and %x_65, 10i
+    %33:i32 = or %31, %32
+    %34:i32 = add %30, %33
+    %35:vec2<i32> = construct %34, 0i
+    store %x_80, %35
     store %x_83, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_94:ptr<function, vec2<i32>, read_write> = var
         %x_95:ptr<function, vec2<i32>, read_write> = var
         %x_102:ptr<function, vec2<i32>, read_write> = var
         %x_103:ptr<function, vec2<i32>, read_write> = var
         %x_84:ptr<function, i32, read_write> = var
-        %37:i32 = load %x_83
-        %38:bool = lt %37, 100i
-        if %38 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %41:i32 = load %x_83
+        %42:bool = lt %41, 100i
+        if %42 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %39:vec2<i32> = load %x_80
-        store %x_95, %39
-        %40:i32 = load_vector_element %x_80, 0u
-        %41:bool = gt %40, 0i
-        if %41 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %42:vec2<i32> = load %x_80
-            store %x_94, %42
-            %43:i32 = load_vector_element %x_80, 1u
-            %44:i32 = sub %43, 1i
-            store_vector_element %x_94, 1u, %44
-            %45:vec2<i32> = load %x_94
-            store %x_95, %45
+        %43:vec2<i32> = load %x_80
+        store %x_95, %43
+        %44:i32 = load_vector_element %x_80, 0u
+        %45:bool = gt %44, 0i
+        if %45 [t: $B7] {  # if_2
+          $B7: {  # true
+            %46:vec2<i32> = load %x_80
+            store %x_94, %46
+            %47:i32 = load_vector_element %x_80, 1u
+            %48:i32 = sub %47, 1i
+            store_vector_element %x_94, 1u, %48
+            %49:vec2<i32> = load %x_94
+            store %x_95, %49
             exit_if  # if_2
           }
         }
-        %46:vec2<i32> = load %x_95
-        store %x_103, %46
-        %47:i32 = load_vector_element %x_95, 0u
-        %48:bool = lt %47, 0i
-        if %48 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %49:vec2<i32> = load %x_95
-            store %x_102, %49
-            %50:i32 = load_vector_element %x_95, 1u
-            %51:i32 = add %50, 1i
-            store_vector_element %x_102, 1u, %51
-            %52:vec2<i32> = load %x_102
-            store %x_103, %52
+        %50:vec2<i32> = load %x_95
+        store %x_103, %50
+        %51:i32 = load_vector_element %x_95, 0u
+        %52:bool = lt %51, 0i
+        if %52 [t: $B8] {  # if_3
+          $B8: {  # true
+            %53:vec2<i32> = load %x_95
+            store %x_102, %53
+            %54:i32 = load_vector_element %x_95, 1u
+            %55:i32 = add %54, 1i
+            store_vector_element %x_102, 1u, %55
+            %56:vec2<i32> = load %x_102
+            store %x_103, %56
             exit_if  # if_3
           }
         }
-        %53:vec2<i32> = load %x_103
-        %x_81_1:ptr<function, vec2<i32>, read_write> = var, %53
-        %55:i32 = load_vector_element %x_103, 0u
-        %56:i32 = load_vector_element %x_103, 1u
-        %57:i32 = div %56, 2i
-        %58:i32 = add %55, %57
-        store_vector_element %x_81_1, 0u, %58
-        %x_81:vec2<i32> = load %x_81_1
-        continue %b4
+        %57:vec2<i32> = load %x_103
+        %x_81_1:ptr<function, vec2<i32>, read_write> = var, %57
+        %59:i32 = load_vector_element %x_103, 0u
+        %60:i32 = let %59
+        %61:i32 = load_vector_element %x_103, 1u
+        %62:i32 = call %tint_div_i32, %61, 2i
+        %64:i32 = add %60, %62
+        store_vector_element %x_81_1, 0u, %64
+        %65:vec2<i32> = load %x_81_1
+        %x_81:vec2<i32> = let %65
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %60:i32 = load %x_83
-        %61:i32 = add %60, 1i
-        store %x_84, %61
+      $B4: {  # continuing
+        %67:i32 = load %x_83
+        %68:i32 = add %67, 1i
+        store %x_84, %68
         store %x_80, %x_81
-        %62:i32 = load %x_84
-        store %x_83, %62
-        next_iteration %b3
+        %69:i32 = load %x_84
+        store %x_83, %69
+        next_iteration  # -> $B3
       }
     }
-    %x_108:i32 = load_vector_element %x_80, 0u
-    %64:vec2<i32> = load %x_80
-    store %x_114, %64
-    %65:bool = lt %x_108, 0i
-    if %65 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %66:vec2<i32> = load %x_80
-        store %x_113, %66
-        %67:i32 = negation %x_108
-        store_vector_element %x_113, 0u, %67
-        %68:vec2<i32> = load %x_113
-        store %x_114, %68
+    %70:i32 = load_vector_element %x_80, 0u
+    %x_108:i32 = let %70
+    %72:vec2<i32> = load %x_80
+    store %x_114, %72
+    %73:bool = lt %x_108, 0i
+    if %73 [t: $B9] {  # if_4
+      $B9: {  # true
+        %74:vec2<i32> = load %x_80
+        store %x_113, %74
+        %75:i32 = negation %x_108
+        store_vector_element %x_113, 0u, %75
+        %76:vec2<i32> = load %x_113
+        store %x_114, %76
         exit_if  # if_4
       }
     }
-    %69:vec2<i32> = load %x_114
-    store %x_116, %69
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    %77:vec2<i32> = load %x_114
+    store %x_116, %77
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_117:ptr<function, vec2<i32>, read_write> = var
-        %71:i32 = load_vector_element %x_116, 0u
-        store %x_119, %71
-        %72:i32 = load %x_119
-        %73:bool = gt %72, 15i
-        if %73 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %79:i32 = load_vector_element %x_116, 0u
+        store %x_119, %79
+        %80:i32 = load %x_119
+        %81:bool = gt %80, 15i
+        if %81 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        %74:vec2<i32> = load %x_116
-        store %x_117, %74
-        %75:i32 = load %x_119
-        %76:i32 = sub %75, 16i
-        store_vector_element %x_117, 0u, %76
-        %77:vec2<i32> = load %x_117
-        store %x_116, %77
-        next_iteration %b10
+      $B11: {  # continuing
+        %82:vec2<i32> = load %x_116
+        store %x_117, %82
+        %83:i32 = load %x_119
+        %84:i32 = sub %83, 16i
+        store_vector_element %x_117, 0u, %84
+        %85:vec2<i32> = load %x_117
+        store %x_116, %85
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %78:i32 = load %x_119
-    %79:ptr<function, vec4<f32>, read_write> = access %indexable, %78
-    %80:vec4<f32> = load %79
-    store %x_GLF_color, %80
+    %86:i32 = load %x_119
+    %87:ptr<function, vec4<f32>, read_write> = access %indexable, %86
+    %88:vec4<f32> = load %87
+    store %x_GLF_color, %88
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %83:void = call %main_1
-    %84:vec4<f32> = load %x_GLF_color
-    %85:main_out = construct %84
-    ret %85
+    %91:void = call %main_1
+    %92:vec4<f32> = load %x_GLF_color
+    %93:main_out = construct %92
+    ret %93
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %96:bool = eq %rhs, 0i
+    %97:bool = eq %lhs, -2147483648i
+    %98:bool = eq %rhs, -1i
+    %99:bool = and %97, %98
+    %100:bool = or %96, %99
+    %101:i32 = select %rhs, 1i, %100
+    %102:i32 = div %lhs, %101
+    ret %102
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %104:i32 = convert %value
+    %105:bool = gte %value, -2147483648.0f
+    %106:i32 = select -2147483648i, %104, %105
+    %107:bool = lte %value, 2147483520.0f
+    %108:i32 = select 2147483647i, %106, %107
+    ret %108
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.msl
index 78b6bb1..91749ee1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-orbit-Os-access-chain-mutate-pointer/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %x_80:ptr<function, vec2<i32>, read_write> = var
     %x_113:ptr<function, vec2<i32>, read_write> = var
@@ -24,160 +24,196 @@
     %x_83_phi:ptr<function, i32, read_write> = var
     %x_114_phi:ptr<function, vec2<i32>, read_write> = var
     %x_116_phi:ptr<function, vec2<i32>, read_write> = var
-    %x_58:vec4<f32> = load %gl_FragCoord
-    %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_61:vec2<f32> = load %14
-    %16:f32 = access %x_58, 0u
-    %17:f32 = access %x_58, 1u
-    %18:vec2<f32> = construct %16, %17
-    %x_62:vec2<f32> = div %18, %x_61
-    %20:f32 = access %x_62, 0u
-    %21:f32 = mul %20, 8.0f
-    %x_65:i32 = convert %21
-    %23:f32 = access %x_62, 1u
+    %13:vec4<f32> = load %gl_FragCoord
+    %x_58:vec4<f32> = let %13
+    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %16:vec2<f32> = load %15
+    %x_61:vec2<f32> = let %16
+    %18:f32 = access %x_58, 0u
+    %19:f32 = access %x_58, 1u
+    %20:vec2<f32> = construct %18, %19
+    %21:vec2<f32> = div %20, %x_61
+    %x_62:vec2<f32> = let %21
+    %23:f32 = access %x_62, 0u
     %24:f32 = mul %23, 8.0f
-    %x_69:i32 = convert %24
-    %26:i32 = and %x_65, 5i
-    %27:i32 = and %x_69, 10i
-    %28:i32 = or %26, %27
-    %29:i32 = mul %28, 8i
-    %30:i32 = and %x_69, 5i
-    %31:i32 = and %x_65, 10i
-    %32:i32 = or %30, %31
-    %33:i32 = add %29, %32
-    %x_78:vec2<i32> = construct %33, 0i
+    %25:i32 = call %tint_f32_to_i32, %24
+    %x_65:i32 = let %25
+    %28:f32 = access %x_62, 1u
+    %29:f32 = mul %28, 8.0f
+    %30:i32 = call %tint_f32_to_i32, %29
+    %x_69:i32 = let %30
+    %32:i32 = and %x_65, 5i
+    %33:i32 = and %x_69, 10i
+    %34:i32 = or %32, %33
+    %35:i32 = mul %34, 8i
+    %36:i32 = and %x_69, 5i
+    %37:i32 = and %x_65, 10i
+    %38:i32 = or %36, %37
+    %39:i32 = add %35, %38
+    %40:vec2<i32> = construct %39, 0i
+    %x_78:vec2<i32> = let %40
     store %x_80_phi, %x_78
     store %x_83_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_94:ptr<function, vec2<i32>, read_write> = var
         %x_102:ptr<function, vec2<i32>, read_write> = var
         %x_84:ptr<function, i32, read_write> = var
         %x_95_phi:ptr<function, vec2<i32>, read_write> = var
         %x_103_phi:ptr<function, vec2<i32>, read_write> = var
-        %40:vec2<i32> = load %x_80_phi
-        store %x_80, %40
-        %x_83:i32 = load %x_83_phi
-        %42:bool = lt %x_83, 100i
-        if %42 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %47:vec2<i32> = load %x_80_phi
+        store %x_80, %47
+        %48:i32 = load %x_83_phi
+        %x_83:i32 = let %48
+        %50:bool = lt %x_83, 100i
+        if %50 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:vec2<i32> = load %x_80
-        store %x_95_phi, %43
-        %44:i32 = load_vector_element %x_80, 0u
-        %45:bool = gt %44, 0i
-        if %45 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %46:vec2<i32> = load %x_80
-            store %x_94, %46
-            %47:i32 = load_vector_element %x_80, 1u
-            %48:i32 = sub %47, 1i
-            store_vector_element %x_94, 1u, %48
-            %49:vec2<i32> = load %x_94
-            store %x_95_phi, %49
+        %51:vec2<i32> = load %x_80
+        store %x_95_phi, %51
+        %52:i32 = load_vector_element %x_80, 0u
+        %53:bool = gt %52, 0i
+        if %53 [t: $B7] {  # if_2
+          $B7: {  # true
+            %54:vec2<i32> = load %x_80
+            store %x_94, %54
+            %55:i32 = load_vector_element %x_80, 1u
+            %56:i32 = sub %55, 1i
+            store_vector_element %x_94, 1u, %56
+            %57:vec2<i32> = load %x_94
+            store %x_95_phi, %57
             exit_if  # if_2
           }
         }
-        %x_95:vec2<i32> = load %x_95_phi
+        %58:vec2<i32> = load %x_95_phi
+        %x_95:vec2<i32> = let %58
         store %x_103_phi, %x_95
-        %51:i32 = access %x_95, 0u
-        %52:bool = lt %51, 0i
-        if %52 [t: %b8] {  # if_3
-          %b8 = block {  # true
+        %60:i32 = access %x_95, 0u
+        %61:bool = lt %60, 0i
+        if %61 [t: $B8] {  # if_3
+          $B8: {  # true
             store %x_102, %x_95
-            %53:i32 = access %x_95, 1u
-            %54:i32 = add %53, 1i
-            store_vector_element %x_102, 1u, %54
-            %55:vec2<i32> = load %x_102
-            store %x_103_phi, %55
+            %62:i32 = access %x_95, 1u
+            %63:i32 = add %62, 1i
+            store_vector_element %x_102, 1u, %63
+            %64:vec2<i32> = load %x_102
+            store %x_103_phi, %64
             exit_if  # if_3
           }
         }
-        %x_103:vec2<i32> = load %x_103_phi
+        %65:vec2<i32> = load %x_103_phi
+        %x_103:vec2<i32> = let %65
         %x_81_1:ptr<function, vec2<i32>, read_write> = var, %x_103
-        %58:i32 = access %x_103, 0u
-        %59:i32 = access %x_103, 1u
-        %60:i32 = div %59, 2i
-        %61:i32 = add %58, %60
-        store_vector_element %x_81_1, 0u, %61
-        %x_81:vec2<i32> = load %x_81_1
-        continue %b4
+        %68:i32 = access %x_103, 0u
+        %69:i32 = access %x_103, 1u
+        %70:i32 = call %tint_div_i32, %69, 2i
+        %72:i32 = add %68, %70
+        store_vector_element %x_81_1, 0u, %72
+        %73:vec2<i32> = load %x_81_1
+        %x_81:vec2<i32> = let %73
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %63:i32 = add %x_83, 1i
-        store %x_84, %63
+      $B4: {  # continuing
+        %75:i32 = add %x_83, 1i
+        store %x_84, %75
         store %x_80_phi, %x_81
-        %64:i32 = load %x_84
-        store %x_83_phi, %64
-        next_iteration %b3
+        %76:i32 = load %x_84
+        store %x_83_phi, %76
+        next_iteration  # -> $B3
       }
     }
-    %x_108:i32 = load_vector_element %x_80, 0u
-    %66:vec2<i32> = load %x_80
-    store %x_114_phi, %66
-    %67:bool = lt %x_108, 0i
-    if %67 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %68:vec2<i32> = load %x_80
-        store %x_113, %68
-        %69:i32 = negation %x_108
-        store_vector_element %x_113, 0u, %69
-        %70:vec2<i32> = load %x_113
-        store %x_114_phi, %70
+    %77:i32 = load_vector_element %x_80, 0u
+    %x_108:i32 = let %77
+    %79:vec2<i32> = load %x_80
+    store %x_114_phi, %79
+    %80:bool = lt %x_108, 0i
+    if %80 [t: $B9] {  # if_4
+      $B9: {  # true
+        %81:vec2<i32> = load %x_80
+        store %x_113, %81
+        %82:i32 = negation %x_108
+        store_vector_element %x_113, 0u, %82
+        %83:vec2<i32> = load %x_113
+        store %x_114_phi, %83
         exit_if  # if_4
       }
     }
-    %x_114:vec2<i32> = load %x_114_phi
+    %84:vec2<i32> = load %x_114_phi
+    %x_114:vec2<i32> = let %84
     store %x_116_phi, %x_114
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
         %x_117:ptr<function, vec2<i32>, read_write> = var
-        %x_116:vec2<i32> = load %x_116_phi
-        %74:i32 = access %x_116, 0u
-        store %x_119, %74
-        %75:i32 = load %x_119
-        %76:bool = gt %75, 15i
-        if %76 [t: %b12, f: %b13] {  # if_5
-          %b12 = block {  # true
+        %87:vec2<i32> = load %x_116_phi
+        %x_116:vec2<i32> = let %87
+        %89:i32 = access %x_116, 0u
+        store %x_119, %89
+        %90:i32 = load %x_119
+        %91:bool = gt %90, 15i
+        if %91 [t: $B12, f: $B13] {  # if_5
+          $B12: {  # true
             exit_if  # if_5
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
+      $B11: {  # continuing
         store %x_117, %x_116
-        %77:i32 = load %x_119
-        %78:i32 = sub %77, 16i
-        %79:i32 = bitcast %78
-        store_vector_element %x_117, 0u, %79
-        %80:vec2<i32> = load %x_117
-        store %x_116_phi, %80
-        next_iteration %b10
+        %92:i32 = load %x_119
+        %93:i32 = sub %92, 16i
+        %94:i32 = bitcast %93
+        store_vector_element %x_117, 0u, %94
+        %95:vec2<i32> = load %x_117
+        store %x_116_phi, %95
+        next_iteration  # -> $B10
       }
     }
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %81:i32 = load %x_119
-    %82:ptr<function, vec4<f32>, read_write> = access %indexable, %81
-    %x_124:vec4<f32> = load %82
+    %96:i32 = load %x_119
+    %97:ptr<function, vec4<f32>, read_write> = access %indexable, %96
+    %98:vec4<f32> = load %97
+    %x_124:vec4<f32> = let %98
     store %x_GLF_color, %x_124
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b14 {
-  %b14 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B14: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %86:void = call %main_1
-    %87:vec4<f32> = load %x_GLF_color
-    %88:main_out = construct %87
-    ret %88
+    %102:void = call %main_1
+    %103:vec4<f32> = load %x_GLF_color
+    %104:main_out = construct %103
+    ret %104
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B15: {
+    %107:bool = eq %rhs, 0i
+    %108:bool = eq %lhs, -2147483648i
+    %109:bool = eq %rhs, -1i
+    %110:bool = and %108, %109
+    %111:bool = or %107, %110
+    %112:i32 = select %rhs, 1i, %111
+    %113:i32 = div %lhs, %112
+    ret %113
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %115:i32 = convert %value
+    %116:bool = gte %value, -2147483648.0f
+    %117:i32 = select -2147483648i, %115, %116
+    %118:bool = lte %value, 2147483520.0f
+    %119:i32 = select 2147483647i, %117, %118
+    ret %119
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.msl
index a7092fa..862ab59 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
     %x_198:ptr<function, array<i32, 256>, read_write> = var
@@ -29,114 +29,122 @@
     %15:vec2<f32> = swizzle %14, xy
     %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %17:vec2<f32> = load %16
-    %x_203:vec2<f32> = div %15, %17
-    %19:f32 = access %x_203, 0u
-    %20:f32 = mul %19, 256.0f
-    %21:i32 = convert %20
-    %22:f32 = access %x_203, 1u
-    %23:f32 = mul %22, 256.0f
-    %24:i32 = convert %23
-    %25:vec2<i32> = construct %21, %24
-    store %x_210, %25
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %26:vec2<i32> = load %x_210
-        store %x_214, %26
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %18:vec2<f32> = div %15, %17
+    %x_203:vec2<f32> = let %18
+    %20:f32 = access %x_203, 0u
+    %21:f32 = mul %20, 256.0f
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = let %22
+    %25:f32 = access %x_203, 1u
+    %26:f32 = mul %25, 256.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:vec2<i32> = construct %24, %27
+    store %x_210, %28
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %29:vec2<i32> = load %x_210
+        store %x_214, %29
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_233:ptr<function, i32, read_write> = var
             %x_234:ptr<function, i32, read_write> = var
             %x_235:ptr<function, i32, read_write> = var
             %x_241:ptr<function, bool, read_write> = var
-            %x_217:i32 = load_vector_element %x_214, 1u
+            %34:i32 = load_vector_element %x_214, 1u
+            %x_217:i32 = let %34
             store %x_253, vec4<f32>(0.0f)
             store %x_254, false
-            %32:bool = neq %x_217, 256i
-            if %32 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %36:bool = neq %x_217, 256i
+            if %36 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_221:i32 = load_vector_element %x_214, 0u
+            %37:i32 = load_vector_element %x_214, 0u
+            %x_221:i32 = let %37
             store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %34:ptr<function, i32, read_write> = access %x_196, %x_217
-            %35:i32 = load %34
-            %36:i32 = add %35, 15i
-            %x_225:bool = lt %x_221, %36
-            if %x_225 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            %39:ptr<function, i32, read_write> = access %x_196, %x_217
+            %40:i32 = load %39
+            %41:i32 = add %40, 15i
+            %42:bool = lt %x_221, %41
+            %x_225:bool = let %42
+            if %x_225 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                 exit_if  # if_2
               }
             }
-            if %x_225 [t: %b9, f: %b10] {  # if_3
-              %b9 = block {  # true
-                %38:ptr<function, i32, read_write> = access %x_197, %x_217
-                %39:i32 = load %38
-                store %x_233, %39
-                %40:i32 = load %x_233
-                store %x_235, %40
+            if %x_225 [t: $B9, f: $B10] {  # if_3
+              $B9: {  # true
+                %44:ptr<function, i32, read_write> = access %x_197, %x_217
+                %45:i32 = load %44
+                store %x_233, %45
+                %46:i32 = load %x_233
+                store %x_235, %46
                 exit_if  # if_3
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 store %x_234, 0i
-                %41:i32 = load %x_234
-                store %x_235, %41
+                %47:i32 = load %x_234
+                store %x_235, %47
                 exit_if  # if_3
               }
             }
-            %42:i32 = load %x_235
-            %43:i32 = sub %42, 15i
-            %x_237:bool = gt %x_221, %43
-            if %x_225 [t: %b11, f: %b12] {  # if_4
-              %b11 = block {  # true
+            %48:i32 = load %x_235
+            %49:i32 = sub %48, 15i
+            %50:bool = gt %x_221, %49
+            %x_237:bool = let %50
+            if %x_225 [t: $B11, f: $B12] {  # if_4
+              $B11: {  # true
                 store %x_241, %x_237
                 exit_if  # if_4
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 store %x_241, %x_225
                 exit_if  # if_4
               }
             }
-            %45:bool = load %x_241
-            if %45 [t: %b13] {  # if_5
-              %b13 = block {  # true
+            %52:bool = load %x_241
+            if %52 [t: $B13] {  # if_5
+              $B13: {  # true
                 store %x_198, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %46:ptr<function, i32, read_write> = access %x_198, %x_217
-                %47:i32 = load %46
-                %48:i32 = sub %x_221, %47
-                %49:f32 = convert %48
-                %50:f32 = abs %49
-                %51:f32 = sub 15.0f, %50
-                %x_250:f32 = mul %51, 0.06666667014360427856f
-                %53:vec4<f32> = construct %x_250, %x_250, %x_250, 1.0f
-                store %x_251, %53
-                %54:vec4<f32> = load %x_251
-                store %x_253, %54
+                %53:ptr<function, i32, read_write> = access %x_198, %x_217
+                %54:i32 = load %53
+                %55:i32 = sub %x_221, %54
+                %56:f32 = convert %55
+                %57:f32 = abs %56
+                %58:f32 = sub 15.0f, %57
+                %59:f32 = mul %58, 0.06666667014360427856f
+                %x_250:f32 = let %59
+                %61:vec4<f32> = construct %x_250, %x_250, %x_250, 1.0f
+                store %x_251, %61
+                %62:vec4<f32> = load %x_251
+                store %x_253, %62
                 store %x_254, true
                 exit_loop  # loop_1
               }
             }
-            %55:vec2<i32> = load %x_214
-            %x_215_1:ptr<function, vec2<i32>, read_write> = var, %55
-            %57:i32 = add %x_217, 1i
-            store_vector_element %x_215_1, 1u, %57
-            %x_215:vec2<i32> = load %x_215_1
-            continue %b5
+            %63:vec2<i32> = load %x_214
+            %x_215_1:ptr<function, vec2<i32>, read_write> = var, %63
+            %65:i32 = add %x_217, 1i
+            store_vector_element %x_215_1, 1u, %65
+            %66:vec2<i32> = load %x_215_1
+            %x_215:vec2<i32> = let %66
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_214, %x_215
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %59:vec4<f32> = load %x_253
-        store %x_256, %59
-        %60:bool = load %x_254
-        if %60 [t: %b14] {  # if_6
-          %b14 = block {  # true
+        %68:vec4<f32> = load %x_253
+        store %x_256, %68
+        %69:bool = load %x_254
+        if %69 [t: $B14] {  # if_6
+          $B14: {  # true
             exit_switch  # switch_1
           }
         }
@@ -144,18 +152,28 @@
         exit_switch  # switch_1
       }
     }
-    %61:vec4<f32> = load %x_256
-    store %x_GLF_color, %61
+    %70:vec4<f32> = load %x_256
+    store %x_GLF_color, %70
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b15 {
-  %b15 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B15: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %64:void = call %main_1
-    %65:vec4<f32> = load %x_GLF_color
-    %66:main_out = construct %65
-    ret %66
+    %73:void = call %main_1
+    %74:vec4<f32> = load %x_GLF_color
+    %75:main_out = construct %74
+    ret %75
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.msl
index e720d06..c64087a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
     %x_198:ptr<function, array<i32, 256>, read_write> = var
@@ -26,122 +26,138 @@
     %x_253_phi:ptr<function, vec4<f32>, read_write> = var
     %x_254_phi:ptr<function, bool, read_write> = var
     %x_256_phi:ptr<function, vec4<f32>, read_write> = var
-    %x_199:vec4<f32> = load %gl_FragCoord
-    %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_202:vec2<f32> = load %16
-    %18:f32 = access %x_199, 0u
-    %19:f32 = access %x_199, 1u
-    %20:vec2<f32> = construct %18, %19
-    %x_203:vec2<f32> = div %20, %x_202
-    %22:f32 = access %x_203, 0u
-    %23:f32 = mul %22, 256.0f
-    %24:i32 = convert %23
-    %25:f32 = access %x_203, 1u
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_199:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %18:vec2<f32> = load %17
+    %x_202:vec2<f32> = let %18
+    %20:f32 = access %x_199, 0u
+    %21:f32 = access %x_199, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_202
+    %x_203:vec2<f32> = let %23
+    %25:f32 = access %x_203, 0u
     %26:f32 = mul %25, 256.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %24, %27
-    store %x_210, %28
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %29:vec2<i32> = load %x_210
-        store %x_214_phi, %29
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %27:i32 = call %tint_f32_to_i32, %26
+    %29:i32 = let %27
+    %30:f32 = access %x_203, 1u
+    %31:f32 = mul %30, 256.0f
+    %32:i32 = call %tint_f32_to_i32, %31
+    %33:vec2<i32> = construct %29, %32
+    store %x_210, %33
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %34:vec2<i32> = load %x_210
+        store %x_214_phi, %34
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_233:ptr<function, i32, read_write> = var
             %x_234:ptr<function, i32, read_write> = var
             %x_235_phi:ptr<function, i32, read_write> = var
             %x_241_phi:ptr<function, bool, read_write> = var
-            %x_214:vec2<i32> = load %x_214_phi
-            %x_217:i32 = access %x_214, 1u
+            %39:vec2<i32> = load %x_214_phi
+            %x_214:vec2<i32> = let %39
+            %41:i32 = access %x_214, 1u
+            %x_217:i32 = let %41
             store %x_253_phi, vec4<f32>(0.0f)
             store %x_254_phi, false
-            %36:bool = neq %x_217, 256i
-            if %36 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %43:bool = neq %x_217, 256i
+            if %43 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_221:i32 = access %x_214, 0u
+            %44:i32 = access %x_214, 0u
+            %x_221:i32 = let %44
             store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %38:ptr<function, i32, read_write> = access %x_196, %x_217
-            %x_223:i32 = load %38
-            %40:i32 = add %x_223, 15i
-            %x_225:bool = lt %x_221, %40
-            if %x_225 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            %46:ptr<function, i32, read_write> = access %x_196, %x_217
+            %47:i32 = load %46
+            %x_223:i32 = let %47
+            %49:i32 = add %x_223, 15i
+            %50:bool = lt %x_221, %49
+            %x_225:bool = let %50
+            if %x_225 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                 exit_if  # if_2
               }
             }
-            if %x_225 [t: %b9, f: %b10] {  # if_3
-              %b9 = block {  # true
-                %42:ptr<function, i32, read_write> = access %x_197, %x_217
-                %43:i32 = load %42
-                store %x_233, %43
-                %44:i32 = load %x_233
-                store %x_235_phi, %44
+            if %x_225 [t: $B9, f: $B10] {  # if_3
+              $B9: {  # true
+                %52:ptr<function, i32, read_write> = access %x_197, %x_217
+                %53:i32 = load %52
+                store %x_233, %53
+                %54:i32 = load %x_233
+                store %x_235_phi, %54
                 exit_if  # if_3
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 store %x_234, 0i
-                %45:i32 = load %x_234
-                store %x_235_phi, %45
+                %55:i32 = load %x_234
+                store %x_235_phi, %55
                 exit_if  # if_3
               }
             }
-            %x_235:i32 = load %x_235_phi
-            %47:i32 = sub %x_235, 15i
-            %x_237:bool = gt %x_221, %47
-            if %x_225 [t: %b11, f: %b12] {  # if_4
-              %b11 = block {  # true
+            %56:i32 = load %x_235_phi
+            %x_235:i32 = let %56
+            %58:i32 = sub %x_235, 15i
+            %59:bool = gt %x_221, %58
+            %x_237:bool = let %59
+            if %x_225 [t: $B11, f: $B12] {  # if_4
+              $B11: {  # true
                 store %x_241_phi, %x_237
                 exit_if  # if_4
               }
-              %b12 = block {  # false
+              $B12: {  # false
                 store %x_241_phi, %x_225
                 exit_if  # if_4
               }
             }
-            %x_241:bool = load %x_241_phi
-            if %x_241 [t: %b13] {  # if_5
-              %b13 = block {  # true
+            %61:bool = load %x_241_phi
+            %x_241:bool = let %61
+            if %x_241 [t: $B13] {  # if_5
+              $B13: {  # true
                 store %x_198, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %50:ptr<function, i32, read_write> = access %x_198, %x_217
-                %x_245:i32 = load %50
-                %52:i32 = sub %x_221, %x_245
-                %53:f32 = convert %52
-                %54:f32 = abs %53
-                %55:f32 = sub 15.0f, %54
-                %x_250:f32 = mul %55, 0.06666667014360427856f
-                %57:vec4<f32> = construct %x_250, %x_250, %x_250, 1.0f
-                store %x_251, %57
-                %58:vec4<f32> = load %x_251
-                store %x_253_phi, %58
+                %63:ptr<function, i32, read_write> = access %x_198, %x_217
+                %64:i32 = load %63
+                %x_245:i32 = let %64
+                %66:i32 = sub %x_221, %x_245
+                %67:f32 = convert %66
+                %68:f32 = abs %67
+                %69:f32 = sub 15.0f, %68
+                %70:f32 = mul %69, 0.06666667014360427856f
+                %x_250:f32 = let %70
+                %72:vec4<f32> = construct %x_250, %x_250, %x_250, 1.0f
+                store %x_251, %72
+                %73:vec4<f32> = load %x_251
+                store %x_253_phi, %73
                 store %x_254_phi, true
                 exit_loop  # loop_1
               }
             }
             %x_215_1:ptr<function, vec2<i32>, read_write> = var, %x_214
-            %60:i32 = add %x_217, 1i
-            store_vector_element %x_215_1, 1u, %60
-            %x_215:vec2<i32> = load %x_215_1
-            continue %b5
+            %75:i32 = add %x_217, 1i
+            store_vector_element %x_215_1, 1u, %75
+            %76:vec2<i32> = load %x_215_1
+            %x_215:vec2<i32> = let %76
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_214_phi, %x_215
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %62:vec4<f32> = load %x_253_phi
-        store %x_253, %62
-        %x_254:bool = load %x_254_phi
-        %64:vec4<f32> = load %x_253
-        store %x_256_phi, %64
-        if %x_254 [t: %b14] {  # if_6
-          %b14 = block {  # true
+        %78:vec4<f32> = load %x_253_phi
+        store %x_253, %78
+        %79:bool = load %x_254_phi
+        %x_254:bool = let %79
+        %81:vec4<f32> = load %x_253
+        store %x_256_phi, %81
+        if %x_254 [t: $B14] {  # if_6
+          $B14: {  # true
             exit_switch  # switch_1
           }
         }
@@ -149,18 +165,29 @@
         exit_switch  # switch_1
       }
     }
-    %x_256:vec4<f32> = load %x_256_phi
+    %82:vec4<f32> = load %x_256_phi
+    %x_256:vec4<f32> = let %82
     store %x_GLF_color, %x_256
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b15 {
-  %b15 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B15: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+    %86:void = call %main_1
+    %87:vec4<f32> = load %x_GLF_color
+    %88:main_out = construct %87
+    ret %88
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B16: {
+    %90:i32 = convert %value
+    %91:bool = gte %value, -2147483648.0f
+    %92:i32 = select -2147483648i, %90, %91
+    %93:bool = lte %value, 2147483520.0f
+    %94:i32 = select 2147483647i, %92, %93
+    ret %94
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.msl
index 8696d3b..1664f3a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
     %x_198:ptr<function, array<i32, 256>, read_write> = var
@@ -29,103 +29,110 @@
     %15:vec2<f32> = swizzle %14, xy
     %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %17:vec2<f32> = load %16
-    %x_203:vec2<f32> = div %15, %17
-    %19:f32 = access %x_203, 0u
-    %20:f32 = mul %19, 256.0f
-    %21:i32 = convert %20
-    %22:f32 = access %x_203, 1u
-    %23:f32 = mul %22, 256.0f
-    %24:i32 = convert %23
-    %25:vec2<i32> = construct %21, %24
-    store %x_210, %25
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %26:vec2<i32> = load %x_210
-        store %x_214, %26
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %18:vec2<f32> = div %15, %17
+    %x_203:vec2<f32> = let %18
+    %20:f32 = access %x_203, 0u
+    %21:f32 = mul %20, 256.0f
+    %22:i32 = call %tint_f32_to_i32, %21
+    %24:i32 = let %22
+    %25:f32 = access %x_203, 1u
+    %26:f32 = mul %25, 256.0f
+    %27:i32 = call %tint_f32_to_i32, %26
+    %28:vec2<i32> = construct %24, %27
+    store %x_210, %28
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %29:vec2<i32> = load %x_210
+        store %x_214, %29
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_233:ptr<function, i32, read_write> = var
             %x_234:ptr<function, i32, read_write> = var
             %x_235:ptr<function, i32, read_write> = var
-            %x_217:i32 = load_vector_element %x_214, 1u
+            %33:i32 = load_vector_element %x_214, 1u
+            %x_217:i32 = let %33
             store %x_251, vec4<f32>(0.0f)
             store %x_252, false
-            %31:bool = neq %x_217, 256i
-            if %31 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %35:bool = neq %x_217, 256i
+            if %35 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_221:i32 = load_vector_element %x_214, 0u
+            %36:i32 = load_vector_element %x_214, 0u
+            %x_221:i32 = let %36
             store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %33:ptr<function, i32, read_write> = access %x_196, %x_217
-            %34:i32 = load %33
-            %35:i32 = add %34, 15i
-            %x_225:bool = lt %x_221, %35
-            if %x_225 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            %38:ptr<function, i32, read_write> = access %x_196, %x_217
+            %39:i32 = load %38
+            %40:i32 = add %39, 15i
+            %41:bool = lt %x_221, %40
+            %x_225:bool = let %41
+            if %x_225 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                 exit_if  # if_2
               }
             }
-            if %x_225 [t: %b9, f: %b10] {  # if_3
-              %b9 = block {  # true
-                %37:ptr<function, i32, read_write> = access %x_197, %x_217
-                %38:i32 = load %37
-                store %x_233, %38
-                %39:i32 = load %x_233
-                store %x_235, %39
+            if %x_225 [t: $B9, f: $B10] {  # if_3
+              $B9: {  # true
+                %43:ptr<function, i32, read_write> = access %x_197, %x_217
+                %44:i32 = load %43
+                store %x_233, %44
+                %45:i32 = load %x_233
+                store %x_235, %45
                 exit_if  # if_3
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 store %x_234, 0i
-                %40:i32 = load %x_234
-                store %x_235, %40
+                %46:i32 = load %x_234
+                store %x_235, %46
                 exit_if  # if_3
               }
             }
-            %41:i32 = load %x_235
-            %42:i32 = sub %41, 15i
-            %43:bool = gt %x_221, %42
-            %44:bool = select %x_225, %43, %x_225
-            if %44 [t: %b11] {  # if_4
-              %b11 = block {  # true
+            %47:i32 = load %x_235
+            %48:i32 = sub %47, 15i
+            %49:bool = gt %x_221, %48
+            %50:bool = select %x_225, %49, %x_225
+            if %50 [t: $B11] {  # if_4
+              $B11: {  # true
                 store %x_198, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %45:ptr<function, i32, read_write> = access %x_198, %x_217
-                %46:i32 = load %45
-                %47:i32 = sub %x_221, %46
-                %48:f32 = convert %47
-                %49:f32 = abs %48
-                %50:f32 = sub 15.0f, %49
-                %x_248:f32 = mul %50, 0.06666667014360427856f
-                %52:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
-                store %x_249, %52
-                %53:vec4<f32> = load %x_249
-                store %x_251, %53
+                %51:ptr<function, i32, read_write> = access %x_198, %x_217
+                %52:i32 = load %51
+                %53:i32 = sub %x_221, %52
+                %54:f32 = convert %53
+                %55:f32 = abs %54
+                %56:f32 = sub 15.0f, %55
+                %57:f32 = mul %56, 0.06666667014360427856f
+                %x_248:f32 = let %57
+                %59:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
+                store %x_249, %59
+                %60:vec4<f32> = load %x_249
+                store %x_251, %60
                 store %x_252, true
                 exit_loop  # loop_1
               }
             }
-            %54:vec2<i32> = load %x_214
-            %x_215_1:ptr<function, vec2<i32>, read_write> = var, %54
-            %56:i32 = add %x_217, 1i
-            store_vector_element %x_215_1, 1u, %56
-            %x_215:vec2<i32> = load %x_215_1
-            continue %b5
+            %61:vec2<i32> = load %x_214
+            %x_215_1:ptr<function, vec2<i32>, read_write> = var, %61
+            %63:i32 = add %x_217, 1i
+            store_vector_element %x_215_1, 1u, %63
+            %64:vec2<i32> = load %x_215_1
+            %x_215:vec2<i32> = let %64
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_214, %x_215
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %58:vec4<f32> = load %x_251
-        store %x_254, %58
-        %59:bool = load %x_252
-        if %59 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %66:vec4<f32> = load %x_251
+        store %x_254, %66
+        %67:bool = load %x_252
+        if %67 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
@@ -133,18 +140,28 @@
         exit_switch  # switch_1
       }
     }
-    %60:vec4<f32> = load %x_254
-    store %x_GLF_color, %60
+    %68:vec4<f32> = load %x_254
+    store %x_GLF_color, %68
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+    %71:void = call %main_1
+    %72:vec4<f32> = load %x_GLF_color
+    %73:main_out = construct %72
+    ret %73
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B14: {
+    %75:i32 = convert %value
+    %76:bool = gte %value, -2147483648.0f
+    %77:i32 = select -2147483648i, %75, %76
+    %78:bool = lte %value, 2147483520.0f
+    %79:i32 = select 2147483647i, %77, %78
+    ret %79
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.msl
index 63e701d..c95c30d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-O-op-select-to-op-phi/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_196:ptr<function, array<i32, 256>, read_write> = var
     %x_197:ptr<function, array<i32, 256>, read_write> = var
     %x_198:ptr<function, array<i32, 256>, read_write> = var
@@ -26,111 +26,126 @@
     %x_251_phi:ptr<function, vec4<f32>, read_write> = var
     %x_252_phi:ptr<function, bool, read_write> = var
     %x_254_phi:ptr<function, vec4<f32>, read_write> = var
-    %x_199:vec4<f32> = load %gl_FragCoord
-    %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_202:vec2<f32> = load %16
-    %18:f32 = access %x_199, 0u
-    %19:f32 = access %x_199, 1u
-    %20:vec2<f32> = construct %18, %19
-    %x_203:vec2<f32> = div %20, %x_202
-    %22:f32 = access %x_203, 0u
-    %23:f32 = mul %22, 256.0f
-    %24:i32 = convert %23
-    %25:f32 = access %x_203, 1u
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_199:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %18:vec2<f32> = load %17
+    %x_202:vec2<f32> = let %18
+    %20:f32 = access %x_199, 0u
+    %21:f32 = access %x_199, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_202
+    %x_203:vec2<f32> = let %23
+    %25:f32 = access %x_203, 0u
     %26:f32 = mul %25, 256.0f
-    %27:i32 = convert %26
-    %28:vec2<i32> = construct %24, %27
-    store %x_210, %28
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
-        %29:vec2<i32> = load %x_210
-        store %x_214_phi, %29
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+    %27:i32 = call %tint_f32_to_i32, %26
+    %29:i32 = let %27
+    %30:f32 = access %x_203, 1u
+    %31:f32 = mul %30, 256.0f
+    %32:i32 = call %tint_f32_to_i32, %31
+    %33:vec2<i32> = construct %29, %32
+    store %x_210, %33
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        %34:vec2<i32> = load %x_210
+        store %x_214_phi, %34
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_233:ptr<function, i32, read_write> = var
             %x_234:ptr<function, i32, read_write> = var
             %x_235_phi:ptr<function, i32, read_write> = var
-            %x_214:vec2<i32> = load %x_214_phi
-            %x_217:i32 = access %x_214, 1u
+            %38:vec2<i32> = load %x_214_phi
+            %x_214:vec2<i32> = let %38
+            %40:i32 = access %x_214, 1u
+            %x_217:i32 = let %40
             store %x_251_phi, vec4<f32>(0.0f)
             store %x_252_phi, false
-            %35:bool = neq %x_217, 256i
-            if %35 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %42:bool = neq %x_217, 256i
+            if %42 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_221:i32 = access %x_214, 0u
+            %43:i32 = access %x_214, 0u
+            %x_221:i32 = let %43
             store %x_196, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %37:ptr<function, i32, read_write> = access %x_196, %x_217
-            %x_223:i32 = load %37
-            %39:i32 = add %x_223, 15i
-            %x_225:bool = lt %x_221, %39
-            if %x_225 [t: %b8] {  # if_2
-              %b8 = block {  # true
+            %45:ptr<function, i32, read_write> = access %x_196, %x_217
+            %46:i32 = load %45
+            %x_223:i32 = let %46
+            %48:i32 = add %x_223, 15i
+            %49:bool = lt %x_221, %48
+            %x_225:bool = let %49
+            if %x_225 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_197, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
                 exit_if  # if_2
               }
             }
-            if %x_225 [t: %b9, f: %b10] {  # if_3
-              %b9 = block {  # true
-                %41:ptr<function, i32, read_write> = access %x_197, %x_217
-                %42:i32 = load %41
-                store %x_233, %42
-                %43:i32 = load %x_233
-                store %x_235_phi, %43
+            if %x_225 [t: $B9, f: $B10] {  # if_3
+              $B9: {  # true
+                %51:ptr<function, i32, read_write> = access %x_197, %x_217
+                %52:i32 = load %51
+                store %x_233, %52
+                %53:i32 = load %x_233
+                store %x_235_phi, %53
                 exit_if  # if_3
               }
-              %b10 = block {  # false
+              $B10: {  # false
                 store %x_234, 0i
-                %44:i32 = load %x_234
-                store %x_235_phi, %44
+                %54:i32 = load %x_234
+                store %x_235_phi, %54
                 exit_if  # if_3
               }
             }
-            %x_235:i32 = load %x_235_phi
-            %46:i32 = sub %x_235, 15i
-            %x_237:bool = gt %x_221, %46
-            %48:bool = select %x_225, %x_237, %x_225
-            if %48 [t: %b11] {  # if_4
-              %b11 = block {  # true
+            %55:i32 = load %x_235_phi
+            %x_235:i32 = let %55
+            %57:i32 = sub %x_235, 15i
+            %58:bool = gt %x_221, %57
+            %x_237:bool = let %58
+            %60:bool = select %x_225, %x_237, %x_225
+            if %60 [t: $B11] {  # if_4
+              $B11: {  # true
                 store %x_198, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-                %49:ptr<function, i32, read_write> = access %x_198, %x_217
-                %x_243:i32 = load %49
-                %51:i32 = sub %x_221, %x_243
-                %52:f32 = convert %51
-                %53:f32 = abs %52
-                %54:f32 = sub 15.0f, %53
-                %x_248:f32 = mul %54, 0.06666667014360427856f
-                %56:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
-                store %x_249, %56
-                %57:vec4<f32> = load %x_249
-                store %x_251_phi, %57
+                %61:ptr<function, i32, read_write> = access %x_198, %x_217
+                %62:i32 = load %61
+                %x_243:i32 = let %62
+                %64:i32 = sub %x_221, %x_243
+                %65:f32 = convert %64
+                %66:f32 = abs %65
+                %67:f32 = sub 15.0f, %66
+                %68:f32 = mul %67, 0.06666667014360427856f
+                %x_248:f32 = let %68
+                %70:vec4<f32> = construct %x_248, %x_248, %x_248, 1.0f
+                store %x_249, %70
+                %71:vec4<f32> = load %x_249
+                store %x_251_phi, %71
                 store %x_252_phi, true
                 exit_loop  # loop_1
               }
             }
             %x_215_1:ptr<function, vec2<i32>, read_write> = var, %x_214
-            %59:i32 = add %x_217, 1i
-            store_vector_element %x_215_1, 1u, %59
-            %x_215:vec2<i32> = load %x_215_1
-            continue %b5
+            %73:i32 = add %x_217, 1i
+            store_vector_element %x_215_1, 1u, %73
+            %74:vec2<i32> = load %x_215_1
+            %x_215:vec2<i32> = let %74
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
+          $B5: {  # continuing
             store %x_214_phi, %x_215
-            next_iteration %b4
+            next_iteration  # -> $B4
           }
         }
-        %61:vec4<f32> = load %x_251_phi
-        store %x_251, %61
-        %x_252:bool = load %x_252_phi
-        %63:vec4<f32> = load %x_251
-        store %x_254_phi, %63
-        if %x_252 [t: %b12] {  # if_5
-          %b12 = block {  # true
+        %76:vec4<f32> = load %x_251_phi
+        store %x_251, %76
+        %77:bool = load %x_252_phi
+        %x_252:bool = let %77
+        %79:vec4<f32> = load %x_251
+        store %x_254_phi, %79
+        if %x_252 [t: $B12] {  # if_5
+          $B12: {  # true
             exit_switch  # switch_1
           }
         }
@@ -138,18 +153,29 @@
         exit_switch  # switch_1
       }
     }
-    %x_254:vec4<f32> = load %x_254_phi
+    %80:vec4<f32> = load %x_254_phi
+    %x_254:vec4<f32> = let %80
     store %x_GLF_color, %x_254
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %67:void = call %main_1
-    %68:vec4<f32> = load %x_GLF_color
-    %69:main_out = construct %68
-    ret %69
+    %84:void = call %main_1
+    %85:vec4<f32> = load %x_GLF_color
+    %86:main_out = construct %85
+    ret %86
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B14: {
+    %88:i32 = convert %value
+    %89:bool = gte %value, -2147483648.0f
+    %90:i32 = select -2147483648i, %88, %89
+    %91:bool = lte %value, 2147483520.0f
+    %92:i32 = select 2147483647i, %90, %91
+    ret %92
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.msl
index b31089a..f300289 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,121 +8,143 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> -> %b2 {
-  %b2 = block {
+%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> {
+  $B2: {
     %indexable:ptr<function, array<i32, 256>, read_write> = var
     %indexable_1:ptr<function, array<i32, 256>, read_write> = var
     %p:ptr<function, f32, read_write> = var
     %indexable_2:ptr<function, array<i32, 256>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_247:ptr<function, bool, read_write> = var
         %x_248:ptr<function, bool, read_write> = var
         %12:i32 = load_vector_element %pos, 1u
         %13:bool = neq %12, 256i
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_231:i32 = load_vector_element %pos, 0u
-        %x_233:i32 = load_vector_element %pos, 1u
+        %14:i32 = load_vector_element %pos, 0u
+        %x_231:i32 = let %14
+        %16:i32 = load_vector_element %pos, 1u
+        %x_233:i32 = let %16
         store %indexable, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-        %16:ptr<function, i32, read_write> = access %indexable, %x_233
-        %17:i32 = load %16
-        %18:i32 = add %17, 15i
-        %x_237:bool = lt %x_231, %18
+        %18:ptr<function, i32, read_write> = access %indexable, %x_233
+        %19:i32 = load %18
+        %20:i32 = add %19, 15i
+        %21:bool = lt %x_231, %20
+        %x_237:bool = let %21
         store %x_248, %x_237
-        if %x_237 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_241:i32 = load_vector_element %pos, 0u
-            %x_243:i32 = load_vector_element %pos, 1u
+        if %x_237 [t: $B7] {  # if_2
+          $B7: {  # true
+            %23:i32 = load_vector_element %pos, 0u
+            %x_241:i32 = let %23
+            %25:i32 = load_vector_element %pos, 1u
+            %x_243:i32 = let %25
             store %indexable_1, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %22:ptr<function, i32, read_write> = access %indexable_1, %x_243
-            %23:i32 = load %22
-            %24:i32 = sub %23, 15i
-            %25:bool = gt %x_241, %24
-            store %x_247, %25
-            %26:bool = load %x_247
-            store %x_248, %26
+            %27:ptr<function, i32, read_write> = access %indexable_1, %x_243
+            %28:i32 = load %27
+            %29:i32 = sub %28, 15i
+            %30:bool = gt %x_241, %29
+            store %x_247, %30
+            %31:bool = load %x_247
+            store %x_248, %31
             exit_if  # if_2
           }
         }
-        %27:bool = load %x_248
-        if %27 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %x_252:i32 = load_vector_element %pos, 0u
-            %x_254:i32 = load_vector_element %pos, 1u
+        %32:bool = load %x_248
+        if %32 [t: $B8] {  # if_3
+          $B8: {  # true
+            %33:i32 = load_vector_element %pos, 0u
+            %x_252:i32 = let %33
+            %35:i32 = load_vector_element %pos, 1u
+            %x_254:i32 = let %35
             store %indexable_2, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %30:ptr<function, i32, read_write> = access %indexable_2, %x_254
-            %31:i32 = load %30
-            %32:i32 = sub %x_252, %31
-            %33:f32 = convert %32
-            %34:f32 = abs %33
-            %35:f32 = sub 15.0f, %34
-            %36:f32 = div %35, 15.0f
-            store %p, %36
-            %x_262:f32 = load %p
-            %x_263:f32 = load %p
-            %x_264:f32 = load %p
-            %40:vec4<f32> = construct %x_262, %x_263, %x_264, 1.0f
-            ret %40
+            %37:ptr<function, i32, read_write> = access %indexable_2, %x_254
+            %38:i32 = load %37
+            %39:i32 = sub %x_252, %38
+            %40:f32 = convert %39
+            %41:f32 = abs %40
+            %42:f32 = sub 15.0f, %41
+            %43:f32 = div %42, 15.0f
+            store %p, %43
+            %44:f32 = load %p
+            %x_262:f32 = let %44
+            %46:f32 = load %p
+            %x_263:f32 = let %46
+            %48:f32 = load %p
+            %x_264:f32 = let %48
+            %50:vec4<f32> = construct %x_262, %x_263, %x_264, 1.0f
+            ret %50
           }
         }
-        %41:i32 = load_vector_element %pos, 1u
-        %42:i32 = add %41, 1i
-        store_vector_element %pos, 1u, %42
-        continue %b4
+        %51:i32 = load_vector_element %pos, 1u
+        %52:i32 = add %51, 1i
+        store_vector_element %pos, 1u, %52
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %pos_1:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %param:ptr<function, vec2<i32>, read_write> = var
-    %47:vec4<f32> = load %gl_FragCoord
-    %48:vec2<f32> = swizzle %47, xy
-    %49:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %50:vec2<f32> = load %49
-    %51:vec2<f32> = div %48, %50
-    store %pos_1, %51
-    %52:f32 = load_vector_element %pos_1, 0u
-    %53:f32 = mul %52, 256.0f
-    %54:i32 = convert %53
-    %55:f32 = load_vector_element %pos_1, 1u
-    %56:f32 = mul %55, 256.0f
-    %57:i32 = convert %56
-    %58:vec2<i32> = construct %54, %57
-    store %ipos, %58
-    %59:vec2<i32> = load %ipos
-    store %param, %59
-    %x_220:vec4<f32> = call %trace_vi2_, %param
+    %57:vec4<f32> = load %gl_FragCoord
+    %58:vec2<f32> = swizzle %57, xy
+    %59:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %60:vec2<f32> = load %59
+    %61:vec2<f32> = div %58, %60
+    store %pos_1, %61
+    %62:f32 = load_vector_element %pos_1, 0u
+    %63:f32 = mul %62, 256.0f
+    %64:i32 = call %tint_f32_to_i32, %63
+    %66:i32 = let %64
+    %67:f32 = load_vector_element %pos_1, 1u
+    %68:f32 = mul %67, 256.0f
+    %69:i32 = call %tint_f32_to_i32, %68
+    %70:vec2<i32> = construct %66, %69
+    store %ipos, %70
+    %71:vec2<i32> = load %ipos
+    store %param, %71
+    %72:vec4<f32> = call %trace_vi2_, %param
+    %x_220:vec4<f32> = let %72
     store %x_GLF_color, %x_220
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %63:void = call %main_1
-    %64:vec4<f32> = load %x_GLF_color
-    %65:main_out = construct %64
-    ret %65
+    %76:void = call %main_1
+    %77:vec4<f32> = load %x_GLF_color
+    %78:main_out = construct %77
+    ret %78
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %80:i32 = convert %value
+    %81:bool = gte %value, -2147483648.0f
+    %82:i32 = select -2147483648i, %80, %81
+    %83:bool = lte %value, 2147483520.0f
+    %84:i32 = select 2147483647i, %82, %83
+    ret %84
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.msl
index 4eb6774..0a5f7bb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,123 +8,156 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> -> %b2 {
-  %b2 = block {
+%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> {
+  $B2: {
     %indexable:ptr<function, array<i32, 256>, read_write> = var
     %indexable_1:ptr<function, array<i32, 256>, read_write> = var
     %p:ptr<function, f32, read_write> = var
     %indexable_2:ptr<function, array<i32, 256>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_247:ptr<function, bool, read_write> = var
         %x_248_phi:ptr<function, bool, read_write> = var
-        %x_227:i32 = load_vector_element %pos, 1u
-        %13:bool = neq %x_227, 256i
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %12:i32 = load_vector_element %pos, 1u
+        %x_227:i32 = let %12
+        %14:bool = neq %x_227, 256i
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_231:i32 = load_vector_element %pos, 0u
-        %x_233:i32 = load_vector_element %pos, 1u
+        %15:i32 = load_vector_element %pos, 0u
+        %x_231:i32 = let %15
+        %17:i32 = load_vector_element %pos, 1u
+        %x_233:i32 = let %17
         store %indexable, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-        %16:ptr<function, i32, read_write> = access %indexable, %x_233
-        %x_235:i32 = load %16
-        %18:i32 = add %x_235, 15i
-        %x_237:bool = lt %x_231, %18
+        %19:ptr<function, i32, read_write> = access %indexable, %x_233
+        %20:i32 = load %19
+        %x_235:i32 = let %20
+        %22:i32 = add %x_235, 15i
+        %23:bool = lt %x_231, %22
+        %x_237:bool = let %23
         store %x_248_phi, %x_237
-        if %x_237 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_241:i32 = load_vector_element %pos, 0u
-            %x_243:i32 = load_vector_element %pos, 1u
+        if %x_237 [t: $B7] {  # if_2
+          $B7: {  # true
+            %25:i32 = load_vector_element %pos, 0u
+            %x_241:i32 = let %25
+            %27:i32 = load_vector_element %pos, 1u
+            %x_243:i32 = let %27
             store %indexable_1, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %22:ptr<function, i32, read_write> = access %indexable_1, %x_243
-            %x_245:i32 = load %22
-            %24:i32 = sub %x_245, 15i
-            %25:bool = gt %x_241, %24
-            store %x_247, %25
-            %26:bool = load %x_247
-            store %x_248_phi, %26
+            %29:ptr<function, i32, read_write> = access %indexable_1, %x_243
+            %30:i32 = load %29
+            %x_245:i32 = let %30
+            %32:i32 = sub %x_245, 15i
+            %33:bool = gt %x_241, %32
+            store %x_247, %33
+            %34:bool = load %x_247
+            store %x_248_phi, %34
             exit_if  # if_2
           }
         }
-        %x_248:bool = load %x_248_phi
-        if %x_248 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %x_252:i32 = load_vector_element %pos, 0u
-            %x_254:i32 = load_vector_element %pos, 1u
+        %35:bool = load %x_248_phi
+        %x_248:bool = let %35
+        if %x_248 [t: $B8] {  # if_3
+          $B8: {  # true
+            %37:i32 = load_vector_element %pos, 0u
+            %x_252:i32 = let %37
+            %39:i32 = load_vector_element %pos, 1u
+            %x_254:i32 = let %39
             store %indexable_2, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %30:ptr<function, i32, read_write> = access %indexable_2, %x_254
-            %x_256:i32 = load %30
-            %32:i32 = sub %x_252, %x_256
-            %33:f32 = convert %32
-            %34:f32 = abs %33
-            %35:f32 = sub 15.0f, %34
-            %36:f32 = div %35, 15.0f
-            store %p, %36
-            %x_262:f32 = load %p
-            %x_263:f32 = load %p
-            %x_264:f32 = load %p
-            %40:vec4<f32> = construct %x_262, %x_263, %x_264, 1.0f
-            ret %40
+            %41:ptr<function, i32, read_write> = access %indexable_2, %x_254
+            %42:i32 = load %41
+            %x_256:i32 = let %42
+            %44:i32 = sub %x_252, %x_256
+            %45:f32 = convert %44
+            %46:f32 = abs %45
+            %47:f32 = sub 15.0f, %46
+            %48:f32 = div %47, 15.0f
+            store %p, %48
+            %49:f32 = load %p
+            %x_262:f32 = let %49
+            %51:f32 = load %p
+            %x_263:f32 = let %51
+            %53:f32 = load %p
+            %x_264:f32 = let %53
+            %55:vec4<f32> = construct %x_262, %x_263, %x_264, 1.0f
+            ret %55
           }
         }
-        %x_267:i32 = load_vector_element %pos, 1u
-        %42:i32 = add %x_267, 1i
-        store_vector_element %pos, 1u, %42
-        continue %b4
+        %56:i32 = load_vector_element %pos, 1u
+        %x_267:i32 = let %56
+        %58:i32 = add %x_267, 1i
+        store_vector_element %pos, 1u, %58
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %pos_1:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %param:ptr<function, vec2<i32>, read_write> = var
-    %x_205:vec4<f32> = load %gl_FragCoord
-    %48:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %x_208:vec2<f32> = load %48
-    %50:f32 = access %x_205, 0u
-    %51:f32 = access %x_205, 1u
-    %52:vec2<f32> = construct %50, %51
-    %53:vec2<f32> = div %52, %x_208
-    store %pos_1, %53
-    %x_211:f32 = load_vector_element %pos_1, 0u
-    %x_215:f32 = load_vector_element %pos_1, 1u
-    %56:f32 = mul %x_211, 256.0f
-    %57:i32 = convert %56
-    %58:f32 = mul %x_215, 256.0f
-    %59:i32 = convert %58
-    %60:vec2<i32> = construct %57, %59
-    store %ipos, %60
-    %x_219:vec2<i32> = load %ipos
+    %63:vec4<f32> = load %gl_FragCoord
+    %x_205:vec4<f32> = let %63
+    %65:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %66:vec2<f32> = load %65
+    %x_208:vec2<f32> = let %66
+    %68:f32 = access %x_205, 0u
+    %69:f32 = access %x_205, 1u
+    %70:vec2<f32> = construct %68, %69
+    %71:vec2<f32> = div %70, %x_208
+    store %pos_1, %71
+    %72:f32 = load_vector_element %pos_1, 0u
+    %x_211:f32 = let %72
+    %74:f32 = load_vector_element %pos_1, 1u
+    %x_215:f32 = let %74
+    %76:f32 = mul %x_211, 256.0f
+    %77:i32 = call %tint_f32_to_i32, %76
+    %79:i32 = let %77
+    %80:f32 = mul %x_215, 256.0f
+    %81:i32 = call %tint_f32_to_i32, %80
+    %82:vec2<i32> = construct %79, %81
+    store %ipos, %82
+    %83:vec2<i32> = load %ipos
+    %x_219:vec2<i32> = let %83
     store %param, %x_219
-    %x_220:vec4<f32> = call %trace_vi2_, %param
+    %85:vec4<f32> = call %trace_vi2_, %param
+    %x_220:vec4<f32> = let %85
     store %x_GLF_color, %x_220
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %65:void = call %main_1
-    %66:vec4<f32> = load %x_GLF_color
-    %67:main_out = construct %66
-    ret %67
+    %89:void = call %main_1
+    %90:vec4<f32> = load %x_GLF_color
+    %91:main_out = construct %90
+    ret %91
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %93:i32 = convert %value
+    %94:bool = gte %value, -2147483648.0f
+    %95:i32 = select -2147483648i, %93, %94
+    %96:bool = lte %value, 2147483520.0f
+    %97:i32 = select 2147483647i, %95, %96
+    ret %97
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.msl
index 269c27f..d3680ab 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,127 +8,152 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> -> %b2 {
-  %b2 = block {
+%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> {
+  $B2: {
     %indexable:ptr<function, array<i32, 256>, read_write> = var
     %indexable_1:ptr<function, array<i32, 256>, read_write> = var
     %p:ptr<function, f32, read_write> = var
     %indexable_2:ptr<function, array<i32, 256>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_251:ptr<function, bool, read_write> = var
         %x_252:ptr<function, bool, read_write> = var
         %12:i32 = load_vector_element %pos, 1u
         %13:bool = neq %12, 256i
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_233:i32 = load_vector_element %pos, 0u
-        %x_235:i32 = load_vector_element %pos, 1u
+        %14:i32 = load_vector_element %pos, 0u
+        %x_233:i32 = let %14
+        %16:i32 = load_vector_element %pos, 1u
+        %x_235:i32 = let %16
         store %indexable, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-        %16:ptr<function, i32, read_write> = access %indexable, %x_235
-        %x_237:i32 = load %16
-        %x_238:array<i32, 256> = load %indexable
+        %18:ptr<function, i32, read_write> = access %indexable, %x_235
+        %19:i32 = load %18
+        %x_237:i32 = let %19
+        %21:array<i32, 256> = load %indexable
+        %x_238:array<i32, 256> = let %21
         store %indexable, array<i32, 256>(0i)
-        %x_239:i32 = load_vector_element %pos, 1u
+        %23:i32 = load_vector_element %pos, 1u
+        %x_239:i32 = let %23
         store_vector_element %pos, 1u, 0i
         store_vector_element %pos, 1u, %x_239
         store %indexable, %x_238
-        %20:i32 = add %x_237, 15i
-        %x_241:bool = lt %x_233, %20
+        %25:i32 = add %x_237, 15i
+        %26:bool = lt %x_233, %25
+        %x_241:bool = let %26
         store %x_252, %x_241
-        if %x_241 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_245:i32 = load_vector_element %pos, 0u
-            %x_247:i32 = load_vector_element %pos, 1u
+        if %x_241 [t: $B7] {  # if_2
+          $B7: {  # true
+            %28:i32 = load_vector_element %pos, 0u
+            %x_245:i32 = let %28
+            %30:i32 = load_vector_element %pos, 1u
+            %x_247:i32 = let %30
             store %indexable_1, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %24:ptr<function, i32, read_write> = access %indexable_1, %x_247
-            %25:i32 = load %24
-            %26:i32 = sub %25, 15i
-            %27:bool = gt %x_245, %26
-            store %x_251, %27
-            %28:bool = load %x_251
-            store %x_252, %28
+            %32:ptr<function, i32, read_write> = access %indexable_1, %x_247
+            %33:i32 = load %32
+            %34:i32 = sub %33, 15i
+            %35:bool = gt %x_245, %34
+            store %x_251, %35
+            %36:bool = load %x_251
+            store %x_252, %36
             exit_if  # if_2
           }
         }
-        %29:bool = load %x_252
-        if %29 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %x_256:i32 = load_vector_element %pos, 0u
-            %x_258:i32 = load_vector_element %pos, 1u
+        %37:bool = load %x_252
+        if %37 [t: $B8] {  # if_3
+          $B8: {  # true
+            %38:i32 = load_vector_element %pos, 0u
+            %x_256:i32 = let %38
+            %40:i32 = load_vector_element %pos, 1u
+            %x_258:i32 = let %40
             store %indexable_2, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %32:ptr<function, i32, read_write> = access %indexable_2, %x_258
-            %33:i32 = load %32
-            %34:i32 = sub %x_256, %33
-            %35:f32 = convert %34
-            %36:f32 = abs %35
-            %37:f32 = sub 15.0f, %36
-            %38:f32 = div %37, 15.0f
-            store %p, %38
-            %x_266:f32 = load %p
-            %x_267:f32 = load %p
-            %x_268:f32 = load %p
-            %42:vec4<f32> = construct %x_266, %x_267, %x_268, 1.0f
-            ret %42
+            %42:ptr<function, i32, read_write> = access %indexable_2, %x_258
+            %43:i32 = load %42
+            %44:i32 = sub %x_256, %43
+            %45:f32 = convert %44
+            %46:f32 = abs %45
+            %47:f32 = sub 15.0f, %46
+            %48:f32 = div %47, 15.0f
+            store %p, %48
+            %49:f32 = load %p
+            %x_266:f32 = let %49
+            %51:f32 = load %p
+            %x_267:f32 = let %51
+            %53:f32 = load %p
+            %x_268:f32 = let %53
+            %55:vec4<f32> = construct %x_266, %x_267, %x_268, 1.0f
+            ret %55
           }
         }
-        %43:i32 = load_vector_element %pos, 1u
-        %44:i32 = add %43, 1i
-        store_vector_element %pos, 1u, %44
-        continue %b4
+        %56:i32 = load_vector_element %pos, 1u
+        %57:i32 = add %56, 1i
+        store_vector_element %pos, 1u, %57
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %pos_1:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %param:ptr<function, vec2<i32>, read_write> = var
-    %49:vec4<f32> = load %gl_FragCoord
-    %50:vec2<f32> = swizzle %49, xy
-    %51:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %52:vec2<f32> = load %51
-    %53:vec2<f32> = div %50, %52
-    store %pos_1, %53
-    %54:f32 = load_vector_element %pos_1, 0u
-    %55:f32 = mul %54, 256.0f
-    %56:i32 = convert %55
-    %57:f32 = load_vector_element %pos_1, 1u
-    %58:f32 = mul %57, 256.0f
-    %59:i32 = convert %58
-    %60:vec2<i32> = construct %56, %59
-    store %ipos, %60
-    %61:vec2<i32> = load %ipos
-    store %param, %61
-    %x_222:vec4<f32> = call %trace_vi2_, %param
+    %62:vec4<f32> = load %gl_FragCoord
+    %63:vec2<f32> = swizzle %62, xy
+    %64:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %65:vec2<f32> = load %64
+    %66:vec2<f32> = div %63, %65
+    store %pos_1, %66
+    %67:f32 = load_vector_element %pos_1, 0u
+    %68:f32 = mul %67, 256.0f
+    %69:i32 = call %tint_f32_to_i32, %68
+    %71:i32 = let %69
+    %72:f32 = load_vector_element %pos_1, 1u
+    %73:f32 = mul %72, 256.0f
+    %74:i32 = call %tint_f32_to_i32, %73
+    %75:vec2<i32> = construct %71, %74
+    store %ipos, %75
+    %76:vec2<i32> = load %ipos
+    store %param, %76
+    %77:vec4<f32> = call %trace_vi2_, %param
+    %x_222:vec4<f32> = let %77
     store %x_GLF_color, %x_222
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %65:void = call %main_1
-    %66:vec4<f32> = load %x_GLF_color
-    %67:main_out = construct %66
-    ret %67
+    %81:void = call %main_1
+    %82:vec4<f32> = load %x_GLF_color
+    %83:main_out = construct %82
+    ret %83
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %85:i32 = convert %value
+    %86:bool = gte %value, -2147483648.0f
+    %87:i32 = select -2147483648i, %85, %86
+    %88:bool = lte %value, 2147483520.0f
+    %89:i32 = select 2147483647i, %87, %88
+    ret %89
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.msl
index 32ddd86..3de98d2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-pillars-volatile-nontemporal-store/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,129 +8,164 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> -> %b2 {
-  %b2 = block {
+%trace_vi2_ = func(%pos:ptr<function, vec2<i32>, read_write>):vec4<f32> {
+  $B2: {
     %indexable:ptr<function, array<i32, 256>, read_write> = var
     %indexable_1:ptr<function, array<i32, 256>, read_write> = var
     %p:ptr<function, f32, read_write> = var
     %indexable_2:ptr<function, array<i32, 256>, read_write> = var
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_251:ptr<function, bool, read_write> = var
         %x_252_phi:ptr<function, bool, read_write> = var
-        %x_229:i32 = load_vector_element %pos, 1u
-        %13:bool = neq %x_229, 256i
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %12:i32 = load_vector_element %pos, 1u
+        %x_229:i32 = let %12
+        %14:bool = neq %x_229, 256i
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_233:i32 = load_vector_element %pos, 0u
-        %x_235:i32 = load_vector_element %pos, 1u
+        %15:i32 = load_vector_element %pos, 0u
+        %x_233:i32 = let %15
+        %17:i32 = load_vector_element %pos, 1u
+        %x_235:i32 = let %17
         store %indexable, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-        %16:ptr<function, i32, read_write> = access %indexable, %x_235
-        %x_237:i32 = load %16
-        %x_238:array<i32, 256> = load %indexable
+        %19:ptr<function, i32, read_write> = access %indexable, %x_235
+        %20:i32 = load %19
+        %x_237:i32 = let %20
+        %22:array<i32, 256> = load %indexable
+        %x_238:array<i32, 256> = let %22
         store %indexable, array<i32, 256>(0i)
-        %x_239:i32 = load_vector_element %pos, 1u
+        %24:i32 = load_vector_element %pos, 1u
+        %x_239:i32 = let %24
         store_vector_element %pos, 1u, 0i
         store_vector_element %pos, 1u, %x_239
         store %indexable, %x_238
-        %20:i32 = add %x_237, 15i
-        %x_241:bool = lt %x_233, %20
+        %26:i32 = add %x_237, 15i
+        %27:bool = lt %x_233, %26
+        %x_241:bool = let %27
         store %x_252_phi, %x_241
-        if %x_241 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_245:i32 = load_vector_element %pos, 0u
-            %x_247:i32 = load_vector_element %pos, 1u
+        if %x_241 [t: $B7] {  # if_2
+          $B7: {  # true
+            %29:i32 = load_vector_element %pos, 0u
+            %x_245:i32 = let %29
+            %31:i32 = load_vector_element %pos, 1u
+            %x_247:i32 = let %31
             store %indexable_1, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %24:ptr<function, i32, read_write> = access %indexable_1, %x_247
-            %x_249:i32 = load %24
-            %26:i32 = sub %x_249, 15i
-            %27:bool = gt %x_245, %26
-            store %x_251, %27
-            %28:bool = load %x_251
-            store %x_252_phi, %28
+            %33:ptr<function, i32, read_write> = access %indexable_1, %x_247
+            %34:i32 = load %33
+            %x_249:i32 = let %34
+            %36:i32 = sub %x_249, 15i
+            %37:bool = gt %x_245, %36
+            store %x_251, %37
+            %38:bool = load %x_251
+            store %x_252_phi, %38
             exit_if  # if_2
           }
         }
-        %x_252:bool = load %x_252_phi
-        if %x_252 [t: %b8] {  # if_3
-          %b8 = block {  # true
-            %x_256:i32 = load_vector_element %pos, 0u
-            %x_258:i32 = load_vector_element %pos, 1u
+        %39:bool = load %x_252_phi
+        %x_252:bool = let %39
+        if %x_252 [t: $B8] {  # if_3
+          $B8: {  # true
+            %41:i32 = load_vector_element %pos, 0u
+            %x_256:i32 = let %41
+            %43:i32 = load_vector_element %pos, 1u
+            %x_258:i32 = let %43
             store %indexable_2, array<i32, 256>(115i, 133i, 150i, 164i, 176i, 184i, 190i, 192i, 191i, 187i, 181i, 172i, 163i, 153i, 143i, 134i, 126i, 120i, 116i, 114i, 114i, 117i, 121i, 127i, 134i, 141i, 148i, 154i, 159i, 162i, 163i, 161i, 157i, 151i, 143i, 134i, 124i, 113i, 103i, 94i, 87i, 82i, 79i, 80i, 84i, 91i, 101i, 114i, 130i, 146i, 164i, 182i, 199i, 215i, 229i, 240i, 249i, 254i, 256i, 254i, 250i, 243i, 233i, 223i, 212i, 200i, 190i, 180i, 172i, 166i, 163i, 161i, 162i, 164i, 169i, 174i, 179i, 185i, 190i, 193i, 195i, 195i, 192i, 188i, 180i, 171i, 161i, 149i, 137i, 125i, 114i, 105i, 97i, 93i, 91i, 93i, 98i, 106i, 117i, 130i, 145i, 161i, 177i, 193i, 208i, 221i, 231i, 239i, 243i, 244i, 242i, 236i, 228i, 218i, 207i, 194i, 181i, 169i, 158i, 148i, 141i, 135i, 132i, 131i, 132i, 135i, 138i, 143i, 147i, 151i, 154i, 155i, 155i, 152i, 146i, 139i, 129i, 118i, 106i, 93i, 80i, 68i, 58i, 49i, 43i, 40i, 41i, 44i, 51i, 61i, 73i, 87i, 103i, 119i, 134i, 149i, 162i, 173i, 181i, 186i, 188i, 186i, 181i, 174i, 164i, 153i, 141i, 128i, 116i, 104i, 94i, 86i, 81i, 77i, 76i, 77i, 80i, 84i, 89i, 94i, 98i, 102i, 104i, 104i, 102i, 98i, 92i, 83i, 73i, 62i, 50i, 38i, 26i, 16i, 8i, 2i, 0i, 0i, 4i, 11i, 21i, 33i, 48i, 64i, 81i, 98i, 114i, 129i, 141i, 151i, 158i, 161i, 161i, 158i, 152i, 144i, 134i, 123i, 112i, 100i, 90i, 81i, 73i, 68i, 65i, 65i, 67i, 70i, 75i, 81i, 87i, 92i, 97i, 101i, 103i, 102i, 100i, 95i, 88i, 79i, 69i, 58i, 47i, 36i, 26i, 18i, 13i, 11i, 11i, 15i, 22i, 32i, 45i, 60i, 77i, 94i)
-            %32:ptr<function, i32, read_write> = access %indexable_2, %x_258
-            %x_260:i32 = load %32
-            %34:i32 = sub %x_256, %x_260
-            %35:f32 = convert %34
-            %36:f32 = abs %35
-            %37:f32 = sub 15.0f, %36
-            %38:f32 = div %37, 15.0f
-            store %p, %38
-            %x_266:f32 = load %p
-            %x_267:f32 = load %p
-            %x_268:f32 = load %p
-            %42:vec4<f32> = construct %x_266, %x_267, %x_268, 1.0f
-            ret %42
+            %45:ptr<function, i32, read_write> = access %indexable_2, %x_258
+            %46:i32 = load %45
+            %x_260:i32 = let %46
+            %48:i32 = sub %x_256, %x_260
+            %49:f32 = convert %48
+            %50:f32 = abs %49
+            %51:f32 = sub 15.0f, %50
+            %52:f32 = div %51, 15.0f
+            store %p, %52
+            %53:f32 = load %p
+            %x_266:f32 = let %53
+            %55:f32 = load %p
+            %x_267:f32 = let %55
+            %57:f32 = load %p
+            %x_268:f32 = let %57
+            %59:vec4<f32> = construct %x_266, %x_267, %x_268, 1.0f
+            ret %59
           }
         }
-        %x_271:i32 = load_vector_element %pos, 1u
-        %44:i32 = add %x_271, 1i
-        store_vector_element %pos, 1u, %44
-        continue %b4
+        %60:i32 = load_vector_element %pos, 1u
+        %x_271:i32 = let %60
+        %62:i32 = add %x_271, 1i
+        store_vector_element %pos, 1u, %62
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %pos_1:ptr<function, vec2<f32>, read_write> = var
     %ipos:ptr<function, vec2<i32>, read_write> = var
     %param:ptr<function, vec2<i32>, read_write> = var
-    %x_207:vec4<f32> = load %gl_FragCoord
-    %50:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %x_210:vec2<f32> = load %50
-    %52:f32 = access %x_207, 0u
-    %53:f32 = access %x_207, 1u
-    %54:vec2<f32> = construct %52, %53
-    %55:vec2<f32> = div %54, %x_210
-    store %pos_1, %55
-    %x_213:f32 = load_vector_element %pos_1, 0u
-    %x_217:f32 = load_vector_element %pos_1, 1u
-    %58:f32 = mul %x_213, 256.0f
-    %59:i32 = convert %58
-    %60:f32 = mul %x_217, 256.0f
-    %61:i32 = convert %60
-    %62:vec2<i32> = construct %59, %61
-    store %ipos, %62
-    %x_221:vec2<i32> = load %ipos
+    %67:vec4<f32> = load %gl_FragCoord
+    %x_207:vec4<f32> = let %67
+    %69:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %70:vec2<f32> = load %69
+    %x_210:vec2<f32> = let %70
+    %72:f32 = access %x_207, 0u
+    %73:f32 = access %x_207, 1u
+    %74:vec2<f32> = construct %72, %73
+    %75:vec2<f32> = div %74, %x_210
+    store %pos_1, %75
+    %76:f32 = load_vector_element %pos_1, 0u
+    %x_213:f32 = let %76
+    %78:f32 = load_vector_element %pos_1, 1u
+    %x_217:f32 = let %78
+    %80:f32 = mul %x_213, 256.0f
+    %81:i32 = call %tint_f32_to_i32, %80
+    %83:i32 = let %81
+    %84:f32 = mul %x_217, 256.0f
+    %85:i32 = call %tint_f32_to_i32, %84
+    %86:vec2<i32> = construct %83, %85
+    store %ipos, %86
+    %87:vec2<i32> = load %ipos
+    %x_221:vec2<i32> = let %87
     store %param, %x_221
-    %x_222:vec4<f32> = call %trace_vi2_, %param
+    %89:vec4<f32> = call %trace_vi2_, %param
+    %x_222:vec4<f32> = let %89
     store %x_GLF_color, %x_222
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %67:void = call %main_1
-    %68:vec4<f32> = load %x_GLF_color
-    %69:main_out = construct %68
-    ret %69
+    %93:void = call %main_1
+    %94:vec4<f32> = load %x_GLF_color
+    %95:main_out = construct %94
+    ret %95
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B11: {
+    %97:i32 = convert %value
+    %98:bool = gte %value, -2147483648.0f
+    %99:i32 = select -2147483648i, %97, %98
+    %100:bool = lte %value, 2147483520.0f
+    %101:i32 = select 2147483647i, %99, %100
+    ret %101
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.msl
index cd18bd9..152e0da 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,35 +12,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %9:i32 = load %i
     %10:ptr<private, i32, read_write> = access %obj, 0u, %9
     %11:i32 = load %10
     store %temp, %11
-    %x_228:i32 = load %i
-    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_228
-    %14:i32 = load %j
-    %15:ptr<private, i32, read_write> = access %obj, 0u, %14
-    %16:i32 = load %15
-    store %13, %16
-    %x_233:i32 = load %j
-    %18:ptr<private, i32, read_write> = access %obj, 0u, %x_233
-    %19:i32 = load %temp
-    store %18, %19
+    %12:i32 = load %i
+    %x_228:i32 = let %12
+    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_228
+    %15:i32 = load %j
+    %16:ptr<private, i32, read_write> = access %obj, 0u, %15
+    %17:i32 = load %16
+    store %14, %17
+    %18:i32 = load %j
+    %x_233:i32 = let %18
+    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_233
+    %21:i32 = load %temp
+    store %20, %21
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -48,70 +50,71 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %30:i32 = load %h
-    %31:ptr<private, i32, read_write> = access %obj, 0u, %30
-    %32:i32 = load %31
-    store %pivot, %32
-    %33:i32 = load %l
-    %34:i32 = sub %33, 1i
-    store %i_1, %34
+    %32:i32 = load %h
+    %33:ptr<private, i32, read_write> = access %obj, 0u, %32
+    %34:i32 = load %33
+    store %pivot, %34
     %35:i32 = load %l
-    store %j_1, %35
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %36:i32 = load %j_1
-        %37:i32 = load %h
-        %38:i32 = sub %37, 1i
-        %39:bool = lte %36, %38
-        if %39 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %36:i32 = sub %35, 1i
+    store %i_1, %36
+    %37:i32 = load %l
+    store %j_1, %37
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %38:i32 = load %j_1
+        %39:i32 = load %h
+        %40:i32 = sub %39, 1i
+        %41:bool = lte %38, %40
+        if %41 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %40:i32 = load %j_1
-        %41:ptr<private, i32, read_write> = access %obj, 0u, %40
-        %42:i32 = load %41
-        %43:i32 = load %pivot
-        %44:bool = lte %42, %43
-        if %44 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %45:i32 = load %i_1
-            %46:i32 = add %45, 1i
-            store %i_1, %46
+        %42:i32 = load %j_1
+        %43:ptr<private, i32, read_write> = access %obj, 0u, %42
+        %44:i32 = load %43
+        %45:i32 = load %pivot
+        %46:bool = lte %44, %45
+        if %46 [t: $B8] {  # if_2
+          $B8: {  # true
             %47:i32 = load %i_1
-            store %param, %47
-            %48:i32 = load %j_1
-            store %param_1, %48
-            %49:void = call %swap_i1_i1_, %param, %param_1
+            %48:i32 = add %47, 1i
+            store %i_1, %48
+            %49:i32 = load %i_1
+            store %param, %49
+            %50:i32 = load %j_1
+            store %param_1, %50
+            %51:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %50:i32 = load %j_1
-        %51:i32 = add %50, 1i
-        store %j_1, %51
-        next_iteration %b4
+      $B5: {  # continuing
+        %52:i32 = load %j_1
+        %53:i32 = add %52, 1i
+        store %j_1, %53
+        next_iteration  # -> $B4
       }
     }
-    %52:i32 = load %i_1
-    %53:i32 = add %52, 1i
-    store %i_1, %53
     %54:i32 = load %i_1
-    store %param_2, %54
-    %55:i32 = load %h
-    store %param_3, %55
-    %56:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_271:i32 = load %i_1
+    %55:i32 = add %54, 1i
+    store %i_1, %55
+    %56:i32 = load %i_1
+    store %param_2, %56
+    %57:i32 = load %h
+    store %param_3, %57
+    %58:void = call %swap_i1_i1_, %param_2, %param_3
+    %59:i32 = load %i_1
+    %x_271:i32 = let %59
     ret %x_271
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -122,282 +125,304 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %66:i32 = load %top
-    %x_274:i32 = add %66, 1i
+    %69:i32 = load %top
+    %70:i32 = add %69, 1i
+    %x_274:i32 = let %70
     store %top, %x_274
-    %68:ptr<function, i32, read_write> = access %stack, %x_274
-    %69:i32 = load %l_1
-    store %68, %69
-    %70:i32 = load %top
-    %x_278:i32 = add %70, 1i
-    store %top, %x_278
-    %72:ptr<function, i32, read_write> = access %stack, %x_278
-    %73:i32 = load %h_1
+    %72:ptr<function, i32, read_write> = access %stack, %x_274
+    %73:i32 = load %l_1
     store %72, %73
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %74:i32 = load %top
-        %75:bool = gte %74, 0i
-        if %75 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %74:i32 = load %top
+    %75:i32 = add %74, 1i
+    %x_278:i32 = let %75
+    store %top, %x_278
+    %77:ptr<function, i32, read_write> = access %stack, %x_278
+    %78:i32 = load %h_1
+    store %77, %78
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %79:i32 = load %top
+        %80:bool = gte %79, 0i
+        if %80 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_288:i32 = load %top
-        %77:i32 = load %top
-        %78:i32 = sub %77, 1i
-        store %top, %78
-        %79:ptr<function, i32, read_write> = access %stack, %x_288
-        %80:i32 = load %79
-        store %h_1, %80
-        %x_292:i32 = load %top
-        %82:i32 = load %top
-        %83:i32 = sub %82, 1i
-        store %top, %83
-        %84:ptr<function, i32, read_write> = access %stack, %x_292
-        %85:i32 = load %84
-        store %l_1, %85
-        %86:i32 = load %l_1
-        store %param_4, %86
-        %87:i32 = load %h_1
-        store %param_5, %87
-        %x_298:i32 = call %performPartition_i1_i1_, %param_4, %param_5
-        store %p, %x_298
-        %89:i32 = load %p
+        %81:i32 = load %top
+        %x_288:i32 = let %81
+        %83:i32 = load %top
+        %84:i32 = sub %83, 1i
+        store %top, %84
+        %85:ptr<function, i32, read_write> = access %stack, %x_288
+        %86:i32 = load %85
+        store %h_1, %86
+        %87:i32 = load %top
+        %x_292:i32 = let %87
+        %89:i32 = load %top
         %90:i32 = sub %89, 1i
-        %91:i32 = load %l_1
-        %92:bool = gt %90, %91
-        if %92 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %93:i32 = load %top
-            %x_306:i32 = add %93, 1i
+        store %top, %90
+        %91:ptr<function, i32, read_write> = access %stack, %x_292
+        %92:i32 = load %91
+        store %l_1, %92
+        %93:i32 = load %l_1
+        store %param_4, %93
+        %94:i32 = load %h_1
+        store %param_5, %94
+        %95:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_298:i32 = let %95
+        store %p, %x_298
+        %97:i32 = load %p
+        %98:i32 = sub %97, 1i
+        %99:i32 = load %l_1
+        %100:bool = gt %98, %99
+        if %100 [t: $B14] {  # if_4
+          $B14: {  # true
+            %101:i32 = load %top
+            %102:i32 = add %101, 1i
+            %x_306:i32 = let %102
             store %top, %x_306
-            %95:ptr<function, i32, read_write> = access %stack, %x_306
-            %96:i32 = load %l_1
-            store %95, %96
-            %97:i32 = load %top
-            %x_310:i32 = add %97, 1i
+            %104:ptr<function, i32, read_write> = access %stack, %x_306
+            %105:i32 = load %l_1
+            store %104, %105
+            %106:i32 = load %top
+            %107:i32 = add %106, 1i
+            %x_310:i32 = let %107
             store %top, %x_310
-            %99:ptr<function, i32, read_write> = access %stack, %x_310
-            %100:i32 = load %p
-            %101:i32 = sub %100, 1i
-            store %99, %101
+            %109:ptr<function, i32, read_write> = access %stack, %x_310
+            %110:i32 = load %p
+            %111:i32 = sub %110, 1i
+            store %109, %111
             exit_if  # if_4
           }
         }
-        %102:i32 = load %p
-        %103:i32 = add %102, 1i
-        %104:i32 = load %h_1
-        %105:bool = lt %103, %104
-        if %105 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %106:i32 = load %top
-            %x_321:i32 = add %106, 1i
+        %112:i32 = load %p
+        %113:i32 = add %112, 1i
+        %114:i32 = load %h_1
+        %115:bool = lt %113, %114
+        if %115 [t: $B15] {  # if_5
+          $B15: {  # true
+            %116:i32 = load %top
+            %117:i32 = add %116, 1i
+            %x_321:i32 = let %117
             store %top, %x_321
-            %108:ptr<function, i32, read_write> = access %stack, %x_321
-            %109:i32 = load %p
-            %110:i32 = add %109, 1i
-            store %108, %110
-            %111:i32 = load %top
-            %x_326:i32 = add %111, 1i
+            %119:ptr<function, i32, read_write> = access %stack, %x_321
+            %120:i32 = load %p
+            %121:i32 = add %120, 1i
+            store %119, %121
+            %122:i32 = load %top
+            %123:i32 = add %122, 1i
+            %x_326:i32 = let %123
             store %top, %x_326
-            %113:ptr<function, i32, read_write> = access %stack, %x_326
-            %114:i32 = load %h_1
-            store %113, %114
+            %125:ptr<function, i32, read_write> = access %stack, %x_326
+            %126:i32 = load %h_1
+            store %125, %126
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %119:i32 = load %i_2
-        %120:bool = lt %119, 10i
-        if %120 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %131:i32 = load %i_2
+        %132:bool = lt %131, 10i
+        if %132 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_88:i32 = load %i_2
-        %122:ptr<private, i32, read_write> = access %obj, 0u, %x_88
-        %123:i32 = load %i_2
-        %124:i32 = sub 10i, %123
-        store %122, %124
-        %x_92:i32 = load %i_2
-        %126:ptr<private, i32, read_write> = access %obj, 0u, %x_92
-        %127:i32 = load %i_2
-        %128:ptr<private, i32, read_write> = access %obj, 0u, %127
-        %129:i32 = load %128
-        %130:i32 = load %i_2
-        %131:ptr<private, i32, read_write> = access %obj, 0u, %130
-        %132:i32 = load %131
-        %133:i32 = mul %129, %132
-        store %126, %133
-        continue %b18
+        %133:i32 = load %i_2
+        %x_88:i32 = let %133
+        %135:ptr<private, i32, read_write> = access %obj, 0u, %x_88
+        %136:i32 = load %i_2
+        %137:i32 = sub 10i, %136
+        store %135, %137
+        %138:i32 = load %i_2
+        %x_92:i32 = let %138
+        %140:ptr<private, i32, read_write> = access %obj, 0u, %x_92
+        %141:i32 = load %i_2
+        %142:ptr<private, i32, read_write> = access %obj, 0u, %141
+        %143:i32 = load %142
+        %144:i32 = load %i_2
+        %145:ptr<private, i32, read_write> = access %obj, 0u, %144
+        %146:i32 = load %145
+        %147:i32 = mul %143, %146
+        store %140, %147
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %134:i32 = load %i_2
-        %135:i32 = add %134, 1i
-        store %i_2, %135
-        next_iteration %b17
+      $B18: {  # continuing
+        %148:i32 = load %i_2
+        %149:i32 = add %148, 1i
+        store %i_2, %149
+        next_iteration  # -> $B17
       }
     }
-    %136:void = call %quicksort_
-    %137:vec4<f32> = load %gl_FragCoord
-    %138:vec2<f32> = swizzle %137, xy
-    %139:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
-    %140:vec2<f32> = load %139
-    %141:vec2<f32> = div %138, %140
-    store %uv, %141
+    %150:void = call %quicksort_
+    %151:vec4<f32> = load %gl_FragCoord
+    %152:vec2<f32> = swizzle %151, xy
+    %153:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
+    %154:vec2<f32> = load %153
+    %155:vec2<f32> = div %152, %154
+    store %uv, %155
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %142:f32 = load_vector_element %color, 0u
-    %143:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %144:i32 = load %143
-    %145:f32 = convert %144
-    %146:f32 = add %142, %145
-    store_vector_element %color, 0u, %146
-    %147:f32 = load_vector_element %uv, 0u
-    %148:bool = gt %147, 0.25f
-    if %148 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %149:f32 = load_vector_element %color, 0u
-        %150:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %151:i32 = load %150
-        %152:f32 = convert %151
-        %153:f32 = add %149, %152
-        store_vector_element %color, 0u, %153
+    %156:f32 = load_vector_element %color, 0u
+    %157:f32 = let %156
+    %158:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %159:i32 = load %158
+    %160:f32 = convert %159
+    %161:f32 = add %157, %160
+    store_vector_element %color, 0u, %161
+    %162:f32 = load_vector_element %uv, 0u
+    %163:bool = gt %162, 0.25f
+    if %163 [t: $B21] {  # if_7
+      $B21: {  # true
+        %164:f32 = load_vector_element %color, 0u
+        %165:f32 = let %164
+        %166:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %167:i32 = load %166
+        %168:f32 = convert %167
+        %169:f32 = add %165, %168
+        store_vector_element %color, 0u, %169
         exit_if  # if_7
       }
     }
-    %154:f32 = load_vector_element %uv, 0u
-    %155:bool = gt %154, 0.5f
-    if %155 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %156:f32 = load_vector_element %color, 1u
-        %157:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %158:i32 = load %157
-        %159:f32 = convert %158
-        %160:f32 = add %156, %159
-        store_vector_element %color, 1u, %160
+    %170:f32 = load_vector_element %uv, 0u
+    %171:bool = gt %170, 0.5f
+    if %171 [t: $B22] {  # if_8
+      $B22: {  # true
+        %172:f32 = load_vector_element %color, 1u
+        %173:f32 = let %172
+        %174:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %175:i32 = load %174
+        %176:f32 = convert %175
+        %177:f32 = add %173, %176
+        store_vector_element %color, 1u, %177
         exit_if  # if_8
       }
     }
-    %161:f32 = load_vector_element %uv, 0u
-    %162:bool = gt %161, 0.75f
-    if %162 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %163:f32 = load_vector_element %color, 2u
-        %164:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %165:i32 = load %164
-        %166:f32 = convert %165
-        %167:f32 = add %163, %166
-        store_vector_element %color, 2u, %167
+    %178:f32 = load_vector_element %uv, 0u
+    %179:bool = gt %178, 0.75f
+    if %179 [t: $B23] {  # if_9
+      $B23: {  # true
+        %180:f32 = load_vector_element %color, 2u
+        %181:f32 = let %180
+        %182:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %183:i32 = load %182
+        %184:f32 = convert %183
+        %185:f32 = add %181, %184
+        store_vector_element %color, 2u, %185
         exit_if  # if_9
       }
     }
-    %168:f32 = load_vector_element %color, 1u
-    %169:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %170:i32 = load %169
-    %171:f32 = convert %170
-    %172:f32 = add %168, %171
-    store_vector_element %color, 1u, %172
-    %173:f32 = load_vector_element %uv, 1u
-    %174:bool = gt %173, 0.25f
-    if %174 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %175:f32 = load_vector_element %color, 0u
-        %176:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %177:i32 = load %176
-        %178:f32 = convert %177
-        %179:f32 = add %175, %178
-        store_vector_element %color, 0u, %179
+    %186:f32 = load_vector_element %color, 1u
+    %187:f32 = let %186
+    %188:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %189:i32 = load %188
+    %190:f32 = convert %189
+    %191:f32 = add %187, %190
+    store_vector_element %color, 1u, %191
+    %192:f32 = load_vector_element %uv, 1u
+    %193:bool = gt %192, 0.25f
+    if %193 [t: $B24] {  # if_10
+      $B24: {  # true
+        %194:f32 = load_vector_element %color, 0u
+        %195:f32 = let %194
+        %196:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %197:i32 = load %196
+        %198:f32 = convert %197
+        %199:f32 = add %195, %198
+        store_vector_element %color, 0u, %199
         exit_if  # if_10
       }
     }
-    %180:f32 = load_vector_element %uv, 1u
-    %181:bool = gt %180, 0.5f
-    if %181 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %182:f32 = load_vector_element %color, 1u
-        %183:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %184:i32 = load %183
-        %185:f32 = convert %184
-        %186:f32 = add %182, %185
-        store_vector_element %color, 1u, %186
+    %200:f32 = load_vector_element %uv, 1u
+    %201:bool = gt %200, 0.5f
+    if %201 [t: $B25] {  # if_11
+      $B25: {  # true
+        %202:f32 = load_vector_element %color, 1u
+        %203:f32 = let %202
+        %204:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %205:i32 = load %204
+        %206:f32 = convert %205
+        %207:f32 = add %203, %206
+        store_vector_element %color, 1u, %207
         exit_if  # if_11
       }
     }
-    %187:f32 = load_vector_element %uv, 1u
-    %188:bool = gt %187, 0.75f
-    if %188 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %189:f32 = load_vector_element %color, 2u
-        %190:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %191:i32 = load %190
-        %192:f32 = convert %191
-        %193:f32 = add %189, %192
-        store_vector_element %color, 2u, %193
+    %208:f32 = load_vector_element %uv, 1u
+    %209:bool = gt %208, 0.75f
+    if %209 [t: $B26] {  # if_12
+      $B26: {  # true
+        %210:f32 = load_vector_element %color, 2u
+        %211:f32 = let %210
+        %212:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %213:i32 = load %212
+        %214:f32 = convert %213
+        %215:f32 = add %211, %214
+        store_vector_element %color, 2u, %215
         exit_if  # if_12
       }
     }
-    %194:f32 = load_vector_element %color, 2u
-    %195:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %196:i32 = load %195
-    %197:f32 = convert %196
-    %198:f32 = add %194, %197
-    store_vector_element %color, 2u, %198
-    %199:f32 = load_vector_element %uv, 0u
-    %200:f32 = load_vector_element %uv, 1u
-    %201:f32 = sub %199, %200
-    %202:f32 = abs %201
-    %203:bool = lt %202, 0.25f
-    if %203 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %204:f32 = load_vector_element %color, 0u
-        %205:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %206:i32 = load %205
-        %207:f32 = convert %206
-        %208:f32 = add %204, %207
-        store_vector_element %color, 0u, %208
+    %216:f32 = load_vector_element %color, 2u
+    %217:f32 = let %216
+    %218:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %219:i32 = load %218
+    %220:f32 = convert %219
+    %221:f32 = add %217, %220
+    store_vector_element %color, 2u, %221
+    %222:f32 = load_vector_element %uv, 0u
+    %223:f32 = load_vector_element %uv, 1u
+    %224:f32 = sub %222, %223
+    %225:f32 = abs %224
+    %226:bool = lt %225, 0.25f
+    if %226 [t: $B27] {  # if_13
+      $B27: {  # true
+        %227:f32 = load_vector_element %color, 0u
+        %228:f32 = let %227
+        %229:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %230:i32 = load %229
+        %231:f32 = convert %230
+        %232:f32 = add %228, %231
+        store_vector_element %color, 0u, %232
         exit_if  # if_13
       }
     }
-    %209:vec3<f32> = load %color
-    %x_219:vec3<f32> = normalize %209
-    %211:f32 = access %x_219, 0u
-    %212:f32 = access %x_219, 1u
-    %213:f32 = access %x_219, 2u
-    %214:vec4<f32> = construct %211, %212, %213, 1.0f
-    store %x_GLF_color, %214
+    %233:vec3<f32> = load %color
+    %234:vec3<f32> = normalize %233
+    %x_219:vec3<f32> = let %234
+    %236:f32 = access %x_219, 0u
+    %237:f32 = access %x_219, 1u
+    %238:f32 = access %x_219, 2u
+    %239:vec4<f32> = construct %236, %237, %238, 1.0f
+    store %x_GLF_color, %239
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %217:void = call %main_1
-    %218:vec4<f32> = load %x_GLF_color
-    %219:main_out = construct %218
-    ret %219
+    %242:void = call %main_1
+    %243:vec4<f32> = load %x_GLF_color
+    %244:main_out = construct %243
+    ret %244
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.msl
index 4447e29..09a008a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-dontinline/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,35 +12,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_225:i32 = load %i
-    %10:ptr<private, i32, read_write> = access %obj, 0u, %x_225
-    %x_227:i32 = load %10
+    %9:i32 = load %i
+    %x_225:i32 = let %9
+    %11:ptr<private, i32, read_write> = access %obj, 0u, %x_225
+    %12:i32 = load %11
+    %x_227:i32 = let %12
     store %temp, %x_227
-    %x_228:i32 = load %i
-    %x_229:i32 = load %j
-    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_229
-    %x_231:i32 = load %14
-    %16:ptr<private, i32, read_write> = access %obj, 0u, %x_228
-    store %16, %x_231
-    %x_233:i32 = load %j
-    %x_234:i32 = load %temp
-    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_233
-    store %19, %x_234
+    %14:i32 = load %i
+    %x_228:i32 = let %14
+    %16:i32 = load %j
+    %x_229:i32 = let %16
+    %18:ptr<private, i32, read_write> = access %obj, 0u, %x_229
+    %19:i32 = load %18
+    %x_231:i32 = let %19
+    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_228
+    store %21, %x_231
+    %22:i32 = load %j
+    %x_233:i32 = let %22
+    %24:i32 = load %temp
+    %x_234:i32 = let %24
+    %26:ptr<private, i32, read_write> = access %obj, 0u, %x_233
+    store %26, %x_234
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -48,70 +55,87 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_237:i32 = load %h
-    %31:ptr<private, i32, read_write> = access %obj, 0u, %x_237
-    %x_239:i32 = load %31
+    %37:i32 = load %h
+    %x_237:i32 = let %37
+    %39:ptr<private, i32, read_write> = access %obj, 0u, %x_237
+    %40:i32 = load %39
+    %x_239:i32 = let %40
     store %pivot, %x_239
-    %x_240:i32 = load %l
-    %34:i32 = sub %x_240, 1i
-    store %i_1, %34
-    %x_242:i32 = load %l
+    %42:i32 = load %l
+    %x_240:i32 = let %42
+    %44:i32 = sub %x_240, 1i
+    store %i_1, %44
+    %45:i32 = load %l
+    %x_242:i32 = let %45
     store %j_1, %x_242
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_247:i32 = load %j_1
-        %x_248:i32 = load %h
-        %38:i32 = sub %x_248, 1i
-        %39:bool = lte %x_247, %38
-        if %39 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %47:i32 = load %j_1
+        %x_247:i32 = let %47
+        %49:i32 = load %h
+        %x_248:i32 = let %49
+        %51:i32 = sub %x_248, 1i
+        %52:bool = lte %x_247, %51
+        if %52 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_252:i32 = load %j_1
-        %41:ptr<private, i32, read_write> = access %obj, 0u, %x_252
-        %x_254:i32 = load %41
-        %x_255:i32 = load %pivot
-        %44:bool = lte %x_254, %x_255
-        if %44 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_259:i32 = load %i_1
-            %46:i32 = add %x_259, 1i
-            store %i_1, %46
-            %x_261:i32 = load %i_1
+        %53:i32 = load %j_1
+        %x_252:i32 = let %53
+        %55:ptr<private, i32, read_write> = access %obj, 0u, %x_252
+        %56:i32 = load %55
+        %x_254:i32 = let %56
+        %58:i32 = load %pivot
+        %x_255:i32 = let %58
+        %60:bool = lte %x_254, %x_255
+        if %60 [t: $B8] {  # if_2
+          $B8: {  # true
+            %61:i32 = load %i_1
+            %x_259:i32 = let %61
+            %63:i32 = add %x_259, 1i
+            store %i_1, %63
+            %64:i32 = load %i_1
+            %x_261:i32 = let %64
             store %param, %x_261
-            %x_262:i32 = load %j_1
+            %66:i32 = load %j_1
+            %x_262:i32 = let %66
             store %param_1, %x_262
-            %49:void = call %swap_i1_i1_, %param, %param_1
+            %68:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_264:i32 = load %j_1
-        %51:i32 = add %x_264, 1i
-        store %j_1, %51
-        next_iteration %b4
+      $B5: {  # continuing
+        %69:i32 = load %j_1
+        %x_264:i32 = let %69
+        %71:i32 = add %x_264, 1i
+        store %j_1, %71
+        next_iteration  # -> $B4
       }
     }
-    %x_266:i32 = load %i_1
-    %53:i32 = add %x_266, 1i
-    store %i_1, %53
-    %x_268:i32 = load %i_1
+    %72:i32 = load %i_1
+    %x_266:i32 = let %72
+    %74:i32 = add %x_266, 1i
+    store %i_1, %74
+    %75:i32 = load %i_1
+    %x_268:i32 = let %75
     store %param_2, %x_268
-    %x_269:i32 = load %h
+    %77:i32 = load %h
+    %x_269:i32 = let %77
     store %param_3, %x_269
-    %56:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_271:i32 = load %i_1
+    %79:void = call %swap_i1_i1_, %param_2, %param_3
+    %80:i32 = load %i_1
+    %x_271:i32 = let %80
     ret %x_271
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -122,282 +146,353 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_273:i32 = load %top
-    %x_274:i32 = add %x_273, 1i
+    %90:i32 = load %top
+    %x_273:i32 = let %90
+    %92:i32 = add %x_273, 1i
+    %x_274:i32 = let %92
     store %top, %x_274
-    %x_275:i32 = load %l_1
-    %69:ptr<function, i32, read_write> = access %stack, %x_274
-    store %69, %x_275
-    %x_277:i32 = load %top
-    %x_278:i32 = add %x_277, 1i
+    %94:i32 = load %l_1
+    %x_275:i32 = let %94
+    %96:ptr<function, i32, read_write> = access %stack, %x_274
+    store %96, %x_275
+    %97:i32 = load %top
+    %x_277:i32 = let %97
+    %99:i32 = add %x_277, 1i
+    %x_278:i32 = let %99
     store %top, %x_278
-    %x_279:i32 = load %h_1
-    %73:ptr<function, i32, read_write> = access %stack, %x_278
-    store %73, %x_279
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_285:i32 = load %top
-        %75:bool = gte %x_285, 0i
-        if %75 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %101:i32 = load %h_1
+    %x_279:i32 = let %101
+    %103:ptr<function, i32, read_write> = access %stack, %x_278
+    store %103, %x_279
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %104:i32 = load %top
+        %x_285:i32 = let %104
+        %106:bool = gte %x_285, 0i
+        if %106 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_288:i32 = load %top
-        %77:i32 = sub %x_288, 1i
-        store %top, %77
-        %78:ptr<function, i32, read_write> = access %stack, %x_288
-        %x_291:i32 = load %78
+        %107:i32 = load %top
+        %x_288:i32 = let %107
+        %109:i32 = sub %x_288, 1i
+        store %top, %109
+        %110:ptr<function, i32, read_write> = access %stack, %x_288
+        %111:i32 = load %110
+        %x_291:i32 = let %111
         store %h_1, %x_291
-        %x_292:i32 = load %top
-        %81:i32 = sub %x_292, 1i
-        store %top, %81
-        %82:ptr<function, i32, read_write> = access %stack, %x_292
-        %x_295:i32 = load %82
+        %113:i32 = load %top
+        %x_292:i32 = let %113
+        %115:i32 = sub %x_292, 1i
+        store %top, %115
+        %116:ptr<function, i32, read_write> = access %stack, %x_292
+        %117:i32 = load %116
+        %x_295:i32 = let %117
         store %l_1, %x_295
-        %x_296:i32 = load %l_1
+        %119:i32 = load %l_1
+        %x_296:i32 = let %119
         store %param_4, %x_296
-        %x_297:i32 = load %h_1
+        %121:i32 = load %h_1
+        %x_297:i32 = let %121
         store %param_5, %x_297
-        %x_298:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %123:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_298:i32 = let %123
         store %p, %x_298
-        %x_299:i32 = load %p
-        %x_301:i32 = load %l_1
-        %89:i32 = sub %x_299, 1i
-        %90:bool = gt %89, %x_301
-        if %90 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %x_305:i32 = load %top
-            %x_306:i32 = add %x_305, 1i
+        %125:i32 = load %p
+        %x_299:i32 = let %125
+        %127:i32 = load %l_1
+        %x_301:i32 = let %127
+        %129:i32 = sub %x_299, 1i
+        %130:bool = gt %129, %x_301
+        if %130 [t: $B14] {  # if_4
+          $B14: {  # true
+            %131:i32 = load %top
+            %x_305:i32 = let %131
+            %133:i32 = add %x_305, 1i
+            %x_306:i32 = let %133
             store %top, %x_306
-            %x_307:i32 = load %l_1
-            %94:ptr<function, i32, read_write> = access %stack, %x_306
-            store %94, %x_307
-            %x_309:i32 = load %top
-            %x_310:i32 = add %x_309, 1i
+            %135:i32 = load %l_1
+            %x_307:i32 = let %135
+            %137:ptr<function, i32, read_write> = access %stack, %x_306
+            store %137, %x_307
+            %138:i32 = load %top
+            %x_309:i32 = let %138
+            %140:i32 = add %x_309, 1i
+            %x_310:i32 = let %140
             store %top, %x_310
-            %x_311:i32 = load %p
-            %98:ptr<function, i32, read_write> = access %stack, %x_310
-            %99:i32 = sub %x_311, 1i
-            store %98, %99
+            %142:i32 = load %p
+            %x_311:i32 = let %142
+            %144:ptr<function, i32, read_write> = access %stack, %x_310
+            %145:i32 = sub %x_311, 1i
+            store %144, %145
             exit_if  # if_4
           }
         }
-        %x_314:i32 = load %p
-        %x_316:i32 = load %h_1
-        %102:i32 = add %x_314, 1i
-        %103:bool = lt %102, %x_316
-        if %103 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %x_320:i32 = load %top
-            %x_321:i32 = add %x_320, 1i
+        %146:i32 = load %p
+        %x_314:i32 = let %146
+        %148:i32 = load %h_1
+        %x_316:i32 = let %148
+        %150:i32 = add %x_314, 1i
+        %151:bool = lt %150, %x_316
+        if %151 [t: $B15] {  # if_5
+          $B15: {  # true
+            %152:i32 = load %top
+            %x_320:i32 = let %152
+            %154:i32 = add %x_320, 1i
+            %x_321:i32 = let %154
             store %top, %x_321
-            %x_322:i32 = load %p
-            %107:ptr<function, i32, read_write> = access %stack, %x_321
-            %108:i32 = add %x_322, 1i
-            store %107, %108
-            %x_325:i32 = load %top
-            %x_326:i32 = add %x_325, 1i
+            %156:i32 = load %p
+            %x_322:i32 = let %156
+            %158:ptr<function, i32, read_write> = access %stack, %x_321
+            %159:i32 = add %x_322, 1i
+            store %158, %159
+            %160:i32 = load %top
+            %x_325:i32 = let %160
+            %162:i32 = add %x_325, 1i
+            %x_326:i32 = let %162
             store %top, %x_326
-            %x_327:i32 = load %h_1
-            %112:ptr<function, i32, read_write> = access %stack, %x_326
-            store %112, %x_327
+            %164:i32 = load %h_1
+            %x_327:i32 = let %164
+            %166:ptr<function, i32, read_write> = access %stack, %x_326
+            store %166, %x_327
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_85:i32 = load %i_2
-        %118:bool = lt %x_85, 10i
-        if %118 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %171:i32 = load %i_2
+        %x_85:i32 = let %171
+        %173:bool = lt %x_85, 10i
+        if %173 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_88:i32 = load %i_2
-        %x_89:i32 = load %i_2
-        %121:ptr<private, i32, read_write> = access %obj, 0u, %x_88
-        %122:i32 = sub 10i, %x_89
-        store %121, %122
-        %x_92:i32 = load %i_2
-        %x_93:i32 = load %i_2
-        %125:ptr<private, i32, read_write> = access %obj, 0u, %x_93
-        %x_95:i32 = load %125
-        %x_96:i32 = load %i_2
-        %128:ptr<private, i32, read_write> = access %obj, 0u, %x_96
-        %x_98:i32 = load %128
-        %130:ptr<private, i32, read_write> = access %obj, 0u, %x_92
-        %131:i32 = mul %x_95, %x_98
-        store %130, %131
-        continue %b18
+        %174:i32 = load %i_2
+        %x_88:i32 = let %174
+        %176:i32 = load %i_2
+        %x_89:i32 = let %176
+        %178:ptr<private, i32, read_write> = access %obj, 0u, %x_88
+        %179:i32 = sub 10i, %x_89
+        store %178, %179
+        %180:i32 = load %i_2
+        %x_92:i32 = let %180
+        %182:i32 = load %i_2
+        %x_93:i32 = let %182
+        %184:ptr<private, i32, read_write> = access %obj, 0u, %x_93
+        %185:i32 = load %184
+        %x_95:i32 = let %185
+        %187:i32 = load %i_2
+        %x_96:i32 = let %187
+        %189:ptr<private, i32, read_write> = access %obj, 0u, %x_96
+        %190:i32 = load %189
+        %x_98:i32 = let %190
+        %192:ptr<private, i32, read_write> = access %obj, 0u, %x_92
+        %193:i32 = mul %x_95, %x_98
+        store %192, %193
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %x_101:i32 = load %i_2
-        %133:i32 = add %x_101, 1i
-        store %i_2, %133
-        next_iteration %b17
+      $B18: {  # continuing
+        %194:i32 = load %i_2
+        %x_101:i32 = let %194
+        %196:i32 = add %x_101, 1i
+        store %i_2, %196
+        next_iteration  # -> $B17
       }
     }
-    %134:void = call %quicksort_
-    %x_104:vec4<f32> = load %gl_FragCoord
-    %136:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
-    %x_107:vec2<f32> = load %136
-    %138:f32 = access %x_104, 0u
-    %139:f32 = access %x_104, 1u
-    %140:vec2<f32> = construct %138, %139
-    %141:vec2<f32> = div %140, %x_107
-    store %uv, %141
+    %197:void = call %quicksort_
+    %198:vec4<f32> = load %gl_FragCoord
+    %x_104:vec4<f32> = let %198
+    %200:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
+    %201:vec2<f32> = load %200
+    %x_107:vec2<f32> = let %201
+    %203:f32 = access %x_104, 0u
+    %204:f32 = access %x_104, 1u
+    %205:vec2<f32> = construct %203, %204
+    %206:vec2<f32> = div %205, %x_107
+    store %uv, %206
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %142:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_110:i32 = load %142
-    %x_113:f32 = load_vector_element %color, 0u
-    %145:f32 = convert %x_110
-    %146:f32 = add %x_113, %145
-    store_vector_element %color, 0u, %146
-    %x_117:f32 = load_vector_element %uv, 0u
-    %148:bool = gt %x_117, 0.25f
-    if %148 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %149:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_122:i32 = load %149
-        %x_125:f32 = load_vector_element %color, 0u
-        %152:f32 = convert %x_122
-        %153:f32 = add %x_125, %152
-        store_vector_element %color, 0u, %153
+    %207:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %208:i32 = load %207
+    %x_110:i32 = let %208
+    %210:f32 = load_vector_element %color, 0u
+    %x_113:f32 = let %210
+    %212:f32 = convert %x_110
+    %213:f32 = add %x_113, %212
+    store_vector_element %color, 0u, %213
+    %214:f32 = load_vector_element %uv, 0u
+    %x_117:f32 = let %214
+    %216:bool = gt %x_117, 0.25f
+    if %216 [t: $B21] {  # if_7
+      $B21: {  # true
+        %217:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %218:i32 = load %217
+        %x_122:i32 = let %218
+        %220:f32 = load_vector_element %color, 0u
+        %x_125:f32 = let %220
+        %222:f32 = convert %x_122
+        %223:f32 = add %x_125, %222
+        store_vector_element %color, 0u, %223
         exit_if  # if_7
       }
     }
-    %x_129:f32 = load_vector_element %uv, 0u
-    %155:bool = gt %x_129, 0.5f
-    if %155 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %156:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_134:i32 = load %156
-        %x_137:f32 = load_vector_element %color, 1u
-        %159:f32 = convert %x_134
-        %160:f32 = add %x_137, %159
-        store_vector_element %color, 1u, %160
+    %224:f32 = load_vector_element %uv, 0u
+    %x_129:f32 = let %224
+    %226:bool = gt %x_129, 0.5f
+    if %226 [t: $B22] {  # if_8
+      $B22: {  # true
+        %227:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %228:i32 = load %227
+        %x_134:i32 = let %228
+        %230:f32 = load_vector_element %color, 1u
+        %x_137:f32 = let %230
+        %232:f32 = convert %x_134
+        %233:f32 = add %x_137, %232
+        store_vector_element %color, 1u, %233
         exit_if  # if_8
       }
     }
-    %x_141:f32 = load_vector_element %uv, 0u
-    %162:bool = gt %x_141, 0.75f
-    if %162 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %163:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_146:i32 = load %163
-        %x_149:f32 = load_vector_element %color, 2u
-        %166:f32 = convert %x_146
-        %167:f32 = add %x_149, %166
-        store_vector_element %color, 2u, %167
+    %234:f32 = load_vector_element %uv, 0u
+    %x_141:f32 = let %234
+    %236:bool = gt %x_141, 0.75f
+    if %236 [t: $B23] {  # if_9
+      $B23: {  # true
+        %237:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %238:i32 = load %237
+        %x_146:i32 = let %238
+        %240:f32 = load_vector_element %color, 2u
+        %x_149:f32 = let %240
+        %242:f32 = convert %x_146
+        %243:f32 = add %x_149, %242
+        store_vector_element %color, 2u, %243
         exit_if  # if_9
       }
     }
-    %168:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_153:i32 = load %168
-    %x_156:f32 = load_vector_element %color, 1u
-    %171:f32 = convert %x_153
-    %172:f32 = add %x_156, %171
-    store_vector_element %color, 1u, %172
-    %x_160:f32 = load_vector_element %uv, 1u
-    %174:bool = gt %x_160, 0.25f
-    if %174 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %175:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_165:i32 = load %175
-        %x_168:f32 = load_vector_element %color, 0u
-        %178:f32 = convert %x_165
-        %179:f32 = add %x_168, %178
-        store_vector_element %color, 0u, %179
+    %244:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %245:i32 = load %244
+    %x_153:i32 = let %245
+    %247:f32 = load_vector_element %color, 1u
+    %x_156:f32 = let %247
+    %249:f32 = convert %x_153
+    %250:f32 = add %x_156, %249
+    store_vector_element %color, 1u, %250
+    %251:f32 = load_vector_element %uv, 1u
+    %x_160:f32 = let %251
+    %253:bool = gt %x_160, 0.25f
+    if %253 [t: $B24] {  # if_10
+      $B24: {  # true
+        %254:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %255:i32 = load %254
+        %x_165:i32 = let %255
+        %257:f32 = load_vector_element %color, 0u
+        %x_168:f32 = let %257
+        %259:f32 = convert %x_165
+        %260:f32 = add %x_168, %259
+        store_vector_element %color, 0u, %260
         exit_if  # if_10
       }
     }
-    %x_172:f32 = load_vector_element %uv, 1u
-    %181:bool = gt %x_172, 0.5f
-    if %181 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %182:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_177:i32 = load %182
-        %x_180:f32 = load_vector_element %color, 1u
-        %185:f32 = convert %x_177
-        %186:f32 = add %x_180, %185
-        store_vector_element %color, 1u, %186
+    %261:f32 = load_vector_element %uv, 1u
+    %x_172:f32 = let %261
+    %263:bool = gt %x_172, 0.5f
+    if %263 [t: $B25] {  # if_11
+      $B25: {  # true
+        %264:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %265:i32 = load %264
+        %x_177:i32 = let %265
+        %267:f32 = load_vector_element %color, 1u
+        %x_180:f32 = let %267
+        %269:f32 = convert %x_177
+        %270:f32 = add %x_180, %269
+        store_vector_element %color, 1u, %270
         exit_if  # if_11
       }
     }
-    %x_184:f32 = load_vector_element %uv, 1u
-    %188:bool = gt %x_184, 0.75f
-    if %188 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %189:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_189:i32 = load %189
-        %x_192:f32 = load_vector_element %color, 2u
-        %192:f32 = convert %x_189
-        %193:f32 = add %x_192, %192
-        store_vector_element %color, 2u, %193
+    %271:f32 = load_vector_element %uv, 1u
+    %x_184:f32 = let %271
+    %273:bool = gt %x_184, 0.75f
+    if %273 [t: $B26] {  # if_12
+      $B26: {  # true
+        %274:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %275:i32 = load %274
+        %x_189:i32 = let %275
+        %277:f32 = load_vector_element %color, 2u
+        %x_192:f32 = let %277
+        %279:f32 = convert %x_189
+        %280:f32 = add %x_192, %279
+        store_vector_element %color, 2u, %280
         exit_if  # if_12
       }
     }
-    %194:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_196:i32 = load %194
-    %x_199:f32 = load_vector_element %color, 2u
-    %197:f32 = convert %x_196
-    %198:f32 = add %x_199, %197
-    store_vector_element %color, 2u, %198
-    %x_203:f32 = load_vector_element %uv, 0u
-    %x_205:f32 = load_vector_element %uv, 1u
-    %201:f32 = sub %x_203, %x_205
-    %202:f32 = abs %201
-    %203:bool = lt %202, 0.25f
-    if %203 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %204:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_212:i32 = load %204
-        %x_215:f32 = load_vector_element %color, 0u
-        %207:f32 = convert %x_212
-        %208:f32 = add %x_215, %207
-        store_vector_element %color, 0u, %208
+    %281:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %282:i32 = load %281
+    %x_196:i32 = let %282
+    %284:f32 = load_vector_element %color, 2u
+    %x_199:f32 = let %284
+    %286:f32 = convert %x_196
+    %287:f32 = add %x_199, %286
+    store_vector_element %color, 2u, %287
+    %288:f32 = load_vector_element %uv, 0u
+    %x_203:f32 = let %288
+    %290:f32 = load_vector_element %uv, 1u
+    %x_205:f32 = let %290
+    %292:f32 = sub %x_203, %x_205
+    %293:f32 = abs %292
+    %294:bool = lt %293, 0.25f
+    if %294 [t: $B27] {  # if_13
+      $B27: {  # true
+        %295:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %296:i32 = load %295
+        %x_212:i32 = let %296
+        %298:f32 = load_vector_element %color, 0u
+        %x_215:f32 = let %298
+        %300:f32 = convert %x_212
+        %301:f32 = add %x_215, %300
+        store_vector_element %color, 0u, %301
         exit_if  # if_13
       }
     }
-    %x_218:vec3<f32> = load %color
-    %x_219:vec3<f32> = normalize %x_218
-    %211:f32 = access %x_219, 0u
-    %212:f32 = access %x_219, 1u
-    %213:f32 = access %x_219, 2u
-    %214:vec4<f32> = construct %211, %212, %213, 1.0f
-    store %x_GLF_color, %214
+    %302:vec3<f32> = load %color
+    %x_218:vec3<f32> = let %302
+    %304:vec3<f32> = normalize %x_218
+    %x_219:vec3<f32> = let %304
+    %306:f32 = access %x_219, 0u
+    %307:f32 = access %x_219, 1u
+    %308:f32 = access %x_219, 2u
+    %309:vec4<f32> = construct %306, %307, %308, 1.0f
+    store %x_GLF_color, %309
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %217:void = call %main_1
-    %218:vec4<f32> = load %x_GLF_color
-    %219:main_out = construct %218
-    ret %219
+    %312:void = call %main_1
+    %313:vec4<f32> = load %x_GLF_color
+    %314:main_out = construct %313
+    ret %314
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.msl
index 14c8f22..778dc46 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,35 +12,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>, %x_228:mat3x3<f32>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>, %x_228:mat3x3<f32>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %10:i32 = load %i
     %11:ptr<private, i32, read_write> = access %obj, 0u, %10
     %12:i32 = load %11
     store %temp, %12
-    %x_233:i32 = load %i
-    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_233
-    %15:i32 = load %j
-    %16:ptr<private, i32, read_write> = access %obj, 0u, %15
-    %17:i32 = load %16
-    store %14, %17
-    %x_238:i32 = load %j
-    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_238
-    %20:i32 = load %temp
-    store %19, %20
+    %13:i32 = load %i
+    %x_233:i32 = let %13
+    %15:ptr<private, i32, read_write> = access %obj, 0u, %x_233
+    %16:i32 = load %j
+    %17:ptr<private, i32, read_write> = access %obj, 0u, %16
+    %18:i32 = load %17
+    store %15, %18
+    %19:i32 = load %j
+    %x_238:i32 = let %19
+    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_238
+    %22:i32 = load %temp
+    store %21, %22
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -48,70 +50,71 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %31:i32 = load %h
-    %32:ptr<private, i32, read_write> = access %obj, 0u, %31
-    %33:i32 = load %32
-    store %pivot, %33
-    %34:i32 = load %l
-    %35:i32 = sub %34, 1i
-    store %i_1, %35
+    %33:i32 = load %h
+    %34:ptr<private, i32, read_write> = access %obj, 0u, %33
+    %35:i32 = load %34
+    store %pivot, %35
     %36:i32 = load %l
-    store %j_1, %36
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %37:i32 = load %j_1
-        %38:i32 = load %h
-        %39:i32 = sub %38, 1i
-        %40:bool = lte %37, %39
-        if %40 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %37:i32 = sub %36, 1i
+    store %i_1, %37
+    %38:i32 = load %l
+    store %j_1, %38
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %39:i32 = load %j_1
+        %40:i32 = load %h
+        %41:i32 = sub %40, 1i
+        %42:bool = lte %39, %41
+        if %42 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %41:i32 = load %j_1
-        %42:ptr<private, i32, read_write> = access %obj, 0u, %41
-        %43:i32 = load %42
-        %44:i32 = load %pivot
-        %45:bool = lte %43, %44
-        if %45 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %46:i32 = load %i_1
-            %47:i32 = add %46, 1i
-            store %i_1, %47
+        %43:i32 = load %j_1
+        %44:ptr<private, i32, read_write> = access %obj, 0u, %43
+        %45:i32 = load %44
+        %46:i32 = load %pivot
+        %47:bool = lte %45, %46
+        if %47 [t: $B8] {  # if_2
+          $B8: {  # true
             %48:i32 = load %i_1
-            store %param, %48
-            %49:i32 = load %j_1
-            store %param_1, %49
-            %50:void = call %swap_i1_i1_, %param, %param_1, mat3x3<f32>(vec3<f32>(0.0f))
+            %49:i32 = add %48, 1i
+            store %i_1, %49
+            %50:i32 = load %i_1
+            store %param, %50
+            %51:i32 = load %j_1
+            store %param_1, %51
+            %52:void = call %swap_i1_i1_, %param, %param_1, mat3x3<f32>(vec3<f32>(0.0f))
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %51:i32 = load %j_1
-        %52:i32 = add %51, 1i
-        store %j_1, %52
-        next_iteration %b4
+      $B5: {  # continuing
+        %53:i32 = load %j_1
+        %54:i32 = add %53, 1i
+        store %j_1, %54
+        next_iteration  # -> $B4
       }
     }
-    %53:i32 = load %i_1
-    %54:i32 = add %53, 1i
-    store %i_1, %54
     %55:i32 = load %i_1
-    store %param_2, %55
-    %56:i32 = load %h
-    store %param_3, %56
-    %57:void = call %swap_i1_i1_, %param_2, %param_3, mat3x3<f32>(vec3<f32>(0.0f))
-    %x_276:i32 = load %i_1
+    %56:i32 = add %55, 1i
+    store %i_1, %56
+    %57:i32 = load %i_1
+    store %param_2, %57
+    %58:i32 = load %h
+    store %param_3, %58
+    %59:void = call %swap_i1_i1_, %param_2, %param_3, mat3x3<f32>(vec3<f32>(0.0f))
+    %60:i32 = load %i_1
+    %x_276:i32 = let %60
     ret %x_276
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -122,282 +125,304 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %67:i32 = load %top
-    %x_279:i32 = add %67, 1i
+    %70:i32 = load %top
+    %71:i32 = add %70, 1i
+    %x_279:i32 = let %71
     store %top, %x_279
-    %69:ptr<function, i32, read_write> = access %stack, %x_279
-    %70:i32 = load %l_1
-    store %69, %70
-    %71:i32 = load %top
-    %x_283:i32 = add %71, 1i
-    store %top, %x_283
-    %73:ptr<function, i32, read_write> = access %stack, %x_283
-    %74:i32 = load %h_1
+    %73:ptr<function, i32, read_write> = access %stack, %x_279
+    %74:i32 = load %l_1
     store %73, %74
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %75:i32 = load %top
-        %76:bool = gte %75, 0i
-        if %76 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %75:i32 = load %top
+    %76:i32 = add %75, 1i
+    %x_283:i32 = let %76
+    store %top, %x_283
+    %78:ptr<function, i32, read_write> = access %stack, %x_283
+    %79:i32 = load %h_1
+    store %78, %79
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %80:i32 = load %top
+        %81:bool = gte %80, 0i
+        if %81 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_293:i32 = load %top
-        %78:i32 = load %top
-        %79:i32 = sub %78, 1i
-        store %top, %79
-        %80:ptr<function, i32, read_write> = access %stack, %x_293
-        %81:i32 = load %80
-        store %h_1, %81
-        %x_297:i32 = load %top
-        %83:i32 = load %top
-        %84:i32 = sub %83, 1i
-        store %top, %84
-        %85:ptr<function, i32, read_write> = access %stack, %x_297
-        %86:i32 = load %85
-        store %l_1, %86
-        %87:i32 = load %l_1
-        store %param_4, %87
-        %88:i32 = load %h_1
-        store %param_5, %88
-        %x_303:i32 = call %performPartition_i1_i1_, %param_4, %param_5
-        store %p, %x_303
-        %90:i32 = load %p
+        %82:i32 = load %top
+        %x_293:i32 = let %82
+        %84:i32 = load %top
+        %85:i32 = sub %84, 1i
+        store %top, %85
+        %86:ptr<function, i32, read_write> = access %stack, %x_293
+        %87:i32 = load %86
+        store %h_1, %87
+        %88:i32 = load %top
+        %x_297:i32 = let %88
+        %90:i32 = load %top
         %91:i32 = sub %90, 1i
-        %92:i32 = load %l_1
-        %93:bool = gt %91, %92
-        if %93 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %94:i32 = load %top
-            %x_311:i32 = add %94, 1i
+        store %top, %91
+        %92:ptr<function, i32, read_write> = access %stack, %x_297
+        %93:i32 = load %92
+        store %l_1, %93
+        %94:i32 = load %l_1
+        store %param_4, %94
+        %95:i32 = load %h_1
+        store %param_5, %95
+        %96:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_303:i32 = let %96
+        store %p, %x_303
+        %98:i32 = load %p
+        %99:i32 = sub %98, 1i
+        %100:i32 = load %l_1
+        %101:bool = gt %99, %100
+        if %101 [t: $B14] {  # if_4
+          $B14: {  # true
+            %102:i32 = load %top
+            %103:i32 = add %102, 1i
+            %x_311:i32 = let %103
             store %top, %x_311
-            %96:ptr<function, i32, read_write> = access %stack, %x_311
-            %97:i32 = load %l_1
-            store %96, %97
-            %98:i32 = load %top
-            %x_315:i32 = add %98, 1i
+            %105:ptr<function, i32, read_write> = access %stack, %x_311
+            %106:i32 = load %l_1
+            store %105, %106
+            %107:i32 = load %top
+            %108:i32 = add %107, 1i
+            %x_315:i32 = let %108
             store %top, %x_315
-            %100:ptr<function, i32, read_write> = access %stack, %x_315
-            %101:i32 = load %p
-            %102:i32 = sub %101, 1i
-            store %100, %102
+            %110:ptr<function, i32, read_write> = access %stack, %x_315
+            %111:i32 = load %p
+            %112:i32 = sub %111, 1i
+            store %110, %112
             exit_if  # if_4
           }
         }
-        %103:i32 = load %p
-        %104:i32 = add %103, 1i
-        %105:i32 = load %h_1
-        %106:bool = lt %104, %105
-        if %106 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %107:i32 = load %top
-            %x_326:i32 = add %107, 1i
+        %113:i32 = load %p
+        %114:i32 = add %113, 1i
+        %115:i32 = load %h_1
+        %116:bool = lt %114, %115
+        if %116 [t: $B15] {  # if_5
+          $B15: {  # true
+            %117:i32 = load %top
+            %118:i32 = add %117, 1i
+            %x_326:i32 = let %118
             store %top, %x_326
-            %109:ptr<function, i32, read_write> = access %stack, %x_326
-            %110:i32 = load %p
-            %111:i32 = add %110, 1i
-            store %109, %111
-            %112:i32 = load %top
-            %x_331:i32 = add %112, 1i
+            %120:ptr<function, i32, read_write> = access %stack, %x_326
+            %121:i32 = load %p
+            %122:i32 = add %121, 1i
+            store %120, %122
+            %123:i32 = load %top
+            %124:i32 = add %123, 1i
+            %x_331:i32 = let %124
             store %top, %x_331
-            %114:ptr<function, i32, read_write> = access %stack, %x_331
-            %115:i32 = load %h_1
-            store %114, %115
+            %126:ptr<function, i32, read_write> = access %stack, %x_331
+            %127:i32 = load %h_1
+            store %126, %127
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %120:i32 = load %i_2
-        %121:bool = lt %120, 10i
-        if %121 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %132:i32 = load %i_2
+        %133:bool = lt %132, 10i
+        if %133 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_92:i32 = load %i_2
-        %123:ptr<private, i32, read_write> = access %obj, 0u, %x_92
-        %124:i32 = load %i_2
-        %125:i32 = sub 10i, %124
-        store %123, %125
-        %x_96:i32 = load %i_2
-        %127:ptr<private, i32, read_write> = access %obj, 0u, %x_96
-        %128:i32 = load %i_2
-        %129:ptr<private, i32, read_write> = access %obj, 0u, %128
-        %130:i32 = load %129
-        %131:i32 = load %i_2
-        %132:ptr<private, i32, read_write> = access %obj, 0u, %131
-        %133:i32 = load %132
-        %134:i32 = mul %130, %133
-        store %127, %134
-        continue %b18
+        %134:i32 = load %i_2
+        %x_92:i32 = let %134
+        %136:ptr<private, i32, read_write> = access %obj, 0u, %x_92
+        %137:i32 = load %i_2
+        %138:i32 = sub 10i, %137
+        store %136, %138
+        %139:i32 = load %i_2
+        %x_96:i32 = let %139
+        %141:ptr<private, i32, read_write> = access %obj, 0u, %x_96
+        %142:i32 = load %i_2
+        %143:ptr<private, i32, read_write> = access %obj, 0u, %142
+        %144:i32 = load %143
+        %145:i32 = load %i_2
+        %146:ptr<private, i32, read_write> = access %obj, 0u, %145
+        %147:i32 = load %146
+        %148:i32 = mul %144, %147
+        store %141, %148
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %135:i32 = load %i_2
-        %136:i32 = add %135, 1i
-        store %i_2, %136
-        next_iteration %b17
+      $B18: {  # continuing
+        %149:i32 = load %i_2
+        %150:i32 = add %149, 1i
+        store %i_2, %150
+        next_iteration  # -> $B17
       }
     }
-    %137:void = call %quicksort_
-    %138:vec4<f32> = load %gl_FragCoord
-    %139:vec2<f32> = swizzle %138, xy
-    %140:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
-    %141:vec2<f32> = load %140
-    %142:vec2<f32> = div %139, %141
-    store %uv, %142
+    %151:void = call %quicksort_
+    %152:vec4<f32> = load %gl_FragCoord
+    %153:vec2<f32> = swizzle %152, xy
+    %154:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
+    %155:vec2<f32> = load %154
+    %156:vec2<f32> = div %153, %155
+    store %uv, %156
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %143:f32 = load_vector_element %color, 0u
-    %144:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %145:i32 = load %144
-    %146:f32 = convert %145
-    %147:f32 = add %143, %146
-    store_vector_element %color, 0u, %147
-    %148:f32 = load_vector_element %uv, 0u
-    %149:bool = gt %148, 0.25f
-    if %149 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %150:f32 = load_vector_element %color, 0u
-        %151:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %152:i32 = load %151
-        %153:f32 = convert %152
-        %154:f32 = add %150, %153
-        store_vector_element %color, 0u, %154
+    %157:f32 = load_vector_element %color, 0u
+    %158:f32 = let %157
+    %159:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %160:i32 = load %159
+    %161:f32 = convert %160
+    %162:f32 = add %158, %161
+    store_vector_element %color, 0u, %162
+    %163:f32 = load_vector_element %uv, 0u
+    %164:bool = gt %163, 0.25f
+    if %164 [t: $B21] {  # if_7
+      $B21: {  # true
+        %165:f32 = load_vector_element %color, 0u
+        %166:f32 = let %165
+        %167:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %168:i32 = load %167
+        %169:f32 = convert %168
+        %170:f32 = add %166, %169
+        store_vector_element %color, 0u, %170
         exit_if  # if_7
       }
     }
-    %155:f32 = load_vector_element %uv, 0u
-    %156:bool = gt %155, 0.5f
-    if %156 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %157:f32 = load_vector_element %color, 1u
-        %158:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %159:i32 = load %158
-        %160:f32 = convert %159
-        %161:f32 = add %157, %160
-        store_vector_element %color, 1u, %161
+    %171:f32 = load_vector_element %uv, 0u
+    %172:bool = gt %171, 0.5f
+    if %172 [t: $B22] {  # if_8
+      $B22: {  # true
+        %173:f32 = load_vector_element %color, 1u
+        %174:f32 = let %173
+        %175:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %176:i32 = load %175
+        %177:f32 = convert %176
+        %178:f32 = add %174, %177
+        store_vector_element %color, 1u, %178
         exit_if  # if_8
       }
     }
-    %162:f32 = load_vector_element %uv, 0u
-    %163:bool = gt %162, 0.75f
-    if %163 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %164:f32 = load_vector_element %color, 2u
-        %165:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %166:i32 = load %165
-        %167:f32 = convert %166
-        %168:f32 = add %164, %167
-        store_vector_element %color, 2u, %168
+    %179:f32 = load_vector_element %uv, 0u
+    %180:bool = gt %179, 0.75f
+    if %180 [t: $B23] {  # if_9
+      $B23: {  # true
+        %181:f32 = load_vector_element %color, 2u
+        %182:f32 = let %181
+        %183:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %184:i32 = load %183
+        %185:f32 = convert %184
+        %186:f32 = add %182, %185
+        store_vector_element %color, 2u, %186
         exit_if  # if_9
       }
     }
-    %169:f32 = load_vector_element %color, 1u
-    %170:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %171:i32 = load %170
-    %172:f32 = convert %171
-    %173:f32 = add %169, %172
-    store_vector_element %color, 1u, %173
-    %174:f32 = load_vector_element %uv, 1u
-    %175:bool = gt %174, 0.25f
-    if %175 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %176:f32 = load_vector_element %color, 0u
-        %177:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %178:i32 = load %177
-        %179:f32 = convert %178
-        %180:f32 = add %176, %179
-        store_vector_element %color, 0u, %180
+    %187:f32 = load_vector_element %color, 1u
+    %188:f32 = let %187
+    %189:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %190:i32 = load %189
+    %191:f32 = convert %190
+    %192:f32 = add %188, %191
+    store_vector_element %color, 1u, %192
+    %193:f32 = load_vector_element %uv, 1u
+    %194:bool = gt %193, 0.25f
+    if %194 [t: $B24] {  # if_10
+      $B24: {  # true
+        %195:f32 = load_vector_element %color, 0u
+        %196:f32 = let %195
+        %197:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %198:i32 = load %197
+        %199:f32 = convert %198
+        %200:f32 = add %196, %199
+        store_vector_element %color, 0u, %200
         exit_if  # if_10
       }
     }
-    %181:f32 = load_vector_element %uv, 1u
-    %182:bool = gt %181, 0.5f
-    if %182 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %183:f32 = load_vector_element %color, 1u
-        %184:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %185:i32 = load %184
-        %186:f32 = convert %185
-        %187:f32 = add %183, %186
-        store_vector_element %color, 1u, %187
+    %201:f32 = load_vector_element %uv, 1u
+    %202:bool = gt %201, 0.5f
+    if %202 [t: $B25] {  # if_11
+      $B25: {  # true
+        %203:f32 = load_vector_element %color, 1u
+        %204:f32 = let %203
+        %205:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %206:i32 = load %205
+        %207:f32 = convert %206
+        %208:f32 = add %204, %207
+        store_vector_element %color, 1u, %208
         exit_if  # if_11
       }
     }
-    %188:f32 = load_vector_element %uv, 1u
-    %189:bool = gt %188, 0.75f
-    if %189 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %190:f32 = load_vector_element %color, 2u
-        %191:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %192:i32 = load %191
-        %193:f32 = convert %192
-        %194:f32 = add %190, %193
-        store_vector_element %color, 2u, %194
+    %209:f32 = load_vector_element %uv, 1u
+    %210:bool = gt %209, 0.75f
+    if %210 [t: $B26] {  # if_12
+      $B26: {  # true
+        %211:f32 = load_vector_element %color, 2u
+        %212:f32 = let %211
+        %213:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %214:i32 = load %213
+        %215:f32 = convert %214
+        %216:f32 = add %212, %215
+        store_vector_element %color, 2u, %216
         exit_if  # if_12
       }
     }
-    %195:f32 = load_vector_element %color, 2u
-    %196:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %197:i32 = load %196
-    %198:f32 = convert %197
-    %199:f32 = add %195, %198
-    store_vector_element %color, 2u, %199
-    %200:f32 = load_vector_element %uv, 0u
-    %201:f32 = load_vector_element %uv, 1u
-    %202:f32 = sub %200, %201
-    %203:f32 = abs %202
-    %204:bool = lt %203, 0.25f
-    if %204 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %205:f32 = load_vector_element %color, 0u
-        %206:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %207:i32 = load %206
-        %208:f32 = convert %207
-        %209:f32 = add %205, %208
-        store_vector_element %color, 0u, %209
+    %217:f32 = load_vector_element %color, 2u
+    %218:f32 = let %217
+    %219:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %220:i32 = load %219
+    %221:f32 = convert %220
+    %222:f32 = add %218, %221
+    store_vector_element %color, 2u, %222
+    %223:f32 = load_vector_element %uv, 0u
+    %224:f32 = load_vector_element %uv, 1u
+    %225:f32 = sub %223, %224
+    %226:f32 = abs %225
+    %227:bool = lt %226, 0.25f
+    if %227 [t: $B27] {  # if_13
+      $B27: {  # true
+        %228:f32 = load_vector_element %color, 0u
+        %229:f32 = let %228
+        %230:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %231:i32 = load %230
+        %232:f32 = convert %231
+        %233:f32 = add %229, %232
+        store_vector_element %color, 0u, %233
         exit_if  # if_13
       }
     }
-    %210:vec3<f32> = load %color
-    %x_223:vec3<f32> = normalize %210
-    %212:f32 = access %x_223, 0u
-    %213:f32 = access %x_223, 1u
-    %214:f32 = access %x_223, 2u
-    %215:vec4<f32> = construct %212, %213, %214, 1.0f
-    store %x_GLF_color, %215
+    %234:vec3<f32> = load %color
+    %235:vec3<f32> = normalize %234
+    %x_223:vec3<f32> = let %235
+    %237:f32 = access %x_223, 0u
+    %238:f32 = access %x_223, 1u
+    %239:f32 = access %x_223, 2u
+    %240:vec4<f32> = construct %237, %238, %239, 1.0f
+    store %x_GLF_color, %240
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %218:void = call %main_1
-    %219:vec4<f32> = load %x_GLF_color
-    %220:main_out = construct %219
-    ret %220
+    %243:void = call %main_1
+    %244:vec4<f32> = load %x_GLF_color
+    %245:main_out = construct %244
+    ret %245
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.msl
index 2839b99..533f89b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-quicksort-mat-func-param/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,35 +12,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_32:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>, %x_228:mat3x3<f32>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>, %x_228:mat3x3<f32>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_230:i32 = load %i
-    %11:ptr<private, i32, read_write> = access %obj, 0u, %x_230
-    %x_232:i32 = load %11
+    %10:i32 = load %i
+    %x_230:i32 = let %10
+    %12:ptr<private, i32, read_write> = access %obj, 0u, %x_230
+    %13:i32 = load %12
+    %x_232:i32 = let %13
     store %temp, %x_232
-    %x_233:i32 = load %i
-    %x_234:i32 = load %j
-    %15:ptr<private, i32, read_write> = access %obj, 0u, %x_234
-    %x_236:i32 = load %15
-    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_233
-    store %17, %x_236
-    %x_238:i32 = load %j
-    %x_239:i32 = load %temp
-    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_238
-    store %20, %x_239
+    %15:i32 = load %i
+    %x_233:i32 = let %15
+    %17:i32 = load %j
+    %x_234:i32 = let %17
+    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_234
+    %20:i32 = load %19
+    %x_236:i32 = let %20
+    %22:ptr<private, i32, read_write> = access %obj, 0u, %x_233
+    store %22, %x_236
+    %23:i32 = load %j
+    %x_238:i32 = let %23
+    %25:i32 = load %temp
+    %x_239:i32 = let %25
+    %27:ptr<private, i32, read_write> = access %obj, 0u, %x_238
+    store %27, %x_239
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -48,70 +55,87 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_242:i32 = load %h
-    %32:ptr<private, i32, read_write> = access %obj, 0u, %x_242
-    %x_244:i32 = load %32
+    %38:i32 = load %h
+    %x_242:i32 = let %38
+    %40:ptr<private, i32, read_write> = access %obj, 0u, %x_242
+    %41:i32 = load %40
+    %x_244:i32 = let %41
     store %pivot, %x_244
-    %x_245:i32 = load %l
-    %35:i32 = sub %x_245, 1i
-    store %i_1, %35
-    %x_247:i32 = load %l
+    %43:i32 = load %l
+    %x_245:i32 = let %43
+    %45:i32 = sub %x_245, 1i
+    store %i_1, %45
+    %46:i32 = load %l
+    %x_247:i32 = let %46
     store %j_1, %x_247
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_252:i32 = load %j_1
-        %x_253:i32 = load %h
-        %39:i32 = sub %x_253, 1i
-        %40:bool = lte %x_252, %39
-        if %40 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %48:i32 = load %j_1
+        %x_252:i32 = let %48
+        %50:i32 = load %h
+        %x_253:i32 = let %50
+        %52:i32 = sub %x_253, 1i
+        %53:bool = lte %x_252, %52
+        if %53 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_257:i32 = load %j_1
-        %42:ptr<private, i32, read_write> = access %obj, 0u, %x_257
-        %x_259:i32 = load %42
-        %x_260:i32 = load %pivot
-        %45:bool = lte %x_259, %x_260
-        if %45 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_264:i32 = load %i_1
-            %47:i32 = add %x_264, 1i
-            store %i_1, %47
-            %x_266:i32 = load %i_1
+        %54:i32 = load %j_1
+        %x_257:i32 = let %54
+        %56:ptr<private, i32, read_write> = access %obj, 0u, %x_257
+        %57:i32 = load %56
+        %x_259:i32 = let %57
+        %59:i32 = load %pivot
+        %x_260:i32 = let %59
+        %61:bool = lte %x_259, %x_260
+        if %61 [t: $B8] {  # if_2
+          $B8: {  # true
+            %62:i32 = load %i_1
+            %x_264:i32 = let %62
+            %64:i32 = add %x_264, 1i
+            store %i_1, %64
+            %65:i32 = load %i_1
+            %x_266:i32 = let %65
             store %param, %x_266
-            %x_267:i32 = load %j_1
+            %67:i32 = load %j_1
+            %x_267:i32 = let %67
             store %param_1, %x_267
-            %50:void = call %swap_i1_i1_, %param, %param_1, mat3x3<f32>(vec3<f32>(0.0f))
+            %69:void = call %swap_i1_i1_, %param, %param_1, mat3x3<f32>(vec3<f32>(0.0f))
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_269:i32 = load %j_1
-        %52:i32 = add %x_269, 1i
-        store %j_1, %52
-        next_iteration %b4
+      $B5: {  # continuing
+        %70:i32 = load %j_1
+        %x_269:i32 = let %70
+        %72:i32 = add %x_269, 1i
+        store %j_1, %72
+        next_iteration  # -> $B4
       }
     }
-    %x_271:i32 = load %i_1
-    %54:i32 = add %x_271, 1i
-    store %i_1, %54
-    %x_273:i32 = load %i_1
+    %73:i32 = load %i_1
+    %x_271:i32 = let %73
+    %75:i32 = add %x_271, 1i
+    store %i_1, %75
+    %76:i32 = load %i_1
+    %x_273:i32 = let %76
     store %param_2, %x_273
-    %x_274:i32 = load %h
+    %78:i32 = load %h
+    %x_274:i32 = let %78
     store %param_3, %x_274
-    %57:void = call %swap_i1_i1_, %param_2, %param_3, mat3x3<f32>(vec3<f32>(0.0f))
-    %x_276:i32 = load %i_1
+    %80:void = call %swap_i1_i1_, %param_2, %param_3, mat3x3<f32>(vec3<f32>(0.0f))
+    %81:i32 = load %i_1
+    %x_276:i32 = let %81
     ret %x_276
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -122,282 +146,353 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_278:i32 = load %top
-    %x_279:i32 = add %x_278, 1i
+    %91:i32 = load %top
+    %x_278:i32 = let %91
+    %93:i32 = add %x_278, 1i
+    %x_279:i32 = let %93
     store %top, %x_279
-    %x_280:i32 = load %l_1
-    %70:ptr<function, i32, read_write> = access %stack, %x_279
-    store %70, %x_280
-    %x_282:i32 = load %top
-    %x_283:i32 = add %x_282, 1i
+    %95:i32 = load %l_1
+    %x_280:i32 = let %95
+    %97:ptr<function, i32, read_write> = access %stack, %x_279
+    store %97, %x_280
+    %98:i32 = load %top
+    %x_282:i32 = let %98
+    %100:i32 = add %x_282, 1i
+    %x_283:i32 = let %100
     store %top, %x_283
-    %x_284:i32 = load %h_1
-    %74:ptr<function, i32, read_write> = access %stack, %x_283
-    store %74, %x_284
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_290:i32 = load %top
-        %76:bool = gte %x_290, 0i
-        if %76 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %102:i32 = load %h_1
+    %x_284:i32 = let %102
+    %104:ptr<function, i32, read_write> = access %stack, %x_283
+    store %104, %x_284
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %105:i32 = load %top
+        %x_290:i32 = let %105
+        %107:bool = gte %x_290, 0i
+        if %107 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_293:i32 = load %top
-        %78:i32 = sub %x_293, 1i
-        store %top, %78
-        %79:ptr<function, i32, read_write> = access %stack, %x_293
-        %x_296:i32 = load %79
+        %108:i32 = load %top
+        %x_293:i32 = let %108
+        %110:i32 = sub %x_293, 1i
+        store %top, %110
+        %111:ptr<function, i32, read_write> = access %stack, %x_293
+        %112:i32 = load %111
+        %x_296:i32 = let %112
         store %h_1, %x_296
-        %x_297:i32 = load %top
-        %82:i32 = sub %x_297, 1i
-        store %top, %82
-        %83:ptr<function, i32, read_write> = access %stack, %x_297
-        %x_300:i32 = load %83
+        %114:i32 = load %top
+        %x_297:i32 = let %114
+        %116:i32 = sub %x_297, 1i
+        store %top, %116
+        %117:ptr<function, i32, read_write> = access %stack, %x_297
+        %118:i32 = load %117
+        %x_300:i32 = let %118
         store %l_1, %x_300
-        %x_301:i32 = load %l_1
+        %120:i32 = load %l_1
+        %x_301:i32 = let %120
         store %param_4, %x_301
-        %x_302:i32 = load %h_1
+        %122:i32 = load %h_1
+        %x_302:i32 = let %122
         store %param_5, %x_302
-        %x_303:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %124:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_303:i32 = let %124
         store %p, %x_303
-        %x_304:i32 = load %p
-        %x_306:i32 = load %l_1
-        %90:i32 = sub %x_304, 1i
-        %91:bool = gt %90, %x_306
-        if %91 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %x_310:i32 = load %top
-            %x_311:i32 = add %x_310, 1i
+        %126:i32 = load %p
+        %x_304:i32 = let %126
+        %128:i32 = load %l_1
+        %x_306:i32 = let %128
+        %130:i32 = sub %x_304, 1i
+        %131:bool = gt %130, %x_306
+        if %131 [t: $B14] {  # if_4
+          $B14: {  # true
+            %132:i32 = load %top
+            %x_310:i32 = let %132
+            %134:i32 = add %x_310, 1i
+            %x_311:i32 = let %134
             store %top, %x_311
-            %x_312:i32 = load %l_1
-            %95:ptr<function, i32, read_write> = access %stack, %x_311
-            store %95, %x_312
-            %x_314:i32 = load %top
-            %x_315:i32 = add %x_314, 1i
+            %136:i32 = load %l_1
+            %x_312:i32 = let %136
+            %138:ptr<function, i32, read_write> = access %stack, %x_311
+            store %138, %x_312
+            %139:i32 = load %top
+            %x_314:i32 = let %139
+            %141:i32 = add %x_314, 1i
+            %x_315:i32 = let %141
             store %top, %x_315
-            %x_316:i32 = load %p
-            %99:ptr<function, i32, read_write> = access %stack, %x_315
-            %100:i32 = sub %x_316, 1i
-            store %99, %100
+            %143:i32 = load %p
+            %x_316:i32 = let %143
+            %145:ptr<function, i32, read_write> = access %stack, %x_315
+            %146:i32 = sub %x_316, 1i
+            store %145, %146
             exit_if  # if_4
           }
         }
-        %x_319:i32 = load %p
-        %x_321:i32 = load %h_1
-        %103:i32 = add %x_319, 1i
-        %104:bool = lt %103, %x_321
-        if %104 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %x_325:i32 = load %top
-            %x_326:i32 = add %x_325, 1i
+        %147:i32 = load %p
+        %x_319:i32 = let %147
+        %149:i32 = load %h_1
+        %x_321:i32 = let %149
+        %151:i32 = add %x_319, 1i
+        %152:bool = lt %151, %x_321
+        if %152 [t: $B15] {  # if_5
+          $B15: {  # true
+            %153:i32 = load %top
+            %x_325:i32 = let %153
+            %155:i32 = add %x_325, 1i
+            %x_326:i32 = let %155
             store %top, %x_326
-            %x_327:i32 = load %p
-            %108:ptr<function, i32, read_write> = access %stack, %x_326
-            %109:i32 = add %x_327, 1i
-            store %108, %109
-            %x_330:i32 = load %top
-            %x_331:i32 = add %x_330, 1i
+            %157:i32 = load %p
+            %x_327:i32 = let %157
+            %159:ptr<function, i32, read_write> = access %stack, %x_326
+            %160:i32 = add %x_327, 1i
+            store %159, %160
+            %161:i32 = load %top
+            %x_330:i32 = let %161
+            %163:i32 = add %x_330, 1i
+            %x_331:i32 = let %163
             store %top, %x_331
-            %x_332:i32 = load %h_1
-            %113:ptr<function, i32, read_write> = access %stack, %x_331
-            store %113, %x_332
+            %165:i32 = load %h_1
+            %x_332:i32 = let %165
+            %167:ptr<function, i32, read_write> = access %stack, %x_331
+            store %167, %x_332
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_89:i32 = load %i_2
-        %119:bool = lt %x_89, 10i
-        if %119 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %172:i32 = load %i_2
+        %x_89:i32 = let %172
+        %174:bool = lt %x_89, 10i
+        if %174 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_92:i32 = load %i_2
-        %x_93:i32 = load %i_2
-        %122:ptr<private, i32, read_write> = access %obj, 0u, %x_92
-        %123:i32 = sub 10i, %x_93
-        store %122, %123
-        %x_96:i32 = load %i_2
-        %x_97:i32 = load %i_2
-        %126:ptr<private, i32, read_write> = access %obj, 0u, %x_97
-        %x_99:i32 = load %126
-        %x_100:i32 = load %i_2
-        %129:ptr<private, i32, read_write> = access %obj, 0u, %x_100
-        %x_102:i32 = load %129
-        %131:ptr<private, i32, read_write> = access %obj, 0u, %x_96
-        %132:i32 = mul %x_99, %x_102
-        store %131, %132
-        continue %b18
+        %175:i32 = load %i_2
+        %x_92:i32 = let %175
+        %177:i32 = load %i_2
+        %x_93:i32 = let %177
+        %179:ptr<private, i32, read_write> = access %obj, 0u, %x_92
+        %180:i32 = sub 10i, %x_93
+        store %179, %180
+        %181:i32 = load %i_2
+        %x_96:i32 = let %181
+        %183:i32 = load %i_2
+        %x_97:i32 = let %183
+        %185:ptr<private, i32, read_write> = access %obj, 0u, %x_97
+        %186:i32 = load %185
+        %x_99:i32 = let %186
+        %188:i32 = load %i_2
+        %x_100:i32 = let %188
+        %190:ptr<private, i32, read_write> = access %obj, 0u, %x_100
+        %191:i32 = load %190
+        %x_102:i32 = let %191
+        %193:ptr<private, i32, read_write> = access %obj, 0u, %x_96
+        %194:i32 = mul %x_99, %x_102
+        store %193, %194
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %x_105:i32 = load %i_2
-        %134:i32 = add %x_105, 1i
-        store %i_2, %134
-        next_iteration %b17
+      $B18: {  # continuing
+        %195:i32 = load %i_2
+        %x_105:i32 = let %195
+        %197:i32 = add %x_105, 1i
+        store %i_2, %197
+        next_iteration  # -> $B17
       }
     }
-    %135:void = call %quicksort_
-    %x_108:vec4<f32> = load %gl_FragCoord
-    %137:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
-    %x_111:vec2<f32> = load %137
-    %139:f32 = access %x_108, 0u
-    %140:f32 = access %x_108, 1u
-    %141:vec2<f32> = construct %139, %140
-    %142:vec2<f32> = div %141, %x_111
-    store %uv, %142
+    %198:void = call %quicksort_
+    %199:vec4<f32> = load %gl_FragCoord
+    %x_108:vec4<f32> = let %199
+    %201:ptr<uniform, vec2<f32>, read> = access %x_32, 0u
+    %202:vec2<f32> = load %201
+    %x_111:vec2<f32> = let %202
+    %204:f32 = access %x_108, 0u
+    %205:f32 = access %x_108, 1u
+    %206:vec2<f32> = construct %204, %205
+    %207:vec2<f32> = div %206, %x_111
+    store %uv, %207
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %143:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_114:i32 = load %143
-    %x_117:f32 = load_vector_element %color, 0u
-    %146:f32 = convert %x_114
-    %147:f32 = add %x_117, %146
-    store_vector_element %color, 0u, %147
-    %x_121:f32 = load_vector_element %uv, 0u
-    %149:bool = gt %x_121, 0.25f
-    if %149 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %150:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_126:i32 = load %150
-        %x_129:f32 = load_vector_element %color, 0u
-        %153:f32 = convert %x_126
-        %154:f32 = add %x_129, %153
-        store_vector_element %color, 0u, %154
+    %208:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %209:i32 = load %208
+    %x_114:i32 = let %209
+    %211:f32 = load_vector_element %color, 0u
+    %x_117:f32 = let %211
+    %213:f32 = convert %x_114
+    %214:f32 = add %x_117, %213
+    store_vector_element %color, 0u, %214
+    %215:f32 = load_vector_element %uv, 0u
+    %x_121:f32 = let %215
+    %217:bool = gt %x_121, 0.25f
+    if %217 [t: $B21] {  # if_7
+      $B21: {  # true
+        %218:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %219:i32 = load %218
+        %x_126:i32 = let %219
+        %221:f32 = load_vector_element %color, 0u
+        %x_129:f32 = let %221
+        %223:f32 = convert %x_126
+        %224:f32 = add %x_129, %223
+        store_vector_element %color, 0u, %224
         exit_if  # if_7
       }
     }
-    %x_133:f32 = load_vector_element %uv, 0u
-    %156:bool = gt %x_133, 0.5f
-    if %156 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %157:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_138:i32 = load %157
-        %x_141:f32 = load_vector_element %color, 1u
-        %160:f32 = convert %x_138
-        %161:f32 = add %x_141, %160
-        store_vector_element %color, 1u, %161
+    %225:f32 = load_vector_element %uv, 0u
+    %x_133:f32 = let %225
+    %227:bool = gt %x_133, 0.5f
+    if %227 [t: $B22] {  # if_8
+      $B22: {  # true
+        %228:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %229:i32 = load %228
+        %x_138:i32 = let %229
+        %231:f32 = load_vector_element %color, 1u
+        %x_141:f32 = let %231
+        %233:f32 = convert %x_138
+        %234:f32 = add %x_141, %233
+        store_vector_element %color, 1u, %234
         exit_if  # if_8
       }
     }
-    %x_145:f32 = load_vector_element %uv, 0u
-    %163:bool = gt %x_145, 0.75f
-    if %163 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %164:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_150:i32 = load %164
-        %x_153:f32 = load_vector_element %color, 2u
-        %167:f32 = convert %x_150
-        %168:f32 = add %x_153, %167
-        store_vector_element %color, 2u, %168
+    %235:f32 = load_vector_element %uv, 0u
+    %x_145:f32 = let %235
+    %237:bool = gt %x_145, 0.75f
+    if %237 [t: $B23] {  # if_9
+      $B23: {  # true
+        %238:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %239:i32 = load %238
+        %x_150:i32 = let %239
+        %241:f32 = load_vector_element %color, 2u
+        %x_153:f32 = let %241
+        %243:f32 = convert %x_150
+        %244:f32 = add %x_153, %243
+        store_vector_element %color, 2u, %244
         exit_if  # if_9
       }
     }
-    %169:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_157:i32 = load %169
-    %x_160:f32 = load_vector_element %color, 1u
-    %172:f32 = convert %x_157
-    %173:f32 = add %x_160, %172
-    store_vector_element %color, 1u, %173
-    %x_164:f32 = load_vector_element %uv, 1u
-    %175:bool = gt %x_164, 0.25f
-    if %175 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %176:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_169:i32 = load %176
-        %x_172:f32 = load_vector_element %color, 0u
-        %179:f32 = convert %x_169
-        %180:f32 = add %x_172, %179
-        store_vector_element %color, 0u, %180
+    %245:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %246:i32 = load %245
+    %x_157:i32 = let %246
+    %248:f32 = load_vector_element %color, 1u
+    %x_160:f32 = let %248
+    %250:f32 = convert %x_157
+    %251:f32 = add %x_160, %250
+    store_vector_element %color, 1u, %251
+    %252:f32 = load_vector_element %uv, 1u
+    %x_164:f32 = let %252
+    %254:bool = gt %x_164, 0.25f
+    if %254 [t: $B24] {  # if_10
+      $B24: {  # true
+        %255:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %256:i32 = load %255
+        %x_169:i32 = let %256
+        %258:f32 = load_vector_element %color, 0u
+        %x_172:f32 = let %258
+        %260:f32 = convert %x_169
+        %261:f32 = add %x_172, %260
+        store_vector_element %color, 0u, %261
         exit_if  # if_10
       }
     }
-    %x_176:f32 = load_vector_element %uv, 1u
-    %182:bool = gt %x_176, 0.5f
-    if %182 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %183:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_181:i32 = load %183
-        %x_184:f32 = load_vector_element %color, 1u
-        %186:f32 = convert %x_181
-        %187:f32 = add %x_184, %186
-        store_vector_element %color, 1u, %187
+    %262:f32 = load_vector_element %uv, 1u
+    %x_176:f32 = let %262
+    %264:bool = gt %x_176, 0.5f
+    if %264 [t: $B25] {  # if_11
+      $B25: {  # true
+        %265:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %266:i32 = load %265
+        %x_181:i32 = let %266
+        %268:f32 = load_vector_element %color, 1u
+        %x_184:f32 = let %268
+        %270:f32 = convert %x_181
+        %271:f32 = add %x_184, %270
+        store_vector_element %color, 1u, %271
         exit_if  # if_11
       }
     }
-    %x_188:f32 = load_vector_element %uv, 1u
-    %189:bool = gt %x_188, 0.75f
-    if %189 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %190:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_193:i32 = load %190
-        %x_196:f32 = load_vector_element %color, 2u
-        %193:f32 = convert %x_193
-        %194:f32 = add %x_196, %193
-        store_vector_element %color, 2u, %194
+    %272:f32 = load_vector_element %uv, 1u
+    %x_188:f32 = let %272
+    %274:bool = gt %x_188, 0.75f
+    if %274 [t: $B26] {  # if_12
+      $B26: {  # true
+        %275:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %276:i32 = load %275
+        %x_193:i32 = let %276
+        %278:f32 = load_vector_element %color, 2u
+        %x_196:f32 = let %278
+        %280:f32 = convert %x_193
+        %281:f32 = add %x_196, %280
+        store_vector_element %color, 2u, %281
         exit_if  # if_12
       }
     }
-    %195:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_200:i32 = load %195
-    %x_203:f32 = load_vector_element %color, 2u
-    %198:f32 = convert %x_200
-    %199:f32 = add %x_203, %198
-    store_vector_element %color, 2u, %199
-    %x_207:f32 = load_vector_element %uv, 0u
-    %x_209:f32 = load_vector_element %uv, 1u
-    %202:f32 = sub %x_207, %x_209
-    %203:f32 = abs %202
-    %204:bool = lt %203, 0.25f
-    if %204 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %205:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_216:i32 = load %205
-        %x_219:f32 = load_vector_element %color, 0u
-        %208:f32 = convert %x_216
-        %209:f32 = add %x_219, %208
-        store_vector_element %color, 0u, %209
+    %282:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %283:i32 = load %282
+    %x_200:i32 = let %283
+    %285:f32 = load_vector_element %color, 2u
+    %x_203:f32 = let %285
+    %287:f32 = convert %x_200
+    %288:f32 = add %x_203, %287
+    store_vector_element %color, 2u, %288
+    %289:f32 = load_vector_element %uv, 0u
+    %x_207:f32 = let %289
+    %291:f32 = load_vector_element %uv, 1u
+    %x_209:f32 = let %291
+    %293:f32 = sub %x_207, %x_209
+    %294:f32 = abs %293
+    %295:bool = lt %294, 0.25f
+    if %295 [t: $B27] {  # if_13
+      $B27: {  # true
+        %296:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %297:i32 = load %296
+        %x_216:i32 = let %297
+        %299:f32 = load_vector_element %color, 0u
+        %x_219:f32 = let %299
+        %301:f32 = convert %x_216
+        %302:f32 = add %x_219, %301
+        store_vector_element %color, 0u, %302
         exit_if  # if_13
       }
     }
-    %x_222:vec3<f32> = load %color
-    %x_223:vec3<f32> = normalize %x_222
-    %212:f32 = access %x_223, 0u
-    %213:f32 = access %x_223, 1u
-    %214:f32 = access %x_223, 2u
-    %215:vec4<f32> = construct %212, %213, %214, 1.0f
-    store %x_GLF_color, %215
+    %303:vec3<f32> = load %color
+    %x_222:vec3<f32> = let %303
+    %305:vec3<f32> = normalize %x_222
+    %x_223:vec3<f32> = let %305
+    %307:f32 = access %x_223, 0u
+    %308:f32 = access %x_223, 1u
+    %309:f32 = access %x_223, 2u
+    %310:vec4<f32> = construct %307, %308, %309, 1.0f
+    store %x_GLF_color, %310
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B28: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %218:void = call %main_1
-    %219:vec4<f32> = load %x_GLF_color
-    %220:main_out = construct %219
-    ret %220
+    %313:void = call %main_1
+    %314:vec4<f32> = load %x_GLF_color
+    %315:main_out = construct %314
+    ret %315
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.msl
index b15de75..04428d8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_81:ptr<function, array<vec4<f32>, 8>, read_write> = var, array<vec4<f32>, 8>(vec4<f32>(0.0f))
     %x_82:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_83:ptr<function, array<vec4<f32>, 8>, read_write> = var
@@ -24,72 +24,78 @@
     %x_95:ptr<function, vec4<f32>, read_write> = var
     %x_98:ptr<function, i32, read_write> = var
     store %x_81, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-    %x_86:array<vec4<f32>, 8> = load %x_81
-    %13:vec4<f32> = load %gl_FragCoord
-    %14:vec2<f32> = swizzle %13, xy
-    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %16:vec2<f32> = load %15
-    %17:vec2<f32> = div %14, %16
-    %18:vec2<f32> = mul %17, 32.0f
-    %x_93:vec2<f32> = floor %18
+    %12:array<vec4<f32>, 8> = load %x_81
+    %x_86:array<vec4<f32>, 8> = let %12
+    %14:vec4<f32> = load %gl_FragCoord
+    %15:vec2<f32> = swizzle %14, xy
+    %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %17:vec2<f32> = load %16
+    %18:vec2<f32> = div %15, %17
+    %19:vec2<f32> = mul %18, 32.0f
+    %20:vec2<f32> = floor %19
+    %x_93:vec2<f32> = let %20
     store %x_95, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %x_98, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_127:ptr<function, bool, read_write> = var
         %x_143:ptr<function, vec4<f32>, read_write> = var
         %x_96:ptr<function, vec4<f32>, read_write> = var
         %x_99:ptr<function, i32, read_write> = var
-        %24:i32 = load %x_98
-        %25:bool = lt %24, 8i
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %26:i32 = load %x_98
+        %27:bool = lt %26, 8i
+        if %27 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_104:ptr<function, vec4<f32>, read_write> = var
         store %x_82, %x_86
-        %27:i32 = load %x_98
-        %28:ptr<function, vec4<f32>, read_write> = access %x_82, %27
-        %29:vec4<f32> = load %28
-        store %x_104, %29
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %x_107:f32 = access %x_93, 0u
-            %x_108:f32 = load_vector_element %x_104, 0u
-            %32:bool = lt %x_107, %x_108
-            if %32 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        %29:i32 = load %x_98
+        %30:ptr<function, vec4<f32>, read_write> = access %x_82, %29
+        %31:vec4<f32> = load %30
+        store %x_104, %31
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %32:f32 = access %x_93, 0u
+            %x_107:f32 = let %32
+            %34:f32 = load_vector_element %x_104, 0u
+            %x_108:f32 = let %34
+            %36:bool = lt %x_107, %x_108
+            if %36 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
             }
-            %x_112:f32 = access %x_93, 1u
-            %x_113:f32 = load_vector_element %x_104, 1u
-            %35:bool = lt %x_112, %x_113
-            if %35 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %37:f32 = access %x_93, 1u
+            %x_112:f32 = let %37
+            %39:f32 = load_vector_element %x_104, 1u
+            %x_113:f32 = let %39
+            %41:bool = lt %x_112, %x_113
+            if %41 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
             }
-            %36:f32 = load_vector_element %x_104, 2u
-            %37:f32 = add %x_108, %36
-            %38:bool = gt %x_107, %37
-            if %38 [t: %b10] {  # if_4
-              %b10 = block {  # true
+            %42:f32 = load_vector_element %x_104, 2u
+            %43:f32 = add %x_108, %42
+            %44:bool = gt %x_107, %43
+            if %44 [t: $B10] {  # if_4
+              $B10: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
             }
-            %39:f32 = load_vector_element %x_104, 3u
-            %40:f32 = add %x_113, %39
-            %41:bool = gt %x_112, %40
-            if %41 [t: %b11] {  # if_5
-              %b11 = block {  # true
+            %45:f32 = load_vector_element %x_104, 3u
+            %46:f32 = add %x_113, %45
+            %47:bool = gt %x_112, %46
+            if %47 [t: $B11] {  # if_5
+              $B11: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
@@ -98,64 +104,93 @@
             exit_switch  # switch_1
           }
         }
-        %42:vec4<f32> = load %x_95
-        store %x_96, %42
-        %43:bool = load %x_127
-        if %43 [t: %b12] {  # if_6
-          %b12 = block {  # true
+        %48:vec4<f32> = load %x_95
+        store %x_96, %48
+        %49:bool = load %x_127
+        if %49 [t: $B12] {  # if_6
+          $B12: {  # true
             store %x_83, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %44:i32 = load %x_98
-            %45:ptr<function, vec4<f32>, read_write> = access %x_83, %44
-            %x_131:f32 = load_vector_element %45, 0u
+            %50:i32 = load %x_98
+            %51:ptr<function, vec4<f32>, read_write> = access %x_83, %50
+            %52:f32 = load_vector_element %51, 0u
+            %x_131:f32 = let %52
             store %x_84, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:i32 = load %x_98
-            %48:ptr<function, vec4<f32>, read_write> = access %x_84, %47
-            %x_134:f32 = load_vector_element %48, 1u
-            %x_135:array<vec4<f32>, 8> = load %x_81
+            %54:i32 = load %x_98
+            %55:ptr<function, vec4<f32>, read_write> = access %x_84, %54
+            %56:f32 = load_vector_element %55, 1u
+            %x_134:f32 = let %56
+            %58:array<vec4<f32>, 8> = load %x_81
+            %x_135:array<vec4<f32>, 8> = let %58
             store %x_81, array<vec4<f32>, 8>(vec4<f32>(0.0f))
             store %x_81, %x_135
             store %x_85, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %51:i32 = convert %x_131
-            %52:i32 = convert %x_134
-            %53:i32 = mul %51, %52
-            %54:i32 = load %x_98
-            %55:i32 = mul %54, 9i
-            %56:i32 = add %53, %55
-            %57:i32 = add %56, 11i
-            %58:i32 = mod %57, 16i
-            %59:ptr<function, vec4<f32>, read_write> = access %x_85, %58
-            %60:vec4<f32> = load %59
-            store %x_143, %60
-            %61:vec4<f32> = load %x_143
-            store %x_96, %61
+            %60:i32 = call %tint_f32_to_i32, %x_131
+            %62:i32 = let %60
+            %63:i32 = call %tint_f32_to_i32, %x_134
+            %64:i32 = mul %62, %63
+            %65:i32 = load %x_98
+            %66:i32 = mul %65, 9i
+            %67:i32 = add %64, %66
+            %68:i32 = add %67, 11i
+            %69:i32 = call %tint_mod_i32, %68, 16i
+            %71:ptr<function, vec4<f32>, read_write> = access %x_85, %69
+            %72:vec4<f32> = load %71
+            store %x_143, %72
+            %73:vec4<f32> = load %x_143
+            store %x_96, %73
             exit_if  # if_6
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %62:i32 = load %x_98
-        %63:i32 = add %62, 1i
-        store %x_99, %63
-        %64:vec4<f32> = load %x_96
-        store %x_95, %64
-        %65:i32 = load %x_99
-        store %x_98, %65
-        next_iteration %b3
+      $B4: {  # continuing
+        %74:i32 = load %x_98
+        %75:i32 = add %74, 1i
+        store %x_99, %75
+        %76:vec4<f32> = load %x_96
+        store %x_95, %76
+        %77:i32 = load %x_99
+        store %x_98, %77
+        next_iteration  # -> $B3
       }
     }
-    %66:vec4<f32> = load %x_95
-    store %x_GLF_color, %66
+    %78:vec4<f32> = load %x_95
+    store %x_GLF_color, %78
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %69:void = call %main_1
-    %70:vec4<f32> = load %x_GLF_color
-    %71:main_out = construct %70
-    ret %71
+    %81:void = call %main_1
+    %82:vec4<f32> = load %x_GLF_color
+    %83:main_out = construct %82
+    ret %83
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %86:bool = eq %rhs, 0i
+    %87:bool = eq %lhs, -2147483648i
+    %88:bool = eq %rhs, -1i
+    %89:bool = and %87, %88
+    %90:bool = or %86, %89
+    %91:i32 = select %rhs, 1i, %90
+    %92:i32 = let %91
+    %93:i32 = div %lhs, %92
+    %94:i32 = mul %93, %92
+    %95:i32 = sub %lhs, %94
+    ret %95
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %97:i32 = convert %value
+    %98:bool = gte %value, -2147483648.0f
+    %99:i32 = select -2147483648i, %97, %98
+    %100:bool = lte %value, 2147483520.0f
+    %101:i32 = select 2147483647i, %99, %100
+    ret %101
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.msl
index bf0511f..4811209 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_81:ptr<function, array<vec4<f32>, 8>, read_write> = var, array<vec4<f32>, 8>(vec4<f32>(0.0f))
     %x_82:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_83:ptr<function, array<vec4<f32>, 8>, read_write> = var
@@ -25,75 +25,84 @@
     %x_95_phi:ptr<function, vec4<f32>, read_write> = var
     %x_98_phi:ptr<function, i32, read_write> = var
     store %x_81, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-    %x_86:array<vec4<f32>, 8> = load %x_81
-    %x_87:vec4<f32> = load %gl_FragCoord
-    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_90:vec2<f32> = load %15
-    %17:f32 = access %x_87, 0u
-    %18:f32 = access %x_87, 1u
-    %19:vec2<f32> = construct %17, %18
-    %20:vec2<f32> = div %19, %x_90
-    %21:vec2<f32> = mul %20, 32.0f
-    %x_93:vec2<f32> = floor %21
+    %13:array<vec4<f32>, 8> = load %x_81
+    %x_86:array<vec4<f32>, 8> = let %13
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_87:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %18:vec2<f32> = load %17
+    %x_90:vec2<f32> = let %18
+    %20:f32 = access %x_87, 0u
+    %21:f32 = access %x_87, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_90
+    %24:vec2<f32> = mul %23, 32.0f
+    %25:vec2<f32> = floor %24
+    %x_93:vec2<f32> = let %25
     store %x_95_phi, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %x_98_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_143:ptr<function, vec4<f32>, read_write> = var
         %x_99:ptr<function, i32, read_write> = var
         %x_127_phi:ptr<function, bool, read_write> = var
         %x_96_phi:ptr<function, vec4<f32>, read_write> = var
-        %27:vec4<f32> = load %x_95_phi
-        store %x_95, %27
-        %x_98:i32 = load %x_98_phi
-        %29:bool = lt %x_98, 8i
-        if %29 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %31:vec4<f32> = load %x_95_phi
+        store %x_95, %31
+        %32:i32 = load %x_98_phi
+        %x_98:i32 = let %32
+        %34:bool = lt %x_98, 8i
+        if %34 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_104:ptr<function, vec4<f32>, read_write> = var
         store %x_82, %x_86
-        %31:ptr<function, vec4<f32>, read_write> = access %x_82, %x_98
-        %32:vec4<f32> = load %31
-        store %x_104, %32
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %x_107:f32 = access %x_93, 0u
-            %x_108:f32 = load_vector_element %x_104, 0u
-            %35:bool = lt %x_107, %x_108
-            if %35 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        %36:ptr<function, vec4<f32>, read_write> = access %x_82, %x_98
+        %37:vec4<f32> = load %36
+        store %x_104, %37
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %38:f32 = access %x_93, 0u
+            %x_107:f32 = let %38
+            %40:f32 = load_vector_element %x_104, 0u
+            %x_108:f32 = let %40
+            %42:bool = lt %x_107, %x_108
+            if %42 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
             }
-            %x_112:f32 = access %x_93, 1u
-            %x_113:f32 = load_vector_element %x_104, 1u
-            %38:bool = lt %x_112, %x_113
-            if %38 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %43:f32 = access %x_93, 1u
+            %x_112:f32 = let %43
+            %45:f32 = load_vector_element %x_104, 1u
+            %x_113:f32 = let %45
+            %47:bool = lt %x_112, %x_113
+            if %47 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
             }
-            %39:f32 = load_vector_element %x_104, 2u
-            %40:f32 = add %x_108, %39
-            %41:bool = gt %x_107, %40
-            if %41 [t: %b10] {  # if_4
-              %b10 = block {  # true
+            %48:f32 = load_vector_element %x_104, 2u
+            %49:f32 = add %x_108, %48
+            %50:bool = gt %x_107, %49
+            if %50 [t: $B10] {  # if_4
+              $B10: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
             }
-            %42:f32 = load_vector_element %x_104, 3u
-            %43:f32 = add %x_113, %42
-            %44:bool = gt %x_112, %43
-            if %44 [t: %b11] {  # if_5
-              %b11 = block {  # true
+            %51:f32 = load_vector_element %x_104, 3u
+            %52:f32 = add %x_113, %51
+            %53:bool = gt %x_112, %52
+            if %53 [t: $B11] {  # if_5
+              $B11: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
@@ -102,60 +111,91 @@
             exit_switch  # switch_1
           }
         }
-        %x_127:bool = load %x_127_phi
-        %46:vec4<f32> = load %x_95
-        store %x_96_phi, %46
-        if %x_127 [t: %b12] {  # if_6
-          %b12 = block {  # true
+        %54:bool = load %x_127_phi
+        %x_127:bool = let %54
+        %56:vec4<f32> = load %x_95
+        store %x_96_phi, %56
+        if %x_127 [t: $B12] {  # if_6
+          $B12: {  # true
             store %x_83, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:ptr<function, vec4<f32>, read_write> = access %x_83, %x_98
-            %x_131:f32 = load_vector_element %47, 0u
+            %57:ptr<function, vec4<f32>, read_write> = access %x_83, %x_98
+            %58:f32 = load_vector_element %57, 0u
+            %x_131:f32 = let %58
             store %x_84, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %49:ptr<function, vec4<f32>, read_write> = access %x_84, %x_98
-            %x_134:f32 = load_vector_element %49, 1u
-            %x_135:array<vec4<f32>, 8> = load %x_81
+            %60:ptr<function, vec4<f32>, read_write> = access %x_84, %x_98
+            %61:f32 = load_vector_element %60, 1u
+            %x_134:f32 = let %61
+            %63:array<vec4<f32>, 8> = load %x_81
+            %x_135:array<vec4<f32>, 8> = let %63
             store %x_81, array<vec4<f32>, 8>(vec4<f32>(0.0f))
             store %x_81, %x_135
             store %x_85, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %52:i32 = convert %x_131
-            %53:i32 = convert %x_134
-            %54:i32 = mul %52, %53
-            %55:i32 = mul %x_98, 9i
-            %56:i32 = add %54, %55
-            %57:i32 = add %56, 11i
-            %58:i32 = mod %57, 16i
-            %59:ptr<function, vec4<f32>, read_write> = access %x_85, %58
-            %60:vec4<f32> = load %59
-            store %x_143, %60
-            %61:vec4<f32> = load %x_143
-            store %x_96_phi, %61
+            %65:i32 = call %tint_f32_to_i32, %x_131
+            %67:i32 = let %65
+            %68:i32 = call %tint_f32_to_i32, %x_134
+            %69:i32 = mul %67, %68
+            %70:i32 = mul %x_98, 9i
+            %71:i32 = add %69, %70
+            %72:i32 = add %71, 11i
+            %73:i32 = call %tint_mod_i32, %72, 16i
+            %75:ptr<function, vec4<f32>, read_write> = access %x_85, %73
+            %76:vec4<f32> = load %75
+            store %x_143, %76
+            %77:vec4<f32> = load %x_143
+            store %x_96_phi, %77
             exit_if  # if_6
           }
         }
-        %x_96:vec4<f32> = load %x_96_phi
-        continue %b4
+        %78:vec4<f32> = load %x_96_phi
+        %x_96:vec4<f32> = let %78
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %63:i32 = add %x_98, 1i
-        store %x_99, %63
+      $B4: {  # continuing
+        %80:i32 = add %x_98, 1i
+        store %x_99, %80
         store %x_95_phi, %x_96
-        %64:i32 = load %x_99
-        store %x_98_phi, %64
-        next_iteration %b3
+        %81:i32 = load %x_99
+        store %x_98_phi, %81
+        next_iteration  # -> $B3
       }
     }
-    %65:vec4<f32> = load %x_95
-    store %x_GLF_color, %65
+    %82:vec4<f32> = load %x_95
+    store %x_GLF_color, %82
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+    %85:void = call %main_1
+    %86:vec4<f32> = load %x_GLF_color
+    %87:main_out = construct %86
+    ret %87
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %90:bool = eq %rhs, 0i
+    %91:bool = eq %lhs, -2147483648i
+    %92:bool = eq %rhs, -1i
+    %93:bool = and %91, %92
+    %94:bool = or %90, %93
+    %95:i32 = select %rhs, 1i, %94
+    %96:i32 = let %95
+    %97:i32 = div %lhs, %96
+    %98:i32 = mul %97, %96
+    %99:i32 = sub %lhs, %98
+    ret %99
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %101:i32 = convert %value
+    %102:bool = gte %value, -2147483648.0f
+    %103:i32 = select -2147483648i, %101, %102
+    %104:bool = lte %value, 2147483520.0f
+    %105:i32 = select 2147483647i, %103, %104
+    ret %105
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.msl
index b0fdab5..3e3d461 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_81:ptr<function, array<vec4<f32>, 8>, read_write> = var, array<vec4<f32>, 8>(vec4<f32>(0.0f))
     %x_82:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_83:ptr<function, array<vec4<f32>, 8>, read_write> = var
@@ -24,72 +24,78 @@
     %x_95:ptr<function, vec4<f32>, read_write> = var
     %x_98:ptr<function, i32, read_write> = var
     store %x_81, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-    %x_86:array<vec4<f32>, 8> = load %x_81
-    %13:vec4<f32> = load %gl_FragCoord
-    %14:vec2<f32> = swizzle %13, xy
-    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %16:vec2<f32> = load %15
-    %17:vec2<f32> = div %14, %16
-    %18:vec2<f32> = mul %17, 32.0f
-    %x_93:vec2<f32> = floor %18
+    %12:array<vec4<f32>, 8> = load %x_81
+    %x_86:array<vec4<f32>, 8> = let %12
+    %14:vec4<f32> = load %gl_FragCoord
+    %15:vec2<f32> = swizzle %14, xy
+    %16:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %17:vec2<f32> = load %16
+    %18:vec2<f32> = div %15, %17
+    %19:vec2<f32> = mul %18, 32.0f
+    %20:vec2<f32> = floor %19
+    %x_93:vec2<f32> = let %20
     store %x_95, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %x_98, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_127:ptr<function, bool, read_write> = var
         %x_142:ptr<function, vec4<f32>, read_write> = var
         %x_96:ptr<function, vec4<f32>, read_write> = var
         %x_99:ptr<function, i32, read_write> = var
-        %24:i32 = load %x_98
-        %25:bool = lt %24, 8i
-        if %25 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %26:i32 = load %x_98
+        %27:bool = lt %26, 8i
+        if %27 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_104:ptr<function, vec4<f32>, read_write> = var
         store %x_82, %x_86
-        %27:i32 = load %x_98
-        %28:ptr<function, vec4<f32>, read_write> = access %x_82, %27
-        %29:vec4<f32> = load %28
-        store %x_104, %29
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %x_107:f32 = access %x_93, 0u
-            %x_108:f32 = load_vector_element %x_104, 0u
-            %32:bool = lt %x_107, %x_108
-            if %32 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        %29:i32 = load %x_98
+        %30:ptr<function, vec4<f32>, read_write> = access %x_82, %29
+        %31:vec4<f32> = load %30
+        store %x_104, %31
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %32:f32 = access %x_93, 0u
+            %x_107:f32 = let %32
+            %34:f32 = load_vector_element %x_104, 0u
+            %x_108:f32 = let %34
+            %36:bool = lt %x_107, %x_108
+            if %36 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
             }
-            %x_112:f32 = access %x_93, 1u
-            %x_113:f32 = load_vector_element %x_104, 1u
-            %35:bool = lt %x_112, %x_113
-            if %35 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %37:f32 = access %x_93, 1u
+            %x_112:f32 = let %37
+            %39:f32 = load_vector_element %x_104, 1u
+            %x_113:f32 = let %39
+            %41:bool = lt %x_112, %x_113
+            if %41 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
             }
-            %36:f32 = load_vector_element %x_104, 2u
-            %37:f32 = add %x_108, %36
-            %38:bool = gt %x_107, %37
-            if %38 [t: %b10] {  # if_4
-              %b10 = block {  # true
+            %42:f32 = load_vector_element %x_104, 2u
+            %43:f32 = add %x_108, %42
+            %44:bool = gt %x_107, %43
+            if %44 [t: $B10] {  # if_4
+              $B10: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
             }
-            %39:f32 = load_vector_element %x_104, 3u
-            %40:f32 = add %x_113, %39
-            %41:bool = gt %x_112, %40
-            if %41 [t: %b11] {  # if_5
-              %b11 = block {  # true
+            %45:f32 = load_vector_element %x_104, 3u
+            %46:f32 = add %x_113, %45
+            %47:bool = gt %x_112, %46
+            if %47 [t: $B11] {  # if_5
+              $B11: {  # true
                 store %x_127, false
                 exit_switch  # switch_1
               }
@@ -98,61 +104,89 @@
             exit_switch  # switch_1
           }
         }
-        %42:vec4<f32> = load %x_95
-        store %x_96, %42
-        %43:bool = load %x_127
-        if %43 [t: %b12] {  # if_6
-          %b12 = block {  # true
+        %48:vec4<f32> = load %x_95
+        store %x_96, %48
+        %49:bool = load %x_127
+        if %49 [t: $B12] {  # if_6
+          $B12: {  # true
             store %x_83, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %44:i32 = load %x_98
-            %45:ptr<function, vec4<f32>, read_write> = access %x_83, %44
-            %x_131:f32 = load_vector_element %45, 0u
+            %50:i32 = load %x_98
+            %51:ptr<function, vec4<f32>, read_write> = access %x_83, %50
+            %52:f32 = load_vector_element %51, 0u
+            %x_131:f32 = let %52
             store %x_84, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:i32 = load %x_98
-            %48:ptr<function, vec4<f32>, read_write> = access %x_84, %47
-            %x_134:f32 = load_vector_element %48, 1u
+            %54:i32 = load %x_98
+            %55:ptr<function, vec4<f32>, read_write> = access %x_84, %54
+            %56:f32 = load_vector_element %55, 1u
+            %x_134:f32 = let %56
             store %x_85, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %50:i32 = convert %x_131
-            %51:i32 = convert %x_134
-            %52:i32 = mul %50, %51
-            %53:i32 = load %x_98
-            %54:i32 = mul %53, 9i
-            %55:i32 = add %52, %54
-            %56:i32 = add %55, 11i
-            %57:i32 = mod %56, 16i
-            %58:ptr<function, vec4<f32>, read_write> = access %x_85, %57
-            %59:vec4<f32> = load %58
-            store %x_142, %59
-            %60:vec4<f32> = load %x_142
-            store %x_96, %60
+            %58:i32 = call %tint_f32_to_i32, %x_131
+            %60:i32 = let %58
+            %61:i32 = call %tint_f32_to_i32, %x_134
+            %62:i32 = mul %60, %61
+            %63:i32 = load %x_98
+            %64:i32 = mul %63, 9i
+            %65:i32 = add %62, %64
+            %66:i32 = add %65, 11i
+            %67:i32 = call %tint_mod_i32, %66, 16i
+            %69:ptr<function, vec4<f32>, read_write> = access %x_85, %67
+            %70:vec4<f32> = load %69
+            store %x_142, %70
+            %71:vec4<f32> = load %x_142
+            store %x_96, %71
             exit_if  # if_6
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %61:i32 = load %x_98
-        %62:i32 = add %61, 1i
-        store %x_99, %62
-        %63:vec4<f32> = load %x_96
-        store %x_95, %63
-        %64:i32 = load %x_99
-        store %x_98, %64
-        next_iteration %b3
+      $B4: {  # continuing
+        %72:i32 = load %x_98
+        %73:i32 = add %72, 1i
+        store %x_99, %73
+        %74:vec4<f32> = load %x_96
+        store %x_95, %74
+        %75:i32 = load %x_99
+        store %x_98, %75
+        next_iteration  # -> $B3
       }
     }
-    %65:vec4<f32> = load %x_95
-    store %x_GLF_color, %65
+    %76:vec4<f32> = load %x_95
+    store %x_GLF_color, %76
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %68:void = call %main_1
-    %69:vec4<f32> = load %x_GLF_color
-    %70:main_out = construct %69
-    ret %70
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    ret %81
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %84:bool = eq %rhs, 0i
+    %85:bool = eq %lhs, -2147483648i
+    %86:bool = eq %rhs, -1i
+    %87:bool = and %85, %86
+    %88:bool = or %84, %87
+    %89:i32 = select %rhs, 1i, %88
+    %90:i32 = let %89
+    %91:i32 = div %lhs, %90
+    %92:i32 = mul %91, %90
+    %93:i32 = sub %lhs, %92
+    ret %93
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %95:i32 = convert %value
+    %96:bool = gte %value, -2147483648.0f
+    %97:i32 = select -2147483648i, %95, %96
+    %98:bool = lte %value, 2147483520.0f
+    %99:i32 = select 2147483647i, %97, %98
+    ret %99
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.msl
index c7a0843..a5d0340 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/spv-stable-rects-Os-mutate-var-push-through-var/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_81:ptr<function, array<vec4<f32>, 8>, read_write> = var, array<vec4<f32>, 8>(vec4<f32>(0.0f))
     %x_82:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %x_83:ptr<function, array<vec4<f32>, 8>, read_write> = var
@@ -25,75 +25,84 @@
     %x_95_phi:ptr<function, vec4<f32>, read_write> = var
     %x_98_phi:ptr<function, i32, read_write> = var
     store %x_81, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-    %x_86:array<vec4<f32>, 8> = load %x_81
-    %x_87:vec4<f32> = load %gl_FragCoord
-    %15:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_90:vec2<f32> = load %15
-    %17:f32 = access %x_87, 0u
-    %18:f32 = access %x_87, 1u
-    %19:vec2<f32> = construct %17, %18
-    %20:vec2<f32> = div %19, %x_90
-    %21:vec2<f32> = mul %20, 32.0f
-    %x_93:vec2<f32> = floor %21
+    %13:array<vec4<f32>, 8> = load %x_81
+    %x_86:array<vec4<f32>, 8> = let %13
+    %15:vec4<f32> = load %gl_FragCoord
+    %x_87:vec4<f32> = let %15
+    %17:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+    %18:vec2<f32> = load %17
+    %x_90:vec2<f32> = let %18
+    %20:f32 = access %x_87, 0u
+    %21:f32 = access %x_87, 1u
+    %22:vec2<f32> = construct %20, %21
+    %23:vec2<f32> = div %22, %x_90
+    %24:vec2<f32> = mul %23, 32.0f
+    %25:vec2<f32> = floor %24
+    %x_93:vec2<f32> = let %25
     store %x_95_phi, vec4<f32>(0.5f, 0.5f, 1.0f, 1.0f)
     store %x_98_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_142:ptr<function, vec4<f32>, read_write> = var
         %x_99:ptr<function, i32, read_write> = var
         %x_127_phi:ptr<function, bool, read_write> = var
         %x_96_phi:ptr<function, vec4<f32>, read_write> = var
-        %27:vec4<f32> = load %x_95_phi
-        store %x_95, %27
-        %x_98:i32 = load %x_98_phi
-        %29:bool = lt %x_98, 8i
-        if %29 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %31:vec4<f32> = load %x_95_phi
+        store %x_95, %31
+        %32:i32 = load %x_98_phi
+        %x_98:i32 = let %32
+        %34:bool = lt %x_98, 8i
+        if %34 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_104:ptr<function, vec4<f32>, read_write> = var
         store %x_82, %x_86
-        %31:ptr<function, vec4<f32>, read_write> = access %x_82, %x_98
-        %32:vec4<f32> = load %31
-        store %x_104, %32
-        switch 0u [c: (default, %b7)] {  # switch_1
-          %b7 = block {  # case
-            %x_107:f32 = access %x_93, 0u
-            %x_108:f32 = load_vector_element %x_104, 0u
-            %35:bool = lt %x_107, %x_108
-            if %35 [t: %b8] {  # if_2
-              %b8 = block {  # true
+        %36:ptr<function, vec4<f32>, read_write> = access %x_82, %x_98
+        %37:vec4<f32> = load %36
+        store %x_104, %37
+        switch 0u [c: (default, $B7)] {  # switch_1
+          $B7: {  # case
+            %38:f32 = access %x_93, 0u
+            %x_107:f32 = let %38
+            %40:f32 = load_vector_element %x_104, 0u
+            %x_108:f32 = let %40
+            %42:bool = lt %x_107, %x_108
+            if %42 [t: $B8] {  # if_2
+              $B8: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
             }
-            %x_112:f32 = access %x_93, 1u
-            %x_113:f32 = load_vector_element %x_104, 1u
-            %38:bool = lt %x_112, %x_113
-            if %38 [t: %b9] {  # if_3
-              %b9 = block {  # true
+            %43:f32 = access %x_93, 1u
+            %x_112:f32 = let %43
+            %45:f32 = load_vector_element %x_104, 1u
+            %x_113:f32 = let %45
+            %47:bool = lt %x_112, %x_113
+            if %47 [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
             }
-            %39:f32 = load_vector_element %x_104, 2u
-            %40:f32 = add %x_108, %39
-            %41:bool = gt %x_107, %40
-            if %41 [t: %b10] {  # if_4
-              %b10 = block {  # true
+            %48:f32 = load_vector_element %x_104, 2u
+            %49:f32 = add %x_108, %48
+            %50:bool = gt %x_107, %49
+            if %50 [t: $B10] {  # if_4
+              $B10: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
             }
-            %42:f32 = load_vector_element %x_104, 3u
-            %43:f32 = add %x_113, %42
-            %44:bool = gt %x_112, %43
-            if %44 [t: %b11] {  # if_5
-              %b11 = block {  # true
+            %51:f32 = load_vector_element %x_104, 3u
+            %52:f32 = add %x_113, %51
+            %53:bool = gt %x_112, %52
+            if %53 [t: $B11] {  # if_5
+              $B11: {  # true
                 store %x_127_phi, false
                 exit_switch  # switch_1
               }
@@ -102,57 +111,87 @@
             exit_switch  # switch_1
           }
         }
-        %x_127:bool = load %x_127_phi
-        %46:vec4<f32> = load %x_95
-        store %x_96_phi, %46
-        if %x_127 [t: %b12] {  # if_6
-          %b12 = block {  # true
+        %54:bool = load %x_127_phi
+        %x_127:bool = let %54
+        %56:vec4<f32> = load %x_95
+        store %x_96_phi, %56
+        if %x_127 [t: $B12] {  # if_6
+          $B12: {  # true
             store %x_83, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %47:ptr<function, vec4<f32>, read_write> = access %x_83, %x_98
-            %x_131:f32 = load_vector_element %47, 0u
+            %57:ptr<function, vec4<f32>, read_write> = access %x_83, %x_98
+            %58:f32 = load_vector_element %57, 0u
+            %x_131:f32 = let %58
             store %x_84, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %49:ptr<function, vec4<f32>, read_write> = access %x_84, %x_98
-            %x_134:f32 = load_vector_element %49, 1u
+            %60:ptr<function, vec4<f32>, read_write> = access %x_84, %x_98
+            %61:f32 = load_vector_element %60, 1u
+            %x_134:f32 = let %61
             store %x_85, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %51:i32 = convert %x_131
-            %52:i32 = convert %x_134
-            %53:i32 = mul %51, %52
-            %54:i32 = mul %x_98, 9i
-            %55:i32 = add %53, %54
-            %56:i32 = add %55, 11i
-            %57:i32 = mod %56, 16i
-            %58:ptr<function, vec4<f32>, read_write> = access %x_85, %57
-            %59:vec4<f32> = load %58
-            store %x_142, %59
-            %60:vec4<f32> = load %x_142
-            store %x_96_phi, %60
+            %63:i32 = call %tint_f32_to_i32, %x_131
+            %65:i32 = let %63
+            %66:i32 = call %tint_f32_to_i32, %x_134
+            %67:i32 = mul %65, %66
+            %68:i32 = mul %x_98, 9i
+            %69:i32 = add %67, %68
+            %70:i32 = add %69, 11i
+            %71:i32 = call %tint_mod_i32, %70, 16i
+            %73:ptr<function, vec4<f32>, read_write> = access %x_85, %71
+            %74:vec4<f32> = load %73
+            store %x_142, %74
+            %75:vec4<f32> = load %x_142
+            store %x_96_phi, %75
             exit_if  # if_6
           }
         }
-        %x_96:vec4<f32> = load %x_96_phi
-        continue %b4
+        %76:vec4<f32> = load %x_96_phi
+        %x_96:vec4<f32> = let %76
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %62:i32 = add %x_98, 1i
-        store %x_99, %62
+      $B4: {  # continuing
+        %78:i32 = add %x_98, 1i
+        store %x_99, %78
         store %x_95_phi, %x_96
-        %63:i32 = load %x_99
-        store %x_98_phi, %63
-        next_iteration %b3
+        %79:i32 = load %x_99
+        store %x_98_phi, %79
+        next_iteration  # -> $B3
       }
     }
-    %64:vec4<f32> = load %x_95
-    store %x_GLF_color, %64
+    %80:vec4<f32> = load %x_95
+    store %x_GLF_color, %80
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b13 {
-  %b13 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B13: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %67:void = call %main_1
-    %68:vec4<f32> = load %x_GLF_color
-    %69:main_out = construct %68
-    ret %69
+    %83:void = call %main_1
+    %84:vec4<f32> = load %x_GLF_color
+    %85:main_out = construct %84
+    ret %85
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B14: {
+    %88:bool = eq %rhs, 0i
+    %89:bool = eq %lhs, -2147483648i
+    %90:bool = eq %rhs, -1i
+    %91:bool = and %89, %90
+    %92:bool = or %88, %91
+    %93:i32 = select %rhs, 1i, %92
+    %94:i32 = let %93
+    %95:i32 = div %lhs, %94
+    %96:i32 = mul %95, %94
+    %97:i32 = sub %lhs, %96
+    ret %97
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B15: {
+    %99:i32 = convert %value
+    %100:bool = gte %value, -2147483648.0f
+    %101:i32 = select -2147483648i, %99, %100
+    %102:bool = lte %value, 2147483520.0f
+    %103:i32 = select 2147483647i, %101, %102
+    ret %103
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.msl
index 28251dc..c177362 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,1076 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %tree:ptr<function, array<BST, 10>, read_write> = var
+    %x_58:ptr<function, i32, read_write> = var
+    %x_86:ptr<function, bool, read_write> = var
+    %x_353:ptr<function, i32, read_write> = var
+    %x_356:ptr<function, i32, read_write> = var
+    %x_358:ptr<function, i32, read_write> = var
+    %9:ptr<function, BST, read_write> = access %tree, 0i
+    store %9, BST(9i, -1i, -1i)
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        store %x_58, 0i
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %x_84:ptr<function, i32, read_write> = var
+            %x_76:ptr<function, i32, read_write> = var
+            %x_59:ptr<function, i32, read_write> = var
+            store %x_86, false
+            %13:i32 = load %x_58
+            %14:bool = lte %13, 1i
+            if %14 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
+                exit_if  # if_1
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            %15:i32 = load %x_58
+            %16:ptr<function, i32, read_write> = access %tree, %15, 0u
+            %17:i32 = load %16
+            %18:bool = lte 5i, %17
+            if %18 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %19:i32 = load %x_58
+                %x_78_save:i32 = let %19
+                %21:i32 = load %x_58
+                %22:ptr<function, i32, read_write> = access %tree, %21, 1u
+                %23:i32 = load %22
+                %24:bool = eq %23, -1i
+                if %24 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
+                    %25:ptr<function, i32, read_write> = access %tree, %x_78_save, 1u
+                    store %25, 1i
+                    %26:ptr<function, BST, read_write> = access %tree, 1i
+                    store %26, BST(5i, -1i, -1i)
+                    store %x_86, true
+                    exit_loop  # loop_1
+                  }
+                  $B11: {  # false
+                    %27:ptr<function, i32, read_write> = access %tree, %x_78_save, 1u
+                    %28:i32 = load %27
+                    store %x_84, %28
+                    %29:i32 = load %x_84
+                    store %x_59, %29
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+              $B9: {  # false
+                %30:i32 = load %x_58
+                %x_70_save:i32 = let %30
+                %32:i32 = load %x_58
+                %33:ptr<function, i32, read_write> = access %tree, %32, 2u
+                %34:i32 = load %33
+                %35:bool = eq %34, -1i
+                if %35 [t: $B12, f: $B13] {  # if_4
+                  $B12: {  # true
+                    %36:ptr<function, i32, read_write> = access %tree, %x_70_save, 2u
+                    store %36, 1i
+                    %37:ptr<function, BST, read_write> = access %tree, 1i
+                    store %37, BST(5i, -1i, -1i)
+                    store %x_86, true
+                    exit_loop  # loop_1
+                  }
+                  $B13: {  # false
+                    %38:ptr<function, i32, read_write> = access %tree, %x_70_save, 2u
+                    %39:i32 = load %38
+                    store %x_76, %39
+                    %40:i32 = load %x_76
+                    store %x_59, %40
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+            }
+            unreachable
+          }
+          $B5: {  # continuing
+            %41:i32 = load %x_59
+            store %x_58, %41
+            next_iteration  # -> $B4
+          }
+        }
+        %42:bool = load %x_86
+        if %42 [t: $B14] {  # if_5
+          $B14: {  # true
+            exit_switch  # switch_1
+          }
+        }
+        exit_switch  # switch_1
+      }
+    }
+    %x_91:ptr<function, i32, read_write> = var
+    %x_119:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B15)] {  # switch_2
+      $B15: {  # case
+        store %x_91, 0i
+        loop [b: $B16, c: $B17] {  # loop_2
+          $B16: {  # body
+            %x_117:ptr<function, i32, read_write> = var
+            %x_109:ptr<function, i32, read_write> = var
+            %x_92:ptr<function, i32, read_write> = var
+            store %x_119, false
+            %48:i32 = load %x_91
+            %49:bool = lte %48, 2i
+            if %49 [t: $B18, f: $B19] {  # if_6
+              $B18: {  # true
+                exit_if  # if_6
+              }
+              $B19: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %50:i32 = load %x_91
+            %51:ptr<function, i32, read_write> = access %tree, %50, 0u
+            %52:i32 = load %51
+            %53:bool = lte 12i, %52
+            if %53 [t: $B20, f: $B21] {  # if_7
+              $B20: {  # true
+                %54:i32 = load %x_91
+                %x_111_save:i32 = let %54
+                %56:i32 = load %x_91
+                %57:ptr<function, i32, read_write> = access %tree, %56, 1u
+                %58:i32 = load %57
+                %59:bool = eq %58, -1i
+                if %59 [t: $B22, f: $B23] {  # if_8
+                  $B22: {  # true
+                    %60:ptr<function, i32, read_write> = access %tree, %x_111_save, 1u
+                    store %60, 2i
+                    %61:ptr<function, BST, read_write> = access %tree, 2i
+                    store %61, BST(12i, -1i, -1i)
+                    store %x_119, true
+                    exit_loop  # loop_2
+                  }
+                  $B23: {  # false
+                    %62:ptr<function, i32, read_write> = access %tree, %x_111_save, 1u
+                    %63:i32 = load %62
+                    store %x_117, %63
+                    %64:i32 = load %x_117
+                    store %x_92, %64
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+              $B21: {  # false
+                %65:i32 = load %x_91
+                %x_103_save:i32 = let %65
+                %67:i32 = load %x_91
+                %68:ptr<function, i32, read_write> = access %tree, %67, 2u
+                %69:i32 = load %68
+                %70:bool = eq %69, -1i
+                if %70 [t: $B24, f: $B25] {  # if_9
+                  $B24: {  # true
+                    %71:ptr<function, i32, read_write> = access %tree, %x_103_save, 2u
+                    store %71, 2i
+                    %72:ptr<function, BST, read_write> = access %tree, 2i
+                    store %72, BST(12i, -1i, -1i)
+                    store %x_119, true
+                    exit_loop  # loop_2
+                  }
+                  $B25: {  # false
+                    %73:ptr<function, i32, read_write> = access %tree, %x_103_save, 2u
+                    %74:i32 = load %73
+                    store %x_109, %74
+                    %75:i32 = load %x_109
+                    store %x_92, %75
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+            }
+            unreachable
+          }
+          $B17: {  # continuing
+            %76:i32 = load %x_92
+            store %x_91, %76
+            next_iteration  # -> $B16
+          }
+        }
+        %77:bool = load %x_119
+        if %77 [t: $B26] {  # if_10
+          $B26: {  # true
+            exit_switch  # switch_2
+          }
+        }
+        exit_switch  # switch_2
+      }
+    }
+    %x_124:ptr<function, i32, read_write> = var
+    %x_152:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B27)] {  # switch_3
+      $B27: {  # case
+        store %x_124, 0i
+        loop [b: $B28, c: $B29] {  # loop_3
+          $B28: {  # body
+            %x_150:ptr<function, i32, read_write> = var
+            %x_142:ptr<function, i32, read_write> = var
+            %x_125:ptr<function, i32, read_write> = var
+            store %x_152, false
+            %83:i32 = load %x_124
+            %84:bool = lte %83, 3i
+            if %84 [t: $B30, f: $B31] {  # if_11
+              $B30: {  # true
+                exit_if  # if_11
+              }
+              $B31: {  # false
+                exit_loop  # loop_3
+              }
+            }
+            %85:i32 = load %x_124
+            %86:ptr<function, i32, read_write> = access %tree, %85, 0u
+            %87:i32 = load %86
+            %88:bool = lte 15i, %87
+            if %88 [t: $B32, f: $B33] {  # if_12
+              $B32: {  # true
+                %89:i32 = load %x_124
+                %x_144_save:i32 = let %89
+                %91:i32 = load %x_124
+                %92:ptr<function, i32, read_write> = access %tree, %91, 1u
+                %93:i32 = load %92
+                %94:bool = eq %93, -1i
+                if %94 [t: $B34, f: $B35] {  # if_13
+                  $B34: {  # true
+                    %95:ptr<function, i32, read_write> = access %tree, %x_144_save, 1u
+                    store %95, 3i
+                    %96:ptr<function, BST, read_write> = access %tree, 3i
+                    store %96, BST(15i, -1i, -1i)
+                    store %x_152, true
+                    exit_loop  # loop_3
+                  }
+                  $B35: {  # false
+                    %97:ptr<function, i32, read_write> = access %tree, %x_144_save, 1u
+                    %98:i32 = load %97
+                    store %x_150, %98
+                    %99:i32 = load %x_150
+                    store %x_125, %99
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+              $B33: {  # false
+                %100:i32 = load %x_124
+                %x_136_save:i32 = let %100
+                %102:i32 = load %x_124
+                %103:ptr<function, i32, read_write> = access %tree, %102, 2u
+                %104:i32 = load %103
+                %105:bool = eq %104, -1i
+                if %105 [t: $B36, f: $B37] {  # if_14
+                  $B36: {  # true
+                    %106:ptr<function, i32, read_write> = access %tree, %x_136_save, 2u
+                    store %106, 3i
+                    %107:ptr<function, BST, read_write> = access %tree, 3i
+                    store %107, BST(15i, -1i, -1i)
+                    store %x_152, true
+                    exit_loop  # loop_3
+                  }
+                  $B37: {  # false
+                    %108:ptr<function, i32, read_write> = access %tree, %x_136_save, 2u
+                    %109:i32 = load %108
+                    store %x_142, %109
+                    %110:i32 = load %x_142
+                    store %x_125, %110
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+            }
+            unreachable
+          }
+          $B29: {  # continuing
+            %111:i32 = load %x_125
+            store %x_124, %111
+            next_iteration  # -> $B28
+          }
+        }
+        %112:bool = load %x_152
+        if %112 [t: $B38] {  # if_15
+          $B38: {  # true
+            exit_switch  # switch_3
+          }
+        }
+        exit_switch  # switch_3
+      }
+    }
+    %x_157:ptr<function, i32, read_write> = var
+    %x_185:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B39)] {  # switch_4
+      $B39: {  # case
+        store %x_157, 0i
+        loop [b: $B40, c: $B41] {  # loop_4
+          $B40: {  # body
+            %x_183:ptr<function, i32, read_write> = var
+            %x_175:ptr<function, i32, read_write> = var
+            %x_158:ptr<function, i32, read_write> = var
+            store %x_185, false
+            %118:i32 = load %x_157
+            %119:bool = lte %118, 4i
+            if %119 [t: $B42, f: $B43] {  # if_16
+              $B42: {  # true
+                exit_if  # if_16
+              }
+              $B43: {  # false
+                exit_loop  # loop_4
+              }
+            }
+            %120:i32 = load %x_157
+            %121:ptr<function, i32, read_write> = access %tree, %120, 0u
+            %122:i32 = load %121
+            %123:bool = lte 7i, %122
+            if %123 [t: $B44, f: $B45] {  # if_17
+              $B44: {  # true
+                %124:i32 = load %x_157
+                %x_177_save:i32 = let %124
+                %126:i32 = load %x_157
+                %127:ptr<function, i32, read_write> = access %tree, %126, 1u
+                %128:i32 = load %127
+                %129:bool = eq %128, -1i
+                if %129 [t: $B46, f: $B47] {  # if_18
+                  $B46: {  # true
+                    %130:ptr<function, i32, read_write> = access %tree, %x_177_save, 1u
+                    store %130, 4i
+                    %131:ptr<function, BST, read_write> = access %tree, 4i
+                    store %131, BST(7i, -1i, -1i)
+                    store %x_185, true
+                    exit_loop  # loop_4
+                  }
+                  $B47: {  # false
+                    %132:ptr<function, i32, read_write> = access %tree, %x_177_save, 1u
+                    %133:i32 = load %132
+                    store %x_183, %133
+                    %134:i32 = load %x_183
+                    store %x_158, %134
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+              $B45: {  # false
+                %135:i32 = load %x_157
+                %x_169_save:i32 = let %135
+                %137:i32 = load %x_157
+                %138:ptr<function, i32, read_write> = access %tree, %137, 2u
+                %139:i32 = load %138
+                %140:bool = eq %139, -1i
+                if %140 [t: $B48, f: $B49] {  # if_19
+                  $B48: {  # true
+                    %141:ptr<function, i32, read_write> = access %tree, %x_169_save, 2u
+                    store %141, 4i
+                    %142:ptr<function, BST, read_write> = access %tree, 4i
+                    store %142, BST(7i, -1i, -1i)
+                    store %x_185, true
+                    exit_loop  # loop_4
+                  }
+                  $B49: {  # false
+                    %143:ptr<function, i32, read_write> = access %tree, %x_169_save, 2u
+                    %144:i32 = load %143
+                    store %x_175, %144
+                    %145:i32 = load %x_175
+                    store %x_158, %145
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+            }
+            unreachable
+          }
+          $B41: {  # continuing
+            %146:i32 = load %x_158
+            store %x_157, %146
+            next_iteration  # -> $B40
+          }
+        }
+        %147:bool = load %x_185
+        if %147 [t: $B50] {  # if_20
+          $B50: {  # true
+            exit_switch  # switch_4
+          }
+        }
+        exit_switch  # switch_4
+      }
+    }
+    %x_190:ptr<function, i32, read_write> = var
+    %x_218:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B51)] {  # switch_5
+      $B51: {  # case
+        store %x_190, 0i
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %x_216:ptr<function, i32, read_write> = var
+            %x_208:ptr<function, i32, read_write> = var
+            %x_191:ptr<function, i32, read_write> = var
+            store %x_218, false
+            %153:i32 = load %x_190
+            %154:bool = lte %153, 5i
+            if %154 [t: $B54, f: $B55] {  # if_21
+              $B54: {  # true
+                exit_if  # if_21
+              }
+              $B55: {  # false
+                exit_loop  # loop_5
+              }
+            }
+            %155:i32 = load %x_190
+            %156:ptr<function, i32, read_write> = access %tree, %155, 0u
+            %157:i32 = load %156
+            %158:bool = lte 8i, %157
+            if %158 [t: $B56, f: $B57] {  # if_22
+              $B56: {  # true
+                %159:i32 = load %x_190
+                %x_210_save:i32 = let %159
+                %161:i32 = load %x_190
+                %162:ptr<function, i32, read_write> = access %tree, %161, 1u
+                %163:i32 = load %162
+                %164:bool = eq %163, -1i
+                if %164 [t: $B58, f: $B59] {  # if_23
+                  $B58: {  # true
+                    %165:ptr<function, i32, read_write> = access %tree, %x_210_save, 1u
+                    store %165, 5i
+                    %166:ptr<function, BST, read_write> = access %tree, 5i
+                    store %166, BST(8i, -1i, -1i)
+                    store %x_218, true
+                    exit_loop  # loop_5
+                  }
+                  $B59: {  # false
+                    %167:ptr<function, i32, read_write> = access %tree, %x_210_save, 1u
+                    %168:i32 = load %167
+                    store %x_216, %168
+                    %169:i32 = load %x_216
+                    store %x_191, %169
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+              $B57: {  # false
+                %170:i32 = load %x_190
+                %x_202_save:i32 = let %170
+                %172:i32 = load %x_190
+                %173:ptr<function, i32, read_write> = access %tree, %172, 2u
+                %174:i32 = load %173
+                %175:bool = eq %174, -1i
+                if %175 [t: $B60, f: $B61] {  # if_24
+                  $B60: {  # true
+                    %176:ptr<function, i32, read_write> = access %tree, %x_202_save, 2u
+                    store %176, 5i
+                    %177:ptr<function, BST, read_write> = access %tree, 5i
+                    store %177, BST(8i, -1i, -1i)
+                    store %x_218, true
+                    exit_loop  # loop_5
+                  }
+                  $B61: {  # false
+                    %178:ptr<function, i32, read_write> = access %tree, %x_202_save, 2u
+                    %179:i32 = load %178
+                    store %x_208, %179
+                    %180:i32 = load %x_208
+                    store %x_191, %180
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+            }
+            unreachable
+          }
+          $B53: {  # continuing
+            %181:i32 = load %x_191
+            store %x_190, %181
+            next_iteration  # -> $B52
+          }
+        }
+        %182:bool = load %x_218
+        if %182 [t: $B62] {  # if_25
+          $B62: {  # true
+            exit_switch  # switch_5
+          }
+        }
+        exit_switch  # switch_5
+      }
+    }
+    %x_223:ptr<function, i32, read_write> = var
+    %x_251:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B63)] {  # switch_6
+      $B63: {  # case
+        store %x_223, 0i
+        loop [b: $B64, c: $B65] {  # loop_6
+          $B64: {  # body
+            %x_249:ptr<function, i32, read_write> = var
+            %x_241:ptr<function, i32, read_write> = var
+            %x_224:ptr<function, i32, read_write> = var
+            store %x_251, false
+            %188:i32 = load %x_223
+            %189:bool = lte %188, 6i
+            if %189 [t: $B66, f: $B67] {  # if_26
+              $B66: {  # true
+                exit_if  # if_26
+              }
+              $B67: {  # false
+                exit_loop  # loop_6
+              }
+            }
+            %190:i32 = load %x_223
+            %191:ptr<function, i32, read_write> = access %tree, %190, 0u
+            %192:i32 = load %191
+            %193:bool = lte 2i, %192
+            if %193 [t: $B68, f: $B69] {  # if_27
+              $B68: {  # true
+                %194:i32 = load %x_223
+                %x_243_save:i32 = let %194
+                %196:i32 = load %x_223
+                %197:ptr<function, i32, read_write> = access %tree, %196, 1u
+                %198:i32 = load %197
+                %199:bool = eq %198, -1i
+                if %199 [t: $B70, f: $B71] {  # if_28
+                  $B70: {  # true
+                    %200:ptr<function, i32, read_write> = access %tree, %x_243_save, 1u
+                    store %200, 6i
+                    %201:ptr<function, BST, read_write> = access %tree, 6i
+                    store %201, BST(2i, -1i, -1i)
+                    store %x_251, true
+                    exit_loop  # loop_6
+                  }
+                  $B71: {  # false
+                    %202:ptr<function, i32, read_write> = access %tree, %x_243_save, 1u
+                    %203:i32 = load %202
+                    store %x_249, %203
+                    %204:i32 = load %x_249
+                    store %x_224, %204
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+              $B69: {  # false
+                %205:i32 = load %x_223
+                %x_235_save:i32 = let %205
+                %207:i32 = load %x_223
+                %208:ptr<function, i32, read_write> = access %tree, %207, 2u
+                %209:i32 = load %208
+                %210:bool = eq %209, -1i
+                if %210 [t: $B72, f: $B73] {  # if_29
+                  $B72: {  # true
+                    %211:ptr<function, i32, read_write> = access %tree, %x_235_save, 2u
+                    store %211, 6i
+                    %212:ptr<function, BST, read_write> = access %tree, 6i
+                    store %212, BST(2i, -1i, -1i)
+                    store %x_251, true
+                    exit_loop  # loop_6
+                  }
+                  $B73: {  # false
+                    %213:ptr<function, i32, read_write> = access %tree, %x_235_save, 2u
+                    %214:i32 = load %213
+                    store %x_241, %214
+                    %215:i32 = load %x_241
+                    store %x_224, %215
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+            }
+            unreachable
+          }
+          $B65: {  # continuing
+            %216:i32 = load %x_224
+            store %x_223, %216
+            next_iteration  # -> $B64
+          }
+        }
+        %217:bool = load %x_251
+        if %217 [t: $B74] {  # if_30
+          $B74: {  # true
+            exit_switch  # switch_6
+          }
+        }
+        exit_switch  # switch_6
+      }
+    }
+    %x_256:ptr<function, i32, read_write> = var
+    %x_284:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B75)] {  # switch_7
+      $B75: {  # case
+        store %x_256, 0i
+        loop [b: $B76, c: $B77] {  # loop_7
+          $B76: {  # body
+            %x_282:ptr<function, i32, read_write> = var
+            %x_274:ptr<function, i32, read_write> = var
+            %x_257:ptr<function, i32, read_write> = var
+            store %x_284, false
+            %223:i32 = load %x_256
+            %224:bool = lte %223, 7i
+            if %224 [t: $B78, f: $B79] {  # if_31
+              $B78: {  # true
+                exit_if  # if_31
+              }
+              $B79: {  # false
+                exit_loop  # loop_7
+              }
+            }
+            %225:i32 = load %x_256
+            %226:ptr<function, i32, read_write> = access %tree, %225, 0u
+            %227:i32 = load %226
+            %228:bool = lte 6i, %227
+            if %228 [t: $B80, f: $B81] {  # if_32
+              $B80: {  # true
+                %229:i32 = load %x_256
+                %x_276_save:i32 = let %229
+                %231:i32 = load %x_256
+                %232:ptr<function, i32, read_write> = access %tree, %231, 1u
+                %233:i32 = load %232
+                %234:bool = eq %233, -1i
+                if %234 [t: $B82, f: $B83] {  # if_33
+                  $B82: {  # true
+                    %235:ptr<function, i32, read_write> = access %tree, %x_276_save, 1u
+                    store %235, 7i
+                    %236:ptr<function, BST, read_write> = access %tree, 7i
+                    store %236, BST(6i, -1i, -1i)
+                    store %x_284, true
+                    exit_loop  # loop_7
+                  }
+                  $B83: {  # false
+                    %237:ptr<function, i32, read_write> = access %tree, %x_276_save, 1u
+                    %238:i32 = load %237
+                    store %x_282, %238
+                    %239:i32 = load %x_282
+                    store %x_257, %239
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+              $B81: {  # false
+                %240:i32 = load %x_256
+                %x_268_save:i32 = let %240
+                %242:i32 = load %x_256
+                %243:ptr<function, i32, read_write> = access %tree, %242, 2u
+                %244:i32 = load %243
+                %245:bool = eq %244, -1i
+                if %245 [t: $B84, f: $B85] {  # if_34
+                  $B84: {  # true
+                    %246:ptr<function, i32, read_write> = access %tree, %x_268_save, 2u
+                    store %246, 7i
+                    %247:ptr<function, BST, read_write> = access %tree, 7i
+                    store %247, BST(6i, -1i, -1i)
+                    store %x_284, true
+                    exit_loop  # loop_7
+                  }
+                  $B85: {  # false
+                    %248:ptr<function, i32, read_write> = access %tree, %x_268_save, 2u
+                    %249:i32 = load %248
+                    store %x_274, %249
+                    %250:i32 = load %x_274
+                    store %x_257, %250
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+            }
+            unreachable
+          }
+          $B77: {  # continuing
+            %251:i32 = load %x_257
+            store %x_256, %251
+            next_iteration  # -> $B76
+          }
+        }
+        %252:bool = load %x_284
+        if %252 [t: $B86] {  # if_35
+          $B86: {  # true
+            exit_switch  # switch_7
+          }
+        }
+        exit_switch  # switch_7
+      }
+    }
+    %x_289:ptr<function, i32, read_write> = var
+    %x_317:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B87)] {  # switch_8
+      $B87: {  # case
+        store %x_289, 0i
+        loop [b: $B88, c: $B89] {  # loop_8
+          $B88: {  # body
+            %x_315:ptr<function, i32, read_write> = var
+            %x_307:ptr<function, i32, read_write> = var
+            %x_290:ptr<function, i32, read_write> = var
+            store %x_317, false
+            %258:i32 = load %x_289
+            %259:bool = lte %258, 8i
+            if %259 [t: $B90, f: $B91] {  # if_36
+              $B90: {  # true
+                exit_if  # if_36
+              }
+              $B91: {  # false
+                exit_loop  # loop_8
+              }
+            }
+            %260:i32 = load %x_289
+            %261:ptr<function, i32, read_write> = access %tree, %260, 0u
+            %262:i32 = load %261
+            %263:bool = lte 17i, %262
+            if %263 [t: $B92, f: $B93] {  # if_37
+              $B92: {  # true
+                %264:i32 = load %x_289
+                %x_309_save:i32 = let %264
+                %266:i32 = load %x_289
+                %267:ptr<function, i32, read_write> = access %tree, %266, 1u
+                %268:i32 = load %267
+                %269:bool = eq %268, -1i
+                if %269 [t: $B94, f: $B95] {  # if_38
+                  $B94: {  # true
+                    %270:ptr<function, i32, read_write> = access %tree, %x_309_save, 1u
+                    store %270, 8i
+                    %271:ptr<function, BST, read_write> = access %tree, 8i
+                    store %271, BST(17i, -1i, -1i)
+                    store %x_317, true
+                    exit_loop  # loop_8
+                  }
+                  $B95: {  # false
+                    %272:ptr<function, i32, read_write> = access %tree, %x_309_save, 1u
+                    %273:i32 = load %272
+                    store %x_315, %273
+                    %274:i32 = load %x_315
+                    store %x_290, %274
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+              $B93: {  # false
+                %275:i32 = load %x_289
+                %x_301_save:i32 = let %275
+                %277:i32 = load %x_289
+                %278:ptr<function, i32, read_write> = access %tree, %277, 2u
+                %279:i32 = load %278
+                %280:bool = eq %279, -1i
+                if %280 [t: $B96, f: $B97] {  # if_39
+                  $B96: {  # true
+                    %281:ptr<function, i32, read_write> = access %tree, %x_301_save, 2u
+                    store %281, 8i
+                    %282:ptr<function, BST, read_write> = access %tree, 8i
+                    store %282, BST(17i, -1i, -1i)
+                    store %x_317, true
+                    exit_loop  # loop_8
+                  }
+                  $B97: {  # false
+                    %283:ptr<function, i32, read_write> = access %tree, %x_301_save, 2u
+                    %284:i32 = load %283
+                    store %x_307, %284
+                    %285:i32 = load %x_307
+                    store %x_290, %285
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+            }
+            unreachable
+          }
+          $B89: {  # continuing
+            %286:i32 = load %x_290
+            store %x_289, %286
+            next_iteration  # -> $B88
+          }
+        }
+        %287:bool = load %x_317
+        if %287 [t: $B98] {  # if_40
+          $B98: {  # true
+            exit_switch  # switch_8
+          }
+        }
+        exit_switch  # switch_8
+      }
+    }
+    %x_322:ptr<function, i32, read_write> = var
+    %x_350:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B99)] {  # switch_9
+      $B99: {  # case
+        store %x_322, 0i
+        loop [b: $B100, c: $B101] {  # loop_9
+          $B100: {  # body
+            %x_348:ptr<function, i32, read_write> = var
+            %x_340:ptr<function, i32, read_write> = var
+            %x_323:ptr<function, i32, read_write> = var
+            store %x_350, false
+            %293:i32 = load %x_322
+            %294:bool = lte %293, 9i
+            if %294 [t: $B102, f: $B103] {  # if_41
+              $B102: {  # true
+                exit_if  # if_41
+              }
+              $B103: {  # false
+                exit_loop  # loop_9
+              }
+            }
+            %295:i32 = load %x_322
+            %296:ptr<function, i32, read_write> = access %tree, %295, 0u
+            %297:i32 = load %296
+            %298:bool = lte 13i, %297
+            if %298 [t: $B104, f: $B105] {  # if_42
+              $B104: {  # true
+                %299:i32 = load %x_322
+                %x_342_save:i32 = let %299
+                %301:i32 = load %x_322
+                %302:ptr<function, i32, read_write> = access %tree, %301, 1u
+                %303:i32 = load %302
+                %304:bool = eq %303, -1i
+                if %304 [t: $B106, f: $B107] {  # if_43
+                  $B106: {  # true
+                    %305:ptr<function, i32, read_write> = access %tree, %x_342_save, 1u
+                    store %305, 9i
+                    %306:ptr<function, BST, read_write> = access %tree, 9i
+                    store %306, BST(13i, -1i, -1i)
+                    store %x_350, true
+                    exit_loop  # loop_9
+                  }
+                  $B107: {  # false
+                    %307:ptr<function, i32, read_write> = access %tree, %x_342_save, 1u
+                    %308:i32 = load %307
+                    store %x_348, %308
+                    %309:i32 = load %x_348
+                    store %x_323, %309
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+              $B105: {  # false
+                %310:i32 = load %x_322
+                %x_334_save:i32 = let %310
+                %312:i32 = load %x_322
+                %313:ptr<function, i32, read_write> = access %tree, %312, 2u
+                %314:i32 = load %313
+                %315:bool = eq %314, -1i
+                if %315 [t: $B108, f: $B109] {  # if_44
+                  $B108: {  # true
+                    %316:ptr<function, i32, read_write> = access %tree, %x_334_save, 2u
+                    store %316, 9i
+                    %317:ptr<function, BST, read_write> = access %tree, 9i
+                    store %317, BST(13i, -1i, -1i)
+                    store %x_350, true
+                    exit_loop  # loop_9
+                  }
+                  $B109: {  # false
+                    %318:ptr<function, i32, read_write> = access %tree, %x_334_save, 2u
+                    %319:i32 = load %318
+                    store %x_340, %319
+                    %320:i32 = load %x_340
+                    store %x_323, %320
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+            }
+            unreachable
+          }
+          $B101: {  # continuing
+            %321:i32 = load %x_323
+            store %x_322, %321
+            next_iteration  # -> $B100
+          }
+        }
+        %322:bool = load %x_350
+        if %322 [t: $B110] {  # if_45
+          $B110: {  # true
+            exit_switch  # switch_9
+          }
+        }
+        exit_switch  # switch_9
+      }
+    }
+    store %x_353, 0i
+    store %x_356, 0i
+    store %x_358, 0i
+    loop [b: $B111, c: $B112] {  # loop_10
+      $B111: {  # body
+        %x_381:ptr<function, i32, read_write> = var
+        %x_354:ptr<function, i32, read_write> = var
+        %x_391:ptr<function, i32, read_write> = var
+        %x_396:ptr<function, i32, read_write> = var
+        %x_357:ptr<function, i32, read_write> = var
+        %x_359:ptr<function, i32, read_write> = var
+        %329:i32 = load %x_358
+        %330:bool = lt %329, 20i
+        if %330 [t: $B113, f: $B114] {  # if_46
+          $B113: {  # true
+            exit_if  # if_46
+          }
+          $B114: {  # false
+            exit_loop  # loop_10
+          }
+        }
+        %x_366:ptr<function, i32, read_write> = var
+        %x_382:ptr<function, bool, read_write> = var
+        switch 0u [c: (default, $B115)] {  # switch_10
+          $B115: {  # case
+            store %x_366, 0i
+            loop [b: $B116, c: $B117] {  # loop_11
+              $B116: {  # body
+                %333:i32 = load %x_353
+                store %x_381, %333
+                store %x_382, false
+                %334:i32 = load %x_366
+                %335:bool = neq %334, -1i
+                if %335 [t: $B118, f: $B119] {  # if_47
+                  $B118: {  # true
+                    exit_if  # if_47
+                  }
+                  $B119: {  # false
+                    exit_loop  # loop_11
+                  }
+                }
+                %336:i32 = load %x_366
+                %337:ptr<function, BST, read_write> = access %tree, %336
+                %338:BST = load %337
+                %x_373:BST = let %338
+                %340:i32 = access %x_373, 0u
+                %x_374:i32 = let %340
+                %342:i32 = access %x_373, 1u
+                %x_375:i32 = let %342
+                %344:i32 = access %x_373, 2u
+                %x_376:i32 = let %344
+                %346:i32 = load %x_358
+                %347:bool = eq %x_374, %346
+                if %347 [t: $B120] {  # if_48
+                  $B120: {  # true
+                    %348:i32 = load %x_358
+                    store %x_381, %348
+                    store %x_382, true
+                    exit_loop  # loop_11
+                  }
+                }
+                continue  # -> $B117
+              }
+              $B117: {  # continuing
+                %349:i32 = load %x_358
+                %350:bool = gt %349, %x_374
+                %351:i32 = select %x_375, %x_376, %350
+                store %x_366, %351
+                next_iteration  # -> $B116
+              }
+            }
+            %352:i32 = load %x_381
+            store %x_354, %352
+            %353:bool = load %x_382
+            if %353 [t: $B121] {  # if_49
+              $B121: {  # true
+                exit_switch  # switch_10
+              }
+            }
+            store %x_354, -1i
+            exit_switch  # switch_10
+          }
+        }
+        %x_390:ptr<function, i32, read_write> = var
+        %x_395:ptr<function, i32, read_write> = var
+        %356:i32 = load %x_358
+        switch %356 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B122), c: (default, $B123)] {  # switch_11
+          $B122: {  # case
+            %357:i32 = load %x_356
+            store %x_391, %357
+            %358:i32 = load %x_354
+            %359:i32 = load %x_358
+            %360:bool = eq %358, %359
+            if %360 [t: $B124] {  # if_50
+              $B124: {  # true
+                %361:i32 = load %x_356
+                %362:i32 = add %361, 1i
+                store %x_390, %362
+                %363:i32 = load %x_390
+                store %x_391, %363
+                exit_if  # if_50
+              }
+            }
+            %364:i32 = load %x_391
+            store %x_357, %364
+            exit_switch  # switch_11
+          }
+          $B123: {  # case
+            %365:i32 = load %x_356
+            store %x_396, %365
+            %366:i32 = load %x_354
+            %367:bool = eq %366, -1i
+            if %367 [t: $B125] {  # if_51
+              $B125: {  # true
+                %368:i32 = load %x_356
+                %369:i32 = add %368, 1i
+                store %x_395, %369
+                %370:i32 = load %x_395
+                store %x_396, %370
+                exit_if  # if_51
+              }
+            }
+            %371:i32 = load %x_396
+            store %x_357, %371
+            exit_switch  # switch_11
+          }
+        }
+        continue  # -> $B112
+      }
+      $B112: {  # continuing
+        %372:i32 = load %x_358
+        %373:i32 = add %372, 1i
+        store %x_359, %373
+        %374:i32 = load %x_354
+        store %x_353, %374
+        %375:i32 = load %x_357
+        store %x_356, %375
+        %376:i32 = load %x_359
+        store %x_358, %376
+        next_iteration  # -> $B111
+      }
+    }
+    %377:i32 = load %x_356
+    %378:bool = eq %377, 20i
+    if %378 [t: $B126, f: $B127] {  # if_52
+      $B126: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_52
+      }
+      $B127: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_52
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B128: {
+    %380:void = call %main_1
+    %381:vec4<f32> = load %x_GLF_color
+    %382:main_out = construct %381
+    ret %382
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.msl
index 28251dc..59eae18 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,1120 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %tree:ptr<function, array<BST, 10>, read_write> = var
+    %x_356:ptr<function, i32, read_write> = var
+    %x_58_phi:ptr<function, i32, read_write> = var
+    %x_86_phi:ptr<function, bool, read_write> = var
+    %x_353_phi:ptr<function, i32, read_write> = var
+    %x_356_phi:ptr<function, i32, read_write> = var
+    %x_358_phi:ptr<function, i32, read_write> = var
+    %10:ptr<function, BST, read_write> = access %tree, 0i
+    store %10, BST(9i, -1i, -1i)
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
+        store %x_58_phi, 0i
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %x_84:ptr<function, i32, read_write> = var
+            %x_76:ptr<function, i32, read_write> = var
+            %x_59:ptr<function, i32, read_write> = var
+            %x_59_phi:ptr<function, i32, read_write> = var
+            %15:i32 = load %x_58_phi
+            %x_58:i32 = let %15
+            store %x_86_phi, false
+            %17:bool = lte %x_58, 1i
+            if %17 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
+                exit_if  # if_1
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            %18:ptr<function, i32, read_write> = access %tree, %x_58, 0u
+            %19:i32 = load %18
+            %x_65:i32 = let %19
+            %21:bool = lte 5i, %x_65
+            if %21 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %x_78_save:i32 = let %x_58
+                %23:ptr<function, i32, read_write> = access %tree, %x_78_save, 1u
+                %24:i32 = load %23
+                %x_79:i32 = let %24
+                %26:bool = eq %x_79, -1i
+                if %26 [t: $B10, f: $B11] {  # if_3
+                  $B10: {  # true
+                    %27:ptr<function, i32, read_write> = access %tree, %x_78_save, 1u
+                    store %27, 1i
+                    %28:ptr<function, BST, read_write> = access %tree, 1i
+                    store %28, BST(5i, -1i, -1i)
+                    store %x_86_phi, true
+                    exit_loop  # loop_1
+                  }
+                  $B11: {  # false
+                    %29:ptr<function, i32, read_write> = access %tree, %x_78_save, 1u
+                    %30:i32 = load %29
+                    store %x_84, %30
+                    %31:i32 = load %x_84
+                    store %x_59_phi, %31
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+              $B9: {  # false
+                %x_70_save:i32 = let %x_58
+                %33:ptr<function, i32, read_write> = access %tree, %x_70_save, 2u
+                %34:i32 = load %33
+                %x_71:i32 = let %34
+                %36:bool = eq %x_71, -1i
+                if %36 [t: $B12, f: $B13] {  # if_4
+                  $B12: {  # true
+                    %37:ptr<function, i32, read_write> = access %tree, %x_70_save, 2u
+                    store %37, 1i
+                    %38:ptr<function, BST, read_write> = access %tree, 1i
+                    store %38, BST(5i, -1i, -1i)
+                    store %x_86_phi, true
+                    exit_loop  # loop_1
+                  }
+                  $B13: {  # false
+                    %39:ptr<function, i32, read_write> = access %tree, %x_70_save, 2u
+                    %40:i32 = load %39
+                    store %x_76, %40
+                    %41:i32 = load %x_76
+                    store %x_59_phi, %41
+                    continue  # -> $B5
+                  }
+                }
+                exit_if  # if_2
+              }
+            }
+            unreachable
+          }
+          $B5: {  # continuing
+            %42:i32 = load %x_59_phi
+            store %x_59, %42
+            %43:i32 = load %x_59
+            store %x_58_phi, %43
+            next_iteration  # -> $B4
+          }
+        }
+        %44:bool = load %x_86_phi
+        %x_86:bool = let %44
+        if %x_86 [t: $B14] {  # if_5
+          $B14: {  # true
+            exit_switch  # switch_1
+          }
+        }
+        exit_switch  # switch_1
+      }
+    }
+    %x_91_phi:ptr<function, i32, read_write> = var
+    %x_119_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B15)] {  # switch_2
+      $B15: {  # case
+        store %x_91_phi, 0i
+        loop [b: $B16, c: $B17] {  # loop_2
+          $B16: {  # body
+            %x_117:ptr<function, i32, read_write> = var
+            %x_109:ptr<function, i32, read_write> = var
+            %x_92:ptr<function, i32, read_write> = var
+            %x_92_phi:ptr<function, i32, read_write> = var
+            %52:i32 = load %x_91_phi
+            %x_91:i32 = let %52
+            store %x_119_phi, false
+            %54:bool = lte %x_91, 2i
+            if %54 [t: $B18, f: $B19] {  # if_6
+              $B18: {  # true
+                exit_if  # if_6
+              }
+              $B19: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %55:ptr<function, i32, read_write> = access %tree, %x_91, 0u
+            %56:i32 = load %55
+            %x_98:i32 = let %56
+            %58:bool = lte 12i, %x_98
+            if %58 [t: $B20, f: $B21] {  # if_7
+              $B20: {  # true
+                %x_111_save:i32 = let %x_91
+                %60:ptr<function, i32, read_write> = access %tree, %x_111_save, 1u
+                %61:i32 = load %60
+                %x_112:i32 = let %61
+                %63:bool = eq %x_112, -1i
+                if %63 [t: $B22, f: $B23] {  # if_8
+                  $B22: {  # true
+                    %64:ptr<function, i32, read_write> = access %tree, %x_111_save, 1u
+                    store %64, 2i
+                    %65:ptr<function, BST, read_write> = access %tree, 2i
+                    store %65, BST(12i, -1i, -1i)
+                    store %x_119_phi, true
+                    exit_loop  # loop_2
+                  }
+                  $B23: {  # false
+                    %66:ptr<function, i32, read_write> = access %tree, %x_111_save, 1u
+                    %67:i32 = load %66
+                    store %x_117, %67
+                    %68:i32 = load %x_117
+                    store %x_92_phi, %68
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+              $B21: {  # false
+                %x_103_save:i32 = let %x_91
+                %70:ptr<function, i32, read_write> = access %tree, %x_103_save, 2u
+                %71:i32 = load %70
+                %x_104:i32 = let %71
+                %73:bool = eq %x_104, -1i
+                if %73 [t: $B24, f: $B25] {  # if_9
+                  $B24: {  # true
+                    %74:ptr<function, i32, read_write> = access %tree, %x_103_save, 2u
+                    store %74, 2i
+                    %75:ptr<function, BST, read_write> = access %tree, 2i
+                    store %75, BST(12i, -1i, -1i)
+                    store %x_119_phi, true
+                    exit_loop  # loop_2
+                  }
+                  $B25: {  # false
+                    %76:ptr<function, i32, read_write> = access %tree, %x_103_save, 2u
+                    %77:i32 = load %76
+                    store %x_109, %77
+                    %78:i32 = load %x_109
+                    store %x_92_phi, %78
+                    continue  # -> $B17
+                  }
+                }
+                exit_if  # if_7
+              }
+            }
+            unreachable
+          }
+          $B17: {  # continuing
+            %79:i32 = load %x_92_phi
+            store %x_92, %79
+            %80:i32 = load %x_92
+            store %x_91_phi, %80
+            next_iteration  # -> $B16
+          }
+        }
+        %81:bool = load %x_119_phi
+        %x_119:bool = let %81
+        if %x_119 [t: $B26] {  # if_10
+          $B26: {  # true
+            exit_switch  # switch_2
+          }
+        }
+        exit_switch  # switch_2
+      }
+    }
+    %x_124_phi:ptr<function, i32, read_write> = var
+    %x_152_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B27)] {  # switch_3
+      $B27: {  # case
+        store %x_124_phi, 0i
+        loop [b: $B28, c: $B29] {  # loop_3
+          $B28: {  # body
+            %x_150:ptr<function, i32, read_write> = var
+            %x_142:ptr<function, i32, read_write> = var
+            %x_125:ptr<function, i32, read_write> = var
+            %x_125_phi:ptr<function, i32, read_write> = var
+            %89:i32 = load %x_124_phi
+            %x_124:i32 = let %89
+            store %x_152_phi, false
+            %91:bool = lte %x_124, 3i
+            if %91 [t: $B30, f: $B31] {  # if_11
+              $B30: {  # true
+                exit_if  # if_11
+              }
+              $B31: {  # false
+                exit_loop  # loop_3
+              }
+            }
+            %92:ptr<function, i32, read_write> = access %tree, %x_124, 0u
+            %93:i32 = load %92
+            %x_131:i32 = let %93
+            %95:bool = lte 15i, %x_131
+            if %95 [t: $B32, f: $B33] {  # if_12
+              $B32: {  # true
+                %x_144_save:i32 = let %x_124
+                %97:ptr<function, i32, read_write> = access %tree, %x_144_save, 1u
+                %98:i32 = load %97
+                %x_145:i32 = let %98
+                %100:bool = eq %x_145, -1i
+                if %100 [t: $B34, f: $B35] {  # if_13
+                  $B34: {  # true
+                    %101:ptr<function, i32, read_write> = access %tree, %x_144_save, 1u
+                    store %101, 3i
+                    %102:ptr<function, BST, read_write> = access %tree, 3i
+                    store %102, BST(15i, -1i, -1i)
+                    store %x_152_phi, true
+                    exit_loop  # loop_3
+                  }
+                  $B35: {  # false
+                    %103:ptr<function, i32, read_write> = access %tree, %x_144_save, 1u
+                    %104:i32 = load %103
+                    store %x_150, %104
+                    %105:i32 = load %x_150
+                    store %x_125_phi, %105
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+              $B33: {  # false
+                %x_136_save:i32 = let %x_124
+                %107:ptr<function, i32, read_write> = access %tree, %x_136_save, 2u
+                %108:i32 = load %107
+                %x_137:i32 = let %108
+                %110:bool = eq %x_137, -1i
+                if %110 [t: $B36, f: $B37] {  # if_14
+                  $B36: {  # true
+                    %111:ptr<function, i32, read_write> = access %tree, %x_136_save, 2u
+                    store %111, 3i
+                    %112:ptr<function, BST, read_write> = access %tree, 3i
+                    store %112, BST(15i, -1i, -1i)
+                    store %x_152_phi, true
+                    exit_loop  # loop_3
+                  }
+                  $B37: {  # false
+                    %113:ptr<function, i32, read_write> = access %tree, %x_136_save, 2u
+                    %114:i32 = load %113
+                    store %x_142, %114
+                    %115:i32 = load %x_142
+                    store %x_125_phi, %115
+                    continue  # -> $B29
+                  }
+                }
+                exit_if  # if_12
+              }
+            }
+            unreachable
+          }
+          $B29: {  # continuing
+            %116:i32 = load %x_125_phi
+            store %x_125, %116
+            %117:i32 = load %x_125
+            store %x_124_phi, %117
+            next_iteration  # -> $B28
+          }
+        }
+        %118:bool = load %x_152_phi
+        %x_152:bool = let %118
+        if %x_152 [t: $B38] {  # if_15
+          $B38: {  # true
+            exit_switch  # switch_3
+          }
+        }
+        exit_switch  # switch_3
+      }
+    }
+    %x_157_phi:ptr<function, i32, read_write> = var
+    %x_185_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B39)] {  # switch_4
+      $B39: {  # case
+        store %x_157_phi, 0i
+        loop [b: $B40, c: $B41] {  # loop_4
+          $B40: {  # body
+            %x_183:ptr<function, i32, read_write> = var
+            %x_175:ptr<function, i32, read_write> = var
+            %x_158:ptr<function, i32, read_write> = var
+            %x_158_phi:ptr<function, i32, read_write> = var
+            %126:i32 = load %x_157_phi
+            %x_157:i32 = let %126
+            store %x_185_phi, false
+            %128:bool = lte %x_157, 4i
+            if %128 [t: $B42, f: $B43] {  # if_16
+              $B42: {  # true
+                exit_if  # if_16
+              }
+              $B43: {  # false
+                exit_loop  # loop_4
+              }
+            }
+            %129:ptr<function, i32, read_write> = access %tree, %x_157, 0u
+            %130:i32 = load %129
+            %x_164:i32 = let %130
+            %132:bool = lte 7i, %x_164
+            if %132 [t: $B44, f: $B45] {  # if_17
+              $B44: {  # true
+                %x_177_save:i32 = let %x_157
+                %134:ptr<function, i32, read_write> = access %tree, %x_177_save, 1u
+                %135:i32 = load %134
+                %x_178:i32 = let %135
+                %137:bool = eq %x_178, -1i
+                if %137 [t: $B46, f: $B47] {  # if_18
+                  $B46: {  # true
+                    %138:ptr<function, i32, read_write> = access %tree, %x_177_save, 1u
+                    store %138, 4i
+                    %139:ptr<function, BST, read_write> = access %tree, 4i
+                    store %139, BST(7i, -1i, -1i)
+                    store %x_185_phi, true
+                    exit_loop  # loop_4
+                  }
+                  $B47: {  # false
+                    %140:ptr<function, i32, read_write> = access %tree, %x_177_save, 1u
+                    %141:i32 = load %140
+                    store %x_183, %141
+                    %142:i32 = load %x_183
+                    store %x_158_phi, %142
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+              $B45: {  # false
+                %x_169_save:i32 = let %x_157
+                %144:ptr<function, i32, read_write> = access %tree, %x_169_save, 2u
+                %145:i32 = load %144
+                %x_170:i32 = let %145
+                %147:bool = eq %x_170, -1i
+                if %147 [t: $B48, f: $B49] {  # if_19
+                  $B48: {  # true
+                    %148:ptr<function, i32, read_write> = access %tree, %x_169_save, 2u
+                    store %148, 4i
+                    %149:ptr<function, BST, read_write> = access %tree, 4i
+                    store %149, BST(7i, -1i, -1i)
+                    store %x_185_phi, true
+                    exit_loop  # loop_4
+                  }
+                  $B49: {  # false
+                    %150:ptr<function, i32, read_write> = access %tree, %x_169_save, 2u
+                    %151:i32 = load %150
+                    store %x_175, %151
+                    %152:i32 = load %x_175
+                    store %x_158_phi, %152
+                    continue  # -> $B41
+                  }
+                }
+                exit_if  # if_17
+              }
+            }
+            unreachable
+          }
+          $B41: {  # continuing
+            %153:i32 = load %x_158_phi
+            store %x_158, %153
+            %154:i32 = load %x_158
+            store %x_157_phi, %154
+            next_iteration  # -> $B40
+          }
+        }
+        %155:bool = load %x_185_phi
+        %x_185:bool = let %155
+        if %x_185 [t: $B50] {  # if_20
+          $B50: {  # true
+            exit_switch  # switch_4
+          }
+        }
+        exit_switch  # switch_4
+      }
+    }
+    %x_190_phi:ptr<function, i32, read_write> = var
+    %x_218_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B51)] {  # switch_5
+      $B51: {  # case
+        store %x_190_phi, 0i
+        loop [b: $B52, c: $B53] {  # loop_5
+          $B52: {  # body
+            %x_216:ptr<function, i32, read_write> = var
+            %x_208:ptr<function, i32, read_write> = var
+            %x_191:ptr<function, i32, read_write> = var
+            %x_191_phi:ptr<function, i32, read_write> = var
+            %163:i32 = load %x_190_phi
+            %x_190:i32 = let %163
+            store %x_218_phi, false
+            %165:bool = lte %x_190, 5i
+            if %165 [t: $B54, f: $B55] {  # if_21
+              $B54: {  # true
+                exit_if  # if_21
+              }
+              $B55: {  # false
+                exit_loop  # loop_5
+              }
+            }
+            %166:ptr<function, i32, read_write> = access %tree, %x_190, 0u
+            %167:i32 = load %166
+            %x_197:i32 = let %167
+            %169:bool = lte 8i, %x_197
+            if %169 [t: $B56, f: $B57] {  # if_22
+              $B56: {  # true
+                %x_210_save:i32 = let %x_190
+                %171:ptr<function, i32, read_write> = access %tree, %x_210_save, 1u
+                %172:i32 = load %171
+                %x_211:i32 = let %172
+                %174:bool = eq %x_211, -1i
+                if %174 [t: $B58, f: $B59] {  # if_23
+                  $B58: {  # true
+                    %175:ptr<function, i32, read_write> = access %tree, %x_210_save, 1u
+                    store %175, 5i
+                    %176:ptr<function, BST, read_write> = access %tree, 5i
+                    store %176, BST(8i, -1i, -1i)
+                    store %x_218_phi, true
+                    exit_loop  # loop_5
+                  }
+                  $B59: {  # false
+                    %177:ptr<function, i32, read_write> = access %tree, %x_210_save, 1u
+                    %178:i32 = load %177
+                    store %x_216, %178
+                    %179:i32 = load %x_216
+                    store %x_191_phi, %179
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+              $B57: {  # false
+                %x_202_save:i32 = let %x_190
+                %181:ptr<function, i32, read_write> = access %tree, %x_202_save, 2u
+                %182:i32 = load %181
+                %x_203:i32 = let %182
+                %184:bool = eq %x_203, -1i
+                if %184 [t: $B60, f: $B61] {  # if_24
+                  $B60: {  # true
+                    %185:ptr<function, i32, read_write> = access %tree, %x_202_save, 2u
+                    store %185, 5i
+                    %186:ptr<function, BST, read_write> = access %tree, 5i
+                    store %186, BST(8i, -1i, -1i)
+                    store %x_218_phi, true
+                    exit_loop  # loop_5
+                  }
+                  $B61: {  # false
+                    %187:ptr<function, i32, read_write> = access %tree, %x_202_save, 2u
+                    %188:i32 = load %187
+                    store %x_208, %188
+                    %189:i32 = load %x_208
+                    store %x_191_phi, %189
+                    continue  # -> $B53
+                  }
+                }
+                exit_if  # if_22
+              }
+            }
+            unreachable
+          }
+          $B53: {  # continuing
+            %190:i32 = load %x_191_phi
+            store %x_191, %190
+            %191:i32 = load %x_191
+            store %x_190_phi, %191
+            next_iteration  # -> $B52
+          }
+        }
+        %192:bool = load %x_218_phi
+        %x_218:bool = let %192
+        if %x_218 [t: $B62] {  # if_25
+          $B62: {  # true
+            exit_switch  # switch_5
+          }
+        }
+        exit_switch  # switch_5
+      }
+    }
+    %x_223_phi:ptr<function, i32, read_write> = var
+    %x_251_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B63)] {  # switch_6
+      $B63: {  # case
+        store %x_223_phi, 0i
+        loop [b: $B64, c: $B65] {  # loop_6
+          $B64: {  # body
+            %x_249:ptr<function, i32, read_write> = var
+            %x_241:ptr<function, i32, read_write> = var
+            %x_224:ptr<function, i32, read_write> = var
+            %x_224_phi:ptr<function, i32, read_write> = var
+            %200:i32 = load %x_223_phi
+            %x_223:i32 = let %200
+            store %x_251_phi, false
+            %202:bool = lte %x_223, 6i
+            if %202 [t: $B66, f: $B67] {  # if_26
+              $B66: {  # true
+                exit_if  # if_26
+              }
+              $B67: {  # false
+                exit_loop  # loop_6
+              }
+            }
+            %203:ptr<function, i32, read_write> = access %tree, %x_223, 0u
+            %204:i32 = load %203
+            %x_230:i32 = let %204
+            %206:bool = lte 2i, %x_230
+            if %206 [t: $B68, f: $B69] {  # if_27
+              $B68: {  # true
+                %x_243_save:i32 = let %x_223
+                %208:ptr<function, i32, read_write> = access %tree, %x_243_save, 1u
+                %209:i32 = load %208
+                %x_244:i32 = let %209
+                %211:bool = eq %x_244, -1i
+                if %211 [t: $B70, f: $B71] {  # if_28
+                  $B70: {  # true
+                    %212:ptr<function, i32, read_write> = access %tree, %x_243_save, 1u
+                    store %212, 6i
+                    %213:ptr<function, BST, read_write> = access %tree, 6i
+                    store %213, BST(2i, -1i, -1i)
+                    store %x_251_phi, true
+                    exit_loop  # loop_6
+                  }
+                  $B71: {  # false
+                    %214:ptr<function, i32, read_write> = access %tree, %x_243_save, 1u
+                    %215:i32 = load %214
+                    store %x_249, %215
+                    %216:i32 = load %x_249
+                    store %x_224_phi, %216
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+              $B69: {  # false
+                %x_235_save:i32 = let %x_223
+                %218:ptr<function, i32, read_write> = access %tree, %x_235_save, 2u
+                %219:i32 = load %218
+                %x_236:i32 = let %219
+                %221:bool = eq %x_236, -1i
+                if %221 [t: $B72, f: $B73] {  # if_29
+                  $B72: {  # true
+                    %222:ptr<function, i32, read_write> = access %tree, %x_235_save, 2u
+                    store %222, 6i
+                    %223:ptr<function, BST, read_write> = access %tree, 6i
+                    store %223, BST(2i, -1i, -1i)
+                    store %x_251_phi, true
+                    exit_loop  # loop_6
+                  }
+                  $B73: {  # false
+                    %224:ptr<function, i32, read_write> = access %tree, %x_235_save, 2u
+                    %225:i32 = load %224
+                    store %x_241, %225
+                    %226:i32 = load %x_241
+                    store %x_224_phi, %226
+                    continue  # -> $B65
+                  }
+                }
+                exit_if  # if_27
+              }
+            }
+            unreachable
+          }
+          $B65: {  # continuing
+            %227:i32 = load %x_224_phi
+            store %x_224, %227
+            %228:i32 = load %x_224
+            store %x_223_phi, %228
+            next_iteration  # -> $B64
+          }
+        }
+        %229:bool = load %x_251_phi
+        %x_251:bool = let %229
+        if %x_251 [t: $B74] {  # if_30
+          $B74: {  # true
+            exit_switch  # switch_6
+          }
+        }
+        exit_switch  # switch_6
+      }
+    }
+    %x_256_phi:ptr<function, i32, read_write> = var
+    %x_284_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B75)] {  # switch_7
+      $B75: {  # case
+        store %x_256_phi, 0i
+        loop [b: $B76, c: $B77] {  # loop_7
+          $B76: {  # body
+            %x_282:ptr<function, i32, read_write> = var
+            %x_274:ptr<function, i32, read_write> = var
+            %x_257:ptr<function, i32, read_write> = var
+            %x_257_phi:ptr<function, i32, read_write> = var
+            %237:i32 = load %x_256_phi
+            %x_256:i32 = let %237
+            store %x_284_phi, false
+            %239:bool = lte %x_256, 7i
+            if %239 [t: $B78, f: $B79] {  # if_31
+              $B78: {  # true
+                exit_if  # if_31
+              }
+              $B79: {  # false
+                exit_loop  # loop_7
+              }
+            }
+            %240:ptr<function, i32, read_write> = access %tree, %x_256, 0u
+            %241:i32 = load %240
+            %x_263:i32 = let %241
+            %243:bool = lte 6i, %x_263
+            if %243 [t: $B80, f: $B81] {  # if_32
+              $B80: {  # true
+                %x_276_save:i32 = let %x_256
+                %245:ptr<function, i32, read_write> = access %tree, %x_276_save, 1u
+                %246:i32 = load %245
+                %x_277:i32 = let %246
+                %248:bool = eq %x_277, -1i
+                if %248 [t: $B82, f: $B83] {  # if_33
+                  $B82: {  # true
+                    %249:ptr<function, i32, read_write> = access %tree, %x_276_save, 1u
+                    store %249, 7i
+                    %250:ptr<function, BST, read_write> = access %tree, 7i
+                    store %250, BST(6i, -1i, -1i)
+                    store %x_284_phi, true
+                    exit_loop  # loop_7
+                  }
+                  $B83: {  # false
+                    %251:ptr<function, i32, read_write> = access %tree, %x_276_save, 1u
+                    %252:i32 = load %251
+                    store %x_282, %252
+                    %253:i32 = load %x_282
+                    store %x_257_phi, %253
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+              $B81: {  # false
+                %x_268_save:i32 = let %x_256
+                %255:ptr<function, i32, read_write> = access %tree, %x_268_save, 2u
+                %256:i32 = load %255
+                %x_269:i32 = let %256
+                %258:bool = eq %x_269, -1i
+                if %258 [t: $B84, f: $B85] {  # if_34
+                  $B84: {  # true
+                    %259:ptr<function, i32, read_write> = access %tree, %x_268_save, 2u
+                    store %259, 7i
+                    %260:ptr<function, BST, read_write> = access %tree, 7i
+                    store %260, BST(6i, -1i, -1i)
+                    store %x_284_phi, true
+                    exit_loop  # loop_7
+                  }
+                  $B85: {  # false
+                    %261:ptr<function, i32, read_write> = access %tree, %x_268_save, 2u
+                    %262:i32 = load %261
+                    store %x_274, %262
+                    %263:i32 = load %x_274
+                    store %x_257_phi, %263
+                    continue  # -> $B77
+                  }
+                }
+                exit_if  # if_32
+              }
+            }
+            unreachable
+          }
+          $B77: {  # continuing
+            %264:i32 = load %x_257_phi
+            store %x_257, %264
+            %265:i32 = load %x_257
+            store %x_256_phi, %265
+            next_iteration  # -> $B76
+          }
+        }
+        %266:bool = load %x_284_phi
+        %x_284:bool = let %266
+        if %x_284 [t: $B86] {  # if_35
+          $B86: {  # true
+            exit_switch  # switch_7
+          }
+        }
+        exit_switch  # switch_7
+      }
+    }
+    %x_289_phi:ptr<function, i32, read_write> = var
+    %x_317_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B87)] {  # switch_8
+      $B87: {  # case
+        store %x_289_phi, 0i
+        loop [b: $B88, c: $B89] {  # loop_8
+          $B88: {  # body
+            %x_315:ptr<function, i32, read_write> = var
+            %x_307:ptr<function, i32, read_write> = var
+            %x_290:ptr<function, i32, read_write> = var
+            %x_290_phi:ptr<function, i32, read_write> = var
+            %274:i32 = load %x_289_phi
+            %x_289:i32 = let %274
+            store %x_317_phi, false
+            %276:bool = lte %x_289, 8i
+            if %276 [t: $B90, f: $B91] {  # if_36
+              $B90: {  # true
+                exit_if  # if_36
+              }
+              $B91: {  # false
+                exit_loop  # loop_8
+              }
+            }
+            %277:ptr<function, i32, read_write> = access %tree, %x_289, 0u
+            %278:i32 = load %277
+            %x_296:i32 = let %278
+            %280:bool = lte 17i, %x_296
+            if %280 [t: $B92, f: $B93] {  # if_37
+              $B92: {  # true
+                %x_309_save:i32 = let %x_289
+                %282:ptr<function, i32, read_write> = access %tree, %x_309_save, 1u
+                %283:i32 = load %282
+                %x_310:i32 = let %283
+                %285:bool = eq %x_310, -1i
+                if %285 [t: $B94, f: $B95] {  # if_38
+                  $B94: {  # true
+                    %286:ptr<function, i32, read_write> = access %tree, %x_309_save, 1u
+                    store %286, 8i
+                    %287:ptr<function, BST, read_write> = access %tree, 8i
+                    store %287, BST(17i, -1i, -1i)
+                    store %x_317_phi, true
+                    exit_loop  # loop_8
+                  }
+                  $B95: {  # false
+                    %288:ptr<function, i32, read_write> = access %tree, %x_309_save, 1u
+                    %289:i32 = load %288
+                    store %x_315, %289
+                    %290:i32 = load %x_315
+                    store %x_290_phi, %290
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+              $B93: {  # false
+                %x_301_save:i32 = let %x_289
+                %292:ptr<function, i32, read_write> = access %tree, %x_301_save, 2u
+                %293:i32 = load %292
+                %x_302:i32 = let %293
+                %295:bool = eq %x_302, -1i
+                if %295 [t: $B96, f: $B97] {  # if_39
+                  $B96: {  # true
+                    %296:ptr<function, i32, read_write> = access %tree, %x_301_save, 2u
+                    store %296, 8i
+                    %297:ptr<function, BST, read_write> = access %tree, 8i
+                    store %297, BST(17i, -1i, -1i)
+                    store %x_317_phi, true
+                    exit_loop  # loop_8
+                  }
+                  $B97: {  # false
+                    %298:ptr<function, i32, read_write> = access %tree, %x_301_save, 2u
+                    %299:i32 = load %298
+                    store %x_307, %299
+                    %300:i32 = load %x_307
+                    store %x_290_phi, %300
+                    continue  # -> $B89
+                  }
+                }
+                exit_if  # if_37
+              }
+            }
+            unreachable
+          }
+          $B89: {  # continuing
+            %301:i32 = load %x_290_phi
+            store %x_290, %301
+            %302:i32 = load %x_290
+            store %x_289_phi, %302
+            next_iteration  # -> $B88
+          }
+        }
+        %303:bool = load %x_317_phi
+        %x_317:bool = let %303
+        if %x_317 [t: $B98] {  # if_40
+          $B98: {  # true
+            exit_switch  # switch_8
+          }
+        }
+        exit_switch  # switch_8
+      }
+    }
+    %x_322_phi:ptr<function, i32, read_write> = var
+    %x_350_phi:ptr<function, bool, read_write> = var
+    switch 0u [c: (default, $B99)] {  # switch_9
+      $B99: {  # case
+        store %x_322_phi, 0i
+        loop [b: $B100, c: $B101] {  # loop_9
+          $B100: {  # body
+            %x_348:ptr<function, i32, read_write> = var
+            %x_340:ptr<function, i32, read_write> = var
+            %x_323:ptr<function, i32, read_write> = var
+            %x_323_phi:ptr<function, i32, read_write> = var
+            %311:i32 = load %x_322_phi
+            %x_322:i32 = let %311
+            store %x_350_phi, false
+            %313:bool = lte %x_322, 9i
+            if %313 [t: $B102, f: $B103] {  # if_41
+              $B102: {  # true
+                exit_if  # if_41
+              }
+              $B103: {  # false
+                exit_loop  # loop_9
+              }
+            }
+            %314:ptr<function, i32, read_write> = access %tree, %x_322, 0u
+            %315:i32 = load %314
+            %x_329:i32 = let %315
+            %317:bool = lte 13i, %x_329
+            if %317 [t: $B104, f: $B105] {  # if_42
+              $B104: {  # true
+                %x_342_save:i32 = let %x_322
+                %319:ptr<function, i32, read_write> = access %tree, %x_342_save, 1u
+                %320:i32 = load %319
+                %x_343:i32 = let %320
+                %322:bool = eq %x_343, -1i
+                if %322 [t: $B106, f: $B107] {  # if_43
+                  $B106: {  # true
+                    %323:ptr<function, i32, read_write> = access %tree, %x_342_save, 1u
+                    store %323, 9i
+                    %324:ptr<function, BST, read_write> = access %tree, 9i
+                    store %324, BST(13i, -1i, -1i)
+                    store %x_350_phi, true
+                    exit_loop  # loop_9
+                  }
+                  $B107: {  # false
+                    %325:ptr<function, i32, read_write> = access %tree, %x_342_save, 1u
+                    %326:i32 = load %325
+                    store %x_348, %326
+                    %327:i32 = load %x_348
+                    store %x_323_phi, %327
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+              $B105: {  # false
+                %x_334_save:i32 = let %x_322
+                %329:ptr<function, i32, read_write> = access %tree, %x_334_save, 2u
+                %330:i32 = load %329
+                %x_335:i32 = let %330
+                %332:bool = eq %x_335, -1i
+                if %332 [t: $B108, f: $B109] {  # if_44
+                  $B108: {  # true
+                    %333:ptr<function, i32, read_write> = access %tree, %x_334_save, 2u
+                    store %333, 9i
+                    %334:ptr<function, BST, read_write> = access %tree, 9i
+                    store %334, BST(13i, -1i, -1i)
+                    store %x_350_phi, true
+                    exit_loop  # loop_9
+                  }
+                  $B109: {  # false
+                    %335:ptr<function, i32, read_write> = access %tree, %x_334_save, 2u
+                    %336:i32 = load %335
+                    store %x_340, %336
+                    %337:i32 = load %x_340
+                    store %x_323_phi, %337
+                    continue  # -> $B101
+                  }
+                }
+                exit_if  # if_42
+              }
+            }
+            unreachable
+          }
+          $B101: {  # continuing
+            %338:i32 = load %x_323_phi
+            store %x_323, %338
+            %339:i32 = load %x_323
+            store %x_322_phi, %339
+            next_iteration  # -> $B100
+          }
+        }
+        %340:bool = load %x_350_phi
+        %x_350:bool = let %340
+        if %x_350 [t: $B110] {  # if_45
+          $B110: {  # true
+            exit_switch  # switch_9
+          }
+        }
+        exit_switch  # switch_9
+      }
+    }
+    store %x_353_phi, 0i
+    store %x_356_phi, 0i
+    store %x_358_phi, 0i
+    loop [b: $B111, c: $B112] {  # loop_10
+      $B111: {  # body
+        %x_381:ptr<function, i32, read_write> = var
+        %x_391:ptr<function, i32, read_write> = var
+        %x_396:ptr<function, i32, read_write> = var
+        %x_359:ptr<function, i32, read_write> = var
+        %x_354_phi:ptr<function, i32, read_write> = var
+        %x_357_phi:ptr<function, i32, read_write> = var
+        %348:i32 = load %x_353_phi
+        %x_353:i32 = let %348
+        %350:i32 = load %x_356_phi
+        store %x_356, %350
+        %351:i32 = load %x_358_phi
+        %x_358:i32 = let %351
+        %353:bool = lt %x_358, 20i
+        if %353 [t: $B113, f: $B114] {  # if_46
+          $B113: {  # true
+            exit_if  # if_46
+          }
+          $B114: {  # false
+            exit_loop  # loop_10
+          }
+        }
+        %x_366_phi:ptr<function, i32, read_write> = var
+        %x_381_phi:ptr<function, i32, read_write> = var
+        %x_382_phi:ptr<function, bool, read_write> = var
+        switch 0u [c: (default, $B115)] {  # switch_10
+          $B115: {  # case
+            store %x_366_phi, 0i
+            loop [b: $B116, c: $B117] {  # loop_11
+              $B116: {  # body
+                %357:i32 = load %x_366_phi
+                %x_366:i32 = let %357
+                store %x_381_phi, %x_353
+                store %x_382_phi, false
+                %359:bool = neq %x_366, -1i
+                if %359 [t: $B118, f: $B119] {  # if_47
+                  $B118: {  # true
+                    exit_if  # if_47
+                  }
+                  $B119: {  # false
+                    exit_loop  # loop_11
+                  }
+                }
+                %360:ptr<function, BST, read_write> = access %tree, %x_366
+                %361:BST = load %360
+                %x_373:BST = let %361
+                %363:i32 = access %x_373, 0u
+                %x_374:i32 = let %363
+                %365:i32 = access %x_373, 1u
+                %x_375:i32 = let %365
+                %367:i32 = access %x_373, 2u
+                %x_376:i32 = let %367
+                %369:bool = eq %x_374, %x_358
+                if %369 [t: $B120] {  # if_48
+                  $B120: {  # true
+                    store %x_381_phi, %x_358
+                    store %x_382_phi, true
+                    exit_loop  # loop_11
+                  }
+                }
+                continue  # -> $B117
+              }
+              $B117: {  # continuing
+                %370:bool = gt %x_358, %x_374
+                %371:i32 = select %x_375, %x_376, %370
+                store %x_366_phi, %371
+                next_iteration  # -> $B116
+              }
+            }
+            %372:i32 = load %x_381_phi
+            store %x_381, %372
+            %373:bool = load %x_382_phi
+            %x_382:bool = let %373
+            %375:i32 = load %x_381
+            store %x_354_phi, %375
+            if %x_382 [t: $B121] {  # if_49
+              $B121: {  # true
+                exit_switch  # switch_10
+              }
+            }
+            store %x_354_phi, -1i
+            exit_switch  # switch_10
+          }
+        }
+        %x_354:ptr<function, i32, read_write> = var
+        %x_390:ptr<function, i32, read_write> = var
+        %x_395:ptr<function, i32, read_write> = var
+        %x_391_phi:ptr<function, i32, read_write> = var
+        %x_396_phi:ptr<function, i32, read_write> = var
+        %381:i32 = load %x_354_phi
+        store %x_354, %381
+        switch %x_358 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B122), c: (default, $B123)] {  # switch_11
+          $B122: {  # case
+            %382:i32 = load %x_356
+            store %x_391_phi, %382
+            %383:i32 = load %x_354
+            %384:i32 = let %383
+            %385:i32 = bitcast %x_358
+            %386:bool = eq %384, %385
+            if %386 [t: $B124] {  # if_50
+              $B124: {  # true
+                %387:i32 = load %x_356
+                %388:i32 = add %387, 1i
+                %389:i32 = bitcast %388
+                store %x_390, %389
+                %390:i32 = load %x_390
+                store %x_391_phi, %390
+                exit_if  # if_50
+              }
+            }
+            %391:i32 = load %x_391_phi
+            store %x_391, %391
+            %392:i32 = load %x_391
+            store %x_357_phi, %392
+            exit_switch  # switch_11
+          }
+          $B123: {  # case
+            %393:i32 = load %x_356
+            store %x_396_phi, %393
+            %394:i32 = load %x_354
+            %395:bool = eq %394, -1i
+            if %395 [t: $B125] {  # if_51
+              $B125: {  # true
+                %396:i32 = load %x_356
+                %397:i32 = add %396, 1i
+                %398:i32 = bitcast %397
+                store %x_395, %398
+                %399:i32 = load %x_395
+                store %x_396_phi, %399
+                exit_if  # if_51
+              }
+            }
+            %400:i32 = load %x_396_phi
+            store %x_396, %400
+            %401:i32 = load %x_396
+            store %x_357_phi, %401
+            exit_switch  # switch_11
+          }
+        }
+        %402:i32 = load %x_357_phi
+        %x_357:i32 = let %402
+        continue  # -> $B112
+      }
+      $B112: {  # continuing
+        %404:i32 = add %x_358, 1i
+        store %x_359, %404
+        %405:i32 = load %x_354
+        store %x_353_phi, %405
+        store %x_356_phi, %x_357
+        %406:i32 = load %x_359
+        store %x_358_phi, %406
+        next_iteration  # -> $B111
+      }
+    }
+    %407:i32 = load %x_356
+    %408:bool = eq %407, 20i
+    if %408 [t: $B126, f: $B127] {  # if_52
+      $B126: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_52
+      }
+      $B127: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_52
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B128: {
+    %410:void = call %main_1
+    %411:vec4<f32> = load %x_GLF_color
+    %412:main_out = construct %411
+    ret %412
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.msl
index 28251dc..7a950e2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.spvasm.expected.ir.msl
@@ -1,6 +1,384 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %tree_1:ptr<private, array<BST, 10>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %6:ptr<function, i32, read_write> = access %tree, 0u
+    %7:i32 = load %data
+    store %6, %7
+    %8:ptr<function, i32, read_write> = access %tree, 1u
+    store %8, -1i
+    %9:ptr<function, i32, read_write> = access %tree, 2u
+    store %9, -1i
+    ret
+  }
+}
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
+    %baseIndex:ptr<function, i32, read_write> = var
+    %param:ptr<function, BST, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    %param_2:ptr<function, BST, read_write> = var
+    %param_3:ptr<function, i32, read_write> = var
+    store %baseIndex, 0i
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %18:i32 = load %baseIndex
+        %19:i32 = load %treeIndex
+        %20:bool = lte %18, %19
+        if %20 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %21:i32 = load %data_1
+        %22:i32 = load %baseIndex
+        %23:ptr<private, i32, read_write> = access %tree_1, %22, 0u
+        %24:i32 = load %23
+        %25:bool = lte %21, %24
+        if %25 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %26:i32 = load %baseIndex
+            %27:ptr<private, i32, read_write> = access %tree_1, %26, 1u
+            %28:i32 = load %27
+            %29:bool = eq %28, -1i
+            if %29 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %30:i32 = load %baseIndex
+                %x_186:i32 = let %30
+                %32:ptr<private, i32, read_write> = access %tree_1, %x_186, 1u
+                %33:i32 = load %treeIndex
+                store %32, %33
+                %34:i32 = load %treeIndex
+                %x_189:i32 = let %34
+                %36:ptr<private, BST, read_write> = access %tree_1, %x_189
+                %37:BST = load %36
+                store %param, %37
+                %38:i32 = load %data_1
+                store %param_1, %38
+                %39:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %40:ptr<private, BST, read_write> = access %tree_1, %x_189
+                %41:BST = load %param
+                store %40, %41
+                ret
+              }
+              $B11: {  # false
+                %42:i32 = load %baseIndex
+                %43:ptr<private, i32, read_write> = access %tree_1, %42, 1u
+                %44:i32 = load %43
+                store %baseIndex, %44
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+          $B9: {  # false
+            %45:i32 = load %baseIndex
+            %46:ptr<private, i32, read_write> = access %tree_1, %45, 2u
+            %47:i32 = load %46
+            %48:bool = eq %47, -1i
+            if %48 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %49:i32 = load %baseIndex
+                %x_206:i32 = let %49
+                %51:ptr<private, i32, read_write> = access %tree_1, %x_206, 2u
+                %52:i32 = load %treeIndex
+                store %51, %52
+                %53:i32 = load %treeIndex
+                %x_209:i32 = let %53
+                %55:ptr<private, BST, read_write> = access %tree_1, %x_209
+                %56:BST = load %55
+                store %param_2, %56
+                %57:i32 = load %data_1
+                store %param_3, %57
+                %58:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %59:ptr<private, BST, read_write> = access %tree_1, %x_209
+                %60:BST = load %param_2
+                store %59, %60
+                ret
+              }
+              $B13: {  # false
+                %61:i32 = load %baseIndex
+                %62:ptr<private, i32, read_write> = access %tree_1, %61, 2u
+                %63:i32 = load %62
+                store %baseIndex, %63
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        unreachable
+      }
+      $B5: {  # continuing
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %index:ptr<function, i32, read_write> = var
+    %currentNode:ptr<function, BST, read_write> = var
+    %x_220:ptr<function, i32, read_write> = var
+    store %index, 0i
+    loop [b: $B15, c: $B16] {  # loop_2
+      $B15: {  # body
+        %69:i32 = load %index
+        %70:bool = neq %69, -1i
+        if %70 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %71:i32 = load %index
+        %72:ptr<private, BST, read_write> = access %tree_1, %71
+        %73:BST = load %72
+        store %currentNode, %73
+        %74:ptr<function, i32, read_write> = access %currentNode, 0u
+        %75:i32 = load %74
+        %76:i32 = load %t
+        %77:bool = eq %75, %76
+        if %77 [t: $B19] {  # if_6
+          $B19: {  # true
+            %78:i32 = load %t
+            %x_237:i32 = let %78
+            ret %x_237
+          }
+        }
+        %80:i32 = load %t
+        %81:ptr<function, i32, read_write> = access %currentNode, 0u
+        %82:i32 = load %81
+        %83:bool = gt %80, %82
+        if %83 [t: $B20, f: $B21] {  # if_7
+          $B20: {  # true
+            %84:ptr<function, i32, read_write> = access %currentNode, 2u
+            %85:i32 = load %84
+            store %x_220, %85
+            exit_if  # if_7
+          }
+          $B21: {  # false
+            %86:ptr<function, i32, read_write> = access %currentNode, 1u
+            %87:i32 = load %86
+            store %x_220, %87
+            exit_if  # if_7
+          }
+        }
+        %88:i32 = load %x_220
+        store %index, %88
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        next_iteration  # -> $B15
+      }
+    }
+    ret -1i
+  }
+}
+%main_1 = func():void {
+  $B22: {
+    %treeIndex_1:ptr<function, i32, read_write> = var
+    %param_4:ptr<function, BST, read_write> = var
+    %param_5:ptr<function, i32, read_write> = var
+    %param_6:ptr<function, i32, read_write> = var
+    %param_7:ptr<function, i32, read_write> = var
+    %param_8:ptr<function, i32, read_write> = var
+    %param_9:ptr<function, i32, read_write> = var
+    %param_10:ptr<function, i32, read_write> = var
+    %param_11:ptr<function, i32, read_write> = var
+    %param_12:ptr<function, i32, read_write> = var
+    %param_13:ptr<function, i32, read_write> = var
+    %param_14:ptr<function, i32, read_write> = var
+    %param_15:ptr<function, i32, read_write> = var
+    %param_16:ptr<function, i32, read_write> = var
+    %param_17:ptr<function, i32, read_write> = var
+    %param_18:ptr<function, i32, read_write> = var
+    %param_19:ptr<function, i32, read_write> = var
+    %param_20:ptr<function, i32, read_write> = var
+    %param_21:ptr<function, i32, read_write> = var
+    %param_22:ptr<function, i32, read_write> = var
+    %param_23:ptr<function, i32, read_write> = var
+    %count:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %result:ptr<function, i32, read_write> = var
+    %param_24:ptr<function, i32, read_write> = var
+    store %treeIndex_1, 0i
+    %115:ptr<private, BST, read_write> = access %tree_1, 0i
+    %116:BST = load %115
+    store %param_4, %116
+    store %param_5, 9i
+    %117:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %118:ptr<private, BST, read_write> = access %tree_1, 0i
+    %119:BST = load %param_4
+    store %118, %119
+    %120:i32 = load %treeIndex_1
+    %121:i32 = add %120, 1i
+    store %treeIndex_1, %121
+    %122:i32 = load %treeIndex_1
+    store %param_6, %122
+    store %param_7, 5i
+    %123:void = call %insert_i1_i1_, %param_6, %param_7
+    %124:i32 = load %treeIndex_1
+    %125:i32 = add %124, 1i
+    store %treeIndex_1, %125
+    %126:i32 = load %treeIndex_1
+    store %param_8, %126
+    store %param_9, 12i
+    %127:void = call %insert_i1_i1_, %param_8, %param_9
+    %128:i32 = load %treeIndex_1
+    %129:i32 = add %128, 1i
+    store %treeIndex_1, %129
+    %130:i32 = load %treeIndex_1
+    store %param_10, %130
+    store %param_11, 15i
+    %131:void = call %insert_i1_i1_, %param_10, %param_11
+    %132:i32 = load %treeIndex_1
+    %133:i32 = add %132, 1i
+    store %treeIndex_1, %133
+    %134:i32 = load %treeIndex_1
+    store %param_12, %134
+    store %param_13, 7i
+    %135:void = call %insert_i1_i1_, %param_12, %param_13
+    %136:i32 = load %treeIndex_1
+    %137:i32 = add %136, 1i
+    store %treeIndex_1, %137
+    %138:i32 = load %treeIndex_1
+    store %param_14, %138
+    store %param_15, 8i
+    %139:void = call %insert_i1_i1_, %param_14, %param_15
+    %140:i32 = load %treeIndex_1
+    %141:i32 = add %140, 1i
+    store %treeIndex_1, %141
+    %142:i32 = load %treeIndex_1
+    store %param_16, %142
+    store %param_17, 2i
+    %143:void = call %insert_i1_i1_, %param_16, %param_17
+    %144:i32 = load %treeIndex_1
+    %145:i32 = add %144, 1i
+    store %treeIndex_1, %145
+    %146:i32 = load %treeIndex_1
+    store %param_18, %146
+    store %param_19, 6i
+    %147:void = call %insert_i1_i1_, %param_18, %param_19
+    %148:i32 = load %treeIndex_1
+    %149:i32 = add %148, 1i
+    store %treeIndex_1, %149
+    %150:i32 = load %treeIndex_1
+    store %param_20, %150
+    store %param_21, 17i
+    %151:void = call %insert_i1_i1_, %param_20, %param_21
+    %152:i32 = load %treeIndex_1
+    %153:i32 = add %152, 1i
+    store %treeIndex_1, %153
+    %154:i32 = load %treeIndex_1
+    store %param_22, %154
+    store %param_23, 13i
+    %155:void = call %insert_i1_i1_, %param_22, %param_23
+    store %count, 0i
+    store %i, 0i
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
+        %156:i32 = load %i
+        %157:bool = lt %156, 20i
+        if %157 [t: $B25, f: $B26] {  # if_8
+          $B25: {  # true
+            exit_if  # if_8
+          }
+          $B26: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %158:i32 = load %i
+        store %param_24, %158
+        %159:i32 = call %search_i1_, %param_24
+        %x_132:i32 = let %159
+        store %result, %x_132
+        %161:i32 = load %i
+        %x_133:i32 = let %161
+        switch %x_133 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B27), c: (default, $B28)] {  # switch_1
+          $B27: {  # case
+            %163:i32 = load %result
+            %164:i32 = load %i
+            %165:bool = eq %163, %164
+            if %165 [t: $B29] {  # if_9
+              $B29: {  # true
+                %166:i32 = load %count
+                %167:i32 = add %166, 1i
+                store %count, %167
+                exit_if  # if_9
+              }
+            }
+            exit_switch  # switch_1
+          }
+          $B28: {  # case
+            %168:i32 = load %result
+            %169:bool = eq %168, -1i
+            if %169 [t: $B30] {  # if_10
+              $B30: {  # true
+                %170:i32 = load %count
+                %171:i32 = add %170, 1i
+                store %count, %171
+                exit_if  # if_10
+              }
+            }
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B24
+      }
+      $B24: {  # continuing
+        %172:i32 = load %i
+        %173:i32 = add %172, 1i
+        store %i, %173
+        next_iteration  # -> $B23
+      }
+    }
+    %174:i32 = load %count
+    %175:bool = eq %174, 20i
+    if %175 [t: $B31, f: $B32] {  # if_11
+      $B31: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_11
+      }
+      $B32: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_11
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B33: {
+    %177:void = call %main_1
+    %178:vec4<f32> = load %x_GLF_color
+    %179:main_out = construct %178
+    ret %179
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.msl
index 28251dc..93b6e0e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl.expected.ir.msl
@@ -1,6 +1,445 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %tree_1:ptr<private, array<BST, 10>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %6:i32 = load %data
+    %x_158:i32 = let %6
+    %8:ptr<function, i32, read_write> = access %tree, 0u
+    store %8, %x_158
+    %9:ptr<function, i32, read_write> = access %tree, 1u
+    store %9, -1i
+    %10:ptr<function, i32, read_write> = access %tree, 2u
+    store %10, -1i
+    ret
+  }
+}
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
+    %baseIndex:ptr<function, i32, read_write> = var
+    %param:ptr<function, BST, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    %param_2:ptr<function, BST, read_write> = var
+    %param_3:ptr<function, i32, read_write> = var
+    store %baseIndex, 0i
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %19:i32 = load %baseIndex
+        %x_167:i32 = let %19
+        %21:i32 = load %treeIndex
+        %x_168:i32 = let %21
+        %23:bool = lte %x_167, %x_168
+        if %23 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %24:i32 = load %data_1
+        %x_171:i32 = let %24
+        %26:i32 = load %baseIndex
+        %x_172:i32 = let %26
+        %28:ptr<private, i32, read_write> = access %tree_1, %x_172, 0u
+        %29:i32 = load %28
+        %x_174:i32 = let %29
+        %31:bool = lte %x_171, %x_174
+        if %31 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %32:i32 = load %baseIndex
+            %x_179:i32 = let %32
+            %34:ptr<private, i32, read_write> = access %tree_1, %x_179, 1u
+            %35:i32 = load %34
+            %x_181:i32 = let %35
+            %37:bool = eq %x_181, -1i
+            if %37 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %38:i32 = load %baseIndex
+                %x_186:i32 = let %38
+                %40:i32 = load %treeIndex
+                %x_187:i32 = let %40
+                %42:ptr<private, i32, read_write> = access %tree_1, %x_186, 1u
+                store %42, %x_187
+                %43:i32 = load %treeIndex
+                %x_189:i32 = let %43
+                %45:ptr<private, BST, read_write> = access %tree_1, %x_189
+                %46:BST = load %45
+                %x_191:BST = let %46
+                store %param, %x_191
+                %48:i32 = load %data_1
+                %x_192:i32 = let %48
+                store %param_1, %x_192
+                %50:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %51:BST = load %param
+                %x_194:BST = let %51
+                %53:ptr<private, BST, read_write> = access %tree_1, %x_189
+                store %53, %x_194
+                ret
+              }
+              $B11: {  # false
+                %54:i32 = load %baseIndex
+                %x_196:i32 = let %54
+                %56:ptr<private, i32, read_write> = access %tree_1, %x_196, 1u
+                %57:i32 = load %56
+                %x_198:i32 = let %57
+                store %baseIndex, %x_198
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+          $B9: {  # false
+            %59:i32 = load %baseIndex
+            %x_199:i32 = let %59
+            %61:ptr<private, i32, read_write> = access %tree_1, %x_199, 2u
+            %62:i32 = load %61
+            %x_201:i32 = let %62
+            %64:bool = eq %x_201, -1i
+            if %64 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %65:i32 = load %baseIndex
+                %x_206:i32 = let %65
+                %67:i32 = load %treeIndex
+                %x_207:i32 = let %67
+                %69:ptr<private, i32, read_write> = access %tree_1, %x_206, 2u
+                store %69, %x_207
+                %70:i32 = load %treeIndex
+                %x_209:i32 = let %70
+                %72:ptr<private, BST, read_write> = access %tree_1, %x_209
+                %73:BST = load %72
+                %x_211:BST = let %73
+                store %param_2, %x_211
+                %75:i32 = load %data_1
+                %x_212:i32 = let %75
+                store %param_3, %x_212
+                %77:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %78:BST = load %param_2
+                %x_214:BST = let %78
+                %80:ptr<private, BST, read_write> = access %tree_1, %x_209
+                store %80, %x_214
+                ret
+              }
+              $B13: {  # false
+                %81:i32 = load %baseIndex
+                %x_216:i32 = let %81
+                %83:ptr<private, i32, read_write> = access %tree_1, %x_216, 2u
+                %84:i32 = load %83
+                %x_218:i32 = let %84
+                store %baseIndex, %x_218
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        unreachable
+      }
+      $B5: {  # continuing
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %index:ptr<function, i32, read_write> = var
+    %currentNode:ptr<function, BST, read_write> = var
+    %x_220:ptr<function, i32, read_write> = var
+    store %index, 0i
+    loop [b: $B15, c: $B16] {  # loop_2
+      $B15: {  # body
+        %91:i32 = load %index
+        %x_225:i32 = let %91
+        %93:bool = neq %x_225, -1i
+        if %93 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %94:i32 = load %index
+        %x_228:i32 = let %94
+        %96:ptr<private, BST, read_write> = access %tree_1, %x_228
+        %97:BST = load %96
+        %x_230:BST = let %97
+        store %currentNode, %x_230
+        %99:ptr<function, i32, read_write> = access %currentNode, 0u
+        %100:i32 = load %99
+        %x_232:i32 = let %100
+        %102:i32 = load %t
+        %x_233:i32 = let %102
+        %104:bool = eq %x_232, %x_233
+        if %104 [t: $B19] {  # if_6
+          $B19: {  # true
+            %105:i32 = load %t
+            %x_237:i32 = let %105
+            ret %x_237
+          }
+        }
+        %107:i32 = load %t
+        %x_238:i32 = let %107
+        %109:ptr<function, i32, read_write> = access %currentNode, 0u
+        %110:i32 = load %109
+        %x_240:i32 = let %110
+        %112:bool = gt %x_238, %x_240
+        if %112 [t: $B20, f: $B21] {  # if_7
+          $B20: {  # true
+            %113:ptr<function, i32, read_write> = access %currentNode, 2u
+            %114:i32 = load %113
+            %x_246:i32 = let %114
+            store %x_220, %x_246
+            exit_if  # if_7
+          }
+          $B21: {  # false
+            %116:ptr<function, i32, read_write> = access %currentNode, 1u
+            %117:i32 = load %116
+            %x_248:i32 = let %117
+            store %x_220, %x_248
+            exit_if  # if_7
+          }
+        }
+        %119:i32 = load %x_220
+        %x_249:i32 = let %119
+        store %index, %x_249
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        next_iteration  # -> $B15
+      }
+    }
+    ret -1i
+  }
+}
+%main_1 = func():void {
+  $B22: {
+    %treeIndex_1:ptr<function, i32, read_write> = var
+    %param_4:ptr<function, BST, read_write> = var
+    %param_5:ptr<function, i32, read_write> = var
+    %param_6:ptr<function, i32, read_write> = var
+    %param_7:ptr<function, i32, read_write> = var
+    %param_8:ptr<function, i32, read_write> = var
+    %param_9:ptr<function, i32, read_write> = var
+    %param_10:ptr<function, i32, read_write> = var
+    %param_11:ptr<function, i32, read_write> = var
+    %param_12:ptr<function, i32, read_write> = var
+    %param_13:ptr<function, i32, read_write> = var
+    %param_14:ptr<function, i32, read_write> = var
+    %param_15:ptr<function, i32, read_write> = var
+    %param_16:ptr<function, i32, read_write> = var
+    %param_17:ptr<function, i32, read_write> = var
+    %param_18:ptr<function, i32, read_write> = var
+    %param_19:ptr<function, i32, read_write> = var
+    %param_20:ptr<function, i32, read_write> = var
+    %param_21:ptr<function, i32, read_write> = var
+    %param_22:ptr<function, i32, read_write> = var
+    %param_23:ptr<function, i32, read_write> = var
+    %count:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %result:ptr<function, i32, read_write> = var
+    %param_24:ptr<function, i32, read_write> = var
+    store %treeIndex_1, 0i
+    %147:ptr<private, BST, read_write> = access %tree_1, 0i
+    %148:BST = load %147
+    %x_84:BST = let %148
+    store %param_4, %x_84
+    store %param_5, 9i
+    %150:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %151:BST = load %param_4
+    %x_86:BST = let %151
+    %153:ptr<private, BST, read_write> = access %tree_1, 0i
+    store %153, %x_86
+    %154:i32 = load %treeIndex_1
+    %x_88:i32 = let %154
+    %156:i32 = add %x_88, 1i
+    store %treeIndex_1, %156
+    %157:i32 = load %treeIndex_1
+    %x_90:i32 = let %157
+    store %param_6, %x_90
+    store %param_7, 5i
+    %159:void = call %insert_i1_i1_, %param_6, %param_7
+    %160:i32 = load %treeIndex_1
+    %x_92:i32 = let %160
+    %162:i32 = add %x_92, 1i
+    store %treeIndex_1, %162
+    %163:i32 = load %treeIndex_1
+    %x_94:i32 = let %163
+    store %param_8, %x_94
+    store %param_9, 12i
+    %165:void = call %insert_i1_i1_, %param_8, %param_9
+    %166:i32 = load %treeIndex_1
+    %x_96:i32 = let %166
+    %168:i32 = add %x_96, 1i
+    store %treeIndex_1, %168
+    %169:i32 = load %treeIndex_1
+    %x_98:i32 = let %169
+    store %param_10, %x_98
+    store %param_11, 15i
+    %171:void = call %insert_i1_i1_, %param_10, %param_11
+    %172:i32 = load %treeIndex_1
+    %x_100:i32 = let %172
+    %174:i32 = add %x_100, 1i
+    store %treeIndex_1, %174
+    %175:i32 = load %treeIndex_1
+    %x_102:i32 = let %175
+    store %param_12, %x_102
+    store %param_13, 7i
+    %177:void = call %insert_i1_i1_, %param_12, %param_13
+    %178:i32 = load %treeIndex_1
+    %x_104:i32 = let %178
+    %180:i32 = add %x_104, 1i
+    store %treeIndex_1, %180
+    %181:i32 = load %treeIndex_1
+    %x_106:i32 = let %181
+    store %param_14, %x_106
+    store %param_15, 8i
+    %183:void = call %insert_i1_i1_, %param_14, %param_15
+    %184:i32 = load %treeIndex_1
+    %x_108:i32 = let %184
+    %186:i32 = add %x_108, 1i
+    store %treeIndex_1, %186
+    %187:i32 = load %treeIndex_1
+    %x_110:i32 = let %187
+    store %param_16, %x_110
+    store %param_17, 2i
+    %189:void = call %insert_i1_i1_, %param_16, %param_17
+    %190:i32 = load %treeIndex_1
+    %x_112:i32 = let %190
+    %192:i32 = add %x_112, 1i
+    store %treeIndex_1, %192
+    %193:i32 = load %treeIndex_1
+    %x_114:i32 = let %193
+    store %param_18, %x_114
+    store %param_19, 6i
+    %195:void = call %insert_i1_i1_, %param_18, %param_19
+    %196:i32 = load %treeIndex_1
+    %x_116:i32 = let %196
+    %198:i32 = add %x_116, 1i
+    store %treeIndex_1, %198
+    %199:i32 = load %treeIndex_1
+    %x_118:i32 = let %199
+    store %param_20, %x_118
+    store %param_21, 17i
+    %201:void = call %insert_i1_i1_, %param_20, %param_21
+    %202:i32 = load %treeIndex_1
+    %x_120:i32 = let %202
+    %204:i32 = add %x_120, 1i
+    store %treeIndex_1, %204
+    %205:i32 = load %treeIndex_1
+    %x_122:i32 = let %205
+    store %param_22, %x_122
+    store %param_23, 13i
+    %207:void = call %insert_i1_i1_, %param_22, %param_23
+    store %count, 0i
+    store %i, 0i
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
+        %208:i32 = load %i
+        %x_128:i32 = let %208
+        %210:bool = lt %x_128, 20i
+        if %210 [t: $B25, f: $B26] {  # if_8
+          $B25: {  # true
+            exit_if  # if_8
+          }
+          $B26: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %211:i32 = load %i
+        %x_131:i32 = let %211
+        store %param_24, %x_131
+        %213:i32 = call %search_i1_, %param_24
+        %x_132:i32 = let %213
+        store %result, %x_132
+        %215:i32 = load %i
+        %x_133:i32 = let %215
+        switch %x_133 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B27), c: (default, $B28)] {  # switch_1
+          $B27: {  # case
+            %217:i32 = load %result
+            %x_143:i32 = let %217
+            %219:i32 = load %i
+            %x_144:i32 = let %219
+            %221:bool = eq %x_143, %x_144
+            if %221 [t: $B29] {  # if_9
+              $B29: {  # true
+                %222:i32 = load %count
+                %x_148:i32 = let %222
+                %224:i32 = add %x_148, 1i
+                store %count, %224
+                exit_if  # if_9
+              }
+            }
+            exit_switch  # switch_1
+          }
+          $B28: {  # case
+            %225:i32 = load %result
+            %x_137:i32 = let %225
+            %227:bool = eq %x_137, -1i
+            if %227 [t: $B30] {  # if_10
+              $B30: {  # true
+                %228:i32 = load %count
+                %x_141:i32 = let %228
+                %230:i32 = add %x_141, 1i
+                store %count, %230
+                exit_if  # if_10
+              }
+            }
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B24
+      }
+      $B24: {  # continuing
+        %231:i32 = load %i
+        %x_150:i32 = let %231
+        %233:i32 = add %x_150, 1i
+        store %i, %233
+        next_iteration  # -> $B23
+      }
+    }
+    %234:i32 = load %count
+    %x_152:i32 = let %234
+    %236:bool = eq %x_152, 20i
+    if %236 [t: $B31, f: $B32] {  # if_11
+      $B31: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_11
+      }
+      $B32: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_11
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B33: {
+    %238:void = call %main_1
+    %239:vec4<f32> = load %x_GLF_color
+    %240:main_out = construct %239
+    ret %240
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.msl
index 28251dc..fdb01f0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.spvasm.expected.ir.msl
@@ -1,6 +1,402 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %tree_1:ptr<private, array<BST, 10>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %7:ptr<function, i32, read_write> = access %tree, 0u
+    %8:i32 = load %data
+    store %7, %8
+    %9:ptr<function, i32, read_write> = access %tree, 1u
+    store %9, -1i
+    %10:ptr<function, i32, read_write> = access %tree, 2u
+    store %10, -1i
+    ret
+  }
+}
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
+    %baseIndex:ptr<function, i32, read_write> = var
+    %param:ptr<function, BST, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    %param_2:ptr<function, BST, read_write> = var
+    %param_3:ptr<function, i32, read_write> = var
+    store %baseIndex, 0i
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %19:i32 = load %baseIndex
+        %20:i32 = load %treeIndex
+        %21:bool = lte %19, %20
+        if %21 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %22:i32 = load %data_1
+        %23:i32 = load %baseIndex
+        %24:ptr<private, i32, read_write> = access %tree_1, %23, 0u
+        %25:i32 = load %24
+        %26:bool = lte %22, %25
+        if %26 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %27:i32 = load %baseIndex
+            %28:ptr<private, i32, read_write> = access %tree_1, %27, 1u
+            %29:i32 = load %28
+            %30:bool = eq %29, -1i
+            if %30 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %31:i32 = load %baseIndex
+                %x_197:i32 = let %31
+                %33:ptr<private, i32, read_write> = access %tree_1, %x_197, 1u
+                %34:i32 = load %treeIndex
+                store %33, %34
+                %35:i32 = load %treeIndex
+                %x_200:i32 = let %35
+                %37:ptr<private, BST, read_write> = access %tree_1, %x_200
+                %38:BST = load %37
+                store %param, %38
+                %39:i32 = load %data_1
+                store %param_1, %39
+                %40:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %41:ptr<private, BST, read_write> = access %tree_1, %x_200
+                %42:BST = load %param
+                store %41, %42
+                ret
+              }
+              $B11: {  # false
+                %43:i32 = load %baseIndex
+                %44:ptr<private, i32, read_write> = access %tree_1, %43, 1u
+                %45:i32 = load %44
+                store %baseIndex, %45
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+          $B9: {  # false
+            %46:i32 = load %baseIndex
+            %47:ptr<private, i32, read_write> = access %tree_1, %46, 2u
+            %48:i32 = load %47
+            %49:bool = eq %48, -1i
+            if %49 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %50:i32 = load %baseIndex
+                %x_217:i32 = let %50
+                %52:ptr<private, i32, read_write> = access %tree_1, %x_217, 2u
+                %53:i32 = load %treeIndex
+                store %52, %53
+                %54:i32 = load %treeIndex
+                %x_220:i32 = let %54
+                %56:ptr<private, BST, read_write> = access %tree_1, %x_220
+                %57:BST = load %56
+                store %param_2, %57
+                %58:i32 = load %data_1
+                store %param_3, %58
+                %59:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %60:ptr<private, BST, read_write> = access %tree_1, %x_220
+                %61:BST = load %param_2
+                store %60, %61
+                ret
+              }
+              $B13: {  # false
+                %62:i32 = load %baseIndex
+                %63:ptr<private, i32, read_write> = access %tree_1, %62, 2u
+                %64:i32 = load %63
+                store %baseIndex, %64
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        unreachable
+      }
+      $B5: {  # continuing
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %index:ptr<function, i32, read_write> = var
+    %currentNode:ptr<function, BST, read_write> = var
+    %x_231:ptr<function, i32, read_write> = var
+    store %index, 0i
+    loop [b: $B15, c: $B16] {  # loop_2
+      $B15: {  # body
+        %70:i32 = load %index
+        %71:bool = neq %70, -1i
+        if %71 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %72:i32 = load %index
+        %73:ptr<private, BST, read_write> = access %tree_1, %72
+        %74:BST = load %73
+        store %currentNode, %74
+        %75:ptr<function, i32, read_write> = access %currentNode, 0u
+        %76:i32 = load %75
+        %77:i32 = load %t
+        %78:bool = eq %76, %77
+        if %78 [t: $B19] {  # if_6
+          $B19: {  # true
+            %79:i32 = load %t
+            %x_248:i32 = let %79
+            ret %x_248
+          }
+        }
+        %81:i32 = load %t
+        %82:ptr<function, i32, read_write> = access %currentNode, 0u
+        %83:i32 = load %82
+        %84:bool = gt %81, %83
+        if %84 [t: $B20, f: $B21] {  # if_7
+          $B20: {  # true
+            %85:ptr<function, i32, read_write> = access %currentNode, 2u
+            %86:i32 = load %85
+            store %x_231, %86
+            exit_if  # if_7
+          }
+          $B21: {  # false
+            %87:ptr<function, i32, read_write> = access %currentNode, 1u
+            %88:i32 = load %87
+            store %x_231, %88
+            exit_if  # if_7
+          }
+        }
+        %89:i32 = load %x_231
+        store %index, %89
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        next_iteration  # -> $B15
+      }
+    }
+    ret -1i
+  }
+}
+%main_1 = func():void {
+  $B22: {
+    %treeIndex_1:ptr<function, i32, read_write> = var
+    %param_4:ptr<function, BST, read_write> = var
+    %param_5:ptr<function, i32, read_write> = var
+    %param_6:ptr<function, i32, read_write> = var
+    %param_7:ptr<function, i32, read_write> = var
+    %param_8:ptr<function, i32, read_write> = var
+    %param_9:ptr<function, i32, read_write> = var
+    %param_10:ptr<function, i32, read_write> = var
+    %param_11:ptr<function, i32, read_write> = var
+    %param_12:ptr<function, i32, read_write> = var
+    %param_13:ptr<function, i32, read_write> = var
+    %param_14:ptr<function, i32, read_write> = var
+    %param_15:ptr<function, i32, read_write> = var
+    %param_16:ptr<function, i32, read_write> = var
+    %param_17:ptr<function, i32, read_write> = var
+    %param_18:ptr<function, i32, read_write> = var
+    %param_19:ptr<function, i32, read_write> = var
+    %param_20:ptr<function, i32, read_write> = var
+    %param_21:ptr<function, i32, read_write> = var
+    %param_22:ptr<function, i32, read_write> = var
+    %param_23:ptr<function, i32, read_write> = var
+    %count:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %result:ptr<function, i32, read_write> = var
+    %param_24:ptr<function, i32, read_write> = var
+    store %treeIndex_1, 0i
+    %116:ptr<private, BST, read_write> = access %tree_1, 0i
+    %117:BST = load %116
+    store %param_4, %117
+    store %param_5, 9i
+    %118:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %119:ptr<private, BST, read_write> = access %tree_1, 0i
+    %120:BST = load %param_4
+    store %119, %120
+    %121:i32 = load %treeIndex_1
+    %122:i32 = add %121, 1i
+    store %treeIndex_1, %122
+    %123:i32 = load %treeIndex_1
+    store %param_6, %123
+    store %param_7, 5i
+    %124:void = call %insert_i1_i1_, %param_6, %param_7
+    %125:i32 = load %treeIndex_1
+    %126:i32 = add %125, 1i
+    store %treeIndex_1, %126
+    %127:i32 = load %treeIndex_1
+    store %param_8, %127
+    store %param_9, 12i
+    %128:void = call %insert_i1_i1_, %param_8, %param_9
+    %129:i32 = load %treeIndex_1
+    %130:i32 = add %129, 1i
+    store %treeIndex_1, %130
+    %131:i32 = load %treeIndex_1
+    store %param_10, %131
+    store %param_11, 15i
+    %132:void = call %insert_i1_i1_, %param_10, %param_11
+    %133:i32 = load %treeIndex_1
+    %134:i32 = add %133, 1i
+    store %treeIndex_1, %134
+    %135:i32 = load %treeIndex_1
+    store %param_12, %135
+    store %param_13, 7i
+    %136:void = call %insert_i1_i1_, %param_12, %param_13
+    %137:i32 = load %treeIndex_1
+    %138:i32 = add %137, 1i
+    store %treeIndex_1, %138
+    %139:i32 = load %treeIndex_1
+    store %param_14, %139
+    store %param_15, 8i
+    %140:void = call %insert_i1_i1_, %param_14, %param_15
+    %141:i32 = load %treeIndex_1
+    %142:i32 = add %141, 1i
+    store %treeIndex_1, %142
+    %143:i32 = load %treeIndex_1
+    store %param_16, %143
+    store %param_17, 2i
+    %144:void = call %insert_i1_i1_, %param_16, %param_17
+    %145:i32 = load %treeIndex_1
+    %146:i32 = add %145, 1i
+    store %treeIndex_1, %146
+    %147:i32 = load %treeIndex_1
+    store %param_18, %147
+    store %param_19, 6i
+    %148:void = call %insert_i1_i1_, %param_18, %param_19
+    %149:i32 = load %treeIndex_1
+    %150:i32 = add %149, 1i
+    store %treeIndex_1, %150
+    %151:i32 = load %treeIndex_1
+    store %param_20, %151
+    store %param_21, 17i
+    %152:void = call %insert_i1_i1_, %param_20, %param_21
+    %153:i32 = load %treeIndex_1
+    %154:i32 = add %153, 1i
+    store %treeIndex_1, %154
+    %155:i32 = load %treeIndex_1
+    store %param_22, %155
+    store %param_23, 13i
+    %156:void = call %insert_i1_i1_, %param_22, %param_23
+    store %count, 0i
+    store %i, 0i
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
+        %157:i32 = load %i
+        %158:bool = lt %157, 20i
+        if %158 [t: $B25, f: $B26] {  # if_8
+          $B25: {  # true
+            exit_if  # if_8
+          }
+          $B26: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %x_155:ptr<function, bool, read_write> = var
+        %x_156:ptr<function, bool, read_write> = var
+        %161:i32 = load %i
+        store %param_24, %161
+        %162:i32 = call %search_i1_, %param_24
+        %x_136:i32 = let %162
+        store %result, %x_136
+        %164:i32 = load %i
+        %x_137:i32 = let %164
+        switch %x_137 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B27), c: (default, $B28)] {  # switch_1
+          $B27: {  # case
+            %166:i32 = load %result
+            %167:i32 = load %i
+            %168:bool = eq %166, %167
+            %x_149:bool = let %168
+            store %x_156, %x_149
+            %170:bool = eq %x_149, false
+            if %170 [t: $B29] {  # if_9
+              $B29: {  # true
+                %171:f32 = load_vector_element %gl_FragCoord, 0u
+                %172:bool = lt %171, 0.0f
+                store %x_155, %172
+                %173:bool = load %x_155
+                store %x_156, %173
+                exit_if  # if_9
+              }
+            }
+            %174:bool = load %x_156
+            if %174 [t: $B30] {  # if_10
+              $B30: {  # true
+                %175:i32 = load %count
+                %176:i32 = add %175, 1i
+                store %count, %176
+                exit_if  # if_10
+              }
+            }
+            exit_switch  # switch_1
+          }
+          $B28: {  # case
+            %177:i32 = load %result
+            %178:bool = eq %177, -1i
+            if %178 [t: $B31] {  # if_11
+              $B31: {  # true
+                %179:i32 = load %count
+                %180:i32 = add %179, 1i
+                store %count, %180
+                exit_if  # if_11
+              }
+            }
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B24
+      }
+      $B24: {  # continuing
+        %181:i32 = load %i
+        %182:i32 = add %181, 1i
+        store %i, %182
+        next_iteration  # -> $B23
+      }
+    }
+    %183:i32 = load %count
+    %184:bool = eq %183, 20i
+    if %184 [t: $B32, f: $B33] {  # if_12
+      $B32: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_12
+      }
+      $B33: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_12
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B34: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %187:void = call %main_1
+    %188:vec4<f32> = load %x_GLF_color
+    %189:main_out = construct %188
+    ret %189
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.msl
index 28251dc..806ddd9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl.expected.ir.msl
@@ -1,6 +1,465 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %tree_1:ptr<private, array<BST, 10>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %7:i32 = load %data
+    %x_169:i32 = let %7
+    %9:ptr<function, i32, read_write> = access %tree, 0u
+    store %9, %x_169
+    %10:ptr<function, i32, read_write> = access %tree, 1u
+    store %10, -1i
+    %11:ptr<function, i32, read_write> = access %tree, 2u
+    store %11, -1i
+    ret
+  }
+}
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
+    %baseIndex:ptr<function, i32, read_write> = var
+    %param:ptr<function, BST, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    %param_2:ptr<function, BST, read_write> = var
+    %param_3:ptr<function, i32, read_write> = var
+    store %baseIndex, 0i
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %20:i32 = load %baseIndex
+        %x_178:i32 = let %20
+        %22:i32 = load %treeIndex
+        %x_179:i32 = let %22
+        %24:bool = lte %x_178, %x_179
+        if %24 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %25:i32 = load %data_1
+        %x_182:i32 = let %25
+        %27:i32 = load %baseIndex
+        %x_183:i32 = let %27
+        %29:ptr<private, i32, read_write> = access %tree_1, %x_183, 0u
+        %30:i32 = load %29
+        %x_185:i32 = let %30
+        %32:bool = lte %x_182, %x_185
+        if %32 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %33:i32 = load %baseIndex
+            %x_190:i32 = let %33
+            %35:ptr<private, i32, read_write> = access %tree_1, %x_190, 1u
+            %36:i32 = load %35
+            %x_192:i32 = let %36
+            %38:bool = eq %x_192, -1i
+            if %38 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %39:i32 = load %baseIndex
+                %x_197:i32 = let %39
+                %41:i32 = load %treeIndex
+                %x_198:i32 = let %41
+                %43:ptr<private, i32, read_write> = access %tree_1, %x_197, 1u
+                store %43, %x_198
+                %44:i32 = load %treeIndex
+                %x_200:i32 = let %44
+                %46:ptr<private, BST, read_write> = access %tree_1, %x_200
+                %47:BST = load %46
+                %x_202:BST = let %47
+                store %param, %x_202
+                %49:i32 = load %data_1
+                %x_203:i32 = let %49
+                store %param_1, %x_203
+                %51:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %52:BST = load %param
+                %x_205:BST = let %52
+                %54:ptr<private, BST, read_write> = access %tree_1, %x_200
+                store %54, %x_205
+                ret
+              }
+              $B11: {  # false
+                %55:i32 = load %baseIndex
+                %x_207:i32 = let %55
+                %57:ptr<private, i32, read_write> = access %tree_1, %x_207, 1u
+                %58:i32 = load %57
+                %x_209:i32 = let %58
+                store %baseIndex, %x_209
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+          $B9: {  # false
+            %60:i32 = load %baseIndex
+            %x_210:i32 = let %60
+            %62:ptr<private, i32, read_write> = access %tree_1, %x_210, 2u
+            %63:i32 = load %62
+            %x_212:i32 = let %63
+            %65:bool = eq %x_212, -1i
+            if %65 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %66:i32 = load %baseIndex
+                %x_217:i32 = let %66
+                %68:i32 = load %treeIndex
+                %x_218:i32 = let %68
+                %70:ptr<private, i32, read_write> = access %tree_1, %x_217, 2u
+                store %70, %x_218
+                %71:i32 = load %treeIndex
+                %x_220:i32 = let %71
+                %73:ptr<private, BST, read_write> = access %tree_1, %x_220
+                %74:BST = load %73
+                %x_222:BST = let %74
+                store %param_2, %x_222
+                %76:i32 = load %data_1
+                %x_223:i32 = let %76
+                store %param_3, %x_223
+                %78:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %79:BST = load %param_2
+                %x_225:BST = let %79
+                %81:ptr<private, BST, read_write> = access %tree_1, %x_220
+                store %81, %x_225
+                ret
+              }
+              $B13: {  # false
+                %82:i32 = load %baseIndex
+                %x_227:i32 = let %82
+                %84:ptr<private, i32, read_write> = access %tree_1, %x_227, 2u
+                %85:i32 = load %84
+                %x_229:i32 = let %85
+                store %baseIndex, %x_229
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        unreachable
+      }
+      $B5: {  # continuing
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %index:ptr<function, i32, read_write> = var
+    %currentNode:ptr<function, BST, read_write> = var
+    %x_231:ptr<function, i32, read_write> = var
+    store %index, 0i
+    loop [b: $B15, c: $B16] {  # loop_2
+      $B15: {  # body
+        %92:i32 = load %index
+        %x_236:i32 = let %92
+        %94:bool = neq %x_236, -1i
+        if %94 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %95:i32 = load %index
+        %x_239:i32 = let %95
+        %97:ptr<private, BST, read_write> = access %tree_1, %x_239
+        %98:BST = load %97
+        %x_241:BST = let %98
+        store %currentNode, %x_241
+        %100:ptr<function, i32, read_write> = access %currentNode, 0u
+        %101:i32 = load %100
+        %x_243:i32 = let %101
+        %103:i32 = load %t
+        %x_244:i32 = let %103
+        %105:bool = eq %x_243, %x_244
+        if %105 [t: $B19] {  # if_6
+          $B19: {  # true
+            %106:i32 = load %t
+            %x_248:i32 = let %106
+            ret %x_248
+          }
+        }
+        %108:i32 = load %t
+        %x_249:i32 = let %108
+        %110:ptr<function, i32, read_write> = access %currentNode, 0u
+        %111:i32 = load %110
+        %x_251:i32 = let %111
+        %113:bool = gt %x_249, %x_251
+        if %113 [t: $B20, f: $B21] {  # if_7
+          $B20: {  # true
+            %114:ptr<function, i32, read_write> = access %currentNode, 2u
+            %115:i32 = load %114
+            %x_257:i32 = let %115
+            store %x_231, %x_257
+            exit_if  # if_7
+          }
+          $B21: {  # false
+            %117:ptr<function, i32, read_write> = access %currentNode, 1u
+            %118:i32 = load %117
+            %x_259:i32 = let %118
+            store %x_231, %x_259
+            exit_if  # if_7
+          }
+        }
+        %120:i32 = load %x_231
+        %x_260:i32 = let %120
+        store %index, %x_260
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        next_iteration  # -> $B15
+      }
+    }
+    ret -1i
+  }
+}
+%main_1 = func():void {
+  $B22: {
+    %treeIndex_1:ptr<function, i32, read_write> = var
+    %param_4:ptr<function, BST, read_write> = var
+    %param_5:ptr<function, i32, read_write> = var
+    %param_6:ptr<function, i32, read_write> = var
+    %param_7:ptr<function, i32, read_write> = var
+    %param_8:ptr<function, i32, read_write> = var
+    %param_9:ptr<function, i32, read_write> = var
+    %param_10:ptr<function, i32, read_write> = var
+    %param_11:ptr<function, i32, read_write> = var
+    %param_12:ptr<function, i32, read_write> = var
+    %param_13:ptr<function, i32, read_write> = var
+    %param_14:ptr<function, i32, read_write> = var
+    %param_15:ptr<function, i32, read_write> = var
+    %param_16:ptr<function, i32, read_write> = var
+    %param_17:ptr<function, i32, read_write> = var
+    %param_18:ptr<function, i32, read_write> = var
+    %param_19:ptr<function, i32, read_write> = var
+    %param_20:ptr<function, i32, read_write> = var
+    %param_21:ptr<function, i32, read_write> = var
+    %param_22:ptr<function, i32, read_write> = var
+    %param_23:ptr<function, i32, read_write> = var
+    %count:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %result:ptr<function, i32, read_write> = var
+    %param_24:ptr<function, i32, read_write> = var
+    store %treeIndex_1, 0i
+    %148:ptr<private, BST, read_write> = access %tree_1, 0i
+    %149:BST = load %148
+    %x_88:BST = let %149
+    store %param_4, %x_88
+    store %param_5, 9i
+    %151:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %152:BST = load %param_4
+    %x_90:BST = let %152
+    %154:ptr<private, BST, read_write> = access %tree_1, 0i
+    store %154, %x_90
+    %155:i32 = load %treeIndex_1
+    %x_92:i32 = let %155
+    %157:i32 = add %x_92, 1i
+    store %treeIndex_1, %157
+    %158:i32 = load %treeIndex_1
+    %x_94:i32 = let %158
+    store %param_6, %x_94
+    store %param_7, 5i
+    %160:void = call %insert_i1_i1_, %param_6, %param_7
+    %161:i32 = load %treeIndex_1
+    %x_96:i32 = let %161
+    %163:i32 = add %x_96, 1i
+    store %treeIndex_1, %163
+    %164:i32 = load %treeIndex_1
+    %x_98:i32 = let %164
+    store %param_8, %x_98
+    store %param_9, 12i
+    %166:void = call %insert_i1_i1_, %param_8, %param_9
+    %167:i32 = load %treeIndex_1
+    %x_100:i32 = let %167
+    %169:i32 = add %x_100, 1i
+    store %treeIndex_1, %169
+    %170:i32 = load %treeIndex_1
+    %x_102:i32 = let %170
+    store %param_10, %x_102
+    store %param_11, 15i
+    %172:void = call %insert_i1_i1_, %param_10, %param_11
+    %173:i32 = load %treeIndex_1
+    %x_104:i32 = let %173
+    %175:i32 = add %x_104, 1i
+    store %treeIndex_1, %175
+    %176:i32 = load %treeIndex_1
+    %x_106:i32 = let %176
+    store %param_12, %x_106
+    store %param_13, 7i
+    %178:void = call %insert_i1_i1_, %param_12, %param_13
+    %179:i32 = load %treeIndex_1
+    %x_108:i32 = let %179
+    %181:i32 = add %x_108, 1i
+    store %treeIndex_1, %181
+    %182:i32 = load %treeIndex_1
+    %x_110:i32 = let %182
+    store %param_14, %x_110
+    store %param_15, 8i
+    %184:void = call %insert_i1_i1_, %param_14, %param_15
+    %185:i32 = load %treeIndex_1
+    %x_112:i32 = let %185
+    %187:i32 = add %x_112, 1i
+    store %treeIndex_1, %187
+    %188:i32 = load %treeIndex_1
+    %x_114:i32 = let %188
+    store %param_16, %x_114
+    store %param_17, 2i
+    %190:void = call %insert_i1_i1_, %param_16, %param_17
+    %191:i32 = load %treeIndex_1
+    %x_116:i32 = let %191
+    %193:i32 = add %x_116, 1i
+    store %treeIndex_1, %193
+    %194:i32 = load %treeIndex_1
+    %x_118:i32 = let %194
+    store %param_18, %x_118
+    store %param_19, 6i
+    %196:void = call %insert_i1_i1_, %param_18, %param_19
+    %197:i32 = load %treeIndex_1
+    %x_120:i32 = let %197
+    %199:i32 = add %x_120, 1i
+    store %treeIndex_1, %199
+    %200:i32 = load %treeIndex_1
+    %x_122:i32 = let %200
+    store %param_20, %x_122
+    store %param_21, 17i
+    %202:void = call %insert_i1_i1_, %param_20, %param_21
+    %203:i32 = load %treeIndex_1
+    %x_124:i32 = let %203
+    %205:i32 = add %x_124, 1i
+    store %treeIndex_1, %205
+    %206:i32 = load %treeIndex_1
+    %x_126:i32 = let %206
+    store %param_22, %x_126
+    store %param_23, 13i
+    %208:void = call %insert_i1_i1_, %param_22, %param_23
+    store %count, 0i
+    store %i, 0i
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
+        %209:i32 = load %i
+        %x_132:i32 = let %209
+        %211:bool = lt %x_132, 20i
+        if %211 [t: $B25, f: $B26] {  # if_8
+          $B25: {  # true
+            exit_if  # if_8
+          }
+          $B26: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %x_155:ptr<function, bool, read_write> = var
+        %x_156_phi:ptr<function, bool, read_write> = var
+        %214:i32 = load %i
+        %x_135:i32 = let %214
+        store %param_24, %x_135
+        %216:i32 = call %search_i1_, %param_24
+        %x_136:i32 = let %216
+        store %result, %x_136
+        %218:i32 = load %i
+        %x_137:i32 = let %218
+        switch %x_137 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B27), c: (default, $B28)] {  # switch_1
+          $B27: {  # case
+            %220:i32 = load %result
+            %x_147:i32 = let %220
+            %222:i32 = load %i
+            %x_148:i32 = let %222
+            %224:bool = eq %x_147, %x_148
+            %x_149:bool = let %224
+            store %x_156_phi, %x_149
+            %226:bool = eq %x_149, false
+            if %226 [t: $B29] {  # if_9
+              $B29: {  # true
+                %227:f32 = load_vector_element %gl_FragCoord, 0u
+                %x_154:f32 = let %227
+                %229:bool = lt %x_154, 0.0f
+                store %x_155, %229
+                %230:bool = load %x_155
+                store %x_156_phi, %230
+                exit_if  # if_9
+              }
+            }
+            %231:bool = load %x_156_phi
+            %x_156:bool = let %231
+            if %x_156 [t: $B30] {  # if_10
+              $B30: {  # true
+                %233:i32 = load %count
+                %x_159:i32 = let %233
+                %235:i32 = add %x_159, 1i
+                store %count, %235
+                exit_if  # if_10
+              }
+            }
+            exit_switch  # switch_1
+          }
+          $B28: {  # case
+            %236:i32 = load %result
+            %x_141:i32 = let %236
+            %238:bool = eq %x_141, -1i
+            if %238 [t: $B31] {  # if_11
+              $B31: {  # true
+                %239:i32 = load %count
+                %x_145:i32 = let %239
+                %241:i32 = add %x_145, 1i
+                store %count, %241
+                exit_if  # if_11
+              }
+            }
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B24
+      }
+      $B24: {  # continuing
+        %242:i32 = load %i
+        %x_161:i32 = let %242
+        %244:i32 = add %x_161, 1i
+        store %i, %244
+        next_iteration  # -> $B23
+      }
+    }
+    %245:i32 = load %count
+    %x_163:i32 = let %245
+    %247:bool = eq %x_163, 20i
+    if %247 [t: $B32, f: $B33] {  # if_12
+      $B32: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_12
+      }
+      $B33: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_12
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B34: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %250:void = call %main_1
+    %251:vec4<f32> = load %x_GLF_color
+    %252:main_out = construct %251
+    ret %252
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.msl
index 327ea03..579c4cd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: BST = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: BST = struct @align(4) {
   data:i32 @offset(0)
   leftIndex:i32 @offset(4)
   rightIndex:i32 @offset(8)
@@ -14,14 +14,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tree_1:ptr<private, array<BST, 10>, read_write> = var
   %x_16:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
     %7:ptr<function, i32, read_write> = access %tree, 0u
     %8:i32 = load %data
     store %7, %8
@@ -32,8 +32,8 @@
     ret
   }
 }
-%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void -> %b3 {
-  %b3 = block {
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
     %baseIndex:ptr<function, i32, read_write> = var
     %param:ptr<function, BST, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
@@ -41,16 +41,16 @@
     %param_2:ptr<function, BST, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %baseIndex, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %20:i32 = load %baseIndex
         %21:i32 = load %treeIndex
         %22:bool = lte %20, %21
-        if %22 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %22 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
@@ -59,195 +59,200 @@
         %25:ptr<private, i32, read_write> = access %tree_1, %24, 0u
         %26:i32 = load %25
         %27:bool = lte %23, %26
-        if %27 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+        if %27 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             %28:i32 = load %baseIndex
             %29:ptr<private, i32, read_write> = access %tree_1, %28, 1u
             %30:i32 = load %29
             %31:bool = eq %30, -1i
-            if %31 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
-                %x_194:i32 = load %baseIndex
-                %33:ptr<private, i32, read_write> = access %tree_1, %x_194, 1u
-                %34:i32 = load %treeIndex
-                store %33, %34
-                %35:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %36:f32 = load_vector_element %35, 0u
-                %37:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %38:f32 = load_vector_element %37, 1u
-                %39:bool = lt %36, %38
-                if %39 [t: %b12] {  # if_4
-                  %b12 = block {  # true
-                    %x_204:i32 = load %treeIndex
-                    %41:ptr<private, BST, read_write> = access %tree_1, %x_204
-                    %42:BST = load %41
-                    store %param, %42
-                    %43:i32 = load %data_1
-                    store %param_1, %43
-                    %44:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
-                    %45:ptr<private, BST, read_write> = access %tree_1, %x_204
-                    %46:BST = load %param
-                    store %45, %46
+            if %31 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %32:i32 = load %baseIndex
+                %x_194:i32 = let %32
+                %34:ptr<private, i32, read_write> = access %tree_1, %x_194, 1u
+                %35:i32 = load %treeIndex
+                store %34, %35
+                %36:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %37:f32 = load_vector_element %36, 0u
+                %38:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %39:f32 = load_vector_element %38, 1u
+                %40:bool = lt %37, %39
+                if %40 [t: $B12] {  # if_4
+                  $B12: {  # true
+                    %41:i32 = load %treeIndex
+                    %x_204:i32 = let %41
+                    %43:ptr<private, BST, read_write> = access %tree_1, %x_204
+                    %44:BST = load %43
+                    store %param, %44
+                    %45:i32 = load %data_1
+                    store %param_1, %45
+                    %46:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                    %47:ptr<private, BST, read_write> = access %tree_1, %x_204
+                    %48:BST = load %param
+                    store %47, %48
                     exit_if  # if_4
                   }
                 }
-                %47:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %48:f32 = load_vector_element %47, 0u
                 %49:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %50:f32 = load_vector_element %49, 1u
-                %51:bool = lt %48, %50
-                if %51 [t: %b13] {  # if_5
-                  %b13 = block {  # true
+                %50:f32 = load_vector_element %49, 0u
+                %51:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %52:f32 = load_vector_element %51, 1u
+                %53:bool = lt %50, %52
+                if %53 [t: $B13] {  # if_5
+                  $B13: {  # true
                     ret
                   }
                 }
                 exit_if  # if_3
               }
-              %b11 = block {  # false
-                %52:i32 = load %baseIndex
-                %53:ptr<private, i32, read_write> = access %tree_1, %52, 1u
-                %54:i32 = load %53
-                store %baseIndex, %54
-                continue %b5
+              $B11: {  # false
+                %54:i32 = load %baseIndex
+                %55:ptr<private, i32, read_write> = access %tree_1, %54, 1u
+                %56:i32 = load %55
+                store %baseIndex, %56
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
-          %b9 = block {  # false
-            %55:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %56:f32 = load_vector_element %55, 0u
+          $B9: {  # false
             %57:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %58:f32 = load_vector_element %57, 1u
-            %59:bool = lt %56, %58
-            if %59 [t: %b14, f: %b15] {  # if_6
-              %b14 = block {  # true
-                %60:i32 = load %baseIndex
-                %61:ptr<private, i32, read_write> = access %tree_1, %60, 2u
-                %62:i32 = load %61
-                store %x_170, %62
+            %58:f32 = load_vector_element %57, 0u
+            %59:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %60:f32 = load_vector_element %59, 1u
+            %61:bool = lt %58, %60
+            if %61 [t: $B14, f: $B15] {  # if_6
+              $B14: {  # true
+                %62:i32 = load %baseIndex
+                %63:ptr<private, i32, read_write> = access %tree_1, %62, 2u
+                %64:i32 = load %63
+                store %x_170, %64
                 exit_if  # if_6
               }
-              %b15 = block {  # false
-                %63:i32 = load %baseIndex
-                %64:ptr<private, i32, read_write> = access %tree_1, %63, 2u
-                %65:i32 = load %64
-                store %x_170, %65
+              $B15: {  # false
+                %65:i32 = load %baseIndex
+                %66:ptr<private, i32, read_write> = access %tree_1, %65, 2u
+                %67:i32 = load %66
+                store %x_170, %67
                 exit_if  # if_6
               }
             }
-            %66:i32 = load %x_170
-            %67:bool = eq %66, -1i
-            if %67 [t: %b16, f: %b17] {  # if_7
-              %b16 = block {  # true
-                %x_240:i32 = load %baseIndex
-                %69:ptr<private, i32, read_write> = access %tree_1, %x_240, 2u
-                %70:i32 = load %treeIndex
-                store %69, %70
-                %x_243:i32 = load %treeIndex
-                %72:ptr<private, BST, read_write> = access %tree_1, %x_243
-                %73:BST = load %72
-                store %param_2, %73
-                %74:i32 = load %data_1
-                store %param_3, %74
-                %75:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+            %68:i32 = load %x_170
+            %69:bool = eq %68, -1i
+            if %69 [t: $B16, f: $B17] {  # if_7
+              $B16: {  # true
+                %70:i32 = load %baseIndex
+                %x_240:i32 = let %70
+                %72:ptr<private, i32, read_write> = access %tree_1, %x_240, 2u
+                %73:i32 = load %treeIndex
+                store %72, %73
+                %74:i32 = load %treeIndex
+                %x_243:i32 = let %74
                 %76:ptr<private, BST, read_write> = access %tree_1, %x_243
-                %77:BST = load %param_2
-                store %76, %77
+                %77:BST = load %76
+                store %param_2, %77
+                %78:i32 = load %data_1
+                store %param_3, %78
+                %79:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %80:ptr<private, BST, read_write> = access %tree_1, %x_243
+                %81:BST = load %param_2
+                store %80, %81
                 ret
               }
-              %b17 = block {  # false
-                %78:i32 = load %baseIndex
-                %79:ptr<private, i32, read_write> = access %tree_1, %78, 2u
-                %80:i32 = load %79
-                store %baseIndex, %80
-                continue %b5
+              $B17: {  # false
+                %82:i32 = load %baseIndex
+                %83:ptr<private, i32, read_write> = access %tree_1, %82, 2u
+                %84:i32 = load %83
+                store %baseIndex, %84
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
         }
-        %81:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-        %82:f32 = load_vector_element %81, 0u
-        %83:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-        %84:f32 = load_vector_element %83, 1u
-        %85:bool = gt %82, %84
-        if %85 [t: %b18] {  # if_8
-          %b18 = block {  # true
+        %85:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+        %86:f32 = load_vector_element %85, 0u
+        %87:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+        %88:f32 = load_vector_element %87, 1u
+        %89:bool = gt %86, %88
+        if %89 [t: $B18] {  # if_8
+          $B18: {  # true
             ret
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 -> %b19 {
-  %b19 = block {
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B19: {
     %index:ptr<function, i32, read_write> = var
     %currentNode:ptr<function, BST, read_write> = var
     %x_261:ptr<function, i32, read_write> = var
     store %index, 0i
-    loop [b: %b20, c: %b21] {  # loop_2
-      %b20 = block {  # body
-        %91:i32 = load %index
-        %92:bool = neq %91, -1i
-        if %92 [t: %b22, f: %b23] {  # if_9
-          %b22 = block {  # true
+    loop [b: $B20, c: $B21] {  # loop_2
+      $B20: {  # body
+        %95:i32 = load %index
+        %96:bool = neq %95, -1i
+        if %96 [t: $B22, f: $B23] {  # if_9
+          $B22: {  # true
             exit_if  # if_9
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_2
           }
         }
-        %93:i32 = load %index
-        %94:ptr<private, BST, read_write> = access %tree_1, %93
-        %95:BST = load %94
-        store %currentNode, %95
-        %96:ptr<function, i32, read_write> = access %currentNode, 0u
-        %97:i32 = load %96
-        %98:i32 = load %t
-        %99:bool = eq %97, %98
-        if %99 [t: %b24] {  # if_10
-          %b24 = block {  # true
-            %x_278:i32 = load %t
+        %97:i32 = load %index
+        %98:ptr<private, BST, read_write> = access %tree_1, %97
+        %99:BST = load %98
+        store %currentNode, %99
+        %100:ptr<function, i32, read_write> = access %currentNode, 0u
+        %101:i32 = load %100
+        %102:i32 = load %t
+        %103:bool = eq %101, %102
+        if %103 [t: $B24] {  # if_10
+          $B24: {  # true
+            %104:i32 = load %t
+            %x_278:i32 = let %104
             ret %x_278
           }
         }
-        %101:i32 = load %t
-        %102:ptr<function, i32, read_write> = access %currentNode, 0u
-        %103:i32 = load %102
-        %104:bool = gt %101, %103
-        if %104 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
-            %105:ptr<function, i32, read_write> = access %currentNode, 2u
-            %106:i32 = load %105
-            store %x_261, %106
+        %106:i32 = load %t
+        %107:ptr<function, i32, read_write> = access %currentNode, 0u
+        %108:i32 = load %107
+        %109:bool = gt %106, %108
+        if %109 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
+            %110:ptr<function, i32, read_write> = access %currentNode, 2u
+            %111:i32 = load %110
+            store %x_261, %111
             exit_if  # if_11
           }
-          %b26 = block {  # false
-            %107:ptr<function, i32, read_write> = access %currentNode, 1u
-            %108:i32 = load %107
-            store %x_261, %108
+          $B26: {  # false
+            %112:ptr<function, i32, read_write> = access %currentNode, 1u
+            %113:i32 = load %112
+            store %x_261, %113
             exit_if  # if_11
           }
         }
-        %109:i32 = load %x_261
-        store %index, %109
-        continue %b21
+        %114:i32 = load %x_261
+        store %index, %114
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        next_iteration %b20
+      $B21: {  # continuing
+        next_iteration  # -> $B20
       }
     }
     ret -1i
   }
 }
-%main_1 = func():void -> %b27 {
-  %b27 = block {
+%main_1 = func():void {
+  $B27: {
     %treeIndex_1:ptr<function, i32, read_write> = var
     %param_4:ptr<function, BST, read_write> = var
     %param_5:ptr<function, i32, read_write> = var
@@ -274,142 +279,144 @@
     %result:ptr<function, i32, read_write> = var
     %param_24:ptr<function, i32, read_write> = var
     store %treeIndex_1, 0i
-    %136:ptr<private, BST, read_write> = access %tree_1, 0i
-    %137:BST = load %136
-    store %param_4, %137
+    %141:ptr<private, BST, read_write> = access %tree_1, 0i
+    %142:BST = load %141
+    store %param_4, %142
     store %param_5, 9i
-    %138:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
-    %139:ptr<private, BST, read_write> = access %tree_1, 0i
-    %140:BST = load %param_4
-    store %139, %140
-    %141:i32 = load %treeIndex_1
-    %142:i32 = add %141, 1i
-    store %treeIndex_1, %142
-    %143:i32 = load %treeIndex_1
-    store %param_6, %143
+    %143:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %144:ptr<private, BST, read_write> = access %tree_1, 0i
+    %145:BST = load %param_4
+    store %144, %145
+    %146:i32 = load %treeIndex_1
+    %147:i32 = add %146, 1i
+    store %treeIndex_1, %147
+    %148:i32 = load %treeIndex_1
+    store %param_6, %148
     store %param_7, 5i
-    %144:void = call %insert_i1_i1_, %param_6, %param_7
-    %145:i32 = load %treeIndex_1
-    %146:i32 = add %145, 1i
-    store %treeIndex_1, %146
-    %147:i32 = load %treeIndex_1
-    store %param_8, %147
+    %149:void = call %insert_i1_i1_, %param_6, %param_7
+    %150:i32 = load %treeIndex_1
+    %151:i32 = add %150, 1i
+    store %treeIndex_1, %151
+    %152:i32 = load %treeIndex_1
+    store %param_8, %152
     store %param_9, 12i
-    %148:void = call %insert_i1_i1_, %param_8, %param_9
-    %149:i32 = load %treeIndex_1
-    %150:i32 = add %149, 1i
-    store %treeIndex_1, %150
-    %151:i32 = load %treeIndex_1
-    store %param_10, %151
+    %153:void = call %insert_i1_i1_, %param_8, %param_9
+    %154:i32 = load %treeIndex_1
+    %155:i32 = add %154, 1i
+    store %treeIndex_1, %155
+    %156:i32 = load %treeIndex_1
+    store %param_10, %156
     store %param_11, 15i
-    %152:void = call %insert_i1_i1_, %param_10, %param_11
-    %153:i32 = load %treeIndex_1
-    %154:i32 = add %153, 1i
-    store %treeIndex_1, %154
-    %155:i32 = load %treeIndex_1
-    store %param_12, %155
+    %157:void = call %insert_i1_i1_, %param_10, %param_11
+    %158:i32 = load %treeIndex_1
+    %159:i32 = add %158, 1i
+    store %treeIndex_1, %159
+    %160:i32 = load %treeIndex_1
+    store %param_12, %160
     store %param_13, 7i
-    %156:void = call %insert_i1_i1_, %param_12, %param_13
-    %157:i32 = load %treeIndex_1
-    %158:i32 = add %157, 1i
-    store %treeIndex_1, %158
-    %159:i32 = load %treeIndex_1
-    store %param_14, %159
+    %161:void = call %insert_i1_i1_, %param_12, %param_13
+    %162:i32 = load %treeIndex_1
+    %163:i32 = add %162, 1i
+    store %treeIndex_1, %163
+    %164:i32 = load %treeIndex_1
+    store %param_14, %164
     store %param_15, 8i
-    %160:void = call %insert_i1_i1_, %param_14, %param_15
-    %161:i32 = load %treeIndex_1
-    %162:i32 = add %161, 1i
-    store %treeIndex_1, %162
-    %163:i32 = load %treeIndex_1
-    store %param_16, %163
+    %165:void = call %insert_i1_i1_, %param_14, %param_15
+    %166:i32 = load %treeIndex_1
+    %167:i32 = add %166, 1i
+    store %treeIndex_1, %167
+    %168:i32 = load %treeIndex_1
+    store %param_16, %168
     store %param_17, 2i
-    %164:void = call %insert_i1_i1_, %param_16, %param_17
-    %165:i32 = load %treeIndex_1
-    %166:i32 = add %165, 1i
-    store %treeIndex_1, %166
-    %167:i32 = load %treeIndex_1
-    store %param_18, %167
+    %169:void = call %insert_i1_i1_, %param_16, %param_17
+    %170:i32 = load %treeIndex_1
+    %171:i32 = add %170, 1i
+    store %treeIndex_1, %171
+    %172:i32 = load %treeIndex_1
+    store %param_18, %172
     store %param_19, 6i
-    %168:void = call %insert_i1_i1_, %param_18, %param_19
-    %169:i32 = load %treeIndex_1
-    %170:i32 = add %169, 1i
-    store %treeIndex_1, %170
-    %171:i32 = load %treeIndex_1
-    store %param_20, %171
+    %173:void = call %insert_i1_i1_, %param_18, %param_19
+    %174:i32 = load %treeIndex_1
+    %175:i32 = add %174, 1i
+    store %treeIndex_1, %175
+    %176:i32 = load %treeIndex_1
+    store %param_20, %176
     store %param_21, 17i
-    %172:void = call %insert_i1_i1_, %param_20, %param_21
-    %173:i32 = load %treeIndex_1
-    %174:i32 = add %173, 1i
-    store %treeIndex_1, %174
-    %175:i32 = load %treeIndex_1
-    store %param_22, %175
+    %177:void = call %insert_i1_i1_, %param_20, %param_21
+    %178:i32 = load %treeIndex_1
+    %179:i32 = add %178, 1i
+    store %treeIndex_1, %179
+    %180:i32 = load %treeIndex_1
+    store %param_22, %180
     store %param_23, 13i
-    %176:void = call %insert_i1_i1_, %param_22, %param_23
+    %181:void = call %insert_i1_i1_, %param_22, %param_23
     store %count, 0i
     store %i, 0i
-    loop [b: %b28, c: %b29] {  # loop_3
-      %b28 = block {  # body
-        %177:i32 = load %i
-        %178:bool = lt %177, 20i
-        if %178 [t: %b30, f: %b31] {  # if_12
-          %b30 = block {  # true
+    loop [b: $B28, c: $B29] {  # loop_3
+      $B28: {  # body
+        %182:i32 = load %i
+        %183:bool = lt %182, 20i
+        if %183 [t: $B30, f: $B31] {  # if_12
+          $B30: {  # true
             exit_if  # if_12
           }
-          %b31 = block {  # false
+          $B31: {  # false
             exit_loop  # loop_3
           }
         }
-        %179:i32 = load %i
-        store %param_24, %179
-        %x_139:i32 = call %search_i1_, %param_24
+        %184:i32 = load %i
+        store %param_24, %184
+        %185:i32 = call %search_i1_, %param_24
+        %x_139:i32 = let %185
         store %result, %x_139
-        %x_140:i32 = load %i
-        switch %x_140 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, %b32), c: (default, %b33)] {  # switch_1
-          %b32 = block {  # case
-            %182:i32 = load %result
-            %183:i32 = load %i
-            %184:bool = eq %182, %183
-            if %184 [t: %b34] {  # if_13
-              %b34 = block {  # true
-                %185:i32 = load %count
-                %186:i32 = add %185, 1i
-                store %count, %186
+        %187:i32 = load %i
+        %x_140:i32 = let %187
+        switch %x_140 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B32), c: (default, $B33)] {  # switch_1
+          $B32: {  # case
+            %189:i32 = load %result
+            %190:i32 = load %i
+            %191:bool = eq %189, %190
+            if %191 [t: $B34] {  # if_13
+              $B34: {  # true
+                %192:i32 = load %count
+                %193:i32 = add %192, 1i
+                store %count, %193
                 exit_if  # if_13
               }
             }
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %187:i32 = load %result
-            %188:bool = eq %187, -1i
-            if %188 [t: %b35] {  # if_14
-              %b35 = block {  # true
-                %189:i32 = load %count
-                %190:i32 = add %189, 1i
-                store %count, %190
+          $B33: {  # case
+            %194:i32 = load %result
+            %195:bool = eq %194, -1i
+            if %195 [t: $B35] {  # if_14
+              $B35: {  # true
+                %196:i32 = load %count
+                %197:i32 = add %196, 1i
+                store %count, %197
                 exit_if  # if_14
               }
             }
             exit_switch  # switch_1
           }
         }
-        continue %b29
+        continue  # -> $B29
       }
-      %b29 = block {  # continuing
-        %191:i32 = load %i
-        %192:i32 = add %191, 1i
-        store %i, %192
-        next_iteration %b28
+      $B29: {  # continuing
+        %198:i32 = load %i
+        %199:i32 = add %198, 1i
+        store %i, %199
+        next_iteration  # -> $B28
       }
     }
-    %193:i32 = load %count
-    %194:bool = eq %193, 20i
-    if %194 [t: %b36, f: %b37] {  # if_15
-      %b36 = block {  # true
+    %200:i32 = load %count
+    %201:bool = eq %200, 20i
+    if %201 [t: $B36, f: $B37] {  # if_15
+      $B36: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_15
       }
-      %b37 = block {  # false
+      $B37: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
         exit_if  # if_15
       }
@@ -417,12 +424,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b38 {
-  %b38 = block {
-    %196:void = call %main_1
-    %197:vec4<f32> = load %x_GLF_color
-    %198:main_out = construct %197
-    ret %198
+%tint_symbol = @fragment func():main_out {
+  $B38: {
+    %203:void = call %main_1
+    %204:vec4<f32> = load %x_GLF_color
+    %205:main_out = construct %204
+    ret %205
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.msl
index 8c53e96..4083d4b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-nested-if-and-conditional/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: BST = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: BST = struct @align(4) {
   data:i32 @offset(0)
   leftIndex:i32 @offset(4)
   rightIndex:i32 @offset(8)
@@ -14,26 +14,27 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tree_1:ptr<private, array<BST, 10>, read_write> = var
   %x_16:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
-    %x_165:i32 = load %data
-    %8:ptr<function, i32, read_write> = access %tree, 0u
-    store %8, %x_165
-    %9:ptr<function, i32, read_write> = access %tree, 1u
-    store %9, -1i
-    %10:ptr<function, i32, read_write> = access %tree, 2u
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %7:i32 = load %data
+    %x_165:i32 = let %7
+    %9:ptr<function, i32, read_write> = access %tree, 0u
+    store %9, %x_165
+    %10:ptr<function, i32, read_write> = access %tree, 1u
     store %10, -1i
+    %11:ptr<function, i32, read_write> = access %tree, 2u
+    store %11, -1i
     ret
   }
 }
-%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void -> %b3 {
-  %b3 = block {
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
     %baseIndex:ptr<function, i32, read_write> = var
     %param:ptr<function, BST, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
@@ -41,213 +42,260 @@
     %param_2:ptr<function, BST, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %baseIndex, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_175:i32 = load %baseIndex
-        %x_176:i32 = load %treeIndex
-        %22:bool = lte %x_175, %x_176
-        if %22 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %21:i32 = load %baseIndex
+        %x_175:i32 = let %21
+        %23:i32 = load %treeIndex
+        %x_176:i32 = let %23
+        %25:bool = lte %x_175, %x_176
+        if %25 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_179:i32 = load %data_1
-        %x_180:i32 = load %baseIndex
-        %25:ptr<private, i32, read_write> = access %tree_1, %x_180, 0u
-        %x_182:i32 = load %25
-        %27:bool = lte %x_179, %x_182
-        if %27 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
-            %x_187:i32 = load %baseIndex
-            %29:ptr<private, i32, read_write> = access %tree_1, %x_187, 1u
-            %x_189:i32 = load %29
-            %31:bool = eq %x_189, -1i
-            if %31 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
-                %x_194:i32 = load %baseIndex
-                %x_195:i32 = load %treeIndex
-                %34:ptr<private, i32, read_write> = access %tree_1, %x_194, 1u
-                store %34, %x_195
-                %35:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %x_198:f32 = load_vector_element %35, 0u
-                %37:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %x_200:f32 = load_vector_element %37, 1u
-                %39:bool = lt %x_198, %x_200
-                if %39 [t: %b12] {  # if_4
-                  %b12 = block {  # true
-                    %x_204:i32 = load %treeIndex
-                    %41:ptr<private, BST, read_write> = access %tree_1, %x_204
-                    %x_206:BST = load %41
+        %26:i32 = load %data_1
+        %x_179:i32 = let %26
+        %28:i32 = load %baseIndex
+        %x_180:i32 = let %28
+        %30:ptr<private, i32, read_write> = access %tree_1, %x_180, 0u
+        %31:i32 = load %30
+        %x_182:i32 = let %31
+        %33:bool = lte %x_179, %x_182
+        if %33 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %34:i32 = load %baseIndex
+            %x_187:i32 = let %34
+            %36:ptr<private, i32, read_write> = access %tree_1, %x_187, 1u
+            %37:i32 = load %36
+            %x_189:i32 = let %37
+            %39:bool = eq %x_189, -1i
+            if %39 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %40:i32 = load %baseIndex
+                %x_194:i32 = let %40
+                %42:i32 = load %treeIndex
+                %x_195:i32 = let %42
+                %44:ptr<private, i32, read_write> = access %tree_1, %x_194, 1u
+                store %44, %x_195
+                %45:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %46:f32 = load_vector_element %45, 0u
+                %x_198:f32 = let %46
+                %48:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %49:f32 = load_vector_element %48, 1u
+                %x_200:f32 = let %49
+                %51:bool = lt %x_198, %x_200
+                if %51 [t: $B12] {  # if_4
+                  $B12: {  # true
+                    %52:i32 = load %treeIndex
+                    %x_204:i32 = let %52
+                    %54:ptr<private, BST, read_write> = access %tree_1, %x_204
+                    %55:BST = load %54
+                    %x_206:BST = let %55
                     store %param, %x_206
-                    %x_207:i32 = load %data_1
+                    %57:i32 = load %data_1
+                    %x_207:i32 = let %57
                     store %param_1, %x_207
-                    %44:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
-                    %x_209:BST = load %param
-                    %46:ptr<private, BST, read_write> = access %tree_1, %x_204
-                    store %46, %x_209
+                    %59:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                    %60:BST = load %param
+                    %x_209:BST = let %60
+                    %62:ptr<private, BST, read_write> = access %tree_1, %x_204
+                    store %62, %x_209
                     exit_if  # if_4
                   }
                 }
-                %47:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %x_212:f32 = load_vector_element %47, 0u
-                %49:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-                %x_214:f32 = load_vector_element %49, 1u
-                %51:bool = lt %x_212, %x_214
-                if %51 [t: %b13] {  # if_5
-                  %b13 = block {  # true
+                %63:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %64:f32 = load_vector_element %63, 0u
+                %x_212:f32 = let %64
+                %66:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+                %67:f32 = load_vector_element %66, 1u
+                %x_214:f32 = let %67
+                %69:bool = lt %x_212, %x_214
+                if %69 [t: $B13] {  # if_5
+                  $B13: {  # true
                     ret
                   }
                 }
                 exit_if  # if_3
               }
-              %b11 = block {  # false
-                %x_218:i32 = load %baseIndex
-                %53:ptr<private, i32, read_write> = access %tree_1, %x_218, 1u
-                %x_220:i32 = load %53
+              $B11: {  # false
+                %70:i32 = load %baseIndex
+                %x_218:i32 = let %70
+                %72:ptr<private, i32, read_write> = access %tree_1, %x_218, 1u
+                %73:i32 = load %72
+                %x_220:i32 = let %73
                 store %baseIndex, %x_220
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
-          %b9 = block {  # false
-            %55:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %x_222:f32 = load_vector_element %55, 0u
-            %57:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %x_224:f32 = load_vector_element %57, 1u
-            %59:bool = lt %x_222, %x_224
-            if %59 [t: %b14, f: %b15] {  # if_6
-              %b14 = block {  # true
-                %x_229:i32 = load %baseIndex
-                %61:ptr<private, i32, read_write> = access %tree_1, %x_229, 2u
-                %x_231:i32 = load %61
+          $B9: {  # false
+            %75:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %76:f32 = load_vector_element %75, 0u
+            %x_222:f32 = let %76
+            %78:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %79:f32 = load_vector_element %78, 1u
+            %x_224:f32 = let %79
+            %81:bool = lt %x_222, %x_224
+            if %81 [t: $B14, f: $B15] {  # if_6
+              $B14: {  # true
+                %82:i32 = load %baseIndex
+                %x_229:i32 = let %82
+                %84:ptr<private, i32, read_write> = access %tree_1, %x_229, 2u
+                %85:i32 = load %84
+                %x_231:i32 = let %85
                 store %x_170, %x_231
                 exit_if  # if_6
               }
-              %b15 = block {  # false
-                %x_232:i32 = load %baseIndex
-                %64:ptr<private, i32, read_write> = access %tree_1, %x_232, 2u
-                %x_234:i32 = load %64
+              $B15: {  # false
+                %87:i32 = load %baseIndex
+                %x_232:i32 = let %87
+                %89:ptr<private, i32, read_write> = access %tree_1, %x_232, 2u
+                %90:i32 = load %89
+                %x_234:i32 = let %90
                 store %x_170, %x_234
                 exit_if  # if_6
               }
             }
-            %x_235:i32 = load %x_170
-            %67:bool = eq %x_235, -1i
-            if %67 [t: %b16, f: %b17] {  # if_7
-              %b16 = block {  # true
-                %x_240:i32 = load %baseIndex
-                %x_241:i32 = load %treeIndex
-                %70:ptr<private, i32, read_write> = access %tree_1, %x_240, 2u
-                store %70, %x_241
-                %x_243:i32 = load %treeIndex
-                %72:ptr<private, BST, read_write> = access %tree_1, %x_243
-                %x_245:BST = load %72
+            %92:i32 = load %x_170
+            %x_235:i32 = let %92
+            %94:bool = eq %x_235, -1i
+            if %94 [t: $B16, f: $B17] {  # if_7
+              $B16: {  # true
+                %95:i32 = load %baseIndex
+                %x_240:i32 = let %95
+                %97:i32 = load %treeIndex
+                %x_241:i32 = let %97
+                %99:ptr<private, i32, read_write> = access %tree_1, %x_240, 2u
+                store %99, %x_241
+                %100:i32 = load %treeIndex
+                %x_243:i32 = let %100
+                %102:ptr<private, BST, read_write> = access %tree_1, %x_243
+                %103:BST = load %102
+                %x_245:BST = let %103
                 store %param_2, %x_245
-                %x_246:i32 = load %data_1
+                %105:i32 = load %data_1
+                %x_246:i32 = let %105
                 store %param_3, %x_246
-                %75:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
-                %x_248:BST = load %param_2
-                %77:ptr<private, BST, read_write> = access %tree_1, %x_243
-                store %77, %x_248
+                %107:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %108:BST = load %param_2
+                %x_248:BST = let %108
+                %110:ptr<private, BST, read_write> = access %tree_1, %x_243
+                store %110, %x_248
                 ret
               }
-              %b17 = block {  # false
-                %x_250:i32 = load %baseIndex
-                %79:ptr<private, i32, read_write> = access %tree_1, %x_250, 2u
-                %x_252:i32 = load %79
+              $B17: {  # false
+                %111:i32 = load %baseIndex
+                %x_250:i32 = let %111
+                %113:ptr<private, i32, read_write> = access %tree_1, %x_250, 2u
+                %114:i32 = load %113
+                %x_252:i32 = let %114
                 store %baseIndex, %x_252
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
         }
-        %81:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-        %x_254:f32 = load_vector_element %81, 0u
-        %83:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-        %x_256:f32 = load_vector_element %83, 1u
-        %85:bool = gt %x_254, %x_256
-        if %85 [t: %b18] {  # if_8
-          %b18 = block {  # true
+        %116:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+        %117:f32 = load_vector_element %116, 0u
+        %x_254:f32 = let %117
+        %119:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+        %120:f32 = load_vector_element %119, 1u
+        %x_256:f32 = let %120
+        %122:bool = gt %x_254, %x_256
+        if %122 [t: $B18] {  # if_8
+          $B18: {  # true
             ret
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 -> %b19 {
-  %b19 = block {
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B19: {
     %index:ptr<function, i32, read_write> = var
     %currentNode:ptr<function, BST, read_write> = var
     %x_261:ptr<function, i32, read_write> = var
     store %index, 0i
-    loop [b: %b20, c: %b21] {  # loop_2
-      %b20 = block {  # body
-        %x_266:i32 = load %index
-        %92:bool = neq %x_266, -1i
-        if %92 [t: %b22, f: %b23] {  # if_9
-          %b22 = block {  # true
+    loop [b: $B20, c: $B21] {  # loop_2
+      $B20: {  # body
+        %128:i32 = load %index
+        %x_266:i32 = let %128
+        %130:bool = neq %x_266, -1i
+        if %130 [t: $B22, f: $B23] {  # if_9
+          $B22: {  # true
             exit_if  # if_9
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_269:i32 = load %index
-        %94:ptr<private, BST, read_write> = access %tree_1, %x_269
-        %x_271:BST = load %94
+        %131:i32 = load %index
+        %x_269:i32 = let %131
+        %133:ptr<private, BST, read_write> = access %tree_1, %x_269
+        %134:BST = load %133
+        %x_271:BST = let %134
         store %currentNode, %x_271
-        %96:ptr<function, i32, read_write> = access %currentNode, 0u
-        %x_273:i32 = load %96
-        %x_274:i32 = load %t
-        %99:bool = eq %x_273, %x_274
-        if %99 [t: %b24] {  # if_10
-          %b24 = block {  # true
-            %x_278:i32 = load %t
+        %136:ptr<function, i32, read_write> = access %currentNode, 0u
+        %137:i32 = load %136
+        %x_273:i32 = let %137
+        %139:i32 = load %t
+        %x_274:i32 = let %139
+        %141:bool = eq %x_273, %x_274
+        if %141 [t: $B24] {  # if_10
+          $B24: {  # true
+            %142:i32 = load %t
+            %x_278:i32 = let %142
             ret %x_278
           }
         }
-        %x_279:i32 = load %t
-        %102:ptr<function, i32, read_write> = access %currentNode, 0u
-        %x_281:i32 = load %102
-        %104:bool = gt %x_279, %x_281
-        if %104 [t: %b25, f: %b26] {  # if_11
-          %b25 = block {  # true
-            %105:ptr<function, i32, read_write> = access %currentNode, 2u
-            %x_287:i32 = load %105
+        %144:i32 = load %t
+        %x_279:i32 = let %144
+        %146:ptr<function, i32, read_write> = access %currentNode, 0u
+        %147:i32 = load %146
+        %x_281:i32 = let %147
+        %149:bool = gt %x_279, %x_281
+        if %149 [t: $B25, f: $B26] {  # if_11
+          $B25: {  # true
+            %150:ptr<function, i32, read_write> = access %currentNode, 2u
+            %151:i32 = load %150
+            %x_287:i32 = let %151
             store %x_261, %x_287
             exit_if  # if_11
           }
-          %b26 = block {  # false
-            %107:ptr<function, i32, read_write> = access %currentNode, 1u
-            %x_289:i32 = load %107
+          $B26: {  # false
+            %153:ptr<function, i32, read_write> = access %currentNode, 1u
+            %154:i32 = load %153
+            %x_289:i32 = let %154
             store %x_261, %x_289
             exit_if  # if_11
           }
         }
-        %x_290:i32 = load %x_261
+        %156:i32 = load %x_261
+        %x_290:i32 = let %156
         store %index, %x_290
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        next_iteration %b20
+      $B21: {  # continuing
+        next_iteration  # -> $B20
       }
     }
     ret -1i
   }
 }
-%main_1 = func():void -> %b27 {
-  %b27 = block {
+%main_1 = func():void {
+  $B27: {
     %treeIndex_1:ptr<function, i32, read_write> = var
     %param_4:ptr<function, BST, read_write> = var
     %param_5:ptr<function, i32, read_write> = var
@@ -274,142 +322,173 @@
     %result:ptr<function, i32, read_write> = var
     %param_24:ptr<function, i32, read_write> = var
     store %treeIndex_1, 0i
-    %136:ptr<private, BST, read_write> = access %tree_1, 0i
-    %x_91:BST = load %136
+    %184:ptr<private, BST, read_write> = access %tree_1, 0i
+    %185:BST = load %184
+    %x_91:BST = let %185
     store %param_4, %x_91
     store %param_5, 9i
-    %138:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
-    %x_93:BST = load %param_4
-    %140:ptr<private, BST, read_write> = access %tree_1, 0i
-    store %140, %x_93
-    %x_95:i32 = load %treeIndex_1
-    %142:i32 = add %x_95, 1i
-    store %treeIndex_1, %142
-    %x_97:i32 = load %treeIndex_1
+    %187:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %188:BST = load %param_4
+    %x_93:BST = let %188
+    %190:ptr<private, BST, read_write> = access %tree_1, 0i
+    store %190, %x_93
+    %191:i32 = load %treeIndex_1
+    %x_95:i32 = let %191
+    %193:i32 = add %x_95, 1i
+    store %treeIndex_1, %193
+    %194:i32 = load %treeIndex_1
+    %x_97:i32 = let %194
     store %param_6, %x_97
     store %param_7, 5i
-    %144:void = call %insert_i1_i1_, %param_6, %param_7
-    %x_99:i32 = load %treeIndex_1
-    %146:i32 = add %x_99, 1i
-    store %treeIndex_1, %146
-    %x_101:i32 = load %treeIndex_1
+    %196:void = call %insert_i1_i1_, %param_6, %param_7
+    %197:i32 = load %treeIndex_1
+    %x_99:i32 = let %197
+    %199:i32 = add %x_99, 1i
+    store %treeIndex_1, %199
+    %200:i32 = load %treeIndex_1
+    %x_101:i32 = let %200
     store %param_8, %x_101
     store %param_9, 12i
-    %148:void = call %insert_i1_i1_, %param_8, %param_9
-    %x_103:i32 = load %treeIndex_1
-    %150:i32 = add %x_103, 1i
-    store %treeIndex_1, %150
-    %x_105:i32 = load %treeIndex_1
+    %202:void = call %insert_i1_i1_, %param_8, %param_9
+    %203:i32 = load %treeIndex_1
+    %x_103:i32 = let %203
+    %205:i32 = add %x_103, 1i
+    store %treeIndex_1, %205
+    %206:i32 = load %treeIndex_1
+    %x_105:i32 = let %206
     store %param_10, %x_105
     store %param_11, 15i
-    %152:void = call %insert_i1_i1_, %param_10, %param_11
-    %x_107:i32 = load %treeIndex_1
-    %154:i32 = add %x_107, 1i
-    store %treeIndex_1, %154
-    %x_109:i32 = load %treeIndex_1
+    %208:void = call %insert_i1_i1_, %param_10, %param_11
+    %209:i32 = load %treeIndex_1
+    %x_107:i32 = let %209
+    %211:i32 = add %x_107, 1i
+    store %treeIndex_1, %211
+    %212:i32 = load %treeIndex_1
+    %x_109:i32 = let %212
     store %param_12, %x_109
     store %param_13, 7i
-    %156:void = call %insert_i1_i1_, %param_12, %param_13
-    %x_111:i32 = load %treeIndex_1
-    %158:i32 = add %x_111, 1i
-    store %treeIndex_1, %158
-    %x_113:i32 = load %treeIndex_1
+    %214:void = call %insert_i1_i1_, %param_12, %param_13
+    %215:i32 = load %treeIndex_1
+    %x_111:i32 = let %215
+    %217:i32 = add %x_111, 1i
+    store %treeIndex_1, %217
+    %218:i32 = load %treeIndex_1
+    %x_113:i32 = let %218
     store %param_14, %x_113
     store %param_15, 8i
-    %160:void = call %insert_i1_i1_, %param_14, %param_15
-    %x_115:i32 = load %treeIndex_1
-    %162:i32 = add %x_115, 1i
-    store %treeIndex_1, %162
-    %x_117:i32 = load %treeIndex_1
+    %220:void = call %insert_i1_i1_, %param_14, %param_15
+    %221:i32 = load %treeIndex_1
+    %x_115:i32 = let %221
+    %223:i32 = add %x_115, 1i
+    store %treeIndex_1, %223
+    %224:i32 = load %treeIndex_1
+    %x_117:i32 = let %224
     store %param_16, %x_117
     store %param_17, 2i
-    %164:void = call %insert_i1_i1_, %param_16, %param_17
-    %x_119:i32 = load %treeIndex_1
-    %166:i32 = add %x_119, 1i
-    store %treeIndex_1, %166
-    %x_121:i32 = load %treeIndex_1
+    %226:void = call %insert_i1_i1_, %param_16, %param_17
+    %227:i32 = load %treeIndex_1
+    %x_119:i32 = let %227
+    %229:i32 = add %x_119, 1i
+    store %treeIndex_1, %229
+    %230:i32 = load %treeIndex_1
+    %x_121:i32 = let %230
     store %param_18, %x_121
     store %param_19, 6i
-    %168:void = call %insert_i1_i1_, %param_18, %param_19
-    %x_123:i32 = load %treeIndex_1
-    %170:i32 = add %x_123, 1i
-    store %treeIndex_1, %170
-    %x_125:i32 = load %treeIndex_1
+    %232:void = call %insert_i1_i1_, %param_18, %param_19
+    %233:i32 = load %treeIndex_1
+    %x_123:i32 = let %233
+    %235:i32 = add %x_123, 1i
+    store %treeIndex_1, %235
+    %236:i32 = load %treeIndex_1
+    %x_125:i32 = let %236
     store %param_20, %x_125
     store %param_21, 17i
-    %172:void = call %insert_i1_i1_, %param_20, %param_21
-    %x_127:i32 = load %treeIndex_1
-    %174:i32 = add %x_127, 1i
-    store %treeIndex_1, %174
-    %x_129:i32 = load %treeIndex_1
+    %238:void = call %insert_i1_i1_, %param_20, %param_21
+    %239:i32 = load %treeIndex_1
+    %x_127:i32 = let %239
+    %241:i32 = add %x_127, 1i
+    store %treeIndex_1, %241
+    %242:i32 = load %treeIndex_1
+    %x_129:i32 = let %242
     store %param_22, %x_129
     store %param_23, 13i
-    %176:void = call %insert_i1_i1_, %param_22, %param_23
+    %244:void = call %insert_i1_i1_, %param_22, %param_23
     store %count, 0i
     store %i, 0i
-    loop [b: %b28, c: %b29] {  # loop_3
-      %b28 = block {  # body
-        %x_135:i32 = load %i
-        %178:bool = lt %x_135, 20i
-        if %178 [t: %b30, f: %b31] {  # if_12
-          %b30 = block {  # true
+    loop [b: $B28, c: $B29] {  # loop_3
+      $B28: {  # body
+        %245:i32 = load %i
+        %x_135:i32 = let %245
+        %247:bool = lt %x_135, 20i
+        if %247 [t: $B30, f: $B31] {  # if_12
+          $B30: {  # true
             exit_if  # if_12
           }
-          %b31 = block {  # false
+          $B31: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_138:i32 = load %i
+        %248:i32 = load %i
+        %x_138:i32 = let %248
         store %param_24, %x_138
-        %x_139:i32 = call %search_i1_, %param_24
+        %250:i32 = call %search_i1_, %param_24
+        %x_139:i32 = let %250
         store %result, %x_139
-        %x_140:i32 = load %i
-        switch %x_140 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, %b32), c: (default, %b33)] {  # switch_1
-          %b32 = block {  # case
-            %x_150:i32 = load %result
-            %x_151:i32 = load %i
-            %184:bool = eq %x_150, %x_151
-            if %184 [t: %b34] {  # if_13
-              %b34 = block {  # true
-                %x_155:i32 = load %count
-                %186:i32 = add %x_155, 1i
-                store %count, %186
+        %252:i32 = load %i
+        %x_140:i32 = let %252
+        switch %x_140 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B32), c: (default, $B33)] {  # switch_1
+          $B32: {  # case
+            %254:i32 = load %result
+            %x_150:i32 = let %254
+            %256:i32 = load %i
+            %x_151:i32 = let %256
+            %258:bool = eq %x_150, %x_151
+            if %258 [t: $B34] {  # if_13
+              $B34: {  # true
+                %259:i32 = load %count
+                %x_155:i32 = let %259
+                %261:i32 = add %x_155, 1i
+                store %count, %261
                 exit_if  # if_13
               }
             }
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_144:i32 = load %result
-            %188:bool = eq %x_144, -1i
-            if %188 [t: %b35] {  # if_14
-              %b35 = block {  # true
-                %x_148:i32 = load %count
-                %190:i32 = add %x_148, 1i
-                store %count, %190
+          $B33: {  # case
+            %262:i32 = load %result
+            %x_144:i32 = let %262
+            %264:bool = eq %x_144, -1i
+            if %264 [t: $B35] {  # if_14
+              $B35: {  # true
+                %265:i32 = load %count
+                %x_148:i32 = let %265
+                %267:i32 = add %x_148, 1i
+                store %count, %267
                 exit_if  # if_14
               }
             }
             exit_switch  # switch_1
           }
         }
-        continue %b29
+        continue  # -> $B29
       }
-      %b29 = block {  # continuing
-        %x_157:i32 = load %i
-        %192:i32 = add %x_157, 1i
-        store %i, %192
-        next_iteration %b28
+      $B29: {  # continuing
+        %268:i32 = load %i
+        %x_157:i32 = let %268
+        %270:i32 = add %x_157, 1i
+        store %i, %270
+        next_iteration  # -> $B28
       }
     }
-    %x_159:i32 = load %count
-    %194:bool = eq %x_159, 20i
-    if %194 [t: %b36, f: %b37] {  # if_15
-      %b36 = block {  # true
+    %271:i32 = load %count
+    %x_159:i32 = let %271
+    %273:bool = eq %x_159, 20i
+    if %273 [t: $B36, f: $B37] {  # if_15
+      $B36: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_15
       }
-      %b37 = block {  # false
+      $B37: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
         exit_if  # if_15
       }
@@ -417,12 +496,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b38 {
-  %b38 = block {
-    %196:void = call %main_1
-    %197:vec4<f32> = load %x_GLF_color
-    %198:main_out = construct %197
-    ret %198
+%tint_symbol = @fragment func():main_out {
+  $B38: {
+    %275:void = call %main_1
+    %276:vec4<f32> = load %x_GLF_color
+    %277:main_out = construct %276
+    ret %277
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.msl
index 28251dc..667a4ad 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,384 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %tree:ptr<private, array<BST, 10>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%node:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %6:ptr<function, i32, read_write> = access %node, 0u
+    %7:i32 = load %data
+    store %6, %7
+    %8:ptr<function, i32, read_write> = access %node, 1u
+    store %8, -1i
+    %9:ptr<function, i32, read_write> = access %node, 2u
+    store %9, -1i
+    ret
+  }
+}
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
+    %baseIndex:ptr<function, i32, read_write> = var
+    %param:ptr<function, BST, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    %param_2:ptr<function, BST, read_write> = var
+    %param_3:ptr<function, i32, read_write> = var
+    store %baseIndex, 0i
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %18:i32 = load %baseIndex
+        %19:i32 = load %treeIndex
+        %20:bool = lte %18, %19
+        if %20 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %21:i32 = load %data_1
+        %22:i32 = load %baseIndex
+        %23:ptr<private, i32, read_write> = access %tree, %22, 0u
+        %24:i32 = load %23
+        %25:bool = lte %21, %24
+        if %25 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %26:i32 = load %baseIndex
+            %27:ptr<private, i32, read_write> = access %tree, %26, 1u
+            %28:i32 = load %27
+            %29:bool = eq %28, -1i
+            if %29 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %30:i32 = load %baseIndex
+                %x_186:i32 = let %30
+                %32:ptr<private, i32, read_write> = access %tree, %x_186, 1u
+                %33:i32 = load %treeIndex
+                store %32, %33
+                %34:i32 = load %treeIndex
+                %x_189:i32 = let %34
+                %36:ptr<private, BST, read_write> = access %tree, %x_189
+                %37:BST = load %36
+                store %param, %37
+                %38:i32 = load %data_1
+                store %param_1, %38
+                %39:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %40:ptr<private, BST, read_write> = access %tree, %x_189
+                %41:BST = load %param
+                store %40, %41
+                ret
+              }
+              $B11: {  # false
+                %42:i32 = load %baseIndex
+                %43:ptr<private, i32, read_write> = access %tree, %42, 1u
+                %44:i32 = load %43
+                store %baseIndex, %44
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+          $B9: {  # false
+            %45:i32 = load %baseIndex
+            %46:ptr<private, i32, read_write> = access %tree, %45, 2u
+            %47:i32 = load %46
+            %48:bool = eq %47, -1i
+            if %48 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %49:i32 = load %baseIndex
+                %x_206:i32 = let %49
+                %51:ptr<private, i32, read_write> = access %tree, %x_206, 2u
+                %52:i32 = load %treeIndex
+                store %51, %52
+                %53:i32 = load %treeIndex
+                %x_209:i32 = let %53
+                %55:ptr<private, BST, read_write> = access %tree, %x_209
+                %56:BST = load %55
+                store %param_2, %56
+                %57:i32 = load %data_1
+                store %param_3, %57
+                %58:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %59:ptr<private, BST, read_write> = access %tree, %x_209
+                %60:BST = load %param_2
+                store %59, %60
+                ret
+              }
+              $B13: {  # false
+                %61:i32 = load %baseIndex
+                %62:ptr<private, i32, read_write> = access %tree, %61, 2u
+                %63:i32 = load %62
+                store %baseIndex, %63
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        unreachable
+      }
+      $B5: {  # continuing
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %index:ptr<function, i32, read_write> = var
+    %currentNode:ptr<function, BST, read_write> = var
+    %x_220:ptr<function, i32, read_write> = var
+    store %index, 0i
+    loop [b: $B15, c: $B16] {  # loop_2
+      $B15: {  # body
+        %69:i32 = load %index
+        %70:bool = neq %69, -1i
+        if %70 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %71:i32 = load %index
+        %72:ptr<private, BST, read_write> = access %tree, %71
+        %73:BST = load %72
+        store %currentNode, %73
+        %74:ptr<function, i32, read_write> = access %currentNode, 0u
+        %75:i32 = load %74
+        %76:i32 = load %t
+        %77:bool = eq %75, %76
+        if %77 [t: $B19] {  # if_6
+          $B19: {  # true
+            %78:i32 = load %t
+            %x_237:i32 = let %78
+            ret %x_237
+          }
+        }
+        %80:i32 = load %t
+        %81:ptr<function, i32, read_write> = access %currentNode, 0u
+        %82:i32 = load %81
+        %83:bool = gt %80, %82
+        if %83 [t: $B20, f: $B21] {  # if_7
+          $B20: {  # true
+            %84:ptr<function, i32, read_write> = access %currentNode, 2u
+            %85:i32 = load %84
+            store %x_220, %85
+            exit_if  # if_7
+          }
+          $B21: {  # false
+            %86:ptr<function, i32, read_write> = access %currentNode, 1u
+            %87:i32 = load %86
+            store %x_220, %87
+            exit_if  # if_7
+          }
+        }
+        %88:i32 = load %x_220
+        store %index, %88
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        next_iteration  # -> $B15
+      }
+    }
+    ret -1i
+  }
+}
+%main_1 = func():void {
+  $B22: {
+    %treeIndex_1:ptr<function, i32, read_write> = var
+    %param_4:ptr<function, BST, read_write> = var
+    %param_5:ptr<function, i32, read_write> = var
+    %param_6:ptr<function, i32, read_write> = var
+    %param_7:ptr<function, i32, read_write> = var
+    %param_8:ptr<function, i32, read_write> = var
+    %param_9:ptr<function, i32, read_write> = var
+    %param_10:ptr<function, i32, read_write> = var
+    %param_11:ptr<function, i32, read_write> = var
+    %param_12:ptr<function, i32, read_write> = var
+    %param_13:ptr<function, i32, read_write> = var
+    %param_14:ptr<function, i32, read_write> = var
+    %param_15:ptr<function, i32, read_write> = var
+    %param_16:ptr<function, i32, read_write> = var
+    %param_17:ptr<function, i32, read_write> = var
+    %param_18:ptr<function, i32, read_write> = var
+    %param_19:ptr<function, i32, read_write> = var
+    %param_20:ptr<function, i32, read_write> = var
+    %param_21:ptr<function, i32, read_write> = var
+    %param_22:ptr<function, i32, read_write> = var
+    %param_23:ptr<function, i32, read_write> = var
+    %count:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %result:ptr<function, i32, read_write> = var
+    %param_24:ptr<function, i32, read_write> = var
+    store %treeIndex_1, 0i
+    %115:ptr<private, BST, read_write> = access %tree, 0i
+    %116:BST = load %115
+    store %param_4, %116
+    store %param_5, 9i
+    %117:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %118:ptr<private, BST, read_write> = access %tree, 0i
+    %119:BST = load %param_4
+    store %118, %119
+    %120:i32 = load %treeIndex_1
+    %121:i32 = add %120, 1i
+    store %treeIndex_1, %121
+    %122:i32 = load %treeIndex_1
+    store %param_6, %122
+    store %param_7, 5i
+    %123:void = call %insert_i1_i1_, %param_6, %param_7
+    %124:i32 = load %treeIndex_1
+    %125:i32 = add %124, 1i
+    store %treeIndex_1, %125
+    %126:i32 = load %treeIndex_1
+    store %param_8, %126
+    store %param_9, 12i
+    %127:void = call %insert_i1_i1_, %param_8, %param_9
+    %128:i32 = load %treeIndex_1
+    %129:i32 = add %128, 1i
+    store %treeIndex_1, %129
+    %130:i32 = load %treeIndex_1
+    store %param_10, %130
+    store %param_11, 15i
+    %131:void = call %insert_i1_i1_, %param_10, %param_11
+    %132:i32 = load %treeIndex_1
+    %133:i32 = add %132, 1i
+    store %treeIndex_1, %133
+    %134:i32 = load %treeIndex_1
+    store %param_12, %134
+    store %param_13, 7i
+    %135:void = call %insert_i1_i1_, %param_12, %param_13
+    %136:i32 = load %treeIndex_1
+    %137:i32 = add %136, 1i
+    store %treeIndex_1, %137
+    %138:i32 = load %treeIndex_1
+    store %param_14, %138
+    store %param_15, 8i
+    %139:void = call %insert_i1_i1_, %param_14, %param_15
+    %140:i32 = load %treeIndex_1
+    %141:i32 = add %140, 1i
+    store %treeIndex_1, %141
+    %142:i32 = load %treeIndex_1
+    store %param_16, %142
+    store %param_17, 2i
+    %143:void = call %insert_i1_i1_, %param_16, %param_17
+    %144:i32 = load %treeIndex_1
+    %145:i32 = add %144, 1i
+    store %treeIndex_1, %145
+    %146:i32 = load %treeIndex_1
+    store %param_18, %146
+    store %param_19, 6i
+    %147:void = call %insert_i1_i1_, %param_18, %param_19
+    %148:i32 = load %treeIndex_1
+    %149:i32 = add %148, 1i
+    store %treeIndex_1, %149
+    %150:i32 = load %treeIndex_1
+    store %param_20, %150
+    store %param_21, 17i
+    %151:void = call %insert_i1_i1_, %param_20, %param_21
+    %152:i32 = load %treeIndex_1
+    %153:i32 = add %152, 1i
+    store %treeIndex_1, %153
+    %154:i32 = load %treeIndex_1
+    store %param_22, %154
+    store %param_23, 13i
+    %155:void = call %insert_i1_i1_, %param_22, %param_23
+    store %count, 0i
+    store %i, 0i
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
+        %156:i32 = load %i
+        %157:bool = lt %156, 20i
+        if %157 [t: $B25, f: $B26] {  # if_8
+          $B25: {  # true
+            exit_if  # if_8
+          }
+          $B26: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %158:i32 = load %i
+        store %param_24, %158
+        %159:i32 = call %search_i1_, %param_24
+        %x_132:i32 = let %159
+        store %result, %x_132
+        %161:i32 = load %i
+        %x_133:i32 = let %161
+        switch %x_133 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B27), c: (default, $B28)] {  # switch_1
+          $B27: {  # case
+            %163:i32 = load %result
+            %164:i32 = load %i
+            %165:bool = eq %163, %164
+            if %165 [t: $B29] {  # if_9
+              $B29: {  # true
+                %166:i32 = load %count
+                %167:i32 = add %166, 1i
+                store %count, %167
+                exit_if  # if_9
+              }
+            }
+            exit_switch  # switch_1
+          }
+          $B28: {  # case
+            %168:i32 = load %result
+            %169:bool = eq %168, -1i
+            if %169 [t: $B30] {  # if_10
+              $B30: {  # true
+                %170:i32 = load %count
+                %171:i32 = add %170, 1i
+                store %count, %171
+                exit_if  # if_10
+              }
+            }
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B24
+      }
+      $B24: {  # continuing
+        %172:i32 = load %i
+        %173:i32 = add %172, 1i
+        store %i, %173
+        next_iteration  # -> $B23
+      }
+    }
+    %174:i32 = load %count
+    %175:bool = eq %174, 20i
+    if %175 [t: $B31, f: $B32] {  # if_11
+      $B31: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_11
+      }
+      $B32: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_11
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B33: {
+    %177:void = call %main_1
+    %178:vec4<f32> = load %x_GLF_color
+    %179:main_out = construct %178
+    ret %179
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.msl
index 28251dc..1e60ae2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,445 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: BST = struct @align(4) {
+  data:i32 @offset(0)
+  leftIndex:i32 @offset(4)
+  rightIndex:i32 @offset(8)
+}
+
+main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %tree:ptr<private, array<BST, 10>, read_write> = var
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%node:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %6:i32 = load %data
+    %x_158:i32 = let %6
+    %8:ptr<function, i32, read_write> = access %node, 0u
+    store %8, %x_158
+    %9:ptr<function, i32, read_write> = access %node, 1u
+    store %9, -1i
+    %10:ptr<function, i32, read_write> = access %node, 2u
+    store %10, -1i
+    ret
+  }
+}
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
+    %baseIndex:ptr<function, i32, read_write> = var
+    %param:ptr<function, BST, read_write> = var
+    %param_1:ptr<function, i32, read_write> = var
+    %param_2:ptr<function, BST, read_write> = var
+    %param_3:ptr<function, i32, read_write> = var
+    store %baseIndex, 0i
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %19:i32 = load %baseIndex
+        %x_167:i32 = let %19
+        %21:i32 = load %treeIndex
+        %x_168:i32 = let %21
+        %23:bool = lte %x_167, %x_168
+        if %23 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
+            exit_if  # if_1
+          }
+          $B7: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %24:i32 = load %data_1
+        %x_171:i32 = let %24
+        %26:i32 = load %baseIndex
+        %x_172:i32 = let %26
+        %28:ptr<private, i32, read_write> = access %tree, %x_172, 0u
+        %29:i32 = load %28
+        %x_174:i32 = let %29
+        %31:bool = lte %x_171, %x_174
+        if %31 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %32:i32 = load %baseIndex
+            %x_179:i32 = let %32
+            %34:ptr<private, i32, read_write> = access %tree, %x_179, 1u
+            %35:i32 = load %34
+            %x_181:i32 = let %35
+            %37:bool = eq %x_181, -1i
+            if %37 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %38:i32 = load %baseIndex
+                %x_186:i32 = let %38
+                %40:i32 = load %treeIndex
+                %x_187:i32 = let %40
+                %42:ptr<private, i32, read_write> = access %tree, %x_186, 1u
+                store %42, %x_187
+                %43:i32 = load %treeIndex
+                %x_189:i32 = let %43
+                %45:ptr<private, BST, read_write> = access %tree, %x_189
+                %46:BST = load %45
+                %x_191:BST = let %46
+                store %param, %x_191
+                %48:i32 = load %data_1
+                %x_192:i32 = let %48
+                store %param_1, %x_192
+                %50:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %51:BST = load %param
+                %x_194:BST = let %51
+                %53:ptr<private, BST, read_write> = access %tree, %x_189
+                store %53, %x_194
+                ret
+              }
+              $B11: {  # false
+                %54:i32 = load %baseIndex
+                %x_196:i32 = let %54
+                %56:ptr<private, i32, read_write> = access %tree, %x_196, 1u
+                %57:i32 = load %56
+                %x_198:i32 = let %57
+                store %baseIndex, %x_198
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+          $B9: {  # false
+            %59:i32 = load %baseIndex
+            %x_199:i32 = let %59
+            %61:ptr<private, i32, read_write> = access %tree, %x_199, 2u
+            %62:i32 = load %61
+            %x_201:i32 = let %62
+            %64:bool = eq %x_201, -1i
+            if %64 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %65:i32 = load %baseIndex
+                %x_206:i32 = let %65
+                %67:i32 = load %treeIndex
+                %x_207:i32 = let %67
+                %69:ptr<private, i32, read_write> = access %tree, %x_206, 2u
+                store %69, %x_207
+                %70:i32 = load %treeIndex
+                %x_209:i32 = let %70
+                %72:ptr<private, BST, read_write> = access %tree, %x_209
+                %73:BST = load %72
+                %x_211:BST = let %73
+                store %param_2, %x_211
+                %75:i32 = load %data_1
+                %x_212:i32 = let %75
+                store %param_3, %x_212
+                %77:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %78:BST = load %param_2
+                %x_214:BST = let %78
+                %80:ptr<private, BST, read_write> = access %tree, %x_209
+                store %80, %x_214
+                ret
+              }
+              $B13: {  # false
+                %81:i32 = load %baseIndex
+                %x_216:i32 = let %81
+                %83:ptr<private, i32, read_write> = access %tree, %x_216, 2u
+                %84:i32 = load %83
+                %x_218:i32 = let %84
+                store %baseIndex, %x_218
+                continue  # -> $B5
+              }
+            }
+            exit_if  # if_2
+          }
+        }
+        unreachable
+      }
+      $B5: {  # continuing
+        next_iteration  # -> $B4
+      }
+    }
+    ret
+  }
+}
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %index:ptr<function, i32, read_write> = var
+    %currentNode:ptr<function, BST, read_write> = var
+    %x_220:ptr<function, i32, read_write> = var
+    store %index, 0i
+    loop [b: $B15, c: $B16] {  # loop_2
+      $B15: {  # body
+        %91:i32 = load %index
+        %x_225:i32 = let %91
+        %93:bool = neq %x_225, -1i
+        if %93 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
+            exit_if  # if_5
+          }
+          $B18: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %94:i32 = load %index
+        %x_228:i32 = let %94
+        %96:ptr<private, BST, read_write> = access %tree, %x_228
+        %97:BST = load %96
+        %x_230:BST = let %97
+        store %currentNode, %x_230
+        %99:ptr<function, i32, read_write> = access %currentNode, 0u
+        %100:i32 = load %99
+        %x_232:i32 = let %100
+        %102:i32 = load %t
+        %x_233:i32 = let %102
+        %104:bool = eq %x_232, %x_233
+        if %104 [t: $B19] {  # if_6
+          $B19: {  # true
+            %105:i32 = load %t
+            %x_237:i32 = let %105
+            ret %x_237
+          }
+        }
+        %107:i32 = load %t
+        %x_238:i32 = let %107
+        %109:ptr<function, i32, read_write> = access %currentNode, 0u
+        %110:i32 = load %109
+        %x_240:i32 = let %110
+        %112:bool = gt %x_238, %x_240
+        if %112 [t: $B20, f: $B21] {  # if_7
+          $B20: {  # true
+            %113:ptr<function, i32, read_write> = access %currentNode, 2u
+            %114:i32 = load %113
+            %x_246:i32 = let %114
+            store %x_220, %x_246
+            exit_if  # if_7
+          }
+          $B21: {  # false
+            %116:ptr<function, i32, read_write> = access %currentNode, 1u
+            %117:i32 = load %116
+            %x_248:i32 = let %117
+            store %x_220, %x_248
+            exit_if  # if_7
+          }
+        }
+        %119:i32 = load %x_220
+        %x_249:i32 = let %119
+        store %index, %x_249
+        continue  # -> $B16
+      }
+      $B16: {  # continuing
+        next_iteration  # -> $B15
+      }
+    }
+    ret -1i
+  }
+}
+%main_1 = func():void {
+  $B22: {
+    %treeIndex_1:ptr<function, i32, read_write> = var
+    %param_4:ptr<function, BST, read_write> = var
+    %param_5:ptr<function, i32, read_write> = var
+    %param_6:ptr<function, i32, read_write> = var
+    %param_7:ptr<function, i32, read_write> = var
+    %param_8:ptr<function, i32, read_write> = var
+    %param_9:ptr<function, i32, read_write> = var
+    %param_10:ptr<function, i32, read_write> = var
+    %param_11:ptr<function, i32, read_write> = var
+    %param_12:ptr<function, i32, read_write> = var
+    %param_13:ptr<function, i32, read_write> = var
+    %param_14:ptr<function, i32, read_write> = var
+    %param_15:ptr<function, i32, read_write> = var
+    %param_16:ptr<function, i32, read_write> = var
+    %param_17:ptr<function, i32, read_write> = var
+    %param_18:ptr<function, i32, read_write> = var
+    %param_19:ptr<function, i32, read_write> = var
+    %param_20:ptr<function, i32, read_write> = var
+    %param_21:ptr<function, i32, read_write> = var
+    %param_22:ptr<function, i32, read_write> = var
+    %param_23:ptr<function, i32, read_write> = var
+    %count:ptr<function, i32, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %result:ptr<function, i32, read_write> = var
+    %param_24:ptr<function, i32, read_write> = var
+    store %treeIndex_1, 0i
+    %147:ptr<private, BST, read_write> = access %tree, 0i
+    %148:BST = load %147
+    %x_84:BST = let %148
+    store %param_4, %x_84
+    store %param_5, 9i
+    %150:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %151:BST = load %param_4
+    %x_86:BST = let %151
+    %153:ptr<private, BST, read_write> = access %tree, 0i
+    store %153, %x_86
+    %154:i32 = load %treeIndex_1
+    %x_88:i32 = let %154
+    %156:i32 = add %x_88, 1i
+    store %treeIndex_1, %156
+    %157:i32 = load %treeIndex_1
+    %x_90:i32 = let %157
+    store %param_6, %x_90
+    store %param_7, 5i
+    %159:void = call %insert_i1_i1_, %param_6, %param_7
+    %160:i32 = load %treeIndex_1
+    %x_92:i32 = let %160
+    %162:i32 = add %x_92, 1i
+    store %treeIndex_1, %162
+    %163:i32 = load %treeIndex_1
+    %x_94:i32 = let %163
+    store %param_8, %x_94
+    store %param_9, 12i
+    %165:void = call %insert_i1_i1_, %param_8, %param_9
+    %166:i32 = load %treeIndex_1
+    %x_96:i32 = let %166
+    %168:i32 = add %x_96, 1i
+    store %treeIndex_1, %168
+    %169:i32 = load %treeIndex_1
+    %x_98:i32 = let %169
+    store %param_10, %x_98
+    store %param_11, 15i
+    %171:void = call %insert_i1_i1_, %param_10, %param_11
+    %172:i32 = load %treeIndex_1
+    %x_100:i32 = let %172
+    %174:i32 = add %x_100, 1i
+    store %treeIndex_1, %174
+    %175:i32 = load %treeIndex_1
+    %x_102:i32 = let %175
+    store %param_12, %x_102
+    store %param_13, 7i
+    %177:void = call %insert_i1_i1_, %param_12, %param_13
+    %178:i32 = load %treeIndex_1
+    %x_104:i32 = let %178
+    %180:i32 = add %x_104, 1i
+    store %treeIndex_1, %180
+    %181:i32 = load %treeIndex_1
+    %x_106:i32 = let %181
+    store %param_14, %x_106
+    store %param_15, 8i
+    %183:void = call %insert_i1_i1_, %param_14, %param_15
+    %184:i32 = load %treeIndex_1
+    %x_108:i32 = let %184
+    %186:i32 = add %x_108, 1i
+    store %treeIndex_1, %186
+    %187:i32 = load %treeIndex_1
+    %x_110:i32 = let %187
+    store %param_16, %x_110
+    store %param_17, 2i
+    %189:void = call %insert_i1_i1_, %param_16, %param_17
+    %190:i32 = load %treeIndex_1
+    %x_112:i32 = let %190
+    %192:i32 = add %x_112, 1i
+    store %treeIndex_1, %192
+    %193:i32 = load %treeIndex_1
+    %x_114:i32 = let %193
+    store %param_18, %x_114
+    store %param_19, 6i
+    %195:void = call %insert_i1_i1_, %param_18, %param_19
+    %196:i32 = load %treeIndex_1
+    %x_116:i32 = let %196
+    %198:i32 = add %x_116, 1i
+    store %treeIndex_1, %198
+    %199:i32 = load %treeIndex_1
+    %x_118:i32 = let %199
+    store %param_20, %x_118
+    store %param_21, 17i
+    %201:void = call %insert_i1_i1_, %param_20, %param_21
+    %202:i32 = load %treeIndex_1
+    %x_120:i32 = let %202
+    %204:i32 = add %x_120, 1i
+    store %treeIndex_1, %204
+    %205:i32 = load %treeIndex_1
+    %x_122:i32 = let %205
+    store %param_22, %x_122
+    store %param_23, 13i
+    %207:void = call %insert_i1_i1_, %param_22, %param_23
+    store %count, 0i
+    store %i, 0i
+    loop [b: $B23, c: $B24] {  # loop_3
+      $B23: {  # body
+        %208:i32 = load %i
+        %x_128:i32 = let %208
+        %210:bool = lt %x_128, 20i
+        if %210 [t: $B25, f: $B26] {  # if_8
+          $B25: {  # true
+            exit_if  # if_8
+          }
+          $B26: {  # false
+            exit_loop  # loop_3
+          }
+        }
+        %211:i32 = load %i
+        %x_131:i32 = let %211
+        store %param_24, %x_131
+        %213:i32 = call %search_i1_, %param_24
+        %x_132:i32 = let %213
+        store %result, %x_132
+        %215:i32 = load %i
+        %x_133:i32 = let %215
+        switch %x_133 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B27), c: (default, $B28)] {  # switch_1
+          $B27: {  # case
+            %217:i32 = load %result
+            %x_143:i32 = let %217
+            %219:i32 = load %i
+            %x_144:i32 = let %219
+            %221:bool = eq %x_143, %x_144
+            if %221 [t: $B29] {  # if_9
+              $B29: {  # true
+                %222:i32 = load %count
+                %x_148:i32 = let %222
+                %224:i32 = add %x_148, 1i
+                store %count, %224
+                exit_if  # if_9
+              }
+            }
+            exit_switch  # switch_1
+          }
+          $B28: {  # case
+            %225:i32 = load %result
+            %x_137:i32 = let %225
+            %227:bool = eq %x_137, -1i
+            if %227 [t: $B30] {  # if_10
+              $B30: {  # true
+                %228:i32 = load %count
+                %x_141:i32 = let %228
+                %230:i32 = add %x_141, 1i
+                store %count, %230
+                exit_if  # if_10
+              }
+            }
+            exit_switch  # switch_1
+          }
+        }
+        continue  # -> $B24
+      }
+      $B24: {  # continuing
+        %231:i32 = load %i
+        %x_150:i32 = let %231
+        %233:i32 = add %x_150, 1i
+        store %i, %233
+        next_iteration  # -> $B23
+      }
+    }
+    %234:i32 = load %count
+    %x_152:i32 = let %234
+    %236:bool = eq %x_152, 20i
+    if %236 [t: $B31, f: $B32] {  # if_11
+      $B31: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_11
+      }
+      $B32: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
+        exit_if  # if_11
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B33: {
+    %238:void = call %main_1
+    %239:vec4<f32> = load %x_GLF_color
+    %240:main_out = construct %239
+    ret %240
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.msl
index 9f4a32d..21e6e74 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -18,15 +18,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %tree:ptr<private, array<BST, 10>, read_write> = var
   %x_50:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%node:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%node:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
     %8:ptr<function, i32, read_write> = access %node, 0u
     %9:i32 = load %data
     store %8, %9
@@ -37,24 +37,24 @@
     ret
   }
 }
-%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void -> %b3 {
-  %b3 = block {
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
     %baseIndex:ptr<function, i32, read_write> = var
     %param:ptr<function, BST, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, BST, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %baseIndex, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %20:i32 = load %baseIndex
         %21:i32 = load %treeIndex
         %22:bool = lte %20, %21
-        if %22 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %22 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
@@ -63,157 +63,164 @@
         %25:ptr<private, i32, read_write> = access %tree, %24, 0u
         %26:i32 = load %25
         %27:bool = lte %23, %26
-        if %27 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+        if %27 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             %28:i32 = load %baseIndex
             %29:ptr<private, i32, read_write> = access %tree, %28, 1u
             %30:i32 = load %29
             %31:bool = eq %30, -1i
-            if %31 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
-                %x_236:i32 = load %baseIndex
-                %33:ptr<private, i32, read_write> = access %tree, %x_236, 1u
-                %34:i32 = load %treeIndex
-                store %33, %34
-                %x_239:i32 = load %treeIndex
-                %36:ptr<private, BST, read_write> = access %tree, %x_239
-                %37:BST = load %36
-                store %param, %37
-                %38:i32 = load %data_1
-                store %param_1, %38
-                %39:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
-                %40:ptr<private, BST, read_write> = access %tree, %x_239
-                %41:BST = load %param
-                store %40, %41
+            if %31 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %32:i32 = load %baseIndex
+                %x_236:i32 = let %32
+                %34:ptr<private, i32, read_write> = access %tree, %x_236, 1u
+                %35:i32 = load %treeIndex
+                store %34, %35
+                %36:i32 = load %treeIndex
+                %x_239:i32 = let %36
+                %38:ptr<private, BST, read_write> = access %tree, %x_239
+                %39:BST = load %38
+                store %param, %39
+                %40:i32 = load %data_1
+                store %param_1, %40
+                %41:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %42:ptr<private, BST, read_write> = access %tree, %x_239
+                %43:BST = load %param
+                store %42, %43
                 ret
               }
-              %b11 = block {  # false
-                %42:i32 = load %baseIndex
-                %43:ptr<private, i32, read_write> = access %tree, %42, 1u
-                %44:i32 = load %43
-                store %baseIndex, %44
-                continue %b5
+              $B11: {  # false
+                %44:i32 = load %baseIndex
+                %45:ptr<private, i32, read_write> = access %tree, %44, 1u
+                %46:i32 = load %45
+                store %baseIndex, %46
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
-          %b9 = block {  # false
-            %45:i32 = load %baseIndex
-            %46:ptr<private, i32, read_write> = access %tree, %45, 2u
-            %47:i32 = load %46
-            %48:bool = eq %47, -1i
-            if %48 [t: %b12, f: %b13] {  # if_4
-              %b12 = block {  # true
-                %x_256:i32 = load %baseIndex
-                %50:ptr<private, i32, read_write> = access %tree, %x_256, 2u
-                %51:i32 = load %treeIndex
-                store %50, %51
-                %x_259:i32 = load %treeIndex
-                %53:ptr<private, BST, read_write> = access %tree, %x_259
-                %54:BST = load %53
-                store %param_2, %54
-                %55:i32 = load %data_1
-                store %param_3, %55
-                %56:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+          $B9: {  # false
+            %47:i32 = load %baseIndex
+            %48:ptr<private, i32, read_write> = access %tree, %47, 2u
+            %49:i32 = load %48
+            %50:bool = eq %49, -1i
+            if %50 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %51:i32 = load %baseIndex
+                %x_256:i32 = let %51
+                %53:ptr<private, i32, read_write> = access %tree, %x_256, 2u
+                %54:i32 = load %treeIndex
+                store %53, %54
+                %55:i32 = load %treeIndex
+                %x_259:i32 = let %55
                 %57:ptr<private, BST, read_write> = access %tree, %x_259
-                %58:BST = load %param_2
-                store %57, %58
+                %58:BST = load %57
+                store %param_2, %58
+                %59:i32 = load %data_1
+                store %param_3, %59
+                %60:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %61:ptr<private, BST, read_write> = access %tree, %x_259
+                %62:BST = load %param_2
+                store %61, %62
                 ret
               }
-              %b13 = block {  # false
-                %59:i32 = load %baseIndex
-                %60:ptr<private, i32, read_write> = access %tree, %59, 2u
-                %61:i32 = load %60
-                store %baseIndex, %61
-                continue %b5
+              $B13: {  # false
+                %63:i32 = load %baseIndex
+                %64:ptr<private, i32, read_write> = access %tree, %63, 2u
+                %65:i32 = load %64
+                store %baseIndex, %65
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b5
+        unreachable
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%identity_i1_ = func(%a:ptr<function, i32, read_write>):i32 -> %b14 {
-  %b14 = block {
-    %x_202:i32 = load %a
-    %65:ptr<private, i32, read_write> = access %obj, 0u, %x_202
-    %66:i32 = load %a
-    store %65, %66
-    %67:ptr<private, i32, read_write> = access %obj, 0u, 2i
-    %x_206:i32 = load %67
+%identity_i1_ = func(%a:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %68:i32 = load %a
+    %x_202:i32 = let %68
+    %70:ptr<private, i32, read_write> = access %obj, 0u, %x_202
+    %71:i32 = load %a
+    store %70, %71
+    %72:ptr<private, i32, read_write> = access %obj, 0u, 2i
+    %73:i32 = load %72
+    %x_206:i32 = let %73
     ret %x_206
   }
 }
-%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 -> %b15 {
-  %b15 = block {
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B15: {
     %index:ptr<function, i32, read_write> = var
     %currentNode:ptr<function, BST, read_write> = var
     %x_270:ptr<function, i32, read_write> = var
     store %index, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
-        %74:i32 = load %index
-        %75:bool = neq %74, -1i
-        if %75 [t: %b18, f: %b19] {  # if_5
-          %b18 = block {  # true
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
+        %80:i32 = load %index
+        %81:bool = neq %80, -1i
+        if %81 [t: $B18, f: $B19] {  # if_5
+          $B18: {  # true
             exit_if  # if_5
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        %76:i32 = load %index
-        %77:ptr<private, BST, read_write> = access %tree, %76
-        %78:BST = load %77
-        store %currentNode, %78
-        %79:ptr<function, i32, read_write> = access %currentNode, 0u
-        %80:i32 = load %79
-        %81:i32 = load %t
-        %82:bool = eq %80, %81
-        if %82 [t: %b20] {  # if_6
-          %b20 = block {  # true
-            %x_287:i32 = load %t
+        %82:i32 = load %index
+        %83:ptr<private, BST, read_write> = access %tree, %82
+        %84:BST = load %83
+        store %currentNode, %84
+        %85:ptr<function, i32, read_write> = access %currentNode, 0u
+        %86:i32 = load %85
+        %87:i32 = load %t
+        %88:bool = eq %86, %87
+        if %88 [t: $B20] {  # if_6
+          $B20: {  # true
+            %89:i32 = load %t
+            %x_287:i32 = let %89
             ret %x_287
           }
         }
-        %84:i32 = load %t
-        %85:ptr<function, i32, read_write> = access %currentNode, 0u
-        %86:i32 = load %85
-        %87:bool = gt %84, %86
-        if %87 [t: %b21, f: %b22] {  # if_7
-          %b21 = block {  # true
-            %88:ptr<function, i32, read_write> = access %currentNode, 2u
-            %89:i32 = load %88
-            store %x_270, %89
+        %91:i32 = load %t
+        %92:ptr<function, i32, read_write> = access %currentNode, 0u
+        %93:i32 = load %92
+        %94:bool = gt %91, %93
+        if %94 [t: $B21, f: $B22] {  # if_7
+          $B21: {  # true
+            %95:ptr<function, i32, read_write> = access %currentNode, 2u
+            %96:i32 = load %95
+            store %x_270, %96
             exit_if  # if_7
           }
-          %b22 = block {  # false
-            %90:ptr<function, i32, read_write> = access %currentNode, 1u
-            %91:i32 = load %90
-            store %x_270, %91
+          $B22: {  # false
+            %97:ptr<function, i32, read_write> = access %currentNode, 1u
+            %98:i32 = load %97
+            store %x_270, %98
             exit_if  # if_7
           }
         }
-        %92:i32 = load %x_270
-        store %index, %92
-        continue %b17
+        %99:i32 = load %x_270
+        store %index, %99
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        next_iteration %b16
+      $B17: {  # continuing
+        next_iteration  # -> $B16
       }
     }
     ret -1i
   }
 }
-%main_1 = func():void -> %b23 {
-  %b23 = block {
+%main_1 = func():void {
+  $B23: {
     %treeIndex_1:ptr<function, i32, read_write> = var
     %param_4:ptr<function, BST, read_write> = var
     %param_5:ptr<function, i32, read_write> = var
@@ -244,193 +251,197 @@
     %result:ptr<function, i32, read_write> = var
     %param_25:ptr<function, i32, read_write> = var
     store %treeIndex_1, 0i
-    %123:ptr<private, BST, read_write> = access %tree, 0i
-    %124:BST = load %123
-    store %param_4, %124
+    %130:ptr<private, BST, read_write> = access %tree, 0i
+    %131:BST = load %130
+    store %param_4, %131
     store %param_5, 9i
-    %125:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
-    %126:ptr<private, BST, read_write> = access %tree, 0i
-    %127:BST = load %param_4
-    store %126, %127
-    %128:i32 = load %treeIndex_1
-    %129:i32 = add %128, 1i
-    store %treeIndex_1, %129
-    %130:i32 = load %treeIndex_1
-    store %param_6, %130
+    %132:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %133:ptr<private, BST, read_write> = access %tree, 0i
+    %134:BST = load %param_4
+    store %133, %134
+    %135:i32 = load %treeIndex_1
+    %136:i32 = add %135, 1i
+    store %treeIndex_1, %136
+    %137:i32 = load %treeIndex_1
+    store %param_6, %137
     store %param_7, 5i
-    %131:void = call %insert_i1_i1_, %param_6, %param_7
-    %132:i32 = load %treeIndex_1
-    %133:i32 = add %132, 1i
-    store %treeIndex_1, %133
-    %134:i32 = load %treeIndex_1
-    store %param_8, %134
+    %138:void = call %insert_i1_i1_, %param_6, %param_7
+    %139:i32 = load %treeIndex_1
+    %140:i32 = add %139, 1i
+    store %treeIndex_1, %140
+    %141:i32 = load %treeIndex_1
+    store %param_8, %141
     store %param_9, 12i
-    %135:void = call %insert_i1_i1_, %param_8, %param_9
-    %136:i32 = load %treeIndex_1
-    %137:i32 = add %136, 1i
-    store %treeIndex_1, %137
-    %138:i32 = load %treeIndex_1
-    store %param_10, %138
+    %142:void = call %insert_i1_i1_, %param_8, %param_9
+    %143:i32 = load %treeIndex_1
+    %144:i32 = add %143, 1i
+    store %treeIndex_1, %144
+    %145:i32 = load %treeIndex_1
+    store %param_10, %145
     store %param_11, 15i
-    %139:void = call %insert_i1_i1_, %param_10, %param_11
-    %140:i32 = load %treeIndex_1
-    %141:i32 = add %140, 1i
-    store %treeIndex_1, %141
-    %142:i32 = load %treeIndex_1
-    store %param_12, %142
+    %146:void = call %insert_i1_i1_, %param_10, %param_11
+    %147:i32 = load %treeIndex_1
+    %148:i32 = add %147, 1i
+    store %treeIndex_1, %148
+    %149:i32 = load %treeIndex_1
+    store %param_12, %149
     store %param_13, 7i
-    %143:void = call %insert_i1_i1_, %param_12, %param_13
-    %144:i32 = load %treeIndex_1
-    %145:i32 = add %144, 1i
-    store %treeIndex_1, %145
-    %146:i32 = load %treeIndex_1
-    store %param_14, %146
+    %150:void = call %insert_i1_i1_, %param_12, %param_13
+    %151:i32 = load %treeIndex_1
+    %152:i32 = add %151, 1i
+    store %treeIndex_1, %152
+    %153:i32 = load %treeIndex_1
+    store %param_14, %153
     store %param_15, 8i
-    %147:void = call %insert_i1_i1_, %param_14, %param_15
-    %148:i32 = load %treeIndex_1
-    %149:i32 = add %148, 1i
-    store %treeIndex_1, %149
-    %150:i32 = load %treeIndex_1
-    store %param_16, %150
+    %154:void = call %insert_i1_i1_, %param_14, %param_15
+    %155:i32 = load %treeIndex_1
+    %156:i32 = add %155, 1i
+    store %treeIndex_1, %156
+    %157:i32 = load %treeIndex_1
+    store %param_16, %157
     store %param_17, 2i
-    %151:void = call %insert_i1_i1_, %param_16, %param_17
-    %152:i32 = load %treeIndex_1
-    %153:i32 = add %152, 1i
-    store %treeIndex_1, %153
-    %154:i32 = load %treeIndex_1
-    store %param_18, %154
+    %158:void = call %insert_i1_i1_, %param_16, %param_17
+    %159:i32 = load %treeIndex_1
+    %160:i32 = add %159, 1i
+    store %treeIndex_1, %160
+    %161:i32 = load %treeIndex_1
+    store %param_18, %161
     store %param_19, 6i
-    %155:void = call %insert_i1_i1_, %param_18, %param_19
-    %156:i32 = load %treeIndex_1
-    %157:i32 = add %156, 1i
-    store %treeIndex_1, %157
-    %158:i32 = load %treeIndex_1
-    store %param_20, %158
+    %162:void = call %insert_i1_i1_, %param_18, %param_19
+    %163:i32 = load %treeIndex_1
+    %164:i32 = add %163, 1i
+    store %treeIndex_1, %164
+    %165:i32 = load %treeIndex_1
+    store %param_20, %165
     store %param_21, 17i
-    %159:void = call %insert_i1_i1_, %param_20, %param_21
-    %160:i32 = load %treeIndex_1
-    %161:i32 = add %160, 1i
-    store %treeIndex_1, %161
-    %162:i32 = load %treeIndex_1
-    store %param_22, %162
+    %166:void = call %insert_i1_i1_, %param_20, %param_21
+    %167:i32 = load %treeIndex_1
+    %168:i32 = add %167, 1i
+    store %treeIndex_1, %168
+    %169:i32 = load %treeIndex_1
+    store %param_22, %169
     store %param_23, 13i
-    %163:void = call %insert_i1_i1_, %param_22, %param_23
+    %170:void = call %insert_i1_i1_, %param_22, %param_23
     store %pp, 0i
     store %looplimiter0, 0i
     store %i, 0i
-    loop [b: %b24, c: %b25] {  # loop_3
-      %b24 = block {  # body
-        %164:i32 = load %i
-        %165:bool = lt %164, 10000i
-        if %165 [t: %b26, f: %b27] {  # if_8
-          %b26 = block {  # true
+    loop [b: $B24, c: $B25] {  # loop_3
+      $B24: {  # body
+        %171:i32 = load %i
+        %172:bool = lt %171, 10000i
+        if %172 [t: $B26, f: $B27] {  # if_8
+          $B26: {  # true
             exit_if  # if_8
           }
-          %b27 = block {  # false
+          $B27: {  # false
             exit_loop  # loop_3
           }
         }
-        %166:i32 = load %looplimiter0
-        %167:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
-        %168:f32 = load_vector_element %167, 1u
-        %169:i32 = convert %168
-        %170:bool = gte %166, %169
-        if %170 [t: %b28] {  # if_9
-          %b28 = block {  # true
-            %171:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
-            %172:f32 = load_vector_element %171, 1u
-            %173:i32 = convert %172
-            %174:i32 = add 1i, %173
-            store %param_24, %174
-            %x_159:i32 = call %identity_i1_, %param_24
+        %173:i32 = load %looplimiter0
+        %174:i32 = let %173
+        %175:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
+        %176:f32 = load_vector_element %175, 1u
+        %177:i32 = call %tint_f32_to_i32, %176
+        %179:bool = gte %174, %177
+        if %179 [t: $B28] {  # if_9
+          $B28: {  # true
+            %180:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
+            %181:f32 = load_vector_element %180, 1u
+            %182:i32 = call %tint_f32_to_i32, %181
+            %183:i32 = add 1i, %182
+            store %param_24, %183
+            %184:i32 = call %identity_i1_, %param_24
+            %x_159:i32 = let %184
             store %pp, %x_159
             exit_loop  # loop_3
           }
         }
-        %176:i32 = load %looplimiter0
-        %177:i32 = add %176, 1i
-        store %looplimiter0, %177
-        continue %b25
+        %186:i32 = load %looplimiter0
+        %187:i32 = add %186, 1i
+        store %looplimiter0, %187
+        continue  # -> $B25
       }
-      %b25 = block {  # continuing
-        %178:i32 = load %i
-        %179:i32 = add %178, 1i
-        store %i, %179
-        next_iteration %b24
+      $B25: {  # continuing
+        %188:i32 = load %i
+        %189:i32 = add %188, 1i
+        store %i, %189
+        next_iteration  # -> $B24
       }
     }
-    %180:i32 = load %pp
-    %181:bool = neq %180, 2i
-    if %181 [t: %b29] {  # if_10
-      %b29 = block {  # true
+    %190:i32 = load %pp
+    %191:bool = neq %190, 2i
+    if %191 [t: $B29] {  # if_10
+      $B29: {  # true
         ret
       }
     }
     store %count, 0i
     store %i_1, 0i
-    loop [b: %b30, c: %b31] {  # loop_4
-      %b30 = block {  # body
-        %182:i32 = load %i_1
-        %183:bool = lt %182, 20i
-        if %183 [t: %b32, f: %b33] {  # if_11
-          %b32 = block {  # true
+    loop [b: $B30, c: $B31] {  # loop_4
+      $B30: {  # body
+        %192:i32 = load %i_1
+        %193:bool = lt %192, 20i
+        if %193 [t: $B32, f: $B33] {  # if_11
+          $B32: {  # true
             exit_if  # if_11
           }
-          %b33 = block {  # false
+          $B33: {  # false
             exit_loop  # loop_4
           }
         }
-        %184:i32 = load %i_1
-        store %param_25, %184
-        %x_176:i32 = call %search_i1_, %param_25
+        %194:i32 = load %i_1
+        store %param_25, %194
+        %195:i32 = call %search_i1_, %param_25
+        %x_176:i32 = let %195
         store %result, %x_176
-        %x_177:i32 = load %i_1
-        switch %x_177 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, %b34), c: (default, %b35)] {  # switch_1
-          %b34 = block {  # case
-            %187:i32 = load %result
-            %188:i32 = load %i_1
-            %189:bool = eq %187, %188
-            if %189 [t: %b36] {  # if_12
-              %b36 = block {  # true
-                %190:i32 = load %count
-                %191:i32 = add %190, 1i
-                store %count, %191
+        %197:i32 = load %i_1
+        %x_177:i32 = let %197
+        switch %x_177 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B34), c: (default, $B35)] {  # switch_1
+          $B34: {  # case
+            %199:i32 = load %result
+            %200:i32 = load %i_1
+            %201:bool = eq %199, %200
+            if %201 [t: $B36] {  # if_12
+              $B36: {  # true
+                %202:i32 = load %count
+                %203:i32 = add %202, 1i
+                store %count, %203
                 exit_if  # if_12
               }
             }
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %192:i32 = load %result
-            %193:bool = eq %192, -1i
-            if %193 [t: %b37] {  # if_13
-              %b37 = block {  # true
-                %194:i32 = load %count
-                %195:i32 = add %194, 1i
-                store %count, %195
+          $B35: {  # case
+            %204:i32 = load %result
+            %205:bool = eq %204, -1i
+            if %205 [t: $B37] {  # if_13
+              $B37: {  # true
+                %206:i32 = load %count
+                %207:i32 = add %206, 1i
+                store %count, %207
                 exit_if  # if_13
               }
             }
             exit_switch  # switch_1
           }
         }
-        continue %b31
+        continue  # -> $B31
       }
-      %b31 = block {  # continuing
-        %196:i32 = load %i_1
-        %197:i32 = add %196, 1i
-        store %i_1, %197
-        next_iteration %b30
+      $B31: {  # continuing
+        %208:i32 = load %i_1
+        %209:i32 = add %208, 1i
+        store %i_1, %209
+        next_iteration  # -> $B30
       }
     }
-    %198:i32 = load %count
-    %199:bool = eq %198, 20i
-    if %199 [t: %b38, f: %b39] {  # if_14
-      %b38 = block {  # true
+    %210:i32 = load %count
+    %211:bool = eq %210, 20i
+    if %211 [t: $B38, f: $B39] {  # if_14
+      $B38: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_14
       }
-      %b39 = block {  # false
+      $B39: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
         exit_if  # if_14
       }
@@ -438,12 +449,22 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b40 {
-  %b40 = block {
-    %201:void = call %main_1
-    %202:vec4<f32> = load %x_GLF_color
-    %203:main_out = construct %202
-    ret %203
+%tint_symbol = @fragment func():main_out {
+  $B40: {
+    %213:void = call %main_1
+    %214:vec4<f32> = load %x_GLF_color
+    %215:main_out = construct %214
+    ret %215
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B41: {
+    %217:i32 = convert %value
+    %218:bool = gte %value, -2147483648.0f
+    %219:i32 = select -2147483648i, %217, %218
+    %220:bool = lte %value, 2147483520.0f
+    %221:i32 = select 2147483647i, %219, %220
+    ret %221
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.msl
index 4ec7d08..488bcf2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -18,202 +18,242 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %tree:ptr<private, array<BST, 10>, read_write> = var
   %x_50:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%node:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
-    %x_208:i32 = load %data
-    %9:ptr<function, i32, read_write> = access %node, 0u
-    store %9, %x_208
-    %10:ptr<function, i32, read_write> = access %node, 1u
-    store %10, -1i
-    %11:ptr<function, i32, read_write> = access %node, 2u
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%node:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %8:i32 = load %data
+    %x_208:i32 = let %8
+    %10:ptr<function, i32, read_write> = access %node, 0u
+    store %10, %x_208
+    %11:ptr<function, i32, read_write> = access %node, 1u
     store %11, -1i
+    %12:ptr<function, i32, read_write> = access %node, 2u
+    store %12, -1i
     ret
   }
 }
-%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void -> %b3 {
-  %b3 = block {
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
     %baseIndex:ptr<function, i32, read_write> = var
     %param:ptr<function, BST, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, BST, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
     store %baseIndex, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_217:i32 = load %baseIndex
-        %x_218:i32 = load %treeIndex
-        %22:bool = lte %x_217, %x_218
-        if %22 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %21:i32 = load %baseIndex
+        %x_217:i32 = let %21
+        %23:i32 = load %treeIndex
+        %x_218:i32 = let %23
+        %25:bool = lte %x_217, %x_218
+        if %25 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_221:i32 = load %data_1
-        %x_222:i32 = load %baseIndex
-        %25:ptr<private, i32, read_write> = access %tree, %x_222, 0u
-        %x_224:i32 = load %25
-        %27:bool = lte %x_221, %x_224
-        if %27 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
-            %x_229:i32 = load %baseIndex
-            %29:ptr<private, i32, read_write> = access %tree, %x_229, 1u
-            %x_231:i32 = load %29
-            %31:bool = eq %x_231, -1i
-            if %31 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
-                %x_236:i32 = load %baseIndex
-                %x_237:i32 = load %treeIndex
-                %34:ptr<private, i32, read_write> = access %tree, %x_236, 1u
-                store %34, %x_237
-                %x_239:i32 = load %treeIndex
-                %36:ptr<private, BST, read_write> = access %tree, %x_239
-                %x_241:BST = load %36
+        %26:i32 = load %data_1
+        %x_221:i32 = let %26
+        %28:i32 = load %baseIndex
+        %x_222:i32 = let %28
+        %30:ptr<private, i32, read_write> = access %tree, %x_222, 0u
+        %31:i32 = load %30
+        %x_224:i32 = let %31
+        %33:bool = lte %x_221, %x_224
+        if %33 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %34:i32 = load %baseIndex
+            %x_229:i32 = let %34
+            %36:ptr<private, i32, read_write> = access %tree, %x_229, 1u
+            %37:i32 = load %36
+            %x_231:i32 = let %37
+            %39:bool = eq %x_231, -1i
+            if %39 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %40:i32 = load %baseIndex
+                %x_236:i32 = let %40
+                %42:i32 = load %treeIndex
+                %x_237:i32 = let %42
+                %44:ptr<private, i32, read_write> = access %tree, %x_236, 1u
+                store %44, %x_237
+                %45:i32 = load %treeIndex
+                %x_239:i32 = let %45
+                %47:ptr<private, BST, read_write> = access %tree, %x_239
+                %48:BST = load %47
+                %x_241:BST = let %48
                 store %param, %x_241
-                %x_242:i32 = load %data_1
+                %50:i32 = load %data_1
+                %x_242:i32 = let %50
                 store %param_1, %x_242
-                %39:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
-                %x_244:BST = load %param
-                %41:ptr<private, BST, read_write> = access %tree, %x_239
-                store %41, %x_244
+                %52:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %53:BST = load %param
+                %x_244:BST = let %53
+                %55:ptr<private, BST, read_write> = access %tree, %x_239
+                store %55, %x_244
                 ret
               }
-              %b11 = block {  # false
-                %x_246:i32 = load %baseIndex
-                %43:ptr<private, i32, read_write> = access %tree, %x_246, 1u
-                %x_248:i32 = load %43
+              $B11: {  # false
+                %56:i32 = load %baseIndex
+                %x_246:i32 = let %56
+                %58:ptr<private, i32, read_write> = access %tree, %x_246, 1u
+                %59:i32 = load %58
+                %x_248:i32 = let %59
                 store %baseIndex, %x_248
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
-          %b9 = block {  # false
-            %x_249:i32 = load %baseIndex
-            %46:ptr<private, i32, read_write> = access %tree, %x_249, 2u
-            %x_251:i32 = load %46
-            %48:bool = eq %x_251, -1i
-            if %48 [t: %b12, f: %b13] {  # if_4
-              %b12 = block {  # true
-                %x_256:i32 = load %baseIndex
-                %x_257:i32 = load %treeIndex
-                %51:ptr<private, i32, read_write> = access %tree, %x_256, 2u
-                store %51, %x_257
-                %x_259:i32 = load %treeIndex
-                %53:ptr<private, BST, read_write> = access %tree, %x_259
-                %x_261:BST = load %53
+          $B9: {  # false
+            %61:i32 = load %baseIndex
+            %x_249:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %tree, %x_249, 2u
+            %64:i32 = load %63
+            %x_251:i32 = let %64
+            %66:bool = eq %x_251, -1i
+            if %66 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %67:i32 = load %baseIndex
+                %x_256:i32 = let %67
+                %69:i32 = load %treeIndex
+                %x_257:i32 = let %69
+                %71:ptr<private, i32, read_write> = access %tree, %x_256, 2u
+                store %71, %x_257
+                %72:i32 = load %treeIndex
+                %x_259:i32 = let %72
+                %74:ptr<private, BST, read_write> = access %tree, %x_259
+                %75:BST = load %74
+                %x_261:BST = let %75
                 store %param_2, %x_261
-                %x_262:i32 = load %data_1
+                %77:i32 = load %data_1
+                %x_262:i32 = let %77
                 store %param_3, %x_262
-                %56:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
-                %x_264:BST = load %param_2
-                %58:ptr<private, BST, read_write> = access %tree, %x_259
-                store %58, %x_264
+                %79:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %80:BST = load %param_2
+                %x_264:BST = let %80
+                %82:ptr<private, BST, read_write> = access %tree, %x_259
+                store %82, %x_264
                 ret
               }
-              %b13 = block {  # false
-                %x_266:i32 = load %baseIndex
-                %60:ptr<private, i32, read_write> = access %tree, %x_266, 2u
-                %x_268:i32 = load %60
+              $B13: {  # false
+                %83:i32 = load %baseIndex
+                %x_266:i32 = let %83
+                %85:ptr<private, i32, read_write> = access %tree, %x_266, 2u
+                %86:i32 = load %85
+                %x_268:i32 = let %86
                 store %baseIndex, %x_268
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b5
+        unreachable
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%identity_i1_ = func(%a:ptr<function, i32, read_write>):i32 -> %b14 {
-  %b14 = block {
-    %x_202:i32 = load %a
-    %x_203:i32 = load %a
-    %66:ptr<private, i32, read_write> = access %obj, 0u, %x_202
-    store %66, %x_203
-    %67:ptr<private, i32, read_write> = access %obj, 0u, 2i
-    %x_206:i32 = load %67
+%identity_i1_ = func(%a:ptr<function, i32, read_write>):i32 {
+  $B14: {
+    %90:i32 = load %a
+    %x_202:i32 = let %90
+    %92:i32 = load %a
+    %x_203:i32 = let %92
+    %94:ptr<private, i32, read_write> = access %obj, 0u, %x_202
+    store %94, %x_203
+    %95:ptr<private, i32, read_write> = access %obj, 0u, 2i
+    %96:i32 = load %95
+    %x_206:i32 = let %96
     ret %x_206
   }
 }
-%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 -> %b15 {
-  %b15 = block {
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B15: {
     %index:ptr<function, i32, read_write> = var
     %currentNode:ptr<function, BST, read_write> = var
     %x_270:ptr<function, i32, read_write> = var
     store %index, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
-        %x_275:i32 = load %index
-        %75:bool = neq %x_275, -1i
-        if %75 [t: %b18, f: %b19] {  # if_5
-          %b18 = block {  # true
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
+        %103:i32 = load %index
+        %x_275:i32 = let %103
+        %105:bool = neq %x_275, -1i
+        if %105 [t: $B18, f: $B19] {  # if_5
+          $B18: {  # true
             exit_if  # if_5
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_278:i32 = load %index
-        %77:ptr<private, BST, read_write> = access %tree, %x_278
-        %x_280:BST = load %77
+        %106:i32 = load %index
+        %x_278:i32 = let %106
+        %108:ptr<private, BST, read_write> = access %tree, %x_278
+        %109:BST = load %108
+        %x_280:BST = let %109
         store %currentNode, %x_280
-        %79:ptr<function, i32, read_write> = access %currentNode, 0u
-        %x_282:i32 = load %79
-        %x_283:i32 = load %t
-        %82:bool = eq %x_282, %x_283
-        if %82 [t: %b20] {  # if_6
-          %b20 = block {  # true
-            %x_287:i32 = load %t
+        %111:ptr<function, i32, read_write> = access %currentNode, 0u
+        %112:i32 = load %111
+        %x_282:i32 = let %112
+        %114:i32 = load %t
+        %x_283:i32 = let %114
+        %116:bool = eq %x_282, %x_283
+        if %116 [t: $B20] {  # if_6
+          $B20: {  # true
+            %117:i32 = load %t
+            %x_287:i32 = let %117
             ret %x_287
           }
         }
-        %x_288:i32 = load %t
-        %85:ptr<function, i32, read_write> = access %currentNode, 0u
-        %x_290:i32 = load %85
-        %87:bool = gt %x_288, %x_290
-        if %87 [t: %b21, f: %b22] {  # if_7
-          %b21 = block {  # true
-            %88:ptr<function, i32, read_write> = access %currentNode, 2u
-            %x_296:i32 = load %88
+        %119:i32 = load %t
+        %x_288:i32 = let %119
+        %121:ptr<function, i32, read_write> = access %currentNode, 0u
+        %122:i32 = load %121
+        %x_290:i32 = let %122
+        %124:bool = gt %x_288, %x_290
+        if %124 [t: $B21, f: $B22] {  # if_7
+          $B21: {  # true
+            %125:ptr<function, i32, read_write> = access %currentNode, 2u
+            %126:i32 = load %125
+            %x_296:i32 = let %126
             store %x_270, %x_296
             exit_if  # if_7
           }
-          %b22 = block {  # false
-            %90:ptr<function, i32, read_write> = access %currentNode, 1u
-            %x_298:i32 = load %90
+          $B22: {  # false
+            %128:ptr<function, i32, read_write> = access %currentNode, 1u
+            %129:i32 = load %128
+            %x_298:i32 = let %129
             store %x_270, %x_298
             exit_if  # if_7
           }
         }
-        %x_299:i32 = load %x_270
+        %131:i32 = load %x_270
+        %x_299:i32 = let %131
         store %index, %x_299
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        next_iteration %b16
+      $B17: {  # continuing
+        next_iteration  # -> $B16
       }
     }
     ret -1i
   }
 }
-%main_1 = func():void -> %b23 {
-  %b23 = block {
+%main_1 = func():void {
+  $B23: {
     %treeIndex_1:ptr<function, i32, read_write> = var
     %param_4:ptr<function, BST, read_write> = var
     %param_5:ptr<function, i32, read_write> = var
@@ -244,193 +284,232 @@
     %result:ptr<function, i32, read_write> = var
     %param_25:ptr<function, i32, read_write> = var
     store %treeIndex_1, 0i
-    %123:ptr<private, BST, read_write> = access %tree, 0i
-    %x_101:BST = load %123
+    %163:ptr<private, BST, read_write> = access %tree, 0i
+    %164:BST = load %163
+    %x_101:BST = let %164
     store %param_4, %x_101
     store %param_5, 9i
-    %125:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
-    %x_103:BST = load %param_4
-    %127:ptr<private, BST, read_write> = access %tree, 0i
-    store %127, %x_103
-    %x_105:i32 = load %treeIndex_1
-    %129:i32 = add %x_105, 1i
-    store %treeIndex_1, %129
-    %x_107:i32 = load %treeIndex_1
+    %166:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_4, %param_5
+    %167:BST = load %param_4
+    %x_103:BST = let %167
+    %169:ptr<private, BST, read_write> = access %tree, 0i
+    store %169, %x_103
+    %170:i32 = load %treeIndex_1
+    %x_105:i32 = let %170
+    %172:i32 = add %x_105, 1i
+    store %treeIndex_1, %172
+    %173:i32 = load %treeIndex_1
+    %x_107:i32 = let %173
     store %param_6, %x_107
     store %param_7, 5i
-    %131:void = call %insert_i1_i1_, %param_6, %param_7
-    %x_109:i32 = load %treeIndex_1
-    %133:i32 = add %x_109, 1i
-    store %treeIndex_1, %133
-    %x_111:i32 = load %treeIndex_1
+    %175:void = call %insert_i1_i1_, %param_6, %param_7
+    %176:i32 = load %treeIndex_1
+    %x_109:i32 = let %176
+    %178:i32 = add %x_109, 1i
+    store %treeIndex_1, %178
+    %179:i32 = load %treeIndex_1
+    %x_111:i32 = let %179
     store %param_8, %x_111
     store %param_9, 12i
-    %135:void = call %insert_i1_i1_, %param_8, %param_9
-    %x_113:i32 = load %treeIndex_1
-    %137:i32 = add %x_113, 1i
-    store %treeIndex_1, %137
-    %x_115:i32 = load %treeIndex_1
+    %181:void = call %insert_i1_i1_, %param_8, %param_9
+    %182:i32 = load %treeIndex_1
+    %x_113:i32 = let %182
+    %184:i32 = add %x_113, 1i
+    store %treeIndex_1, %184
+    %185:i32 = load %treeIndex_1
+    %x_115:i32 = let %185
     store %param_10, %x_115
     store %param_11, 15i
-    %139:void = call %insert_i1_i1_, %param_10, %param_11
-    %x_117:i32 = load %treeIndex_1
-    %141:i32 = add %x_117, 1i
-    store %treeIndex_1, %141
-    %x_119:i32 = load %treeIndex_1
+    %187:void = call %insert_i1_i1_, %param_10, %param_11
+    %188:i32 = load %treeIndex_1
+    %x_117:i32 = let %188
+    %190:i32 = add %x_117, 1i
+    store %treeIndex_1, %190
+    %191:i32 = load %treeIndex_1
+    %x_119:i32 = let %191
     store %param_12, %x_119
     store %param_13, 7i
-    %143:void = call %insert_i1_i1_, %param_12, %param_13
-    %x_121:i32 = load %treeIndex_1
-    %145:i32 = add %x_121, 1i
-    store %treeIndex_1, %145
-    %x_123:i32 = load %treeIndex_1
+    %193:void = call %insert_i1_i1_, %param_12, %param_13
+    %194:i32 = load %treeIndex_1
+    %x_121:i32 = let %194
+    %196:i32 = add %x_121, 1i
+    store %treeIndex_1, %196
+    %197:i32 = load %treeIndex_1
+    %x_123:i32 = let %197
     store %param_14, %x_123
     store %param_15, 8i
-    %147:void = call %insert_i1_i1_, %param_14, %param_15
-    %x_125:i32 = load %treeIndex_1
-    %149:i32 = add %x_125, 1i
-    store %treeIndex_1, %149
-    %x_127:i32 = load %treeIndex_1
+    %199:void = call %insert_i1_i1_, %param_14, %param_15
+    %200:i32 = load %treeIndex_1
+    %x_125:i32 = let %200
+    %202:i32 = add %x_125, 1i
+    store %treeIndex_1, %202
+    %203:i32 = load %treeIndex_1
+    %x_127:i32 = let %203
     store %param_16, %x_127
     store %param_17, 2i
-    %151:void = call %insert_i1_i1_, %param_16, %param_17
-    %x_129:i32 = load %treeIndex_1
-    %153:i32 = add %x_129, 1i
-    store %treeIndex_1, %153
-    %x_131:i32 = load %treeIndex_1
+    %205:void = call %insert_i1_i1_, %param_16, %param_17
+    %206:i32 = load %treeIndex_1
+    %x_129:i32 = let %206
+    %208:i32 = add %x_129, 1i
+    store %treeIndex_1, %208
+    %209:i32 = load %treeIndex_1
+    %x_131:i32 = let %209
     store %param_18, %x_131
     store %param_19, 6i
-    %155:void = call %insert_i1_i1_, %param_18, %param_19
-    %x_133:i32 = load %treeIndex_1
-    %157:i32 = add %x_133, 1i
-    store %treeIndex_1, %157
-    %x_135:i32 = load %treeIndex_1
+    %211:void = call %insert_i1_i1_, %param_18, %param_19
+    %212:i32 = load %treeIndex_1
+    %x_133:i32 = let %212
+    %214:i32 = add %x_133, 1i
+    store %treeIndex_1, %214
+    %215:i32 = load %treeIndex_1
+    %x_135:i32 = let %215
     store %param_20, %x_135
     store %param_21, 17i
-    %159:void = call %insert_i1_i1_, %param_20, %param_21
-    %x_137:i32 = load %treeIndex_1
-    %161:i32 = add %x_137, 1i
-    store %treeIndex_1, %161
-    %x_139:i32 = load %treeIndex_1
+    %217:void = call %insert_i1_i1_, %param_20, %param_21
+    %218:i32 = load %treeIndex_1
+    %x_137:i32 = let %218
+    %220:i32 = add %x_137, 1i
+    store %treeIndex_1, %220
+    %221:i32 = load %treeIndex_1
+    %x_139:i32 = let %221
     store %param_22, %x_139
     store %param_23, 13i
-    %163:void = call %insert_i1_i1_, %param_22, %param_23
+    %223:void = call %insert_i1_i1_, %param_22, %param_23
     store %pp, 0i
     store %looplimiter0, 0i
     store %i, 0i
-    loop [b: %b24, c: %b25] {  # loop_3
-      %b24 = block {  # body
-        %x_145:i32 = load %i
-        %165:bool = lt %x_145, 10000i
-        if %165 [t: %b26, f: %b27] {  # if_8
-          %b26 = block {  # true
+    loop [b: $B24, c: $B25] {  # loop_3
+      $B24: {  # body
+        %224:i32 = load %i
+        %x_145:i32 = let %224
+        %226:bool = lt %x_145, 10000i
+        if %226 [t: $B26, f: $B27] {  # if_8
+          $B26: {  # true
             exit_if  # if_8
           }
-          %b27 = block {  # false
+          $B27: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_148:i32 = load %looplimiter0
-        %167:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
-        %x_150:f32 = load_vector_element %167, 1u
-        %169:i32 = convert %x_150
-        %170:bool = gte %x_148, %169
-        if %170 [t: %b28] {  # if_9
-          %b28 = block {  # true
-            %171:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
-            %x_156:f32 = load_vector_element %171, 1u
-            %173:i32 = convert %x_156
-            %174:i32 = add 1i, %173
-            store %param_24, %174
-            %x_159:i32 = call %identity_i1_, %param_24
+        %227:i32 = load %looplimiter0
+        %x_148:i32 = let %227
+        %229:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
+        %230:f32 = load_vector_element %229, 1u
+        %x_150:f32 = let %230
+        %232:i32 = call %tint_f32_to_i32, %x_150
+        %234:bool = gte %x_148, %232
+        if %234 [t: $B28] {  # if_9
+          $B28: {  # true
+            %235:ptr<uniform, vec2<f32>, read> = access %x_50, 0u
+            %236:f32 = load_vector_element %235, 1u
+            %x_156:f32 = let %236
+            %238:i32 = call %tint_f32_to_i32, %x_156
+            %239:i32 = add 1i, %238
+            store %param_24, %239
+            %240:i32 = call %identity_i1_, %param_24
+            %x_159:i32 = let %240
             store %pp, %x_159
             exit_loop  # loop_3
           }
         }
-        %x_160:i32 = load %looplimiter0
-        %177:i32 = add %x_160, 1i
-        store %looplimiter0, %177
-        continue %b25
+        %242:i32 = load %looplimiter0
+        %x_160:i32 = let %242
+        %244:i32 = add %x_160, 1i
+        store %looplimiter0, %244
+        continue  # -> $B25
       }
-      %b25 = block {  # continuing
-        %x_162:i32 = load %i
-        %179:i32 = add %x_162, 1i
-        store %i, %179
-        next_iteration %b24
+      $B25: {  # continuing
+        %245:i32 = load %i
+        %x_162:i32 = let %245
+        %247:i32 = add %x_162, 1i
+        store %i, %247
+        next_iteration  # -> $B24
       }
     }
-    %x_164:i32 = load %pp
-    %181:bool = neq %x_164, 2i
-    if %181 [t: %b29] {  # if_10
-      %b29 = block {  # true
+    %248:i32 = load %pp
+    %x_164:i32 = let %248
+    %250:bool = neq %x_164, 2i
+    if %250 [t: $B29] {  # if_10
+      $B29: {  # true
         ret
       }
     }
     store %count, 0i
     store %i_1, 0i
-    loop [b: %b30, c: %b31] {  # loop_4
-      %b30 = block {  # body
-        %x_172:i32 = load %i_1
-        %183:bool = lt %x_172, 20i
-        if %183 [t: %b32, f: %b33] {  # if_11
-          %b32 = block {  # true
+    loop [b: $B30, c: $B31] {  # loop_4
+      $B30: {  # body
+        %251:i32 = load %i_1
+        %x_172:i32 = let %251
+        %253:bool = lt %x_172, 20i
+        if %253 [t: $B32, f: $B33] {  # if_11
+          $B32: {  # true
             exit_if  # if_11
           }
-          %b33 = block {  # false
+          $B33: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_175:i32 = load %i_1
+        %254:i32 = load %i_1
+        %x_175:i32 = let %254
         store %param_25, %x_175
-        %x_176:i32 = call %search_i1_, %param_25
+        %256:i32 = call %search_i1_, %param_25
+        %x_176:i32 = let %256
         store %result, %x_176
-        %x_177:i32 = load %i_1
-        switch %x_177 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, %b34), c: (default, %b35)] {  # switch_1
-          %b34 = block {  # case
-            %x_187:i32 = load %result
-            %x_188:i32 = load %i_1
-            %189:bool = eq %x_187, %x_188
-            if %189 [t: %b36] {  # if_12
-              %b36 = block {  # true
-                %x_192:i32 = load %count
-                %191:i32 = add %x_192, 1i
-                store %count, %191
+        %258:i32 = load %i_1
+        %x_177:i32 = let %258
+        switch %x_177 [c: (2i 5i 6i 7i 8i 9i 12i 13i 15i 17i, $B34), c: (default, $B35)] {  # switch_1
+          $B34: {  # case
+            %260:i32 = load %result
+            %x_187:i32 = let %260
+            %262:i32 = load %i_1
+            %x_188:i32 = let %262
+            %264:bool = eq %x_187, %x_188
+            if %264 [t: $B36] {  # if_12
+              $B36: {  # true
+                %265:i32 = load %count
+                %x_192:i32 = let %265
+                %267:i32 = add %x_192, 1i
+                store %count, %267
                 exit_if  # if_12
               }
             }
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_181:i32 = load %result
-            %193:bool = eq %x_181, -1i
-            if %193 [t: %b37] {  # if_13
-              %b37 = block {  # true
-                %x_185:i32 = load %count
-                %195:i32 = add %x_185, 1i
-                store %count, %195
+          $B35: {  # case
+            %268:i32 = load %result
+            %x_181:i32 = let %268
+            %270:bool = eq %x_181, -1i
+            if %270 [t: $B37] {  # if_13
+              $B37: {  # true
+                %271:i32 = load %count
+                %x_185:i32 = let %271
+                %273:i32 = add %x_185, 1i
+                store %count, %273
                 exit_if  # if_13
               }
             }
             exit_switch  # switch_1
           }
         }
-        continue %b31
+        continue  # -> $B31
       }
-      %b31 = block {  # continuing
-        %x_194:i32 = load %i_1
-        %197:i32 = add %x_194, 1i
-        store %i_1, %197
-        next_iteration %b30
+      $B31: {  # continuing
+        %274:i32 = load %i_1
+        %x_194:i32 = let %274
+        %276:i32 = add %x_194, 1i
+        store %i_1, %276
+        next_iteration  # -> $B30
       }
     }
-    %x_196:i32 = load %count
-    %199:bool = eq %x_196, 20i
-    if %199 [t: %b38, f: %b39] {  # if_14
-      %b38 = block {  # true
+    %277:i32 = load %count
+    %x_196:i32 = let %277
+    %279:bool = eq %x_196, 20i
+    if %279 [t: $B38, f: $B39] {  # if_14
+      $B38: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_14
       }
-      %b39 = block {  # false
+      $B39: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f)
         exit_if  # if_14
       }
@@ -438,12 +517,22 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b40 {
-  %b40 = block {
-    %201:void = call %main_1
-    %202:vec4<f32> = load %x_GLF_color
-    %203:main_out = construct %202
-    ret %203
+%tint_symbol = @fragment func():main_out {
+  $B40: {
+    %281:void = call %main_1
+    %282:vec4<f32> = load %x_GLF_color
+    %283:main_out = construct %282
+    ret %283
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B41: {
+    %285:i32 = convert %value
+    %286:bool = gte %value, -2147483648.0f
+    %287:i32 = select -2147483648i, %285, %286
+    %288:bool = lte %value, 2147483520.0f
+    %289:i32 = select 2147483647i, %287, %288
+    ret %289
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.msl
index 174cad0..c3c1389 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,100 +8,140 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%collatz_i1_ = func(%v:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%collatz_i1_ = func(%v:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %count:ptr<function, i32, read_write> = var
     store %count, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %7:i32 = load %v
         %8:bool = gt %7, 1i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %9:i32 = load %v
         %10:i32 = and %9, 1i
         %11:bool = eq %10, 1i
-        if %11 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
+        if %11 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %12:i32 = load %v
             %13:i32 = mul 3i, %12
             %14:i32 = add %13, 1i
             store %v, %14
             exit_if  # if_2
           }
-          %b8 = block {  # false
+          $B8: {  # false
             %15:i32 = load %v
-            %16:i32 = div %15, 2i
+            %16:i32 = call %tint_div_i32, %15, 2i
             store %v, %16
             exit_if  # if_2
           }
         }
-        %17:i32 = load %count
-        %18:i32 = add %17, 1i
-        store %count, %18
-        continue %b4
+        %18:i32 = load %count
+        %19:i32 = add %18, 1i
+        store %count, %19
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_105:i32 = load %count
+    %20:i32 = load %count
+    %x_105:i32 = let %20
     ret %x_105
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %v_1:ptr<function, i32, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
-    %25:vec4<f32> = load %gl_FragCoord
-    %26:vec2<f32> = swizzle %25, xy
-    %27:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-    %28:vec2<f32> = load %27
-    %29:vec2<f32> = div %26, %28
-    store %lin, %29
-    %30:vec2<f32> = load %lin
-    %31:vec2<f32> = mul %30, 8.0f
-    %32:vec2<f32> = floor %31
-    store %lin, %32
-    %33:f32 = load_vector_element %lin, 0u
-    %34:i32 = convert %33
-    %35:i32 = mul %34, 8i
-    %36:f32 = load_vector_element %lin, 1u
-    %37:i32 = convert %36
-    %38:i32 = add %35, %37
-    store %v_1, %38
-    %39:i32 = load %v_1
-    store %param, %39
-    %x_80:i32 = call %collatz_i1_, %param
+    %27:vec4<f32> = load %gl_FragCoord
+    %28:vec2<f32> = swizzle %27, xy
+    %29:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+    %30:vec2<f32> = load %29
+    %31:vec2<f32> = div %28, %30
+    store %lin, %31
+    %32:vec2<f32> = load %lin
+    %33:vec2<f32> = mul %32, 8.0f
+    %34:vec2<f32> = floor %33
+    store %lin, %34
+    %35:f32 = load_vector_element %lin, 0u
+    %36:i32 = call %tint_f32_to_i32, %35
+    %38:i32 = mul %36, 8i
+    %39:i32 = let %38
+    %40:f32 = load_vector_element %lin, 1u
+    %41:i32 = call %tint_f32_to_i32, %40
+    %42:i32 = add %39, %41
+    store %v_1, %42
+    %43:i32 = load %v_1
+    store %param, %43
+    %44:i32 = call %collatz_i1_, %param
+    %x_80:i32 = let %44
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %41:i32 = mod %x_80, 16i
-    %42:ptr<function, vec4<f32>, read_write> = access %indexable, %41
-    %43:vec4<f32> = load %42
-    store %x_GLF_color, %43
+    %46:i32 = call %tint_mod_i32, %x_80, 16i
+    %48:ptr<function, vec4<f32>, read_write> = access %indexable, %46
+    %49:vec4<f32> = load %48
+    store %x_GLF_color, %49
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %46:void = call %main_1
-    %47:vec4<f32> = load %x_GLF_color
-    %48:main_out = construct %47
-    ret %48
+    %52:void = call %main_1
+    %53:vec4<f32> = load %x_GLF_color
+    %54:main_out = construct %53
+    ret %54
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %57:bool = eq %rhs, 0i
+    %58:bool = eq %lhs, -2147483648i
+    %59:bool = eq %rhs, -1i
+    %60:bool = and %58, %59
+    %61:bool = or %57, %60
+    %62:i32 = select %rhs, 1i, %61
+    %63:i32 = div %lhs, %62
+    ret %63
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B12: {
+    %66:bool = eq %rhs_1, 0i
+    %67:bool = eq %lhs_1, -2147483648i
+    %68:bool = eq %rhs_1, -1i
+    %69:bool = and %67, %68
+    %70:bool = or %66, %69
+    %71:i32 = select %rhs_1, 1i, %70
+    %72:i32 = let %71
+    %73:i32 = div %lhs_1, %72
+    %74:i32 = mul %73, %72
+    %75:i32 = sub %lhs_1, %74
+    ret %75
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B13: {
+    %77:i32 = convert %value
+    %78:bool = gte %value, -2147483648.0f
+    %79:i32 = select -2147483648i, %77, %78
+    %80:bool = lte %value, 2147483520.0f
+    %81:i32 = select 2147483647i, %79, %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.msl
index e20a179..53042c0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-collatz-push-constant-with-nested-min-max/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,102 +8,154 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%collatz_i1_ = func(%v:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%collatz_i1_ = func(%v:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %count:ptr<function, i32, read_write> = var
     store %count, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_89:i32 = load %v
-        %8:bool = gt %x_89, 1i
-        if %8 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %v
+        %x_89:i32 = let %7
+        %9:bool = gt %x_89, 1i
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_92:i32 = load %v
-        %10:i32 = and %x_92, 1i
-        %11:bool = eq %10, 1i
-        if %11 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_98:i32 = load %v
-            %13:i32 = mul 3i, %x_98
-            %14:i32 = add %13, 1i
-            store %v, %14
+        %10:i32 = load %v
+        %x_92:i32 = let %10
+        %12:i32 = and %x_92, 1i
+        %13:bool = eq %12, 1i
+        if %13 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %14:i32 = load %v
+            %x_98:i32 = let %14
+            %16:i32 = mul 3i, %x_98
+            %17:i32 = add %16, 1i
+            store %v, %17
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_101:i32 = load %v
-            %16:i32 = div %x_101, 2i
-            store %v, %16
+          $B8: {  # false
+            %18:i32 = load %v
+            %x_101:i32 = let %18
+            %20:i32 = call %tint_div_i32, %x_101, 2i
+            store %v, %20
             exit_if  # if_2
           }
         }
-        %x_103:i32 = load %count
-        %18:i32 = add %x_103, 1i
-        store %count, %18
-        continue %b4
+        %22:i32 = load %count
+        %x_103:i32 = let %22
+        %24:i32 = add %x_103, 1i
+        store %count, %24
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    %x_105:i32 = load %count
+    %25:i32 = load %count
+    %x_105:i32 = let %25
     ret %x_105
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %v_1:ptr<function, i32, read_write> = var
     %param:ptr<function, i32, read_write> = var
     %indexable:ptr<function, array<vec4<f32>, 16>, read_write> = var
-    %x_63:vec4<f32> = load %gl_FragCoord
-    %26:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-    %x_66:vec2<f32> = load %26
-    %28:f32 = access %x_63, 0u
-    %29:f32 = access %x_63, 1u
-    %30:vec2<f32> = construct %28, %29
-    %31:vec2<f32> = div %30, %x_66
-    store %lin, %31
-    %x_68:vec2<f32> = load %lin
-    %33:vec2<f32> = mul %x_68, 8.0f
-    %34:vec2<f32> = floor %33
-    store %lin, %34
-    %x_72:f32 = load_vector_element %lin, 0u
-    %x_76:f32 = load_vector_element %lin, 1u
-    %37:i32 = convert %x_72
-    %38:i32 = mul %37, 8i
-    %39:i32 = convert %x_76
-    %40:i32 = add %38, %39
-    store %v_1, %40
-    %x_79:i32 = load %v_1
+    %32:vec4<f32> = load %gl_FragCoord
+    %x_63:vec4<f32> = let %32
+    %34:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+    %35:vec2<f32> = load %34
+    %x_66:vec2<f32> = let %35
+    %37:f32 = access %x_63, 0u
+    %38:f32 = access %x_63, 1u
+    %39:vec2<f32> = construct %37, %38
+    %40:vec2<f32> = div %39, %x_66
+    store %lin, %40
+    %41:vec2<f32> = load %lin
+    %x_68:vec2<f32> = let %41
+    %43:vec2<f32> = mul %x_68, 8.0f
+    %44:vec2<f32> = floor %43
+    store %lin, %44
+    %45:f32 = load_vector_element %lin, 0u
+    %x_72:f32 = let %45
+    %47:f32 = load_vector_element %lin, 1u
+    %x_76:f32 = let %47
+    %49:i32 = call %tint_f32_to_i32, %x_72
+    %51:i32 = mul %49, 8i
+    %52:i32 = let %51
+    %53:i32 = call %tint_f32_to_i32, %x_76
+    %54:i32 = add %52, %53
+    store %v_1, %54
+    %55:i32 = load %v_1
+    %x_79:i32 = let %55
     store %param, %x_79
-    %x_80:i32 = call %collatz_i1_, %param
+    %57:i32 = call %collatz_i1_, %param
+    %x_80:i32 = let %57
     store %indexable, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-    %43:i32 = mod %x_80, 16i
-    %44:ptr<function, vec4<f32>, read_write> = access %indexable, %43
-    %x_83:vec4<f32> = load %44
+    %59:i32 = call %tint_mod_i32, %x_80, 16i
+    %61:ptr<function, vec4<f32>, read_write> = access %indexable, %59
+    %62:vec4<f32> = load %61
+    %x_83:vec4<f32> = let %62
     store %x_GLF_color, %x_83
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %48:void = call %main_1
-    %49:vec4<f32> = load %x_GLF_color
-    %50:main_out = construct %49
-    ret %50
+    %66:void = call %main_1
+    %67:vec4<f32> = load %x_GLF_color
+    %68:main_out = construct %67
+    ret %68
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B11: {
+    %71:bool = eq %rhs, 0i
+    %72:bool = eq %lhs, -2147483648i
+    %73:bool = eq %rhs, -1i
+    %74:bool = and %72, %73
+    %75:bool = or %71, %74
+    %76:i32 = select %rhs, 1i, %75
+    %77:i32 = div %lhs, %76
+    ret %77
+  }
+}
+%tint_mod_i32 = func(%lhs_1:i32, %rhs_1:i32):i32 {  # %lhs_1: 'lhs', %rhs_1: 'rhs'
+  $B12: {
+    %80:bool = eq %rhs_1, 0i
+    %81:bool = eq %lhs_1, -2147483648i
+    %82:bool = eq %rhs_1, -1i
+    %83:bool = and %81, %82
+    %84:bool = or %80, %83
+    %85:i32 = select %rhs_1, 1i, %84
+    %86:i32 = let %85
+    %87:i32 = div %lhs_1, %86
+    %88:i32 = mul %87, %86
+    %89:i32 = sub %lhs_1, %88
+    ret %89
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B13: {
+    %91:i32 = convert %value
+    %92:bool = gte %value, -2147483648.0f
+    %93:i32 = select -2147483648i, %91, %92
+    %94:bool = lte %value, 2147483520.0f
+    %95:i32 = select 2147483647i, %93, %94
+    ret %95
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.msl
index 43dc852..16f1283 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,15 +12,16 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_54:ptr<function, f32, read_write> = var
     %x_58:ptr<function, f32, read_write> = var
@@ -35,125 +36,129 @@
     %x_139:ptr<function, f32, read_write> = var
     %x_146:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %19:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %20:f32 = load_vector_element %19, 0u
-    %21:f32 = mul %20, 0.125f
-    %x_52:f32 = round %21
-    %23:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_54, %23
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %20:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %21:f32 = load_vector_element %20, 0u
+    %22:f32 = mul %21, 0.125f
+    %23:f32 = round %22
+    %x_52:f32 = let %23
+    %25:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_54, %25
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_58, -0.5f
         store %x_61, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_71:ptr<function, f32, read_write> = var
             %x_79:ptr<function, f32, read_write> = var
             %x_62:ptr<function, i32, read_write> = var
             store %x_91, 0.0f
-            %27:f32 = load %x_58
-            store %x_92, %27
+            %29:f32 = load %x_58
+            store %x_92, %29
             store %x_93, false
-            %28:i32 = load %x_61
-            %29:bool = lt %28, 800i
-            if %29 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %30:i32 = load %x_61
+            %31:bool = lt %30, 800i
+            if %31 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_78:ptr<function, f32, read_write> = var
-            %31:i32 = load %x_61
-            %32:i32 = mod %31, 32i
-            %33:bool = eq %32, 0i
-            if %33 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %34:f32 = load %x_58
-                %35:f32 = add %34, 0.40000000596046447754f
-                store %x_71, %35
-                %36:f32 = load %x_71
-                store %x_59, %36
+            %33:i32 = load %x_61
+            %34:i32 = call %tint_mod_i32, %33, 32i
+            %36:bool = eq %34, 0i
+            if %36 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %37:f32 = load %x_58
+                %38:f32 = add %37, 0.40000000596046447754f
+                store %x_71, %38
+                %39:f32 = load %x_71
+                store %x_59, %39
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %37:f32 = load %x_58
-                store %x_79, %37
-                %38:i32 = load %x_61
-                %39:f32 = convert %38
-                %40:f32 = round %x_52
+              $B9: {  # false
+                %40:f32 = load %x_58
+                store %x_79, %40
                 %41:i32 = load %x_61
                 %42:f32 = convert %41
-                %43:f32 = round %x_52
-                %44:f32 = div %42, %43
-                %45:f32 = floor %44
-                %46:f32 = mul %40, %45
-                %47:f32 = sub %39, %46
-                %48:bool = lte %47, 0.00999999977648258209f
-                if %48 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %49:f32 = load %x_58
-                    %50:f32 = add %49, 100.0f
-                    store %x_78, %50
-                    %51:f32 = load %x_78
-                    store %x_79, %51
+                %43:f32 = let %42
+                %44:f32 = round %x_52
+                %45:f32 = let %44
+                %46:i32 = load %x_61
+                %47:f32 = convert %46
+                %48:f32 = let %47
+                %49:f32 = round %x_52
+                %50:f32 = div %48, %49
+                %51:f32 = floor %50
+                %52:f32 = mul %45, %51
+                %53:f32 = sub %43, %52
+                %54:bool = lte %53, 0.00999999977648258209f
+                if %54 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %55:f32 = load %x_58
+                    %56:f32 = add %55, 100.0f
+                    store %x_78, %56
+                    %57:f32 = load %x_78
+                    store %x_79, %57
                     exit_if  # if_3
                   }
                 }
-                %52:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %53:f32 = load_vector_element %52, 0u
-                %54:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %55:f32 = load_vector_element %54, 1u
-                %56:bool = gt %53, %55
-                if %56 [t: %b11] {  # if_4
-                  %b11 = block {  # true
-                    discard
+                %58:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %59:f32 = load_vector_element %58, 0u
+                %60:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %61:f32 = load_vector_element %60, 1u
+                %62:bool = gt %59, %61
+                if %62 [t: $B11] {  # if_4
+                  $B11: {  # true
+                    store %continue_execution, false
                     exit_if  # if_4
                   }
                 }
-                %57:f32 = load %x_79
-                store %x_59, %57
+                %63:f32 = load %x_79
+                store %x_59, %63
                 exit_if  # if_2
               }
             }
-            %58:i32 = load %x_61
-            %59:f32 = convert %58
-            %60:f32 = load %x_54
-            %61:bool = gte %59, %60
-            if %61 [t: %b12] {  # if_5
-              %b12 = block {  # true
-                %62:f32 = load %x_59
-                store %x_91, %62
-                %63:f32 = load %x_59
-                store %x_92, %63
+            %64:i32 = load %x_61
+            %65:f32 = convert %64
+            %66:f32 = load %x_54
+            %67:bool = gte %65, %66
+            if %67 [t: $B12] {  # if_5
+              $B12: {  # true
+                %68:f32 = load %x_59
+                store %x_91, %68
+                %69:f32 = load %x_59
+                store %x_92, %69
                 store %x_93, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %64:i32 = load %x_61
-            %65:i32 = add %64, 1i
-            store %x_62, %65
-            %66:f32 = load %x_59
-            store %x_58, %66
-            %67:i32 = load %x_62
-            store %x_61, %67
-            next_iteration %b4
+          $B5: {  # continuing
+            %70:i32 = load %x_61
+            %71:i32 = add %70, 1i
+            store %x_62, %71
+            %72:f32 = load %x_59
+            store %x_58, %72
+            %73:i32 = load %x_62
+            store %x_61, %73
+            next_iteration  # -> $B4
           }
         }
-        %68:f32 = load %x_91
-        store %x_95, %68
-        %69:bool = load %x_93
-        if %69 [t: %b13] {  # if_6
-          %b13 = block {  # true
+        %74:f32 = load %x_91
+        store %x_95, %74
+        %75:bool = load %x_93
+        if %75 [t: $B13] {  # if_6
+          $B13: {  # true
             exit_switch  # switch_1
           }
         }
-        %70:f32 = load %x_92
-        store %x_95, %70
+        %76:f32 = load %x_92
+        store %x_95, %76
         exit_switch  # switch_1
       }
     }
@@ -162,201 +167,227 @@
     %x_105:ptr<function, i32, read_write> = var
     %x_103:ptr<function, f32, read_write> = var
     %x_137:ptr<function, bool, read_write> = var
-    %76:f32 = load %x_95
-    store_vector_element %c, 0u, %76
-    %77:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_98, %77
-    switch 0u [c: (default, %b14)] {  # switch_2
-      %b14 = block {  # case
+    %82:f32 = load %x_95
+    store_vector_element %c, 0u, %82
+    %83:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_98, %83
+    switch 0u [c: (default, $B14)] {  # switch_2
+      $B14: {  # case
         store %x_102, -0.5f
         store %x_105, 1i
-        loop [b: %b15, c: %b16] {  # loop_2
-          %b15 = block {  # body
+        loop [b: $B15, c: $B16] {  # loop_2
+          $B15: {  # body
             %x_115:ptr<function, f32, read_write> = var
             %x_123:ptr<function, f32, read_write> = var
             %x_106:ptr<function, i32, read_write> = var
             store %x_135, 0.0f
-            %81:f32 = load %x_102
-            store %x_136, %81
+            %87:f32 = load %x_102
+            store %x_136, %87
             store %x_137, false
-            %82:i32 = load %x_105
-            %83:bool = lt %82, 800i
-            if %83 [t: %b17, f: %b18] {  # if_7
-              %b17 = block {  # true
+            %88:i32 = load %x_105
+            %89:bool = lt %88, 800i
+            if %89 [t: $B17, f: $B18] {  # if_7
+              $B17: {  # true
                 exit_if  # if_7
               }
-              %b18 = block {  # false
+              $B18: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_122:ptr<function, f32, read_write> = var
-            %85:i32 = load %x_105
-            %86:i32 = mod %85, 32i
-            %87:bool = eq %86, 0i
-            if %87 [t: %b19, f: %b20] {  # if_8
-              %b19 = block {  # true
-                %88:f32 = load %x_102
-                %89:f32 = add %88, 0.40000000596046447754f
-                store %x_115, %89
-                %90:f32 = load %x_115
-                store %x_103, %90
+            %91:i32 = load %x_105
+            %92:i32 = call %tint_mod_i32, %91, 32i
+            %93:bool = eq %92, 0i
+            if %93 [t: $B19, f: $B20] {  # if_8
+              $B19: {  # true
+                %94:f32 = load %x_102
+                %95:f32 = add %94, 0.40000000596046447754f
+                store %x_115, %95
+                %96:f32 = load %x_115
+                store %x_103, %96
                 exit_if  # if_8
               }
-              %b20 = block {  # false
-                %91:f32 = load %x_102
-                store %x_123, %91
-                %92:i32 = load %x_105
-                %93:f32 = convert %92
-                %94:f32 = round %x_52
-                %95:i32 = load %x_105
-                %96:f32 = convert %95
-                %97:f32 = round %x_52
-                %98:f32 = div %96, %97
-                %99:f32 = floor %98
-                %100:f32 = mul %94, %99
-                %101:f32 = sub %93, %100
-                %102:bool = lte %101, 0.00999999977648258209f
-                if %102 [t: %b21] {  # if_9
-                  %b21 = block {  # true
-                    %103:f32 = load %x_102
-                    %104:f32 = add %103, 100.0f
-                    store %x_122, %104
-                    %105:f32 = load %x_122
-                    store %x_123, %105
+              $B20: {  # false
+                %97:f32 = load %x_102
+                store %x_123, %97
+                %98:i32 = load %x_105
+                %99:f32 = convert %98
+                %100:f32 = let %99
+                %101:f32 = round %x_52
+                %102:f32 = let %101
+                %103:i32 = load %x_105
+                %104:f32 = convert %103
+                %105:f32 = let %104
+                %106:f32 = round %x_52
+                %107:f32 = div %105, %106
+                %108:f32 = floor %107
+                %109:f32 = mul %102, %108
+                %110:f32 = sub %100, %109
+                %111:bool = lte %110, 0.00999999977648258209f
+                if %111 [t: $B21] {  # if_9
+                  $B21: {  # true
+                    %112:f32 = load %x_102
+                    %113:f32 = add %112, 100.0f
+                    store %x_122, %113
+                    %114:f32 = load %x_122
+                    store %x_123, %114
                     exit_if  # if_9
                   }
                 }
-                %106:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %107:f32 = load_vector_element %106, 0u
-                %108:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %109:f32 = load_vector_element %108, 1u
-                %110:bool = gt %107, %109
-                if %110 [t: %b22] {  # if_10
-                  %b22 = block {  # true
-                    discard
+                %115:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %116:f32 = load_vector_element %115, 0u
+                %117:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %118:f32 = load_vector_element %117, 1u
+                %119:bool = gt %116, %118
+                if %119 [t: $B22] {  # if_10
+                  $B22: {  # true
+                    store %continue_execution, false
                     exit_if  # if_10
                   }
                 }
-                %111:f32 = load %x_123
-                store %x_103, %111
+                %120:f32 = load %x_123
+                store %x_103, %120
                 exit_if  # if_8
               }
             }
-            %112:i32 = load %x_105
-            %113:f32 = convert %112
-            %114:f32 = load %x_98
-            %115:bool = gte %113, %114
-            if %115 [t: %b23] {  # if_11
-              %b23 = block {  # true
-                %116:f32 = load %x_103
-                store %x_135, %116
-                %117:f32 = load %x_103
-                store %x_136, %117
+            %121:i32 = load %x_105
+            %122:f32 = convert %121
+            %123:f32 = load %x_98
+            %124:bool = gte %122, %123
+            if %124 [t: $B23] {  # if_11
+              $B23: {  # true
+                %125:f32 = load %x_103
+                store %x_135, %125
+                %126:f32 = load %x_103
+                store %x_136, %126
                 store %x_137, true
                 exit_loop  # loop_2
               }
             }
-            continue %b16
+            continue  # -> $B16
           }
-          %b16 = block {  # continuing
-            %118:i32 = load %x_105
-            %119:i32 = add %118, 1i
-            store %x_106, %119
-            %120:f32 = load %x_103
-            store %x_102, %120
-            %121:i32 = load %x_106
-            store %x_105, %121
-            next_iteration %b15
+          $B16: {  # continuing
+            %127:i32 = load %x_105
+            %128:i32 = add %127, 1i
+            store %x_106, %128
+            %129:f32 = load %x_103
+            store %x_102, %129
+            %130:i32 = load %x_106
+            store %x_105, %130
+            next_iteration  # -> $B15
           }
         }
-        %122:f32 = load %x_135
-        store %x_139, %122
-        %123:bool = load %x_137
-        if %123 [t: %b24] {  # if_12
-          %b24 = block {  # true
+        %131:f32 = load %x_135
+        store %x_139, %131
+        %132:bool = load %x_137
+        if %132 [t: $B24] {  # if_12
+          $B24: {  # true
             exit_switch  # switch_2
           }
         }
-        %124:f32 = load %x_136
-        store %x_139, %124
+        %133:f32 = load %x_136
+        store %x_139, %133
         exit_switch  # switch_2
       }
     }
-    %125:f32 = load %x_139
-    store_vector_element %c, 1u, %125
-    %126:f32 = load_vector_element %c, 0u
-    %127:f32 = load_vector_element %c, 1u
-    %128:f32 = add %126, %127
-    store_vector_element %c, 2u, %128
+    %134:f32 = load %x_139
+    store_vector_element %c, 1u, %134
+    %135:f32 = load_vector_element %c, 0u
+    %136:f32 = load_vector_element %c, 1u
+    %137:f32 = add %135, %136
+    store_vector_element %c, 2u, %137
     store %x_146, 0i
-    loop [b: %b25, c: %b26] {  # loop_3
-      %b25 = block {  # body
+    loop [b: $B25, c: $B26] {  # loop_3
+      $B25: {  # body
         %x_147:ptr<function, i32, read_write> = var
-        %130:i32 = load %x_146
-        %131:bool = lt %130, 3i
-        if %131 [t: %b27, f: %b28] {  # if_13
-          %b27 = block {  # true
+        %139:i32 = load %x_146
+        %140:bool = lt %139, 3i
+        if %140 [t: $B27, f: $B28] {  # if_13
+          $B27: {  # true
             exit_if  # if_13
           }
-          %b28 = block {  # false
+          $B28: {  # false
             exit_loop  # loop_3
           }
         }
-        %132:i32 = load %x_146
-        %133:f32 = load_vector_element %c, %132
-        %134:bool = gte %133, 1.0f
-        if %134 [t: %b29] {  # if_14
-          %b29 = block {  # true
-            %135:i32 = load %x_146
-            %136:i32 = load %x_146
-            %137:f32 = load_vector_element %c, %136
-            %138:i32 = load %x_146
-            %139:f32 = load_vector_element %c, %138
-            %140:f32 = mul %137, %139
-            store_vector_element %c, %135, %140
-            %141:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %142:f32 = load_vector_element %141, 0u
-            %143:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %144:f32 = load_vector_element %143, 1u
-            %145:bool = gt %142, %144
-            if %145 [t: %b30] {  # if_15
-              %b30 = block {  # true
-                discard
+        %141:i32 = load %x_146
+        %142:f32 = load_vector_element %c, %141
+        %143:bool = gte %142, 1.0f
+        if %143 [t: $B29] {  # if_14
+          $B29: {  # true
+            %144:i32 = load %x_146
+            %145:i32 = load %x_146
+            %146:f32 = load_vector_element %c, %145
+            %147:i32 = load %x_146
+            %148:f32 = load_vector_element %c, %147
+            %149:f32 = mul %146, %148
+            store_vector_element %c, %144, %149
+            %150:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %151:f32 = load_vector_element %150, 0u
+            %152:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %153:f32 = load_vector_element %152, 1u
+            %154:bool = gt %151, %153
+            if %154 [t: $B30] {  # if_15
+              $B30: {  # true
+                store %continue_execution, false
                 exit_if  # if_15
               }
             }
             exit_if  # if_14
           }
         }
-        continue %b26
+        continue  # -> $B26
       }
-      %b26 = block {  # continuing
-        %146:i32 = load %x_146
-        %147:i32 = add %146, 1i
-        store %x_147, %147
-        %148:i32 = load %x_147
-        store %x_146, %148
-        next_iteration %b25
+      $B26: {  # continuing
+        %155:i32 = load %x_146
+        %156:i32 = add %155, 1i
+        store %x_147, %156
+        %157:i32 = load %x_147
+        store %x_146, %157
+        next_iteration  # -> $B25
       }
     }
-    %149:vec3<f32> = load %c
-    %150:vec3<f32> = abs %149
-    %x_169:vec3<f32> = normalize %150
-    %152:f32 = access %x_169, 0u
-    %153:f32 = access %x_169, 1u
-    %154:f32 = access %x_169, 2u
-    %155:vec4<f32> = construct %152, %153, %154, 1.0f
-    store %x_GLF_color, %155
+    %158:vec3<f32> = load %c
+    %159:vec3<f32> = abs %158
+    %160:vec3<f32> = normalize %159
+    %x_169:vec3<f32> = let %160
+    %162:f32 = access %x_169, 0u
+    %163:f32 = access %x_169, 1u
+    %164:f32 = access %x_169, 2u
+    %165:vec4<f32> = construct %162, %163, %164, 1.0f
+    store %x_GLF_color, %165
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b31 {
-  %b31 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B31: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %158:void = call %main_1
-    %159:vec4<f32> = load %x_GLF_color
-    %160:main_out = construct %159
-    ret %160
+    %168:void = call %main_1
+    %169:vec4<f32> = load %x_GLF_color
+    %170:main_out = construct %169
+    %171:bool = load %continue_execution
+    %172:bool = eq %171, false
+    if %172 [t: $B32] {  # if_16
+      $B32: {  # true
+        terminate_invocation
+      }
+    }
+    ret %170
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B33: {
+    %175:bool = eq %rhs, 0i
+    %176:bool = eq %lhs, -2147483648i
+    %177:bool = eq %rhs, -1i
+    %178:bool = and %176, %177
+    %179:bool = or %175, %178
+    %180:i32 = select %rhs, 1i, %179
+    %181:i32 = let %180
+    %182:i32 = div %lhs, %181
+    %183:i32 = mul %182, %181
+    %184:i32 = sub %lhs, %183
+    ret %184
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.msl
index c81aa1c..ddd5f32 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-double-always-false-discard/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,15 +12,16 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %x_54:ptr<function, f32, read_write> = var
     %x_58:ptr<function, f32, read_write> = var
@@ -38,132 +39,141 @@
     %x_139_phi:ptr<function, f32, read_write> = var
     %x_146_phi:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %22:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
-    %x_50:f32 = load_vector_element %22, 0u
-    %24:f32 = mul %x_50, 0.125f
-    %x_52:f32 = round %24
-    %26:f32 = load_vector_element %gl_FragCoord, 0u
-    store %x_54, %26
-    switch 0u [c: (default, %b3)] {  # switch_1
-      %b3 = block {  # case
+    %23:ptr<uniform, vec2<f32>, read> = access %x_9, 0u
+    %24:f32 = load_vector_element %23, 0u
+    %x_50:f32 = let %24
+    %26:f32 = mul %x_50, 0.125f
+    %27:f32 = round %26
+    %x_52:f32 = let %27
+    %29:f32 = load_vector_element %gl_FragCoord, 0u
+    store %x_54, %29
+    switch 0u [c: (default, $B3)] {  # switch_1
+      $B3: {  # case
         store %x_58_phi, -0.5f
         store %x_61_phi, 1i
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
             %x_71:ptr<function, f32, read_write> = var
             %x_79:ptr<function, f32, read_write> = var
             %x_62:ptr<function, i32, read_write> = var
             %x_59_phi:ptr<function, f32, read_write> = var
-            %31:f32 = load %x_58_phi
-            store %x_58, %31
-            %x_61:i32 = load %x_61_phi
+            %34:f32 = load %x_58_phi
+            store %x_58, %34
+            %35:i32 = load %x_61_phi
+            %x_61:i32 = let %35
             store %x_91_phi, 0.0f
-            %33:f32 = load %x_58
-            store %x_92_phi, %33
+            %37:f32 = load %x_58
+            store %x_92_phi, %37
             store %x_93_phi, false
-            %34:bool = lt %x_61, 800i
-            if %34 [t: %b6, f: %b7] {  # if_1
-              %b6 = block {  # true
+            %38:bool = lt %x_61, 800i
+            if %38 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
             %x_78:ptr<function, f32, read_write> = var
             %x_79_phi:ptr<function, f32, read_write> = var
-            %37:i32 = mod %x_61, 32i
-            %38:bool = eq %37, 0i
-            if %38 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
-                %39:f32 = load %x_58
-                %40:f32 = add %39, 0.40000000596046447754f
-                store %x_71, %40
-                %41:f32 = load %x_71
-                store %x_59_phi, %41
+            %41:i32 = call %tint_mod_i32, %x_61, 32i
+            %43:bool = eq %41, 0i
+            if %43 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
+                %44:f32 = load %x_58
+                %45:f32 = add %44, 0.40000000596046447754f
+                store %x_71, %45
+                %46:f32 = load %x_71
+                store %x_59_phi, %46
                 exit_if  # if_2
               }
-              %b9 = block {  # false
-                %42:f32 = load %x_58
-                store %x_79_phi, %42
-                %43:f32 = convert %x_61
-                %44:f32 = round %x_52
-                %45:f32 = convert %x_61
-                %46:f32 = round %x_52
-                %47:f32 = div %45, %46
-                %48:f32 = floor %47
-                %49:f32 = mul %44, %48
-                %50:f32 = sub %43, %49
-                %51:bool = lte %50, 0.00999999977648258209f
-                if %51 [t: %b10] {  # if_3
-                  %b10 = block {  # true
-                    %52:f32 = load %x_58
-                    %53:f32 = add %52, 100.0f
-                    store %x_78, %53
-                    %54:f32 = load %x_78
-                    store %x_79_phi, %54
+              $B9: {  # false
+                %47:f32 = load %x_58
+                store %x_79_phi, %47
+                %48:f32 = convert %x_61
+                %49:f32 = let %48
+                %50:f32 = round %x_52
+                %51:f32 = let %50
+                %52:f32 = convert %x_61
+                %53:f32 = let %52
+                %54:f32 = round %x_52
+                %55:f32 = div %53, %54
+                %56:f32 = floor %55
+                %57:f32 = mul %51, %56
+                %58:f32 = sub %49, %57
+                %59:bool = lte %58, 0.00999999977648258209f
+                if %59 [t: $B10] {  # if_3
+                  $B10: {  # true
+                    %60:f32 = load %x_58
+                    %61:f32 = add %60, 100.0f
+                    store %x_78, %61
+                    %62:f32 = load %x_78
+                    store %x_79_phi, %62
                     exit_if  # if_3
                   }
                 }
-                %55:f32 = load %x_79_phi
-                store %x_79, %55
-                %56:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_81:f32 = load_vector_element %56, 0u
-                %58:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_83:f32 = load_vector_element %58, 1u
-                %60:bool = gt %x_81, %x_83
-                if %60 [t: %b11] {  # if_4
-                  %b11 = block {  # true
-                    discard
+                %63:f32 = load %x_79_phi
+                store %x_79, %63
+                %64:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %65:f32 = load_vector_element %64, 0u
+                %x_81:f32 = let %65
+                %67:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %68:f32 = load_vector_element %67, 1u
+                %x_83:f32 = let %68
+                %70:bool = gt %x_81, %x_83
+                if %70 [t: $B11] {  # if_4
+                  $B11: {  # true
+                    store %continue_execution, false
                     exit_if  # if_4
                   }
                 }
-                %61:f32 = load %x_79
-                store %x_59_phi, %61
+                %71:f32 = load %x_79
+                store %x_59_phi, %71
                 exit_if  # if_2
               }
             }
-            %62:f32 = load %x_59_phi
-            store %x_59, %62
-            %63:f32 = convert %x_61
-            %64:f32 = load %x_54
-            %65:bool = gte %63, %64
-            if %65 [t: %b12] {  # if_5
-              %b12 = block {  # true
-                %66:f32 = load %x_59
-                store %x_91_phi, %66
-                %67:f32 = load %x_59
-                store %x_92_phi, %67
+            %72:f32 = load %x_59_phi
+            store %x_59, %72
+            %73:f32 = convert %x_61
+            %74:f32 = load %x_54
+            %75:bool = gte %73, %74
+            if %75 [t: $B12] {  # if_5
+              $B12: {  # true
+                %76:f32 = load %x_59
+                store %x_91_phi, %76
+                %77:f32 = load %x_59
+                store %x_92_phi, %77
                 store %x_93_phi, true
                 exit_loop  # loop_1
               }
             }
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            %68:i32 = add %x_61, 1i
-            store %x_62, %68
-            %69:f32 = load %x_59
-            store %x_58_phi, %69
-            %70:i32 = load %x_62
-            store %x_61_phi, %70
-            next_iteration %b4
+          $B5: {  # continuing
+            %78:i32 = add %x_61, 1i
+            store %x_62, %78
+            %79:f32 = load %x_59
+            store %x_58_phi, %79
+            %80:i32 = load %x_62
+            store %x_61_phi, %80
+            next_iteration  # -> $B4
           }
         }
-        %71:f32 = load %x_91_phi
-        store %x_91, %71
-        %72:f32 = load %x_92_phi
-        store %x_92, %72
-        %x_93:bool = load %x_93_phi
-        %74:f32 = load %x_91
-        store %x_95_phi, %74
-        if %x_93 [t: %b13] {  # if_6
-          %b13 = block {  # true
+        %81:f32 = load %x_91_phi
+        store %x_91, %81
+        %82:f32 = load %x_92_phi
+        store %x_92, %82
+        %83:bool = load %x_93_phi
+        %x_93:bool = let %83
+        %85:f32 = load %x_91
+        store %x_95_phi, %85
+        if %x_93 [t: $B13] {  # if_6
+          $B13: {  # true
             exit_switch  # switch_1
           }
         }
-        %75:f32 = load %x_92
-        store %x_95_phi, %75
+        %86:f32 = load %x_92
+        store %x_95_phi, %86
         exit_switch  # switch_1
       }
     }
@@ -175,203 +185,244 @@
     %x_135_phi:ptr<function, f32, read_write> = var
     %x_136_phi:ptr<function, f32, read_write> = var
     %x_137_phi:ptr<function, bool, read_write> = var
-    %x_95:f32 = load %x_95_phi
+    %95:f32 = load %x_95_phi
+    %x_95:f32 = let %95
     store_vector_element %c, 0u, %x_95
-    %85:f32 = load_vector_element %gl_FragCoord, 1u
-    store %x_98, %85
-    switch 0u [c: (default, %b14)] {  # switch_2
-      %b14 = block {  # case
+    %97:f32 = load_vector_element %gl_FragCoord, 1u
+    store %x_98, %97
+    switch 0u [c: (default, $B14)] {  # switch_2
+      $B14: {  # case
         store %x_102_phi, -0.5f
         store %x_105_phi, 1i
-        loop [b: %b15, c: %b16] {  # loop_2
-          %b15 = block {  # body
+        loop [b: $B15, c: $B16] {  # loop_2
+          $B15: {  # body
             %x_115:ptr<function, f32, read_write> = var
             %x_123:ptr<function, f32, read_write> = var
             %x_106:ptr<function, i32, read_write> = var
             %x_103_phi:ptr<function, f32, read_write> = var
-            %90:f32 = load %x_102_phi
-            store %x_102, %90
-            %x_105:i32 = load %x_105_phi
+            %102:f32 = load %x_102_phi
+            store %x_102, %102
+            %103:i32 = load %x_105_phi
+            %x_105:i32 = let %103
             store %x_135_phi, 0.0f
-            %92:f32 = load %x_102
-            store %x_136_phi, %92
+            %105:f32 = load %x_102
+            store %x_136_phi, %105
             store %x_137_phi, false
-            %93:bool = lt %x_105, 800i
-            if %93 [t: %b17, f: %b18] {  # if_7
-              %b17 = block {  # true
+            %106:bool = lt %x_105, 800i
+            if %106 [t: $B17, f: $B18] {  # if_7
+              $B17: {  # true
                 exit_if  # if_7
               }
-              %b18 = block {  # false
+              $B18: {  # false
                 exit_loop  # loop_2
               }
             }
             %x_122:ptr<function, f32, read_write> = var
             %x_123_phi:ptr<function, f32, read_write> = var
-            %96:i32 = mod %x_105, 32i
-            %97:bool = eq %96, 0i
-            if %97 [t: %b19, f: %b20] {  # if_8
-              %b19 = block {  # true
-                %98:f32 = load %x_102
-                %99:f32 = add %98, 0.40000000596046447754f
-                store %x_115, %99
-                %100:f32 = load %x_115
-                store %x_103_phi, %100
+            %109:i32 = call %tint_mod_i32, %x_105, 32i
+            %110:bool = eq %109, 0i
+            if %110 [t: $B19, f: $B20] {  # if_8
+              $B19: {  # true
+                %111:f32 = load %x_102
+                %112:f32 = add %111, 0.40000000596046447754f
+                store %x_115, %112
+                %113:f32 = load %x_115
+                store %x_103_phi, %113
                 exit_if  # if_8
               }
-              %b20 = block {  # false
-                %101:f32 = load %x_102
-                store %x_123_phi, %101
-                %102:f32 = convert %x_105
-                %103:f32 = round %x_52
-                %104:f32 = convert %x_105
-                %105:f32 = round %x_52
-                %106:f32 = div %104, %105
-                %107:f32 = floor %106
-                %108:f32 = mul %103, %107
-                %109:f32 = sub %102, %108
-                %110:bool = lte %109, 0.00999999977648258209f
-                if %110 [t: %b21] {  # if_9
-                  %b21 = block {  # true
-                    %111:f32 = load %x_102
-                    %112:f32 = add %111, 100.0f
-                    store %x_122, %112
-                    %113:f32 = load %x_122
-                    store %x_123_phi, %113
+              $B20: {  # false
+                %114:f32 = load %x_102
+                store %x_123_phi, %114
+                %115:f32 = convert %x_105
+                %116:f32 = let %115
+                %117:f32 = round %x_52
+                %118:f32 = let %117
+                %119:f32 = convert %x_105
+                %120:f32 = let %119
+                %121:f32 = round %x_52
+                %122:f32 = div %120, %121
+                %123:f32 = floor %122
+                %124:f32 = mul %118, %123
+                %125:f32 = sub %116, %124
+                %126:bool = lte %125, 0.00999999977648258209f
+                if %126 [t: $B21] {  # if_9
+                  $B21: {  # true
+                    %127:f32 = load %x_102
+                    %128:f32 = add %127, 100.0f
+                    store %x_122, %128
+                    %129:f32 = load %x_122
+                    store %x_123_phi, %129
                     exit_if  # if_9
                   }
                 }
-                %114:f32 = load %x_123_phi
-                store %x_123, %114
-                %115:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_125:f32 = load_vector_element %115, 0u
-                %117:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-                %x_127:f32 = load_vector_element %117, 1u
-                %119:bool = gt %x_125, %x_127
-                if %119 [t: %b22] {  # if_10
-                  %b22 = block {  # true
-                    discard
+                %130:f32 = load %x_123_phi
+                store %x_123, %130
+                %131:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %132:f32 = load_vector_element %131, 0u
+                %x_125:f32 = let %132
+                %134:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+                %135:f32 = load_vector_element %134, 1u
+                %x_127:f32 = let %135
+                %137:bool = gt %x_125, %x_127
+                if %137 [t: $B22] {  # if_10
+                  $B22: {  # true
+                    store %continue_execution, false
                     exit_if  # if_10
                   }
                 }
-                %120:f32 = load %x_123
-                store %x_103_phi, %120
+                %138:f32 = load %x_123
+                store %x_103_phi, %138
                 exit_if  # if_8
               }
             }
-            %121:f32 = load %x_103_phi
-            store %x_103, %121
-            %122:f32 = convert %x_105
-            %123:f32 = load %x_98
-            %124:bool = gte %122, %123
-            if %124 [t: %b23] {  # if_11
-              %b23 = block {  # true
-                %125:f32 = load %x_103
-                store %x_135_phi, %125
-                %126:f32 = load %x_103
-                store %x_136_phi, %126
+            %139:f32 = load %x_103_phi
+            store %x_103, %139
+            %140:f32 = convert %x_105
+            %141:f32 = load %x_98
+            %142:bool = gte %140, %141
+            if %142 [t: $B23] {  # if_11
+              $B23: {  # true
+                %143:f32 = load %x_103
+                store %x_135_phi, %143
+                %144:f32 = load %x_103
+                store %x_136_phi, %144
                 store %x_137_phi, true
                 exit_loop  # loop_2
               }
             }
-            continue %b16
+            continue  # -> $B16
           }
-          %b16 = block {  # continuing
-            %127:i32 = add %x_105, 1i
-            store %x_106, %127
-            %128:f32 = load %x_103
-            store %x_102_phi, %128
-            %129:i32 = load %x_106
-            store %x_105_phi, %129
-            next_iteration %b15
+          $B16: {  # continuing
+            %145:i32 = add %x_105, 1i
+            store %x_106, %145
+            %146:f32 = load %x_103
+            store %x_102_phi, %146
+            %147:i32 = load %x_106
+            store %x_105_phi, %147
+            next_iteration  # -> $B15
           }
         }
-        %130:f32 = load %x_135_phi
-        store %x_135, %130
-        %131:f32 = load %x_136_phi
-        store %x_136, %131
-        %x_137:bool = load %x_137_phi
-        %133:f32 = load %x_135
-        store %x_139_phi, %133
-        if %x_137 [t: %b24] {  # if_12
-          %b24 = block {  # true
+        %148:f32 = load %x_135_phi
+        store %x_135, %148
+        %149:f32 = load %x_136_phi
+        store %x_136, %149
+        %150:bool = load %x_137_phi
+        %x_137:bool = let %150
+        %152:f32 = load %x_135
+        store %x_139_phi, %152
+        if %x_137 [t: $B24] {  # if_12
+          $B24: {  # true
             exit_switch  # switch_2
           }
         }
-        %134:f32 = load %x_136
-        store %x_139_phi, %134
+        %153:f32 = load %x_136
+        store %x_139_phi, %153
         exit_switch  # switch_2
       }
     }
-    %x_139:f32 = load %x_139_phi
+    %154:f32 = load %x_139_phi
+    %x_139:f32 = let %154
     store_vector_element %c, 1u, %x_139
-    %x_141:f32 = load_vector_element %c, 0u
-    %x_142:f32 = load_vector_element %c, 1u
-    %138:f32 = add %x_141, %x_142
-    store_vector_element %c, 2u, %138
+    %156:f32 = load_vector_element %c, 0u
+    %x_141:f32 = let %156
+    %158:f32 = load_vector_element %c, 1u
+    %x_142:f32 = let %158
+    %160:f32 = add %x_141, %x_142
+    store_vector_element %c, 2u, %160
     store %x_146_phi, 0i
-    loop [b: %b25, c: %b26] {  # loop_3
-      %b25 = block {  # body
+    loop [b: $B25, c: $B26] {  # loop_3
+      $B25: {  # body
         %x_147:ptr<function, i32, read_write> = var
-        %x_146:i32 = load %x_146_phi
-        %141:bool = lt %x_146, 3i
-        if %141 [t: %b27, f: %b28] {  # if_13
-          %b27 = block {  # true
+        %162:i32 = load %x_146_phi
+        %x_146:i32 = let %162
+        %164:bool = lt %x_146, 3i
+        if %164 [t: $B27, f: $B28] {  # if_13
+          $B27: {  # true
             exit_if  # if_13
           }
-          %b28 = block {  # false
+          $B28: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_153:f32 = load_vector_element %c, %x_146
-        %143:bool = gte %x_153, 1.0f
-        if %143 [t: %b29] {  # if_14
-          %b29 = block {  # true
-            %x_157:f32 = load_vector_element %c, %x_146
-            %x_158:f32 = load_vector_element %c, %x_146
-            %146:f32 = mul %x_157, %x_158
-            store_vector_element %c, %x_146, %146
-            %147:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_161:f32 = load_vector_element %147, 0u
-            %149:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-            %x_163:f32 = load_vector_element %149, 1u
-            %151:bool = gt %x_161, %x_163
-            if %151 [t: %b30] {  # if_15
-              %b30 = block {  # true
-                discard
+        %165:f32 = load_vector_element %c, %x_146
+        %x_153:f32 = let %165
+        %167:bool = gte %x_153, 1.0f
+        if %167 [t: $B29] {  # if_14
+          $B29: {  # true
+            %168:f32 = load_vector_element %c, %x_146
+            %x_157:f32 = let %168
+            %170:f32 = load_vector_element %c, %x_146
+            %x_158:f32 = let %170
+            %172:f32 = mul %x_157, %x_158
+            store_vector_element %c, %x_146, %172
+            %173:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %174:f32 = load_vector_element %173, 0u
+            %x_161:f32 = let %174
+            %176:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+            %177:f32 = load_vector_element %176, 1u
+            %x_163:f32 = let %177
+            %179:bool = gt %x_161, %x_163
+            if %179 [t: $B30] {  # if_15
+              $B30: {  # true
+                store %continue_execution, false
                 exit_if  # if_15
               }
             }
             exit_if  # if_14
           }
         }
-        continue %b26
+        continue  # -> $B26
       }
-      %b26 = block {  # continuing
-        %152:i32 = add %x_146, 1i
-        store %x_147, %152
-        %153:i32 = load %x_147
-        store %x_146_phi, %153
-        next_iteration %b25
+      $B26: {  # continuing
+        %180:i32 = add %x_146, 1i
+        store %x_147, %180
+        %181:i32 = load %x_147
+        store %x_146_phi, %181
+        next_iteration  # -> $B25
       }
     }
-    %x_167:vec3<f32> = load %c
-    %155:vec3<f32> = abs %x_167
-    %x_169:vec3<f32> = normalize %155
-    %157:f32 = access %x_169, 0u
-    %158:f32 = access %x_169, 1u
-    %159:f32 = access %x_169, 2u
-    %160:vec4<f32> = construct %157, %158, %159, 1.0f
-    store %x_GLF_color, %160
+    %182:vec3<f32> = load %c
+    %x_167:vec3<f32> = let %182
+    %184:vec3<f32> = abs %x_167
+    %185:vec3<f32> = normalize %184
+    %x_169:vec3<f32> = let %185
+    %187:f32 = access %x_169, 0u
+    %188:f32 = access %x_169, 1u
+    %189:f32 = access %x_169, 2u
+    %190:vec4<f32> = construct %187, %188, %189, 1.0f
+    store %x_GLF_color, %190
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b31 {
-  %b31 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B31: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %163:void = call %main_1
-    %164:vec4<f32> = load %x_GLF_color
-    %165:main_out = construct %164
-    ret %165
+    %193:void = call %main_1
+    %194:vec4<f32> = load %x_GLF_color
+    %195:main_out = construct %194
+    %196:bool = load %continue_execution
+    %197:bool = eq %196, false
+    if %197 [t: $B32] {  # if_16
+      $B32: {  # true
+        terminate_invocation
+      }
+    }
+    ret %195
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B33: {
+    %200:bool = eq %rhs, 0i
+    %201:bool = eq %lhs, -2147483648i
+    %202:bool = eq %rhs, -1i
+    %203:bool = and %201, %202
+    %204:bool = or %200, %203
+    %205:i32 = select %rhs, 1i, %204
+    %206:i32 = let %205
+    %207:i32 = div %lhs, %206
+    %208:i32 = mul %207, %206
+    %209:i32 = sub %lhs, %208
+    ret %209
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.msl
index de71938..812caff 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,89 +8,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %9:i32 = load %i
         %10:bool = lt %9, 800i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %11:i32 = load %i
-        %12:i32 = mod %11, 32i
-        %13:bool = eq %12, 0i
-        if %13 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %14:f32 = load %result
-            %15:f32 = add %14, 0.40000000596046447754f
-            store %result, %15
+        %12:i32 = call %tint_mod_i32, %11, 32i
+        %14:bool = eq %12, 0i
+        if %14 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %15:f32 = load %result
+            %16:f32 = add %15, 0.40000000596046447754f
+            store %result, %16
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_124:f32 = load %thirty_two
-            %17:i32 = load %i
-            %18:f32 = convert %17
-            %19:f32 = round %x_124
-            %20:i32 = load %i
-            %21:f32 = convert %20
+          $B8: {  # false
+            %17:f32 = load %thirty_two
+            %x_124:f32 = let %17
+            %19:i32 = load %i
+            %20:f32 = convert %19
+            %21:f32 = let %20
             %22:f32 = round %x_124
-            %23:f32 = div %21, %22
-            %24:f32 = floor %23
-            %25:f32 = mul %19, %24
-            %26:f32 = sub %18, %25
-            %27:bool = lte %26, 0.00999999977648258209f
-            if %27 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %28:f32 = load %result
-                %29:f32 = add %28, 100.0f
-                store %result, %29
+            %23:f32 = let %22
+            %24:i32 = load %i
+            %25:f32 = convert %24
+            %26:f32 = let %25
+            %27:f32 = round %x_124
+            %28:f32 = div %26, %27
+            %29:f32 = floor %28
+            %30:f32 = mul %23, %29
+            %31:f32 = sub %21, %30
+            %32:bool = lte %31, 0.00999999977648258209f
+            if %32 [t: $B9] {  # if_3
+              $B9: {  # true
+                %33:f32 = load %result
+                %34:f32 = add %33, 100.0f
+                store %result, %34
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %30:i32 = load %i
-        %31:f32 = convert %30
-        %32:f32 = load %limit
-        %33:bool = gte %31, %32
-        if %33 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_138:f32 = load %result
+        %35:i32 = load %i
+        %36:f32 = convert %35
+        %37:f32 = load %limit
+        %38:bool = gte %36, %37
+        if %38 [t: $B10] {  # if_4
+          $B10: {  # true
+            %39:f32 = load %result
+            %x_138:f32 = let %39
             ret %x_138
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %35:i32 = load %i
-        %36:i32 = add %35, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %i
+        %42:i32 = add %41, 1i
+        store %i, %42
+        next_iteration  # -> $B3
       }
     }
-    %x_141:f32 = load %result
+    %43:f32 = load %result
+    %x_141:f32 = let %43
     ret %x_141
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -99,82 +105,101 @@
     %param_3:ptr<function, f32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %46:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %47:f32 = load_vector_element %46, 0u
-    %48:f32 = div %47, 8.0f
-    %49:f32 = round %48
-    store %thirty_two_1, %49
-    %50:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %50
-    %51:f32 = load %thirty_two_1
-    store %param_1, %51
-    %x_62:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %53:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %54:f32 = load_vector_element %53, 0u
+    %55:f32 = div %54, 8.0f
+    %56:f32 = round %55
+    store %thirty_two_1, %56
+    %57:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %57
+    %58:f32 = load %thirty_two_1
+    store %param_1, %58
+    %59:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_62:f32 = let %59
     store_vector_element %c, 0u, %x_62
-    %53:f32 = load_vector_element %gl_FragCoord, 1u
-    store %param_2, %53
-    %54:f32 = load %thirty_two_1
-    store %param_3, %54
-    %x_67:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %61:f32 = load_vector_element %gl_FragCoord, 1u
+    store %param_2, %61
+    %62:f32 = load %thirty_two_1
+    store %param_3, %62
+    %63:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_67:f32 = let %63
     store_vector_element %c, 1u, %x_67
-    %56:f32 = load_vector_element %c, 0u
-    %57:f32 = load_vector_element %c, 1u
-    %58:f32 = add %56, %57
-    store_vector_element %c, 2u, %58
+    %65:f32 = load_vector_element %c, 0u
+    %66:f32 = load_vector_element %c, 1u
+    %67:f32 = add %65, %66
+    store_vector_element %c, 2u, %67
     store %i_1, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
-        %59:i32 = load %i_1
-        %60:bool = lt %59, 3i
-        if %60 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
+        %68:i32 = load %i_1
+        %69:bool = lt %68, 3i
+        if %69 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %61:i32 = load %i_1
-        %62:f32 = load_vector_element %c, %61
-        %63:bool = gte %62, 1.0f
-        if %63 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_88:i32 = load %i_1
-            %65:i32 = load %i_1
-            %66:f32 = load_vector_element %c, %65
-            %67:i32 = load %i_1
-            %68:f32 = load_vector_element %c, %67
-            %69:f32 = mul %66, %68
-            store_vector_element %c, %x_88, %69
+        %70:i32 = load %i_1
+        %71:f32 = load_vector_element %c, %70
+        %72:bool = gte %71, 1.0f
+        if %72 [t: $B16] {  # if_6
+          $B16: {  # true
+            %73:i32 = load %i_1
+            %x_88:i32 = let %73
+            %75:i32 = load %i_1
+            %76:f32 = load_vector_element %c, %75
+            %77:i32 = load %i_1
+            %78:f32 = load_vector_element %c, %77
+            %79:f32 = mul %76, %78
+            store_vector_element %c, %x_88, %79
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %70:i32 = load %i_1
-        %71:i32 = add %70, 1i
-        store %i_1, %71
-        next_iteration %b12
+      $B13: {  # continuing
+        %80:i32 = load %i_1
+        %81:i32 = add %80, 1i
+        store %i_1, %81
+        next_iteration  # -> $B12
       }
     }
-    %72:vec3<f32> = load %c
-    %73:vec3<f32> = abs %72
-    %x_101:vec3<f32> = normalize %73
-    %75:f32 = access %x_101, 0u
-    %76:f32 = access %x_101, 1u
-    %77:f32 = access %x_101, 2u
-    %78:vec4<f32> = construct %75, %76, %77, 1.0f
-    store %x_GLF_color, %78
+    %82:vec3<f32> = load %c
+    %83:vec3<f32> = abs %82
+    %84:vec3<f32> = normalize %83
+    %x_101:vec3<f32> = let %84
+    %86:f32 = access %x_101, 0u
+    %87:f32 = access %x_101, 1u
+    %88:f32 = access %x_101, 2u
+    %89:vec4<f32> = construct %86, %87, %88, 1.0f
+    store %x_GLF_color, %89
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %81:void = call %main_1
-    %82:vec4<f32> = load %x_GLF_color
-    %83:main_out = construct %82
-    ret %83
+    %92:void = call %main_1
+    %93:vec4<f32> = load %x_GLF_color
+    %94:main_out = construct %93
+    ret %94
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B18: {
+    %97:bool = eq %rhs, 0i
+    %98:bool = eq %lhs, -2147483648i
+    %99:bool = eq %rhs, -1i
+    %100:bool = and %98, %99
+    %101:bool = or %97, %100
+    %102:i32 = select %rhs, 1i, %101
+    %103:i32 = let %102
+    %104:i32 = div %lhs, %103
+    %105:i32 = mul %104, %103
+    %106:i32 = sub %lhs, %105
+    ret %106
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.msl
index 0c63bb8..d8bc1a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-float-mat-determinant-clamp/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,88 +8,102 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_111:i32 = load %i
-        %10:bool = lt %x_111, 800i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_111:i32 = let %9
+        %11:bool = lt %x_111, 800i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_114:i32 = load %i
-        %12:i32 = mod %x_114, 32i
-        %13:bool = eq %12, 0i
-        if %13 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_120:f32 = load %result
-            %15:f32 = add %x_120, 0.40000000596046447754f
-            store %result, %15
+        %12:i32 = load %i
+        %x_114:i32 = let %12
+        %14:i32 = call %tint_mod_i32, %x_114, 32i
+        %16:bool = eq %14, 0i
+        if %16 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %17:f32 = load %result
+            %x_120:f32 = let %17
+            %19:f32 = add %x_120, 0.40000000596046447754f
+            store %result, %19
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_122:i32 = load %i
-            %x_124:f32 = load %thirty_two
-            %18:f32 = convert %x_122
-            %19:f32 = round %x_124
-            %20:f32 = convert %x_122
-            %21:f32 = round %x_124
-            %22:f32 = div %20, %21
-            %23:f32 = floor %22
-            %24:f32 = mul %19, %23
-            %25:f32 = sub %18, %24
-            %26:bool = lte %25, 0.00999999977648258209f
-            if %26 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %x_130:f32 = load %result
-                %28:f32 = add %x_130, 100.0f
-                store %result, %28
+          $B8: {  # false
+            %20:i32 = load %i
+            %x_122:i32 = let %20
+            %22:f32 = load %thirty_two
+            %x_124:f32 = let %22
+            %24:f32 = convert %x_122
+            %25:f32 = let %24
+            %26:f32 = round %x_124
+            %27:f32 = let %26
+            %28:f32 = convert %x_122
+            %29:f32 = let %28
+            %30:f32 = round %x_124
+            %31:f32 = div %29, %30
+            %32:f32 = floor %31
+            %33:f32 = mul %27, %32
+            %34:f32 = sub %25, %33
+            %35:bool = lte %34, 0.00999999977648258209f
+            if %35 [t: $B9] {  # if_3
+              $B9: {  # true
+                %36:f32 = load %result
+                %x_130:f32 = let %36
+                %38:f32 = add %x_130, 100.0f
+                store %result, %38
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %x_132:i32 = load %i
-        %x_134:f32 = load %limit
-        %31:f32 = convert %x_132
-        %32:bool = gte %31, %x_134
-        if %32 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_138:f32 = load %result
+        %39:i32 = load %i
+        %x_132:i32 = let %39
+        %41:f32 = load %limit
+        %x_134:f32 = let %41
+        %43:f32 = convert %x_132
+        %44:bool = gte %43, %x_134
+        if %44 [t: $B10] {  # if_4
+          $B10: {  # true
+            %45:f32 = load %result
+            %x_138:f32 = let %45
             ret %x_138
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_139:i32 = load %i
-        %35:i32 = add %x_139, 1i
-        store %i, %35
-        next_iteration %b3
+      $B4: {  # continuing
+        %47:i32 = load %i
+        %x_139:i32 = let %47
+        %49:i32 = add %x_139, 1i
+        store %i, %49
+        next_iteration  # -> $B3
       }
     }
-    %x_141:f32 = load %result
+    %50:f32 = load %result
+    %x_141:f32 = let %50
     ret %x_141
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -98,82 +112,117 @@
     %param_3:ptr<function, f32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %45:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %x_56:f32 = load_vector_element %45, 0u
-    %47:f32 = div %x_56, 8.0f
-    %48:f32 = round %47
-    store %thirty_two_1, %48
-    %x_60:f32 = load_vector_element %gl_FragCoord, 0u
+    %60:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %61:f32 = load_vector_element %60, 0u
+    %x_56:f32 = let %61
+    %63:f32 = div %x_56, 8.0f
+    %64:f32 = round %63
+    store %thirty_two_1, %64
+    %65:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_60:f32 = let %65
     store %param, %x_60
-    %x_61:f32 = load %thirty_two_1
+    %67:f32 = load %thirty_two_1
+    %x_61:f32 = let %67
     store %param_1, %x_61
-    %x_62:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %69:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_62:f32 = let %69
     store_vector_element %c, 0u, %x_62
-    %x_65:f32 = load_vector_element %gl_FragCoord, 1u
+    %71:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_65:f32 = let %71
     store %param_2, %x_65
-    %x_66:f32 = load %thirty_two_1
+    %73:f32 = load %thirty_two_1
+    %x_66:f32 = let %73
     store %param_3, %x_66
-    %x_67:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %75:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_67:f32 = let %75
     store_vector_element %c, 1u, %x_67
-    %x_70:f32 = load_vector_element %c, 0u
-    %x_72:f32 = load_vector_element %c, 1u
-    %57:f32 = add %x_70, %x_72
-    store_vector_element %c, 2u, %57
+    %77:f32 = load_vector_element %c, 0u
+    %x_70:f32 = let %77
+    %79:f32 = load_vector_element %c, 1u
+    %x_72:f32 = let %79
+    %81:f32 = add %x_70, %x_72
+    store_vector_element %c, 2u, %81
     store %i_1, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
-        %x_79:i32 = load %i_1
-        %59:bool = lt %x_79, 3i
-        if %59 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
+        %82:i32 = load %i_1
+        %x_79:i32 = let %82
+        %84:bool = lt %x_79, 3i
+        if %84 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_82:i32 = load %i_1
-        %x_84:f32 = load_vector_element %c, %x_82
-        %62:bool = gte %x_84, 1.0f
-        if %62 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_88:i32 = load %i_1
-            %x_89:i32 = load %i_1
-            %x_91:f32 = load_vector_element %c, %x_89
-            %x_92:i32 = load %i_1
-            %x_94:f32 = load_vector_element %c, %x_92
-            %68:f32 = mul %x_91, %x_94
-            store_vector_element %c, %x_88, %68
+        %85:i32 = load %i_1
+        %x_82:i32 = let %85
+        %87:f32 = load_vector_element %c, %x_82
+        %x_84:f32 = let %87
+        %89:bool = gte %x_84, 1.0f
+        if %89 [t: $B16] {  # if_6
+          $B16: {  # true
+            %90:i32 = load %i_1
+            %x_88:i32 = let %90
+            %92:i32 = load %i_1
+            %x_89:i32 = let %92
+            %94:f32 = load_vector_element %c, %x_89
+            %x_91:f32 = let %94
+            %96:i32 = load %i_1
+            %x_92:i32 = let %96
+            %98:f32 = load_vector_element %c, %x_92
+            %x_94:f32 = let %98
+            %100:f32 = mul %x_91, %x_94
+            store_vector_element %c, %x_88, %100
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %x_97:i32 = load %i_1
-        %70:i32 = add %x_97, 1i
-        store %i_1, %70
-        next_iteration %b12
+      $B13: {  # continuing
+        %101:i32 = load %i_1
+        %x_97:i32 = let %101
+        %103:i32 = add %x_97, 1i
+        store %i_1, %103
+        next_iteration  # -> $B12
       }
     }
-    %x_99:vec3<f32> = load %c
-    %72:vec3<f32> = abs %x_99
-    %x_101:vec3<f32> = normalize %72
-    %74:f32 = access %x_101, 0u
-    %75:f32 = access %x_101, 1u
-    %76:f32 = access %x_101, 2u
-    %77:vec4<f32> = construct %74, %75, %76, 1.0f
-    store %x_GLF_color, %77
+    %104:vec3<f32> = load %c
+    %x_99:vec3<f32> = let %104
+    %106:vec3<f32> = abs %x_99
+    %107:vec3<f32> = normalize %106
+    %x_101:vec3<f32> = let %107
+    %109:f32 = access %x_101, 0u
+    %110:f32 = access %x_101, 1u
+    %111:f32 = access %x_101, 2u
+    %112:vec4<f32> = construct %109, %110, %111, 1.0f
+    store %x_GLF_color, %112
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %80:void = call %main_1
-    %81:vec4<f32> = load %x_GLF_color
-    %82:main_out = construct %81
-    ret %82
+    %115:void = call %main_1
+    %116:vec4<f32> = load %x_GLF_color
+    %117:main_out = construct %116
+    ret %117
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B18: {
+    %120:bool = eq %rhs, 0i
+    %121:bool = eq %lhs, -2147483648i
+    %122:bool = eq %rhs, -1i
+    %123:bool = and %121, %122
+    %124:bool = or %120, %123
+    %125:i32 = select %rhs, 1i, %124
+    %126:i32 = let %125
+    %127:i32 = div %lhs, %126
+    %128:i32 = mul %127, %126
+    %129:i32 = sub %lhs, %128
+    ret %129
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.msl
index 609f018..db21ff1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,90 +12,96 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:bool = lt %10, 800i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %12:i32 = load %i
-        %13:i32 = mod %12, 32i
-        %14:bool = eq %13, 0i
-        if %14 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %15:f32 = load %result
-            %16:f32 = add %15, 0.40000000596046447754f
-            store %result, %16
+        %13:i32 = call %tint_mod_i32, %12, 32i
+        %15:bool = eq %13, 0i
+        if %15 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %16:f32 = load %result
+            %17:f32 = add %16, 0.40000000596046447754f
+            store %result, %17
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_138:f32 = load %thirty_two
-            %18:i32 = load %i
-            %19:f32 = convert %18
-            %20:f32 = round %x_138
-            %21:i32 = load %i
-            %22:f32 = convert %21
+          $B8: {  # false
+            %18:f32 = load %thirty_two
+            %x_138:f32 = let %18
+            %20:i32 = load %i
+            %21:f32 = convert %20
+            %22:f32 = let %21
             %23:f32 = round %x_138
-            %24:f32 = div %22, %23
-            %25:f32 = floor %24
-            %26:f32 = mul %20, %25
-            %27:f32 = sub %19, %26
-            %28:bool = lte %27, 0.00999999977648258209f
-            if %28 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %29:f32 = load %result
-                %30:f32 = add %29, 100.0f
-                store %result, %30
+            %24:f32 = let %23
+            %25:i32 = load %i
+            %26:f32 = convert %25
+            %27:f32 = let %26
+            %28:f32 = round %x_138
+            %29:f32 = div %27, %28
+            %30:f32 = floor %29
+            %31:f32 = mul %24, %30
+            %32:f32 = sub %22, %31
+            %33:bool = lte %32, 0.00999999977648258209f
+            if %33 [t: $B9] {  # if_3
+              $B9: {  # true
+                %34:f32 = load %result
+                %35:f32 = add %34, 100.0f
+                store %result, %35
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %31:i32 = load %i
-        %32:f32 = convert %31
-        %33:f32 = load %limit
-        %34:bool = gte %32, %33
-        if %34 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_152:f32 = load %result
+        %36:i32 = load %i
+        %37:f32 = convert %36
+        %38:f32 = load %limit
+        %39:bool = gte %37, %38
+        if %39 [t: $B10] {  # if_4
+          $B10: {  # true
+            %40:f32 = load %result
+            %x_152:f32 = let %40
             ret %x_152
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %i
-        %37:i32 = add %36, 1i
-        store %i, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %42:i32 = load %i
+        %43:i32 = add %42, 1i
+        store %i, %43
+        next_iteration  # -> $B3
       }
     }
-    %x_155:f32 = load %result
+    %44:f32 = load %result
+    %x_155:f32 = let %44
     ret %x_155
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -105,99 +111,118 @@
     %i_1:ptr<function, i32, read_write> = var
     %x_58:ptr<function, vec3<f32>, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %48:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %49:f32 = load_vector_element %48, 0u
-    %50:f32 = div %49, 8.0f
-    %51:f32 = round %50
-    store %thirty_two_1, %51
-    %52:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %52
-    %53:f32 = load %thirty_two_1
-    store %param_1, %53
-    %x_66:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %55:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %56:f32 = load_vector_element %55, 0u
+    %57:f32 = div %56, 8.0f
+    %58:f32 = round %57
+    store %thirty_two_1, %58
+    %59:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %59
+    %60:f32 = load %thirty_two_1
+    store %param_1, %60
+    %61:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_66:f32 = let %61
     store_vector_element %c, 0u, %x_66
-    %55:f32 = load_vector_element %gl_FragCoord, 1u
-    store %param_2, %55
-    %56:f32 = load %thirty_two_1
-    store %param_3, %56
-    %x_71:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %63:f32 = load_vector_element %gl_FragCoord, 1u
+    store %param_2, %63
+    %64:f32 = load %thirty_two_1
+    store %param_3, %64
+    %65:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_71:f32 = let %65
     store_vector_element %c, 1u, %x_71
-    %58:f32 = load_vector_element %c, 0u
-    %59:f32 = load_vector_element %c, 1u
-    %60:f32 = add %58, %59
-    store_vector_element %c, 2u, %60
+    %67:f32 = load_vector_element %c, 0u
+    %68:f32 = load_vector_element %c, 1u
+    %69:f32 = add %67, %68
+    store_vector_element %c, 2u, %69
     store %i_1, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
-        %61:i32 = load %i_1
-        %62:bool = lt %61, 3i
-        if %62 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
+        %70:i32 = load %i_1
+        %71:bool = lt %70, 3i
+        if %71 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %63:i32 = load %i_1
-        %64:f32 = load_vector_element %c, %63
-        %65:bool = gte %64, 1.0f
-        if %65 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_92:i32 = load %i_1
-            %67:i32 = load %i_1
-            %68:f32 = load_vector_element %c, %67
-            %69:i32 = load %i_1
-            %70:f32 = load_vector_element %c, %69
-            %71:f32 = mul %68, %70
-            store_vector_element %c, %x_92, %71
+        %72:i32 = load %i_1
+        %73:f32 = load_vector_element %c, %72
+        %74:bool = gte %73, 1.0f
+        if %74 [t: $B16] {  # if_6
+          $B16: {  # true
+            %75:i32 = load %i_1
+            %x_92:i32 = let %75
+            %77:i32 = load %i_1
+            %78:f32 = load_vector_element %c, %77
+            %79:i32 = load %i_1
+            %80:f32 = load_vector_element %c, %79
+            %81:f32 = mul %78, %80
+            store_vector_element %c, %x_92, %81
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %72:i32 = load %i_1
-        %73:i32 = add %72, 1i
-        store %i_1, %73
-        next_iteration %b12
+      $B13: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B12
       }
     }
-    %74:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %75:f32 = load_vector_element %74, 0u
-    %76:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %77:f32 = load_vector_element %76, 1u
-    %78:bool = lt %75, %77
-    if %78 [t: %b17, f: %b18] {  # if_7
-      %b17 = block {  # true
-        %79:vec3<f32> = load %c
-        %80:vec3<f32> = abs %79
-        store %x_58, %80
+    %84:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %85:f32 = load_vector_element %84, 0u
+    %86:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %87:f32 = load_vector_element %86, 1u
+    %88:bool = lt %85, %87
+    if %88 [t: $B17, f: $B18] {  # if_7
+      $B17: {  # true
+        %89:vec3<f32> = load %c
+        %90:vec3<f32> = abs %89
+        store %x_58, %90
         exit_if  # if_7
       }
-      %b18 = block {  # false
-        %81:vec3<f32> = load %c
-        store %x_58, %81
+      $B18: {  # false
+        %91:vec3<f32> = load %c
+        store %x_58, %91
         exit_if  # if_7
       }
     }
-    %82:vec3<f32> = load %x_58
-    %x_115:vec3<f32> = normalize %82
-    %84:f32 = access %x_115, 0u
-    %85:f32 = access %x_115, 1u
-    %86:f32 = access %x_115, 2u
-    %87:vec4<f32> = construct %84, %85, %86, 1.0f
-    store %x_GLF_color, %87
+    %92:vec3<f32> = load %x_58
+    %93:vec3<f32> = normalize %92
+    %x_115:vec3<f32> = let %93
+    %95:f32 = access %x_115, 0u
+    %96:f32 = access %x_115, 1u
+    %97:f32 = access %x_115, 2u
+    %98:vec4<f32> = construct %95, %96, %97, 1.0f
+    store %x_GLF_color, %98
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %90:void = call %main_1
-    %91:vec4<f32> = load %x_GLF_color
-    %92:main_out = construct %91
-    ret %92
+    %101:void = call %main_1
+    %102:vec4<f32> = load %x_GLF_color
+    %103:main_out = construct %102
+    ret %103
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B20: {
+    %106:bool = eq %rhs, 0i
+    %107:bool = eq %lhs, -2147483648i
+    %108:bool = eq %rhs, -1i
+    %109:bool = and %107, %108
+    %110:bool = or %106, %109
+    %111:i32 = select %rhs, 1i, %110
+    %112:i32 = let %111
+    %113:i32 = div %lhs, %112
+    %114:i32 = mul %113, %112
+    %115:i32 = sub %lhs, %114
+    ret %115
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.msl
index e9fc950..6641a99 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-injected-conditional-true/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,89 +12,103 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf1, read> = var @binding_point(0, 1)
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_125:i32 = load %i
-        %11:bool = lt %x_125, 800i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %10:i32 = load %i
+        %x_125:i32 = let %10
+        %12:bool = lt %x_125, 800i
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_128:i32 = load %i
-        %13:i32 = mod %x_128, 32i
-        %14:bool = eq %13, 0i
-        if %14 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_134:f32 = load %result
-            %16:f32 = add %x_134, 0.40000000596046447754f
-            store %result, %16
+        %13:i32 = load %i
+        %x_128:i32 = let %13
+        %15:i32 = call %tint_mod_i32, %x_128, 32i
+        %17:bool = eq %15, 0i
+        if %17 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %18:f32 = load %result
+            %x_134:f32 = let %18
+            %20:f32 = add %x_134, 0.40000000596046447754f
+            store %result, %20
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_136:i32 = load %i
-            %x_138:f32 = load %thirty_two
-            %19:f32 = convert %x_136
-            %20:f32 = round %x_138
-            %21:f32 = convert %x_136
-            %22:f32 = round %x_138
-            %23:f32 = div %21, %22
-            %24:f32 = floor %23
-            %25:f32 = mul %20, %24
-            %26:f32 = sub %19, %25
-            %27:bool = lte %26, 0.00999999977648258209f
-            if %27 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %x_144:f32 = load %result
-                %29:f32 = add %x_144, 100.0f
-                store %result, %29
+          $B8: {  # false
+            %21:i32 = load %i
+            %x_136:i32 = let %21
+            %23:f32 = load %thirty_two
+            %x_138:f32 = let %23
+            %25:f32 = convert %x_136
+            %26:f32 = let %25
+            %27:f32 = round %x_138
+            %28:f32 = let %27
+            %29:f32 = convert %x_136
+            %30:f32 = let %29
+            %31:f32 = round %x_138
+            %32:f32 = div %30, %31
+            %33:f32 = floor %32
+            %34:f32 = mul %28, %33
+            %35:f32 = sub %26, %34
+            %36:bool = lte %35, 0.00999999977648258209f
+            if %36 [t: $B9] {  # if_3
+              $B9: {  # true
+                %37:f32 = load %result
+                %x_144:f32 = let %37
+                %39:f32 = add %x_144, 100.0f
+                store %result, %39
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %x_146:i32 = load %i
-        %x_148:f32 = load %limit
-        %32:f32 = convert %x_146
-        %33:bool = gte %32, %x_148
-        if %33 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_152:f32 = load %result
+        %40:i32 = load %i
+        %x_146:i32 = let %40
+        %42:f32 = load %limit
+        %x_148:f32 = let %42
+        %44:f32 = convert %x_146
+        %45:bool = gte %44, %x_148
+        if %45 [t: $B10] {  # if_4
+          $B10: {  # true
+            %46:f32 = load %result
+            %x_152:f32 = let %46
             ret %x_152
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_153:i32 = load %i
-        %36:i32 = add %x_153, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %48:i32 = load %i
+        %x_153:i32 = let %48
+        %50:i32 = add %x_153, 1i
+        store %i, %50
+        next_iteration  # -> $B3
       }
     }
-    %x_155:f32 = load %result
+    %51:f32 = load %result
+    %x_155:f32 = let %51
     ret %x_155
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -104,99 +118,138 @@
     %i_1:ptr<function, i32, read_write> = var
     %x_58:ptr<function, vec3<f32>, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %47:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %x_60:f32 = load_vector_element %47, 0u
-    %49:f32 = div %x_60, 8.0f
-    %50:f32 = round %49
-    store %thirty_two_1, %50
-    %x_64:f32 = load_vector_element %gl_FragCoord, 0u
+    %62:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %63:f32 = load_vector_element %62, 0u
+    %x_60:f32 = let %63
+    %65:f32 = div %x_60, 8.0f
+    %66:f32 = round %65
+    store %thirty_two_1, %66
+    %67:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_64:f32 = let %67
     store %param, %x_64
-    %x_65:f32 = load %thirty_two_1
+    %69:f32 = load %thirty_two_1
+    %x_65:f32 = let %69
     store %param_1, %x_65
-    %x_66:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %71:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_66:f32 = let %71
     store_vector_element %c, 0u, %x_66
-    %x_69:f32 = load_vector_element %gl_FragCoord, 1u
+    %73:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_69:f32 = let %73
     store %param_2, %x_69
-    %x_70:f32 = load %thirty_two_1
+    %75:f32 = load %thirty_two_1
+    %x_70:f32 = let %75
     store %param_3, %x_70
-    %x_71:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %77:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_71:f32 = let %77
     store_vector_element %c, 1u, %x_71
-    %x_74:f32 = load_vector_element %c, 0u
-    %x_76:f32 = load_vector_element %c, 1u
-    %59:f32 = add %x_74, %x_76
-    store_vector_element %c, 2u, %59
+    %79:f32 = load_vector_element %c, 0u
+    %x_74:f32 = let %79
+    %81:f32 = load_vector_element %c, 1u
+    %x_76:f32 = let %81
+    %83:f32 = add %x_74, %x_76
+    store_vector_element %c, 2u, %83
     store %i_1, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
-        %x_83:i32 = load %i_1
-        %61:bool = lt %x_83, 3i
-        if %61 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
+        %84:i32 = load %i_1
+        %x_83:i32 = let %84
+        %86:bool = lt %x_83, 3i
+        if %86 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_86:i32 = load %i_1
-        %x_88:f32 = load_vector_element %c, %x_86
-        %64:bool = gte %x_88, 1.0f
-        if %64 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_92:i32 = load %i_1
-            %x_93:i32 = load %i_1
-            %x_95:f32 = load_vector_element %c, %x_93
-            %x_96:i32 = load %i_1
-            %x_98:f32 = load_vector_element %c, %x_96
-            %70:f32 = mul %x_95, %x_98
-            store_vector_element %c, %x_92, %70
+        %87:i32 = load %i_1
+        %x_86:i32 = let %87
+        %89:f32 = load_vector_element %c, %x_86
+        %x_88:f32 = let %89
+        %91:bool = gte %x_88, 1.0f
+        if %91 [t: $B16] {  # if_6
+          $B16: {  # true
+            %92:i32 = load %i_1
+            %x_92:i32 = let %92
+            %94:i32 = load %i_1
+            %x_93:i32 = let %94
+            %96:f32 = load_vector_element %c, %x_93
+            %x_95:f32 = let %96
+            %98:i32 = load %i_1
+            %x_96:i32 = let %98
+            %100:f32 = load_vector_element %c, %x_96
+            %x_98:f32 = let %100
+            %102:f32 = mul %x_95, %x_98
+            store_vector_element %c, %x_92, %102
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %x_101:i32 = load %i_1
-        %72:i32 = add %x_101, 1i
-        store %i_1, %72
-        next_iteration %b12
+      $B13: {  # continuing
+        %103:i32 = load %i_1
+        %x_101:i32 = let %103
+        %105:i32 = add %x_101, 1i
+        store %i_1, %105
+        next_iteration  # -> $B12
       }
     }
-    %73:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %x_104:f32 = load_vector_element %73, 0u
-    %75:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %x_106:f32 = load_vector_element %75, 1u
-    %77:bool = lt %x_104, %x_106
-    if %77 [t: %b17, f: %b18] {  # if_7
-      %b17 = block {  # true
-        %x_111:vec3<f32> = load %c
-        %79:vec3<f32> = abs %x_111
-        store %x_58, %79
+    %106:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %107:f32 = load_vector_element %106, 0u
+    %x_104:f32 = let %107
+    %109:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %110:f32 = load_vector_element %109, 1u
+    %x_106:f32 = let %110
+    %112:bool = lt %x_104, %x_106
+    if %112 [t: $B17, f: $B18] {  # if_7
+      $B17: {  # true
+        %113:vec3<f32> = load %c
+        %x_111:vec3<f32> = let %113
+        %115:vec3<f32> = abs %x_111
+        store %x_58, %115
         exit_if  # if_7
       }
-      %b18 = block {  # false
-        %x_113:vec3<f32> = load %c
+      $B18: {  # false
+        %116:vec3<f32> = load %c
+        %x_113:vec3<f32> = let %116
         store %x_58, %x_113
         exit_if  # if_7
       }
     }
-    %x_114:vec3<f32> = load %x_58
-    %x_115:vec3<f32> = normalize %x_114
-    %83:f32 = access %x_115, 0u
-    %84:f32 = access %x_115, 1u
-    %85:f32 = access %x_115, 2u
-    %86:vec4<f32> = construct %83, %84, %85, 1.0f
-    store %x_GLF_color, %86
+    %118:vec3<f32> = load %x_58
+    %x_114:vec3<f32> = let %118
+    %120:vec3<f32> = normalize %x_114
+    %x_115:vec3<f32> = let %120
+    %122:f32 = access %x_115, 0u
+    %123:f32 = access %x_115, 1u
+    %124:f32 = access %x_115, 2u
+    %125:vec4<f32> = construct %122, %123, %124, 1.0f
+    store %x_GLF_color, %125
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %89:void = call %main_1
-    %90:vec4<f32> = load %x_GLF_color
-    %91:main_out = construct %90
-    ret %91
+    %128:void = call %main_1
+    %129:vec4<f32> = load %x_GLF_color
+    %130:main_out = construct %129
+    ret %130
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B20: {
+    %133:bool = eq %rhs, 0i
+    %134:bool = eq %lhs, -2147483648i
+    %135:bool = eq %rhs, -1i
+    %136:bool = and %134, %135
+    %137:bool = or %133, %136
+    %138:i32 = select %rhs, 1i, %137
+    %139:i32 = let %138
+    %140:i32 = div %lhs, %139
+    %141:i32 = mul %140, %139
+    %142:i32 = sub %lhs, %141
+    ret %142
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.msl
index 52d7a15..8bb64da 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,106 +8,110 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %x_91:ptr<function, f32, read_write> = var
     %x_94:ptr<function, i32, read_write> = var
     store %x_91, -0.5f
     store %x_94, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_104:ptr<function, f32, read_write> = var
         %x_113:ptr<function, f32, read_write> = var
         %x_92:ptr<function, f32, read_write> = var
         %x_95:ptr<function, i32, read_write> = var
         %13:i32 = load %x_94
         %14:bool = lt %13, 800i
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_112:ptr<function, f32, read_write> = var
         %16:i32 = load %x_94
-        %17:i32 = mod %16, 32i
-        %18:bool = eq %17, 0i
-        if %18 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %19:f32 = load %x_91
-            %20:f32 = add %19, 0.40000000596046447754f
-            store %x_104, %20
-            %21:f32 = load %x_104
-            store %x_92, %21
+        %17:i32 = call %tint_mod_i32, %16, 32i
+        %19:bool = eq %17, 0i
+        if %19 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %20:f32 = load %x_91
+            %21:f32 = add %20, 0.40000000596046447754f
+            store %x_104, %21
+            %22:f32 = load %x_104
+            store %x_92, %22
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_106:f32 = load %thirty_two
-            %23:f32 = load %x_91
-            store %x_113, %23
-            %24:i32 = load %x_94
-            %25:f32 = convert %24
-            %26:f32 = round %x_106
-            %27:i32 = load %x_94
-            %28:f32 = convert %27
+          $B8: {  # false
+            %23:f32 = load %thirty_two
+            %x_106:f32 = let %23
+            %25:f32 = load %x_91
+            store %x_113, %25
+            %26:i32 = load %x_94
+            %27:f32 = convert %26
+            %28:f32 = let %27
             %29:f32 = round %x_106
-            %30:f32 = div %28, %29
-            %31:f32 = floor %30
-            %32:f32 = mul %26, %31
-            %33:f32 = sub %25, %32
-            %34:bool = lte %33, 0.00999999977648258209f
-            if %34 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %35:f32 = load %x_91
-                %36:f32 = add %35, 100.0f
-                store %x_112, %36
-                %37:f32 = load %x_112
-                store %x_113, %37
+            %30:f32 = let %29
+            %31:i32 = load %x_94
+            %32:f32 = convert %31
+            %33:f32 = let %32
+            %34:f32 = round %x_106
+            %35:f32 = div %33, %34
+            %36:f32 = floor %35
+            %37:f32 = mul %30, %36
+            %38:f32 = sub %28, %37
+            %39:bool = lte %38, 0.00999999977648258209f
+            if %39 [t: $B9] {  # if_3
+              $B9: {  # true
+                %40:f32 = load %x_91
+                %41:f32 = add %40, 100.0f
+                store %x_112, %41
+                %42:f32 = load %x_112
+                store %x_113, %42
                 exit_if  # if_3
               }
             }
-            %38:f32 = load %x_113
-            store %x_92, %38
+            %43:f32 = load %x_113
+            store %x_92, %43
             exit_if  # if_2
           }
         }
-        %39:i32 = load %x_94
-        %40:f32 = convert %39
-        %41:f32 = load %limit
-        %42:bool = gte %40, %41
-        if %42 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %43:f32 = load %x_92
-            ret %43
+        %44:i32 = load %x_94
+        %45:f32 = convert %44
+        %46:f32 = load %limit
+        %47:bool = gte %45, %46
+        if %47 [t: $B10] {  # if_4
+          $B10: {  # true
+            %48:f32 = load %x_92
+            ret %48
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %44:i32 = load %x_94
-        %45:i32 = add %44, 1i
-        store %x_95, %45
-        %46:f32 = load %x_92
-        store %x_91, %46
-        %47:i32 = load %x_95
-        store %x_94, %47
-        next_iteration %b3
+      $B4: {  # continuing
+        %49:i32 = load %x_94
+        %50:i32 = add %49, 1i
+        store %x_95, %50
+        %51:f32 = load %x_92
+        store %x_91, %51
+        %52:i32 = load %x_95
+        store %x_94, %52
+        next_iteration  # -> $B3
       }
     }
-    %48:f32 = load %x_91
-    ret %48
+    %53:f32 = load %x_91
+    ret %53
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
@@ -115,82 +119,101 @@
     %param_3:ptr<function, f32, read_write> = var
     %x_68:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %56:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-    %57:f32 = load_vector_element %56, 0u
-    %58:f32 = mul %57, 0.125f
-    %x_54:f32 = round %58
-    %60:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %60
+    %61:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+    %62:f32 = load_vector_element %61, 0u
+    %63:f32 = mul %62, 0.125f
+    %64:f32 = round %63
+    %x_54:f32 = let %64
+    %66:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %66
     store %param_1, %x_54
-    %x_57:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %67:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_57:f32 = let %67
     store_vector_element %c, 0u, %x_57
-    %62:f32 = load_vector_element %gl_FragCoord, 1u
-    store %param_2, %62
+    %69:f32 = load_vector_element %gl_FragCoord, 1u
+    store %param_2, %69
     store %param_3, %x_54
-    %x_61:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %70:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_61:f32 = let %70
     store_vector_element %c, 1u, %x_61
-    %64:f32 = load_vector_element %c, 0u
-    %65:f32 = load_vector_element %c, 1u
-    %66:f32 = add %64, %65
-    store_vector_element %c, 2u, %66
+    %72:f32 = load_vector_element %c, 0u
+    %73:f32 = load_vector_element %c, 1u
+    %74:f32 = add %72, %73
+    store_vector_element %c, 2u, %74
     store %x_68, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
         %x_69:ptr<function, i32, read_write> = var
-        %68:i32 = load %x_68
-        %69:bool = lt %68, 3i
-        if %69 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+        %76:i32 = load %x_68
+        %77:bool = lt %76, 3i
+        if %77 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %70:i32 = load %x_68
-        %71:f32 = load_vector_element %c, %70
-        %72:bool = gte %71, 1.0f
-        if %72 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %73:i32 = load %x_68
-            %74:i32 = load %x_68
-            %75:f32 = load_vector_element %c, %74
-            %76:i32 = load %x_68
-            %77:f32 = load_vector_element %c, %76
-            %78:f32 = mul %75, %77
-            store_vector_element %c, %73, %78
+        %78:i32 = load %x_68
+        %79:f32 = load_vector_element %c, %78
+        %80:bool = gte %79, 1.0f
+        if %80 [t: $B16] {  # if_6
+          $B16: {  # true
+            %81:i32 = load %x_68
+            %82:i32 = load %x_68
+            %83:f32 = load_vector_element %c, %82
+            %84:i32 = load %x_68
+            %85:f32 = load_vector_element %c, %84
+            %86:f32 = mul %83, %85
+            store_vector_element %c, %81, %86
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %79:i32 = load %x_68
-        %80:i32 = add %79, 1i
-        store %x_69, %80
-        %81:i32 = load %x_69
-        store %x_68, %81
-        next_iteration %b12
+      $B13: {  # continuing
+        %87:i32 = load %x_68
+        %88:i32 = add %87, 1i
+        store %x_69, %88
+        %89:i32 = load %x_69
+        store %x_68, %89
+        next_iteration  # -> $B12
       }
     }
-    %82:vec3<f32> = load %c
-    %83:vec3<f32> = abs %82
-    %x_84:vec3<f32> = normalize %83
-    %85:f32 = access %x_84, 0u
-    %86:f32 = access %x_84, 1u
-    %87:f32 = access %x_84, 2u
-    %88:vec4<f32> = construct %85, %86, %87, 1.0f
-    store %x_GLF_color, %88
+    %90:vec3<f32> = load %c
+    %91:vec3<f32> = abs %90
+    %92:vec3<f32> = normalize %91
+    %x_84:vec3<f32> = let %92
+    %94:f32 = access %x_84, 0u
+    %95:f32 = access %x_84, 1u
+    %96:f32 = access %x_84, 2u
+    %97:vec4<f32> = construct %94, %95, %96, 1.0f
+    store %x_GLF_color, %97
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %91:void = call %main_1
-    %92:vec4<f32> = load %x_GLF_color
-    %93:main_out = construct %92
-    ret %93
+    %100:void = call %main_1
+    %101:vec4<f32> = load %x_GLF_color
+    %102:main_out = construct %101
+    ret %102
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B18: {
+    %105:bool = eq %rhs, 0i
+    %106:bool = eq %lhs, -2147483648i
+    %107:bool = eq %rhs, -1i
+    %108:bool = and %106, %107
+    %109:bool = or %105, %108
+    %110:i32 = select %rhs, 1i, %109
+    %111:i32 = let %110
+    %112:i32 = div %lhs, %111
+    %113:i32 = mul %112, %111
+    %114:i32 = sub %lhs, %113
+    ret %114
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.msl
index e14904d..9dda484 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,110 +8,116 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %x_91:ptr<function, f32, read_write> = var
     %x_91_phi:ptr<function, f32, read_write> = var
     %x_94_phi:ptr<function, i32, read_write> = var
     store %x_91_phi, -0.5f
     store %x_94_phi, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_104:ptr<function, f32, read_write> = var
         %x_113:ptr<function, f32, read_write> = var
         %x_95:ptr<function, i32, read_write> = var
         %x_92_phi:ptr<function, f32, read_write> = var
         %14:f32 = load %x_91_phi
         store %x_91, %14
-        %x_94:i32 = load %x_94_phi
-        %16:bool = lt %x_94, 800i
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %15:i32 = load %x_94_phi
+        %x_94:i32 = let %15
+        %17:bool = lt %x_94, 800i
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_112:ptr<function, f32, read_write> = var
         %x_113_phi:ptr<function, f32, read_write> = var
-        %19:i32 = mod %x_94, 32i
-        %20:bool = eq %19, 0i
-        if %20 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %21:f32 = load %x_91
-            %22:f32 = add %21, 0.40000000596046447754f
-            store %x_104, %22
-            %23:f32 = load %x_104
-            store %x_92_phi, %23
+        %20:i32 = call %tint_mod_i32, %x_94, 32i
+        %22:bool = eq %20, 0i
+        if %22 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %23:f32 = load %x_91
+            %24:f32 = add %23, 0.40000000596046447754f
+            store %x_104, %24
+            %25:f32 = load %x_104
+            store %x_92_phi, %25
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_106:f32 = load %thirty_two
-            %25:f32 = load %x_91
-            store %x_113_phi, %25
-            %26:f32 = convert %x_94
-            %27:f32 = round %x_106
-            %28:f32 = convert %x_94
-            %29:f32 = round %x_106
-            %30:f32 = div %28, %29
-            %31:f32 = floor %30
-            %32:f32 = mul %27, %31
-            %33:f32 = sub %26, %32
-            %34:bool = lte %33, 0.00999999977648258209f
-            if %34 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %35:f32 = load %x_91
-                %36:f32 = add %35, 100.0f
-                store %x_112, %36
-                %37:f32 = load %x_112
-                store %x_113_phi, %37
+          $B8: {  # false
+            %26:f32 = load %thirty_two
+            %x_106:f32 = let %26
+            %28:f32 = load %x_91
+            store %x_113_phi, %28
+            %29:f32 = convert %x_94
+            %30:f32 = let %29
+            %31:f32 = round %x_106
+            %32:f32 = let %31
+            %33:f32 = convert %x_94
+            %34:f32 = let %33
+            %35:f32 = round %x_106
+            %36:f32 = div %34, %35
+            %37:f32 = floor %36
+            %38:f32 = mul %32, %37
+            %39:f32 = sub %30, %38
+            %40:bool = lte %39, 0.00999999977648258209f
+            if %40 [t: $B9] {  # if_3
+              $B9: {  # true
+                %41:f32 = load %x_91
+                %42:f32 = add %41, 100.0f
+                store %x_112, %42
+                %43:f32 = load %x_112
+                store %x_113_phi, %43
                 exit_if  # if_3
               }
             }
-            %38:f32 = load %x_113_phi
-            store %x_113, %38
-            %39:f32 = load %x_113
-            store %x_92_phi, %39
+            %44:f32 = load %x_113_phi
+            store %x_113, %44
+            %45:f32 = load %x_113
+            store %x_92_phi, %45
             exit_if  # if_2
           }
         }
         %x_92:ptr<function, f32, read_write> = var
-        %41:f32 = load %x_92_phi
-        store %x_92, %41
-        %x_115:f32 = load %limit
-        %43:f32 = convert %x_94
-        %44:bool = gte %43, %x_115
-        if %44 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %45:f32 = load %x_92
-            ret %45
+        %47:f32 = load %x_92_phi
+        store %x_92, %47
+        %48:f32 = load %limit
+        %x_115:f32 = let %48
+        %50:f32 = convert %x_94
+        %51:bool = gte %50, %x_115
+        if %51 [t: $B10] {  # if_4
+          $B10: {  # true
+            %52:f32 = load %x_92
+            ret %52
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %46:i32 = add %x_94, 1i
-        store %x_95, %46
-        %47:f32 = load %x_92
-        store %x_91_phi, %47
-        %48:i32 = load %x_95
-        store %x_94_phi, %48
-        next_iteration %b3
+      $B4: {  # continuing
+        %53:i32 = add %x_94, 1i
+        store %x_95, %53
+        %54:f32 = load %x_92
+        store %x_91_phi, %54
+        %55:i32 = load %x_95
+        store %x_94_phi, %55
+        next_iteration  # -> $B3
       }
     }
-    %49:f32 = load %x_91
-    ret %49
+    %56:f32 = load %x_91
+    ret %56
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
@@ -119,77 +125,106 @@
     %param_3:ptr<function, f32, read_write> = var
     %x_68_phi:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %57:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-    %x_52:f32 = load_vector_element %57, 0u
-    %59:f32 = mul %x_52, 0.125f
-    %x_54:f32 = round %59
-    %x_56:f32 = load_vector_element %gl_FragCoord, 0u
+    %64:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+    %65:f32 = load_vector_element %64, 0u
+    %x_52:f32 = let %65
+    %67:f32 = mul %x_52, 0.125f
+    %68:f32 = round %67
+    %x_54:f32 = let %68
+    %70:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_56:f32 = let %70
     store %param, %x_56
     store %param_1, %x_54
-    %x_57:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %72:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_57:f32 = let %72
     store_vector_element %c, 0u, %x_57
-    %x_60:f32 = load_vector_element %gl_FragCoord, 1u
+    %74:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_60:f32 = let %74
     store %param_2, %x_60
     store %param_3, %x_54
-    %x_61:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %76:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_61:f32 = let %76
     store_vector_element %c, 1u, %x_61
-    %x_63:f32 = load_vector_element %c, 0u
-    %x_64:f32 = load_vector_element %c, 1u
-    %67:f32 = add %x_63, %x_64
-    store_vector_element %c, 2u, %67
+    %78:f32 = load_vector_element %c, 0u
+    %x_63:f32 = let %78
+    %80:f32 = load_vector_element %c, 1u
+    %x_64:f32 = let %80
+    %82:f32 = add %x_63, %x_64
+    store_vector_element %c, 2u, %82
     store %x_68_phi, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
         %x_69:ptr<function, i32, read_write> = var
-        %x_68:i32 = load %x_68_phi
-        %70:bool = lt %x_68, 3i
-        if %70 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+        %84:i32 = load %x_68_phi
+        %x_68:i32 = let %84
+        %86:bool = lt %x_68, 3i
+        if %86 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_75:f32 = load_vector_element %c, %x_68
-        %72:bool = gte %x_75, 1.0f
-        if %72 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_79:f32 = load_vector_element %c, %x_68
-            %x_80:f32 = load_vector_element %c, %x_68
-            %75:f32 = mul %x_79, %x_80
-            store_vector_element %c, %x_68, %75
+        %87:f32 = load_vector_element %c, %x_68
+        %x_75:f32 = let %87
+        %89:bool = gte %x_75, 1.0f
+        if %89 [t: $B16] {  # if_6
+          $B16: {  # true
+            %90:f32 = load_vector_element %c, %x_68
+            %x_79:f32 = let %90
+            %92:f32 = load_vector_element %c, %x_68
+            %x_80:f32 = let %92
+            %94:f32 = mul %x_79, %x_80
+            store_vector_element %c, %x_68, %94
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %76:i32 = add %x_68, 1i
-        store %x_69, %76
-        %77:i32 = load %x_69
-        store %x_68_phi, %77
-        next_iteration %b12
+      $B13: {  # continuing
+        %95:i32 = add %x_68, 1i
+        store %x_69, %95
+        %96:i32 = load %x_69
+        store %x_68_phi, %96
+        next_iteration  # -> $B12
       }
     }
-    %x_82:vec3<f32> = load %c
-    %79:vec3<f32> = abs %x_82
-    %x_84:vec3<f32> = normalize %79
-    %81:f32 = access %x_84, 0u
-    %82:f32 = access %x_84, 1u
-    %83:f32 = access %x_84, 2u
-    %84:vec4<f32> = construct %81, %82, %83, 1.0f
-    store %x_GLF_color, %84
+    %97:vec3<f32> = load %c
+    %x_82:vec3<f32> = let %97
+    %99:vec3<f32> = abs %x_82
+    %100:vec3<f32> = normalize %99
+    %x_84:vec3<f32> = let %100
+    %102:f32 = access %x_84, 0u
+    %103:f32 = access %x_84, 1u
+    %104:f32 = access %x_84, 2u
+    %105:vec4<f32> = construct %102, %103, %104, 1.0f
+    store %x_GLF_color, %105
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b17 {
-  %b17 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B17: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %108:void = call %main_1
+    %109:vec4<f32> = load %x_GLF_color
+    %110:main_out = construct %109
+    ret %110
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B18: {
+    %113:bool = eq %rhs, 0i
+    %114:bool = eq %lhs, -2147483648i
+    %115:bool = eq %rhs, -1i
+    %116:bool = and %114, %115
+    %117:bool = or %113, %116
+    %118:i32 = select %rhs, 1i, %117
+    %119:i32 = let %118
+    %120:i32 = div %lhs, %119
+    %121:i32 = mul %120, %119
+    %122:i32 = sub %lhs, %121
+    ret %122
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.msl
index 7ea3a9d..0c551b8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,107 +12,112 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_16:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %x_104:ptr<function, f32, read_write> = var
     %x_107:ptr<function, i32, read_write> = var
     store %x_104, -0.5f
     store %x_107, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_126:ptr<function, f32, read_write> = var
         %x_125:ptr<function, f32, read_write> = var
         %x_105:ptr<function, f32, read_write> = var
         %x_108:ptr<function, i32, read_write> = var
-        %14:i32 = load %x_107
-        %15:bool = lt %14, 800i
-        if %15 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %15:i32 = load %x_107
+        %16:bool = lt %15, 800i
+        if %16 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_124:ptr<function, f32, read_write> = var
-        %17:i32 = load %x_107
-        %18:i32 = mod %17, 32i
-        %19:bool = eq %18, 0i
-        if %19 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %20:f32 = load %x_104
-            %21:f32 = add %20, 0.40000000596046447754f
-            store %x_126, %21
-            %22:f32 = load %x_126
-            store %x_105, %22
+        %18:i32 = load %x_107
+        %19:i32 = call %tint_mod_i32, %18, 32i
+        %21:bool = eq %19, 0i
+        if %21 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %22:f32 = load %x_104
+            %23:f32 = add %22, 0.40000000596046447754f
+            store %x_126, %23
+            %24:f32 = load %x_126
+            store %x_105, %24
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_118:f32 = load %thirty_two
-            %24:f32 = load %x_104
-            store %x_125, %24
-            %25:i32 = load %x_107
-            %26:f32 = convert %25
-            %27:f32 = round %x_118
+          $B8: {  # false
+            %25:f32 = load %thirty_two
+            %x_118:f32 = let %25
+            %27:f32 = load %x_104
+            store %x_125, %27
             %28:i32 = load %x_107
             %29:f32 = convert %28
-            %30:f32 = round %x_118
-            %31:f32 = div %29, %30
-            %32:f32 = floor %31
-            %33:f32 = mul %27, %32
-            %34:f32 = sub %26, %33
-            %35:bool = lte %34, 0.00999999977648258209f
-            if %35 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %36:f32 = load %x_104
-                %37:f32 = add %36, 100.0f
-                store %x_124, %37
-                %38:f32 = load %x_124
-                store %x_125, %38
+            %30:f32 = let %29
+            %31:f32 = round %x_118
+            %32:f32 = let %31
+            %33:i32 = load %x_107
+            %34:f32 = convert %33
+            %35:f32 = let %34
+            %36:f32 = round %x_118
+            %37:f32 = div %35, %36
+            %38:f32 = floor %37
+            %39:f32 = mul %32, %38
+            %40:f32 = sub %30, %39
+            %41:bool = lte %40, 0.00999999977648258209f
+            if %41 [t: $B9] {  # if_3
+              $B9: {  # true
+                %42:f32 = load %x_104
+                %43:f32 = add %42, 100.0f
+                store %x_124, %43
+                %44:f32 = load %x_124
+                store %x_125, %44
                 exit_if  # if_3
               }
             }
-            %39:f32 = load %x_125
-            store %x_105, %39
+            %45:f32 = load %x_125
+            store %x_105, %45
             exit_if  # if_2
           }
         }
-        %40:i32 = load %x_107
-        %41:f32 = convert %40
-        %42:f32 = load %limit
-        %43:bool = gte %41, %42
-        if %43 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %44:f32 = load %x_105
-            ret %44
+        %46:i32 = load %x_107
+        %47:f32 = convert %46
+        %48:f32 = load %limit
+        %49:bool = gte %47, %48
+        if %49 [t: $B10] {  # if_4
+          $B10: {  # true
+            %50:f32 = load %x_105
+            ret %50
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %45:i32 = load %x_107
-        %46:i32 = add %45, 1i
-        store %x_108, %46
-        %47:f32 = load %x_105
-        store %x_104, %47
-        %48:i32 = load %x_108
-        store %x_107, %48
-        next_iteration %b3
+      $B4: {  # continuing
+        %51:i32 = load %x_107
+        %52:i32 = add %51, 1i
+        store %x_108, %52
+        %53:f32 = load %x_105
+        store %x_104, %53
+        %54:i32 = load %x_108
+        store %x_107, %54
+        next_iteration  # -> $B3
       }
     }
-    %49:f32 = load %x_104
-    ret %49
+    %55:f32 = load %x_104
+    ret %55
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
@@ -121,95 +126,122 @@
     %x_54:ptr<function, vec3<f32>, read_write> = var
     %x_74:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %58:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-    %59:f32 = load_vector_element %58, 0u
-    %60:f32 = mul %59, 0.125f
-    %x_58:f32 = round %60
-    %62:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %62
+    %64:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+    %65:f32 = load_vector_element %64, 0u
+    %66:f32 = mul %65, 0.125f
+    %67:f32 = round %66
+    %x_58:f32 = let %67
+    %69:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %69
     store %param_1, %x_58
-    %x_61:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %70:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_61:f32 = let %70
     store_vector_element %c, 0u, %x_61
-    %64:f32 = load_vector_element %gl_FragCoord, 1u
-    store %param_2, %64
+    %72:f32 = load_vector_element %gl_FragCoord, 1u
+    store %param_2, %72
     store %param_3, %x_58
-    %x_65:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %73:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_65:f32 = let %73
     store_vector_element %c, 1u, %x_65
-    %x_67:f32 = load_vector_element %c, 0u
-    %67:vec3<f32> = load %c
-    store %x_54, %67
-    %68:f32 = load_vector_element %x_54, 1u
-    %69:f32 = add %x_67, %68
-    store_vector_element %c, 2u, %69
+    %75:f32 = load_vector_element %c, 0u
+    %x_67:f32 = let %75
+    %77:vec3<f32> = load %c
+    store %x_54, %77
+    %78:f32 = load_vector_element %x_54, 1u
+    %79:f32 = add %x_67, %78
+    store_vector_element %c, 2u, %79
     store %x_74, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
         %x_75:ptr<function, i32, read_write> = var
-        %71:i32 = load %x_74
-        %72:bool = lt %71, 3i
-        if %72 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+        %81:i32 = load %x_74
+        %82:bool = lt %81, 3i
+        if %82 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %73:i32 = load %x_74
-        %74:f32 = load_vector_element %c, %73
-        %75:bool = gte %74, 1.0f
-        if %75 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %76:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %77:f32 = load_vector_element %76, 0u
-            %78:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %79:f32 = load_vector_element %78, 1u
-            %80:bool = gt %77, %79
-            if %80 [t: %b17] {  # if_7
-              %b17 = block {  # true
-                discard
+        %83:i32 = load %x_74
+        %84:f32 = load_vector_element %c, %83
+        %85:bool = gte %84, 1.0f
+        if %85 [t: $B16] {  # if_6
+          $B16: {  # true
+            %86:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %87:f32 = load_vector_element %86, 0u
+            %88:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %89:f32 = load_vector_element %88, 1u
+            %90:bool = gt %87, %89
+            if %90 [t: $B17] {  # if_7
+              $B17: {  # true
+                store %continue_execution, false
                 exit_if  # if_7
               }
             }
-            %81:i32 = load %x_74
-            %82:i32 = load %x_74
-            %83:f32 = load_vector_element %c, %82
-            %84:i32 = load %x_74
-            %85:f32 = load_vector_element %c, %84
-            %86:f32 = mul %83, %85
-            store_vector_element %c, %81, %86
+            %91:i32 = load %x_74
+            %92:i32 = load %x_74
+            %93:f32 = load_vector_element %c, %92
+            %94:i32 = load %x_74
+            %95:f32 = load_vector_element %c, %94
+            %96:f32 = mul %93, %95
+            store_vector_element %c, %91, %96
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %87:i32 = load %x_74
-        %88:i32 = add %87, 1i
-        store %x_75, %88
-        %89:i32 = load %x_75
-        store %x_74, %89
-        next_iteration %b12
+      $B13: {  # continuing
+        %97:i32 = load %x_74
+        %98:i32 = add %97, 1i
+        store %x_75, %98
+        %99:i32 = load %x_75
+        store %x_74, %99
+        next_iteration  # -> $B12
       }
     }
-    %90:vec3<f32> = load %c
-    %91:vec3<f32> = abs %90
-    %x_97:vec3<f32> = normalize %91
-    %93:f32 = access %x_97, 0u
-    %94:f32 = access %x_97, 1u
-    %95:f32 = access %x_97, 2u
-    %96:vec4<f32> = construct %93, %94, %95, 1.0f
-    store %x_GLF_color, %96
+    %100:vec3<f32> = load %c
+    %101:vec3<f32> = abs %100
+    %102:vec3<f32> = normalize %101
+    %x_97:vec3<f32> = let %102
+    %104:f32 = access %x_97, 0u
+    %105:f32 = access %x_97, 1u
+    %106:f32 = access %x_97, 2u
+    %107:vec4<f32> = construct %104, %105, %106, 1.0f
+    store %x_GLF_color, %107
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b18 {
-  %b18 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B18: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %99:void = call %main_1
-    %100:vec4<f32> = load %x_GLF_color
-    %101:main_out = construct %100
-    ret %101
+    %110:void = call %main_1
+    %111:vec4<f32> = load %x_GLF_color
+    %112:main_out = construct %111
+    %113:bool = load %continue_execution
+    %114:bool = eq %113, false
+    if %114 [t: $B19] {  # if_8
+      $B19: {  # true
+        terminate_invocation
+      }
+    }
+    ret %112
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B20: {
+    %117:bool = eq %rhs, 0i
+    %118:bool = eq %lhs, -2147483648i
+    %119:bool = eq %rhs, -1i
+    %120:bool = and %118, %119
+    %121:bool = or %117, %120
+    %122:i32 = select %rhs, 1i, %121
+    %123:i32 = let %122
+    %124:i32 = div %lhs, %123
+    %125:i32 = mul %124, %123
+    %126:i32 = sub %lhs, %125
+    ret %126
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.msl
index 53155ac..1c92161 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-divided-1/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,111 +12,118 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_16:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %x_104:ptr<function, f32, read_write> = var
     %x_104_phi:ptr<function, f32, read_write> = var
     %x_107_phi:ptr<function, i32, read_write> = var
     store %x_104_phi, -0.5f
     store %x_107_phi, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_126:ptr<function, f32, read_write> = var
         %x_125:ptr<function, f32, read_write> = var
         %x_108:ptr<function, i32, read_write> = var
         %x_105_phi:ptr<function, f32, read_write> = var
-        %15:f32 = load %x_104_phi
-        store %x_104, %15
-        %x_107:i32 = load %x_107_phi
-        %17:bool = lt %x_107, 800i
-        if %17 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %16:f32 = load %x_104_phi
+        store %x_104, %16
+        %17:i32 = load %x_107_phi
+        %x_107:i32 = let %17
+        %19:bool = lt %x_107, 800i
+        if %19 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %x_124:ptr<function, f32, read_write> = var
         %x_125_phi:ptr<function, f32, read_write> = var
-        %20:i32 = mod %x_107, 32i
-        %21:bool = eq %20, 0i
-        if %21 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %22:f32 = load %x_104
-            %23:f32 = add %22, 0.40000000596046447754f
-            store %x_126, %23
-            %24:f32 = load %x_126
-            store %x_105_phi, %24
+        %22:i32 = call %tint_mod_i32, %x_107, 32i
+        %24:bool = eq %22, 0i
+        if %24 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %25:f32 = load %x_104
+            %26:f32 = add %25, 0.40000000596046447754f
+            store %x_126, %26
+            %27:f32 = load %x_126
+            store %x_105_phi, %27
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_118:f32 = load %thirty_two
-            %26:f32 = load %x_104
-            store %x_125_phi, %26
-            %27:f32 = convert %x_107
-            %28:f32 = round %x_118
-            %29:f32 = convert %x_107
-            %30:f32 = round %x_118
-            %31:f32 = div %29, %30
-            %32:f32 = floor %31
-            %33:f32 = mul %28, %32
-            %34:f32 = sub %27, %33
-            %35:bool = lte %34, 0.00999999977648258209f
-            if %35 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %36:f32 = load %x_104
-                %37:f32 = add %36, 100.0f
-                store %x_124, %37
-                %38:f32 = load %x_124
-                store %x_125_phi, %38
+          $B8: {  # false
+            %28:f32 = load %thirty_two
+            %x_118:f32 = let %28
+            %30:f32 = load %x_104
+            store %x_125_phi, %30
+            %31:f32 = convert %x_107
+            %32:f32 = let %31
+            %33:f32 = round %x_118
+            %34:f32 = let %33
+            %35:f32 = convert %x_107
+            %36:f32 = let %35
+            %37:f32 = round %x_118
+            %38:f32 = div %36, %37
+            %39:f32 = floor %38
+            %40:f32 = mul %34, %39
+            %41:f32 = sub %32, %40
+            %42:bool = lte %41, 0.00999999977648258209f
+            if %42 [t: $B9] {  # if_3
+              $B9: {  # true
+                %43:f32 = load %x_104
+                %44:f32 = add %43, 100.0f
+                store %x_124, %44
+                %45:f32 = load %x_124
+                store %x_125_phi, %45
                 exit_if  # if_3
               }
             }
-            %39:f32 = load %x_125_phi
-            store %x_125, %39
-            %40:f32 = load %x_125
-            store %x_105_phi, %40
+            %46:f32 = load %x_125_phi
+            store %x_125, %46
+            %47:f32 = load %x_125
+            store %x_105_phi, %47
             exit_if  # if_2
           }
         }
         %x_105:ptr<function, f32, read_write> = var
-        %42:f32 = load %x_105_phi
-        store %x_105, %42
-        %x_128:f32 = load %limit
-        %44:f32 = convert %x_107
-        %45:bool = gte %44, %x_128
-        if %45 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %46:f32 = load %x_105
-            ret %46
+        %49:f32 = load %x_105_phi
+        store %x_105, %49
+        %50:f32 = load %limit
+        %x_128:f32 = let %50
+        %52:f32 = convert %x_107
+        %53:bool = gte %52, %x_128
+        if %53 [t: $B10] {  # if_4
+          $B10: {  # true
+            %54:f32 = load %x_105
+            ret %54
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %47:i32 = add %x_107, 1i
-        store %x_108, %47
-        %48:f32 = load %x_105
-        store %x_104_phi, %48
-        %49:i32 = load %x_108
-        store %x_107_phi, %49
-        next_iteration %b3
+      $B4: {  # continuing
+        %55:i32 = add %x_107, 1i
+        store %x_108, %55
+        %56:f32 = load %x_105
+        store %x_104_phi, %56
+        %57:i32 = load %x_108
+        store %x_107_phi, %57
+        next_iteration  # -> $B3
       }
     }
-    %50:f32 = load %x_104
-    ret %50
+    %58:f32 = load %x_104
+    ret %58
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %param:ptr<function, f32, read_write> = var
     %param_1:ptr<function, f32, read_write> = var
@@ -125,90 +132,129 @@
     %x_54:ptr<function, vec3<f32>, read_write> = var
     %x_74_phi:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %59:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-    %x_56:f32 = load_vector_element %59, 0u
-    %61:f32 = mul %x_56, 0.125f
-    %x_58:f32 = round %61
-    %x_60:f32 = load_vector_element %gl_FragCoord, 0u
+    %67:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+    %68:f32 = load_vector_element %67, 0u
+    %x_56:f32 = let %68
+    %70:f32 = mul %x_56, 0.125f
+    %71:f32 = round %70
+    %x_58:f32 = let %71
+    %73:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_60:f32 = let %73
     store %param, %x_60
     store %param_1, %x_58
-    %x_61:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %75:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_61:f32 = let %75
     store_vector_element %c, 0u, %x_61
-    %x_64:f32 = load_vector_element %gl_FragCoord, 1u
+    %77:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_64:f32 = let %77
     store %param_2, %x_64
     store %param_3, %x_58
-    %x_65:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %79:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_65:f32 = let %79
     store_vector_element %c, 1u, %x_65
-    %x_67:f32 = load_vector_element %c, 0u
-    %x_68:vec3<f32> = load %c
+    %81:f32 = load_vector_element %c, 0u
+    %x_67:f32 = let %81
+    %83:vec3<f32> = load %c
+    %x_68:vec3<f32> = let %83
     store %x_54, %x_68
-    %x_70:f32 = load_vector_element %x_54, 1u
-    %70:f32 = add %x_67, %x_70
-    store_vector_element %c, 2u, %70
+    %85:f32 = load_vector_element %x_54, 1u
+    %x_70:f32 = let %85
+    %87:f32 = add %x_67, %x_70
+    store_vector_element %c, 2u, %87
     store %x_74_phi, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
         %x_75:ptr<function, i32, read_write> = var
-        %x_74:i32 = load %x_74_phi
-        %73:bool = lt %x_74, 3i
-        if %73 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+        %89:i32 = load %x_74_phi
+        %x_74:i32 = let %89
+        %91:bool = lt %x_74, 3i
+        if %91 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_81:f32 = load_vector_element %c, %x_74
-        %75:bool = gte %x_81, 1.0f
-        if %75 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %76:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %x_86:f32 = load_vector_element %76, 0u
-            %78:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
-            %x_88:f32 = load_vector_element %78, 1u
-            %80:bool = gt %x_86, %x_88
-            if %80 [t: %b17] {  # if_7
-              %b17 = block {  # true
-                discard
+        %92:f32 = load_vector_element %c, %x_74
+        %x_81:f32 = let %92
+        %94:bool = gte %x_81, 1.0f
+        if %94 [t: $B16] {  # if_6
+          $B16: {  # true
+            %95:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %96:f32 = load_vector_element %95, 0u
+            %x_86:f32 = let %96
+            %98:ptr<uniform, vec2<f32>, read> = access %x_16, 0u
+            %99:f32 = load_vector_element %98, 1u
+            %x_88:f32 = let %99
+            %101:bool = gt %x_86, %x_88
+            if %101 [t: $B17] {  # if_7
+              $B17: {  # true
+                store %continue_execution, false
                 exit_if  # if_7
               }
             }
-            %x_92:f32 = load_vector_element %c, %x_74
-            %x_93:f32 = load_vector_element %c, %x_74
-            %83:f32 = mul %x_92, %x_93
-            store_vector_element %c, %x_74, %83
+            %102:f32 = load_vector_element %c, %x_74
+            %x_92:f32 = let %102
+            %104:f32 = load_vector_element %c, %x_74
+            %x_93:f32 = let %104
+            %106:f32 = mul %x_92, %x_93
+            store_vector_element %c, %x_74, %106
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %84:i32 = add %x_74, 1i
-        store %x_75, %84
-        %85:i32 = load %x_75
-        store %x_74_phi, %85
-        next_iteration %b12
+      $B13: {  # continuing
+        %107:i32 = add %x_74, 1i
+        store %x_75, %107
+        %108:i32 = load %x_75
+        store %x_74_phi, %108
+        next_iteration  # -> $B12
       }
     }
-    %x_95:vec3<f32> = load %c
-    %87:vec3<f32> = abs %x_95
-    %x_97:vec3<f32> = normalize %87
-    %89:f32 = access %x_97, 0u
-    %90:f32 = access %x_97, 1u
-    %91:f32 = access %x_97, 2u
-    %92:vec4<f32> = construct %89, %90, %91, 1.0f
-    store %x_GLF_color, %92
+    %109:vec3<f32> = load %c
+    %x_95:vec3<f32> = let %109
+    %111:vec3<f32> = abs %x_95
+    %112:vec3<f32> = normalize %111
+    %x_97:vec3<f32> = let %112
+    %114:f32 = access %x_97, 0u
+    %115:f32 = access %x_97, 1u
+    %116:f32 = access %x_97, 2u
+    %117:vec4<f32> = construct %114, %115, %116, 1.0f
+    store %x_GLF_color, %117
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b18 {
-  %b18 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B18: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %95:void = call %main_1
-    %96:vec4<f32> = load %x_GLF_color
-    %97:main_out = construct %96
-    ret %97
+    %120:void = call %main_1
+    %121:vec4<f32> = load %x_GLF_color
+    %122:main_out = construct %121
+    %123:bool = load %continue_execution
+    %124:bool = eq %123, false
+    if %124 [t: $B19] {  # if_8
+      $B19: {  # true
+        terminate_invocation
+      }
+    }
+    ret %122
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B20: {
+    %127:bool = eq %rhs, 0i
+    %128:bool = eq %lhs, -2147483648i
+    %129:bool = eq %rhs, -1i
+    %130:bool = and %128, %129
+    %131:bool = or %127, %130
+    %132:i32 = select %rhs, 1i, %131
+    %133:i32 = let %132
+    %134:i32 = div %lhs, %133
+    %135:i32 = mul %134, %133
+    %136:i32 = sub %lhs, %135
+    ret %136
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.msl
index 3aced45..83eee8e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,90 +12,96 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_19:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %10:i32 = load %i
         %11:bool = lt %10, 800i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %12:i32 = load %i
-        %13:i32 = mod %12, 32i
-        %14:bool = eq %13, 0i
-        if %14 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %15:f32 = load %result
-            %16:f32 = add %15, 0.40000000596046447754f
-            store %result, %16
+        %13:i32 = call %tint_mod_i32, %12, 32i
+        %15:bool = eq %13, 0i
+        if %15 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %16:f32 = load %result
+            %17:f32 = add %16, 0.40000000596046447754f
+            store %result, %17
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_157:f32 = load %thirty_two
-            %18:i32 = load %i
-            %19:f32 = convert %18
-            %20:f32 = round %x_157
-            %21:i32 = load %i
-            %22:f32 = convert %21
+          $B8: {  # false
+            %18:f32 = load %thirty_two
+            %x_157:f32 = let %18
+            %20:i32 = load %i
+            %21:f32 = convert %20
+            %22:f32 = let %21
             %23:f32 = round %x_157
-            %24:f32 = div %22, %23
-            %25:f32 = floor %24
-            %26:f32 = mul %20, %25
-            %27:f32 = sub %19, %26
-            %28:bool = lte %27, 0.00999999977648258209f
-            if %28 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %29:f32 = load %result
-                %30:f32 = add %29, 100.0f
-                store %result, %30
+            %24:f32 = let %23
+            %25:i32 = load %i
+            %26:f32 = convert %25
+            %27:f32 = let %26
+            %28:f32 = round %x_157
+            %29:f32 = div %27, %28
+            %30:f32 = floor %29
+            %31:f32 = mul %24, %30
+            %32:f32 = sub %22, %31
+            %33:bool = lte %32, 0.00999999977648258209f
+            if %33 [t: $B9] {  # if_3
+              $B9: {  # true
+                %34:f32 = load %result
+                %35:f32 = add %34, 100.0f
+                store %result, %35
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %31:i32 = load %i
-        %32:f32 = convert %31
-        %33:f32 = load %limit
-        %34:bool = gte %32, %33
-        if %34 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_171:f32 = load %result
+        %36:i32 = load %i
+        %37:f32 = convert %36
+        %38:f32 = load %limit
+        %39:bool = gte %37, %38
+        if %39 [t: $B10] {  # if_4
+          $B10: {  # true
+            %40:f32 = load %result
+            %x_171:f32 = let %40
             ret %x_171
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %36:i32 = load %i
-        %37:i32 = add %36, 1i
-        store %i, %37
-        next_iteration %b3
+      $B4: {  # continuing
+        %42:i32 = load %i
+        %43:i32 = add %42, 1i
+        store %i, %43
+        next_iteration  # -> $B3
       }
     }
-    %x_174:f32 = load %result
+    %44:f32 = load %result
+    %x_174:f32 = let %44
     ret %x_174
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -106,131 +112,151 @@
     %i_1:ptr<function, i32, read_write> = var
     %j:ptr<function, f32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %49:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %50:f32 = load_vector_element %49, 0u
-    %51:f32 = div %50, 8.0f
-    %52:f32 = round %51
-    store %thirty_two_1, %52
-    %53:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %53
-    %54:f32 = load %thirty_two_1
-    store %param_1, %54
-    %x_69:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %56:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %57:f32 = load_vector_element %56, 0u
+    %58:f32 = div %57, 8.0f
+    %59:f32 = round %58
+    store %thirty_two_1, %59
+    %60:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %60
+    %61:f32 = load %thirty_two_1
+    store %param_1, %61
+    %62:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_69:f32 = let %62
     store_vector_element %c, 0u, %x_69
-    %56:f32 = load_vector_element %gl_FragCoord, 1u
-    store %param_2, %56
-    %57:f32 = load %thirty_two_1
-    store %param_3, %57
-    %x_74:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %64:f32 = load_vector_element %gl_FragCoord, 1u
+    store %param_2, %64
+    %65:f32 = load %thirty_two_1
+    store %param_3, %65
+    %66:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_74:f32 = let %66
     store_vector_element %c, 1u, %x_74
-    %x_77:f32 = load_vector_element %c, 0u
-    if true [t: %b12, f: %b13] {  # if_5
-      %b12 = block {  # true
-        %60:vec3<f32> = load %c
-        store %x_61, %60
+    %68:f32 = load_vector_element %c, 0u
+    %x_77:f32 = let %68
+    if true [t: $B12, f: $B13] {  # if_5
+      $B12: {  # true
+        %70:vec3<f32> = load %c
+        store %x_61, %70
         exit_if  # if_5
       }
-      %b13 = block {  # false
-        %61:vec3<f32> = load %c
-        %62:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-        %63:f32 = load_vector_element %62, 0u
-        %64:vec3<f32> = mul %61, %63
-        store %x_61, %64
+      $B13: {  # false
+        %71:vec3<f32> = load %c
+        %72:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+        %73:f32 = load_vector_element %72, 0u
+        %74:vec3<f32> = mul %71, %73
+        store %x_61, %74
         exit_if  # if_5
       }
     }
-    %65:f32 = load_vector_element %x_61, 1u
-    %66:f32 = add %x_77, %65
-    store_vector_element %c, 2u, %66
+    %75:f32 = load_vector_element %x_61, 1u
+    %76:f32 = add %x_77, %75
+    store_vector_element %c, 2u, %76
     store %i_1, 0i
-    loop [b: %b14, c: %b15] {  # loop_2
-      %b14 = block {  # body
-        %67:i32 = load %i_1
-        %68:bool = lt %67, 3i
-        if %68 [t: %b16, f: %b17] {  # if_6
-          %b16 = block {  # true
+    loop [b: $B14, c: $B15] {  # loop_2
+      $B14: {  # body
+        %77:i32 = load %i_1
+        %78:bool = lt %77, 3i
+        if %78 [t: $B16, f: $B17] {  # if_6
+          $B16: {  # true
             exit_if  # if_6
           }
-          %b17 = block {  # false
+          $B17: {  # false
             exit_loop  # loop_2
           }
         }
-        %69:i32 = load %i_1
-        %70:f32 = load_vector_element %c, %69
-        %71:bool = gte %70, 1.0f
-        if %71 [t: %b18] {  # if_7
-          %b18 = block {  # true
-            %x_103:i32 = load %i_1
-            %73:i32 = load %i_1
-            %74:f32 = load_vector_element %c, %73
-            %75:i32 = load %i_1
-            %76:f32 = load_vector_element %c, %75
-            %77:f32 = mul %74, %76
-            store_vector_element %c, %x_103, %77
+        %79:i32 = load %i_1
+        %80:f32 = load_vector_element %c, %79
+        %81:bool = gte %80, 1.0f
+        if %81 [t: $B18] {  # if_7
+          $B18: {  # true
+            %82:i32 = load %i_1
+            %x_103:i32 = let %82
+            %84:i32 = load %i_1
+            %85:f32 = load_vector_element %c, %84
+            %86:i32 = load %i_1
+            %87:f32 = load_vector_element %c, %86
+            %88:f32 = mul %85, %87
+            store_vector_element %c, %x_103, %88
             exit_if  # if_7
           }
         }
         store %j, 0.0f
-        loop [b: %b19, c: %b20] {  # loop_3
-          %b19 = block {  # body
-            %78:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-            %79:f32 = load_vector_element %78, 0u
-            %80:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-            %81:f32 = load_vector_element %80, 1u
-            %82:bool = gt %79, %81
-            if %82 [t: %b21, f: %b22] {  # if_8
-              %b21 = block {  # true
+        loop [b: $B19, c: $B20] {  # loop_3
+          $B19: {  # body
+            %89:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+            %90:f32 = load_vector_element %89, 0u
+            %91:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+            %92:f32 = load_vector_element %91, 1u
+            %93:bool = gt %90, %92
+            if %93 [t: $B21, f: $B22] {  # if_8
+              $B21: {  # true
                 exit_if  # if_8
               }
-              %b22 = block {  # false
+              $B22: {  # false
                 exit_loop  # loop_3
               }
             }
-            %83:f32 = load %j
-            %84:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-            %85:f32 = load_vector_element %84, 0u
-            %86:bool = gte %83, %85
-            if %86 [t: %b23] {  # if_9
-              %b23 = block {  # true
+            %94:f32 = load %j
+            %95:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+            %96:f32 = load_vector_element %95, 0u
+            %97:bool = gte %94, %96
+            if %97 [t: $B23] {  # if_9
+              $B23: {  # true
                 exit_loop  # loop_3
               }
             }
-            %87:f32 = load %j
-            %88:f32 = add %87, 1.0f
-            store %j, %88
-            continue %b20
+            %98:f32 = load %j
+            %99:f32 = add %98, 1.0f
+            store %j, %99
+            continue  # -> $B20
           }
-          %b20 = block {  # continuing
-            next_iteration %b19
+          $B20: {  # continuing
+            next_iteration  # -> $B19
           }
         }
-        continue %b15
+        continue  # -> $B15
       }
-      %b15 = block {  # continuing
-        %89:i32 = load %i_1
-        %90:i32 = add %89, 1i
-        store %i_1, %90
-        next_iteration %b14
+      $B15: {  # continuing
+        %100:i32 = load %i_1
+        %101:i32 = add %100, 1i
+        store %i_1, %101
+        next_iteration  # -> $B14
       }
     }
-    %91:vec3<f32> = load %c
-    %92:vec3<f32> = abs %91
-    %x_134:vec3<f32> = normalize %92
-    %94:f32 = access %x_134, 0u
-    %95:f32 = access %x_134, 1u
-    %96:f32 = access %x_134, 2u
-    %97:vec4<f32> = construct %94, %95, %96, 1.0f
-    store %x_GLF_color, %97
+    %102:vec3<f32> = load %c
+    %103:vec3<f32> = abs %102
+    %104:vec3<f32> = normalize %103
+    %x_134:vec3<f32> = let %104
+    %106:f32 = access %x_134, 0u
+    %107:f32 = access %x_134, 1u
+    %108:f32 = access %x_134, 2u
+    %109:vec4<f32> = construct %106, %107, %108, 1.0f
+    store %x_GLF_color, %109
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b24 {
-  %b24 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B24: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %100:void = call %main_1
-    %101:vec4<f32> = load %x_GLF_color
-    %102:main_out = construct %101
-    ret %102
+    %112:void = call %main_1
+    %113:vec4<f32> = load %x_GLF_color
+    %114:main_out = construct %113
+    ret %114
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B25: {
+    %117:bool = eq %rhs, 0i
+    %118:bool = eq %lhs, -2147483648i
+    %119:bool = eq %rhs, -1i
+    %120:bool = and %118, %119
+    %121:bool = or %117, %120
+    %122:i32 = select %rhs, 1i, %121
+    %123:i32 = let %122
+    %124:i32 = div %lhs, %123
+    %125:i32 = mul %124, %123
+    %126:i32 = sub %lhs, %125
+    ret %126
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.msl
index d4b836c..6d49353 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-true-conditional-simple-loop/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -12,89 +12,103 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_19:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_144:i32 = load %i
-        %11:bool = lt %x_144, 800i
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %10:i32 = load %i
+        %x_144:i32 = let %10
+        %12:bool = lt %x_144, 800i
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_147:i32 = load %i
-        %13:i32 = mod %x_147, 32i
-        %14:bool = eq %13, 0i
-        if %14 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_153:f32 = load %result
-            %16:f32 = add %x_153, 0.40000000596046447754f
-            store %result, %16
+        %13:i32 = load %i
+        %x_147:i32 = let %13
+        %15:i32 = call %tint_mod_i32, %x_147, 32i
+        %17:bool = eq %15, 0i
+        if %17 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %18:f32 = load %result
+            %x_153:f32 = let %18
+            %20:f32 = add %x_153, 0.40000000596046447754f
+            store %result, %20
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_155:i32 = load %i
-            %x_157:f32 = load %thirty_two
-            %19:f32 = convert %x_155
-            %20:f32 = round %x_157
-            %21:f32 = convert %x_155
-            %22:f32 = round %x_157
-            %23:f32 = div %21, %22
-            %24:f32 = floor %23
-            %25:f32 = mul %20, %24
-            %26:f32 = sub %19, %25
-            %27:bool = lte %26, 0.00999999977648258209f
-            if %27 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %x_163:f32 = load %result
-                %29:f32 = add %x_163, 100.0f
-                store %result, %29
+          $B8: {  # false
+            %21:i32 = load %i
+            %x_155:i32 = let %21
+            %23:f32 = load %thirty_two
+            %x_157:f32 = let %23
+            %25:f32 = convert %x_155
+            %26:f32 = let %25
+            %27:f32 = round %x_157
+            %28:f32 = let %27
+            %29:f32 = convert %x_155
+            %30:f32 = let %29
+            %31:f32 = round %x_157
+            %32:f32 = div %30, %31
+            %33:f32 = floor %32
+            %34:f32 = mul %28, %33
+            %35:f32 = sub %26, %34
+            %36:bool = lte %35, 0.00999999977648258209f
+            if %36 [t: $B9] {  # if_3
+              $B9: {  # true
+                %37:f32 = load %result
+                %x_163:f32 = let %37
+                %39:f32 = add %x_163, 100.0f
+                store %result, %39
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %x_165:i32 = load %i
-        %x_167:f32 = load %limit
-        %32:f32 = convert %x_165
-        %33:bool = gte %32, %x_167
-        if %33 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_171:f32 = load %result
+        %40:i32 = load %i
+        %x_165:i32 = let %40
+        %42:f32 = load %limit
+        %x_167:f32 = let %42
+        %44:f32 = convert %x_165
+        %45:bool = gte %44, %x_167
+        if %45 [t: $B10] {  # if_4
+          $B10: {  # true
+            %46:f32 = load %result
+            %x_171:f32 = let %46
             ret %x_171
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_172:i32 = load %i
-        %36:i32 = add %x_172, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %48:i32 = load %i
+        %x_172:i32 = let %48
+        %50:i32 = add %x_172, 1i
+        store %i, %50
+        next_iteration  # -> $B3
       }
     }
-    %x_174:f32 = load %result
+    %51:f32 = load %result
+    %x_174:f32 = let %51
     ret %x_174
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -105,131 +119,174 @@
     %i_1:ptr<function, i32, read_write> = var
     %j:ptr<function, f32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %48:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %x_63:f32 = load_vector_element %48, 0u
-    %50:f32 = div %x_63, 8.0f
-    %51:f32 = round %50
-    store %thirty_two_1, %51
-    %x_67:f32 = load_vector_element %gl_FragCoord, 0u
+    %63:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %64:f32 = load_vector_element %63, 0u
+    %x_63:f32 = let %64
+    %66:f32 = div %x_63, 8.0f
+    %67:f32 = round %66
+    store %thirty_two_1, %67
+    %68:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_67:f32 = let %68
     store %param, %x_67
-    %x_68:f32 = load %thirty_two_1
+    %70:f32 = load %thirty_two_1
+    %x_68:f32 = let %70
     store %param_1, %x_68
-    %x_69:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %72:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_69:f32 = let %72
     store_vector_element %c, 0u, %x_69
-    %x_72:f32 = load_vector_element %gl_FragCoord, 1u
+    %74:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_72:f32 = let %74
     store %param_2, %x_72
-    %x_73:f32 = load %thirty_two_1
+    %76:f32 = load %thirty_two_1
+    %x_73:f32 = let %76
     store %param_3, %x_73
-    %x_74:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %78:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_74:f32 = let %78
     store_vector_element %c, 1u, %x_74
-    %x_77:f32 = load_vector_element %c, 0u
-    if true [t: %b12, f: %b13] {  # if_5
-      %b12 = block {  # true
-        %x_81:vec3<f32> = load %c
+    %80:f32 = load_vector_element %c, 0u
+    %x_77:f32 = let %80
+    if true [t: $B12, f: $B13] {  # if_5
+      $B12: {  # true
+        %82:vec3<f32> = load %c
+        %x_81:vec3<f32> = let %82
         store %x_61, %x_81
         exit_if  # if_5
       }
-      %b13 = block {  # false
-        %x_82:vec3<f32> = load %c
-        %61:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-        %x_84:f32 = load_vector_element %61, 0u
-        %63:vec3<f32> = mul %x_82, %x_84
-        store %x_61, %63
+      $B13: {  # false
+        %84:vec3<f32> = load %c
+        %x_82:vec3<f32> = let %84
+        %86:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+        %87:f32 = load_vector_element %86, 0u
+        %x_84:f32 = let %87
+        %89:vec3<f32> = mul %x_82, %x_84
+        store %x_61, %89
         exit_if  # if_5
       }
     }
-    %x_87:f32 = load_vector_element %x_61, 1u
-    %65:f32 = add %x_77, %x_87
-    store_vector_element %c, 2u, %65
+    %90:f32 = load_vector_element %x_61, 1u
+    %x_87:f32 = let %90
+    %92:f32 = add %x_77, %x_87
+    store_vector_element %c, 2u, %92
     store %i_1, 0i
-    loop [b: %b14, c: %b15] {  # loop_2
-      %b14 = block {  # body
-        %x_94:i32 = load %i_1
-        %67:bool = lt %x_94, 3i
-        if %67 [t: %b16, f: %b17] {  # if_6
-          %b16 = block {  # true
+    loop [b: $B14, c: $B15] {  # loop_2
+      $B14: {  # body
+        %93:i32 = load %i_1
+        %x_94:i32 = let %93
+        %95:bool = lt %x_94, 3i
+        if %95 [t: $B16, f: $B17] {  # if_6
+          $B16: {  # true
             exit_if  # if_6
           }
-          %b17 = block {  # false
+          $B17: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_97:i32 = load %i_1
-        %x_99:f32 = load_vector_element %c, %x_97
-        %70:bool = gte %x_99, 1.0f
-        if %70 [t: %b18] {  # if_7
-          %b18 = block {  # true
-            %x_103:i32 = load %i_1
-            %x_104:i32 = load %i_1
-            %x_106:f32 = load_vector_element %c, %x_104
-            %x_107:i32 = load %i_1
-            %x_109:f32 = load_vector_element %c, %x_107
-            %76:f32 = mul %x_106, %x_109
-            store_vector_element %c, %x_103, %76
+        %96:i32 = load %i_1
+        %x_97:i32 = let %96
+        %98:f32 = load_vector_element %c, %x_97
+        %x_99:f32 = let %98
+        %100:bool = gte %x_99, 1.0f
+        if %100 [t: $B18] {  # if_7
+          $B18: {  # true
+            %101:i32 = load %i_1
+            %x_103:i32 = let %101
+            %103:i32 = load %i_1
+            %x_104:i32 = let %103
+            %105:f32 = load_vector_element %c, %x_104
+            %x_106:f32 = let %105
+            %107:i32 = load %i_1
+            %x_107:i32 = let %107
+            %109:f32 = load_vector_element %c, %x_107
+            %x_109:f32 = let %109
+            %111:f32 = mul %x_106, %x_109
+            store_vector_element %c, %x_103, %111
             exit_if  # if_7
           }
         }
         store %j, 0.0f
-        loop [b: %b19, c: %b20] {  # loop_3
-          %b19 = block {  # body
-            %77:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-            %x_117:f32 = load_vector_element %77, 0u
-            %79:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-            %x_119:f32 = load_vector_element %79, 1u
-            %81:bool = gt %x_117, %x_119
-            if %81 [t: %b21, f: %b22] {  # if_8
-              %b21 = block {  # true
+        loop [b: $B19, c: $B20] {  # loop_3
+          $B19: {  # body
+            %112:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+            %113:f32 = load_vector_element %112, 0u
+            %x_117:f32 = let %113
+            %115:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+            %116:f32 = load_vector_element %115, 1u
+            %x_119:f32 = let %116
+            %118:bool = gt %x_117, %x_119
+            if %118 [t: $B21, f: $B22] {  # if_8
+              $B21: {  # true
                 exit_if  # if_8
               }
-              %b22 = block {  # false
+              $B22: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_122:f32 = load %j
-            %83:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-            %x_124:f32 = load_vector_element %83, 0u
-            %85:bool = gte %x_122, %x_124
-            if %85 [t: %b23] {  # if_9
-              %b23 = block {  # true
+            %119:f32 = load %j
+            %x_122:f32 = let %119
+            %121:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+            %122:f32 = load_vector_element %121, 0u
+            %x_124:f32 = let %122
+            %124:bool = gte %x_122, %x_124
+            if %124 [t: $B23] {  # if_9
+              $B23: {  # true
                 exit_loop  # loop_3
               }
             }
-            %x_128:f32 = load %j
-            %87:f32 = add %x_128, 1.0f
-            store %j, %87
-            continue %b20
+            %125:f32 = load %j
+            %x_128:f32 = let %125
+            %127:f32 = add %x_128, 1.0f
+            store %j, %127
+            continue  # -> $B20
           }
-          %b20 = block {  # continuing
-            next_iteration %b19
+          $B20: {  # continuing
+            next_iteration  # -> $B19
           }
         }
-        continue %b15
+        continue  # -> $B15
       }
-      %b15 = block {  # continuing
-        %x_130:i32 = load %i_1
-        %89:i32 = add %x_130, 1i
-        store %i_1, %89
-        next_iteration %b14
+      $B15: {  # continuing
+        %128:i32 = load %i_1
+        %x_130:i32 = let %128
+        %130:i32 = add %x_130, 1i
+        store %i_1, %130
+        next_iteration  # -> $B14
       }
     }
-    %x_132:vec3<f32> = load %c
-    %91:vec3<f32> = abs %x_132
-    %x_134:vec3<f32> = normalize %91
-    %93:f32 = access %x_134, 0u
-    %94:f32 = access %x_134, 1u
-    %95:f32 = access %x_134, 2u
-    %96:vec4<f32> = construct %93, %94, %95, 1.0f
-    store %x_GLF_color, %96
+    %131:vec3<f32> = load %c
+    %x_132:vec3<f32> = let %131
+    %133:vec3<f32> = abs %x_132
+    %134:vec3<f32> = normalize %133
+    %x_134:vec3<f32> = let %134
+    %136:f32 = access %x_134, 0u
+    %137:f32 = access %x_134, 1u
+    %138:f32 = access %x_134, 2u
+    %139:vec4<f32> = construct %136, %137, %138, 1.0f
+    store %x_GLF_color, %139
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b24 {
-  %b24 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B24: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %99:void = call %main_1
-    %100:vec4<f32> = load %x_GLF_color
-    %101:main_out = construct %100
-    ret %101
+    %142:void = call %main_1
+    %143:vec4<f32> = load %x_GLF_color
+    %144:main_out = construct %143
+    ret %144
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B25: {
+    %147:bool = eq %rhs, 0i
+    %148:bool = eq %lhs, -2147483648i
+    %149:bool = eq %rhs, -1i
+    %150:bool = and %148, %149
+    %151:bool = or %147, %150
+    %152:i32 = select %rhs, 1i, %151
+    %153:i32 = let %152
+    %154:i32 = div %lhs, %153
+    %155:i32 = mul %154, %153
+    %156:i32 = sub %lhs, %155
+    ret %156
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.msl
index 5d2b07b..f0cc3fa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,89 +8,95 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %9:i32 = load %i
         %10:bool = lt %9, 800i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
         %11:i32 = load %i
-        %12:i32 = mod %11, 32i
-        %13:bool = eq %12, 0i
-        if %13 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %14:f32 = load %result
-            %15:f32 = add %14, 0.40000000596046447754f
-            store %result, %15
+        %12:i32 = call %tint_mod_i32, %11, 32i
+        %14:bool = eq %12, 0i
+        if %14 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %15:f32 = load %result
+            %16:f32 = add %15, 0.40000000596046447754f
+            store %result, %16
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_149:f32 = load %thirty_two
-            %17:i32 = load %i
-            %18:f32 = convert %17
-            %19:f32 = round %x_149
-            %20:i32 = load %i
-            %21:f32 = convert %20
+          $B8: {  # false
+            %17:f32 = load %thirty_two
+            %x_149:f32 = let %17
+            %19:i32 = load %i
+            %20:f32 = convert %19
+            %21:f32 = let %20
             %22:f32 = round %x_149
-            %23:f32 = div %21, %22
-            %24:f32 = floor %23
-            %25:f32 = mul %19, %24
-            %26:f32 = sub %18, %25
-            %27:bool = lte %26, 0.00999999977648258209f
-            if %27 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %28:f32 = load %result
-                %29:f32 = add %28, 100.0f
-                store %result, %29
+            %23:f32 = let %22
+            %24:i32 = load %i
+            %25:f32 = convert %24
+            %26:f32 = let %25
+            %27:f32 = round %x_149
+            %28:f32 = div %26, %27
+            %29:f32 = floor %28
+            %30:f32 = mul %23, %29
+            %31:f32 = sub %21, %30
+            %32:bool = lte %31, 0.00999999977648258209f
+            if %32 [t: $B9] {  # if_3
+              $B9: {  # true
+                %33:f32 = load %result
+                %34:f32 = add %33, 100.0f
+                store %result, %34
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %30:i32 = load %i
-        %31:f32 = convert %30
-        %32:f32 = load %limit
-        %33:bool = gte %31, %32
-        if %33 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_163:f32 = load %result
+        %35:i32 = load %i
+        %36:f32 = convert %35
+        %37:f32 = load %limit
+        %38:bool = gte %36, %37
+        if %38 [t: $B10] {  # if_4
+          $B10: {  # true
+            %39:f32 = load %result
+            %x_163:f32 = let %39
             ret %x_163
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %35:i32 = load %i
-        %36:i32 = add %35, 1i
-        store %i, %36
-        next_iteration %b3
+      $B4: {  # continuing
+        %41:i32 = load %i
+        %42:i32 = add %41, 1i
+        store %i, %42
+        next_iteration  # -> $B3
       }
     }
-    %x_166:f32 = load %result
+    %43:f32 = load %result
+    %x_166:f32 = let %43
     ret %x_166
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -99,101 +105,123 @@
     %param_3:ptr<function, f32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %46:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %47:f32 = load_vector_element %46, 0u
-    %48:f32 = div %47, 8.0f
-    %49:f32 = round %48
-    store %thirty_two_1, %49
-    %50:f32 = load_vector_element %gl_FragCoord, 0u
-    store %param, %50
-    %51:f32 = load %thirty_two_1
-    store %param_1, %51
-    %x_69:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %53:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %54:f32 = load_vector_element %53, 0u
+    %55:f32 = div %54, 8.0f
+    %56:f32 = round %55
+    store %thirty_two_1, %56
+    %57:f32 = load_vector_element %gl_FragCoord, 0u
+    store %param, %57
+    %58:f32 = load %thirty_two_1
+    store %param_1, %58
+    %59:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_69:f32 = let %59
     store_vector_element %c, 0u, %x_69
-    %53:f32 = load_vector_element %gl_FragCoord, 1u
-    store %param_2, %53
-    %54:f32 = load %thirty_two_1
-    store %param_3, %54
-    %x_74:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %61:f32 = load_vector_element %gl_FragCoord, 1u
+    store %param_2, %61
+    %62:f32 = load %thirty_two_1
+    store %param_3, %62
+    %63:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_74:f32 = let %63
     store_vector_element %c, 1u, %x_74
-    %56:f32 = load_vector_element %c, 0u
-    %57:f32 = load_vector_element %c, 1u
-    %58:vec2<f32> = construct %56, %57
-    %59:f32 = load_vector_element %c, 2u
-    %60:vec2<f32> = construct %59, 1.0f
-    %x_87:mat4x2<f32> = construct %58, %60, vec2<f32>(1.0f, 0.0f), vec2<f32>(1.0f, 0.0f)
-    %62:vec3<f32> = load %c
-    %63:vec3<f32> = mul %62, mat3x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f))
-    %64:f32 = access %63, 0u
-    %65:f32 = access %x_87, 0u, 0u
-    %66:f32 = access %x_87, 0u, 1u
-    %67:f32 = access %x_87, 1u, 0u
-    %68:vec3<f32> = construct %65, %66, %67
-    %69:f32 = access %68, 1u
-    %70:f32 = add %64, %69
-    store_vector_element %c, 2u, %70
+    %65:f32 = load_vector_element %c, 0u
+    %66:f32 = load_vector_element %c, 1u
+    %67:vec2<f32> = construct %65, %66
+    %68:vec2<f32> = let %67
+    %69:f32 = load_vector_element %c, 2u
+    %70:vec2<f32> = construct %69, 1.0f
+    %71:mat4x2<f32> = construct %68, %70, vec2<f32>(1.0f, 0.0f), vec2<f32>(1.0f, 0.0f)
+    %x_87:mat4x2<f32> = let %71
+    %73:vec3<f32> = load %c
+    %74:vec3<f32> = mul %73, mat3x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f))
+    %75:f32 = access %74, 0u
+    %76:f32 = let %75
+    %77:f32 = access %x_87, 0u, 0u
+    %78:f32 = access %x_87, 0u, 1u
+    %79:f32 = access %x_87, 1u, 0u
+    %80:vec3<f32> = construct %77, %78, %79
+    %81:f32 = access %80, 1u
+    %82:f32 = add %76, %81
+    store_vector_element %c, 2u, %82
     store %i_1, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
-        %71:i32 = load %i_1
-        %72:bool = lt %71, 3i
-        if %72 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
+        %83:i32 = load %i_1
+        %84:bool = lt %83, 3i
+        if %84 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %73:i32 = load %i_1
-        %74:f32 = load_vector_element %c, %73
-        %75:bool = gte %74, 1.0f
-        if %75 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_108:i32 = load %i_1
-            %77:i32 = load %i_1
-            %78:f32 = load_vector_element %c, %77
-            %79:i32 = load %i_1
-            %80:f32 = load_vector_element %c, %79
-            %81:f32 = mul %78, %80
-            store_vector_element %c, %x_108, %81
-            %82:f32 = load_vector_element %gl_FragCoord, 1u
-            %83:bool = lt %82, 0.0f
-            if %83 [t: %b17] {  # if_7
-              %b17 = block {  # true
+        %85:i32 = load %i_1
+        %86:f32 = load_vector_element %c, %85
+        %87:bool = gte %86, 1.0f
+        if %87 [t: $B16] {  # if_6
+          $B16: {  # true
+            %88:i32 = load %i_1
+            %x_108:i32 = let %88
+            %90:i32 = load %i_1
+            %91:f32 = load_vector_element %c, %90
+            %92:i32 = load %i_1
+            %93:f32 = load_vector_element %c, %92
+            %94:f32 = mul %91, %93
+            store_vector_element %c, %x_108, %94
+            %95:f32 = load_vector_element %gl_FragCoord, 1u
+            %96:bool = lt %95, 0.0f
+            if %96 [t: $B17] {  # if_7
+              $B17: {  # true
                 exit_loop  # loop_2
               }
             }
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %84:i32 = load %i_1
-        %85:i32 = add %84, 1i
-        store %i_1, %85
-        next_iteration %b12
+      $B13: {  # continuing
+        %97:i32 = load %i_1
+        %98:i32 = add %97, 1i
+        store %i_1, %98
+        next_iteration  # -> $B12
       }
     }
-    %86:vec3<f32> = load %c
-    %87:vec3<f32> = abs %86
-    %x_126:vec3<f32> = normalize %87
-    %89:f32 = access %x_126, 0u
-    %90:f32 = access %x_126, 1u
-    %91:f32 = access %x_126, 2u
-    %92:vec4<f32> = construct %89, %90, %91, 1.0f
-    store %x_GLF_color, %92
+    %99:vec3<f32> = load %c
+    %100:vec3<f32> = abs %99
+    %101:vec3<f32> = normalize %100
+    %x_126:vec3<f32> = let %101
+    %103:f32 = access %x_126, 0u
+    %104:f32 = access %x_126, 1u
+    %105:f32 = access %x_126, 2u
+    %106:vec4<f32> = construct %103, %104, %105, 1.0f
+    store %x_GLF_color, %106
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b18 {
-  %b18 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B18: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %95:void = call %main_1
-    %96:vec4<f32> = load %x_GLF_color
-    %97:main_out = construct %96
-    ret %97
+    %109:void = call %main_1
+    %110:vec4<f32> = load %x_GLF_color
+    %111:main_out = construct %110
+    ret %111
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B19: {
+    %114:bool = eq %rhs, 0i
+    %115:bool = eq %lhs, -2147483648i
+    %116:bool = eq %rhs, -1i
+    %117:bool = and %115, %116
+    %118:bool = or %114, %117
+    %119:i32 = select %rhs, 1i, %118
+    %120:i32 = let %119
+    %121:i32 = div %lhs, %120
+    %122:i32 = mul %121, %120
+    %123:i32 = sub %lhs, %122
+    ret %123
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.msl
index 583ee90..e193c6b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-colorgrid-modulo-vec3-values-from-matrix/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,88 +8,102 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_13:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 -> %b2 {
-  %b2 = block {
+%compute_value_f1_f1_ = func(%limit:ptr<function, f32, read_write>, %thirty_two:ptr<function, f32, read_write>):f32 {
+  $B2: {
     %result:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     store %result, -0.5f
     store %i, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_136:i32 = load %i
-        %10:bool = lt %x_136, 800i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %i
+        %x_136:i32 = let %9
+        %11:bool = lt %x_136, 800i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_139:i32 = load %i
-        %12:i32 = mod %x_139, 32i
-        %13:bool = eq %12, 0i
-        if %13 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_145:f32 = load %result
-            %15:f32 = add %x_145, 0.40000000596046447754f
-            store %result, %15
+        %12:i32 = load %i
+        %x_139:i32 = let %12
+        %14:i32 = call %tint_mod_i32, %x_139, 32i
+        %16:bool = eq %14, 0i
+        if %16 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %17:f32 = load %result
+            %x_145:f32 = let %17
+            %19:f32 = add %x_145, 0.40000000596046447754f
+            store %result, %19
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_147:i32 = load %i
-            %x_149:f32 = load %thirty_two
-            %18:f32 = convert %x_147
-            %19:f32 = round %x_149
-            %20:f32 = convert %x_147
-            %21:f32 = round %x_149
-            %22:f32 = div %20, %21
-            %23:f32 = floor %22
-            %24:f32 = mul %19, %23
-            %25:f32 = sub %18, %24
-            %26:bool = lte %25, 0.00999999977648258209f
-            if %26 [t: %b9] {  # if_3
-              %b9 = block {  # true
-                %x_155:f32 = load %result
-                %28:f32 = add %x_155, 100.0f
-                store %result, %28
+          $B8: {  # false
+            %20:i32 = load %i
+            %x_147:i32 = let %20
+            %22:f32 = load %thirty_two
+            %x_149:f32 = let %22
+            %24:f32 = convert %x_147
+            %25:f32 = let %24
+            %26:f32 = round %x_149
+            %27:f32 = let %26
+            %28:f32 = convert %x_147
+            %29:f32 = let %28
+            %30:f32 = round %x_149
+            %31:f32 = div %29, %30
+            %32:f32 = floor %31
+            %33:f32 = mul %27, %32
+            %34:f32 = sub %25, %33
+            %35:bool = lte %34, 0.00999999977648258209f
+            if %35 [t: $B9] {  # if_3
+              $B9: {  # true
+                %36:f32 = load %result
+                %x_155:f32 = let %36
+                %38:f32 = add %x_155, 100.0f
+                store %result, %38
                 exit_if  # if_3
               }
             }
             exit_if  # if_2
           }
         }
-        %x_157:i32 = load %i
-        %x_159:f32 = load %limit
-        %31:f32 = convert %x_157
-        %32:bool = gte %31, %x_159
-        if %32 [t: %b10] {  # if_4
-          %b10 = block {  # true
-            %x_163:f32 = load %result
+        %39:i32 = load %i
+        %x_157:i32 = let %39
+        %41:f32 = load %limit
+        %x_159:f32 = let %41
+        %43:f32 = convert %x_157
+        %44:bool = gte %43, %x_159
+        if %44 [t: $B10] {  # if_4
+          $B10: {  # true
+            %45:f32 = load %result
+            %x_163:f32 = let %45
             ret %x_163
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_164:i32 = load %i
-        %35:i32 = add %x_164, 1i
-        store %i, %35
-        next_iteration %b3
+      $B4: {  # continuing
+        %47:i32 = load %i
+        %x_164:i32 = let %47
+        %49:i32 = add %x_164, 1i
+        store %i, %49
+        next_iteration  # -> $B3
       }
     }
-    %x_166:f32 = load %result
+    %50:f32 = load %result
+    %x_166:f32 = let %50
     ret %x_166
   }
 }
-%main_1 = func():void -> %b11 {
-  %b11 = block {
+%main_1 = func():void {
+  $B11: {
     %c:ptr<function, vec3<f32>, read_write> = var
     %thirty_two_1:ptr<function, f32, read_write> = var
     %param:ptr<function, f32, read_write> = var
@@ -98,102 +112,140 @@
     %param_3:ptr<function, f32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     store %c, vec3<f32>(7.0f, 8.0f, 9.0f)
-    %45:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
-    %x_63:f32 = load_vector_element %45, 0u
-    %47:f32 = div %x_63, 8.0f
-    %48:f32 = round %47
-    store %thirty_two_1, %48
-    %x_67:f32 = load_vector_element %gl_FragCoord, 0u
+    %60:ptr<uniform, vec2<f32>, read> = access %x_13, 0u
+    %61:f32 = load_vector_element %60, 0u
+    %x_63:f32 = let %61
+    %63:f32 = div %x_63, 8.0f
+    %64:f32 = round %63
+    store %thirty_two_1, %64
+    %65:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_67:f32 = let %65
     store %param, %x_67
-    %x_68:f32 = load %thirty_two_1
+    %67:f32 = load %thirty_two_1
+    %x_68:f32 = let %67
     store %param_1, %x_68
-    %x_69:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %69:f32 = call %compute_value_f1_f1_, %param, %param_1
+    %x_69:f32 = let %69
     store_vector_element %c, 0u, %x_69
-    %x_72:f32 = load_vector_element %gl_FragCoord, 1u
+    %71:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_72:f32 = let %71
     store %param_2, %x_72
-    %x_73:f32 = load %thirty_two_1
+    %73:f32 = load %thirty_two_1
+    %x_73:f32 = let %73
     store %param_3, %x_73
-    %x_74:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %75:f32 = call %compute_value_f1_f1_, %param_2, %param_3
+    %x_74:f32 = let %75
     store_vector_element %c, 1u, %x_74
-    %x_76:vec3<f32> = load %c
-    %x_79:vec3<f32> = load %c
-    %57:f32 = access %x_79, 0u
-    %58:f32 = access %x_79, 1u
-    %59:vec2<f32> = construct %57, %58
-    %60:f32 = access %x_79, 2u
-    %61:vec2<f32> = construct %60, 1.0f
-    %x_87:mat4x2<f32> = construct %59, %61, vec2<f32>(1.0f, 0.0f), vec2<f32>(1.0f, 0.0f)
-    %63:vec3<f32> = mul %x_76, mat3x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f))
-    %64:f32 = access %63, 0u
-    %65:f32 = access %x_87, 0u, 0u
-    %66:f32 = access %x_87, 0u, 1u
-    %67:f32 = access %x_87, 1u, 0u
-    %68:vec3<f32> = construct %65, %66, %67
-    %69:f32 = access %68, 1u
-    %70:f32 = add %64, %69
-    store_vector_element %c, 2u, %70
+    %77:vec3<f32> = load %c
+    %x_76:vec3<f32> = let %77
+    %79:vec3<f32> = load %c
+    %x_79:vec3<f32> = let %79
+    %81:f32 = access %x_79, 0u
+    %82:f32 = access %x_79, 1u
+    %83:vec2<f32> = construct %81, %82
+    %84:vec2<f32> = let %83
+    %85:f32 = access %x_79, 2u
+    %86:vec2<f32> = construct %85, 1.0f
+    %87:mat4x2<f32> = construct %84, %86, vec2<f32>(1.0f, 0.0f), vec2<f32>(1.0f, 0.0f)
+    %x_87:mat4x2<f32> = let %87
+    %89:vec3<f32> = mul %x_76, mat3x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f))
+    %90:f32 = access %89, 0u
+    %91:f32 = access %x_87, 0u, 0u
+    %92:f32 = access %x_87, 0u, 1u
+    %93:f32 = access %x_87, 1u, 0u
+    %94:vec3<f32> = construct %91, %92, %93
+    %95:f32 = access %94, 1u
+    %96:f32 = add %90, %95
+    store_vector_element %c, 2u, %96
     store %i_1, 0i
-    loop [b: %b12, c: %b13] {  # loop_2
-      %b12 = block {  # body
-        %x_99:i32 = load %i_1
-        %72:bool = lt %x_99, 3i
-        if %72 [t: %b14, f: %b15] {  # if_5
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_2
+      $B12: {  # body
+        %97:i32 = load %i_1
+        %x_99:i32 = let %97
+        %99:bool = lt %x_99, 3i
+        if %99 [t: $B14, f: $B15] {  # if_5
+          $B14: {  # true
             exit_if  # if_5
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_102:i32 = load %i_1
-        %x_104:f32 = load_vector_element %c, %x_102
-        %75:bool = gte %x_104, 1.0f
-        if %75 [t: %b16] {  # if_6
-          %b16 = block {  # true
-            %x_108:i32 = load %i_1
-            %x_109:i32 = load %i_1
-            %x_111:f32 = load_vector_element %c, %x_109
-            %x_112:i32 = load %i_1
-            %x_114:f32 = load_vector_element %c, %x_112
-            %81:f32 = mul %x_111, %x_114
-            store_vector_element %c, %x_108, %81
-            %x_118:f32 = load_vector_element %gl_FragCoord, 1u
-            %83:bool = lt %x_118, 0.0f
-            if %83 [t: %b17] {  # if_7
-              %b17 = block {  # true
+        %100:i32 = load %i_1
+        %x_102:i32 = let %100
+        %102:f32 = load_vector_element %c, %x_102
+        %x_104:f32 = let %102
+        %104:bool = gte %x_104, 1.0f
+        if %104 [t: $B16] {  # if_6
+          $B16: {  # true
+            %105:i32 = load %i_1
+            %x_108:i32 = let %105
+            %107:i32 = load %i_1
+            %x_109:i32 = let %107
+            %109:f32 = load_vector_element %c, %x_109
+            %x_111:f32 = let %109
+            %111:i32 = load %i_1
+            %x_112:i32 = let %111
+            %113:f32 = load_vector_element %c, %x_112
+            %x_114:f32 = let %113
+            %115:f32 = mul %x_111, %x_114
+            store_vector_element %c, %x_108, %115
+            %116:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_118:f32 = let %116
+            %118:bool = lt %x_118, 0.0f
+            if %118 [t: $B17] {  # if_7
+              $B17: {  # true
                 exit_loop  # loop_2
               }
             }
             exit_if  # if_6
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %x_122:i32 = load %i_1
-        %85:i32 = add %x_122, 1i
-        store %i_1, %85
-        next_iteration %b12
+      $B13: {  # continuing
+        %119:i32 = load %i_1
+        %x_122:i32 = let %119
+        %121:i32 = add %x_122, 1i
+        store %i_1, %121
+        next_iteration  # -> $B12
       }
     }
-    %x_124:vec3<f32> = load %c
-    %87:vec3<f32> = abs %x_124
-    %x_126:vec3<f32> = normalize %87
-    %89:f32 = access %x_126, 0u
-    %90:f32 = access %x_126, 1u
-    %91:f32 = access %x_126, 2u
-    %92:vec4<f32> = construct %89, %90, %91, 1.0f
-    store %x_GLF_color, %92
+    %122:vec3<f32> = load %c
+    %x_124:vec3<f32> = let %122
+    %124:vec3<f32> = abs %x_124
+    %125:vec3<f32> = normalize %124
+    %x_126:vec3<f32> = let %125
+    %127:f32 = access %x_126, 0u
+    %128:f32 = access %x_126, 1u
+    %129:f32 = access %x_126, 2u
+    %130:vec4<f32> = construct %127, %128, %129, 1.0f
+    store %x_GLF_color, %130
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b18 {
-  %b18 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B18: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %95:void = call %main_1
-    %96:vec4<f32> = load %x_GLF_color
-    %97:main_out = construct %96
-    ret %97
+    %133:void = call %main_1
+    %134:vec4<f32> = load %x_GLF_color
+    %135:main_out = construct %134
+    ret %135
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B19: {
+    %138:bool = eq %rhs, 0i
+    %139:bool = eq %lhs, -2147483648i
+    %140:bool = eq %rhs, -1i
+    %141:bool = and %139, %140
+    %142:bool = or %138, %141
+    %143:i32 = select %rhs, 1i, %142
+    %144:i32 = let %143
+    %145:i32 = div %lhs, %144
+    %146:i32 = mul %145, %144
+    %147:i32 = sub %lhs, %146
+    ret %147
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.msl
index d072e0c..b2976f3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,207 +8,224 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_34:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %i
-        %19:i32 = load %mid
-        %20:bool = lte %18, %19
-        %21:i32 = load %j
-        %22:i32 = load %to
-        %23:bool = lte %21, %22
-        %24:bool = and %20, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %20:i32 = load %mid
+        %21:bool = lte %19, %20
+        %22:i32 = load %j
+        %23:i32 = load %to
+        %24:bool = lte %22, %23
+        %25:bool = and %21, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %25:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %25
-        %27:i32 = load %26
-        %28:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %28
-        %30:i32 = load %29
-        %31:bool = lt %27, %30
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_286:i32 = load %k
+        %26:i32 = load %i
+        %27:ptr<private, i32, read_write> = access %data, %26
+        %28:i32 = load %27
+        %29:i32 = load %j
+        %30:ptr<private, i32, read_write> = access %data, %29
+        %31:i32 = load %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %33:i32 = load %k
-            %34:i32 = add %33, 1i
-            store %k, %34
-            %x_288:i32 = load %i
-            %36:i32 = load %i
-            %37:i32 = add %36, 1i
-            store %i, %37
-            %38:ptr<private, i32, read_write> = access %temp, %x_286
-            %39:ptr<private, i32, read_write> = access %data, %x_288
-            %40:i32 = load %39
-            store %38, %40
+            %x_286:i32 = let %33
+            %35:i32 = load %k
+            %36:i32 = add %35, 1i
+            store %k, %36
+            %37:i32 = load %i
+            %x_288:i32 = let %37
+            %39:i32 = load %i
+            %40:i32 = add %39, 1i
+            store %i, %40
+            %41:ptr<private, i32, read_write> = access %temp, %x_286
+            %42:ptr<private, i32, read_write> = access %data, %x_288
+            %43:i32 = load %42
+            store %41, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_293:i32 = load %k
-            %42:i32 = load %k
-            %43:i32 = add %42, 1i
-            store %k, %43
-            %x_295:i32 = load %j
-            %45:i32 = load %j
-            %46:i32 = add %45, 1i
-            store %j, %46
-            %47:ptr<private, i32, read_write> = access %temp, %x_293
-            %48:ptr<private, i32, read_write> = access %data, %x_295
-            %49:i32 = load %48
-            store %47, %49
+          $B8: {  # false
+            %44:i32 = load %k
+            %x_293:i32 = let %44
+            %46:i32 = load %k
+            %47:i32 = add %46, 1i
+            store %k, %47
+            %48:i32 = load %j
+            %x_295:i32 = let %48
+            %50:i32 = load %j
+            %51:i32 = add %50, 1i
+            store %j, %51
+            %52:ptr<private, i32, read_write> = access %temp, %x_293
+            %53:ptr<private, i32, read_write> = access %data, %x_295
+            %54:i32 = load %53
+            store %52, %54
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %50:i32 = load %i
-        %51:bool = lt %50, 10i
-        %52:i32 = load %i
-        %53:i32 = load %mid
-        %54:bool = lte %52, %53
-        %55:bool = and %51, %54
-        if %55 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %55:i32 = load %i
+        %56:bool = lt %55, 10i
+        %57:i32 = load %i
+        %58:i32 = load %mid
+        %59:bool = lte %57, %58
+        %60:bool = and %56, %59
+        if %60 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_311:i32 = load %k
-        %57:i32 = load %k
-        %58:i32 = add %57, 1i
-        store %k, %58
-        %x_313:i32 = load %i
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        %62:ptr<private, i32, read_write> = access %temp, %x_311
-        %63:ptr<private, i32, read_write> = access %data, %x_313
-        %64:i32 = load %63
-        store %62, %64
-        continue %b10
+        %61:i32 = load %k
+        %x_311:i32 = let %61
+        %63:i32 = load %k
+        %64:i32 = add %63, 1i
+        store %k, %64
+        %65:i32 = load %i
+        %x_313:i32 = let %65
+        %67:i32 = load %i
+        %68:i32 = add %67, 1i
+        store %i, %68
+        %69:ptr<private, i32, read_write> = access %temp, %x_311
+        %70:ptr<private, i32, read_write> = access %data, %x_313
+        %71:i32 = load %70
+        store %69, %71
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %65:i32 = load %f
-    store %i_1, %65
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %66:i32 = load %i_1
-        %67:i32 = load %to
-        %68:bool = lte %66, %67
-        if %68 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %72:i32 = load %f
+    store %i_1, %72
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %73:i32 = load %i_1
+        %74:i32 = load %to
+        %75:bool = lte %73, %74
+        if %75 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_327:i32 = load %i_1
-        %70:ptr<private, i32, read_write> = access %data, %x_327
-        %71:i32 = load %i_1
-        %72:ptr<private, i32, read_write> = access %temp, %71
-        %73:i32 = load %72
-        store %70, %73
-        continue %b14
+        %76:i32 = load %i_1
+        %x_327:i32 = let %76
+        %78:ptr<private, i32, read_write> = access %data, %x_327
+        %79:i32 = load %i_1
+        %80:ptr<private, i32, read_write> = access %temp, %79
+        %81:i32 = load %80
+        store %78, %81
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %74:i32 = load %i_1
-        %75:i32 = add %74, 1i
-        store %i_1, %75
-        next_iteration %b13
+      $B14: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%func_i1_i1_ = func(%m:ptr<function, i32, read_write>, %high:ptr<function, i32, read_write>):i32 -> %b17 {
-  %b17 = block {
+%func_i1_i1_ = func(%m:ptr<function, i32, read_write>, %high:ptr<function, i32, read_write>):i32 {
+  $B17: {
     %x:ptr<function, i32, read_write> = var
     %x_335:ptr<function, i32, read_write> = var
     %x_336:ptr<function, i32, read_write> = var
-    %82:f32 = load_vector_element %gl_FragCoord, 0u
-    %83:bool = gte %82, 0.0f
-    if %83 [t: %b18, f: %b19] {  # if_5
-      %b18 = block {  # true
-        if false [t: %b20, f: %b21] {  # if_6
-          %b20 = block {  # true
-            %84:i32 = load %high
-            %85:i32 = shiftl %84, 0u
-            store %x_336, %85
+    %90:f32 = load_vector_element %gl_FragCoord, 0u
+    %91:bool = gte %90, 0.0f
+    if %91 [t: $B18, f: $B19] {  # if_5
+      $B18: {  # true
+        if false [t: $B20, f: $B21] {  # if_6
+          $B20: {  # true
+            %92:i32 = load %high
+            %93:u32 = and 0u, 31u
+            %94:i32 = shl %92, %93
+            store %x_336, %94
             exit_if  # if_6
           }
-          %b21 = block {  # false
+          $B21: {  # false
             store %x_336, 4i
             exit_if  # if_6
           }
         }
-        %86:i32 = load %x_336
-        %87:u32 = bitcast %86
-        %88:i32 = shiftl 1i, %87
-        store %x_335, %88
+        %95:i32 = load %x_336
+        %96:u32 = bitcast %95
+        %97:u32 = and %96, 31u
+        %98:i32 = shl 1i, %97
+        store %x_335, %98
         exit_if  # if_5
       }
-      %b19 = block {  # false
+      $B19: {  # false
         store %x_335, 1i
         exit_if  # if_5
       }
     }
-    %89:i32 = load %x_335
-    store %x, %89
-    %90:i32 = load %x
-    %91:i32 = shiftr %90, 4u
-    store %x, %91
-    %x_353:i32 = load %m
-    %x_355:i32 = load %m
-    %x_357:i32 = load %m
-    %x_359:i32 = load %x
-    %96:i32 = mul 2i, %x_353
-    %97:i32 = mul 2i, %x_355
-    %98:i32 = mul 2i, %x_357
-    %99:i32 = div %98, %x_359
-    %100:i32 = clamp %96, %97, %99
-    ret %100
+    %99:i32 = load %x_335
+    store %x, %99
+    %100:i32 = load %x
+    %101:u32 = and 4u, 31u
+    %102:i32 = shr %100, %101
+    store %x, %102
+    %103:i32 = load %m
+    %x_353:i32 = let %103
+    %105:i32 = load %m
+    %x_355:i32 = let %105
+    %107:i32 = load %m
+    %x_357:i32 = let %107
+    %109:i32 = load %x
+    %x_359:i32 = let %109
+    %111:i32 = mul 2i, %x_353
+    %112:i32 = mul 2i, %x_355
+    %113:i32 = mul 2i, %x_357
+    %114:i32 = call %tint_div_i32, %113, %x_359
+    %116:i32 = let %114
+    %117:i32 = max %111, %112
+    %118:i32 = min %117, %116
+    ret %118
   }
 }
-%mergeSort_ = func():void -> %b22 {
-  %b22 = block {
+%mergeSort_ = func():void {
+  $B22: {
     %low:ptr<function, i32, read_write> = var
     %high_1:ptr<function, i32, read_write> = var
     %m_1:ptr<function, i32, read_write> = var
@@ -224,322 +241,336 @@
     store %low, 0i
     store %high_1, 9i
     store %m_1, 1i
-    loop [b: %b23, c: %b24] {  # loop_4
-      %b23 = block {  # body
-        %114:i32 = load %m_1
-        %115:i32 = load %high_1
-        %116:bool = lte %114, %115
-        if %116 [t: %b25, f: %b26] {  # if_7
-          %b25 = block {  # true
+    loop [b: $B23, c: $B24] {  # loop_4
+      $B23: {  # body
+        %132:i32 = load %m_1
+        %133:i32 = load %high_1
+        %134:bool = lte %132, %133
+        if %134 [t: $B25, f: $B26] {  # if_7
+          $B25: {  # true
             exit_if  # if_7
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_4
           }
         }
-        %117:i32 = load %low
-        store %i_2, %117
-        loop [b: %b27, c: %b28] {  # loop_5
-          %b27 = block {  # body
-            %118:i32 = load %i_2
-            %119:i32 = load %high_1
-            %120:bool = lt %118, %119
-            if %120 [t: %b29, f: %b30] {  # if_8
-              %b29 = block {  # true
+        %135:i32 = load %low
+        store %i_2, %135
+        loop [b: $B27, c: $B28] {  # loop_5
+          $B27: {  # body
+            %136:i32 = load %i_2
+            %137:i32 = load %high_1
+            %138:bool = lt %136, %137
+            if %138 [t: $B29, f: $B30] {  # if_8
+              $B29: {  # true
                 exit_if  # if_8
               }
-              %b30 = block {  # false
+              $B30: {  # false
                 exit_loop  # loop_5
               }
             }
-            %121:i32 = load %i_2
-            store %f_1, %121
-            %122:i32 = load %i_2
-            %123:i32 = load %m_1
-            %124:i32 = add %122, %123
-            %125:i32 = sub %124, 1i
-            store %mid_1, %125
-            %126:i32 = load %i_2
-            %127:i32 = load %m_1
-            %128:i32 = mul 2i, %127
-            %129:i32 = add %126, %128
-            %130:i32 = sub %129, 1i
-            %131:i32 = load %high_1
-            %132:i32 = min %130, %131
-            store %to_1, %132
-            %133:i32 = load %f_1
-            store %param, %133
-            %134:i32 = load %mid_1
-            store %param_1, %134
-            %135:i32 = load %to_1
-            store %param_2, %135
-            %136:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b28
-          }
-          %b28 = block {  # continuing
-            %137:i32 = load %m_1
-            store %param_3, %137
-            %138:i32 = load %high_1
-            store %param_4, %138
-            %x_398:i32 = call %func_i1_i1_, %param_3, %param_4
+            %139:i32 = load %i_2
+            store %f_1, %139
             %140:i32 = load %i_2
-            %141:i32 = add %140, %x_398
-            store %i_2, %141
-            next_iteration %b27
+            %141:i32 = load %m_1
+            %142:i32 = add %140, %141
+            %143:i32 = sub %142, 1i
+            store %mid_1, %143
+            %144:i32 = load %i_2
+            %145:i32 = load %m_1
+            %146:i32 = mul 2i, %145
+            %147:i32 = add %144, %146
+            %148:i32 = sub %147, 1i
+            %149:i32 = load %high_1
+            %150:i32 = min %148, %149
+            store %to_1, %150
+            %151:i32 = load %f_1
+            store %param, %151
+            %152:i32 = load %mid_1
+            store %param_1, %152
+            %153:i32 = load %to_1
+            store %param_2, %153
+            %154:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B28
+          }
+          $B28: {  # continuing
+            %155:i32 = load %m_1
+            store %param_3, %155
+            %156:i32 = load %high_1
+            store %param_4, %156
+            %157:i32 = call %func_i1_i1_, %param_3, %param_4
+            %x_398:i32 = let %157
+            %159:i32 = load %i_2
+            %160:i32 = add %159, %x_398
+            store %i_2, %160
+            next_iteration  # -> $B27
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %142:i32 = load %m_1
-        %143:i32 = mul 2i, %142
-        store %m_1, %143
-        next_iteration %b23
+      $B24: {  # continuing
+        %161:i32 = load %m_1
+        %162:i32 = mul 2i, %161
+        store %m_1, %162
+        next_iteration  # -> $B23
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b31 {
-  %b31 = block {
+%main_1 = func():void {
+  $B31: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %148:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %149:f32 = load_vector_element %148, 0u
-    %150:i32 = convert %149
-    store %i_3, %150
-    loop [b: %b32, c: %b33] {  # loop_6
-      %b32 = block {  # body
-        %x_99:i32 = load %i_3
-        switch %x_99 [c: (9i, %b34), c: (8i, %b35), c: (7i, %b36), c: (6i, %b37), c: (5i, %b38), c: (4i, %b39), c: (3i, %b40), c: (2i, %b41), c: (1i, %b42), c: (0i, %b43), c: (default, %b44)] {  # switch_1
-          %b34 = block {  # case
-            %x_129:i32 = load %i_3
-            %153:ptr<private, i32, read_write> = access %data, %x_129
-            store %153, -5i
+    %167:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %168:f32 = load_vector_element %167, 0u
+    %169:i32 = call %tint_f32_to_i32, %168
+    store %i_3, %169
+    loop [b: $B32, c: $B33] {  # loop_6
+      $B32: {  # body
+        %171:i32 = load %i_3
+        %x_99:i32 = let %171
+        switch %x_99 [c: (9i, $B34), c: (8i, $B35), c: (7i, $B36), c: (6i, $B37), c: (5i, $B38), c: (4i, $B39), c: (3i, $B40), c: (2i, $B41), c: (1i, $B42), c: (0i, $B43), c: (default, $B44)] {  # switch_1
+          $B34: {  # case
+            %173:i32 = load %i_3
+            %x_129:i32 = let %173
+            %175:ptr<private, i32, read_write> = access %data, %x_129
+            store %175, -5i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_127:i32 = load %i_3
-            %155:ptr<private, i32, read_write> = access %data, %x_127
-            store %155, -4i
+          $B35: {  # case
+            %176:i32 = load %i_3
+            %x_127:i32 = let %176
+            %178:ptr<private, i32, read_write> = access %data, %x_127
+            store %178, -4i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_125:i32 = load %i_3
-            %157:ptr<private, i32, read_write> = access %data, %x_125
-            store %157, -3i
+          $B36: {  # case
+            %179:i32 = load %i_3
+            %x_125:i32 = let %179
+            %181:ptr<private, i32, read_write> = access %data, %x_125
+            store %181, -3i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_123:i32 = load %i_3
-            %159:ptr<private, i32, read_write> = access %data, %x_123
-            store %159, -2i
+          $B37: {  # case
+            %182:i32 = load %i_3
+            %x_123:i32 = let %182
+            %184:ptr<private, i32, read_write> = access %data, %x_123
+            store %184, -2i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_121:i32 = load %i_3
-            %161:ptr<private, i32, read_write> = access %data, %x_121
-            store %161, -1i
+          $B38: {  # case
+            %185:i32 = load %i_3
+            %x_121:i32 = let %185
+            %187:ptr<private, i32, read_write> = access %data, %x_121
+            store %187, -1i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
-            %x_119:i32 = load %i_3
-            %163:ptr<private, i32, read_write> = access %data, %x_119
-            store %163, 0i
+          $B39: {  # case
+            %188:i32 = load %i_3
+            %x_119:i32 = let %188
+            %190:ptr<private, i32, read_write> = access %data, %x_119
+            store %190, 0i
             exit_switch  # switch_1
           }
-          %b40 = block {  # case
-            %x_117:i32 = load %i_3
-            %165:ptr<private, i32, read_write> = access %data, %x_117
-            store %165, 1i
+          $B40: {  # case
+            %191:i32 = load %i_3
+            %x_117:i32 = let %191
+            %193:ptr<private, i32, read_write> = access %data, %x_117
+            store %193, 1i
             exit_switch  # switch_1
           }
-          %b41 = block {  # case
-            %x_115:i32 = load %i_3
-            %167:ptr<private, i32, read_write> = access %data, %x_115
-            store %167, 2i
+          $B41: {  # case
+            %194:i32 = load %i_3
+            %x_115:i32 = let %194
+            %196:ptr<private, i32, read_write> = access %data, %x_115
+            store %196, 2i
             exit_switch  # switch_1
           }
-          %b42 = block {  # case
-            %x_113:i32 = load %i_3
-            %169:ptr<private, i32, read_write> = access %data, %x_113
-            store %169, 3i
+          $B42: {  # case
+            %197:i32 = load %i_3
+            %x_113:i32 = let %197
+            %199:ptr<private, i32, read_write> = access %data, %x_113
+            store %199, 3i
             exit_switch  # switch_1
           }
-          %b43 = block {  # case
-            %x_111:i32 = load %i_3
-            %171:ptr<private, i32, read_write> = access %data, %x_111
-            store %171, 4i
+          $B43: {  # case
+            %200:i32 = load %i_3
+            %x_111:i32 = let %200
+            %202:ptr<private, i32, read_write> = access %data, %x_111
+            store %202, 4i
             exit_switch  # switch_1
           }
-          %b44 = block {  # case
+          $B44: {  # case
             exit_switch  # switch_1
           }
         }
-        %172:i32 = load %i_3
-        %173:i32 = add %172, 1i
-        store %i_3, %173
-        continue %b33
+        %203:i32 = load %i_3
+        %204:i32 = add %203, 1i
+        store %i_3, %204
+        continue  # -> $B33
       }
-      %b33 = block {  # continuing
-        %x_133:i32 = load %i_3
-        %175:bool = lt %x_133, 10i
-        %176:bool = eq %175, false
-        break_if %176 %b32
+      $B33: {  # continuing
+        %205:i32 = load %i_3
+        %x_133:i32 = let %205
+        %207:bool = lt %x_133, 10i
+        %208:bool = eq %207, false
+        break_if %208  # -> [t: exit_loop loop_6, f: $B32]
       }
     }
     store %j_1, 0i
-    loop [b: %b45, c: %b46] {  # loop_7
-      %b45 = block {  # body
-        %177:i32 = load %j_1
-        %178:bool = lt %177, 10i
-        if %178 [t: %b47, f: %b48] {  # if_9
-          %b47 = block {  # true
+    loop [b: $B45, c: $B46] {  # loop_7
+      $B45: {  # body
+        %209:i32 = load %j_1
+        %210:bool = lt %209, 10i
+        if %210 [t: $B47, f: $B48] {  # if_9
+          $B47: {  # true
             exit_if  # if_9
           }
-          %b48 = block {  # false
+          $B48: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_142:i32 = load %j_1
-        %180:ptr<private, i32, read_write> = access %temp, %x_142
-        %181:i32 = load %j_1
-        %182:ptr<private, i32, read_write> = access %data, %181
-        %183:i32 = load %182
-        store %180, %183
-        continue %b46
+        %211:i32 = load %j_1
+        %x_142:i32 = let %211
+        %213:ptr<private, i32, read_write> = access %temp, %x_142
+        %214:i32 = load %j_1
+        %215:ptr<private, i32, read_write> = access %data, %214
+        %216:i32 = load %215
+        store %213, %216
+        continue  # -> $B46
       }
-      %b46 = block {  # continuing
-        %184:i32 = load %j_1
-        %185:i32 = add %184, 1i
-        store %j_1, %185
-        next_iteration %b45
+      $B46: {  # continuing
+        %217:i32 = load %j_1
+        %218:i32 = add %217, 1i
+        store %j_1, %218
+        next_iteration  # -> $B45
       }
     }
-    %186:void = call %mergeSort_
-    %187:f32 = load_vector_element %gl_FragCoord, 1u
-    %188:i32 = convert %187
-    %189:bool = lt %188, 30i
-    if %189 [t: %b49, f: %b50] {  # if_10
-      %b49 = block {  # true
-        %190:ptr<private, i32, read_write> = access %data, 0i
-        %191:i32 = load %190
-        %192:f32 = convert %191
-        %193:f32 = div %192, 10.0f
-        %194:f32 = add 0.5f, %193
-        store %grey, %194
+    %219:void = call %mergeSort_
+    %220:f32 = load_vector_element %gl_FragCoord, 1u
+    %221:i32 = call %tint_f32_to_i32, %220
+    %222:bool = lt %221, 30i
+    if %222 [t: $B49, f: $B50] {  # if_10
+      $B49: {  # true
+        %223:ptr<private, i32, read_write> = access %data, 0i
+        %224:i32 = load %223
+        %225:f32 = convert %224
+        %226:f32 = div %225, 10.0f
+        %227:f32 = add 0.5f, %226
+        store %grey, %227
         exit_if  # if_10
       }
-      %b50 = block {  # false
-        %195:f32 = load_vector_element %gl_FragCoord, 1u
-        %196:i32 = convert %195
-        %197:bool = lt %196, 60i
-        if %197 [t: %b51, f: %b52] {  # if_11
-          %b51 = block {  # true
-            %198:ptr<private, i32, read_write> = access %data, 1i
-            %199:i32 = load %198
-            %200:f32 = convert %199
-            %201:f32 = div %200, 10.0f
-            %202:f32 = add 0.5f, %201
-            store %grey, %202
+      $B50: {  # false
+        %228:f32 = load_vector_element %gl_FragCoord, 1u
+        %229:i32 = call %tint_f32_to_i32, %228
+        %230:bool = lt %229, 60i
+        if %230 [t: $B51, f: $B52] {  # if_11
+          $B51: {  # true
+            %231:ptr<private, i32, read_write> = access %data, 1i
+            %232:i32 = load %231
+            %233:f32 = convert %232
+            %234:f32 = div %233, 10.0f
+            %235:f32 = add 0.5f, %234
+            store %grey, %235
             exit_if  # if_11
           }
-          %b52 = block {  # false
-            %203:f32 = load_vector_element %gl_FragCoord, 1u
-            %204:i32 = convert %203
-            %205:bool = lt %204, 90i
-            if %205 [t: %b53, f: %b54] {  # if_12
-              %b53 = block {  # true
-                %206:ptr<private, i32, read_write> = access %data, 2i
-                %207:i32 = load %206
-                %208:f32 = convert %207
-                %209:f32 = div %208, 10.0f
-                %210:f32 = add 0.5f, %209
-                store %grey, %210
+          $B52: {  # false
+            %236:f32 = load_vector_element %gl_FragCoord, 1u
+            %237:i32 = call %tint_f32_to_i32, %236
+            %238:bool = lt %237, 90i
+            if %238 [t: $B53, f: $B54] {  # if_12
+              $B53: {  # true
+                %239:ptr<private, i32, read_write> = access %data, 2i
+                %240:i32 = load %239
+                %241:f32 = convert %240
+                %242:f32 = div %241, 10.0f
+                %243:f32 = add 0.5f, %242
+                store %grey, %243
                 exit_if  # if_12
               }
-              %b54 = block {  # false
-                %211:f32 = load_vector_element %gl_FragCoord, 1u
-                %212:i32 = convert %211
-                %213:bool = lt %212, 120i
-                if %213 [t: %b55, f: %b56] {  # if_13
-                  %b55 = block {  # true
-                    %214:ptr<private, i32, read_write> = access %data, 3i
-                    %215:i32 = load %214
-                    %216:f32 = convert %215
-                    %217:f32 = div %216, 10.0f
-                    %218:f32 = add 0.5f, %217
-                    store %grey, %218
+              $B54: {  # false
+                %244:f32 = load_vector_element %gl_FragCoord, 1u
+                %245:i32 = call %tint_f32_to_i32, %244
+                %246:bool = lt %245, 120i
+                if %246 [t: $B55, f: $B56] {  # if_13
+                  $B55: {  # true
+                    %247:ptr<private, i32, read_write> = access %data, 3i
+                    %248:i32 = load %247
+                    %249:f32 = convert %248
+                    %250:f32 = div %249, 10.0f
+                    %251:f32 = add 0.5f, %250
+                    store %grey, %251
                     exit_if  # if_13
                   }
-                  %b56 = block {  # false
-                    %219:f32 = load_vector_element %gl_FragCoord, 1u
-                    %220:i32 = convert %219
-                    %221:bool = lt %220, 150i
-                    if %221 [t: %b57, f: %b58] {  # if_14
-                      %b57 = block {  # true
-                        discard
+                  $B56: {  # false
+                    %252:f32 = load_vector_element %gl_FragCoord, 1u
+                    %253:i32 = call %tint_f32_to_i32, %252
+                    %254:bool = lt %253, 150i
+                    if %254 [t: $B57, f: $B58] {  # if_14
+                      $B57: {  # true
+                        store %continue_execution, false
                         exit_if  # if_14
                       }
-                      %b58 = block {  # false
-                        %222:f32 = load_vector_element %gl_FragCoord, 1u
-                        %223:i32 = convert %222
-                        %224:bool = lt %223, 180i
-                        if %224 [t: %b59, f: %b60] {  # if_15
-                          %b59 = block {  # true
-                            %225:ptr<private, i32, read_write> = access %data, 5i
-                            %226:i32 = load %225
-                            %227:f32 = convert %226
-                            %228:f32 = div %227, 10.0f
-                            %229:f32 = add 0.5f, %228
-                            store %grey, %229
+                      $B58: {  # false
+                        %255:f32 = load_vector_element %gl_FragCoord, 1u
+                        %256:i32 = call %tint_f32_to_i32, %255
+                        %257:bool = lt %256, 180i
+                        if %257 [t: $B59, f: $B60] {  # if_15
+                          $B59: {  # true
+                            %258:ptr<private, i32, read_write> = access %data, 5i
+                            %259:i32 = load %258
+                            %260:f32 = convert %259
+                            %261:f32 = div %260, 10.0f
+                            %262:f32 = add 0.5f, %261
+                            store %grey, %262
                             exit_if  # if_15
                           }
-                          %b60 = block {  # false
-                            %230:f32 = load_vector_element %gl_FragCoord, 1u
-                            %231:i32 = convert %230
-                            %232:bool = lt %231, 210i
-                            if %232 [t: %b61, f: %b62] {  # if_16
-                              %b61 = block {  # true
-                                %233:ptr<private, i32, read_write> = access %data, 6i
-                                %234:i32 = load %233
-                                %235:f32 = convert %234
-                                %236:f32 = div %235, 10.0f
-                                %237:f32 = add 0.5f, %236
-                                store %grey, %237
+                          $B60: {  # false
+                            %263:f32 = load_vector_element %gl_FragCoord, 1u
+                            %264:i32 = call %tint_f32_to_i32, %263
+                            %265:bool = lt %264, 210i
+                            if %265 [t: $B61, f: $B62] {  # if_16
+                              $B61: {  # true
+                                %266:ptr<private, i32, read_write> = access %data, 6i
+                                %267:i32 = load %266
+                                %268:f32 = convert %267
+                                %269:f32 = div %268, 10.0f
+                                %270:f32 = add 0.5f, %269
+                                store %grey, %270
                                 exit_if  # if_16
                               }
-                              %b62 = block {  # false
-                                %238:f32 = load_vector_element %gl_FragCoord, 1u
-                                %239:i32 = convert %238
-                                %240:bool = lt %239, 240i
-                                if %240 [t: %b63, f: %b64] {  # if_17
-                                  %b63 = block {  # true
-                                    %241:ptr<private, i32, read_write> = access %data, 7i
-                                    %242:i32 = load %241
-                                    %243:f32 = convert %242
-                                    %244:f32 = div %243, 10.0f
-                                    %245:f32 = add 0.5f, %244
-                                    store %grey, %245
+                              $B62: {  # false
+                                %271:f32 = load_vector_element %gl_FragCoord, 1u
+                                %272:i32 = call %tint_f32_to_i32, %271
+                                %273:bool = lt %272, 240i
+                                if %273 [t: $B63, f: $B64] {  # if_17
+                                  $B63: {  # true
+                                    %274:ptr<private, i32, read_write> = access %data, 7i
+                                    %275:i32 = load %274
+                                    %276:f32 = convert %275
+                                    %277:f32 = div %276, 10.0f
+                                    %278:f32 = add 0.5f, %277
+                                    store %grey, %278
                                     exit_if  # if_17
                                   }
-                                  %b64 = block {  # false
-                                    %246:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %247:i32 = convert %246
-                                    %248:bool = lt %247, 270i
-                                    if %248 [t: %b65, f: %b66] {  # if_18
-                                      %b65 = block {  # true
-                                        %249:ptr<private, i32, read_write> = access %data, 8i
-                                        %250:i32 = load %249
-                                        %251:f32 = convert %250
-                                        %252:f32 = div %251, 10.0f
-                                        %253:f32 = add 0.5f, %252
-                                        store %grey, %253
+                                  $B64: {  # false
+                                    %279:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %280:i32 = call %tint_f32_to_i32, %279
+                                    %281:bool = lt %280, 270i
+                                    if %281 [t: $B65, f: $B66] {  # if_18
+                                      $B65: {  # true
+                                        %282:ptr<private, i32, read_write> = access %data, 8i
+                                        %283:i32 = load %282
+                                        %284:f32 = convert %283
+                                        %285:f32 = div %284, 10.0f
+                                        %286:f32 = add 0.5f, %285
+                                        store %grey, %286
                                         exit_if  # if_18
                                       }
-                                      %b66 = block {  # false
-                                        discard
+                                      $B66: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_18
                                       }
                                     }
@@ -567,23 +598,53 @@
         exit_if  # if_10
       }
     }
-    %254:f32 = load %grey
-    %x_254:vec3<f32> = construct %254
-    %256:f32 = access %x_254, 0u
-    %257:f32 = access %x_254, 1u
-    %258:f32 = access %x_254, 2u
-    %259:vec4<f32> = construct %256, %257, %258, 1.0f
-    store %x_GLF_color, %259
+    %287:f32 = load %grey
+    %288:vec3<f32> = construct %287
+    %x_254:vec3<f32> = let %288
+    %290:f32 = access %x_254, 0u
+    %291:f32 = access %x_254, 1u
+    %292:f32 = access %x_254, 2u
+    %293:vec4<f32> = construct %290, %291, %292, 1.0f
+    store %x_GLF_color, %293
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b67 {
-  %b67 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B67: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %262:void = call %main_1
-    %263:vec4<f32> = load %x_GLF_color
-    %264:main_out = construct %263
-    ret %264
+    %296:void = call %main_1
+    %297:vec4<f32> = load %x_GLF_color
+    %298:main_out = construct %297
+    %299:bool = load %continue_execution
+    %300:bool = eq %299, false
+    if %300 [t: $B68] {  # if_19
+      $B68: {  # true
+        terminate_invocation
+      }
+    }
+    ret %298
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B69: {
+    %303:bool = eq %rhs, 0i
+    %304:bool = eq %lhs, -2147483648i
+    %305:bool = eq %rhs, -1i
+    %306:bool = and %304, %305
+    %307:bool = or %303, %306
+    %308:i32 = select %rhs, 1i, %307
+    %309:i32 = div %lhs, %308
+    ret %309
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B70: {
+    %311:i32 = convert %value
+    %312:bool = gte %value, -2147483648.0f
+    %313:i32 = select -2147483648i, %311, %312
+    %314:bool = lte %value, 2147483520.0f
+    %315:i32 = select 2147483647i, %313, %314
+    ret %315
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.msl
index de8988c..85caa14 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-clamped-conditional-bit-shift/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,201 +8,246 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_34:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_260:i32 = load %f
+    %15:i32 = load %f
+    %x_260:i32 = let %15
     store %k, %x_260
-    %x_261:i32 = load %f
+    %17:i32 = load %f
+    %x_261:i32 = let %17
     store %i, %x_261
-    %x_262:i32 = load %mid
-    %17:i32 = add %x_262, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_268:i32 = load %i
-        %x_269:i32 = load %mid
-        %x_271:i32 = load %j
-        %x_272:i32 = load %to
-        %22:bool = lte %x_268, %x_269
-        %23:bool = lte %x_271, %x_272
-        %24:bool = and %22, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %mid
+    %x_262:i32 = let %19
+    %21:i32 = add %x_262, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %i
+        %x_268:i32 = let %22
+        %24:i32 = load %mid
+        %x_269:i32 = let %24
+        %26:i32 = load %j
+        %x_271:i32 = let %26
+        %28:i32 = load %to
+        %x_272:i32 = let %28
+        %30:bool = lte %x_268, %x_269
+        %31:bool = lte %x_271, %x_272
+        %32:bool = and %30, %31
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_276:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %x_276
-        %x_278:i32 = load %26
-        %x_279:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %x_279
-        %x_281:i32 = load %29
-        %31:bool = lt %x_278, %x_281
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_286:i32 = load %k
-            %33:i32 = add %x_286, 1i
-            store %k, %33
-            %x_288:i32 = load %i
-            %35:i32 = add %x_288, 1i
-            store %i, %35
-            %36:ptr<private, i32, read_write> = access %data, %x_288
-            %x_291:i32 = load %36
-            %38:ptr<private, i32, read_write> = access %temp, %x_286
-            store %38, %x_291
+        %33:i32 = load %i
+        %x_276:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_276
+        %36:i32 = load %35
+        %x_278:i32 = let %36
+        %38:i32 = load %j
+        %x_279:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %data, %x_279
+        %41:i32 = load %40
+        %x_281:i32 = let %41
+        %43:bool = lt %x_278, %x_281
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %44:i32 = load %k
+            %x_286:i32 = let %44
+            %46:i32 = add %x_286, 1i
+            store %k, %46
+            %47:i32 = load %i
+            %x_288:i32 = let %47
+            %49:i32 = add %x_288, 1i
+            store %i, %49
+            %50:ptr<private, i32, read_write> = access %data, %x_288
+            %51:i32 = load %50
+            %x_291:i32 = let %51
+            %53:ptr<private, i32, read_write> = access %temp, %x_286
+            store %53, %x_291
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_293:i32 = load %k
-            %40:i32 = add %x_293, 1i
-            store %k, %40
-            %x_295:i32 = load %j
-            %42:i32 = add %x_295, 1i
-            store %j, %42
-            %43:ptr<private, i32, read_write> = access %data, %x_295
-            %x_298:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %temp, %x_293
-            store %45, %x_298
+          $B8: {  # false
+            %54:i32 = load %k
+            %x_293:i32 = let %54
+            %56:i32 = add %x_293, 1i
+            store %k, %56
+            %57:i32 = load %j
+            %x_295:i32 = let %57
+            %59:i32 = add %x_295, 1i
+            store %j, %59
+            %60:ptr<private, i32, read_write> = access %data, %x_295
+            %61:i32 = load %60
+            %x_298:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %temp, %x_293
+            store %63, %x_298
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_304:i32 = load %i
-        %x_306:i32 = load %i
-        %x_307:i32 = load %mid
-        %49:bool = lt %x_304, 10i
-        %50:bool = lte %x_306, %x_307
-        %51:bool = and %49, %50
-        if %51 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %64:i32 = load %i
+        %x_304:i32 = let %64
+        %66:i32 = load %i
+        %x_306:i32 = let %66
+        %68:i32 = load %mid
+        %x_307:i32 = let %68
+        %70:bool = lt %x_304, 10i
+        %71:bool = lte %x_306, %x_307
+        %72:bool = and %70, %71
+        if %72 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_311:i32 = load %k
-        %53:i32 = add %x_311, 1i
-        store %k, %53
-        %x_313:i32 = load %i
-        %55:i32 = add %x_313, 1i
-        store %i, %55
-        %56:ptr<private, i32, read_write> = access %data, %x_313
-        %x_316:i32 = load %56
-        %58:ptr<private, i32, read_write> = access %temp, %x_311
-        store %58, %x_316
-        continue %b10
+        %73:i32 = load %k
+        %x_311:i32 = let %73
+        %75:i32 = add %x_311, 1i
+        store %k, %75
+        %76:i32 = load %i
+        %x_313:i32 = let %76
+        %78:i32 = add %x_313, 1i
+        store %i, %78
+        %79:ptr<private, i32, read_write> = access %data, %x_313
+        %80:i32 = load %79
+        %x_316:i32 = let %80
+        %82:ptr<private, i32, read_write> = access %temp, %x_311
+        store %82, %x_316
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_318:i32 = load %f
+    %83:i32 = load %f
+    %x_318:i32 = let %83
     store %i_1, %x_318
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_323:i32 = load %i_1
-        %x_324:i32 = load %to
-        %62:bool = lte %x_323, %x_324
-        if %62 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %85:i32 = load %i_1
+        %x_323:i32 = let %85
+        %87:i32 = load %to
+        %x_324:i32 = let %87
+        %89:bool = lte %x_323, %x_324
+        if %89 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_327:i32 = load %i_1
-        %x_328:i32 = load %i_1
-        %65:ptr<private, i32, read_write> = access %temp, %x_328
-        %x_330:i32 = load %65
-        %67:ptr<private, i32, read_write> = access %data, %x_327
-        store %67, %x_330
-        continue %b14
+        %90:i32 = load %i_1
+        %x_327:i32 = let %90
+        %92:i32 = load %i_1
+        %x_328:i32 = let %92
+        %94:ptr<private, i32, read_write> = access %temp, %x_328
+        %95:i32 = load %94
+        %x_330:i32 = let %95
+        %97:ptr<private, i32, read_write> = access %data, %x_327
+        store %97, %x_330
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_332:i32 = load %i_1
-        %69:i32 = add %x_332, 1i
-        store %i_1, %69
-        next_iteration %b13
+      $B14: {  # continuing
+        %98:i32 = load %i_1
+        %x_332:i32 = let %98
+        %100:i32 = add %x_332, 1i
+        store %i_1, %100
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%func_i1_i1_ = func(%m:ptr<function, i32, read_write>, %high:ptr<function, i32, read_write>):i32 -> %b17 {
-  %b17 = block {
+%func_i1_i1_ = func(%m:ptr<function, i32, read_write>, %high:ptr<function, i32, read_write>):i32 {
+  $B17: {
     %x:ptr<function, i32, read_write> = var
     %x_335:ptr<function, i32, read_write> = var
     %x_336:ptr<function, i32, read_write> = var
-    %x_338:f32 = load_vector_element %gl_FragCoord, 0u
-    %77:bool = gte %x_338, 0.0f
-    if %77 [t: %b18, f: %b19] {  # if_5
-      %b18 = block {  # true
-        if false [t: %b20, f: %b21] {  # if_6
-          %b20 = block {  # true
-            %x_346:i32 = load %high
-            %79:i32 = shiftl %x_346, 0u
-            store %x_336, %79
+    %107:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_338:f32 = let %107
+    %109:bool = gte %x_338, 0.0f
+    if %109 [t: $B18, f: $B19] {  # if_5
+      $B18: {  # true
+        if false [t: $B20, f: $B21] {  # if_6
+          $B20: {  # true
+            %110:i32 = load %high
+            %x_346:i32 = let %110
+            %112:u32 = and 0u, 31u
+            %113:i32 = shl %x_346, %112
+            store %x_336, %113
             exit_if  # if_6
           }
-          %b21 = block {  # false
+          $B21: {  # false
             store %x_336, 4i
             exit_if  # if_6
           }
         }
-        %x_348:i32 = load %x_336
-        %81:u32 = bitcast %x_348
-        %82:i32 = shiftl 1i, %81
-        store %x_335, %82
+        %114:i32 = load %x_336
+        %x_348:i32 = let %114
+        %116:u32 = bitcast %x_348
+        %117:u32 = and %116, 31u
+        %118:i32 = shl 1i, %117
+        store %x_335, %118
         exit_if  # if_5
       }
-      %b19 = block {  # false
+      $B19: {  # false
         store %x_335, 1i
         exit_if  # if_5
       }
     }
-    %x_350:i32 = load %x_335
+    %119:i32 = load %x_335
+    %x_350:i32 = let %119
     store %x, %x_350
-    %x_351:i32 = load %x
-    %85:i32 = shiftr %x_351, 4u
-    store %x, %85
-    %x_353:i32 = load %m
-    %x_355:i32 = load %m
-    %x_357:i32 = load %m
-    %x_359:i32 = load %x
-    %90:i32 = mul 2i, %x_353
-    %91:i32 = mul 2i, %x_355
-    %92:i32 = mul 2i, %x_357
-    %93:i32 = div %92, %x_359
-    %94:i32 = clamp %90, %91, %93
-    ret %94
+    %121:i32 = load %x
+    %x_351:i32 = let %121
+    %123:u32 = and 4u, 31u
+    %124:i32 = shr %x_351, %123
+    store %x, %124
+    %125:i32 = load %m
+    %x_353:i32 = let %125
+    %127:i32 = load %m
+    %x_355:i32 = let %127
+    %129:i32 = load %m
+    %x_357:i32 = let %129
+    %131:i32 = load %x
+    %x_359:i32 = let %131
+    %133:i32 = mul 2i, %x_353
+    %134:i32 = mul 2i, %x_355
+    %135:i32 = mul 2i, %x_357
+    %136:i32 = call %tint_div_i32, %135, %x_359
+    %138:i32 = let %136
+    %139:i32 = max %133, %134
+    %140:i32 = min %139, %138
+    ret %140
   }
 }
-%mergeSort_ = func():void -> %b22 {
-  %b22 = block {
+%mergeSort_ = func():void {
+  $B22: {
     %low:ptr<function, i32, read_write> = var
     %high_1:ptr<function, i32, read_write> = var
     %m_1:ptr<function, i32, read_write> = var
@@ -218,322 +263,377 @@
     store %low, 0i
     store %high_1, 9i
     store %m_1, 1i
-    loop [b: %b23, c: %b24] {  # loop_4
-      %b23 = block {  # body
-        %x_367:i32 = load %m_1
-        %x_368:i32 = load %high_1
-        %110:bool = lte %x_367, %x_368
-        if %110 [t: %b25, f: %b26] {  # if_7
-          %b25 = block {  # true
+    loop [b: $B23, c: $B24] {  # loop_4
+      $B23: {  # body
+        %154:i32 = load %m_1
+        %x_367:i32 = let %154
+        %156:i32 = load %high_1
+        %x_368:i32 = let %156
+        %158:bool = lte %x_367, %x_368
+        if %158 [t: $B25, f: $B26] {  # if_7
+          $B25: {  # true
             exit_if  # if_7
           }
-          %b26 = block {  # false
+          $B26: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_371:i32 = load %low
+        %159:i32 = load %low
+        %x_371:i32 = let %159
         store %i_2, %x_371
-        loop [b: %b27, c: %b28] {  # loop_5
-          %b27 = block {  # body
-            %x_376:i32 = load %i_2
-            %x_377:i32 = load %high_1
-            %114:bool = lt %x_376, %x_377
-            if %114 [t: %b29, f: %b30] {  # if_8
-              %b29 = block {  # true
+        loop [b: $B27, c: $B28] {  # loop_5
+          $B27: {  # body
+            %161:i32 = load %i_2
+            %x_376:i32 = let %161
+            %163:i32 = load %high_1
+            %x_377:i32 = let %163
+            %165:bool = lt %x_376, %x_377
+            if %165 [t: $B29, f: $B30] {  # if_8
+              $B29: {  # true
                 exit_if  # if_8
               }
-              %b30 = block {  # false
+              $B30: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_380:i32 = load %i_2
+            %166:i32 = load %i_2
+            %x_380:i32 = let %166
             store %f_1, %x_380
-            %x_381:i32 = load %i_2
-            %x_382:i32 = load %m_1
-            %118:i32 = add %x_381, %x_382
-            %119:i32 = sub %118, 1i
-            store %mid_1, %119
-            %x_385:i32 = load %i_2
-            %x_386:i32 = load %m_1
-            %x_390:i32 = load %high_1
-            %123:i32 = mul 2i, %x_386
-            %124:i32 = add %x_385, %123
-            %125:i32 = sub %124, 1i
-            %126:i32 = min %125, %x_390
-            store %to_1, %126
-            %x_392:i32 = load %f_1
+            %168:i32 = load %i_2
+            %x_381:i32 = let %168
+            %170:i32 = load %m_1
+            %x_382:i32 = let %170
+            %172:i32 = add %x_381, %x_382
+            %173:i32 = sub %172, 1i
+            store %mid_1, %173
+            %174:i32 = load %i_2
+            %x_385:i32 = let %174
+            %176:i32 = load %m_1
+            %x_386:i32 = let %176
+            %178:i32 = load %high_1
+            %x_390:i32 = let %178
+            %180:i32 = mul 2i, %x_386
+            %181:i32 = add %x_385, %180
+            %182:i32 = sub %181, 1i
+            %183:i32 = min %182, %x_390
+            store %to_1, %183
+            %184:i32 = load %f_1
+            %x_392:i32 = let %184
             store %param, %x_392
-            %x_393:i32 = load %mid_1
+            %186:i32 = load %mid_1
+            %x_393:i32 = let %186
             store %param_1, %x_393
-            %x_394:i32 = load %to_1
+            %188:i32 = load %to_1
+            %x_394:i32 = let %188
             store %param_2, %x_394
-            %130:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b28
+            %190:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B28
           }
-          %b28 = block {  # continuing
-            %x_396:i32 = load %m_1
+          $B28: {  # continuing
+            %191:i32 = load %m_1
+            %x_396:i32 = let %191
             store %param_3, %x_396
-            %x_397:i32 = load %high_1
+            %193:i32 = load %high_1
+            %x_397:i32 = let %193
             store %param_4, %x_397
-            %x_398:i32 = call %func_i1_i1_, %param_3, %param_4
-            %x_399:i32 = load %i_2
-            %135:i32 = add %x_399, %x_398
-            store %i_2, %135
-            next_iteration %b27
+            %195:i32 = call %func_i1_i1_, %param_3, %param_4
+            %x_398:i32 = let %195
+            %197:i32 = load %i_2
+            %x_399:i32 = let %197
+            %199:i32 = add %x_399, %x_398
+            store %i_2, %199
+            next_iteration  # -> $B27
           }
         }
-        continue %b24
+        continue  # -> $B24
       }
-      %b24 = block {  # continuing
-        %x_401:i32 = load %m_1
-        %137:i32 = mul 2i, %x_401
-        store %m_1, %137
-        next_iteration %b23
+      $B24: {  # continuing
+        %200:i32 = load %m_1
+        %x_401:i32 = let %200
+        %202:i32 = mul 2i, %x_401
+        store %m_1, %202
+        next_iteration  # -> $B23
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b31 {
-  %b31 = block {
+%main_1 = func():void {
+  $B31: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
-    %142:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %x_93:f32 = load_vector_element %142, 0u
-    %144:i32 = convert %x_93
-    store %i_3, %144
-    loop [b: %b32, c: %b33] {  # loop_6
-      %b32 = block {  # body
-        %x_99:i32 = load %i_3
-        switch %x_99 [c: (9i, %b34), c: (8i, %b35), c: (7i, %b36), c: (6i, %b37), c: (5i, %b38), c: (4i, %b39), c: (3i, %b40), c: (2i, %b41), c: (1i, %b42), c: (0i, %b43), c: (default, %b44)] {  # switch_1
-          %b34 = block {  # case
-            %x_129:i32 = load %i_3
-            %147:ptr<private, i32, read_write> = access %data, %x_129
-            store %147, -5i
+    %207:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %208:f32 = load_vector_element %207, 0u
+    %x_93:f32 = let %208
+    %210:i32 = call %tint_f32_to_i32, %x_93
+    store %i_3, %210
+    loop [b: $B32, c: $B33] {  # loop_6
+      $B32: {  # body
+        %212:i32 = load %i_3
+        %x_99:i32 = let %212
+        switch %x_99 [c: (9i, $B34), c: (8i, $B35), c: (7i, $B36), c: (6i, $B37), c: (5i, $B38), c: (4i, $B39), c: (3i, $B40), c: (2i, $B41), c: (1i, $B42), c: (0i, $B43), c: (default, $B44)] {  # switch_1
+          $B34: {  # case
+            %214:i32 = load %i_3
+            %x_129:i32 = let %214
+            %216:ptr<private, i32, read_write> = access %data, %x_129
+            store %216, -5i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_127:i32 = load %i_3
-            %149:ptr<private, i32, read_write> = access %data, %x_127
-            store %149, -4i
+          $B35: {  # case
+            %217:i32 = load %i_3
+            %x_127:i32 = let %217
+            %219:ptr<private, i32, read_write> = access %data, %x_127
+            store %219, -4i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_125:i32 = load %i_3
-            %151:ptr<private, i32, read_write> = access %data, %x_125
-            store %151, -3i
+          $B36: {  # case
+            %220:i32 = load %i_3
+            %x_125:i32 = let %220
+            %222:ptr<private, i32, read_write> = access %data, %x_125
+            store %222, -3i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_123:i32 = load %i_3
-            %153:ptr<private, i32, read_write> = access %data, %x_123
-            store %153, -2i
+          $B37: {  # case
+            %223:i32 = load %i_3
+            %x_123:i32 = let %223
+            %225:ptr<private, i32, read_write> = access %data, %x_123
+            store %225, -2i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_121:i32 = load %i_3
-            %155:ptr<private, i32, read_write> = access %data, %x_121
-            store %155, -1i
+          $B38: {  # case
+            %226:i32 = load %i_3
+            %x_121:i32 = let %226
+            %228:ptr<private, i32, read_write> = access %data, %x_121
+            store %228, -1i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
-            %x_119:i32 = load %i_3
-            %157:ptr<private, i32, read_write> = access %data, %x_119
-            store %157, 0i
+          $B39: {  # case
+            %229:i32 = load %i_3
+            %x_119:i32 = let %229
+            %231:ptr<private, i32, read_write> = access %data, %x_119
+            store %231, 0i
             exit_switch  # switch_1
           }
-          %b40 = block {  # case
-            %x_117:i32 = load %i_3
-            %159:ptr<private, i32, read_write> = access %data, %x_117
-            store %159, 1i
+          $B40: {  # case
+            %232:i32 = load %i_3
+            %x_117:i32 = let %232
+            %234:ptr<private, i32, read_write> = access %data, %x_117
+            store %234, 1i
             exit_switch  # switch_1
           }
-          %b41 = block {  # case
-            %x_115:i32 = load %i_3
-            %161:ptr<private, i32, read_write> = access %data, %x_115
-            store %161, 2i
+          $B41: {  # case
+            %235:i32 = load %i_3
+            %x_115:i32 = let %235
+            %237:ptr<private, i32, read_write> = access %data, %x_115
+            store %237, 2i
             exit_switch  # switch_1
           }
-          %b42 = block {  # case
-            %x_113:i32 = load %i_3
-            %163:ptr<private, i32, read_write> = access %data, %x_113
-            store %163, 3i
+          $B42: {  # case
+            %238:i32 = load %i_3
+            %x_113:i32 = let %238
+            %240:ptr<private, i32, read_write> = access %data, %x_113
+            store %240, 3i
             exit_switch  # switch_1
           }
-          %b43 = block {  # case
-            %x_111:i32 = load %i_3
-            %165:ptr<private, i32, read_write> = access %data, %x_111
-            store %165, 4i
+          $B43: {  # case
+            %241:i32 = load %i_3
+            %x_111:i32 = let %241
+            %243:ptr<private, i32, read_write> = access %data, %x_111
+            store %243, 4i
             exit_switch  # switch_1
           }
-          %b44 = block {  # case
+          $B44: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_131:i32 = load %i_3
-        %167:i32 = add %x_131, 1i
-        store %i_3, %167
-        continue %b33
+        %244:i32 = load %i_3
+        %x_131:i32 = let %244
+        %246:i32 = add %x_131, 1i
+        store %i_3, %246
+        continue  # -> $B33
       }
-      %b33 = block {  # continuing
-        %x_133:i32 = load %i_3
-        %169:bool = lt %x_133, 10i
-        %170:bool = eq %169, false
-        break_if %170 %b32
+      $B33: {  # continuing
+        %247:i32 = load %i_3
+        %x_133:i32 = let %247
+        %249:bool = lt %x_133, 10i
+        %250:bool = eq %249, false
+        break_if %250  # -> [t: exit_loop loop_6, f: $B32]
       }
     }
     store %j_1, 0i
-    loop [b: %b45, c: %b46] {  # loop_7
-      %b45 = block {  # body
-        %x_139:i32 = load %j_1
-        %172:bool = lt %x_139, 10i
-        if %172 [t: %b47, f: %b48] {  # if_9
-          %b47 = block {  # true
+    loop [b: $B45, c: $B46] {  # loop_7
+      $B45: {  # body
+        %251:i32 = load %j_1
+        %x_139:i32 = let %251
+        %253:bool = lt %x_139, 10i
+        if %253 [t: $B47, f: $B48] {  # if_9
+          $B47: {  # true
             exit_if  # if_9
           }
-          %b48 = block {  # false
+          $B48: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_142:i32 = load %j_1
-        %x_143:i32 = load %j_1
-        %175:ptr<private, i32, read_write> = access %data, %x_143
-        %x_145:i32 = load %175
-        %177:ptr<private, i32, read_write> = access %temp, %x_142
-        store %177, %x_145
-        continue %b46
+        %254:i32 = load %j_1
+        %x_142:i32 = let %254
+        %256:i32 = load %j_1
+        %x_143:i32 = let %256
+        %258:ptr<private, i32, read_write> = access %data, %x_143
+        %259:i32 = load %258
+        %x_145:i32 = let %259
+        %261:ptr<private, i32, read_write> = access %temp, %x_142
+        store %261, %x_145
+        continue  # -> $B46
       }
-      %b46 = block {  # continuing
-        %x_147:i32 = load %j_1
-        %179:i32 = add %x_147, 1i
-        store %j_1, %179
-        next_iteration %b45
+      $B46: {  # continuing
+        %262:i32 = load %j_1
+        %x_147:i32 = let %262
+        %264:i32 = add %x_147, 1i
+        store %j_1, %264
+        next_iteration  # -> $B45
       }
     }
-    %180:void = call %mergeSort_
-    %x_151:f32 = load_vector_element %gl_FragCoord, 1u
-    %182:i32 = convert %x_151
-    %183:bool = lt %182, 30i
-    if %183 [t: %b49, f: %b50] {  # if_10
-      %b49 = block {  # true
-        %184:ptr<private, i32, read_write> = access %data, 0i
-        %x_158:i32 = load %184
-        %186:f32 = convert %x_158
-        %187:f32 = div %186, 10.0f
-        %188:f32 = add 0.5f, %187
-        store %grey, %188
+    %265:void = call %mergeSort_
+    %266:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_151:f32 = let %266
+    %268:i32 = call %tint_f32_to_i32, %x_151
+    %269:bool = lt %268, 30i
+    if %269 [t: $B49, f: $B50] {  # if_10
+      $B49: {  # true
+        %270:ptr<private, i32, read_write> = access %data, 0i
+        %271:i32 = load %270
+        %x_158:i32 = let %271
+        %273:f32 = convert %x_158
+        %274:f32 = div %273, 10.0f
+        %275:f32 = add 0.5f, %274
+        store %grey, %275
         exit_if  # if_10
       }
-      %b50 = block {  # false
-        %x_163:f32 = load_vector_element %gl_FragCoord, 1u
-        %190:i32 = convert %x_163
-        %191:bool = lt %190, 60i
-        if %191 [t: %b51, f: %b52] {  # if_11
-          %b51 = block {  # true
-            %192:ptr<private, i32, read_write> = access %data, 1i
-            %x_170:i32 = load %192
-            %194:f32 = convert %x_170
-            %195:f32 = div %194, 10.0f
-            %196:f32 = add 0.5f, %195
-            store %grey, %196
+      $B50: {  # false
+        %276:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_163:f32 = let %276
+        %278:i32 = call %tint_f32_to_i32, %x_163
+        %279:bool = lt %278, 60i
+        if %279 [t: $B51, f: $B52] {  # if_11
+          $B51: {  # true
+            %280:ptr<private, i32, read_write> = access %data, 1i
+            %281:i32 = load %280
+            %x_170:i32 = let %281
+            %283:f32 = convert %x_170
+            %284:f32 = div %283, 10.0f
+            %285:f32 = add 0.5f, %284
+            store %grey, %285
             exit_if  # if_11
           }
-          %b52 = block {  # false
-            %x_175:f32 = load_vector_element %gl_FragCoord, 1u
-            %198:i32 = convert %x_175
-            %199:bool = lt %198, 90i
-            if %199 [t: %b53, f: %b54] {  # if_12
-              %b53 = block {  # true
-                %200:ptr<private, i32, read_write> = access %data, 2i
-                %x_182:i32 = load %200
-                %202:f32 = convert %x_182
-                %203:f32 = div %202, 10.0f
-                %204:f32 = add 0.5f, %203
-                store %grey, %204
+          $B52: {  # false
+            %286:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_175:f32 = let %286
+            %288:i32 = call %tint_f32_to_i32, %x_175
+            %289:bool = lt %288, 90i
+            if %289 [t: $B53, f: $B54] {  # if_12
+              $B53: {  # true
+                %290:ptr<private, i32, read_write> = access %data, 2i
+                %291:i32 = load %290
+                %x_182:i32 = let %291
+                %293:f32 = convert %x_182
+                %294:f32 = div %293, 10.0f
+                %295:f32 = add 0.5f, %294
+                store %grey, %295
                 exit_if  # if_12
               }
-              %b54 = block {  # false
-                %x_187:f32 = load_vector_element %gl_FragCoord, 1u
-                %206:i32 = convert %x_187
-                %207:bool = lt %206, 120i
-                if %207 [t: %b55, f: %b56] {  # if_13
-                  %b55 = block {  # true
-                    %208:ptr<private, i32, read_write> = access %data, 3i
-                    %x_194:i32 = load %208
-                    %210:f32 = convert %x_194
-                    %211:f32 = div %210, 10.0f
-                    %212:f32 = add 0.5f, %211
-                    store %grey, %212
+              $B54: {  # false
+                %296:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_187:f32 = let %296
+                %298:i32 = call %tint_f32_to_i32, %x_187
+                %299:bool = lt %298, 120i
+                if %299 [t: $B55, f: $B56] {  # if_13
+                  $B55: {  # true
+                    %300:ptr<private, i32, read_write> = access %data, 3i
+                    %301:i32 = load %300
+                    %x_194:i32 = let %301
+                    %303:f32 = convert %x_194
+                    %304:f32 = div %303, 10.0f
+                    %305:f32 = add 0.5f, %304
+                    store %grey, %305
                     exit_if  # if_13
                   }
-                  %b56 = block {  # false
-                    %x_199:f32 = load_vector_element %gl_FragCoord, 1u
-                    %214:i32 = convert %x_199
-                    %215:bool = lt %214, 150i
-                    if %215 [t: %b57, f: %b58] {  # if_14
-                      %b57 = block {  # true
-                        discard
+                  $B56: {  # false
+                    %306:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_199:f32 = let %306
+                    %308:i32 = call %tint_f32_to_i32, %x_199
+                    %309:bool = lt %308, 150i
+                    if %309 [t: $B57, f: $B58] {  # if_14
+                      $B57: {  # true
+                        store %continue_execution, false
                         exit_if  # if_14
                       }
-                      %b58 = block {  # false
-                        %x_206:f32 = load_vector_element %gl_FragCoord, 1u
-                        %217:i32 = convert %x_206
-                        %218:bool = lt %217, 180i
-                        if %218 [t: %b59, f: %b60] {  # if_15
-                          %b59 = block {  # true
-                            %219:ptr<private, i32, read_write> = access %data, 5i
-                            %x_213:i32 = load %219
-                            %221:f32 = convert %x_213
-                            %222:f32 = div %221, 10.0f
-                            %223:f32 = add 0.5f, %222
-                            store %grey, %223
+                      $B58: {  # false
+                        %310:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_206:f32 = let %310
+                        %312:i32 = call %tint_f32_to_i32, %x_206
+                        %313:bool = lt %312, 180i
+                        if %313 [t: $B59, f: $B60] {  # if_15
+                          $B59: {  # true
+                            %314:ptr<private, i32, read_write> = access %data, 5i
+                            %315:i32 = load %314
+                            %x_213:i32 = let %315
+                            %317:f32 = convert %x_213
+                            %318:f32 = div %317, 10.0f
+                            %319:f32 = add 0.5f, %318
+                            store %grey, %319
                             exit_if  # if_15
                           }
-                          %b60 = block {  # false
-                            %x_218:f32 = load_vector_element %gl_FragCoord, 1u
-                            %225:i32 = convert %x_218
-                            %226:bool = lt %225, 210i
-                            if %226 [t: %b61, f: %b62] {  # if_16
-                              %b61 = block {  # true
-                                %227:ptr<private, i32, read_write> = access %data, 6i
-                                %x_225:i32 = load %227
-                                %229:f32 = convert %x_225
-                                %230:f32 = div %229, 10.0f
-                                %231:f32 = add 0.5f, %230
-                                store %grey, %231
+                          $B60: {  # false
+                            %320:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_218:f32 = let %320
+                            %322:i32 = call %tint_f32_to_i32, %x_218
+                            %323:bool = lt %322, 210i
+                            if %323 [t: $B61, f: $B62] {  # if_16
+                              $B61: {  # true
+                                %324:ptr<private, i32, read_write> = access %data, 6i
+                                %325:i32 = load %324
+                                %x_225:i32 = let %325
+                                %327:f32 = convert %x_225
+                                %328:f32 = div %327, 10.0f
+                                %329:f32 = add 0.5f, %328
+                                store %grey, %329
                                 exit_if  # if_16
                               }
-                              %b62 = block {  # false
-                                %x_230:f32 = load_vector_element %gl_FragCoord, 1u
-                                %233:i32 = convert %x_230
-                                %234:bool = lt %233, 240i
-                                if %234 [t: %b63, f: %b64] {  # if_17
-                                  %b63 = block {  # true
-                                    %235:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_237:i32 = load %235
-                                    %237:f32 = convert %x_237
-                                    %238:f32 = div %237, 10.0f
-                                    %239:f32 = add 0.5f, %238
-                                    store %grey, %239
+                              $B62: {  # false
+                                %330:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_230:f32 = let %330
+                                %332:i32 = call %tint_f32_to_i32, %x_230
+                                %333:bool = lt %332, 240i
+                                if %333 [t: $B63, f: $B64] {  # if_17
+                                  $B63: {  # true
+                                    %334:ptr<private, i32, read_write> = access %data, 7i
+                                    %335:i32 = load %334
+                                    %x_237:i32 = let %335
+                                    %337:f32 = convert %x_237
+                                    %338:f32 = div %337, 10.0f
+                                    %339:f32 = add 0.5f, %338
+                                    store %grey, %339
                                     exit_if  # if_17
                                   }
-                                  %b64 = block {  # false
-                                    %x_242:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %241:i32 = convert %x_242
-                                    %242:bool = lt %241, 270i
-                                    if %242 [t: %b65, f: %b66] {  # if_18
-                                      %b65 = block {  # true
-                                        %243:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_249:i32 = load %243
-                                        %245:f32 = convert %x_249
-                                        %246:f32 = div %245, 10.0f
-                                        %247:f32 = add 0.5f, %246
-                                        store %grey, %247
+                                  $B64: {  # false
+                                    %340:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_242:f32 = let %340
+                                    %342:i32 = call %tint_f32_to_i32, %x_242
+                                    %343:bool = lt %342, 270i
+                                    if %343 [t: $B65, f: $B66] {  # if_18
+                                      $B65: {  # true
+                                        %344:ptr<private, i32, read_write> = access %data, 8i
+                                        %345:i32 = load %344
+                                        %x_249:i32 = let %345
+                                        %347:f32 = convert %x_249
+                                        %348:f32 = div %347, 10.0f
+                                        %349:f32 = add 0.5f, %348
+                                        store %grey, %349
                                         exit_if  # if_18
                                       }
-                                      %b66 = block {  # false
-                                        discard
+                                      $B66: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_18
                                       }
                                     }
@@ -561,23 +661,54 @@
         exit_if  # if_10
       }
     }
-    %x_253:f32 = load %grey
-    %x_254:vec3<f32> = construct %x_253, %x_253, %x_253
-    %250:f32 = access %x_254, 0u
-    %251:f32 = access %x_254, 1u
-    %252:f32 = access %x_254, 2u
-    %253:vec4<f32> = construct %250, %251, %252, 1.0f
-    store %x_GLF_color, %253
+    %350:f32 = load %grey
+    %x_253:f32 = let %350
+    %352:vec3<f32> = construct %x_253, %x_253, %x_253
+    %x_254:vec3<f32> = let %352
+    %354:f32 = access %x_254, 0u
+    %355:f32 = access %x_254, 1u
+    %356:f32 = access %x_254, 2u
+    %357:vec4<f32> = construct %354, %355, %356, 1.0f
+    store %x_GLF_color, %357
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b67 {
-  %b67 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B67: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %256:void = call %main_1
-    %257:vec4<f32> = load %x_GLF_color
-    %258:main_out = construct %257
-    ret %258
+    %360:void = call %main_1
+    %361:vec4<f32> = load %x_GLF_color
+    %362:main_out = construct %361
+    %363:bool = load %continue_execution
+    %364:bool = eq %363, false
+    if %364 [t: $B68] {  # if_19
+      $B68: {  # true
+        terminate_invocation
+      }
+    }
+    ret %362
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B69: {
+    %367:bool = eq %rhs, 0i
+    %368:bool = eq %lhs, -2147483648i
+    %369:bool = eq %rhs, -1i
+    %370:bool = and %368, %369
+    %371:bool = or %367, %370
+    %372:i32 = select %rhs, 1i, %371
+    %373:i32 = div %lhs, %372
+    ret %373
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B70: {
+    %375:i32 = convert %value
+    %376:bool = gte %value, -2147483648.0f
+    %377:i32 = select -2147483648i, %375, %376
+    %378:bool = lte %value, 2147483520.0f
+    %379:i32 = select 2147483647i, %377, %378
+    ret %379
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.msl
index b9ef350..c4a4f63 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, array<i32, 10>, read_write> = var
     %data:ptr<function, array<i32, 10>, read_write> = var
     %x_65:ptr<function, i32, read_write> = var
@@ -24,607 +25,634 @@
     %x_180:ptr<function, f32, read_write> = var
     %x_279:ptr<function, f32, read_write> = var
     %x_280:ptr<function, f32, read_write> = var
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_62:f32 = load_vector_element %13, 0u
-    %15:i32 = convert %x_62
-    store %x_65, %15
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %15:f32 = load_vector_element %14, 0u
+    %x_62:f32 = let %15
+    %17:i32 = call %tint_f32_to_i32, %x_62
+    store %x_65, %17
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_66:ptr<function, i32, read_write> = var
-        %17:i32 = load %x_65
-        switch %17 [c: (9i, %b5), c: (8i, %b6), c: (7i, %b7), c: (6i, %b8), c: (5i, %b9), c: (4i, %b10), c: (3i, %b11), c: (2i, %b12), c: (1i, %b13), c: (0i, %b14), c: (default, %b15)] {  # switch_1
-          %b5 = block {  # case
-            %18:i32 = load %x_65
-            %19:ptr<function, i32, read_write> = access %data, %18
-            store %19, -5i
+        %20:i32 = load %x_65
+        switch %20 [c: (9i, $B5), c: (8i, $B6), c: (7i, $B7), c: (6i, $B8), c: (5i, $B9), c: (4i, $B10), c: (3i, $B11), c: (2i, $B12), c: (1i, $B13), c: (0i, $B14), c: (default, $B15)] {  # switch_1
+          $B5: {  # case
+            %21:i32 = load %x_65
+            %22:ptr<function, i32, read_write> = access %data, %21
+            store %22, -5i
             exit_switch  # switch_1
           }
-          %b6 = block {  # case
-            %20:i32 = load %x_65
-            %21:ptr<function, i32, read_write> = access %data, %20
-            store %21, -4i
+          $B6: {  # case
+            %23:i32 = load %x_65
+            %24:ptr<function, i32, read_write> = access %data, %23
+            store %24, -4i
             exit_switch  # switch_1
           }
-          %b7 = block {  # case
-            %22:i32 = load %x_65
-            %23:ptr<function, i32, read_write> = access %data, %22
-            store %23, -3i
+          $B7: {  # case
+            %25:i32 = load %x_65
+            %26:ptr<function, i32, read_write> = access %data, %25
+            store %26, -3i
             exit_switch  # switch_1
           }
-          %b8 = block {  # case
-            %24:i32 = load %x_65
-            %25:ptr<function, i32, read_write> = access %data, %24
-            store %25, -2i
+          $B8: {  # case
+            %27:i32 = load %x_65
+            %28:ptr<function, i32, read_write> = access %data, %27
+            store %28, -2i
             exit_switch  # switch_1
           }
-          %b9 = block {  # case
-            %26:i32 = load %x_65
-            %27:ptr<function, i32, read_write> = access %data, %26
-            store %27, -1i
+          $B9: {  # case
+            %29:i32 = load %x_65
+            %30:ptr<function, i32, read_write> = access %data, %29
+            store %30, -1i
             exit_switch  # switch_1
           }
-          %b10 = block {  # case
-            %28:i32 = load %x_65
-            %29:ptr<function, i32, read_write> = access %data, %28
-            store %29, 0i
+          $B10: {  # case
+            %31:i32 = load %x_65
+            %32:ptr<function, i32, read_write> = access %data, %31
+            store %32, 0i
             exit_switch  # switch_1
           }
-          %b11 = block {  # case
-            %30:i32 = load %x_65
-            %31:ptr<function, i32, read_write> = access %data, %30
-            store %31, 1i
+          $B11: {  # case
+            %33:i32 = load %x_65
+            %34:ptr<function, i32, read_write> = access %data, %33
+            store %34, 1i
             exit_switch  # switch_1
           }
-          %b12 = block {  # case
-            %32:i32 = load %x_65
-            %33:ptr<function, i32, read_write> = access %data, %32
-            store %33, 2i
+          $B12: {  # case
+            %35:i32 = load %x_65
+            %36:ptr<function, i32, read_write> = access %data, %35
+            store %36, 2i
             exit_switch  # switch_1
           }
-          %b13 = block {  # case
-            %34:i32 = load %x_65
-            %35:ptr<function, i32, read_write> = access %data, %34
-            store %35, 3i
+          $B13: {  # case
+            %37:i32 = load %x_65
+            %38:ptr<function, i32, read_write> = access %data, %37
+            store %38, 3i
             exit_switch  # switch_1
           }
-          %b14 = block {  # case
-            %36:i32 = load %x_65
-            %37:ptr<function, i32, read_write> = access %data, %36
-            store %37, 4i
+          $B14: {  # case
+            %39:i32 = load %x_65
+            %40:ptr<function, i32, read_write> = access %data, %39
+            store %40, 4i
             exit_switch  # switch_1
           }
-          %b15 = block {  # case
+          $B15: {  # case
             exit_switch  # switch_1
           }
         }
-        %38:i32 = load %x_65
-        %39:i32 = add %38, 1i
-        store %x_66, %39
-        continue %b4
+        %41:i32 = load %x_65
+        %42:i32 = add %41, 1i
+        store %x_66, %42
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %40:i32 = load %x_66
-        store %x_65, %40
-        %41:i32 = load %x_66
-        %42:bool = lt %41, 10i
-        %43:bool = eq %42, false
-        break_if %43 %b3
+      $B4: {  # continuing
+        %43:i32 = load %x_66
+        store %x_65, %43
+        %44:i32 = load %x_66
+        %45:bool = lt %44, 10i
+        %46:bool = eq %45, false
+        break_if %46  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_93, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
         %x_94:ptr<function, i32, read_write> = var
-        %45:i32 = load %x_93
-        %46:bool = lt %45, 10i
-        if %46 [t: %b18, f: %b19] {  # if_1
-          %b18 = block {  # true
+        %48:i32 = load %x_93
+        %49:bool = lt %48, 10i
+        if %49 [t: $B18, f: $B19] {  # if_1
+          $B18: {  # true
             exit_if  # if_1
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %47:i32 = load %x_93
-        %48:ptr<function, i32, read_write> = access %temp, %47
-        %49:i32 = load %x_93
-        %50:ptr<function, i32, read_write> = access %data, %49
-        %51:i32 = load %50
-        store %48, %51
+      $B17: {  # continuing
+        %50:i32 = load %x_93
+        %51:ptr<function, i32, read_write> = access %temp, %50
         %52:i32 = load %x_93
-        %53:i32 = add %52, 1i
-        store %x_94, %53
-        %54:i32 = load %x_94
-        store %x_93, %54
-        next_iteration %b16
+        %53:ptr<function, i32, read_write> = access %data, %52
+        %54:i32 = load %53
+        store %51, %54
+        %55:i32 = load %x_93
+        %56:i32 = add %55, 1i
+        store %x_94, %56
+        %57:i32 = load %x_94
+        store %x_93, %57
+        next_iteration  # -> $B16
       }
     }
     store %x_102, 1i
-    loop [b: %b20, c: %b21] {  # loop_3
-      %b20 = block {  # body
+    loop [b: $B20, c: $B21] {  # loop_3
+      $B20: {  # body
         %x_109:ptr<function, i32, read_write> = var
         %x_103:ptr<function, i32, read_write> = var
-        %57:i32 = load %x_102
-        %58:bool = lte %57, 9i
-        if %58 [t: %b22, f: %b23] {  # if_2
-          %b22 = block {  # true
+        %60:i32 = load %x_102
+        %61:bool = lte %60, 9i
+        if %61 [t: $B22, f: $B23] {  # if_2
+          $B22: {  # true
             exit_if  # if_2
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_3
           }
         }
         store %x_109, 0i
-        loop [b: %b24, c: %b25] {  # loop_4
-          %b24 = block {  # body
+        loop [b: $B24, c: $B25] {  # loop_4
+          $B24: {  # body
             %x_121:ptr<function, i32, read_write> = var
             %x_124:ptr<function, i32, read_write> = var
             %x_126:ptr<function, i32, read_write> = var
             %x_148:ptr<function, i32, read_write> = var
             %x_151:ptr<function, i32, read_write> = var
             %x_161:ptr<function, i32, read_write> = var
-            %65:i32 = load %x_109
-            %66:bool = lt %65, 9i
-            if %66 [t: %b26, f: %b27] {  # if_3
-              %b26 = block {  # true
+            %68:i32 = load %x_109
+            %69:bool = lt %68, 9i
+            if %69 [t: $B26, f: $B27] {  # if_3
+              $B26: {  # true
                 exit_if  # if_3
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_4
               }
             }
-            %67:i32 = load %x_109
-            %68:i32 = load %x_102
-            %x_115:i32 = add %67, %68
-            %x_116:i32 = sub %x_115, 1i
-            %71:i32 = load %x_109
-            %72:i32 = load %x_102
-            %73:i32 = mul 2i, %72
-            %x_110:i32 = add %71, %73
-            %75:i32 = sub %x_110, 1i
-            %x_119:i32 = min %75, 9i
-            %77:i32 = load %x_109
-            store %x_121, %77
+            %70:i32 = load %x_109
+            %71:i32 = load %x_102
+            %72:i32 = add %70, %71
+            %x_115:i32 = let %72
+            %74:i32 = sub %x_115, 1i
+            %x_116:i32 = let %74
+            %76:i32 = load %x_109
+            %77:i32 = load %x_102
+            %78:i32 = mul 2i, %77
+            %79:i32 = add %76, %78
+            %x_110:i32 = let %79
+            %81:i32 = sub %x_110, 1i
+            %82:i32 = min %81, 9i
+            %x_119:i32 = let %82
+            %84:i32 = load %x_109
+            store %x_121, %84
             store %x_124, %x_115
-            %78:i32 = load %x_109
-            store %x_126, %78
-            loop [b: %b28, c: %b29] {  # loop_5
-              %b28 = block {  # body
+            %85:i32 = load %x_109
+            store %x_126, %85
+            loop [b: $B28, c: $B29] {  # loop_5
+              $B28: {  # body
                 %x_141:ptr<function, i32, read_write> = var
                 %x_144:ptr<function, i32, read_write> = var
                 %x_125:ptr<function, i32, read_write> = var
                 %x_127:ptr<function, i32, read_write> = var
-                %83:i32 = load %x_126
-                %84:bool = lte %83, %x_116
-                %85:i32 = load %x_124
-                %86:bool = lte %85, %x_119
-                %87:bool = and %84, %86
-                if %87 [t: %b30, f: %b31] {  # if_4
-                  %b30 = block {  # true
+                %90:i32 = load %x_126
+                %91:bool = lte %90, %x_116
+                %92:i32 = load %x_124
+                %93:bool = lte %92, %x_119
+                %94:bool = and %91, %93
+                if %94 [t: $B30, f: $B31] {  # if_4
+                  $B30: {  # true
                     exit_if  # if_4
                   }
-                  %b31 = block {  # false
+                  $B31: {  # false
                     exit_loop  # loop_5
                   }
                 }
-                %x_133_save:i32 = load %x_126
-                %x_135_save:i32 = load %x_124
-                %90:i32 = load %x_121
-                %x_122:i32 = add %90, 1i
-                %92:i32 = load %x_126
-                %93:ptr<function, i32, read_write> = access %data, %92
-                %94:i32 = load %93
-                %95:i32 = load %x_124
-                %96:ptr<function, i32, read_write> = access %data, %95
-                %97:i32 = load %96
-                %98:bool = lt %94, %97
-                if %98 [t: %b32, f: %b33] {  # if_5
-                  %b32 = block {  # true
-                    %99:i32 = load %x_126
-                    %100:i32 = add %99, 1i
-                    store %x_141, %100
-                    %101:i32 = load %x_121
-                    %102:ptr<function, i32, read_write> = access %temp, %101
-                    %103:ptr<function, i32, read_write> = access %data, %x_133_save
-                    %104:i32 = load %103
-                    store %102, %104
-                    %105:i32 = load %x_124
-                    store %x_125, %105
-                    %106:i32 = load %x_141
-                    store %x_127, %106
+                %95:i32 = load %x_126
+                %x_133_save:i32 = let %95
+                %97:i32 = load %x_124
+                %x_135_save:i32 = let %97
+                %99:i32 = load %x_121
+                %100:i32 = add %99, 1i
+                %x_122:i32 = let %100
+                %102:i32 = load %x_126
+                %103:ptr<function, i32, read_write> = access %data, %102
+                %104:i32 = load %103
+                %105:i32 = load %x_124
+                %106:ptr<function, i32, read_write> = access %data, %105
+                %107:i32 = load %106
+                %108:bool = lt %104, %107
+                if %108 [t: $B32, f: $B33] {  # if_5
+                  $B32: {  # true
+                    %109:i32 = load %x_126
+                    %110:i32 = add %109, 1i
+                    store %x_141, %110
+                    %111:i32 = load %x_121
+                    %112:ptr<function, i32, read_write> = access %temp, %111
+                    %113:ptr<function, i32, read_write> = access %data, %x_133_save
+                    %114:i32 = load %113
+                    store %112, %114
+                    %115:i32 = load %x_124
+                    store %x_125, %115
+                    %116:i32 = load %x_141
+                    store %x_127, %116
                     exit_if  # if_5
                   }
-                  %b33 = block {  # false
-                    %107:i32 = load %x_124
-                    %108:i32 = add %107, 1i
-                    store %x_144, %108
-                    %109:i32 = load %x_121
-                    %110:ptr<function, i32, read_write> = access %temp, %109
-                    %111:ptr<function, i32, read_write> = access %data, %x_135_save
-                    %112:i32 = load %111
-                    store %110, %112
-                    %113:i32 = load %x_144
-                    store %x_125, %113
-                    %114:i32 = load %x_126
-                    store %x_127, %114
+                  $B33: {  # false
+                    %117:i32 = load %x_124
+                    %118:i32 = add %117, 1i
+                    store %x_144, %118
+                    %119:i32 = load %x_121
+                    %120:ptr<function, i32, read_write> = access %temp, %119
+                    %121:ptr<function, i32, read_write> = access %data, %x_135_save
+                    %122:i32 = load %121
+                    store %120, %122
+                    %123:i32 = load %x_144
+                    store %x_125, %123
+                    %124:i32 = load %x_126
+                    store %x_127, %124
                     exit_if  # if_5
                   }
                 }
-                continue %b29
+                continue  # -> $B29
               }
-              %b29 = block {  # continuing
+              $B29: {  # continuing
                 store %x_121, %x_122
-                %115:i32 = load %x_125
-                store %x_124, %115
-                %116:i32 = load %x_127
-                store %x_126, %116
-                next_iteration %b28
+                %125:i32 = load %x_125
+                store %x_124, %125
+                %126:i32 = load %x_127
+                store %x_126, %126
+                next_iteration  # -> $B28
               }
             }
-            %117:i32 = load %x_121
-            store %x_148, %117
-            %118:i32 = load %x_126
-            store %x_151, %118
-            loop [b: %b34, c: %b35] {  # loop_6
-              %b34 = block {  # body
+            %127:i32 = load %x_121
+            store %x_148, %127
+            %128:i32 = load %x_126
+            store %x_151, %128
+            loop [b: $B34, c: $B35] {  # loop_6
+              $B34: {  # body
                 %x_149:ptr<function, i32, read_write> = var
                 %x_152:ptr<function, i32, read_write> = var
-                %121:i32 = load %x_151
-                %122:bool = lt %121, 10i
-                %123:i32 = load %x_151
-                %124:bool = lte %123, %x_116
-                %125:bool = and %122, %124
-                if %125 [t: %b36, f: %b37] {  # if_6
-                  %b36 = block {  # true
+                %131:i32 = load %x_151
+                %132:bool = lt %131, 10i
+                %133:i32 = load %x_151
+                %134:bool = lte %133, %x_116
+                %135:bool = and %132, %134
+                if %135 [t: $B36, f: $B37] {  # if_6
+                  $B36: {  # true
                     exit_if  # if_6
                   }
-                  %b37 = block {  # false
+                  $B37: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                continue %b35
+                continue  # -> $B35
               }
-              %b35 = block {  # continuing
-                %126:i32 = load %x_148
-                %127:i32 = add %126, 1i
-                store %x_149, %127
-                %128:i32 = load %x_151
-                %129:i32 = add %128, 1i
-                store %x_152, %129
-                %130:i32 = load %x_148
-                %131:ptr<function, i32, read_write> = access %temp, %130
-                %132:i32 = load %x_151
-                %133:ptr<function, i32, read_write> = access %data, %132
-                %134:i32 = load %133
-                store %131, %134
-                %135:i32 = load %x_149
-                store %x_148, %135
-                %136:i32 = load %x_152
-                store %x_151, %136
-                next_iteration %b34
+              $B35: {  # continuing
+                %136:i32 = load %x_148
+                %137:i32 = add %136, 1i
+                store %x_149, %137
+                %138:i32 = load %x_151
+                %139:i32 = add %138, 1i
+                store %x_152, %139
+                %140:i32 = load %x_148
+                %141:ptr<function, i32, read_write> = access %temp, %140
+                %142:i32 = load %x_151
+                %143:ptr<function, i32, read_write> = access %data, %142
+                %144:i32 = load %143
+                store %141, %144
+                %145:i32 = load %x_149
+                store %x_148, %145
+                %146:i32 = load %x_152
+                store %x_151, %146
+                next_iteration  # -> $B34
               }
             }
-            %137:i32 = load %x_109
-            store %x_161, %137
-            loop [b: %b38, c: %b39] {  # loop_7
-              %b38 = block {  # body
+            %147:i32 = load %x_109
+            store %x_161, %147
+            loop [b: $B38, c: $B39] {  # loop_7
+              $B38: {  # body
                 %x_162:ptr<function, i32, read_write> = var
-                %139:i32 = load %x_161
-                %140:bool = lte %139, %x_119
-                if %140 [t: %b40, f: %b41] {  # if_7
-                  %b40 = block {  # true
+                %149:i32 = load %x_161
+                %150:bool = lte %149, %x_119
+                if %150 [t: $B40, f: $B41] {  # if_7
+                  $B40: {  # true
                     exit_if  # if_7
                   }
-                  %b41 = block {  # false
+                  $B41: {  # false
                     exit_loop  # loop_7
                   }
                 }
-                continue %b39
+                continue  # -> $B39
               }
-              %b39 = block {  # continuing
-                %141:i32 = load %x_161
-                %142:ptr<function, i32, read_write> = access %data, %141
-                %143:i32 = load %x_161
-                %144:ptr<function, i32, read_write> = access %temp, %143
-                %145:i32 = load %144
-                store %142, %145
-                %146:i32 = load %x_161
-                %147:i32 = add %146, 1i
-                store %x_162, %147
-                %148:i32 = load %x_162
-                store %x_161, %148
-                next_iteration %b38
+              $B39: {  # continuing
+                %151:i32 = load %x_161
+                %152:ptr<function, i32, read_write> = access %data, %151
+                %153:i32 = load %x_161
+                %154:ptr<function, i32, read_write> = access %temp, %153
+                %155:i32 = load %154
+                store %152, %155
+                %156:i32 = load %x_161
+                %157:i32 = add %156, 1i
+                store %x_162, %157
+                %158:i32 = load %x_162
+                store %x_161, %158
+                next_iteration  # -> $B38
               }
             }
-            continue %b25
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
+          $B25: {  # continuing
             store %x_109, %x_110
-            next_iteration %b24
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %149:i32 = load %x_102
-        %150:i32 = mul 2i, %149
-        store %x_103, %150
-        %151:i32 = load %x_103
-        store %x_102, %151
-        next_iteration %b20
+      $B21: {  # continuing
+        %159:i32 = load %x_102
+        %160:i32 = mul 2i, %159
+        store %x_103, %160
+        %161:i32 = load %x_103
+        store %x_102, %161
+        next_iteration  # -> $B20
       }
     }
     %x_171:ptr<function, i32, read_write> = var
     %x_189:ptr<function, f32, read_write> = var
     %x_278:ptr<function, f32, read_write> = var
-    %155:f32 = load_vector_element %gl_FragCoord, 1u
-    %156:i32 = convert %155
-    store %x_171, %156
-    %157:i32 = load %x_171
-    %158:bool = lt %157, 30i
-    if %158 [t: %b42, f: %b43] {  # if_8
-      %b42 = block {  # true
-        %159:ptr<function, i32, read_write> = access %data, 0i
-        %160:i32 = load %159
-        %161:f32 = convert %160
-        %162:f32 = mul %161, 0.10000000149011611938f
-        %163:f32 = add 0.5f, %162
-        store %x_180, %163
-        %164:f32 = load %x_180
-        store %x_280, %164
+    %165:f32 = load_vector_element %gl_FragCoord, 1u
+    %166:i32 = call %tint_f32_to_i32, %165
+    store %x_171, %166
+    %167:i32 = load %x_171
+    %168:bool = lt %167, 30i
+    if %168 [t: $B42, f: $B43] {  # if_8
+      $B42: {  # true
+        %169:ptr<function, i32, read_write> = access %data, 0i
+        %170:i32 = load %169
+        %171:f32 = convert %170
+        %172:f32 = mul %171, 0.10000000149011611938f
+        %173:f32 = add 0.5f, %172
+        store %x_180, %173
+        %174:f32 = load %x_180
+        store %x_280, %174
         exit_if  # if_8
       }
-      %b43 = block {  # false
+      $B43: {  # false
         %x_198:ptr<function, f32, read_write> = var
         %x_277:ptr<function, f32, read_write> = var
-        %167:i32 = load %x_171
-        %168:bool = lt %167, 60i
-        if %168 [t: %b44, f: %b45] {  # if_9
-          %b44 = block {  # true
-            %169:ptr<function, i32, read_write> = access %data, 1i
-            %170:i32 = load %169
-            %171:f32 = convert %170
-            %172:f32 = mul %171, 0.10000000149011611938f
-            %173:f32 = add 0.5f, %172
-            store %x_189, %173
-            %174:f32 = load %x_189
-            store %x_279, %174
+        %177:i32 = load %x_171
+        %178:bool = lt %177, 60i
+        if %178 [t: $B44, f: $B45] {  # if_9
+          $B44: {  # true
+            %179:ptr<function, i32, read_write> = access %data, 1i
+            %180:i32 = load %179
+            %181:f32 = convert %180
+            %182:f32 = mul %181, 0.10000000149011611938f
+            %183:f32 = add 0.5f, %182
+            store %x_189, %183
+            %184:f32 = load %x_189
+            store %x_279, %184
             exit_if  # if_9
           }
-          %b45 = block {  # false
+          $B45: {  # false
             %x_207:ptr<function, f32, read_write> = var
             %x_249:ptr<function, f32, read_write> = var
-            %177:i32 = load %x_171
-            %178:bool = lt %177, 90i
-            if %178 [t: %b46, f: %b47] {  # if_10
-              %b46 = block {  # true
-                %179:ptr<function, i32, read_write> = access %data, 2i
-                %180:i32 = load %179
-                %181:f32 = convert %180
-                %182:f32 = mul %181, 0.10000000149011611938f
-                %183:f32 = add 0.5f, %182
-                store %x_198, %183
-                %184:f32 = load %x_198
-                store %x_278, %184
+            %187:i32 = load %x_171
+            %188:bool = lt %187, 90i
+            if %188 [t: $B46, f: $B47] {  # if_10
+              $B46: {  # true
+                %189:ptr<function, i32, read_write> = access %data, 2i
+                %190:i32 = load %189
+                %191:f32 = convert %190
+                %192:f32 = mul %191, 0.10000000149011611938f
+                %193:f32 = add 0.5f, %192
+                store %x_198, %193
+                %194:f32 = load %x_198
+                store %x_278, %194
                 exit_if  # if_10
               }
-              %b47 = block {  # false
-                %185:i32 = load %x_171
-                %186:bool = lt %185, 120i
-                if %186 [t: %b48, f: %b49] {  # if_11
-                  %b48 = block {  # true
-                    %187:ptr<function, i32, read_write> = access %data, 3i
-                    %188:i32 = load %187
-                    %189:f32 = convert %188
-                    %190:f32 = mul %189, 0.10000000149011611938f
-                    %191:f32 = add 0.5f, %190
-                    store %x_207, %191
-                    %192:f32 = load %x_207
-                    store %x_277, %192
+              $B47: {  # false
+                %195:i32 = load %x_171
+                %196:bool = lt %195, 120i
+                if %196 [t: $B48, f: $B49] {  # if_11
+                  $B48: {  # true
+                    %197:ptr<function, i32, read_write> = access %data, 3i
+                    %198:i32 = load %197
+                    %199:f32 = convert %198
+                    %200:f32 = mul %199, 0.10000000149011611938f
+                    %201:f32 = add 0.5f, %200
+                    store %x_207, %201
+                    %202:f32 = load %x_207
+                    store %x_277, %202
                     exit_if  # if_11
                   }
-                  %b49 = block {  # false
+                  $B49: {  # false
                     %x_220:ptr<function, f32, read_write> = var
                     %x_248:ptr<function, f32, read_write> = var
                     %x_256:ptr<function, vec2<f32>, read_write> = var
                     %x_259:ptr<function, i32, read_write> = var
-                    %197:i32 = load %x_171
-                    %198:bool = lt %197, 150i
-                    if %198 [t: %b50, f: %b51] {  # if_12
-                      %b50 = block {  # true
-                        discard
+                    %207:i32 = load %x_171
+                    %208:bool = lt %207, 150i
+                    if %208 [t: $B50, f: $B51] {  # if_12
+                      $B50: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b51 = block {  # false
+                      $B51: {  # false
                         %x_229:ptr<function, f32, read_write> = var
                         %x_247:ptr<function, f32, read_write> = var
-                        %201:i32 = load %x_171
-                        %202:bool = lt %201, 180i
-                        if %202 [t: %b52, f: %b53] {  # if_13
-                          %b52 = block {  # true
-                            %203:ptr<function, i32, read_write> = access %data, 5i
-                            %204:i32 = load %203
-                            %205:f32 = convert %204
-                            %206:f32 = mul %205, 0.10000000149011611938f
-                            %207:f32 = add 0.5f, %206
-                            store %x_220, %207
-                            %208:f32 = load %x_220
-                            store %x_249, %208
+                        %211:i32 = load %x_171
+                        %212:bool = lt %211, 180i
+                        if %212 [t: $B52, f: $B53] {  # if_13
+                          $B52: {  # true
+                            %213:ptr<function, i32, read_write> = access %data, 5i
+                            %214:i32 = load %213
+                            %215:f32 = convert %214
+                            %216:f32 = mul %215, 0.10000000149011611938f
+                            %217:f32 = add 0.5f, %216
+                            store %x_220, %217
+                            %218:f32 = load %x_220
+                            store %x_249, %218
                             exit_if  # if_13
                           }
-                          %b53 = block {  # false
+                          $B53: {  # false
                             %x_238:ptr<function, f32, read_write> = var
                             %x_246:ptr<function, f32, read_write> = var
-                            %211:i32 = load %x_171
-                            %212:bool = lt %211, 210i
-                            if %212 [t: %b54, f: %b55] {  # if_14
-                              %b54 = block {  # true
-                                %213:ptr<function, i32, read_write> = access %data, 6i
-                                %214:i32 = load %213
-                                %215:f32 = convert %214
-                                %216:f32 = mul %215, 0.10000000149011611938f
-                                %217:f32 = add 0.5f, %216
-                                store %x_229, %217
-                                %218:f32 = load %x_229
-                                store %x_248, %218
+                            %221:i32 = load %x_171
+                            %222:bool = lt %221, 210i
+                            if %222 [t: $B54, f: $B55] {  # if_14
+                              $B54: {  # true
+                                %223:ptr<function, i32, read_write> = access %data, 6i
+                                %224:i32 = load %223
+                                %225:f32 = convert %224
+                                %226:f32 = mul %225, 0.10000000149011611938f
+                                %227:f32 = add 0.5f, %226
+                                store %x_229, %227
+                                %228:f32 = load %x_229
+                                store %x_248, %228
                                 exit_if  # if_14
                               }
-                              %b55 = block {  # false
-                                %219:i32 = load %x_171
-                                %220:bool = lt %219, 240i
-                                if %220 [t: %b56, f: %b57] {  # if_15
-                                  %b56 = block {  # true
-                                    %221:ptr<function, i32, read_write> = access %data, 7i
-                                    %222:i32 = load %221
-                                    %223:f32 = convert %222
-                                    %224:f32 = mul %223, 0.10000000149011611938f
-                                    %225:f32 = add 0.5f, %224
-                                    store %x_238, %225
-                                    %226:f32 = load %x_238
-                                    store %x_247, %226
+                              $B55: {  # false
+                                %229:i32 = load %x_171
+                                %230:bool = lt %229, 240i
+                                if %230 [t: $B56, f: $B57] {  # if_15
+                                  $B56: {  # true
+                                    %231:ptr<function, i32, read_write> = access %data, 7i
+                                    %232:i32 = load %231
+                                    %233:f32 = convert %232
+                                    %234:f32 = mul %233, 0.10000000149011611938f
+                                    %235:f32 = add 0.5f, %234
+                                    store %x_238, %235
+                                    %236:f32 = load %x_238
+                                    store %x_247, %236
                                     exit_if  # if_15
                                   }
-                                  %b57 = block {  # false
-                                    %227:i32 = load %x_171
-                                    %228:bool = lt %227, 270i
-                                    if %228 [t: %b58, f: %b59] {  # if_16
-                                      %b58 = block {  # true
+                                  $B57: {  # false
+                                    %237:i32 = load %x_171
+                                    %238:bool = lt %237, 270i
+                                    if %238 [t: $B58, f: $B59] {  # if_16
+                                      $B58: {  # true
                                         exit_if  # if_16
                                       }
-                                      %b59 = block {  # false
-                                        discard
+                                      $B59: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
-                                    %229:ptr<function, i32, read_write> = access %data, 8i
-                                    %230:i32 = load %229
-                                    %231:f32 = convert %230
-                                    %232:f32 = mul %231, 0.10000000149011611938f
-                                    %233:f32 = add 0.5f, %232
-                                    store %x_246, %233
-                                    %234:f32 = load %x_246
-                                    store %x_247, %234
+                                    %239:ptr<function, i32, read_write> = access %data, 8i
+                                    %240:i32 = load %239
+                                    %241:f32 = convert %240
+                                    %242:f32 = mul %241, 0.10000000149011611938f
+                                    %243:f32 = add 0.5f, %242
+                                    store %x_246, %243
+                                    %244:f32 = load %x_246
+                                    store %x_247, %244
                                     exit_if  # if_15
                                   }
                                 }
-                                %235:f32 = load %x_247
-                                store %x_248, %235
+                                %245:f32 = load %x_247
+                                store %x_248, %245
                                 exit_if  # if_14
                               }
                             }
-                            %236:f32 = load %x_248
-                            store %x_249, %236
+                            %246:f32 = load %x_248
+                            store %x_249, %246
                             exit_if  # if_13
                           }
                         }
-                        %237:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-                        %238:f32 = load_vector_element %237, 1u
-                        %x_252:bool = gt %x_62, %238
-                        if %x_252 [t: %b60] {  # if_17
-                          %b60 = block {  # true
+                        %247:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+                        %248:f32 = load_vector_element %247, 1u
+                        %249:bool = gt %x_62, %248
+                        %x_252:bool = let %249
+                        if %x_252 [t: $B60] {  # if_17
+                          $B60: {  # true
                             store %x_GLF_color, vec4<f32>(1.0f)
                             exit_if  # if_17
                           }
                         }
                         store %x_256, vec2<f32>(1.0f)
                         store %x_259, 0i
-                        loop [b: %b61, c: %b62] {  # loop_8
-                          %b61 = block {  # body
+                        loop [b: $B61, c: $B62] {  # loop_8
+                          $B61: {  # body
                             %x_272:ptr<function, vec2<f32>, read_write> = var
                             %x_273:ptr<function, vec2<f32>, read_write> = var
                             %x_260:ptr<function, i32, read_write> = var
-                            %243:i32 = load %x_259
-                            %244:bool = lte %243, 32i
-                            if %244 [t: %b63, f: %b64] {  # if_18
-                              %b63 = block {  # true
+                            %254:i32 = load %x_259
+                            %255:bool = lte %254, 32i
+                            if %255 [t: $B63, f: $B64] {  # if_18
+                              $B63: {  # true
                                 exit_if  # if_18
                               }
-                              %b64 = block {  # false
+                              $B64: {  # false
                                 exit_loop  # loop_8
                               }
                             }
-                            %245:vec2<f32> = load %x_256
-                            store %x_273, %245
-                            %246:f32 = load_vector_element %x_256, 0u
-                            %247:bool = lt %246, 0.0f
-                            if %247 [t: %b65] {  # if_19
-                              %b65 = block {  # true
-                                if %x_252 [t: %b66] {  # if_20
-                                  %b66 = block {  # true
-                                    discard
+                            %256:vec2<f32> = load %x_256
+                            store %x_273, %256
+                            %257:f32 = load_vector_element %x_256, 0u
+                            %258:bool = lt %257, 0.0f
+                            if %258 [t: $B65] {  # if_19
+                              $B65: {  # true
+                                if %x_252 [t: $B66] {  # if_20
+                                  $B66: {  # true
+                                    store %continue_execution, false
                                     exit_if  # if_20
                                   }
                                 }
-                                %248:vec2<f32> = load %x_256
-                                store %x_272, %248
-                                %249:f32 = load_vector_element %x_256, 1u
-                                %250:f32 = add %249, 1.0f
-                                store_vector_element %x_272, 1u, %250
-                                %251:vec2<f32> = load %x_272
-                                store %x_273, %251
+                                %259:vec2<f32> = load %x_256
+                                store %x_272, %259
+                                %260:f32 = load_vector_element %x_256, 1u
+                                %261:f32 = add %260, 1.0f
+                                store_vector_element %x_272, 1u, %261
+                                %262:vec2<f32> = load %x_272
+                                store %x_273, %262
                                 exit_if  # if_19
                               }
                             }
-                            %252:vec2<f32> = load %x_273
-                            %x_257_1:ptr<function, vec2<f32>, read_write> = var, %252
-                            %254:f32 = load_vector_element %x_273, 0u
-                            %255:f32 = load_vector_element %x_273, 1u
-                            %256:f32 = add %254, %255
-                            store_vector_element %x_257_1, 0u, %256
-                            %x_257:vec2<f32> = load %x_257_1
-                            continue %b62
+                            %263:vec2<f32> = load %x_273
+                            %x_257_1:ptr<function, vec2<f32>, read_write> = var, %263
+                            %265:f32 = load_vector_element %x_273, 0u
+                            %266:f32 = load_vector_element %x_273, 1u
+                            %267:f32 = add %265, %266
+                            store_vector_element %x_257_1, 0u, %267
+                            %268:vec2<f32> = load %x_257_1
+                            %x_257:vec2<f32> = let %268
+                            continue  # -> $B62
                           }
-                          %b62 = block {  # continuing
-                            %258:i32 = load %x_259
-                            %259:i32 = add %258, 1i
-                            store %x_260, %259
+                          $B62: {  # continuing
+                            %270:i32 = load %x_259
+                            %271:i32 = add %270, 1i
+                            store %x_260, %271
                             store %x_256, %x_257
-                            %260:i32 = load %x_260
-                            store %x_259, %260
-                            next_iteration %b61
+                            %272:i32 = load %x_260
+                            store %x_259, %272
+                            next_iteration  # -> $B61
                           }
                         }
                         exit_if  # if_12
                       }
                     }
-                    %261:f32 = load %x_249
-                    store %x_277, %261
+                    %273:f32 = load %x_249
+                    store %x_277, %273
                     exit_if  # if_11
                   }
                 }
-                %262:f32 = load %x_277
-                store %x_278, %262
+                %274:f32 = load %x_277
+                store %x_278, %274
                 exit_if  # if_10
               }
             }
-            %263:f32 = load %x_278
-            store %x_279, %263
+            %275:f32 = load %x_278
+            store %x_279, %275
             exit_if  # if_9
           }
         }
-        %264:f32 = load %x_279
-        store %x_280, %264
+        %276:f32 = load %x_279
+        store %x_280, %276
         exit_if  # if_8
       }
     }
-    %265:f32 = load %x_280
-    %266:f32 = load %x_280
-    %267:f32 = load %x_280
-    %268:vec4<f32> = construct %265, %266, %267, 1.0f
-    store %x_GLF_color, %268
+    %277:f32 = load %x_280
+    %278:f32 = load %x_280
+    %279:f32 = load %x_280
+    %280:vec4<f32> = construct %277, %278, %279, 1.0f
+    store %x_GLF_color, %280
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b67 {
-  %b67 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B67: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %271:void = call %main_1
-    %272:vec4<f32> = load %x_GLF_color
-    %273:main_out = construct %272
-    ret %273
+    %283:void = call %main_1
+    %284:vec4<f32> = load %x_GLF_color
+    %285:main_out = construct %284
+    %286:bool = load %continue_execution
+    %287:bool = eq %286, false
+    if %287 [t: $B68] {  # if_21
+      $B68: {  # true
+        terminate_invocation
+      }
+    }
+    ret %285
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B69: {
+    %289:i32 = convert %value
+    %290:bool = gte %value, -2147483648.0f
+    %291:i32 = select -2147483648i, %289, %290
+    %292:bool = lte %value, 2147483520.0f
+    %293:i32 = select 2147483647i, %291, %292
+    ret %293
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.msl
index c18005c..ae93504 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-for-always-false-if-discard/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %temp:ptr<function, array<i32, 10>, read_write> = var
     %data:ptr<function, array<i32, 10>, read_write> = var
     %x_180:ptr<function, f32, read_write> = var
@@ -24,124 +25,131 @@
     %x_93_phi:ptr<function, i32, read_write> = var
     %x_102_phi:ptr<function, i32, read_write> = var
     %x_280_phi:ptr<function, f32, read_write> = var
-    %13:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-    %x_62:f32 = load_vector_element %13, 0u
-    %x_63:i32 = convert %x_62
+    %14:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+    %15:f32 = load_vector_element %14, 0u
+    %x_62:f32 = let %15
+    %17:i32 = call %tint_f32_to_i32, %x_62
+    %x_63:i32 = let %17
     store %x_65_phi, %x_63
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_65:i32 = load %x_65_phi
-        switch %x_65 [c: (9i, %b5), c: (8i, %b6), c: (7i, %b7), c: (6i, %b8), c: (5i, %b9), c: (4i, %b10), c: (3i, %b11), c: (2i, %b12), c: (1i, %b13), c: (0i, %b14), c: (default, %b15)] {  # switch_1
-          %b5 = block {  # case
-            %17:ptr<function, i32, read_write> = access %data, %x_65
-            store %17, -5i
-            exit_switch  # switch_1
-          }
-          %b6 = block {  # case
-            %18:ptr<function, i32, read_write> = access %data, %x_65
-            store %18, -4i
-            exit_switch  # switch_1
-          }
-          %b7 = block {  # case
-            %19:ptr<function, i32, read_write> = access %data, %x_65
-            store %19, -3i
-            exit_switch  # switch_1
-          }
-          %b8 = block {  # case
-            %20:ptr<function, i32, read_write> = access %data, %x_65
-            store %20, -2i
-            exit_switch  # switch_1
-          }
-          %b9 = block {  # case
-            %21:ptr<function, i32, read_write> = access %data, %x_65
-            store %21, -1i
-            exit_switch  # switch_1
-          }
-          %b10 = block {  # case
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %20:i32 = load %x_65_phi
+        %x_65:i32 = let %20
+        switch %x_65 [c: (9i, $B5), c: (8i, $B6), c: (7i, $B7), c: (6i, $B8), c: (5i, $B9), c: (4i, $B10), c: (3i, $B11), c: (2i, $B12), c: (1i, $B13), c: (0i, $B14), c: (default, $B15)] {  # switch_1
+          $B5: {  # case
             %22:ptr<function, i32, read_write> = access %data, %x_65
-            store %22, 0i
+            store %22, -5i
             exit_switch  # switch_1
           }
-          %b11 = block {  # case
+          $B6: {  # case
             %23:ptr<function, i32, read_write> = access %data, %x_65
-            store %23, 1i
+            store %23, -4i
             exit_switch  # switch_1
           }
-          %b12 = block {  # case
+          $B7: {  # case
             %24:ptr<function, i32, read_write> = access %data, %x_65
-            store %24, 2i
+            store %24, -3i
             exit_switch  # switch_1
           }
-          %b13 = block {  # case
+          $B8: {  # case
             %25:ptr<function, i32, read_write> = access %data, %x_65
-            store %25, 3i
+            store %25, -2i
             exit_switch  # switch_1
           }
-          %b14 = block {  # case
+          $B9: {  # case
             %26:ptr<function, i32, read_write> = access %data, %x_65
-            store %26, 4i
+            store %26, -1i
             exit_switch  # switch_1
           }
-          %b15 = block {  # case
+          $B10: {  # case
+            %27:ptr<function, i32, read_write> = access %data, %x_65
+            store %27, 0i
+            exit_switch  # switch_1
+          }
+          $B11: {  # case
+            %28:ptr<function, i32, read_write> = access %data, %x_65
+            store %28, 1i
+            exit_switch  # switch_1
+          }
+          $B12: {  # case
+            %29:ptr<function, i32, read_write> = access %data, %x_65
+            store %29, 2i
+            exit_switch  # switch_1
+          }
+          $B13: {  # case
+            %30:ptr<function, i32, read_write> = access %data, %x_65
+            store %30, 3i
+            exit_switch  # switch_1
+          }
+          $B14: {  # case
+            %31:ptr<function, i32, read_write> = access %data, %x_65
+            store %31, 4i
+            exit_switch  # switch_1
+          }
+          $B15: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_66:i32 = add %x_65, 1i
-        continue %b4
+        %32:i32 = add %x_65, 1i
+        %x_66:i32 = let %32
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_65_phi, %x_66
-        %28:bool = lt %x_66, 10i
-        %29:bool = eq %28, false
-        break_if %29 %b3
+        %34:bool = lt %x_66, 10i
+        %35:bool = eq %34, false
+        break_if %35  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     store %x_93_phi, 0i
-    loop [b: %b16, c: %b17] {  # loop_2
-      %b16 = block {  # body
+    loop [b: $B16, c: $B17] {  # loop_2
+      $B16: {  # body
         %x_94:ptr<function, i32, read_write> = var
-        %x_93:i32 = load %x_93_phi
-        %32:bool = lt %x_93, 10i
-        if %32 [t: %b18, f: %b19] {  # if_1
-          %b18 = block {  # true
+        %37:i32 = load %x_93_phi
+        %x_93:i32 = let %37
+        %39:bool = lt %x_93, 10i
+        if %39 [t: $B18, f: $B19] {  # if_1
+          $B18: {  # true
             exit_if  # if_1
           }
-          %b19 = block {  # false
+          $B19: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b17
+        continue  # -> $B17
       }
-      %b17 = block {  # continuing
-        %33:ptr<function, i32, read_write> = access %data, %x_93
-        %x_99:i32 = load %33
-        %35:ptr<function, i32, read_write> = access %temp, %x_93
-        store %35, %x_99
-        %36:i32 = add %x_93, 1i
-        store %x_94, %36
-        %37:i32 = load %x_94
-        store %x_93_phi, %37
-        next_iteration %b16
+      $B17: {  # continuing
+        %40:ptr<function, i32, read_write> = access %data, %x_93
+        %41:i32 = load %40
+        %x_99:i32 = let %41
+        %43:ptr<function, i32, read_write> = access %temp, %x_93
+        store %43, %x_99
+        %44:i32 = add %x_93, 1i
+        store %x_94, %44
+        %45:i32 = load %x_94
+        store %x_93_phi, %45
+        next_iteration  # -> $B16
       }
     }
     store %x_102_phi, 1i
-    loop [b: %b20, c: %b21] {  # loop_3
-      %b20 = block {  # body
+    loop [b: $B20, c: $B21] {  # loop_3
+      $B20: {  # body
         %x_103:ptr<function, i32, read_write> = var
         %x_109_phi:ptr<function, i32, read_write> = var
-        %x_102:i32 = load %x_102_phi
-        %41:bool = lte %x_102, 9i
-        if %41 [t: %b22, f: %b23] {  # if_2
-          %b22 = block {  # true
+        %48:i32 = load %x_102_phi
+        %x_102:i32 = let %48
+        %50:bool = lte %x_102, 9i
+        if %50 [t: $B22, f: $B23] {  # if_2
+          $B22: {  # true
             exit_if  # if_2
           }
-          %b23 = block {  # false
+          $B23: {  # false
             exit_loop  # loop_3
           }
         }
         store %x_109_phi, 0i
-        loop [b: %b24, c: %b25] {  # loop_4
-          %b24 = block {  # body
+        loop [b: $B24, c: $B25] {  # loop_4
+          $B24: {  # body
             %x_121:ptr<function, i32, read_write> = var
             %x_126:ptr<function, i32, read_write> = var
             %x_121_phi:ptr<function, i32, read_write> = var
@@ -150,466 +158,518 @@
             %x_148_phi:ptr<function, i32, read_write> = var
             %x_151_phi:ptr<function, i32, read_write> = var
             %x_161_phi:ptr<function, i32, read_write> = var
-            %x_109:i32 = load %x_109_phi
-            %51:bool = lt %x_109, 9i
-            if %51 [t: %b26, f: %b27] {  # if_3
-              %b26 = block {  # true
+            %59:i32 = load %x_109_phi
+            %x_109:i32 = let %59
+            %61:bool = lt %x_109, 9i
+            if %61 [t: $B26, f: $B27] {  # if_3
+              $B26: {  # true
                 exit_if  # if_3
               }
-              %b27 = block {  # false
+              $B27: {  # false
                 exit_loop  # loop_4
               }
             }
-            %x_115:i32 = add %x_109, %x_102
-            %x_116:i32 = sub %x_115, 1i
-            %54:i32 = mul 2i, %x_102
-            %x_110:i32 = add %x_109, %54
-            %56:i32 = sub %x_110, 1i
-            %x_119:i32 = min %56, 9i
+            %62:i32 = add %x_109, %x_102
+            %x_115:i32 = let %62
+            %64:i32 = sub %x_115, 1i
+            %x_116:i32 = let %64
+            %66:i32 = mul 2i, %x_102
+            %67:i32 = add %x_109, %66
+            %x_110:i32 = let %67
+            %69:i32 = sub %x_110, 1i
+            %70:i32 = min %69, 9i
+            %x_119:i32 = let %70
             store %x_121_phi, %x_109
             store %x_124_phi, %x_115
             store %x_126_phi, %x_109
-            loop [b: %b28, c: %b29] {  # loop_5
-              %b28 = block {  # body
+            loop [b: $B28, c: $B29] {  # loop_5
+              $B28: {  # body
                 %x_141:ptr<function, i32, read_write> = var
                 %x_144:ptr<function, i32, read_write> = var
                 %x_125_phi:ptr<function, i32, read_write> = var
                 %x_127_phi:ptr<function, i32, read_write> = var
-                %62:i32 = load %x_121_phi
-                store %x_121, %62
-                %x_124:i32 = load %x_124_phi
-                %64:i32 = load %x_126_phi
-                store %x_126, %64
-                %65:i32 = load %x_126
-                %66:bool = lte %65, %x_116
-                %67:bool = lte %x_124, %x_119
-                %68:bool = and %66, %67
-                if %68 [t: %b30, f: %b31] {  # if_4
-                  %b30 = block {  # true
+                %76:i32 = load %x_121_phi
+                store %x_121, %76
+                %77:i32 = load %x_124_phi
+                %x_124:i32 = let %77
+                %79:i32 = load %x_126_phi
+                store %x_126, %79
+                %80:i32 = load %x_126
+                %81:bool = lte %80, %x_116
+                %82:bool = lte %x_124, %x_119
+                %83:bool = and %81, %82
+                if %83 [t: $B30, f: $B31] {  # if_4
+                  $B30: {  # true
                     exit_if  # if_4
                   }
-                  %b31 = block {  # false
+                  $B31: {  # false
                     exit_loop  # loop_5
                   }
                 }
-                %x_133_save:i32 = load %x_126
-                %70:ptr<function, i32, read_write> = access %data, %x_133_save
-                %x_134:i32 = load %70
+                %84:i32 = load %x_126
+                %x_133_save:i32 = let %84
+                %86:ptr<function, i32, read_write> = access %data, %x_133_save
+                %87:i32 = load %86
+                %x_134:i32 = let %87
                 %x_135_save:i32 = let %x_124
-                %73:ptr<function, i32, read_write> = access %data, %x_135_save
-                %x_136:i32 = load %73
-                %75:i32 = load %x_121
-                %76:i32 = add %75, 1i
-                %x_122:i32 = bitcast %76
-                %78:bool = lt %x_134, %x_136
-                if %78 [t: %b32, f: %b33] {  # if_5
-                  %b32 = block {  # true
-                    %79:i32 = load %x_126
-                    %80:i32 = add %79, 1i
-                    %81:i32 = bitcast %80
-                    store %x_141, %81
-                    %82:ptr<function, i32, read_write> = access %data, %x_133_save
-                    %x_142:i32 = load %82
-                    %84:i32 = load %x_121
-                    %85:ptr<function, i32, read_write> = access %temp, %84
-                    store %85, %x_142
+                %90:ptr<function, i32, read_write> = access %data, %x_135_save
+                %91:i32 = load %90
+                %x_136:i32 = let %91
+                %93:i32 = load %x_121
+                %94:i32 = add %93, 1i
+                %95:i32 = bitcast %94
+                %x_122:i32 = let %95
+                %97:bool = lt %x_134, %x_136
+                if %97 [t: $B32, f: $B33] {  # if_5
+                  $B32: {  # true
+                    %98:i32 = load %x_126
+                    %99:i32 = add %98, 1i
+                    %100:i32 = bitcast %99
+                    store %x_141, %100
+                    %101:ptr<function, i32, read_write> = access %data, %x_133_save
+                    %102:i32 = load %101
+                    %x_142:i32 = let %102
+                    %104:i32 = load %x_121
+                    %105:ptr<function, i32, read_write> = access %temp, %104
+                    store %105, %x_142
                     store %x_125_phi, %x_124
-                    %86:i32 = load %x_141
-                    store %x_127_phi, %86
+                    %106:i32 = load %x_141
+                    store %x_127_phi, %106
                     exit_if  # if_5
                   }
-                  %b33 = block {  # false
-                    %87:i32 = add %x_124, 1i
-                    store %x_144, %87
-                    %88:ptr<function, i32, read_write> = access %data, %x_135_save
-                    %x_145:i32 = load %88
-                    %90:i32 = load %x_121
-                    %91:ptr<function, i32, read_write> = access %temp, %90
-                    store %91, %x_145
-                    %92:i32 = load %x_144
-                    store %x_125_phi, %92
-                    %93:i32 = load %x_126
-                    store %x_127_phi, %93
+                  $B33: {  # false
+                    %107:i32 = add %x_124, 1i
+                    store %x_144, %107
+                    %108:ptr<function, i32, read_write> = access %data, %x_135_save
+                    %109:i32 = load %108
+                    %x_145:i32 = let %109
+                    %111:i32 = load %x_121
+                    %112:ptr<function, i32, read_write> = access %temp, %111
+                    store %112, %x_145
+                    %113:i32 = load %x_144
+                    store %x_125_phi, %113
+                    %114:i32 = load %x_126
+                    store %x_127_phi, %114
                     exit_if  # if_5
                   }
                 }
-                %x_125:i32 = load %x_125_phi
-                %x_127:i32 = load %x_127_phi
-                continue %b29
+                %115:i32 = load %x_125_phi
+                %x_125:i32 = let %115
+                %117:i32 = load %x_127_phi
+                %x_127:i32 = let %117
+                continue  # -> $B29
               }
-              %b29 = block {  # continuing
+              $B29: {  # continuing
                 store %x_121_phi, %x_122
                 store %x_124_phi, %x_125
                 store %x_126_phi, %x_127
-                next_iteration %b28
+                next_iteration  # -> $B28
               }
             }
-            %96:i32 = load %x_121
-            store %x_148_phi, %96
-            %97:i32 = load %x_126
-            store %x_151_phi, %97
-            loop [b: %b34, c: %b35] {  # loop_6
-              %b34 = block {  # body
+            %119:i32 = load %x_121
+            store %x_148_phi, %119
+            %120:i32 = load %x_126
+            store %x_151_phi, %120
+            loop [b: $B34, c: $B35] {  # loop_6
+              $B34: {  # body
                 %x_149:ptr<function, i32, read_write> = var
                 %x_152:ptr<function, i32, read_write> = var
-                %x_148:i32 = load %x_148_phi
-                %x_151:i32 = load %x_151_phi
-                %102:bool = lt %x_151, 10i
-                %103:bool = lte %x_151, %x_116
-                %104:bool = and %102, %103
-                if %104 [t: %b36, f: %b37] {  # if_6
-                  %b36 = block {  # true
+                %123:i32 = load %x_148_phi
+                %x_148:i32 = let %123
+                %125:i32 = load %x_151_phi
+                %x_151:i32 = let %125
+                %127:bool = lt %x_151, 10i
+                %128:bool = lte %x_151, %x_116
+                %129:bool = and %127, %128
+                if %129 [t: $B36, f: $B37] {  # if_6
+                  $B36: {  # true
                     exit_if  # if_6
                   }
-                  %b37 = block {  # false
+                  $B37: {  # false
                     exit_loop  # loop_6
                   }
                 }
-                continue %b35
+                continue  # -> $B35
               }
-              %b35 = block {  # continuing
-                %105:i32 = add %x_148, 1i
-                store %x_149, %105
-                %106:i32 = add %x_151, 1i
-                store %x_152, %106
-                %107:ptr<function, i32, read_write> = access %data, %x_151
-                %x_158:i32 = load %107
-                %109:ptr<function, i32, read_write> = access %temp, %x_148
-                store %109, %x_158
-                %110:i32 = load %x_149
-                store %x_148_phi, %110
-                %111:i32 = load %x_152
-                store %x_151_phi, %111
-                next_iteration %b34
+              $B35: {  # continuing
+                %130:i32 = add %x_148, 1i
+                store %x_149, %130
+                %131:i32 = add %x_151, 1i
+                store %x_152, %131
+                %132:ptr<function, i32, read_write> = access %data, %x_151
+                %133:i32 = load %132
+                %x_158:i32 = let %133
+                %135:ptr<function, i32, read_write> = access %temp, %x_148
+                store %135, %x_158
+                %136:i32 = load %x_149
+                store %x_148_phi, %136
+                %137:i32 = load %x_152
+                store %x_151_phi, %137
+                next_iteration  # -> $B34
               }
             }
             store %x_161_phi, %x_109
-            loop [b: %b38, c: %b39] {  # loop_7
-              %b38 = block {  # body
+            loop [b: $B38, c: $B39] {  # loop_7
+              $B38: {  # body
                 %x_162:ptr<function, i32, read_write> = var
-                %x_161:i32 = load %x_161_phi
-                %114:bool = lte %x_161, %x_119
-                if %114 [t: %b40, f: %b41] {  # if_7
-                  %b40 = block {  # true
+                %139:i32 = load %x_161_phi
+                %x_161:i32 = let %139
+                %141:bool = lte %x_161, %x_119
+                if %141 [t: $B40, f: $B41] {  # if_7
+                  $B40: {  # true
                     exit_if  # if_7
                   }
-                  %b41 = block {  # false
+                  $B41: {  # false
                     exit_loop  # loop_7
                   }
                 }
-                continue %b39
+                continue  # -> $B39
               }
-              %b39 = block {  # continuing
-                %115:ptr<function, i32, read_write> = access %temp, %x_161
-                %x_167:i32 = load %115
-                %117:ptr<function, i32, read_write> = access %data, %x_161
-                store %117, %x_167
-                %118:i32 = add %x_161, 1i
-                store %x_162, %118
-                %119:i32 = load %x_162
-                store %x_161_phi, %119
-                next_iteration %b38
+              $B39: {  # continuing
+                %142:ptr<function, i32, read_write> = access %temp, %x_161
+                %143:i32 = load %142
+                %x_167:i32 = let %143
+                %145:ptr<function, i32, read_write> = access %data, %x_161
+                store %145, %x_167
+                %146:i32 = add %x_161, 1i
+                store %x_162, %146
+                %147:i32 = load %x_162
+                store %x_161_phi, %147
+                next_iteration  # -> $B38
               }
             }
-            continue %b25
+            continue  # -> $B25
           }
-          %b25 = block {  # continuing
+          $B25: {  # continuing
             store %x_109_phi, %x_110
-            next_iteration %b24
+            next_iteration  # -> $B24
           }
         }
-        continue %b21
+        continue  # -> $B21
       }
-      %b21 = block {  # continuing
-        %120:i32 = mul 2i, %x_102
-        store %x_103, %120
-        %121:i32 = load %x_103
-        store %x_102_phi, %121
-        next_iteration %b20
+      $B21: {  # continuing
+        %148:i32 = mul 2i, %x_102
+        store %x_103, %148
+        %149:i32 = load %x_103
+        store %x_102_phi, %149
+        next_iteration  # -> $B20
       }
     }
     %x_171:ptr<function, i32, read_write> = var
     %x_189:ptr<function, f32, read_write> = var
     %x_278:ptr<function, f32, read_write> = var
     %x_279_phi:ptr<function, f32, read_write> = var
-    %x_170:f32 = load_vector_element %gl_FragCoord, 1u
-    %127:i32 = convert %x_170
-    store %x_171, %127
-    %128:i32 = load %x_171
-    %129:bool = lt %128, 30i
-    if %129 [t: %b42, f: %b43] {  # if_8
-      %b42 = block {  # true
-        %130:ptr<function, i32, read_write> = access %data, 0i
-        %x_177:i32 = load %130
-        %132:f32 = convert %x_177
-        %133:f32 = mul %132, 0.10000000149011611938f
-        %134:f32 = add 0.5f, %133
-        store %x_180, %134
-        %135:f32 = load %x_180
-        store %x_280_phi, %135
+    %154:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_170:f32 = let %154
+    %156:i32 = call %tint_f32_to_i32, %x_170
+    store %x_171, %156
+    %157:i32 = load %x_171
+    %158:bool = lt %157, 30i
+    if %158 [t: $B42, f: $B43] {  # if_8
+      $B42: {  # true
+        %159:ptr<function, i32, read_write> = access %data, 0i
+        %160:i32 = load %159
+        %x_177:i32 = let %160
+        %162:f32 = convert %x_177
+        %163:f32 = mul %162, 0.10000000149011611938f
+        %164:f32 = add 0.5f, %163
+        store %x_180, %164
+        %165:f32 = load %x_180
+        store %x_280_phi, %165
         exit_if  # if_8
       }
-      %b43 = block {  # false
+      $B43: {  # false
         %x_198:ptr<function, f32, read_write> = var
         %x_277:ptr<function, f32, read_write> = var
         %x_278_phi:ptr<function, f32, read_write> = var
-        %139:i32 = load %x_171
-        %140:bool = lt %139, 60i
-        if %140 [t: %b44, f: %b45] {  # if_9
-          %b44 = block {  # true
-            %141:ptr<function, i32, read_write> = access %data, 1i
-            %x_186:i32 = load %141
-            %143:f32 = convert %x_186
-            %144:f32 = mul %143, 0.10000000149011611938f
-            %145:f32 = add 0.5f, %144
-            store %x_189, %145
-            %146:f32 = load %x_189
-            store %x_279_phi, %146
+        %169:i32 = load %x_171
+        %170:bool = lt %169, 60i
+        if %170 [t: $B44, f: $B45] {  # if_9
+          $B44: {  # true
+            %171:ptr<function, i32, read_write> = access %data, 1i
+            %172:i32 = load %171
+            %x_186:i32 = let %172
+            %174:f32 = convert %x_186
+            %175:f32 = mul %174, 0.10000000149011611938f
+            %176:f32 = add 0.5f, %175
+            store %x_189, %176
+            %177:f32 = load %x_189
+            store %x_279_phi, %177
             exit_if  # if_9
           }
-          %b45 = block {  # false
+          $B45: {  # false
             %x_207:ptr<function, f32, read_write> = var
             %x_249:ptr<function, f32, read_write> = var
             %x_277_phi:ptr<function, f32, read_write> = var
-            %150:i32 = load %x_171
-            %151:bool = lt %150, 90i
-            if %151 [t: %b46, f: %b47] {  # if_10
-              %b46 = block {  # true
-                %152:ptr<function, i32, read_write> = access %data, 2i
-                %x_195:i32 = load %152
-                %154:f32 = convert %x_195
-                %155:f32 = mul %154, 0.10000000149011611938f
-                %156:f32 = add 0.5f, %155
-                store %x_198, %156
-                %157:f32 = load %x_198
-                store %x_278_phi, %157
+            %181:i32 = load %x_171
+            %182:bool = lt %181, 90i
+            if %182 [t: $B46, f: $B47] {  # if_10
+              $B46: {  # true
+                %183:ptr<function, i32, read_write> = access %data, 2i
+                %184:i32 = load %183
+                %x_195:i32 = let %184
+                %186:f32 = convert %x_195
+                %187:f32 = mul %186, 0.10000000149011611938f
+                %188:f32 = add 0.5f, %187
+                store %x_198, %188
+                %189:f32 = load %x_198
+                store %x_278_phi, %189
                 exit_if  # if_10
               }
-              %b47 = block {  # false
-                %158:i32 = load %x_171
-                %159:bool = lt %158, 120i
-                if %159 [t: %b48, f: %b49] {  # if_11
-                  %b48 = block {  # true
-                    %160:ptr<function, i32, read_write> = access %data, 3i
-                    %x_204:i32 = load %160
-                    %162:f32 = convert %x_204
-                    %163:f32 = mul %162, 0.10000000149011611938f
-                    %164:f32 = add 0.5f, %163
-                    store %x_207, %164
-                    %165:f32 = load %x_207
-                    store %x_277_phi, %165
+              $B47: {  # false
+                %190:i32 = load %x_171
+                %191:bool = lt %190, 120i
+                if %191 [t: $B48, f: $B49] {  # if_11
+                  $B48: {  # true
+                    %192:ptr<function, i32, read_write> = access %data, 3i
+                    %193:i32 = load %192
+                    %x_204:i32 = let %193
+                    %195:f32 = convert %x_204
+                    %196:f32 = mul %195, 0.10000000149011611938f
+                    %197:f32 = add 0.5f, %196
+                    store %x_207, %197
+                    %198:f32 = load %x_207
+                    store %x_277_phi, %198
                     exit_if  # if_11
                   }
-                  %b49 = block {  # false
+                  $B49: {  # false
                     %x_220:ptr<function, f32, read_write> = var
                     %x_248:ptr<function, f32, read_write> = var
                     %x_249_phi:ptr<function, f32, read_write> = var
                     %x_256_phi:ptr<function, vec2<f32>, read_write> = var
                     %x_259_phi:ptr<function, i32, read_write> = var
-                    %171:i32 = load %x_171
-                    %172:bool = lt %171, 150i
-                    if %172 [t: %b50, f: %b51] {  # if_12
-                      %b50 = block {  # true
-                        discard
+                    %204:i32 = load %x_171
+                    %205:bool = lt %204, 150i
+                    if %205 [t: $B50, f: $B51] {  # if_12
+                      $B50: {  # true
+                        store %continue_execution, false
                         exit_if  # if_12
                       }
-                      %b51 = block {  # false
+                      $B51: {  # false
                         %x_229:ptr<function, f32, read_write> = var
                         %x_247:ptr<function, f32, read_write> = var
                         %x_248_phi:ptr<function, f32, read_write> = var
-                        %176:i32 = load %x_171
-                        %177:bool = lt %176, 180i
-                        if %177 [t: %b52, f: %b53] {  # if_13
-                          %b52 = block {  # true
-                            %178:ptr<function, i32, read_write> = access %data, 5i
-                            %x_217:i32 = load %178
-                            %180:f32 = convert %x_217
-                            %181:f32 = mul %180, 0.10000000149011611938f
-                            %182:f32 = add 0.5f, %181
-                            store %x_220, %182
-                            %183:f32 = load %x_220
-                            store %x_249_phi, %183
+                        %209:i32 = load %x_171
+                        %210:bool = lt %209, 180i
+                        if %210 [t: $B52, f: $B53] {  # if_13
+                          $B52: {  # true
+                            %211:ptr<function, i32, read_write> = access %data, 5i
+                            %212:i32 = load %211
+                            %x_217:i32 = let %212
+                            %214:f32 = convert %x_217
+                            %215:f32 = mul %214, 0.10000000149011611938f
+                            %216:f32 = add 0.5f, %215
+                            store %x_220, %216
+                            %217:f32 = load %x_220
+                            store %x_249_phi, %217
                             exit_if  # if_13
                           }
-                          %b53 = block {  # false
+                          $B53: {  # false
                             %x_238:ptr<function, f32, read_write> = var
                             %x_246:ptr<function, f32, read_write> = var
                             %x_247_phi:ptr<function, f32, read_write> = var
-                            %187:i32 = load %x_171
-                            %188:bool = lt %187, 210i
-                            if %188 [t: %b54, f: %b55] {  # if_14
-                              %b54 = block {  # true
-                                %189:ptr<function, i32, read_write> = access %data, 6i
-                                %x_226:i32 = load %189
-                                %191:f32 = convert %x_226
-                                %192:f32 = mul %191, 0.10000000149011611938f
-                                %193:f32 = add 0.5f, %192
-                                store %x_229, %193
-                                %194:f32 = load %x_229
-                                store %x_248_phi, %194
+                            %221:i32 = load %x_171
+                            %222:bool = lt %221, 210i
+                            if %222 [t: $B54, f: $B55] {  # if_14
+                              $B54: {  # true
+                                %223:ptr<function, i32, read_write> = access %data, 6i
+                                %224:i32 = load %223
+                                %x_226:i32 = let %224
+                                %226:f32 = convert %x_226
+                                %227:f32 = mul %226, 0.10000000149011611938f
+                                %228:f32 = add 0.5f, %227
+                                store %x_229, %228
+                                %229:f32 = load %x_229
+                                store %x_248_phi, %229
                                 exit_if  # if_14
                               }
-                              %b55 = block {  # false
-                                %195:i32 = load %x_171
-                                %196:bool = lt %195, 240i
-                                if %196 [t: %b56, f: %b57] {  # if_15
-                                  %b56 = block {  # true
-                                    %197:ptr<function, i32, read_write> = access %data, 7i
-                                    %x_235:i32 = load %197
-                                    %199:f32 = convert %x_235
-                                    %200:f32 = mul %199, 0.10000000149011611938f
-                                    %201:f32 = add 0.5f, %200
-                                    store %x_238, %201
-                                    %202:f32 = load %x_238
-                                    store %x_247_phi, %202
+                              $B55: {  # false
+                                %230:i32 = load %x_171
+                                %231:bool = lt %230, 240i
+                                if %231 [t: $B56, f: $B57] {  # if_15
+                                  $B56: {  # true
+                                    %232:ptr<function, i32, read_write> = access %data, 7i
+                                    %233:i32 = load %232
+                                    %x_235:i32 = let %233
+                                    %235:f32 = convert %x_235
+                                    %236:f32 = mul %235, 0.10000000149011611938f
+                                    %237:f32 = add 0.5f, %236
+                                    store %x_238, %237
+                                    %238:f32 = load %x_238
+                                    store %x_247_phi, %238
                                     exit_if  # if_15
                                   }
-                                  %b57 = block {  # false
-                                    %203:i32 = load %x_171
-                                    %204:bool = lt %203, 270i
-                                    if %204 [t: %b58, f: %b59] {  # if_16
-                                      %b58 = block {  # true
+                                  $B57: {  # false
+                                    %239:i32 = load %x_171
+                                    %240:bool = lt %239, 270i
+                                    if %240 [t: $B58, f: $B59] {  # if_16
+                                      $B58: {  # true
                                         exit_if  # if_16
                                       }
-                                      %b59 = block {  # false
-                                        discard
+                                      $B59: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_16
                                       }
                                     }
-                                    %205:ptr<function, i32, read_write> = access %data, 8i
-                                    %x_243:i32 = load %205
-                                    %207:f32 = convert %x_243
-                                    %208:f32 = mul %207, 0.10000000149011611938f
-                                    %209:f32 = add 0.5f, %208
-                                    store %x_246, %209
-                                    %210:f32 = load %x_246
-                                    store %x_247_phi, %210
+                                    %241:ptr<function, i32, read_write> = access %data, 8i
+                                    %242:i32 = load %241
+                                    %x_243:i32 = let %242
+                                    %244:f32 = convert %x_243
+                                    %245:f32 = mul %244, 0.10000000149011611938f
+                                    %246:f32 = add 0.5f, %245
+                                    store %x_246, %246
+                                    %247:f32 = load %x_246
+                                    store %x_247_phi, %247
                                     exit_if  # if_15
                                   }
                                 }
-                                %211:f32 = load %x_247_phi
-                                store %x_247, %211
-                                %212:f32 = load %x_247
-                                store %x_248_phi, %212
+                                %248:f32 = load %x_247_phi
+                                store %x_247, %248
+                                %249:f32 = load %x_247
+                                store %x_248_phi, %249
                                 exit_if  # if_14
                               }
                             }
-                            %213:f32 = load %x_248_phi
-                            store %x_248, %213
-                            %214:f32 = load %x_248
-                            store %x_249_phi, %214
+                            %250:f32 = load %x_248_phi
+                            store %x_248, %250
+                            %251:f32 = load %x_248
+                            store %x_249_phi, %251
                             exit_if  # if_13
                           }
                         }
-                        %215:f32 = load %x_249_phi
-                        store %x_249, %215
-                        %216:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-                        %x_251:f32 = load_vector_element %216, 1u
-                        %x_252:bool = gt %x_62, %x_251
-                        if %x_252 [t: %b60] {  # if_17
-                          %b60 = block {  # true
+                        %252:f32 = load %x_249_phi
+                        store %x_249, %252
+                        %253:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+                        %254:f32 = load_vector_element %253, 1u
+                        %x_251:f32 = let %254
+                        %256:bool = gt %x_62, %x_251
+                        %x_252:bool = let %256
+                        if %x_252 [t: $B60] {  # if_17
+                          $B60: {  # true
                             store %x_GLF_color, vec4<f32>(1.0f)
                             exit_if  # if_17
                           }
                         }
                         store %x_256_phi, vec2<f32>(1.0f)
                         store %x_259_phi, 0i
-                        loop [b: %b61, c: %b62] {  # loop_8
-                          %b61 = block {  # body
+                        loop [b: $B61, c: $B62] {  # loop_8
+                          $B61: {  # body
                             %x_272:ptr<function, vec2<f32>, read_write> = var
                             %x_260:ptr<function, i32, read_write> = var
                             %x_273_phi:ptr<function, vec2<f32>, read_write> = var
-                            %x_256:vec2<f32> = load %x_256_phi
-                            %x_259:i32 = load %x_259_phi
-                            %224:bool = lte %x_259, 32i
-                            if %224 [t: %b63, f: %b64] {  # if_18
-                              %b63 = block {  # true
+                            %261:vec2<f32> = load %x_256_phi
+                            %x_256:vec2<f32> = let %261
+                            %263:i32 = load %x_259_phi
+                            %x_259:i32 = let %263
+                            %265:bool = lte %x_259, 32i
+                            if %265 [t: $B63, f: $B64] {  # if_18
+                              $B63: {  # true
                                 exit_if  # if_18
                               }
-                              %b64 = block {  # false
+                              $B64: {  # false
                                 exit_loop  # loop_8
                               }
                             }
                             store %x_273_phi, %x_256
-                            %225:f32 = access %x_256, 0u
-                            %226:bool = lt %225, 0.0f
-                            if %226 [t: %b65] {  # if_19
-                              %b65 = block {  # true
-                                if %x_252 [t: %b66] {  # if_20
-                                  %b66 = block {  # true
-                                    discard
+                            %266:f32 = access %x_256, 0u
+                            %267:bool = lt %266, 0.0f
+                            if %267 [t: $B65] {  # if_19
+                              $B65: {  # true
+                                if %x_252 [t: $B66] {  # if_20
+                                  $B66: {  # true
+                                    store %continue_execution, false
                                     exit_if  # if_20
                                   }
                                 }
                                 store %x_272, %x_256
-                                %227:f32 = access %x_256, 1u
-                                %228:f32 = add %227, 1.0f
-                                store_vector_element %x_272, 1u, %228
-                                %229:vec2<f32> = load %x_272
-                                store %x_273_phi, %229
+                                %268:f32 = access %x_256, 1u
+                                %269:f32 = add %268, 1.0f
+                                store_vector_element %x_272, 1u, %269
+                                %270:vec2<f32> = load %x_272
+                                store %x_273_phi, %270
                                 exit_if  # if_19
                               }
                             }
-                            %x_273:vec2<f32> = load %x_273_phi
+                            %271:vec2<f32> = load %x_273_phi
+                            %x_273:vec2<f32> = let %271
                             %x_257_1:ptr<function, vec2<f32>, read_write> = var, %x_273
-                            %232:f32 = access %x_273, 0u
-                            %233:f32 = access %x_273, 1u
-                            %234:f32 = add %232, %233
-                            store_vector_element %x_257_1, 0u, %234
-                            %x_257:vec2<f32> = load %x_257_1
-                            continue %b62
+                            %274:f32 = access %x_273, 0u
+                            %275:f32 = access %x_273, 1u
+                            %276:f32 = add %274, %275
+                            store_vector_element %x_257_1, 0u, %276
+                            %277:vec2<f32> = load %x_257_1
+                            %x_257:vec2<f32> = let %277
+                            continue  # -> $B62
                           }
-                          %b62 = block {  # continuing
-                            %236:i32 = add %x_259, 1i
-                            store %x_260, %236
+                          $B62: {  # continuing
+                            %279:i32 = add %x_259, 1i
+                            store %x_260, %279
                             store %x_256_phi, %x_257
-                            %237:i32 = load %x_260
-                            store %x_259_phi, %237
-                            next_iteration %b61
+                            %280:i32 = load %x_260
+                            store %x_259_phi, %280
+                            next_iteration  # -> $B61
                           }
                         }
                         exit_if  # if_12
                       }
                     }
-                    %238:f32 = load %x_249
-                    store %x_277_phi, %238
+                    %281:f32 = load %x_249
+                    store %x_277_phi, %281
                     exit_if  # if_11
                   }
                 }
-                %239:f32 = load %x_277_phi
-                store %x_277, %239
-                %240:f32 = load %x_277
-                store %x_278_phi, %240
+                %282:f32 = load %x_277_phi
+                store %x_277, %282
+                %283:f32 = load %x_277
+                store %x_278_phi, %283
                 exit_if  # if_10
               }
             }
-            %241:f32 = load %x_278_phi
-            store %x_278, %241
-            %242:f32 = load %x_278
-            store %x_279_phi, %242
+            %284:f32 = load %x_278_phi
+            store %x_278, %284
+            %285:f32 = load %x_278
+            store %x_279_phi, %285
             exit_if  # if_9
           }
         }
-        %243:f32 = load %x_279_phi
-        store %x_279, %243
-        %244:f32 = load %x_279
-        store %x_280_phi, %244
+        %286:f32 = load %x_279_phi
+        store %x_279, %286
+        %287:f32 = load %x_279
+        store %x_280_phi, %287
         exit_if  # if_8
       }
     }
-    %x_280:f32 = load %x_280_phi
-    %246:vec4<f32> = construct %x_280, %x_280, %x_280, 1.0f
-    store %x_GLF_color, %246
+    %288:f32 = load %x_280_phi
+    %x_280:f32 = let %288
+    %290:vec4<f32> = construct %x_280, %x_280, %x_280, 1.0f
+    store %x_GLF_color, %290
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b67 {
-  %b67 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B67: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %249:void = call %main_1
-    %250:vec4<f32> = load %x_GLF_color
-    %251:main_out = construct %250
-    ret %251
+    %293:void = call %main_1
+    %294:vec4<f32> = load %x_GLF_color
+    %295:main_out = construct %294
+    %296:bool = load %continue_execution
+    %297:bool = eq %296, false
+    if %297 [t: $B68] {  # if_21
+      $B68: {  # true
+        terminate_invocation
+      }
+    }
+    ret %295
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B69: {
+    %299:i32 = convert %value
+    %300:bool = gte %value, -2147483648.0f
+    %301:i32 = select -2147483648i, %299, %300
+    %302:bool = lte %value, 2147483520.0f
+    %303:i32 = select 2147483647i, %301, %302
+    ret %303
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.msl
index 5126351..3fe867b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,158 +8,166 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %14:i32 = load %f
-    store %k, %14
     %15:i32 = load %f
-    store %i, %15
-    %16:i32 = load %mid
-    %17:i32 = add %16, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %18:i32 = load %i
-        %19:i32 = load %mid
-        %20:bool = lte %18, %19
-        %21:i32 = load %j
-        %22:i32 = load %to
-        %23:bool = lte %21, %22
-        %24:bool = and %20, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    store %k, %15
+    %16:i32 = load %f
+    store %i, %16
+    %17:i32 = load %mid
+    %18:i32 = add %17, 1i
+    store %j, %18
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %19:i32 = load %i
+        %20:i32 = load %mid
+        %21:bool = lte %19, %20
+        %22:i32 = load %j
+        %23:i32 = load %to
+        %24:bool = lte %22, %23
+        %25:bool = and %21, %24
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %25:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %25
-        %27:i32 = load %26
-        %28:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %28
-        %30:i32 = load %29
-        %31:bool = lt %27, %30
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_288:i32 = load %k
+        %26:i32 = load %i
+        %27:ptr<private, i32, read_write> = access %data, %26
+        %28:i32 = load %27
+        %29:i32 = load %j
+        %30:ptr<private, i32, read_write> = access %data, %29
+        %31:i32 = load %30
+        %32:bool = lt %28, %31
+        if %32 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
             %33:i32 = load %k
-            %34:i32 = add %33, 1i
-            store %k, %34
-            %x_290:i32 = load %i
-            %36:i32 = load %i
-            %37:i32 = add %36, 1i
-            store %i, %37
-            %38:ptr<private, i32, read_write> = access %temp, %x_288
-            %39:ptr<private, i32, read_write> = access %data, %x_290
-            %40:i32 = load %39
-            store %38, %40
+            %x_288:i32 = let %33
+            %35:i32 = load %k
+            %36:i32 = add %35, 1i
+            store %k, %36
+            %37:i32 = load %i
+            %x_290:i32 = let %37
+            %39:i32 = load %i
+            %40:i32 = add %39, 1i
+            store %i, %40
+            %41:ptr<private, i32, read_write> = access %temp, %x_288
+            %42:ptr<private, i32, read_write> = access %data, %x_290
+            %43:i32 = load %42
+            store %41, %43
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_295:i32 = load %k
-            %42:i32 = load %k
-            %43:i32 = add %42, 1i
-            store %k, %43
-            %x_297:i32 = load %j
-            %45:i32 = load %j
-            %46:i32 = add %45, 1i
-            store %j, %46
-            %47:ptr<private, i32, read_write> = access %temp, %x_295
-            %48:ptr<private, i32, read_write> = access %data, %x_297
-            %49:i32 = load %48
-            store %47, %49
+          $B8: {  # false
+            %44:i32 = load %k
+            %x_295:i32 = let %44
+            %46:i32 = load %k
+            %47:i32 = add %46, 1i
+            store %k, %47
+            %48:i32 = load %j
+            %x_297:i32 = let %48
+            %50:i32 = load %j
+            %51:i32 = add %50, 1i
+            store %j, %51
+            %52:ptr<private, i32, read_write> = access %temp, %x_295
+            %53:ptr<private, i32, read_write> = access %data, %x_297
+            %54:i32 = load %53
+            store %52, %54
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %50:i32 = load %i
-        %51:bool = lt %50, 10i
-        %52:i32 = load %i
-        %53:i32 = load %mid
-        %54:bool = lte %52, %53
-        %55:bool = and %51, %54
-        if %55 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %55:i32 = load %i
+        %56:bool = lt %55, 10i
+        %57:i32 = load %i
+        %58:i32 = load %mid
+        %59:bool = lte %57, %58
+        %60:bool = and %56, %59
+        if %60 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_313:i32 = load %k
-        %57:i32 = load %k
-        %58:i32 = add %57, 1i
-        store %k, %58
-        %x_315:i32 = load %i
-        %60:i32 = load %i
-        %61:i32 = add %60, 1i
-        store %i, %61
-        %62:ptr<private, i32, read_write> = access %temp, %x_313
-        %63:ptr<private, i32, read_write> = access %data, %x_315
-        %64:i32 = load %63
-        store %62, %64
-        continue %b10
+        %61:i32 = load %k
+        %x_313:i32 = let %61
+        %63:i32 = load %k
+        %64:i32 = add %63, 1i
+        store %k, %64
+        %65:i32 = load %i
+        %x_315:i32 = let %65
+        %67:i32 = load %i
+        %68:i32 = add %67, 1i
+        store %i, %68
+        %69:ptr<private, i32, read_write> = access %temp, %x_313
+        %70:ptr<private, i32, read_write> = access %data, %x_315
+        %71:i32 = load %70
+        store %69, %71
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %65:i32 = load %f
-    store %i_1, %65
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %66:i32 = load %i_1
-        %67:i32 = load %to
-        %68:bool = lte %66, %67
-        if %68 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    %72:i32 = load %f
+    store %i_1, %72
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %73:i32 = load %i_1
+        %74:i32 = load %to
+        %75:bool = lte %73, %74
+        if %75 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_329:i32 = load %i_1
-        %70:ptr<private, i32, read_write> = access %data, %x_329
-        %71:i32 = load %i_1
-        %72:ptr<private, i32, read_write> = access %temp, %71
-        %73:i32 = load %72
-        store %70, %73
-        continue %b14
+        %76:i32 = load %i_1
+        %x_329:i32 = let %76
+        %78:ptr<private, i32, read_write> = access %data, %x_329
+        %79:i32 = load %i_1
+        %80:ptr<private, i32, read_write> = access %temp, %79
+        %81:i32 = load %80
+        store %78, %81
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %74:i32 = load %i_1
-        %75:i32 = add %74, 1i
-        store %i_1, %75
-        next_iteration %b13
+      $B14: {  # continuing
+        %82:i32 = load %i_1
+        %83:i32 = add %82, 1i
+        store %i_1, %83
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -173,342 +181,356 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %87:i32 = load %m
-        %88:i32 = load %high
-        %89:bool = lte %87, %88
-        if %89 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %95:i32 = load %m
+        %96:i32 = load %high
+        %97:bool = lte %95, %96
+        if %97 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %90:i32 = load %low
-        store %i_2, %90
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %91:i32 = load %i_2
-            %92:i32 = load %high
-            %93:bool = lt %91, %92
-            if %93 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        %98:i32 = load %low
+        store %i_2, %98
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %99:i32 = load %i_2
+            %100:i32 = load %high
+            %101:bool = lt %99, %100
+            if %101 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %94:i32 = load %i_2
-            store %f_1, %94
-            %95:i32 = load %i_2
-            %96:i32 = load %m
-            %97:i32 = add %95, %96
-            %98:i32 = sub %97, 1i
-            store %mid_1, %98
-            %99:i32 = load %i_2
-            %100:i32 = load %m
-            %101:i32 = mul 2i, %100
-            %102:i32 = add %99, %101
-            %103:i32 = sub %102, 1i
-            %104:i32 = load %high
-            %105:i32 = min %103, %104
-            store %to_1, %105
-            %106:i32 = load %f_1
-            store %param, %106
-            %107:i32 = load %mid_1
-            store %param_1, %107
-            %108:i32 = load %to_1
-            store %param_2, %108
-            %109:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %102:i32 = load %i_2
+            store %f_1, %102
+            %103:i32 = load %i_2
+            %104:i32 = load %m
+            %105:i32 = add %103, %104
+            %106:i32 = sub %105, 1i
+            store %mid_1, %106
+            %107:i32 = load %i_2
+            %108:i32 = load %m
+            %109:i32 = mul 2i, %108
+            %110:i32 = add %107, %109
+            %111:i32 = sub %110, 1i
+            %112:i32 = load %high
+            %113:i32 = min %111, %112
+            store %to_1, %113
+            %114:i32 = load %f_1
+            store %param, %114
+            %115:i32 = load %mid_1
+            store %param_1, %115
+            %116:i32 = load %to_1
+            store %param_2, %116
+            %117:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %110:i32 = load %i_2
-            %111:i32 = load %m
-            %112:i32 = mul 2i, %111
-            %113:i32 = add %110, %112
-            store %i_2, %113
-            next_iteration %b22
+          $B23: {  # continuing
+            %118:i32 = load %i_2
+            %119:i32 = load %m
+            %120:i32 = mul 2i, %119
+            %121:i32 = add %118, %120
+            store %i_2, %121
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %114:i32 = load %m
-        %115:i32 = mul 2i, %114
-        store %m, %115
-        next_iteration %b18
+      $B19: {  # continuing
+        %122:i32 = load %m
+        %123:i32 = mul 2i, %122
+        store %m, %123
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
     %int_i:ptr<function, i32, read_write> = var
-    %121:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %122:f32 = load_vector_element %121, 0u
-    %123:i32 = convert %122
-    store %i_3, %123
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_91:i32 = load %i_3
-        switch %x_91 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_121:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_121
-            store %126, -5i
+    %129:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %130:f32 = load_vector_element %129, 0u
+    %131:i32 = call %tint_f32_to_i32, %130
+    store %i_3, %131
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %133:i32 = load %i_3
+        %x_91:i32 = let %133
+        switch %x_91 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %135:i32 = load %i_3
+            %x_121:i32 = let %135
+            %137:ptr<private, i32, read_write> = access %data, %x_121
+            store %137, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_119:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_119
-            store %128, -4i
+          $B30: {  # case
+            %138:i32 = load %i_3
+            %x_119:i32 = let %138
+            %140:ptr<private, i32, read_write> = access %data, %x_119
+            store %140, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_117:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_117
-            store %130, -3i
+          $B31: {  # case
+            %141:i32 = load %i_3
+            %x_117:i32 = let %141
+            %143:ptr<private, i32, read_write> = access %data, %x_117
+            store %143, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_115:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_115
-            store %132, -2i
+          $B32: {  # case
+            %144:i32 = load %i_3
+            %x_115:i32 = let %144
+            %146:ptr<private, i32, read_write> = access %data, %x_115
+            store %146, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_113:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_113
-            store %134, -1i
+          $B33: {  # case
+            %147:i32 = load %i_3
+            %x_113:i32 = let %147
+            %149:ptr<private, i32, read_write> = access %data, %x_113
+            store %149, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_111:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_111
-            store %136, 0i
+          $B34: {  # case
+            %150:i32 = load %i_3
+            %x_111:i32 = let %150
+            %152:ptr<private, i32, read_write> = access %data, %x_111
+            store %152, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_109:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_109
-            store %138, 1i
+          $B35: {  # case
+            %153:i32 = load %i_3
+            %x_109:i32 = let %153
+            %155:ptr<private, i32, read_write> = access %data, %x_109
+            store %155, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_107:i32 = load %i_3
-            %140:ptr<private, i32, read_write> = access %data, %x_107
-            store %140, 2i
+          $B36: {  # case
+            %156:i32 = load %i_3
+            %x_107:i32 = let %156
+            %158:ptr<private, i32, read_write> = access %data, %x_107
+            store %158, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_105:i32 = load %i_3
-            %142:ptr<private, i32, read_write> = access %data, %x_105
-            store %142, 3i
+          $B37: {  # case
+            %159:i32 = load %i_3
+            %x_105:i32 = let %159
+            %161:ptr<private, i32, read_write> = access %data, %x_105
+            store %161, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_103:i32 = load %i_3
-            %144:ptr<private, i32, read_write> = access %data, %x_103
-            store %144, 4i
+          $B38: {  # case
+            %162:i32 = load %i_3
+            %x_103:i32 = let %162
+            %164:ptr<private, i32, read_write> = access %data, %x_103
+            store %164, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %145:i32 = load %i_3
-        %146:i32 = add %145, 1i
-        store %i_3, %146
-        continue %b28
+        %165:i32 = load %i_3
+        %166:i32 = add %165, 1i
+        store %i_3, %166
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_125:i32 = load %i_3
-        %148:bool = lt %x_125, 10i
-        %149:bool = eq %148, false
-        break_if %149 %b27
+      $B28: {  # continuing
+        %167:i32 = load %i_3
+        %x_125:i32 = let %167
+        %169:bool = lt %x_125, 10i
+        %170:bool = eq %169, false
+        break_if %170  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %150:i32 = load %j_1
-        %151:bool = lt %150, 10i
-        if %151 [t: %b42, f: %b43] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %171:i32 = load %j_1
+        %172:bool = lt %171, 10i
+        if %172 [t: $B42, f: $B43] {  # if_7
+          $B42: {  # true
             exit_if  # if_7
           }
-          %b43 = block {  # false
+          $B43: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_134:i32 = load %j_1
-        %153:ptr<private, i32, read_write> = access %temp, %x_134
-        %154:i32 = load %j_1
-        %155:ptr<private, i32, read_write> = access %data, %154
-        %156:i32 = load %155
-        store %153, %156
-        continue %b41
+        %173:i32 = load %j_1
+        %x_134:i32 = let %173
+        %175:ptr<private, i32, read_write> = access %temp, %x_134
+        %176:i32 = load %j_1
+        %177:ptr<private, i32, read_write> = access %data, %176
+        %178:i32 = load %177
+        store %175, %178
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %157:i32 = load %j_1
-        %158:i32 = add %157, 1i
-        store %j_1, %158
-        next_iteration %b40
+      $B41: {  # continuing
+        %179:i32 = load %j_1
+        %180:i32 = add %179, 1i
+        store %j_1, %180
+        next_iteration  # -> $B40
       }
     }
-    %159:void = call %mergeSort_
-    %160:f32 = load_vector_element %gl_FragCoord, 1u
-    %161:i32 = convert %160
-    %162:bool = lt %161, 30i
-    if %162 [t: %b44, f: %b45] {  # if_8
-      %b44 = block {  # true
-        %163:ptr<private, i32, read_write> = access %data, 0i
-        %164:i32 = load %163
-        %165:f32 = convert %164
-        %166:f32 = div %165, 10.0f
-        %167:f32 = add 0.5f, %166
-        store %grey, %167
+    %181:void = call %mergeSort_
+    %182:f32 = load_vector_element %gl_FragCoord, 1u
+    %183:i32 = call %tint_f32_to_i32, %182
+    %184:bool = lt %183, 30i
+    if %184 [t: $B44, f: $B45] {  # if_8
+      $B44: {  # true
+        %185:ptr<private, i32, read_write> = access %data, 0i
+        %186:i32 = load %185
+        %187:f32 = convert %186
+        %188:f32 = div %187, 10.0f
+        %189:f32 = add 0.5f, %188
+        store %grey, %189
         exit_if  # if_8
       }
-      %b45 = block {  # false
-        %168:f32 = load_vector_element %gl_FragCoord, 1u
-        %169:i32 = convert %168
-        %170:bool = lt %169, 60i
-        if %170 [t: %b46, f: %b47] {  # if_9
-          %b46 = block {  # true
-            %171:ptr<private, i32, read_write> = access %data, 1i
-            %172:i32 = load %171
-            %173:f32 = convert %172
-            %174:f32 = div %173, 10.0f
-            %175:f32 = add 0.5f, %174
-            store %grey, %175
+      $B45: {  # false
+        %190:f32 = load_vector_element %gl_FragCoord, 1u
+        %191:i32 = call %tint_f32_to_i32, %190
+        %192:bool = lt %191, 60i
+        if %192 [t: $B46, f: $B47] {  # if_9
+          $B46: {  # true
+            %193:ptr<private, i32, read_write> = access %data, 1i
+            %194:i32 = load %193
+            %195:f32 = convert %194
+            %196:f32 = div %195, 10.0f
+            %197:f32 = add 0.5f, %196
+            store %grey, %197
             exit_if  # if_9
           }
-          %b47 = block {  # false
-            %176:f32 = load_vector_element %gl_FragCoord, 1u
-            %177:i32 = convert %176
-            %178:bool = lt %177, 90i
-            if %178 [t: %b48, f: %b49] {  # if_10
-              %b48 = block {  # true
-                %179:ptr<private, i32, read_write> = access %data, 2i
-                %180:i32 = load %179
-                %181:f32 = convert %180
-                %182:f32 = div %181, 10.0f
-                %183:f32 = add 0.5f, %182
-                store %grey, %183
+          $B47: {  # false
+            %198:f32 = load_vector_element %gl_FragCoord, 1u
+            %199:i32 = call %tint_f32_to_i32, %198
+            %200:bool = lt %199, 90i
+            if %200 [t: $B48, f: $B49] {  # if_10
+              $B48: {  # true
+                %201:ptr<private, i32, read_write> = access %data, 2i
+                %202:i32 = load %201
+                %203:f32 = convert %202
+                %204:f32 = div %203, 10.0f
+                %205:f32 = add 0.5f, %204
+                store %grey, %205
                 exit_if  # if_10
               }
-              %b49 = block {  # false
-                %184:f32 = load_vector_element %gl_FragCoord, 1u
-                %185:i32 = convert %184
-                %186:bool = lt %185, 120i
-                if %186 [t: %b50, f: %b51] {  # if_11
-                  %b50 = block {  # true
-                    %187:ptr<private, i32, read_write> = access %data, 3i
-                    %188:i32 = load %187
-                    %189:f32 = convert %188
-                    %190:f32 = div %189, 10.0f
-                    %191:f32 = add 0.5f, %190
-                    store %grey, %191
+              $B49: {  # false
+                %206:f32 = load_vector_element %gl_FragCoord, 1u
+                %207:i32 = call %tint_f32_to_i32, %206
+                %208:bool = lt %207, 120i
+                if %208 [t: $B50, f: $B51] {  # if_11
+                  $B50: {  # true
+                    %209:ptr<private, i32, read_write> = access %data, 3i
+                    %210:i32 = load %209
+                    %211:f32 = convert %210
+                    %212:f32 = div %211, 10.0f
+                    %213:f32 = add 0.5f, %212
+                    store %grey, %213
                     exit_if  # if_11
                   }
-                  %b51 = block {  # false
-                    %192:f32 = load_vector_element %gl_FragCoord, 1u
-                    %193:i32 = convert %192
-                    %194:bool = lt %193, 150i
-                    if %194 [t: %b52, f: %b53] {  # if_12
-                      %b52 = block {  # true
+                  $B51: {  # false
+                    %214:f32 = load_vector_element %gl_FragCoord, 1u
+                    %215:i32 = call %tint_f32_to_i32, %214
+                    %216:bool = lt %215, 150i
+                    if %216 [t: $B52, f: $B53] {  # if_12
+                      $B52: {  # true
                         store %int_i, 1i
-                        loop [b: %b54, c: %b55] {  # loop_8
-                          %b54 = block {  # body
-                            %195:i32 = load %int_i
-                            %196:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-                            %197:f32 = load_vector_element %196, 0u
-                            %198:i32 = convert %197
-                            %199:bool = gt %195, %198
-                            if %199 [t: %b56, f: %b57] {  # if_13
-                              %b56 = block {  # true
+                        loop [b: $B54, c: $B55] {  # loop_8
+                          $B54: {  # body
+                            %217:i32 = load %int_i
+                            %218:i32 = let %217
+                            %219:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+                            %220:f32 = load_vector_element %219, 0u
+                            %221:i32 = call %tint_f32_to_i32, %220
+                            %222:bool = gt %218, %221
+                            if %222 [t: $B56, f: $B57] {  # if_13
+                              $B56: {  # true
                                 exit_if  # if_13
                               }
-                              %b57 = block {  # false
+                              $B57: {  # false
                                 exit_loop  # loop_8
                               }
                             }
-                            discard
-                            continue %b55
+                            store %continue_execution, false
+                            continue  # -> $B55
                           }
-                          %b55 = block {  # continuing
-                            next_iteration %b54
+                          $B55: {  # continuing
+                            next_iteration  # -> $B54
                           }
                         }
                         exit_if  # if_12
                       }
-                      %b53 = block {  # false
-                        %200:f32 = load_vector_element %gl_FragCoord, 1u
-                        %201:i32 = convert %200
-                        %202:bool = lt %201, 180i
-                        if %202 [t: %b58, f: %b59] {  # if_14
-                          %b58 = block {  # true
-                            %203:ptr<private, i32, read_write> = access %data, 5i
-                            %204:i32 = load %203
-                            %205:f32 = convert %204
-                            %206:f32 = div %205, 10.0f
-                            %207:f32 = add 0.5f, %206
-                            store %grey, %207
+                      $B53: {  # false
+                        %223:f32 = load_vector_element %gl_FragCoord, 1u
+                        %224:i32 = call %tint_f32_to_i32, %223
+                        %225:bool = lt %224, 180i
+                        if %225 [t: $B58, f: $B59] {  # if_14
+                          $B58: {  # true
+                            %226:ptr<private, i32, read_write> = access %data, 5i
+                            %227:i32 = load %226
+                            %228:f32 = convert %227
+                            %229:f32 = div %228, 10.0f
+                            %230:f32 = add 0.5f, %229
+                            store %grey, %230
                             exit_if  # if_14
                           }
-                          %b59 = block {  # false
-                            %208:f32 = load_vector_element %gl_FragCoord, 1u
-                            %209:i32 = convert %208
-                            %210:bool = lt %209, 210i
-                            if %210 [t: %b60, f: %b61] {  # if_15
-                              %b60 = block {  # true
-                                %211:ptr<private, i32, read_write> = access %data, 6i
-                                %212:i32 = load %211
-                                %213:f32 = convert %212
-                                %214:f32 = div %213, 10.0f
-                                %215:f32 = add 0.5f, %214
-                                store %grey, %215
+                          $B59: {  # false
+                            %231:f32 = load_vector_element %gl_FragCoord, 1u
+                            %232:i32 = call %tint_f32_to_i32, %231
+                            %233:bool = lt %232, 210i
+                            if %233 [t: $B60, f: $B61] {  # if_15
+                              $B60: {  # true
+                                %234:ptr<private, i32, read_write> = access %data, 6i
+                                %235:i32 = load %234
+                                %236:f32 = convert %235
+                                %237:f32 = div %236, 10.0f
+                                %238:f32 = add 0.5f, %237
+                                store %grey, %238
                                 exit_if  # if_15
                               }
-                              %b61 = block {  # false
-                                %216:f32 = load_vector_element %gl_FragCoord, 1u
-                                %217:i32 = convert %216
-                                %218:bool = lt %217, 240i
-                                if %218 [t: %b62, f: %b63] {  # if_16
-                                  %b62 = block {  # true
-                                    %219:ptr<private, i32, read_write> = access %data, 7i
-                                    %220:i32 = load %219
-                                    %221:f32 = convert %220
-                                    %222:f32 = div %221, 10.0f
-                                    %223:f32 = add 0.5f, %222
-                                    store %grey, %223
+                              $B61: {  # false
+                                %239:f32 = load_vector_element %gl_FragCoord, 1u
+                                %240:i32 = call %tint_f32_to_i32, %239
+                                %241:bool = lt %240, 240i
+                                if %241 [t: $B62, f: $B63] {  # if_16
+                                  $B62: {  # true
+                                    %242:ptr<private, i32, read_write> = access %data, 7i
+                                    %243:i32 = load %242
+                                    %244:f32 = convert %243
+                                    %245:f32 = div %244, 10.0f
+                                    %246:f32 = add 0.5f, %245
+                                    store %grey, %246
                                     exit_if  # if_16
                                   }
-                                  %b63 = block {  # false
-                                    %224:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %225:i32 = convert %224
-                                    %226:bool = lt %225, 270i
-                                    if %226 [t: %b64, f: %b65] {  # if_17
-                                      %b64 = block {  # true
-                                        %227:ptr<private, i32, read_write> = access %data, 8i
-                                        %228:i32 = load %227
-                                        %229:f32 = convert %228
-                                        %230:f32 = div %229, 10.0f
-                                        %231:f32 = add 0.5f, %230
-                                        store %grey, %231
+                                  $B63: {  # false
+                                    %247:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %248:i32 = call %tint_f32_to_i32, %247
+                                    %249:bool = lt %248, 270i
+                                    if %249 [t: $B64, f: $B65] {  # if_17
+                                      $B64: {  # true
+                                        %250:ptr<private, i32, read_write> = access %data, 8i
+                                        %251:i32 = load %250
+                                        %252:f32 = convert %251
+                                        %253:f32 = div %252, 10.0f
+                                        %254:f32 = add 0.5f, %253
+                                        store %grey, %254
                                         exit_if  # if_17
                                       }
-                                      %b65 = block {  # false
-                                        discard
+                                      $B65: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_17
                                       }
                                     }
@@ -536,23 +558,41 @@
         exit_if  # if_8
       }
     }
-    %232:f32 = load %grey
-    %x_256:vec3<f32> = construct %232
-    %234:f32 = access %x_256, 0u
-    %235:f32 = access %x_256, 1u
-    %236:f32 = access %x_256, 2u
-    %237:vec4<f32> = construct %234, %235, %236, 1.0f
-    store %x_GLF_color, %237
+    %255:f32 = load %grey
+    %256:vec3<f32> = construct %255
+    %x_256:vec3<f32> = let %256
+    %258:f32 = access %x_256, 0u
+    %259:f32 = access %x_256, 1u
+    %260:f32 = access %x_256, 2u
+    %261:vec4<f32> = construct %258, %259, %260, 1.0f
+    store %x_GLF_color, %261
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b66 {
-  %b66 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B66: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %240:void = call %main_1
-    %241:vec4<f32> = load %x_GLF_color
-    %242:main_out = construct %241
-    ret %242
+    %264:void = call %main_1
+    %265:vec4<f32> = load %x_GLF_color
+    %266:main_out = construct %265
+    %267:bool = load %continue_execution
+    %268:bool = eq %267, false
+    if %268 [t: $B67] {  # if_18
+      $B67: {  # true
+        terminate_invocation
+      }
+    }
+    ret %266
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B68: {
+    %270:i32 = convert %value
+    %271:bool = gte %value, -2147483648.0f
+    %272:i32 = select -2147483648i, %270, %271
+    %273:bool = lte %value, 2147483520.0f
+    %274:i32 = select 2147483647i, %272, %273
+    ret %274
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.msl
index 58b6dd3..a4f8d90 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-mergesort-reversed-for-loop/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,152 +8,183 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %data:ptr<private, array<i32, 10>, read_write> = var
   %temp:ptr<private, array<i32, 10>, read_write> = var
   %x_28:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%merge_i1_i1_i1_ = func(%f:ptr<function, i32, read_write>, %mid:ptr<function, i32, read_write>, %to:ptr<function, i32, read_write>):void {
+  $B2: {
     %k:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
-    %x_262:i32 = load %f
+    %15:i32 = load %f
+    %x_262:i32 = let %15
     store %k, %x_262
-    %x_263:i32 = load %f
+    %17:i32 = load %f
+    %x_263:i32 = let %17
     store %i, %x_263
-    %x_264:i32 = load %mid
-    %17:i32 = add %x_264, 1i
-    store %j, %17
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_270:i32 = load %i
-        %x_271:i32 = load %mid
-        %x_273:i32 = load %j
-        %x_274:i32 = load %to
-        %22:bool = lte %x_270, %x_271
-        %23:bool = lte %x_273, %x_274
-        %24:bool = and %22, %23
-        if %24 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    %19:i32 = load %mid
+    %x_264:i32 = let %19
+    %21:i32 = add %x_264, 1i
+    store %j, %21
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %22:i32 = load %i
+        %x_270:i32 = let %22
+        %24:i32 = load %mid
+        %x_271:i32 = let %24
+        %26:i32 = load %j
+        %x_273:i32 = let %26
+        %28:i32 = load %to
+        %x_274:i32 = let %28
+        %30:bool = lte %x_270, %x_271
+        %31:bool = lte %x_273, %x_274
+        %32:bool = and %30, %31
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_278:i32 = load %i
-        %26:ptr<private, i32, read_write> = access %data, %x_278
-        %x_280:i32 = load %26
-        %x_281:i32 = load %j
-        %29:ptr<private, i32, read_write> = access %data, %x_281
-        %x_283:i32 = load %29
-        %31:bool = lt %x_280, %x_283
-        if %31 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_288:i32 = load %k
-            %33:i32 = add %x_288, 1i
-            store %k, %33
-            %x_290:i32 = load %i
-            %35:i32 = add %x_290, 1i
-            store %i, %35
-            %36:ptr<private, i32, read_write> = access %data, %x_290
-            %x_293:i32 = load %36
-            %38:ptr<private, i32, read_write> = access %temp, %x_288
-            store %38, %x_293
+        %33:i32 = load %i
+        %x_278:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %data, %x_278
+        %36:i32 = load %35
+        %x_280:i32 = let %36
+        %38:i32 = load %j
+        %x_281:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %data, %x_281
+        %41:i32 = load %40
+        %x_283:i32 = let %41
+        %43:bool = lt %x_280, %x_283
+        if %43 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %44:i32 = load %k
+            %x_288:i32 = let %44
+            %46:i32 = add %x_288, 1i
+            store %k, %46
+            %47:i32 = load %i
+            %x_290:i32 = let %47
+            %49:i32 = add %x_290, 1i
+            store %i, %49
+            %50:ptr<private, i32, read_write> = access %data, %x_290
+            %51:i32 = load %50
+            %x_293:i32 = let %51
+            %53:ptr<private, i32, read_write> = access %temp, %x_288
+            store %53, %x_293
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_295:i32 = load %k
-            %40:i32 = add %x_295, 1i
-            store %k, %40
-            %x_297:i32 = load %j
-            %42:i32 = add %x_297, 1i
-            store %j, %42
-            %43:ptr<private, i32, read_write> = access %data, %x_297
-            %x_300:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %temp, %x_295
-            store %45, %x_300
+          $B8: {  # false
+            %54:i32 = load %k
+            %x_295:i32 = let %54
+            %56:i32 = add %x_295, 1i
+            store %k, %56
+            %57:i32 = load %j
+            %x_297:i32 = let %57
+            %59:i32 = add %x_297, 1i
+            store %j, %59
+            %60:ptr<private, i32, read_write> = access %data, %x_297
+            %61:i32 = load %60
+            %x_300:i32 = let %61
+            %63:ptr<private, i32, read_write> = access %temp, %x_295
+            store %63, %x_300
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_306:i32 = load %i
-        %x_308:i32 = load %i
-        %x_309:i32 = load %mid
-        %49:bool = lt %x_306, 10i
-        %50:bool = lte %x_308, %x_309
-        %51:bool = and %49, %50
-        if %51 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %64:i32 = load %i
+        %x_306:i32 = let %64
+        %66:i32 = load %i
+        %x_308:i32 = let %66
+        %68:i32 = load %mid
+        %x_309:i32 = let %68
+        %70:bool = lt %x_306, 10i
+        %71:bool = lte %x_308, %x_309
+        %72:bool = and %70, %71
+        if %72 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
             exit_if  # if_3
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_313:i32 = load %k
-        %53:i32 = add %x_313, 1i
-        store %k, %53
-        %x_315:i32 = load %i
-        %55:i32 = add %x_315, 1i
-        store %i, %55
-        %56:ptr<private, i32, read_write> = access %data, %x_315
-        %x_318:i32 = load %56
-        %58:ptr<private, i32, read_write> = access %temp, %x_313
-        store %58, %x_318
-        continue %b10
+        %73:i32 = load %k
+        %x_313:i32 = let %73
+        %75:i32 = add %x_313, 1i
+        store %k, %75
+        %76:i32 = load %i
+        %x_315:i32 = let %76
+        %78:i32 = add %x_315, 1i
+        store %i, %78
+        %79:ptr<private, i32, read_write> = access %data, %x_315
+        %80:i32 = load %79
+        %x_318:i32 = let %80
+        %82:ptr<private, i32, read_write> = access %temp, %x_313
+        store %82, %x_318
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
-    %x_320:i32 = load %f
+    %83:i32 = load %f
+    %x_320:i32 = let %83
     store %i_1, %x_320
-    loop [b: %b13, c: %b14] {  # loop_3
-      %b13 = block {  # body
-        %x_325:i32 = load %i_1
-        %x_326:i32 = load %to
-        %62:bool = lte %x_325, %x_326
-        if %62 [t: %b15, f: %b16] {  # if_4
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_3
+      $B13: {  # body
+        %85:i32 = load %i_1
+        %x_325:i32 = let %85
+        %87:i32 = load %to
+        %x_326:i32 = let %87
+        %89:bool = lte %x_325, %x_326
+        if %89 [t: $B15, f: $B16] {  # if_4
+          $B15: {  # true
             exit_if  # if_4
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_329:i32 = load %i_1
-        %x_330:i32 = load %i_1
-        %65:ptr<private, i32, read_write> = access %temp, %x_330
-        %x_332:i32 = load %65
-        %67:ptr<private, i32, read_write> = access %data, %x_329
-        store %67, %x_332
-        continue %b14
+        %90:i32 = load %i_1
+        %x_329:i32 = let %90
+        %92:i32 = load %i_1
+        %x_330:i32 = let %92
+        %94:ptr<private, i32, read_write> = access %temp, %x_330
+        %95:i32 = load %94
+        %x_332:i32 = let %95
+        %97:ptr<private, i32, read_write> = access %data, %x_329
+        store %97, %x_332
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_334:i32 = load %i_1
-        %69:i32 = add %x_334, 1i
-        store %i_1, %69
-        next_iteration %b13
+      $B14: {  # continuing
+        %98:i32 = load %i_1
+        %x_334:i32 = let %98
+        %100:i32 = add %x_334, 1i
+        store %i_1, %100
+        next_iteration  # -> $B13
       }
     }
     ret
   }
 }
-%mergeSort_ = func():void -> %b17 {
-  %b17 = block {
+%mergeSort_ = func():void {
+  $B17: {
     %low:ptr<function, i32, read_write> = var
     %high:ptr<function, i32, read_write> = var
     %m:ptr<function, i32, read_write> = var
@@ -167,342 +198,397 @@
     store %low, 0i
     store %high, 9i
     store %m, 1i
-    loop [b: %b18, c: %b19] {  # loop_4
-      %b18 = block {  # body
-        %x_341:i32 = load %m
-        %x_342:i32 = load %high
-        %83:bool = lte %x_341, %x_342
-        if %83 [t: %b20, f: %b21] {  # if_5
-          %b20 = block {  # true
+    loop [b: $B18, c: $B19] {  # loop_4
+      $B18: {  # body
+        %112:i32 = load %m
+        %x_341:i32 = let %112
+        %114:i32 = load %high
+        %x_342:i32 = let %114
+        %116:bool = lte %x_341, %x_342
+        if %116 [t: $B20, f: $B21] {  # if_5
+          $B20: {  # true
             exit_if  # if_5
           }
-          %b21 = block {  # false
+          $B21: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_345:i32 = load %low
+        %117:i32 = load %low
+        %x_345:i32 = let %117
         store %i_2, %x_345
-        loop [b: %b22, c: %b23] {  # loop_5
-          %b22 = block {  # body
-            %x_350:i32 = load %i_2
-            %x_351:i32 = load %high
-            %87:bool = lt %x_350, %x_351
-            if %87 [t: %b24, f: %b25] {  # if_6
-              %b24 = block {  # true
+        loop [b: $B22, c: $B23] {  # loop_5
+          $B22: {  # body
+            %119:i32 = load %i_2
+            %x_350:i32 = let %119
+            %121:i32 = load %high
+            %x_351:i32 = let %121
+            %123:bool = lt %x_350, %x_351
+            if %123 [t: $B24, f: $B25] {  # if_6
+              $B24: {  # true
                 exit_if  # if_6
               }
-              %b25 = block {  # false
+              $B25: {  # false
                 exit_loop  # loop_5
               }
             }
-            %x_354:i32 = load %i_2
+            %124:i32 = load %i_2
+            %x_354:i32 = let %124
             store %f_1, %x_354
-            %x_355:i32 = load %i_2
-            %x_356:i32 = load %m
-            %91:i32 = add %x_355, %x_356
-            %92:i32 = sub %91, 1i
-            store %mid_1, %92
-            %x_359:i32 = load %i_2
-            %x_360:i32 = load %m
-            %x_364:i32 = load %high
-            %96:i32 = mul 2i, %x_360
-            %97:i32 = add %x_359, %96
-            %98:i32 = sub %97, 1i
-            %99:i32 = min %98, %x_364
-            store %to_1, %99
-            %x_366:i32 = load %f_1
+            %126:i32 = load %i_2
+            %x_355:i32 = let %126
+            %128:i32 = load %m
+            %x_356:i32 = let %128
+            %130:i32 = add %x_355, %x_356
+            %131:i32 = sub %130, 1i
+            store %mid_1, %131
+            %132:i32 = load %i_2
+            %x_359:i32 = let %132
+            %134:i32 = load %m
+            %x_360:i32 = let %134
+            %136:i32 = load %high
+            %x_364:i32 = let %136
+            %138:i32 = mul 2i, %x_360
+            %139:i32 = add %x_359, %138
+            %140:i32 = sub %139, 1i
+            %141:i32 = min %140, %x_364
+            store %to_1, %141
+            %142:i32 = load %f_1
+            %x_366:i32 = let %142
             store %param, %x_366
-            %x_367:i32 = load %mid_1
+            %144:i32 = load %mid_1
+            %x_367:i32 = let %144
             store %param_1, %x_367
-            %x_368:i32 = load %to_1
+            %146:i32 = load %to_1
+            %x_368:i32 = let %146
             store %param_2, %x_368
-            %103:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
-            continue %b23
+            %148:void = call %merge_i1_i1_i1_, %param, %param_1, %param_2
+            continue  # -> $B23
           }
-          %b23 = block {  # continuing
-            %x_370:i32 = load %m
-            %x_372:i32 = load %i_2
-            %106:i32 = mul 2i, %x_370
-            %107:i32 = add %x_372, %106
-            store %i_2, %107
-            next_iteration %b22
+          $B23: {  # continuing
+            %149:i32 = load %m
+            %x_370:i32 = let %149
+            %151:i32 = load %i_2
+            %x_372:i32 = let %151
+            %153:i32 = mul 2i, %x_370
+            %154:i32 = add %x_372, %153
+            store %i_2, %154
+            next_iteration  # -> $B22
           }
         }
-        continue %b19
+        continue  # -> $B19
       }
-      %b19 = block {  # continuing
-        %x_374:i32 = load %m
-        %109:i32 = mul 2i, %x_374
-        store %m, %109
-        next_iteration %b18
+      $B19: {  # continuing
+        %155:i32 = load %m
+        %x_374:i32 = let %155
+        %157:i32 = mul 2i, %x_374
+        store %m, %157
+        next_iteration  # -> $B18
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b26 {
-  %b26 = block {
+%main_1 = func():void {
+  $B26: {
     %i_3:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
     %grey:ptr<function, f32, read_write> = var
     %int_i:ptr<function, i32, read_write> = var
-    %115:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-    %x_85:f32 = load_vector_element %115, 0u
-    %117:i32 = convert %x_85
-    store %i_3, %117
-    loop [b: %b27, c: %b28] {  # loop_6
-      %b27 = block {  # body
-        %x_91:i32 = load %i_3
-        switch %x_91 [c: (9i, %b29), c: (8i, %b30), c: (7i, %b31), c: (6i, %b32), c: (5i, %b33), c: (4i, %b34), c: (3i, %b35), c: (2i, %b36), c: (1i, %b37), c: (0i, %b38), c: (default, %b39)] {  # switch_1
-          %b29 = block {  # case
-            %x_121:i32 = load %i_3
-            %120:ptr<private, i32, read_write> = access %data, %x_121
-            store %120, -5i
+    %163:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+    %164:f32 = load_vector_element %163, 0u
+    %x_85:f32 = let %164
+    %166:i32 = call %tint_f32_to_i32, %x_85
+    store %i_3, %166
+    loop [b: $B27, c: $B28] {  # loop_6
+      $B27: {  # body
+        %168:i32 = load %i_3
+        %x_91:i32 = let %168
+        switch %x_91 [c: (9i, $B29), c: (8i, $B30), c: (7i, $B31), c: (6i, $B32), c: (5i, $B33), c: (4i, $B34), c: (3i, $B35), c: (2i, $B36), c: (1i, $B37), c: (0i, $B38), c: (default, $B39)] {  # switch_1
+          $B29: {  # case
+            %170:i32 = load %i_3
+            %x_121:i32 = let %170
+            %172:ptr<private, i32, read_write> = access %data, %x_121
+            store %172, -5i
             exit_switch  # switch_1
           }
-          %b30 = block {  # case
-            %x_119:i32 = load %i_3
-            %122:ptr<private, i32, read_write> = access %data, %x_119
-            store %122, -4i
+          $B30: {  # case
+            %173:i32 = load %i_3
+            %x_119:i32 = let %173
+            %175:ptr<private, i32, read_write> = access %data, %x_119
+            store %175, -4i
             exit_switch  # switch_1
           }
-          %b31 = block {  # case
-            %x_117:i32 = load %i_3
-            %124:ptr<private, i32, read_write> = access %data, %x_117
-            store %124, -3i
+          $B31: {  # case
+            %176:i32 = load %i_3
+            %x_117:i32 = let %176
+            %178:ptr<private, i32, read_write> = access %data, %x_117
+            store %178, -3i
             exit_switch  # switch_1
           }
-          %b32 = block {  # case
-            %x_115:i32 = load %i_3
-            %126:ptr<private, i32, read_write> = access %data, %x_115
-            store %126, -2i
+          $B32: {  # case
+            %179:i32 = load %i_3
+            %x_115:i32 = let %179
+            %181:ptr<private, i32, read_write> = access %data, %x_115
+            store %181, -2i
             exit_switch  # switch_1
           }
-          %b33 = block {  # case
-            %x_113:i32 = load %i_3
-            %128:ptr<private, i32, read_write> = access %data, %x_113
-            store %128, -1i
+          $B33: {  # case
+            %182:i32 = load %i_3
+            %x_113:i32 = let %182
+            %184:ptr<private, i32, read_write> = access %data, %x_113
+            store %184, -1i
             exit_switch  # switch_1
           }
-          %b34 = block {  # case
-            %x_111:i32 = load %i_3
-            %130:ptr<private, i32, read_write> = access %data, %x_111
-            store %130, 0i
+          $B34: {  # case
+            %185:i32 = load %i_3
+            %x_111:i32 = let %185
+            %187:ptr<private, i32, read_write> = access %data, %x_111
+            store %187, 0i
             exit_switch  # switch_1
           }
-          %b35 = block {  # case
-            %x_109:i32 = load %i_3
-            %132:ptr<private, i32, read_write> = access %data, %x_109
-            store %132, 1i
+          $B35: {  # case
+            %188:i32 = load %i_3
+            %x_109:i32 = let %188
+            %190:ptr<private, i32, read_write> = access %data, %x_109
+            store %190, 1i
             exit_switch  # switch_1
           }
-          %b36 = block {  # case
-            %x_107:i32 = load %i_3
-            %134:ptr<private, i32, read_write> = access %data, %x_107
-            store %134, 2i
+          $B36: {  # case
+            %191:i32 = load %i_3
+            %x_107:i32 = let %191
+            %193:ptr<private, i32, read_write> = access %data, %x_107
+            store %193, 2i
             exit_switch  # switch_1
           }
-          %b37 = block {  # case
-            %x_105:i32 = load %i_3
-            %136:ptr<private, i32, read_write> = access %data, %x_105
-            store %136, 3i
+          $B37: {  # case
+            %194:i32 = load %i_3
+            %x_105:i32 = let %194
+            %196:ptr<private, i32, read_write> = access %data, %x_105
+            store %196, 3i
             exit_switch  # switch_1
           }
-          %b38 = block {  # case
-            %x_103:i32 = load %i_3
-            %138:ptr<private, i32, read_write> = access %data, %x_103
-            store %138, 4i
+          $B38: {  # case
+            %197:i32 = load %i_3
+            %x_103:i32 = let %197
+            %199:ptr<private, i32, read_write> = access %data, %x_103
+            store %199, 4i
             exit_switch  # switch_1
           }
-          %b39 = block {  # case
+          $B39: {  # case
             exit_switch  # switch_1
           }
         }
-        %x_123:i32 = load %i_3
-        %140:i32 = add %x_123, 1i
-        store %i_3, %140
-        continue %b28
+        %200:i32 = load %i_3
+        %x_123:i32 = let %200
+        %202:i32 = add %x_123, 1i
+        store %i_3, %202
+        continue  # -> $B28
       }
-      %b28 = block {  # continuing
-        %x_125:i32 = load %i_3
-        %142:bool = lt %x_125, 10i
-        %143:bool = eq %142, false
-        break_if %143 %b27
+      $B28: {  # continuing
+        %203:i32 = load %i_3
+        %x_125:i32 = let %203
+        %205:bool = lt %x_125, 10i
+        %206:bool = eq %205, false
+        break_if %206  # -> [t: exit_loop loop_6, f: $B27]
       }
     }
     store %j_1, 0i
-    loop [b: %b40, c: %b41] {  # loop_7
-      %b40 = block {  # body
-        %x_131:i32 = load %j_1
-        %145:bool = lt %x_131, 10i
-        if %145 [t: %b42, f: %b43] {  # if_7
-          %b42 = block {  # true
+    loop [b: $B40, c: $B41] {  # loop_7
+      $B40: {  # body
+        %207:i32 = load %j_1
+        %x_131:i32 = let %207
+        %209:bool = lt %x_131, 10i
+        if %209 [t: $B42, f: $B43] {  # if_7
+          $B42: {  # true
             exit_if  # if_7
           }
-          %b43 = block {  # false
+          $B43: {  # false
             exit_loop  # loop_7
           }
         }
-        %x_134:i32 = load %j_1
-        %x_135:i32 = load %j_1
-        %148:ptr<private, i32, read_write> = access %data, %x_135
-        %x_137:i32 = load %148
-        %150:ptr<private, i32, read_write> = access %temp, %x_134
-        store %150, %x_137
-        continue %b41
+        %210:i32 = load %j_1
+        %x_134:i32 = let %210
+        %212:i32 = load %j_1
+        %x_135:i32 = let %212
+        %214:ptr<private, i32, read_write> = access %data, %x_135
+        %215:i32 = load %214
+        %x_137:i32 = let %215
+        %217:ptr<private, i32, read_write> = access %temp, %x_134
+        store %217, %x_137
+        continue  # -> $B41
       }
-      %b41 = block {  # continuing
-        %x_139:i32 = load %j_1
-        %152:i32 = add %x_139, 1i
-        store %j_1, %152
-        next_iteration %b40
+      $B41: {  # continuing
+        %218:i32 = load %j_1
+        %x_139:i32 = let %218
+        %220:i32 = add %x_139, 1i
+        store %j_1, %220
+        next_iteration  # -> $B40
       }
     }
-    %153:void = call %mergeSort_
-    %x_143:f32 = load_vector_element %gl_FragCoord, 1u
-    %155:i32 = convert %x_143
-    %156:bool = lt %155, 30i
-    if %156 [t: %b44, f: %b45] {  # if_8
-      %b44 = block {  # true
-        %157:ptr<private, i32, read_write> = access %data, 0i
-        %x_150:i32 = load %157
-        %159:f32 = convert %x_150
-        %160:f32 = div %159, 10.0f
-        %161:f32 = add 0.5f, %160
-        store %grey, %161
+    %221:void = call %mergeSort_
+    %222:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_143:f32 = let %222
+    %224:i32 = call %tint_f32_to_i32, %x_143
+    %225:bool = lt %224, 30i
+    if %225 [t: $B44, f: $B45] {  # if_8
+      $B44: {  # true
+        %226:ptr<private, i32, read_write> = access %data, 0i
+        %227:i32 = load %226
+        %x_150:i32 = let %227
+        %229:f32 = convert %x_150
+        %230:f32 = div %229, 10.0f
+        %231:f32 = add 0.5f, %230
+        store %grey, %231
         exit_if  # if_8
       }
-      %b45 = block {  # false
-        %x_155:f32 = load_vector_element %gl_FragCoord, 1u
-        %163:i32 = convert %x_155
-        %164:bool = lt %163, 60i
-        if %164 [t: %b46, f: %b47] {  # if_9
-          %b46 = block {  # true
-            %165:ptr<private, i32, read_write> = access %data, 1i
-            %x_162:i32 = load %165
-            %167:f32 = convert %x_162
-            %168:f32 = div %167, 10.0f
-            %169:f32 = add 0.5f, %168
-            store %grey, %169
+      $B45: {  # false
+        %232:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_155:f32 = let %232
+        %234:i32 = call %tint_f32_to_i32, %x_155
+        %235:bool = lt %234, 60i
+        if %235 [t: $B46, f: $B47] {  # if_9
+          $B46: {  # true
+            %236:ptr<private, i32, read_write> = access %data, 1i
+            %237:i32 = load %236
+            %x_162:i32 = let %237
+            %239:f32 = convert %x_162
+            %240:f32 = div %239, 10.0f
+            %241:f32 = add 0.5f, %240
+            store %grey, %241
             exit_if  # if_9
           }
-          %b47 = block {  # false
-            %x_167:f32 = load_vector_element %gl_FragCoord, 1u
-            %171:i32 = convert %x_167
-            %172:bool = lt %171, 90i
-            if %172 [t: %b48, f: %b49] {  # if_10
-              %b48 = block {  # true
-                %173:ptr<private, i32, read_write> = access %data, 2i
-                %x_174:i32 = load %173
-                %175:f32 = convert %x_174
-                %176:f32 = div %175, 10.0f
-                %177:f32 = add 0.5f, %176
-                store %grey, %177
+          $B47: {  # false
+            %242:f32 = load_vector_element %gl_FragCoord, 1u
+            %x_167:f32 = let %242
+            %244:i32 = call %tint_f32_to_i32, %x_167
+            %245:bool = lt %244, 90i
+            if %245 [t: $B48, f: $B49] {  # if_10
+              $B48: {  # true
+                %246:ptr<private, i32, read_write> = access %data, 2i
+                %247:i32 = load %246
+                %x_174:i32 = let %247
+                %249:f32 = convert %x_174
+                %250:f32 = div %249, 10.0f
+                %251:f32 = add 0.5f, %250
+                store %grey, %251
                 exit_if  # if_10
               }
-              %b49 = block {  # false
-                %x_179:f32 = load_vector_element %gl_FragCoord, 1u
-                %179:i32 = convert %x_179
-                %180:bool = lt %179, 120i
-                if %180 [t: %b50, f: %b51] {  # if_11
-                  %b50 = block {  # true
-                    %181:ptr<private, i32, read_write> = access %data, 3i
-                    %x_186:i32 = load %181
-                    %183:f32 = convert %x_186
-                    %184:f32 = div %183, 10.0f
-                    %185:f32 = add 0.5f, %184
-                    store %grey, %185
+              $B49: {  # false
+                %252:f32 = load_vector_element %gl_FragCoord, 1u
+                %x_179:f32 = let %252
+                %254:i32 = call %tint_f32_to_i32, %x_179
+                %255:bool = lt %254, 120i
+                if %255 [t: $B50, f: $B51] {  # if_11
+                  $B50: {  # true
+                    %256:ptr<private, i32, read_write> = access %data, 3i
+                    %257:i32 = load %256
+                    %x_186:i32 = let %257
+                    %259:f32 = convert %x_186
+                    %260:f32 = div %259, 10.0f
+                    %261:f32 = add 0.5f, %260
+                    store %grey, %261
                     exit_if  # if_11
                   }
-                  %b51 = block {  # false
-                    %x_191:f32 = load_vector_element %gl_FragCoord, 1u
-                    %187:i32 = convert %x_191
-                    %188:bool = lt %187, 150i
-                    if %188 [t: %b52, f: %b53] {  # if_12
-                      %b52 = block {  # true
+                  $B51: {  # false
+                    %262:f32 = load_vector_element %gl_FragCoord, 1u
+                    %x_191:f32 = let %262
+                    %264:i32 = call %tint_f32_to_i32, %x_191
+                    %265:bool = lt %264, 150i
+                    if %265 [t: $B52, f: $B53] {  # if_12
+                      $B52: {  # true
                         store %int_i, 1i
-                        loop [b: %b54, c: %b55] {  # loop_8
-                          %b54 = block {  # body
-                            %x_201:i32 = load %int_i
-                            %190:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
-                            %x_203:f32 = load_vector_element %190, 0u
-                            %192:i32 = convert %x_203
-                            %193:bool = gt %x_201, %192
-                            if %193 [t: %b56, f: %b57] {  # if_13
-                              %b56 = block {  # true
+                        loop [b: $B54, c: $B55] {  # loop_8
+                          $B54: {  # body
+                            %266:i32 = load %int_i
+                            %x_201:i32 = let %266
+                            %268:ptr<uniform, vec2<f32>, read> = access %x_28, 0u
+                            %269:f32 = load_vector_element %268, 0u
+                            %x_203:f32 = let %269
+                            %271:i32 = call %tint_f32_to_i32, %x_203
+                            %272:bool = gt %x_201, %271
+                            if %272 [t: $B56, f: $B57] {  # if_13
+                              $B56: {  # true
                                 exit_if  # if_13
                               }
-                              %b57 = block {  # false
+                              $B57: {  # false
                                 exit_loop  # loop_8
                               }
                             }
-                            discard
-                            continue %b55
+                            store %continue_execution, false
+                            continue  # -> $B55
                           }
-                          %b55 = block {  # continuing
-                            next_iteration %b54
+                          $B55: {  # continuing
+                            next_iteration  # -> $B54
                           }
                         }
                         exit_if  # if_12
                       }
-                      %b53 = block {  # false
-                        %x_208:f32 = load_vector_element %gl_FragCoord, 1u
-                        %195:i32 = convert %x_208
-                        %196:bool = lt %195, 180i
-                        if %196 [t: %b58, f: %b59] {  # if_14
-                          %b58 = block {  # true
-                            %197:ptr<private, i32, read_write> = access %data, 5i
-                            %x_215:i32 = load %197
-                            %199:f32 = convert %x_215
-                            %200:f32 = div %199, 10.0f
-                            %201:f32 = add 0.5f, %200
-                            store %grey, %201
+                      $B53: {  # false
+                        %273:f32 = load_vector_element %gl_FragCoord, 1u
+                        %x_208:f32 = let %273
+                        %275:i32 = call %tint_f32_to_i32, %x_208
+                        %276:bool = lt %275, 180i
+                        if %276 [t: $B58, f: $B59] {  # if_14
+                          $B58: {  # true
+                            %277:ptr<private, i32, read_write> = access %data, 5i
+                            %278:i32 = load %277
+                            %x_215:i32 = let %278
+                            %280:f32 = convert %x_215
+                            %281:f32 = div %280, 10.0f
+                            %282:f32 = add 0.5f, %281
+                            store %grey, %282
                             exit_if  # if_14
                           }
-                          %b59 = block {  # false
-                            %x_220:f32 = load_vector_element %gl_FragCoord, 1u
-                            %203:i32 = convert %x_220
-                            %204:bool = lt %203, 210i
-                            if %204 [t: %b60, f: %b61] {  # if_15
-                              %b60 = block {  # true
-                                %205:ptr<private, i32, read_write> = access %data, 6i
-                                %x_227:i32 = load %205
-                                %207:f32 = convert %x_227
-                                %208:f32 = div %207, 10.0f
-                                %209:f32 = add 0.5f, %208
-                                store %grey, %209
+                          $B59: {  # false
+                            %283:f32 = load_vector_element %gl_FragCoord, 1u
+                            %x_220:f32 = let %283
+                            %285:i32 = call %tint_f32_to_i32, %x_220
+                            %286:bool = lt %285, 210i
+                            if %286 [t: $B60, f: $B61] {  # if_15
+                              $B60: {  # true
+                                %287:ptr<private, i32, read_write> = access %data, 6i
+                                %288:i32 = load %287
+                                %x_227:i32 = let %288
+                                %290:f32 = convert %x_227
+                                %291:f32 = div %290, 10.0f
+                                %292:f32 = add 0.5f, %291
+                                store %grey, %292
                                 exit_if  # if_15
                               }
-                              %b61 = block {  # false
-                                %x_232:f32 = load_vector_element %gl_FragCoord, 1u
-                                %211:i32 = convert %x_232
-                                %212:bool = lt %211, 240i
-                                if %212 [t: %b62, f: %b63] {  # if_16
-                                  %b62 = block {  # true
-                                    %213:ptr<private, i32, read_write> = access %data, 7i
-                                    %x_239:i32 = load %213
-                                    %215:f32 = convert %x_239
-                                    %216:f32 = div %215, 10.0f
-                                    %217:f32 = add 0.5f, %216
-                                    store %grey, %217
+                              $B61: {  # false
+                                %293:f32 = load_vector_element %gl_FragCoord, 1u
+                                %x_232:f32 = let %293
+                                %295:i32 = call %tint_f32_to_i32, %x_232
+                                %296:bool = lt %295, 240i
+                                if %296 [t: $B62, f: $B63] {  # if_16
+                                  $B62: {  # true
+                                    %297:ptr<private, i32, read_write> = access %data, 7i
+                                    %298:i32 = load %297
+                                    %x_239:i32 = let %298
+                                    %300:f32 = convert %x_239
+                                    %301:f32 = div %300, 10.0f
+                                    %302:f32 = add 0.5f, %301
+                                    store %grey, %302
                                     exit_if  # if_16
                                   }
-                                  %b63 = block {  # false
-                                    %x_244:f32 = load_vector_element %gl_FragCoord, 1u
-                                    %219:i32 = convert %x_244
-                                    %220:bool = lt %219, 270i
-                                    if %220 [t: %b64, f: %b65] {  # if_17
-                                      %b64 = block {  # true
-                                        %221:ptr<private, i32, read_write> = access %data, 8i
-                                        %x_251:i32 = load %221
-                                        %223:f32 = convert %x_251
-                                        %224:f32 = div %223, 10.0f
-                                        %225:f32 = add 0.5f, %224
-                                        store %grey, %225
+                                  $B63: {  # false
+                                    %303:f32 = load_vector_element %gl_FragCoord, 1u
+                                    %x_244:f32 = let %303
+                                    %305:i32 = call %tint_f32_to_i32, %x_244
+                                    %306:bool = lt %305, 270i
+                                    if %306 [t: $B64, f: $B65] {  # if_17
+                                      $B64: {  # true
+                                        %307:ptr<private, i32, read_write> = access %data, 8i
+                                        %308:i32 = load %307
+                                        %x_251:i32 = let %308
+                                        %310:f32 = convert %x_251
+                                        %311:f32 = div %310, 10.0f
+                                        %312:f32 = add 0.5f, %311
+                                        store %grey, %312
                                         exit_if  # if_17
                                       }
-                                      %b65 = block {  # false
-                                        discard
+                                      $B65: {  # false
+                                        store %continue_execution, false
                                         exit_if  # if_17
                                       }
                                     }
@@ -530,23 +616,42 @@
         exit_if  # if_8
       }
     }
-    %x_255:f32 = load %grey
-    %x_256:vec3<f32> = construct %x_255, %x_255, %x_255
-    %228:f32 = access %x_256, 0u
-    %229:f32 = access %x_256, 1u
-    %230:f32 = access %x_256, 2u
-    %231:vec4<f32> = construct %228, %229, %230, 1.0f
-    store %x_GLF_color, %231
+    %313:f32 = load %grey
+    %x_255:f32 = let %313
+    %315:vec3<f32> = construct %x_255, %x_255, %x_255
+    %x_256:vec3<f32> = let %315
+    %317:f32 = access %x_256, 0u
+    %318:f32 = access %x_256, 1u
+    %319:f32 = access %x_256, 2u
+    %320:vec4<f32> = construct %317, %318, %319, 1.0f
+    store %x_GLF_color, %320
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b66 {
-  %b66 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B66: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %234:void = call %main_1
-    %235:vec4<f32> = load %x_GLF_color
-    %236:main_out = construct %235
-    ret %236
+    %323:void = call %main_1
+    %324:vec4<f32> = load %x_GLF_color
+    %325:main_out = construct %324
+    %326:bool = load %continue_execution
+    %327:bool = eq %326, false
+    if %327 [t: $B67] {  # if_18
+      $B67: {  # true
+        terminate_invocation
+      }
+    }
+    ret %325
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B68: {
+    %329:i32 = convert %value
+    %330:bool = gte %value, -2147483648.0f
+    %331:i32 = select -2147483648i, %329, %330
+    %332:bool = lte %value, 2147483520.0f
+    %333:i32 = select 2147483647i, %331, %332
+    ret %333
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.msl
index 1afae1d..49bf1c2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,35 +12,37 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_34:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %9:i32 = load %i
     %10:ptr<private, i32, read_write> = access %obj, 0u, %9
     %11:i32 = load %10
     store %temp, %11
-    %x_233:i32 = load %i
-    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_233
-    %14:i32 = load %j
-    %15:ptr<private, i32, read_write> = access %obj, 0u, %14
-    %16:i32 = load %15
-    store %13, %16
-    %x_238:i32 = load %j
-    %18:ptr<private, i32, read_write> = access %obj, 0u, %x_238
-    %19:i32 = load %temp
-    store %18, %19
+    %12:i32 = load %i
+    %x_233:i32 = let %12
+    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_233
+    %15:i32 = load %j
+    %16:ptr<private, i32, read_write> = access %obj, 0u, %15
+    %17:i32 = load %16
+    store %14, %17
+    %18:i32 = load %j
+    %x_238:i32 = let %18
+    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_238
+    %21:i32 = load %temp
+    store %20, %21
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -48,70 +50,71 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %30:i32 = load %h
-    %31:ptr<private, i32, read_write> = access %obj, 0u, %30
-    %32:i32 = load %31
-    store %pivot, %32
-    %33:i32 = load %l
-    %34:i32 = sub %33, 1i
-    store %i_1, %34
+    %32:i32 = load %h
+    %33:ptr<private, i32, read_write> = access %obj, 0u, %32
+    %34:i32 = load %33
+    store %pivot, %34
     %35:i32 = load %l
-    store %j_1, %35
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %36:i32 = load %j_1
-        %37:i32 = load %h
-        %38:i32 = sub %37, 1i
-        %39:bool = lte %36, %38
-        if %39 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %36:i32 = sub %35, 1i
+    store %i_1, %36
+    %37:i32 = load %l
+    store %j_1, %37
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %38:i32 = load %j_1
+        %39:i32 = load %h
+        %40:i32 = sub %39, 1i
+        %41:bool = lte %38, %40
+        if %41 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %40:i32 = load %j_1
-        %41:ptr<private, i32, read_write> = access %obj, 0u, %40
-        %42:i32 = load %41
-        %43:i32 = load %pivot
-        %44:bool = lte %42, %43
-        if %44 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %45:i32 = load %i_1
-            %46:i32 = add %45, 1i
-            store %i_1, %46
+        %42:i32 = load %j_1
+        %43:ptr<private, i32, read_write> = access %obj, 0u, %42
+        %44:i32 = load %43
+        %45:i32 = load %pivot
+        %46:bool = lte %44, %45
+        if %46 [t: $B8] {  # if_2
+          $B8: {  # true
             %47:i32 = load %i_1
-            store %param, %47
-            %48:i32 = load %j_1
-            store %param_1, %48
-            %49:void = call %swap_i1_i1_, %param, %param_1
+            %48:i32 = add %47, 1i
+            store %i_1, %48
+            %49:i32 = load %i_1
+            store %param, %49
+            %50:i32 = load %j_1
+            store %param_1, %50
+            %51:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %50:i32 = load %j_1
-        %51:i32 = add %50, 1i
-        store %j_1, %51
-        next_iteration %b4
+      $B5: {  # continuing
+        %52:i32 = load %j_1
+        %53:i32 = add %52, 1i
+        store %j_1, %53
+        next_iteration  # -> $B4
       }
     }
-    %52:i32 = load %i_1
-    %53:i32 = add %52, 1i
-    store %i_1, %53
     %54:i32 = load %i_1
-    store %param_2, %54
-    %55:i32 = load %h
-    store %param_3, %55
-    %56:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_276:i32 = load %i_1
+    %55:i32 = add %54, 1i
+    store %i_1, %55
+    %56:i32 = load %i_1
+    store %param_2, %56
+    %57:i32 = load %h
+    store %param_3, %57
+    %58:void = call %swap_i1_i1_, %param_2, %param_3
+    %59:i32 = load %i_1
+    %x_276:i32 = let %59
     ret %x_276
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -126,317 +129,355 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %70:i32 = load %top
-    %x_281:i32 = add %70, 1i
+    %73:i32 = load %top
+    %74:i32 = add %73, 1i
+    %x_281:i32 = let %74
     store %top, %x_281
-    %72:ptr<function, i32, read_write> = access %stack, %x_281
-    %73:i32 = load %l_1
-    store %72, %73
-    %74:f32 = load_vector_element %gl_FragCoord, 1u
-    %75:bool = gte %74, 0.0f
-    if %75 [t: %b10, f: %b11] {  # if_3
-      %b10 = block {  # true
-        %x_290:i32 = load %h_1
-        if false [t: %b12, f: %b13] {  # if_4
-          %b12 = block {  # true
+    %76:ptr<function, i32, read_write> = access %stack, %x_281
+    %77:i32 = load %l_1
+    store %76, %77
+    %78:f32 = load_vector_element %gl_FragCoord, 1u
+    %79:bool = gte %78, 0.0f
+    if %79 [t: $B10, f: $B11] {  # if_3
+      $B10: {  # true
+        %80:i32 = load %h_1
+        %x_290:i32 = let %80
+        if false [t: $B12, f: $B13] {  # if_4
+          $B12: {  # true
             store %x_279, 1i
             exit_if  # if_4
           }
-          %b13 = block {  # false
-            %77:i32 = load %h_1
-            %78:i32 = shiftl %77, 0u
-            store %x_279, %78
+          $B13: {  # false
+            %82:i32 = load %h_1
+            %83:u32 = and 0u, 31u
+            %84:i32 = shl %82, %83
+            store %x_279, %84
             exit_if  # if_4
           }
         }
-        %79:i32 = load %x_279
-        %80:i32 = or %x_290, %79
-        store %x_278, %80
+        %85:i32 = load %x_279
+        %86:i32 = or %x_290, %85
+        store %x_278, %86
         exit_if  # if_3
       }
-      %b11 = block {  # false
+      $B11: {  # false
         store %x_278, 1i
         exit_if  # if_3
       }
     }
-    %81:i32 = load %x_278
-    store %int_a, %81
-    %82:i32 = load %h_1
-    %83:i32 = load %h_1
-    %84:i32 = load %int_a
-    %85:i32 = clamp %82, %83, %84
-    store %clamp_a, %85
-    %86:i32 = load %top
-    %x_304:i32 = add %86, 1i
+    %87:i32 = load %x_278
+    store %int_a, %87
+    %88:i32 = load %h_1
+    %89:i32 = load %h_1
+    %90:i32 = load %int_a
+    %91:i32 = let %90
+    %92:i32 = max %88, %89
+    %93:i32 = min %92, %91
+    store %clamp_a, %93
+    %94:i32 = load %top
+    %95:i32 = add %94, 1i
+    %x_304:i32 = let %95
     store %top, %x_304
-    %88:ptr<function, i32, read_write> = access %stack, %x_304
-    %89:i32 = load %clamp_a
-    %90:i32 = div %89, 1i
-    store %88, %90
-    loop [b: %b14, c: %b15] {  # loop_2
-      %b14 = block {  # body
-        %91:i32 = load %top
-        %92:bool = gte %91, 0i
-        if %92 [t: %b16, f: %b17] {  # if_5
-          %b16 = block {  # true
+    %97:ptr<function, i32, read_write> = access %stack, %x_304
+    %98:i32 = load %clamp_a
+    %99:i32 = call %tint_div_i32, %98, 1i
+    store %97, %99
+    loop [b: $B14, c: $B15] {  # loop_2
+      $B14: {  # body
+        %101:i32 = load %top
+        %102:bool = gte %101, 0i
+        if %102 [t: $B16, f: $B17] {  # if_5
+          $B16: {  # true
             exit_if  # if_5
           }
-          %b17 = block {  # false
+          $B17: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_315:i32 = load %top
-        %94:i32 = load %top
-        %95:i32 = sub %94, 1i
-        store %top, %95
-        %96:ptr<function, i32, read_write> = access %stack, %x_315
-        %97:i32 = load %96
-        store %h_1, %97
-        %x_319:i32 = load %top
-        %99:i32 = load %top
-        %100:i32 = sub %99, 1i
-        store %top, %100
-        %101:ptr<function, i32, read_write> = access %stack, %x_319
-        %102:i32 = load %101
-        store %l_1, %102
-        %103:i32 = load %l_1
-        store %param_4, %103
-        %104:i32 = load %h_1
-        store %param_5, %104
-        %x_325:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %103:i32 = load %top
+        %x_315:i32 = let %103
+        %105:i32 = load %top
+        %106:i32 = sub %105, 1i
+        store %top, %106
+        %107:ptr<function, i32, read_write> = access %stack, %x_315
+        %108:i32 = load %107
+        store %h_1, %108
+        %109:i32 = load %top
+        %x_319:i32 = let %109
+        %111:i32 = load %top
+        %112:i32 = sub %111, 1i
+        store %top, %112
+        %113:ptr<function, i32, read_write> = access %stack, %x_319
+        %114:i32 = load %113
+        store %l_1, %114
+        %115:i32 = load %l_1
+        store %param_4, %115
+        %116:i32 = load %h_1
+        store %param_5, %116
+        %117:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_325:i32 = let %117
         store %p, %x_325
-        %106:i32 = load %p
-        %107:i32 = sub %106, 1i
-        %108:i32 = load %l_1
-        %109:bool = gt %107, %108
-        if %109 [t: %b18] {  # if_6
-          %b18 = block {  # true
-            %110:i32 = load %top
-            %x_333:i32 = add %110, 1i
+        %119:i32 = load %p
+        %120:i32 = sub %119, 1i
+        %121:i32 = load %l_1
+        %122:bool = gt %120, %121
+        if %122 [t: $B18] {  # if_6
+          $B18: {  # true
+            %123:i32 = load %top
+            %124:i32 = add %123, 1i
+            %x_333:i32 = let %124
             store %top, %x_333
-            %112:ptr<function, i32, read_write> = access %stack, %x_333
-            %113:i32 = load %l_1
-            store %112, %113
-            %114:i32 = load %top
-            %x_337:i32 = add %114, 1i
+            %126:ptr<function, i32, read_write> = access %stack, %x_333
+            %127:i32 = load %l_1
+            store %126, %127
+            %128:i32 = load %top
+            %129:i32 = add %128, 1i
+            %x_337:i32 = let %129
             store %top, %x_337
-            %116:ptr<function, i32, read_write> = access %stack, %x_337
-            %117:i32 = load %p
-            %118:i32 = sub %117, 1i
-            store %116, %118
+            %131:ptr<function, i32, read_write> = access %stack, %x_337
+            %132:i32 = load %p
+            %133:i32 = sub %132, 1i
+            store %131, %133
             exit_if  # if_6
           }
         }
-        %119:i32 = load %p
-        %120:i32 = add %119, 1i
-        %121:i32 = load %h_1
-        %122:bool = lt %120, %121
-        if %122 [t: %b19] {  # if_7
-          %b19 = block {  # true
-            %123:i32 = load %top
-            %x_348:i32 = add %123, 1i
+        %134:i32 = load %p
+        %135:i32 = add %134, 1i
+        %136:i32 = load %h_1
+        %137:bool = lt %135, %136
+        if %137 [t: $B19] {  # if_7
+          $B19: {  # true
+            %138:i32 = load %top
+            %139:i32 = add %138, 1i
+            %x_348:i32 = let %139
             store %top, %x_348
-            %125:ptr<function, i32, read_write> = access %stack, %x_348
-            %126:i32 = load %p
-            %127:i32 = add %126, 1i
-            store %125, %127
-            %128:i32 = load %top
-            %x_353:i32 = add %128, 1i
+            %141:ptr<function, i32, read_write> = access %stack, %x_348
+            %142:i32 = load %p
+            %143:i32 = add %142, 1i
+            store %141, %143
+            %144:i32 = load %top
+            %145:i32 = add %144, 1i
+            %x_353:i32 = let %145
             store %top, %x_353
-            %130:ptr<function, i32, read_write> = access %stack, %x_353
-            %131:i32 = load %h_1
-            store %130, %131
+            %147:ptr<function, i32, read_write> = access %stack, %x_353
+            %148:i32 = load %h_1
+            store %147, %148
             exit_if  # if_7
           }
         }
-        continue %b15
+        continue  # -> $B15
       }
-      %b15 = block {  # continuing
-        next_iteration %b14
+      $B15: {  # continuing
+        next_iteration  # -> $B14
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b20 {
-  %b20 = block {
+%main_1 = func():void {
+  $B20: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
     store %i_2, 0i
-    loop [b: %b21, c: %b22] {  # loop_3
-      %b21 = block {  # body
-        %136:i32 = load %i_2
-        %137:bool = lt %136, 10i
-        if %137 [t: %b23, f: %b24] {  # if_8
-          %b23 = block {  # true
+    loop [b: $B21, c: $B22] {  # loop_3
+      $B21: {  # body
+        %153:i32 = load %i_2
+        %154:bool = lt %153, 10i
+        if %154 [t: $B23, f: $B24] {  # if_8
+          $B23: {  # true
             exit_if  # if_8
           }
-          %b24 = block {  # false
+          $B24: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_93:i32 = load %i_2
-        %139:ptr<private, i32, read_write> = access %obj, 0u, %x_93
-        %140:i32 = load %i_2
-        %141:i32 = sub 10i, %140
-        store %139, %141
-        %x_97:i32 = load %i_2
-        %143:ptr<private, i32, read_write> = access %obj, 0u, %x_97
-        %144:i32 = load %i_2
-        %145:ptr<private, i32, read_write> = access %obj, 0u, %144
-        %146:i32 = load %145
-        %147:i32 = load %i_2
-        %148:ptr<private, i32, read_write> = access %obj, 0u, %147
-        %149:i32 = load %148
-        %150:i32 = mul %146, %149
-        store %143, %150
-        continue %b22
+        %155:i32 = load %i_2
+        %x_93:i32 = let %155
+        %157:ptr<private, i32, read_write> = access %obj, 0u, %x_93
+        %158:i32 = load %i_2
+        %159:i32 = sub 10i, %158
+        store %157, %159
+        %160:i32 = load %i_2
+        %x_97:i32 = let %160
+        %162:ptr<private, i32, read_write> = access %obj, 0u, %x_97
+        %163:i32 = load %i_2
+        %164:ptr<private, i32, read_write> = access %obj, 0u, %163
+        %165:i32 = load %164
+        %166:i32 = load %i_2
+        %167:ptr<private, i32, read_write> = access %obj, 0u, %166
+        %168:i32 = load %167
+        %169:i32 = mul %165, %168
+        store %162, %169
+        continue  # -> $B22
       }
-      %b22 = block {  # continuing
-        %151:i32 = load %i_2
-        %152:i32 = add %151, 1i
-        store %i_2, %152
-        next_iteration %b21
+      $B22: {  # continuing
+        %170:i32 = load %i_2
+        %171:i32 = add %170, 1i
+        store %i_2, %171
+        next_iteration  # -> $B21
       }
     }
-    %153:void = call %quicksort_
-    %154:vec4<f32> = load %gl_FragCoord
-    %155:vec2<f32> = swizzle %154, xy
-    %156:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %157:vec2<f32> = load %156
-    %158:vec2<f32> = div %155, %157
-    store %uv, %158
+    %172:void = call %quicksort_
+    %173:vec4<f32> = load %gl_FragCoord
+    %174:vec2<f32> = swizzle %173, xy
+    %175:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %176:vec2<f32> = load %175
+    %177:vec2<f32> = div %174, %176
+    store %uv, %177
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %159:f32 = load_vector_element %color, 0u
-    %160:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %161:i32 = load %160
-    %162:f32 = convert %161
-    %163:f32 = add %159, %162
-    store_vector_element %color, 0u, %163
-    %164:f32 = load_vector_element %uv, 0u
-    %165:bool = gt %164, 0.25f
-    if %165 [t: %b25] {  # if_9
-      %b25 = block {  # true
-        %166:f32 = load_vector_element %color, 0u
-        %167:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %168:i32 = load %167
-        %169:f32 = convert %168
-        %170:f32 = add %166, %169
-        store_vector_element %color, 0u, %170
+    %178:f32 = load_vector_element %color, 0u
+    %179:f32 = let %178
+    %180:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %181:i32 = load %180
+    %182:f32 = convert %181
+    %183:f32 = add %179, %182
+    store_vector_element %color, 0u, %183
+    %184:f32 = load_vector_element %uv, 0u
+    %185:bool = gt %184, 0.25f
+    if %185 [t: $B25] {  # if_9
+      $B25: {  # true
+        %186:f32 = load_vector_element %color, 0u
+        %187:f32 = let %186
+        %188:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %189:i32 = load %188
+        %190:f32 = convert %189
+        %191:f32 = add %187, %190
+        store_vector_element %color, 0u, %191
         exit_if  # if_9
       }
     }
-    %171:f32 = load_vector_element %uv, 0u
-    %172:bool = gt %171, 0.5f
-    if %172 [t: %b26] {  # if_10
-      %b26 = block {  # true
-        %173:f32 = load_vector_element %color, 1u
-        %174:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %175:i32 = load %174
-        %176:f32 = convert %175
-        %177:f32 = add %173, %176
-        store_vector_element %color, 1u, %177
+    %192:f32 = load_vector_element %uv, 0u
+    %193:bool = gt %192, 0.5f
+    if %193 [t: $B26] {  # if_10
+      $B26: {  # true
+        %194:f32 = load_vector_element %color, 1u
+        %195:f32 = let %194
+        %196:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %197:i32 = load %196
+        %198:f32 = convert %197
+        %199:f32 = add %195, %198
+        store_vector_element %color, 1u, %199
         exit_if  # if_10
       }
     }
-    %178:f32 = load_vector_element %uv, 0u
-    %179:bool = gt %178, 0.75f
-    if %179 [t: %b27] {  # if_11
-      %b27 = block {  # true
-        %180:f32 = load_vector_element %color, 2u
-        %181:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %182:i32 = load %181
-        %183:f32 = convert %182
-        %184:f32 = add %180, %183
-        store_vector_element %color, 2u, %184
+    %200:f32 = load_vector_element %uv, 0u
+    %201:bool = gt %200, 0.75f
+    if %201 [t: $B27] {  # if_11
+      $B27: {  # true
+        %202:f32 = load_vector_element %color, 2u
+        %203:f32 = let %202
+        %204:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %205:i32 = load %204
+        %206:f32 = convert %205
+        %207:f32 = add %203, %206
+        store_vector_element %color, 2u, %207
         exit_if  # if_11
       }
     }
-    %185:f32 = load_vector_element %color, 1u
-    %186:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %187:i32 = load %186
-    %188:f32 = convert %187
-    %189:f32 = add %185, %188
-    store_vector_element %color, 1u, %189
-    %190:f32 = load_vector_element %uv, 1u
-    %191:bool = gt %190, 0.25f
-    if %191 [t: %b28] {  # if_12
-      %b28 = block {  # true
-        %192:f32 = load_vector_element %color, 0u
-        %193:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %194:i32 = load %193
-        %195:f32 = convert %194
-        %196:f32 = add %192, %195
-        store_vector_element %color, 0u, %196
+    %208:f32 = load_vector_element %color, 1u
+    %209:f32 = let %208
+    %210:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %211:i32 = load %210
+    %212:f32 = convert %211
+    %213:f32 = add %209, %212
+    store_vector_element %color, 1u, %213
+    %214:f32 = load_vector_element %uv, 1u
+    %215:bool = gt %214, 0.25f
+    if %215 [t: $B28] {  # if_12
+      $B28: {  # true
+        %216:f32 = load_vector_element %color, 0u
+        %217:f32 = let %216
+        %218:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %219:i32 = load %218
+        %220:f32 = convert %219
+        %221:f32 = add %217, %220
+        store_vector_element %color, 0u, %221
         exit_if  # if_12
       }
     }
-    %197:f32 = load_vector_element %uv, 1u
-    %198:bool = gt %197, 0.5f
-    if %198 [t: %b29] {  # if_13
-      %b29 = block {  # true
-        %199:f32 = load_vector_element %color, 1u
-        %200:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %201:i32 = load %200
-        %202:f32 = convert %201
-        %203:f32 = add %199, %202
-        store_vector_element %color, 1u, %203
+    %222:f32 = load_vector_element %uv, 1u
+    %223:bool = gt %222, 0.5f
+    if %223 [t: $B29] {  # if_13
+      $B29: {  # true
+        %224:f32 = load_vector_element %color, 1u
+        %225:f32 = let %224
+        %226:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %227:i32 = load %226
+        %228:f32 = convert %227
+        %229:f32 = add %225, %228
+        store_vector_element %color, 1u, %229
         exit_if  # if_13
       }
     }
-    %204:f32 = load_vector_element %uv, 1u
-    %205:bool = gt %204, 0.75f
-    if %205 [t: %b30] {  # if_14
-      %b30 = block {  # true
-        %206:f32 = load_vector_element %color, 2u
-        %207:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %208:i32 = load %207
-        %209:f32 = convert %208
-        %210:f32 = add %206, %209
-        store_vector_element %color, 2u, %210
+    %230:f32 = load_vector_element %uv, 1u
+    %231:bool = gt %230, 0.75f
+    if %231 [t: $B30] {  # if_14
+      $B30: {  # true
+        %232:f32 = load_vector_element %color, 2u
+        %233:f32 = let %232
+        %234:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %235:i32 = load %234
+        %236:f32 = convert %235
+        %237:f32 = add %233, %236
+        store_vector_element %color, 2u, %237
         exit_if  # if_14
       }
     }
-    %211:f32 = load_vector_element %color, 2u
-    %212:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %213:i32 = load %212
-    %214:f32 = convert %213
-    %215:f32 = add %211, %214
-    store_vector_element %color, 2u, %215
-    %216:f32 = load_vector_element %uv, 0u
-    %217:f32 = load_vector_element %uv, 1u
-    %218:f32 = sub %216, %217
-    %219:f32 = abs %218
-    %220:bool = lt %219, 0.25f
-    if %220 [t: %b31] {  # if_15
-      %b31 = block {  # true
-        %221:f32 = load_vector_element %color, 0u
-        %222:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %223:i32 = load %222
-        %224:f32 = convert %223
-        %225:f32 = add %221, %224
-        store_vector_element %color, 0u, %225
+    %238:f32 = load_vector_element %color, 2u
+    %239:f32 = let %238
+    %240:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %241:i32 = load %240
+    %242:f32 = convert %241
+    %243:f32 = add %239, %242
+    store_vector_element %color, 2u, %243
+    %244:f32 = load_vector_element %uv, 0u
+    %245:f32 = load_vector_element %uv, 1u
+    %246:f32 = sub %244, %245
+    %247:f32 = abs %246
+    %248:bool = lt %247, 0.25f
+    if %248 [t: $B31] {  # if_15
+      $B31: {  # true
+        %249:f32 = load_vector_element %color, 0u
+        %250:f32 = let %249
+        %251:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %252:i32 = load %251
+        %253:f32 = convert %252
+        %254:f32 = add %250, %253
+        store_vector_element %color, 0u, %254
         exit_if  # if_15
       }
     }
-    %226:vec3<f32> = load %color
-    %x_224:vec3<f32> = normalize %226
-    %228:f32 = access %x_224, 0u
-    %229:f32 = access %x_224, 1u
-    %230:f32 = access %x_224, 2u
-    %231:vec4<f32> = construct %228, %229, %230, 1.0f
-    store %x_GLF_color, %231
+    %255:vec3<f32> = load %color
+    %256:vec3<f32> = normalize %255
+    %x_224:vec3<f32> = let %256
+    %258:f32 = access %x_224, 0u
+    %259:f32 = access %x_224, 1u
+    %260:f32 = access %x_224, 2u
+    %261:vec4<f32> = construct %258, %259, %260, 1.0f
+    store %x_GLF_color, %261
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b32 {
-  %b32 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B32: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %234:void = call %main_1
-    %235:vec4<f32> = load %x_GLF_color
-    %236:main_out = construct %235
-    ret %236
+    %264:void = call %main_1
+    %265:vec4<f32> = load %x_GLF_color
+    %266:main_out = construct %265
+    ret %266
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B33: {
+    %269:bool = eq %rhs, 0i
+    %270:bool = eq %lhs, -2147483648i
+    %271:bool = eq %rhs, -1i
+    %272:bool = and %270, %271
+    %273:bool = or %269, %272
+    %274:i32 = select %rhs, 1i, %273
+    %275:i32 = div %lhs, %274
+    ret %275
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.msl
index 3840d8a..04a9625 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-conditional-bitwise-or-clamp/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -12,35 +12,42 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_34:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_230:i32 = load %i
-    %10:ptr<private, i32, read_write> = access %obj, 0u, %x_230
-    %x_232:i32 = load %10
+    %9:i32 = load %i
+    %x_230:i32 = let %9
+    %11:ptr<private, i32, read_write> = access %obj, 0u, %x_230
+    %12:i32 = load %11
+    %x_232:i32 = let %12
     store %temp, %x_232
-    %x_233:i32 = load %i
-    %x_234:i32 = load %j
-    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_234
-    %x_236:i32 = load %14
-    %16:ptr<private, i32, read_write> = access %obj, 0u, %x_233
-    store %16, %x_236
-    %x_238:i32 = load %j
-    %x_239:i32 = load %temp
-    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_238
-    store %19, %x_239
+    %14:i32 = load %i
+    %x_233:i32 = let %14
+    %16:i32 = load %j
+    %x_234:i32 = let %16
+    %18:ptr<private, i32, read_write> = access %obj, 0u, %x_234
+    %19:i32 = load %18
+    %x_236:i32 = let %19
+    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_233
+    store %21, %x_236
+    %22:i32 = load %j
+    %x_238:i32 = let %22
+    %24:i32 = load %temp
+    %x_239:i32 = let %24
+    %26:ptr<private, i32, read_write> = access %obj, 0u, %x_238
+    store %26, %x_239
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -48,70 +55,87 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_242:i32 = load %h
-    %31:ptr<private, i32, read_write> = access %obj, 0u, %x_242
-    %x_244:i32 = load %31
+    %37:i32 = load %h
+    %x_242:i32 = let %37
+    %39:ptr<private, i32, read_write> = access %obj, 0u, %x_242
+    %40:i32 = load %39
+    %x_244:i32 = let %40
     store %pivot, %x_244
-    %x_245:i32 = load %l
-    %34:i32 = sub %x_245, 1i
-    store %i_1, %34
-    %x_247:i32 = load %l
+    %42:i32 = load %l
+    %x_245:i32 = let %42
+    %44:i32 = sub %x_245, 1i
+    store %i_1, %44
+    %45:i32 = load %l
+    %x_247:i32 = let %45
     store %j_1, %x_247
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_252:i32 = load %j_1
-        %x_253:i32 = load %h
-        %38:i32 = sub %x_253, 1i
-        %39:bool = lte %x_252, %38
-        if %39 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %47:i32 = load %j_1
+        %x_252:i32 = let %47
+        %49:i32 = load %h
+        %x_253:i32 = let %49
+        %51:i32 = sub %x_253, 1i
+        %52:bool = lte %x_252, %51
+        if %52 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_257:i32 = load %j_1
-        %41:ptr<private, i32, read_write> = access %obj, 0u, %x_257
-        %x_259:i32 = load %41
-        %x_260:i32 = load %pivot
-        %44:bool = lte %x_259, %x_260
-        if %44 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_264:i32 = load %i_1
-            %46:i32 = add %x_264, 1i
-            store %i_1, %46
-            %x_266:i32 = load %i_1
+        %53:i32 = load %j_1
+        %x_257:i32 = let %53
+        %55:ptr<private, i32, read_write> = access %obj, 0u, %x_257
+        %56:i32 = load %55
+        %x_259:i32 = let %56
+        %58:i32 = load %pivot
+        %x_260:i32 = let %58
+        %60:bool = lte %x_259, %x_260
+        if %60 [t: $B8] {  # if_2
+          $B8: {  # true
+            %61:i32 = load %i_1
+            %x_264:i32 = let %61
+            %63:i32 = add %x_264, 1i
+            store %i_1, %63
+            %64:i32 = load %i_1
+            %x_266:i32 = let %64
             store %param, %x_266
-            %x_267:i32 = load %j_1
+            %66:i32 = load %j_1
+            %x_267:i32 = let %66
             store %param_1, %x_267
-            %49:void = call %swap_i1_i1_, %param, %param_1
+            %68:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_269:i32 = load %j_1
-        %51:i32 = add %x_269, 1i
-        store %j_1, %51
-        next_iteration %b4
+      $B5: {  # continuing
+        %69:i32 = load %j_1
+        %x_269:i32 = let %69
+        %71:i32 = add %x_269, 1i
+        store %j_1, %71
+        next_iteration  # -> $B4
       }
     }
-    %x_271:i32 = load %i_1
-    %53:i32 = add %x_271, 1i
-    store %i_1, %53
-    %x_273:i32 = load %i_1
+    %72:i32 = load %i_1
+    %x_271:i32 = let %72
+    %74:i32 = add %x_271, 1i
+    store %i_1, %74
+    %75:i32 = load %i_1
+    %x_273:i32 = let %75
     store %param_2, %x_273
-    %x_274:i32 = load %h
+    %77:i32 = load %h
+    %x_274:i32 = let %77
     store %param_3, %x_274
-    %56:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_276:i32 = load %i_1
+    %79:void = call %swap_i1_i1_, %param_2, %param_3
+    %80:i32 = load %i_1
+    %x_276:i32 = let %80
     ret %x_276
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -126,317 +150,410 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_280:i32 = load %top
-    %x_281:i32 = add %x_280, 1i
+    %94:i32 = load %top
+    %x_280:i32 = let %94
+    %96:i32 = add %x_280, 1i
+    %x_281:i32 = let %96
     store %top, %x_281
-    %x_282:i32 = load %l_1
-    %73:ptr<function, i32, read_write> = access %stack, %x_281
-    store %73, %x_282
-    %x_285:f32 = load_vector_element %gl_FragCoord, 1u
-    %75:bool = gte %x_285, 0.0f
-    if %75 [t: %b10, f: %b11] {  # if_3
-      %b10 = block {  # true
-        %x_290:i32 = load %h_1
-        if false [t: %b12, f: %b13] {  # if_4
-          %b12 = block {  # true
+    %98:i32 = load %l_1
+    %x_282:i32 = let %98
+    %100:ptr<function, i32, read_write> = access %stack, %x_281
+    store %100, %x_282
+    %101:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_285:f32 = let %101
+    %103:bool = gte %x_285, 0.0f
+    if %103 [t: $B10, f: $B11] {  # if_3
+      $B10: {  # true
+        %104:i32 = load %h_1
+        %x_290:i32 = let %104
+        if false [t: $B12, f: $B13] {  # if_4
+          $B12: {  # true
             store %x_279, 1i
             exit_if  # if_4
           }
-          %b13 = block {  # false
-            %x_294:i32 = load %h_1
-            %78:i32 = shiftl %x_294, 0u
-            store %x_279, %78
+          $B13: {  # false
+            %106:i32 = load %h_1
+            %x_294:i32 = let %106
+            %108:u32 = and 0u, 31u
+            %109:i32 = shl %x_294, %108
+            store %x_279, %109
             exit_if  # if_4
           }
         }
-        %x_296:i32 = load %x_279
-        %80:i32 = or %x_290, %x_296
-        store %x_278, %80
+        %110:i32 = load %x_279
+        %x_296:i32 = let %110
+        %112:i32 = or %x_290, %x_296
+        store %x_278, %112
         exit_if  # if_3
       }
-      %b11 = block {  # false
+      $B11: {  # false
         store %x_278, 1i
         exit_if  # if_3
       }
     }
-    %x_298:i32 = load %x_278
+    %113:i32 = load %x_278
+    %x_298:i32 = let %113
     store %int_a, %x_298
-    %x_299:i32 = load %h_1
-    %x_300:i32 = load %h_1
-    %x_301:i32 = load %int_a
-    %85:i32 = clamp %x_299, %x_300, %x_301
-    store %clamp_a, %85
-    %x_303:i32 = load %top
-    %x_304:i32 = add %x_303, 1i
+    %115:i32 = load %h_1
+    %x_299:i32 = let %115
+    %117:i32 = load %h_1
+    %x_300:i32 = let %117
+    %119:i32 = load %int_a
+    %x_301:i32 = let %119
+    %121:i32 = max %x_299, %x_300
+    %122:i32 = min %121, %x_301
+    store %clamp_a, %122
+    %123:i32 = load %top
+    %x_303:i32 = let %123
+    %125:i32 = add %x_303, 1i
+    %x_304:i32 = let %125
     store %top, %x_304
-    %x_305:i32 = load %clamp_a
-    %89:ptr<function, i32, read_write> = access %stack, %x_304
-    %90:i32 = div %x_305, 1i
-    store %89, %90
-    loop [b: %b14, c: %b15] {  # loop_2
-      %b14 = block {  # body
-        %x_312:i32 = load %top
-        %92:bool = gte %x_312, 0i
-        if %92 [t: %b16, f: %b17] {  # if_5
-          %b16 = block {  # true
+    %127:i32 = load %clamp_a
+    %x_305:i32 = let %127
+    %129:ptr<function, i32, read_write> = access %stack, %x_304
+    %130:i32 = call %tint_div_i32, %x_305, 1i
+    store %129, %130
+    loop [b: $B14, c: $B15] {  # loop_2
+      $B14: {  # body
+        %132:i32 = load %top
+        %x_312:i32 = let %132
+        %134:bool = gte %x_312, 0i
+        if %134 [t: $B16, f: $B17] {  # if_5
+          $B16: {  # true
             exit_if  # if_5
           }
-          %b17 = block {  # false
+          $B17: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_315:i32 = load %top
-        %94:i32 = sub %x_315, 1i
-        store %top, %94
-        %95:ptr<function, i32, read_write> = access %stack, %x_315
-        %x_318:i32 = load %95
+        %135:i32 = load %top
+        %x_315:i32 = let %135
+        %137:i32 = sub %x_315, 1i
+        store %top, %137
+        %138:ptr<function, i32, read_write> = access %stack, %x_315
+        %139:i32 = load %138
+        %x_318:i32 = let %139
         store %h_1, %x_318
-        %x_319:i32 = load %top
-        %98:i32 = sub %x_319, 1i
-        store %top, %98
-        %99:ptr<function, i32, read_write> = access %stack, %x_319
-        %x_322:i32 = load %99
+        %141:i32 = load %top
+        %x_319:i32 = let %141
+        %143:i32 = sub %x_319, 1i
+        store %top, %143
+        %144:ptr<function, i32, read_write> = access %stack, %x_319
+        %145:i32 = load %144
+        %x_322:i32 = let %145
         store %l_1, %x_322
-        %x_323:i32 = load %l_1
+        %147:i32 = load %l_1
+        %x_323:i32 = let %147
         store %param_4, %x_323
-        %x_324:i32 = load %h_1
+        %149:i32 = load %h_1
+        %x_324:i32 = let %149
         store %param_5, %x_324
-        %x_325:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %151:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_325:i32 = let %151
         store %p, %x_325
-        %x_326:i32 = load %p
-        %x_328:i32 = load %l_1
-        %106:i32 = sub %x_326, 1i
-        %107:bool = gt %106, %x_328
-        if %107 [t: %b18] {  # if_6
-          %b18 = block {  # true
-            %x_332:i32 = load %top
-            %x_333:i32 = add %x_332, 1i
+        %153:i32 = load %p
+        %x_326:i32 = let %153
+        %155:i32 = load %l_1
+        %x_328:i32 = let %155
+        %157:i32 = sub %x_326, 1i
+        %158:bool = gt %157, %x_328
+        if %158 [t: $B18] {  # if_6
+          $B18: {  # true
+            %159:i32 = load %top
+            %x_332:i32 = let %159
+            %161:i32 = add %x_332, 1i
+            %x_333:i32 = let %161
             store %top, %x_333
-            %x_334:i32 = load %l_1
-            %111:ptr<function, i32, read_write> = access %stack, %x_333
-            store %111, %x_334
-            %x_336:i32 = load %top
-            %x_337:i32 = add %x_336, 1i
+            %163:i32 = load %l_1
+            %x_334:i32 = let %163
+            %165:ptr<function, i32, read_write> = access %stack, %x_333
+            store %165, %x_334
+            %166:i32 = load %top
+            %x_336:i32 = let %166
+            %168:i32 = add %x_336, 1i
+            %x_337:i32 = let %168
             store %top, %x_337
-            %x_338:i32 = load %p
-            %115:ptr<function, i32, read_write> = access %stack, %x_337
-            %116:i32 = sub %x_338, 1i
-            store %115, %116
+            %170:i32 = load %p
+            %x_338:i32 = let %170
+            %172:ptr<function, i32, read_write> = access %stack, %x_337
+            %173:i32 = sub %x_338, 1i
+            store %172, %173
             exit_if  # if_6
           }
         }
-        %x_341:i32 = load %p
-        %x_343:i32 = load %h_1
-        %119:i32 = add %x_341, 1i
-        %120:bool = lt %119, %x_343
-        if %120 [t: %b19] {  # if_7
-          %b19 = block {  # true
-            %x_347:i32 = load %top
-            %x_348:i32 = add %x_347, 1i
+        %174:i32 = load %p
+        %x_341:i32 = let %174
+        %176:i32 = load %h_1
+        %x_343:i32 = let %176
+        %178:i32 = add %x_341, 1i
+        %179:bool = lt %178, %x_343
+        if %179 [t: $B19] {  # if_7
+          $B19: {  # true
+            %180:i32 = load %top
+            %x_347:i32 = let %180
+            %182:i32 = add %x_347, 1i
+            %x_348:i32 = let %182
             store %top, %x_348
-            %x_349:i32 = load %p
-            %124:ptr<function, i32, read_write> = access %stack, %x_348
-            %125:i32 = add %x_349, 1i
-            store %124, %125
-            %x_352:i32 = load %top
-            %x_353:i32 = add %x_352, 1i
+            %184:i32 = load %p
+            %x_349:i32 = let %184
+            %186:ptr<function, i32, read_write> = access %stack, %x_348
+            %187:i32 = add %x_349, 1i
+            store %186, %187
+            %188:i32 = load %top
+            %x_352:i32 = let %188
+            %190:i32 = add %x_352, 1i
+            %x_353:i32 = let %190
             store %top, %x_353
-            %x_354:i32 = load %h_1
-            %129:ptr<function, i32, read_write> = access %stack, %x_353
-            store %129, %x_354
+            %192:i32 = load %h_1
+            %x_354:i32 = let %192
+            %194:ptr<function, i32, read_write> = access %stack, %x_353
+            store %194, %x_354
             exit_if  # if_7
           }
         }
-        continue %b15
+        continue  # -> $B15
       }
-      %b15 = block {  # continuing
-        next_iteration %b14
+      $B15: {  # continuing
+        next_iteration  # -> $B14
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b20 {
-  %b20 = block {
+%main_1 = func():void {
+  $B20: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
     store %i_2, 0i
-    loop [b: %b21, c: %b22] {  # loop_3
-      %b21 = block {  # body
-        %x_90:i32 = load %i_2
-        %135:bool = lt %x_90, 10i
-        if %135 [t: %b23, f: %b24] {  # if_8
-          %b23 = block {  # true
+    loop [b: $B21, c: $B22] {  # loop_3
+      $B21: {  # body
+        %199:i32 = load %i_2
+        %x_90:i32 = let %199
+        %201:bool = lt %x_90, 10i
+        if %201 [t: $B23, f: $B24] {  # if_8
+          $B23: {  # true
             exit_if  # if_8
           }
-          %b24 = block {  # false
+          $B24: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_93:i32 = load %i_2
-        %x_94:i32 = load %i_2
-        %138:ptr<private, i32, read_write> = access %obj, 0u, %x_93
-        %139:i32 = sub 10i, %x_94
-        store %138, %139
-        %x_97:i32 = load %i_2
-        %x_98:i32 = load %i_2
-        %142:ptr<private, i32, read_write> = access %obj, 0u, %x_98
-        %x_100:i32 = load %142
-        %x_101:i32 = load %i_2
-        %145:ptr<private, i32, read_write> = access %obj, 0u, %x_101
-        %x_103:i32 = load %145
-        %147:ptr<private, i32, read_write> = access %obj, 0u, %x_97
-        %148:i32 = mul %x_100, %x_103
-        store %147, %148
-        continue %b22
+        %202:i32 = load %i_2
+        %x_93:i32 = let %202
+        %204:i32 = load %i_2
+        %x_94:i32 = let %204
+        %206:ptr<private, i32, read_write> = access %obj, 0u, %x_93
+        %207:i32 = sub 10i, %x_94
+        store %206, %207
+        %208:i32 = load %i_2
+        %x_97:i32 = let %208
+        %210:i32 = load %i_2
+        %x_98:i32 = let %210
+        %212:ptr<private, i32, read_write> = access %obj, 0u, %x_98
+        %213:i32 = load %212
+        %x_100:i32 = let %213
+        %215:i32 = load %i_2
+        %x_101:i32 = let %215
+        %217:ptr<private, i32, read_write> = access %obj, 0u, %x_101
+        %218:i32 = load %217
+        %x_103:i32 = let %218
+        %220:ptr<private, i32, read_write> = access %obj, 0u, %x_97
+        %221:i32 = mul %x_100, %x_103
+        store %220, %221
+        continue  # -> $B22
       }
-      %b22 = block {  # continuing
-        %x_106:i32 = load %i_2
-        %150:i32 = add %x_106, 1i
-        store %i_2, %150
-        next_iteration %b21
+      $B22: {  # continuing
+        %222:i32 = load %i_2
+        %x_106:i32 = let %222
+        %224:i32 = add %x_106, 1i
+        store %i_2, %224
+        next_iteration  # -> $B21
       }
     }
-    %151:void = call %quicksort_
-    %x_109:vec4<f32> = load %gl_FragCoord
-    %153:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %x_112:vec2<f32> = load %153
-    %155:f32 = access %x_109, 0u
-    %156:f32 = access %x_109, 1u
-    %157:vec2<f32> = construct %155, %156
-    %158:vec2<f32> = div %157, %x_112
-    store %uv, %158
+    %225:void = call %quicksort_
+    %226:vec4<f32> = load %gl_FragCoord
+    %x_109:vec4<f32> = let %226
+    %228:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %229:vec2<f32> = load %228
+    %x_112:vec2<f32> = let %229
+    %231:f32 = access %x_109, 0u
+    %232:f32 = access %x_109, 1u
+    %233:vec2<f32> = construct %231, %232
+    %234:vec2<f32> = div %233, %x_112
+    store %uv, %234
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %159:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_115:i32 = load %159
-    %x_118:f32 = load_vector_element %color, 0u
-    %162:f32 = convert %x_115
-    %163:f32 = add %x_118, %162
-    store_vector_element %color, 0u, %163
-    %x_122:f32 = load_vector_element %uv, 0u
-    %165:bool = gt %x_122, 0.25f
-    if %165 [t: %b25] {  # if_9
-      %b25 = block {  # true
-        %166:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_127:i32 = load %166
-        %x_130:f32 = load_vector_element %color, 0u
-        %169:f32 = convert %x_127
-        %170:f32 = add %x_130, %169
-        store_vector_element %color, 0u, %170
+    %235:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %236:i32 = load %235
+    %x_115:i32 = let %236
+    %238:f32 = load_vector_element %color, 0u
+    %x_118:f32 = let %238
+    %240:f32 = convert %x_115
+    %241:f32 = add %x_118, %240
+    store_vector_element %color, 0u, %241
+    %242:f32 = load_vector_element %uv, 0u
+    %x_122:f32 = let %242
+    %244:bool = gt %x_122, 0.25f
+    if %244 [t: $B25] {  # if_9
+      $B25: {  # true
+        %245:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %246:i32 = load %245
+        %x_127:i32 = let %246
+        %248:f32 = load_vector_element %color, 0u
+        %x_130:f32 = let %248
+        %250:f32 = convert %x_127
+        %251:f32 = add %x_130, %250
+        store_vector_element %color, 0u, %251
         exit_if  # if_9
       }
     }
-    %x_134:f32 = load_vector_element %uv, 0u
-    %172:bool = gt %x_134, 0.5f
-    if %172 [t: %b26] {  # if_10
-      %b26 = block {  # true
-        %173:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_139:i32 = load %173
-        %x_142:f32 = load_vector_element %color, 1u
-        %176:f32 = convert %x_139
-        %177:f32 = add %x_142, %176
-        store_vector_element %color, 1u, %177
+    %252:f32 = load_vector_element %uv, 0u
+    %x_134:f32 = let %252
+    %254:bool = gt %x_134, 0.5f
+    if %254 [t: $B26] {  # if_10
+      $B26: {  # true
+        %255:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %256:i32 = load %255
+        %x_139:i32 = let %256
+        %258:f32 = load_vector_element %color, 1u
+        %x_142:f32 = let %258
+        %260:f32 = convert %x_139
+        %261:f32 = add %x_142, %260
+        store_vector_element %color, 1u, %261
         exit_if  # if_10
       }
     }
-    %x_146:f32 = load_vector_element %uv, 0u
-    %179:bool = gt %x_146, 0.75f
-    if %179 [t: %b27] {  # if_11
-      %b27 = block {  # true
-        %180:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_151:i32 = load %180
-        %x_154:f32 = load_vector_element %color, 2u
-        %183:f32 = convert %x_151
-        %184:f32 = add %x_154, %183
-        store_vector_element %color, 2u, %184
+    %262:f32 = load_vector_element %uv, 0u
+    %x_146:f32 = let %262
+    %264:bool = gt %x_146, 0.75f
+    if %264 [t: $B27] {  # if_11
+      $B27: {  # true
+        %265:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %266:i32 = load %265
+        %x_151:i32 = let %266
+        %268:f32 = load_vector_element %color, 2u
+        %x_154:f32 = let %268
+        %270:f32 = convert %x_151
+        %271:f32 = add %x_154, %270
+        store_vector_element %color, 2u, %271
         exit_if  # if_11
       }
     }
-    %185:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_158:i32 = load %185
-    %x_161:f32 = load_vector_element %color, 1u
-    %188:f32 = convert %x_158
-    %189:f32 = add %x_161, %188
-    store_vector_element %color, 1u, %189
-    %x_165:f32 = load_vector_element %uv, 1u
-    %191:bool = gt %x_165, 0.25f
-    if %191 [t: %b28] {  # if_12
-      %b28 = block {  # true
-        %192:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_170:i32 = load %192
-        %x_173:f32 = load_vector_element %color, 0u
-        %195:f32 = convert %x_170
-        %196:f32 = add %x_173, %195
-        store_vector_element %color, 0u, %196
+    %272:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %273:i32 = load %272
+    %x_158:i32 = let %273
+    %275:f32 = load_vector_element %color, 1u
+    %x_161:f32 = let %275
+    %277:f32 = convert %x_158
+    %278:f32 = add %x_161, %277
+    store_vector_element %color, 1u, %278
+    %279:f32 = load_vector_element %uv, 1u
+    %x_165:f32 = let %279
+    %281:bool = gt %x_165, 0.25f
+    if %281 [t: $B28] {  # if_12
+      $B28: {  # true
+        %282:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %283:i32 = load %282
+        %x_170:i32 = let %283
+        %285:f32 = load_vector_element %color, 0u
+        %x_173:f32 = let %285
+        %287:f32 = convert %x_170
+        %288:f32 = add %x_173, %287
+        store_vector_element %color, 0u, %288
         exit_if  # if_12
       }
     }
-    %x_177:f32 = load_vector_element %uv, 1u
-    %198:bool = gt %x_177, 0.5f
-    if %198 [t: %b29] {  # if_13
-      %b29 = block {  # true
-        %199:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_182:i32 = load %199
-        %x_185:f32 = load_vector_element %color, 1u
-        %202:f32 = convert %x_182
-        %203:f32 = add %x_185, %202
-        store_vector_element %color, 1u, %203
+    %289:f32 = load_vector_element %uv, 1u
+    %x_177:f32 = let %289
+    %291:bool = gt %x_177, 0.5f
+    if %291 [t: $B29] {  # if_13
+      $B29: {  # true
+        %292:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %293:i32 = load %292
+        %x_182:i32 = let %293
+        %295:f32 = load_vector_element %color, 1u
+        %x_185:f32 = let %295
+        %297:f32 = convert %x_182
+        %298:f32 = add %x_185, %297
+        store_vector_element %color, 1u, %298
         exit_if  # if_13
       }
     }
-    %x_189:f32 = load_vector_element %uv, 1u
-    %205:bool = gt %x_189, 0.75f
-    if %205 [t: %b30] {  # if_14
-      %b30 = block {  # true
-        %206:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_194:i32 = load %206
-        %x_197:f32 = load_vector_element %color, 2u
-        %209:f32 = convert %x_194
-        %210:f32 = add %x_197, %209
-        store_vector_element %color, 2u, %210
+    %299:f32 = load_vector_element %uv, 1u
+    %x_189:f32 = let %299
+    %301:bool = gt %x_189, 0.75f
+    if %301 [t: $B30] {  # if_14
+      $B30: {  # true
+        %302:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %303:i32 = load %302
+        %x_194:i32 = let %303
+        %305:f32 = load_vector_element %color, 2u
+        %x_197:f32 = let %305
+        %307:f32 = convert %x_194
+        %308:f32 = add %x_197, %307
+        store_vector_element %color, 2u, %308
         exit_if  # if_14
       }
     }
-    %211:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_201:i32 = load %211
-    %x_204:f32 = load_vector_element %color, 2u
-    %214:f32 = convert %x_201
-    %215:f32 = add %x_204, %214
-    store_vector_element %color, 2u, %215
-    %x_208:f32 = load_vector_element %uv, 0u
-    %x_210:f32 = load_vector_element %uv, 1u
-    %218:f32 = sub %x_208, %x_210
-    %219:f32 = abs %218
-    %220:bool = lt %219, 0.25f
-    if %220 [t: %b31] {  # if_15
-      %b31 = block {  # true
-        %221:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_217:i32 = load %221
-        %x_220:f32 = load_vector_element %color, 0u
-        %224:f32 = convert %x_217
-        %225:f32 = add %x_220, %224
-        store_vector_element %color, 0u, %225
+    %309:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %310:i32 = load %309
+    %x_201:i32 = let %310
+    %312:f32 = load_vector_element %color, 2u
+    %x_204:f32 = let %312
+    %314:f32 = convert %x_201
+    %315:f32 = add %x_204, %314
+    store_vector_element %color, 2u, %315
+    %316:f32 = load_vector_element %uv, 0u
+    %x_208:f32 = let %316
+    %318:f32 = load_vector_element %uv, 1u
+    %x_210:f32 = let %318
+    %320:f32 = sub %x_208, %x_210
+    %321:f32 = abs %320
+    %322:bool = lt %321, 0.25f
+    if %322 [t: $B31] {  # if_15
+      $B31: {  # true
+        %323:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %324:i32 = load %323
+        %x_217:i32 = let %324
+        %326:f32 = load_vector_element %color, 0u
+        %x_220:f32 = let %326
+        %328:f32 = convert %x_217
+        %329:f32 = add %x_220, %328
+        store_vector_element %color, 0u, %329
         exit_if  # if_15
       }
     }
-    %x_223:vec3<f32> = load %color
-    %x_224:vec3<f32> = normalize %x_223
-    %228:f32 = access %x_224, 0u
-    %229:f32 = access %x_224, 1u
-    %230:f32 = access %x_224, 2u
-    %231:vec4<f32> = construct %228, %229, %230, 1.0f
-    store %x_GLF_color, %231
+    %330:vec3<f32> = load %color
+    %x_223:vec3<f32> = let %330
+    %332:vec3<f32> = normalize %x_223
+    %x_224:vec3<f32> = let %332
+    %334:f32 = access %x_224, 0u
+    %335:f32 = access %x_224, 1u
+    %336:f32 = access %x_224, 2u
+    %337:vec4<f32> = construct %334, %335, %336, 1.0f
+    store %x_GLF_color, %337
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b32 {
-  %b32 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B32: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %234:void = call %main_1
-    %235:vec4<f32> = load %x_GLF_color
-    %236:main_out = construct %235
-    ret %236
+    %340:void = call %main_1
+    %341:vec4<f32> = load %x_GLF_color
+    %342:main_out = construct %341
+    ret %342
+  }
+}
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B33: {
+    %345:bool = eq %rhs, 0i
+    %346:bool = eq %lhs, -2147483648i
+    %347:bool = eq %rhs, -1i
+    %348:bool = and %346, %347
+    %349:bool = or %345, %348
+    %350:i32 = select %rhs, 1i, %349
+    %351:i32 = div %lhs, %350
+    ret %351
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.msl
index a29c353..734c88a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -13,7 +13,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -22,28 +22,30 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %11:i32 = load %i
     %12:ptr<private, i32, read_write> = access %obj, 0u, %11
     %13:i32 = load %12
     store %temp, %13
-    %x_242:i32 = load %i
-    %15:ptr<private, i32, read_write> = access %obj, 0u, %x_242
-    %16:i32 = load %j
-    %17:ptr<private, i32, read_write> = access %obj, 0u, %16
-    %18:i32 = load %17
-    store %15, %18
-    %x_247:i32 = load %j
-    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_247
-    %21:i32 = load %temp
-    store %20, %21
+    %14:i32 = load %i
+    %x_242:i32 = let %14
+    %16:ptr<private, i32, read_write> = access %obj, 0u, %x_242
+    %17:i32 = load %j
+    %18:ptr<private, i32, read_write> = access %obj, 0u, %17
+    %19:i32 = load %18
+    store %16, %19
+    %20:i32 = load %j
+    %x_247:i32 = let %20
+    %22:ptr<private, i32, read_write> = access %obj, 0u, %x_247
+    %23:i32 = load %temp
+    store %22, %23
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -51,69 +53,70 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %32:i32 = load %h
-    %33:ptr<private, i32, read_write> = access %obj, 0u, %32
-    %34:i32 = load %33
-    store %pivot, %34
-    %35:i32 = load %l
-    %36:i32 = sub %35, 1i
-    store %i_1, %36
+    %34:i32 = load %h
+    %35:ptr<private, i32, read_write> = access %obj, 0u, %34
+    %36:i32 = load %35
+    store %pivot, %36
     %37:i32 = load %l
-    store %j_1, %37
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %38:i32 = load %j_1
-        %39:i32 = load %h
-        %40:i32 = sub %39, 1i
-        %41:bool = lte %38, %40
-        if %41 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %38:i32 = sub %37, 1i
+    store %i_1, %38
+    %39:i32 = load %l
+    store %j_1, %39
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %40:i32 = load %j_1
+        %41:i32 = load %h
+        %42:i32 = sub %41, 1i
+        %43:bool = lte %40, %42
+        if %43 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %42:i32 = load %j_1
-        %43:ptr<private, i32, read_write> = access %obj, 0u, %42
-        %44:i32 = load %43
-        %45:i32 = load %pivot
-        %46:bool = lte %44, %45
-        if %46 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %47:i32 = load %i_1
-            %48:i32 = add %47, 1i
-            store %i_1, %48
+        %44:i32 = load %j_1
+        %45:ptr<private, i32, read_write> = access %obj, 0u, %44
+        %46:i32 = load %45
+        %47:i32 = load %pivot
+        %48:bool = lte %46, %47
+        if %48 [t: $B8] {  # if_2
+          $B8: {  # true
             %49:i32 = load %i_1
-            store %param, %49
-            %50:i32 = load %j_1
-            store %param_1, %50
-            %51:void = call %swap_i1_i1_, %param, %param_1
+            %50:i32 = add %49, 1i
+            store %i_1, %50
+            %51:i32 = load %i_1
+            store %param, %51
+            %52:i32 = load %j_1
+            store %param_1, %52
+            %53:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %52:i32 = load %j_1
-        %53:i32 = add %52, 1i
-        store %j_1, %53
-        next_iteration %b4
+      $B5: {  # continuing
+        %54:i32 = load %j_1
+        %55:i32 = add %54, 1i
+        store %j_1, %55
+        next_iteration  # -> $B4
       }
     }
-    %54:i32 = load %i_1
-    %55:i32 = add %54, 1i
-    store %param_2, %55
-    %56:i32 = load %h
-    store %param_3, %56
-    %57:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_284:i32 = load %i_1
-    %59:i32 = add %x_284, 1i
-    ret %59
+    %56:i32 = load %i_1
+    %57:i32 = add %56, 1i
+    store %param_2, %57
+    %58:i32 = load %h
+    store %param_3, %58
+    %59:void = call %swap_i1_i1_, %param_2, %param_3
+    %60:i32 = load %i_1
+    %x_284:i32 = let %60
+    %62:i32 = add %x_284, 1i
+    ret %62
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -124,289 +127,311 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %68:i32 = load %top
-    %x_288:i32 = add %68, 1i
+    %71:i32 = load %top
+    %72:i32 = add %71, 1i
+    %x_288:i32 = let %72
     store %top, %x_288
-    %70:ptr<function, i32, read_write> = access %stack, %x_288
-    %71:i32 = load %l_1
-    store %70, %71
-    %72:i32 = load %top
-    %x_292:i32 = add %72, 1i
-    store %top, %x_292
-    %74:ptr<function, i32, read_write> = access %stack, %x_292
-    %75:i32 = load %h_1
+    %74:ptr<function, i32, read_write> = access %stack, %x_288
+    %75:i32 = load %l_1
     store %74, %75
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %76:i32 = load %top
-        %77:bool = gte %76, 0i
-        if %77 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %76:i32 = load %top
+    %77:i32 = add %76, 1i
+    %x_292:i32 = let %77
+    store %top, %x_292
+    %79:ptr<function, i32, read_write> = access %stack, %x_292
+    %80:i32 = load %h_1
+    store %79, %80
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %81:i32 = load %top
+        %82:bool = gte %81, 0i
+        if %82 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_302:i32 = load %top
-        %79:i32 = load %top
-        %80:i32 = sub %79, 1i
-        store %top, %80
-        %81:ptr<function, i32, read_write> = access %stack, %x_302
-        %82:i32 = load %81
-        store %h_1, %82
-        %x_306:i32 = load %top
-        %84:i32 = load %top
-        %85:i32 = sub %84, 1i
-        store %top, %85
-        %86:ptr<function, i32, read_write> = access %stack, %x_306
-        %87:i32 = load %86
-        store %l_1, %87
-        %88:i32 = load %l_1
-        store %param_4, %88
-        %89:i32 = load %h_1
-        store %param_5, %89
-        %x_312:i32 = call %performPartition_i1_i1_, %param_4, %param_5
-        store %p, %x_312
-        %91:i32 = load %p
+        %83:i32 = load %top
+        %x_302:i32 = let %83
+        %85:i32 = load %top
+        %86:i32 = sub %85, 1i
+        store %top, %86
+        %87:ptr<function, i32, read_write> = access %stack, %x_302
+        %88:i32 = load %87
+        store %h_1, %88
+        %89:i32 = load %top
+        %x_306:i32 = let %89
+        %91:i32 = load %top
         %92:i32 = sub %91, 1i
-        %93:i32 = load %l_1
-        %94:bool = gt %92, %93
-        if %94 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %95:i32 = load %top
-            %x_320:i32 = add %95, 1i
+        store %top, %92
+        %93:ptr<function, i32, read_write> = access %stack, %x_306
+        %94:i32 = load %93
+        store %l_1, %94
+        %95:i32 = load %l_1
+        store %param_4, %95
+        %96:i32 = load %h_1
+        store %param_5, %96
+        %97:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_312:i32 = let %97
+        store %p, %x_312
+        %99:i32 = load %p
+        %100:i32 = sub %99, 1i
+        %101:i32 = load %l_1
+        %102:bool = gt %100, %101
+        if %102 [t: $B14] {  # if_4
+          $B14: {  # true
+            %103:i32 = load %top
+            %104:i32 = add %103, 1i
+            %x_320:i32 = let %104
             store %top, %x_320
-            %97:ptr<function, i32, read_write> = access %stack, %x_320
-            %98:i32 = load %l_1
-            store %97, %98
-            %99:i32 = load %top
-            %x_324:i32 = add %99, 1i
+            %106:ptr<function, i32, read_write> = access %stack, %x_320
+            %107:i32 = load %l_1
+            store %106, %107
+            %108:i32 = load %top
+            %109:i32 = add %108, 1i
+            %x_324:i32 = let %109
             store %top, %x_324
-            %101:ptr<function, i32, read_write> = access %stack, %x_324
-            %102:i32 = load %p
-            %103:i32 = sub %102, 1i
-            store %101, %103
+            %111:ptr<function, i32, read_write> = access %stack, %x_324
+            %112:i32 = load %p
+            %113:i32 = sub %112, 1i
+            store %111, %113
             exit_if  # if_4
           }
         }
-        %104:i32 = load %p
-        %105:i32 = add %104, 1i
-        %106:i32 = load %h_1
-        %107:bool = lt %105, %106
-        if %107 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %108:i32 = load %top
-            %x_335:i32 = add %108, 1i
+        %114:i32 = load %p
+        %115:i32 = add %114, 1i
+        %116:i32 = load %h_1
+        %117:bool = lt %115, %116
+        if %117 [t: $B15] {  # if_5
+          $B15: {  # true
+            %118:i32 = load %top
+            %119:i32 = add %118, 1i
+            %x_335:i32 = let %119
             store %top, %x_335
-            %110:ptr<function, i32, read_write> = access %stack, %x_335
-            %111:i32 = load %p
-            %112:i32 = add %111, 1i
-            store %110, %112
-            %113:i32 = load %top
-            %x_340:i32 = add %113, 1i
+            %121:ptr<function, i32, read_write> = access %stack, %x_335
+            %122:i32 = load %p
+            %123:i32 = add %122, 1i
+            store %121, %123
+            %124:i32 = load %top
+            %125:i32 = add %124, 1i
+            %x_340:i32 = let %125
             store %top, %x_340
-            %115:ptr<function, i32, read_write> = access %stack, %x_340
-            %116:i32 = load %h_1
-            store %115, %116
+            %127:ptr<function, i32, read_write> = access %stack, %x_340
+            %128:i32 = load %h_1
+            store %127, %128
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %121:vec4<f32> = load %x_GLF_pos
-    %122:vec4<f32> = add %121, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %123:vec4<f32> = mul %122, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %123
+    %133:vec4<f32> = load %x_GLF_pos
+    %134:vec4<f32> = add %133, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %135:vec4<f32> = mul %134, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %135
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %124:i32 = load %i_2
-        %125:bool = lt %124, 10i
-        if %125 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %136:i32 = load %i_2
+        %137:bool = lt %136, 10i
+        if %137 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_100:i32 = load %i_2
-        %127:ptr<private, i32, read_write> = access %obj, 0u, %x_100
-        %128:i32 = load %i_2
-        %129:i32 = sub 10i, %128
-        store %127, %129
-        %x_104:i32 = load %i_2
-        %131:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-        %132:i32 = load %i_2
-        %133:ptr<private, i32, read_write> = access %obj, 0u, %132
-        %134:i32 = load %133
-        %135:i32 = load %i_2
-        %136:ptr<private, i32, read_write> = access %obj, 0u, %135
-        %137:i32 = load %136
-        %138:i32 = mul %134, %137
-        store %131, %138
-        continue %b18
+        %138:i32 = load %i_2
+        %x_100:i32 = let %138
+        %140:ptr<private, i32, read_write> = access %obj, 0u, %x_100
+        %141:i32 = load %i_2
+        %142:i32 = sub 10i, %141
+        store %140, %142
+        %143:i32 = load %i_2
+        %x_104:i32 = let %143
+        %145:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+        %146:i32 = load %i_2
+        %147:ptr<private, i32, read_write> = access %obj, 0u, %146
+        %148:i32 = load %147
+        %149:i32 = load %i_2
+        %150:ptr<private, i32, read_write> = access %obj, 0u, %149
+        %151:i32 = load %150
+        %152:i32 = mul %148, %151
+        store %145, %152
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %139:i32 = load %i_2
-        %140:i32 = add %139, 1i
-        store %i_2, %140
-        next_iteration %b17
+      $B18: {  # continuing
+        %153:i32 = load %i_2
+        %154:i32 = add %153, 1i
+        store %i_2, %154
+        next_iteration  # -> $B17
       }
     }
-    %141:void = call %quicksort_
-    %142:vec4<f32> = load %x_GLF_FragCoord
-    %143:vec2<f32> = swizzle %142, xy
-    %144:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %145:vec2<f32> = load %144
-    %146:vec2<f32> = div %143, %145
-    store %uv, %146
+    %155:void = call %quicksort_
+    %156:vec4<f32> = load %x_GLF_FragCoord
+    %157:vec2<f32> = swizzle %156, xy
+    %158:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %159:vec2<f32> = load %158
+    %160:vec2<f32> = div %157, %159
+    store %uv, %160
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %147:f32 = load_vector_element %color, 0u
-    %148:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %149:i32 = load %148
-    %150:f32 = convert %149
-    %151:f32 = add %147, %150
-    store_vector_element %color, 0u, %151
-    %152:f32 = load_vector_element %uv, 0u
-    %153:bool = gt %152, 0.25f
-    if %153 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %154:f32 = load_vector_element %color, 0u
-        %155:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %156:i32 = load %155
-        %157:f32 = convert %156
-        %158:f32 = add %154, %157
-        store_vector_element %color, 0u, %158
+    %161:f32 = load_vector_element %color, 0u
+    %162:f32 = let %161
+    %163:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %164:i32 = load %163
+    %165:f32 = convert %164
+    %166:f32 = add %162, %165
+    store_vector_element %color, 0u, %166
+    %167:f32 = load_vector_element %uv, 0u
+    %168:bool = gt %167, 0.25f
+    if %168 [t: $B21] {  # if_7
+      $B21: {  # true
+        %169:f32 = load_vector_element %color, 0u
+        %170:f32 = let %169
+        %171:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %172:i32 = load %171
+        %173:f32 = convert %172
+        %174:f32 = add %170, %173
+        store_vector_element %color, 0u, %174
         exit_if  # if_7
       }
     }
-    %159:f32 = load_vector_element %uv, 0u
-    %160:bool = gt %159, 0.5f
-    if %160 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %161:f32 = load_vector_element %color, 1u
-        %162:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %163:i32 = load %162
-        %164:f32 = convert %163
-        %165:f32 = add %161, %164
-        store_vector_element %color, 1u, %165
+    %175:f32 = load_vector_element %uv, 0u
+    %176:bool = gt %175, 0.5f
+    if %176 [t: $B22] {  # if_8
+      $B22: {  # true
+        %177:f32 = load_vector_element %color, 1u
+        %178:f32 = let %177
+        %179:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %180:i32 = load %179
+        %181:f32 = convert %180
+        %182:f32 = add %178, %181
+        store_vector_element %color, 1u, %182
         exit_if  # if_8
       }
     }
-    %166:f32 = load_vector_element %uv, 0u
-    %167:bool = gt %166, 0.75f
-    if %167 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %168:f32 = load_vector_element %color, 2u
-        %169:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %170:i32 = load %169
-        %171:f32 = convert %170
-        %172:f32 = add %168, %171
-        store_vector_element %color, 2u, %172
+    %183:f32 = load_vector_element %uv, 0u
+    %184:bool = gt %183, 0.75f
+    if %184 [t: $B23] {  # if_9
+      $B23: {  # true
+        %185:f32 = load_vector_element %color, 2u
+        %186:f32 = let %185
+        %187:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %188:i32 = load %187
+        %189:f32 = convert %188
+        %190:f32 = add %186, %189
+        store_vector_element %color, 2u, %190
         exit_if  # if_9
       }
     }
-    %173:f32 = load_vector_element %color, 1u
-    %174:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %175:i32 = load %174
-    %176:f32 = convert %175
-    %177:f32 = add %173, %176
-    store_vector_element %color, 1u, %177
-    %178:f32 = load_vector_element %uv, 1u
-    %179:bool = gt %178, 0.25f
-    if %179 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %180:f32 = load_vector_element %color, 0u
-        %181:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %182:i32 = load %181
-        %183:f32 = convert %182
-        %184:f32 = add %180, %183
-        store_vector_element %color, 0u, %184
+    %191:f32 = load_vector_element %color, 1u
+    %192:f32 = let %191
+    %193:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %194:i32 = load %193
+    %195:f32 = convert %194
+    %196:f32 = add %192, %195
+    store_vector_element %color, 1u, %196
+    %197:f32 = load_vector_element %uv, 1u
+    %198:bool = gt %197, 0.25f
+    if %198 [t: $B24] {  # if_10
+      $B24: {  # true
+        %199:f32 = load_vector_element %color, 0u
+        %200:f32 = let %199
+        %201:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %202:i32 = load %201
+        %203:f32 = convert %202
+        %204:f32 = add %200, %203
+        store_vector_element %color, 0u, %204
         exit_if  # if_10
       }
     }
-    %185:f32 = load_vector_element %uv, 1u
-    %186:bool = gt %185, 0.5f
-    if %186 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %187:f32 = load_vector_element %color, 1u
-        %188:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %189:i32 = load %188
-        %190:f32 = convert %189
-        %191:f32 = add %187, %190
-        store_vector_element %color, 1u, %191
+    %205:f32 = load_vector_element %uv, 1u
+    %206:bool = gt %205, 0.5f
+    if %206 [t: $B25] {  # if_11
+      $B25: {  # true
+        %207:f32 = load_vector_element %color, 1u
+        %208:f32 = let %207
+        %209:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %210:i32 = load %209
+        %211:f32 = convert %210
+        %212:f32 = add %208, %211
+        store_vector_element %color, 1u, %212
         exit_if  # if_11
       }
     }
-    %192:f32 = load_vector_element %uv, 1u
-    %193:bool = gt %192, 0.75f
-    if %193 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %194:f32 = load_vector_element %color, 2u
-        %195:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %196:i32 = load %195
-        %197:f32 = convert %196
-        %198:f32 = add %194, %197
-        store_vector_element %color, 2u, %198
+    %213:f32 = load_vector_element %uv, 1u
+    %214:bool = gt %213, 0.75f
+    if %214 [t: $B26] {  # if_12
+      $B26: {  # true
+        %215:f32 = load_vector_element %color, 2u
+        %216:f32 = let %215
+        %217:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %218:i32 = load %217
+        %219:f32 = convert %218
+        %220:f32 = add %216, %219
+        store_vector_element %color, 2u, %220
         exit_if  # if_12
       }
     }
-    %199:f32 = load_vector_element %color, 2u
-    %200:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %201:i32 = load %200
-    %202:f32 = convert %201
-    %203:f32 = add %199, %202
-    store_vector_element %color, 2u, %203
-    %204:f32 = load_vector_element %uv, 0u
-    %205:f32 = load_vector_element %uv, 1u
-    %206:f32 = sub %204, %205
-    %207:f32 = abs %206
-    %208:bool = lt %207, 0.25f
-    if %208 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %209:f32 = load_vector_element %color, 0u
-        %210:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %211:i32 = load %210
-        %212:f32 = convert %211
-        %213:f32 = add %209, %212
-        store_vector_element %color, 0u, %213
+    %221:f32 = load_vector_element %color, 2u
+    %222:f32 = let %221
+    %223:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %224:i32 = load %223
+    %225:f32 = convert %224
+    %226:f32 = add %222, %225
+    store_vector_element %color, 2u, %226
+    %227:f32 = load_vector_element %uv, 0u
+    %228:f32 = load_vector_element %uv, 1u
+    %229:f32 = sub %227, %228
+    %230:f32 = abs %229
+    %231:bool = lt %230, 0.25f
+    if %231 [t: $B27] {  # if_13
+      $B27: {  # true
+        %232:f32 = load_vector_element %color, 0u
+        %233:f32 = let %232
+        %234:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %235:i32 = load %234
+        %236:f32 = convert %235
+        %237:f32 = add %233, %236
+        store_vector_element %color, 0u, %237
         exit_if  # if_13
       }
     }
-    %214:vec3<f32> = load %color
-    %x_231:vec3<f32> = normalize %214
-    %216:f32 = access %x_231, 0u
-    %217:f32 = access %x_231, 1u
-    %218:f32 = access %x_231, 2u
-    %219:vec4<f32> = construct %216, %217, %218, 1.0f
-    store %frag_color, %219
-    %220:vec4<f32> = load %x_GLF_pos
-    store %gl_Position, %220
+    %238:vec3<f32> = load %color
+    %239:vec3<f32> = normalize %238
+    %x_231:vec3<f32> = let %239
+    %241:f32 = access %x_231, 0u
+    %242:f32 = access %x_231, 1u
+    %243:f32 = access %x_231, 2u
+    %244:vec4<f32> = construct %241, %242, %243, 1.0f
+    store %frag_color, %244
+    %245:vec4<f32> = load %x_GLF_pos
+    store %gl_Position, %245
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B28: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %223:void = call %main_1
-    %224:vec4<f32> = load %frag_color
-    %225:vec4<f32> = load %gl_Position
-    %226:main_out = construct %224, %225
-    ret %226
+    %248:void = call %main_1
+    %249:vec4<f32> = load %frag_color
+    %250:vec4<f32> = load %gl_Position
+    %251:main_out = construct %249, %250
+    ret %251
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.msl
index 56c0a11..8111d47 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -13,7 +13,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -22,28 +22,35 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_239:i32 = load %i
-    %12:ptr<private, i32, read_write> = access %obj, 0u, %x_239
-    %x_241:i32 = load %12
+    %11:i32 = load %i
+    %x_239:i32 = let %11
+    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_239
+    %14:i32 = load %13
+    %x_241:i32 = let %14
     store %temp, %x_241
-    %x_242:i32 = load %i
-    %x_243:i32 = load %j
-    %16:ptr<private, i32, read_write> = access %obj, 0u, %x_243
-    %x_245:i32 = load %16
-    %18:ptr<private, i32, read_write> = access %obj, 0u, %x_242
-    store %18, %x_245
-    %x_247:i32 = load %j
-    %x_248:i32 = load %temp
-    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_247
-    store %21, %x_248
+    %16:i32 = load %i
+    %x_242:i32 = let %16
+    %18:i32 = load %j
+    %x_243:i32 = let %18
+    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_243
+    %21:i32 = load %20
+    %x_245:i32 = let %21
+    %23:ptr<private, i32, read_write> = access %obj, 0u, %x_242
+    store %23, %x_245
+    %24:i32 = load %j
+    %x_247:i32 = let %24
+    %26:i32 = load %temp
+    %x_248:i32 = let %26
+    %28:ptr<private, i32, read_write> = access %obj, 0u, %x_247
+    store %28, %x_248
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -51,69 +58,85 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_251:i32 = load %h
-    %33:ptr<private, i32, read_write> = access %obj, 0u, %x_251
-    %x_253:i32 = load %33
+    %39:i32 = load %h
+    %x_251:i32 = let %39
+    %41:ptr<private, i32, read_write> = access %obj, 0u, %x_251
+    %42:i32 = load %41
+    %x_253:i32 = let %42
     store %pivot, %x_253
-    %x_254:i32 = load %l
-    %36:i32 = sub %x_254, 1i
-    store %i_1, %36
-    %x_256:i32 = load %l
+    %44:i32 = load %l
+    %x_254:i32 = let %44
+    %46:i32 = sub %x_254, 1i
+    store %i_1, %46
+    %47:i32 = load %l
+    %x_256:i32 = let %47
     store %j_1, %x_256
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_261:i32 = load %j_1
-        %x_262:i32 = load %h
-        %40:i32 = sub %x_262, 1i
-        %41:bool = lte %x_261, %40
-        if %41 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %49:i32 = load %j_1
+        %x_261:i32 = let %49
+        %51:i32 = load %h
+        %x_262:i32 = let %51
+        %53:i32 = sub %x_262, 1i
+        %54:bool = lte %x_261, %53
+        if %54 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_266:i32 = load %j_1
-        %43:ptr<private, i32, read_write> = access %obj, 0u, %x_266
-        %x_268:i32 = load %43
-        %x_269:i32 = load %pivot
-        %46:bool = lte %x_268, %x_269
-        if %46 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_273:i32 = load %i_1
-            %48:i32 = add %x_273, 1i
-            store %i_1, %48
-            %x_275:i32 = load %i_1
+        %55:i32 = load %j_1
+        %x_266:i32 = let %55
+        %57:ptr<private, i32, read_write> = access %obj, 0u, %x_266
+        %58:i32 = load %57
+        %x_268:i32 = let %58
+        %60:i32 = load %pivot
+        %x_269:i32 = let %60
+        %62:bool = lte %x_268, %x_269
+        if %62 [t: $B8] {  # if_2
+          $B8: {  # true
+            %63:i32 = load %i_1
+            %x_273:i32 = let %63
+            %65:i32 = add %x_273, 1i
+            store %i_1, %65
+            %66:i32 = load %i_1
+            %x_275:i32 = let %66
             store %param, %x_275
-            %x_276:i32 = load %j_1
+            %68:i32 = load %j_1
+            %x_276:i32 = let %68
             store %param_1, %x_276
-            %51:void = call %swap_i1_i1_, %param, %param_1
+            %70:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_278:i32 = load %j_1
-        %53:i32 = add %x_278, 1i
-        store %j_1, %53
-        next_iteration %b4
+      $B5: {  # continuing
+        %71:i32 = load %j_1
+        %x_278:i32 = let %71
+        %73:i32 = add %x_278, 1i
+        store %j_1, %73
+        next_iteration  # -> $B4
       }
     }
-    %x_280:i32 = load %i_1
-    %55:i32 = add %x_280, 1i
-    store %param_2, %55
-    %x_282:i32 = load %h
+    %74:i32 = load %i_1
+    %x_280:i32 = let %74
+    %76:i32 = add %x_280, 1i
+    store %param_2, %76
+    %77:i32 = load %h
+    %x_282:i32 = let %77
     store %param_3, %x_282
-    %57:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_284:i32 = load %i_1
-    %59:i32 = add %x_284, 1i
-    ret %59
+    %79:void = call %swap_i1_i1_, %param_2, %param_3
+    %80:i32 = load %i_1
+    %x_284:i32 = let %80
+    %82:i32 = add %x_284, 1i
+    ret %82
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -124,289 +147,362 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_287:i32 = load %top
-    %x_288:i32 = add %x_287, 1i
+    %91:i32 = load %top
+    %x_287:i32 = let %91
+    %93:i32 = add %x_287, 1i
+    %x_288:i32 = let %93
     store %top, %x_288
-    %x_289:i32 = load %l_1
-    %71:ptr<function, i32, read_write> = access %stack, %x_288
-    store %71, %x_289
-    %x_291:i32 = load %top
-    %x_292:i32 = add %x_291, 1i
+    %95:i32 = load %l_1
+    %x_289:i32 = let %95
+    %97:ptr<function, i32, read_write> = access %stack, %x_288
+    store %97, %x_289
+    %98:i32 = load %top
+    %x_291:i32 = let %98
+    %100:i32 = add %x_291, 1i
+    %x_292:i32 = let %100
     store %top, %x_292
-    %x_293:i32 = load %h_1
-    %75:ptr<function, i32, read_write> = access %stack, %x_292
-    store %75, %x_293
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_299:i32 = load %top
-        %77:bool = gte %x_299, 0i
-        if %77 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %102:i32 = load %h_1
+    %x_293:i32 = let %102
+    %104:ptr<function, i32, read_write> = access %stack, %x_292
+    store %104, %x_293
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %105:i32 = load %top
+        %x_299:i32 = let %105
+        %107:bool = gte %x_299, 0i
+        if %107 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_302:i32 = load %top
-        %79:i32 = sub %x_302, 1i
-        store %top, %79
-        %80:ptr<function, i32, read_write> = access %stack, %x_302
-        %x_305:i32 = load %80
+        %108:i32 = load %top
+        %x_302:i32 = let %108
+        %110:i32 = sub %x_302, 1i
+        store %top, %110
+        %111:ptr<function, i32, read_write> = access %stack, %x_302
+        %112:i32 = load %111
+        %x_305:i32 = let %112
         store %h_1, %x_305
-        %x_306:i32 = load %top
-        %83:i32 = sub %x_306, 1i
-        store %top, %83
-        %84:ptr<function, i32, read_write> = access %stack, %x_306
-        %x_309:i32 = load %84
+        %114:i32 = load %top
+        %x_306:i32 = let %114
+        %116:i32 = sub %x_306, 1i
+        store %top, %116
+        %117:ptr<function, i32, read_write> = access %stack, %x_306
+        %118:i32 = load %117
+        %x_309:i32 = let %118
         store %l_1, %x_309
-        %x_310:i32 = load %l_1
+        %120:i32 = load %l_1
+        %x_310:i32 = let %120
         store %param_4, %x_310
-        %x_311:i32 = load %h_1
+        %122:i32 = load %h_1
+        %x_311:i32 = let %122
         store %param_5, %x_311
-        %x_312:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %124:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_312:i32 = let %124
         store %p, %x_312
-        %x_313:i32 = load %p
-        %x_315:i32 = load %l_1
-        %91:i32 = sub %x_313, 1i
-        %92:bool = gt %91, %x_315
-        if %92 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %x_319:i32 = load %top
-            %x_320:i32 = add %x_319, 1i
+        %126:i32 = load %p
+        %x_313:i32 = let %126
+        %128:i32 = load %l_1
+        %x_315:i32 = let %128
+        %130:i32 = sub %x_313, 1i
+        %131:bool = gt %130, %x_315
+        if %131 [t: $B14] {  # if_4
+          $B14: {  # true
+            %132:i32 = load %top
+            %x_319:i32 = let %132
+            %134:i32 = add %x_319, 1i
+            %x_320:i32 = let %134
             store %top, %x_320
-            %x_321:i32 = load %l_1
-            %96:ptr<function, i32, read_write> = access %stack, %x_320
-            store %96, %x_321
-            %x_323:i32 = load %top
-            %x_324:i32 = add %x_323, 1i
+            %136:i32 = load %l_1
+            %x_321:i32 = let %136
+            %138:ptr<function, i32, read_write> = access %stack, %x_320
+            store %138, %x_321
+            %139:i32 = load %top
+            %x_323:i32 = let %139
+            %141:i32 = add %x_323, 1i
+            %x_324:i32 = let %141
             store %top, %x_324
-            %x_325:i32 = load %p
-            %100:ptr<function, i32, read_write> = access %stack, %x_324
-            %101:i32 = sub %x_325, 1i
-            store %100, %101
+            %143:i32 = load %p
+            %x_325:i32 = let %143
+            %145:ptr<function, i32, read_write> = access %stack, %x_324
+            %146:i32 = sub %x_325, 1i
+            store %145, %146
             exit_if  # if_4
           }
         }
-        %x_328:i32 = load %p
-        %x_330:i32 = load %h_1
-        %104:i32 = add %x_328, 1i
-        %105:bool = lt %104, %x_330
-        if %105 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %x_334:i32 = load %top
-            %x_335:i32 = add %x_334, 1i
+        %147:i32 = load %p
+        %x_328:i32 = let %147
+        %149:i32 = load %h_1
+        %x_330:i32 = let %149
+        %151:i32 = add %x_328, 1i
+        %152:bool = lt %151, %x_330
+        if %152 [t: $B15] {  # if_5
+          $B15: {  # true
+            %153:i32 = load %top
+            %x_334:i32 = let %153
+            %155:i32 = add %x_334, 1i
+            %x_335:i32 = let %155
             store %top, %x_335
-            %x_336:i32 = load %p
-            %109:ptr<function, i32, read_write> = access %stack, %x_335
-            %110:i32 = add %x_336, 1i
-            store %109, %110
-            %x_339:i32 = load %top
-            %x_340:i32 = add %x_339, 1i
+            %157:i32 = load %p
+            %x_336:i32 = let %157
+            %159:ptr<function, i32, read_write> = access %stack, %x_335
+            %160:i32 = add %x_336, 1i
+            store %159, %160
+            %161:i32 = load %top
+            %x_339:i32 = let %161
+            %163:i32 = add %x_339, 1i
+            %x_340:i32 = let %163
             store %top, %x_340
-            %x_341:i32 = load %h_1
-            %114:ptr<function, i32, read_write> = access %stack, %x_340
-            store %114, %x_341
+            %165:i32 = load %h_1
+            %x_341:i32 = let %165
+            %167:ptr<function, i32, read_write> = access %stack, %x_340
+            store %167, %x_341
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %x_90:vec4<f32> = load %x_GLF_pos
-    %120:vec4<f32> = add %x_90, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %121:vec4<f32> = mul %120, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %121
+    %172:vec4<f32> = load %x_GLF_pos
+    %x_90:vec4<f32> = let %172
+    %174:vec4<f32> = add %x_90, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %175:vec4<f32> = mul %174, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %175
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_97:i32 = load %i_2
-        %123:bool = lt %x_97, 10i
-        if %123 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %176:i32 = load %i_2
+        %x_97:i32 = let %176
+        %178:bool = lt %x_97, 10i
+        if %178 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_100:i32 = load %i_2
-        %x_101:i32 = load %i_2
-        %126:ptr<private, i32, read_write> = access %obj, 0u, %x_100
-        %127:i32 = sub 10i, %x_101
-        store %126, %127
-        %x_104:i32 = load %i_2
-        %x_105:i32 = load %i_2
-        %130:ptr<private, i32, read_write> = access %obj, 0u, %x_105
-        %x_107:i32 = load %130
-        %x_108:i32 = load %i_2
-        %133:ptr<private, i32, read_write> = access %obj, 0u, %x_108
-        %x_110:i32 = load %133
-        %135:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-        %136:i32 = mul %x_107, %x_110
-        store %135, %136
-        continue %b18
+        %179:i32 = load %i_2
+        %x_100:i32 = let %179
+        %181:i32 = load %i_2
+        %x_101:i32 = let %181
+        %183:ptr<private, i32, read_write> = access %obj, 0u, %x_100
+        %184:i32 = sub 10i, %x_101
+        store %183, %184
+        %185:i32 = load %i_2
+        %x_104:i32 = let %185
+        %187:i32 = load %i_2
+        %x_105:i32 = let %187
+        %189:ptr<private, i32, read_write> = access %obj, 0u, %x_105
+        %190:i32 = load %189
+        %x_107:i32 = let %190
+        %192:i32 = load %i_2
+        %x_108:i32 = let %192
+        %194:ptr<private, i32, read_write> = access %obj, 0u, %x_108
+        %195:i32 = load %194
+        %x_110:i32 = let %195
+        %197:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+        %198:i32 = mul %x_107, %x_110
+        store %197, %198
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %x_113:i32 = load %i_2
-        %138:i32 = add %x_113, 1i
-        store %i_2, %138
-        next_iteration %b17
+      $B18: {  # continuing
+        %199:i32 = load %i_2
+        %x_113:i32 = let %199
+        %201:i32 = add %x_113, 1i
+        store %i_2, %201
+        next_iteration  # -> $B17
       }
     }
-    %139:void = call %quicksort_
-    %x_116:vec4<f32> = load %x_GLF_FragCoord
-    %141:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %x_119:vec2<f32> = load %141
-    %143:f32 = access %x_116, 0u
-    %144:f32 = access %x_116, 1u
-    %145:vec2<f32> = construct %143, %144
-    %146:vec2<f32> = div %145, %x_119
-    store %uv, %146
+    %202:void = call %quicksort_
+    %203:vec4<f32> = load %x_GLF_FragCoord
+    %x_116:vec4<f32> = let %203
+    %205:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %206:vec2<f32> = load %205
+    %x_119:vec2<f32> = let %206
+    %208:f32 = access %x_116, 0u
+    %209:f32 = access %x_116, 1u
+    %210:vec2<f32> = construct %208, %209
+    %211:vec2<f32> = div %210, %x_119
+    store %uv, %211
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %147:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_122:i32 = load %147
-    %x_125:f32 = load_vector_element %color, 0u
-    %150:f32 = convert %x_122
-    %151:f32 = add %x_125, %150
-    store_vector_element %color, 0u, %151
-    %x_129:f32 = load_vector_element %uv, 0u
-    %153:bool = gt %x_129, 0.25f
-    if %153 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %154:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_134:i32 = load %154
-        %x_137:f32 = load_vector_element %color, 0u
-        %157:f32 = convert %x_134
-        %158:f32 = add %x_137, %157
-        store_vector_element %color, 0u, %158
+    %212:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %213:i32 = load %212
+    %x_122:i32 = let %213
+    %215:f32 = load_vector_element %color, 0u
+    %x_125:f32 = let %215
+    %217:f32 = convert %x_122
+    %218:f32 = add %x_125, %217
+    store_vector_element %color, 0u, %218
+    %219:f32 = load_vector_element %uv, 0u
+    %x_129:f32 = let %219
+    %221:bool = gt %x_129, 0.25f
+    if %221 [t: $B21] {  # if_7
+      $B21: {  # true
+        %222:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %223:i32 = load %222
+        %x_134:i32 = let %223
+        %225:f32 = load_vector_element %color, 0u
+        %x_137:f32 = let %225
+        %227:f32 = convert %x_134
+        %228:f32 = add %x_137, %227
+        store_vector_element %color, 0u, %228
         exit_if  # if_7
       }
     }
-    %x_141:f32 = load_vector_element %uv, 0u
-    %160:bool = gt %x_141, 0.5f
-    if %160 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %161:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_146:i32 = load %161
-        %x_149:f32 = load_vector_element %color, 1u
-        %164:f32 = convert %x_146
-        %165:f32 = add %x_149, %164
-        store_vector_element %color, 1u, %165
+    %229:f32 = load_vector_element %uv, 0u
+    %x_141:f32 = let %229
+    %231:bool = gt %x_141, 0.5f
+    if %231 [t: $B22] {  # if_8
+      $B22: {  # true
+        %232:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %233:i32 = load %232
+        %x_146:i32 = let %233
+        %235:f32 = load_vector_element %color, 1u
+        %x_149:f32 = let %235
+        %237:f32 = convert %x_146
+        %238:f32 = add %x_149, %237
+        store_vector_element %color, 1u, %238
         exit_if  # if_8
       }
     }
-    %x_153:f32 = load_vector_element %uv, 0u
-    %167:bool = gt %x_153, 0.75f
-    if %167 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %168:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_158:i32 = load %168
-        %x_161:f32 = load_vector_element %color, 2u
-        %171:f32 = convert %x_158
-        %172:f32 = add %x_161, %171
-        store_vector_element %color, 2u, %172
+    %239:f32 = load_vector_element %uv, 0u
+    %x_153:f32 = let %239
+    %241:bool = gt %x_153, 0.75f
+    if %241 [t: $B23] {  # if_9
+      $B23: {  # true
+        %242:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %243:i32 = load %242
+        %x_158:i32 = let %243
+        %245:f32 = load_vector_element %color, 2u
+        %x_161:f32 = let %245
+        %247:f32 = convert %x_158
+        %248:f32 = add %x_161, %247
+        store_vector_element %color, 2u, %248
         exit_if  # if_9
       }
     }
-    %173:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_165:i32 = load %173
-    %x_168:f32 = load_vector_element %color, 1u
-    %176:f32 = convert %x_165
-    %177:f32 = add %x_168, %176
-    store_vector_element %color, 1u, %177
-    %x_172:f32 = load_vector_element %uv, 1u
-    %179:bool = gt %x_172, 0.25f
-    if %179 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %180:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_177:i32 = load %180
-        %x_180:f32 = load_vector_element %color, 0u
-        %183:f32 = convert %x_177
-        %184:f32 = add %x_180, %183
-        store_vector_element %color, 0u, %184
+    %249:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %250:i32 = load %249
+    %x_165:i32 = let %250
+    %252:f32 = load_vector_element %color, 1u
+    %x_168:f32 = let %252
+    %254:f32 = convert %x_165
+    %255:f32 = add %x_168, %254
+    store_vector_element %color, 1u, %255
+    %256:f32 = load_vector_element %uv, 1u
+    %x_172:f32 = let %256
+    %258:bool = gt %x_172, 0.25f
+    if %258 [t: $B24] {  # if_10
+      $B24: {  # true
+        %259:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %260:i32 = load %259
+        %x_177:i32 = let %260
+        %262:f32 = load_vector_element %color, 0u
+        %x_180:f32 = let %262
+        %264:f32 = convert %x_177
+        %265:f32 = add %x_180, %264
+        store_vector_element %color, 0u, %265
         exit_if  # if_10
       }
     }
-    %x_184:f32 = load_vector_element %uv, 1u
-    %186:bool = gt %x_184, 0.5f
-    if %186 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %187:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_189:i32 = load %187
-        %x_192:f32 = load_vector_element %color, 1u
-        %190:f32 = convert %x_189
-        %191:f32 = add %x_192, %190
-        store_vector_element %color, 1u, %191
+    %266:f32 = load_vector_element %uv, 1u
+    %x_184:f32 = let %266
+    %268:bool = gt %x_184, 0.5f
+    if %268 [t: $B25] {  # if_11
+      $B25: {  # true
+        %269:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %270:i32 = load %269
+        %x_189:i32 = let %270
+        %272:f32 = load_vector_element %color, 1u
+        %x_192:f32 = let %272
+        %274:f32 = convert %x_189
+        %275:f32 = add %x_192, %274
+        store_vector_element %color, 1u, %275
         exit_if  # if_11
       }
     }
-    %x_196:f32 = load_vector_element %uv, 1u
-    %193:bool = gt %x_196, 0.75f
-    if %193 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %194:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_201:i32 = load %194
-        %x_204:f32 = load_vector_element %color, 2u
-        %197:f32 = convert %x_201
-        %198:f32 = add %x_204, %197
-        store_vector_element %color, 2u, %198
+    %276:f32 = load_vector_element %uv, 1u
+    %x_196:f32 = let %276
+    %278:bool = gt %x_196, 0.75f
+    if %278 [t: $B26] {  # if_12
+      $B26: {  # true
+        %279:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %280:i32 = load %279
+        %x_201:i32 = let %280
+        %282:f32 = load_vector_element %color, 2u
+        %x_204:f32 = let %282
+        %284:f32 = convert %x_201
+        %285:f32 = add %x_204, %284
+        store_vector_element %color, 2u, %285
         exit_if  # if_12
       }
     }
-    %199:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_208:i32 = load %199
-    %x_211:f32 = load_vector_element %color, 2u
-    %202:f32 = convert %x_208
-    %203:f32 = add %x_211, %202
-    store_vector_element %color, 2u, %203
-    %x_215:f32 = load_vector_element %uv, 0u
-    %x_217:f32 = load_vector_element %uv, 1u
-    %206:f32 = sub %x_215, %x_217
-    %207:f32 = abs %206
-    %208:bool = lt %207, 0.25f
-    if %208 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %209:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_224:i32 = load %209
-        %x_227:f32 = load_vector_element %color, 0u
-        %212:f32 = convert %x_224
-        %213:f32 = add %x_227, %212
-        store_vector_element %color, 0u, %213
+    %286:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %287:i32 = load %286
+    %x_208:i32 = let %287
+    %289:f32 = load_vector_element %color, 2u
+    %x_211:f32 = let %289
+    %291:f32 = convert %x_208
+    %292:f32 = add %x_211, %291
+    store_vector_element %color, 2u, %292
+    %293:f32 = load_vector_element %uv, 0u
+    %x_215:f32 = let %293
+    %295:f32 = load_vector_element %uv, 1u
+    %x_217:f32 = let %295
+    %297:f32 = sub %x_215, %x_217
+    %298:f32 = abs %297
+    %299:bool = lt %298, 0.25f
+    if %299 [t: $B27] {  # if_13
+      $B27: {  # true
+        %300:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %301:i32 = load %300
+        %x_224:i32 = let %301
+        %303:f32 = load_vector_element %color, 0u
+        %x_227:f32 = let %303
+        %305:f32 = convert %x_224
+        %306:f32 = add %x_227, %305
+        store_vector_element %color, 0u, %306
         exit_if  # if_13
       }
     }
-    %x_230:vec3<f32> = load %color
-    %x_231:vec3<f32> = normalize %x_230
-    %216:f32 = access %x_231, 0u
-    %217:f32 = access %x_231, 1u
-    %218:f32 = access %x_231, 2u
-    %219:vec4<f32> = construct %216, %217, %218, 1.0f
-    store %frag_color, %219
-    %x_236:vec4<f32> = load %x_GLF_pos
+    %307:vec3<f32> = load %color
+    %x_230:vec3<f32> = let %307
+    %309:vec3<f32> = normalize %x_230
+    %x_231:vec3<f32> = let %309
+    %311:f32 = access %x_231, 0u
+    %312:f32 = access %x_231, 1u
+    %313:f32 = access %x_231, 2u
+    %314:vec4<f32> = construct %311, %312, %313, 1.0f
+    store %frag_color, %314
+    %315:vec4<f32> = load %x_GLF_pos
+    %x_236:vec4<f32> = let %315
     store %gl_Position, %x_236
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B28: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %223:void = call %main_1
-    %224:vec4<f32> = load %frag_color
-    %225:vec4<f32> = load %gl_Position
-    %226:main_out = construct %224, %225
-    ret %226
+    %319:void = call %main_1
+    %320:vec4<f32> = load %frag_color
+    %321:vec4<f32> = load %gl_Position
+    %322:main_out = construct %320, %321
+    ret %322
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.msl
index efdd3b1..288466c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.spvasm.expected.ir.msl
@@ -1,6 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:vec4<f32> = load %frag_color
+    store %x_GLF_color, %4
+    ret
+  }
+}
+%tint_symbol = @fragment func(%frag_color_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %frag_color, %frag_color_param
+    %7:void = call %main_1
+    %8:vec4<f32> = load %x_GLF_color
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.msl
index efdd3b1..7d2c2db 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %frag_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:vec4<f32> = load %frag_color
+    %x_12:vec4<f32> = let %4
+    store %x_GLF_color, %x_12
+    ret
+  }
+}
+%tint_symbol = @fragment func(%frag_color_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %frag_color, %frag_color_param
+    %8:void = call %main_1
+    %9:vec4<f32> = load %x_GLF_color
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.msl
index 5c00989..23566bb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -17,7 +17,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -27,28 +27,30 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %12:i32 = load %i
     %13:ptr<private, i32, read_write> = access %obj, 0u, %12
     %14:i32 = load %13
     store %temp, %14
-    %x_253:i32 = load %i
-    %16:ptr<private, i32, read_write> = access %obj, 0u, %x_253
-    %17:i32 = load %j
-    %18:ptr<private, i32, read_write> = access %obj, 0u, %17
-    %19:i32 = load %18
-    store %16, %19
-    %x_258:i32 = load %j
-    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_258
-    %22:i32 = load %temp
-    store %21, %22
+    %15:i32 = load %i
+    %x_253:i32 = let %15
+    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_253
+    %18:i32 = load %j
+    %19:ptr<private, i32, read_write> = access %obj, 0u, %18
+    %20:i32 = load %19
+    store %17, %20
+    %21:i32 = load %j
+    %x_258:i32 = let %21
+    %23:ptr<private, i32, read_write> = access %obj, 0u, %x_258
+    %24:i32 = load %temp
+    store %23, %24
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -56,69 +58,70 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %33:i32 = load %h
-    %34:ptr<private, i32, read_write> = access %obj, 0u, %33
-    %35:i32 = load %34
-    store %pivot, %35
-    %36:i32 = load %l
-    %37:i32 = sub %36, 1i
-    store %i_1, %37
+    %35:i32 = load %h
+    %36:ptr<private, i32, read_write> = access %obj, 0u, %35
+    %37:i32 = load %36
+    store %pivot, %37
     %38:i32 = load %l
-    store %j_1, %38
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %39:i32 = load %j_1
-        %40:i32 = load %h
-        %41:i32 = sub %40, 1i
-        %42:bool = lte %39, %41
-        if %42 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %39:i32 = sub %38, 1i
+    store %i_1, %39
+    %40:i32 = load %l
+    store %j_1, %40
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %41:i32 = load %j_1
+        %42:i32 = load %h
+        %43:i32 = sub %42, 1i
+        %44:bool = lte %41, %43
+        if %44 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:i32 = load %j_1
-        %44:ptr<private, i32, read_write> = access %obj, 0u, %43
-        %45:i32 = load %44
-        %46:i32 = load %pivot
-        %47:bool = lte %45, %46
-        if %47 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %48:i32 = load %i_1
-            %49:i32 = add %48, 1i
-            store %i_1, %49
+        %45:i32 = load %j_1
+        %46:ptr<private, i32, read_write> = access %obj, 0u, %45
+        %47:i32 = load %46
+        %48:i32 = load %pivot
+        %49:bool = lte %47, %48
+        if %49 [t: $B8] {  # if_2
+          $B8: {  # true
             %50:i32 = load %i_1
-            store %param, %50
-            %51:i32 = load %j_1
-            store %param_1, %51
-            %52:void = call %swap_i1_i1_, %param, %param_1
+            %51:i32 = add %50, 1i
+            store %i_1, %51
+            %52:i32 = load %i_1
+            store %param, %52
+            %53:i32 = load %j_1
+            store %param_1, %53
+            %54:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %53:i32 = load %j_1
-        %54:i32 = add %53, 1i
-        store %j_1, %54
-        next_iteration %b4
+      $B5: {  # continuing
+        %55:i32 = load %j_1
+        %56:i32 = add %55, 1i
+        store %j_1, %56
+        next_iteration  # -> $B4
       }
     }
-    %55:i32 = load %i_1
-    %56:i32 = add %55, 1i
-    store %param_2, %56
-    %57:i32 = load %h
-    store %param_3, %57
-    %58:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_295:i32 = load %i_1
-    %60:i32 = add %x_295, 1i
-    ret %60
+    %57:i32 = load %i_1
+    %58:i32 = add %57, 1i
+    store %param_2, %58
+    %59:i32 = load %h
+    store %param_3, %59
+    %60:void = call %swap_i1_i1_, %param_2, %param_3
+    %61:i32 = load %i_1
+    %x_295:i32 = let %61
+    %63:i32 = add %x_295, 1i
+    ret %63
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -129,299 +132,321 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %69:i32 = load %top
-    %x_299:i32 = add %69, 1i
+    %72:i32 = load %top
+    %73:i32 = add %72, 1i
+    %x_299:i32 = let %73
     store %top, %x_299
-    %71:ptr<function, i32, read_write> = access %stack, %x_299
-    %72:i32 = load %l_1
-    store %71, %72
-    %73:i32 = load %top
-    %x_303:i32 = add %73, 1i
-    store %top, %x_303
-    %75:ptr<function, i32, read_write> = access %stack, %x_303
-    %76:i32 = load %h_1
+    %75:ptr<function, i32, read_write> = access %stack, %x_299
+    %76:i32 = load %l_1
     store %75, %76
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %77:i32 = load %top
-        %78:bool = gte %77, 0i
-        if %78 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %77:i32 = load %top
+    %78:i32 = add %77, 1i
+    %x_303:i32 = let %78
+    store %top, %x_303
+    %80:ptr<function, i32, read_write> = access %stack, %x_303
+    %81:i32 = load %h_1
+    store %80, %81
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %82:i32 = load %top
+        %83:bool = gte %82, 0i
+        if %83 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_313:i32 = load %top
-        %80:i32 = load %top
-        %81:i32 = sub %80, 1i
-        store %top, %81
-        %82:ptr<function, i32, read_write> = access %stack, %x_313
-        %83:i32 = load %82
-        store %h_1, %83
-        %x_317:i32 = load %top
-        %85:i32 = load %top
-        %86:i32 = sub %85, 1i
-        store %top, %86
-        %87:ptr<function, i32, read_write> = access %stack, %x_317
-        %88:i32 = load %87
-        store %l_1, %88
-        %89:i32 = load %l_1
-        store %param_4, %89
-        %90:i32 = load %h_1
-        store %param_5, %90
-        %x_323:i32 = call %performPartition_i1_i1_, %param_4, %param_5
-        store %p, %x_323
-        %92:i32 = load %p
+        %84:i32 = load %top
+        %x_313:i32 = let %84
+        %86:i32 = load %top
+        %87:i32 = sub %86, 1i
+        store %top, %87
+        %88:ptr<function, i32, read_write> = access %stack, %x_313
+        %89:i32 = load %88
+        store %h_1, %89
+        %90:i32 = load %top
+        %x_317:i32 = let %90
+        %92:i32 = load %top
         %93:i32 = sub %92, 1i
-        %94:i32 = load %l_1
-        %95:bool = gt %93, %94
-        if %95 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %96:i32 = load %top
-            %x_331:i32 = add %96, 1i
+        store %top, %93
+        %94:ptr<function, i32, read_write> = access %stack, %x_317
+        %95:i32 = load %94
+        store %l_1, %95
+        %96:i32 = load %l_1
+        store %param_4, %96
+        %97:i32 = load %h_1
+        store %param_5, %97
+        %98:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_323:i32 = let %98
+        store %p, %x_323
+        %100:i32 = load %p
+        %101:i32 = sub %100, 1i
+        %102:i32 = load %l_1
+        %103:bool = gt %101, %102
+        if %103 [t: $B14] {  # if_4
+          $B14: {  # true
+            %104:i32 = load %top
+            %105:i32 = add %104, 1i
+            %x_331:i32 = let %105
             store %top, %x_331
-            %98:ptr<function, i32, read_write> = access %stack, %x_331
-            %99:i32 = load %l_1
-            store %98, %99
-            %100:i32 = load %top
-            %x_335:i32 = add %100, 1i
+            %107:ptr<function, i32, read_write> = access %stack, %x_331
+            %108:i32 = load %l_1
+            store %107, %108
+            %109:i32 = load %top
+            %110:i32 = add %109, 1i
+            %x_335:i32 = let %110
             store %top, %x_335
-            %102:ptr<function, i32, read_write> = access %stack, %x_335
-            %103:i32 = load %p
-            %104:i32 = sub %103, 1i
-            store %102, %104
+            %112:ptr<function, i32, read_write> = access %stack, %x_335
+            %113:i32 = load %p
+            %114:i32 = sub %113, 1i
+            store %112, %114
             exit_if  # if_4
           }
         }
-        %105:i32 = load %p
-        %106:i32 = add %105, 1i
-        %107:i32 = load %h_1
-        %108:bool = lt %106, %107
-        if %108 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %109:i32 = load %top
-            %x_346:i32 = add %109, 1i
+        %115:i32 = load %p
+        %116:i32 = add %115, 1i
+        %117:i32 = load %h_1
+        %118:bool = lt %116, %117
+        if %118 [t: $B15] {  # if_5
+          $B15: {  # true
+            %119:i32 = load %top
+            %120:i32 = add %119, 1i
+            %x_346:i32 = let %120
             store %top, %x_346
-            %111:ptr<function, i32, read_write> = access %stack, %x_346
-            %112:i32 = load %p
-            %113:i32 = add %112, 1i
-            store %111, %113
-            %114:i32 = load %top
-            %x_351:i32 = add %114, 1i
+            %122:ptr<function, i32, read_write> = access %stack, %x_346
+            %123:i32 = load %p
+            %124:i32 = add %123, 1i
+            store %122, %124
+            %125:i32 = load %top
+            %126:i32 = add %125, 1i
+            %x_351:i32 = let %126
             store %top, %x_351
-            %116:ptr<function, i32, read_write> = access %stack, %x_351
-            %117:i32 = load %h_1
-            store %116, %117
+            %128:ptr<function, i32, read_write> = access %stack, %x_351
+            %129:i32 = load %h_1
+            store %128, %129
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %122:vec4<f32> = load %x_GLF_pos
-    %123:vec4<f32> = add %122, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %124:vec4<f32> = mul %123, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %124
+    %134:vec4<f32> = load %x_GLF_pos
+    %135:vec4<f32> = add %134, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %136:vec4<f32> = mul %135, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %136
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %125:i32 = load %i_2
-        %126:bool = lt %125, 10i
-        if %126 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %137:i32 = load %i_2
+        %138:bool = lt %137, 10i
+        if %138 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_104:i32 = load %i_2
-        %128:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-        %129:i32 = load %i_2
-        %130:i32 = sub 10i, %129
-        store %128, %130
-        %131:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
-        %132:f32 = load_vector_element %131, 0u
-        %133:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
-        %134:f32 = load_vector_element %133, 1u
-        %135:bool = gt %132, %134
-        if %135 [t: %b21] {  # if_7
-          %b21 = block {  # true
+        %139:i32 = load %i_2
+        %x_104:i32 = let %139
+        %141:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+        %142:i32 = load %i_2
+        %143:i32 = sub 10i, %142
+        store %141, %143
+        %144:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
+        %145:f32 = load_vector_element %144, 0u
+        %146:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
+        %147:f32 = load_vector_element %146, 1u
+        %148:bool = gt %145, %147
+        if %148 [t: $B21] {  # if_7
+          $B21: {  # true
             exit_loop  # loop_3
           }
         }
-        %x_115:i32 = load %i_2
-        %137:ptr<private, i32, read_write> = access %obj, 0u, %x_115
-        %138:i32 = load %i_2
-        %139:ptr<private, i32, read_write> = access %obj, 0u, %138
-        %140:i32 = load %139
-        %141:i32 = load %i_2
-        %142:ptr<private, i32, read_write> = access %obj, 0u, %141
-        %143:i32 = load %142
-        %144:i32 = mul %140, %143
-        store %137, %144
-        continue %b18
+        %149:i32 = load %i_2
+        %x_115:i32 = let %149
+        %151:ptr<private, i32, read_write> = access %obj, 0u, %x_115
+        %152:i32 = load %i_2
+        %153:ptr<private, i32, read_write> = access %obj, 0u, %152
+        %154:i32 = load %153
+        %155:i32 = load %i_2
+        %156:ptr<private, i32, read_write> = access %obj, 0u, %155
+        %157:i32 = load %156
+        %158:i32 = mul %154, %157
+        store %151, %158
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %145:i32 = load %i_2
-        %146:i32 = add %145, 1i
-        store %i_2, %146
-        next_iteration %b17
+      $B18: {  # continuing
+        %159:i32 = load %i_2
+        %160:i32 = add %159, 1i
+        store %i_2, %160
+        next_iteration  # -> $B17
       }
     }
-    %147:void = call %quicksort_
-    %148:vec4<f32> = load %x_GLF_FragCoord
-    %149:vec2<f32> = swizzle %148, xy
-    %150:ptr<uniform, vec2<f32>, read> = access %x_36, 0u
-    %151:vec2<f32> = load %150
-    %152:vec2<f32> = div %149, %151
-    store %uv, %152
+    %161:void = call %quicksort_
+    %162:vec4<f32> = load %x_GLF_FragCoord
+    %163:vec2<f32> = swizzle %162, xy
+    %164:ptr<uniform, vec2<f32>, read> = access %x_36, 0u
+    %165:vec2<f32> = load %164
+    %166:vec2<f32> = div %163, %165
+    store %uv, %166
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %153:f32 = load_vector_element %color, 0u
-    %154:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %155:i32 = load %154
-    %156:f32 = convert %155
-    %157:f32 = add %153, %156
-    store_vector_element %color, 0u, %157
-    %158:f32 = load_vector_element %uv, 0u
-    %159:bool = gt %158, 0.25f
-    if %159 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %160:f32 = load_vector_element %color, 0u
-        %161:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %162:i32 = load %161
-        %163:f32 = convert %162
-        %164:f32 = add %160, %163
-        store_vector_element %color, 0u, %164
+    %167:f32 = load_vector_element %color, 0u
+    %168:f32 = let %167
+    %169:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %170:i32 = load %169
+    %171:f32 = convert %170
+    %172:f32 = add %168, %171
+    store_vector_element %color, 0u, %172
+    %173:f32 = load_vector_element %uv, 0u
+    %174:bool = gt %173, 0.25f
+    if %174 [t: $B22] {  # if_8
+      $B22: {  # true
+        %175:f32 = load_vector_element %color, 0u
+        %176:f32 = let %175
+        %177:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %178:i32 = load %177
+        %179:f32 = convert %178
+        %180:f32 = add %176, %179
+        store_vector_element %color, 0u, %180
         exit_if  # if_8
       }
     }
-    %165:f32 = load_vector_element %uv, 0u
-    %166:bool = gt %165, 0.5f
-    if %166 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %167:f32 = load_vector_element %color, 1u
-        %168:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %169:i32 = load %168
-        %170:f32 = convert %169
-        %171:f32 = add %167, %170
-        store_vector_element %color, 1u, %171
+    %181:f32 = load_vector_element %uv, 0u
+    %182:bool = gt %181, 0.5f
+    if %182 [t: $B23] {  # if_9
+      $B23: {  # true
+        %183:f32 = load_vector_element %color, 1u
+        %184:f32 = let %183
+        %185:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %186:i32 = load %185
+        %187:f32 = convert %186
+        %188:f32 = add %184, %187
+        store_vector_element %color, 1u, %188
         exit_if  # if_9
       }
     }
-    %172:f32 = load_vector_element %uv, 0u
-    %173:bool = gt %172, 0.75f
-    if %173 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %174:f32 = load_vector_element %color, 2u
-        %175:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %176:i32 = load %175
-        %177:f32 = convert %176
-        %178:f32 = add %174, %177
-        store_vector_element %color, 2u, %178
+    %189:f32 = load_vector_element %uv, 0u
+    %190:bool = gt %189, 0.75f
+    if %190 [t: $B24] {  # if_10
+      $B24: {  # true
+        %191:f32 = load_vector_element %color, 2u
+        %192:f32 = let %191
+        %193:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %194:i32 = load %193
+        %195:f32 = convert %194
+        %196:f32 = add %192, %195
+        store_vector_element %color, 2u, %196
         exit_if  # if_10
       }
     }
-    %179:f32 = load_vector_element %color, 1u
-    %180:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %181:i32 = load %180
-    %182:f32 = convert %181
-    %183:f32 = add %179, %182
-    store_vector_element %color, 1u, %183
-    %184:f32 = load_vector_element %uv, 1u
-    %185:bool = gt %184, 0.25f
-    if %185 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %186:f32 = load_vector_element %color, 0u
-        %187:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %188:i32 = load %187
-        %189:f32 = convert %188
-        %190:f32 = add %186, %189
-        store_vector_element %color, 0u, %190
+    %197:f32 = load_vector_element %color, 1u
+    %198:f32 = let %197
+    %199:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %200:i32 = load %199
+    %201:f32 = convert %200
+    %202:f32 = add %198, %201
+    store_vector_element %color, 1u, %202
+    %203:f32 = load_vector_element %uv, 1u
+    %204:bool = gt %203, 0.25f
+    if %204 [t: $B25] {  # if_11
+      $B25: {  # true
+        %205:f32 = load_vector_element %color, 0u
+        %206:f32 = let %205
+        %207:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %208:i32 = load %207
+        %209:f32 = convert %208
+        %210:f32 = add %206, %209
+        store_vector_element %color, 0u, %210
         exit_if  # if_11
       }
     }
-    %191:f32 = load_vector_element %uv, 1u
-    %192:bool = gt %191, 0.5f
-    if %192 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %193:f32 = load_vector_element %color, 1u
-        %194:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %195:i32 = load %194
-        %196:f32 = convert %195
-        %197:f32 = add %193, %196
-        store_vector_element %color, 1u, %197
+    %211:f32 = load_vector_element %uv, 1u
+    %212:bool = gt %211, 0.5f
+    if %212 [t: $B26] {  # if_12
+      $B26: {  # true
+        %213:f32 = load_vector_element %color, 1u
+        %214:f32 = let %213
+        %215:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %216:i32 = load %215
+        %217:f32 = convert %216
+        %218:f32 = add %214, %217
+        store_vector_element %color, 1u, %218
         exit_if  # if_12
       }
     }
-    %198:f32 = load_vector_element %uv, 1u
-    %199:bool = gt %198, 0.75f
-    if %199 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %200:f32 = load_vector_element %color, 2u
-        %201:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %202:i32 = load %201
-        %203:f32 = convert %202
-        %204:f32 = add %200, %203
-        store_vector_element %color, 2u, %204
+    %219:f32 = load_vector_element %uv, 1u
+    %220:bool = gt %219, 0.75f
+    if %220 [t: $B27] {  # if_13
+      $B27: {  # true
+        %221:f32 = load_vector_element %color, 2u
+        %222:f32 = let %221
+        %223:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %224:i32 = load %223
+        %225:f32 = convert %224
+        %226:f32 = add %222, %225
+        store_vector_element %color, 2u, %226
         exit_if  # if_13
       }
     }
-    %205:f32 = load_vector_element %color, 2u
-    %206:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %207:i32 = load %206
-    %208:f32 = convert %207
-    %209:f32 = add %205, %208
-    store_vector_element %color, 2u, %209
-    %210:f32 = load_vector_element %uv, 0u
-    %211:f32 = load_vector_element %uv, 1u
-    %212:f32 = sub %210, %211
-    %213:f32 = abs %212
-    %214:bool = lt %213, 0.25f
-    if %214 [t: %b28] {  # if_14
-      %b28 = block {  # true
-        %215:f32 = load_vector_element %color, 0u
-        %216:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %217:i32 = load %216
-        %218:f32 = convert %217
-        %219:f32 = add %215, %218
-        store_vector_element %color, 0u, %219
+    %227:f32 = load_vector_element %color, 2u
+    %228:f32 = let %227
+    %229:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %230:i32 = load %229
+    %231:f32 = convert %230
+    %232:f32 = add %228, %231
+    store_vector_element %color, 2u, %232
+    %233:f32 = load_vector_element %uv, 0u
+    %234:f32 = load_vector_element %uv, 1u
+    %235:f32 = sub %233, %234
+    %236:f32 = abs %235
+    %237:bool = lt %236, 0.25f
+    if %237 [t: $B28] {  # if_14
+      $B28: {  # true
+        %238:f32 = load_vector_element %color, 0u
+        %239:f32 = let %238
+        %240:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %241:i32 = load %240
+        %242:f32 = convert %241
+        %243:f32 = add %239, %242
+        store_vector_element %color, 0u, %243
         exit_if  # if_14
       }
     }
-    %220:vec3<f32> = load %color
-    %x_242:vec3<f32> = normalize %220
-    %222:f32 = access %x_242, 0u
-    %223:f32 = access %x_242, 1u
-    %224:f32 = access %x_242, 2u
-    %225:vec4<f32> = construct %222, %223, %224, 1.0f
-    store %frag_color, %225
-    %226:vec4<f32> = load %x_GLF_pos
-    store %gl_Position, %226
+    %244:vec3<f32> = load %color
+    %245:vec3<f32> = normalize %244
+    %x_242:vec3<f32> = let %245
+    %247:f32 = access %x_242, 0u
+    %248:f32 = access %x_242, 1u
+    %249:f32 = access %x_242, 2u
+    %250:vec4<f32> = construct %247, %248, %249, 1.0f
+    store %frag_color, %250
+    %251:vec4<f32> = load %x_GLF_pos
+    store %gl_Position, %251
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b29 {
-  %b29 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B29: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %229:void = call %main_1
-    %230:vec4<f32> = load %frag_color
-    %231:vec4<f32> = load %gl_Position
-    %232:main_out = construct %230, %231
-    ret %232
+    %254:void = call %main_1
+    %255:vec4<f32> = load %frag_color
+    %256:vec4<f32> = load %gl_Position
+    %257:main_out = construct %255, %256
+    ret %257
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.msl
index 20bec36..19cae19 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-for-loop-with-injection/2-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -17,7 +17,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -27,28 +27,35 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_250:i32 = load %i
-    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_250
-    %x_252:i32 = load %13
+    %12:i32 = load %i
+    %x_250:i32 = let %12
+    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_250
+    %15:i32 = load %14
+    %x_252:i32 = let %15
     store %temp, %x_252
-    %x_253:i32 = load %i
-    %x_254:i32 = load %j
-    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_254
-    %x_256:i32 = load %17
-    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_253
-    store %19, %x_256
-    %x_258:i32 = load %j
-    %x_259:i32 = load %temp
-    %22:ptr<private, i32, read_write> = access %obj, 0u, %x_258
-    store %22, %x_259
+    %17:i32 = load %i
+    %x_253:i32 = let %17
+    %19:i32 = load %j
+    %x_254:i32 = let %19
+    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_254
+    %22:i32 = load %21
+    %x_256:i32 = let %22
+    %24:ptr<private, i32, read_write> = access %obj, 0u, %x_253
+    store %24, %x_256
+    %25:i32 = load %j
+    %x_258:i32 = let %25
+    %27:i32 = load %temp
+    %x_259:i32 = let %27
+    %29:ptr<private, i32, read_write> = access %obj, 0u, %x_258
+    store %29, %x_259
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -56,69 +63,85 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_262:i32 = load %h
-    %34:ptr<private, i32, read_write> = access %obj, 0u, %x_262
-    %x_264:i32 = load %34
+    %40:i32 = load %h
+    %x_262:i32 = let %40
+    %42:ptr<private, i32, read_write> = access %obj, 0u, %x_262
+    %43:i32 = load %42
+    %x_264:i32 = let %43
     store %pivot, %x_264
-    %x_265:i32 = load %l
-    %37:i32 = sub %x_265, 1i
-    store %i_1, %37
-    %x_267:i32 = load %l
+    %45:i32 = load %l
+    %x_265:i32 = let %45
+    %47:i32 = sub %x_265, 1i
+    store %i_1, %47
+    %48:i32 = load %l
+    %x_267:i32 = let %48
     store %j_1, %x_267
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_272:i32 = load %j_1
-        %x_273:i32 = load %h
-        %41:i32 = sub %x_273, 1i
-        %42:bool = lte %x_272, %41
-        if %42 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %50:i32 = load %j_1
+        %x_272:i32 = let %50
+        %52:i32 = load %h
+        %x_273:i32 = let %52
+        %54:i32 = sub %x_273, 1i
+        %55:bool = lte %x_272, %54
+        if %55 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_277:i32 = load %j_1
-        %44:ptr<private, i32, read_write> = access %obj, 0u, %x_277
-        %x_279:i32 = load %44
-        %x_280:i32 = load %pivot
-        %47:bool = lte %x_279, %x_280
-        if %47 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_284:i32 = load %i_1
-            %49:i32 = add %x_284, 1i
-            store %i_1, %49
-            %x_286:i32 = load %i_1
+        %56:i32 = load %j_1
+        %x_277:i32 = let %56
+        %58:ptr<private, i32, read_write> = access %obj, 0u, %x_277
+        %59:i32 = load %58
+        %x_279:i32 = let %59
+        %61:i32 = load %pivot
+        %x_280:i32 = let %61
+        %63:bool = lte %x_279, %x_280
+        if %63 [t: $B8] {  # if_2
+          $B8: {  # true
+            %64:i32 = load %i_1
+            %x_284:i32 = let %64
+            %66:i32 = add %x_284, 1i
+            store %i_1, %66
+            %67:i32 = load %i_1
+            %x_286:i32 = let %67
             store %param, %x_286
-            %x_287:i32 = load %j_1
+            %69:i32 = load %j_1
+            %x_287:i32 = let %69
             store %param_1, %x_287
-            %52:void = call %swap_i1_i1_, %param, %param_1
+            %71:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_289:i32 = load %j_1
-        %54:i32 = add %x_289, 1i
-        store %j_1, %54
-        next_iteration %b4
+      $B5: {  # continuing
+        %72:i32 = load %j_1
+        %x_289:i32 = let %72
+        %74:i32 = add %x_289, 1i
+        store %j_1, %74
+        next_iteration  # -> $B4
       }
     }
-    %x_291:i32 = load %i_1
-    %56:i32 = add %x_291, 1i
-    store %param_2, %56
-    %x_293:i32 = load %h
+    %75:i32 = load %i_1
+    %x_291:i32 = let %75
+    %77:i32 = add %x_291, 1i
+    store %param_2, %77
+    %78:i32 = load %h
+    %x_293:i32 = let %78
     store %param_3, %x_293
-    %58:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_295:i32 = load %i_1
-    %60:i32 = add %x_295, 1i
-    ret %60
+    %80:void = call %swap_i1_i1_, %param_2, %param_3
+    %81:i32 = load %i_1
+    %x_295:i32 = let %81
+    %83:i32 = add %x_295, 1i
+    ret %83
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -129,299 +152,374 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_298:i32 = load %top
-    %x_299:i32 = add %x_298, 1i
+    %92:i32 = load %top
+    %x_298:i32 = let %92
+    %94:i32 = add %x_298, 1i
+    %x_299:i32 = let %94
     store %top, %x_299
-    %x_300:i32 = load %l_1
-    %72:ptr<function, i32, read_write> = access %stack, %x_299
-    store %72, %x_300
-    %x_302:i32 = load %top
-    %x_303:i32 = add %x_302, 1i
+    %96:i32 = load %l_1
+    %x_300:i32 = let %96
+    %98:ptr<function, i32, read_write> = access %stack, %x_299
+    store %98, %x_300
+    %99:i32 = load %top
+    %x_302:i32 = let %99
+    %101:i32 = add %x_302, 1i
+    %x_303:i32 = let %101
     store %top, %x_303
-    %x_304:i32 = load %h_1
-    %76:ptr<function, i32, read_write> = access %stack, %x_303
-    store %76, %x_304
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_310:i32 = load %top
-        %78:bool = gte %x_310, 0i
-        if %78 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %103:i32 = load %h_1
+    %x_304:i32 = let %103
+    %105:ptr<function, i32, read_write> = access %stack, %x_303
+    store %105, %x_304
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %106:i32 = load %top
+        %x_310:i32 = let %106
+        %108:bool = gte %x_310, 0i
+        if %108 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_313:i32 = load %top
-        %80:i32 = sub %x_313, 1i
-        store %top, %80
-        %81:ptr<function, i32, read_write> = access %stack, %x_313
-        %x_316:i32 = load %81
+        %109:i32 = load %top
+        %x_313:i32 = let %109
+        %111:i32 = sub %x_313, 1i
+        store %top, %111
+        %112:ptr<function, i32, read_write> = access %stack, %x_313
+        %113:i32 = load %112
+        %x_316:i32 = let %113
         store %h_1, %x_316
-        %x_317:i32 = load %top
-        %84:i32 = sub %x_317, 1i
-        store %top, %84
-        %85:ptr<function, i32, read_write> = access %stack, %x_317
-        %x_320:i32 = load %85
+        %115:i32 = load %top
+        %x_317:i32 = let %115
+        %117:i32 = sub %x_317, 1i
+        store %top, %117
+        %118:ptr<function, i32, read_write> = access %stack, %x_317
+        %119:i32 = load %118
+        %x_320:i32 = let %119
         store %l_1, %x_320
-        %x_321:i32 = load %l_1
+        %121:i32 = load %l_1
+        %x_321:i32 = let %121
         store %param_4, %x_321
-        %x_322:i32 = load %h_1
+        %123:i32 = load %h_1
+        %x_322:i32 = let %123
         store %param_5, %x_322
-        %x_323:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %125:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_323:i32 = let %125
         store %p, %x_323
-        %x_324:i32 = load %p
-        %x_326:i32 = load %l_1
-        %92:i32 = sub %x_324, 1i
-        %93:bool = gt %92, %x_326
-        if %93 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %x_330:i32 = load %top
-            %x_331:i32 = add %x_330, 1i
+        %127:i32 = load %p
+        %x_324:i32 = let %127
+        %129:i32 = load %l_1
+        %x_326:i32 = let %129
+        %131:i32 = sub %x_324, 1i
+        %132:bool = gt %131, %x_326
+        if %132 [t: $B14] {  # if_4
+          $B14: {  # true
+            %133:i32 = load %top
+            %x_330:i32 = let %133
+            %135:i32 = add %x_330, 1i
+            %x_331:i32 = let %135
             store %top, %x_331
-            %x_332:i32 = load %l_1
-            %97:ptr<function, i32, read_write> = access %stack, %x_331
-            store %97, %x_332
-            %x_334:i32 = load %top
-            %x_335:i32 = add %x_334, 1i
+            %137:i32 = load %l_1
+            %x_332:i32 = let %137
+            %139:ptr<function, i32, read_write> = access %stack, %x_331
+            store %139, %x_332
+            %140:i32 = load %top
+            %x_334:i32 = let %140
+            %142:i32 = add %x_334, 1i
+            %x_335:i32 = let %142
             store %top, %x_335
-            %x_336:i32 = load %p
-            %101:ptr<function, i32, read_write> = access %stack, %x_335
-            %102:i32 = sub %x_336, 1i
-            store %101, %102
+            %144:i32 = load %p
+            %x_336:i32 = let %144
+            %146:ptr<function, i32, read_write> = access %stack, %x_335
+            %147:i32 = sub %x_336, 1i
+            store %146, %147
             exit_if  # if_4
           }
         }
-        %x_339:i32 = load %p
-        %x_341:i32 = load %h_1
-        %105:i32 = add %x_339, 1i
-        %106:bool = lt %105, %x_341
-        if %106 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %x_345:i32 = load %top
-            %x_346:i32 = add %x_345, 1i
+        %148:i32 = load %p
+        %x_339:i32 = let %148
+        %150:i32 = load %h_1
+        %x_341:i32 = let %150
+        %152:i32 = add %x_339, 1i
+        %153:bool = lt %152, %x_341
+        if %153 [t: $B15] {  # if_5
+          $B15: {  # true
+            %154:i32 = load %top
+            %x_345:i32 = let %154
+            %156:i32 = add %x_345, 1i
+            %x_346:i32 = let %156
             store %top, %x_346
-            %x_347:i32 = load %p
-            %110:ptr<function, i32, read_write> = access %stack, %x_346
-            %111:i32 = add %x_347, 1i
-            store %110, %111
-            %x_350:i32 = load %top
-            %x_351:i32 = add %x_350, 1i
+            %158:i32 = load %p
+            %x_347:i32 = let %158
+            %160:ptr<function, i32, read_write> = access %stack, %x_346
+            %161:i32 = add %x_347, 1i
+            store %160, %161
+            %162:i32 = load %top
+            %x_350:i32 = let %162
+            %164:i32 = add %x_350, 1i
+            %x_351:i32 = let %164
             store %top, %x_351
-            %x_352:i32 = load %h_1
-            %115:ptr<function, i32, read_write> = access %stack, %x_351
-            store %115, %x_352
+            %166:i32 = load %h_1
+            %x_352:i32 = let %166
+            %168:ptr<function, i32, read_write> = access %stack, %x_351
+            store %168, %x_352
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %x_94:vec4<f32> = load %x_GLF_pos
-    %121:vec4<f32> = add %x_94, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %122:vec4<f32> = mul %121, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %122
+    %173:vec4<f32> = load %x_GLF_pos
+    %x_94:vec4<f32> = let %173
+    %175:vec4<f32> = add %x_94, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %176:vec4<f32> = mul %175, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %176
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_101:i32 = load %i_2
-        %124:bool = lt %x_101, 10i
-        if %124 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %177:i32 = load %i_2
+        %x_101:i32 = let %177
+        %179:bool = lt %x_101, 10i
+        if %179 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_104:i32 = load %i_2
-        %x_105:i32 = load %i_2
-        %127:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-        %128:i32 = sub 10i, %x_105
-        store %127, %128
-        %129:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
-        %x_109:f32 = load_vector_element %129, 0u
-        %131:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
-        %x_111:f32 = load_vector_element %131, 1u
-        %133:bool = gt %x_109, %x_111
-        if %133 [t: %b21] {  # if_7
-          %b21 = block {  # true
+        %180:i32 = load %i_2
+        %x_104:i32 = let %180
+        %182:i32 = load %i_2
+        %x_105:i32 = let %182
+        %184:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+        %185:i32 = sub 10i, %x_105
+        store %184, %185
+        %186:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
+        %187:f32 = load_vector_element %186, 0u
+        %x_109:f32 = let %187
+        %189:ptr<uniform, vec2<f32>, read> = access %x_33, 0u
+        %190:f32 = load_vector_element %189, 1u
+        %x_111:f32 = let %190
+        %192:bool = gt %x_109, %x_111
+        if %192 [t: $B21] {  # if_7
+          $B21: {  # true
             exit_loop  # loop_3
           }
         }
-        %x_115:i32 = load %i_2
-        %x_116:i32 = load %i_2
-        %136:ptr<private, i32, read_write> = access %obj, 0u, %x_116
-        %x_118:i32 = load %136
-        %x_119:i32 = load %i_2
-        %139:ptr<private, i32, read_write> = access %obj, 0u, %x_119
-        %x_121:i32 = load %139
-        %141:ptr<private, i32, read_write> = access %obj, 0u, %x_115
-        %142:i32 = mul %x_118, %x_121
-        store %141, %142
-        continue %b18
+        %193:i32 = load %i_2
+        %x_115:i32 = let %193
+        %195:i32 = load %i_2
+        %x_116:i32 = let %195
+        %197:ptr<private, i32, read_write> = access %obj, 0u, %x_116
+        %198:i32 = load %197
+        %x_118:i32 = let %198
+        %200:i32 = load %i_2
+        %x_119:i32 = let %200
+        %202:ptr<private, i32, read_write> = access %obj, 0u, %x_119
+        %203:i32 = load %202
+        %x_121:i32 = let %203
+        %205:ptr<private, i32, read_write> = access %obj, 0u, %x_115
+        %206:i32 = mul %x_118, %x_121
+        store %205, %206
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %x_124:i32 = load %i_2
-        %144:i32 = add %x_124, 1i
-        store %i_2, %144
-        next_iteration %b17
+      $B18: {  # continuing
+        %207:i32 = load %i_2
+        %x_124:i32 = let %207
+        %209:i32 = add %x_124, 1i
+        store %i_2, %209
+        next_iteration  # -> $B17
       }
     }
-    %145:void = call %quicksort_
-    %x_127:vec4<f32> = load %x_GLF_FragCoord
-    %147:ptr<uniform, vec2<f32>, read> = access %x_36, 0u
-    %x_130:vec2<f32> = load %147
-    %149:f32 = access %x_127, 0u
-    %150:f32 = access %x_127, 1u
-    %151:vec2<f32> = construct %149, %150
-    %152:vec2<f32> = div %151, %x_130
-    store %uv, %152
+    %210:void = call %quicksort_
+    %211:vec4<f32> = load %x_GLF_FragCoord
+    %x_127:vec4<f32> = let %211
+    %213:ptr<uniform, vec2<f32>, read> = access %x_36, 0u
+    %214:vec2<f32> = load %213
+    %x_130:vec2<f32> = let %214
+    %216:f32 = access %x_127, 0u
+    %217:f32 = access %x_127, 1u
+    %218:vec2<f32> = construct %216, %217
+    %219:vec2<f32> = div %218, %x_130
+    store %uv, %219
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %153:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_133:i32 = load %153
-    %x_136:f32 = load_vector_element %color, 0u
-    %156:f32 = convert %x_133
-    %157:f32 = add %x_136, %156
-    store_vector_element %color, 0u, %157
-    %x_140:f32 = load_vector_element %uv, 0u
-    %159:bool = gt %x_140, 0.25f
-    if %159 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %160:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_145:i32 = load %160
-        %x_148:f32 = load_vector_element %color, 0u
-        %163:f32 = convert %x_145
-        %164:f32 = add %x_148, %163
-        store_vector_element %color, 0u, %164
+    %220:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %221:i32 = load %220
+    %x_133:i32 = let %221
+    %223:f32 = load_vector_element %color, 0u
+    %x_136:f32 = let %223
+    %225:f32 = convert %x_133
+    %226:f32 = add %x_136, %225
+    store_vector_element %color, 0u, %226
+    %227:f32 = load_vector_element %uv, 0u
+    %x_140:f32 = let %227
+    %229:bool = gt %x_140, 0.25f
+    if %229 [t: $B22] {  # if_8
+      $B22: {  # true
+        %230:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %231:i32 = load %230
+        %x_145:i32 = let %231
+        %233:f32 = load_vector_element %color, 0u
+        %x_148:f32 = let %233
+        %235:f32 = convert %x_145
+        %236:f32 = add %x_148, %235
+        store_vector_element %color, 0u, %236
         exit_if  # if_8
       }
     }
-    %x_152:f32 = load_vector_element %uv, 0u
-    %166:bool = gt %x_152, 0.5f
-    if %166 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %167:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_157:i32 = load %167
-        %x_160:f32 = load_vector_element %color, 1u
-        %170:f32 = convert %x_157
-        %171:f32 = add %x_160, %170
-        store_vector_element %color, 1u, %171
+    %237:f32 = load_vector_element %uv, 0u
+    %x_152:f32 = let %237
+    %239:bool = gt %x_152, 0.5f
+    if %239 [t: $B23] {  # if_9
+      $B23: {  # true
+        %240:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %241:i32 = load %240
+        %x_157:i32 = let %241
+        %243:f32 = load_vector_element %color, 1u
+        %x_160:f32 = let %243
+        %245:f32 = convert %x_157
+        %246:f32 = add %x_160, %245
+        store_vector_element %color, 1u, %246
         exit_if  # if_9
       }
     }
-    %x_164:f32 = load_vector_element %uv, 0u
-    %173:bool = gt %x_164, 0.75f
-    if %173 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %174:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_169:i32 = load %174
-        %x_172:f32 = load_vector_element %color, 2u
-        %177:f32 = convert %x_169
-        %178:f32 = add %x_172, %177
-        store_vector_element %color, 2u, %178
+    %247:f32 = load_vector_element %uv, 0u
+    %x_164:f32 = let %247
+    %249:bool = gt %x_164, 0.75f
+    if %249 [t: $B24] {  # if_10
+      $B24: {  # true
+        %250:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %251:i32 = load %250
+        %x_169:i32 = let %251
+        %253:f32 = load_vector_element %color, 2u
+        %x_172:f32 = let %253
+        %255:f32 = convert %x_169
+        %256:f32 = add %x_172, %255
+        store_vector_element %color, 2u, %256
         exit_if  # if_10
       }
     }
-    %179:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_176:i32 = load %179
-    %x_179:f32 = load_vector_element %color, 1u
-    %182:f32 = convert %x_176
-    %183:f32 = add %x_179, %182
-    store_vector_element %color, 1u, %183
-    %x_183:f32 = load_vector_element %uv, 1u
-    %185:bool = gt %x_183, 0.25f
-    if %185 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %186:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_188:i32 = load %186
-        %x_191:f32 = load_vector_element %color, 0u
-        %189:f32 = convert %x_188
-        %190:f32 = add %x_191, %189
-        store_vector_element %color, 0u, %190
+    %257:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %258:i32 = load %257
+    %x_176:i32 = let %258
+    %260:f32 = load_vector_element %color, 1u
+    %x_179:f32 = let %260
+    %262:f32 = convert %x_176
+    %263:f32 = add %x_179, %262
+    store_vector_element %color, 1u, %263
+    %264:f32 = load_vector_element %uv, 1u
+    %x_183:f32 = let %264
+    %266:bool = gt %x_183, 0.25f
+    if %266 [t: $B25] {  # if_11
+      $B25: {  # true
+        %267:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %268:i32 = load %267
+        %x_188:i32 = let %268
+        %270:f32 = load_vector_element %color, 0u
+        %x_191:f32 = let %270
+        %272:f32 = convert %x_188
+        %273:f32 = add %x_191, %272
+        store_vector_element %color, 0u, %273
         exit_if  # if_11
       }
     }
-    %x_195:f32 = load_vector_element %uv, 1u
-    %192:bool = gt %x_195, 0.5f
-    if %192 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %193:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_200:i32 = load %193
-        %x_203:f32 = load_vector_element %color, 1u
-        %196:f32 = convert %x_200
-        %197:f32 = add %x_203, %196
-        store_vector_element %color, 1u, %197
+    %274:f32 = load_vector_element %uv, 1u
+    %x_195:f32 = let %274
+    %276:bool = gt %x_195, 0.5f
+    if %276 [t: $B26] {  # if_12
+      $B26: {  # true
+        %277:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %278:i32 = load %277
+        %x_200:i32 = let %278
+        %280:f32 = load_vector_element %color, 1u
+        %x_203:f32 = let %280
+        %282:f32 = convert %x_200
+        %283:f32 = add %x_203, %282
+        store_vector_element %color, 1u, %283
         exit_if  # if_12
       }
     }
-    %x_207:f32 = load_vector_element %uv, 1u
-    %199:bool = gt %x_207, 0.75f
-    if %199 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %200:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_212:i32 = load %200
-        %x_215:f32 = load_vector_element %color, 2u
-        %203:f32 = convert %x_212
-        %204:f32 = add %x_215, %203
-        store_vector_element %color, 2u, %204
+    %284:f32 = load_vector_element %uv, 1u
+    %x_207:f32 = let %284
+    %286:bool = gt %x_207, 0.75f
+    if %286 [t: $B27] {  # if_13
+      $B27: {  # true
+        %287:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %288:i32 = load %287
+        %x_212:i32 = let %288
+        %290:f32 = load_vector_element %color, 2u
+        %x_215:f32 = let %290
+        %292:f32 = convert %x_212
+        %293:f32 = add %x_215, %292
+        store_vector_element %color, 2u, %293
         exit_if  # if_13
       }
     }
-    %205:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_219:i32 = load %205
-    %x_222:f32 = load_vector_element %color, 2u
-    %208:f32 = convert %x_219
-    %209:f32 = add %x_222, %208
-    store_vector_element %color, 2u, %209
-    %x_226:f32 = load_vector_element %uv, 0u
-    %x_228:f32 = load_vector_element %uv, 1u
-    %212:f32 = sub %x_226, %x_228
-    %213:f32 = abs %212
-    %214:bool = lt %213, 0.25f
-    if %214 [t: %b28] {  # if_14
-      %b28 = block {  # true
-        %215:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_235:i32 = load %215
-        %x_238:f32 = load_vector_element %color, 0u
-        %218:f32 = convert %x_235
-        %219:f32 = add %x_238, %218
-        store_vector_element %color, 0u, %219
+    %294:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %295:i32 = load %294
+    %x_219:i32 = let %295
+    %297:f32 = load_vector_element %color, 2u
+    %x_222:f32 = let %297
+    %299:f32 = convert %x_219
+    %300:f32 = add %x_222, %299
+    store_vector_element %color, 2u, %300
+    %301:f32 = load_vector_element %uv, 0u
+    %x_226:f32 = let %301
+    %303:f32 = load_vector_element %uv, 1u
+    %x_228:f32 = let %303
+    %305:f32 = sub %x_226, %x_228
+    %306:f32 = abs %305
+    %307:bool = lt %306, 0.25f
+    if %307 [t: $B28] {  # if_14
+      $B28: {  # true
+        %308:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %309:i32 = load %308
+        %x_235:i32 = let %309
+        %311:f32 = load_vector_element %color, 0u
+        %x_238:f32 = let %311
+        %313:f32 = convert %x_235
+        %314:f32 = add %x_238, %313
+        store_vector_element %color, 0u, %314
         exit_if  # if_14
       }
     }
-    %x_241:vec3<f32> = load %color
-    %x_242:vec3<f32> = normalize %x_241
-    %222:f32 = access %x_242, 0u
-    %223:f32 = access %x_242, 1u
-    %224:f32 = access %x_242, 2u
-    %225:vec4<f32> = construct %222, %223, %224, 1.0f
-    store %frag_color, %225
-    %x_247:vec4<f32> = load %x_GLF_pos
+    %315:vec3<f32> = load %color
+    %x_241:vec3<f32> = let %315
+    %317:vec3<f32> = normalize %x_241
+    %x_242:vec3<f32> = let %317
+    %319:f32 = access %x_242, 0u
+    %320:f32 = access %x_242, 1u
+    %321:f32 = access %x_242, 2u
+    %322:vec4<f32> = construct %319, %320, %321, 1.0f
+    store %frag_color, %322
+    %323:vec4<f32> = load %x_GLF_pos
+    %x_247:vec4<f32> = let %323
     store %gl_Position, %x_247
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b29 {
-  %b29 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B29: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %229:void = call %main_1
-    %230:vec4<f32> = load %frag_color
-    %231:vec4<f32> = load %gl_Position
-    %232:main_out = construct %230, %231
-    ret %232
+    %327:void = call %main_1
+    %328:vec4<f32> = load %frag_color
+    %329:vec4<f32> = load %gl_Position
+    %330:main_out = construct %328, %329
+    ret %330
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.msl
index c8e22d4..ac518cd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -13,7 +13,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -22,8 +22,8 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_90:ptr<function, i32, read_write> = var
     %x_91:ptr<function, i32, read_write> = var
     %x_92:ptr<function, i32, read_write> = var
@@ -49,387 +49,414 @@
     %30:vec4<f32> = mul %29, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
     store %x_GLF_FragCoord, %30
     store %i_2, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %31:i32 = load %i_2
         %32:bool = lt %31, 10i
-        if %32 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %32 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_117:i32 = load %i_2
-        %34:ptr<private, i32, read_write> = access %obj, 0u, %x_117
-        %35:i32 = load %i_2
-        %36:i32 = sub 10i, %35
-        store %34, %36
-        %x_121:i32 = load %i_2
-        %38:ptr<private, i32, read_write> = access %obj, 0u, %x_121
-        %39:i32 = load %i_2
-        %40:ptr<private, i32, read_write> = access %obj, 0u, %39
-        %41:i32 = load %40
-        %42:i32 = load %i_2
-        %43:ptr<private, i32, read_write> = access %obj, 0u, %42
-        %44:i32 = load %43
-        %45:i32 = mul %41, %44
-        store %38, %45
-        continue %b4
+        %33:i32 = load %i_2
+        %x_117:i32 = let %33
+        %35:ptr<private, i32, read_write> = access %obj, 0u, %x_117
+        %36:i32 = load %i_2
+        %37:i32 = sub 10i, %36
+        store %35, %37
+        %38:i32 = load %i_2
+        %x_121:i32 = let %38
+        %40:ptr<private, i32, read_write> = access %obj, 0u, %x_121
+        %41:i32 = load %i_2
+        %42:ptr<private, i32, read_write> = access %obj, 0u, %41
+        %43:i32 = load %42
+        %44:i32 = load %i_2
+        %45:ptr<private, i32, read_write> = access %obj, 0u, %44
+        %46:i32 = load %45
+        %47:i32 = mul %43, %46
+        store %40, %47
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %46:i32 = load %i_2
-        %47:i32 = add %46, 1i
-        store %i_2, %47
-        next_iteration %b3
+      $B4: {  # continuing
+        %48:i32 = load %i_2
+        %49:i32 = add %48, 1i
+        store %i_2, %49
+        next_iteration  # -> $B3
       }
     }
     store %x_100, 0i
     store %x_101, 9i
     store %x_102, -1i
-    %48:i32 = load %x_102
-    %x_133:i32 = add %48, 1i
+    %50:i32 = load %x_102
+    %51:i32 = add %50, 1i
+    %x_133:i32 = let %51
     store %x_102, %x_133
-    %50:ptr<function, i32, read_write> = access %x_103, %x_133
-    %51:i32 = load %x_100
-    store %50, %51
-    %52:i32 = load %x_102
-    %x_137:i32 = add %52, 1i
+    %53:ptr<function, i32, read_write> = access %x_103, %x_133
+    %54:i32 = load %x_100
+    store %53, %54
+    %55:i32 = load %x_102
+    %56:i32 = add %55, 1i
+    %x_137:i32 = let %56
     store %x_102, %x_137
-    %54:ptr<function, i32, read_write> = access %x_103, %x_137
-    %55:i32 = load %x_101
-    store %54, %55
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %56:i32 = load %x_102
-        %57:bool = gte %56, 0i
-        if %57 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    %58:ptr<function, i32, read_write> = access %x_103, %x_137
+    %59:i32 = load %x_101
+    store %58, %59
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %60:i32 = load %x_102
+        %61:bool = gte %60, 0i
+        if %61 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_147:i32 = load %x_102
-        %59:i32 = load %x_102
-        %60:i32 = sub %59, 1i
-        store %x_102, %60
-        %61:ptr<function, i32, read_write> = access %x_103, %x_147
-        %62:i32 = load %61
-        store %x_101, %62
-        %x_151:i32 = load %x_102
+        %62:i32 = load %x_102
+        %x_147:i32 = let %62
         %64:i32 = load %x_102
         %65:i32 = sub %64, 1i
         store %x_102, %65
-        %66:ptr<function, i32, read_write> = access %x_103, %x_151
+        %66:ptr<function, i32, read_write> = access %x_103, %x_147
         %67:i32 = load %66
-        store %x_100, %67
-        %68:i32 = load %x_100
-        store %x_105, %68
-        %69:i32 = load %x_101
-        store %x_106, %69
-        %70:i32 = load %x_106
-        %71:ptr<private, i32, read_write> = access %obj, 0u, %70
-        %72:i32 = load %71
-        store %x_92, %72
-        %73:i32 = load %x_105
-        %74:i32 = sub %73, 1i
-        store %x_93, %74
-        %75:i32 = load %x_105
-        store %x_94, %75
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
-            %76:i32 = load %x_94
-            %77:i32 = load %x_106
-            %78:i32 = sub %77, 1i
-            %79:bool = lte %76, %78
-            if %79 [t: %b13, f: %b14] {  # if_3
-              %b13 = block {  # true
+        store %x_101, %67
+        %68:i32 = load %x_102
+        %x_151:i32 = let %68
+        %70:i32 = load %x_102
+        %71:i32 = sub %70, 1i
+        store %x_102, %71
+        %72:ptr<function, i32, read_write> = access %x_103, %x_151
+        %73:i32 = load %72
+        store %x_100, %73
+        %74:i32 = load %x_100
+        store %x_105, %74
+        %75:i32 = load %x_101
+        store %x_106, %75
+        %76:i32 = load %x_106
+        %77:ptr<private, i32, read_write> = access %obj, 0u, %76
+        %78:i32 = load %77
+        store %x_92, %78
+        %79:i32 = load %x_105
+        %80:i32 = sub %79, 1i
+        store %x_93, %80
+        %81:i32 = load %x_105
+        store %x_94, %81
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
+            %82:i32 = load %x_94
+            %83:i32 = load %x_106
+            %84:i32 = sub %83, 1i
+            %85:bool = lte %82, %84
+            if %85 [t: $B13, f: $B14] {  # if_3
+              $B13: {  # true
                 exit_if  # if_3
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %80:i32 = load %x_94
-            %81:ptr<private, i32, read_write> = access %obj, 0u, %80
-            %82:i32 = load %81
-            %83:i32 = load %x_92
-            %84:bool = lte %82, %83
-            if %84 [t: %b15] {  # if_4
-              %b15 = block {  # true
-                %85:i32 = load %x_93
-                %86:i32 = add %85, 1i
-                store %x_93, %86
-                %87:i32 = load %x_93
-                store %x_95, %87
-                %88:i32 = load %x_94
-                store %x_96, %88
-                %89:i32 = load %x_95
-                %90:ptr<private, i32, read_write> = access %obj, 0u, %89
-                %91:i32 = load %90
-                store %x_91, %91
-                %x_186:i32 = load %x_95
-                %93:ptr<private, i32, read_write> = access %obj, 0u, %x_186
-                %94:i32 = load %x_96
-                %95:ptr<private, i32, read_write> = access %obj, 0u, %94
-                %96:i32 = load %95
-                store %93, %96
-                %x_191:i32 = load %x_96
-                %98:ptr<private, i32, read_write> = access %obj, 0u, %x_191
-                %99:i32 = load %x_91
-                store %98, %99
+            %86:i32 = load %x_94
+            %87:ptr<private, i32, read_write> = access %obj, 0u, %86
+            %88:i32 = load %87
+            %89:i32 = load %x_92
+            %90:bool = lte %88, %89
+            if %90 [t: $B15] {  # if_4
+              $B15: {  # true
+                %91:i32 = load %x_93
+                %92:i32 = add %91, 1i
+                store %x_93, %92
+                %93:i32 = load %x_93
+                store %x_95, %93
+                %94:i32 = load %x_94
+                store %x_96, %94
+                %95:i32 = load %x_95
+                %96:ptr<private, i32, read_write> = access %obj, 0u, %95
+                %97:i32 = load %96
+                store %x_91, %97
+                %98:i32 = load %x_95
+                %x_186:i32 = let %98
+                %100:ptr<private, i32, read_write> = access %obj, 0u, %x_186
+                %101:i32 = load %x_96
+                %102:ptr<private, i32, read_write> = access %obj, 0u, %101
+                %103:i32 = load %102
+                store %100, %103
+                %104:i32 = load %x_96
+                %x_191:i32 = let %104
+                %106:ptr<private, i32, read_write> = access %obj, 0u, %x_191
+                %107:i32 = load %x_91
+                store %106, %107
                 exit_if  # if_4
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %100:i32 = load %x_94
-            %101:i32 = add %100, 1i
-            store %x_94, %101
-            next_iteration %b11
+          $B12: {  # continuing
+            %108:i32 = load %x_94
+            %109:i32 = add %108, 1i
+            store %x_94, %109
+            next_iteration  # -> $B11
           }
         }
-        %102:i32 = load %x_93
-        %103:i32 = add %102, 1i
-        store %x_97, %103
-        %104:i32 = load %x_106
-        store %x_98, %104
-        %105:i32 = load %x_97
-        %106:ptr<private, i32, read_write> = access %obj, 0u, %105
-        %107:i32 = load %106
-        store %x_90, %107
-        %x_202:i32 = load %x_97
-        %109:ptr<private, i32, read_write> = access %obj, 0u, %x_202
-        %110:i32 = load %x_98
-        %111:ptr<private, i32, read_write> = access %obj, 0u, %110
-        %112:i32 = load %111
-        store %109, %112
-        %x_207:i32 = load %x_98
-        %114:ptr<private, i32, read_write> = access %obj, 0u, %x_207
-        %115:i32 = load %x_90
-        store %114, %115
-        %116:i32 = load %x_93
-        %117:i32 = add %116, 1i
-        store %x_99, %117
-        %118:i32 = load %x_99
-        store %x_104, %118
-        %119:i32 = load %x_104
-        %120:i32 = sub %119, 1i
-        %121:i32 = load %x_100
-        %122:bool = gt %120, %121
-        if %122 [t: %b16] {  # if_5
-          %b16 = block {  # true
-            %123:i32 = load %x_102
-            %x_220:i32 = add %123, 1i
+        %110:i32 = load %x_93
+        %111:i32 = add %110, 1i
+        store %x_97, %111
+        %112:i32 = load %x_106
+        store %x_98, %112
+        %113:i32 = load %x_97
+        %114:ptr<private, i32, read_write> = access %obj, 0u, %113
+        %115:i32 = load %114
+        store %x_90, %115
+        %116:i32 = load %x_97
+        %x_202:i32 = let %116
+        %118:ptr<private, i32, read_write> = access %obj, 0u, %x_202
+        %119:i32 = load %x_98
+        %120:ptr<private, i32, read_write> = access %obj, 0u, %119
+        %121:i32 = load %120
+        store %118, %121
+        %122:i32 = load %x_98
+        %x_207:i32 = let %122
+        %124:ptr<private, i32, read_write> = access %obj, 0u, %x_207
+        %125:i32 = load %x_90
+        store %124, %125
+        %126:i32 = load %x_93
+        %127:i32 = add %126, 1i
+        store %x_99, %127
+        %128:i32 = load %x_99
+        store %x_104, %128
+        %129:i32 = load %x_104
+        %130:i32 = sub %129, 1i
+        %131:i32 = load %x_100
+        %132:bool = gt %130, %131
+        if %132 [t: $B16] {  # if_5
+          $B16: {  # true
+            %133:i32 = load %x_102
+            %134:i32 = add %133, 1i
+            %x_220:i32 = let %134
             store %x_102, %x_220
-            %125:ptr<function, i32, read_write> = access %x_103, %x_220
-            %126:i32 = load %x_100
-            store %125, %126
-            %127:i32 = load %x_102
-            %x_224:i32 = add %127, 1i
+            %136:ptr<function, i32, read_write> = access %x_103, %x_220
+            %137:i32 = load %x_100
+            store %136, %137
+            %138:i32 = load %x_102
+            %139:i32 = add %138, 1i
+            %x_224:i32 = let %139
             store %x_102, %x_224
-            %129:ptr<function, i32, read_write> = access %x_103, %x_224
-            %130:i32 = load %x_104
-            %131:i32 = sub %130, 1i
-            store %129, %131
+            %141:ptr<function, i32, read_write> = access %x_103, %x_224
+            %142:i32 = load %x_104
+            %143:i32 = sub %142, 1i
+            store %141, %143
             exit_if  # if_5
           }
         }
-        %132:i32 = load %x_104
-        %133:i32 = add %132, 1i
-        %134:i32 = load %x_101
-        %135:bool = lt %133, %134
-        if %135 [t: %b17] {  # if_6
-          %b17 = block {  # true
-            %136:i32 = load %x_102
-            %x_235:i32 = add %136, 1i
+        %144:i32 = load %x_104
+        %145:i32 = add %144, 1i
+        %146:i32 = load %x_101
+        %147:bool = lt %145, %146
+        if %147 [t: $B17] {  # if_6
+          $B17: {  # true
+            %148:i32 = load %x_102
+            %149:i32 = add %148, 1i
+            %x_235:i32 = let %149
             store %x_102, %x_235
-            %138:ptr<function, i32, read_write> = access %x_103, %x_235
-            %139:i32 = load %x_104
-            %140:i32 = add %139, 1i
-            store %138, %140
-            %141:i32 = load %x_102
-            %x_240:i32 = add %141, 1i
+            %151:ptr<function, i32, read_write> = access %x_103, %x_235
+            %152:i32 = load %x_104
+            %153:i32 = add %152, 1i
+            store %151, %153
+            %154:i32 = load %x_102
+            %155:i32 = add %154, 1i
+            %x_240:i32 = let %155
             store %x_102, %x_240
-            %143:ptr<function, i32, read_write> = access %x_103, %x_240
-            %144:i32 = load %x_101
-            store %143, %144
+            %157:ptr<function, i32, read_write> = access %x_103, %x_240
+            %158:i32 = load %x_101
+            store %157, %158
             exit_if  # if_6
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B8: {  # continuing
+        next_iteration  # -> $B7
       }
     }
-    %145:vec4<f32> = load %x_GLF_FragCoord
-    %146:vec2<f32> = swizzle %145, xy
-    %147:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %148:vec2<f32> = load %147
-    %149:vec2<f32> = div %146, %148
-    store %uv, %149
+    %159:vec4<f32> = load %x_GLF_FragCoord
+    %160:vec2<f32> = swizzle %159, xy
+    %161:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %162:vec2<f32> = load %161
+    %163:vec2<f32> = div %160, %162
+    store %uv, %163
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %150:f32 = load_vector_element %color, 0u
-    %151:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %152:i32 = load %151
-    %153:f32 = convert %152
-    %154:f32 = add %150, %153
-    store_vector_element %color, 0u, %154
-    %155:f32 = load_vector_element %uv, 0u
-    %156:bool = gt %155, 0.25f
-    if %156 [t: %b18] {  # if_7
-      %b18 = block {  # true
-        %157:f32 = load_vector_element %color, 0u
-        %158:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %159:i32 = load %158
-        %160:f32 = convert %159
-        %161:f32 = add %157, %160
-        store_vector_element %color, 0u, %161
+    %164:f32 = load_vector_element %color, 0u
+    %165:f32 = let %164
+    %166:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %167:i32 = load %166
+    %168:f32 = convert %167
+    %169:f32 = add %165, %168
+    store_vector_element %color, 0u, %169
+    %170:f32 = load_vector_element %uv, 0u
+    %171:bool = gt %170, 0.25f
+    if %171 [t: $B18] {  # if_7
+      $B18: {  # true
+        %172:f32 = load_vector_element %color, 0u
+        %173:f32 = let %172
+        %174:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %175:i32 = load %174
+        %176:f32 = convert %175
+        %177:f32 = add %173, %176
+        store_vector_element %color, 0u, %177
         exit_if  # if_7
       }
     }
-    %162:f32 = load_vector_element %uv, 0u
-    %163:bool = gt %162, 0.5f
-    if %163 [t: %b19] {  # if_8
-      %b19 = block {  # true
-        %164:f32 = load_vector_element %color, 1u
-        %165:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %166:i32 = load %165
-        %167:f32 = convert %166
-        %168:f32 = add %164, %167
-        store_vector_element %color, 1u, %168
+    %178:f32 = load_vector_element %uv, 0u
+    %179:bool = gt %178, 0.5f
+    if %179 [t: $B19] {  # if_8
+      $B19: {  # true
+        %180:f32 = load_vector_element %color, 1u
+        %181:f32 = let %180
+        %182:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %183:i32 = load %182
+        %184:f32 = convert %183
+        %185:f32 = add %181, %184
+        store_vector_element %color, 1u, %185
         exit_if  # if_8
       }
     }
-    %169:f32 = load_vector_element %uv, 0u
-    %170:bool = gt %169, 0.75f
-    if %170 [t: %b20] {  # if_9
-      %b20 = block {  # true
-        %171:f32 = load_vector_element %color, 2u
-        %172:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %173:i32 = load %172
-        %174:f32 = convert %173
-        %175:f32 = add %171, %174
-        store_vector_element %color, 2u, %175
+    %186:f32 = load_vector_element %uv, 0u
+    %187:bool = gt %186, 0.75f
+    if %187 [t: $B20] {  # if_9
+      $B20: {  # true
+        %188:f32 = load_vector_element %color, 2u
+        %189:f32 = let %188
+        %190:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %191:i32 = load %190
+        %192:f32 = convert %191
+        %193:f32 = add %189, %192
+        store_vector_element %color, 2u, %193
         exit_if  # if_9
       }
     }
-    %176:f32 = load_vector_element %color, 1u
-    %177:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %178:i32 = load %177
-    %179:f32 = convert %178
-    %180:f32 = add %176, %179
-    store_vector_element %color, 1u, %180
-    %181:f32 = load_vector_element %uv, 1u
-    %182:bool = gt %181, 0.25f
-    if %182 [t: %b21] {  # if_10
-      %b21 = block {  # true
-        %183:f32 = load_vector_element %color, 0u
-        %184:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %185:i32 = load %184
-        %186:f32 = convert %185
-        %187:f32 = add %183, %186
-        store_vector_element %color, 0u, %187
+    %194:f32 = load_vector_element %color, 1u
+    %195:f32 = let %194
+    %196:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %197:i32 = load %196
+    %198:f32 = convert %197
+    %199:f32 = add %195, %198
+    store_vector_element %color, 1u, %199
+    %200:f32 = load_vector_element %uv, 1u
+    %201:bool = gt %200, 0.25f
+    if %201 [t: $B21] {  # if_10
+      $B21: {  # true
+        %202:f32 = load_vector_element %color, 0u
+        %203:f32 = let %202
+        %204:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %205:i32 = load %204
+        %206:f32 = convert %205
+        %207:f32 = add %203, %206
+        store_vector_element %color, 0u, %207
         exit_if  # if_10
       }
     }
-    %188:f32 = load_vector_element %uv, 1u
-    %189:bool = gt %188, 0.5f
-    if %189 [t: %b22] {  # if_11
-      %b22 = block {  # true
-        %190:f32 = load_vector_element %color, 1u
-        %191:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %192:i32 = load %191
-        %193:f32 = convert %192
-        %194:f32 = add %190, %193
-        store_vector_element %color, 1u, %194
+    %208:f32 = load_vector_element %uv, 1u
+    %209:bool = gt %208, 0.5f
+    if %209 [t: $B22] {  # if_11
+      $B22: {  # true
+        %210:f32 = load_vector_element %color, 1u
+        %211:f32 = let %210
+        %212:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %213:i32 = load %212
+        %214:f32 = convert %213
+        %215:f32 = add %211, %214
+        store_vector_element %color, 1u, %215
         exit_if  # if_11
       }
     }
-    %195:f32 = load_vector_element %uv, 1u
-    %196:bool = gt %195, 0.75f
-    if %196 [t: %b23] {  # if_12
-      %b23 = block {  # true
-        %197:f32 = load_vector_element %color, 2u
-        %198:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %199:i32 = load %198
-        %200:f32 = convert %199
-        %201:f32 = add %197, %200
-        store_vector_element %color, 2u, %201
+    %216:f32 = load_vector_element %uv, 1u
+    %217:bool = gt %216, 0.75f
+    if %217 [t: $B23] {  # if_12
+      $B23: {  # true
+        %218:f32 = load_vector_element %color, 2u
+        %219:f32 = let %218
+        %220:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %221:i32 = load %220
+        %222:f32 = convert %221
+        %223:f32 = add %219, %222
+        store_vector_element %color, 2u, %223
         exit_if  # if_12
       }
     }
-    %202:f32 = load_vector_element %color, 2u
-    %203:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %204:i32 = load %203
-    %205:f32 = convert %204
-    %206:f32 = add %202, %205
-    store_vector_element %color, 2u, %206
-    %207:f32 = load_vector_element %uv, 0u
-    %208:f32 = load_vector_element %uv, 1u
-    %209:f32 = sub %207, %208
-    %210:f32 = abs %209
-    %211:bool = lt %210, 0.25f
-    if %211 [t: %b24] {  # if_13
-      %b24 = block {  # true
-        %212:f32 = load_vector_element %color, 0u
-        %213:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %214:i32 = load %213
-        %215:f32 = convert %214
-        %216:f32 = add %212, %215
-        store_vector_element %color, 0u, %216
+    %224:f32 = load_vector_element %color, 2u
+    %225:f32 = let %224
+    %226:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %227:i32 = load %226
+    %228:f32 = convert %227
+    %229:f32 = add %225, %228
+    store_vector_element %color, 2u, %229
+    %230:f32 = load_vector_element %uv, 0u
+    %231:f32 = load_vector_element %uv, 1u
+    %232:f32 = sub %230, %231
+    %233:f32 = abs %232
+    %234:bool = lt %233, 0.25f
+    if %234 [t: $B24] {  # if_13
+      $B24: {  # true
+        %235:f32 = load_vector_element %color, 0u
+        %236:f32 = let %235
+        %237:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %238:i32 = load %237
+        %239:f32 = convert %238
+        %240:f32 = add %236, %239
+        store_vector_element %color, 0u, %240
         exit_if  # if_13
       }
     }
-    %217:vec3<f32> = load %color
-    %x_358:vec3<f32> = normalize %217
-    %219:f32 = access %x_358, 0u
-    %220:f32 = access %x_358, 1u
-    %221:f32 = access %x_358, 2u
-    %222:vec4<f32> = construct %219, %220, %221, 1.0f
-    store %frag_color, %222
-    %223:vec4<f32> = load %x_GLF_pos
-    store %gl_Position, %223
+    %241:vec3<f32> = load %color
+    %242:vec3<f32> = normalize %241
+    %x_358:vec3<f32> = let %242
+    %244:f32 = access %x_358, 0u
+    %245:f32 = access %x_358, 1u
+    %246:f32 = access %x_358, 2u
+    %247:vec4<f32> = construct %244, %245, %246, 1.0f
+    store %frag_color, %247
+    %248:vec4<f32> = load %x_GLF_pos
+    store %gl_Position, %248
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b25 {
-  %b25 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B25: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %226:void = call %main_1
-    %227:vec4<f32> = load %frag_color
-    %228:vec4<f32> = load %gl_Position
-    %229:main_out = construct %227, %228
-    ret %229
+    %251:void = call %main_1
+    %252:vec4<f32> = load %frag_color
+    %253:vec4<f32> = load %gl_Position
+    %254:main_out = construct %252, %253
+    ret %254
   }
 }
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b26 {
-  %b26 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B26: {
     %temp:ptr<function, i32, read_write> = var
-    %234:i32 = load %i
-    %235:ptr<private, i32, read_write> = access %obj, 0u, %234
-    %236:i32 = load %235
-    store %temp, %236
-    %x_369:i32 = load %i
-    %238:ptr<private, i32, read_write> = access %obj, 0u, %x_369
-    %239:i32 = load %j
-    %240:ptr<private, i32, read_write> = access %obj, 0u, %239
-    %241:i32 = load %240
-    store %238, %241
-    %x_374:i32 = load %j
-    %243:ptr<private, i32, read_write> = access %obj, 0u, %x_374
-    %244:i32 = load %temp
-    store %243, %244
+    %259:i32 = load %i
+    %260:ptr<private, i32, read_write> = access %obj, 0u, %259
+    %261:i32 = load %260
+    store %temp, %261
+    %262:i32 = load %i
+    %x_369:i32 = let %262
+    %264:ptr<private, i32, read_write> = access %obj, 0u, %x_369
+    %265:i32 = load %j
+    %266:ptr<private, i32, read_write> = access %obj, 0u, %265
+    %267:i32 = load %266
+    store %264, %267
+    %268:i32 = load %j
+    %x_374:i32 = let %268
+    %270:ptr<private, i32, read_write> = access %obj, 0u, %x_374
+    %271:i32 = load %temp
+    store %270, %271
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b27 {
-  %b27 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B27: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -437,69 +464,70 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %255:i32 = load %h
-    %256:ptr<private, i32, read_write> = access %obj, 0u, %255
-    %257:i32 = load %256
-    store %pivot, %257
-    %258:i32 = load %l
-    %259:i32 = sub %258, 1i
-    store %i_1, %259
-    %260:i32 = load %l
-    store %j_1, %260
-    loop [b: %b28, c: %b29] {  # loop_4
-      %b28 = block {  # body
-        %261:i32 = load %j_1
-        %262:i32 = load %h
-        %263:i32 = sub %262, 1i
-        %264:bool = lte %261, %263
-        if %264 [t: %b30, f: %b31] {  # if_14
-          %b30 = block {  # true
+    %282:i32 = load %h
+    %283:ptr<private, i32, read_write> = access %obj, 0u, %282
+    %284:i32 = load %283
+    store %pivot, %284
+    %285:i32 = load %l
+    %286:i32 = sub %285, 1i
+    store %i_1, %286
+    %287:i32 = load %l
+    store %j_1, %287
+    loop [b: $B28, c: $B29] {  # loop_4
+      $B28: {  # body
+        %288:i32 = load %j_1
+        %289:i32 = load %h
+        %290:i32 = sub %289, 1i
+        %291:bool = lte %288, %290
+        if %291 [t: $B30, f: $B31] {  # if_14
+          $B30: {  # true
             exit_if  # if_14
           }
-          %b31 = block {  # false
+          $B31: {  # false
             exit_loop  # loop_4
           }
         }
-        %265:i32 = load %j_1
-        %266:ptr<private, i32, read_write> = access %obj, 0u, %265
-        %267:i32 = load %266
-        %268:i32 = load %pivot
-        %269:bool = lte %267, %268
-        if %269 [t: %b32] {  # if_15
-          %b32 = block {  # true
-            %270:i32 = load %i_1
-            %271:i32 = add %270, 1i
-            store %i_1, %271
-            %272:i32 = load %i_1
-            store %param, %272
-            %273:i32 = load %j_1
-            store %param_1, %273
-            %274:void = call %swap_i1_i1_, %param, %param_1
+        %292:i32 = load %j_1
+        %293:ptr<private, i32, read_write> = access %obj, 0u, %292
+        %294:i32 = load %293
+        %295:i32 = load %pivot
+        %296:bool = lte %294, %295
+        if %296 [t: $B32] {  # if_15
+          $B32: {  # true
+            %297:i32 = load %i_1
+            %298:i32 = add %297, 1i
+            store %i_1, %298
+            %299:i32 = load %i_1
+            store %param, %299
+            %300:i32 = load %j_1
+            store %param_1, %300
+            %301:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_15
           }
         }
-        continue %b29
+        continue  # -> $B29
       }
-      %b29 = block {  # continuing
-        %275:i32 = load %j_1
-        %276:i32 = add %275, 1i
-        store %j_1, %276
-        next_iteration %b28
+      $B29: {  # continuing
+        %302:i32 = load %j_1
+        %303:i32 = add %302, 1i
+        store %j_1, %303
+        next_iteration  # -> $B28
       }
     }
-    %277:i32 = load %i_1
-    %278:i32 = add %277, 1i
-    store %param_2, %278
-    %279:i32 = load %h
-    store %param_3, %279
-    %280:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_411:i32 = load %i_1
-    %282:i32 = add %x_411, 1i
-    ret %282
+    %304:i32 = load %i_1
+    %305:i32 = add %304, 1i
+    store %param_2, %305
+    %306:i32 = load %h
+    store %param_3, %306
+    %307:void = call %swap_i1_i1_, %param_2, %param_3
+    %308:i32 = load %i_1
+    %x_411:i32 = let %308
+    %310:i32 = add %x_411, 1i
+    ret %310
   }
 }
-%quicksort_ = func():void -> %b33 {
-  %b33 = block {
+%quicksort_ = func():void {
+  $B33: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -510,98 +538,107 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %291:i32 = load %top
-    %x_415:i32 = add %291, 1i
+    %319:i32 = load %top
+    %320:i32 = add %319, 1i
+    %x_415:i32 = let %320
     store %top, %x_415
-    %293:ptr<function, i32, read_write> = access %stack, %x_415
-    %294:i32 = load %l_1
-    store %293, %294
-    %295:i32 = load %top
-    %x_419:i32 = add %295, 1i
+    %322:ptr<function, i32, read_write> = access %stack, %x_415
+    %323:i32 = load %l_1
+    store %322, %323
+    %324:i32 = load %top
+    %325:i32 = add %324, 1i
+    %x_419:i32 = let %325
     store %top, %x_419
-    %297:ptr<function, i32, read_write> = access %stack, %x_419
-    %298:i32 = load %h_1
-    store %297, %298
-    loop [b: %b34, c: %b35] {  # loop_5
-      %b34 = block {  # body
-        %299:i32 = load %top
-        %300:bool = gte %299, 0i
-        if %300 [t: %b36, f: %b37] {  # if_16
-          %b36 = block {  # true
+    %327:ptr<function, i32, read_write> = access %stack, %x_419
+    %328:i32 = load %h_1
+    store %327, %328
+    loop [b: $B34, c: $B35] {  # loop_5
+      $B34: {  # body
+        %329:i32 = load %top
+        %330:bool = gte %329, 0i
+        if %330 [t: $B36, f: $B37] {  # if_16
+          $B36: {  # true
             exit_if  # if_16
           }
-          %b37 = block {  # false
+          $B37: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_429:i32 = load %top
-        %302:i32 = load %top
-        %303:i32 = sub %302, 1i
-        store %top, %303
-        %304:ptr<function, i32, read_write> = access %stack, %x_429
-        %305:i32 = load %304
-        store %h_1, %305
-        %x_433:i32 = load %top
-        %307:i32 = load %top
-        %308:i32 = sub %307, 1i
-        store %top, %308
-        %309:ptr<function, i32, read_write> = access %stack, %x_433
-        %310:i32 = load %309
-        store %l_1, %310
-        %311:i32 = load %l_1
-        store %param_4, %311
-        %312:i32 = load %h_1
-        store %param_5, %312
-        %x_439:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %331:i32 = load %top
+        %x_429:i32 = let %331
+        %333:i32 = load %top
+        %334:i32 = sub %333, 1i
+        store %top, %334
+        %335:ptr<function, i32, read_write> = access %stack, %x_429
+        %336:i32 = load %335
+        store %h_1, %336
+        %337:i32 = load %top
+        %x_433:i32 = let %337
+        %339:i32 = load %top
+        %340:i32 = sub %339, 1i
+        store %top, %340
+        %341:ptr<function, i32, read_write> = access %stack, %x_433
+        %342:i32 = load %341
+        store %l_1, %342
+        %343:i32 = load %l_1
+        store %param_4, %343
+        %344:i32 = load %h_1
+        store %param_5, %344
+        %345:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_439:i32 = let %345
         store %p, %x_439
-        %314:i32 = load %p
-        %315:i32 = sub %314, 1i
-        %316:i32 = load %l_1
-        %317:bool = gt %315, %316
-        if %317 [t: %b38] {  # if_17
-          %b38 = block {  # true
-            %318:i32 = load %top
-            %x_447:i32 = add %318, 1i
+        %347:i32 = load %p
+        %348:i32 = sub %347, 1i
+        %349:i32 = load %l_1
+        %350:bool = gt %348, %349
+        if %350 [t: $B38] {  # if_17
+          $B38: {  # true
+            %351:i32 = load %top
+            %352:i32 = add %351, 1i
+            %x_447:i32 = let %352
             store %top, %x_447
-            %320:ptr<function, i32, read_write> = access %stack, %x_447
-            %321:i32 = load %l_1
-            store %320, %321
-            %322:i32 = load %top
-            %x_451:i32 = add %322, 1i
+            %354:ptr<function, i32, read_write> = access %stack, %x_447
+            %355:i32 = load %l_1
+            store %354, %355
+            %356:i32 = load %top
+            %357:i32 = add %356, 1i
+            %x_451:i32 = let %357
             store %top, %x_451
-            %324:ptr<function, i32, read_write> = access %stack, %x_451
-            %325:i32 = load %p
-            %326:i32 = sub %325, 1i
-            store %324, %326
+            %359:ptr<function, i32, read_write> = access %stack, %x_451
+            %360:i32 = load %p
+            %361:i32 = sub %360, 1i
+            store %359, %361
             exit_if  # if_17
           }
         }
-        %327:i32 = load %p
-        %328:i32 = add %327, 1i
-        %329:i32 = load %h_1
-        %330:bool = lt %328, %329
-        if %330 [t: %b39] {  # if_18
-          %b39 = block {  # true
-            %331:i32 = load %top
-            %x_462:i32 = add %331, 1i
+        %362:i32 = load %p
+        %363:i32 = add %362, 1i
+        %364:i32 = load %h_1
+        %365:bool = lt %363, %364
+        if %365 [t: $B39] {  # if_18
+          $B39: {  # true
+            %366:i32 = load %top
+            %367:i32 = add %366, 1i
+            %x_462:i32 = let %367
             store %top, %x_462
-            %333:ptr<function, i32, read_write> = access %stack, %x_462
-            %334:i32 = load %p
-            %335:i32 = add %334, 1i
-            store %333, %335
-            %336:i32 = load %top
-            %x_467:i32 = add %336, 1i
+            %369:ptr<function, i32, read_write> = access %stack, %x_462
+            %370:i32 = load %p
+            %371:i32 = add %370, 1i
+            store %369, %371
+            %372:i32 = load %top
+            %373:i32 = add %372, 1i
+            %x_467:i32 = let %373
             store %top, %x_467
-            %338:ptr<function, i32, read_write> = access %stack, %x_467
-            %339:i32 = load %h_1
-            store %338, %339
+            %375:ptr<function, i32, read_write> = access %stack, %x_467
+            %376:i32 = load %h_1
+            store %375, %376
             exit_if  # if_18
           }
         }
-        continue %b35
+        continue  # -> $B35
       }
-      %b35 = block {  # continuing
-        next_iteration %b34
+      $B35: {  # continuing
+        next_iteration  # -> $B34
       }
     }
     ret
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.msl
index 9745417..096187bd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -13,7 +13,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -22,8 +22,8 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_90:ptr<function, i32, read_write> = var
     %x_91:ptr<function, i32, read_write> = var
     %x_92:ptr<function, i32, read_write> = var
@@ -44,392 +44,502 @@
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %x_107:vec4<f32> = load %x_GLF_pos
-    %29:vec4<f32> = add %x_107, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %30:vec4<f32> = mul %29, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %30
+    %28:vec4<f32> = load %x_GLF_pos
+    %x_107:vec4<f32> = let %28
+    %30:vec4<f32> = add %x_107, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %31:vec4<f32> = mul %30, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %31
     store %i_2, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_114:i32 = load %i_2
-        %32:bool = lt %x_114, 10i
-        if %32 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %32:i32 = load %i_2
+        %x_114:i32 = let %32
+        %34:bool = lt %x_114, 10i
+        if %34 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_117:i32 = load %i_2
-        %x_118:i32 = load %i_2
-        %35:ptr<private, i32, read_write> = access %obj, 0u, %x_117
-        %36:i32 = sub 10i, %x_118
-        store %35, %36
-        %x_121:i32 = load %i_2
-        %x_122:i32 = load %i_2
-        %39:ptr<private, i32, read_write> = access %obj, 0u, %x_122
-        %x_124:i32 = load %39
-        %x_125:i32 = load %i_2
-        %42:ptr<private, i32, read_write> = access %obj, 0u, %x_125
-        %x_127:i32 = load %42
-        %44:ptr<private, i32, read_write> = access %obj, 0u, %x_121
-        %45:i32 = mul %x_124, %x_127
-        store %44, %45
-        continue %b4
+        %35:i32 = load %i_2
+        %x_117:i32 = let %35
+        %37:i32 = load %i_2
+        %x_118:i32 = let %37
+        %39:ptr<private, i32, read_write> = access %obj, 0u, %x_117
+        %40:i32 = sub 10i, %x_118
+        store %39, %40
+        %41:i32 = load %i_2
+        %x_121:i32 = let %41
+        %43:i32 = load %i_2
+        %x_122:i32 = let %43
+        %45:ptr<private, i32, read_write> = access %obj, 0u, %x_122
+        %46:i32 = load %45
+        %x_124:i32 = let %46
+        %48:i32 = load %i_2
+        %x_125:i32 = let %48
+        %50:ptr<private, i32, read_write> = access %obj, 0u, %x_125
+        %51:i32 = load %50
+        %x_127:i32 = let %51
+        %53:ptr<private, i32, read_write> = access %obj, 0u, %x_121
+        %54:i32 = mul %x_124, %x_127
+        store %53, %54
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_130:i32 = load %i_2
-        %47:i32 = add %x_130, 1i
-        store %i_2, %47
-        next_iteration %b3
+      $B4: {  # continuing
+        %55:i32 = load %i_2
+        %x_130:i32 = let %55
+        %57:i32 = add %x_130, 1i
+        store %i_2, %57
+        next_iteration  # -> $B3
       }
     }
     store %x_100, 0i
     store %x_101, 9i
     store %x_102, -1i
-    %x_132:i32 = load %x_102
-    %x_133:i32 = add %x_132, 1i
+    %58:i32 = load %x_102
+    %x_132:i32 = let %58
+    %60:i32 = add %x_132, 1i
+    %x_133:i32 = let %60
     store %x_102, %x_133
-    %x_134:i32 = load %x_100
-    %51:ptr<function, i32, read_write> = access %x_103, %x_133
-    store %51, %x_134
-    %x_136:i32 = load %x_102
-    %x_137:i32 = add %x_136, 1i
+    %62:i32 = load %x_100
+    %x_134:i32 = let %62
+    %64:ptr<function, i32, read_write> = access %x_103, %x_133
+    store %64, %x_134
+    %65:i32 = load %x_102
+    %x_136:i32 = let %65
+    %67:i32 = add %x_136, 1i
+    %x_137:i32 = let %67
     store %x_102, %x_137
-    %x_138:i32 = load %x_101
-    %55:ptr<function, i32, read_write> = access %x_103, %x_137
-    store %55, %x_138
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %x_144:i32 = load %x_102
-        %57:bool = gte %x_144, 0i
-        if %57 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    %69:i32 = load %x_101
+    %x_138:i32 = let %69
+    %71:ptr<function, i32, read_write> = access %x_103, %x_137
+    store %71, %x_138
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %72:i32 = load %x_102
+        %x_144:i32 = let %72
+        %74:bool = gte %x_144, 0i
+        if %74 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_147:i32 = load %x_102
-        %59:i32 = sub %x_147, 1i
-        store %x_102, %59
-        %60:ptr<function, i32, read_write> = access %x_103, %x_147
-        %x_150:i32 = load %60
+        %75:i32 = load %x_102
+        %x_147:i32 = let %75
+        %77:i32 = sub %x_147, 1i
+        store %x_102, %77
+        %78:ptr<function, i32, read_write> = access %x_103, %x_147
+        %79:i32 = load %78
+        %x_150:i32 = let %79
         store %x_101, %x_150
-        %x_151:i32 = load %x_102
-        %63:i32 = sub %x_151, 1i
-        store %x_102, %63
-        %64:ptr<function, i32, read_write> = access %x_103, %x_151
-        %x_154:i32 = load %64
+        %81:i32 = load %x_102
+        %x_151:i32 = let %81
+        %83:i32 = sub %x_151, 1i
+        store %x_102, %83
+        %84:ptr<function, i32, read_write> = access %x_103, %x_151
+        %85:i32 = load %84
+        %x_154:i32 = let %85
         store %x_100, %x_154
-        %x_155:i32 = load %x_100
+        %87:i32 = load %x_100
+        %x_155:i32 = let %87
         store %x_105, %x_155
-        %x_156:i32 = load %x_101
+        %89:i32 = load %x_101
+        %x_156:i32 = let %89
         store %x_106, %x_156
-        %x_157:i32 = load %x_106
-        %69:ptr<private, i32, read_write> = access %obj, 0u, %x_157
-        %x_159:i32 = load %69
+        %91:i32 = load %x_106
+        %x_157:i32 = let %91
+        %93:ptr<private, i32, read_write> = access %obj, 0u, %x_157
+        %94:i32 = load %93
+        %x_159:i32 = let %94
         store %x_92, %x_159
-        %x_160:i32 = load %x_105
-        %72:i32 = sub %x_160, 1i
-        store %x_93, %72
-        %x_162:i32 = load %x_105
+        %96:i32 = load %x_105
+        %x_160:i32 = let %96
+        %98:i32 = sub %x_160, 1i
+        store %x_93, %98
+        %99:i32 = load %x_105
+        %x_162:i32 = let %99
         store %x_94, %x_162
-        loop [b: %b11, c: %b12] {  # loop_3
-          %b11 = block {  # body
-            %x_167:i32 = load %x_94
-            %x_168:i32 = load %x_106
-            %76:i32 = sub %x_168, 1i
-            %77:bool = lte %x_167, %76
-            if %77 [t: %b13, f: %b14] {  # if_3
-              %b13 = block {  # true
+        loop [b: $B11, c: $B12] {  # loop_3
+          $B11: {  # body
+            %101:i32 = load %x_94
+            %x_167:i32 = let %101
+            %103:i32 = load %x_106
+            %x_168:i32 = let %103
+            %105:i32 = sub %x_168, 1i
+            %106:bool = lte %x_167, %105
+            if %106 [t: $B13, f: $B14] {  # if_3
+              $B13: {  # true
                 exit_if  # if_3
               }
-              %b14 = block {  # false
+              $B14: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_172:i32 = load %x_94
-            %79:ptr<private, i32, read_write> = access %obj, 0u, %x_172
-            %x_174:i32 = load %79
-            %x_175:i32 = load %x_92
-            %82:bool = lte %x_174, %x_175
-            if %82 [t: %b15] {  # if_4
-              %b15 = block {  # true
-                %x_179:i32 = load %x_93
-                %84:i32 = add %x_179, 1i
-                store %x_93, %84
-                %x_181:i32 = load %x_93
+            %107:i32 = load %x_94
+            %x_172:i32 = let %107
+            %109:ptr<private, i32, read_write> = access %obj, 0u, %x_172
+            %110:i32 = load %109
+            %x_174:i32 = let %110
+            %112:i32 = load %x_92
+            %x_175:i32 = let %112
+            %114:bool = lte %x_174, %x_175
+            if %114 [t: $B15] {  # if_4
+              $B15: {  # true
+                %115:i32 = load %x_93
+                %x_179:i32 = let %115
+                %117:i32 = add %x_179, 1i
+                store %x_93, %117
+                %118:i32 = load %x_93
+                %x_181:i32 = let %118
                 store %x_95, %x_181
-                %x_182:i32 = load %x_94
+                %120:i32 = load %x_94
+                %x_182:i32 = let %120
                 store %x_96, %x_182
-                %x_183:i32 = load %x_95
-                %88:ptr<private, i32, read_write> = access %obj, 0u, %x_183
-                %x_185:i32 = load %88
+                %122:i32 = load %x_95
+                %x_183:i32 = let %122
+                %124:ptr<private, i32, read_write> = access %obj, 0u, %x_183
+                %125:i32 = load %124
+                %x_185:i32 = let %125
                 store %x_91, %x_185
-                %x_186:i32 = load %x_95
-                %x_187:i32 = load %x_96
-                %92:ptr<private, i32, read_write> = access %obj, 0u, %x_187
-                %x_189:i32 = load %92
-                %94:ptr<private, i32, read_write> = access %obj, 0u, %x_186
-                store %94, %x_189
-                %x_191:i32 = load %x_96
-                %x_192:i32 = load %x_91
-                %97:ptr<private, i32, read_write> = access %obj, 0u, %x_191
-                store %97, %x_192
+                %127:i32 = load %x_95
+                %x_186:i32 = let %127
+                %129:i32 = load %x_96
+                %x_187:i32 = let %129
+                %131:ptr<private, i32, read_write> = access %obj, 0u, %x_187
+                %132:i32 = load %131
+                %x_189:i32 = let %132
+                %134:ptr<private, i32, read_write> = access %obj, 0u, %x_186
+                store %134, %x_189
+                %135:i32 = load %x_96
+                %x_191:i32 = let %135
+                %137:i32 = load %x_91
+                %x_192:i32 = let %137
+                %139:ptr<private, i32, read_write> = access %obj, 0u, %x_191
+                store %139, %x_192
                 exit_if  # if_4
               }
             }
-            continue %b12
+            continue  # -> $B12
           }
-          %b12 = block {  # continuing
-            %x_194:i32 = load %x_94
-            %99:i32 = add %x_194, 1i
-            store %x_94, %99
-            next_iteration %b11
+          $B12: {  # continuing
+            %140:i32 = load %x_94
+            %x_194:i32 = let %140
+            %142:i32 = add %x_194, 1i
+            store %x_94, %142
+            next_iteration  # -> $B11
           }
         }
-        %x_196:i32 = load %x_93
-        %101:i32 = add %x_196, 1i
-        store %x_97, %101
-        %x_198:i32 = load %x_106
+        %143:i32 = load %x_93
+        %x_196:i32 = let %143
+        %145:i32 = add %x_196, 1i
+        store %x_97, %145
+        %146:i32 = load %x_106
+        %x_198:i32 = let %146
         store %x_98, %x_198
-        %x_199:i32 = load %x_97
-        %104:ptr<private, i32, read_write> = access %obj, 0u, %x_199
-        %x_201:i32 = load %104
+        %148:i32 = load %x_97
+        %x_199:i32 = let %148
+        %150:ptr<private, i32, read_write> = access %obj, 0u, %x_199
+        %151:i32 = load %150
+        %x_201:i32 = let %151
         store %x_90, %x_201
-        %x_202:i32 = load %x_97
-        %x_203:i32 = load %x_98
-        %108:ptr<private, i32, read_write> = access %obj, 0u, %x_203
-        %x_205:i32 = load %108
-        %110:ptr<private, i32, read_write> = access %obj, 0u, %x_202
-        store %110, %x_205
-        %x_207:i32 = load %x_98
-        %x_208:i32 = load %x_90
-        %113:ptr<private, i32, read_write> = access %obj, 0u, %x_207
-        store %113, %x_208
-        %x_210:i32 = load %x_93
-        %115:i32 = add %x_210, 1i
-        store %x_99, %115
-        %x_212:i32 = load %x_99
+        %153:i32 = load %x_97
+        %x_202:i32 = let %153
+        %155:i32 = load %x_98
+        %x_203:i32 = let %155
+        %157:ptr<private, i32, read_write> = access %obj, 0u, %x_203
+        %158:i32 = load %157
+        %x_205:i32 = let %158
+        %160:ptr<private, i32, read_write> = access %obj, 0u, %x_202
+        store %160, %x_205
+        %161:i32 = load %x_98
+        %x_207:i32 = let %161
+        %163:i32 = load %x_90
+        %x_208:i32 = let %163
+        %165:ptr<private, i32, read_write> = access %obj, 0u, %x_207
+        store %165, %x_208
+        %166:i32 = load %x_93
+        %x_210:i32 = let %166
+        %168:i32 = add %x_210, 1i
+        store %x_99, %168
+        %169:i32 = load %x_99
+        %x_212:i32 = let %169
         store %x_104, %x_212
-        %x_213:i32 = load %x_104
-        %x_215:i32 = load %x_100
-        %119:i32 = sub %x_213, 1i
-        %120:bool = gt %119, %x_215
-        if %120 [t: %b16] {  # if_5
-          %b16 = block {  # true
-            %x_219:i32 = load %x_102
-            %x_220:i32 = add %x_219, 1i
+        %171:i32 = load %x_104
+        %x_213:i32 = let %171
+        %173:i32 = load %x_100
+        %x_215:i32 = let %173
+        %175:i32 = sub %x_213, 1i
+        %176:bool = gt %175, %x_215
+        if %176 [t: $B16] {  # if_5
+          $B16: {  # true
+            %177:i32 = load %x_102
+            %x_219:i32 = let %177
+            %179:i32 = add %x_219, 1i
+            %x_220:i32 = let %179
             store %x_102, %x_220
-            %x_221:i32 = load %x_100
-            %124:ptr<function, i32, read_write> = access %x_103, %x_220
-            store %124, %x_221
-            %x_223:i32 = load %x_102
-            %x_224:i32 = add %x_223, 1i
+            %181:i32 = load %x_100
+            %x_221:i32 = let %181
+            %183:ptr<function, i32, read_write> = access %x_103, %x_220
+            store %183, %x_221
+            %184:i32 = load %x_102
+            %x_223:i32 = let %184
+            %186:i32 = add %x_223, 1i
+            %x_224:i32 = let %186
             store %x_102, %x_224
-            %x_225:i32 = load %x_104
-            %128:ptr<function, i32, read_write> = access %x_103, %x_224
-            %129:i32 = sub %x_225, 1i
-            store %128, %129
+            %188:i32 = load %x_104
+            %x_225:i32 = let %188
+            %190:ptr<function, i32, read_write> = access %x_103, %x_224
+            %191:i32 = sub %x_225, 1i
+            store %190, %191
             exit_if  # if_5
           }
         }
-        %x_228:i32 = load %x_104
-        %x_230:i32 = load %x_101
-        %132:i32 = add %x_228, 1i
-        %133:bool = lt %132, %x_230
-        if %133 [t: %b17] {  # if_6
-          %b17 = block {  # true
-            %x_234:i32 = load %x_102
-            %x_235:i32 = add %x_234, 1i
+        %192:i32 = load %x_104
+        %x_228:i32 = let %192
+        %194:i32 = load %x_101
+        %x_230:i32 = let %194
+        %196:i32 = add %x_228, 1i
+        %197:bool = lt %196, %x_230
+        if %197 [t: $B17] {  # if_6
+          $B17: {  # true
+            %198:i32 = load %x_102
+            %x_234:i32 = let %198
+            %200:i32 = add %x_234, 1i
+            %x_235:i32 = let %200
             store %x_102, %x_235
-            %x_236:i32 = load %x_104
-            %137:ptr<function, i32, read_write> = access %x_103, %x_235
-            %138:i32 = add %x_236, 1i
-            store %137, %138
-            %x_239:i32 = load %x_102
-            %x_240:i32 = add %x_239, 1i
+            %202:i32 = load %x_104
+            %x_236:i32 = let %202
+            %204:ptr<function, i32, read_write> = access %x_103, %x_235
+            %205:i32 = add %x_236, 1i
+            store %204, %205
+            %206:i32 = load %x_102
+            %x_239:i32 = let %206
+            %208:i32 = add %x_239, 1i
+            %x_240:i32 = let %208
             store %x_102, %x_240
-            %x_241:i32 = load %x_101
-            %142:ptr<function, i32, read_write> = access %x_103, %x_240
-            store %142, %x_241
+            %210:i32 = load %x_101
+            %x_241:i32 = let %210
+            %212:ptr<function, i32, read_write> = access %x_103, %x_240
+            store %212, %x_241
             exit_if  # if_6
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        next_iteration %b7
+      $B8: {  # continuing
+        next_iteration  # -> $B7
       }
     }
-    %x_243:vec4<f32> = load %x_GLF_FragCoord
-    %144:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %x_246:vec2<f32> = load %144
-    %146:f32 = access %x_243, 0u
-    %147:f32 = access %x_243, 1u
-    %148:vec2<f32> = construct %146, %147
-    %149:vec2<f32> = div %148, %x_246
-    store %uv, %149
+    %213:vec4<f32> = load %x_GLF_FragCoord
+    %x_243:vec4<f32> = let %213
+    %215:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %216:vec2<f32> = load %215
+    %x_246:vec2<f32> = let %216
+    %218:f32 = access %x_243, 0u
+    %219:f32 = access %x_243, 1u
+    %220:vec2<f32> = construct %218, %219
+    %221:vec2<f32> = div %220, %x_246
+    store %uv, %221
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %150:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_249:i32 = load %150
-    %x_252:f32 = load_vector_element %color, 0u
-    %153:f32 = convert %x_249
-    %154:f32 = add %x_252, %153
-    store_vector_element %color, 0u, %154
-    %x_256:f32 = load_vector_element %uv, 0u
-    %156:bool = gt %x_256, 0.25f
-    if %156 [t: %b18] {  # if_7
-      %b18 = block {  # true
-        %157:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_261:i32 = load %157
-        %x_264:f32 = load_vector_element %color, 0u
-        %160:f32 = convert %x_261
-        %161:f32 = add %x_264, %160
-        store_vector_element %color, 0u, %161
+    %222:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %223:i32 = load %222
+    %x_249:i32 = let %223
+    %225:f32 = load_vector_element %color, 0u
+    %x_252:f32 = let %225
+    %227:f32 = convert %x_249
+    %228:f32 = add %x_252, %227
+    store_vector_element %color, 0u, %228
+    %229:f32 = load_vector_element %uv, 0u
+    %x_256:f32 = let %229
+    %231:bool = gt %x_256, 0.25f
+    if %231 [t: $B18] {  # if_7
+      $B18: {  # true
+        %232:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %233:i32 = load %232
+        %x_261:i32 = let %233
+        %235:f32 = load_vector_element %color, 0u
+        %x_264:f32 = let %235
+        %237:f32 = convert %x_261
+        %238:f32 = add %x_264, %237
+        store_vector_element %color, 0u, %238
         exit_if  # if_7
       }
     }
-    %x_268:f32 = load_vector_element %uv, 0u
-    %163:bool = gt %x_268, 0.5f
-    if %163 [t: %b19] {  # if_8
-      %b19 = block {  # true
-        %164:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_273:i32 = load %164
-        %x_276:f32 = load_vector_element %color, 1u
-        %167:f32 = convert %x_273
-        %168:f32 = add %x_276, %167
-        store_vector_element %color, 1u, %168
+    %239:f32 = load_vector_element %uv, 0u
+    %x_268:f32 = let %239
+    %241:bool = gt %x_268, 0.5f
+    if %241 [t: $B19] {  # if_8
+      $B19: {  # true
+        %242:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %243:i32 = load %242
+        %x_273:i32 = let %243
+        %245:f32 = load_vector_element %color, 1u
+        %x_276:f32 = let %245
+        %247:f32 = convert %x_273
+        %248:f32 = add %x_276, %247
+        store_vector_element %color, 1u, %248
         exit_if  # if_8
       }
     }
-    %x_280:f32 = load_vector_element %uv, 0u
-    %170:bool = gt %x_280, 0.75f
-    if %170 [t: %b20] {  # if_9
-      %b20 = block {  # true
-        %171:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_285:i32 = load %171
-        %x_288:f32 = load_vector_element %color, 2u
-        %174:f32 = convert %x_285
-        %175:f32 = add %x_288, %174
-        store_vector_element %color, 2u, %175
+    %249:f32 = load_vector_element %uv, 0u
+    %x_280:f32 = let %249
+    %251:bool = gt %x_280, 0.75f
+    if %251 [t: $B20] {  # if_9
+      $B20: {  # true
+        %252:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %253:i32 = load %252
+        %x_285:i32 = let %253
+        %255:f32 = load_vector_element %color, 2u
+        %x_288:f32 = let %255
+        %257:f32 = convert %x_285
+        %258:f32 = add %x_288, %257
+        store_vector_element %color, 2u, %258
         exit_if  # if_9
       }
     }
-    %176:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_292:i32 = load %176
-    %x_295:f32 = load_vector_element %color, 1u
-    %179:f32 = convert %x_292
-    %180:f32 = add %x_295, %179
-    store_vector_element %color, 1u, %180
-    %x_299:f32 = load_vector_element %uv, 1u
-    %182:bool = gt %x_299, 0.25f
-    if %182 [t: %b21] {  # if_10
-      %b21 = block {  # true
-        %183:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_304:i32 = load %183
-        %x_307:f32 = load_vector_element %color, 0u
-        %186:f32 = convert %x_304
-        %187:f32 = add %x_307, %186
-        store_vector_element %color, 0u, %187
+    %259:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %260:i32 = load %259
+    %x_292:i32 = let %260
+    %262:f32 = load_vector_element %color, 1u
+    %x_295:f32 = let %262
+    %264:f32 = convert %x_292
+    %265:f32 = add %x_295, %264
+    store_vector_element %color, 1u, %265
+    %266:f32 = load_vector_element %uv, 1u
+    %x_299:f32 = let %266
+    %268:bool = gt %x_299, 0.25f
+    if %268 [t: $B21] {  # if_10
+      $B21: {  # true
+        %269:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %270:i32 = load %269
+        %x_304:i32 = let %270
+        %272:f32 = load_vector_element %color, 0u
+        %x_307:f32 = let %272
+        %274:f32 = convert %x_304
+        %275:f32 = add %x_307, %274
+        store_vector_element %color, 0u, %275
         exit_if  # if_10
       }
     }
-    %x_311:f32 = load_vector_element %uv, 1u
-    %189:bool = gt %x_311, 0.5f
-    if %189 [t: %b22] {  # if_11
-      %b22 = block {  # true
-        %190:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_316:i32 = load %190
-        %x_319:f32 = load_vector_element %color, 1u
-        %193:f32 = convert %x_316
-        %194:f32 = add %x_319, %193
-        store_vector_element %color, 1u, %194
+    %276:f32 = load_vector_element %uv, 1u
+    %x_311:f32 = let %276
+    %278:bool = gt %x_311, 0.5f
+    if %278 [t: $B22] {  # if_11
+      $B22: {  # true
+        %279:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %280:i32 = load %279
+        %x_316:i32 = let %280
+        %282:f32 = load_vector_element %color, 1u
+        %x_319:f32 = let %282
+        %284:f32 = convert %x_316
+        %285:f32 = add %x_319, %284
+        store_vector_element %color, 1u, %285
         exit_if  # if_11
       }
     }
-    %x_323:f32 = load_vector_element %uv, 1u
-    %196:bool = gt %x_323, 0.75f
-    if %196 [t: %b23] {  # if_12
-      %b23 = block {  # true
-        %197:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_328:i32 = load %197
-        %x_331:f32 = load_vector_element %color, 2u
-        %200:f32 = convert %x_328
-        %201:f32 = add %x_331, %200
-        store_vector_element %color, 2u, %201
+    %286:f32 = load_vector_element %uv, 1u
+    %x_323:f32 = let %286
+    %288:bool = gt %x_323, 0.75f
+    if %288 [t: $B23] {  # if_12
+      $B23: {  # true
+        %289:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %290:i32 = load %289
+        %x_328:i32 = let %290
+        %292:f32 = load_vector_element %color, 2u
+        %x_331:f32 = let %292
+        %294:f32 = convert %x_328
+        %295:f32 = add %x_331, %294
+        store_vector_element %color, 2u, %295
         exit_if  # if_12
       }
     }
-    %202:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_335:i32 = load %202
-    %x_338:f32 = load_vector_element %color, 2u
-    %205:f32 = convert %x_335
-    %206:f32 = add %x_338, %205
-    store_vector_element %color, 2u, %206
-    %x_342:f32 = load_vector_element %uv, 0u
-    %x_344:f32 = load_vector_element %uv, 1u
-    %209:f32 = sub %x_342, %x_344
-    %210:f32 = abs %209
-    %211:bool = lt %210, 0.25f
-    if %211 [t: %b24] {  # if_13
-      %b24 = block {  # true
-        %212:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_351:i32 = load %212
-        %x_354:f32 = load_vector_element %color, 0u
-        %215:f32 = convert %x_351
-        %216:f32 = add %x_354, %215
-        store_vector_element %color, 0u, %216
+    %296:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %297:i32 = load %296
+    %x_335:i32 = let %297
+    %299:f32 = load_vector_element %color, 2u
+    %x_338:f32 = let %299
+    %301:f32 = convert %x_335
+    %302:f32 = add %x_338, %301
+    store_vector_element %color, 2u, %302
+    %303:f32 = load_vector_element %uv, 0u
+    %x_342:f32 = let %303
+    %305:f32 = load_vector_element %uv, 1u
+    %x_344:f32 = let %305
+    %307:f32 = sub %x_342, %x_344
+    %308:f32 = abs %307
+    %309:bool = lt %308, 0.25f
+    if %309 [t: $B24] {  # if_13
+      $B24: {  # true
+        %310:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %311:i32 = load %310
+        %x_351:i32 = let %311
+        %313:f32 = load_vector_element %color, 0u
+        %x_354:f32 = let %313
+        %315:f32 = convert %x_351
+        %316:f32 = add %x_354, %315
+        store_vector_element %color, 0u, %316
         exit_if  # if_13
       }
     }
-    %x_357:vec3<f32> = load %color
-    %x_358:vec3<f32> = normalize %x_357
-    %219:f32 = access %x_358, 0u
-    %220:f32 = access %x_358, 1u
-    %221:f32 = access %x_358, 2u
-    %222:vec4<f32> = construct %219, %220, %221, 1.0f
-    store %frag_color, %222
-    %x_363:vec4<f32> = load %x_GLF_pos
+    %317:vec3<f32> = load %color
+    %x_357:vec3<f32> = let %317
+    %319:vec3<f32> = normalize %x_357
+    %x_358:vec3<f32> = let %319
+    %321:f32 = access %x_358, 0u
+    %322:f32 = access %x_358, 1u
+    %323:f32 = access %x_358, 2u
+    %324:vec4<f32> = construct %321, %322, %323, 1.0f
+    store %frag_color, %324
+    %325:vec4<f32> = load %x_GLF_pos
+    %x_363:vec4<f32> = let %325
     store %gl_Position, %x_363
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b25 {
-  %b25 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B25: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %226:void = call %main_1
-    %227:vec4<f32> = load %frag_color
-    %228:vec4<f32> = load %gl_Position
-    %229:main_out = construct %227, %228
-    ret %229
+    %329:void = call %main_1
+    %330:vec4<f32> = load %frag_color
+    %331:vec4<f32> = load %gl_Position
+    %332:main_out = construct %330, %331
+    ret %332
   }
 }
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b26 {
-  %b26 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B26: {
     %temp:ptr<function, i32, read_write> = var
-    %x_366:i32 = load %i
-    %235:ptr<private, i32, read_write> = access %obj, 0u, %x_366
-    %x_368:i32 = load %235
+    %337:i32 = load %i
+    %x_366:i32 = let %337
+    %339:ptr<private, i32, read_write> = access %obj, 0u, %x_366
+    %340:i32 = load %339
+    %x_368:i32 = let %340
     store %temp, %x_368
-    %x_369:i32 = load %i
-    %x_370:i32 = load %j
-    %239:ptr<private, i32, read_write> = access %obj, 0u, %x_370
-    %x_372:i32 = load %239
-    %241:ptr<private, i32, read_write> = access %obj, 0u, %x_369
-    store %241, %x_372
-    %x_374:i32 = load %j
-    %x_375:i32 = load %temp
-    %244:ptr<private, i32, read_write> = access %obj, 0u, %x_374
-    store %244, %x_375
+    %342:i32 = load %i
+    %x_369:i32 = let %342
+    %344:i32 = load %j
+    %x_370:i32 = let %344
+    %346:ptr<private, i32, read_write> = access %obj, 0u, %x_370
+    %347:i32 = load %346
+    %x_372:i32 = let %347
+    %349:ptr<private, i32, read_write> = access %obj, 0u, %x_369
+    store %349, %x_372
+    %350:i32 = load %j
+    %x_374:i32 = let %350
+    %352:i32 = load %temp
+    %x_375:i32 = let %352
+    %354:ptr<private, i32, read_write> = access %obj, 0u, %x_374
+    store %354, %x_375
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b27 {
-  %b27 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B27: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -437,69 +547,85 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_378:i32 = load %h
-    %256:ptr<private, i32, read_write> = access %obj, 0u, %x_378
-    %x_380:i32 = load %256
+    %365:i32 = load %h
+    %x_378:i32 = let %365
+    %367:ptr<private, i32, read_write> = access %obj, 0u, %x_378
+    %368:i32 = load %367
+    %x_380:i32 = let %368
     store %pivot, %x_380
-    %x_381:i32 = load %l
-    %259:i32 = sub %x_381, 1i
-    store %i_1, %259
-    %x_383:i32 = load %l
+    %370:i32 = load %l
+    %x_381:i32 = let %370
+    %372:i32 = sub %x_381, 1i
+    store %i_1, %372
+    %373:i32 = load %l
+    %x_383:i32 = let %373
     store %j_1, %x_383
-    loop [b: %b28, c: %b29] {  # loop_4
-      %b28 = block {  # body
-        %x_388:i32 = load %j_1
-        %x_389:i32 = load %h
-        %263:i32 = sub %x_389, 1i
-        %264:bool = lte %x_388, %263
-        if %264 [t: %b30, f: %b31] {  # if_14
-          %b30 = block {  # true
+    loop [b: $B28, c: $B29] {  # loop_4
+      $B28: {  # body
+        %375:i32 = load %j_1
+        %x_388:i32 = let %375
+        %377:i32 = load %h
+        %x_389:i32 = let %377
+        %379:i32 = sub %x_389, 1i
+        %380:bool = lte %x_388, %379
+        if %380 [t: $B30, f: $B31] {  # if_14
+          $B30: {  # true
             exit_if  # if_14
           }
-          %b31 = block {  # false
+          $B31: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_393:i32 = load %j_1
-        %266:ptr<private, i32, read_write> = access %obj, 0u, %x_393
-        %x_395:i32 = load %266
-        %x_396:i32 = load %pivot
-        %269:bool = lte %x_395, %x_396
-        if %269 [t: %b32] {  # if_15
-          %b32 = block {  # true
-            %x_400:i32 = load %i_1
-            %271:i32 = add %x_400, 1i
-            store %i_1, %271
-            %x_402:i32 = load %i_1
+        %381:i32 = load %j_1
+        %x_393:i32 = let %381
+        %383:ptr<private, i32, read_write> = access %obj, 0u, %x_393
+        %384:i32 = load %383
+        %x_395:i32 = let %384
+        %386:i32 = load %pivot
+        %x_396:i32 = let %386
+        %388:bool = lte %x_395, %x_396
+        if %388 [t: $B32] {  # if_15
+          $B32: {  # true
+            %389:i32 = load %i_1
+            %x_400:i32 = let %389
+            %391:i32 = add %x_400, 1i
+            store %i_1, %391
+            %392:i32 = load %i_1
+            %x_402:i32 = let %392
             store %param, %x_402
-            %x_403:i32 = load %j_1
+            %394:i32 = load %j_1
+            %x_403:i32 = let %394
             store %param_1, %x_403
-            %274:void = call %swap_i1_i1_, %param, %param_1
+            %396:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_15
           }
         }
-        continue %b29
+        continue  # -> $B29
       }
-      %b29 = block {  # continuing
-        %x_405:i32 = load %j_1
-        %276:i32 = add %x_405, 1i
-        store %j_1, %276
-        next_iteration %b28
+      $B29: {  # continuing
+        %397:i32 = load %j_1
+        %x_405:i32 = let %397
+        %399:i32 = add %x_405, 1i
+        store %j_1, %399
+        next_iteration  # -> $B28
       }
     }
-    %x_407:i32 = load %i_1
-    %278:i32 = add %x_407, 1i
-    store %param_2, %278
-    %x_409:i32 = load %h
+    %400:i32 = load %i_1
+    %x_407:i32 = let %400
+    %402:i32 = add %x_407, 1i
+    store %param_2, %402
+    %403:i32 = load %h
+    %x_409:i32 = let %403
     store %param_3, %x_409
-    %280:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_411:i32 = load %i_1
-    %282:i32 = add %x_411, 1i
-    ret %282
+    %405:void = call %swap_i1_i1_, %param_2, %param_3
+    %406:i32 = load %i_1
+    %x_411:i32 = let %406
+    %408:i32 = add %x_411, 1i
+    ret %408
   }
 }
-%quicksort_ = func():void -> %b33 {
-  %b33 = block {
+%quicksort_ = func():void {
+  $B33: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -510,96 +636,126 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_414:i32 = load %top
-    %x_415:i32 = add %x_414, 1i
+    %417:i32 = load %top
+    %x_414:i32 = let %417
+    %419:i32 = add %x_414, 1i
+    %x_415:i32 = let %419
     store %top, %x_415
-    %x_416:i32 = load %l_1
-    %294:ptr<function, i32, read_write> = access %stack, %x_415
-    store %294, %x_416
-    %x_418:i32 = load %top
-    %x_419:i32 = add %x_418, 1i
+    %421:i32 = load %l_1
+    %x_416:i32 = let %421
+    %423:ptr<function, i32, read_write> = access %stack, %x_415
+    store %423, %x_416
+    %424:i32 = load %top
+    %x_418:i32 = let %424
+    %426:i32 = add %x_418, 1i
+    %x_419:i32 = let %426
     store %top, %x_419
-    %x_420:i32 = load %h_1
-    %298:ptr<function, i32, read_write> = access %stack, %x_419
-    store %298, %x_420
-    loop [b: %b34, c: %b35] {  # loop_5
-      %b34 = block {  # body
-        %x_426:i32 = load %top
-        %300:bool = gte %x_426, 0i
-        if %300 [t: %b36, f: %b37] {  # if_16
-          %b36 = block {  # true
+    %428:i32 = load %h_1
+    %x_420:i32 = let %428
+    %430:ptr<function, i32, read_write> = access %stack, %x_419
+    store %430, %x_420
+    loop [b: $B34, c: $B35] {  # loop_5
+      $B34: {  # body
+        %431:i32 = load %top
+        %x_426:i32 = let %431
+        %433:bool = gte %x_426, 0i
+        if %433 [t: $B36, f: $B37] {  # if_16
+          $B36: {  # true
             exit_if  # if_16
           }
-          %b37 = block {  # false
+          $B37: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_429:i32 = load %top
-        %302:i32 = sub %x_429, 1i
-        store %top, %302
-        %303:ptr<function, i32, read_write> = access %stack, %x_429
-        %x_432:i32 = load %303
+        %434:i32 = load %top
+        %x_429:i32 = let %434
+        %436:i32 = sub %x_429, 1i
+        store %top, %436
+        %437:ptr<function, i32, read_write> = access %stack, %x_429
+        %438:i32 = load %437
+        %x_432:i32 = let %438
         store %h_1, %x_432
-        %x_433:i32 = load %top
-        %306:i32 = sub %x_433, 1i
-        store %top, %306
-        %307:ptr<function, i32, read_write> = access %stack, %x_433
-        %x_436:i32 = load %307
+        %440:i32 = load %top
+        %x_433:i32 = let %440
+        %442:i32 = sub %x_433, 1i
+        store %top, %442
+        %443:ptr<function, i32, read_write> = access %stack, %x_433
+        %444:i32 = load %443
+        %x_436:i32 = let %444
         store %l_1, %x_436
-        %x_437:i32 = load %l_1
+        %446:i32 = load %l_1
+        %x_437:i32 = let %446
         store %param_4, %x_437
-        %x_438:i32 = load %h_1
+        %448:i32 = load %h_1
+        %x_438:i32 = let %448
         store %param_5, %x_438
-        %x_439:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %450:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_439:i32 = let %450
         store %p, %x_439
-        %x_440:i32 = load %p
-        %x_442:i32 = load %l_1
-        %314:i32 = sub %x_440, 1i
-        %315:bool = gt %314, %x_442
-        if %315 [t: %b38] {  # if_17
-          %b38 = block {  # true
-            %x_446:i32 = load %top
-            %x_447:i32 = add %x_446, 1i
+        %452:i32 = load %p
+        %x_440:i32 = let %452
+        %454:i32 = load %l_1
+        %x_442:i32 = let %454
+        %456:i32 = sub %x_440, 1i
+        %457:bool = gt %456, %x_442
+        if %457 [t: $B38] {  # if_17
+          $B38: {  # true
+            %458:i32 = load %top
+            %x_446:i32 = let %458
+            %460:i32 = add %x_446, 1i
+            %x_447:i32 = let %460
             store %top, %x_447
-            %x_448:i32 = load %l_1
-            %319:ptr<function, i32, read_write> = access %stack, %x_447
-            store %319, %x_448
-            %x_450:i32 = load %top
-            %x_451:i32 = add %x_450, 1i
+            %462:i32 = load %l_1
+            %x_448:i32 = let %462
+            %464:ptr<function, i32, read_write> = access %stack, %x_447
+            store %464, %x_448
+            %465:i32 = load %top
+            %x_450:i32 = let %465
+            %467:i32 = add %x_450, 1i
+            %x_451:i32 = let %467
             store %top, %x_451
-            %x_452:i32 = load %p
-            %323:ptr<function, i32, read_write> = access %stack, %x_451
-            %324:i32 = sub %x_452, 1i
-            store %323, %324
+            %469:i32 = load %p
+            %x_452:i32 = let %469
+            %471:ptr<function, i32, read_write> = access %stack, %x_451
+            %472:i32 = sub %x_452, 1i
+            store %471, %472
             exit_if  # if_17
           }
         }
-        %x_455:i32 = load %p
-        %x_457:i32 = load %h_1
-        %327:i32 = add %x_455, 1i
-        %328:bool = lt %327, %x_457
-        if %328 [t: %b39] {  # if_18
-          %b39 = block {  # true
-            %x_461:i32 = load %top
-            %x_462:i32 = add %x_461, 1i
+        %473:i32 = load %p
+        %x_455:i32 = let %473
+        %475:i32 = load %h_1
+        %x_457:i32 = let %475
+        %477:i32 = add %x_455, 1i
+        %478:bool = lt %477, %x_457
+        if %478 [t: $B39] {  # if_18
+          $B39: {  # true
+            %479:i32 = load %top
+            %x_461:i32 = let %479
+            %481:i32 = add %x_461, 1i
+            %x_462:i32 = let %481
             store %top, %x_462
-            %x_463:i32 = load %p
-            %332:ptr<function, i32, read_write> = access %stack, %x_462
-            %333:i32 = add %x_463, 1i
-            store %332, %333
-            %x_466:i32 = load %top
-            %x_467:i32 = add %x_466, 1i
+            %483:i32 = load %p
+            %x_463:i32 = let %483
+            %485:ptr<function, i32, read_write> = access %stack, %x_462
+            %486:i32 = add %x_463, 1i
+            store %485, %486
+            %487:i32 = load %top
+            %x_466:i32 = let %487
+            %489:i32 = add %x_466, 1i
+            %x_467:i32 = let %489
             store %top, %x_467
-            %x_468:i32 = load %h_1
-            %337:ptr<function, i32, read_write> = access %stack, %x_467
-            store %337, %x_468
+            %491:i32 = load %h_1
+            %x_468:i32 = let %491
+            %493:ptr<function, i32, read_write> = access %stack, %x_467
+            store %493, %x_468
             exit_if  # if_18
           }
         }
-        continue %b35
+        continue  # -> $B35
       }
-      %b35 = block {  # continuing
-        next_iteration %b34
+      $B35: {  # continuing
+        next_iteration  # -> $B34
       }
     }
     ret
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.msl
index 0649103..df43f6a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -13,7 +13,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -22,8 +22,8 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %x_314:ptr<function, i32, read_write> = var
     %x_315:ptr<function, i32, read_write> = var
     %pivot:ptr<function, i32, read_write> = var
@@ -42,17 +42,17 @@
     store %i_1, %23
     %24:i32 = load %l
     store %j_1, %24
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %25:i32 = load %j_1
         %26:i32 = load %h
         %27:i32 = sub %26, 1i
         %28:bool = lte %25, %27
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %28 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -61,8 +61,8 @@
         %31:i32 = load %30
         %32:i32 = load %pivot
         %33:bool = lte %31, %32
-        if %33 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %33 [t: $B7] {  # if_2
+          $B7: {  # true
             %34:i32 = load %i_1
             %35:i32 = add %34, 1i
             store %i_1, %35
@@ -74,62 +74,67 @@
             %39:ptr<private, i32, read_write> = access %obj, 0u, %38
             %40:i32 = load %39
             store %x_315, %40
-            %x_345:i32 = load %param
-            %42:ptr<private, i32, read_write> = access %obj, 0u, %x_345
-            %43:i32 = load %param_1
-            %44:ptr<private, i32, read_write> = access %obj, 0u, %43
-            %45:i32 = load %44
-            store %42, %45
-            %x_350:i32 = load %param_1
-            %47:ptr<private, i32, read_write> = access %obj, 0u, %x_350
-            %48:i32 = load %x_315
-            store %47, %48
+            %41:i32 = load %param
+            %x_345:i32 = let %41
+            %43:ptr<private, i32, read_write> = access %obj, 0u, %x_345
+            %44:i32 = load %param_1
+            %45:ptr<private, i32, read_write> = access %obj, 0u, %44
+            %46:i32 = load %45
+            store %43, %46
+            %47:i32 = load %param_1
+            %x_350:i32 = let %47
+            %49:ptr<private, i32, read_write> = access %obj, 0u, %x_350
+            %50:i32 = load %x_315
+            store %49, %50
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %49:i32 = load %j_1
-        %50:i32 = add %49, 1i
-        store %j_1, %50
-        next_iteration %b3
+      $B4: {  # continuing
+        %51:i32 = load %j_1
+        %52:i32 = add %51, 1i
+        store %j_1, %52
+        next_iteration  # -> $B3
       }
     }
-    %51:i32 = load %i_1
-    %52:i32 = add %51, 1i
-    store %param_2, %52
-    %53:i32 = load %h
-    store %param_3, %53
-    %54:i32 = load %param_2
-    %55:ptr<private, i32, read_write> = access %obj, 0u, %54
-    %56:i32 = load %55
-    store %x_314, %56
-    %x_361:i32 = load %param_2
-    %58:ptr<private, i32, read_write> = access %obj, 0u, %x_361
-    %59:i32 = load %param_3
-    %60:ptr<private, i32, read_write> = access %obj, 0u, %59
-    %61:i32 = load %60
-    store %58, %61
-    %x_366:i32 = load %param_3
-    %63:ptr<private, i32, read_write> = access %obj, 0u, %x_366
-    %64:i32 = load %x_314
-    store %63, %64
-    if false [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %53:i32 = load %i_1
+    %54:i32 = add %53, 1i
+    store %param_2, %54
+    %55:i32 = load %h
+    store %param_3, %55
+    %56:i32 = load %param_2
+    %57:ptr<private, i32, read_write> = access %obj, 0u, %56
+    %58:i32 = load %57
+    store %x_314, %58
+    %59:i32 = load %param_2
+    %x_361:i32 = let %59
+    %61:ptr<private, i32, read_write> = access %obj, 0u, %x_361
+    %62:i32 = load %param_3
+    %63:ptr<private, i32, read_write> = access %obj, 0u, %62
+    %64:i32 = load %63
+    store %61, %64
+    %65:i32 = load %param_3
+    %x_366:i32 = let %65
+    %67:ptr<private, i32, read_write> = access %obj, 0u, %x_366
+    %68:i32 = load %x_314
+    store %67, %68
+    if false [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %x_372:i32 = load %i_1
-        %66:i32 = add %x_372, 1i
-        ret %66
+      $B9: {  # false
+        %69:i32 = load %i_1
+        %x_372:i32 = let %69
+        %71:i32 = add %x_372, 1i
+        ret %71
       }
     }
     ret 0i
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %x_91:ptr<function, i32, read_write> = var
     %x_92:ptr<function, i32, read_write> = var
     %x_93:ptr<function, i32, read_write> = var
@@ -140,307 +145,331 @@
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %78:vec4<f32> = load %x_GLF_pos
-    %79:vec4<f32> = add %78, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %80:vec4<f32> = mul %79, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %80
+    %83:vec4<f32> = load %x_GLF_pos
+    %84:vec4<f32> = add %83, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %85:vec4<f32> = mul %84, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %85
     store %i_2, 0i
-    loop [b: %b11, c: %b12] {  # loop_2
-      %b11 = block {  # body
-        %81:i32 = load %i_2
-        %82:bool = lt %81, 10i
-        if %82 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
+    loop [b: $B11, c: $B12] {  # loop_2
+      $B11: {  # body
+        %86:i32 = load %i_2
+        %87:bool = lt %86, 10i
+        if %87 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
             exit_if  # if_4
           }
-          %b14 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_108:i32 = load %i_2
-        %84:ptr<private, i32, read_write> = access %obj, 0u, %x_108
-        %85:i32 = load %i_2
-        %86:i32 = sub 10i, %85
-        store %84, %86
-        %x_112:i32 = load %i_2
-        %88:ptr<private, i32, read_write> = access %obj, 0u, %x_112
-        %89:i32 = load %i_2
-        %90:ptr<private, i32, read_write> = access %obj, 0u, %89
-        %91:i32 = load %90
-        %92:i32 = load %i_2
-        %93:ptr<private, i32, read_write> = access %obj, 0u, %92
-        %94:i32 = load %93
-        %95:i32 = mul %91, %94
-        store %88, %95
-        continue %b12
-      }
-      %b12 = block {  # continuing
+        %88:i32 = load %i_2
+        %x_108:i32 = let %88
+        %90:ptr<private, i32, read_write> = access %obj, 0u, %x_108
+        %91:i32 = load %i_2
+        %92:i32 = sub 10i, %91
+        store %90, %92
+        %93:i32 = load %i_2
+        %x_112:i32 = let %93
+        %95:ptr<private, i32, read_write> = access %obj, 0u, %x_112
         %96:i32 = load %i_2
-        %97:i32 = add %96, 1i
-        store %i_2, %97
-        next_iteration %b11
+        %97:ptr<private, i32, read_write> = access %obj, 0u, %96
+        %98:i32 = load %97
+        %99:i32 = load %i_2
+        %100:ptr<private, i32, read_write> = access %obj, 0u, %99
+        %101:i32 = load %100
+        %102:i32 = mul %98, %101
+        store %95, %102
+        continue  # -> $B12
+      }
+      $B12: {  # continuing
+        %103:i32 = load %i_2
+        %104:i32 = add %103, 1i
+        store %i_2, %104
+        next_iteration  # -> $B11
       }
     }
     store %x_91, 0i
     store %x_92, 9i
     store %x_93, -1i
-    %98:i32 = load %x_93
-    %x_124:i32 = add %98, 1i
+    %105:i32 = load %x_93
+    %106:i32 = add %105, 1i
+    %x_124:i32 = let %106
     store %x_93, %x_124
-    %100:ptr<function, i32, read_write> = access %x_94, %x_124
-    %101:i32 = load %x_91
-    store %100, %101
-    %102:i32 = load %x_93
-    %x_128:i32 = add %102, 1i
+    %108:ptr<function, i32, read_write> = access %x_94, %x_124
+    %109:i32 = load %x_91
+    store %108, %109
+    %110:i32 = load %x_93
+    %111:i32 = add %110, 1i
+    %x_128:i32 = let %111
     store %x_93, %x_128
-    %104:ptr<function, i32, read_write> = access %x_94, %x_128
-    %105:i32 = load %x_92
-    store %104, %105
-    loop [b: %b15, c: %b16] {  # loop_3
-      %b15 = block {  # body
-        %106:i32 = load %x_93
-        %107:bool = gte %106, 0i
-        if %107 [t: %b17, f: %b18] {  # if_5
-          %b17 = block {  # true
+    %113:ptr<function, i32, read_write> = access %x_94, %x_128
+    %114:i32 = load %x_92
+    store %113, %114
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %115:i32 = load %x_93
+        %116:bool = gte %115, 0i
+        if %116 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
             exit_if  # if_5
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_138:i32 = load %x_93
-        %109:i32 = load %x_93
-        %110:i32 = sub %109, 1i
-        store %x_93, %110
-        %111:ptr<function, i32, read_write> = access %x_94, %x_138
-        %112:i32 = load %111
-        store %x_92, %112
-        %x_142:i32 = load %x_93
-        %114:i32 = load %x_93
-        %115:i32 = sub %114, 1i
-        store %x_93, %115
-        %116:ptr<function, i32, read_write> = access %x_94, %x_142
-        %117:i32 = load %116
-        store %x_91, %117
-        %118:i32 = load %x_91
-        store %x_96, %118
-        %119:i32 = load %x_92
-        store %x_97, %119
-        %x_148:i32 = call %performPartition_i1_i1_, %x_96, %x_97
+        %117:i32 = load %x_93
+        %x_138:i32 = let %117
+        %119:i32 = load %x_93
+        %120:i32 = sub %119, 1i
+        store %x_93, %120
+        %121:ptr<function, i32, read_write> = access %x_94, %x_138
+        %122:i32 = load %121
+        store %x_92, %122
+        %123:i32 = load %x_93
+        %x_142:i32 = let %123
+        %125:i32 = load %x_93
+        %126:i32 = sub %125, 1i
+        store %x_93, %126
+        %127:ptr<function, i32, read_write> = access %x_94, %x_142
+        %128:i32 = load %127
+        store %x_91, %128
+        %129:i32 = load %x_91
+        store %x_96, %129
+        %130:i32 = load %x_92
+        store %x_97, %130
+        %131:i32 = call %performPartition_i1_i1_, %x_96, %x_97
+        %x_148:i32 = let %131
         store %x_95, %x_148
-        %121:i32 = load %x_95
-        %122:i32 = sub %121, 1i
-        %123:i32 = load %x_91
-        %124:bool = gt %122, %123
-        if %124 [t: %b19] {  # if_6
-          %b19 = block {  # true
-            %125:i32 = load %x_93
-            %x_156:i32 = add %125, 1i
+        %133:i32 = load %x_95
+        %134:i32 = sub %133, 1i
+        %135:i32 = load %x_91
+        %136:bool = gt %134, %135
+        if %136 [t: $B19] {  # if_6
+          $B19: {  # true
+            %137:i32 = load %x_93
+            %138:i32 = add %137, 1i
+            %x_156:i32 = let %138
             store %x_93, %x_156
-            %127:ptr<function, i32, read_write> = access %x_94, %x_156
-            %128:i32 = load %x_91
-            store %127, %128
-            %129:i32 = load %x_93
-            %x_160:i32 = add %129, 1i
+            %140:ptr<function, i32, read_write> = access %x_94, %x_156
+            %141:i32 = load %x_91
+            store %140, %141
+            %142:i32 = load %x_93
+            %143:i32 = add %142, 1i
+            %x_160:i32 = let %143
             store %x_93, %x_160
-            %131:ptr<function, i32, read_write> = access %x_94, %x_160
-            %132:i32 = load %x_95
-            %133:i32 = sub %132, 1i
-            store %131, %133
+            %145:ptr<function, i32, read_write> = access %x_94, %x_160
+            %146:i32 = load %x_95
+            %147:i32 = sub %146, 1i
+            store %145, %147
             exit_if  # if_6
           }
         }
-        %134:i32 = load %x_95
-        %135:i32 = add %134, 1i
-        %136:i32 = load %x_92
-        %137:bool = lt %135, %136
-        if %137 [t: %b20] {  # if_7
-          %b20 = block {  # true
-            %138:i32 = load %x_93
-            %x_171:i32 = add %138, 1i
+        %148:i32 = load %x_95
+        %149:i32 = add %148, 1i
+        %150:i32 = load %x_92
+        %151:bool = lt %149, %150
+        if %151 [t: $B20] {  # if_7
+          $B20: {  # true
+            %152:i32 = load %x_93
+            %153:i32 = add %152, 1i
+            %x_171:i32 = let %153
             store %x_93, %x_171
-            %140:ptr<function, i32, read_write> = access %x_94, %x_171
-            %141:i32 = load %x_95
-            %142:i32 = add %141, 1i
-            store %140, %142
-            %143:i32 = load %x_93
-            %x_176:i32 = add %143, 1i
+            %155:ptr<function, i32, read_write> = access %x_94, %x_171
+            %156:i32 = load %x_95
+            %157:i32 = add %156, 1i
+            store %155, %157
+            %158:i32 = load %x_93
+            %159:i32 = add %158, 1i
+            %x_176:i32 = let %159
             store %x_93, %x_176
-            %145:ptr<function, i32, read_write> = access %x_94, %x_176
-            %146:i32 = load %x_92
-            store %145, %146
+            %161:ptr<function, i32, read_write> = access %x_94, %x_176
+            %162:i32 = load %x_92
+            store %161, %162
             exit_if  # if_7
           }
         }
-        continue %b16
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        next_iteration %b15
+      $B16: {  # continuing
+        next_iteration  # -> $B15
       }
     }
-    %147:vec4<f32> = load %x_GLF_FragCoord
-    %148:vec2<f32> = swizzle %147, xy
-    %149:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %150:vec2<f32> = load %149
-    %151:vec2<f32> = div %148, %150
-    store %uv, %151
+    %163:vec4<f32> = load %x_GLF_FragCoord
+    %164:vec2<f32> = swizzle %163, xy
+    %165:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %166:vec2<f32> = load %165
+    %167:vec2<f32> = div %164, %166
+    store %uv, %167
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %152:f32 = load_vector_element %color, 0u
-    %153:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %154:i32 = load %153
-    %155:f32 = convert %154
-    %156:f32 = add %152, %155
-    store_vector_element %color, 0u, %156
-    %157:f32 = load_vector_element %uv, 0u
-    %158:bool = gt %157, 0.25f
-    if %158 [t: %b21] {  # if_8
-      %b21 = block {  # true
-        %159:f32 = load_vector_element %color, 0u
-        %160:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %161:i32 = load %160
-        %162:f32 = convert %161
-        %163:f32 = add %159, %162
-        store_vector_element %color, 0u, %163
+    %168:f32 = load_vector_element %color, 0u
+    %169:f32 = let %168
+    %170:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %171:i32 = load %170
+    %172:f32 = convert %171
+    %173:f32 = add %169, %172
+    store_vector_element %color, 0u, %173
+    %174:f32 = load_vector_element %uv, 0u
+    %175:bool = gt %174, 0.25f
+    if %175 [t: $B21] {  # if_8
+      $B21: {  # true
+        %176:f32 = load_vector_element %color, 0u
+        %177:f32 = let %176
+        %178:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %179:i32 = load %178
+        %180:f32 = convert %179
+        %181:f32 = add %177, %180
+        store_vector_element %color, 0u, %181
         exit_if  # if_8
       }
     }
-    %164:f32 = load_vector_element %uv, 0u
-    %165:bool = gt %164, 0.5f
-    if %165 [t: %b22] {  # if_9
-      %b22 = block {  # true
-        %166:f32 = load_vector_element %color, 1u
-        %167:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %168:i32 = load %167
-        %169:f32 = convert %168
-        %170:f32 = add %166, %169
-        store_vector_element %color, 1u, %170
-        exit_if  # if_9
-      }
-    }
-    %171:f32 = load_vector_element %uv, 0u
-    %172:bool = gt %171, 0.75f
-    if %172 [t: %b23] {  # if_10
-      %b23 = block {  # true
-        %173:f32 = load_vector_element %color, 2u
-        %174:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %175:i32 = load %174
-        %176:f32 = convert %175
-        %177:f32 = add %173, %176
-        store_vector_element %color, 2u, %177
-        exit_if  # if_10
-      }
-    }
-    %178:f32 = load_vector_element %color, 1u
-    %179:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %180:i32 = load %179
-    %181:f32 = convert %180
-    %182:f32 = add %178, %181
-    store_vector_element %color, 1u, %182
-    %183:f32 = load_vector_element %uv, 1u
-    %184:bool = gt %183, 0.25f
-    if %184 [t: %b24] {  # if_11
-      %b24 = block {  # true
-        %185:f32 = load_vector_element %color, 0u
-        %186:ptr<private, i32, read_write> = access %obj, 0u, 5i
+    %182:f32 = load_vector_element %uv, 0u
+    %183:bool = gt %182, 0.5f
+    if %183 [t: $B22] {  # if_9
+      $B22: {  # true
+        %184:f32 = load_vector_element %color, 1u
+        %185:f32 = let %184
+        %186:ptr<private, i32, read_write> = access %obj, 0u, 2i
         %187:i32 = load %186
         %188:f32 = convert %187
         %189:f32 = add %185, %188
-        store_vector_element %color, 0u, %189
+        store_vector_element %color, 1u, %189
+        exit_if  # if_9
+      }
+    }
+    %190:f32 = load_vector_element %uv, 0u
+    %191:bool = gt %190, 0.75f
+    if %191 [t: $B23] {  # if_10
+      $B23: {  # true
+        %192:f32 = load_vector_element %color, 2u
+        %193:f32 = let %192
+        %194:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %195:i32 = load %194
+        %196:f32 = convert %195
+        %197:f32 = add %193, %196
+        store_vector_element %color, 2u, %197
+        exit_if  # if_10
+      }
+    }
+    %198:f32 = load_vector_element %color, 1u
+    %199:f32 = let %198
+    %200:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %201:i32 = load %200
+    %202:f32 = convert %201
+    %203:f32 = add %199, %202
+    store_vector_element %color, 1u, %203
+    %204:f32 = load_vector_element %uv, 1u
+    %205:bool = gt %204, 0.25f
+    if %205 [t: $B24] {  # if_11
+      $B24: {  # true
+        %206:f32 = load_vector_element %color, 0u
+        %207:f32 = let %206
+        %208:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %209:i32 = load %208
+        %210:f32 = convert %209
+        %211:f32 = add %207, %210
+        store_vector_element %color, 0u, %211
         exit_if  # if_11
       }
     }
-    %190:f32 = load_vector_element %uv, 1u
-    %191:bool = gt %190, 0.5f
-    if %191 [t: %b25] {  # if_12
-      %b25 = block {  # true
-        %192:f32 = load_vector_element %color, 1u
-        %193:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %194:i32 = load %193
-        %195:f32 = convert %194
-        %196:f32 = add %192, %195
-        store_vector_element %color, 1u, %196
+    %212:f32 = load_vector_element %uv, 1u
+    %213:bool = gt %212, 0.5f
+    if %213 [t: $B25] {  # if_12
+      $B25: {  # true
+        %214:f32 = load_vector_element %color, 1u
+        %215:f32 = let %214
+        %216:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %217:i32 = load %216
+        %218:f32 = convert %217
+        %219:f32 = add %215, %218
+        store_vector_element %color, 1u, %219
         exit_if  # if_12
       }
     }
-    %197:f32 = load_vector_element %uv, 1u
-    %198:bool = gt %197, 0.75f
-    if %198 [t: %b26] {  # if_13
-      %b26 = block {  # true
-        %199:f32 = load_vector_element %color, 2u
-        %200:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %201:i32 = load %200
-        %202:f32 = convert %201
-        %203:f32 = add %199, %202
-        store_vector_element %color, 2u, %203
+    %220:f32 = load_vector_element %uv, 1u
+    %221:bool = gt %220, 0.75f
+    if %221 [t: $B26] {  # if_13
+      $B26: {  # true
+        %222:f32 = load_vector_element %color, 2u
+        %223:f32 = let %222
+        %224:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %225:i32 = load %224
+        %226:f32 = convert %225
+        %227:f32 = add %223, %226
+        store_vector_element %color, 2u, %227
         exit_if  # if_13
       }
     }
-    %204:f32 = load_vector_element %color, 2u
-    %205:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %206:i32 = load %205
-    %207:f32 = convert %206
-    %208:f32 = add %204, %207
-    store_vector_element %color, 2u, %208
-    %209:f32 = load_vector_element %uv, 0u
-    %210:f32 = load_vector_element %uv, 1u
-    %211:f32 = sub %209, %210
-    %212:f32 = abs %211
-    %213:bool = lt %212, 0.25f
-    if %213 [t: %b27] {  # if_14
-      %b27 = block {  # true
-        %214:f32 = load_vector_element %color, 0u
-        %215:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %216:i32 = load %215
-        %217:f32 = convert %216
-        %218:f32 = add %214, %217
-        store_vector_element %color, 0u, %218
+    %228:f32 = load_vector_element %color, 2u
+    %229:f32 = let %228
+    %230:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %231:i32 = load %230
+    %232:f32 = convert %231
+    %233:f32 = add %229, %232
+    store_vector_element %color, 2u, %233
+    %234:f32 = load_vector_element %uv, 0u
+    %235:f32 = load_vector_element %uv, 1u
+    %236:f32 = sub %234, %235
+    %237:f32 = abs %236
+    %238:bool = lt %237, 0.25f
+    if %238 [t: $B27] {  # if_14
+      $B27: {  # true
+        %239:f32 = load_vector_element %color, 0u
+        %240:f32 = let %239
+        %241:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %242:i32 = load %241
+        %243:f32 = convert %242
+        %244:f32 = add %240, %243
+        store_vector_element %color, 0u, %244
         exit_if  # if_14
       }
     }
-    %219:vec3<f32> = load %color
-    %x_294:vec3<f32> = normalize %219
-    %221:f32 = access %x_294, 0u
-    %222:f32 = access %x_294, 1u
-    %223:f32 = access %x_294, 2u
-    %224:vec4<f32> = construct %221, %222, %223, 1.0f
-    store %frag_color, %224
-    %225:vec4<f32> = load %x_GLF_pos
-    store %gl_Position, %225
+    %245:vec3<f32> = load %color
+    %246:vec3<f32> = normalize %245
+    %x_294:vec3<f32> = let %246
+    %248:f32 = access %x_294, 0u
+    %249:f32 = access %x_294, 1u
+    %250:f32 = access %x_294, 2u
+    %251:vec4<f32> = construct %248, %249, %250, 1.0f
+    store %frag_color, %251
+    %252:vec4<f32> = load %x_GLF_pos
+    store %gl_Position, %252
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B28: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %228:void = call %main_1
-    %229:vec4<f32> = load %frag_color
-    %230:vec4<f32> = load %gl_Position
-    %231:main_out = construct %229, %230
-    ret %231
+    %255:void = call %main_1
+    %256:vec4<f32> = load %frag_color
+    %257:vec4<f32> = load %gl_Position
+    %258:main_out = construct %256, %257
+    ret %258
   }
 }
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b29 {
-  %b29 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B29: {
     %temp:ptr<function, i32, read_write> = var
-    %236:i32 = load %i
-    %237:ptr<private, i32, read_write> = access %obj, 0u, %236
-    %238:i32 = load %237
-    store %temp, %238
-    %x_305:i32 = load %i
-    %240:ptr<private, i32, read_write> = access %obj, 0u, %x_305
-    %241:i32 = load %j
-    %242:ptr<private, i32, read_write> = access %obj, 0u, %241
-    %243:i32 = load %242
-    store %240, %243
-    %x_310:i32 = load %j
-    %245:ptr<private, i32, read_write> = access %obj, 0u, %x_310
-    %246:i32 = load %temp
-    store %245, %246
+    %263:i32 = load %i
+    %264:ptr<private, i32, read_write> = access %obj, 0u, %263
+    %265:i32 = load %264
+    store %temp, %265
+    %266:i32 = load %i
+    %x_305:i32 = let %266
+    %268:ptr<private, i32, read_write> = access %obj, 0u, %x_305
+    %269:i32 = load %j
+    %270:ptr<private, i32, read_write> = access %obj, 0u, %269
+    %271:i32 = load %270
+    store %268, %271
+    %272:i32 = load %j
+    %x_310:i32 = let %272
+    %274:ptr<private, i32, read_write> = access %obj, 0u, %x_310
+    %275:i32 = load %temp
+    store %274, %275
     ret
   }
 }
-%quicksort_ = func():void -> %b30 {
-  %b30 = block {
+%quicksort_ = func():void {
+  $B30: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -451,98 +480,107 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %255:i32 = load %top
-    %x_377:i32 = add %255, 1i
+    %284:i32 = load %top
+    %285:i32 = add %284, 1i
+    %x_377:i32 = let %285
     store %top, %x_377
-    %257:ptr<function, i32, read_write> = access %stack, %x_377
-    %258:i32 = load %l_1
-    store %257, %258
-    %259:i32 = load %top
-    %x_381:i32 = add %259, 1i
+    %287:ptr<function, i32, read_write> = access %stack, %x_377
+    %288:i32 = load %l_1
+    store %287, %288
+    %289:i32 = load %top
+    %290:i32 = add %289, 1i
+    %x_381:i32 = let %290
     store %top, %x_381
-    %261:ptr<function, i32, read_write> = access %stack, %x_381
-    %262:i32 = load %h_1
-    store %261, %262
-    loop [b: %b31, c: %b32] {  # loop_4
-      %b31 = block {  # body
-        %263:i32 = load %top
-        %264:bool = gte %263, 0i
-        if %264 [t: %b33, f: %b34] {  # if_15
-          %b33 = block {  # true
+    %292:ptr<function, i32, read_write> = access %stack, %x_381
+    %293:i32 = load %h_1
+    store %292, %293
+    loop [b: $B31, c: $B32] {  # loop_4
+      $B31: {  # body
+        %294:i32 = load %top
+        %295:bool = gte %294, 0i
+        if %295 [t: $B33, f: $B34] {  # if_15
+          $B33: {  # true
             exit_if  # if_15
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_391:i32 = load %top
-        %266:i32 = load %top
-        %267:i32 = sub %266, 1i
-        store %top, %267
-        %268:ptr<function, i32, read_write> = access %stack, %x_391
-        %269:i32 = load %268
-        store %h_1, %269
-        %x_395:i32 = load %top
-        %271:i32 = load %top
-        %272:i32 = sub %271, 1i
-        store %top, %272
-        %273:ptr<function, i32, read_write> = access %stack, %x_395
-        %274:i32 = load %273
-        store %l_1, %274
-        %275:i32 = load %l_1
-        store %param_4, %275
-        %276:i32 = load %h_1
-        store %param_5, %276
-        %x_401:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %296:i32 = load %top
+        %x_391:i32 = let %296
+        %298:i32 = load %top
+        %299:i32 = sub %298, 1i
+        store %top, %299
+        %300:ptr<function, i32, read_write> = access %stack, %x_391
+        %301:i32 = load %300
+        store %h_1, %301
+        %302:i32 = load %top
+        %x_395:i32 = let %302
+        %304:i32 = load %top
+        %305:i32 = sub %304, 1i
+        store %top, %305
+        %306:ptr<function, i32, read_write> = access %stack, %x_395
+        %307:i32 = load %306
+        store %l_1, %307
+        %308:i32 = load %l_1
+        store %param_4, %308
+        %309:i32 = load %h_1
+        store %param_5, %309
+        %310:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_401:i32 = let %310
         store %p, %x_401
-        %278:i32 = load %p
-        %279:i32 = sub %278, 1i
-        %280:i32 = load %l_1
-        %281:bool = gt %279, %280
-        if %281 [t: %b35] {  # if_16
-          %b35 = block {  # true
-            %282:i32 = load %top
-            %x_409:i32 = add %282, 1i
+        %312:i32 = load %p
+        %313:i32 = sub %312, 1i
+        %314:i32 = load %l_1
+        %315:bool = gt %313, %314
+        if %315 [t: $B35] {  # if_16
+          $B35: {  # true
+            %316:i32 = load %top
+            %317:i32 = add %316, 1i
+            %x_409:i32 = let %317
             store %top, %x_409
-            %284:ptr<function, i32, read_write> = access %stack, %x_409
-            %285:i32 = load %l_1
-            store %284, %285
-            %286:i32 = load %top
-            %x_413:i32 = add %286, 1i
+            %319:ptr<function, i32, read_write> = access %stack, %x_409
+            %320:i32 = load %l_1
+            store %319, %320
+            %321:i32 = load %top
+            %322:i32 = add %321, 1i
+            %x_413:i32 = let %322
             store %top, %x_413
-            %288:ptr<function, i32, read_write> = access %stack, %x_413
-            %289:i32 = load %p
-            %290:i32 = sub %289, 1i
-            store %288, %290
+            %324:ptr<function, i32, read_write> = access %stack, %x_413
+            %325:i32 = load %p
+            %326:i32 = sub %325, 1i
+            store %324, %326
             exit_if  # if_16
           }
         }
-        %291:i32 = load %p
-        %292:i32 = add %291, 1i
-        %293:i32 = load %h_1
-        %294:bool = lt %292, %293
-        if %294 [t: %b36] {  # if_17
-          %b36 = block {  # true
-            %295:i32 = load %top
-            %x_424:i32 = add %295, 1i
+        %327:i32 = load %p
+        %328:i32 = add %327, 1i
+        %329:i32 = load %h_1
+        %330:bool = lt %328, %329
+        if %330 [t: $B36] {  # if_17
+          $B36: {  # true
+            %331:i32 = load %top
+            %332:i32 = add %331, 1i
+            %x_424:i32 = let %332
             store %top, %x_424
-            %297:ptr<function, i32, read_write> = access %stack, %x_424
-            %298:i32 = load %p
-            %299:i32 = add %298, 1i
-            store %297, %299
-            %300:i32 = load %top
-            %x_429:i32 = add %300, 1i
+            %334:ptr<function, i32, read_write> = access %stack, %x_424
+            %335:i32 = load %p
+            %336:i32 = add %335, 1i
+            store %334, %336
+            %337:i32 = load %top
+            %338:i32 = add %337, 1i
+            %x_429:i32 = let %338
             store %top, %x_429
-            %302:ptr<function, i32, read_write> = access %stack, %x_429
-            %303:i32 = load %h_1
-            store %302, %303
+            %340:ptr<function, i32, read_write> = access %stack, %x_429
+            %341:i32 = load %h_1
+            store %340, %341
             exit_if  # if_17
           }
         }
-        continue %b32
+        continue  # -> $B32
       }
-      %b32 = block {  # continuing
-        next_iteration %b31
+      $B32: {  # continuing
+        next_iteration  # -> $B31
       }
     }
     ret
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.msl
index 23914dc..44ad617 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-if-false-else-return/2.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -13,7 +13,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -22,8 +22,8 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b2 {
-  %b2 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B2: {
     %x_314:ptr<function, i32, read_write> = var
     %x_315:ptr<function, i32, read_write> = var
     %pivot:ptr<function, i32, read_write> = var
@@ -33,103 +33,133 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_316:i32 = load %h
-    %20:ptr<private, i32, read_write> = access %obj, 0u, %x_316
-    %x_318:i32 = load %20
+    %19:i32 = load %h
+    %x_316:i32 = let %19
+    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_316
+    %22:i32 = load %21
+    %x_318:i32 = let %22
     store %pivot, %x_318
-    %x_319:i32 = load %l
-    %23:i32 = sub %x_319, 1i
-    store %i_1, %23
-    %x_321:i32 = load %l
+    %24:i32 = load %l
+    %x_319:i32 = let %24
+    %26:i32 = sub %x_319, 1i
+    store %i_1, %26
+    %27:i32 = load %l
+    %x_321:i32 = let %27
     store %j_1, %x_321
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_326:i32 = load %j_1
-        %x_327:i32 = load %h
-        %27:i32 = sub %x_327, 1i
-        %28:bool = lte %x_326, %27
-        if %28 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %29:i32 = load %j_1
+        %x_326:i32 = let %29
+        %31:i32 = load %h
+        %x_327:i32 = let %31
+        %33:i32 = sub %x_327, 1i
+        %34:bool = lte %x_326, %33
+        if %34 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_331:i32 = load %j_1
-        %30:ptr<private, i32, read_write> = access %obj, 0u, %x_331
-        %x_333:i32 = load %30
-        %x_334:i32 = load %pivot
-        %33:bool = lte %x_333, %x_334
-        if %33 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %x_338:i32 = load %i_1
-            %35:i32 = add %x_338, 1i
-            store %i_1, %35
-            %x_340:i32 = load %i_1
+        %35:i32 = load %j_1
+        %x_331:i32 = let %35
+        %37:ptr<private, i32, read_write> = access %obj, 0u, %x_331
+        %38:i32 = load %37
+        %x_333:i32 = let %38
+        %40:i32 = load %pivot
+        %x_334:i32 = let %40
+        %42:bool = lte %x_333, %x_334
+        if %42 [t: $B7] {  # if_2
+          $B7: {  # true
+            %43:i32 = load %i_1
+            %x_338:i32 = let %43
+            %45:i32 = add %x_338, 1i
+            store %i_1, %45
+            %46:i32 = load %i_1
+            %x_340:i32 = let %46
             store %param, %x_340
-            %x_341:i32 = load %j_1
+            %48:i32 = load %j_1
+            %x_341:i32 = let %48
             store %param_1, %x_341
-            %x_342:i32 = load %param
-            %39:ptr<private, i32, read_write> = access %obj, 0u, %x_342
-            %x_344:i32 = load %39
+            %50:i32 = load %param
+            %x_342:i32 = let %50
+            %52:ptr<private, i32, read_write> = access %obj, 0u, %x_342
+            %53:i32 = load %52
+            %x_344:i32 = let %53
             store %x_315, %x_344
-            %x_345:i32 = load %param
-            %x_346:i32 = load %param_1
-            %43:ptr<private, i32, read_write> = access %obj, 0u, %x_346
-            %x_348:i32 = load %43
-            %45:ptr<private, i32, read_write> = access %obj, 0u, %x_345
-            store %45, %x_348
-            %x_350:i32 = load %param_1
-            %x_351:i32 = load %x_315
-            %48:ptr<private, i32, read_write> = access %obj, 0u, %x_350
-            store %48, %x_351
+            %55:i32 = load %param
+            %x_345:i32 = let %55
+            %57:i32 = load %param_1
+            %x_346:i32 = let %57
+            %59:ptr<private, i32, read_write> = access %obj, 0u, %x_346
+            %60:i32 = load %59
+            %x_348:i32 = let %60
+            %62:ptr<private, i32, read_write> = access %obj, 0u, %x_345
+            store %62, %x_348
+            %63:i32 = load %param_1
+            %x_350:i32 = let %63
+            %65:i32 = load %x_315
+            %x_351:i32 = let %65
+            %67:ptr<private, i32, read_write> = access %obj, 0u, %x_350
+            store %67, %x_351
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_353:i32 = load %j_1
-        %50:i32 = add %x_353, 1i
-        store %j_1, %50
-        next_iteration %b3
+      $B4: {  # continuing
+        %68:i32 = load %j_1
+        %x_353:i32 = let %68
+        %70:i32 = add %x_353, 1i
+        store %j_1, %70
+        next_iteration  # -> $B3
       }
     }
-    %x_355:i32 = load %i_1
-    %52:i32 = add %x_355, 1i
-    store %param_2, %52
-    %x_357:i32 = load %h
+    %71:i32 = load %i_1
+    %x_355:i32 = let %71
+    %73:i32 = add %x_355, 1i
+    store %param_2, %73
+    %74:i32 = load %h
+    %x_357:i32 = let %74
     store %param_3, %x_357
-    %x_358:i32 = load %param_2
-    %55:ptr<private, i32, read_write> = access %obj, 0u, %x_358
-    %x_360:i32 = load %55
+    %76:i32 = load %param_2
+    %x_358:i32 = let %76
+    %78:ptr<private, i32, read_write> = access %obj, 0u, %x_358
+    %79:i32 = load %78
+    %x_360:i32 = let %79
     store %x_314, %x_360
-    %x_361:i32 = load %param_2
-    %x_362:i32 = load %param_3
-    %59:ptr<private, i32, read_write> = access %obj, 0u, %x_362
-    %x_364:i32 = load %59
-    %61:ptr<private, i32, read_write> = access %obj, 0u, %x_361
-    store %61, %x_364
-    %x_366:i32 = load %param_3
-    %x_367:i32 = load %x_314
-    %64:ptr<private, i32, read_write> = access %obj, 0u, %x_366
-    store %64, %x_367
-    if false [t: %b8, f: %b9] {  # if_3
-      %b8 = block {  # true
+    %81:i32 = load %param_2
+    %x_361:i32 = let %81
+    %83:i32 = load %param_3
+    %x_362:i32 = let %83
+    %85:ptr<private, i32, read_write> = access %obj, 0u, %x_362
+    %86:i32 = load %85
+    %x_364:i32 = let %86
+    %88:ptr<private, i32, read_write> = access %obj, 0u, %x_361
+    store %88, %x_364
+    %89:i32 = load %param_3
+    %x_366:i32 = let %89
+    %91:i32 = load %x_314
+    %x_367:i32 = let %91
+    %93:ptr<private, i32, read_write> = access %obj, 0u, %x_366
+    store %93, %x_367
+    if false [t: $B8, f: $B9] {  # if_3
+      $B8: {  # true
         exit_if  # if_3
       }
-      %b9 = block {  # false
-        %x_372:i32 = load %i_1
-        %66:i32 = add %x_372, 1i
-        ret %66
+      $B9: {  # false
+        %94:i32 = load %i_1
+        %x_372:i32 = let %94
+        %96:i32 = add %x_372, 1i
+        ret %96
       }
     }
     ret 0i
   }
 }
-%main_1 = func():void -> %b10 {
-  %b10 = block {
+%main_1 = func():void {
+  $B10: {
     %x_91:ptr<function, i32, read_write> = var
     %x_92:ptr<function, i32, read_write> = var
     %x_93:ptr<function, i32, read_write> = var
@@ -140,307 +170,387 @@
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %x_98:vec4<f32> = load %x_GLF_pos
-    %79:vec4<f32> = add %x_98, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %80:vec4<f32> = mul %79, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %80
+    %108:vec4<f32> = load %x_GLF_pos
+    %x_98:vec4<f32> = let %108
+    %110:vec4<f32> = add %x_98, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %111:vec4<f32> = mul %110, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %111
     store %i_2, 0i
-    loop [b: %b11, c: %b12] {  # loop_2
-      %b11 = block {  # body
-        %x_105:i32 = load %i_2
-        %82:bool = lt %x_105, 10i
-        if %82 [t: %b13, f: %b14] {  # if_4
-          %b13 = block {  # true
+    loop [b: $B11, c: $B12] {  # loop_2
+      $B11: {  # body
+        %112:i32 = load %i_2
+        %x_105:i32 = let %112
+        %114:bool = lt %x_105, 10i
+        if %114 [t: $B13, f: $B14] {  # if_4
+          $B13: {  # true
             exit_if  # if_4
           }
-          %b14 = block {  # false
+          $B14: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_108:i32 = load %i_2
-        %x_109:i32 = load %i_2
-        %85:ptr<private, i32, read_write> = access %obj, 0u, %x_108
-        %86:i32 = sub 10i, %x_109
-        store %85, %86
-        %x_112:i32 = load %i_2
-        %x_113:i32 = load %i_2
-        %89:ptr<private, i32, read_write> = access %obj, 0u, %x_113
-        %x_115:i32 = load %89
-        %x_116:i32 = load %i_2
-        %92:ptr<private, i32, read_write> = access %obj, 0u, %x_116
-        %x_118:i32 = load %92
-        %94:ptr<private, i32, read_write> = access %obj, 0u, %x_112
-        %95:i32 = mul %x_115, %x_118
-        store %94, %95
-        continue %b12
+        %115:i32 = load %i_2
+        %x_108:i32 = let %115
+        %117:i32 = load %i_2
+        %x_109:i32 = let %117
+        %119:ptr<private, i32, read_write> = access %obj, 0u, %x_108
+        %120:i32 = sub 10i, %x_109
+        store %119, %120
+        %121:i32 = load %i_2
+        %x_112:i32 = let %121
+        %123:i32 = load %i_2
+        %x_113:i32 = let %123
+        %125:ptr<private, i32, read_write> = access %obj, 0u, %x_113
+        %126:i32 = load %125
+        %x_115:i32 = let %126
+        %128:i32 = load %i_2
+        %x_116:i32 = let %128
+        %130:ptr<private, i32, read_write> = access %obj, 0u, %x_116
+        %131:i32 = load %130
+        %x_118:i32 = let %131
+        %133:ptr<private, i32, read_write> = access %obj, 0u, %x_112
+        %134:i32 = mul %x_115, %x_118
+        store %133, %134
+        continue  # -> $B12
       }
-      %b12 = block {  # continuing
-        %x_121:i32 = load %i_2
-        %97:i32 = add %x_121, 1i
-        store %i_2, %97
-        next_iteration %b11
+      $B12: {  # continuing
+        %135:i32 = load %i_2
+        %x_121:i32 = let %135
+        %137:i32 = add %x_121, 1i
+        store %i_2, %137
+        next_iteration  # -> $B11
       }
     }
     store %x_91, 0i
     store %x_92, 9i
     store %x_93, -1i
-    %x_123:i32 = load %x_93
-    %x_124:i32 = add %x_123, 1i
+    %138:i32 = load %x_93
+    %x_123:i32 = let %138
+    %140:i32 = add %x_123, 1i
+    %x_124:i32 = let %140
     store %x_93, %x_124
-    %x_125:i32 = load %x_91
-    %101:ptr<function, i32, read_write> = access %x_94, %x_124
-    store %101, %x_125
-    %x_127:i32 = load %x_93
-    %x_128:i32 = add %x_127, 1i
+    %142:i32 = load %x_91
+    %x_125:i32 = let %142
+    %144:ptr<function, i32, read_write> = access %x_94, %x_124
+    store %144, %x_125
+    %145:i32 = load %x_93
+    %x_127:i32 = let %145
+    %147:i32 = add %x_127, 1i
+    %x_128:i32 = let %147
     store %x_93, %x_128
-    %x_129:i32 = load %x_92
-    %105:ptr<function, i32, read_write> = access %x_94, %x_128
-    store %105, %x_129
-    loop [b: %b15, c: %b16] {  # loop_3
-      %b15 = block {  # body
-        %x_135:i32 = load %x_93
-        %107:bool = gte %x_135, 0i
-        if %107 [t: %b17, f: %b18] {  # if_5
-          %b17 = block {  # true
+    %149:i32 = load %x_92
+    %x_129:i32 = let %149
+    %151:ptr<function, i32, read_write> = access %x_94, %x_128
+    store %151, %x_129
+    loop [b: $B15, c: $B16] {  # loop_3
+      $B15: {  # body
+        %152:i32 = load %x_93
+        %x_135:i32 = let %152
+        %154:bool = gte %x_135, 0i
+        if %154 [t: $B17, f: $B18] {  # if_5
+          $B17: {  # true
             exit_if  # if_5
           }
-          %b18 = block {  # false
+          $B18: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_138:i32 = load %x_93
-        %109:i32 = sub %x_138, 1i
-        store %x_93, %109
-        %110:ptr<function, i32, read_write> = access %x_94, %x_138
-        %x_141:i32 = load %110
+        %155:i32 = load %x_93
+        %x_138:i32 = let %155
+        %157:i32 = sub %x_138, 1i
+        store %x_93, %157
+        %158:ptr<function, i32, read_write> = access %x_94, %x_138
+        %159:i32 = load %158
+        %x_141:i32 = let %159
         store %x_92, %x_141
-        %x_142:i32 = load %x_93
-        %113:i32 = sub %x_142, 1i
-        store %x_93, %113
-        %114:ptr<function, i32, read_write> = access %x_94, %x_142
-        %x_145:i32 = load %114
+        %161:i32 = load %x_93
+        %x_142:i32 = let %161
+        %163:i32 = sub %x_142, 1i
+        store %x_93, %163
+        %164:ptr<function, i32, read_write> = access %x_94, %x_142
+        %165:i32 = load %164
+        %x_145:i32 = let %165
         store %x_91, %x_145
-        %x_146:i32 = load %x_91
+        %167:i32 = load %x_91
+        %x_146:i32 = let %167
         store %x_96, %x_146
-        %x_147:i32 = load %x_92
+        %169:i32 = load %x_92
+        %x_147:i32 = let %169
         store %x_97, %x_147
-        %x_148:i32 = call %performPartition_i1_i1_, %x_96, %x_97
+        %171:i32 = call %performPartition_i1_i1_, %x_96, %x_97
+        %x_148:i32 = let %171
         store %x_95, %x_148
-        %x_149:i32 = load %x_95
-        %x_151:i32 = load %x_91
-        %121:i32 = sub %x_149, 1i
-        %122:bool = gt %121, %x_151
-        if %122 [t: %b19] {  # if_6
-          %b19 = block {  # true
-            %x_155:i32 = load %x_93
-            %x_156:i32 = add %x_155, 1i
+        %173:i32 = load %x_95
+        %x_149:i32 = let %173
+        %175:i32 = load %x_91
+        %x_151:i32 = let %175
+        %177:i32 = sub %x_149, 1i
+        %178:bool = gt %177, %x_151
+        if %178 [t: $B19] {  # if_6
+          $B19: {  # true
+            %179:i32 = load %x_93
+            %x_155:i32 = let %179
+            %181:i32 = add %x_155, 1i
+            %x_156:i32 = let %181
             store %x_93, %x_156
-            %x_157:i32 = load %x_91
-            %126:ptr<function, i32, read_write> = access %x_94, %x_156
-            store %126, %x_157
-            %x_159:i32 = load %x_93
-            %x_160:i32 = add %x_159, 1i
+            %183:i32 = load %x_91
+            %x_157:i32 = let %183
+            %185:ptr<function, i32, read_write> = access %x_94, %x_156
+            store %185, %x_157
+            %186:i32 = load %x_93
+            %x_159:i32 = let %186
+            %188:i32 = add %x_159, 1i
+            %x_160:i32 = let %188
             store %x_93, %x_160
-            %x_161:i32 = load %x_95
-            %130:ptr<function, i32, read_write> = access %x_94, %x_160
-            %131:i32 = sub %x_161, 1i
-            store %130, %131
+            %190:i32 = load %x_95
+            %x_161:i32 = let %190
+            %192:ptr<function, i32, read_write> = access %x_94, %x_160
+            %193:i32 = sub %x_161, 1i
+            store %192, %193
             exit_if  # if_6
           }
         }
-        %x_164:i32 = load %x_95
-        %x_166:i32 = load %x_92
-        %134:i32 = add %x_164, 1i
-        %135:bool = lt %134, %x_166
-        if %135 [t: %b20] {  # if_7
-          %b20 = block {  # true
-            %x_170:i32 = load %x_93
-            %x_171:i32 = add %x_170, 1i
+        %194:i32 = load %x_95
+        %x_164:i32 = let %194
+        %196:i32 = load %x_92
+        %x_166:i32 = let %196
+        %198:i32 = add %x_164, 1i
+        %199:bool = lt %198, %x_166
+        if %199 [t: $B20] {  # if_7
+          $B20: {  # true
+            %200:i32 = load %x_93
+            %x_170:i32 = let %200
+            %202:i32 = add %x_170, 1i
+            %x_171:i32 = let %202
             store %x_93, %x_171
-            %x_172:i32 = load %x_95
-            %139:ptr<function, i32, read_write> = access %x_94, %x_171
-            %140:i32 = add %x_172, 1i
-            store %139, %140
-            %x_175:i32 = load %x_93
-            %x_176:i32 = add %x_175, 1i
+            %204:i32 = load %x_95
+            %x_172:i32 = let %204
+            %206:ptr<function, i32, read_write> = access %x_94, %x_171
+            %207:i32 = add %x_172, 1i
+            store %206, %207
+            %208:i32 = load %x_93
+            %x_175:i32 = let %208
+            %210:i32 = add %x_175, 1i
+            %x_176:i32 = let %210
             store %x_93, %x_176
-            %x_177:i32 = load %x_92
-            %144:ptr<function, i32, read_write> = access %x_94, %x_176
-            store %144, %x_177
+            %212:i32 = load %x_92
+            %x_177:i32 = let %212
+            %214:ptr<function, i32, read_write> = access %x_94, %x_176
+            store %214, %x_177
             exit_if  # if_7
           }
         }
-        continue %b16
+        continue  # -> $B16
       }
-      %b16 = block {  # continuing
-        next_iteration %b15
+      $B16: {  # continuing
+        next_iteration  # -> $B15
       }
     }
-    %x_179:vec4<f32> = load %x_GLF_FragCoord
-    %146:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %x_182:vec2<f32> = load %146
-    %148:f32 = access %x_179, 0u
-    %149:f32 = access %x_179, 1u
-    %150:vec2<f32> = construct %148, %149
-    %151:vec2<f32> = div %150, %x_182
-    store %uv, %151
+    %215:vec4<f32> = load %x_GLF_FragCoord
+    %x_179:vec4<f32> = let %215
+    %217:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %218:vec2<f32> = load %217
+    %x_182:vec2<f32> = let %218
+    %220:f32 = access %x_179, 0u
+    %221:f32 = access %x_179, 1u
+    %222:vec2<f32> = construct %220, %221
+    %223:vec2<f32> = div %222, %x_182
+    store %uv, %223
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %152:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_185:i32 = load %152
-    %x_188:f32 = load_vector_element %color, 0u
-    %155:f32 = convert %x_185
-    %156:f32 = add %x_188, %155
-    store_vector_element %color, 0u, %156
-    %x_192:f32 = load_vector_element %uv, 0u
-    %158:bool = gt %x_192, 0.25f
-    if %158 [t: %b21] {  # if_8
-      %b21 = block {  # true
-        %159:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_197:i32 = load %159
-        %x_200:f32 = load_vector_element %color, 0u
-        %162:f32 = convert %x_197
-        %163:f32 = add %x_200, %162
-        store_vector_element %color, 0u, %163
+    %224:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %225:i32 = load %224
+    %x_185:i32 = let %225
+    %227:f32 = load_vector_element %color, 0u
+    %x_188:f32 = let %227
+    %229:f32 = convert %x_185
+    %230:f32 = add %x_188, %229
+    store_vector_element %color, 0u, %230
+    %231:f32 = load_vector_element %uv, 0u
+    %x_192:f32 = let %231
+    %233:bool = gt %x_192, 0.25f
+    if %233 [t: $B21] {  # if_8
+      $B21: {  # true
+        %234:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %235:i32 = load %234
+        %x_197:i32 = let %235
+        %237:f32 = load_vector_element %color, 0u
+        %x_200:f32 = let %237
+        %239:f32 = convert %x_197
+        %240:f32 = add %x_200, %239
+        store_vector_element %color, 0u, %240
         exit_if  # if_8
       }
     }
-    %x_204:f32 = load_vector_element %uv, 0u
-    %165:bool = gt %x_204, 0.5f
-    if %165 [t: %b22] {  # if_9
-      %b22 = block {  # true
-        %166:ptr<private, i32, read_write> = access %obj, 0u, 2i
-        %x_209:i32 = load %166
-        %x_212:f32 = load_vector_element %color, 1u
-        %169:f32 = convert %x_209
-        %170:f32 = add %x_212, %169
-        store_vector_element %color, 1u, %170
+    %241:f32 = load_vector_element %uv, 0u
+    %x_204:f32 = let %241
+    %243:bool = gt %x_204, 0.5f
+    if %243 [t: $B22] {  # if_9
+      $B22: {  # true
+        %244:ptr<private, i32, read_write> = access %obj, 0u, 2i
+        %245:i32 = load %244
+        %x_209:i32 = let %245
+        %247:f32 = load_vector_element %color, 1u
+        %x_212:f32 = let %247
+        %249:f32 = convert %x_209
+        %250:f32 = add %x_212, %249
+        store_vector_element %color, 1u, %250
         exit_if  # if_9
       }
     }
-    %x_216:f32 = load_vector_element %uv, 0u
-    %172:bool = gt %x_216, 0.75f
-    if %172 [t: %b23] {  # if_10
-      %b23 = block {  # true
-        %173:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_221:i32 = load %173
-        %x_224:f32 = load_vector_element %color, 2u
-        %176:f32 = convert %x_221
-        %177:f32 = add %x_224, %176
-        store_vector_element %color, 2u, %177
+    %251:f32 = load_vector_element %uv, 0u
+    %x_216:f32 = let %251
+    %253:bool = gt %x_216, 0.75f
+    if %253 [t: $B23] {  # if_10
+      $B23: {  # true
+        %254:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %255:i32 = load %254
+        %x_221:i32 = let %255
+        %257:f32 = load_vector_element %color, 2u
+        %x_224:f32 = let %257
+        %259:f32 = convert %x_221
+        %260:f32 = add %x_224, %259
+        store_vector_element %color, 2u, %260
         exit_if  # if_10
       }
     }
-    %178:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_228:i32 = load %178
-    %x_231:f32 = load_vector_element %color, 1u
-    %181:f32 = convert %x_228
-    %182:f32 = add %x_231, %181
-    store_vector_element %color, 1u, %182
-    %x_235:f32 = load_vector_element %uv, 1u
-    %184:bool = gt %x_235, 0.25f
-    if %184 [t: %b24] {  # if_11
-      %b24 = block {  # true
-        %185:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_240:i32 = load %185
-        %x_243:f32 = load_vector_element %color, 0u
-        %188:f32 = convert %x_240
-        %189:f32 = add %x_243, %188
-        store_vector_element %color, 0u, %189
+    %261:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %262:i32 = load %261
+    %x_228:i32 = let %262
+    %264:f32 = load_vector_element %color, 1u
+    %x_231:f32 = let %264
+    %266:f32 = convert %x_228
+    %267:f32 = add %x_231, %266
+    store_vector_element %color, 1u, %267
+    %268:f32 = load_vector_element %uv, 1u
+    %x_235:f32 = let %268
+    %270:bool = gt %x_235, 0.25f
+    if %270 [t: $B24] {  # if_11
+      $B24: {  # true
+        %271:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %272:i32 = load %271
+        %x_240:i32 = let %272
+        %274:f32 = load_vector_element %color, 0u
+        %x_243:f32 = let %274
+        %276:f32 = convert %x_240
+        %277:f32 = add %x_243, %276
+        store_vector_element %color, 0u, %277
         exit_if  # if_11
       }
     }
-    %x_247:f32 = load_vector_element %uv, 1u
-    %191:bool = gt %x_247, 0.5f
-    if %191 [t: %b25] {  # if_12
-      %b25 = block {  # true
-        %192:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_252:i32 = load %192
-        %x_255:f32 = load_vector_element %color, 1u
-        %195:f32 = convert %x_252
-        %196:f32 = add %x_255, %195
-        store_vector_element %color, 1u, %196
+    %278:f32 = load_vector_element %uv, 1u
+    %x_247:f32 = let %278
+    %280:bool = gt %x_247, 0.5f
+    if %280 [t: $B25] {  # if_12
+      $B25: {  # true
+        %281:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %282:i32 = load %281
+        %x_252:i32 = let %282
+        %284:f32 = load_vector_element %color, 1u
+        %x_255:f32 = let %284
+        %286:f32 = convert %x_252
+        %287:f32 = add %x_255, %286
+        store_vector_element %color, 1u, %287
         exit_if  # if_12
       }
     }
-    %x_259:f32 = load_vector_element %uv, 1u
-    %198:bool = gt %x_259, 0.75f
-    if %198 [t: %b26] {  # if_13
-      %b26 = block {  # true
-        %199:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_264:i32 = load %199
-        %x_267:f32 = load_vector_element %color, 2u
-        %202:f32 = convert %x_264
-        %203:f32 = add %x_267, %202
-        store_vector_element %color, 2u, %203
+    %288:f32 = load_vector_element %uv, 1u
+    %x_259:f32 = let %288
+    %290:bool = gt %x_259, 0.75f
+    if %290 [t: $B26] {  # if_13
+      $B26: {  # true
+        %291:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %292:i32 = load %291
+        %x_264:i32 = let %292
+        %294:f32 = load_vector_element %color, 2u
+        %x_267:f32 = let %294
+        %296:f32 = convert %x_264
+        %297:f32 = add %x_267, %296
+        store_vector_element %color, 2u, %297
         exit_if  # if_13
       }
     }
-    %204:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_271:i32 = load %204
-    %x_274:f32 = load_vector_element %color, 2u
-    %207:f32 = convert %x_271
-    %208:f32 = add %x_274, %207
-    store_vector_element %color, 2u, %208
-    %x_278:f32 = load_vector_element %uv, 0u
-    %x_280:f32 = load_vector_element %uv, 1u
-    %211:f32 = sub %x_278, %x_280
-    %212:f32 = abs %211
-    %213:bool = lt %212, 0.25f
-    if %213 [t: %b27] {  # if_14
-      %b27 = block {  # true
-        %214:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_287:i32 = load %214
-        %x_290:f32 = load_vector_element %color, 0u
-        %217:f32 = convert %x_287
-        %218:f32 = add %x_290, %217
-        store_vector_element %color, 0u, %218
+    %298:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %299:i32 = load %298
+    %x_271:i32 = let %299
+    %301:f32 = load_vector_element %color, 2u
+    %x_274:f32 = let %301
+    %303:f32 = convert %x_271
+    %304:f32 = add %x_274, %303
+    store_vector_element %color, 2u, %304
+    %305:f32 = load_vector_element %uv, 0u
+    %x_278:f32 = let %305
+    %307:f32 = load_vector_element %uv, 1u
+    %x_280:f32 = let %307
+    %309:f32 = sub %x_278, %x_280
+    %310:f32 = abs %309
+    %311:bool = lt %310, 0.25f
+    if %311 [t: $B27] {  # if_14
+      $B27: {  # true
+        %312:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %313:i32 = load %312
+        %x_287:i32 = let %313
+        %315:f32 = load_vector_element %color, 0u
+        %x_290:f32 = let %315
+        %317:f32 = convert %x_287
+        %318:f32 = add %x_290, %317
+        store_vector_element %color, 0u, %318
         exit_if  # if_14
       }
     }
-    %x_293:vec3<f32> = load %color
-    %x_294:vec3<f32> = normalize %x_293
-    %221:f32 = access %x_294, 0u
-    %222:f32 = access %x_294, 1u
-    %223:f32 = access %x_294, 2u
-    %224:vec4<f32> = construct %221, %222, %223, 1.0f
-    store %frag_color, %224
-    %x_299:vec4<f32> = load %x_GLF_pos
+    %319:vec3<f32> = load %color
+    %x_293:vec3<f32> = let %319
+    %321:vec3<f32> = normalize %x_293
+    %x_294:vec3<f32> = let %321
+    %323:f32 = access %x_294, 0u
+    %324:f32 = access %x_294, 1u
+    %325:f32 = access %x_294, 2u
+    %326:vec4<f32> = construct %323, %324, %325, 1.0f
+    store %frag_color, %326
+    %327:vec4<f32> = load %x_GLF_pos
+    %x_299:vec4<f32> = let %327
     store %gl_Position, %x_299
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B28: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %228:void = call %main_1
-    %229:vec4<f32> = load %frag_color
-    %230:vec4<f32> = load %gl_Position
-    %231:main_out = construct %229, %230
-    ret %231
+    %331:void = call %main_1
+    %332:vec4<f32> = load %frag_color
+    %333:vec4<f32> = load %gl_Position
+    %334:main_out = construct %332, %333
+    ret %334
   }
 }
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b29 {
-  %b29 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B29: {
     %temp:ptr<function, i32, read_write> = var
-    %x_302:i32 = load %i
-    %237:ptr<private, i32, read_write> = access %obj, 0u, %x_302
-    %x_304:i32 = load %237
+    %339:i32 = load %i
+    %x_302:i32 = let %339
+    %341:ptr<private, i32, read_write> = access %obj, 0u, %x_302
+    %342:i32 = load %341
+    %x_304:i32 = let %342
     store %temp, %x_304
-    %x_305:i32 = load %i
-    %x_306:i32 = load %j
-    %241:ptr<private, i32, read_write> = access %obj, 0u, %x_306
-    %x_308:i32 = load %241
-    %243:ptr<private, i32, read_write> = access %obj, 0u, %x_305
-    store %243, %x_308
-    %x_310:i32 = load %j
-    %x_311:i32 = load %temp
-    %246:ptr<private, i32, read_write> = access %obj, 0u, %x_310
-    store %246, %x_311
+    %344:i32 = load %i
+    %x_305:i32 = let %344
+    %346:i32 = load %j
+    %x_306:i32 = let %346
+    %348:ptr<private, i32, read_write> = access %obj, 0u, %x_306
+    %349:i32 = load %348
+    %x_308:i32 = let %349
+    %351:ptr<private, i32, read_write> = access %obj, 0u, %x_305
+    store %351, %x_308
+    %352:i32 = load %j
+    %x_310:i32 = let %352
+    %354:i32 = load %temp
+    %x_311:i32 = let %354
+    %356:ptr<private, i32, read_write> = access %obj, 0u, %x_310
+    store %356, %x_311
     ret
   }
 }
-%quicksort_ = func():void -> %b30 {
-  %b30 = block {
+%quicksort_ = func():void {
+  $B30: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -451,96 +561,126 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_376:i32 = load %top
-    %x_377:i32 = add %x_376, 1i
+    %365:i32 = load %top
+    %x_376:i32 = let %365
+    %367:i32 = add %x_376, 1i
+    %x_377:i32 = let %367
     store %top, %x_377
-    %x_378:i32 = load %l_1
-    %258:ptr<function, i32, read_write> = access %stack, %x_377
-    store %258, %x_378
-    %x_380:i32 = load %top
-    %x_381:i32 = add %x_380, 1i
+    %369:i32 = load %l_1
+    %x_378:i32 = let %369
+    %371:ptr<function, i32, read_write> = access %stack, %x_377
+    store %371, %x_378
+    %372:i32 = load %top
+    %x_380:i32 = let %372
+    %374:i32 = add %x_380, 1i
+    %x_381:i32 = let %374
     store %top, %x_381
-    %x_382:i32 = load %h_1
-    %262:ptr<function, i32, read_write> = access %stack, %x_381
-    store %262, %x_382
-    loop [b: %b31, c: %b32] {  # loop_4
-      %b31 = block {  # body
-        %x_388:i32 = load %top
-        %264:bool = gte %x_388, 0i
-        if %264 [t: %b33, f: %b34] {  # if_15
-          %b33 = block {  # true
+    %376:i32 = load %h_1
+    %x_382:i32 = let %376
+    %378:ptr<function, i32, read_write> = access %stack, %x_381
+    store %378, %x_382
+    loop [b: $B31, c: $B32] {  # loop_4
+      $B31: {  # body
+        %379:i32 = load %top
+        %x_388:i32 = let %379
+        %381:bool = gte %x_388, 0i
+        if %381 [t: $B33, f: $B34] {  # if_15
+          $B33: {  # true
             exit_if  # if_15
           }
-          %b34 = block {  # false
+          $B34: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_391:i32 = load %top
-        %266:i32 = sub %x_391, 1i
-        store %top, %266
-        %267:ptr<function, i32, read_write> = access %stack, %x_391
-        %x_394:i32 = load %267
+        %382:i32 = load %top
+        %x_391:i32 = let %382
+        %384:i32 = sub %x_391, 1i
+        store %top, %384
+        %385:ptr<function, i32, read_write> = access %stack, %x_391
+        %386:i32 = load %385
+        %x_394:i32 = let %386
         store %h_1, %x_394
-        %x_395:i32 = load %top
-        %270:i32 = sub %x_395, 1i
-        store %top, %270
-        %271:ptr<function, i32, read_write> = access %stack, %x_395
-        %x_398:i32 = load %271
+        %388:i32 = load %top
+        %x_395:i32 = let %388
+        %390:i32 = sub %x_395, 1i
+        store %top, %390
+        %391:ptr<function, i32, read_write> = access %stack, %x_395
+        %392:i32 = load %391
+        %x_398:i32 = let %392
         store %l_1, %x_398
-        %x_399:i32 = load %l_1
+        %394:i32 = load %l_1
+        %x_399:i32 = let %394
         store %param_4, %x_399
-        %x_400:i32 = load %h_1
+        %396:i32 = load %h_1
+        %x_400:i32 = let %396
         store %param_5, %x_400
-        %x_401:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %398:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_401:i32 = let %398
         store %p, %x_401
-        %x_402:i32 = load %p
-        %x_404:i32 = load %l_1
-        %278:i32 = sub %x_402, 1i
-        %279:bool = gt %278, %x_404
-        if %279 [t: %b35] {  # if_16
-          %b35 = block {  # true
-            %x_408:i32 = load %top
-            %x_409:i32 = add %x_408, 1i
+        %400:i32 = load %p
+        %x_402:i32 = let %400
+        %402:i32 = load %l_1
+        %x_404:i32 = let %402
+        %404:i32 = sub %x_402, 1i
+        %405:bool = gt %404, %x_404
+        if %405 [t: $B35] {  # if_16
+          $B35: {  # true
+            %406:i32 = load %top
+            %x_408:i32 = let %406
+            %408:i32 = add %x_408, 1i
+            %x_409:i32 = let %408
             store %top, %x_409
-            %x_410:i32 = load %l_1
-            %283:ptr<function, i32, read_write> = access %stack, %x_409
-            store %283, %x_410
-            %x_412:i32 = load %top
-            %x_413:i32 = add %x_412, 1i
+            %410:i32 = load %l_1
+            %x_410:i32 = let %410
+            %412:ptr<function, i32, read_write> = access %stack, %x_409
+            store %412, %x_410
+            %413:i32 = load %top
+            %x_412:i32 = let %413
+            %415:i32 = add %x_412, 1i
+            %x_413:i32 = let %415
             store %top, %x_413
-            %x_414:i32 = load %p
-            %287:ptr<function, i32, read_write> = access %stack, %x_413
-            %288:i32 = sub %x_414, 1i
-            store %287, %288
+            %417:i32 = load %p
+            %x_414:i32 = let %417
+            %419:ptr<function, i32, read_write> = access %stack, %x_413
+            %420:i32 = sub %x_414, 1i
+            store %419, %420
             exit_if  # if_16
           }
         }
-        %x_417:i32 = load %p
-        %x_419:i32 = load %h_1
-        %291:i32 = add %x_417, 1i
-        %292:bool = lt %291, %x_419
-        if %292 [t: %b36] {  # if_17
-          %b36 = block {  # true
-            %x_423:i32 = load %top
-            %x_424:i32 = add %x_423, 1i
+        %421:i32 = load %p
+        %x_417:i32 = let %421
+        %423:i32 = load %h_1
+        %x_419:i32 = let %423
+        %425:i32 = add %x_417, 1i
+        %426:bool = lt %425, %x_419
+        if %426 [t: $B36] {  # if_17
+          $B36: {  # true
+            %427:i32 = load %top
+            %x_423:i32 = let %427
+            %429:i32 = add %x_423, 1i
+            %x_424:i32 = let %429
             store %top, %x_424
-            %x_425:i32 = load %p
-            %296:ptr<function, i32, read_write> = access %stack, %x_424
-            %297:i32 = add %x_425, 1i
-            store %296, %297
-            %x_428:i32 = load %top
-            %x_429:i32 = add %x_428, 1i
+            %431:i32 = load %p
+            %x_425:i32 = let %431
+            %433:ptr<function, i32, read_write> = access %stack, %x_424
+            %434:i32 = add %x_425, 1i
+            store %433, %434
+            %435:i32 = load %top
+            %x_428:i32 = let %435
+            %437:i32 = add %x_428, 1i
+            %x_429:i32 = let %437
             store %top, %x_429
-            %x_430:i32 = load %h_1
-            %301:ptr<function, i32, read_write> = access %stack, %x_429
-            store %301, %x_430
+            %439:i32 = load %h_1
+            %x_430:i32 = let %439
+            %441:ptr<function, i32, read_write> = access %stack, %x_429
+            store %441, %x_430
             exit_if  # if_17
           }
         }
-        continue %b32
+        continue  # -> $B32
       }
-      %b32 = block {  # continuing
-        next_iteration %b31
+      $B32: {  # continuing
+        next_iteration  # -> $B31
       }
     }
     ret
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.msl
index fb5e600..eedc2e5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -17,7 +17,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -27,28 +27,30 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
     %12:i32 = load %i
     %13:ptr<private, i32, read_write> = access %obj, 0u, %12
     %14:i32 = load %13
     store %temp, %14
-    %x_260:i32 = load %i
-    %16:ptr<private, i32, read_write> = access %obj, 0u, %x_260
-    %17:i32 = load %j
-    %18:ptr<private, i32, read_write> = access %obj, 0u, %17
-    %19:i32 = load %18
-    store %16, %19
-    %x_265:i32 = load %j
-    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_265
-    %22:i32 = load %temp
-    store %21, %22
+    %15:i32 = load %i
+    %x_260:i32 = let %15
+    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_260
+    %18:i32 = load %j
+    %19:ptr<private, i32, read_write> = access %obj, 0u, %18
+    %20:i32 = load %19
+    store %17, %20
+    %21:i32 = load %j
+    %x_265:i32 = let %21
+    %23:ptr<private, i32, read_write> = access %obj, 0u, %x_265
+    %24:i32 = load %temp
+    store %23, %24
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -56,69 +58,70 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %33:i32 = load %h
-    %34:ptr<private, i32, read_write> = access %obj, 0u, %33
-    %35:i32 = load %34
-    store %pivot, %35
-    %36:i32 = load %l
-    %37:i32 = sub %36, 1i
-    store %i_1, %37
+    %35:i32 = load %h
+    %36:ptr<private, i32, read_write> = access %obj, 0u, %35
+    %37:i32 = load %36
+    store %pivot, %37
     %38:i32 = load %l
-    store %j_1, %38
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %39:i32 = load %j_1
-        %40:i32 = load %h
-        %41:i32 = sub %40, 1i
-        %42:bool = lte %39, %41
-        if %42 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    %39:i32 = sub %38, 1i
+    store %i_1, %39
+    %40:i32 = load %l
+    store %j_1, %40
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %41:i32 = load %j_1
+        %42:i32 = load %h
+        %43:i32 = sub %42, 1i
+        %44:bool = lte %41, %43
+        if %44 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %43:i32 = load %j_1
-        %44:ptr<private, i32, read_write> = access %obj, 0u, %43
-        %45:i32 = load %44
-        %46:i32 = load %pivot
-        %47:bool = lte %45, %46
-        if %47 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %48:i32 = load %i_1
-            %49:i32 = add %48, 1i
-            store %i_1, %49
+        %45:i32 = load %j_1
+        %46:ptr<private, i32, read_write> = access %obj, 0u, %45
+        %47:i32 = load %46
+        %48:i32 = load %pivot
+        %49:bool = lte %47, %48
+        if %49 [t: $B8] {  # if_2
+          $B8: {  # true
             %50:i32 = load %i_1
-            store %param, %50
-            %51:i32 = load %j_1
-            store %param_1, %51
-            %52:void = call %swap_i1_i1_, %param, %param_1
+            %51:i32 = add %50, 1i
+            store %i_1, %51
+            %52:i32 = load %i_1
+            store %param, %52
+            %53:i32 = load %j_1
+            store %param_1, %53
+            %54:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %53:i32 = load %j_1
-        %54:i32 = add %53, 1i
-        store %j_1, %54
-        next_iteration %b4
+      $B5: {  # continuing
+        %55:i32 = load %j_1
+        %56:i32 = add %55, 1i
+        store %j_1, %56
+        next_iteration  # -> $B4
       }
     }
-    %55:i32 = load %i_1
-    %56:i32 = add %55, 1i
-    store %param_2, %56
-    %57:i32 = load %h
-    store %param_3, %57
-    %58:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_302:i32 = load %i_1
-    %60:i32 = add %x_302, 1i
-    ret %60
+    %57:i32 = load %i_1
+    %58:i32 = add %57, 1i
+    store %param_2, %58
+    %59:i32 = load %h
+    store %param_3, %59
+    %60:void = call %swap_i1_i1_, %param_2, %param_3
+    %61:i32 = load %i_1
+    %x_302:i32 = let %61
+    %63:i32 = add %x_302, 1i
+    ret %63
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -129,303 +132,336 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %69:i32 = load %top
-    %x_306:i32 = add %69, 1i
+    %72:i32 = load %top
+    %73:i32 = add %72, 1i
+    %x_306:i32 = let %73
     store %top, %x_306
-    %71:ptr<function, i32, read_write> = access %stack, %x_306
-    %72:i32 = load %l_1
-    store %71, %72
-    %73:i32 = load %top
-    %x_310:i32 = add %73, 1i
-    store %top, %x_310
-    %75:ptr<function, i32, read_write> = access %stack, %x_310
-    %76:i32 = load %h_1
+    %75:ptr<function, i32, read_write> = access %stack, %x_306
+    %76:i32 = load %l_1
     store %75, %76
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %77:i32 = load %top
-        %78:bool = gte %77, 0i
-        if %78 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %77:i32 = load %top
+    %78:i32 = add %77, 1i
+    %x_310:i32 = let %78
+    store %top, %x_310
+    %80:ptr<function, i32, read_write> = access %stack, %x_310
+    %81:i32 = load %h_1
+    store %80, %81
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %82:i32 = load %top
+        %83:bool = gte %82, 0i
+        if %83 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_320:i32 = load %top
-        %80:i32 = load %top
-        %81:i32 = sub %80, 1i
-        store %top, %81
-        %82:ptr<function, i32, read_write> = access %stack, %x_320
-        %83:i32 = load %82
-        store %h_1, %83
-        %x_324:i32 = load %top
-        %85:i32 = load %top
-        %86:i32 = sub %85, 1i
-        store %top, %86
-        %87:ptr<function, i32, read_write> = access %stack, %x_324
-        %88:i32 = load %87
-        store %l_1, %88
-        %89:i32 = load %l_1
-        store %param_4, %89
-        %90:i32 = load %h_1
-        store %param_5, %90
-        %x_330:i32 = call %performPartition_i1_i1_, %param_4, %param_5
-        store %p, %x_330
-        %92:i32 = load %p
+        %84:i32 = load %top
+        %x_320:i32 = let %84
+        %86:i32 = load %top
+        %87:i32 = sub %86, 1i
+        store %top, %87
+        %88:ptr<function, i32, read_write> = access %stack, %x_320
+        %89:i32 = load %88
+        store %h_1, %89
+        %90:i32 = load %top
+        %x_324:i32 = let %90
+        %92:i32 = load %top
         %93:i32 = sub %92, 1i
-        %94:i32 = load %l_1
-        %95:bool = gt %93, %94
-        if %95 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %96:i32 = load %top
-            %x_338:i32 = add %96, 1i
+        store %top, %93
+        %94:ptr<function, i32, read_write> = access %stack, %x_324
+        %95:i32 = load %94
+        store %l_1, %95
+        %96:i32 = load %l_1
+        store %param_4, %96
+        %97:i32 = load %h_1
+        store %param_5, %97
+        %98:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_330:i32 = let %98
+        store %p, %x_330
+        %100:i32 = load %p
+        %101:i32 = sub %100, 1i
+        %102:i32 = load %l_1
+        %103:bool = gt %101, %102
+        if %103 [t: $B14] {  # if_4
+          $B14: {  # true
+            %104:i32 = load %top
+            %105:i32 = add %104, 1i
+            %x_338:i32 = let %105
             store %top, %x_338
-            %98:ptr<function, i32, read_write> = access %stack, %x_338
-            %99:i32 = load %l_1
-            store %98, %99
-            %100:i32 = load %top
-            %x_342:i32 = add %100, 1i
+            %107:ptr<function, i32, read_write> = access %stack, %x_338
+            %108:i32 = load %l_1
+            store %107, %108
+            %109:i32 = load %top
+            %110:i32 = add %109, 1i
+            %x_342:i32 = let %110
             store %top, %x_342
-            %102:ptr<function, i32, read_write> = access %stack, %x_342
-            %103:i32 = load %p
-            %104:i32 = sub %103, 1i
-            store %102, %104
+            %112:ptr<function, i32, read_write> = access %stack, %x_342
+            %113:i32 = load %p
+            %114:i32 = sub %113, 1i
+            store %112, %114
             exit_if  # if_4
           }
         }
-        %105:i32 = load %p
-        %106:i32 = add %105, 1i
-        %107:i32 = load %h_1
-        %108:bool = lt %106, %107
-        if %108 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %109:i32 = load %top
-            %x_353:i32 = add %109, 1i
+        %115:i32 = load %p
+        %116:i32 = add %115, 1i
+        %117:i32 = load %h_1
+        %118:bool = lt %116, %117
+        if %118 [t: $B15] {  # if_5
+          $B15: {  # true
+            %119:i32 = load %top
+            %120:i32 = add %119, 1i
+            %x_353:i32 = let %120
             store %top, %x_353
-            %111:ptr<function, i32, read_write> = access %stack, %x_353
-            %112:i32 = load %p
-            %113:i32 = add %112, 1i
-            store %111, %113
-            %114:i32 = load %top
-            %x_358:i32 = add %114, 1i
+            %122:ptr<function, i32, read_write> = access %stack, %x_353
+            %123:i32 = load %p
+            %124:i32 = add %123, 1i
+            store %122, %124
+            %125:i32 = load %top
+            %126:i32 = add %125, 1i
+            %x_358:i32 = let %126
             store %top, %x_358
-            %116:ptr<function, i32, read_write> = access %stack, %x_358
-            %117:i32 = load %h_1
-            store %116, %117
+            %128:ptr<function, i32, read_write> = access %stack, %x_358
+            %129:i32 = load %h_1
+            store %128, %129
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %122:vec4<f32> = load %x_GLF_pos
-    %123:vec4<f32> = add %122, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %124:vec4<f32> = mul %123, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %124
+    %134:vec4<f32> = load %x_GLF_pos
+    %135:vec4<f32> = add %134, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %136:vec4<f32> = mul %135, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %136
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %125:i32 = load %i_2
-        %126:bool = lt %125, 10i
-        if %126 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %137:i32 = load %i_2
+        %138:bool = lt %137, 10i
+        if %138 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_104:i32 = load %i_2
-        %128:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-        %129:i32 = load %i_2
-        %130:i32 = sub 10i, %129
-        store %128, %130
-        %x_108:i32 = load %i_2
-        %132:ptr<private, i32, read_write> = access %obj, 0u, %x_108
-        %133:i32 = load %i_2
-        %134:ptr<private, i32, read_write> = access %obj, 0u, %133
-        %135:i32 = load %134
-        %136:i32 = load %i_2
-        %137:ptr<private, i32, read_write> = access %obj, 0u, %136
-        %138:i32 = load %137
-        %139:i32 = mul %135, %138
-        store %132, %139
-        continue %b18
+        %139:i32 = load %i_2
+        %x_104:i32 = let %139
+        %141:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+        %142:i32 = load %i_2
+        %143:i32 = sub 10i, %142
+        store %141, %143
+        %144:i32 = load %i_2
+        %x_108:i32 = let %144
+        %146:ptr<private, i32, read_write> = access %obj, 0u, %x_108
+        %147:i32 = load %i_2
+        %148:ptr<private, i32, read_write> = access %obj, 0u, %147
+        %149:i32 = load %148
+        %150:i32 = load %i_2
+        %151:ptr<private, i32, read_write> = access %obj, 0u, %150
+        %152:i32 = load %151
+        %153:i32 = mul %149, %152
+        store %146, %153
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %140:i32 = load %i_2
-        %141:i32 = add %140, 1i
-        store %i_2, %141
-        next_iteration %b17
+      $B18: {  # continuing
+        %154:i32 = load %i_2
+        %155:i32 = add %154, 1i
+        store %i_2, %155
+        next_iteration  # -> $B17
       }
     }
-    %142:void = call %quicksort_
-    %143:vec4<f32> = load %x_GLF_FragCoord
-    %144:vec2<f32> = swizzle %143, xy
-    %145:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %146:vec2<f32> = load %145
-    %147:vec2<f32> = div %144, %146
-    store %uv, %147
+    %156:void = call %quicksort_
+    %157:vec4<f32> = load %x_GLF_FragCoord
+    %158:vec2<f32> = swizzle %157, xy
+    %159:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %160:vec2<f32> = load %159
+    %161:vec2<f32> = div %158, %160
+    store %uv, %161
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %148:f32 = load_vector_element %color, 0u
-    %149:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %150:i32 = load %149
-    %151:f32 = convert %150
-    %152:f32 = add %148, %151
-    store_vector_element %color, 0u, %152
-    %153:f32 = load_vector_element %uv, 0u
-    %154:bool = gt %153, 0.25f
-    if %154 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %155:f32 = load_vector_element %color, 0u
-        %156:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %157:i32 = load %156
-        %158:f32 = convert %157
-        %159:f32 = add %155, %158
-        store_vector_element %color, 0u, %159
+    %162:f32 = load_vector_element %color, 0u
+    %163:f32 = let %162
+    %164:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %165:i32 = load %164
+    %166:f32 = convert %165
+    %167:f32 = add %163, %166
+    store_vector_element %color, 0u, %167
+    %168:f32 = load_vector_element %uv, 0u
+    %169:bool = gt %168, 0.25f
+    if %169 [t: $B21] {  # if_7
+      $B21: {  # true
+        %170:f32 = load_vector_element %color, 0u
+        %171:f32 = let %170
+        %172:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %173:i32 = load %172
+        %174:f32 = convert %173
+        %175:f32 = add %171, %174
+        store_vector_element %color, 0u, %175
         exit_if  # if_7
       }
     }
-    %160:f32 = load_vector_element %uv, 0u
-    %161:bool = gt %160, 0.5f
-    if %161 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %162:f32 = load_vector_element %color, 1u
-        %163:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
-        %164:f32 = load_vector_element %163, 1u
-        %165:i32 = convert %164
-        %166:i32 = mul 2i, %165
-        %167:i32 = max %166, 2i
-        %168:ptr<private, i32, read_write> = access %obj, 0u, %167
-        %169:i32 = load %168
-        %170:f32 = convert %169
-        %171:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
-        %172:f32 = load_vector_element %171, 1u
-        %173:i32 = convert %172
-        %174:i32 = mul 2i, %173
-        %175:i32 = max %174, 2i
-        %176:ptr<private, i32, read_write> = access %obj, 0u, %175
-        %177:i32 = load %176
-        %178:f32 = convert %177
-        %179:f32 = max %170, %178
-        %180:f32 = add %162, %179
-        store_vector_element %color, 1u, %180
+    %176:f32 = load_vector_element %uv, 0u
+    %177:bool = gt %176, 0.5f
+    if %177 [t: $B22] {  # if_8
+      $B22: {  # true
+        %178:f32 = load_vector_element %color, 1u
+        %179:f32 = let %178
+        %180:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
+        %181:f32 = load_vector_element %180, 1u
+        %182:i32 = call %tint_f32_to_i32, %181
+        %184:i32 = mul 2i, %182
+        %185:i32 = max %184, 2i
+        %186:ptr<private, i32, read_write> = access %obj, 0u, %185
+        %187:i32 = load %186
+        %188:f32 = convert %187
+        %189:f32 = let %188
+        %190:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
+        %191:f32 = load_vector_element %190, 1u
+        %192:i32 = call %tint_f32_to_i32, %191
+        %193:i32 = mul 2i, %192
+        %194:i32 = max %193, 2i
+        %195:ptr<private, i32, read_write> = access %obj, 0u, %194
+        %196:i32 = load %195
+        %197:f32 = convert %196
+        %198:f32 = max %189, %197
+        %199:f32 = add %179, %198
+        store_vector_element %color, 1u, %199
         exit_if  # if_8
       }
     }
-    %181:f32 = load_vector_element %uv, 0u
-    %182:bool = gt %181, 0.75f
-    if %182 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %183:f32 = load_vector_element %color, 2u
-        %184:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %185:i32 = load %184
-        %186:f32 = convert %185
-        %187:f32 = add %183, %186
-        store_vector_element %color, 2u, %187
+    %200:f32 = load_vector_element %uv, 0u
+    %201:bool = gt %200, 0.75f
+    if %201 [t: $B23] {  # if_9
+      $B23: {  # true
+        %202:f32 = load_vector_element %color, 2u
+        %203:f32 = let %202
+        %204:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %205:i32 = load %204
+        %206:f32 = convert %205
+        %207:f32 = add %203, %206
+        store_vector_element %color, 2u, %207
         exit_if  # if_9
       }
     }
-    %188:f32 = load_vector_element %color, 1u
-    %189:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %190:i32 = load %189
-    %191:f32 = convert %190
-    %192:f32 = add %188, %191
-    store_vector_element %color, 1u, %192
-    %193:f32 = load_vector_element %uv, 1u
-    %194:bool = gt %193, 0.25f
-    if %194 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %195:f32 = load_vector_element %color, 0u
-        %196:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %197:i32 = load %196
-        %198:f32 = convert %197
-        %199:f32 = add %195, %198
-        store_vector_element %color, 0u, %199
+    %208:f32 = load_vector_element %color, 1u
+    %209:f32 = let %208
+    %210:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %211:i32 = load %210
+    %212:f32 = convert %211
+    %213:f32 = add %209, %212
+    store_vector_element %color, 1u, %213
+    %214:f32 = load_vector_element %uv, 1u
+    %215:bool = gt %214, 0.25f
+    if %215 [t: $B24] {  # if_10
+      $B24: {  # true
+        %216:f32 = load_vector_element %color, 0u
+        %217:f32 = let %216
+        %218:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %219:i32 = load %218
+        %220:f32 = convert %219
+        %221:f32 = add %217, %220
+        store_vector_element %color, 0u, %221
         exit_if  # if_10
       }
     }
-    %200:f32 = load_vector_element %uv, 1u
-    %201:bool = gt %200, 0.5f
-    if %201 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %202:f32 = load_vector_element %color, 1u
-        %203:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %204:i32 = load %203
-        %205:f32 = convert %204
-        %206:f32 = add %202, %205
-        store_vector_element %color, 1u, %206
+    %222:f32 = load_vector_element %uv, 1u
+    %223:bool = gt %222, 0.5f
+    if %223 [t: $B25] {  # if_11
+      $B25: {  # true
+        %224:f32 = load_vector_element %color, 1u
+        %225:f32 = let %224
+        %226:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %227:i32 = load %226
+        %228:f32 = convert %227
+        %229:f32 = add %225, %228
+        store_vector_element %color, 1u, %229
         exit_if  # if_11
       }
     }
-    %207:f32 = load_vector_element %uv, 1u
-    %208:bool = gt %207, 0.75f
-    if %208 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %209:f32 = load_vector_element %color, 2u
-        %210:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %211:i32 = load %210
-        %212:f32 = convert %211
-        %213:f32 = add %209, %212
-        store_vector_element %color, 2u, %213
+    %230:f32 = load_vector_element %uv, 1u
+    %231:bool = gt %230, 0.75f
+    if %231 [t: $B26] {  # if_12
+      $B26: {  # true
+        %232:f32 = load_vector_element %color, 2u
+        %233:f32 = let %232
+        %234:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %235:i32 = load %234
+        %236:f32 = convert %235
+        %237:f32 = add %233, %236
+        store_vector_element %color, 2u, %237
         exit_if  # if_12
       }
     }
-    %214:f32 = load_vector_element %color, 2u
-    %215:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %216:i32 = load %215
-    %217:f32 = convert %216
-    %218:f32 = add %214, %217
-    store_vector_element %color, 2u, %218
-    %219:f32 = load_vector_element %uv, 0u
-    %220:f32 = load_vector_element %uv, 1u
-    %221:f32 = sub %219, %220
-    %222:f32 = abs %221
-    %223:bool = lt %222, 0.25f
-    if %223 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %224:f32 = load_vector_element %color, 0u
-        %225:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %226:i32 = load %225
-        %227:f32 = convert %226
-        %228:f32 = add %224, %227
-        store_vector_element %color, 0u, %228
+    %238:f32 = load_vector_element %color, 2u
+    %239:f32 = let %238
+    %240:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %241:i32 = load %240
+    %242:f32 = convert %241
+    %243:f32 = add %239, %242
+    store_vector_element %color, 2u, %243
+    %244:f32 = load_vector_element %uv, 0u
+    %245:f32 = load_vector_element %uv, 1u
+    %246:f32 = sub %244, %245
+    %247:f32 = abs %246
+    %248:bool = lt %247, 0.25f
+    if %248 [t: $B27] {  # if_13
+      $B27: {  # true
+        %249:f32 = load_vector_element %color, 0u
+        %250:f32 = let %249
+        %251:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %252:i32 = load %251
+        %253:f32 = convert %252
+        %254:f32 = add %250, %253
+        store_vector_element %color, 0u, %254
         exit_if  # if_13
       }
     }
-    %229:vec3<f32> = load %color
-    %x_249:vec3<f32> = normalize %229
-    %231:f32 = access %x_249, 0u
-    %232:f32 = access %x_249, 1u
-    %233:f32 = access %x_249, 2u
-    %234:vec4<f32> = construct %231, %232, %233, 1.0f
-    store %frag_color, %234
-    %235:vec4<f32> = load %x_GLF_pos
-    store %gl_Position, %235
+    %255:vec3<f32> = load %color
+    %256:vec3<f32> = normalize %255
+    %x_249:vec3<f32> = let %256
+    %258:f32 = access %x_249, 0u
+    %259:f32 = access %x_249, 1u
+    %260:f32 = access %x_249, 2u
+    %261:vec4<f32> = construct %258, %259, %260, 1.0f
+    store %frag_color, %261
+    %262:vec4<f32> = load %x_GLF_pos
+    store %gl_Position, %262
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B28: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %238:void = call %main_1
-    %239:vec4<f32> = load %frag_color
-    %240:vec4<f32> = load %gl_Position
-    %241:main_out = construct %239, %240
-    ret %241
+    %265:void = call %main_1
+    %266:vec4<f32> = load %frag_color
+    %267:vec4<f32> = load %gl_Position
+    %268:main_out = construct %266, %267
+    ret %268
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B29: {
+    %270:i32 = convert %value
+    %271:bool = gte %value, -2147483648.0f
+    %272:i32 = select -2147483648i, %270, %271
+    %273:bool = lte %value, 2147483520.0f
+    %274:i32 = select 2147483647i, %272, %273
+    ret %274
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.msl
index 88de7f7..f2251ed 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-quicksort-max-value-as-index/2-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: QuicksortObject = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: QuicksortObject = struct @align(4) {
   numbers:array<i32, 10> @offset(0)
 }
 
@@ -17,7 +17,7 @@
   gl_Position:vec4<f32> @offset(16), @builtin(position)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %obj:ptr<private, QuicksortObject, read_write> = var
   %x_GLF_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_pos:ptr<private, vec4<f32>, read_write> = var
@@ -27,28 +27,35 @@
   %gl_Position:ptr<private, vec4<f32>, read_write> = var
 }
 
-%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%swap_i1_i1_ = func(%i:ptr<function, i32, read_write>, %j:ptr<function, i32, read_write>):void {
+  $B2: {
     %temp:ptr<function, i32, read_write> = var
-    %x_257:i32 = load %i
-    %13:ptr<private, i32, read_write> = access %obj, 0u, %x_257
-    %x_259:i32 = load %13
+    %12:i32 = load %i
+    %x_257:i32 = let %12
+    %14:ptr<private, i32, read_write> = access %obj, 0u, %x_257
+    %15:i32 = load %14
+    %x_259:i32 = let %15
     store %temp, %x_259
-    %x_260:i32 = load %i
-    %x_261:i32 = load %j
-    %17:ptr<private, i32, read_write> = access %obj, 0u, %x_261
-    %x_263:i32 = load %17
-    %19:ptr<private, i32, read_write> = access %obj, 0u, %x_260
-    store %19, %x_263
-    %x_265:i32 = load %j
-    %x_266:i32 = load %temp
-    %22:ptr<private, i32, read_write> = access %obj, 0u, %x_265
-    store %22, %x_266
+    %17:i32 = load %i
+    %x_260:i32 = let %17
+    %19:i32 = load %j
+    %x_261:i32 = let %19
+    %21:ptr<private, i32, read_write> = access %obj, 0u, %x_261
+    %22:i32 = load %21
+    %x_263:i32 = let %22
+    %24:ptr<private, i32, read_write> = access %obj, 0u, %x_260
+    store %24, %x_263
+    %25:i32 = load %j
+    %x_265:i32 = let %25
+    %27:i32 = load %temp
+    %x_266:i32 = let %27
+    %29:ptr<private, i32, read_write> = access %obj, 0u, %x_265
+    store %29, %x_266
     ret
   }
 }
-%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 -> %b3 {
-  %b3 = block {
+%performPartition_i1_i1_ = func(%l:ptr<function, i32, read_write>, %h:ptr<function, i32, read_write>):i32 {
+  $B3: {
     %pivot:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %j_1:ptr<function, i32, read_write> = var
@@ -56,69 +63,85 @@
     %param_1:ptr<function, i32, read_write> = var
     %param_2:ptr<function, i32, read_write> = var
     %param_3:ptr<function, i32, read_write> = var
-    %x_269:i32 = load %h
-    %34:ptr<private, i32, read_write> = access %obj, 0u, %x_269
-    %x_271:i32 = load %34
+    %40:i32 = load %h
+    %x_269:i32 = let %40
+    %42:ptr<private, i32, read_write> = access %obj, 0u, %x_269
+    %43:i32 = load %42
+    %x_271:i32 = let %43
     store %pivot, %x_271
-    %x_272:i32 = load %l
-    %37:i32 = sub %x_272, 1i
-    store %i_1, %37
-    %x_274:i32 = load %l
+    %45:i32 = load %l
+    %x_272:i32 = let %45
+    %47:i32 = sub %x_272, 1i
+    store %i_1, %47
+    %48:i32 = load %l
+    %x_274:i32 = let %48
     store %j_1, %x_274
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_279:i32 = load %j_1
-        %x_280:i32 = load %h
-        %41:i32 = sub %x_280, 1i
-        %42:bool = lte %x_279, %41
-        if %42 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %50:i32 = load %j_1
+        %x_279:i32 = let %50
+        %52:i32 = load %h
+        %x_280:i32 = let %52
+        %54:i32 = sub %x_280, 1i
+        %55:bool = lte %x_279, %54
+        if %55 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_284:i32 = load %j_1
-        %44:ptr<private, i32, read_write> = access %obj, 0u, %x_284
-        %x_286:i32 = load %44
-        %x_287:i32 = load %pivot
-        %47:bool = lte %x_286, %x_287
-        if %47 [t: %b8] {  # if_2
-          %b8 = block {  # true
-            %x_291:i32 = load %i_1
-            %49:i32 = add %x_291, 1i
-            store %i_1, %49
-            %x_293:i32 = load %i_1
+        %56:i32 = load %j_1
+        %x_284:i32 = let %56
+        %58:ptr<private, i32, read_write> = access %obj, 0u, %x_284
+        %59:i32 = load %58
+        %x_286:i32 = let %59
+        %61:i32 = load %pivot
+        %x_287:i32 = let %61
+        %63:bool = lte %x_286, %x_287
+        if %63 [t: $B8] {  # if_2
+          $B8: {  # true
+            %64:i32 = load %i_1
+            %x_291:i32 = let %64
+            %66:i32 = add %x_291, 1i
+            store %i_1, %66
+            %67:i32 = load %i_1
+            %x_293:i32 = let %67
             store %param, %x_293
-            %x_294:i32 = load %j_1
+            %69:i32 = load %j_1
+            %x_294:i32 = let %69
             store %param_1, %x_294
-            %52:void = call %swap_i1_i1_, %param, %param_1
+            %71:void = call %swap_i1_i1_, %param, %param_1
             exit_if  # if_2
           }
         }
-        continue %b5
+        continue  # -> $B5
       }
-      %b5 = block {  # continuing
-        %x_296:i32 = load %j_1
-        %54:i32 = add %x_296, 1i
-        store %j_1, %54
-        next_iteration %b4
+      $B5: {  # continuing
+        %72:i32 = load %j_1
+        %x_296:i32 = let %72
+        %74:i32 = add %x_296, 1i
+        store %j_1, %74
+        next_iteration  # -> $B4
       }
     }
-    %x_298:i32 = load %i_1
-    %56:i32 = add %x_298, 1i
-    store %param_2, %56
-    %x_300:i32 = load %h
+    %75:i32 = load %i_1
+    %x_298:i32 = let %75
+    %77:i32 = add %x_298, 1i
+    store %param_2, %77
+    %78:i32 = load %h
+    %x_300:i32 = let %78
     store %param_3, %x_300
-    %58:void = call %swap_i1_i1_, %param_2, %param_3
-    %x_302:i32 = load %i_1
-    %60:i32 = add %x_302, 1i
-    ret %60
+    %80:void = call %swap_i1_i1_, %param_2, %param_3
+    %81:i32 = load %i_1
+    %x_302:i32 = let %81
+    %83:i32 = add %x_302, 1i
+    ret %83
   }
 }
-%quicksort_ = func():void -> %b9 {
-  %b9 = block {
+%quicksort_ = func():void {
+  $B9: {
     %l_1:ptr<function, i32, read_write> = var
     %h_1:ptr<function, i32, read_write> = var
     %top:ptr<function, i32, read_write> = var
@@ -129,303 +152,390 @@
     store %l_1, 0i
     store %h_1, 9i
     store %top, -1i
-    %x_305:i32 = load %top
-    %x_306:i32 = add %x_305, 1i
+    %92:i32 = load %top
+    %x_305:i32 = let %92
+    %94:i32 = add %x_305, 1i
+    %x_306:i32 = let %94
     store %top, %x_306
-    %x_307:i32 = load %l_1
-    %72:ptr<function, i32, read_write> = access %stack, %x_306
-    store %72, %x_307
-    %x_309:i32 = load %top
-    %x_310:i32 = add %x_309, 1i
+    %96:i32 = load %l_1
+    %x_307:i32 = let %96
+    %98:ptr<function, i32, read_write> = access %stack, %x_306
+    store %98, %x_307
+    %99:i32 = load %top
+    %x_309:i32 = let %99
+    %101:i32 = add %x_309, 1i
+    %x_310:i32 = let %101
     store %top, %x_310
-    %x_311:i32 = load %h_1
-    %76:ptr<function, i32, read_write> = access %stack, %x_310
-    store %76, %x_311
-    loop [b: %b10, c: %b11] {  # loop_2
-      %b10 = block {  # body
-        %x_317:i32 = load %top
-        %78:bool = gte %x_317, 0i
-        if %78 [t: %b12, f: %b13] {  # if_3
-          %b12 = block {  # true
+    %103:i32 = load %h_1
+    %x_311:i32 = let %103
+    %105:ptr<function, i32, read_write> = access %stack, %x_310
+    store %105, %x_311
+    loop [b: $B10, c: $B11] {  # loop_2
+      $B10: {  # body
+        %106:i32 = load %top
+        %x_317:i32 = let %106
+        %108:bool = gte %x_317, 0i
+        if %108 [t: $B12, f: $B13] {  # if_3
+          $B12: {  # true
             exit_if  # if_3
           }
-          %b13 = block {  # false
+          $B13: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_320:i32 = load %top
-        %80:i32 = sub %x_320, 1i
-        store %top, %80
-        %81:ptr<function, i32, read_write> = access %stack, %x_320
-        %x_323:i32 = load %81
+        %109:i32 = load %top
+        %x_320:i32 = let %109
+        %111:i32 = sub %x_320, 1i
+        store %top, %111
+        %112:ptr<function, i32, read_write> = access %stack, %x_320
+        %113:i32 = load %112
+        %x_323:i32 = let %113
         store %h_1, %x_323
-        %x_324:i32 = load %top
-        %84:i32 = sub %x_324, 1i
-        store %top, %84
-        %85:ptr<function, i32, read_write> = access %stack, %x_324
-        %x_327:i32 = load %85
+        %115:i32 = load %top
+        %x_324:i32 = let %115
+        %117:i32 = sub %x_324, 1i
+        store %top, %117
+        %118:ptr<function, i32, read_write> = access %stack, %x_324
+        %119:i32 = load %118
+        %x_327:i32 = let %119
         store %l_1, %x_327
-        %x_328:i32 = load %l_1
+        %121:i32 = load %l_1
+        %x_328:i32 = let %121
         store %param_4, %x_328
-        %x_329:i32 = load %h_1
+        %123:i32 = load %h_1
+        %x_329:i32 = let %123
         store %param_5, %x_329
-        %x_330:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %125:i32 = call %performPartition_i1_i1_, %param_4, %param_5
+        %x_330:i32 = let %125
         store %p, %x_330
-        %x_331:i32 = load %p
-        %x_333:i32 = load %l_1
-        %92:i32 = sub %x_331, 1i
-        %93:bool = gt %92, %x_333
-        if %93 [t: %b14] {  # if_4
-          %b14 = block {  # true
-            %x_337:i32 = load %top
-            %x_338:i32 = add %x_337, 1i
+        %127:i32 = load %p
+        %x_331:i32 = let %127
+        %129:i32 = load %l_1
+        %x_333:i32 = let %129
+        %131:i32 = sub %x_331, 1i
+        %132:bool = gt %131, %x_333
+        if %132 [t: $B14] {  # if_4
+          $B14: {  # true
+            %133:i32 = load %top
+            %x_337:i32 = let %133
+            %135:i32 = add %x_337, 1i
+            %x_338:i32 = let %135
             store %top, %x_338
-            %x_339:i32 = load %l_1
-            %97:ptr<function, i32, read_write> = access %stack, %x_338
-            store %97, %x_339
-            %x_341:i32 = load %top
-            %x_342:i32 = add %x_341, 1i
+            %137:i32 = load %l_1
+            %x_339:i32 = let %137
+            %139:ptr<function, i32, read_write> = access %stack, %x_338
+            store %139, %x_339
+            %140:i32 = load %top
+            %x_341:i32 = let %140
+            %142:i32 = add %x_341, 1i
+            %x_342:i32 = let %142
             store %top, %x_342
-            %x_343:i32 = load %p
-            %101:ptr<function, i32, read_write> = access %stack, %x_342
-            %102:i32 = sub %x_343, 1i
-            store %101, %102
+            %144:i32 = load %p
+            %x_343:i32 = let %144
+            %146:ptr<function, i32, read_write> = access %stack, %x_342
+            %147:i32 = sub %x_343, 1i
+            store %146, %147
             exit_if  # if_4
           }
         }
-        %x_346:i32 = load %p
-        %x_348:i32 = load %h_1
-        %105:i32 = add %x_346, 1i
-        %106:bool = lt %105, %x_348
-        if %106 [t: %b15] {  # if_5
-          %b15 = block {  # true
-            %x_352:i32 = load %top
-            %x_353:i32 = add %x_352, 1i
+        %148:i32 = load %p
+        %x_346:i32 = let %148
+        %150:i32 = load %h_1
+        %x_348:i32 = let %150
+        %152:i32 = add %x_346, 1i
+        %153:bool = lt %152, %x_348
+        if %153 [t: $B15] {  # if_5
+          $B15: {  # true
+            %154:i32 = load %top
+            %x_352:i32 = let %154
+            %156:i32 = add %x_352, 1i
+            %x_353:i32 = let %156
             store %top, %x_353
-            %x_354:i32 = load %p
-            %110:ptr<function, i32, read_write> = access %stack, %x_353
-            %111:i32 = add %x_354, 1i
-            store %110, %111
-            %x_357:i32 = load %top
-            %x_358:i32 = add %x_357, 1i
+            %158:i32 = load %p
+            %x_354:i32 = let %158
+            %160:ptr<function, i32, read_write> = access %stack, %x_353
+            %161:i32 = add %x_354, 1i
+            store %160, %161
+            %162:i32 = load %top
+            %x_357:i32 = let %162
+            %164:i32 = add %x_357, 1i
+            %x_358:i32 = let %164
             store %top, %x_358
-            %x_359:i32 = load %h_1
-            %115:ptr<function, i32, read_write> = access %stack, %x_358
-            store %115, %x_359
+            %166:i32 = load %h_1
+            %x_359:i32 = let %166
+            %168:ptr<function, i32, read_write> = access %stack, %x_358
+            store %168, %x_359
             exit_if  # if_5
           }
         }
-        continue %b11
+        continue  # -> $B11
       }
-      %b11 = block {  # continuing
-        next_iteration %b10
+      $B11: {  # continuing
+        next_iteration  # -> $B10
       }
     }
     ret
   }
 }
-%main_1 = func():void -> %b16 {
-  %b16 = block {
+%main_1 = func():void {
+  $B16: {
     %i_2:ptr<function, i32, read_write> = var
     %uv:ptr<function, vec2<f32>, read_write> = var
     %color:ptr<function, vec3<f32>, read_write> = var
-    %x_94:vec4<f32> = load %x_GLF_pos
-    %121:vec4<f32> = add %x_94, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
-    %122:vec4<f32> = mul %121, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
-    store %x_GLF_FragCoord, %122
+    %173:vec4<f32> = load %x_GLF_pos
+    %x_94:vec4<f32> = let %173
+    %175:vec4<f32> = add %x_94, vec4<f32>(1.0f, 1.0f, 0.0f, 0.0f)
+    %176:vec4<f32> = mul %175, vec4<f32>(128.0f, 128.0f, 1.0f, 1.0f)
+    store %x_GLF_FragCoord, %176
     store %i_2, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_101:i32 = load %i_2
-        %124:bool = lt %x_101, 10i
-        if %124 [t: %b19, f: %b20] {  # if_6
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %177:i32 = load %i_2
+        %x_101:i32 = let %177
+        %179:bool = lt %x_101, 10i
+        if %179 [t: $B19, f: $B20] {  # if_6
+          $B19: {  # true
             exit_if  # if_6
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_104:i32 = load %i_2
-        %x_105:i32 = load %i_2
-        %127:ptr<private, i32, read_write> = access %obj, 0u, %x_104
-        %128:i32 = sub 10i, %x_105
-        store %127, %128
-        %x_108:i32 = load %i_2
-        %x_109:i32 = load %i_2
-        %131:ptr<private, i32, read_write> = access %obj, 0u, %x_109
-        %x_111:i32 = load %131
-        %x_112:i32 = load %i_2
-        %134:ptr<private, i32, read_write> = access %obj, 0u, %x_112
-        %x_114:i32 = load %134
-        %136:ptr<private, i32, read_write> = access %obj, 0u, %x_108
-        %137:i32 = mul %x_111, %x_114
-        store %136, %137
-        continue %b18
+        %180:i32 = load %i_2
+        %x_104:i32 = let %180
+        %182:i32 = load %i_2
+        %x_105:i32 = let %182
+        %184:ptr<private, i32, read_write> = access %obj, 0u, %x_104
+        %185:i32 = sub 10i, %x_105
+        store %184, %185
+        %186:i32 = load %i_2
+        %x_108:i32 = let %186
+        %188:i32 = load %i_2
+        %x_109:i32 = let %188
+        %190:ptr<private, i32, read_write> = access %obj, 0u, %x_109
+        %191:i32 = load %190
+        %x_111:i32 = let %191
+        %193:i32 = load %i_2
+        %x_112:i32 = let %193
+        %195:ptr<private, i32, read_write> = access %obj, 0u, %x_112
+        %196:i32 = load %195
+        %x_114:i32 = let %196
+        %198:ptr<private, i32, read_write> = access %obj, 0u, %x_108
+        %199:i32 = mul %x_111, %x_114
+        store %198, %199
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        %x_117:i32 = load %i_2
-        %139:i32 = add %x_117, 1i
-        store %i_2, %139
-        next_iteration %b17
+      $B18: {  # continuing
+        %200:i32 = load %i_2
+        %x_117:i32 = let %200
+        %202:i32 = add %x_117, 1i
+        store %i_2, %202
+        next_iteration  # -> $B17
       }
     }
-    %140:void = call %quicksort_
-    %x_120:vec4<f32> = load %x_GLF_FragCoord
-    %142:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
-    %x_123:vec2<f32> = load %142
-    %144:f32 = access %x_120, 0u
-    %145:f32 = access %x_120, 1u
-    %146:vec2<f32> = construct %144, %145
-    %147:vec2<f32> = div %146, %x_123
-    store %uv, %147
+    %203:void = call %quicksort_
+    %204:vec4<f32> = load %x_GLF_FragCoord
+    %x_120:vec4<f32> = let %204
+    %206:ptr<uniform, vec2<f32>, read> = access %x_34, 0u
+    %207:vec2<f32> = load %206
+    %x_123:vec2<f32> = let %207
+    %209:f32 = access %x_120, 0u
+    %210:f32 = access %x_120, 1u
+    %211:vec2<f32> = construct %209, %210
+    %212:vec2<f32> = div %211, %x_123
+    store %uv, %212
     store %color, vec3<f32>(1.0f, 2.0f, 3.0f)
-    %148:ptr<private, i32, read_write> = access %obj, 0u, 0i
-    %x_126:i32 = load %148
-    %x_129:f32 = load_vector_element %color, 0u
-    %151:f32 = convert %x_126
-    %152:f32 = add %x_129, %151
-    store_vector_element %color, 0u, %152
-    %x_133:f32 = load_vector_element %uv, 0u
-    %154:bool = gt %x_133, 0.25f
-    if %154 [t: %b21] {  # if_7
-      %b21 = block {  # true
-        %155:ptr<private, i32, read_write> = access %obj, 0u, 1i
-        %x_138:i32 = load %155
-        %x_141:f32 = load_vector_element %color, 0u
-        %158:f32 = convert %x_138
-        %159:f32 = add %x_141, %158
-        store_vector_element %color, 0u, %159
+    %213:ptr<private, i32, read_write> = access %obj, 0u, 0i
+    %214:i32 = load %213
+    %x_126:i32 = let %214
+    %216:f32 = load_vector_element %color, 0u
+    %x_129:f32 = let %216
+    %218:f32 = convert %x_126
+    %219:f32 = add %x_129, %218
+    store_vector_element %color, 0u, %219
+    %220:f32 = load_vector_element %uv, 0u
+    %x_133:f32 = let %220
+    %222:bool = gt %x_133, 0.25f
+    if %222 [t: $B21] {  # if_7
+      $B21: {  # true
+        %223:ptr<private, i32, read_write> = access %obj, 0u, 1i
+        %224:i32 = load %223
+        %x_138:i32 = let %224
+        %226:f32 = load_vector_element %color, 0u
+        %x_141:f32 = let %226
+        %228:f32 = convert %x_138
+        %229:f32 = add %x_141, %228
+        store_vector_element %color, 0u, %229
         exit_if  # if_7
       }
     }
-    %x_145:f32 = load_vector_element %uv, 0u
-    %161:bool = gt %x_145, 0.5f
-    if %161 [t: %b22] {  # if_8
-      %b22 = block {  # true
-        %162:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
-        %x_150:f32 = load_vector_element %162, 1u
-        %164:i32 = convert %x_150
-        %165:i32 = mul 2i, %164
-        %166:i32 = max %165, 2i
-        %167:ptr<private, i32, read_write> = access %obj, 0u, %166
-        %x_155:i32 = load %167
-        %169:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
-        %x_158:f32 = load_vector_element %169, 1u
-        %171:i32 = convert %x_158
-        %172:i32 = mul 2i, %171
-        %173:i32 = max %172, 2i
-        %174:ptr<private, i32, read_write> = access %obj, 0u, %173
-        %x_163:i32 = load %174
-        %x_167:f32 = load_vector_element %color, 1u
-        %177:f32 = convert %x_155
-        %178:f32 = convert %x_163
-        %179:f32 = max %177, %178
-        %180:f32 = add %x_167, %179
-        store_vector_element %color, 1u, %180
+    %230:f32 = load_vector_element %uv, 0u
+    %x_145:f32 = let %230
+    %232:bool = gt %x_145, 0.5f
+    if %232 [t: $B22] {  # if_8
+      $B22: {  # true
+        %233:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
+        %234:f32 = load_vector_element %233, 1u
+        %x_150:f32 = let %234
+        %236:i32 = call %tint_f32_to_i32, %x_150
+        %238:i32 = mul 2i, %236
+        %239:i32 = max %238, 2i
+        %240:ptr<private, i32, read_write> = access %obj, 0u, %239
+        %241:i32 = load %240
+        %x_155:i32 = let %241
+        %243:ptr<uniform, vec2<f32>, read> = access %x_37, 0u
+        %244:f32 = load_vector_element %243, 1u
+        %x_158:f32 = let %244
+        %246:i32 = call %tint_f32_to_i32, %x_158
+        %247:i32 = mul 2i, %246
+        %248:i32 = max %247, 2i
+        %249:ptr<private, i32, read_write> = access %obj, 0u, %248
+        %250:i32 = load %249
+        %x_163:i32 = let %250
+        %252:f32 = load_vector_element %color, 1u
+        %x_167:f32 = let %252
+        %254:f32 = convert %x_155
+        %255:f32 = let %254
+        %256:f32 = convert %x_163
+        %257:f32 = max %255, %256
+        %258:f32 = add %x_167, %257
+        store_vector_element %color, 1u, %258
         exit_if  # if_8
       }
     }
-    %x_171:f32 = load_vector_element %uv, 0u
-    %182:bool = gt %x_171, 0.75f
-    if %182 [t: %b23] {  # if_9
-      %b23 = block {  # true
-        %183:ptr<private, i32, read_write> = access %obj, 0u, 3i
-        %x_176:i32 = load %183
-        %x_179:f32 = load_vector_element %color, 2u
-        %186:f32 = convert %x_176
-        %187:f32 = add %x_179, %186
-        store_vector_element %color, 2u, %187
+    %259:f32 = load_vector_element %uv, 0u
+    %x_171:f32 = let %259
+    %261:bool = gt %x_171, 0.75f
+    if %261 [t: $B23] {  # if_9
+      $B23: {  # true
+        %262:ptr<private, i32, read_write> = access %obj, 0u, 3i
+        %263:i32 = load %262
+        %x_176:i32 = let %263
+        %265:f32 = load_vector_element %color, 2u
+        %x_179:f32 = let %265
+        %267:f32 = convert %x_176
+        %268:f32 = add %x_179, %267
+        store_vector_element %color, 2u, %268
         exit_if  # if_9
       }
     }
-    %188:ptr<private, i32, read_write> = access %obj, 0u, 4i
-    %x_183:i32 = load %188
-    %x_186:f32 = load_vector_element %color, 1u
-    %191:f32 = convert %x_183
-    %192:f32 = add %x_186, %191
-    store_vector_element %color, 1u, %192
-    %x_190:f32 = load_vector_element %uv, 1u
-    %194:bool = gt %x_190, 0.25f
-    if %194 [t: %b24] {  # if_10
-      %b24 = block {  # true
-        %195:ptr<private, i32, read_write> = access %obj, 0u, 5i
-        %x_195:i32 = load %195
-        %x_198:f32 = load_vector_element %color, 0u
-        %198:f32 = convert %x_195
-        %199:f32 = add %x_198, %198
-        store_vector_element %color, 0u, %199
+    %269:ptr<private, i32, read_write> = access %obj, 0u, 4i
+    %270:i32 = load %269
+    %x_183:i32 = let %270
+    %272:f32 = load_vector_element %color, 1u
+    %x_186:f32 = let %272
+    %274:f32 = convert %x_183
+    %275:f32 = add %x_186, %274
+    store_vector_element %color, 1u, %275
+    %276:f32 = load_vector_element %uv, 1u
+    %x_190:f32 = let %276
+    %278:bool = gt %x_190, 0.25f
+    if %278 [t: $B24] {  # if_10
+      $B24: {  # true
+        %279:ptr<private, i32, read_write> = access %obj, 0u, 5i
+        %280:i32 = load %279
+        %x_195:i32 = let %280
+        %282:f32 = load_vector_element %color, 0u
+        %x_198:f32 = let %282
+        %284:f32 = convert %x_195
+        %285:f32 = add %x_198, %284
+        store_vector_element %color, 0u, %285
         exit_if  # if_10
       }
     }
-    %x_202:f32 = load_vector_element %uv, 1u
-    %201:bool = gt %x_202, 0.5f
-    if %201 [t: %b25] {  # if_11
-      %b25 = block {  # true
-        %202:ptr<private, i32, read_write> = access %obj, 0u, 6i
-        %x_207:i32 = load %202
-        %x_210:f32 = load_vector_element %color, 1u
-        %205:f32 = convert %x_207
-        %206:f32 = add %x_210, %205
-        store_vector_element %color, 1u, %206
+    %286:f32 = load_vector_element %uv, 1u
+    %x_202:f32 = let %286
+    %288:bool = gt %x_202, 0.5f
+    if %288 [t: $B25] {  # if_11
+      $B25: {  # true
+        %289:ptr<private, i32, read_write> = access %obj, 0u, 6i
+        %290:i32 = load %289
+        %x_207:i32 = let %290
+        %292:f32 = load_vector_element %color, 1u
+        %x_210:f32 = let %292
+        %294:f32 = convert %x_207
+        %295:f32 = add %x_210, %294
+        store_vector_element %color, 1u, %295
         exit_if  # if_11
       }
     }
-    %x_214:f32 = load_vector_element %uv, 1u
-    %208:bool = gt %x_214, 0.75f
-    if %208 [t: %b26] {  # if_12
-      %b26 = block {  # true
-        %209:ptr<private, i32, read_write> = access %obj, 0u, 7i
-        %x_219:i32 = load %209
-        %x_222:f32 = load_vector_element %color, 2u
-        %212:f32 = convert %x_219
-        %213:f32 = add %x_222, %212
-        store_vector_element %color, 2u, %213
+    %296:f32 = load_vector_element %uv, 1u
+    %x_214:f32 = let %296
+    %298:bool = gt %x_214, 0.75f
+    if %298 [t: $B26] {  # if_12
+      $B26: {  # true
+        %299:ptr<private, i32, read_write> = access %obj, 0u, 7i
+        %300:i32 = load %299
+        %x_219:i32 = let %300
+        %302:f32 = load_vector_element %color, 2u
+        %x_222:f32 = let %302
+        %304:f32 = convert %x_219
+        %305:f32 = add %x_222, %304
+        store_vector_element %color, 2u, %305
         exit_if  # if_12
       }
     }
-    %214:ptr<private, i32, read_write> = access %obj, 0u, 8i
-    %x_226:i32 = load %214
-    %x_229:f32 = load_vector_element %color, 2u
-    %217:f32 = convert %x_226
-    %218:f32 = add %x_229, %217
-    store_vector_element %color, 2u, %218
-    %x_233:f32 = load_vector_element %uv, 0u
-    %x_235:f32 = load_vector_element %uv, 1u
-    %221:f32 = sub %x_233, %x_235
-    %222:f32 = abs %221
-    %223:bool = lt %222, 0.25f
-    if %223 [t: %b27] {  # if_13
-      %b27 = block {  # true
-        %224:ptr<private, i32, read_write> = access %obj, 0u, 9i
-        %x_242:i32 = load %224
-        %x_245:f32 = load_vector_element %color, 0u
-        %227:f32 = convert %x_242
-        %228:f32 = add %x_245, %227
-        store_vector_element %color, 0u, %228
+    %306:ptr<private, i32, read_write> = access %obj, 0u, 8i
+    %307:i32 = load %306
+    %x_226:i32 = let %307
+    %309:f32 = load_vector_element %color, 2u
+    %x_229:f32 = let %309
+    %311:f32 = convert %x_226
+    %312:f32 = add %x_229, %311
+    store_vector_element %color, 2u, %312
+    %313:f32 = load_vector_element %uv, 0u
+    %x_233:f32 = let %313
+    %315:f32 = load_vector_element %uv, 1u
+    %x_235:f32 = let %315
+    %317:f32 = sub %x_233, %x_235
+    %318:f32 = abs %317
+    %319:bool = lt %318, 0.25f
+    if %319 [t: $B27] {  # if_13
+      $B27: {  # true
+        %320:ptr<private, i32, read_write> = access %obj, 0u, 9i
+        %321:i32 = load %320
+        %x_242:i32 = let %321
+        %323:f32 = load_vector_element %color, 0u
+        %x_245:f32 = let %323
+        %325:f32 = convert %x_242
+        %326:f32 = add %x_245, %325
+        store_vector_element %color, 0u, %326
         exit_if  # if_13
       }
     }
-    %x_248:vec3<f32> = load %color
-    %x_249:vec3<f32> = normalize %x_248
-    %231:f32 = access %x_249, 0u
-    %232:f32 = access %x_249, 1u
-    %233:f32 = access %x_249, 2u
-    %234:vec4<f32> = construct %231, %232, %233, 1.0f
-    store %frag_color, %234
-    %x_254:vec4<f32> = load %x_GLF_pos
+    %327:vec3<f32> = load %color
+    %x_248:vec3<f32> = let %327
+    %329:vec3<f32> = normalize %x_248
+    %x_249:vec3<f32> = let %329
+    %331:f32 = access %x_249, 0u
+    %332:f32 = access %x_249, 1u
+    %333:f32 = access %x_249, 2u
+    %334:vec4<f32> = construct %331, %332, %333, 1.0f
+    store %frag_color, %334
+    %335:vec4<f32> = load %x_GLF_pos
+    %x_254:vec4<f32> = let %335
     store %gl_Position, %x_254
     ret
   }
 }
-%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out -> %b28 {
-  %b28 = block {
+%tint_symbol = @vertex func(%x_GLF_pos_param:vec4<f32> [@location(0)]):main_out {
+  $B28: {
     store %x_GLF_pos, %x_GLF_pos_param
-    %238:void = call %main_1
-    %239:vec4<f32> = load %frag_color
-    %240:vec4<f32> = load %gl_Position
-    %241:main_out = construct %239, %240
-    ret %241
+    %339:void = call %main_1
+    %340:vec4<f32> = load %frag_color
+    %341:vec4<f32> = load %gl_Position
+    %342:main_out = construct %340, %341
+    ret %342
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B29: {
+    %344:i32 = convert %value
+    %345:bool = gte %value, -2147483648.0f
+    %346:i32 = select -2147483648i, %344, %345
+    %347:bool = lte %value, 2147483520.0f
+    %348:i32 = select 2147483647i, %346, %347
+    ret %348
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.msl
index 47fe76e..2440ec1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,27 +8,27 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
+%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool {
+  $B2: {
     %7:f32 = load_vector_element %pos, 0u
     %8:f32 = load_vector_element %quad, 0u
     %9:bool = lt %7, %8
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
         ret false
       }
     }
     %10:f32 = load_vector_element %pos, 1u
     %11:f32 = load_vector_element %quad, 1u
     %12:bool = lt %10, %11
-    if %12 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %12 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
@@ -37,8 +37,8 @@
     %15:f32 = load_vector_element %quad, 2u
     %16:f32 = add %14, %15
     %17:bool = gt %13, %16
-    if %17 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    if %17 [t: $B5] {  # if_3
+      $B5: {  # true
         ret false
       }
     }
@@ -47,16 +47,16 @@
     %20:f32 = load_vector_element %quad, 3u
     %21:f32 = add %19, %20
     %22:bool = gt %18, %21
-    if %22 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    if %22 [t: $B6] {  # if_4
+      $B6: {  # true
         ret false
       }
     }
     ret true
   }
 }
-%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> -> %b7 {
-  %b7 = block {
+%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> {
+  $B7: {
     %res:ptr<function, vec4<f32>, read_write> = var
     %x_144:ptr<function, f32, read_write> = var
     %x_145:ptr<function, f32, read_write> = var
@@ -69,23 +69,23 @@
     %indexable_3:ptr<function, array<vec4<f32>, 16>, read_write> = var
     %35:f32 = load_vector_element %gl_FragCoord, 0u
     %36:bool = lt %35, 0.0f
-    if %36 [t: %b8, f: %b9] {  # if_5
-      %b8 = block {  # true
+    if %36 [t: $B8, f: $B9] {  # if_5
+      $B8: {  # true
         store %x_144, -1.0f
         exit_if  # if_5
       }
-      %b9 = block {  # false
+      $B9: {  # false
         %37:f32 = load_vector_element %gl_FragCoord, 0u
         %38:bool = gte %37, 0.0f
-        if %38 [t: %b10, f: %b11] {  # if_6
-          %b10 = block {  # true
+        if %38 [t: $B10, f: $B11] {  # if_6
+          $B10: {  # true
             %39:f32 = load_vector_element %gl_FragCoord, 0u
             %40:bool = gte %39, 0.0f
             %41:f32 = select 1.0f, 0.5f, %40
             store %x_145, %41
             exit_if  # if_6
           }
-          %b11 = block {  # false
+          $B11: {  # false
             store %x_145, 1.0f
             exit_if  # if_6
           }
@@ -101,92 +101,127 @@
     %46:vec4<f32> = construct %45, 0.5f, 1.0f, 1.0f
     store %res, %46
     store %i, 0i
-    loop [b: %b12, c: %b13] {  # loop_1
-      %b12 = block {  # body
+    loop [b: $B12, c: $B13] {  # loop_1
+      $B12: {  # body
         %47:i32 = load %i
         %48:bool = lt %47, 8i
-        if %48 [t: %b14, f: %b15] {  # if_7
-          %b14 = block {  # true
+        if %48 [t: $B14, f: $B15] {  # if_7
+          $B14: {  # true
             exit_if  # if_7
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_174:i32 = load %i
-        %50:vec2<f32> = load %pos_1
-        store %param, %50
+        %49:i32 = load %i
+        %x_174:i32 = let %49
+        %51:vec2<f32> = load %pos_1
+        store %param, %51
         store %indexable, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %51:ptr<function, vec4<f32>, read_write> = access %indexable, %x_174
-        %52:vec4<f32> = load %51
-        store %param_1, %52
-        %x_178:bool = call %collision_vf2_vf4_, %param, %param_1
-        if %x_178 [t: %b16] {  # if_8
-          %b16 = block {  # true
-            %x_181:i32 = load %i
+        %52:ptr<function, vec4<f32>, read_write> = access %indexable, %x_174
+        %53:vec4<f32> = load %52
+        store %param_1, %53
+        %54:bool = call %collision_vf2_vf4_, %param, %param_1
+        %x_178:bool = let %54
+        if %x_178 [t: $B16] {  # if_8
+          $B16: {  # true
+            %56:i32 = load %i
+            %x_181:i32 = let %56
             store %indexable_1, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %55:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_181
-            %x_183:f32 = load_vector_element %55, 0u
-            %x_185:i32 = load %i
+            %58:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_181
+            %59:f32 = load_vector_element %58, 0u
+            %x_183:f32 = let %59
+            %61:i32 = load %i
+            %x_185:i32 = let %61
             store %indexable_2, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %58:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_185
-            %x_187:f32 = load_vector_element %58, 1u
-            %x_190:i32 = load %i
+            %63:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_185
+            %64:f32 = load_vector_element %63, 1u
+            %x_187:f32 = let %64
+            %66:i32 = load %i
+            %x_190:i32 = let %66
             store %indexable_3, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %61:i32 = convert %x_183
-            %62:i32 = convert %x_187
-            %63:i32 = mul %61, %62
-            %64:i32 = mul %x_190, 9i
-            %65:i32 = add %63, %64
-            %66:i32 = add %65, 11i
-            %67:i32 = mod %66, 16i
-            %68:ptr<function, vec4<f32>, read_write> = access %indexable_3, %67
-            %69:vec4<f32> = load %68
-            store %res, %69
+            %68:i32 = call %tint_f32_to_i32, %x_183
+            %70:i32 = let %68
+            %71:i32 = call %tint_f32_to_i32, %x_187
+            %72:i32 = mul %70, %71
+            %73:i32 = mul %x_190, 9i
+            %74:i32 = add %72, %73
+            %75:i32 = add %74, 11i
+            %76:i32 = call %tint_mod_i32, %75, 16i
+            %78:ptr<function, vec4<f32>, read_write> = access %indexable_3, %76
+            %79:vec4<f32> = load %78
+            store %res, %79
             exit_if  # if_8
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %70:i32 = load %i
-        %71:i32 = add %70, 1i
-        store %i, %71
-        next_iteration %b12
+      $B13: {  # continuing
+        %80:i32 = load %i
+        %81:i32 = add %80, 1i
+        store %i, %81
+        next_iteration  # -> $B12
       }
     }
-    %x_199:vec4<f32> = load %res
+    %82:vec4<f32> = load %res
+    %x_199:vec4<f32> = let %82
     ret %x_199
   }
 }
-%main_1 = func():void -> %b17 {
-  %b17 = block {
+%main_1 = func():void {
+  $B17: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %76:vec4<f32> = load %gl_FragCoord
-    %77:vec2<f32> = swizzle %76, xy
-    %78:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %79:vec2<f32> = load %78
-    %80:vec2<f32> = div %77, %79
-    store %lin, %80
-    %81:vec2<f32> = load %lin
-    %82:vec2<f32> = mul %81, 32.0f
-    %83:vec2<f32> = floor %82
-    store %lin, %83
-    %84:vec2<f32> = load %lin
-    store %param_2, %84
-    %x_107:vec4<f32> = call %match_vf2_, %param_2
+    %87:vec4<f32> = load %gl_FragCoord
+    %88:vec2<f32> = swizzle %87, xy
+    %89:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %90:vec2<f32> = load %89
+    %91:vec2<f32> = div %88, %90
+    store %lin, %91
+    %92:vec2<f32> = load %lin
+    %93:vec2<f32> = mul %92, 32.0f
+    %94:vec2<f32> = floor %93
+    store %lin, %94
+    %95:vec2<f32> = load %lin
+    store %param_2, %95
+    %96:vec4<f32> = call %match_vf2_, %param_2
+    %x_107:vec4<f32> = let %96
     store %x_GLF_color, %x_107
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b18 {
-  %b18 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B18: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %88:void = call %main_1
-    %89:vec4<f32> = load %x_GLF_color
-    %90:main_out = construct %89
-    ret %90
+    %100:void = call %main_1
+    %101:vec4<f32> = load %x_GLF_color
+    %102:main_out = construct %101
+    ret %102
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B19: {
+    %105:bool = eq %rhs, 0i
+    %106:bool = eq %lhs, -2147483648i
+    %107:bool = eq %rhs, -1i
+    %108:bool = and %106, %107
+    %109:bool = or %105, %108
+    %110:i32 = select %rhs, 1i, %109
+    %111:i32 = let %110
+    %112:i32 = div %lhs, %111
+    %113:i32 = mul %112, %111
+    %114:i32 = sub %lhs, %113
+    ret %114
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %116:i32 = convert %value
+    %117:bool = gte %value, -2147483648.0f
+    %118:i32 = select -2147483648i, %116, %117
+    %119:bool = lte %value, 2147483520.0f
+    %120:i32 = select 2147483647i, %118, %119
+    ret %120
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.msl
index b1dffe7..435e6f5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-rects-vec4-clamp-conditional-min-mix/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,55 +8,65 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_20:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool -> %b2 {
-  %b2 = block {
-    %x_110:f32 = load_vector_element %pos, 0u
-    %x_112:f32 = load_vector_element %quad, 0u
-    %9:bool = lt %x_110, %x_112
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
+%collision_vf2_vf4_ = func(%pos:ptr<function, vec2<f32>, read_write>, %quad:ptr<function, vec4<f32>, read_write>):bool {
+  $B2: {
+    %7:f32 = load_vector_element %pos, 0u
+    %x_110:f32 = let %7
+    %9:f32 = load_vector_element %quad, 0u
+    %x_112:f32 = let %9
+    %11:bool = lt %x_110, %x_112
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
         ret false
       }
     }
-    %x_117:f32 = load_vector_element %pos, 1u
-    %x_119:f32 = load_vector_element %quad, 1u
-    %12:bool = lt %x_117, %x_119
-    if %12 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %12:f32 = load_vector_element %pos, 1u
+    %x_117:f32 = let %12
+    %14:f32 = load_vector_element %quad, 1u
+    %x_119:f32 = let %14
+    %16:bool = lt %x_117, %x_119
+    if %16 [t: $B4] {  # if_2
+      $B4: {  # true
         ret false
       }
     }
-    %x_124:f32 = load_vector_element %pos, 0u
-    %x_126:f32 = load_vector_element %quad, 0u
-    %x_128:f32 = load_vector_element %quad, 2u
-    %16:f32 = add %x_126, %x_128
-    %17:bool = gt %x_124, %16
-    if %17 [t: %b5] {  # if_3
-      %b5 = block {  # true
+    %17:f32 = load_vector_element %pos, 0u
+    %x_124:f32 = let %17
+    %19:f32 = load_vector_element %quad, 0u
+    %x_126:f32 = let %19
+    %21:f32 = load_vector_element %quad, 2u
+    %x_128:f32 = let %21
+    %23:f32 = add %x_126, %x_128
+    %24:bool = gt %x_124, %23
+    if %24 [t: $B5] {  # if_3
+      $B5: {  # true
         ret false
       }
     }
-    %x_134:f32 = load_vector_element %pos, 1u
-    %x_136:f32 = load_vector_element %quad, 1u
-    %x_138:f32 = load_vector_element %quad, 3u
-    %21:f32 = add %x_136, %x_138
-    %22:bool = gt %x_134, %21
-    if %22 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %25:f32 = load_vector_element %pos, 1u
+    %x_134:f32 = let %25
+    %27:f32 = load_vector_element %quad, 1u
+    %x_136:f32 = let %27
+    %29:f32 = load_vector_element %quad, 3u
+    %x_138:f32 = let %29
+    %31:f32 = add %x_136, %x_138
+    %32:bool = gt %x_134, %31
+    if %32 [t: $B6] {  # if_4
+      $B6: {  # true
         ret false
       }
     }
     ret true
   }
 }
-%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> -> %b7 {
-  %b7 = block {
+%match_vf2_ = func(%pos_1:ptr<function, vec2<f32>, read_write>):vec4<f32> {
+  $B7: {
     %res:ptr<function, vec4<f32>, read_write> = var
     %x_144:ptr<function, f32, read_write> = var
     %x_145:ptr<function, f32, read_write> = var
@@ -67,128 +77,177 @@
     %indexable_1:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %indexable_2:ptr<function, array<vec4<f32>, 8>, read_write> = var
     %indexable_3:ptr<function, array<vec4<f32>, 16>, read_write> = var
-    %x_147:f32 = load_vector_element %gl_FragCoord, 0u
-    %36:bool = lt %x_147, 0.0f
-    if %36 [t: %b8, f: %b9] {  # if_5
-      %b8 = block {  # true
+    %45:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_147:f32 = let %45
+    %47:bool = lt %x_147, 0.0f
+    if %47 [t: $B8, f: $B9] {  # if_5
+      $B8: {  # true
         store %x_144, -1.0f
         exit_if  # if_5
       }
-      %b9 = block {  # false
-        %x_153:f32 = load_vector_element %gl_FragCoord, 0u
-        %38:bool = gte %x_153, 0.0f
-        if %38 [t: %b10, f: %b11] {  # if_6
-          %b10 = block {  # true
-            %x_159:f32 = load_vector_element %gl_FragCoord, 0u
-            %40:bool = gte %x_159, 0.0f
-            %41:f32 = select 1.0f, 0.5f, %40
-            store %x_145, %41
+      $B9: {  # false
+        %48:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_153:f32 = let %48
+        %50:bool = gte %x_153, 0.0f
+        if %50 [t: $B10, f: $B11] {  # if_6
+          $B10: {  # true
+            %51:f32 = load_vector_element %gl_FragCoord, 0u
+            %x_159:f32 = let %51
+            %53:bool = gte %x_159, 0.0f
+            %54:f32 = select 1.0f, 0.5f, %53
+            store %x_145, %54
             exit_if  # if_6
           }
-          %b11 = block {  # false
+          $B11: {  # false
             store %x_145, 1.0f
             exit_if  # if_6
           }
         }
-        %x_162:f32 = load %x_145
-        %43:f32 = min %x_162, 0.5f
-        store %x_144, %43
+        %55:f32 = load %x_145
+        %x_162:f32 = let %55
+        %57:f32 = min %x_162, 0.5f
+        store %x_144, %57
         exit_if  # if_5
       }
     }
-    %x_164:f32 = load %x_144
-    %45:f32 = clamp 0.5f, 0.5f, %x_164
-    %46:vec4<f32> = construct %45, 0.5f, 1.0f, 1.0f
-    store %res, %46
+    %58:f32 = load %x_144
+    %x_164:f32 = let %58
+    %60:f32 = clamp 0.5f, 0.5f, %x_164
+    %61:vec4<f32> = construct %60, 0.5f, 1.0f, 1.0f
+    store %res, %61
     store %i, 0i
-    loop [b: %b12, c: %b13] {  # loop_1
-      %b12 = block {  # body
-        %x_171:i32 = load %i
-        %48:bool = lt %x_171, 8i
-        if %48 [t: %b14, f: %b15] {  # if_7
-          %b14 = block {  # true
+    loop [b: $B12, c: $B13] {  # loop_1
+      $B12: {  # body
+        %62:i32 = load %i
+        %x_171:i32 = let %62
+        %64:bool = lt %x_171, 8i
+        if %64 [t: $B14, f: $B15] {  # if_7
+          $B14: {  # true
             exit_if  # if_7
           }
-          %b15 = block {  # false
+          $B15: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_174:i32 = load %i
-        %x_175:vec2<f32> = load %pos_1
+        %65:i32 = load %i
+        %x_174:i32 = let %65
+        %67:vec2<f32> = load %pos_1
+        %x_175:vec2<f32> = let %67
         store %param, %x_175
         store %indexable, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-        %51:ptr<function, vec4<f32>, read_write> = access %indexable, %x_174
-        %x_177:vec4<f32> = load %51
+        %69:ptr<function, vec4<f32>, read_write> = access %indexable, %x_174
+        %70:vec4<f32> = load %69
+        %x_177:vec4<f32> = let %70
         store %param_1, %x_177
-        %x_178:bool = call %collision_vf2_vf4_, %param, %param_1
-        if %x_178 [t: %b16] {  # if_8
-          %b16 = block {  # true
-            %x_181:i32 = load %i
+        %72:bool = call %collision_vf2_vf4_, %param, %param_1
+        %x_178:bool = let %72
+        if %x_178 [t: $B16] {  # if_8
+          $B16: {  # true
+            %74:i32 = load %i
+            %x_181:i32 = let %74
             store %indexable_1, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %55:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_181
-            %x_183:f32 = load_vector_element %55, 0u
-            %x_185:i32 = load %i
+            %76:ptr<function, vec4<f32>, read_write> = access %indexable_1, %x_181
+            %77:f32 = load_vector_element %76, 0u
+            %x_183:f32 = let %77
+            %79:i32 = load %i
+            %x_185:i32 = let %79
             store %indexable_2, array<vec4<f32>, 8>(vec4<f32>(4.0f, 4.0f, 20.0f, 4.0f), vec4<f32>(4.0f, 4.0f, 4.0f, 20.0f), vec4<f32>(4.0f, 20.0f, 20.0f, 4.0f), vec4<f32>(20.0f, 4.0f, 4.0f, 8.0f), vec4<f32>(8.0f, 6.0f, 4.0f, 2.0f), vec4<f32>(2.0f, 12.0f, 2.0f, 4.0f), vec4<f32>(16.0f, 2.0f, 4.0f, 4.0f), vec4<f32>(12.0f, 22.0f, 4.0f, 4.0f))
-            %58:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_185
-            %x_187:f32 = load_vector_element %58, 1u
-            %x_190:i32 = load %i
+            %81:ptr<function, vec4<f32>, read_write> = access %indexable_2, %x_185
+            %82:f32 = load_vector_element %81, 1u
+            %x_187:f32 = let %82
+            %84:i32 = load %i
+            %x_190:i32 = let %84
             store %indexable_3, array<vec4<f32>, 16>(vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.0f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.5f, 0.5f, 0.5f, 1.0f), vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(1.0f, 1.0f, 0.0f, 1.0f), vec4<f32>(0.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(1.0f, 0.0f, 1.0f, 1.0f), vec4<f32>(0.0f, 1.0f, 1.0f, 1.0f), vec4<f32>(1.0f))
-            %61:i32 = convert %x_183
-            %62:i32 = convert %x_187
-            %63:i32 = mul %61, %62
-            %64:i32 = mul %x_190, 9i
-            %65:i32 = add %63, %64
-            %66:i32 = add %65, 11i
-            %67:i32 = mod %66, 16i
-            %68:ptr<function, vec4<f32>, read_write> = access %indexable_3, %67
-            %x_196:vec4<f32> = load %68
+            %86:i32 = call %tint_f32_to_i32, %x_183
+            %88:i32 = let %86
+            %89:i32 = call %tint_f32_to_i32, %x_187
+            %90:i32 = mul %88, %89
+            %91:i32 = mul %x_190, 9i
+            %92:i32 = add %90, %91
+            %93:i32 = add %92, 11i
+            %94:i32 = call %tint_mod_i32, %93, 16i
+            %96:ptr<function, vec4<f32>, read_write> = access %indexable_3, %94
+            %97:vec4<f32> = load %96
+            %x_196:vec4<f32> = let %97
             store %res, %x_196
             exit_if  # if_8
           }
         }
-        continue %b13
+        continue  # -> $B13
       }
-      %b13 = block {  # continuing
-        %x_197:i32 = load %i
-        %71:i32 = add %x_197, 1i
-        store %i, %71
-        next_iteration %b12
+      $B13: {  # continuing
+        %99:i32 = load %i
+        %x_197:i32 = let %99
+        %101:i32 = add %x_197, 1i
+        store %i, %101
+        next_iteration  # -> $B12
       }
     }
-    %x_199:vec4<f32> = load %res
+    %102:vec4<f32> = load %res
+    %x_199:vec4<f32> = let %102
     ret %x_199
   }
 }
-%main_1 = func():void -> %b17 {
-  %b17 = block {
+%main_1 = func():void {
+  $B17: {
     %lin:ptr<function, vec2<f32>, read_write> = var
     %param_2:ptr<function, vec2<f32>, read_write> = var
-    %x_98:vec4<f32> = load %gl_FragCoord
-    %77:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
-    %x_101:vec2<f32> = load %77
-    %79:f32 = access %x_98, 0u
-    %80:f32 = access %x_98, 1u
-    %81:vec2<f32> = construct %79, %80
-    %82:vec2<f32> = div %81, %x_101
-    store %lin, %82
-    %x_103:vec2<f32> = load %lin
-    %84:vec2<f32> = mul %x_103, 32.0f
-    %85:vec2<f32> = floor %84
-    store %lin, %85
-    %x_106:vec2<f32> = load %lin
+    %107:vec4<f32> = load %gl_FragCoord
+    %x_98:vec4<f32> = let %107
+    %109:ptr<uniform, vec2<f32>, read> = access %x_20, 0u
+    %110:vec2<f32> = load %109
+    %x_101:vec2<f32> = let %110
+    %112:f32 = access %x_98, 0u
+    %113:f32 = access %x_98, 1u
+    %114:vec2<f32> = construct %112, %113
+    %115:vec2<f32> = div %114, %x_101
+    store %lin, %115
+    %116:vec2<f32> = load %lin
+    %x_103:vec2<f32> = let %116
+    %118:vec2<f32> = mul %x_103, 32.0f
+    %119:vec2<f32> = floor %118
+    store %lin, %119
+    %120:vec2<f32> = load %lin
+    %x_106:vec2<f32> = let %120
     store %param_2, %x_106
-    %x_107:vec4<f32> = call %match_vf2_, %param_2
+    %122:vec4<f32> = call %match_vf2_, %param_2
+    %x_107:vec4<f32> = let %122
     store %x_GLF_color, %x_107
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b18 {
-  %b18 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B18: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %90:void = call %main_1
-    %91:vec4<f32> = load %x_GLF_color
-    %92:main_out = construct %91
-    ret %92
+    %126:void = call %main_1
+    %127:vec4<f32> = load %x_GLF_color
+    %128:main_out = construct %127
+    ret %128
+  }
+}
+%tint_mod_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B19: {
+    %131:bool = eq %rhs, 0i
+    %132:bool = eq %lhs, -2147483648i
+    %133:bool = eq %rhs, -1i
+    %134:bool = and %132, %133
+    %135:bool = or %131, %134
+    %136:i32 = select %rhs, 1i, %135
+    %137:i32 = let %136
+    %138:i32 = div %lhs, %137
+    %139:i32 = mul %138, %137
+    %140:i32 = sub %lhs, %139
+    ret %140
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %142:i32 = convert %value
+    %143:bool = gte %value, -2147483648.0f
+    %144:i32 = select -2147483648i, %142, %143
+    %145:bool = lte %value, 2147483520.0f
+    %146:i32 = select 2147483647i, %144, %145
+    ret %146
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.msl
index c0aa8fc..e5d4488 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_24:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_79:f32 = load_vector_element %a, 0u
-    %x_81:f32 = load_vector_element %b, 1u
-    %x_84:f32 = load_vector_element %b, 0u
-    %x_86:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_79, %x_81
-    %12:f32 = mul %x_84, %x_86
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_79:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_81:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_84:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_86:f32 = let %13
+    %15:f32 = mul %x_79, %x_81
+    %16:f32 = mul %x_84, %x_86
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %x_90:ptr<function, bool, read_write> = var, false
     %x_91:ptr<function, i32, read_write> = var
     %pab:ptr<function, f32, read_write> = var
@@ -44,108 +48,125 @@
     %x_168:ptr<function, bool, read_write> = var
     %x_169:ptr<function, bool, read_write> = var
     %x_173:ptr<function, i32, read_write> = var
-    switch 0u [c: (default, %b4)] {  # switch_1
-      %b4 = block {  # case
-        %x_106:f32 = load_vector_element %b_1, 0u
-        %x_107:f32 = load_vector_element %a_1, 0u
-        %x_110:f32 = load_vector_element %b_1, 1u
-        %x_111:f32 = load_vector_element %a_1, 1u
-        %39:f32 = load_vector_element %p, 0u
-        %40:f32 = load_vector_element %a_1, 0u
-        %41:f32 = sub %39, %40
-        %42:f32 = load_vector_element %p, 1u
-        %43:f32 = load_vector_element %a_1, 1u
-        %44:f32 = sub %42, %43
-        %45:vec2<f32> = construct %41, %44
-        store %param, %45
-        %46:f32 = sub %x_106, %x_107
-        %47:f32 = sub %x_110, %x_111
-        %48:vec2<f32> = construct %46, %47
-        store %param_1, %48
-        %x_114:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    switch 0u [c: (default, $B4)] {  # switch_1
+      $B4: {  # case
+        %39:f32 = load_vector_element %b_1, 0u
+        %x_106:f32 = let %39
+        %41:f32 = load_vector_element %a_1, 0u
+        %x_107:f32 = let %41
+        %43:f32 = load_vector_element %b_1, 1u
+        %x_110:f32 = let %43
+        %45:f32 = load_vector_element %a_1, 1u
+        %x_111:f32 = let %45
+        %47:f32 = load_vector_element %p, 0u
+        %48:f32 = load_vector_element %a_1, 0u
+        %49:f32 = sub %47, %48
+        %50:f32 = load_vector_element %p, 1u
+        %51:f32 = load_vector_element %a_1, 1u
+        %52:f32 = sub %50, %51
+        %53:vec2<f32> = construct %49, %52
+        store %param, %53
+        %54:f32 = sub %x_106, %x_107
+        %55:f32 = sub %x_110, %x_111
+        %56:vec2<f32> = construct %54, %55
+        store %param_1, %56
+        %57:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+        %x_114:f32 = let %57
         store %pab, %x_114
-        %x_123:f32 = load_vector_element %c, 0u
-        %x_124:f32 = load_vector_element %b_1, 0u
-        %x_127:f32 = load_vector_element %c, 1u
-        %x_128:f32 = load_vector_element %b_1, 1u
-        %54:f32 = load_vector_element %p, 0u
-        %55:f32 = load_vector_element %b_1, 0u
-        %56:f32 = sub %54, %55
-        %57:f32 = load_vector_element %p, 1u
-        %58:f32 = load_vector_element %b_1, 1u
-        %59:f32 = sub %57, %58
-        %60:vec2<f32> = construct %56, %59
-        store %param_2, %60
-        %61:f32 = sub %x_123, %x_124
-        %62:f32 = sub %x_127, %x_128
-        %63:vec2<f32> = construct %61, %62
-        store %param_3, %63
-        %x_131:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+        %59:f32 = load_vector_element %c, 0u
+        %x_123:f32 = let %59
+        %61:f32 = load_vector_element %b_1, 0u
+        %x_124:f32 = let %61
+        %63:f32 = load_vector_element %c, 1u
+        %x_127:f32 = let %63
+        %65:f32 = load_vector_element %b_1, 1u
+        %x_128:f32 = let %65
+        %67:f32 = load_vector_element %p, 0u
+        %68:f32 = load_vector_element %b_1, 0u
+        %69:f32 = sub %67, %68
+        %70:f32 = load_vector_element %p, 1u
+        %71:f32 = load_vector_element %b_1, 1u
+        %72:f32 = sub %70, %71
+        %73:vec2<f32> = construct %69, %72
+        store %param_2, %73
+        %74:f32 = sub %x_123, %x_124
+        %75:f32 = sub %x_127, %x_128
+        %76:vec2<f32> = construct %74, %75
+        store %param_3, %76
+        %77:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+        %x_131:f32 = let %77
         store %pbc, %x_131
-        %65:bool = lt %x_114, 0.0f
-        %66:bool = lt %x_131, 0.0f
-        %x_134:bool = and %65, %66
+        %79:bool = lt %x_114, 0.0f
+        %80:bool = lt %x_131, 0.0f
+        %81:bool = and %79, %80
+        %x_134:bool = let %81
         store %x_141, %x_134
-        %68:bool = eq %x_134, false
-        if %68 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %69:bool = gte %x_114, 0.0f
-            %70:bool = gte %x_131, 0.0f
-            %71:bool = and %69, %70
-            store %x_140, %71
-            %72:bool = load %x_140
-            store %x_141, %72
+        %83:bool = eq %x_134, false
+        if %83 [t: $B5] {  # if_1
+          $B5: {  # true
+            %84:bool = gte %x_114, 0.0f
+            %85:bool = gte %x_131, 0.0f
+            %86:bool = and %84, %85
+            store %x_140, %86
+            %87:bool = load %x_140
+            store %x_141, %87
             exit_if  # if_1
           }
         }
-        %73:bool = load %x_141
-        %74:bool = eq %73, false
-        if %74 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %88:bool = load %x_141
+        %89:bool = eq %88, false
+        if %89 [t: $B6] {  # if_2
+          $B6: {  # true
             store %x_90, true
             store %x_91, 0i
             store %x_173, 0i
             exit_switch  # switch_1
           }
         }
-        %x_152:f32 = load_vector_element %a_1, 0u
-        %x_153:f32 = load_vector_element %c, 0u
-        %x_155:f32 = load_vector_element %a_1, 1u
-        %x_156:f32 = load_vector_element %c, 1u
-        %79:f32 = load_vector_element %p, 0u
-        %80:f32 = load_vector_element %c, 0u
-        %81:f32 = sub %79, %80
-        %82:f32 = load_vector_element %p, 1u
-        %83:f32 = load_vector_element %c, 1u
-        %84:f32 = sub %82, %83
-        %85:vec2<f32> = construct %81, %84
-        store %param_4, %85
-        %86:f32 = sub %x_152, %x_153
-        %87:f32 = sub %x_155, %x_156
-        %88:vec2<f32> = construct %86, %87
-        store %param_5, %88
-        %x_159:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+        %90:f32 = load_vector_element %a_1, 0u
+        %x_152:f32 = let %90
+        %92:f32 = load_vector_element %c, 0u
+        %x_153:f32 = let %92
+        %94:f32 = load_vector_element %a_1, 1u
+        %x_155:f32 = let %94
+        %96:f32 = load_vector_element %c, 1u
+        %x_156:f32 = let %96
+        %98:f32 = load_vector_element %p, 0u
+        %99:f32 = load_vector_element %c, 0u
+        %100:f32 = sub %98, %99
+        %101:f32 = load_vector_element %p, 1u
+        %102:f32 = load_vector_element %c, 1u
+        %103:f32 = sub %101, %102
+        %104:vec2<f32> = construct %100, %103
+        store %param_4, %104
+        %105:f32 = sub %x_152, %x_153
+        %106:f32 = sub %x_155, %x_156
+        %107:vec2<f32> = construct %105, %106
+        store %param_5, %107
+        %108:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+        %x_159:f32 = let %108
         store %pca, %x_159
-        %90:bool = lt %x_114, 0.0f
-        %91:bool = lt %x_159, 0.0f
-        %x_162:bool = and %90, %91
+        %110:bool = lt %x_114, 0.0f
+        %111:bool = lt %x_159, 0.0f
+        %112:bool = and %110, %111
+        %x_162:bool = let %112
         store %x_169, %x_162
-        %93:bool = eq %x_162, false
-        if %93 [t: %b7] {  # if_3
-          %b7 = block {  # true
-            %94:bool = gte %x_114, 0.0f
-            %95:bool = gte %x_159, 0.0f
-            %96:bool = and %94, %95
-            store %x_168, %96
-            %97:bool = load %x_168
-            store %x_169, %97
+        %114:bool = eq %x_162, false
+        if %114 [t: $B7] {  # if_3
+          $B7: {  # true
+            %115:bool = gte %x_114, 0.0f
+            %116:bool = gte %x_159, 0.0f
+            %117:bool = and %115, %116
+            store %x_168, %117
+            %118:bool = load %x_168
+            store %x_169, %118
             exit_if  # if_3
           }
         }
-        %98:bool = load %x_169
-        %99:bool = eq %98, false
-        if %99 [t: %b8] {  # if_4
-          %b8 = block {  # true
+        %119:bool = load %x_169
+        %120:bool = eq %119, false
+        if %120 [t: $B8] {  # if_4
+          $B8: {  # true
             store %x_90, true
             store %x_91, 0i
             store %x_173, 0i
@@ -158,35 +179,37 @@
         exit_switch  # switch_1
       }
     }
-    %100:i32 = load %x_173
-    ret %100
+    %121:i32 = load %x_173
+    ret %121
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %107:vec4<f32> = load %gl_FragCoord
-    %108:vec2<f32> = swizzle %107, xy
-    %109:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
-    %110:vec2<f32> = load %109
-    %x_71:vec2<f32> = div %108, %110
+    %128:vec4<f32> = load %gl_FragCoord
+    %129:vec2<f32> = swizzle %128, xy
+    %130:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
+    %131:vec2<f32> = load %130
+    %132:vec2<f32> = div %129, %131
+    %x_71:vec2<f32> = let %132
     store %pos, %x_71
     store %param_6, %x_71
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_72:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %113:bool = eq %x_72, 1i
-    if %113 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
+    %134:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_72:i32 = let %134
+    %136:bool = eq %x_72, 1i
+    if %136 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b11 = block {  # false
+      $B11: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -194,13 +217,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %116:void = call %main_1
-    %117:vec4<f32> = load %x_GLF_color
-    %118:main_out = construct %117
-    ret %118
+    %139:void = call %main_1
+    %140:vec4<f32> = load %x_GLF_color
+    %141:main_out = construct %140
+    ret %141
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.msl
index 18ff9b4..5aa90252 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-array-nested-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_24:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_79:f32 = load_vector_element %a, 0u
-    %x_81:f32 = load_vector_element %b, 1u
-    %x_84:f32 = load_vector_element %b, 0u
-    %x_86:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_79, %x_81
-    %12:f32 = mul %x_84, %x_86
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_79:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_81:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_84:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_86:f32 = let %13
+    %15:f32 = mul %x_79, %x_81
+    %16:f32 = mul %x_84, %x_86
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %x_90:ptr<function, bool, read_write> = var, false
     %x_91:ptr<function, i32, read_write> = var
     %pab:ptr<function, f32, read_write> = var
@@ -44,108 +48,139 @@
     %x_141_phi:ptr<function, bool, read_write> = var
     %x_169_phi:ptr<function, bool, read_write> = var
     %x_173_phi:ptr<function, i32, read_write> = var
-    switch 0u [c: (default, %b4)] {  # switch_1
-      %b4 = block {  # case
-        %x_95:f32 = load_vector_element %p, 0u
-        %x_97:f32 = load_vector_element %a_1, 0u
-        %x_100:f32 = load_vector_element %p, 1u
-        %x_102:f32 = load_vector_element %a_1, 1u
-        %x_106:f32 = load_vector_element %b_1, 0u
-        %x_107:f32 = load_vector_element %a_1, 0u
-        %x_110:f32 = load_vector_element %b_1, 1u
-        %x_111:f32 = load_vector_element %a_1, 1u
-        %43:f32 = sub %x_95, %x_97
-        %44:f32 = sub %x_100, %x_102
-        %45:vec2<f32> = construct %43, %44
-        store %param, %45
-        %46:f32 = sub %x_106, %x_107
-        %47:f32 = sub %x_110, %x_111
-        %48:vec2<f32> = construct %46, %47
-        store %param_1, %48
-        %x_114:f32 = call %cross2d_vf2_vf2_, %param, %param_1
-        store %pab, %x_114
-        %x_115:f32 = load_vector_element %p, 0u
-        %x_116:f32 = load_vector_element %b_1, 0u
-        %x_118:f32 = load_vector_element %p, 1u
-        %x_119:f32 = load_vector_element %b_1, 1u
-        %x_123:f32 = load_vector_element %c, 0u
-        %x_124:f32 = load_vector_element %b_1, 0u
-        %x_127:f32 = load_vector_element %c, 1u
-        %x_128:f32 = load_vector_element %b_1, 1u
-        %58:f32 = sub %x_115, %x_116
-        %59:f32 = sub %x_118, %x_119
+    switch 0u [c: (default, $B4)] {  # switch_1
+      $B4: {  # case
+        %39:f32 = load_vector_element %p, 0u
+        %x_95:f32 = let %39
+        %41:f32 = load_vector_element %a_1, 0u
+        %x_97:f32 = let %41
+        %43:f32 = load_vector_element %p, 1u
+        %x_100:f32 = let %43
+        %45:f32 = load_vector_element %a_1, 1u
+        %x_102:f32 = let %45
+        %47:f32 = load_vector_element %b_1, 0u
+        %x_106:f32 = let %47
+        %49:f32 = load_vector_element %a_1, 0u
+        %x_107:f32 = let %49
+        %51:f32 = load_vector_element %b_1, 1u
+        %x_110:f32 = let %51
+        %53:f32 = load_vector_element %a_1, 1u
+        %x_111:f32 = let %53
+        %55:f32 = sub %x_95, %x_97
+        %56:f32 = sub %x_100, %x_102
+        %57:vec2<f32> = construct %55, %56
+        store %param, %57
+        %58:f32 = sub %x_106, %x_107
+        %59:f32 = sub %x_110, %x_111
         %60:vec2<f32> = construct %58, %59
-        store %param_2, %60
-        %61:f32 = sub %x_123, %x_124
-        %62:f32 = sub %x_127, %x_128
-        %63:vec2<f32> = construct %61, %62
-        store %param_3, %63
-        %x_131:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+        store %param_1, %60
+        %61:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+        %x_114:f32 = let %61
+        store %pab, %x_114
+        %63:f32 = load_vector_element %p, 0u
+        %x_115:f32 = let %63
+        %65:f32 = load_vector_element %b_1, 0u
+        %x_116:f32 = let %65
+        %67:f32 = load_vector_element %p, 1u
+        %x_118:f32 = let %67
+        %69:f32 = load_vector_element %b_1, 1u
+        %x_119:f32 = let %69
+        %71:f32 = load_vector_element %c, 0u
+        %x_123:f32 = let %71
+        %73:f32 = load_vector_element %b_1, 0u
+        %x_124:f32 = let %73
+        %75:f32 = load_vector_element %c, 1u
+        %x_127:f32 = let %75
+        %77:f32 = load_vector_element %b_1, 1u
+        %x_128:f32 = let %77
+        %79:f32 = sub %x_115, %x_116
+        %80:f32 = sub %x_118, %x_119
+        %81:vec2<f32> = construct %79, %80
+        store %param_2, %81
+        %82:f32 = sub %x_123, %x_124
+        %83:f32 = sub %x_127, %x_128
+        %84:vec2<f32> = construct %82, %83
+        store %param_3, %84
+        %85:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+        %x_131:f32 = let %85
         store %pbc, %x_131
-        %65:bool = lt %x_114, 0.0f
-        %66:bool = lt %x_131, 0.0f
-        %x_134:bool = and %65, %66
+        %87:bool = lt %x_114, 0.0f
+        %88:bool = lt %x_131, 0.0f
+        %89:bool = and %87, %88
+        %x_134:bool = let %89
         store %x_141_phi, %x_134
-        %68:bool = eq %x_134, false
-        if %68 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %69:bool = gte %x_114, 0.0f
-            %70:bool = gte %x_131, 0.0f
-            %71:bool = and %69, %70
-            store %x_140, %71
-            %72:bool = load %x_140
-            store %x_141_phi, %72
+        %91:bool = eq %x_134, false
+        if %91 [t: $B5] {  # if_1
+          $B5: {  # true
+            %92:bool = gte %x_114, 0.0f
+            %93:bool = gte %x_131, 0.0f
+            %94:bool = and %92, %93
+            store %x_140, %94
+            %95:bool = load %x_140
+            store %x_141_phi, %95
             exit_if  # if_1
           }
         }
-        %x_141:bool = load %x_141_phi
-        %74:bool = eq %x_141, false
-        if %74 [t: %b6] {  # if_2
-          %b6 = block {  # true
+        %96:bool = load %x_141_phi
+        %x_141:bool = let %96
+        %98:bool = eq %x_141, false
+        if %98 [t: $B6] {  # if_2
+          $B6: {  # true
             store %x_90, true
             store %x_91, 0i
             store %x_173_phi, 0i
             exit_switch  # switch_1
           }
         }
-        %x_145:f32 = load_vector_element %p, 0u
-        %x_146:f32 = load_vector_element %c, 0u
-        %x_148:f32 = load_vector_element %p, 1u
-        %x_149:f32 = load_vector_element %c, 1u
-        %x_152:f32 = load_vector_element %a_1, 0u
-        %x_153:f32 = load_vector_element %c, 0u
-        %x_155:f32 = load_vector_element %a_1, 1u
-        %x_156:f32 = load_vector_element %c, 1u
-        %83:f32 = sub %x_145, %x_146
-        %84:f32 = sub %x_148, %x_149
-        %85:vec2<f32> = construct %83, %84
-        store %param_4, %85
-        %86:f32 = sub %x_152, %x_153
-        %87:f32 = sub %x_155, %x_156
-        %88:vec2<f32> = construct %86, %87
-        store %param_5, %88
-        %x_159:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+        %99:f32 = load_vector_element %p, 0u
+        %x_145:f32 = let %99
+        %101:f32 = load_vector_element %c, 0u
+        %x_146:f32 = let %101
+        %103:f32 = load_vector_element %p, 1u
+        %x_148:f32 = let %103
+        %105:f32 = load_vector_element %c, 1u
+        %x_149:f32 = let %105
+        %107:f32 = load_vector_element %a_1, 0u
+        %x_152:f32 = let %107
+        %109:f32 = load_vector_element %c, 0u
+        %x_153:f32 = let %109
+        %111:f32 = load_vector_element %a_1, 1u
+        %x_155:f32 = let %111
+        %113:f32 = load_vector_element %c, 1u
+        %x_156:f32 = let %113
+        %115:f32 = sub %x_145, %x_146
+        %116:f32 = sub %x_148, %x_149
+        %117:vec2<f32> = construct %115, %116
+        store %param_4, %117
+        %118:f32 = sub %x_152, %x_153
+        %119:f32 = sub %x_155, %x_156
+        %120:vec2<f32> = construct %118, %119
+        store %param_5, %120
+        %121:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+        %x_159:f32 = let %121
         store %pca, %x_159
-        %90:bool = lt %x_114, 0.0f
-        %91:bool = lt %x_159, 0.0f
-        %x_162:bool = and %90, %91
+        %123:bool = lt %x_114, 0.0f
+        %124:bool = lt %x_159, 0.0f
+        %125:bool = and %123, %124
+        %x_162:bool = let %125
         store %x_169_phi, %x_162
-        %93:bool = eq %x_162, false
-        if %93 [t: %b7] {  # if_3
-          %b7 = block {  # true
-            %94:bool = gte %x_114, 0.0f
-            %95:bool = gte %x_159, 0.0f
-            %96:bool = and %94, %95
-            store %x_168, %96
-            %97:bool = load %x_168
-            store %x_169_phi, %97
+        %127:bool = eq %x_162, false
+        if %127 [t: $B7] {  # if_3
+          $B7: {  # true
+            %128:bool = gte %x_114, 0.0f
+            %129:bool = gte %x_159, 0.0f
+            %130:bool = and %128, %129
+            store %x_168, %130
+            %131:bool = load %x_168
+            store %x_169_phi, %131
             exit_if  # if_3
           }
         }
-        %x_169:bool = load %x_169_phi
-        %99:bool = eq %x_169, false
-        if %99 [t: %b8] {  # if_4
-          %b8 = block {  # true
+        %132:bool = load %x_169_phi
+        %x_169:bool = let %132
+        %134:bool = eq %x_169, false
+        if %134 [t: $B8] {  # if_4
+          $B8: {  # true
             store %x_90, true
             store %x_91, 0i
             store %x_173_phi, 0i
@@ -158,37 +193,42 @@
         exit_switch  # switch_1
       }
     }
-    %x_173:i32 = load %x_173_phi
+    %135:i32 = load %x_173_phi
+    %x_173:i32 = let %135
     ret %x_173
   }
 }
-%main_1 = func():void -> %b9 {
-  %b9 = block {
+%main_1 = func():void {
+  $B9: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %x_67:vec4<f32> = load %gl_FragCoord
-    %108:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
-    %x_70:vec2<f32> = load %108
-    %110:f32 = access %x_67, 0u
-    %111:f32 = access %x_67, 1u
-    %112:vec2<f32> = construct %110, %111
-    %x_71:vec2<f32> = div %112, %x_70
+    %143:vec4<f32> = load %gl_FragCoord
+    %x_67:vec4<f32> = let %143
+    %145:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
+    %146:vec2<f32> = load %145
+    %x_70:vec2<f32> = let %146
+    %148:f32 = access %x_67, 0u
+    %149:f32 = access %x_67, 1u
+    %150:vec2<f32> = construct %148, %149
+    %151:vec2<f32> = div %150, %x_70
+    %x_71:vec2<f32> = let %151
     store %pos, %x_71
     store %param_6, %x_71
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_72:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %115:bool = eq %x_72, 1i
-    if %115 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
+    %153:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_72:i32 = let %153
+    %155:bool = eq %x_72, 1i
+    if %155 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b11 = block {  # false
+      $B11: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -196,13 +236,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b12 {
-  %b12 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B12: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %118:void = call %main_1
-    %119:vec4<f32> = load %x_GLF_color
-    %120:main_out = construct %119
-    ret %120
+    %158:void = call %main_1
+    %159:vec4<f32> = load %x_GLF_color
+    %160:main_out = construct %159
+    ret %160
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.msl
index 120dd26..54ebf02 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_24:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_76:f32 = load_vector_element %a, 0u
-    %x_78:f32 = load_vector_element %b, 1u
-    %x_81:f32 = load_vector_element %b, 0u
-    %x_83:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_76, %x_78
-    %12:f32 = mul %x_81, %x_83
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_76:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_78:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_81:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_83:f32 = let %13
+    %15:f32 = mul %x_76, %x_78
+    %16:f32 = mul %x_81, %x_83
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %pab:ptr<function, f32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %param_1:ptr<function, vec2<f32>, read_write> = var
@@ -41,143 +45,161 @@
     %x_138:ptr<function, bool, read_write> = var
     %x_169:ptr<function, bool, read_write> = var
     %x_170:ptr<function, bool, read_write> = var
-    %x_99:f32 = load_vector_element %b_1, 0u
-    %x_100:f32 = load_vector_element %a_1, 0u
-    %x_103:f32 = load_vector_element %b_1, 1u
-    %x_104:f32 = load_vector_element %a_1, 1u
-    %36:f32 = load_vector_element %p, 0u
-    %37:f32 = load_vector_element %a_1, 0u
-    %38:f32 = sub %36, %37
-    %39:f32 = load_vector_element %p, 1u
-    %40:f32 = load_vector_element %a_1, 1u
-    %41:f32 = sub %39, %40
-    %42:vec2<f32> = construct %38, %41
-    store %param, %42
-    %43:f32 = sub %x_99, %x_100
-    %44:f32 = sub %x_103, %x_104
-    %45:vec2<f32> = construct %43, %44
-    store %param_1, %45
-    %x_107:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %36:f32 = load_vector_element %b_1, 0u
+    %x_99:f32 = let %36
+    %38:f32 = load_vector_element %a_1, 0u
+    %x_100:f32 = let %38
+    %40:f32 = load_vector_element %b_1, 1u
+    %x_103:f32 = let %40
+    %42:f32 = load_vector_element %a_1, 1u
+    %x_104:f32 = let %42
+    %44:f32 = load_vector_element %p, 0u
+    %45:f32 = load_vector_element %a_1, 0u
+    %46:f32 = sub %44, %45
+    %47:f32 = load_vector_element %p, 1u
+    %48:f32 = load_vector_element %a_1, 1u
+    %49:f32 = sub %47, %48
+    %50:vec2<f32> = construct %46, %49
+    store %param, %50
+    %51:f32 = sub %x_99, %x_100
+    %52:f32 = sub %x_103, %x_104
+    %53:vec2<f32> = construct %51, %52
+    store %param_1, %53
+    %54:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %x_107:f32 = let %54
     store %pab, %x_107
-    %x_116:f32 = load_vector_element %c, 0u
-    %x_117:f32 = load_vector_element %b_1, 0u
-    %x_120:f32 = load_vector_element %c, 1u
-    %x_121:f32 = load_vector_element %b_1, 1u
-    %51:f32 = load_vector_element %p, 0u
-    %52:f32 = load_vector_element %b_1, 0u
-    %53:f32 = sub %51, %52
-    %54:f32 = load_vector_element %p, 1u
-    %55:f32 = load_vector_element %b_1, 1u
-    %56:f32 = sub %54, %55
-    %57:vec2<f32> = construct %53, %56
-    store %param_2, %57
-    %58:f32 = sub %x_116, %x_117
-    %59:f32 = sub %x_120, %x_121
-    %60:vec2<f32> = construct %58, %59
-    store %param_3, %60
-    %x_124:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %56:f32 = load_vector_element %c, 0u
+    %x_116:f32 = let %56
+    %58:f32 = load_vector_element %b_1, 0u
+    %x_117:f32 = let %58
+    %60:f32 = load_vector_element %c, 1u
+    %x_120:f32 = let %60
+    %62:f32 = load_vector_element %b_1, 1u
+    %x_121:f32 = let %62
+    %64:f32 = load_vector_element %p, 0u
+    %65:f32 = load_vector_element %b_1, 0u
+    %66:f32 = sub %64, %65
+    %67:f32 = load_vector_element %p, 1u
+    %68:f32 = load_vector_element %b_1, 1u
+    %69:f32 = sub %67, %68
+    %70:vec2<f32> = construct %66, %69
+    store %param_2, %70
+    %71:f32 = sub %x_116, %x_117
+    %72:f32 = sub %x_120, %x_121
+    %73:vec2<f32> = construct %71, %72
+    store %param_3, %73
+    %74:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %x_124:f32 = let %74
     store %pbc, %x_124
-    %62:f32 = load %pab
-    %63:bool = lt %62, 0.0f
-    %64:f32 = load %pbc
-    %65:bool = lt %64, 0.0f
-    %x_129:bool = and %63, %65
+    %76:f32 = load %pab
+    %77:bool = lt %76, 0.0f
+    %78:f32 = load %pbc
+    %79:bool = lt %78, 0.0f
+    %80:bool = and %77, %79
+    %x_129:bool = let %80
     store %x_138, %x_129
-    %67:bool = eq %x_129, false
-    if %67 [t: %b4] {  # if_1
-      %b4 = block {  # true
-        %68:f32 = load %pab
-        %69:bool = gte %68, 0.0f
-        %70:f32 = load %pbc
-        %71:bool = gte %70, 0.0f
-        %72:bool = and %69, %71
-        store %x_137, %72
-        %73:bool = load %x_137
-        store %x_138, %73
+    %82:bool = eq %x_129, false
+    if %82 [t: $B4] {  # if_1
+      $B4: {  # true
+        %83:f32 = load %pab
+        %84:bool = gte %83, 0.0f
+        %85:f32 = load %pbc
+        %86:bool = gte %85, 0.0f
+        %87:bool = and %84, %86
+        store %x_137, %87
+        %88:bool = load %x_137
+        store %x_138, %88
         exit_if  # if_1
       }
     }
-    %74:bool = load %x_138
-    %75:bool = eq %74, false
-    if %75 [t: %b5] {  # if_2
-      %b5 = block {  # true
+    %89:bool = load %x_138
+    %90:bool = eq %89, false
+    if %90 [t: $B5] {  # if_2
+      $B5: {  # true
         ret 0i
       }
     }
-    %x_149:f32 = load_vector_element %a_1, 0u
-    %x_150:f32 = load_vector_element %c, 0u
-    %x_152:f32 = load_vector_element %a_1, 1u
-    %x_153:f32 = load_vector_element %c, 1u
-    %80:f32 = load_vector_element %p, 0u
-    %81:f32 = load_vector_element %c, 0u
-    %82:f32 = sub %80, %81
-    %83:f32 = load_vector_element %p, 1u
-    %84:f32 = load_vector_element %c, 1u
-    %85:f32 = sub %83, %84
-    %86:vec2<f32> = construct %82, %85
-    store %param_4, %86
-    %87:f32 = sub %x_149, %x_150
-    %88:f32 = sub %x_152, %x_153
-    %89:vec2<f32> = construct %87, %88
-    store %param_5, %89
-    %x_156:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %91:f32 = load_vector_element %a_1, 0u
+    %x_149:f32 = let %91
+    %93:f32 = load_vector_element %c, 0u
+    %x_150:f32 = let %93
+    %95:f32 = load_vector_element %a_1, 1u
+    %x_152:f32 = let %95
+    %97:f32 = load_vector_element %c, 1u
+    %x_153:f32 = let %97
+    %99:f32 = load_vector_element %p, 0u
+    %100:f32 = load_vector_element %c, 0u
+    %101:f32 = sub %99, %100
+    %102:f32 = load_vector_element %p, 1u
+    %103:f32 = load_vector_element %c, 1u
+    %104:f32 = sub %102, %103
+    %105:vec2<f32> = construct %101, %104
+    store %param_4, %105
+    %106:f32 = sub %x_149, %x_150
+    %107:f32 = sub %x_152, %x_153
+    %108:vec2<f32> = construct %106, %107
+    store %param_5, %108
+    %109:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %x_156:f32 = let %109
     store %pca, %x_156
-    %91:f32 = load %pab
-    %92:bool = lt %91, 0.0f
-    %93:f32 = load %pca
-    %94:bool = lt %93, 0.0f
-    %x_161:bool = and %92, %94
+    %111:f32 = load %pab
+    %112:bool = lt %111, 0.0f
+    %113:f32 = load %pca
+    %114:bool = lt %113, 0.0f
+    %115:bool = and %112, %114
+    %x_161:bool = let %115
     store %x_170, %x_161
-    %96:bool = eq %x_161, false
-    if %96 [t: %b6] {  # if_3
-      %b6 = block {  # true
-        %97:f32 = load %pab
-        %98:bool = gte %97, 0.0f
-        %99:f32 = load %pca
-        %100:bool = gte %99, 0.0f
-        %101:bool = and %98, %100
-        store %x_169, %101
-        %102:bool = load %x_169
-        store %x_170, %102
+    %117:bool = eq %x_161, false
+    if %117 [t: $B6] {  # if_3
+      $B6: {  # true
+        %118:f32 = load %pab
+        %119:bool = gte %118, 0.0f
+        %120:f32 = load %pca
+        %121:bool = gte %120, 0.0f
+        %122:bool = and %119, %121
+        store %x_169, %122
+        %123:bool = load %x_169
+        store %x_170, %123
         exit_if  # if_3
       }
     }
-    %103:bool = load %x_170
-    %104:bool = eq %103, false
-    if %104 [t: %b7] {  # if_4
-      %b7 = block {  # true
+    %124:bool = load %x_170
+    %125:bool = eq %124, false
+    if %125 [t: $B7] {  # if_4
+      $B7: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %111:vec4<f32> = load %gl_FragCoord
-    %112:vec2<f32> = swizzle %111, xy
-    %113:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
-    %114:vec2<f32> = load %113
-    %115:vec2<f32> = div %112, %114
-    store %pos, %115
-    %116:vec2<f32> = load %pos
-    store %param_6, %116
+    %132:vec4<f32> = load %gl_FragCoord
+    %133:vec2<f32> = swizzle %132, xy
+    %134:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
+    %135:vec2<f32> = load %134
+    %136:vec2<f32> = div %133, %135
+    store %pos, %136
+    %137:vec2<f32> = load %pos
+    store %param_6, %137
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_69:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %118:bool = eq %x_69, 1i
-    if %118 [t: %b9, f: %b10] {  # if_5
-      %b9 = block {  # true
+    %138:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_69:i32 = let %138
+    %140:bool = eq %x_69, 1i
+    if %140 [t: $B9, f: $B10] {  # if_5
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -185,13 +207,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %121:void = call %main_1
-    %122:vec4<f32> = load %x_GLF_color
-    %123:main_out = construct %122
-    ret %123
+    %143:void = call %main_1
+    %144:vec4<f32> = load %x_GLF_color
+    %145:main_out = construct %144
+    ret %145
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.msl
index 05d44c5..d9beded 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_24:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_76:f32 = load_vector_element %a, 0u
-    %x_78:f32 = load_vector_element %b, 1u
-    %x_81:f32 = load_vector_element %b, 0u
-    %x_83:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_76, %x_78
-    %12:f32 = mul %x_81, %x_83
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_76:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_78:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_81:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_83:f32 = let %13
+    %15:f32 = mul %x_76, %x_78
+    %16:f32 = mul %x_81, %x_83
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %pab:ptr<function, f32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %param_1:ptr<function, vec2<f32>, read_write> = var
@@ -41,145 +45,188 @@
     %x_169:ptr<function, bool, read_write> = var
     %x_138_phi:ptr<function, bool, read_write> = var
     %x_170_phi:ptr<function, bool, read_write> = var
-    %x_88:f32 = load_vector_element %p, 0u
-    %x_90:f32 = load_vector_element %a_1, 0u
-    %x_93:f32 = load_vector_element %p, 1u
-    %x_95:f32 = load_vector_element %a_1, 1u
-    %x_99:f32 = load_vector_element %b_1, 0u
-    %x_100:f32 = load_vector_element %a_1, 0u
-    %x_103:f32 = load_vector_element %b_1, 1u
-    %x_104:f32 = load_vector_element %a_1, 1u
-    %40:f32 = sub %x_88, %x_90
-    %41:f32 = sub %x_93, %x_95
-    %42:vec2<f32> = construct %40, %41
-    store %param, %42
-    %43:f32 = sub %x_99, %x_100
-    %44:f32 = sub %x_103, %x_104
-    %45:vec2<f32> = construct %43, %44
-    store %param_1, %45
-    %x_107:f32 = call %cross2d_vf2_vf2_, %param, %param_1
-    store %pab, %x_107
-    %x_108:f32 = load_vector_element %p, 0u
-    %x_109:f32 = load_vector_element %b_1, 0u
-    %x_111:f32 = load_vector_element %p, 1u
-    %x_112:f32 = load_vector_element %b_1, 1u
-    %x_116:f32 = load_vector_element %c, 0u
-    %x_117:f32 = load_vector_element %b_1, 0u
-    %x_120:f32 = load_vector_element %c, 1u
-    %x_121:f32 = load_vector_element %b_1, 1u
-    %55:f32 = sub %x_108, %x_109
-    %56:f32 = sub %x_111, %x_112
+    %36:f32 = load_vector_element %p, 0u
+    %x_88:f32 = let %36
+    %38:f32 = load_vector_element %a_1, 0u
+    %x_90:f32 = let %38
+    %40:f32 = load_vector_element %p, 1u
+    %x_93:f32 = let %40
+    %42:f32 = load_vector_element %a_1, 1u
+    %x_95:f32 = let %42
+    %44:f32 = load_vector_element %b_1, 0u
+    %x_99:f32 = let %44
+    %46:f32 = load_vector_element %a_1, 0u
+    %x_100:f32 = let %46
+    %48:f32 = load_vector_element %b_1, 1u
+    %x_103:f32 = let %48
+    %50:f32 = load_vector_element %a_1, 1u
+    %x_104:f32 = let %50
+    %52:f32 = sub %x_88, %x_90
+    %53:f32 = sub %x_93, %x_95
+    %54:vec2<f32> = construct %52, %53
+    store %param, %54
+    %55:f32 = sub %x_99, %x_100
+    %56:f32 = sub %x_103, %x_104
     %57:vec2<f32> = construct %55, %56
-    store %param_2, %57
-    %58:f32 = sub %x_116, %x_117
-    %59:f32 = sub %x_120, %x_121
-    %60:vec2<f32> = construct %58, %59
-    store %param_3, %60
-    %x_124:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    store %param_1, %57
+    %58:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %x_107:f32 = let %58
+    store %pab, %x_107
+    %60:f32 = load_vector_element %p, 0u
+    %x_108:f32 = let %60
+    %62:f32 = load_vector_element %b_1, 0u
+    %x_109:f32 = let %62
+    %64:f32 = load_vector_element %p, 1u
+    %x_111:f32 = let %64
+    %66:f32 = load_vector_element %b_1, 1u
+    %x_112:f32 = let %66
+    %68:f32 = load_vector_element %c, 0u
+    %x_116:f32 = let %68
+    %70:f32 = load_vector_element %b_1, 0u
+    %x_117:f32 = let %70
+    %72:f32 = load_vector_element %c, 1u
+    %x_120:f32 = let %72
+    %74:f32 = load_vector_element %b_1, 1u
+    %x_121:f32 = let %74
+    %76:f32 = sub %x_108, %x_109
+    %77:f32 = sub %x_111, %x_112
+    %78:vec2<f32> = construct %76, %77
+    store %param_2, %78
+    %79:f32 = sub %x_116, %x_117
+    %80:f32 = sub %x_120, %x_121
+    %81:vec2<f32> = construct %79, %80
+    store %param_3, %81
+    %82:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %x_124:f32 = let %82
     store %pbc, %x_124
-    %x_125:f32 = load %pab
-    %x_127:f32 = load %pbc
-    %64:bool = lt %x_125, 0.0f
-    %65:bool = lt %x_127, 0.0f
-    %x_129:bool = and %64, %65
+    %84:f32 = load %pab
+    %x_125:f32 = let %84
+    %86:f32 = load %pbc
+    %x_127:f32 = let %86
+    %88:bool = lt %x_125, 0.0f
+    %89:bool = lt %x_127, 0.0f
+    %90:bool = and %88, %89
+    %x_129:bool = let %90
     store %x_138_phi, %x_129
-    %67:bool = eq %x_129, false
-    if %67 [t: %b4] {  # if_1
-      %b4 = block {  # true
-        %x_133:f32 = load %pab
-        %x_135:f32 = load %pbc
-        %70:bool = gte %x_133, 0.0f
-        %71:bool = gte %x_135, 0.0f
-        %72:bool = and %70, %71
-        store %x_137, %72
-        %73:bool = load %x_137
-        store %x_138_phi, %73
+    %92:bool = eq %x_129, false
+    if %92 [t: $B4] {  # if_1
+      $B4: {  # true
+        %93:f32 = load %pab
+        %x_133:f32 = let %93
+        %95:f32 = load %pbc
+        %x_135:f32 = let %95
+        %97:bool = gte %x_133, 0.0f
+        %98:bool = gte %x_135, 0.0f
+        %99:bool = and %97, %98
+        store %x_137, %99
+        %100:bool = load %x_137
+        store %x_138_phi, %100
         exit_if  # if_1
       }
     }
-    %x_138:bool = load %x_138_phi
-    %75:bool = eq %x_138, false
-    if %75 [t: %b5] {  # if_2
-      %b5 = block {  # true
+    %101:bool = load %x_138_phi
+    %x_138:bool = let %101
+    %103:bool = eq %x_138, false
+    if %103 [t: $B5] {  # if_2
+      $B5: {  # true
         ret 0i
       }
     }
-    %x_142:f32 = load_vector_element %p, 0u
-    %x_143:f32 = load_vector_element %c, 0u
-    %x_145:f32 = load_vector_element %p, 1u
-    %x_146:f32 = load_vector_element %c, 1u
-    %x_149:f32 = load_vector_element %a_1, 0u
-    %x_150:f32 = load_vector_element %c, 0u
-    %x_152:f32 = load_vector_element %a_1, 1u
-    %x_153:f32 = load_vector_element %c, 1u
-    %84:f32 = sub %x_142, %x_143
-    %85:f32 = sub %x_145, %x_146
-    %86:vec2<f32> = construct %84, %85
-    store %param_4, %86
-    %87:f32 = sub %x_149, %x_150
-    %88:f32 = sub %x_152, %x_153
-    %89:vec2<f32> = construct %87, %88
-    store %param_5, %89
-    %x_156:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %104:f32 = load_vector_element %p, 0u
+    %x_142:f32 = let %104
+    %106:f32 = load_vector_element %c, 0u
+    %x_143:f32 = let %106
+    %108:f32 = load_vector_element %p, 1u
+    %x_145:f32 = let %108
+    %110:f32 = load_vector_element %c, 1u
+    %x_146:f32 = let %110
+    %112:f32 = load_vector_element %a_1, 0u
+    %x_149:f32 = let %112
+    %114:f32 = load_vector_element %c, 0u
+    %x_150:f32 = let %114
+    %116:f32 = load_vector_element %a_1, 1u
+    %x_152:f32 = let %116
+    %118:f32 = load_vector_element %c, 1u
+    %x_153:f32 = let %118
+    %120:f32 = sub %x_142, %x_143
+    %121:f32 = sub %x_145, %x_146
+    %122:vec2<f32> = construct %120, %121
+    store %param_4, %122
+    %123:f32 = sub %x_149, %x_150
+    %124:f32 = sub %x_152, %x_153
+    %125:vec2<f32> = construct %123, %124
+    store %param_5, %125
+    %126:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %x_156:f32 = let %126
     store %pca, %x_156
-    %x_157:f32 = load %pab
-    %x_159:f32 = load %pca
-    %93:bool = lt %x_157, 0.0f
-    %94:bool = lt %x_159, 0.0f
-    %x_161:bool = and %93, %94
+    %128:f32 = load %pab
+    %x_157:f32 = let %128
+    %130:f32 = load %pca
+    %x_159:f32 = let %130
+    %132:bool = lt %x_157, 0.0f
+    %133:bool = lt %x_159, 0.0f
+    %134:bool = and %132, %133
+    %x_161:bool = let %134
     store %x_170_phi, %x_161
-    %96:bool = eq %x_161, false
-    if %96 [t: %b6] {  # if_3
-      %b6 = block {  # true
-        %x_165:f32 = load %pab
-        %x_167:f32 = load %pca
-        %99:bool = gte %x_165, 0.0f
-        %100:bool = gte %x_167, 0.0f
-        %101:bool = and %99, %100
-        store %x_169, %101
-        %102:bool = load %x_169
-        store %x_170_phi, %102
+    %136:bool = eq %x_161, false
+    if %136 [t: $B6] {  # if_3
+      $B6: {  # true
+        %137:f32 = load %pab
+        %x_165:f32 = let %137
+        %139:f32 = load %pca
+        %x_167:f32 = let %139
+        %141:bool = gte %x_165, 0.0f
+        %142:bool = gte %x_167, 0.0f
+        %143:bool = and %141, %142
+        store %x_169, %143
+        %144:bool = load %x_169
+        store %x_170_phi, %144
         exit_if  # if_3
       }
     }
-    %x_170:bool = load %x_170_phi
-    %104:bool = eq %x_170, false
-    if %104 [t: %b7] {  # if_4
-      %b7 = block {  # true
+    %145:bool = load %x_170_phi
+    %x_170:bool = let %145
+    %147:bool = eq %x_170, false
+    if %147 [t: $B7] {  # if_4
+      $B7: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %x_63:vec4<f32> = load %gl_FragCoord
-    %112:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
-    %x_66:vec2<f32> = load %112
-    %114:f32 = access %x_63, 0u
-    %115:f32 = access %x_63, 1u
-    %116:vec2<f32> = construct %114, %115
-    %117:vec2<f32> = div %116, %x_66
-    store %pos, %117
-    %x_68:vec2<f32> = load %pos
+    %154:vec4<f32> = load %gl_FragCoord
+    %x_63:vec4<f32> = let %154
+    %156:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
+    %157:vec2<f32> = load %156
+    %x_66:vec2<f32> = let %157
+    %159:f32 = access %x_63, 0u
+    %160:f32 = access %x_63, 1u
+    %161:vec2<f32> = construct %159, %160
+    %162:vec2<f32> = div %161, %x_66
+    store %pos, %162
+    %163:vec2<f32> = load %pos
+    %x_68:vec2<f32> = let %163
     store %param_6, %x_68
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_69:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %120:bool = eq %x_69, 1i
-    if %120 [t: %b9, f: %b10] {  # if_5
-      %b9 = block {  # true
+    %165:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_69:i32 = let %165
+    %167:bool = eq %x_69, 1i
+    if %167 [t: $B9, f: $B10] {  # if_5
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -187,13 +234,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %123:void = call %main_1
-    %124:vec4<f32> = load %x_GLF_color
-    %125:main_out = construct %124
-    ret %125
+    %170:void = call %main_1
+    %171:vec4<f32> = load %x_GLF_color
+    %172:main_out = construct %171
+    ret %172
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.msl
index 56771a3..a537593 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_15:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_85:f32 = load_vector_element %a, 0u
-    %x_87:f32 = load_vector_element %b, 1u
-    %x_90:f32 = load_vector_element %b, 0u
-    %x_92:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_85, %x_87
-    %12:f32 = mul %x_90, %x_92
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_85:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_87:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_90:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_92:f32 = let %13
+    %15:f32 = mul %x_85, %x_87
+    %16:f32 = mul %x_90, %x_92
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %var_y:ptr<function, f32, read_write> = var
     %x_96:ptr<function, f32, read_write> = var
     %x_97:ptr<function, f32, read_write> = var
@@ -45,183 +49,205 @@
     %x_174:ptr<function, bool, read_write> = var
     %x_205:ptr<function, bool, read_write> = var
     %x_206:ptr<function, bool, read_write> = var
-    %36:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
-    %37:f32 = load_vector_element %36, 0u
-    %38:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
-    %39:f32 = load_vector_element %38, 1u
-    %40:bool = eq %37, %39
-    if %40 [t: %b4, f: %b5] {  # if_1
-      %b4 = block {  # true
-        %x_107:f32 = load_vector_element %c, 1u
-        %x_108:vec2<f32> = construct 0.0f, %x_107
-        if true [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
-            %43:f32 = load_vector_element %c, 1u
-            store %x_97, %43
+    %40:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
+    %41:f32 = load_vector_element %40, 0u
+    %42:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
+    %43:f32 = load_vector_element %42, 1u
+    %44:bool = eq %41, %43
+    if %44 [t: $B4, f: $B5] {  # if_1
+      $B4: {  # true
+        %45:f32 = load_vector_element %c, 1u
+        %x_107:f32 = let %45
+        %47:vec2<f32> = construct 0.0f, %x_107
+        %x_108:vec2<f32> = let %47
+        if true [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
+            %49:f32 = load_vector_element %c, 1u
+            store %x_97, %49
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             store %x_97, 1.0f
             exit_if  # if_2
           }
         }
-        %44:f32 = load %x_97
-        %45:f32 = load_vector_element %c, 1u
-        %46:f32 = max %44, %45
-        %x_116:vec2<f32> = construct 1.0f, %46
-        %x_117:vec2<f32> = swizzle %x_108, xy
+        %50:f32 = load %x_97
+        %51:f32 = load_vector_element %c, 1u
+        %52:f32 = max %50, %51
+        %53:vec2<f32> = construct 1.0f, %52
+        %x_116:vec2<f32> = let %53
+        %55:vec2<f32> = swizzle %x_108, xy
+        %x_117:vec2<f32> = let %55
         store %x_96, %x_107
         exit_if  # if_1
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_96, -1.0f
         exit_if  # if_1
       }
     }
-    %49:f32 = load %x_96
-    store %var_y, %49
-    %50:f32 = load_vector_element %c, 1u
-    %51:f32 = load_vector_element %c, 1u
-    %52:f32 = load %var_y
-    %53:f32 = clamp %50, %51, %52
-    store %clamp_y, %53
-    %x_136:f32 = load_vector_element %b_1, 0u
-    %x_137:f32 = load_vector_element %a_1, 0u
-    %x_140:f32 = load_vector_element %b_1, 1u
-    %x_141:f32 = load_vector_element %a_1, 1u
-    %58:f32 = load_vector_element %p, 0u
-    %59:f32 = load_vector_element %a_1, 0u
-    %60:f32 = sub %58, %59
-    %61:f32 = load_vector_element %p, 1u
-    %62:f32 = load_vector_element %a_1, 1u
-    %63:f32 = sub %61, %62
-    %64:vec2<f32> = construct %60, %63
-    store %param, %64
-    %65:f32 = sub %x_136, %x_137
-    %66:f32 = sub %x_140, %x_141
-    %67:vec2<f32> = construct %65, %66
-    store %param_1, %67
-    %x_144:f32 = call %cross2d_vf2_vf2_, %param, %param_1
-    store %pab, %x_144
-    %x_153:f32 = load_vector_element %c, 0u
-    %x_154:f32 = load_vector_element %b_1, 0u
-    %x_156:f32 = load %clamp_y
-    %x_157:f32 = load_vector_element %b_1, 1u
-    %73:f32 = load_vector_element %p, 0u
-    %74:f32 = load_vector_element %b_1, 0u
+    %57:f32 = load %x_96
+    store %var_y, %57
+    %58:f32 = load_vector_element %c, 1u
+    %59:f32 = load_vector_element %c, 1u
+    %60:f32 = load %var_y
+    %61:f32 = clamp %58, %59, %60
+    store %clamp_y, %61
+    %62:f32 = load_vector_element %b_1, 0u
+    %x_136:f32 = let %62
+    %64:f32 = load_vector_element %a_1, 0u
+    %x_137:f32 = let %64
+    %66:f32 = load_vector_element %b_1, 1u
+    %x_140:f32 = let %66
+    %68:f32 = load_vector_element %a_1, 1u
+    %x_141:f32 = let %68
+    %70:f32 = load_vector_element %p, 0u
+    %71:f32 = load_vector_element %a_1, 0u
+    %72:f32 = sub %70, %71
+    %73:f32 = load_vector_element %p, 1u
+    %74:f32 = load_vector_element %a_1, 1u
     %75:f32 = sub %73, %74
-    %76:f32 = load_vector_element %p, 1u
-    %77:f32 = load_vector_element %b_1, 1u
-    %78:f32 = sub %76, %77
-    %79:vec2<f32> = construct %75, %78
-    store %param_2, %79
-    %80:f32 = sub %x_153, %x_154
-    %81:f32 = sub %x_156, %x_157
-    %82:vec2<f32> = construct %80, %81
-    store %param_3, %82
-    %x_160:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %76:vec2<f32> = construct %72, %75
+    store %param, %76
+    %77:f32 = sub %x_136, %x_137
+    %78:f32 = sub %x_140, %x_141
+    %79:vec2<f32> = construct %77, %78
+    store %param_1, %79
+    %80:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %x_144:f32 = let %80
+    store %pab, %x_144
+    %82:f32 = load_vector_element %c, 0u
+    %x_153:f32 = let %82
+    %84:f32 = load_vector_element %b_1, 0u
+    %x_154:f32 = let %84
+    %86:f32 = load %clamp_y
+    %x_156:f32 = let %86
+    %88:f32 = load_vector_element %b_1, 1u
+    %x_157:f32 = let %88
+    %90:f32 = load_vector_element %p, 0u
+    %91:f32 = load_vector_element %b_1, 0u
+    %92:f32 = sub %90, %91
+    %93:f32 = load_vector_element %p, 1u
+    %94:f32 = load_vector_element %b_1, 1u
+    %95:f32 = sub %93, %94
+    %96:vec2<f32> = construct %92, %95
+    store %param_2, %96
+    %97:f32 = sub %x_153, %x_154
+    %98:f32 = sub %x_156, %x_157
+    %99:vec2<f32> = construct %97, %98
+    store %param_3, %99
+    %100:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %x_160:f32 = let %100
     store %pbc, %x_160
-    %84:f32 = load %pab
-    %85:bool = lt %84, 0.0f
-    %86:f32 = load %pbc
-    %87:bool = lt %86, 0.0f
-    %x_165:bool = and %85, %87
+    %102:f32 = load %pab
+    %103:bool = lt %102, 0.0f
+    %104:f32 = load %pbc
+    %105:bool = lt %104, 0.0f
+    %106:bool = and %103, %105
+    %x_165:bool = let %106
     store %x_174, %x_165
-    %89:bool = eq %x_165, false
-    if %89 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %90:f32 = load %pab
-        %91:bool = gte %90, 0.0f
-        %92:f32 = load %pbc
-        %93:bool = gte %92, 0.0f
-        %94:bool = and %91, %93
-        store %x_173, %94
-        %95:bool = load %x_173
-        store %x_174, %95
+    %108:bool = eq %x_165, false
+    if %108 [t: $B8] {  # if_3
+      $B8: {  # true
+        %109:f32 = load %pab
+        %110:bool = gte %109, 0.0f
+        %111:f32 = load %pbc
+        %112:bool = gte %111, 0.0f
+        %113:bool = and %110, %112
+        store %x_173, %113
+        %114:bool = load %x_173
+        store %x_174, %114
         exit_if  # if_3
       }
     }
-    %96:bool = load %x_174
-    %97:bool = eq %96, false
-    if %97 [t: %b9] {  # if_4
-      %b9 = block {  # true
+    %115:bool = load %x_174
+    %116:bool = eq %115, false
+    if %116 [t: $B9] {  # if_4
+      $B9: {  # true
         ret 0i
       }
     }
-    %x_185:f32 = load_vector_element %a_1, 0u
-    %x_186:f32 = load_vector_element %c, 0u
-    %x_188:f32 = load_vector_element %a_1, 1u
-    %x_189:f32 = load_vector_element %c, 1u
-    %102:f32 = load_vector_element %p, 0u
-    %103:f32 = load_vector_element %c, 0u
-    %104:f32 = sub %102, %103
-    %105:f32 = load_vector_element %p, 1u
-    %106:f32 = load_vector_element %c, 1u
-    %107:f32 = sub %105, %106
-    %108:vec2<f32> = construct %104, %107
-    store %param_4, %108
-    %109:f32 = sub %x_185, %x_186
-    %110:f32 = sub %x_188, %x_189
-    %111:vec2<f32> = construct %109, %110
-    store %param_5, %111
-    %x_192:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %117:f32 = load_vector_element %a_1, 0u
+    %x_185:f32 = let %117
+    %119:f32 = load_vector_element %c, 0u
+    %x_186:f32 = let %119
+    %121:f32 = load_vector_element %a_1, 1u
+    %x_188:f32 = let %121
+    %123:f32 = load_vector_element %c, 1u
+    %x_189:f32 = let %123
+    %125:f32 = load_vector_element %p, 0u
+    %126:f32 = load_vector_element %c, 0u
+    %127:f32 = sub %125, %126
+    %128:f32 = load_vector_element %p, 1u
+    %129:f32 = load_vector_element %c, 1u
+    %130:f32 = sub %128, %129
+    %131:vec2<f32> = construct %127, %130
+    store %param_4, %131
+    %132:f32 = sub %x_185, %x_186
+    %133:f32 = sub %x_188, %x_189
+    %134:vec2<f32> = construct %132, %133
+    store %param_5, %134
+    %135:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %x_192:f32 = let %135
     store %pca, %x_192
-    %113:f32 = load %pab
-    %114:bool = lt %113, 0.0f
-    %115:f32 = load %pca
-    %116:bool = lt %115, 0.0f
-    %x_197:bool = and %114, %116
+    %137:f32 = load %pab
+    %138:bool = lt %137, 0.0f
+    %139:f32 = load %pca
+    %140:bool = lt %139, 0.0f
+    %141:bool = and %138, %140
+    %x_197:bool = let %141
     store %x_206, %x_197
-    %118:bool = eq %x_197, false
-    if %118 [t: %b10] {  # if_5
-      %b10 = block {  # true
-        %119:f32 = load %pab
-        %120:bool = gte %119, 0.0f
-        %121:f32 = load %pca
-        %122:bool = gte %121, 0.0f
-        %123:bool = and %120, %122
-        store %x_205, %123
-        %124:bool = load %x_205
-        store %x_206, %124
+    %143:bool = eq %x_197, false
+    if %143 [t: $B10] {  # if_5
+      $B10: {  # true
+        %144:f32 = load %pab
+        %145:bool = gte %144, 0.0f
+        %146:f32 = load %pca
+        %147:bool = gte %146, 0.0f
+        %148:bool = and %145, %147
+        store %x_205, %148
+        %149:bool = load %x_205
+        store %x_206, %149
         exit_if  # if_5
       }
     }
-    %125:bool = load %x_206
-    %126:bool = eq %125, false
-    if %126 [t: %b11] {  # if_6
-      %b11 = block {  # true
+    %150:bool = load %x_206
+    %151:bool = eq %150, false
+    if %151 [t: $B11] {  # if_6
+      $B11: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %133:vec4<f32> = load %gl_FragCoord
-    %134:vec2<f32> = swizzle %133, xy
-    %135:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
-    %136:vec2<f32> = load %135
-    %137:vec2<f32> = div %134, %136
-    store %pos, %137
-    %138:vec2<f32> = load %pos
-    store %param_6, %138
+    %158:vec4<f32> = load %gl_FragCoord
+    %159:vec2<f32> = swizzle %158, xy
+    %160:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
+    %161:vec2<f32> = load %160
+    %162:vec2<f32> = div %159, %161
+    store %pos, %162
+    %163:vec2<f32> = load %pos
+    store %param_6, %163
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_78:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %140:bool = eq %x_78, 1i
-    if %140 [t: %b13, f: %b14] {  # if_7
-      %b13 = block {  # true
+    %164:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_78:i32 = let %164
+    %166:bool = eq %x_78, 1i
+    if %166 [t: $B13, f: $B14] {  # if_7
+      $B13: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -229,13 +255,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b15 {
-  %b15 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B15: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %143:void = call %main_1
-    %144:vec4<f32> = load %x_GLF_color
-    %145:main_out = construct %144
-    ret %145
+    %169:void = call %main_1
+    %170:vec4<f32> = load %x_GLF_color
+    %171:main_out = construct %170
+    ret %171
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.msl
index cfc7833..cbdb59a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-clamp-conditional-mix/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_15:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_85:f32 = load_vector_element %a, 0u
-    %x_87:f32 = load_vector_element %b, 1u
-    %x_90:f32 = load_vector_element %b, 0u
-    %x_92:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_85, %x_87
-    %12:f32 = mul %x_90, %x_92
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_85:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_87:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_90:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_92:f32 = let %13
+    %15:f32 = mul %x_85, %x_87
+    %16:f32 = mul %x_90, %x_92
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %var_y:ptr<function, f32, read_write> = var
     %x_96:ptr<function, f32, read_write> = var
     %x_97:ptr<function, f32, read_write> = var
@@ -45,187 +49,243 @@
     %x_205:ptr<function, bool, read_write> = var
     %x_174_phi:ptr<function, bool, read_write> = var
     %x_206_phi:ptr<function, bool, read_write> = var
-    %36:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
-    %x_99:f32 = load_vector_element %36, 0u
-    %38:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
-    %x_101:f32 = load_vector_element %38, 1u
-    %40:bool = eq %x_99, %x_101
-    if %40 [t: %b4, f: %b5] {  # if_1
-      %b4 = block {  # true
-        %x_107:f32 = load_vector_element %c, 1u
-        %x_108:vec2<f32> = construct 0.0f, %x_107
-        if true [t: %b6, f: %b7] {  # if_2
-          %b6 = block {  # true
-            %x_112:f32 = load_vector_element %c, 1u
+    %40:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
+    %41:f32 = load_vector_element %40, 0u
+    %x_99:f32 = let %41
+    %43:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
+    %44:f32 = load_vector_element %43, 1u
+    %x_101:f32 = let %44
+    %46:bool = eq %x_99, %x_101
+    if %46 [t: $B4, f: $B5] {  # if_1
+      $B4: {  # true
+        %47:f32 = load_vector_element %c, 1u
+        %x_107:f32 = let %47
+        %49:vec2<f32> = construct 0.0f, %x_107
+        %x_108:vec2<f32> = let %49
+        if true [t: $B6, f: $B7] {  # if_2
+          $B6: {  # true
+            %51:f32 = load_vector_element %c, 1u
+            %x_112:f32 = let %51
             store %x_97, %x_112
             exit_if  # if_2
           }
-          %b7 = block {  # false
+          $B7: {  # false
             store %x_97, 1.0f
             exit_if  # if_2
           }
         }
-        %x_113:f32 = load %x_97
-        %x_114:f32 = load_vector_element %c, 1u
-        %46:f32 = max %x_113, %x_114
-        %x_116:vec2<f32> = construct 1.0f, %46
-        %48:f32 = access %x_108, 0u
-        %49:f32 = access %x_108, 1u
-        %x_117:vec2<f32> = construct %48, %49
+        %53:f32 = load %x_97
+        %x_113:f32 = let %53
+        %55:f32 = load_vector_element %c, 1u
+        %x_114:f32 = let %55
+        %57:f32 = max %x_113, %x_114
+        %58:vec2<f32> = construct 1.0f, %57
+        %x_116:vec2<f32> = let %58
+        %60:f32 = access %x_108, 0u
+        %61:f32 = access %x_108, 1u
+        %62:vec2<f32> = construct %60, %61
+        %x_117:vec2<f32> = let %62
         store %x_96, %x_107
         exit_if  # if_1
       }
-      %b5 = block {  # false
+      $B5: {  # false
         store %x_96, -1.0f
         exit_if  # if_1
       }
     }
-    %x_118:f32 = load %x_96
+    %64:f32 = load %x_96
+    %x_118:f32 = let %64
     store %var_y, %x_118
-    %x_120:f32 = load_vector_element %c, 1u
-    %x_121:f32 = load_vector_element %c, 1u
-    %x_122:f32 = load %var_y
-    %55:f32 = clamp %x_120, %x_121, %x_122
-    store %clamp_y, %55
-    %x_125:f32 = load_vector_element %p, 0u
-    %x_127:f32 = load_vector_element %a_1, 0u
-    %x_130:f32 = load_vector_element %p, 1u
-    %x_132:f32 = load_vector_element %a_1, 1u
-    %x_136:f32 = load_vector_element %b_1, 0u
-    %x_137:f32 = load_vector_element %a_1, 0u
-    %x_140:f32 = load_vector_element %b_1, 1u
-    %x_141:f32 = load_vector_element %a_1, 1u
-    %64:f32 = sub %x_125, %x_127
-    %65:f32 = sub %x_130, %x_132
-    %66:vec2<f32> = construct %64, %65
-    store %param, %66
-    %67:f32 = sub %x_136, %x_137
-    %68:f32 = sub %x_140, %x_141
-    %69:vec2<f32> = construct %67, %68
-    store %param_1, %69
-    %x_144:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %66:f32 = load_vector_element %c, 1u
+    %x_120:f32 = let %66
+    %68:f32 = load_vector_element %c, 1u
+    %x_121:f32 = let %68
+    %70:f32 = load %var_y
+    %x_122:f32 = let %70
+    %72:f32 = clamp %x_120, %x_121, %x_122
+    store %clamp_y, %72
+    %73:f32 = load_vector_element %p, 0u
+    %x_125:f32 = let %73
+    %75:f32 = load_vector_element %a_1, 0u
+    %x_127:f32 = let %75
+    %77:f32 = load_vector_element %p, 1u
+    %x_130:f32 = let %77
+    %79:f32 = load_vector_element %a_1, 1u
+    %x_132:f32 = let %79
+    %81:f32 = load_vector_element %b_1, 0u
+    %x_136:f32 = let %81
+    %83:f32 = load_vector_element %a_1, 0u
+    %x_137:f32 = let %83
+    %85:f32 = load_vector_element %b_1, 1u
+    %x_140:f32 = let %85
+    %87:f32 = load_vector_element %a_1, 1u
+    %x_141:f32 = let %87
+    %89:f32 = sub %x_125, %x_127
+    %90:f32 = sub %x_130, %x_132
+    %91:vec2<f32> = construct %89, %90
+    store %param, %91
+    %92:f32 = sub %x_136, %x_137
+    %93:f32 = sub %x_140, %x_141
+    %94:vec2<f32> = construct %92, %93
+    store %param_1, %94
+    %95:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %x_144:f32 = let %95
     store %pab, %x_144
-    %x_145:f32 = load_vector_element %p, 0u
-    %x_146:f32 = load_vector_element %b_1, 0u
-    %x_148:f32 = load_vector_element %p, 1u
-    %x_149:f32 = load_vector_element %b_1, 1u
-    %x_153:f32 = load_vector_element %c, 0u
-    %x_154:f32 = load_vector_element %b_1, 0u
-    %x_156:f32 = load %clamp_y
-    %x_157:f32 = load_vector_element %b_1, 1u
-    %79:f32 = sub %x_145, %x_146
-    %80:f32 = sub %x_148, %x_149
-    %81:vec2<f32> = construct %79, %80
-    store %param_2, %81
-    %82:f32 = sub %x_153, %x_154
-    %83:f32 = sub %x_156, %x_157
-    %84:vec2<f32> = construct %82, %83
-    store %param_3, %84
-    %x_160:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %97:f32 = load_vector_element %p, 0u
+    %x_145:f32 = let %97
+    %99:f32 = load_vector_element %b_1, 0u
+    %x_146:f32 = let %99
+    %101:f32 = load_vector_element %p, 1u
+    %x_148:f32 = let %101
+    %103:f32 = load_vector_element %b_1, 1u
+    %x_149:f32 = let %103
+    %105:f32 = load_vector_element %c, 0u
+    %x_153:f32 = let %105
+    %107:f32 = load_vector_element %b_1, 0u
+    %x_154:f32 = let %107
+    %109:f32 = load %clamp_y
+    %x_156:f32 = let %109
+    %111:f32 = load_vector_element %b_1, 1u
+    %x_157:f32 = let %111
+    %113:f32 = sub %x_145, %x_146
+    %114:f32 = sub %x_148, %x_149
+    %115:vec2<f32> = construct %113, %114
+    store %param_2, %115
+    %116:f32 = sub %x_153, %x_154
+    %117:f32 = sub %x_156, %x_157
+    %118:vec2<f32> = construct %116, %117
+    store %param_3, %118
+    %119:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %x_160:f32 = let %119
     store %pbc, %x_160
-    %x_161:f32 = load %pab
-    %x_163:f32 = load %pbc
-    %88:bool = lt %x_161, 0.0f
-    %89:bool = lt %x_163, 0.0f
-    %x_165:bool = and %88, %89
+    %121:f32 = load %pab
+    %x_161:f32 = let %121
+    %123:f32 = load %pbc
+    %x_163:f32 = let %123
+    %125:bool = lt %x_161, 0.0f
+    %126:bool = lt %x_163, 0.0f
+    %127:bool = and %125, %126
+    %x_165:bool = let %127
     store %x_174_phi, %x_165
-    %91:bool = eq %x_165, false
-    if %91 [t: %b8] {  # if_3
-      %b8 = block {  # true
-        %x_169:f32 = load %pab
-        %x_171:f32 = load %pbc
-        %94:bool = gte %x_169, 0.0f
-        %95:bool = gte %x_171, 0.0f
-        %96:bool = and %94, %95
-        store %x_173, %96
-        %97:bool = load %x_173
-        store %x_174_phi, %97
+    %129:bool = eq %x_165, false
+    if %129 [t: $B8] {  # if_3
+      $B8: {  # true
+        %130:f32 = load %pab
+        %x_169:f32 = let %130
+        %132:f32 = load %pbc
+        %x_171:f32 = let %132
+        %134:bool = gte %x_169, 0.0f
+        %135:bool = gte %x_171, 0.0f
+        %136:bool = and %134, %135
+        store %x_173, %136
+        %137:bool = load %x_173
+        store %x_174_phi, %137
         exit_if  # if_3
       }
     }
-    %x_174:bool = load %x_174_phi
-    %99:bool = eq %x_174, false
-    if %99 [t: %b9] {  # if_4
-      %b9 = block {  # true
+    %138:bool = load %x_174_phi
+    %x_174:bool = let %138
+    %140:bool = eq %x_174, false
+    if %140 [t: $B9] {  # if_4
+      $B9: {  # true
         ret 0i
       }
     }
-    %x_178:f32 = load_vector_element %p, 0u
-    %x_179:f32 = load_vector_element %c, 0u
-    %x_181:f32 = load_vector_element %p, 1u
-    %x_182:f32 = load_vector_element %c, 1u
-    %x_185:f32 = load_vector_element %a_1, 0u
-    %x_186:f32 = load_vector_element %c, 0u
-    %x_188:f32 = load_vector_element %a_1, 1u
-    %x_189:f32 = load_vector_element %c, 1u
-    %108:f32 = sub %x_178, %x_179
-    %109:f32 = sub %x_181, %x_182
-    %110:vec2<f32> = construct %108, %109
-    store %param_4, %110
-    %111:f32 = sub %x_185, %x_186
-    %112:f32 = sub %x_188, %x_189
-    %113:vec2<f32> = construct %111, %112
-    store %param_5, %113
-    %x_192:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %141:f32 = load_vector_element %p, 0u
+    %x_178:f32 = let %141
+    %143:f32 = load_vector_element %c, 0u
+    %x_179:f32 = let %143
+    %145:f32 = load_vector_element %p, 1u
+    %x_181:f32 = let %145
+    %147:f32 = load_vector_element %c, 1u
+    %x_182:f32 = let %147
+    %149:f32 = load_vector_element %a_1, 0u
+    %x_185:f32 = let %149
+    %151:f32 = load_vector_element %c, 0u
+    %x_186:f32 = let %151
+    %153:f32 = load_vector_element %a_1, 1u
+    %x_188:f32 = let %153
+    %155:f32 = load_vector_element %c, 1u
+    %x_189:f32 = let %155
+    %157:f32 = sub %x_178, %x_179
+    %158:f32 = sub %x_181, %x_182
+    %159:vec2<f32> = construct %157, %158
+    store %param_4, %159
+    %160:f32 = sub %x_185, %x_186
+    %161:f32 = sub %x_188, %x_189
+    %162:vec2<f32> = construct %160, %161
+    store %param_5, %162
+    %163:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %x_192:f32 = let %163
     store %pca, %x_192
-    %x_193:f32 = load %pab
-    %x_195:f32 = load %pca
-    %117:bool = lt %x_193, 0.0f
-    %118:bool = lt %x_195, 0.0f
-    %x_197:bool = and %117, %118
+    %165:f32 = load %pab
+    %x_193:f32 = let %165
+    %167:f32 = load %pca
+    %x_195:f32 = let %167
+    %169:bool = lt %x_193, 0.0f
+    %170:bool = lt %x_195, 0.0f
+    %171:bool = and %169, %170
+    %x_197:bool = let %171
     store %x_206_phi, %x_197
-    %120:bool = eq %x_197, false
-    if %120 [t: %b10] {  # if_5
-      %b10 = block {  # true
-        %x_201:f32 = load %pab
-        %x_203:f32 = load %pca
-        %123:bool = gte %x_201, 0.0f
-        %124:bool = gte %x_203, 0.0f
-        %125:bool = and %123, %124
-        store %x_205, %125
-        %126:bool = load %x_205
-        store %x_206_phi, %126
+    %173:bool = eq %x_197, false
+    if %173 [t: $B10] {  # if_5
+      $B10: {  # true
+        %174:f32 = load %pab
+        %x_201:f32 = let %174
+        %176:f32 = load %pca
+        %x_203:f32 = let %176
+        %178:bool = gte %x_201, 0.0f
+        %179:bool = gte %x_203, 0.0f
+        %180:bool = and %178, %179
+        store %x_205, %180
+        %181:bool = load %x_205
+        store %x_206_phi, %181
         exit_if  # if_5
       }
     }
-    %x_206:bool = load %x_206_phi
-    %128:bool = eq %x_206, false
-    if %128 [t: %b11] {  # if_6
-      %b11 = block {  # true
+    %182:bool = load %x_206_phi
+    %x_206:bool = let %182
+    %184:bool = eq %x_206, false
+    if %184 [t: $B11] {  # if_6
+      $B11: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %x_72:vec4<f32> = load %gl_FragCoord
-    %136:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
-    %x_75:vec2<f32> = load %136
-    %138:f32 = access %x_72, 0u
-    %139:f32 = access %x_72, 1u
-    %140:vec2<f32> = construct %138, %139
-    %141:vec2<f32> = div %140, %x_75
-    store %pos, %141
-    %x_77:vec2<f32> = load %pos
+    %191:vec4<f32> = load %gl_FragCoord
+    %x_72:vec4<f32> = let %191
+    %193:ptr<uniform, vec2<f32>, read> = access %x_15, 0u
+    %194:vec2<f32> = load %193
+    %x_75:vec2<f32> = let %194
+    %196:f32 = access %x_72, 0u
+    %197:f32 = access %x_72, 1u
+    %198:vec2<f32> = construct %196, %197
+    %199:vec2<f32> = div %198, %x_75
+    store %pos, %199
+    %200:vec2<f32> = load %pos
+    %x_77:vec2<f32> = let %200
     store %param_6, %x_77
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_78:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %144:bool = eq %x_78, 1i
-    if %144 [t: %b13, f: %b14] {  # if_7
-      %b13 = block {  # true
+    %202:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_78:i32 = let %202
+    %204:bool = eq %x_78, 1i
+    if %204 [t: $B13, f: $B14] {  # if_7
+      $B13: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b14 = block {  # false
+      $B14: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -233,13 +293,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b15 {
-  %b15 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B15: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %147:void = call %main_1
-    %148:vec4<f32> = load %x_GLF_color
-    %149:main_out = construct %148
-    ret %149
+    %207:void = call %main_1
+    %208:vec4<f32> = load %x_GLF_color
+    %209:main_out = construct %208
+    ret %209
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.msl
index 877b119..ad324fc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_24:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_76:f32 = load_vector_element %a, 0u
-    %x_78:f32 = load_vector_element %b, 1u
-    %x_81:f32 = load_vector_element %b, 0u
-    %x_83:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_76, %x_78
-    %12:f32 = mul %x_81, %x_83
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_76:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_78:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_81:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_83:f32 = let %13
+    %15:f32 = mul %x_76, %x_78
+    %16:f32 = mul %x_81, %x_83
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %pab:ptr<function, f32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %param_1:ptr<function, vec2<f32>, read_write> = var
@@ -41,143 +45,161 @@
     %x_146:ptr<function, bool, read_write> = var
     %x_185:ptr<function, bool, read_write> = var
     %x_186:ptr<function, bool, read_write> = var
-    %x_99:f32 = load_vector_element %b_1, 0u
-    %x_101:f32 = load_vector_element %a_1, 0u
-    %x_104:f32 = load_vector_element %b_1, 1u
-    %x_106:f32 = load_vector_element %a_1, 1u
-    %36:f32 = load_vector_element %p, 0u
-    %37:f32 = load_vector_element %a_1, 0u
-    %38:f32 = sub %36, %37
-    %39:f32 = load_vector_element %p, 1u
-    %40:f32 = load_vector_element %a_1, 1u
-    %41:f32 = sub %39, %40
-    %42:vec2<f32> = construct %38, %41
-    store %param, %42
-    %43:f32 = sub %x_99, %x_101
-    %44:f32 = sub %x_104, %x_106
-    %45:vec2<f32> = construct %43, %44
-    store %param_1, %45
-    %x_109:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %36:f32 = load_vector_element %b_1, 0u
+    %x_99:f32 = let %36
+    %38:f32 = load_vector_element %a_1, 0u
+    %x_101:f32 = let %38
+    %40:f32 = load_vector_element %b_1, 1u
+    %x_104:f32 = let %40
+    %42:f32 = load_vector_element %a_1, 1u
+    %x_106:f32 = let %42
+    %44:f32 = load_vector_element %p, 0u
+    %45:f32 = load_vector_element %a_1, 0u
+    %46:f32 = sub %44, %45
+    %47:f32 = load_vector_element %p, 1u
+    %48:f32 = load_vector_element %a_1, 1u
+    %49:f32 = sub %47, %48
+    %50:vec2<f32> = construct %46, %49
+    store %param, %50
+    %51:f32 = sub %x_99, %x_101
+    %52:f32 = sub %x_104, %x_106
+    %53:vec2<f32> = construct %51, %52
+    store %param_1, %53
+    %54:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %x_109:f32 = let %54
     store %pab, %x_109
-    %x_122:f32 = load_vector_element %c, 0u
-    %x_124:f32 = load_vector_element %b_1, 0u
-    %x_127:f32 = load_vector_element %c, 1u
-    %x_129:f32 = load_vector_element %b_1, 1u
-    %51:f32 = load_vector_element %p, 0u
-    %52:f32 = load_vector_element %b_1, 0u
-    %53:f32 = sub %51, %52
-    %54:f32 = load_vector_element %p, 1u
-    %55:f32 = load_vector_element %b_1, 1u
-    %56:f32 = sub %54, %55
-    %57:vec2<f32> = construct %53, %56
-    store %param_2, %57
-    %58:f32 = sub %x_122, %x_124
-    %59:f32 = sub %x_127, %x_129
-    %60:vec2<f32> = construct %58, %59
-    store %param_3, %60
-    %x_132:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %56:f32 = load_vector_element %c, 0u
+    %x_122:f32 = let %56
+    %58:f32 = load_vector_element %b_1, 0u
+    %x_124:f32 = let %58
+    %60:f32 = load_vector_element %c, 1u
+    %x_127:f32 = let %60
+    %62:f32 = load_vector_element %b_1, 1u
+    %x_129:f32 = let %62
+    %64:f32 = load_vector_element %p, 0u
+    %65:f32 = load_vector_element %b_1, 0u
+    %66:f32 = sub %64, %65
+    %67:f32 = load_vector_element %p, 1u
+    %68:f32 = load_vector_element %b_1, 1u
+    %69:f32 = sub %67, %68
+    %70:vec2<f32> = construct %66, %69
+    store %param_2, %70
+    %71:f32 = sub %x_122, %x_124
+    %72:f32 = sub %x_127, %x_129
+    %73:vec2<f32> = construct %71, %72
+    store %param_3, %73
+    %74:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %x_132:f32 = let %74
     store %pbc, %x_132
-    %62:f32 = load %pab
-    %63:bool = lt %62, 0.0f
-    %64:f32 = load %pbc
-    %65:bool = lt %64, 0.0f
-    %x_137:bool = and %63, %65
+    %76:f32 = load %pab
+    %77:bool = lt %76, 0.0f
+    %78:f32 = load %pbc
+    %79:bool = lt %78, 0.0f
+    %80:bool = and %77, %79
+    %x_137:bool = let %80
     store %x_146, %x_137
-    %67:bool = eq %x_137, false
-    if %67 [t: %b4] {  # if_1
-      %b4 = block {  # true
-        %68:f32 = load %pab
-        %69:bool = gte %68, 0.0f
-        %70:f32 = load %pbc
-        %71:bool = gte %70, 0.0f
-        %72:bool = and %69, %71
-        store %x_145, %72
-        %73:bool = load %x_145
-        store %x_146, %73
+    %82:bool = eq %x_137, false
+    if %82 [t: $B4] {  # if_1
+      $B4: {  # true
+        %83:f32 = load %pab
+        %84:bool = gte %83, 0.0f
+        %85:f32 = load %pbc
+        %86:bool = gte %85, 0.0f
+        %87:bool = and %84, %86
+        store %x_145, %87
+        %88:bool = load %x_145
+        store %x_146, %88
         exit_if  # if_1
       }
     }
-    %74:bool = load %x_146
-    %75:bool = eq %74, false
-    if %75 [t: %b5] {  # if_2
-      %b5 = block {  # true
+    %89:bool = load %x_146
+    %90:bool = eq %89, false
+    if %90 [t: $B5] {  # if_2
+      $B5: {  # true
         ret 0i
       }
     }
-    %x_162:f32 = load_vector_element %a_1, 0u
-    %x_164:f32 = load_vector_element %c, 0u
-    %x_167:f32 = load_vector_element %a_1, 1u
-    %x_169:f32 = load_vector_element %c, 1u
-    %80:f32 = load_vector_element %p, 0u
-    %81:f32 = load_vector_element %c, 0u
-    %82:f32 = sub %80, %81
-    %83:f32 = load_vector_element %p, 1u
-    %84:f32 = load_vector_element %c, 1u
-    %85:f32 = sub %83, %84
-    %86:vec2<f32> = construct %82, %85
-    store %param_4, %86
-    %87:f32 = sub %x_162, %x_164
-    %88:f32 = sub %x_167, %x_169
-    %89:vec2<f32> = construct %87, %88
-    store %param_5, %89
-    %x_172:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %91:f32 = load_vector_element %a_1, 0u
+    %x_162:f32 = let %91
+    %93:f32 = load_vector_element %c, 0u
+    %x_164:f32 = let %93
+    %95:f32 = load_vector_element %a_1, 1u
+    %x_167:f32 = let %95
+    %97:f32 = load_vector_element %c, 1u
+    %x_169:f32 = let %97
+    %99:f32 = load_vector_element %p, 0u
+    %100:f32 = load_vector_element %c, 0u
+    %101:f32 = sub %99, %100
+    %102:f32 = load_vector_element %p, 1u
+    %103:f32 = load_vector_element %c, 1u
+    %104:f32 = sub %102, %103
+    %105:vec2<f32> = construct %101, %104
+    store %param_4, %105
+    %106:f32 = sub %x_162, %x_164
+    %107:f32 = sub %x_167, %x_169
+    %108:vec2<f32> = construct %106, %107
+    store %param_5, %108
+    %109:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %x_172:f32 = let %109
     store %pca, %x_172
-    %91:f32 = load %pab
-    %92:bool = lt %91, 0.0f
-    %93:f32 = load %pca
-    %94:bool = lt %93, 0.0f
-    %x_177:bool = and %92, %94
+    %111:f32 = load %pab
+    %112:bool = lt %111, 0.0f
+    %113:f32 = load %pca
+    %114:bool = lt %113, 0.0f
+    %115:bool = and %112, %114
+    %x_177:bool = let %115
     store %x_186, %x_177
-    %96:bool = eq %x_177, false
-    if %96 [t: %b6] {  # if_3
-      %b6 = block {  # true
-        %97:f32 = load %pab
-        %98:bool = gte %97, 0.0f
-        %99:f32 = load %pca
-        %100:bool = gte %99, 0.0f
-        %101:bool = and %98, %100
-        store %x_185, %101
-        %102:bool = load %x_185
-        store %x_186, %102
+    %117:bool = eq %x_177, false
+    if %117 [t: $B6] {  # if_3
+      $B6: {  # true
+        %118:f32 = load %pab
+        %119:bool = gte %118, 0.0f
+        %120:f32 = load %pca
+        %121:bool = gte %120, 0.0f
+        %122:bool = and %119, %121
+        store %x_185, %122
+        %123:bool = load %x_185
+        store %x_186, %123
         exit_if  # if_3
       }
     }
-    %103:bool = load %x_186
-    %104:bool = eq %103, false
-    if %104 [t: %b7] {  # if_4
-      %b7 = block {  # true
+    %124:bool = load %x_186
+    %125:bool = eq %124, false
+    if %125 [t: $B7] {  # if_4
+      $B7: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %111:vec4<f32> = load %gl_FragCoord
-    %112:vec2<f32> = swizzle %111, xy
-    %113:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
-    %114:vec2<f32> = load %113
-    %115:vec2<f32> = div %112, %114
-    store %pos, %115
-    %116:vec2<f32> = load %pos
-    store %param_6, %116
+    %132:vec4<f32> = load %gl_FragCoord
+    %133:vec2<f32> = swizzle %132, xy
+    %134:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
+    %135:vec2<f32> = load %134
+    %136:vec2<f32> = div %133, %135
+    store %pos, %136
+    %137:vec2<f32> = load %pos
+    store %param_6, %137
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_69:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %118:bool = eq %x_69, 1i
-    if %118 [t: %b9, f: %b10] {  # if_5
-      %b9 = block {  # true
+    %138:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_69:i32 = let %138
+    %140:bool = eq %x_69, 1i
+    if %140 [t: $B9, f: $B10] {  # if_5
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -185,13 +207,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %121:void = call %main_1
-    %122:vec4<f32> = load %x_GLF_color
-    %123:main_out = construct %122
-    ret %123
+    %143:void = call %main_1
+    %144:vec4<f32> = load %x_GLF_color
+    %145:main_out = construct %144
+    ret %145
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.msl
index aa8c14c..805afd5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-conditional-clamped-float/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,26 +8,30 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_24:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 -> %b2 {
-  %b2 = block {
-    %x_76:f32 = load_vector_element %a, 0u
-    %x_78:f32 = load_vector_element %b, 1u
-    %x_81:f32 = load_vector_element %b, 0u
-    %x_83:f32 = load_vector_element %a, 1u
-    %11:f32 = mul %x_76, %x_78
-    %12:f32 = mul %x_81, %x_83
-    %13:f32 = sub %11, %12
-    ret %13
+%cross2d_vf2_vf2_ = func(%a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>):f32 {
+  $B2: {
+    %7:f32 = load_vector_element %a, 0u
+    %x_76:f32 = let %7
+    %9:f32 = load_vector_element %b, 1u
+    %x_78:f32 = let %9
+    %11:f32 = load_vector_element %b, 0u
+    %x_81:f32 = let %11
+    %13:f32 = load_vector_element %a, 1u
+    %x_83:f32 = let %13
+    %15:f32 = mul %x_76, %x_78
+    %16:f32 = mul %x_81, %x_83
+    %17:f32 = sub %15, %16
+    ret %17
   }
 }
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b3 {
-  %b3 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a_1:ptr<function, vec2<f32>, read_write>, %b_1:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B3: {
     %pab:ptr<function, f32, read_write> = var
     %param:ptr<function, vec2<f32>, read_write> = var
     %param_1:ptr<function, vec2<f32>, read_write> = var
@@ -41,145 +45,188 @@
     %x_185:ptr<function, bool, read_write> = var
     %x_146_phi:ptr<function, bool, read_write> = var
     %x_186_phi:ptr<function, bool, read_write> = var
-    %x_88:f32 = load_vector_element %p, 0u
-    %x_90:f32 = load_vector_element %a_1, 0u
-    %x_93:f32 = load_vector_element %p, 1u
-    %x_95:f32 = load_vector_element %a_1, 1u
-    %x_99:f32 = load_vector_element %b_1, 0u
-    %x_101:f32 = load_vector_element %a_1, 0u
-    %x_104:f32 = load_vector_element %b_1, 1u
-    %x_106:f32 = load_vector_element %a_1, 1u
-    %40:f32 = sub %x_88, %x_90
-    %41:f32 = sub %x_93, %x_95
-    %42:vec2<f32> = construct %40, %41
-    store %param, %42
-    %43:f32 = sub %x_99, %x_101
-    %44:f32 = sub %x_104, %x_106
-    %45:vec2<f32> = construct %43, %44
-    store %param_1, %45
-    %x_109:f32 = call %cross2d_vf2_vf2_, %param, %param_1
-    store %pab, %x_109
-    %x_111:f32 = load_vector_element %p, 0u
-    %x_113:f32 = load_vector_element %b_1, 0u
-    %x_116:f32 = load_vector_element %p, 1u
-    %x_118:f32 = load_vector_element %b_1, 1u
-    %x_122:f32 = load_vector_element %c, 0u
-    %x_124:f32 = load_vector_element %b_1, 0u
-    %x_127:f32 = load_vector_element %c, 1u
-    %x_129:f32 = load_vector_element %b_1, 1u
-    %55:f32 = sub %x_111, %x_113
-    %56:f32 = sub %x_116, %x_118
+    %36:f32 = load_vector_element %p, 0u
+    %x_88:f32 = let %36
+    %38:f32 = load_vector_element %a_1, 0u
+    %x_90:f32 = let %38
+    %40:f32 = load_vector_element %p, 1u
+    %x_93:f32 = let %40
+    %42:f32 = load_vector_element %a_1, 1u
+    %x_95:f32 = let %42
+    %44:f32 = load_vector_element %b_1, 0u
+    %x_99:f32 = let %44
+    %46:f32 = load_vector_element %a_1, 0u
+    %x_101:f32 = let %46
+    %48:f32 = load_vector_element %b_1, 1u
+    %x_104:f32 = let %48
+    %50:f32 = load_vector_element %a_1, 1u
+    %x_106:f32 = let %50
+    %52:f32 = sub %x_88, %x_90
+    %53:f32 = sub %x_93, %x_95
+    %54:vec2<f32> = construct %52, %53
+    store %param, %54
+    %55:f32 = sub %x_99, %x_101
+    %56:f32 = sub %x_104, %x_106
     %57:vec2<f32> = construct %55, %56
-    store %param_2, %57
-    %58:f32 = sub %x_122, %x_124
-    %59:f32 = sub %x_127, %x_129
-    %60:vec2<f32> = construct %58, %59
-    store %param_3, %60
-    %x_132:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    store %param_1, %57
+    %58:f32 = call %cross2d_vf2_vf2_, %param, %param_1
+    %x_109:f32 = let %58
+    store %pab, %x_109
+    %60:f32 = load_vector_element %p, 0u
+    %x_111:f32 = let %60
+    %62:f32 = load_vector_element %b_1, 0u
+    %x_113:f32 = let %62
+    %64:f32 = load_vector_element %p, 1u
+    %x_116:f32 = let %64
+    %66:f32 = load_vector_element %b_1, 1u
+    %x_118:f32 = let %66
+    %68:f32 = load_vector_element %c, 0u
+    %x_122:f32 = let %68
+    %70:f32 = load_vector_element %b_1, 0u
+    %x_124:f32 = let %70
+    %72:f32 = load_vector_element %c, 1u
+    %x_127:f32 = let %72
+    %74:f32 = load_vector_element %b_1, 1u
+    %x_129:f32 = let %74
+    %76:f32 = sub %x_111, %x_113
+    %77:f32 = sub %x_116, %x_118
+    %78:vec2<f32> = construct %76, %77
+    store %param_2, %78
+    %79:f32 = sub %x_122, %x_124
+    %80:f32 = sub %x_127, %x_129
+    %81:vec2<f32> = construct %79, %80
+    store %param_3, %81
+    %82:f32 = call %cross2d_vf2_vf2_, %param_2, %param_3
+    %x_132:f32 = let %82
     store %pbc, %x_132
-    %x_133:f32 = load %pab
-    %x_135:f32 = load %pbc
-    %64:bool = lt %x_133, 0.0f
-    %65:bool = lt %x_135, 0.0f
-    %x_137:bool = and %64, %65
+    %84:f32 = load %pab
+    %x_133:f32 = let %84
+    %86:f32 = load %pbc
+    %x_135:f32 = let %86
+    %88:bool = lt %x_133, 0.0f
+    %89:bool = lt %x_135, 0.0f
+    %90:bool = and %88, %89
+    %x_137:bool = let %90
     store %x_146_phi, %x_137
-    %67:bool = eq %x_137, false
-    if %67 [t: %b4] {  # if_1
-      %b4 = block {  # true
-        %x_141:f32 = load %pab
-        %x_143:f32 = load %pbc
-        %70:bool = gte %x_141, 0.0f
-        %71:bool = gte %x_143, 0.0f
-        %72:bool = and %70, %71
-        store %x_145, %72
-        %73:bool = load %x_145
-        store %x_146_phi, %73
+    %92:bool = eq %x_137, false
+    if %92 [t: $B4] {  # if_1
+      $B4: {  # true
+        %93:f32 = load %pab
+        %x_141:f32 = let %93
+        %95:f32 = load %pbc
+        %x_143:f32 = let %95
+        %97:bool = gte %x_141, 0.0f
+        %98:bool = gte %x_143, 0.0f
+        %99:bool = and %97, %98
+        store %x_145, %99
+        %100:bool = load %x_145
+        store %x_146_phi, %100
         exit_if  # if_1
       }
     }
-    %x_146:bool = load %x_146_phi
-    %75:bool = eq %x_146, false
-    if %75 [t: %b5] {  # if_2
-      %b5 = block {  # true
+    %101:bool = load %x_146_phi
+    %x_146:bool = let %101
+    %103:bool = eq %x_146, false
+    if %103 [t: $B5] {  # if_2
+      $B5: {  # true
         ret 0i
       }
     }
-    %x_151:f32 = load_vector_element %p, 0u
-    %x_153:f32 = load_vector_element %c, 0u
-    %x_156:f32 = load_vector_element %p, 1u
-    %x_158:f32 = load_vector_element %c, 1u
-    %x_162:f32 = load_vector_element %a_1, 0u
-    %x_164:f32 = load_vector_element %c, 0u
-    %x_167:f32 = load_vector_element %a_1, 1u
-    %x_169:f32 = load_vector_element %c, 1u
-    %84:f32 = sub %x_151, %x_153
-    %85:f32 = sub %x_156, %x_158
-    %86:vec2<f32> = construct %84, %85
-    store %param_4, %86
-    %87:f32 = sub %x_162, %x_164
-    %88:f32 = sub %x_167, %x_169
-    %89:vec2<f32> = construct %87, %88
-    store %param_5, %89
-    %x_172:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %104:f32 = load_vector_element %p, 0u
+    %x_151:f32 = let %104
+    %106:f32 = load_vector_element %c, 0u
+    %x_153:f32 = let %106
+    %108:f32 = load_vector_element %p, 1u
+    %x_156:f32 = let %108
+    %110:f32 = load_vector_element %c, 1u
+    %x_158:f32 = let %110
+    %112:f32 = load_vector_element %a_1, 0u
+    %x_162:f32 = let %112
+    %114:f32 = load_vector_element %c, 0u
+    %x_164:f32 = let %114
+    %116:f32 = load_vector_element %a_1, 1u
+    %x_167:f32 = let %116
+    %118:f32 = load_vector_element %c, 1u
+    %x_169:f32 = let %118
+    %120:f32 = sub %x_151, %x_153
+    %121:f32 = sub %x_156, %x_158
+    %122:vec2<f32> = construct %120, %121
+    store %param_4, %122
+    %123:f32 = sub %x_162, %x_164
+    %124:f32 = sub %x_167, %x_169
+    %125:vec2<f32> = construct %123, %124
+    store %param_5, %125
+    %126:f32 = call %cross2d_vf2_vf2_, %param_4, %param_5
+    %x_172:f32 = let %126
     store %pca, %x_172
-    %x_173:f32 = load %pab
-    %x_175:f32 = load %pca
-    %93:bool = lt %x_173, 0.0f
-    %94:bool = lt %x_175, 0.0f
-    %x_177:bool = and %93, %94
+    %128:f32 = load %pab
+    %x_173:f32 = let %128
+    %130:f32 = load %pca
+    %x_175:f32 = let %130
+    %132:bool = lt %x_173, 0.0f
+    %133:bool = lt %x_175, 0.0f
+    %134:bool = and %132, %133
+    %x_177:bool = let %134
     store %x_186_phi, %x_177
-    %96:bool = eq %x_177, false
-    if %96 [t: %b6] {  # if_3
-      %b6 = block {  # true
-        %x_181:f32 = load %pab
-        %x_183:f32 = load %pca
-        %99:bool = gte %x_181, 0.0f
-        %100:bool = gte %x_183, 0.0f
-        %101:bool = and %99, %100
-        store %x_185, %101
-        %102:bool = load %x_185
-        store %x_186_phi, %102
+    %136:bool = eq %x_177, false
+    if %136 [t: $B6] {  # if_3
+      $B6: {  # true
+        %137:f32 = load %pab
+        %x_181:f32 = let %137
+        %139:f32 = load %pca
+        %x_183:f32 = let %139
+        %141:bool = gte %x_181, 0.0f
+        %142:bool = gte %x_183, 0.0f
+        %143:bool = and %141, %142
+        store %x_185, %143
+        %144:bool = load %x_185
+        store %x_186_phi, %144
         exit_if  # if_3
       }
     }
-    %x_186:bool = load %x_186_phi
-    %104:bool = eq %x_186, false
-    if %104 [t: %b7] {  # if_4
-      %b7 = block {  # true
+    %145:bool = load %x_186_phi
+    %x_186:bool = let %145
+    %147:bool = eq %x_186, false
+    if %147 [t: $B7] {  # if_4
+      $B7: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
+%main_1 = func():void {
+  $B8: {
     %pos:ptr<function, vec2<f32>, read_write> = var
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %x_63:vec4<f32> = load %gl_FragCoord
-    %112:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
-    %x_66:vec2<f32> = load %112
-    %114:f32 = access %x_63, 0u
-    %115:f32 = access %x_63, 1u
-    %116:vec2<f32> = construct %114, %115
-    %117:vec2<f32> = div %116, %x_66
-    store %pos, %117
-    %x_68:vec2<f32> = load %pos
+    %154:vec4<f32> = load %gl_FragCoord
+    %x_63:vec4<f32> = let %154
+    %156:ptr<uniform, vec2<f32>, read> = access %x_24, 0u
+    %157:vec2<f32> = load %156
+    %x_66:vec2<f32> = let %157
+    %159:f32 = access %x_63, 0u
+    %160:f32 = access %x_63, 1u
+    %161:vec2<f32> = construct %159, %160
+    %162:vec2<f32> = div %161, %x_66
+    store %pos, %162
+    %163:vec2<f32> = load %pos
+    %x_68:vec2<f32> = let %163
     store %param_6, %x_68
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_69:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %120:bool = eq %x_69, 1i
-    if %120 [t: %b9, f: %b10] {  # if_5
-      %b9 = block {  # true
+    %165:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_69:i32 = let %165
+    %167:bool = eq %x_69, 1i
+    if %167 [t: $B9, f: $B10] {  # if_5
+      $B9: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b10 = block {  # false
+      $B10: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -187,13 +234,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b11 {
-  %b11 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B11: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %123:void = call %main_1
-    %124:vec4<f32> = load %x_GLF_color
-    %125:main_out = construct %124
-    ret %125
+    %170:void = call %main_1
+    %171:vec4<f32> = load %x_GLF_color
+    %172:main_out = construct %171
+    ret %172
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.msl
index dfa456a..e212b35 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_17:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b2 {
-  %b2 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B2: {
     %x_66:ptr<function, f32, read_write> = var
     %x_67:ptr<function, f32, read_write> = var
     %x_68:ptr<function, f32, read_write> = var
@@ -29,149 +29,168 @@
     %x_136:ptr<function, bool, read_write> = var
     %x_172:ptr<function, bool, read_write> = var
     %x_173:ptr<function, bool, read_write> = var
-    %x_81:f32 = load_vector_element %b, 0u
-    %x_82:f32 = load_vector_element %a, 0u
-    %x_85:f32 = load_vector_element %b, 1u
-    %x_86:f32 = load_vector_element %a, 1u
-    %26:f32 = load_vector_element %p, 0u
-    %27:f32 = load_vector_element %a, 0u
-    %28:f32 = sub %26, %27
-    %29:f32 = load_vector_element %p, 1u
-    %30:f32 = load_vector_element %a, 1u
-    %31:f32 = sub %29, %30
-    %32:vec2<f32> = construct %28, %31
-    store %param, %32
-    %33:f32 = sub %x_81, %x_82
-    %34:f32 = sub %x_85, %x_86
-    %35:vec2<f32> = construct %33, %34
-    store %param_1, %35
-    %36:f32 = load_vector_element %param, 0u
-    %37:f32 = load_vector_element %param_1, 1u
-    %38:f32 = mul %36, %37
-    %39:f32 = load_vector_element %param_1, 0u
-    %40:f32 = load_vector_element %param, 1u
-    %41:f32 = mul %39, %40
-    %x_99:f32 = sub %38, %41
+    %22:f32 = load_vector_element %b, 0u
+    %x_81:f32 = let %22
+    %24:f32 = load_vector_element %a, 0u
+    %x_82:f32 = let %24
+    %26:f32 = load_vector_element %b, 1u
+    %x_85:f32 = let %26
+    %28:f32 = load_vector_element %a, 1u
+    %x_86:f32 = let %28
+    %30:f32 = load_vector_element %p, 0u
+    %31:f32 = load_vector_element %a, 0u
+    %32:f32 = sub %30, %31
+    %33:f32 = load_vector_element %p, 1u
+    %34:f32 = load_vector_element %a, 1u
+    %35:f32 = sub %33, %34
+    %36:vec2<f32> = construct %32, %35
+    store %param, %36
+    %37:f32 = sub %x_81, %x_82
+    %38:f32 = sub %x_85, %x_86
+    %39:vec2<f32> = construct %37, %38
+    store %param_1, %39
+    %40:f32 = load_vector_element %param, 0u
+    %41:f32 = load_vector_element %param_1, 1u
+    %42:f32 = mul %40, %41
+    %43:f32 = load_vector_element %param_1, 0u
+    %44:f32 = load_vector_element %param, 1u
+    %45:f32 = mul %43, %44
+    %46:f32 = sub %42, %45
+    %x_99:f32 = let %46
     store %x_68, %x_99
-    %x_108:f32 = load_vector_element %c, 0u
-    %x_109:f32 = load_vector_element %b, 0u
-    %x_112:f32 = load_vector_element %c, 1u
-    %x_113:f32 = load_vector_element %b, 1u
-    %47:f32 = load_vector_element %p, 0u
-    %48:f32 = load_vector_element %b, 0u
-    %49:f32 = sub %47, %48
-    %50:f32 = load_vector_element %p, 1u
-    %51:f32 = load_vector_element %b, 1u
-    %52:f32 = sub %50, %51
-    %53:vec2<f32> = construct %49, %52
-    store %param_2, %53
-    %54:f32 = sub %x_108, %x_109
-    %55:f32 = sub %x_112, %x_113
-    %56:vec2<f32> = construct %54, %55
-    store %param_3, %56
-    %57:f32 = load_vector_element %param_2, 0u
-    %58:f32 = load_vector_element %param_3, 1u
-    %59:f32 = mul %57, %58
-    %60:f32 = load_vector_element %param_3, 0u
-    %61:f32 = load_vector_element %param_2, 1u
-    %62:f32 = mul %60, %61
-    %x_126:f32 = sub %59, %62
+    %48:f32 = load_vector_element %c, 0u
+    %x_108:f32 = let %48
+    %50:f32 = load_vector_element %b, 0u
+    %x_109:f32 = let %50
+    %52:f32 = load_vector_element %c, 1u
+    %x_112:f32 = let %52
+    %54:f32 = load_vector_element %b, 1u
+    %x_113:f32 = let %54
+    %56:f32 = load_vector_element %p, 0u
+    %57:f32 = load_vector_element %b, 0u
+    %58:f32 = sub %56, %57
+    %59:f32 = load_vector_element %p, 1u
+    %60:f32 = load_vector_element %b, 1u
+    %61:f32 = sub %59, %60
+    %62:vec2<f32> = construct %58, %61
+    store %param_2, %62
+    %63:f32 = sub %x_108, %x_109
+    %64:f32 = sub %x_112, %x_113
+    %65:vec2<f32> = construct %63, %64
+    store %param_3, %65
+    %66:f32 = load_vector_element %param_2, 0u
+    %67:f32 = load_vector_element %param_3, 1u
+    %68:f32 = mul %66, %67
+    %69:f32 = load_vector_element %param_3, 0u
+    %70:f32 = load_vector_element %param_2, 1u
+    %71:f32 = mul %69, %70
+    %72:f32 = sub %68, %71
+    %x_126:f32 = let %72
     store %x_67, %x_126
-    %x_127:bool = lt %x_99, 0.0f
-    %65:bool = lt %x_126, 0.0f
-    %x_129:bool = and %x_127, %65
+    %74:bool = lt %x_99, 0.0f
+    %x_127:bool = let %74
+    %76:bool = lt %x_126, 0.0f
+    %77:bool = and %x_127, %76
+    %x_129:bool = let %77
     store %x_136, %x_129
-    %67:bool = eq %x_129, false
-    if %67 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %68:bool = gte %x_99, 0.0f
-        %69:bool = gte %x_126, 0.0f
-        %70:bool = and %68, %69
-        store %x_135, %70
-        %71:bool = load %x_135
-        store %x_136, %71
+    %79:bool = eq %x_129, false
+    if %79 [t: $B3] {  # if_1
+      $B3: {  # true
+        %80:bool = gte %x_99, 0.0f
+        %81:bool = gte %x_126, 0.0f
+        %82:bool = and %80, %81
+        store %x_135, %82
+        %83:bool = load %x_135
+        store %x_136, %83
         exit_if  # if_1
       }
     }
-    %72:bool = load %x_136
-    %73:bool = eq %72, false
-    if %73 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %84:bool = load %x_136
+    %85:bool = eq %84, false
+    if %85 [t: $B4] {  # if_2
+      $B4: {  # true
         ret 0i
       }
     }
-    %x_147:f32 = load_vector_element %a, 0u
-    %x_148:f32 = load_vector_element %c, 0u
-    %x_150:f32 = load_vector_element %a, 1u
-    %x_151:f32 = load_vector_element %c, 1u
-    %78:f32 = load_vector_element %p, 0u
-    %79:f32 = load_vector_element %c, 0u
-    %80:f32 = sub %78, %79
-    %81:f32 = load_vector_element %p, 1u
-    %82:f32 = load_vector_element %c, 1u
-    %83:f32 = sub %81, %82
-    %84:vec2<f32> = construct %80, %83
-    store %param_4, %84
-    %85:f32 = sub %x_147, %x_148
-    %86:f32 = sub %x_150, %x_151
-    %87:vec2<f32> = construct %85, %86
-    store %param_5, %87
-    %88:f32 = load_vector_element %param_4, 0u
-    %89:f32 = load_vector_element %param_5, 1u
-    %90:f32 = mul %88, %89
-    %91:f32 = load_vector_element %param_5, 0u
-    %92:f32 = load_vector_element %param_4, 1u
-    %93:f32 = mul %91, %92
-    %x_164:f32 = sub %90, %93
+    %86:f32 = load_vector_element %a, 0u
+    %x_147:f32 = let %86
+    %88:f32 = load_vector_element %c, 0u
+    %x_148:f32 = let %88
+    %90:f32 = load_vector_element %a, 1u
+    %x_150:f32 = let %90
+    %92:f32 = load_vector_element %c, 1u
+    %x_151:f32 = let %92
+    %94:f32 = load_vector_element %p, 0u
+    %95:f32 = load_vector_element %c, 0u
+    %96:f32 = sub %94, %95
+    %97:f32 = load_vector_element %p, 1u
+    %98:f32 = load_vector_element %c, 1u
+    %99:f32 = sub %97, %98
+    %100:vec2<f32> = construct %96, %99
+    store %param_4, %100
+    %101:f32 = sub %x_147, %x_148
+    %102:f32 = sub %x_150, %x_151
+    %103:vec2<f32> = construct %101, %102
+    store %param_5, %103
+    %104:f32 = load_vector_element %param_4, 0u
+    %105:f32 = load_vector_element %param_5, 1u
+    %106:f32 = mul %104, %105
+    %107:f32 = load_vector_element %param_5, 0u
+    %108:f32 = load_vector_element %param_4, 1u
+    %109:f32 = mul %107, %108
+    %110:f32 = sub %106, %109
+    %x_164:f32 = let %110
     store %x_66, %x_164
-    %95:bool = lt %x_164, 0.0f
-    %x_166:bool = and %x_127, %95
+    %112:bool = lt %x_164, 0.0f
+    %113:bool = and %x_127, %112
+    %x_166:bool = let %113
     store %x_173, %x_166
-    %97:bool = eq %x_166, false
-    if %97 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %98:bool = gte %x_99, 0.0f
-        %99:bool = gte %x_164, 0.0f
-        %100:bool = and %98, %99
-        store %x_172, %100
-        %101:bool = load %x_172
-        store %x_173, %101
+    %115:bool = eq %x_166, false
+    if %115 [t: $B5] {  # if_3
+      $B5: {  # true
+        %116:bool = gte %x_99, 0.0f
+        %117:bool = gte %x_164, 0.0f
+        %118:bool = and %116, %117
+        store %x_172, %118
+        %119:bool = load %x_172
+        store %x_173, %119
         exit_if  # if_3
       }
     }
-    %102:bool = load %x_173
-    %103:bool = eq %102, false
-    if %103 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %120:bool = load %x_173
+    %121:bool = eq %120, false
+    if %121 [t: $B6] {  # if_4
+      $B6: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B7: {
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %109:vec4<f32> = load %gl_FragCoord
-    %110:vec2<f32> = swizzle %109, xy
-    %111:ptr<uniform, vec2<f32>, read> = access %x_17, 0u
-    %112:vec2<f32> = load %111
-    %113:vec2<f32> = div %110, %112
-    store %param_6, %113
+    %127:vec4<f32> = load %gl_FragCoord
+    %128:vec2<f32> = swizzle %127, xy
+    %129:ptr<uniform, vec2<f32>, read> = access %x_17, 0u
+    %130:vec2<f32> = load %129
+    %131:vec2<f32> = div %128, %130
+    store %param_6, %131
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_60:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %115:bool = eq %x_60, 1i
-    if %115 [t: %b8, f: %b9] {  # if_5
-      %b8 = block {  # true
+    %132:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_60:i32 = let %132
+    %134:bool = eq %x_60, 1i
+    if %134 [t: $B8, f: $B9] {  # if_5
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -179,13 +198,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %118:void = call %main_1
-    %119:vec4<f32> = load %x_GLF_color
-    %120:main_out = construct %119
-    ret %120
+    %137:void = call %main_1
+    %138:vec4<f32> = load %x_GLF_color
+    %139:main_out = construct %138
+    ret %139
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.msl
index 4e9bd9c..c1c5763 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   resolution:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_17:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b2 {
-  %b2 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B2: {
     %x_66:ptr<function, f32, read_write> = var
     %x_67:ptr<function, f32, read_write> = var
     %x_68:ptr<function, f32, read_write> = var
@@ -29,151 +29,198 @@
     %x_172:ptr<function, bool, read_write> = var
     %x_136_phi:ptr<function, bool, read_write> = var
     %x_173_phi:ptr<function, bool, read_write> = var
-    %x_70:f32 = load_vector_element %p, 0u
-    %x_72:f32 = load_vector_element %a, 0u
-    %x_75:f32 = load_vector_element %p, 1u
-    %x_77:f32 = load_vector_element %a, 1u
-    %x_81:f32 = load_vector_element %b, 0u
-    %x_82:f32 = load_vector_element %a, 0u
-    %x_85:f32 = load_vector_element %b, 1u
-    %x_86:f32 = load_vector_element %a, 1u
-    %30:f32 = sub %x_70, %x_72
-    %31:f32 = sub %x_75, %x_77
-    %32:vec2<f32> = construct %30, %31
-    store %param, %32
-    %33:f32 = sub %x_81, %x_82
-    %34:f32 = sub %x_85, %x_86
-    %35:vec2<f32> = construct %33, %34
-    store %param_1, %35
-    %x_90:f32 = load_vector_element %param, 0u
-    %x_92:f32 = load_vector_element %param_1, 1u
-    %x_95:f32 = load_vector_element %param_1, 0u
-    %x_97:f32 = load_vector_element %param, 1u
-    %40:f32 = mul %x_90, %x_92
-    %41:f32 = mul %x_95, %x_97
-    %x_99:f32 = sub %40, %41
+    %22:f32 = load_vector_element %p, 0u
+    %x_70:f32 = let %22
+    %24:f32 = load_vector_element %a, 0u
+    %x_72:f32 = let %24
+    %26:f32 = load_vector_element %p, 1u
+    %x_75:f32 = let %26
+    %28:f32 = load_vector_element %a, 1u
+    %x_77:f32 = let %28
+    %30:f32 = load_vector_element %b, 0u
+    %x_81:f32 = let %30
+    %32:f32 = load_vector_element %a, 0u
+    %x_82:f32 = let %32
+    %34:f32 = load_vector_element %b, 1u
+    %x_85:f32 = let %34
+    %36:f32 = load_vector_element %a, 1u
+    %x_86:f32 = let %36
+    %38:f32 = sub %x_70, %x_72
+    %39:f32 = sub %x_75, %x_77
+    %40:vec2<f32> = construct %38, %39
+    store %param, %40
+    %41:f32 = sub %x_81, %x_82
+    %42:f32 = sub %x_85, %x_86
+    %43:vec2<f32> = construct %41, %42
+    store %param_1, %43
+    %44:f32 = load_vector_element %param, 0u
+    %x_90:f32 = let %44
+    %46:f32 = load_vector_element %param_1, 1u
+    %x_92:f32 = let %46
+    %48:f32 = load_vector_element %param_1, 0u
+    %x_95:f32 = let %48
+    %50:f32 = load_vector_element %param, 1u
+    %x_97:f32 = let %50
+    %52:f32 = mul %x_90, %x_92
+    %53:f32 = mul %x_95, %x_97
+    %54:f32 = sub %52, %53
+    %x_99:f32 = let %54
     store %x_68, %x_99
-    %x_100:f32 = load_vector_element %p, 0u
-    %x_101:f32 = load_vector_element %b, 0u
-    %x_103:f32 = load_vector_element %p, 1u
-    %x_104:f32 = load_vector_element %b, 1u
-    %x_108:f32 = load_vector_element %c, 0u
-    %x_109:f32 = load_vector_element %b, 0u
-    %x_112:f32 = load_vector_element %c, 1u
-    %x_113:f32 = load_vector_element %b, 1u
-    %51:f32 = sub %x_100, %x_101
-    %52:f32 = sub %x_103, %x_104
-    %53:vec2<f32> = construct %51, %52
-    store %param_2, %53
-    %54:f32 = sub %x_108, %x_109
-    %55:f32 = sub %x_112, %x_113
-    %56:vec2<f32> = construct %54, %55
-    store %param_3, %56
-    %x_117:f32 = load_vector_element %param_2, 0u
-    %x_119:f32 = load_vector_element %param_3, 1u
-    %x_122:f32 = load_vector_element %param_3, 0u
-    %x_124:f32 = load_vector_element %param_2, 1u
-    %61:f32 = mul %x_117, %x_119
-    %62:f32 = mul %x_122, %x_124
-    %x_126:f32 = sub %61, %62
+    %56:f32 = load_vector_element %p, 0u
+    %x_100:f32 = let %56
+    %58:f32 = load_vector_element %b, 0u
+    %x_101:f32 = let %58
+    %60:f32 = load_vector_element %p, 1u
+    %x_103:f32 = let %60
+    %62:f32 = load_vector_element %b, 1u
+    %x_104:f32 = let %62
+    %64:f32 = load_vector_element %c, 0u
+    %x_108:f32 = let %64
+    %66:f32 = load_vector_element %b, 0u
+    %x_109:f32 = let %66
+    %68:f32 = load_vector_element %c, 1u
+    %x_112:f32 = let %68
+    %70:f32 = load_vector_element %b, 1u
+    %x_113:f32 = let %70
+    %72:f32 = sub %x_100, %x_101
+    %73:f32 = sub %x_103, %x_104
+    %74:vec2<f32> = construct %72, %73
+    store %param_2, %74
+    %75:f32 = sub %x_108, %x_109
+    %76:f32 = sub %x_112, %x_113
+    %77:vec2<f32> = construct %75, %76
+    store %param_3, %77
+    %78:f32 = load_vector_element %param_2, 0u
+    %x_117:f32 = let %78
+    %80:f32 = load_vector_element %param_3, 1u
+    %x_119:f32 = let %80
+    %82:f32 = load_vector_element %param_3, 0u
+    %x_122:f32 = let %82
+    %84:f32 = load_vector_element %param_2, 1u
+    %x_124:f32 = let %84
+    %86:f32 = mul %x_117, %x_119
+    %87:f32 = mul %x_122, %x_124
+    %88:f32 = sub %86, %87
+    %x_126:f32 = let %88
     store %x_67, %x_126
-    %x_127:bool = lt %x_99, 0.0f
-    %65:bool = lt %x_126, 0.0f
-    %x_129:bool = and %x_127, %65
+    %90:bool = lt %x_99, 0.0f
+    %x_127:bool = let %90
+    %92:bool = lt %x_126, 0.0f
+    %93:bool = and %x_127, %92
+    %x_129:bool = let %93
     store %x_136_phi, %x_129
-    %67:bool = eq %x_129, false
-    if %67 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %68:bool = gte %x_99, 0.0f
-        %69:bool = gte %x_126, 0.0f
-        %70:bool = and %68, %69
-        store %x_135, %70
-        %71:bool = load %x_135
-        store %x_136_phi, %71
+    %95:bool = eq %x_129, false
+    if %95 [t: $B3] {  # if_1
+      $B3: {  # true
+        %96:bool = gte %x_99, 0.0f
+        %97:bool = gte %x_126, 0.0f
+        %98:bool = and %96, %97
+        store %x_135, %98
+        %99:bool = load %x_135
+        store %x_136_phi, %99
         exit_if  # if_1
       }
     }
-    %x_136:bool = load %x_136_phi
-    %73:bool = eq %x_136, false
-    if %73 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %100:bool = load %x_136_phi
+    %x_136:bool = let %100
+    %102:bool = eq %x_136, false
+    if %102 [t: $B4] {  # if_2
+      $B4: {  # true
         ret 0i
       }
     }
-    %x_140:f32 = load_vector_element %p, 0u
-    %x_141:f32 = load_vector_element %c, 0u
-    %x_143:f32 = load_vector_element %p, 1u
-    %x_144:f32 = load_vector_element %c, 1u
-    %x_147:f32 = load_vector_element %a, 0u
-    %x_148:f32 = load_vector_element %c, 0u
-    %x_150:f32 = load_vector_element %a, 1u
-    %x_151:f32 = load_vector_element %c, 1u
-    %82:f32 = sub %x_140, %x_141
-    %83:f32 = sub %x_143, %x_144
-    %84:vec2<f32> = construct %82, %83
-    store %param_4, %84
-    %85:f32 = sub %x_147, %x_148
-    %86:f32 = sub %x_150, %x_151
-    %87:vec2<f32> = construct %85, %86
-    store %param_5, %87
-    %x_155:f32 = load_vector_element %param_4, 0u
-    %x_157:f32 = load_vector_element %param_5, 1u
-    %x_160:f32 = load_vector_element %param_5, 0u
-    %x_162:f32 = load_vector_element %param_4, 1u
-    %92:f32 = mul %x_155, %x_157
-    %93:f32 = mul %x_160, %x_162
-    %x_164:f32 = sub %92, %93
+    %103:f32 = load_vector_element %p, 0u
+    %x_140:f32 = let %103
+    %105:f32 = load_vector_element %c, 0u
+    %x_141:f32 = let %105
+    %107:f32 = load_vector_element %p, 1u
+    %x_143:f32 = let %107
+    %109:f32 = load_vector_element %c, 1u
+    %x_144:f32 = let %109
+    %111:f32 = load_vector_element %a, 0u
+    %x_147:f32 = let %111
+    %113:f32 = load_vector_element %c, 0u
+    %x_148:f32 = let %113
+    %115:f32 = load_vector_element %a, 1u
+    %x_150:f32 = let %115
+    %117:f32 = load_vector_element %c, 1u
+    %x_151:f32 = let %117
+    %119:f32 = sub %x_140, %x_141
+    %120:f32 = sub %x_143, %x_144
+    %121:vec2<f32> = construct %119, %120
+    store %param_4, %121
+    %122:f32 = sub %x_147, %x_148
+    %123:f32 = sub %x_150, %x_151
+    %124:vec2<f32> = construct %122, %123
+    store %param_5, %124
+    %125:f32 = load_vector_element %param_4, 0u
+    %x_155:f32 = let %125
+    %127:f32 = load_vector_element %param_5, 1u
+    %x_157:f32 = let %127
+    %129:f32 = load_vector_element %param_5, 0u
+    %x_160:f32 = let %129
+    %131:f32 = load_vector_element %param_4, 1u
+    %x_162:f32 = let %131
+    %133:f32 = mul %x_155, %x_157
+    %134:f32 = mul %x_160, %x_162
+    %135:f32 = sub %133, %134
+    %x_164:f32 = let %135
     store %x_66, %x_164
-    %95:bool = lt %x_164, 0.0f
-    %x_166:bool = and %x_127, %95
+    %137:bool = lt %x_164, 0.0f
+    %138:bool = and %x_127, %137
+    %x_166:bool = let %138
     store %x_173_phi, %x_166
-    %97:bool = eq %x_166, false
-    if %97 [t: %b5] {  # if_3
-      %b5 = block {  # true
-        %98:bool = gte %x_99, 0.0f
-        %99:bool = gte %x_164, 0.0f
-        %100:bool = and %98, %99
-        store %x_172, %100
-        %101:bool = load %x_172
-        store %x_173_phi, %101
+    %140:bool = eq %x_166, false
+    if %140 [t: $B5] {  # if_3
+      $B5: {  # true
+        %141:bool = gte %x_99, 0.0f
+        %142:bool = gte %x_164, 0.0f
+        %143:bool = and %141, %142
+        store %x_172, %143
+        %144:bool = load %x_172
+        store %x_173_phi, %144
         exit_if  # if_3
       }
     }
-    %x_173:bool = load %x_173_phi
-    %103:bool = eq %x_173, false
-    if %103 [t: %b6] {  # if_4
-      %b6 = block {  # true
+    %145:bool = load %x_173_phi
+    %x_173:bool = let %145
+    %147:bool = eq %x_173, false
+    if %147 [t: $B6] {  # if_4
+      $B6: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b7 {
-  %b7 = block {
+%main_1 = func():void {
+  $B7: {
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %x_55:vec4<f32> = load %gl_FragCoord
-    %110:ptr<uniform, vec2<f32>, read> = access %x_17, 0u
-    %x_58:vec2<f32> = load %110
-    %112:f32 = access %x_55, 0u
-    %113:f32 = access %x_55, 1u
-    %114:vec2<f32> = construct %112, %113
-    %115:vec2<f32> = div %114, %x_58
-    store %param_6, %115
+    %153:vec4<f32> = load %gl_FragCoord
+    %x_55:vec4<f32> = let %153
+    %155:ptr<uniform, vec2<f32>, read> = access %x_17, 0u
+    %156:vec2<f32> = load %155
+    %x_58:vec2<f32> = let %156
+    %158:f32 = access %x_55, 0u
+    %159:f32 = access %x_55, 1u
+    %160:vec2<f32> = construct %158, %159
+    %161:vec2<f32> = div %160, %x_58
+    store %param_6, %161
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_60:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %117:bool = eq %x_60, 1i
-    if %117 [t: %b8, f: %b9] {  # if_5
-      %b8 = block {  # true
+    %162:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_60:i32 = let %162
+    %164:bool = eq %x_60, 1i
+    if %164 [t: $B8, f: $B9] {  # if_5
+      $B8: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
-      %b9 = block {  # false
+      $B9: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_5
       }
@@ -181,13 +228,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B10: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %120:void = call %main_1
-    %121:vec4<f32> = load %x_GLF_color
-    %122:main_out = construct %121
-    ret %122
+    %167:void = call %main_1
+    %168:vec4<f32> = load %x_GLF_color
+    %169:main_out = construct %168
+    ret %169
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.msl
index f9e8d82..b9b6b1c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,15 +12,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_19:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b2 {
-  %b2 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B2: {
     %x_78:ptr<function, f32, read_write> = var
     %x_79:ptr<function, f32, read_write> = var
     %x_80:ptr<function, f32, read_write> = var
@@ -34,216 +34,236 @@
     %x_148:ptr<function, bool, read_write> = var
     %x_203:ptr<function, bool, read_write> = var
     %x_204:ptr<function, bool, read_write> = var
-    %x_93:f32 = load_vector_element %b, 0u
-    %x_94:f32 = load_vector_element %a, 0u
-    %x_97:f32 = load_vector_element %b, 1u
-    %x_98:f32 = load_vector_element %a, 1u
-    %27:f32 = load_vector_element %p, 0u
-    %28:f32 = load_vector_element %a, 0u
-    %29:f32 = sub %27, %28
-    %30:f32 = load_vector_element %p, 1u
-    %31:f32 = load_vector_element %a, 1u
-    %32:f32 = sub %30, %31
-    %33:vec2<f32> = construct %29, %32
-    store %param, %33
-    %34:f32 = sub %x_93, %x_94
-    %35:f32 = sub %x_97, %x_98
-    %36:vec2<f32> = construct %34, %35
-    store %param_1, %36
-    %37:f32 = load_vector_element %param, 0u
-    %38:f32 = load_vector_element %param_1, 1u
-    %39:f32 = mul %37, %38
-    %40:f32 = load_vector_element %param_1, 0u
-    %41:f32 = load_vector_element %param, 1u
-    %42:f32 = mul %40, %41
-    %x_111:f32 = sub %39, %42
+    %23:f32 = load_vector_element %b, 0u
+    %x_93:f32 = let %23
+    %25:f32 = load_vector_element %a, 0u
+    %x_94:f32 = let %25
+    %27:f32 = load_vector_element %b, 1u
+    %x_97:f32 = let %27
+    %29:f32 = load_vector_element %a, 1u
+    %x_98:f32 = let %29
+    %31:f32 = load_vector_element %p, 0u
+    %32:f32 = load_vector_element %a, 0u
+    %33:f32 = sub %31, %32
+    %34:f32 = load_vector_element %p, 1u
+    %35:f32 = load_vector_element %a, 1u
+    %36:f32 = sub %34, %35
+    %37:vec2<f32> = construct %33, %36
+    store %param, %37
+    %38:f32 = sub %x_93, %x_94
+    %39:f32 = sub %x_97, %x_98
+    %40:vec2<f32> = construct %38, %39
+    store %param_1, %40
+    %41:f32 = load_vector_element %param, 0u
+    %42:f32 = load_vector_element %param_1, 1u
+    %43:f32 = mul %41, %42
+    %44:f32 = load_vector_element %param_1, 0u
+    %45:f32 = load_vector_element %param, 1u
+    %46:f32 = mul %44, %45
+    %47:f32 = sub %43, %46
+    %x_111:f32 = let %47
     store %x_80, %x_111
-    %x_120:f32 = load_vector_element %c, 0u
-    %x_121:f32 = load_vector_element %b, 0u
-    %x_124:f32 = load_vector_element %c, 1u
-    %x_125:f32 = load_vector_element %b, 1u
-    %48:f32 = load_vector_element %p, 0u
-    %49:f32 = load_vector_element %b, 0u
-    %50:f32 = sub %48, %49
-    %51:f32 = load_vector_element %p, 1u
-    %52:f32 = load_vector_element %b, 1u
-    %53:f32 = sub %51, %52
-    %54:vec2<f32> = construct %50, %53
-    store %param_2, %54
-    %55:f32 = sub %x_120, %x_121
-    %56:f32 = sub %x_124, %x_125
-    %57:vec2<f32> = construct %55, %56
-    store %param_3, %57
-    %58:f32 = load_vector_element %param_2, 0u
-    %59:f32 = load_vector_element %param_3, 1u
-    %60:f32 = mul %58, %59
-    %61:f32 = load_vector_element %param_3, 0u
-    %62:f32 = load_vector_element %param_2, 1u
-    %63:f32 = mul %61, %62
-    %x_138:f32 = sub %60, %63
+    %49:f32 = load_vector_element %c, 0u
+    %x_120:f32 = let %49
+    %51:f32 = load_vector_element %b, 0u
+    %x_121:f32 = let %51
+    %53:f32 = load_vector_element %c, 1u
+    %x_124:f32 = let %53
+    %55:f32 = load_vector_element %b, 1u
+    %x_125:f32 = let %55
+    %57:f32 = load_vector_element %p, 0u
+    %58:f32 = load_vector_element %b, 0u
+    %59:f32 = sub %57, %58
+    %60:f32 = load_vector_element %p, 1u
+    %61:f32 = load_vector_element %b, 1u
+    %62:f32 = sub %60, %61
+    %63:vec2<f32> = construct %59, %62
+    store %param_2, %63
+    %64:f32 = sub %x_120, %x_121
+    %65:f32 = sub %x_124, %x_125
+    %66:vec2<f32> = construct %64, %65
+    store %param_3, %66
+    %67:f32 = load_vector_element %param_2, 0u
+    %68:f32 = load_vector_element %param_3, 1u
+    %69:f32 = mul %67, %68
+    %70:f32 = load_vector_element %param_3, 0u
+    %71:f32 = load_vector_element %param_2, 1u
+    %72:f32 = mul %70, %71
+    %73:f32 = sub %69, %72
+    %x_138:f32 = let %73
     store %x_79, %x_138
-    %x_139:bool = lt %x_111, 0.0f
-    %66:bool = lt %x_138, 0.0f
-    %x_141:bool = and %x_139, %66
+    %75:bool = lt %x_111, 0.0f
+    %x_139:bool = let %75
+    %77:bool = lt %x_138, 0.0f
+    %78:bool = and %x_139, %77
+    %x_141:bool = let %78
     store %x_148, %x_141
-    %68:bool = eq %x_141, false
-    if %68 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %69:bool = gte %x_111, 0.0f
-        %70:bool = gte %x_138, 0.0f
-        %71:bool = and %69, %70
-        store %x_147, %71
-        %72:bool = load %x_147
-        store %x_148, %72
+    %80:bool = eq %x_141, false
+    if %80 [t: $B3] {  # if_1
+      $B3: {  # true
+        %81:bool = gte %x_111, 0.0f
+        %82:bool = gte %x_138, 0.0f
+        %83:bool = and %81, %82
+        store %x_147, %83
+        %84:bool = load %x_147
+        store %x_148, %84
         exit_if  # if_1
       }
     }
     %x_153:ptr<function, i32, read_write> = var
-    %74:bool = load %x_148
-    %75:bool = eq %74, false
-    if %75 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %86:bool = load %x_148
+    %87:bool = eq %86, false
+    if %87 [t: $B4] {  # if_2
+      $B4: {  # true
         store %x_153, 0i
-        loop [b: %b5, c: %b6] {  # loop_1
-          %b5 = block {  # body
+        loop [b: $B5, c: $B6] {  # loop_1
+          $B5: {  # body
             %x_164:ptr<function, i32, read_write> = var
             %x_154:ptr<function, i32, read_write> = var
-            %78:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-            %79:f32 = load_vector_element %78, 1u
-            %x_160:i32 = convert %79
-            %81:i32 = load %x_153
-            %82:bool = lt %81, %x_160
-            if %82 [t: %b7, f: %b8] {  # if_3
-              %b7 = block {  # true
+            %90:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+            %91:f32 = load_vector_element %90, 1u
+            %92:i32 = call %tint_f32_to_i32, %91
+            %x_160:i32 = let %92
+            %95:i32 = load %x_153
+            %96:bool = lt %95, %x_160
+            if %96 [t: $B7, f: $B8] {  # if_3
+              $B7: {  # true
                 exit_if  # if_3
               }
-              %b8 = block {  # false
+              $B8: {  # false
                 exit_loop  # loop_1
               }
             }
             store %x_GLF_color, vec4<f32>(1.0f)
             store %x_164, 0i
-            loop [b: %b9, c: %b10] {  # loop_2
-              %b9 = block {  # body
+            loop [b: $B9, c: $B10] {  # loop_2
+              $B9: {  # body
                 %x_165:ptr<function, i32, read_write> = var
-                %84:i32 = load %x_164
-                %85:bool = lt %84, %x_160
-                if %85 [t: %b11, f: %b12] {  # if_4
-                  %b11 = block {  # true
+                %98:i32 = load %x_164
+                %99:bool = lt %98, %x_160
+                if %99 [t: $B11, f: $B12] {  # if_4
+                  $B11: {  # true
                     exit_if  # if_4
                   }
-                  %b12 = block {  # false
+                  $B12: {  # false
                     exit_loop  # loop_2
                   }
                 }
                 store %x_GLF_color, vec4<f32>(1.0f)
-                continue %b10
+                continue  # -> $B10
               }
-              %b10 = block {  # continuing
-                %86:i32 = load %x_164
-                %87:i32 = add %86, 1i
-                store %x_165, %87
-                %88:i32 = load %x_165
-                store %x_164, %88
-                next_iteration %b9
+              $B10: {  # continuing
+                %100:i32 = load %x_164
+                %101:i32 = add %100, 1i
+                store %x_165, %101
+                %102:i32 = load %x_165
+                store %x_164, %102
+                next_iteration  # -> $B9
               }
             }
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            %89:i32 = load %x_153
-            %90:i32 = add %89, 1i
-            store %x_154, %90
-            %91:i32 = load %x_154
-            store %x_153, %91
-            next_iteration %b5
+          $B6: {  # continuing
+            %103:i32 = load %x_153
+            %104:i32 = add %103, 1i
+            store %x_154, %104
+            %105:i32 = load %x_154
+            store %x_153, %105
+            next_iteration  # -> $B5
           }
         }
         ret 0i
       }
     }
-    %x_178:f32 = load_vector_element %a, 0u
-    %x_179:f32 = load_vector_element %c, 0u
-    %x_181:f32 = load_vector_element %a, 1u
-    %x_182:f32 = load_vector_element %c, 1u
-    %96:f32 = load_vector_element %p, 0u
-    %97:f32 = load_vector_element %c, 0u
-    %98:f32 = sub %96, %97
-    %99:f32 = load_vector_element %p, 1u
-    %100:f32 = load_vector_element %c, 1u
-    %101:f32 = sub %99, %100
-    %102:vec2<f32> = construct %98, %101
-    store %param_4, %102
-    %103:f32 = sub %x_178, %x_179
-    %104:f32 = sub %x_181, %x_182
-    %105:vec2<f32> = construct %103, %104
-    store %param_5, %105
-    %106:f32 = load_vector_element %param_4, 0u
-    %107:f32 = load_vector_element %param_5, 1u
-    %108:f32 = mul %106, %107
-    %109:f32 = load_vector_element %param_5, 0u
-    %110:f32 = load_vector_element %param_4, 1u
-    %111:f32 = mul %109, %110
-    %x_195:f32 = sub %108, %111
+    %106:f32 = load_vector_element %a, 0u
+    %x_178:f32 = let %106
+    %108:f32 = load_vector_element %c, 0u
+    %x_179:f32 = let %108
+    %110:f32 = load_vector_element %a, 1u
+    %x_181:f32 = let %110
+    %112:f32 = load_vector_element %c, 1u
+    %x_182:f32 = let %112
+    %114:f32 = load_vector_element %p, 0u
+    %115:f32 = load_vector_element %c, 0u
+    %116:f32 = sub %114, %115
+    %117:f32 = load_vector_element %p, 1u
+    %118:f32 = load_vector_element %c, 1u
+    %119:f32 = sub %117, %118
+    %120:vec2<f32> = construct %116, %119
+    store %param_4, %120
+    %121:f32 = sub %x_178, %x_179
+    %122:f32 = sub %x_181, %x_182
+    %123:vec2<f32> = construct %121, %122
+    store %param_5, %123
+    %124:f32 = load_vector_element %param_4, 0u
+    %125:f32 = load_vector_element %param_5, 1u
+    %126:f32 = mul %124, %125
+    %127:f32 = load_vector_element %param_5, 0u
+    %128:f32 = load_vector_element %param_4, 1u
+    %129:f32 = mul %127, %128
+    %130:f32 = sub %126, %129
+    %x_195:f32 = let %130
     store %x_78, %x_195
-    %113:bool = lt %x_195, 0.0f
-    %x_197:bool = and %x_139, %113
+    %132:bool = lt %x_195, 0.0f
+    %133:bool = and %x_139, %132
+    %x_197:bool = let %133
     store %x_204, %x_197
-    %115:bool = eq %x_197, false
-    if %115 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %116:bool = gte %x_111, 0.0f
-        %117:bool = gte %x_195, 0.0f
-        %118:bool = and %116, %117
-        store %x_203, %118
-        %119:bool = load %x_203
-        store %x_204, %119
+    %135:bool = eq %x_197, false
+    if %135 [t: $B13] {  # if_5
+      $B13: {  # true
+        %136:bool = gte %x_111, 0.0f
+        %137:bool = gte %x_195, 0.0f
+        %138:bool = and %136, %137
+        store %x_203, %138
+        %139:bool = load %x_203
+        store %x_204, %139
         exit_if  # if_5
       }
     }
-    %120:bool = load %x_204
-    %121:bool = eq %120, false
-    if %121 [t: %b14] {  # if_6
-      %b14 = block {  # true
+    %140:bool = load %x_204
+    %141:bool = eq %140, false
+    if %141 [t: $B14] {  # if_6
+      $B14: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b15 {
-  %b15 = block {
+%main_1 = func():void {
+  $B15: {
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %127:vec4<f32> = load %gl_FragCoord
-    %128:vec2<f32> = swizzle %127, xy
-    %129:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-    %130:vec2<f32> = load %129
-    %131:vec2<f32> = div %128, %130
-    store %param_6, %131
+    %147:vec4<f32> = load %gl_FragCoord
+    %148:vec2<f32> = swizzle %147, xy
+    %149:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+    %150:vec2<f32> = load %149
+    %151:vec2<f32> = div %148, %150
+    store %param_6, %151
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_65:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %133:bool = eq %x_65, 1i
-    if %133 [t: %b16, f: %b17] {  # if_7
-      %b16 = block {  # true
-        %134:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-        %135:f32 = load_vector_element %134, 1u
-        %136:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-        %137:f32 = load_vector_element %136, 0u
-        %138:bool = gte %135, %137
-        if %138 [t: %b18] {  # if_8
-          %b18 = block {  # true
+    %152:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_65:i32 = let %152
+    %154:bool = eq %x_65, 1i
+    if %154 [t: $B16, f: $B17] {  # if_7
+      $B16: {  # true
+        %155:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+        %156:f32 = load_vector_element %155, 1u
+        %157:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+        %158:f32 = load_vector_element %157, 0u
+        %159:bool = gte %156, %158
+        if %159 [t: $B18] {  # if_8
+          $B18: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_8
           }
         }
         exit_if  # if_7
       }
-      %b17 = block {  # false
+      $B17: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -251,13 +271,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %141:void = call %main_1
-    %142:vec4<f32> = load %x_GLF_color
-    %143:main_out = construct %142
-    ret %143
+    %162:void = call %main_1
+    %163:vec4<f32> = load %x_GLF_color
+    %164:main_out = construct %163
+    ret %164
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %166:i32 = convert %value
+    %167:bool = gte %value, -2147483648.0f
+    %168:i32 = select -2147483648i, %166, %167
+    %169:bool = lte %value, 2147483520.0f
+    %170:i32 = select 2147483647i, %168, %169
+    ret %170
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.msl
index 3cbc44a..36dff3c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/stable-triangle-nested-for-loop-and-true-if/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf1 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf1 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -12,15 +12,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_11:ptr<uniform, buf1, read> = var @binding_point(0, 1)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_19:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 -> %b2 {
-  %b2 = block {
+%pointInTriangle_vf2_vf2_vf2_vf2_ = func(%p:ptr<function, vec2<f32>, read_write>, %a:ptr<function, vec2<f32>, read_write>, %b:ptr<function, vec2<f32>, read_write>, %c:ptr<function, vec2<f32>, read_write>):i32 {
+  $B2: {
     %x_78:ptr<function, f32, read_write> = var
     %x_79:ptr<function, f32, read_write> = var
     %x_80:ptr<function, f32, read_write> = var
@@ -34,216 +34,269 @@
     %x_203:ptr<function, bool, read_write> = var
     %x_148_phi:ptr<function, bool, read_write> = var
     %x_204_phi:ptr<function, bool, read_write> = var
-    %x_82:f32 = load_vector_element %p, 0u
-    %x_84:f32 = load_vector_element %a, 0u
-    %x_87:f32 = load_vector_element %p, 1u
-    %x_89:f32 = load_vector_element %a, 1u
-    %x_93:f32 = load_vector_element %b, 0u
-    %x_94:f32 = load_vector_element %a, 0u
-    %x_97:f32 = load_vector_element %b, 1u
-    %x_98:f32 = load_vector_element %a, 1u
-    %31:f32 = sub %x_82, %x_84
-    %32:f32 = sub %x_87, %x_89
-    %33:vec2<f32> = construct %31, %32
-    store %param, %33
-    %34:f32 = sub %x_93, %x_94
-    %35:f32 = sub %x_97, %x_98
-    %36:vec2<f32> = construct %34, %35
-    store %param_1, %36
-    %x_102:f32 = load_vector_element %param, 0u
-    %x_104:f32 = load_vector_element %param_1, 1u
-    %x_107:f32 = load_vector_element %param_1, 0u
-    %x_109:f32 = load_vector_element %param, 1u
-    %41:f32 = mul %x_102, %x_104
-    %42:f32 = mul %x_107, %x_109
-    %x_111:f32 = sub %41, %42
+    %23:f32 = load_vector_element %p, 0u
+    %x_82:f32 = let %23
+    %25:f32 = load_vector_element %a, 0u
+    %x_84:f32 = let %25
+    %27:f32 = load_vector_element %p, 1u
+    %x_87:f32 = let %27
+    %29:f32 = load_vector_element %a, 1u
+    %x_89:f32 = let %29
+    %31:f32 = load_vector_element %b, 0u
+    %x_93:f32 = let %31
+    %33:f32 = load_vector_element %a, 0u
+    %x_94:f32 = let %33
+    %35:f32 = load_vector_element %b, 1u
+    %x_97:f32 = let %35
+    %37:f32 = load_vector_element %a, 1u
+    %x_98:f32 = let %37
+    %39:f32 = sub %x_82, %x_84
+    %40:f32 = sub %x_87, %x_89
+    %41:vec2<f32> = construct %39, %40
+    store %param, %41
+    %42:f32 = sub %x_93, %x_94
+    %43:f32 = sub %x_97, %x_98
+    %44:vec2<f32> = construct %42, %43
+    store %param_1, %44
+    %45:f32 = load_vector_element %param, 0u
+    %x_102:f32 = let %45
+    %47:f32 = load_vector_element %param_1, 1u
+    %x_104:f32 = let %47
+    %49:f32 = load_vector_element %param_1, 0u
+    %x_107:f32 = let %49
+    %51:f32 = load_vector_element %param, 1u
+    %x_109:f32 = let %51
+    %53:f32 = mul %x_102, %x_104
+    %54:f32 = mul %x_107, %x_109
+    %55:f32 = sub %53, %54
+    %x_111:f32 = let %55
     store %x_80, %x_111
-    %x_112:f32 = load_vector_element %p, 0u
-    %x_113:f32 = load_vector_element %b, 0u
-    %x_115:f32 = load_vector_element %p, 1u
-    %x_116:f32 = load_vector_element %b, 1u
-    %x_120:f32 = load_vector_element %c, 0u
-    %x_121:f32 = load_vector_element %b, 0u
-    %x_124:f32 = load_vector_element %c, 1u
-    %x_125:f32 = load_vector_element %b, 1u
-    %52:f32 = sub %x_112, %x_113
-    %53:f32 = sub %x_115, %x_116
-    %54:vec2<f32> = construct %52, %53
-    store %param_2, %54
-    %55:f32 = sub %x_120, %x_121
-    %56:f32 = sub %x_124, %x_125
-    %57:vec2<f32> = construct %55, %56
-    store %param_3, %57
-    %x_129:f32 = load_vector_element %param_2, 0u
-    %x_131:f32 = load_vector_element %param_3, 1u
-    %x_134:f32 = load_vector_element %param_3, 0u
-    %x_136:f32 = load_vector_element %param_2, 1u
-    %62:f32 = mul %x_129, %x_131
-    %63:f32 = mul %x_134, %x_136
-    %x_138:f32 = sub %62, %63
+    %57:f32 = load_vector_element %p, 0u
+    %x_112:f32 = let %57
+    %59:f32 = load_vector_element %b, 0u
+    %x_113:f32 = let %59
+    %61:f32 = load_vector_element %p, 1u
+    %x_115:f32 = let %61
+    %63:f32 = load_vector_element %b, 1u
+    %x_116:f32 = let %63
+    %65:f32 = load_vector_element %c, 0u
+    %x_120:f32 = let %65
+    %67:f32 = load_vector_element %b, 0u
+    %x_121:f32 = let %67
+    %69:f32 = load_vector_element %c, 1u
+    %x_124:f32 = let %69
+    %71:f32 = load_vector_element %b, 1u
+    %x_125:f32 = let %71
+    %73:f32 = sub %x_112, %x_113
+    %74:f32 = sub %x_115, %x_116
+    %75:vec2<f32> = construct %73, %74
+    store %param_2, %75
+    %76:f32 = sub %x_120, %x_121
+    %77:f32 = sub %x_124, %x_125
+    %78:vec2<f32> = construct %76, %77
+    store %param_3, %78
+    %79:f32 = load_vector_element %param_2, 0u
+    %x_129:f32 = let %79
+    %81:f32 = load_vector_element %param_3, 1u
+    %x_131:f32 = let %81
+    %83:f32 = load_vector_element %param_3, 0u
+    %x_134:f32 = let %83
+    %85:f32 = load_vector_element %param_2, 1u
+    %x_136:f32 = let %85
+    %87:f32 = mul %x_129, %x_131
+    %88:f32 = mul %x_134, %x_136
+    %89:f32 = sub %87, %88
+    %x_138:f32 = let %89
     store %x_79, %x_138
-    %x_139:bool = lt %x_111, 0.0f
-    %66:bool = lt %x_138, 0.0f
-    %x_141:bool = and %x_139, %66
+    %91:bool = lt %x_111, 0.0f
+    %x_139:bool = let %91
+    %93:bool = lt %x_138, 0.0f
+    %94:bool = and %x_139, %93
+    %x_141:bool = let %94
     store %x_148_phi, %x_141
-    %68:bool = eq %x_141, false
-    if %68 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %69:bool = gte %x_111, 0.0f
-        %70:bool = gte %x_138, 0.0f
-        %71:bool = and %69, %70
-        store %x_147, %71
-        %72:bool = load %x_147
-        store %x_148_phi, %72
+    %96:bool = eq %x_141, false
+    if %96 [t: $B3] {  # if_1
+      $B3: {  # true
+        %97:bool = gte %x_111, 0.0f
+        %98:bool = gte %x_138, 0.0f
+        %99:bool = and %97, %98
+        store %x_147, %99
+        %100:bool = load %x_147
+        store %x_148_phi, %100
         exit_if  # if_1
       }
     }
     %x_153_phi:ptr<function, i32, read_write> = var
-    %x_148:bool = load %x_148_phi
-    %75:bool = eq %x_148, false
-    if %75 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %102:bool = load %x_148_phi
+    %x_148:bool = let %102
+    %104:bool = eq %x_148, false
+    if %104 [t: $B4] {  # if_2
+      $B4: {  # true
         store %x_153_phi, 0i
-        loop [b: %b5, c: %b6] {  # loop_1
-          %b5 = block {  # body
+        loop [b: $B5, c: $B6] {  # loop_1
+          $B5: {  # body
             %x_154:ptr<function, i32, read_write> = var
             %x_164_phi:ptr<function, i32, read_write> = var
-            %x_153:i32 = load %x_153_phi
-            %79:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-            %x_159:f32 = load_vector_element %79, 1u
-            %x_160:i32 = convert %x_159
-            %82:bool = lt %x_153, %x_160
-            if %82 [t: %b7, f: %b8] {  # if_3
-              %b7 = block {  # true
+            %107:i32 = load %x_153_phi
+            %x_153:i32 = let %107
+            %109:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+            %110:f32 = load_vector_element %109, 1u
+            %x_159:f32 = let %110
+            %112:i32 = call %tint_f32_to_i32, %x_159
+            %x_160:i32 = let %112
+            %115:bool = lt %x_153, %x_160
+            if %115 [t: $B7, f: $B8] {  # if_3
+              $B7: {  # true
                 exit_if  # if_3
               }
-              %b8 = block {  # false
+              $B8: {  # false
                 exit_loop  # loop_1
               }
             }
             store %x_GLF_color, vec4<f32>(1.0f)
             store %x_164_phi, 0i
-            loop [b: %b9, c: %b10] {  # loop_2
-              %b9 = block {  # body
+            loop [b: $B9, c: $B10] {  # loop_2
+              $B9: {  # body
                 %x_165:ptr<function, i32, read_write> = var
-                %x_164:i32 = load %x_164_phi
-                %85:bool = lt %x_164, %x_160
-                if %85 [t: %b11, f: %b12] {  # if_4
-                  %b11 = block {  # true
+                %117:i32 = load %x_164_phi
+                %x_164:i32 = let %117
+                %119:bool = lt %x_164, %x_160
+                if %119 [t: $B11, f: $B12] {  # if_4
+                  $B11: {  # true
                     exit_if  # if_4
                   }
-                  %b12 = block {  # false
+                  $B12: {  # false
                     exit_loop  # loop_2
                   }
                 }
                 store %x_GLF_color, vec4<f32>(1.0f)
-                continue %b10
+                continue  # -> $B10
               }
-              %b10 = block {  # continuing
-                %86:i32 = add %x_164, 1i
-                store %x_165, %86
-                %87:i32 = load %x_165
-                store %x_164_phi, %87
-                next_iteration %b9
+              $B10: {  # continuing
+                %120:i32 = add %x_164, 1i
+                store %x_165, %120
+                %121:i32 = load %x_165
+                store %x_164_phi, %121
+                next_iteration  # -> $B9
               }
             }
-            continue %b6
+            continue  # -> $B6
           }
-          %b6 = block {  # continuing
-            %88:i32 = add %x_153, 1i
-            store %x_154, %88
-            %89:i32 = load %x_154
-            store %x_153_phi, %89
-            next_iteration %b5
+          $B6: {  # continuing
+            %122:i32 = add %x_153, 1i
+            store %x_154, %122
+            %123:i32 = load %x_154
+            store %x_153_phi, %123
+            next_iteration  # -> $B5
           }
         }
         ret 0i
       }
     }
-    %x_171:f32 = load_vector_element %p, 0u
-    %x_172:f32 = load_vector_element %c, 0u
-    %x_174:f32 = load_vector_element %p, 1u
-    %x_175:f32 = load_vector_element %c, 1u
-    %x_178:f32 = load_vector_element %a, 0u
-    %x_179:f32 = load_vector_element %c, 0u
-    %x_181:f32 = load_vector_element %a, 1u
-    %x_182:f32 = load_vector_element %c, 1u
-    %98:f32 = sub %x_171, %x_172
-    %99:f32 = sub %x_174, %x_175
-    %100:vec2<f32> = construct %98, %99
-    store %param_4, %100
-    %101:f32 = sub %x_178, %x_179
-    %102:f32 = sub %x_181, %x_182
-    %103:vec2<f32> = construct %101, %102
-    store %param_5, %103
-    %x_186:f32 = load_vector_element %param_4, 0u
-    %x_188:f32 = load_vector_element %param_5, 1u
-    %x_191:f32 = load_vector_element %param_5, 0u
-    %x_193:f32 = load_vector_element %param_4, 1u
-    %108:f32 = mul %x_186, %x_188
-    %109:f32 = mul %x_191, %x_193
-    %x_195:f32 = sub %108, %109
+    %124:f32 = load_vector_element %p, 0u
+    %x_171:f32 = let %124
+    %126:f32 = load_vector_element %c, 0u
+    %x_172:f32 = let %126
+    %128:f32 = load_vector_element %p, 1u
+    %x_174:f32 = let %128
+    %130:f32 = load_vector_element %c, 1u
+    %x_175:f32 = let %130
+    %132:f32 = load_vector_element %a, 0u
+    %x_178:f32 = let %132
+    %134:f32 = load_vector_element %c, 0u
+    %x_179:f32 = let %134
+    %136:f32 = load_vector_element %a, 1u
+    %x_181:f32 = let %136
+    %138:f32 = load_vector_element %c, 1u
+    %x_182:f32 = let %138
+    %140:f32 = sub %x_171, %x_172
+    %141:f32 = sub %x_174, %x_175
+    %142:vec2<f32> = construct %140, %141
+    store %param_4, %142
+    %143:f32 = sub %x_178, %x_179
+    %144:f32 = sub %x_181, %x_182
+    %145:vec2<f32> = construct %143, %144
+    store %param_5, %145
+    %146:f32 = load_vector_element %param_4, 0u
+    %x_186:f32 = let %146
+    %148:f32 = load_vector_element %param_5, 1u
+    %x_188:f32 = let %148
+    %150:f32 = load_vector_element %param_5, 0u
+    %x_191:f32 = let %150
+    %152:f32 = load_vector_element %param_4, 1u
+    %x_193:f32 = let %152
+    %154:f32 = mul %x_186, %x_188
+    %155:f32 = mul %x_191, %x_193
+    %156:f32 = sub %154, %155
+    %x_195:f32 = let %156
     store %x_78, %x_195
-    %111:bool = lt %x_195, 0.0f
-    %x_197:bool = and %x_139, %111
+    %158:bool = lt %x_195, 0.0f
+    %159:bool = and %x_139, %158
+    %x_197:bool = let %159
     store %x_204_phi, %x_197
-    %113:bool = eq %x_197, false
-    if %113 [t: %b13] {  # if_5
-      %b13 = block {  # true
-        %114:bool = gte %x_111, 0.0f
-        %115:bool = gte %x_195, 0.0f
-        %116:bool = and %114, %115
-        store %x_203, %116
-        %117:bool = load %x_203
-        store %x_204_phi, %117
+    %161:bool = eq %x_197, false
+    if %161 [t: $B13] {  # if_5
+      $B13: {  # true
+        %162:bool = gte %x_111, 0.0f
+        %163:bool = gte %x_195, 0.0f
+        %164:bool = and %162, %163
+        store %x_203, %164
+        %165:bool = load %x_203
+        store %x_204_phi, %165
         exit_if  # if_5
       }
     }
-    %x_204:bool = load %x_204_phi
-    %119:bool = eq %x_204, false
-    if %119 [t: %b14] {  # if_6
-      %b14 = block {  # true
+    %166:bool = load %x_204_phi
+    %x_204:bool = let %166
+    %168:bool = eq %x_204, false
+    if %168 [t: $B14] {  # if_6
+      $B14: {  # true
         ret 0i
       }
     }
     ret 1i
   }
 }
-%main_1 = func():void -> %b15 {
-  %b15 = block {
+%main_1 = func():void {
+  $B15: {
     %param_6:ptr<function, vec2<f32>, read_write> = var
     %param_7:ptr<function, vec2<f32>, read_write> = var
     %param_8:ptr<function, vec2<f32>, read_write> = var
     %param_9:ptr<function, vec2<f32>, read_write> = var
-    %x_60:vec4<f32> = load %gl_FragCoord
-    %126:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
-    %x_63:vec2<f32> = load %126
-    %128:f32 = access %x_60, 0u
-    %129:f32 = access %x_60, 1u
-    %130:vec2<f32> = construct %128, %129
-    %131:vec2<f32> = div %130, %x_63
-    store %param_6, %131
+    %174:vec4<f32> = load %gl_FragCoord
+    %x_60:vec4<f32> = let %174
+    %176:ptr<uniform, vec2<f32>, read> = access %x_19, 0u
+    %177:vec2<f32> = load %176
+    %x_63:vec2<f32> = let %177
+    %179:f32 = access %x_60, 0u
+    %180:f32 = access %x_60, 1u
+    %181:vec2<f32> = construct %179, %180
+    %182:vec2<f32> = div %181, %x_63
+    store %param_6, %182
     store %param_7, vec2<f32>(0.69999998807907104492f, 0.30000001192092895508f)
     store %param_8, vec2<f32>(0.5f, 0.89999997615814208984f)
     store %param_9, vec2<f32>(0.10000000149011611938f, 0.40000000596046447754f)
-    %x_65:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
-    %133:bool = eq %x_65, 1i
-    if %133 [t: %b16, f: %b17] {  # if_7
-      %b16 = block {  # true
-        %134:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-        %x_71:f32 = load_vector_element %134, 1u
-        %136:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
-        %x_73:f32 = load_vector_element %136, 0u
-        %138:bool = gte %x_71, %x_73
-        if %138 [t: %b18] {  # if_8
-          %b18 = block {  # true
+    %183:i32 = call %pointInTriangle_vf2_vf2_vf2_vf2_, %param_6, %param_7, %param_8, %param_9
+    %x_65:i32 = let %183
+    %185:bool = eq %x_65, 1i
+    if %185 [t: $B16, f: $B17] {  # if_7
+      $B16: {  # true
+        %186:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+        %187:f32 = load_vector_element %186, 1u
+        %x_71:f32 = let %187
+        %189:ptr<uniform, vec2<f32>, read> = access %x_11, 0u
+        %190:f32 = load_vector_element %189, 0u
+        %x_73:f32 = let %190
+        %192:bool = gte %x_71, %x_73
+        if %192 [t: $B18] {  # if_8
+          $B18: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_if  # if_8
           }
         }
         exit_if  # if_7
       }
-      %b17 = block {  # false
+      $B17: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -251,13 +304,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %141:void = call %main_1
-    %142:vec4<f32> = load %x_GLF_color
-    %143:main_out = construct %142
-    ret %143
+    %195:void = call %main_1
+    %196:vec4<f32> = load %x_GLF_color
+    %197:main_out = construct %196
+    ret %197
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B20: {
+    %199:i32 = convert %value
+    %200:bool = gte %value, -2147483648.0f
+    %201:i32 = select -2147483648i, %199, %200
+    %202:bool = lte %value, 2147483520.0f
+    %203:i32 = select 2147483647i, %201, %202
+    ret %203
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.msl
index 941c27d..bdc7c2e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: struct_base = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: struct_base = struct @align(4) {
   data:i32 @offset(0)
   leftIndex:i32 @offset(4)
   rightIndex:i32 @offset(8)
@@ -14,14 +14,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %struct_array:ptr<private, array<struct_base, 3>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %index:ptr<function, i32, read_write> = var
     store %struct_array, array<struct_base, 3>(struct_base(1i))
     store %index, 1i
@@ -30,35 +30,35 @@
     %7:ptr<private, i32, read_write> = access %struct_array, 1i, 1u
     %8:i32 = load %7
     %9:bool = eq %8, 1i
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         %10:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
         %11:f32 = load_vector_element %10, 0u
-        %12:i32 = convert %11
-        %13:ptr<private, i32, read_write> = access %struct_array, %12, 2u
-        %14:i32 = load %13
-        store %index, %14
+        %12:i32 = call %tint_f32_to_i32, %11
+        %14:ptr<private, i32, read_write> = access %struct_array, %12, 2u
+        %15:i32 = load %14
+        store %index, %15
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %15:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %16:f32 = load_vector_element %15, 1u
-        %17:i32 = convert %16
-        %18:ptr<private, i32, read_write> = access %struct_array, %17, 1u
-        %19:i32 = load %18
-        store %index, %19
+      $B4: {  # false
+        %16:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %17:f32 = load_vector_element %16, 1u
+        %18:i32 = call %tint_f32_to_i32, %17
+        %19:ptr<private, i32, read_write> = access %struct_array, %18, 1u
+        %20:i32 = load %19
+        store %index, %20
         exit_if  # if_1
       }
     }
-    %20:ptr<private, i32, read_write> = access %struct_array, 1i, 1u
-    %21:i32 = load %20
-    %22:bool = eq %21, 1i
-    if %22 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %21:ptr<private, i32, read_write> = access %struct_array, 1i, 1u
+    %22:i32 = load %21
+    %23:bool = eq %22, 1i
+    if %23 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_2
       }
@@ -66,12 +66,22 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %24:void = call %main_1
-    %25:vec4<f32> = load %x_GLF_color
-    %26:main_out = construct %25
-    ret %26
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    ret %27
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %29:i32 = convert %value
+    %30:bool = gte %value, -2147483648.0f
+    %31:i32 = select -2147483648i, %29, %30
+    %32:bool = lte %value, 2147483520.0f
+    %33:i32 = select 2147483647i, %31, %32
+    ret %33
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.msl
index 55c7eaa..3a47ff9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/struct-array-index/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: struct_base = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: struct_base = struct @align(4) {
   data:i32 @offset(0)
   leftIndex:i32 @offset(4)
   rightIndex:i32 @offset(8)
@@ -14,51 +14,57 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %struct_array:ptr<private, array<struct_base, 3>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %index:ptr<function, i32, read_write> = var
     store %struct_array, array<struct_base, 3>(struct_base(1i))
     store %index, 1i
     %6:ptr<private, i32, read_write> = access %struct_array, 1i, 2u
     store %6, 1i
     %7:ptr<private, i32, read_write> = access %struct_array, 1i, 1u
-    %x_39:i32 = load %7
-    %9:bool = eq %x_39, 1i
-    if %9 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
-        %10:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_45:f32 = load_vector_element %10, 0u
-        %12:i32 = convert %x_45
-        %13:ptr<private, i32, read_write> = access %struct_array, %12, 2u
-        %x_48:i32 = load %13
+    %8:i32 = load %7
+    %x_39:i32 = let %8
+    %10:bool = eq %x_39, 1i
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %11:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %12:f32 = load_vector_element %11, 0u
+        %x_45:f32 = let %12
+        %14:i32 = call %tint_f32_to_i32, %x_45
+        %16:ptr<private, i32, read_write> = access %struct_array, %14, 2u
+        %17:i32 = load %16
+        %x_48:i32 = let %17
         store %index, %x_48
         exit_if  # if_1
       }
-      %b4 = block {  # false
-        %15:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_50:f32 = load_vector_element %15, 1u
-        %17:i32 = convert %x_50
-        %18:ptr<private, i32, read_write> = access %struct_array, %17, 1u
-        %x_53:i32 = load %18
+      $B4: {  # false
+        %19:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %20:f32 = load_vector_element %19, 1u
+        %x_50:f32 = let %20
+        %22:i32 = call %tint_f32_to_i32, %x_50
+        %23:ptr<private, i32, read_write> = access %struct_array, %22, 1u
+        %24:i32 = load %23
+        %x_53:i32 = let %24
         store %index, %x_53
         exit_if  # if_1
       }
     }
-    %20:ptr<private, i32, read_write> = access %struct_array, 1i, 1u
-    %x_55:i32 = load %20
-    %22:bool = eq %x_55, 1i
-    if %22 [t: %b5, f: %b6] {  # if_2
-      %b5 = block {  # true
+    %26:ptr<private, i32, read_write> = access %struct_array, 1i, 1u
+    %27:i32 = load %26
+    %x_55:i32 = let %27
+    %29:bool = eq %x_55, 1i
+    if %29 [t: $B5, f: $B6] {  # if_2
+      $B5: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_2
       }
-      %b6 = block {  # false
+      $B6: {  # false
         store %x_GLF_color, vec4<f32>(1.0f)
         exit_if  # if_2
       }
@@ -66,12 +72,22 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %24:void = call %main_1
-    %25:vec4<f32> = load %x_GLF_color
-    %26:main_out = construct %25
-    ret %26
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %31:void = call %main_1
+    %32:vec4<f32> = load %x_GLF_color
+    %33:main_out = construct %32
+    ret %33
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %35:i32 = convert %value
+    %36:bool = gte %value, -2147483648.0f
+    %37:i32 = select -2147483648i, %35, %36
+    %38:bool = lte %value, 2147483520.0f
+    %39:i32 = select 2147483647i, %37, %38
+    ret %39
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.msl
index fd518ca..ee4cfae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -13,65 +13,79 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %ll:ptr<function, S, read_write> = var
     %sums:ptr<function, array<f32, 9>, read_write> = var
     store %ll, S(0i, vec3<bool>(true))
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:ptr<function, i32, read_write> = access %ll, 0u
         %7:i32 = load %6
-        %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %9:f32 = load_vector_element %8, 1u
-        %10:i32 = convert %9
-        %11:bool = neq %7, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %8:i32 = let %7
+        %9:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %10:f32 = load_vector_element %9, 1u
+        %11:i32 = call %tint_f32_to_i32, %10
+        %13:bool = neq %8, %11
+        if %13 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %12:ptr<function, f32, read_write> = access %sums, 0i
-        store %12, 0.0f
-        continue %b4
+        %14:ptr<function, f32, read_write> = access %sums, 0i
+        store %14, 0.0f
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_13:S = load %ll
-        %x_50:S = load %ll
+      $B4: {  # continuing
+        %15:S = load %ll
+        %x_13:S = let %15
+        %17:S = load %ll
+        %x_50:S = let %17
         %x_51_1:ptr<function, S, read_write> = var, %x_50
-        %16:ptr<function, i32, read_write> = access %x_51_1, 0u
-        %17:i32 = access %x_13, 0u
-        %18:i32 = add %17, 1i
-        store %16, %18
-        %19:S = load %x_51_1
-        store %ll, %19
-        next_iteration %b3
+        %20:ptr<function, i32, read_write> = access %x_51_1, 0u
+        %21:i32 = access %x_13, 0u
+        %22:i32 = add %21, 1i
+        store %20, %22
+        %23:S = load %x_51_1
+        store %ll, %23
+        next_iteration  # -> $B3
       }
     }
-    %20:ptr<function, f32, read_write> = access %sums, 0i
-    %21:f32 = load %20
-    %x_54:vec2<f32> = construct %21
-    %23:f32 = access %x_54, 0u
-    %24:f32 = access %x_54, 1u
-    %25:vec4<f32> = construct 1.0f, %23, %24, 1.0f
-    store %x_GLF_color, %25
+    %24:ptr<function, f32, read_write> = access %sums, 0i
+    %25:f32 = load %24
+    %26:vec2<f32> = construct %25
+    %x_54:vec2<f32> = let %26
+    %28:f32 = access %x_54, 0u
+    %29:f32 = access %x_54, 1u
+    %30:vec4<f32> = construct 1.0f, %28, %29, 1.0f
+    store %x_GLF_color, %30
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %32:void = call %main_1
+    %33:vec4<f32> = load %x_GLF_color
+    %34:main_out = construct %33
+    ret %34
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %36:i32 = convert %value
+    %37:bool = gte %value, -2147483648.0f
+    %38:i32 = select -2147483648i, %36, %37
+    %39:bool = lte %value, 2147483520.0f
+    %40:i32 = select 2147483647i, %38, %39
+    ret %40
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.msl
index b8aeaa0..3a44572 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/struct-controlled-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -13,65 +13,82 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %ll:ptr<function, S, read_write> = var
     %sums:ptr<function, array<f32, 9>, read_write> = var
     store %ll, S(0i, vec3<bool>(true))
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_12:S = load %ll
-        %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_45:f32 = load_vector_element %7, 1u
-        %9:i32 = access %x_12, 0u
-        %10:i32 = convert %x_45
-        %11:bool = neq %9, %10
-        if %11 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:S = load %ll
+        %x_12:S = let %6
+        %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+        %9:f32 = load_vector_element %8, 1u
+        %x_45:f32 = let %9
+        %11:i32 = access %x_12, 0u
+        %12:i32 = call %tint_f32_to_i32, %x_45
+        %14:bool = neq %11, %12
+        if %14 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %12:ptr<function, f32, read_write> = access %sums, 0i
-        store %12, 0.0f
-        continue %b4
+        %15:ptr<function, f32, read_write> = access %sums, 0i
+        store %15, 0.0f
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_13:S = load %ll
-        %x_50:S = load %ll
+      $B4: {  # continuing
+        %16:S = load %ll
+        %x_13:S = let %16
+        %18:S = load %ll
+        %x_50:S = let %18
         %x_51_1:ptr<function, S, read_write> = var, %x_50
-        %16:ptr<function, i32, read_write> = access %x_51_1, 0u
-        %17:i32 = access %x_13, 0u
-        %18:i32 = add %17, 1i
-        store %16, %18
-        %x_51:S = load %x_51_1
+        %21:ptr<function, i32, read_write> = access %x_51_1, 0u
+        %22:i32 = access %x_13, 0u
+        %23:i32 = add %22, 1i
+        store %21, %23
+        %24:S = load %x_51_1
+        %x_51:S = let %24
         store %ll, %x_51
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
-    %20:ptr<function, f32, read_write> = access %sums, 0i
-    %x_53:f32 = load %20
-    %x_54:vec2<f32> = construct %x_53, %x_53
-    %23:f32 = access %x_54, 0u
-    %24:f32 = access %x_54, 1u
-    %25:vec4<f32> = construct 1.0f, %23, %24, 1.0f
-    store %x_GLF_color, %25
+    %26:ptr<function, f32, read_write> = access %sums, 0i
+    %27:f32 = load %26
+    %x_53:f32 = let %27
+    %29:vec2<f32> = construct %x_53, %x_53
+    %x_54:vec2<f32> = let %29
+    %31:f32 = access %x_54, 0u
+    %32:f32 = access %x_54, 1u
+    %33:vec4<f32> = construct 1.0f, %31, %32, 1.0f
+    store %x_GLF_color, %33
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %27:void = call %main_1
-    %28:vec4<f32> = load %x_GLF_color
-    %29:main_out = construct %28
-    ret %29
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    ret %37
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %39:i32 = convert %value
+    %40:bool = gte %value, -2147483648.0f
+    %41:i32 = select -2147483648i, %39, %40
+    %42:bool = lte %value, 2147483520.0f
+    %43:i32 = select 2147483647i, %41, %42
+    ret %43
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.msl
index 51e0679..50edaff 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   field0:vec4<f32> @offset(0)
 }
 
@@ -12,30 +12,31 @@
   x_3_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec4<f32>, read> = access %x_5, 0u
-    %x_20:vec4<f32> = load %4
+    %5:vec4<f32> = load %4
+    %x_20:vec4<f32> = let %5
     %x_21_1:ptr<function, S_1, read_write> = var, S_1(vec4<f32>(0.0f))
-    %7:ptr<function, vec4<f32>, read_write> = access %x_21_1, 0u
-    store %7, %x_20
     %8:ptr<function, vec4<f32>, read_write> = access %x_21_1, 0u
-    %9:vec4<f32> = load %8
-    store %x_3, %9
+    store %8, %x_20
+    %9:ptr<function, vec4<f32>, read_write> = access %x_21_1, 0u
+    %10:vec4<f32> = load %9
+    store %x_3, %10
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
-    %11:void = call %main_1
-    %12:vec4<f32> = load %x_3
-    %13:main_out = construct %12
-    ret %13
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %12:void = call %main_1
+    %13:vec4<f32> = load %x_3
+    %14:main_out = construct %13
+    ret %14
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.msl
index 23ba2dd..6e59fc4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/struct-used-as-temporary/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(16) {
   field0:vec4<f32> @offset(0)
 }
 
@@ -12,30 +12,32 @@
   x_3_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, S, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %4:ptr<uniform, vec4<f32>, read> = access %x_5, 0u
-    %x_20:vec4<f32> = load %4
+    %5:vec4<f32> = load %4
+    %x_20:vec4<f32> = let %5
     %x_21_1:ptr<function, S_1, read_write> = var, S_1(vec4<f32>(0.0f))
-    %7:ptr<function, vec4<f32>, read_write> = access %x_21_1, 0u
-    store %7, %x_20
-    %x_21:S_1 = load %x_21_1
-    %9:vec4<f32> = access %x_21, 0u
-    store %x_3, %9
+    %8:ptr<function, vec4<f32>, read_write> = access %x_21_1, 0u
+    store %8, %x_20
+    %9:S_1 = load %x_21_1
+    %x_21:S_1 = let %9
+    %11:vec4<f32> = access %x_21, 0u
+    store %x_3, %11
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b3 {
-  %b3 = block {
-    %11:void = call %main_1
-    %12:vec4<f32> = load %x_3
-    %13:main_out = construct %12
-    ret %13
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %13:void = call %main_1
+    %14:vec4<f32> = load %x_3
+    %15:main_out = construct %14
+    ret %15
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.msl
index 747316c..c9ff4d8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,32 +8,34 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_25:f32 = load_vector_element %4, 1u
-    %6:i32 = convert %x_25
-    switch %6 [c: (-1i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
-        %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %8:f32 = load_vector_element %7, 1u
-        %9:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %10:f32 = load_vector_element %9, 0u
-        %11:bool = gt %8, %10
-        if %11 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            discard
+%main_1 = func():void {
+  $B2: {
+    %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+    %6:f32 = load_vector_element %5, 1u
+    %x_25:f32 = let %6
+    %8:i32 = call %tint_f32_to_i32, %x_25
+    switch %8 [c: (-1i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        %10:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %11:f32 = load_vector_element %10, 1u
+        %12:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %13:f32 = load_vector_element %12, 0u
+        %14:bool = gt %11, %13
+        if %14 [t: $B5] {  # if_1
+          $B5: {  # true
+            store %continue_execution, false
             exit_if  # if_1
           }
         }
         exit_switch  # switch_1
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
@@ -41,12 +43,29 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %13:void = call %main_1
-    %14:vec4<f32> = load %x_GLF_color
-    %15:main_out = construct %14
-    ret %15
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %16:void = call %main_1
+    %17:vec4<f32> = load %x_GLF_color
+    %18:main_out = construct %17
+    %19:bool = load %continue_execution
+    %20:bool = eq %19, false
+    if %20 [t: $B7] {  # if_2
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %18
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %22:i32 = convert %value
+    %23:bool = gte %value, -2147483648.0f
+    %24:i32 = select -2147483648i, %22, %23
+    %25:bool = lte %value, 2147483520.0f
+    %26:i32 = select 2147483647i, %24, %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.msl
index 3d9e5ca..4548ee8 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-if-discard/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,32 +8,36 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %4:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_25:f32 = load_vector_element %4, 1u
-    %6:i32 = convert %x_25
-    switch %6 [c: (-1i, %b3), c: (default, %b4)] {  # switch_1
-      %b3 = block {  # case
-        %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_30:f32 = load_vector_element %7, 1u
-        %9:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_32:f32 = load_vector_element %9, 0u
-        %11:bool = gt %x_30, %x_32
-        if %11 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            discard
+%main_1 = func():void {
+  $B2: {
+    %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+    %6:f32 = load_vector_element %5, 1u
+    %x_25:f32 = let %6
+    %8:i32 = call %tint_f32_to_i32, %x_25
+    switch %8 [c: (-1i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        %10:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %11:f32 = load_vector_element %10, 1u
+        %x_30:f32 = let %11
+        %13:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %14:f32 = load_vector_element %13, 0u
+        %x_32:f32 = let %14
+        %16:bool = gt %x_30, %x_32
+        if %16 [t: $B5] {  # if_1
+          $B5: {  # true
+            store %continue_execution, false
             exit_if  # if_1
           }
         }
         exit_switch  # switch_1
       }
-      %b4 = block {  # case
+      $B4: {  # case
         exit_switch  # switch_1
       }
     }
@@ -41,12 +45,29 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b6 {
-  %b6 = block {
-    %13:void = call %main_1
-    %14:vec4<f32> = load %x_GLF_color
-    %15:main_out = construct %14
-    ret %15
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %18:void = call %main_1
+    %19:vec4<f32> = load %x_GLF_color
+    %20:main_out = construct %19
+    %21:bool = load %continue_execution
+    %22:bool = eq %21, false
+    if %22 [t: $B7] {  # if_2
+      $B7: {  # true
+        terminate_invocation
+      }
+    }
+    ret %20
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B8: {
+    %24:i32 = convert %value
+    %25:bool = gte %value, -2147483648.0f
+    %26:i32 = select -2147483648i, %24, %25
+    %27:bool = lte %value, 2147483520.0f
+    %28:i32 = select 2147483647i, %26, %27
+    ret %28
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.msl
index dc1f239..4f8a581 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:f32 @offset(0)
 }
 
@@ -8,62 +8,74 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%merge_ = func():i32 -> %b2 {
-  %b2 = block {
+%merge_ = func():i32 {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_6, 0u
     %5:f32 = load %4
     %6:bool = lt %5, 0.0f
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %6 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 0i
       }
     }
     ret 0i
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %res:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
         %9:ptr<uniform, f32, read> = access %x_6, 0u
-        %x_32:f32 = load %9
-        %11:i32 = convert %x_32
-        switch %11 [c: (0i, %b7), c: (default, %b8)] {  # switch_1
-          %b7 = block {  # case
+        %10:f32 = load %9
+        %x_32:f32 = let %10
+        %12:i32 = call %tint_f32_to_i32, %x_32
+        switch %12 [c: (0i, $B7), c: (default, $B8)] {  # switch_1
+          $B7: {  # case
             ret
           }
-          %b8 = block {  # case
+          $B8: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        break_if true %b5
+      $B6: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B5]
       }
     }
-    %x_8:i32 = call %merge_
+    %14:i32 = call %merge_
+    %x_8:i32 = let %14
     store %res, %x_8
-    %13:i32 = load %res
-    %14:f32 = convert %13
-    %15:vec4<f32> = construct %14
-    store %x_GLF_color, %15
+    %16:i32 = load %res
+    %17:f32 = convert %16
+    %18:vec4<f32> = construct %17
+    store %x_GLF_color, %18
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %17:void = call %main_1
-    %18:vec4<f32> = load %x_GLF_color
-    %19:main_out = construct %18
-    ret %19
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %20:void = call %main_1
+    %21:vec4<f32> = load %x_GLF_color
+    %22:main_out = construct %21
+    ret %22
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %24:i32 = convert %value
+    %25:bool = gte %value, -2147483648.0f
+    %26:i32 = select -2147483648i, %24, %25
+    %27:bool = lte %value, 2147483520.0f
+    %28:i32 = select 2147483647i, %26, %27
+    ret %28
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.msl
index 4673466..832d90e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-inside-while-always-return/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   zero:f32 @offset(0)
 }
 
@@ -8,62 +8,77 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%merge_ = func():i32 -> %b2 {
-  %b2 = block {
+%merge_ = func():i32 {
+  $B2: {
     %4:ptr<uniform, f32, read> = access %x_6, 0u
-    %x_40:f32 = load %4
-    %6:bool = lt %x_40, 0.0f
-    if %6 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %5:f32 = load %4
+    %x_40:f32 = let %5
+    %7:bool = lt %x_40, 0.0f
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
         ret 0i
       }
     }
     ret 0i
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %res:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %9:ptr<uniform, f32, read> = access %x_6, 0u
-        %x_32:f32 = load %9
-        %11:i32 = convert %x_32
-        switch %11 [c: (0i, %b7), c: (default, %b8)] {  # switch_1
-          %b7 = block {  # case
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %10:ptr<uniform, f32, read> = access %x_6, 0u
+        %11:f32 = load %10
+        %x_32:f32 = let %11
+        %13:i32 = call %tint_f32_to_i32, %x_32
+        switch %13 [c: (0i, $B7), c: (default, $B8)] {  # switch_1
+          $B7: {  # case
             ret
           }
-          %b8 = block {  # case
+          $B8: {  # case
             exit_switch  # switch_1
           }
         }
-        continue %b6
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        break_if true %b5
+      $B6: {  # continuing
+        break_if true  # -> [t: exit_loop loop_1, f: $B5]
       }
     }
-    %x_8:i32 = call %merge_
+    %15:i32 = call %merge_
+    %x_8:i32 = let %15
     store %res, %x_8
-    %x_9:i32 = load %res
-    %x_36:f32 = convert %x_9
-    %15:vec4<f32> = construct %x_36, %x_36, %x_36, %x_36
-    store %x_GLF_color, %15
+    %17:i32 = load %res
+    %x_9:i32 = let %17
+    %19:f32 = convert %x_9
+    %x_36:f32 = let %19
+    %21:vec4<f32> = construct %x_36, %x_36, %x_36, %x_36
+    store %x_GLF_color, %21
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %17:void = call %main_1
-    %18:vec4<f32> = load %x_GLF_color
-    %19:main_out = construct %18
-    ret %19
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %27:i32 = convert %value
+    %28:bool = gte %value, -2147483648.0f
+    %29:i32 = select -2147483648i, %27, %28
+    %30:bool = lte %value, 2147483520.0f
+    %31:i32 = select 2147483647i, %29, %30
+    ret %31
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.msl
index 2b8690e6..e186c30 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.spvasm.expected.ir.msl
@@ -1,6 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    switch 0i [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        if false [t: $B5] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+        }
+        exit_switch  # switch_1
+      }
+      $B4: {  # case
+        exit_switch  # switch_1
+      }
+    }
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %4:void = call %main_1
+    %5:vec4<f32> = load %x_GLF_color
+    %6:main_out = construct %5
+    ret %6
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.msl
index 2b8690e6..e186c30 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/switch-with-empty-if-false/0.wgsl.expected.ir.msl
@@ -1,6 +1,42 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Switch
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    switch 0i [c: (0i, $B3), c: (default, $B4)] {  # switch_1
+      $B3: {  # case
+        if false [t: $B5] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+        }
+        exit_switch  # switch_1
+      }
+      $B4: {  # case
+        exit_switch  # switch_1
+      }
+    }
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B6: {
+    %4:void = call %main_1
+    %5:vec4<f32> = load %x_GLF_color
+    %6:main_out = construct %5
+    ret %6
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.msl
index 2e88a5f..082755f 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.spvasm.expected.ir.msl
@@ -1,6 +1,69 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_37:ptr<function, mat4x3<f32>, read_write> = var
+    %x_38:ptr<function, mat4x3<f32>, read_write> = var
+    %x_48:ptr<function, vec3<f32>, read_write> = var
+    %7:f32 = load_vector_element %gl_FragCoord, 1u
+    %8:bool = lt %7, 1.0f
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_38, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_37, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
+        %9:mat4x3<f32> = load %x_37
+        store %x_38, %9
+        exit_if  # if_1
+      }
+    }
+    %10:mat4x3<f32> = load %x_38
+    %11:mat3x4<f32> = transpose %10
+    %12:f32 = access %11, 0u, 1u
+    %x_40:f32 = let %12
+    loop [b: $B5] {  # loop_1
+      $B5: {  # body
+        %14:bool = gt %x_40, 1.0f
+        if %14 [t: $B6] {  # if_2
+          $B6: {  # true
+            store %x_48, vec3<f32>(0.0f)
+            exit_loop  # loop_1
+          }
+        }
+        store %x_48, vec3<f32>(1.0f, 0.0f, 0.0f)
+        exit_loop  # loop_1
+      }
+    }
+    %15:f32 = load_vector_element %x_48, 0u
+    %16:f32 = load_vector_element %x_48, 1u
+    %17:f32 = load_vector_element %x_48, 2u
+    %18:vec4<f32> = construct %15, %16, %17, 1.0f
+    store %x_GLF_color, %18
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.msl
index 2e88a5f..5da7ab3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/transpose-rectangular-matrix/0.wgsl.expected.ir.msl
@@ -1,6 +1,73 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_37:ptr<function, mat4x3<f32>, read_write> = var
+    %x_38_phi:ptr<function, mat4x3<f32>, read_write> = var
+    %x_48_phi:ptr<function, vec3<f32>, read_write> = var
+    %7:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_32:f32 = let %7
+    %9:bool = lt %x_32, 1.0f
+    if %9 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        store %x_38_phi, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %x_37, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
+        %10:mat4x3<f32> = load %x_37
+        store %x_38_phi, %10
+        exit_if  # if_1
+      }
+    }
+    %11:mat4x3<f32> = load %x_38_phi
+    %x_38:mat4x3<f32> = let %11
+    %13:mat3x4<f32> = transpose %x_38
+    %14:f32 = access %13, 0u, 1u
+    %x_40:f32 = let %14
+    loop [b: $B5] {  # loop_1
+      $B5: {  # body
+        %16:bool = gt %x_40, 1.0f
+        if %16 [t: $B6] {  # if_2
+          $B6: {  # true
+            store %x_48_phi, vec3<f32>(0.0f)
+            exit_loop  # loop_1
+          }
+        }
+        store %x_48_phi, vec3<f32>(1.0f, 0.0f, 0.0f)
+        exit_loop  # loop_1
+      }
+    }
+    %17:vec3<f32> = load %x_48_phi
+    %x_48:vec3<f32> = let %17
+    %19:f32 = access %x_48, 0u
+    %20:f32 = access %x_48, 1u
+    %21:f32 = access %x_48, 2u
+    %22:vec4<f32> = construct %19, %20, %21, 1.0f
+    store %x_GLF_color, %22
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %25:void = call %main_1
+    %26:vec4<f32> = load %x_GLF_color
+    %27:main_out = construct %26
+    ret %27
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.msl
index 83dd560..04758a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %odd_index:ptr<function, i32, read_write> = var
     %even_index:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -23,162 +24,170 @@
     %x_59:ptr<function, bool, read_write> = var
     %x_60:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    %11:f32 = load_vector_element %gl_FragCoord, 0u
-    %x_54:bool = lt %11, 128.0f
+    %12:f32 = load_vector_element %gl_FragCoord, 0u
+    %13:bool = lt %12, 128.0f
+    %x_54:bool = let %13
     store %x_60, %x_54
-    if %x_54 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %13:f32 = load_vector_element %gl_FragCoord, 1u
-        %14:bool = lt %13, 128.0f
-        store %x_59, %14
-        %15:bool = load %x_59
-        store %x_60, %15
+    if %x_54 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:f32 = load_vector_element %gl_FragCoord, 1u
+        %16:bool = lt %15, 128.0f
+        store %x_59, %16
+        %17:bool = load %x_59
+        store %x_60, %17
         exit_if  # if_1
       }
     }
-    %16:bool = load %x_60
-    if %16 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %18:bool = load %x_60
+    if %18 [t: $B4] {  # if_2
+      $B4: {  # true
         ret
       }
     }
     store %odd_index, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %17:i32 = load %odd_index
-        %18:bool = lte %17, 1i
-        if %18 [t: %b7, f: %b8] {  # if_3
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %19:i32 = load %odd_index
+        %20:bool = lte %19, 1i
+        if %20 [t: $B7, f: $B8] {  # if_3
+          $B7: {  # true
             exit_if  # if_3
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %19:f32 = load_vector_element %x_GLF_color, 0u
-        %20:f32 = add %19, 0.25f
-        store_vector_element %x_GLF_color, 0u, %20
-        %21:i32 = load %odd_index
-        %22:i32 = add %21, 1i
-        store %odd_index, %22
-        continue %b6
+        %21:f32 = load_vector_element %x_GLF_color, 0u
+        %22:f32 = add %21, 0.25f
+        store_vector_element %x_GLF_color, 0u, %22
+        %23:i32 = load %odd_index
+        %24:i32 = add %23, 1i
+        store %odd_index, %24
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
     store %even_index, 1i
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %23:i32 = load %even_index
-        %24:bool = gte %23, 0i
-        if %24 [t: %b11, f: %b12] {  # if_4
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %25:i32 = load %even_index
+        %26:bool = gte %25, 0i
+        if %26 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
             exit_if  # if_4
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %25:f32 = load_vector_element %x_GLF_color, 0u
-        %26:f32 = add %25, 0.25f
-        store_vector_element %x_GLF_color, 0u, %26
-        %27:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %28:f32 = load_vector_element %27, 0u
+        %27:f32 = load_vector_element %x_GLF_color, 0u
+        %28:f32 = add %27, 0.25f
+        store_vector_element %x_GLF_color, 0u, %28
         %29:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %30:f32 = load_vector_element %29, 1u
-        %31:bool = gt %28, %30
-        if %31 [t: %b13] {  # if_5
-          %b13 = block {  # true
-            continue %b10
+        %30:f32 = load_vector_element %29, 0u
+        %31:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %32:f32 = load_vector_element %31, 1u
+        %33:bool = gt %30, %32
+        if %33 [t: $B13] {  # if_5
+          $B13: {  # true
+            continue  # -> $B10
           }
         }
-        %32:i32 = load %even_index
-        %33:bool = gte %32, 1i
-        if %33 [t: %b14] {  # if_6
-          %b14 = block {  # true
-            discard
+        %34:i32 = load %even_index
+        %35:bool = gte %34, 1i
+        if %35 [t: $B14] {  # if_6
+          $B14: {  # true
+            store %continue_execution, false
             exit_if  # if_6
           }
         }
         store %j, 1i
-        loop [b: %b15, c: %b16] {  # loop_3
-          %b15 = block {  # body
-            if true [t: %b17, f: %b18] {  # if_7
-              %b17 = block {  # true
+        loop [b: $B15, c: $B16] {  # loop_3
+          $B15: {  # body
+            if true [t: $B17, f: $B18] {  # if_7
+              $B17: {  # true
                 exit_if  # if_7
               }
-              %b18 = block {  # false
-                exit_loop  # loop_3
-              }
-            }
-            %34:i32 = load %ll
-            %35:bool = gte %34, 3i
-            if %35 [t: %b19] {  # if_8
-              %b19 = block {  # true
+              $B18: {  # false
                 exit_loop  # loop_3
               }
             }
             %36:i32 = load %ll
-            %37:i32 = add %36, 1i
-            store %ll, %37
-            %38:i32 = load %j
-            %39:u32 = bitcast %38
-            %40:bool = lt %39, 1u
-            if %40 [t: %b20] {  # if_9
-              %b20 = block {  # true
-                continue %b16
-              }
-            }
-            %41:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %42:f32 = load_vector_element %41, 0u
-            %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %44:f32 = load_vector_element %43, 1u
-            %45:bool = gt %42, %44
-            if %45 [t: %b21] {  # if_10
-              %b21 = block {  # true
+            %37:bool = gte %36, 3i
+            if %37 [t: $B19] {  # if_8
+              $B19: {  # true
                 exit_loop  # loop_3
               }
             }
-            continue %b16
+            %38:i32 = load %ll
+            %39:i32 = add %38, 1i
+            store %ll, %39
+            %40:i32 = load %j
+            %41:u32 = bitcast %40
+            %42:bool = lt %41, 1u
+            if %42 [t: $B20] {  # if_9
+              $B20: {  # true
+                continue  # -> $B16
+              }
+            }
+            %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %44:f32 = load_vector_element %43, 0u
+            %45:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %46:f32 = load_vector_element %45, 1u
+            %47:bool = gt %44, %46
+            if %47 [t: $B21] {  # if_10
+              $B21: {  # true
+                exit_loop  # loop_3
+              }
+            }
+            continue  # -> $B16
           }
-          %b16 = block {  # continuing
-            %46:i32 = load %j
-            %47:i32 = add %46, 1i
-            store %j, %47
-            next_iteration %b15
+          $B16: {  # continuing
+            %48:i32 = load %j
+            %49:i32 = add %48, 1i
+            store %j, %49
+            next_iteration  # -> $B15
           }
         }
-        %48:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %49:f32 = load_vector_element %48, 0u
         %50:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %51:f32 = load_vector_element %50, 1u
-        %52:bool = gt %49, %51
-        if %52 [t: %b22] {  # if_11
-          %b22 = block {  # true
+        %51:f32 = load_vector_element %50, 0u
+        %52:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %53:f32 = load_vector_element %52, 1u
+        %54:bool = gt %51, %53
+        if %54 [t: $B22] {  # if_11
+          $B22: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_11
           }
         }
-        %53:i32 = load %even_index
-        %54:i32 = sub %53, 1i
-        store %even_index, %54
-        continue %b10
+        %55:i32 = load %even_index
+        %56:i32 = sub %55, 1i
+        store %even_index, %56
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b23 {
-  %b23 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B23: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+    %59:void = call %main_1
+    %60:vec4<f32> = load %x_GLF_color
+    %61:main_out = construct %60
+    %62:bool = load %continue_execution
+    %63:bool = eq %62, false
+    if %63 [t: $B24] {  # if_12
+      $B24: {  # true
+        terminate_invocation
+      }
+    }
+    ret %61
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.msl
index 243c928..6c3ed04 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-2-iteration-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %odd_index:ptr<function, i32, read_write> = var
     %even_index:ptr<function, i32, read_write> = var
     %j:ptr<function, i32, read_write> = var
@@ -23,162 +24,190 @@
     %x_59:ptr<function, bool, read_write> = var
     %x_60_phi:ptr<function, bool, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    %x_53:f32 = load_vector_element %gl_FragCoord, 0u
-    %x_54:bool = lt %x_53, 128.0f
+    %12:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_53:f32 = let %12
+    %14:bool = lt %x_53, 128.0f
+    %x_54:bool = let %14
     store %x_60_phi, %x_54
-    if %x_54 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_58:f32 = load_vector_element %gl_FragCoord, 1u
-        %14:bool = lt %x_58, 128.0f
-        store %x_59, %14
-        %15:bool = load %x_59
-        store %x_60_phi, %15
+    if %x_54 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_58:f32 = let %16
+        %18:bool = lt %x_58, 128.0f
+        store %x_59, %18
+        %19:bool = load %x_59
+        store %x_60_phi, %19
         exit_if  # if_1
       }
     }
-    %x_60:bool = load %x_60_phi
-    if %x_60 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    %20:bool = load %x_60_phi
+    %x_60:bool = let %20
+    if %x_60 [t: $B4] {  # if_2
+      $B4: {  # true
         ret
       }
     }
     store %odd_index, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_11:i32 = load %odd_index
-        %18:bool = lte %x_11, 1i
-        if %18 [t: %b7, f: %b8] {  # if_3
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %22:i32 = load %odd_index
+        %x_11:i32 = let %22
+        %24:bool = lte %x_11, 1i
+        if %24 [t: $B7, f: $B8] {  # if_3
+          $B7: {  # true
             exit_if  # if_3
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_70:f32 = load_vector_element %x_GLF_color, 0u
-        %20:f32 = add %x_70, 0.25f
-        store_vector_element %x_GLF_color, 0u, %20
-        %x_12:i32 = load %odd_index
-        %22:i32 = add %x_12, 1i
-        store %odd_index, %22
-        continue %b6
+        %25:f32 = load_vector_element %x_GLF_color, 0u
+        %x_70:f32 = let %25
+        %27:f32 = add %x_70, 0.25f
+        store_vector_element %x_GLF_color, 0u, %27
+        %28:i32 = load %odd_index
+        %x_12:i32 = let %28
+        %30:i32 = add %x_12, 1i
+        store %odd_index, %30
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
+      $B6: {  # continuing
+        next_iteration  # -> $B5
       }
     }
     store %even_index, 1i
-    loop [b: %b9, c: %b10] {  # loop_2
-      %b9 = block {  # body
-        %x_14:i32 = load %even_index
-        %24:bool = gte %x_14, 0i
-        if %24 [t: %b11, f: %b12] {  # if_4
-          %b11 = block {  # true
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %31:i32 = load %even_index
+        %x_14:i32 = let %31
+        %33:bool = gte %x_14, 0i
+        if %33 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
             exit_if  # if_4
           }
-          %b12 = block {  # false
+          $B12: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_80:f32 = load_vector_element %x_GLF_color, 0u
-        %26:f32 = add %x_80, 0.25f
-        store_vector_element %x_GLF_color, 0u, %26
-        %27:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_84:f32 = load_vector_element %27, 0u
-        %29:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_86:f32 = load_vector_element %29, 1u
-        %31:bool = gt %x_84, %x_86
-        if %31 [t: %b13] {  # if_5
-          %b13 = block {  # true
-            continue %b10
+        %34:f32 = load_vector_element %x_GLF_color, 0u
+        %x_80:f32 = let %34
+        %36:f32 = add %x_80, 0.25f
+        store_vector_element %x_GLF_color, 0u, %36
+        %37:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %38:f32 = load_vector_element %37, 0u
+        %x_84:f32 = let %38
+        %40:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %41:f32 = load_vector_element %40, 1u
+        %x_86:f32 = let %41
+        %43:bool = gt %x_84, %x_86
+        if %43 [t: $B13] {  # if_5
+          $B13: {  # true
+            continue  # -> $B10
           }
         }
-        %x_15:i32 = load %even_index
-        %33:bool = gte %x_15, 1i
-        if %33 [t: %b14] {  # if_6
-          %b14 = block {  # true
-            discard
+        %44:i32 = load %even_index
+        %x_15:i32 = let %44
+        %46:bool = gte %x_15, 1i
+        if %46 [t: $B14] {  # if_6
+          $B14: {  # true
+            store %continue_execution, false
             exit_if  # if_6
           }
         }
         store %j, 1i
-        loop [b: %b15, c: %b16] {  # loop_3
-          %b15 = block {  # body
-            if true [t: %b17, f: %b18] {  # if_7
-              %b17 = block {  # true
+        loop [b: $B15, c: $B16] {  # loop_3
+          $B15: {  # body
+            if true [t: $B17, f: $B18] {  # if_7
+              $B17: {  # true
                 exit_if  # if_7
               }
-              %b18 = block {  # false
+              $B18: {  # false
                 exit_loop  # loop_3
               }
             }
-            %x_16:i32 = load %ll
-            %35:bool = gte %x_16, 3i
-            if %35 [t: %b19] {  # if_8
-              %b19 = block {  # true
+            %47:i32 = load %ll
+            %x_16:i32 = let %47
+            %49:bool = gte %x_16, 3i
+            if %49 [t: $B19] {  # if_8
+              $B19: {  # true
                 exit_loop  # loop_3
               }
             }
-            %x_17:i32 = load %ll
-            %37:i32 = add %x_17, 1i
-            store %ll, %37
-            %x_19:i32 = load %j
-            %39:u32 = bitcast %x_19
-            %40:bool = lt %39, 1u
-            if %40 [t: %b20] {  # if_9
-              %b20 = block {  # true
-                continue %b16
+            %50:i32 = load %ll
+            %x_17:i32 = let %50
+            %52:i32 = add %x_17, 1i
+            store %ll, %52
+            %53:i32 = load %j
+            %x_19:i32 = let %53
+            %55:u32 = bitcast %x_19
+            %56:bool = lt %55, 1u
+            if %56 [t: $B20] {  # if_9
+              $B20: {  # true
+                continue  # -> $B16
               }
             }
-            %41:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %x_106:f32 = load_vector_element %41, 0u
-            %43:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-            %x_108:f32 = load_vector_element %43, 1u
-            %45:bool = gt %x_106, %x_108
-            if %45 [t: %b21] {  # if_10
-              %b21 = block {  # true
+            %57:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %58:f32 = load_vector_element %57, 0u
+            %x_106:f32 = let %58
+            %60:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+            %61:f32 = load_vector_element %60, 1u
+            %x_108:f32 = let %61
+            %63:bool = gt %x_106, %x_108
+            if %63 [t: $B21] {  # if_10
+              $B21: {  # true
                 exit_loop  # loop_3
               }
             }
-            continue %b16
+            continue  # -> $B16
           }
-          %b16 = block {  # continuing
-            %x_20:i32 = load %j
-            %47:i32 = add %x_20, 1i
-            store %j, %47
-            next_iteration %b15
+          $B16: {  # continuing
+            %64:i32 = load %j
+            %x_20:i32 = let %64
+            %66:i32 = add %x_20, 1i
+            store %j, %66
+            next_iteration  # -> $B15
           }
         }
-        %48:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_113:f32 = load_vector_element %48, 0u
-        %50:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
-        %x_115:f32 = load_vector_element %50, 1u
-        %52:bool = gt %x_113, %x_115
-        if %52 [t: %b22] {  # if_11
-          %b22 = block {  # true
+        %67:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %68:f32 = load_vector_element %67, 0u
+        %x_113:f32 = let %68
+        %70:ptr<uniform, vec2<f32>, read> = access %x_8, 0u
+        %71:f32 = load_vector_element %70, 1u
+        %x_115:f32 = let %71
+        %73:bool = gt %x_113, %x_115
+        if %73 [t: $B22] {  # if_11
+          $B22: {  # true
             store %x_GLF_color, vec4<f32>(1.0f)
             exit_if  # if_11
           }
         }
-        %x_22:i32 = load %even_index
-        %54:i32 = sub %x_22, 1i
-        store %even_index, %54
-        continue %b10
+        %74:i32 = load %even_index
+        %x_22:i32 = let %74
+        %76:i32 = sub %x_22, 1i
+        store %even_index, %76
+        continue  # -> $B10
       }
-      %b10 = block {  # continuing
-        next_iteration %b9
+      $B10: {  # continuing
+        next_iteration  # -> $B9
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b23 {
-  %b23 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B23: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %57:void = call %main_1
-    %58:vec4<f32> = load %x_GLF_color
-    %59:main_out = construct %58
-    ret %59
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    %82:bool = load %continue_execution
+    %83:bool = eq %82, false
+    if %83 [t: $B24] {  # if_12
+      $B24: {  # true
+        terminate_invocation
+      }
+    }
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.msl
index 8f9f4b8..b8358b0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(16) {
   matrix_a_uni:mat4x4<f32> @offset(0)
 }
 
@@ -8,94 +8,96 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x:ptr<function, i32, read_write> = var
     %matrix_u:ptr<function, vec4<f32>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %matrix_b:ptr<function, vec4<f32>, read_write> = var
     %x_42:ptr<function, vec4<f32>, read_write> = var
     store %x, 4i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %9:i32 = load %x
         %10:bool = gte %9, 1i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %10 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_11:i32 = load %x
+        %11:i32 = load %x
+        %x_11:i32 = let %11
         store_vector_element %matrix_u, %x_11, 1.0f
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %12:i32 = load %x
-        %13:i32 = sub %12, 1i
-        store %x, %13
-        next_iteration %b3
+      $B4: {  # continuing
+        %13:i32 = load %x
+        %14:i32 = sub %13, 1i
+        store %x, %14
+        next_iteration  # -> $B3
       }
     }
     store %b, 4i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %14:ptr<uniform, vec4<f32>, read> = access %x_8, 0u, 0i
-        %15:f32 = load_vector_element %14, 0u
-        %16:bool = lt %15, -1.0f
-        if %16 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %15:ptr<uniform, vec4<f32>, read> = access %x_8, 0u, 0i
+        %16:f32 = load_vector_element %15, 0u
+        %17:bool = lt %16, -1.0f
+        if %17 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_14:i32 = load %b
         %18:i32 = load %b
-        %19:bool = gt %18, 1i
-        if %19 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
-            %20:vec4<f32> = load %matrix_b
-            %21:vec4<f32> = load %matrix_b
-            %22:vec4<f32> = min %20, %21
-            store %x_42, %22
+        %x_14:i32 = let %18
+        %20:i32 = load %b
+        %21:bool = gt %20, 1i
+        if %21 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
+            %22:vec4<f32> = load %matrix_b
+            %23:vec4<f32> = load %matrix_b
+            %24:vec4<f32> = min %22, %23
+            store %x_42, %24
             exit_if  # if_3
           }
-          %b12 = block {  # false
-            %23:vec4<f32> = load %matrix_u
-            store %x_42, %23
+          $B12: {  # false
+            %25:vec4<f32> = load %matrix_u
+            store %x_42, %25
             exit_if  # if_3
           }
         }
-        %24:f32 = load_vector_element %x_42, 1u
-        store_vector_element %matrix_b, %x_14, %24
-        continue %b8
+        %26:f32 = load_vector_element %x_42, 1u
+        store_vector_element %matrix_b, %x_14, %26
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %25:i32 = load %b
-        %26:i32 = sub %25, 1i
-        store %b, %26
-        next_iteration %b7
+      $B8: {  # continuing
+        %27:i32 = load %b
+        %28:i32 = sub %27, 1i
+        store %b, %28
+        next_iteration  # -> $B7
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %30:void = call %main_1
+    %31:vec4<f32> = load %x_GLF_color
+    %32:main_out = construct %31
+    ret %32
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.msl
index f0cc327..f217e5b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-matrix/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(16) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(16) {
   matrix_a_uni:mat4x4<f32> @offset(0)
 }
 
@@ -8,94 +8,105 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_8:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x:ptr<function, i32, read_write> = var
     %matrix_u:ptr<function, vec4<f32>, read_write> = var
     %b:ptr<function, i32, read_write> = var
     %matrix_b:ptr<function, vec4<f32>, read_write> = var
     %x_42:ptr<function, vec4<f32>, read_write> = var
     store %x, 4i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_10:i32 = load %x
-        %10:bool = gte %x_10, 1i
-        if %10 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %9:i32 = load %x
+        %x_10:i32 = let %9
+        %11:bool = gte %x_10, 1i
+        if %11 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_11:i32 = load %x
+        %12:i32 = load %x
+        %x_11:i32 = let %12
         store_vector_element %matrix_u, %x_11, 1.0f
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_12:i32 = load %x
-        %13:i32 = sub %x_12, 1i
-        store %x, %13
-        next_iteration %b3
+      $B4: {  # continuing
+        %14:i32 = load %x
+        %x_12:i32 = let %14
+        %16:i32 = sub %x_12, 1i
+        store %x, %16
+        next_iteration  # -> $B3
       }
     }
     store %b, 4i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
-        %14:ptr<uniform, vec4<f32>, read> = access %x_8, 0u, 0i
-        %x_55:f32 = load_vector_element %14, 0u
-        %16:bool = lt %x_55, -1.0f
-        if %16 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
+        %17:ptr<uniform, vec4<f32>, read> = access %x_8, 0u, 0i
+        %18:f32 = load_vector_element %17, 0u
+        %x_55:f32 = let %18
+        %20:bool = lt %x_55, -1.0f
+        if %20 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_14:i32 = load %b
-        %x_15:i32 = load %b
-        %19:bool = gt %x_15, 1i
-        if %19 [t: %b11, f: %b12] {  # if_3
-          %b11 = block {  # true
-            %x_62:vec4<f32> = load %matrix_b
-            %x_63:vec4<f32> = load %matrix_b
-            %22:vec4<f32> = min %x_62, %x_63
-            store %x_42, %22
+        %21:i32 = load %b
+        %x_14:i32 = let %21
+        %23:i32 = load %b
+        %x_15:i32 = let %23
+        %25:bool = gt %x_15, 1i
+        if %25 [t: $B11, f: $B12] {  # if_3
+          $B11: {  # true
+            %26:vec4<f32> = load %matrix_b
+            %x_62:vec4<f32> = let %26
+            %28:vec4<f32> = load %matrix_b
+            %x_63:vec4<f32> = let %28
+            %30:vec4<f32> = min %x_62, %x_63
+            store %x_42, %30
             exit_if  # if_3
           }
-          %b12 = block {  # false
-            %x_65:vec4<f32> = load %matrix_u
+          $B12: {  # false
+            %31:vec4<f32> = load %matrix_u
+            %x_65:vec4<f32> = let %31
             store %x_42, %x_65
             exit_if  # if_3
           }
         }
-        %x_67:f32 = load_vector_element %x_42, 1u
+        %33:f32 = load_vector_element %x_42, 1u
+        %x_67:f32 = let %33
         store_vector_element %matrix_b, %x_14, %x_67
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %x_16:i32 = load %b
-        %26:i32 = sub %x_16, 1i
-        store %b, %26
-        next_iteration %b7
+      $B8: {  # continuing
+        %35:i32 = load %b
+        %x_16:i32 = let %35
+        %37:i32 = sub %x_16, 1i
+        store %b, %37
+        next_iteration  # -> $B7
       }
     }
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b13 {
-  %b13 = block {
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+%tint_symbol = @fragment func():main_out {
+  $B13: {
+    %39:void = call %main_1
+    %40:vec4<f32> = load %x_GLF_color
+    %41:main_out = construct %40
+    ret %41
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.msl
index 2436908..4b270a7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -13,13 +13,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_33:ptr<function, StructType, read_write> = var
     %x_9:ptr<function, i32, read_write> = var
     %x_38:ptr<function, i32, read_write> = var
@@ -27,93 +27,104 @@
     %x_10:ptr<function, i32, read_write> = var
     store %x_33, StructType(vec3<f32>(0.0f), vec4<bool>(false))
     store %x_9, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_34:ptr<function, StructType, read_write> = var
         %x_7:ptr<function, i32, read_write> = var
         %11:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
         %12:f32 = load_vector_element %11, 1u
-        %13:i32 = convert %12
+        %13:i32 = call %tint_f32_to_i32, %12
         store %x_38, %13
-        %14:i32 = load %x_9
-        %15:i32 = load %x_38
-        %16:bool = lt %14, %15
-        if %16 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %15:i32 = load %x_9
+        %16:i32 = load %x_38
+        %17:bool = lt %15, %16
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %17:StructType = load %x_33
-        store %x_34, %17
-        %18:ptr<function, vec3<f32>, read_write> = access %x_34, 0u
-        store %18, vec3<f32>(1.0f, 0.0f, 0.0f)
-        %19:i32 = load %x_9
-        %20:i32 = add %19, 1i
-        store %x_7, %20
-        %21:StructType = load %x_34
-        store %x_33, %21
-        %22:i32 = load %x_7
-        store %x_9, %22
-        next_iteration %b3
+      $B4: {  # continuing
+        %18:StructType = load %x_33
+        store %x_34, %18
+        %19:ptr<function, vec3<f32>, read_write> = access %x_34, 0u
+        store %19, vec3<f32>(1.0f, 0.0f, 0.0f)
+        %20:i32 = load %x_9
+        %21:i32 = add %20, 1i
+        store %x_7, %21
+        %22:StructType = load %x_34
+        store %x_33, %22
+        %23:i32 = load %x_7
+        store %x_9, %23
+        next_iteration  # -> $B3
       }
     }
-    %23:StructType = load %x_33
-    store %x_42, %23
+    %24:StructType = load %x_33
+    store %x_42, %24
     store %x_10, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_43:ptr<function, StructType, read_write> = var
         %x_8:ptr<function, i32, read_write> = var
-        %26:i32 = load %x_10
-        %27:i32 = load %x_38
-        %28:bool = lt %26, %27
-        if %28 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+        %27:i32 = load %x_10
+        %28:i32 = load %x_38
+        %29:bool = lt %27, %28
+        if %29 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %29:StructType = load %x_42
-        store %x_43, %29
-        %30:ptr<function, vec3<f32>, read_write> = access %x_43, 0u
-        store %30, vec3<f32>(1.0f, 0.0f, 0.0f)
-        %31:i32 = load %x_10
-        %32:i32 = add %31, 1i
-        store %x_8, %32
-        %33:StructType = load %x_43
-        store %x_42, %33
-        %34:i32 = load %x_8
-        store %x_10, %34
-        next_iteration %b7
+      $B8: {  # continuing
+        %30:StructType = load %x_42
+        store %x_43, %30
+        %31:ptr<function, vec3<f32>, read_write> = access %x_43, 0u
+        store %31, vec3<f32>(1.0f, 0.0f, 0.0f)
+        %32:i32 = load %x_10
+        %33:i32 = add %32, 1i
+        store %x_8, %33
+        %34:StructType = load %x_43
+        store %x_42, %34
+        %35:i32 = load %x_8
+        store %x_10, %35
+        next_iteration  # -> $B7
       }
     }
-    %35:ptr<function, vec3<f32>, read_write> = access %x_42, 0u
-    %x_47:vec3<f32> = load %35
-    %37:f32 = access %x_47, 0u
-    %38:f32 = access %x_47, 1u
-    %39:f32 = access %x_47, 2u
-    %40:vec4<f32> = construct %37, %38, %39, 1.0f
-    store %x_GLF_color, %40
+    %36:ptr<function, vec3<f32>, read_write> = access %x_42, 0u
+    %37:vec3<f32> = load %36
+    %x_47:vec3<f32> = let %37
+    %39:f32 = access %x_47, 0u
+    %40:f32 = access %x_47, 1u
+    %41:f32 = access %x_47, 2u
+    %42:vec4<f32> = construct %39, %40, %41, 1.0f
+    store %x_GLF_color, %42
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %42:void = call %main_1
-    %43:vec4<f32> = load %x_GLF_color
-    %44:main_out = construct %43
-    ret %44
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %44:void = call %main_1
+    %45:vec4<f32> = load %x_GLF_color
+    %46:main_out = construct %45
+    ret %46
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %48:i32 = convert %value
+    %49:bool = gte %value, -2147483648.0f
+    %50:i32 = select -2147483648i, %48, %49
+    %51:bool = lte %value, 2147483520.0f
+    %52:i32 = select 2147483647i, %50, %51
+    ret %52
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.msl
index 0e7ba7f..789b8e7 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-set-struct/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -13,13 +13,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_33:ptr<function, StructType, read_write> = var
     %x_38:ptr<function, i32, read_write> = var
     %x_42:ptr<function, StructType, read_write> = var
@@ -29,95 +29,109 @@
     %x_10_phi:ptr<function, i32, read_write> = var
     store %x_33_phi, StructType(vec3<f32>(0.0f), vec4<bool>(false))
     store %x_9_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_34:ptr<function, StructType, read_write> = var
         %x_7:ptr<function, i32, read_write> = var
         %13:StructType = load %x_33_phi
         store %x_33, %13
-        %x_9:i32 = load %x_9_phi
-        %15:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_37:f32 = load_vector_element %15, 1u
-        %17:i32 = convert %x_37
-        store %x_38, %17
-        %18:i32 = load %x_38
-        %19:bool = lt %x_9, %18
-        if %19 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %14:i32 = load %x_9_phi
+        %x_9:i32 = let %14
+        %16:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %17:f32 = load_vector_element %16, 1u
+        %x_37:f32 = let %17
+        %19:i32 = call %tint_f32_to_i32, %x_37
+        store %x_38, %19
+        %21:i32 = load %x_38
+        %22:bool = lt %x_9, %21
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %20:StructType = load %x_33
-        store %x_34, %20
-        %21:ptr<function, vec3<f32>, read_write> = access %x_34, 0u
-        store %21, vec3<f32>(1.0f, 0.0f, 0.0f)
-        %22:i32 = add %x_9, 1i
-        store %x_7, %22
-        %23:StructType = load %x_34
-        store %x_33_phi, %23
-        %24:i32 = load %x_7
-        store %x_9_phi, %24
-        next_iteration %b3
+      $B4: {  # continuing
+        %23:StructType = load %x_33
+        store %x_34, %23
+        %24:ptr<function, vec3<f32>, read_write> = access %x_34, 0u
+        store %24, vec3<f32>(1.0f, 0.0f, 0.0f)
+        %25:i32 = add %x_9, 1i
+        store %x_7, %25
+        %26:StructType = load %x_34
+        store %x_33_phi, %26
+        %27:i32 = load %x_7
+        store %x_9_phi, %27
+        next_iteration  # -> $B3
       }
     }
-    %25:StructType = load %x_33
-    store %x_42_phi, %25
+    %28:StructType = load %x_33
+    store %x_42_phi, %28
     store %x_10_phi, 0i
-    loop [b: %b7, c: %b8] {  # loop_2
-      %b7 = block {  # body
+    loop [b: $B7, c: $B8] {  # loop_2
+      $B7: {  # body
         %x_43:ptr<function, StructType, read_write> = var
         %x_8:ptr<function, i32, read_write> = var
-        %28:StructType = load %x_42_phi
-        store %x_42, %28
-        %x_10:i32 = load %x_10_phi
-        %30:i32 = load %x_38
-        %31:bool = lt %x_10, %30
-        if %31 [t: %b9, f: %b10] {  # if_2
-          %b9 = block {  # true
+        %31:StructType = load %x_42_phi
+        store %x_42, %31
+        %32:i32 = load %x_10_phi
+        %x_10:i32 = let %32
+        %34:i32 = load %x_38
+        %35:bool = lt %x_10, %34
+        if %35 [t: $B9, f: $B10] {  # if_2
+          $B9: {  # true
             exit_if  # if_2
           }
-          %b10 = block {  # false
+          $B10: {  # false
             exit_loop  # loop_2
           }
         }
-        continue %b8
+        continue  # -> $B8
       }
-      %b8 = block {  # continuing
-        %32:StructType = load %x_42
-        store %x_43, %32
-        %33:ptr<function, vec3<f32>, read_write> = access %x_43, 0u
-        store %33, vec3<f32>(1.0f, 0.0f, 0.0f)
-        %34:i32 = add %x_10, 1i
-        store %x_8, %34
-        %35:StructType = load %x_43
-        store %x_42_phi, %35
-        %36:i32 = load %x_8
-        store %x_10_phi, %36
-        next_iteration %b7
+      $B8: {  # continuing
+        %36:StructType = load %x_42
+        store %x_43, %36
+        %37:ptr<function, vec3<f32>, read_write> = access %x_43, 0u
+        store %37, vec3<f32>(1.0f, 0.0f, 0.0f)
+        %38:i32 = add %x_10, 1i
+        store %x_8, %38
+        %39:StructType = load %x_43
+        store %x_42_phi, %39
+        %40:i32 = load %x_8
+        store %x_10_phi, %40
+        next_iteration  # -> $B7
       }
     }
-    %37:ptr<function, vec3<f32>, read_write> = access %x_42, 0u
-    %x_47:vec3<f32> = load %37
-    %39:f32 = access %x_47, 0u
-    %40:f32 = access %x_47, 1u
-    %41:f32 = access %x_47, 2u
-    %42:vec4<f32> = construct %39, %40, %41, 1.0f
-    store %x_GLF_color, %42
+    %41:ptr<function, vec3<f32>, read_write> = access %x_42, 0u
+    %42:vec3<f32> = load %41
+    %x_47:vec3<f32> = let %42
+    %44:f32 = access %x_47, 0u
+    %45:f32 = access %x_47, 1u
+    %46:f32 = access %x_47, 2u
+    %47:vec4<f32> = construct %44, %45, %46, 1.0f
+    store %x_GLF_color, %47
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b11 {
-  %b11 = block {
-    %44:void = call %main_1
-    %45:vec4<f32> = load %x_GLF_color
-    %46:main_out = construct %45
-    ret %46
+%tint_symbol = @fragment func():main_out {
+  $B11: {
+    %49:void = call %main_1
+    %50:vec4<f32> = load %x_GLF_color
+    %51:main_out = construct %50
+    ret %51
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B12: {
+    %53:i32 = convert %value
+    %54:bool = gte %value, -2147483648.0f
+    %55:i32 = select -2147483648i, %53, %54
+    %56:bool = lte %value, 2147483520.0f
+    %57:i32 = select 2147483647i, %55, %56
+    ret %57
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.msl
index efdd3b1..12cf0aa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,113 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %GLF_live15c:ptr<function, vec4<f32>, read_write> = var
+    %GLF_live15i:ptr<function, i32, read_write> = var
+    %GLF_live15d:ptr<function, vec4<f32>, read_write> = var
+    %GLF_live15i_1:ptr<function, i32, read_write> = var
+    store %GLF_live15c, vec4<f32>(0.0f)
+    store %GLF_live15i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %GLF_live15i
+        %8:bool = lt %7, 4i
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %9:i32 = load %GLF_live15i
+        %10:bool = gte %9, 3i
+        if %10 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %11:f32 = load_vector_element %GLF_live15c, 1u
+        %12:bool = gte %11, 1.0f
+        if %12 [t: $B8] {  # if_3
+          $B8: {  # true
+            %13:i32 = load %GLF_live15i
+            %x_10:i32 = let %13
+            store_vector_element %GLF_live15c, %x_10, 1.0f
+            exit_if  # if_3
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %15:i32 = load %GLF_live15i
+        %16:i32 = add %15, 1i
+        store %GLF_live15i, %16
+        next_iteration  # -> $B3
+      }
+    }
+    store %GLF_live15d, vec4<f32>(0.0f)
+    store %GLF_live15i_1, 0i
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %17:i32 = load %GLF_live15i_1
+        %18:bool = lt %17, 4i
+        if %18 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
+            exit_if  # if_4
+          }
+          $B12: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %19:i32 = load %GLF_live15i_1
+        %20:bool = gte %19, 3i
+        if %20 [t: $B13] {  # if_5
+          $B13: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %21:f32 = load_vector_element %GLF_live15d, 1u
+        %22:bool = gte %21, 1.0f
+        if %22 [t: $B14] {  # if_6
+          $B14: {  # true
+            %23:i32 = load %GLF_live15i_1
+            %x_15:i32 = let %23
+            store_vector_element %GLF_live15d, %x_15, 1.0f
+            exit_if  # if_6
+          }
+        }
+        continue  # -> $B10
+      }
+      $B10: {  # continuing
+        %25:i32 = load %GLF_live15i_1
+        %26:i32 = add %25, 1i
+        store %GLF_live15i_1, %26
+        next_iteration  # -> $B9
+      }
+    }
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %28:void = call %main_1
+    %29:vec4<f32> = load %x_GLF_color
+    %30:main_out = construct %29
+    ret %30
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.msl
index efdd3b1..5edd50a 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-loops-with-break/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,121 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %GLF_live15c:ptr<function, vec4<f32>, read_write> = var
+    %GLF_live15i:ptr<function, i32, read_write> = var
+    %GLF_live15d:ptr<function, vec4<f32>, read_write> = var
+    %GLF_live15i_1:ptr<function, i32, read_write> = var
+    store %GLF_live15c, vec4<f32>(0.0f)
+    store %GLF_live15i, 0i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %7:i32 = load %GLF_live15i
+        %x_8:i32 = let %7
+        %9:bool = lt %x_8, 4i
+        if %9 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        %10:i32 = load %GLF_live15i
+        %x_9:i32 = let %10
+        %12:bool = gte %x_9, 3i
+        if %12 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %13:f32 = load_vector_element %GLF_live15c, 1u
+        %x_49:f32 = let %13
+        %15:bool = gte %x_49, 1.0f
+        if %15 [t: $B8] {  # if_3
+          $B8: {  # true
+            %16:i32 = load %GLF_live15i
+            %x_10:i32 = let %16
+            store_vector_element %GLF_live15c, %x_10, 1.0f
+            exit_if  # if_3
+          }
+        }
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        %18:i32 = load %GLF_live15i
+        %x_11:i32 = let %18
+        %20:i32 = add %x_11, 1i
+        store %GLF_live15i, %20
+        next_iteration  # -> $B3
+      }
+    }
+    store %GLF_live15d, vec4<f32>(0.0f)
+    store %GLF_live15i_1, 0i
+    loop [b: $B9, c: $B10] {  # loop_2
+      $B9: {  # body
+        %21:i32 = load %GLF_live15i_1
+        %x_13:i32 = let %21
+        %23:bool = lt %x_13, 4i
+        if %23 [t: $B11, f: $B12] {  # if_4
+          $B11: {  # true
+            exit_if  # if_4
+          }
+          $B12: {  # false
+            exit_loop  # loop_2
+          }
+        }
+        %24:i32 = load %GLF_live15i_1
+        %x_14:i32 = let %24
+        %26:bool = gte %x_14, 3i
+        if %26 [t: $B13] {  # if_5
+          $B13: {  # true
+            exit_loop  # loop_2
+          }
+        }
+        %27:f32 = load_vector_element %GLF_live15d, 1u
+        %x_64:f32 = let %27
+        %29:bool = gte %x_64, 1.0f
+        if %29 [t: $B14] {  # if_6
+          $B14: {  # true
+            %30:i32 = load %GLF_live15i_1
+            %x_15:i32 = let %30
+            store_vector_element %GLF_live15d, %x_15, 1.0f
+            exit_if  # if_6
+          }
+        }
+        continue  # -> $B10
+      }
+      $B10: {  # continuing
+        %32:i32 = load %GLF_live15i_1
+        %x_16:i32 = let %32
+        %34:i32 = add %x_16, 1i
+        store %GLF_live15i_1, %34
+        next_iteration  # -> $B9
+      }
+    }
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %36:void = call %main_1
+    %37:vec4<f32> = load %x_GLF_color
+    %38:main_out = construct %37
+    ret %38
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.msl
index b176b51..93dd108 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %i_2:ptr<function, i32, read_write> = var
@@ -24,92 +24,92 @@
     %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
     %9:f32 = load_vector_element %8, 1u
     %10:bool = lt %9, 0.0f
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    if %10 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %x_42:ptr<function, bool, read_write> = var
         %12:f32 = load_vector_element %gl_FragCoord, 1u
         %13:bool = lt %12, -1.0f
         store %x_42, %13
         %14:bool = load %x_42
-        if %14 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
+        if %14 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
             exit_if  # if_2
           }
-          %b6 = block {  # false
-            loop [b: %b7, c: %b8] {  # loop_1
-              %b7 = block {  # body
+          $B6: {  # false
+            loop [b: $B7, c: $B8] {  # loop_1
+              $B7: {  # body
                 %15:i32 = load %i
                 %16:bool = gte %15, 256i
-                if %16 [t: %b9] {  # if_3
-                  %b9 = block {  # true
+                if %16 [t: $B9] {  # if_3
+                  $B9: {  # true
                     exit_loop  # loop_1
                   }
                 }
-                loop [b: %b10, c: %b11] {  # loop_2
-                  %b10 = block {  # body
+                loop [b: $B10, c: $B11] {  # loop_2
+                  $B10: {  # body
                     store %i_1, 0i
-                    loop [b: %b12, c: %b13] {  # loop_3
-                      %b12 = block {  # body
+                    loop [b: $B12, c: $B13] {  # loop_3
+                      $B12: {  # body
                         %17:i32 = load %i_1
                         %18:bool = lt %17, 1i
-                        if %18 [t: %b14, f: %b15] {  # if_4
-                          %b14 = block {  # true
+                        if %18 [t: $B14, f: $B15] {  # if_4
+                          $B14: {  # true
                             exit_if  # if_4
                           }
-                          %b15 = block {  # false
+                          $B15: {  # false
                             exit_loop  # loop_3
                           }
                         }
                         %19:bool = load %x_42
-                        if %19 [t: %b16] {  # if_5
-                          %b16 = block {  # true
+                        if %19 [t: $B16] {  # if_5
+                          $B16: {  # true
                             store %i_2, 0i
-                            loop [b: %b17, c: %b18] {  # loop_4
-                              %b17 = block {  # body
+                            loop [b: $B17, c: $B18] {  # loop_4
+                              $B17: {  # body
                                 %20:i32 = load %i_2
                                 %21:bool = lt %20, 1i
-                                if %21 [t: %b19, f: %b20] {  # if_6
-                                  %b19 = block {  # true
+                                if %21 [t: $B19, f: $B20] {  # if_6
+                                  $B19: {  # true
                                     exit_if  # if_6
                                   }
-                                  %b20 = block {  # false
+                                  $B20: {  # false
                                     exit_loop  # loop_4
                                   }
                                 }
-                                continue %b18
+                                continue  # -> $B18
                               }
-                              %b18 = block {  # continuing
+                              $B18: {  # continuing
                                 %22:i32 = load %i_2
                                 %23:i32 = add %22, 1i
                                 store %i_2, %23
-                                next_iteration %b17
+                                next_iteration  # -> $B17
                               }
                             }
-                            continue %b13
+                            continue  # -> $B13
                           }
                         }
                         ret
                       }
-                      %b13 = block {  # continuing
+                      $B13: {  # continuing
                         %24:i32 = load %i_1
                         %25:i32 = add %24, 1i
                         store %i_1, %25
-                        next_iteration %b12
+                        next_iteration  # -> $B12
                       }
                     }
-                    continue %b11
+                    continue  # -> $B11
                   }
-                  %b11 = block {  # continuing
-                    break_if true %b10
+                  $B11: {  # continuing
+                    break_if true  # -> [t: exit_loop loop_2, f: $B10]
                   }
                 }
-                continue %b8
+                continue  # -> $B8
               }
-              %b8 = block {  # continuing
-                break_if true %b7
+              $B8: {  # continuing
+                break_if true  # -> [t: exit_loop loop_1, f: $B7]
               }
             }
             exit_if  # if_2
@@ -121,8 +121,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b21 {
-  %b21 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B21: {
     store %gl_FragCoord, %gl_FragCoord_param
     %28:void = call %main_1
     %29:vec4<f32> = load %x_GLF_color
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.msl
index 4a17cb9..f106595 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-do-whiles/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,108 +8,115 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     %i_2:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %i, 0i
     %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_35:f32 = load_vector_element %8, 1u
-    %10:bool = lt %x_35, 0.0f
-    if %10 [t: %b3, f: %b4] {  # if_1
-      %b3 = block {  # true
+    %9:f32 = load_vector_element %8, 1u
+    %x_35:f32 = let %9
+    %11:bool = lt %x_35, 0.0f
+    if %11 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
         exit_if  # if_1
       }
-      %b4 = block {  # false
+      $B4: {  # false
         %x_42:ptr<function, bool, read_write> = var
-        %x_41:f32 = load_vector_element %gl_FragCoord, 1u
-        %13:bool = lt %x_41, -1.0f
-        store %x_42, %13
-        %14:bool = load %x_42
-        if %14 [t: %b5, f: %b6] {  # if_2
-          %b5 = block {  # true
+        %13:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_41:f32 = let %13
+        %15:bool = lt %x_41, -1.0f
+        store %x_42, %15
+        %16:bool = load %x_42
+        if %16 [t: $B5, f: $B6] {  # if_2
+          $B5: {  # true
             exit_if  # if_2
           }
-          %b6 = block {  # false
-            loop [b: %b7, c: %b8] {  # loop_1
-              %b7 = block {  # body
-                %x_50:i32 = load %i
-                %16:bool = gte %x_50, 256i
-                if %16 [t: %b9] {  # if_3
-                  %b9 = block {  # true
+          $B6: {  # false
+            loop [b: $B7, c: $B8] {  # loop_1
+              $B7: {  # body
+                %17:i32 = load %i
+                %x_50:i32 = let %17
+                %19:bool = gte %x_50, 256i
+                if %19 [t: $B9] {  # if_3
+                  $B9: {  # true
                     exit_loop  # loop_1
                   }
                 }
-                loop [b: %b10, c: %b11] {  # loop_2
-                  %b10 = block {  # body
+                loop [b: $B10, c: $B11] {  # loop_2
+                  $B10: {  # body
                     store %i_1, 0i
-                    loop [b: %b12, c: %b13] {  # loop_3
-                      %b12 = block {  # body
-                        %x_58:i32 = load %i_1
-                        %18:bool = lt %x_58, 1i
-                        if %18 [t: %b14, f: %b15] {  # if_4
-                          %b14 = block {  # true
+                    loop [b: $B12, c: $B13] {  # loop_3
+                      $B12: {  # body
+                        %20:i32 = load %i_1
+                        %x_58:i32 = let %20
+                        %22:bool = lt %x_58, 1i
+                        if %22 [t: $B14, f: $B15] {  # if_4
+                          $B14: {  # true
                             exit_if  # if_4
                           }
-                          %b15 = block {  # false
+                          $B15: {  # false
                             exit_loop  # loop_3
                           }
                         }
-                        %19:bool = load %x_42
-                        if %19 [t: %b16] {  # if_5
-                          %b16 = block {  # true
+                        %23:bool = load %x_42
+                        if %23 [t: $B16] {  # if_5
+                          $B16: {  # true
                             store %i_2, 0i
-                            loop [b: %b17, c: %b18] {  # loop_4
-                              %b17 = block {  # body
-                                %x_66:i32 = load %i_2
-                                %21:bool = lt %x_66, 1i
-                                if %21 [t: %b19, f: %b20] {  # if_6
-                                  %b19 = block {  # true
+                            loop [b: $B17, c: $B18] {  # loop_4
+                              $B17: {  # body
+                                %24:i32 = load %i_2
+                                %x_66:i32 = let %24
+                                %26:bool = lt %x_66, 1i
+                                if %26 [t: $B19, f: $B20] {  # if_6
+                                  $B19: {  # true
                                     exit_if  # if_6
                                   }
-                                  %b20 = block {  # false
+                                  $B20: {  # false
                                     exit_loop  # loop_4
                                   }
                                 }
-                                continue %b18
+                                continue  # -> $B18
                               }
-                              %b18 = block {  # continuing
-                                %x_70:i32 = load %i_2
-                                %23:i32 = add %x_70, 1i
-                                store %i_2, %23
-                                next_iteration %b17
+                              $B18: {  # continuing
+                                %27:i32 = load %i_2
+                                %x_70:i32 = let %27
+                                %29:i32 = add %x_70, 1i
+                                store %i_2, %29
+                                next_iteration  # -> $B17
                               }
                             }
-                            continue %b13
+                            continue  # -> $B13
                           }
                         }
                         ret
                       }
-                      %b13 = block {  # continuing
-                        %x_72:i32 = load %i_1
-                        %25:i32 = add %x_72, 1i
-                        store %i_1, %25
-                        next_iteration %b12
+                      $B13: {  # continuing
+                        %30:i32 = load %i_1
+                        %x_72:i32 = let %30
+                        %32:i32 = add %x_72, 1i
+                        store %i_1, %32
+                        next_iteration  # -> $B12
                       }
                     }
-                    continue %b11
+                    continue  # -> $B11
                   }
-                  %b11 = block {  # continuing
-                    break_if true %b10
+                  $B11: {  # continuing
+                    break_if true  # -> [t: exit_loop loop_2, f: $B10]
                   }
                 }
-                continue %b8
+                continue  # -> $B8
               }
-              %b8 = block {  # continuing
-                break_if true %b7
+              $B8: {  # continuing
+                break_if true  # -> [t: exit_loop loop_1, f: $B7]
               }
             }
             exit_if  # if_2
@@ -121,13 +128,13 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b21 {
-  %b21 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B21: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %28:void = call %main_1
-    %29:vec4<f32> = load %x_GLF_color
-    %30:main_out = construct %29
-    ret %30
+    %35:void = call %main_1
+    %36:vec4<f32> = load %x_GLF_color
+    %37:main_out = construct %36
+    ret %37
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.msl
index 52ef3f6..9fad2d20 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.spvasm.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: doesNotMatter = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: doesNotMatter = struct @align(4) {
   x_compute_data:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<storage, doesNotMatter, read_write> = var @binding_point(0, 0)
 }
 
-%nb_mod_ = func():f32 -> %b2 {
-  %b2 = block {
+%nb_mod_ = func():f32 {
+  $B2: {
     %s:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %GLF_live1i:ptr<function, i32, read_write> = var
@@ -18,32 +18,32 @@
     %x_56:ptr<function, f32, read_write> = var
     store %s, 0.0f
     store %i, 5i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_50:ptr<function, f32, read_write> = var
         store %x_56, 0.0f
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if true [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
         store %GLF_live1i, 0i
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B6] {  # loop_2
+          $B6: {  # body
             store %x_51, 0.0f
-            if true [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if true [t: $B7, f: $B8] {  # if_2
+              $B7: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B8: {  # false
                 exit_loop  # loop_2
               }
             }
-            if false [t: %b11] {  # if_3
-              %b11 = block {  # true
+            if false [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_50, 1.0f
                 %10:f32 = load %x_50
                 store %s, %10
@@ -54,14 +54,11 @@
             }
             ret 42.0f
           }
-          %b8 = block {  # continuing
-            next_iteration %b7
-          }
         }
         %12:f32 = load %x_51
         %13:bool = lte 5.0f, %12
-        if %13 [t: %b12] {  # if_4
-          %b12 = block {  # true
+        if %13 [t: $B10] {  # if_4
+          $B10: {  # true
             %14:f32 = load %x_51
             store %x_56, %14
             exit_loop  # loop_1
@@ -69,25 +66,23 @@
         }
         ret 42.0f
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
     %15:f32 = load %x_56
     ret %15
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
-    %x_32:f32 = call %nb_mod_
-    %18:ptr<storage, f32, read_write> = access %x_9, 0u, 0i
-    store %18, %x_32
+%main_1 = func():void {
+  $B11: {
+    %17:f32 = call %nb_mod_
+    %x_32:f32 = let %17
+    %19:ptr<storage, f32, read_write> = access %x_9, 0u, 0i
+    store %19, %x_32
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b14 {
-  %b14 = block {
-    %20:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B12: {
+    %21:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.msl
index 36f2dbb..ed79910 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/two-nested-for-loops-with-returns/0-opt.wgsl.expected.ir.msl
@@ -1,15 +1,15 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: doesNotMatter = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: doesNotMatter = struct @align(4) {
   x_compute_data:array<f32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<storage, doesNotMatter, read_write> = var @binding_point(0, 0)
 }
 
-%nb_mod_ = func():f32 -> %b2 {
-  %b2 = block {
+%nb_mod_ = func():f32 {
+  $B2: {
     %s:ptr<function, f32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %GLF_live1i:ptr<function, i32, read_write> = var
@@ -18,33 +18,33 @@
     %x_56_phi:ptr<function, f32, read_write> = var
     store %s, 0.0f
     store %i, 5i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
         %x_50:ptr<function, f32, read_write> = var
         %x_51_phi:ptr<function, f32, read_write> = var
         store %x_56_phi, 0.0f
-        if true [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if true [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B5: {  # false
             exit_loop  # loop_1
           }
         }
         store %GLF_live1i, 0i
-        loop [b: %b7, c: %b8] {  # loop_2
-          %b7 = block {  # body
+        loop [b: $B6] {  # loop_2
+          $B6: {  # body
             store %x_51_phi, 0.0f
-            if true [t: %b9, f: %b10] {  # if_2
-              %b9 = block {  # true
+            if true [t: $B7, f: $B8] {  # if_2
+              $B7: {  # true
                 exit_if  # if_2
               }
-              %b10 = block {  # false
+              $B8: {  # false
                 exit_loop  # loop_2
               }
             }
-            if false [t: %b11] {  # if_3
-              %b11 = block {  # true
+            if false [t: $B9] {  # if_3
+              $B9: {  # true
                 store %x_50, 1.0f
                 %11:f32 = load %x_50
                 store %s, %11
@@ -55,16 +55,13 @@
             }
             ret 42.0f
           }
-          %b8 = block {  # continuing
-            next_iteration %b7
-          }
         }
         %13:f32 = load %x_51_phi
         store %x_51, %13
         %14:f32 = load %x_51
         %15:bool = lte 5.0f, %14
-        if %15 [t: %b12] {  # if_4
-          %b12 = block {  # true
+        if %15 [t: $B10] {  # if_4
+          $B10: {  # true
             %16:f32 = load %x_51
             store %x_56_phi, %16
             exit_loop  # loop_1
@@ -72,25 +69,24 @@
         }
         ret 42.0f
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
-      }
     }
-    %x_56:f32 = load %x_56_phi
+    %17:f32 = load %x_56_phi
+    %x_56:f32 = let %17
     ret %x_56
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
-    %x_32:f32 = call %nb_mod_
-    %20:ptr<storage, f32, read_write> = access %x_9, 0u, 0i
-    store %20, %x_32
+%main_1 = func():void {
+  $B11: {
+    %20:f32 = call %nb_mod_
+    %x_32:f32 = let %20
+    %22:ptr<storage, f32, read_write> = access %x_9, 0u, 0i
+    store %22, %x_32
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b14 {
-  %b14 = block {
-    %22:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B12: {
+    %24:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.msl
index 098e69f..7473afd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %GLF_dead6index:ptr<function, i32, read_write> = var
     %GLF_dead6currentNode:ptr<function, i32, read_write> = var
     %donor_replacementGLF_dead6tree:ptr<function, array<i32, 1>, read_write> = var
@@ -23,15 +23,15 @@
     %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %8:f32 = load_vector_element %7, 1u
     %9:bool = lt %8, 0.0f
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            if true [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            if true [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
                 exit_if  # if_2
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
@@ -41,10 +41,10 @@
             store %GLF_dead6currentNode, %12
             %13:i32 = load %GLF_dead6currentNode
             store %GLF_dead6index, %13
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            next_iteration %b4
+          $B5: {  # continuing
+            next_iteration  # -> $B4
           }
         }
         exit_if  # if_1
@@ -53,8 +53,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func():main_out {
+  $B8: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.msl
index a38ae8b..ed0ea8d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-assign-in-infinite-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,43 +8,47 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %GLF_dead6index:ptr<function, i32, read_write> = var
     %GLF_dead6currentNode:ptr<function, i32, read_write> = var
     %donor_replacementGLF_dead6tree:ptr<function, array<i32, 1>, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %GLF_dead6index, 0i
     %7:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_34:f32 = load_vector_element %7, 1u
-    %9:bool = lt %x_34, 0.0f
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            if true [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
+    %8:f32 = load_vector_element %7, 1u
+    %x_34:f32 = let %8
+    %10:bool = lt %x_34, 0.0f
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            if true [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
                 exit_if  # if_2
               }
-              %b7 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_1
               }
             }
-            %x_9:i32 = load %GLF_dead6index
-            %11:ptr<function, i32, read_write> = access %donor_replacementGLF_dead6tree, %x_9
-            %x_10:i32 = load %11
+            %11:i32 = load %GLF_dead6index
+            %x_9:i32 = let %11
+            %13:ptr<function, i32, read_write> = access %donor_replacementGLF_dead6tree, %x_9
+            %14:i32 = load %13
+            %x_10:i32 = let %14
             store %GLF_dead6currentNode, %x_10
-            %x_11:i32 = load %GLF_dead6currentNode
+            %16:i32 = load %GLF_dead6currentNode
+            %x_11:i32 = let %16
             store %GLF_dead6index, %x_11
-            continue %b5
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            next_iteration %b4
+          $B5: {  # continuing
+            next_iteration  # -> $B4
           }
         }
         exit_if  # if_1
@@ -53,12 +57,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b8 {
-  %b8 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.msl
index be8a9a9..4c84403 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,93 +8,88 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%performPartition_ = func():i32 -> %b2 {
-  %b2 = block {
+%performPartition_ = func():i32 {
+  $B2: {
     %GLF_live0i:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %x_10:ptr<function, i32, read_write> = var
     %x_11:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %x_10, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_42:ptr<function, bool, read_write> = var
         %9:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
         %10:f32 = load_vector_element %9, 1u
         %11:bool = lt %10, 0.0f
         store %x_42, %11
         %12:bool = load %x_42
-        if %12 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             %13:i32 = load %x_10
             store %x_11, %13
-            continue %b4
+            continue  # -> $B4
           }
-          %b6 = block {  # false
+          $B6: {  # false
             store %GLF_live0i, 0i
-            loop [b: %b7, c: %b8] {  # loop_2
-              %b7 = block {  # body
+            loop [b: $B7] {  # loop_2
+              $B7: {  # body
                 %x_47:bool = let true
                 %15:bool = load %x_42
-                if %15 [t: %b9] {  # if_2
-                  %b9 = block {  # true
+                if %15 [t: $B8] {  # if_2
+                  $B8: {  # true
                     exit_loop  # loop_2
                   }
                 }
                 ret 1i
               }
-              %b8 = block {  # continuing
-                next_iteration %b7
-              }
             }
             %16:bool = load %x_42
-            if %16 [t: %b10] {  # if_3
-              %b10 = block {  # true
-                loop [b: %b11, c: %b12] {  # loop_3
-                  %b11 = block {  # body
+            if %16 [t: $B9] {  # if_3
+              $B9: {  # true
+                loop [b: $B10] {  # loop_3
+                  $B10: {  # body
                     ret 1i
                   }
-                  %b12 = block {  # continuing
-                    next_iteration %b11
-                  }
                 }
                 exit_if  # if_3
               }
             }
             %17:i32 = load %x_10
             store %x_11, %17
-            continue %b4
+            continue  # -> $B4
           }
         }
-        continue %b4
+        unreachable
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %18:i32 = load %x_11
         store %x_10, %18
-        break_if true %b3
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
     %19:i32 = load %x_11
     ret %19
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
-    %x_9:i32 = call %performPartition_
+%main_1 = func():void {
+  $B11: {
+    %21:i32 = call %performPartition_
+    %x_9:i32 = let %21
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %23:void = call %main_1
-    %24:vec4<f32> = load %x_GLF_color
-    %25:main_out = construct %24
-    ret %25
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.msl
index 2763073..4d36908 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/undefined-integer-in-function/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,95 +8,92 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%performPartition_ = func():i32 -> %b2 {
-  %b2 = block {
+%performPartition_ = func():i32 {
+  $B2: {
     %GLF_live0i:ptr<function, i32, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %x_11:ptr<function, i32, read_write> = var
     %x_10_phi:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %x_10_phi, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_11_phi:ptr<function, i32, read_write> = var
-        %x_10:i32 = load %x_10_phi
+        %9:i32 = load %x_10_phi
+        %x_10:i32 = let %9
         %x_42:ptr<function, bool, read_write> = var
-        %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_41:f32 = load_vector_element %11, 1u
-        %13:bool = lt %x_41, 0.0f
-        store %x_42, %13
-        %14:bool = load %x_42
-        if %14 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %12:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %13:f32 = load_vector_element %12, 1u
+        %x_41:f32 = let %13
+        %15:bool = lt %x_41, 0.0f
+        store %x_42, %15
+        %16:bool = load %x_42
+        if %16 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             store %x_11_phi, %x_10
-            continue %b4
+            continue  # -> $B4
           }
-          %b6 = block {  # false
+          $B6: {  # false
             store %GLF_live0i, 0i
-            loop [b: %b7, c: %b8] {  # loop_2
-              %b7 = block {  # body
+            loop [b: $B7] {  # loop_2
+              $B7: {  # body
                 %x_47:bool = let true
-                %16:bool = load %x_42
-                if %16 [t: %b9] {  # if_2
-                  %b9 = block {  # true
+                %18:bool = load %x_42
+                if %18 [t: $B8] {  # if_2
+                  $B8: {  # true
                     exit_loop  # loop_2
                   }
                 }
                 ret 1i
               }
-              %b8 = block {  # continuing
-                next_iteration %b7
-              }
             }
-            %17:bool = load %x_42
-            if %17 [t: %b10] {  # if_3
-              %b10 = block {  # true
-                loop [b: %b11, c: %b12] {  # loop_3
-                  %b11 = block {  # body
+            %19:bool = load %x_42
+            if %19 [t: $B9] {  # if_3
+              $B9: {  # true
+                loop [b: $B10] {  # loop_3
+                  $B10: {  # body
                     ret 1i
                   }
-                  %b12 = block {  # continuing
-                    next_iteration %b11
-                  }
                 }
                 exit_if  # if_3
               }
             }
             store %x_11_phi, %x_10
-            continue %b4
+            continue  # -> $B4
           }
         }
-        continue %b4
+        unreachable
       }
-      %b4 = block {  # continuing
-        %18:i32 = load %x_11_phi
-        store %x_11, %18
-        %19:i32 = load %x_11
-        store %x_10_phi, %19
-        break_if true %b3
+      $B4: {  # continuing
+        %20:i32 = load %x_11_phi
+        store %x_11, %20
+        %21:i32 = load %x_11
+        store %x_10_phi, %21
+        break_if true  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %20:i32 = load %x_11
-    ret %20
+    %22:i32 = load %x_11
+    ret %22
   }
 }
-%main_1 = func():void -> %b13 {
-  %b13 = block {
-    %x_9:i32 = call %performPartition_
+%main_1 = func():void {
+  $B11: {
+    %24:i32 = call %performPartition_
+    %x_9:i32 = let %24
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b14 {
-  %b14 = block {
-    %24:void = call %main_1
-    %25:vec4<f32> = load %x_GLF_color
-    %26:main_out = construct %25
-    ret %26
+%tint_symbol = @fragment func():main_out {
+  $B12: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.msl
index c2c0d95..c2fe3de 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,18 +8,18 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, f32, read_write> = var
     %x_32:ptr<function, f32, read_write> = var
     store %x_32, 0.0f
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_33:ptr<function, f32, read_write> = var
         %7:f32 = load %x_32
         store %x_33, %7
@@ -28,28 +28,28 @@
         %10:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
         %11:f32 = load_vector_element %10, 1u
         %12:bool = lt %9, %11
-        if %12 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %12 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             ret
           }
-          %b6 = block {  # false
-            continue %b4
+          $B6: {  # false
+            continue  # -> $B4
           }
         }
-        continue %b4
+        unreachable
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %13:f32 = load %x_33
         store %x_32, %13
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     unreachable
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
+%tint_symbol = @fragment func():main_out {
+  $B7: {
     %15:void = call %main_1
     %16:vec4<f32> = load %x_GLF_color
     %17:main_out = construct %16
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.msl
index 2bca960..a5a4c8d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/uninit-element-cast-in-loop/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,52 +8,56 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %x_30:ptr<function, f32, read_write> = var
     %x_32_phi:ptr<function, f32, read_write> = var
     store %x_32_phi, 0.0f
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %x_33_phi:ptr<function, f32, read_write> = var
-        %x_32:f32 = load %x_32_phi
+        %7:f32 = load %x_32_phi
+        %x_32:f32 = let %7
         store %x_33_phi, %x_32
-        %x_33:f32 = load %x_33_phi
-        %9:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_39:f32 = load_vector_element %9, 0u
+        %9:f32 = load %x_33_phi
+        %x_33:f32 = let %9
         %11:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-        %x_41:f32 = load_vector_element %11, 1u
-        %13:bool = lt %x_39, %x_41
-        if %13 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        %12:f32 = load_vector_element %11, 0u
+        %x_39:f32 = let %12
+        %14:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+        %15:f32 = load_vector_element %14, 1u
+        %x_41:f32 = let %15
+        %17:bool = lt %x_39, %x_41
+        if %17 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             ret
           }
-          %b6 = block {  # false
-            continue %b4
+          $B6: {  # false
+            continue  # -> $B4
           }
         }
-        continue %b4
+        unreachable
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         store %x_32_phi, %x_33
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     unreachable
   }
 }
-%tint_symbol = @fragment func():main_out -> %b7 {
-  %b7 = block {
-    %15:void = call %main_1
-    %16:vec4<f32> = load %x_GLF_color
-    %17:main_out = construct %16
-    ret %17
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.msl
index efdd3b1..d478cb2 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,54 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_30:ptr<function, f32, read_write> = var
+    %foo:ptr<function, u32, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %7:bool = gt %6, -1.0f
+    if %7 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %8:f32 = load_vector_element %x_GLF_color, 0u
+        store %x_30, %8
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        %9:u32 = load %foo
+        %10:u32 = sub %9, 1u
+        %x_7:u32 = let %10
+        store %foo, %x_7
+        %12:u32 = add 178493u, %x_7
+        %13:f32 = convert %12
+        store %x_30, %13
+        exit_if  # if_1
+      }
+    }
+    %14:f32 = load %x_30
+    store_vector_element %x_GLF_color, 0u, %14
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    ret %19
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.msl
index efdd3b1..2150252 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/uninitialized-var-decrement-and-add/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,58 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_30:ptr<function, f32, read_write> = var
+    %foo:ptr<function, u32, read_write> = var
+    store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_32:f32 = let %6
+    %8:bool = gt %x_32, -1.0f
+    if %8 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %9:f32 = load_vector_element %x_GLF_color, 0u
+        %x_38:f32 = let %9
+        store %x_30, %x_38
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        %11:u32 = load %foo
+        %x_6:u32 = let %11
+        %13:u32 = sub %x_6, 1u
+        %x_7:u32 = let %13
+        store %foo, %x_7
+        %15:u32 = add 178493u, %x_7
+        %16:f32 = convert %15
+        store %x_30, %16
+        exit_if  # if_1
+      }
+    }
+    %17:f32 = load %x_30
+    %x_40:f32 = let %17
+    store_vector_element %x_GLF_color, 0u, %x_40
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B5: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.msl
index e69c2be..4e2482e 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,32 +8,32 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%computeColor_ = func():vec3<f32> -> %b2 {
-  %b2 = block {
+%computeColor_ = func():vec3<f32> {
+  $B2: {
     %x_injected_loop_counter:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %x_injected_loop_counter, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
         %6:f32 = load_vector_element %5, 0u
         %7:bool = gt %6, 1.0f
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if %7 [t: $B5] {  # if_1
+          $B5: {  # true
             %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
             %9:f32 = load_vector_element %8, 0u
             %10:bool = gt %9, 1.0f
-            if %10 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
-                continue %b4
+            if %10 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                continue  # -> $B4
               }
-              %b7 = block {  # false
-                continue %b4
+              $B7: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_1
@@ -41,25 +41,26 @@
         }
         ret vec3<f32>(1.0f)
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
-    %x_31:vec3<f32> = call %computeColor_
+%main_1 = func():void {
+  $B8: {
+    %12:vec3<f32> = call %computeColor_
+    %x_31:vec3<f32> = let %12
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.msl
index f0605a9a..99dae24 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-continue-statement/0.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,32 +8,34 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%computeColor_ = func():vec3<f32> -> %b2 {
-  %b2 = block {
+%computeColor_ = func():vec3<f32> {
+  $B2: {
     %x_injected_loop_counter:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     store %x_injected_loop_counter, 1i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %5:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-        %x_38:f32 = load_vector_element %5, 0u
-        %7:bool = gt %x_38, 1.0f
-        if %7 [t: %b5] {  # if_1
-          %b5 = block {  # true
-            %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-            %x_43:f32 = load_vector_element %8, 0u
-            %10:bool = gt %x_43, 1.0f
-            if %10 [t: %b6, f: %b7] {  # if_2
-              %b6 = block {  # true
-                continue %b4
+        %6:f32 = load_vector_element %5, 0u
+        %x_38:f32 = let %6
+        %8:bool = gt %x_38, 1.0f
+        if %8 [t: $B5] {  # if_1
+          $B5: {  # true
+            %9:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+            %10:f32 = load_vector_element %9, 0u
+            %x_43:f32 = let %10
+            %12:bool = gt %x_43, 1.0f
+            if %12 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                continue  # -> $B4
               }
-              %b7 = block {  # false
-                continue %b4
+              $B7: {  # false
+                continue  # -> $B4
               }
             }
             exit_if  # if_1
@@ -41,25 +43,26 @@
         }
         ret vec3<f32>(1.0f)
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b8 {
-  %b8 = block {
-    %x_31:vec3<f32> = call %computeColor_
+%main_1 = func():void {
+  $B8: {
+    %14:vec3<f32> = call %computeColor_
+    %x_31:vec3<f32> = let %14
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %14:void = call %main_1
-    %15:vec4<f32> = load %x_GLF_color
-    %16:main_out = construct %15
-    ret %16
+%tint_symbol = @fragment func():main_out {
+  $B9: {
+    %17:void = call %main_1
+    %18:vec4<f32> = load %x_GLF_color
+    %19:main_out = construct %18
+    ret %19
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.msl
index 8cb6f56..112a18d 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,61 +8,68 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%computePoint_ = func():vec3<f32> -> %b2 {
-  %b2 = block {
-    %5:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %6:f32 = load_vector_element %5, 0u
-    %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %8:f32 = load_vector_element %7, 1u
-    %9:bool = gt %6, %8
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%computePoint_ = func():vec3<f32> {
+  $B2: {
+    %6:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %7:f32 = load_vector_element %6, 0u
+    %8:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %9:f32 = load_vector_element %8, 1u
+    %10:bool = gt %7, %9
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
     ret vec3<f32>(0.0f)
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %x_34:ptr<function, bool, read_write> = var, false
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_36:vec3<f32> = call %computePoint_
-        %13:f32 = load_vector_element %gl_FragCoord, 0u
-        %14:bool = lt %13, 0.0f
-        if %14 [t: %b7] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5] {  # loop_1
+      $B5: {  # body
+        %13:vec3<f32> = call %computePoint_
+        %x_36:vec3<f32> = let %13
+        %15:f32 = load_vector_element %gl_FragCoord, 0u
+        %16:bool = lt %15, 0.0f
+        if %16 [t: $B6] {  # if_2
+          $B6: {  # true
             store %x_34, true
             exit_loop  # loop_1
           }
         }
-        %x_45:vec3<f32> = call %computePoint_
+        %17:vec3<f32> = call %computePoint_
+        %x_45:vec3<f32> = let %17
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         store %x_34, true
         exit_loop  # loop_1
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    %24:bool = load %continue_execution
+    %25:bool = eq %24, false
+    if %25 [t: $B8] {  # if_3
+      $B8: {  # true
+        terminate_invocation
+      }
+    }
+    ret %23
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.msl
index c3848c9..d37a77b 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-discard-statement-in-if/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,61 +8,71 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_7:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
 }
 
-%computePoint_ = func():vec3<f32> -> %b2 {
-  %b2 = block {
-    %5:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_48:f32 = load_vector_element %5, 0u
-    %7:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
-    %x_50:f32 = load_vector_element %7, 1u
-    %9:bool = gt %x_48, %x_50
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        discard
+%computePoint_ = func():vec3<f32> {
+  $B2: {
+    %6:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %7:f32 = load_vector_element %6, 0u
+    %x_48:f32 = let %7
+    %9:ptr<uniform, vec2<f32>, read> = access %x_7, 0u
+    %10:f32 = load_vector_element %9, 1u
+    %x_50:f32 = let %10
+    %12:bool = gt %x_48, %x_50
+    if %12 [t: $B3] {  # if_1
+      $B3: {  # true
+        store %continue_execution, false
         exit_if  # if_1
       }
     }
     ret vec3<f32>(0.0f)
   }
 }
-%main_1 = func():void -> %b4 {
-  %b4 = block {
+%main_1 = func():void {
+  $B4: {
     %x_34:ptr<function, bool, read_write> = var, false
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_36:vec3<f32> = call %computePoint_
-        %x_41:f32 = load_vector_element %gl_FragCoord, 0u
-        %14:bool = lt %x_41, 0.0f
-        if %14 [t: %b7] {  # if_2
-          %b7 = block {  # true
+    loop [b: $B5] {  # loop_1
+      $B5: {  # body
+        %15:vec3<f32> = call %computePoint_
+        %x_36:vec3<f32> = let %15
+        %17:f32 = load_vector_element %gl_FragCoord, 0u
+        %x_41:f32 = let %17
+        %19:bool = lt %x_41, 0.0f
+        if %19 [t: $B6] {  # if_2
+          $B6: {  # true
             store %x_34, true
             exit_loop  # loop_1
           }
         }
-        %x_45:vec3<f32> = call %computePoint_
+        %20:vec3<f32> = call %computePoint_
+        %x_45:vec3<f32> = let %20
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         store %x_34, true
         exit_loop  # loop_1
       }
-      %b6 = block {  # continuing
-        next_iteration %b5
-      }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b8 {
-  %b8 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B7: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %18:void = call %main_1
-    %19:vec4<f32> = load %x_GLF_color
-    %20:main_out = construct %19
-    ret %20
+    %24:void = call %main_1
+    %25:vec4<f32> = load %x_GLF_color
+    %26:main_out = construct %25
+    %27:bool = load %continue_execution
+    %28:bool = eq %27, false
+    if %28 [t: $B8] {  # if_3
+      $B8: {  # true
+        terminate_invocation
+      }
+    }
+    ret %26
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.msl
index 470029e..d96fda4 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injected:vec2<f32> @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
@@ -22,32 +22,32 @@
     %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
     %8:f32 = load_vector_element %7, 1u
     %9:bool = gt %6, %8
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            continue %b5
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            break_if true %b4
+          $B5: {  # continuing
+            break_if true  # -> [t: exit_loop loop_1, f: $B4]
           }
         }
         store %m, 1i
-        loop [b: %b6, c: %b7] {  # loop_2
-          %b6 = block {  # body
-            if true [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
+        loop [b: $B6, c: $B7] {  # loop_2
+          $B6: {  # body
+            if true [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
                 exit_if  # if_2
               }
-              %b9 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_2
               }
             }
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-            continue %b7
+            continue  # -> $B7
           }
-          %b7 = block {  # continuing
-            next_iteration %b6
+          $B7: {  # continuing
+            next_iteration  # -> $B6
           }
         }
         exit_if  # if_1
@@ -56,8 +56,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
+%tint_symbol = @fragment func():main_out {
+  $B10: {
     %11:void = call %main_1
     %12:vec4<f32> = load %x_GLF_color
     %13:main_out = construct %12
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.msl
index 3e2da70..277aa16 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-loops/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injected:vec2<f32> @offset(0)
 }
 
@@ -8,46 +8,48 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_5:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %m:ptr<function, i32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
     %5:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_30:f32 = load_vector_element %5, 0u
-    %7:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
-    %x_32:f32 = load_vector_element %7, 1u
-    %9:bool = gt %x_30, %x_32
-    if %9 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        loop [b: %b4, c: %b5] {  # loop_1
-          %b4 = block {  # body
-            continue %b5
+    %6:f32 = load_vector_element %5, 0u
+    %x_30:f32 = let %6
+    %8:ptr<uniform, vec2<f32>, read> = access %x_5, 0u
+    %9:f32 = load_vector_element %8, 1u
+    %x_32:f32 = let %9
+    %11:bool = gt %x_30, %x_32
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            continue  # -> $B5
           }
-          %b5 = block {  # continuing
-            break_if true %b4
+          $B5: {  # continuing
+            break_if true  # -> [t: exit_loop loop_1, f: $B4]
           }
         }
         store %m, 1i
-        loop [b: %b6, c: %b7] {  # loop_2
-          %b6 = block {  # body
-            if true [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
+        loop [b: $B6, c: $B7] {  # loop_2
+          $B6: {  # body
+            if true [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
                 exit_if  # if_2
               }
-              %b9 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_2
               }
             }
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-            continue %b7
+            continue  # -> $B7
           }
-          %b7 = block {  # continuing
-            next_iteration %b6
+          $B7: {  # continuing
+            next_iteration  # -> $B6
           }
         }
         exit_if  # if_1
@@ -56,12 +58,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b10 {
-  %b10 = block {
-    %11:void = call %main_1
-    %12:vec4<f32> = load %x_GLF_color
-    %13:main_out = construct %12
-    ret %13
+%tint_symbol = @fragment func():main_out {
+  $B10: {
+    %13:void = call %main_1
+    %14:vec4<f32> = load %x_GLF_color
+    %15:main_out = construct %14
+    ret %15
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.msl
index efdd3b1..a9ae9d9 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.spvasm.expected.ir.msl
@@ -1,6 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_21:ptr<function, bool, read_write> = var
+    store %x_21, false
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %x_25:ptr<function, bool, read_write> = var
+        %x_30:ptr<function, bool, read_write> = var
+        %6:bool = load %x_21
+        store %x_25, %6
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
+            %7:bool = load %x_25
+            store %x_30, %7
+            if false [t: $B5, f: $B6] {  # if_1
+              $B5: {  # true
+                exit_if  # if_1
+              }
+              $B6: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            store %x_30, true
+            exit_loop  # loop_2
+          }
+        }
+        %8:bool = load %x_30
+        if %8 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_loop  # loop_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %10:void = call %main_1
+    %11:vec4<f32> = load %x_GLF_color
+    %12:main_out = construct %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.msl
index efdd3b1..3b508d1 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/unreachable-return-in-loop/0.wgsl.expected.ir.msl
@@ -1,6 +1,67 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_21_phi:ptr<function, bool, read_write> = var
+    store %x_21_phi, false
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %x_25:ptr<function, bool, read_write> = var
+        %x_25_phi:ptr<function, bool, read_write> = var
+        %x_30_phi:ptr<function, bool, read_write> = var
+        %7:bool = load %x_21_phi
+        %x_21:bool = let %7
+        store %x_25_phi, %x_21
+        loop [b: $B4] {  # loop_2
+          $B4: {  # body
+            %9:bool = load %x_25_phi
+            store %x_25, %9
+            %10:bool = load %x_25
+            store %x_30_phi, %10
+            if false [t: $B5, f: $B6] {  # if_1
+              $B5: {  # true
+                exit_if  # if_1
+              }
+              $B6: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            store %x_30_phi, true
+            exit_loop  # loop_2
+          }
+        }
+        %11:bool = load %x_30_phi
+        %x_30:bool = let %11
+        if %x_30 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_loop  # loop_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %14:void = call %main_1
+    %15:vec4<f32> = load %x_GLF_color
+    %16:main_out = construct %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.msl
index 2e88a5f..1df86df 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.spvasm.expected.ir.msl
@@ -1,6 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %c1:ptr<function, bool, read_write> = var
+    %uv:ptr<function, vec2<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %x_37:ptr<function, bool, read_write> = var
+    %x_9:ptr<function, i32, read_write> = var
+    %8:f32 = load_vector_element %uv, 1u
+    %9:bool = lt %8, 0.25f
+    %x_35:bool = let %9
+    store %c1, %x_35
+    store %i, 0i
+    store %x_37, %x_35
+    store %x_9, 0i
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %11:i32 = load %x_9
+        %12:bool = lt %11, 1i
+        if %12 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
+            exit_if  # if_1
+          }
+          $B5: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        ret
+      }
+    }
+    %13:bool = load %x_37
+    if %13 [t: $B6] {  # if_2
+      $B6: {  # true
+        ret
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %15:void = call %main_1
+    %16:vec4<f32> = load %x_GLF_color
+    %17:main_out = construct %16
+    ret %17
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.msl
index 2e88a5f..62bb5ae 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/uv-value-comparison-as-boolean/0.wgsl.expected.ir.msl
@@ -1,6 +1,67 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %c1:ptr<function, bool, read_write> = var
+    %uv:ptr<function, vec2<f32>, read_write> = var
+    %i:ptr<function, i32, read_write> = var
+    %x_37:ptr<function, bool, read_write> = var
+    %x_37_phi:ptr<function, bool, read_write> = var
+    %x_9_phi:ptr<function, i32, read_write> = var
+    %9:f32 = load_vector_element %uv, 1u
+    %x_34:f32 = let %9
+    %11:bool = lt %x_34, 0.25f
+    %x_35:bool = let %11
+    store %c1, %x_35
+    store %i, 0i
+    store %x_37_phi, %x_35
+    store %x_9_phi, 0i
+    loop [b: $B3] {  # loop_1
+      $B3: {  # body
+        %13:bool = load %x_37_phi
+        store %x_37, %13
+        %14:i32 = load %x_9_phi
+        %x_9:i32 = let %14
+        %16:bool = lt %x_9, 1i
+        if %16 [t: $B4, f: $B5] {  # if_1
+          $B4: {  # true
+            exit_if  # if_1
+          }
+          $B5: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        ret
+      }
+    }
+    %17:bool = load %x_37
+    if %17 [t: $B6] {  # if_2
+      $B6: {  # true
+        ret
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B7: {
+    %19:void = call %main_1
+    %20:vec4<f32> = load %x_GLF_color
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.msl
index 169b1a6..066dcaf 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,14 +8,14 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %alwaysFalse:ptr<function, bool, read_write> = var
     %value:ptr<function, vec4<f32>, read_write> = var
     %a:ptr<function, vec2<f32>, read_write> = var
@@ -26,8 +26,8 @@
     %12:bool = lt %11, -1.0f
     store %alwaysFalse, %12
     %13:bool = load %alwaysFalse
-    if %13 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
         %14:vec2<f32> = load %a
         %15:vec2<f32> = swizzle %14, xy
         %16:vec4<f32> = load %value
@@ -39,8 +39,8 @@
     }
     %19:bool = load %alwaysFalse
     %20:bool = eq %19, false
-    if %20 [t: %b4] {  # if_2
-      %b4 = block {  # true
+    if %20 [t: $B4] {  # if_2
+      $B4: {  # true
         %21:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
         %22:vec2<f32> = load %21
         %23:vec2<f32> = swizzle %22, xy
@@ -66,103 +66,108 @@
     %39:vec4<f32> = construct %28, %38
     store %value, %39
     store %i, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
         %40:i32 = load %i
-        %41:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-        %42:f32 = load_vector_element %41, 1u
-        %43:i32 = convert %42
-        %44:i32 = add %43, 1i
-        %45:bool = lt %40, %44
-        if %45 [t: %b7, f: %b8] {  # if_3
-          %b7 = block {  # true
+        %41:i32 = let %40
+        %42:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+        %43:f32 = load_vector_element %42, 1u
+        %44:i32 = call %tint_f32_to_i32, %43
+        %46:i32 = add %44, 1i
+        %47:bool = lt %41, %46
+        if %47 [t: $B7, f: $B8] {  # if_3
+          $B7: {  # true
             exit_if  # if_3
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %46:i32 = load %i
-        %47:f32 = convert %46
-        store_vector_element %value, 0u, %47
-        continue %b6
-      }
-      %b6 = block {  # continuing
         %48:i32 = load %i
-        %49:i32 = add %48, 1i
-        store %i, %49
-        next_iteration %b5
+        %49:f32 = convert %48
+        store_vector_element %value, 0u, %49
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %50:i32 = load %i
+        %51:i32 = add %50, 1i
+        store %i, %51
+        next_iteration  # -> $B5
       }
     }
-    %50:f32 = load_vector_element %value, 0u
-    %x_116:bool = eq %50, 1.0f
+    %52:f32 = load_vector_element %value, 0u
+    %53:bool = eq %52, 1.0f
+    %x_116:bool = let %53
     store %x_122, %x_116
-    if %x_116 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %52:f32 = load_vector_element %value, 1u
-        %53:bool = eq %52, 1.0f
-        store %x_121, %53
-        %54:bool = load %x_121
-        store %x_122, %54
+    if %x_116 [t: $B9] {  # if_4
+      $B9: {  # true
+        %55:f32 = load_vector_element %value, 1u
+        %56:bool = eq %55, 1.0f
+        store %x_121, %56
+        %57:bool = load %x_121
+        store %x_122, %57
         exit_if  # if_4
       }
     }
-    %55:bool = load %x_122
-    if %55 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
+    %58:bool = load %x_122
+    if %58 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
         ret 1.0f
       }
-      %b11 = block {  # false
+      $B11: {  # false
         ret 0.0f
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %count:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     store %count, 0i
     store %i_1, 0i
-    loop [b: %b13, c: %b14] {  # loop_2
-      %b13 = block {  # body
-        %59:i32 = load %i_1
-        %60:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-        %61:f32 = load_vector_element %60, 1u
-        %62:i32 = convert %61
-        %63:i32 = add %62, 1i
-        %64:bool = lt %59, %63
-        if %64 [t: %b15, f: %b16] {  # if_6
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_2
+      $B13: {  # body
+        %62:i32 = load %i_1
+        %63:i32 = let %62
+        %64:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+        %65:f32 = load_vector_element %64, 1u
+        %66:i32 = call %tint_f32_to_i32, %65
+        %67:i32 = add %66, 1i
+        %68:bool = lt %63, %67
+        if %68 [t: $B15, f: $B16] {  # if_6
+          $B15: {  # true
             exit_if  # if_6
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_58:f32 = call %func_
-        %66:i32 = load %count
-        %67:i32 = convert %x_58
-        %68:i32 = add %66, %67
-        store %count, %68
-        continue %b14
+        %69:f32 = call %func_
+        %x_58:f32 = let %69
+        %71:i32 = load %count
+        %72:i32 = let %71
+        %73:i32 = call %tint_f32_to_i32, %x_58
+        %74:i32 = add %72, %73
+        store %count, %74
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %69:i32 = load %i_1
-        %70:i32 = add %69, 1i
-        store %i_1, %70
-        next_iteration %b13
+      $B14: {  # continuing
+        %75:i32 = load %i_1
+        %76:i32 = add %75, 1i
+        store %i_1, %76
+        next_iteration  # -> $B13
       }
     }
-    %71:i32 = load %count
-    %72:bool = eq %71, 2i
-    if %72 [t: %b17, f: %b18] {  # if_7
-      %b17 = block {  # true
+    %77:i32 = load %count
+    %78:bool = eq %77, 2i
+    if %78 [t: $B17, f: $B18] {  # if_7
+      $B17: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b18 = block {  # false
+      $B18: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -170,13 +175,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %75:void = call %main_1
-    %76:vec4<f32> = load %x_GLF_color
-    %77:main_out = construct %76
-    ret %77
+    %81:void = call %main_1
+    %82:vec4<f32> = load %x_GLF_color
+    %83:main_out = construct %82
+    ret %83
+  }
+}
+%tint_f32_to_i32 = func(%value_1:f32):i32 {  # %value_1: 'value'
+  $B20: {
+    %85:i32 = convert %value_1
+    %86:bool = gte %value_1, -2147483648.0f
+    %87:i32 = select -2147483648i, %85, %86
+    %88:bool = lte %value_1, 2147483520.0f
+    %89:i32 = select 2147483647i, %87, %88
+    ret %89
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.msl
index 0dd22ab..f4430db 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/vector-values-multiplied-by-fragcoord/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,173 +8,201 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_10:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%func_ = func():f32 -> %b2 {
-  %b2 = block {
+%func_ = func():f32 {
+  $B2: {
     %alwaysFalse:ptr<function, bool, read_write> = var
     %value:ptr<function, vec4<f32>, read_write> = var
     %a:ptr<function, vec2<f32>, read_write> = var
     %i:ptr<function, i32, read_write> = var
     %x_121:ptr<function, bool, read_write> = var
     %x_122_phi:ptr<function, bool, read_write> = var
-    %x_71:f32 = load_vector_element %gl_FragCoord, 0u
-    %12:bool = lt %x_71, -1.0f
-    store %alwaysFalse, %12
-    %x_73:bool = load %alwaysFalse
-    if %x_73 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_76:vec2<f32> = load %a
-        %x_77:vec4<f32> = load %value
-        %16:f32 = access %x_76, 0u
-        %17:f32 = access %x_76, 1u
-        %18:f32 = access %x_77, 2u
-        %19:f32 = access %x_77, 3u
-        %20:vec4<f32> = construct %16, %17, %18, %19
-        store %value, %20
+    %11:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_71:f32 = let %11
+    %13:bool = lt %x_71, -1.0f
+    store %alwaysFalse, %13
+    %14:bool = load %alwaysFalse
+    %x_73:bool = let %14
+    if %x_73 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:vec2<f32> = load %a
+        %x_76:vec2<f32> = let %16
+        %18:vec4<f32> = load %value
+        %x_77:vec4<f32> = let %18
+        %20:f32 = access %x_76, 0u
+        %21:f32 = access %x_76, 1u
+        %22:f32 = access %x_77, 2u
+        %23:f32 = access %x_77, 3u
+        %24:vec4<f32> = construct %20, %21, %22, %23
+        store %value, %24
         exit_if  # if_1
       }
     }
-    %x_79:bool = load %alwaysFalse
-    %22:bool = eq %x_79, false
-    if %22 [t: %b4] {  # if_2
-      %b4 = block {  # true
-        %23:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-        %x_84:vec2<f32> = load %23
-        %x_85:vec4<f32> = load %value
-        %26:f32 = access %x_84, 0u
-        %27:f32 = access %x_84, 1u
-        %28:f32 = access %x_85, 2u
-        %29:f32 = access %x_85, 3u
-        %30:vec4<f32> = construct %26, %27, %28, %29
-        store %value, %30
+    %25:bool = load %alwaysFalse
+    %x_79:bool = let %25
+    %27:bool = eq %x_79, false
+    if %27 [t: $B4] {  # if_2
+      $B4: {  # true
+        %28:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+        %29:vec2<f32> = load %28
+        %x_84:vec2<f32> = let %29
+        %31:vec4<f32> = load %value
+        %x_85:vec4<f32> = let %31
+        %33:f32 = access %x_84, 0u
+        %34:f32 = access %x_84, 1u
+        %35:f32 = access %x_85, 2u
+        %36:f32 = access %x_85, 3u
+        %37:vec4<f32> = construct %33, %34, %35, %36
+        store %value, %37
         exit_if  # if_2
       }
     }
-    %x_87:vec4<f32> = load %gl_FragCoord
-    %x_89:vec4<f32> = load %value
-    %x_93:vec4<f32> = load %value
-    %34:f32 = access %x_87, 0u
-    %35:f32 = access %x_87, 1u
-    %36:vec2<f32> = construct %34, %35
-    %37:f32 = access %x_89, 0u
-    %38:f32 = access %x_89, 1u
-    %39:vec2<f32> = construct %37, %38
-    %40:vec2<f32> = mul %36, %39
-    %41:vec2<f32> = mul %40, vec2<f32>(2.0f)
-    %42:f32 = access %x_93, 0u
-    %43:f32 = access %x_93, 1u
-    %44:vec2<f32> = construct %42, %43
-    %x_95:vec2<f32> = add %41, %44
-    %x_96:vec4<f32> = load %value
-    %47:f32 = access %x_96, 0u
-    %48:f32 = access %x_96, 1u
-    %49:f32 = access %x_95, 0u
-    %50:f32 = access %x_95, 1u
-    %51:vec4<f32> = construct %47, %48, %49, %50
-    store %value, %51
+    %38:vec4<f32> = load %gl_FragCoord
+    %x_87:vec4<f32> = let %38
+    %40:vec4<f32> = load %value
+    %x_89:vec4<f32> = let %40
+    %42:vec4<f32> = load %value
+    %x_93:vec4<f32> = let %42
+    %44:f32 = access %x_87, 0u
+    %45:f32 = access %x_87, 1u
+    %46:vec2<f32> = construct %44, %45
+    %47:vec2<f32> = let %46
+    %48:f32 = access %x_89, 0u
+    %49:f32 = access %x_89, 1u
+    %50:vec2<f32> = construct %48, %49
+    %51:vec2<f32> = mul %47, %50
+    %52:vec2<f32> = mul %51, vec2<f32>(2.0f)
+    %53:vec2<f32> = let %52
+    %54:f32 = access %x_93, 0u
+    %55:f32 = access %x_93, 1u
+    %56:vec2<f32> = construct %54, %55
+    %57:vec2<f32> = add %53, %56
+    %x_95:vec2<f32> = let %57
+    %59:vec4<f32> = load %value
+    %x_96:vec4<f32> = let %59
+    %61:f32 = access %x_96, 0u
+    %62:f32 = access %x_96, 1u
+    %63:f32 = access %x_95, 0u
+    %64:f32 = access %x_95, 1u
+    %65:vec4<f32> = construct %61, %62, %63, %64
+    store %value, %65
     store %i, 0i
-    loop [b: %b5, c: %b6] {  # loop_1
-      %b5 = block {  # body
-        %x_102:i32 = load %i
-        %53:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-        %x_104:f32 = load_vector_element %53, 1u
-        %55:i32 = convert %x_104
-        %56:i32 = add %55, 1i
-        %57:bool = lt %x_102, %56
-        if %57 [t: %b7, f: %b8] {  # if_3
-          %b7 = block {  # true
+    loop [b: $B5, c: $B6] {  # loop_1
+      $B5: {  # body
+        %66:i32 = load %i
+        %x_102:i32 = let %66
+        %68:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+        %69:f32 = load_vector_element %68, 1u
+        %x_104:f32 = let %69
+        %71:i32 = call %tint_f32_to_i32, %x_104
+        %73:i32 = add %71, 1i
+        %74:bool = lt %x_102, %73
+        if %74 [t: $B7, f: $B8] {  # if_3
+          $B7: {  # true
             exit_if  # if_3
           }
-          %b8 = block {  # false
+          $B8: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_109:i32 = load %i
-        %59:f32 = convert %x_109
-        store_vector_element %value, 0u, %59
-        continue %b6
+        %75:i32 = load %i
+        %x_109:i32 = let %75
+        %77:f32 = convert %x_109
+        store_vector_element %value, 0u, %77
+        continue  # -> $B6
       }
-      %b6 = block {  # continuing
-        %x_112:i32 = load %i
-        %61:i32 = add %x_112, 1i
-        store %i, %61
-        next_iteration %b5
+      $B6: {  # continuing
+        %78:i32 = load %i
+        %x_112:i32 = let %78
+        %80:i32 = add %x_112, 1i
+        store %i, %80
+        next_iteration  # -> $B5
       }
     }
-    %x_115:f32 = load_vector_element %value, 0u
-    %x_116:bool = eq %x_115, 1.0f
+    %81:f32 = load_vector_element %value, 0u
+    %x_115:f32 = let %81
+    %83:bool = eq %x_115, 1.0f
+    %x_116:bool = let %83
     store %x_122_phi, %x_116
-    if %x_116 [t: %b9] {  # if_4
-      %b9 = block {  # true
-        %x_120:f32 = load_vector_element %value, 1u
-        %65:bool = eq %x_120, 1.0f
-        store %x_121, %65
-        %66:bool = load %x_121
-        store %x_122_phi, %66
+    if %x_116 [t: $B9] {  # if_4
+      $B9: {  # true
+        %85:f32 = load_vector_element %value, 1u
+        %x_120:f32 = let %85
+        %87:bool = eq %x_120, 1.0f
+        store %x_121, %87
+        %88:bool = load %x_121
+        store %x_122_phi, %88
         exit_if  # if_4
       }
     }
-    %x_122:bool = load %x_122_phi
-    if %x_122 [t: %b10, f: %b11] {  # if_5
-      %b10 = block {  # true
+    %89:bool = load %x_122_phi
+    %x_122:bool = let %89
+    if %x_122 [t: $B10, f: $B11] {  # if_5
+      $B10: {  # true
         ret 1.0f
       }
-      %b11 = block {  # false
+      $B11: {  # false
         ret 0.0f
       }
     }
     unreachable
   }
 }
-%main_1 = func():void -> %b12 {
-  %b12 = block {
+%main_1 = func():void {
+  $B12: {
     %count:ptr<function, i32, read_write> = var
     %i_1:ptr<function, i32, read_write> = var
     store %count, 0i
     store %i_1, 0i
-    loop [b: %b13, c: %b14] {  # loop_2
-      %b13 = block {  # body
-        %x_51:i32 = load %i_1
-        %72:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
-        %x_53:f32 = load_vector_element %72, 1u
-        %74:i32 = convert %x_53
-        %75:i32 = add %74, 1i
-        %76:bool = lt %x_51, %75
-        if %76 [t: %b15, f: %b16] {  # if_6
-          %b15 = block {  # true
+    loop [b: $B13, c: $B14] {  # loop_2
+      $B13: {  # body
+        %94:i32 = load %i_1
+        %x_51:i32 = let %94
+        %96:ptr<uniform, vec2<f32>, read> = access %x_10, 0u
+        %97:f32 = load_vector_element %96, 1u
+        %x_53:f32 = let %97
+        %99:i32 = call %tint_f32_to_i32, %x_53
+        %100:i32 = add %99, 1i
+        %101:bool = lt %x_51, %100
+        if %101 [t: $B15, f: $B16] {  # if_6
+          $B15: {  # true
             exit_if  # if_6
           }
-          %b16 = block {  # false
+          $B16: {  # false
             exit_loop  # loop_2
           }
         }
-        %x_58:f32 = call %func_
-        %x_60:i32 = load %count
-        %79:i32 = convert %x_58
-        %80:i32 = add %x_60, %79
-        store %count, %80
-        continue %b14
+        %102:f32 = call %func_
+        %x_58:f32 = let %102
+        %104:i32 = load %count
+        %x_60:i32 = let %104
+        %106:i32 = call %tint_f32_to_i32, %x_58
+        %107:i32 = add %x_60, %106
+        store %count, %107
+        continue  # -> $B14
       }
-      %b14 = block {  # continuing
-        %x_62:i32 = load %i_1
-        %82:i32 = add %x_62, 1i
-        store %i_1, %82
-        next_iteration %b13
+      $B14: {  # continuing
+        %108:i32 = load %i_1
+        %x_62:i32 = let %108
+        %110:i32 = add %x_62, 1i
+        store %i_1, %110
+        next_iteration  # -> $B13
       }
     }
-    %x_64:i32 = load %count
-    %84:bool = eq %x_64, 2i
-    if %84 [t: %b17, f: %b18] {  # if_7
-      %b17 = block {  # true
+    %111:i32 = load %count
+    %x_64:i32 = let %111
+    %113:bool = eq %x_64, 2i
+    if %113 [t: $B17, f: $B18] {  # if_7
+      $B17: {  # true
         store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
-      %b18 = block {  # false
+      $B18: {  # false
         store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
         exit_if  # if_7
       }
@@ -182,13 +210,23 @@
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b19 {
-  %b19 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B19: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %87:void = call %main_1
-    %88:vec4<f32> = load %x_GLF_color
-    %89:main_out = construct %88
-    ret %89
+    %116:void = call %main_1
+    %117:vec4<f32> = load %x_GLF_color
+    %118:main_out = construct %117
+    ret %118
+  }
+}
+%tint_f32_to_i32 = func(%value_1:f32):i32 {  # %value_1: 'value'
+  $B20: {
+    %120:i32 = convert %value_1
+    %121:bool = gte %value_1, -2147483648.0f
+    %122:i32 = select -2147483648i, %120, %121
+    %123:bool = lte %value_1, 2147483520.0f
+    %124:i32 = select 2147483647i, %122, %123
+    ret %124
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.msl
index efdd3b1..0decfbd 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.spvasm.expected.ir.msl
@@ -1,6 +1,90 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%func_ = func():i32 {
+  $B2: {
+    %coord:ptr<function, vec2<f32>, read_write> = var
+    %tmp3:ptr<function, f32, read_write> = var
+    %tmp2:ptr<function, array<f32, 1>, read_write> = var
+    %tmp:ptr<function, vec4<f32>, read_write> = var
+    %x_48:ptr<function, f32, read_write> = var
+    store %coord, vec2<f32>(1.0f)
+    %9:f32 = load_vector_element %coord, 1u
+    %10:i32 = call %tint_f32_to_i32, %9
+    %12:bool = lt %10, 180i
+    if %12 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %13:ptr<function, f32, read_write> = access %tmp2, 0i
+        %14:f32 = load %13
+        store %x_48, %14
+        %15:f32 = load %x_48
+        store %tmp3, %15
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %continue_execution, false
+        exit_if  # if_1
+      }
+    }
+    %16:f32 = load %x_48
+    %17:vec4<f32> = construct %16
+    store %tmp, %17
+    ret 1i
+  }
+}
+%main_1 = func():void {
+  $B5: {
+    %19:i32 = call %func_
+    %x_9:i32 = let %19
+    %21:bool = eq %x_9, 1i
+    if %21 [t: $B6, f: $B7] {  # if_2
+      $B6: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_2
+      }
+      $B7: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_2
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    %26:bool = load %continue_execution
+    %27:bool = eq %26, false
+    if %27 [t: $B9] {  # if_3
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %25
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %29:i32 = convert %value
+    %30:bool = gte %value, -2147483648.0f
+    %31:i32 = select -2147483648i, %29, %30
+    %32:bool = lte %value, 2147483520.0f
+    %33:i32 = select 2147483647i, %31, %32
+    ret %33
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.msl
index efdd3b1..504abb0 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/vectors-and-discard-in-function/0.wgsl.expected.ir.msl
@@ -1,6 +1,94 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+  %continue_execution:ptr<private, bool, read_write> = var, true
+}
+
+%func_ = func():i32 {
+  $B2: {
+    %coord:ptr<function, vec2<f32>, read_write> = var
+    %tmp3:ptr<function, f32, read_write> = var
+    %tmp2:ptr<function, array<f32, 1>, read_write> = var
+    %tmp:ptr<function, vec4<f32>, read_write> = var
+    %x_48:ptr<function, f32, read_write> = var
+    store %coord, vec2<f32>(1.0f)
+    %9:f32 = load_vector_element %coord, 1u
+    %x_41:f32 = let %9
+    %11:i32 = call %tint_f32_to_i32, %x_41
+    %13:bool = lt %11, 180i
+    if %13 [t: $B3, f: $B4] {  # if_1
+      $B3: {  # true
+        %14:ptr<function, f32, read_write> = access %tmp2, 0i
+        %15:f32 = load %14
+        store %x_48, %15
+        %16:f32 = load %x_48
+        store %tmp3, %16
+        exit_if  # if_1
+      }
+      $B4: {  # false
+        store %continue_execution, false
+        exit_if  # if_1
+      }
+    }
+    %17:f32 = load %x_48
+    %18:f32 = load %x_48
+    %19:f32 = load %x_48
+    %20:f32 = load %x_48
+    %21:vec4<f32> = construct %17, %18, %19, %20
+    store %tmp, %21
+    ret 1i
+  }
+}
+%main_1 = func():void {
+  $B5: {
+    %23:i32 = call %func_
+    %x_9:i32 = let %23
+    %25:bool = eq %x_9, 1i
+    if %25 [t: $B6, f: $B7] {  # if_2
+      $B6: {  # true
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_2
+      }
+      $B7: {  # false
+        store %x_GLF_color, vec4<f32>(0.0f, 0.0f, 0.0f, 1.0f)
+        exit_if  # if_2
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %27:void = call %main_1
+    %28:vec4<f32> = load %x_GLF_color
+    %29:main_out = construct %28
+    %30:bool = load %continue_execution
+    %31:bool = eq %30, false
+    if %31 [t: $B9] {  # if_3
+      $B9: {  # true
+        terminate_invocation
+      }
+    }
+    ret %29
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B10: {
+    %33:i32 = convert %value
+    %34:bool = gte %value, -2147483648.0f
+    %35:i32 = select -2147483648i, %33, %34
+    %36:bool = lte %value, 2147483520.0f
+    %37:i32 = select 2147483647i, %35, %36
+    ret %37
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.msl
index 446dc2d..5219abb 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,63 +8,71 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %j:ptr<function, i32, read_write> = var
     %x_41:ptr<function, f32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
         %7:f32 = load_vector_element %6, 0u
-        %8:i32 = convert %7
+        %8:i32 = call %tint_f32_to_i32, %7
         store %j, %8
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %9:i32 = load %j
-            %10:bool = lt %9, 2i
-            if %10 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+        loop [b: $B5] {  # loop_2
+          $B5: {  # body
+            %10:i32 = load %j
+            %11:bool = lt %10, 2i
+            if %11 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_2
               }
             }
             ret
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %12:f32 = load_vector_element %11, 1u
-        store %x_41, %12
-        %13:f32 = load %x_41
-        %14:bool = gt 0.0f, %13
-        %15:bool = eq %14, false
-        break_if %15 %b3
+      $B4: {  # continuing
+        %12:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %13:f32 = load_vector_element %12, 1u
+        store %x_41, %13
+        %14:f32 = load %x_41
+        %15:bool = gt 0.0f, %14
+        %16:bool = eq %15, false
+        break_if %16  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %16:f32 = load %x_41
-    %x_43:i32 = convert %16
+    %17:f32 = load %x_41
+    %18:i32 = call %tint_f32_to_i32, %17
+    %x_43:i32 = let %18
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %21:void = call %main_1
+    %22:vec4<f32> = load %x_GLF_color
+    %23:main_out = construct %22
+    ret %23
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B9: {
+    %25:i32 = convert %value
+    %26:bool = gte %value, -2147483648.0f
+    %27:i32 = select -2147483648i, %25, %26
+    %28:bool = lte %value, 2147483520.0f
+    %29:i32 = select 2147483647i, %27, %28
+    ret %29
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.msl
index b5c520f..7e41e80 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/while-function-always-false/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,63 +8,73 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %j:ptr<function, i32, read_write> = var
     %x_41:ptr<function, f32, read_write> = var
     store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %x_32:f32 = load_vector_element %6, 0u
-        %8:i32 = convert %x_32
-        store %j, %8
-        loop [b: %b5, c: %b6] {  # loop_2
-          %b5 = block {  # body
-            %x_8:i32 = load %j
-            %10:bool = lt %x_8, 2i
-            if %10 [t: %b7, f: %b8] {  # if_1
-              %b7 = block {  # true
+        %7:f32 = load_vector_element %6, 0u
+        %x_32:f32 = let %7
+        %9:i32 = call %tint_f32_to_i32, %x_32
+        store %j, %9
+        loop [b: $B5] {  # loop_2
+          $B5: {  # body
+            %11:i32 = load %j
+            %x_8:i32 = let %11
+            %13:bool = lt %x_8, 2i
+            if %13 [t: $B6, f: $B7] {  # if_1
+              $B6: {  # true
                 exit_if  # if_1
               }
-              %b8 = block {  # false
+              $B7: {  # false
                 exit_loop  # loop_2
               }
             }
             ret
           }
-          %b6 = block {  # continuing
-            next_iteration %b5
-          }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %11:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-        %12:f32 = load_vector_element %11, 1u
-        store %x_41, %12
-        %13:f32 = load %x_41
-        %14:bool = gt 0.0f, %13
-        %15:bool = eq %14, false
-        break_if %15 %b3
+      $B4: {  # continuing
+        %14:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
+        %15:f32 = load_vector_element %14, 1u
+        store %x_41, %15
+        %16:f32 = load %x_41
+        %17:bool = gt 0.0f, %16
+        %18:bool = eq %17, false
+        break_if %18  # -> [t: exit_loop loop_1, f: $B3]
       }
     }
-    %16:f32 = load %x_41
-    %x_43:i32 = convert %16
+    %19:f32 = load %x_41
+    %20:i32 = call %tint_f32_to_i32, %19
+    %x_43:i32 = let %20
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b9 {
-  %b9 = block {
-    %19:void = call %main_1
-    %20:vec4<f32> = load %x_GLF_color
-    %21:main_out = construct %20
-    ret %21
+%tint_symbol = @fragment func():main_out {
+  $B8: {
+    %23:void = call %main_1
+    %24:vec4<f32> = load %x_GLF_color
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B9: {
+    %27:i32 = convert %value
+    %28:bool = gte %value, -2147483648.0f
+    %29:i32 = select -2147483648i, %27, %28
+    %30:bool = lte %value, 2147483520.0f
+    %31:i32 = select 2147483647i, %29, %30
+    ret %31
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.msl
index a922f48..1f54f5c 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   injected:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %idx:ptr<function, i32, read_write> = var
     %m43:ptr<function, mat4x3<f32>, read_write> = var
     %ll_1:ptr<function, i32, read_write> = var
@@ -31,14 +31,14 @@
     store %m43, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
     store %ll_1, 0i
     store %GLF_live6rows, 2i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %16:i32 = load %ll_1
         %17:ptr<uniform, i32, read> = access %x_9, 0u
         %18:i32 = load %17
         %19:bool = gte %16, %18
-        if %19 [t: %b5] {  # if_1
-          %b5 = block {  # true
+        if %19 [t: $B5] {  # if_1
+          $B5: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_loop  # loop_1
           }
@@ -51,15 +51,15 @@
         store %z, %23
         store %ll_2, 0i
         store %ctr, 0i
-        loop [b: %b6, c: %b7] {  # loop_2
-          %b6 = block {  # body
+        loop [b: $B6, c: $B7] {  # loop_2
+          $B6: {  # body
             %24:i32 = load %ctr
             %25:bool = lt %24, 1i
-            if %25 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
+            if %25 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
                 exit_if  # if_2
               }
-              %b9 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_2
               }
             }
@@ -67,8 +67,8 @@
             %27:ptr<uniform, i32, read> = access %x_9, 0u
             %28:i32 = load %27
             %29:bool = gte %26, %28
-            if %29 [t: %b10] {  # if_3
-              %b10 = block {  # true
+            if %29 [t: $B10] {  # if_3
+              $B10: {  # true
                 exit_loop  # loop_2
               }
             }
@@ -79,86 +79,94 @@
             store %tempm43, %32
             store %ll_3, 0i
             store %c, 0i
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
                 %33:i32 = load %z
                 %34:bool = lt 1i, %33
-                if %34 [t: %b13, f: %b14] {  # if_4
-                  %b13 = block {  # true
+                if %34 [t: $B13, f: $B14] {  # if_4
+                  $B13: {  # true
                     exit_if  # if_4
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %d, 0i
-                %x_29:i32 = load %c
-                %x_30:i32 = load %c
-                %x_31:i32 = load %c
-                %x_32:i32 = load %d
-                %x_33:i32 = load %d
-                %x_34:i32 = load %d
-                %41:bool = gte %x_29, 0i
-                %42:bool = lt %x_30, 4i
-                %43:bool = and %41, %42
-                %44:i32 = select 0i, %x_31, %43
-                %45:ptr<function, vec3<f32>, read_write> = access %tempm43, %44
-                %46:bool = gte %x_32, 0i
-                %47:bool = lt %x_33, 3i
-                %48:bool = and %46, %47
-                %49:i32 = select 0i, %x_34, %48
-                store_vector_element %45, %49, 1.0f
-                continue %b12
+                %35:i32 = load %c
+                %x_29:i32 = let %35
+                %37:i32 = load %c
+                %x_30:i32 = let %37
+                %39:i32 = load %c
+                %x_31:i32 = let %39
+                %41:i32 = load %d
+                %x_32:i32 = let %41
+                %43:i32 = load %d
+                %x_33:i32 = let %43
+                %45:i32 = load %d
+                %x_34:i32 = let %45
+                %47:bool = gte %x_29, 0i
+                %48:bool = lt %x_30, 4i
+                %49:bool = and %47, %48
+                %50:i32 = select 0i, %x_31, %49
+                %51:ptr<function, vec3<f32>, read_write> = access %tempm43, %50
+                %52:ptr<function, vec3<f32>, read_write> = let %51
+                %53:bool = gte %x_32, 0i
+                %54:bool = lt %x_33, 3i
+                %55:bool = and %53, %54
+                %56:i32 = select 0i, %x_34, %55
+                store_vector_element %52, %56, 1.0f
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %50:i32 = load %c
-                %51:i32 = add %50, 1i
-                store %c, %51
-                next_iteration %b11
+              $B12: {  # continuing
+                %57:i32 = load %c
+                %58:i32 = add %57, 1i
+                store %c, %58
+                next_iteration  # -> $B11
               }
             }
-            %52:i32 = load %idx
-            %53:i32 = load %idx
-            %54:bool = gte %53, 0i
-            %55:i32 = load %idx
-            %56:bool = lt %55, 9i
-            %57:bool = and %54, %56
-            %x_117:i32 = select 0i, %52, %57
-            %59:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
-            %60:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
-            %61:f32 = load %60
-            %62:i32 = load %ctr
-            %63:ptr<function, vec3<f32>, read_write> = access %m43, %62
-            %64:f32 = load_vector_element %63, 1u
-            %65:f32 = add %61, %64
-            store %59, %65
-            continue %b7
+            %59:i32 = load %idx
+            %60:i32 = load %idx
+            %61:bool = gte %60, 0i
+            %62:i32 = load %idx
+            %63:bool = lt %62, 9i
+            %64:bool = and %61, %63
+            %65:i32 = select 0i, %59, %64
+            %x_117:i32 = let %65
+            %67:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
+            %68:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
+            %69:f32 = load %68
+            %70:i32 = load %ctr
+            %71:ptr<function, vec3<f32>, read_write> = access %m43, %70
+            %72:f32 = load_vector_element %71, 1u
+            %73:f32 = add %69, %72
+            store %67, %73
+            continue  # -> $B7
           }
-          %b7 = block {  # continuing
-            %66:i32 = load %ctr
-            %67:i32 = add %66, 1i
-            store %ctr, %67
-            next_iteration %b6
+          $B7: {  # continuing
+            %74:i32 = load %ctr
+            %75:i32 = add %74, 1i
+            store %ctr, %75
+            next_iteration  # -> $B6
           }
         }
-        %68:i32 = load %idx
-        %69:i32 = add %68, 1i
-        store %idx, %69
-        continue %b4
+        %76:i32 = load %idx
+        %77:i32 = add %76, 1i
+        store %idx, %77
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %71:void = call %main_1
-    %72:vec4<f32> = load %x_GLF_color
-    %73:main_out = construct %72
-    ret %73
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %79:void = call %main_1
+    %80:vec4<f32> = load %x_GLF_color
+    %81:main_out = construct %80
+    ret %81
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.msl
index 4c071ce..9331a47 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-before-break/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(4) {
   injected:i32 @offset(0)
 }
 
@@ -8,13 +8,13 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_9:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %idx:ptr<function, i32, read_write> = var
     %m43:ptr<function, mat4x3<f32>, read_write> = var
     %ll_1:ptr<function, i32, read_write> = var
@@ -31,134 +31,161 @@
     store %m43, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
     store %ll_1, 0i
     store %GLF_live6rows, 2i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_18:i32 = load %ll_1
-        %17:ptr<uniform, i32, read> = access %x_9, 0u
-        %x_19:i32 = load %17
-        %19:bool = gte %x_18, %x_19
-        if %19 [t: %b5] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %16:i32 = load %ll_1
+        %x_18:i32 = let %16
+        %18:ptr<uniform, i32, read> = access %x_9, 0u
+        %19:i32 = load %18
+        %x_19:i32 = let %19
+        %21:bool = gte %x_18, %x_19
+        if %21 [t: $B5] {  # if_1
+          $B5: {  # true
             store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
             exit_loop  # loop_1
           }
         }
-        %x_20:i32 = load %ll_1
-        %21:i32 = add %x_20, 1i
-        store %ll_1, %21
-        %22:ptr<uniform, i32, read> = access %x_9, 0u
-        %x_22:i32 = load %22
+        %22:i32 = load %ll_1
+        %x_20:i32 = let %22
+        %24:i32 = add %x_20, 1i
+        store %ll_1, %24
+        %25:ptr<uniform, i32, read> = access %x_9, 0u
+        %26:i32 = load %25
+        %x_22:i32 = let %26
         store %z, %x_22
         store %ll_2, 0i
         store %ctr, 0i
-        loop [b: %b6, c: %b7] {  # loop_2
-          %b6 = block {  # body
-            %x_23:i32 = load %ctr
-            %25:bool = lt %x_23, 1i
-            if %25 [t: %b8, f: %b9] {  # if_2
-              %b8 = block {  # true
+        loop [b: $B6, c: $B7] {  # loop_2
+          $B6: {  # body
+            %28:i32 = load %ctr
+            %x_23:i32 = let %28
+            %30:bool = lt %x_23, 1i
+            if %30 [t: $B8, f: $B9] {  # if_2
+              $B8: {  # true
                 exit_if  # if_2
               }
-              %b9 = block {  # false
+              $B9: {  # false
                 exit_loop  # loop_2
               }
             }
-            %x_24:i32 = load %ll_2
-            %27:ptr<uniform, i32, read> = access %x_9, 0u
-            %x_25:i32 = load %27
-            %29:bool = gte %x_24, %x_25
-            if %29 [t: %b10] {  # if_3
-              %b10 = block {  # true
+            %31:i32 = load %ll_2
+            %x_24:i32 = let %31
+            %33:ptr<uniform, i32, read> = access %x_9, 0u
+            %34:i32 = load %33
+            %x_25:i32 = let %34
+            %36:bool = gte %x_24, %x_25
+            if %36 [t: $B10] {  # if_3
+              $B10: {  # true
                 exit_loop  # loop_2
               }
             }
-            %x_26:i32 = load %ll_2
-            %31:i32 = add %x_26, 1i
-            store %ll_2, %31
-            %x_98:mat4x3<f32> = load %m43
+            %37:i32 = load %ll_2
+            %x_26:i32 = let %37
+            %39:i32 = add %x_26, 1i
+            store %ll_2, %39
+            %40:mat4x3<f32> = load %m43
+            %x_98:mat4x3<f32> = let %40
             store %tempm43, %x_98
             store %ll_3, 0i
             store %c, 0i
-            loop [b: %b11, c: %b12] {  # loop_3
-              %b11 = block {  # body
-                %x_28:i32 = load %z
-                %34:bool = lt 1i, %x_28
-                if %34 [t: %b13, f: %b14] {  # if_4
-                  %b13 = block {  # true
+            loop [b: $B11, c: $B12] {  # loop_3
+              $B11: {  # body
+                %42:i32 = load %z
+                %x_28:i32 = let %42
+                %44:bool = lt 1i, %x_28
+                if %44 [t: $B13, f: $B14] {  # if_4
+                  $B13: {  # true
                     exit_if  # if_4
                   }
-                  %b14 = block {  # false
+                  $B14: {  # false
                     exit_loop  # loop_3
                   }
                 }
                 store %d, 0i
-                %x_29:i32 = load %c
-                %x_30:i32 = load %c
-                %x_31:i32 = load %c
-                %x_32:i32 = load %d
-                %x_33:i32 = load %d
-                %x_34:i32 = load %d
-                %41:bool = gte %x_29, 0i
-                %42:bool = lt %x_30, 4i
-                %43:bool = and %41, %42
-                %44:i32 = select 0i, %x_31, %43
-                %45:ptr<function, vec3<f32>, read_write> = access %tempm43, %44
-                %46:bool = gte %x_32, 0i
-                %47:bool = lt %x_33, 3i
-                %48:bool = and %46, %47
-                %49:i32 = select 0i, %x_34, %48
-                store_vector_element %45, %49, 1.0f
-                continue %b12
+                %45:i32 = load %c
+                %x_29:i32 = let %45
+                %47:i32 = load %c
+                %x_30:i32 = let %47
+                %49:i32 = load %c
+                %x_31:i32 = let %49
+                %51:i32 = load %d
+                %x_32:i32 = let %51
+                %53:i32 = load %d
+                %x_33:i32 = let %53
+                %55:i32 = load %d
+                %x_34:i32 = let %55
+                %57:bool = gte %x_29, 0i
+                %58:bool = lt %x_30, 4i
+                %59:bool = and %57, %58
+                %60:i32 = select 0i, %x_31, %59
+                %61:ptr<function, vec3<f32>, read_write> = access %tempm43, %60
+                %62:ptr<function, vec3<f32>, read_write> = let %61
+                %63:bool = gte %x_32, 0i
+                %64:bool = lt %x_33, 3i
+                %65:bool = and %63, %64
+                %66:i32 = select 0i, %x_34, %65
+                store_vector_element %62, %66, 1.0f
+                continue  # -> $B12
               }
-              %b12 = block {  # continuing
-                %x_35:i32 = load %c
-                %51:i32 = add %x_35, 1i
-                store %c, %51
-                next_iteration %b11
+              $B12: {  # continuing
+                %67:i32 = load %c
+                %x_35:i32 = let %67
+                %69:i32 = add %x_35, 1i
+                store %c, %69
+                next_iteration  # -> $B11
               }
             }
-            %x_37:i32 = load %idx
-            %x_38:i32 = load %idx
-            %x_39:i32 = load %idx
-            %55:bool = gte %x_37, 0i
-            %56:bool = lt %x_38, 9i
-            %57:bool = and %55, %56
-            %x_117:i32 = select 0i, %x_39, %57
-            %x_40:i32 = load %ctr
-            %60:ptr<function, vec3<f32>, read_write> = access %m43, %x_40
-            %x_119:f32 = load_vector_element %60, 1u
-            %62:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
-            %x_121:f32 = load %62
-            %64:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
-            %65:f32 = add %x_121, %x_119
-            store %64, %65
-            continue %b7
+            %70:i32 = load %idx
+            %x_37:i32 = let %70
+            %72:i32 = load %idx
+            %x_38:i32 = let %72
+            %74:i32 = load %idx
+            %x_39:i32 = let %74
+            %76:bool = gte %x_37, 0i
+            %77:bool = lt %x_38, 9i
+            %78:bool = and %76, %77
+            %79:i32 = select 0i, %x_39, %78
+            %x_117:i32 = let %79
+            %81:i32 = load %ctr
+            %x_40:i32 = let %81
+            %83:ptr<function, vec3<f32>, read_write> = access %m43, %x_40
+            %84:f32 = load_vector_element %83, 1u
+            %x_119:f32 = let %84
+            %86:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
+            %87:f32 = load %86
+            %x_121:f32 = let %87
+            %89:ptr<function, f32, read_write> = access %GLF_live6sums, %x_117
+            %90:f32 = add %x_121, %x_119
+            store %89, %90
+            continue  # -> $B7
           }
-          %b7 = block {  # continuing
-            %x_41:i32 = load %ctr
-            %67:i32 = add %x_41, 1i
-            store %ctr, %67
-            next_iteration %b6
+          $B7: {  # continuing
+            %91:i32 = load %ctr
+            %x_41:i32 = let %91
+            %93:i32 = add %x_41, 1i
+            store %ctr, %93
+            next_iteration  # -> $B6
           }
         }
-        %x_43:i32 = load %idx
-        %69:i32 = add %x_43, 1i
-        store %idx, %69
-        continue %b4
+        %94:i32 = load %idx
+        %x_43:i32 = let %94
+        %96:i32 = add %x_43, 1i
+        store %idx, %96
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        next_iteration %b3
+      $B4: {  # continuing
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b15 {
-  %b15 = block {
-    %71:void = call %main_1
-    %72:vec4<f32> = load %x_GLF_color
-    %73:main_out = construct %72
-    ret %73
+%tint_symbol = @fragment func():main_out {
+  $B15: {
+    %98:void = call %main_1
+    %99:vec4<f32> = load %x_GLF_color
+    %100:main_out = construct %99
+    ret %100
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.msl
index e603e15..1473a73 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: BST = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: BST = struct @align(4) {
   data:i32 @offset(0)
   leftIndex:i32 @offset(4)
   rightIndex:i32 @offset(8)
@@ -19,15 +19,15 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tree_1:ptr<private, array<BST, 10>, read_write> = var
   %x_27:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
     %8:ptr<function, i32, read_write> = access %tree, 0u
     %9:i32 = load %data
     store %8, %9
@@ -38,8 +38,8 @@
     ret
   }
 }
-%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void -> %b3 {
-  %b3 = block {
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
     %baseIndex:ptr<function, i32, read_write> = var
     %param:ptr<function, BST, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
@@ -48,16 +48,16 @@
     %GLF_live8i:ptr<function, i32, read_write> = var
     %GLF_live8A:ptr<function, array<f32, 50>, read_write> = var
     store %baseIndex, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
         %22:i32 = load %baseIndex
         %23:i32 = load %treeIndex
         %24:bool = lte %22, %23
-        if %24 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+        if %24 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
@@ -66,234 +66,249 @@
         %27:ptr<private, i32, read_write> = access %tree_1, %26, 0u
         %28:i32 = load %27
         %29:bool = lte %25, %28
-        if %29 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
+        if %29 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
             %30:i32 = load %baseIndex
             %31:ptr<private, i32, read_write> = access %tree_1, %30, 1u
             %32:i32 = load %31
             %33:bool = eq %32, -1i
-            if %33 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
-                %x_82:i32 = load %baseIndex
-                %35:ptr<private, i32, read_write> = access %tree_1, %x_82, 1u
-                %36:i32 = load %treeIndex
-                store %35, %36
-                %x_84:i32 = load %treeIndex
-                %38:ptr<private, BST, read_write> = access %tree_1, %x_84
-                %39:BST = load %38
-                store %param, %39
-                %40:i32 = load %data_1
-                store %param_1, %40
-                %41:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
-                %42:ptr<private, BST, read_write> = access %tree_1, %x_84
-                %43:BST = load %param
-                store %42, %43
+            if %33 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %34:i32 = load %baseIndex
+                %x_82:i32 = let %34
+                %36:ptr<private, i32, read_write> = access %tree_1, %x_82, 1u
+                %37:i32 = load %treeIndex
+                store %36, %37
+                %38:i32 = load %treeIndex
+                %x_84:i32 = let %38
+                %40:ptr<private, BST, read_write> = access %tree_1, %x_84
+                %41:BST = load %40
+                store %param, %41
+                %42:i32 = load %data_1
+                store %param_1, %42
+                %43:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %44:ptr<private, BST, read_write> = access %tree_1, %x_84
+                %45:BST = load %param
+                store %44, %45
                 ret
               }
-              %b11 = block {  # false
-                %44:i32 = load %baseIndex
-                %45:ptr<private, i32, read_write> = access %tree_1, %44, 1u
-                %46:i32 = load %45
-                store %baseIndex, %46
-                continue %b5
+              $B11: {  # false
+                %46:i32 = load %baseIndex
+                %47:ptr<private, i32, read_write> = access %tree_1, %46, 1u
+                %48:i32 = load %47
+                store %baseIndex, %48
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
-          %b9 = block {  # false
-            %47:i32 = load %baseIndex
-            %48:ptr<private, i32, read_write> = access %tree_1, %47, 2u
-            %49:i32 = load %48
-            %50:bool = eq %49, -1i
-            if %50 [t: %b12, f: %b13] {  # if_4
-              %b12 = block {  # true
-                %x_90:i32 = load %baseIndex
-                %52:ptr<private, i32, read_write> = access %tree_1, %x_90, 2u
-                %53:i32 = load %treeIndex
-                store %52, %53
-                %x_92:i32 = load %treeIndex
-                %55:ptr<private, BST, read_write> = access %tree_1, %x_92
-                %56:BST = load %55
-                store %param_2, %56
-                %57:i32 = load %data_1
-                store %param_3, %57
-                %58:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+          $B9: {  # false
+            %49:i32 = load %baseIndex
+            %50:ptr<private, i32, read_write> = access %tree_1, %49, 2u
+            %51:i32 = load %50
+            %52:bool = eq %51, -1i
+            if %52 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %53:i32 = load %baseIndex
+                %x_90:i32 = let %53
+                %55:ptr<private, i32, read_write> = access %tree_1, %x_90, 2u
+                %56:i32 = load %treeIndex
+                store %55, %56
+                %57:i32 = load %treeIndex
+                %x_92:i32 = let %57
                 %59:ptr<private, BST, read_write> = access %tree_1, %x_92
-                %60:BST = load %param_2
-                store %59, %60
+                %60:BST = load %59
+                store %param_2, %60
+                %61:i32 = load %data_1
+                store %param_3, %61
+                %62:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %63:ptr<private, BST, read_write> = access %tree_1, %x_92
+                %64:BST = load %param_2
+                store %63, %64
                 ret
               }
-              %b13 = block {  # false
+              $B13: {  # false
                 store %GLF_live8i, 1i
-                %61:i32 = load %GLF_live8i
-                %62:i32 = load %GLF_live8i
-                %63:bool = gte %62, 0i
-                %64:i32 = load %GLF_live8i
-                %65:bool = lt %64, 50i
-                %66:bool = and %63, %65
-                %x_369:i32 = select 0i, %61, %66
-                %68:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
-                %69:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
-                %70:f32 = load %69
-                %71:ptr<function, f32, read_write> = access %GLF_live8A, 0i
-                %72:f32 = load %71
-                %73:f32 = add %70, %72
-                store %68, %73
-                loop [b: %b14, c: %b15] {  # loop_2
-                  %b14 = block {  # body
-                    %74:i32 = load %baseIndex
-                    %75:ptr<private, i32, read_write> = access %tree_1, %74, 2u
-                    %76:i32 = load %75
-                    store %baseIndex, %76
-                    continue %b15
+                %65:i32 = load %GLF_live8i
+                %66:i32 = load %GLF_live8i
+                %67:bool = gte %66, 0i
+                %68:i32 = load %GLF_live8i
+                %69:bool = lt %68, 50i
+                %70:bool = and %67, %69
+                %71:i32 = select 0i, %65, %70
+                %x_369:i32 = let %71
+                %73:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
+                %74:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
+                %75:f32 = load %74
+                %76:ptr<function, f32, read_write> = access %GLF_live8A, 0i
+                %77:f32 = load %76
+                %78:f32 = add %75, %77
+                store %73, %78
+                loop [b: $B14, c: $B15] {  # loop_2
+                  $B14: {  # body
+                    %79:i32 = load %baseIndex
+                    %80:ptr<private, i32, read_write> = access %tree_1, %79, 2u
+                    %81:i32 = load %80
+                    store %baseIndex, %81
+                    continue  # -> $B15
                   }
-                  %b15 = block {  # continuing
-                    %77:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-                    %x_382:f32 = load_vector_element %77, 0u
-                    %79:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-                    %x_384:f32 = load_vector_element %79, 1u
-                    %81:bool = gt %x_382, %x_384
-                    %82:bool = eq %81, false
-                    break_if %82 %b14
+                  $B15: {  # continuing
+                    %82:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+                    %83:f32 = load_vector_element %82, 0u
+                    %x_382:f32 = let %83
+                    %85:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+                    %86:f32 = load_vector_element %85, 1u
+                    %x_384:f32 = let %86
+                    %88:bool = gt %x_382, %x_384
+                    %89:bool = eq %88, false
+                    break_if %89  # -> [t: exit_loop loop_2, f: $B14]
                   }
                 }
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b5
+        unreachable
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 -> %b16 {
-  %b16 = block {
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B16: {
     %index:ptr<function, i32, read_write> = var
     %currentNode:ptr<function, BST, read_write> = var
     %x_387:ptr<function, i32, read_write> = var
     store %index, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %88:i32 = load %index
-        %89:bool = neq %88, -1i
-        if %89 [t: %b19, f: %b20] {  # if_5
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %95:i32 = load %index
+        %96:bool = neq %95, -1i
+        if %96 [t: $B19, f: $B20] {  # if_5
+          $B19: {  # true
             exit_if  # if_5
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %90:i32 = load %index
-        %91:ptr<private, BST, read_write> = access %tree_1, %90
-        %92:BST = load %91
-        store %currentNode, %92
-        %93:ptr<function, i32, read_write> = access %currentNode, 0u
-        %94:i32 = load %93
-        %95:i32 = load %t
-        %96:bool = eq %94, %95
-        if %96 [t: %b21] {  # if_6
-          %b21 = block {  # true
-            %x_103:i32 = load %t
+        %97:i32 = load %index
+        %98:ptr<private, BST, read_write> = access %tree_1, %97
+        %99:BST = load %98
+        store %currentNode, %99
+        %100:ptr<function, i32, read_write> = access %currentNode, 0u
+        %101:i32 = load %100
+        %102:i32 = load %t
+        %103:bool = eq %101, %102
+        if %103 [t: $B21] {  # if_6
+          $B21: {  # true
+            %104:i32 = load %t
+            %x_103:i32 = let %104
             ret %x_103
           }
         }
-        %98:i32 = load %t
-        %99:ptr<function, i32, read_write> = access %currentNode, 0u
-        %100:i32 = load %99
-        %101:bool = gt %98, %100
-        if %101 [t: %b22, f: %b23] {  # if_7
-          %b22 = block {  # true
-            %102:ptr<function, i32, read_write> = access %currentNode, 2u
-            %103:i32 = load %102
-            store %x_387, %103
+        %106:i32 = load %t
+        %107:ptr<function, i32, read_write> = access %currentNode, 0u
+        %108:i32 = load %107
+        %109:bool = gt %106, %108
+        if %109 [t: $B22, f: $B23] {  # if_7
+          $B22: {  # true
+            %110:ptr<function, i32, read_write> = access %currentNode, 2u
+            %111:i32 = load %110
+            store %x_387, %111
             exit_if  # if_7
           }
-          %b23 = block {  # false
-            %104:ptr<function, i32, read_write> = access %currentNode, 1u
-            %105:i32 = load %104
-            store %x_387, %105
+          $B23: {  # false
+            %112:ptr<function, i32, read_write> = access %currentNode, 1u
+            %113:i32 = load %112
+            store %x_387, %113
             exit_if  # if_7
           }
         }
-        %106:i32 = load %x_387
-        store %index, %106
-        continue %b18
+        %114:i32 = load %x_387
+        store %index, %114
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        next_iteration %b17
+      $B18: {  # continuing
+        next_iteration  # -> $B17
       }
     }
     ret -1i
   }
 }
-%makeFrame_f1_ = func(%v:ptr<function, f32, read_write>):f32 -> %b24 {
-  %b24 = block {
+%makeFrame_f1_ = func(%v:ptr<function, f32, read_write>):f32 {
+  $B24: {
     %param_5:ptr<function, i32, read_write> = var
     %param_6:ptr<function, i32, read_write> = var
     %param_7:ptr<function, i32, read_write> = var
-    %112:f32 = load %v
-    %113:f32 = mul %112, 6.5f
-    store %v, %113
-    %114:f32 = load %v
-    %115:bool = lt %114, 1.5f
-    if %115 [t: %b25] {  # if_8
-      %b25 = block {  # true
+    %120:f32 = load %v
+    %121:f32 = mul %120, 6.5f
+    store %v, %121
+    %122:f32 = load %v
+    %123:bool = lt %122, 1.5f
+    if %123 [t: $B25] {  # if_8
+      $B25: {  # true
         store %param_5, 100i
-        %x_110:i32 = call %search_i1_, %param_5
-        %117:f32 = convert %x_110
-        ret %117
+        %124:i32 = call %search_i1_, %param_5
+        %x_110:i32 = let %124
+        %126:f32 = convert %x_110
+        ret %126
       }
     }
-    %118:f32 = load %v
-    %119:bool = lt %118, 4.0f
-    if %119 [t: %b26] {  # if_9
-      %b26 = block {  # true
+    %127:f32 = load %v
+    %128:bool = lt %127, 4.0f
+    if %128 [t: $B26] {  # if_9
+      $B26: {  # true
         ret 0.0f
       }
     }
-    %x_429:f32 = load %v
+    %129:f32 = load %v
+    %x_429:f32 = let %129
     store %param_6, 6i
-    %x_111:i32 = call %search_i1_, %param_6
-    %122:f32 = convert %x_111
-    %123:bool = lt %x_429, %122
-    if %123 [t: %b27] {  # if_10
-      %b27 = block {  # true
+    %131:i32 = call %search_i1_, %param_6
+    %x_111:i32 = let %131
+    %133:f32 = convert %x_111
+    %134:bool = lt %x_429, %133
+    if %134 [t: $B27] {  # if_10
+      $B27: {  # true
         ret 1.0f
       }
     }
     store %param_7, 30i
-    %x_112:i32 = call %search_i1_, %param_7
-    %125:f32 = convert %x_112
-    %126:f32 = add 10.0f, %125
-    ret %126
-  }
-}
-%hueColor_f1_ = func(%angle:ptr<function, f32, read_write>):vec3<f32> -> %b28 {
-  %b28 = block {
-    %nodeData:ptr<function, f32, read_write> = var
-    %param_4:ptr<function, i32, read_write> = var
-    store %param_4, 15i
-    %x_109:i32 = call %search_i1_, %param_4
-    %132:f32 = convert %x_109
-    store %nodeData, %132
-    %x_409:f32 = load %angle
-    %x_410:f32 = load %nodeData
-    %135:vec3<f32> = construct 1.0f, 5.0f, %x_410
-    %136:vec3<f32> = mul %135, %x_409
-    %137:vec3<f32> = add vec3<f32>(30.0f), %136
-    %138:vec3<f32> = div %137, vec3<f32>(50.0f)
+    %135:i32 = call %search_i1_, %param_7
+    %x_112:i32 = let %135
+    %137:f32 = convert %x_112
+    %138:f32 = add 10.0f, %137
     ret %138
   }
 }
-%main_1 = func():void -> %b29 {
-  %b29 = block {
+%hueColor_f1_ = func(%angle:ptr<function, f32, read_write>):vec3<f32> {
+  $B28: {
+    %nodeData:ptr<function, f32, read_write> = var
+    %param_4:ptr<function, i32, read_write> = var
+    store %param_4, 15i
+    %143:i32 = call %search_i1_, %param_4
+    %x_109:i32 = let %143
+    %145:f32 = convert %x_109
+    store %nodeData, %145
+    %146:f32 = load %angle
+    %x_409:f32 = let %146
+    %148:f32 = load %nodeData
+    %x_410:f32 = let %148
+    %150:vec3<f32> = construct 1.0f, 5.0f, %x_410
+    %151:vec3<f32> = mul %150, %x_409
+    %152:vec3<f32> = add vec3<f32>(30.0f), %151
+    %153:vec3<f32> = div %152, vec3<f32>(50.0f)
+    ret %153
+  }
+}
+%main_1 = func():void {
+  $B29: {
     %treeIndex_1:ptr<function, i32, read_write> = var
     %param_8:ptr<function, BST, read_write> = var
     %param_9:ptr<function, i32, read_write> = var
@@ -334,274 +349,287 @@
     %x_235:ptr<function, vec3<f32>, read_write> = var
     %param_31:ptr<function, f32, read_write> = var
     store %treeIndex_1, 0i
-    %179:ptr<private, BST, read_write> = access %tree_1, 0i
-    %180:BST = load %179
-    store %param_8, %180
+    %194:ptr<private, BST, read_write> = access %tree_1, 0i
+    %195:BST = load %194
+    store %param_8, %195
     store %param_9, 9i
-    %181:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_8, %param_9
-    %182:ptr<private, BST, read_write> = access %tree_1, 0i
-    %183:BST = load %param_8
-    store %182, %183
-    %184:i32 = load %treeIndex_1
-    %185:i32 = add %184, 1i
-    store %treeIndex_1, %185
-    %186:i32 = load %treeIndex_1
-    store %param_10, %186
+    %196:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_8, %param_9
+    %197:ptr<private, BST, read_write> = access %tree_1, 0i
+    %198:BST = load %param_8
+    store %197, %198
+    %199:i32 = load %treeIndex_1
+    %200:i32 = add %199, 1i
+    store %treeIndex_1, %200
+    %201:i32 = load %treeIndex_1
+    store %param_10, %201
     store %param_11, 5i
-    %187:void = call %insert_i1_i1_, %param_10, %param_11
-    %188:i32 = load %treeIndex_1
-    %189:i32 = add %188, 1i
-    store %treeIndex_1, %189
+    %202:void = call %insert_i1_i1_, %param_10, %param_11
+    %203:i32 = load %treeIndex_1
+    %204:i32 = add %203, 1i
+    store %treeIndex_1, %204
     store %GLF_live1_looplimiter2, 0i
     store %GLF_live1i, 0i
-    loop [b: %b30, c: %b31] {  # loop_4
-      %b30 = block {  # body
-        if true [t: %b32, f: %b33] {  # if_11
-          %b32 = block {  # true
+    loop [b: $B30, c: $B31] {  # loop_4
+      $B30: {  # body
+        if true [t: $B32, f: $B33] {  # if_11
+          $B32: {  # true
             exit_if  # if_11
           }
-          %b33 = block {  # false
+          $B33: {  # false
             exit_loop  # loop_4
           }
         }
-        %190:i32 = load %GLF_live1_looplimiter2
-        %191:bool = gte %190, 7i
-        if %191 [t: %b34] {  # if_12
-          %b34 = block {  # true
+        %205:i32 = load %GLF_live1_looplimiter2
+        %206:bool = gte %205, 7i
+        if %206 [t: $B34] {  # if_12
+          $B34: {  # true
             exit_loop  # loop_4
           }
         }
-        %192:i32 = load %GLF_live1_looplimiter2
-        %193:i32 = add %192, 1i
-        store %GLF_live1_looplimiter2, %193
-        continue %b31
+        %207:i32 = load %GLF_live1_looplimiter2
+        %208:i32 = add %207, 1i
+        store %GLF_live1_looplimiter2, %208
+        continue  # -> $B31
       }
-      %b31 = block {  # continuing
-        %194:i32 = load %GLF_live1i
-        %195:i32 = add %194, 1i
-        store %GLF_live1i, %195
-        next_iteration %b30
+      $B31: {  # continuing
+        %209:i32 = load %GLF_live1i
+        %210:i32 = add %209, 1i
+        store %GLF_live1i, %210
+        next_iteration  # -> $B30
       }
     }
-    %196:i32 = load %treeIndex_1
-    store %param_12, %196
+    %211:i32 = load %treeIndex_1
+    store %param_12, %211
     store %param_13, 12i
-    %197:void = call %insert_i1_i1_, %param_12, %param_13
-    %198:i32 = load %treeIndex_1
-    %199:i32 = add %198, 1i
-    store %treeIndex_1, %199
-    %200:i32 = load %treeIndex_1
-    store %param_14, %200
+    %212:void = call %insert_i1_i1_, %param_12, %param_13
+    %213:i32 = load %treeIndex_1
+    %214:i32 = add %213, 1i
+    store %treeIndex_1, %214
+    %215:i32 = load %treeIndex_1
+    store %param_14, %215
     store %param_15, 15i
-    %201:void = call %insert_i1_i1_, %param_14, %param_15
-    %202:i32 = load %treeIndex_1
-    %203:i32 = add %202, 1i
-    store %treeIndex_1, %203
-    %204:i32 = load %treeIndex_1
-    store %param_16, %204
+    %216:void = call %insert_i1_i1_, %param_14, %param_15
+    %217:i32 = load %treeIndex_1
+    %218:i32 = add %217, 1i
+    store %treeIndex_1, %218
+    %219:i32 = load %treeIndex_1
+    store %param_16, %219
     store %param_17, 7i
-    %205:void = call %insert_i1_i1_, %param_16, %param_17
-    %206:i32 = load %treeIndex_1
-    %207:i32 = add %206, 1i
-    store %treeIndex_1, %207
-    %208:i32 = load %treeIndex_1
-    store %param_18, %208
+    %220:void = call %insert_i1_i1_, %param_16, %param_17
+    %221:i32 = load %treeIndex_1
+    %222:i32 = add %221, 1i
+    store %treeIndex_1, %222
+    %223:i32 = load %treeIndex_1
+    store %param_18, %223
     store %param_19, 8i
-    %209:void = call %insert_i1_i1_, %param_18, %param_19
-    %210:i32 = load %treeIndex_1
-    %211:i32 = add %210, 1i
-    store %treeIndex_1, %211
-    %212:i32 = load %treeIndex_1
-    store %param_20, %212
+    %224:void = call %insert_i1_i1_, %param_18, %param_19
+    %225:i32 = load %treeIndex_1
+    %226:i32 = add %225, 1i
+    store %treeIndex_1, %226
+    %227:i32 = load %treeIndex_1
+    store %param_20, %227
     store %param_21, 2i
-    %213:void = call %insert_i1_i1_, %param_20, %param_21
-    %214:i32 = load %treeIndex_1
-    %215:i32 = add %214, 1i
-    store %treeIndex_1, %215
-    %216:i32 = load %treeIndex_1
-    store %param_22, %216
+    %228:void = call %insert_i1_i1_, %param_20, %param_21
+    %229:i32 = load %treeIndex_1
+    %230:i32 = add %229, 1i
+    store %treeIndex_1, %230
+    %231:i32 = load %treeIndex_1
+    store %param_22, %231
     store %param_23, 6i
-    %217:void = call %insert_i1_i1_, %param_22, %param_23
-    %218:i32 = load %treeIndex_1
-    %219:i32 = add %218, 1i
-    store %treeIndex_1, %219
+    %232:void = call %insert_i1_i1_, %param_22, %param_23
+    %233:i32 = load %treeIndex_1
+    %234:i32 = add %233, 1i
+    store %treeIndex_1, %234
     store %GLF_live4_looplimiter3, 0i
     store %GLF_live4i, 0i
-    loop [b: %b35, c: %b36] {  # loop_5
-      %b35 = block {  # body
-        if true [t: %b37, f: %b38] {  # if_13
-          %b37 = block {  # true
+    loop [b: $B35, c: $B36] {  # loop_5
+      $B35: {  # body
+        if true [t: $B37, f: $B38] {  # if_13
+          $B37: {  # true
             exit_if  # if_13
           }
-          %b38 = block {  # false
+          $B38: {  # false
             exit_loop  # loop_5
           }
         }
-        %220:i32 = load %GLF_live4_looplimiter3
-        %221:bool = gte %220, 3i
-        if %221 [t: %b39] {  # if_14
-          %b39 = block {  # true
+        %235:i32 = load %GLF_live4_looplimiter3
+        %236:bool = gte %235, 3i
+        if %236 [t: $B39] {  # if_14
+          $B39: {  # true
             exit_loop  # loop_5
           }
         }
-        %222:i32 = load %GLF_live4_looplimiter3
-        %223:i32 = add %222, 1i
-        store %GLF_live4_looplimiter3, %223
+        %237:i32 = load %GLF_live4_looplimiter3
+        %238:i32 = add %237, 1i
+        store %GLF_live4_looplimiter3, %238
         store %GLF_live4index, 1i
-        %x_144:i32 = load %GLF_live4index
-        %x_145:i32 = load %GLF_live4index
-        %x_146:i32 = load %GLF_live4index
-        %227:bool = gte %x_144, 0i
-        %228:bool = lt %x_145, 10i
-        %229:bool = and %227, %228
-        %230:i32 = select 0i, %x_146, %229
-        %231:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %230
-        %232:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, 1i
-        %233:f32 = load %232
-        store %231, %233
-        %x_147:i32 = load %GLF_live4i
-        %x_148:i32 = load %GLF_live4i
-        %x_149:i32 = load %GLF_live4i
-        %237:bool = gte %x_147, 0i
-        %238:bool = lt %x_148, 10i
-        %239:bool = and %237, %238
-        %240:i32 = select 0i, %x_149, %239
-        %241:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %240
-        store %241, 1.0f
-        continue %b36
+        %239:i32 = load %GLF_live4index
+        %x_144:i32 = let %239
+        %241:i32 = load %GLF_live4index
+        %x_145:i32 = let %241
+        %243:i32 = load %GLF_live4index
+        %x_146:i32 = let %243
+        %245:bool = gte %x_144, 0i
+        %246:bool = lt %x_145, 10i
+        %247:bool = and %245, %246
+        %248:i32 = select 0i, %x_146, %247
+        %249:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %248
+        %250:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, 1i
+        %251:f32 = load %250
+        store %249, %251
+        %252:i32 = load %GLF_live4i
+        %x_147:i32 = let %252
+        %254:i32 = load %GLF_live4i
+        %x_148:i32 = let %254
+        %256:i32 = load %GLF_live4i
+        %x_149:i32 = let %256
+        %258:bool = gte %x_147, 0i
+        %259:bool = lt %x_148, 10i
+        %260:bool = and %258, %259
+        %261:i32 = select 0i, %x_149, %260
+        %262:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %261
+        store %262, 1.0f
+        continue  # -> $B36
       }
-      %b36 = block {  # continuing
-        %242:i32 = load %GLF_live4i
-        %243:i32 = add %242, 1i
-        store %GLF_live4i, %243
-        next_iteration %b35
+      $B36: {  # continuing
+        %263:i32 = load %GLF_live4i
+        %264:i32 = add %263, 1i
+        store %GLF_live4i, %264
+        next_iteration  # -> $B35
       }
     }
-    %244:i32 = load %treeIndex_1
-    store %param_24, %244
+    %265:i32 = load %treeIndex_1
+    store %param_24, %265
     store %param_25, 17i
-    %245:void = call %insert_i1_i1_, %param_24, %param_25
-    %246:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %247:f32 = load_vector_element %246, 0u
-    %248:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %249:f32 = load_vector_element %248, 1u
-    %250:bool = gt %247, %249
-    if %250 [t: %b40] {  # if_15
-      %b40 = block {  # true
+    %266:void = call %insert_i1_i1_, %param_24, %param_25
+    %267:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %268:f32 = load_vector_element %267, 0u
+    %269:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %270:f32 = load_vector_element %269, 1u
+    %271:bool = gt %268, %270
+    if %271 [t: $B40] {  # if_15
+      $B40: {  # true
         ret
       }
     }
-    %251:i32 = load %treeIndex_1
-    %252:i32 = add %251, 1i
-    store %treeIndex_1, %252
-    %253:i32 = load %treeIndex_1
-    store %param_26, %253
+    %272:i32 = load %treeIndex_1
+    %273:i32 = add %272, 1i
+    store %treeIndex_1, %273
+    %274:i32 = load %treeIndex_1
+    store %param_26, %274
     store %param_27, 13i
-    %254:void = call %insert_i1_i1_, %param_26, %param_27
-    %255:vec4<f32> = load %gl_FragCoord
-    %256:vec2<f32> = swizzle %255, yx
-    %257:vec2<f32> = div %256, vec2<f32>(256.0f)
-    store %z, %257
-    %258:f32 = load_vector_element %z, 0u
-    store %param_28, %258
-    %x_290:f32 = call %makeFrame_f1_, %param_28
+    %275:void = call %insert_i1_i1_, %param_26, %param_27
+    %276:vec4<f32> = load %gl_FragCoord
+    %277:vec2<f32> = swizzle %276, yx
+    %278:vec2<f32> = div %277, vec2<f32>(256.0f)
+    store %z, %278
+    %279:f32 = load_vector_element %z, 0u
+    store %param_28, %279
+    %280:f32 = call %makeFrame_f1_, %param_28
+    %x_290:f32 = let %280
     store %x, %x_290
-    %260:f32 = load_vector_element %z, 1u
-    store %param_29, %260
-    %x_293:f32 = call %makeFrame_f1_, %param_29
+    %282:f32 = load_vector_element %z, 1u
+    store %param_29, %282
+    %283:f32 = call %makeFrame_f1_, %param_29
+    %x_293:f32 = let %283
     store %y, %x_293
     store %sum, -100i
     store %t_1, 0i
-    loop [b: %b41, c: %b42] {  # loop_6
-      %b41 = block {  # body
-        %262:i32 = load %t_1
-        %263:bool = lt %262, 20i
-        if %263 [t: %b43, f: %b44] {  # if_16
-          %b43 = block {  # true
+    loop [b: $B41, c: $B42] {  # loop_6
+      $B41: {  # body
+        %285:i32 = load %t_1
+        %286:bool = lt %285, 20i
+        if %286 [t: $B43, f: $B44] {  # if_16
+          $B43: {  # true
             exit_if  # if_16
           }
-          %b44 = block {  # false
+          $B44: {  # false
             exit_loop  # loop_6
           }
         }
-        %264:i32 = load %t_1
-        store %param_30, %264
-        %x_158:i32 = call %search_i1_, %param_30
+        %287:i32 = load %t_1
+        store %param_30, %287
+        %288:i32 = call %search_i1_, %param_30
+        %x_158:i32 = let %288
         store %result, %x_158
-        %266:i32 = load %result
-        %267:bool = gt %266, 0i
-        if %267 [t: %b45, f: %b46] {  # if_17
-          %b45 = block {  # true
+        %290:i32 = load %result
+        %291:bool = gt %290, 0i
+        if %291 [t: $B45, f: $B46] {  # if_17
+          $B45: {  # true
             exit_if  # if_17
           }
-          %b46 = block {  # false
-            %x_160:i32 = load %result
-            switch %x_160 [c: (0i, %b47), c: (-1i, %b48), c: (default, %b49)] {  # switch_1
-              %b47 = block {  # case
+          $B46: {  # false
+            %292:i32 = load %result
+            %x_160:i32 = let %292
+            switch %x_160 [c: (0i, $B47), c: (-1i, $B48), c: (default, $B49)] {  # switch_1
+              $B47: {  # case
                 ret
               }
-              %b48 = block {  # case
-                %269:i32 = load %sum
-                %270:i32 = add %269, 1i
-                store %sum, %270
+              $B48: {  # case
+                %294:i32 = load %sum
+                %295:i32 = add %294, 1i
+                store %sum, %295
                 exit_switch  # switch_1
               }
-              %b49 = block {  # case
+              $B49: {  # case
                 exit_switch  # switch_1
               }
             }
             exit_if  # if_17
           }
         }
-        continue %b42
+        continue  # -> $B42
       }
-      %b42 = block {  # continuing
-        %271:i32 = load %t_1
-        %272:i32 = add %271, 1i
-        store %t_1, %272
-        next_iteration %b41
+      $B42: {  # continuing
+        %296:i32 = load %t_1
+        %297:i32 = add %296, 1i
+        store %t_1, %297
+        next_iteration  # -> $B41
       }
     }
-    %273:f32 = load %x
-    %274:f32 = load %y
-    %275:i32 = load %sum
-    %276:f32 = convert %275
-    %277:f32 = mul %274, %276
-    %278:f32 = add %273, %277
-    store %a, %278
-    %279:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %280:f32 = load_vector_element %279, 0u
-    %281:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %282:f32 = load_vector_element %281, 1u
-    %283:bool = lt %280, %282
-    if %283 [t: %b50, f: %b51] {  # if_18
-      %b50 = block {  # true
+    %298:f32 = load %x
+    %299:f32 = let %298
+    %300:f32 = load %y
+    %301:f32 = let %300
+    %302:i32 = load %sum
+    %303:f32 = convert %302
+    %304:f32 = mul %301, %303
+    %305:f32 = add %299, %304
+    store %a, %305
+    %306:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %307:f32 = load_vector_element %306, 0u
+    %308:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %309:f32 = load_vector_element %308, 1u
+    %310:bool = lt %307, %309
+    if %310 [t: $B50, f: $B51] {  # if_18
+      $B50: {  # true
         store %x_235, vec3<f32>(1.0f, 0.0f, 0.0f)
         exit_if  # if_18
       }
-      %b51 = block {  # false
-        %284:f32 = load %a
-        store %param_31, %284
-        %x_321:vec3<f32> = call %hueColor_f1_, %param_31
+      $B51: {  # false
+        %311:f32 = load %a
+        store %param_31, %311
+        %312:vec3<f32> = call %hueColor_f1_, %param_31
+        %x_321:vec3<f32> = let %312
         store %x_235, %x_321
         exit_if  # if_18
       }
     }
-    %286:f32 = load_vector_element %x_235, 0u
-    %287:f32 = load_vector_element %x_235, 1u
-    %288:f32 = load_vector_element %x_235, 2u
-    %289:vec4<f32> = construct %286, %287, %288, 1.0f
-    store %x_GLF_color, %289
+    %314:f32 = load_vector_element %x_235, 0u
+    %315:f32 = load_vector_element %x_235, 1u
+    %316:f32 = load_vector_element %x_235, 2u
+    %317:vec4<f32> = construct %314, %315, %316, 1.0f
+    store %x_GLF_color, %317
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b52 {
-  %b52 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B52: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %292:void = call %main_1
-    %293:vec4<f32> = load %x_GLF_color
-    %294:main_out = construct %293
-    ret %294
+    %320:void = call %main_1
+    %321:vec4<f32> = load %x_GLF_color
+    %322:main_out = construct %321
+    ret %322
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.msl
index 0834031..15616a5 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: BST = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: BST = struct @align(4) {
   data:i32 @offset(0)
   leftIndex:i32 @offset(4)
   rightIndex:i32 @offset(8)
@@ -19,27 +19,28 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %tree_1:ptr<private, array<BST, 10>, read_write> = var
   %x_27:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void -> %b2 {
-  %b2 = block {
-    %x_74:i32 = load %data
-    %9:ptr<function, i32, read_write> = access %tree, 0u
-    store %9, %x_74
-    %10:ptr<function, i32, read_write> = access %tree, 1u
-    store %10, -1i
-    %11:ptr<function, i32, read_write> = access %tree, 2u
+%makeTreeNode_struct_BST_i1_i1_i11_i1_ = func(%tree:ptr<function, BST, read_write>, %data:ptr<function, i32, read_write>):void {
+  $B2: {
+    %8:i32 = load %data
+    %x_74:i32 = let %8
+    %10:ptr<function, i32, read_write> = access %tree, 0u
+    store %10, %x_74
+    %11:ptr<function, i32, read_write> = access %tree, 1u
     store %11, -1i
+    %12:ptr<function, i32, read_write> = access %tree, 2u
+    store %12, -1i
     ret
   }
 }
-%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void -> %b3 {
-  %b3 = block {
+%insert_i1_i1_ = func(%treeIndex:ptr<function, i32, read_write>, %data_1:ptr<function, i32, read_write>):void {
+  $B3: {
     %baseIndex:ptr<function, i32, read_write> = var
     %param:ptr<function, BST, read_write> = var
     %param_1:ptr<function, i32, read_write> = var
@@ -48,252 +49,306 @@
     %GLF_live8i:ptr<function, i32, read_write> = var
     %GLF_live8A:ptr<function, array<f32, 50>, read_write> = var
     store %baseIndex, 0i
-    loop [b: %b4, c: %b5] {  # loop_1
-      %b4 = block {  # body
-        %x_75:i32 = load %baseIndex
-        %x_76:i32 = load %treeIndex
-        %24:bool = lte %x_75, %x_76
-        if %24 [t: %b6, f: %b7] {  # if_1
-          %b6 = block {  # true
+    loop [b: $B4, c: $B5] {  # loop_1
+      $B4: {  # body
+        %23:i32 = load %baseIndex
+        %x_75:i32 = let %23
+        %25:i32 = load %treeIndex
+        %x_76:i32 = let %25
+        %27:bool = lte %x_75, %x_76
+        if %27 [t: $B6, f: $B7] {  # if_1
+          $B6: {  # true
             exit_if  # if_1
           }
-          %b7 = block {  # false
+          $B7: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_77:i32 = load %data_1
-        %x_78:i32 = load %baseIndex
-        %27:ptr<private, i32, read_write> = access %tree_1, %x_78, 0u
-        %x_79:i32 = load %27
-        %29:bool = lte %x_77, %x_79
-        if %29 [t: %b8, f: %b9] {  # if_2
-          %b8 = block {  # true
-            %x_80:i32 = load %baseIndex
-            %31:ptr<private, i32, read_write> = access %tree_1, %x_80, 1u
-            %x_81:i32 = load %31
-            %33:bool = eq %x_81, -1i
-            if %33 [t: %b10, f: %b11] {  # if_3
-              %b10 = block {  # true
-                %x_82:i32 = load %baseIndex
-                %x_83:i32 = load %treeIndex
-                %36:ptr<private, i32, read_write> = access %tree_1, %x_82, 1u
-                store %36, %x_83
-                %x_84:i32 = load %treeIndex
-                %38:ptr<private, BST, read_write> = access %tree_1, %x_84
-                %x_350:BST = load %38
+        %28:i32 = load %data_1
+        %x_77:i32 = let %28
+        %30:i32 = load %baseIndex
+        %x_78:i32 = let %30
+        %32:ptr<private, i32, read_write> = access %tree_1, %x_78, 0u
+        %33:i32 = load %32
+        %x_79:i32 = let %33
+        %35:bool = lte %x_77, %x_79
+        if %35 [t: $B8, f: $B9] {  # if_2
+          $B8: {  # true
+            %36:i32 = load %baseIndex
+            %x_80:i32 = let %36
+            %38:ptr<private, i32, read_write> = access %tree_1, %x_80, 1u
+            %39:i32 = load %38
+            %x_81:i32 = let %39
+            %41:bool = eq %x_81, -1i
+            if %41 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                %42:i32 = load %baseIndex
+                %x_82:i32 = let %42
+                %44:i32 = load %treeIndex
+                %x_83:i32 = let %44
+                %46:ptr<private, i32, read_write> = access %tree_1, %x_82, 1u
+                store %46, %x_83
+                %47:i32 = load %treeIndex
+                %x_84:i32 = let %47
+                %49:ptr<private, BST, read_write> = access %tree_1, %x_84
+                %50:BST = load %49
+                %x_350:BST = let %50
                 store %param, %x_350
-                %x_85:i32 = load %data_1
+                %52:i32 = load %data_1
+                %x_85:i32 = let %52
                 store %param_1, %x_85
-                %41:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
-                %x_352:BST = load %param
-                %43:ptr<private, BST, read_write> = access %tree_1, %x_84
-                store %43, %x_352
+                %54:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param, %param_1
+                %55:BST = load %param
+                %x_352:BST = let %55
+                %57:ptr<private, BST, read_write> = access %tree_1, %x_84
+                store %57, %x_352
                 ret
               }
-              %b11 = block {  # false
-                %x_86:i32 = load %baseIndex
-                %45:ptr<private, i32, read_write> = access %tree_1, %x_86, 1u
-                %x_87:i32 = load %45
+              $B11: {  # false
+                %58:i32 = load %baseIndex
+                %x_86:i32 = let %58
+                %60:ptr<private, i32, read_write> = access %tree_1, %x_86, 1u
+                %61:i32 = load %60
+                %x_87:i32 = let %61
                 store %baseIndex, %x_87
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
-          %b9 = block {  # false
-            %x_88:i32 = load %baseIndex
-            %48:ptr<private, i32, read_write> = access %tree_1, %x_88, 2u
-            %x_89:i32 = load %48
-            %50:bool = eq %x_89, -1i
-            if %50 [t: %b12, f: %b13] {  # if_4
-              %b12 = block {  # true
-                %x_90:i32 = load %baseIndex
-                %x_91:i32 = load %treeIndex
-                %53:ptr<private, i32, read_write> = access %tree_1, %x_90, 2u
-                store %53, %x_91
-                %x_92:i32 = load %treeIndex
-                %55:ptr<private, BST, read_write> = access %tree_1, %x_92
-                %x_362:BST = load %55
+          $B9: {  # false
+            %63:i32 = load %baseIndex
+            %x_88:i32 = let %63
+            %65:ptr<private, i32, read_write> = access %tree_1, %x_88, 2u
+            %66:i32 = load %65
+            %x_89:i32 = let %66
+            %68:bool = eq %x_89, -1i
+            if %68 [t: $B12, f: $B13] {  # if_4
+              $B12: {  # true
+                %69:i32 = load %baseIndex
+                %x_90:i32 = let %69
+                %71:i32 = load %treeIndex
+                %x_91:i32 = let %71
+                %73:ptr<private, i32, read_write> = access %tree_1, %x_90, 2u
+                store %73, %x_91
+                %74:i32 = load %treeIndex
+                %x_92:i32 = let %74
+                %76:ptr<private, BST, read_write> = access %tree_1, %x_92
+                %77:BST = load %76
+                %x_362:BST = let %77
                 store %param_2, %x_362
-                %x_93:i32 = load %data_1
+                %79:i32 = load %data_1
+                %x_93:i32 = let %79
                 store %param_3, %x_93
-                %58:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
-                %x_364:BST = load %param_2
-                %60:ptr<private, BST, read_write> = access %tree_1, %x_92
-                store %60, %x_364
+                %81:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_2, %param_3
+                %82:BST = load %param_2
+                %x_364:BST = let %82
+                %84:ptr<private, BST, read_write> = access %tree_1, %x_92
+                store %84, %x_364
                 ret
               }
-              %b13 = block {  # false
+              $B13: {  # false
                 store %GLF_live8i, 1i
-                %x_94:i32 = load %GLF_live8i
-                %x_95:i32 = load %GLF_live8i
-                %x_96:i32 = load %GLF_live8i
-                %64:bool = gte %x_94, 0i
-                %65:bool = lt %x_95, 50i
-                %66:bool = and %64, %65
-                %x_369:i32 = select 0i, %x_96, %66
-                %68:ptr<function, f32, read_write> = access %GLF_live8A, 0i
-                %x_371:f32 = load %68
-                %70:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
-                %x_373:f32 = load %70
-                %72:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
-                %73:f32 = add %x_373, %x_371
-                store %72, %73
-                loop [b: %b14, c: %b15] {  # loop_2
-                  %b14 = block {  # body
-                    %x_97:i32 = load %baseIndex
-                    %75:ptr<private, i32, read_write> = access %tree_1, %x_97, 2u
-                    %x_98:i32 = load %75
+                %85:i32 = load %GLF_live8i
+                %x_94:i32 = let %85
+                %87:i32 = load %GLF_live8i
+                %x_95:i32 = let %87
+                %89:i32 = load %GLF_live8i
+                %x_96:i32 = let %89
+                %91:bool = gte %x_94, 0i
+                %92:bool = lt %x_95, 50i
+                %93:bool = and %91, %92
+                %94:i32 = select 0i, %x_96, %93
+                %x_369:i32 = let %94
+                %96:ptr<function, f32, read_write> = access %GLF_live8A, 0i
+                %97:f32 = load %96
+                %x_371:f32 = let %97
+                %99:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
+                %100:f32 = load %99
+                %x_373:f32 = let %100
+                %102:ptr<function, f32, read_write> = access %GLF_live8A, %x_369
+                %103:f32 = add %x_373, %x_371
+                store %102, %103
+                loop [b: $B14, c: $B15] {  # loop_2
+                  $B14: {  # body
+                    %104:i32 = load %baseIndex
+                    %x_97:i32 = let %104
+                    %106:ptr<private, i32, read_write> = access %tree_1, %x_97, 2u
+                    %107:i32 = load %106
+                    %x_98:i32 = let %107
                     store %baseIndex, %x_98
-                    continue %b15
+                    continue  # -> $B15
                   }
-                  %b15 = block {  # continuing
-                    %77:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-                    %x_382:f32 = load_vector_element %77, 0u
-                    %79:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-                    %x_384:f32 = load_vector_element %79, 1u
-                    %81:bool = gt %x_382, %x_384
-                    %82:bool = eq %81, false
-                    break_if %82 %b14
+                  $B15: {  # continuing
+                    %109:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+                    %110:f32 = load_vector_element %109, 0u
+                    %x_382:f32 = let %110
+                    %112:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+                    %113:f32 = load_vector_element %112, 1u
+                    %x_384:f32 = let %113
+                    %115:bool = gt %x_382, %x_384
+                    %116:bool = eq %115, false
+                    break_if %116  # -> [t: exit_loop loop_2, f: $B14]
                   }
                 }
-                continue %b5
+                continue  # -> $B5
               }
             }
             exit_if  # if_2
           }
         }
-        continue %b5
+        unreachable
       }
-      %b5 = block {  # continuing
-        next_iteration %b4
+      $B5: {  # continuing
+        next_iteration  # -> $B4
       }
     }
     ret
   }
 }
-%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 -> %b16 {
-  %b16 = block {
+%search_i1_ = func(%t:ptr<function, i32, read_write>):i32 {
+  $B16: {
     %index:ptr<function, i32, read_write> = var
     %currentNode:ptr<function, BST, read_write> = var
     %x_387:ptr<function, i32, read_write> = var
     store %index, 0i
-    loop [b: %b17, c: %b18] {  # loop_3
-      %b17 = block {  # body
-        %x_99:i32 = load %index
-        %89:bool = neq %x_99, -1i
-        if %89 [t: %b19, f: %b20] {  # if_5
-          %b19 = block {  # true
+    loop [b: $B17, c: $B18] {  # loop_3
+      $B17: {  # body
+        %122:i32 = load %index
+        %x_99:i32 = let %122
+        %124:bool = neq %x_99, -1i
+        if %124 [t: $B19, f: $B20] {  # if_5
+          $B19: {  # true
             exit_if  # if_5
           }
-          %b20 = block {  # false
+          $B20: {  # false
             exit_loop  # loop_3
           }
         }
-        %x_100:i32 = load %index
-        %91:ptr<private, BST, read_write> = access %tree_1, %x_100
-        %x_395:BST = load %91
+        %125:i32 = load %index
+        %x_100:i32 = let %125
+        %127:ptr<private, BST, read_write> = access %tree_1, %x_100
+        %128:BST = load %127
+        %x_395:BST = let %128
         store %currentNode, %x_395
-        %93:ptr<function, i32, read_write> = access %currentNode, 0u
-        %x_101:i32 = load %93
-        %x_102:i32 = load %t
-        %96:bool = eq %x_101, %x_102
-        if %96 [t: %b21] {  # if_6
-          %b21 = block {  # true
-            %x_103:i32 = load %t
+        %130:ptr<function, i32, read_write> = access %currentNode, 0u
+        %131:i32 = load %130
+        %x_101:i32 = let %131
+        %133:i32 = load %t
+        %x_102:i32 = let %133
+        %135:bool = eq %x_101, %x_102
+        if %135 [t: $B21] {  # if_6
+          $B21: {  # true
+            %136:i32 = load %t
+            %x_103:i32 = let %136
             ret %x_103
           }
         }
-        %x_104:i32 = load %t
-        %99:ptr<function, i32, read_write> = access %currentNode, 0u
-        %x_105:i32 = load %99
-        %101:bool = gt %x_104, %x_105
-        if %101 [t: %b22, f: %b23] {  # if_7
-          %b22 = block {  # true
-            %102:ptr<function, i32, read_write> = access %currentNode, 2u
-            %x_106:i32 = load %102
+        %138:i32 = load %t
+        %x_104:i32 = let %138
+        %140:ptr<function, i32, read_write> = access %currentNode, 0u
+        %141:i32 = load %140
+        %x_105:i32 = let %141
+        %143:bool = gt %x_104, %x_105
+        if %143 [t: $B22, f: $B23] {  # if_7
+          $B22: {  # true
+            %144:ptr<function, i32, read_write> = access %currentNode, 2u
+            %145:i32 = load %144
+            %x_106:i32 = let %145
             store %x_387, %x_106
             exit_if  # if_7
           }
-          %b23 = block {  # false
-            %104:ptr<function, i32, read_write> = access %currentNode, 1u
-            %x_107:i32 = load %104
+          $B23: {  # false
+            %147:ptr<function, i32, read_write> = access %currentNode, 1u
+            %148:i32 = load %147
+            %x_107:i32 = let %148
             store %x_387, %x_107
             exit_if  # if_7
           }
         }
-        %x_108:i32 = load %x_387
+        %150:i32 = load %x_387
+        %x_108:i32 = let %150
         store %index, %x_108
-        continue %b18
+        continue  # -> $B18
       }
-      %b18 = block {  # continuing
-        next_iteration %b17
+      $B18: {  # continuing
+        next_iteration  # -> $B17
       }
     }
     ret -1i
   }
 }
-%makeFrame_f1_ = func(%v:ptr<function, f32, read_write>):f32 -> %b24 {
-  %b24 = block {
+%makeFrame_f1_ = func(%v:ptr<function, f32, read_write>):f32 {
+  $B24: {
     %param_5:ptr<function, i32, read_write> = var
     %param_6:ptr<function, i32, read_write> = var
     %param_7:ptr<function, i32, read_write> = var
-    %x_418:f32 = load %v
-    %113:f32 = mul %x_418, 6.5f
-    store %v, %113
-    %x_420:f32 = load %v
-    %115:bool = lt %x_420, 1.5f
-    if %115 [t: %b25] {  # if_8
-      %b25 = block {  # true
+    %157:f32 = load %v
+    %x_418:f32 = let %157
+    %159:f32 = mul %x_418, 6.5f
+    store %v, %159
+    %160:f32 = load %v
+    %x_420:f32 = let %160
+    %162:bool = lt %x_420, 1.5f
+    if %162 [t: $B25] {  # if_8
+      $B25: {  # true
         store %param_5, 100i
-        %x_110:i32 = call %search_i1_, %param_5
-        %117:f32 = convert %x_110
-        ret %117
+        %163:i32 = call %search_i1_, %param_5
+        %x_110:i32 = let %163
+        %165:f32 = convert %x_110
+        ret %165
       }
     }
-    %x_425:f32 = load %v
-    %119:bool = lt %x_425, 4.0f
-    if %119 [t: %b26] {  # if_9
-      %b26 = block {  # true
+    %166:f32 = load %v
+    %x_425:f32 = let %166
+    %168:bool = lt %x_425, 4.0f
+    if %168 [t: $B26] {  # if_9
+      $B26: {  # true
         ret 0.0f
       }
     }
-    %x_429:f32 = load %v
+    %169:f32 = load %v
+    %x_429:f32 = let %169
     store %param_6, 6i
-    %x_111:i32 = call %search_i1_, %param_6
-    %122:f32 = convert %x_111
-    %123:bool = lt %x_429, %122
-    if %123 [t: %b27] {  # if_10
-      %b27 = block {  # true
+    %171:i32 = call %search_i1_, %param_6
+    %x_111:i32 = let %171
+    %173:f32 = convert %x_111
+    %174:bool = lt %x_429, %173
+    if %174 [t: $B27] {  # if_10
+      $B27: {  # true
         ret 1.0f
       }
     }
     store %param_7, 30i
-    %x_112:i32 = call %search_i1_, %param_7
-    %125:f32 = convert %x_112
-    %126:f32 = add 10.0f, %125
-    ret %126
+    %175:i32 = call %search_i1_, %param_7
+    %x_112:i32 = let %175
+    %177:f32 = convert %x_112
+    %178:f32 = add 10.0f, %177
+    ret %178
   }
 }
-%hueColor_f1_ = func(%angle:ptr<function, f32, read_write>):vec3<f32> -> %b28 {
-  %b28 = block {
+%hueColor_f1_ = func(%angle:ptr<function, f32, read_write>):vec3<f32> {
+  $B28: {
     %nodeData:ptr<function, f32, read_write> = var
     %param_4:ptr<function, i32, read_write> = var
     store %param_4, 15i
-    %x_109:i32 = call %search_i1_, %param_4
-    %132:f32 = convert %x_109
-    store %nodeData, %132
-    %x_409:f32 = load %angle
-    %x_410:f32 = load %nodeData
-    %135:vec3<f32> = construct 1.0f, 5.0f, %x_410
-    %136:vec3<f32> = mul %135, %x_409
-    %137:vec3<f32> = add vec3<f32>(30.0f), %136
-    %138:vec3<f32> = div %137, vec3<f32>(50.0f)
-    ret %138
+    %183:i32 = call %search_i1_, %param_4
+    %x_109:i32 = let %183
+    %185:f32 = convert %x_109
+    store %nodeData, %185
+    %186:f32 = load %angle
+    %x_409:f32 = let %186
+    %188:f32 = load %nodeData
+    %x_410:f32 = let %188
+    %190:vec3<f32> = construct 1.0f, 5.0f, %x_410
+    %191:vec3<f32> = mul %190, %x_409
+    %192:vec3<f32> = add vec3<f32>(30.0f), %191
+    %193:vec3<f32> = div %192, vec3<f32>(50.0f)
+    ret %193
   }
 }
-%main_1 = func():void -> %b29 {
-  %b29 = block {
+%main_1 = func():void {
+  $B29: {
     %treeIndex_1:ptr<function, i32, read_write> = var
     %param_8:ptr<function, BST, read_write> = var
     %param_9:ptr<function, i32, read_write> = var
@@ -334,277 +389,332 @@
     %x_235:ptr<function, vec3<f32>, read_write> = var
     %param_31:ptr<function, f32, read_write> = var
     store %treeIndex_1, 0i
-    %179:ptr<private, BST, read_write> = access %tree_1, 0i
-    %x_237:BST = load %179
+    %234:ptr<private, BST, read_write> = access %tree_1, 0i
+    %235:BST = load %234
+    %x_237:BST = let %235
     store %param_8, %x_237
     store %param_9, 9i
-    %181:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_8, %param_9
-    %x_239:BST = load %param_8
-    %183:ptr<private, BST, read_write> = access %tree_1, 0i
-    store %183, %x_239
-    %x_113:i32 = load %treeIndex_1
-    %185:i32 = add %x_113, 1i
-    store %treeIndex_1, %185
-    %x_115:i32 = load %treeIndex_1
+    %237:void = call %makeTreeNode_struct_BST_i1_i1_i11_i1_, %param_8, %param_9
+    %238:BST = load %param_8
+    %x_239:BST = let %238
+    %240:ptr<private, BST, read_write> = access %tree_1, 0i
+    store %240, %x_239
+    %241:i32 = load %treeIndex_1
+    %x_113:i32 = let %241
+    %243:i32 = add %x_113, 1i
+    store %treeIndex_1, %243
+    %244:i32 = load %treeIndex_1
+    %x_115:i32 = let %244
     store %param_10, %x_115
     store %param_11, 5i
-    %187:void = call %insert_i1_i1_, %param_10, %param_11
-    %x_116:i32 = load %treeIndex_1
-    %189:i32 = add %x_116, 1i
-    store %treeIndex_1, %189
+    %246:void = call %insert_i1_i1_, %param_10, %param_11
+    %247:i32 = load %treeIndex_1
+    %x_116:i32 = let %247
+    %249:i32 = add %x_116, 1i
+    store %treeIndex_1, %249
     store %GLF_live1_looplimiter2, 0i
     store %GLF_live1i, 0i
-    loop [b: %b30, c: %b31] {  # loop_4
-      %b30 = block {  # body
-        if true [t: %b32, f: %b33] {  # if_11
-          %b32 = block {  # true
+    loop [b: $B30, c: $B31] {  # loop_4
+      $B30: {  # body
+        if true [t: $B32, f: $B33] {  # if_11
+          $B32: {  # true
             exit_if  # if_11
           }
-          %b33 = block {  # false
+          $B33: {  # false
             exit_loop  # loop_4
           }
         }
-        %x_118:i32 = load %GLF_live1_looplimiter2
-        %191:bool = gte %x_118, 7i
-        if %191 [t: %b34] {  # if_12
-          %b34 = block {  # true
+        %250:i32 = load %GLF_live1_looplimiter2
+        %x_118:i32 = let %250
+        %252:bool = gte %x_118, 7i
+        if %252 [t: $B34] {  # if_12
+          $B34: {  # true
             exit_loop  # loop_4
           }
         }
-        %x_119:i32 = load %GLF_live1_looplimiter2
-        %193:i32 = add %x_119, 1i
-        store %GLF_live1_looplimiter2, %193
-        continue %b31
+        %253:i32 = load %GLF_live1_looplimiter2
+        %x_119:i32 = let %253
+        %255:i32 = add %x_119, 1i
+        store %GLF_live1_looplimiter2, %255
+        continue  # -> $B31
       }
-      %b31 = block {  # continuing
-        %x_121:i32 = load %GLF_live1i
-        %195:i32 = add %x_121, 1i
-        store %GLF_live1i, %195
-        next_iteration %b30
+      $B31: {  # continuing
+        %256:i32 = load %GLF_live1i
+        %x_121:i32 = let %256
+        %258:i32 = add %x_121, 1i
+        store %GLF_live1i, %258
+        next_iteration  # -> $B30
       }
     }
-    %x_123:i32 = load %treeIndex_1
+    %259:i32 = load %treeIndex_1
+    %x_123:i32 = let %259
     store %param_12, %x_123
     store %param_13, 12i
-    %197:void = call %insert_i1_i1_, %param_12, %param_13
-    %x_124:i32 = load %treeIndex_1
-    %199:i32 = add %x_124, 1i
-    store %treeIndex_1, %199
-    %x_126:i32 = load %treeIndex_1
+    %261:void = call %insert_i1_i1_, %param_12, %param_13
+    %262:i32 = load %treeIndex_1
+    %x_124:i32 = let %262
+    %264:i32 = add %x_124, 1i
+    store %treeIndex_1, %264
+    %265:i32 = load %treeIndex_1
+    %x_126:i32 = let %265
     store %param_14, %x_126
     store %param_15, 15i
-    %201:void = call %insert_i1_i1_, %param_14, %param_15
-    %x_127:i32 = load %treeIndex_1
-    %203:i32 = add %x_127, 1i
-    store %treeIndex_1, %203
-    %x_129:i32 = load %treeIndex_1
+    %267:void = call %insert_i1_i1_, %param_14, %param_15
+    %268:i32 = load %treeIndex_1
+    %x_127:i32 = let %268
+    %270:i32 = add %x_127, 1i
+    store %treeIndex_1, %270
+    %271:i32 = load %treeIndex_1
+    %x_129:i32 = let %271
     store %param_16, %x_129
     store %param_17, 7i
-    %205:void = call %insert_i1_i1_, %param_16, %param_17
-    %x_130:i32 = load %treeIndex_1
-    %207:i32 = add %x_130, 1i
-    store %treeIndex_1, %207
-    %x_132:i32 = load %treeIndex_1
+    %273:void = call %insert_i1_i1_, %param_16, %param_17
+    %274:i32 = load %treeIndex_1
+    %x_130:i32 = let %274
+    %276:i32 = add %x_130, 1i
+    store %treeIndex_1, %276
+    %277:i32 = load %treeIndex_1
+    %x_132:i32 = let %277
     store %param_18, %x_132
     store %param_19, 8i
-    %209:void = call %insert_i1_i1_, %param_18, %param_19
-    %x_133:i32 = load %treeIndex_1
-    %211:i32 = add %x_133, 1i
-    store %treeIndex_1, %211
-    %x_135:i32 = load %treeIndex_1
+    %279:void = call %insert_i1_i1_, %param_18, %param_19
+    %280:i32 = load %treeIndex_1
+    %x_133:i32 = let %280
+    %282:i32 = add %x_133, 1i
+    store %treeIndex_1, %282
+    %283:i32 = load %treeIndex_1
+    %x_135:i32 = let %283
     store %param_20, %x_135
     store %param_21, 2i
-    %213:void = call %insert_i1_i1_, %param_20, %param_21
-    %x_136:i32 = load %treeIndex_1
-    %215:i32 = add %x_136, 1i
-    store %treeIndex_1, %215
-    %x_138:i32 = load %treeIndex_1
+    %285:void = call %insert_i1_i1_, %param_20, %param_21
+    %286:i32 = load %treeIndex_1
+    %x_136:i32 = let %286
+    %288:i32 = add %x_136, 1i
+    store %treeIndex_1, %288
+    %289:i32 = load %treeIndex_1
+    %x_138:i32 = let %289
     store %param_22, %x_138
     store %param_23, 6i
-    %217:void = call %insert_i1_i1_, %param_22, %param_23
-    %x_139:i32 = load %treeIndex_1
-    %219:i32 = add %x_139, 1i
-    store %treeIndex_1, %219
+    %291:void = call %insert_i1_i1_, %param_22, %param_23
+    %292:i32 = load %treeIndex_1
+    %x_139:i32 = let %292
+    %294:i32 = add %x_139, 1i
+    store %treeIndex_1, %294
     store %GLF_live4_looplimiter3, 0i
     store %GLF_live4i, 0i
-    loop [b: %b35, c: %b36] {  # loop_5
-      %b35 = block {  # body
-        if true [t: %b37, f: %b38] {  # if_13
-          %b37 = block {  # true
+    loop [b: $B35, c: $B36] {  # loop_5
+      $B35: {  # body
+        if true [t: $B37, f: $B38] {  # if_13
+          $B37: {  # true
             exit_if  # if_13
           }
-          %b38 = block {  # false
+          $B38: {  # false
             exit_loop  # loop_5
           }
         }
-        %x_141:i32 = load %GLF_live4_looplimiter3
-        %221:bool = gte %x_141, 3i
-        if %221 [t: %b39] {  # if_14
-          %b39 = block {  # true
+        %295:i32 = load %GLF_live4_looplimiter3
+        %x_141:i32 = let %295
+        %297:bool = gte %x_141, 3i
+        if %297 [t: $B39] {  # if_14
+          $B39: {  # true
             exit_loop  # loop_5
           }
         }
-        %x_142:i32 = load %GLF_live4_looplimiter3
-        %223:i32 = add %x_142, 1i
-        store %GLF_live4_looplimiter3, %223
+        %298:i32 = load %GLF_live4_looplimiter3
+        %x_142:i32 = let %298
+        %300:i32 = add %x_142, 1i
+        store %GLF_live4_looplimiter3, %300
         store %GLF_live4index, 1i
-        %x_144:i32 = load %GLF_live4index
-        %x_145:i32 = load %GLF_live4index
-        %x_146:i32 = load %GLF_live4index
-        %227:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, 1i
-        %x_269:f32 = load %227
-        %229:bool = gte %x_144, 0i
-        %230:bool = lt %x_145, 10i
-        %231:bool = and %229, %230
-        %232:i32 = select 0i, %x_146, %231
-        %233:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %232
-        store %233, %x_269
-        %x_147:i32 = load %GLF_live4i
-        %x_148:i32 = load %GLF_live4i
-        %x_149:i32 = load %GLF_live4i
-        %237:bool = gte %x_147, 0i
-        %238:bool = lt %x_148, 10i
-        %239:bool = and %237, %238
-        %240:i32 = select 0i, %x_149, %239
-        %241:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %240
-        store %241, 1.0f
-        continue %b36
+        %301:i32 = load %GLF_live4index
+        %x_144:i32 = let %301
+        %303:i32 = load %GLF_live4index
+        %x_145:i32 = let %303
+        %305:i32 = load %GLF_live4index
+        %x_146:i32 = let %305
+        %307:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, 1i
+        %308:f32 = load %307
+        %x_269:f32 = let %308
+        %310:bool = gte %x_144, 0i
+        %311:bool = lt %x_145, 10i
+        %312:bool = and %310, %311
+        %313:i32 = select 0i, %x_146, %312
+        %314:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %313
+        store %314, %x_269
+        %315:i32 = load %GLF_live4i
+        %x_147:i32 = let %315
+        %317:i32 = load %GLF_live4i
+        %x_148:i32 = let %317
+        %319:i32 = load %GLF_live4i
+        %x_149:i32 = let %319
+        %321:bool = gte %x_147, 0i
+        %322:bool = lt %x_148, 10i
+        %323:bool = and %321, %322
+        %324:i32 = select 0i, %x_149, %323
+        %325:ptr<function, f32, read_write> = access %GLF_live4obj, 1u, %324
+        store %325, 1.0f
+        continue  # -> $B36
       }
-      %b36 = block {  # continuing
-        %x_150:i32 = load %GLF_live4i
-        %243:i32 = add %x_150, 1i
-        store %GLF_live4i, %243
-        next_iteration %b35
+      $B36: {  # continuing
+        %326:i32 = load %GLF_live4i
+        %x_150:i32 = let %326
+        %328:i32 = add %x_150, 1i
+        store %GLF_live4i, %328
+        next_iteration  # -> $B35
       }
     }
-    %x_152:i32 = load %treeIndex_1
+    %329:i32 = load %treeIndex_1
+    %x_152:i32 = let %329
     store %param_24, %x_152
     store %param_25, 17i
-    %245:void = call %insert_i1_i1_, %param_24, %param_25
-    %246:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %x_278:f32 = load_vector_element %246, 0u
-    %248:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %x_280:f32 = load_vector_element %248, 1u
-    %250:bool = gt %x_278, %x_280
-    if %250 [t: %b40] {  # if_15
-      %b40 = block {  # true
+    %331:void = call %insert_i1_i1_, %param_24, %param_25
+    %332:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %333:f32 = load_vector_element %332, 0u
+    %x_278:f32 = let %333
+    %335:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %336:f32 = load_vector_element %335, 1u
+    %x_280:f32 = let %336
+    %338:bool = gt %x_278, %x_280
+    if %338 [t: $B40] {  # if_15
+      $B40: {  # true
         ret
       }
     }
-    %x_153:i32 = load %treeIndex_1
-    %252:i32 = add %x_153, 1i
-    store %treeIndex_1, %252
-    %x_155:i32 = load %treeIndex_1
+    %339:i32 = load %treeIndex_1
+    %x_153:i32 = let %339
+    %341:i32 = add %x_153, 1i
+    store %treeIndex_1, %341
+    %342:i32 = load %treeIndex_1
+    %x_155:i32 = let %342
     store %param_26, %x_155
     store %param_27, 13i
-    %254:void = call %insert_i1_i1_, %param_26, %param_27
-    %x_285:vec4<f32> = load %gl_FragCoord
-    %256:f32 = access %x_285, 1u
-    %257:f32 = access %x_285, 0u
-    %258:vec2<f32> = construct %256, %257
-    %259:vec2<f32> = div %258, vec2<f32>(256.0f)
-    store %z, %259
-    %x_289:f32 = load_vector_element %z, 0u
+    %344:void = call %insert_i1_i1_, %param_26, %param_27
+    %345:vec4<f32> = load %gl_FragCoord
+    %x_285:vec4<f32> = let %345
+    %347:f32 = access %x_285, 1u
+    %348:f32 = access %x_285, 0u
+    %349:vec2<f32> = construct %347, %348
+    %350:vec2<f32> = div %349, vec2<f32>(256.0f)
+    store %z, %350
+    %351:f32 = load_vector_element %z, 0u
+    %x_289:f32 = let %351
     store %param_28, %x_289
-    %x_290:f32 = call %makeFrame_f1_, %param_28
+    %353:f32 = call %makeFrame_f1_, %param_28
+    %x_290:f32 = let %353
     store %x, %x_290
-    %x_292:f32 = load_vector_element %z, 1u
+    %355:f32 = load_vector_element %z, 1u
+    %x_292:f32 = let %355
     store %param_29, %x_292
-    %x_293:f32 = call %makeFrame_f1_, %param_29
+    %357:f32 = call %makeFrame_f1_, %param_29
+    %x_293:f32 = let %357
     store %y, %x_293
     store %sum, -100i
     store %t_1, 0i
-    loop [b: %b41, c: %b42] {  # loop_6
-      %b41 = block {  # body
-        %x_156:i32 = load %t_1
-        %265:bool = lt %x_156, 20i
-        if %265 [t: %b43, f: %b44] {  # if_16
-          %b43 = block {  # true
+    loop [b: $B41, c: $B42] {  # loop_6
+      $B41: {  # body
+        %359:i32 = load %t_1
+        %x_156:i32 = let %359
+        %361:bool = lt %x_156, 20i
+        if %361 [t: $B43, f: $B44] {  # if_16
+          $B43: {  # true
             exit_if  # if_16
           }
-          %b44 = block {  # false
+          $B44: {  # false
             exit_loop  # loop_6
           }
         }
-        %x_157:i32 = load %t_1
+        %362:i32 = load %t_1
+        %x_157:i32 = let %362
         store %param_30, %x_157
-        %x_158:i32 = call %search_i1_, %param_30
+        %364:i32 = call %search_i1_, %param_30
+        %x_158:i32 = let %364
         store %result, %x_158
-        %x_159:i32 = load %result
-        %269:bool = gt %x_159, 0i
-        if %269 [t: %b45, f: %b46] {  # if_17
-          %b45 = block {  # true
+        %366:i32 = load %result
+        %x_159:i32 = let %366
+        %368:bool = gt %x_159, 0i
+        if %368 [t: $B45, f: $B46] {  # if_17
+          $B45: {  # true
             exit_if  # if_17
           }
-          %b46 = block {  # false
-            %x_160:i32 = load %result
-            switch %x_160 [c: (0i, %b47), c: (-1i, %b48), c: (default, %b49)] {  # switch_1
-              %b47 = block {  # case
+          $B46: {  # false
+            %369:i32 = load %result
+            %x_160:i32 = let %369
+            switch %x_160 [c: (0i, $B47), c: (-1i, $B48), c: (default, $B49)] {  # switch_1
+              $B47: {  # case
                 ret
               }
-              %b48 = block {  # case
-                %x_161:i32 = load %sum
-                %272:i32 = add %x_161, 1i
-                store %sum, %272
+              $B48: {  # case
+                %371:i32 = load %sum
+                %x_161:i32 = let %371
+                %373:i32 = add %x_161, 1i
+                store %sum, %373
                 exit_switch  # switch_1
               }
-              %b49 = block {  # case
+              $B49: {  # case
                 exit_switch  # switch_1
               }
             }
             exit_if  # if_17
           }
         }
-        continue %b42
+        continue  # -> $B42
       }
-      %b42 = block {  # continuing
-        %x_163:i32 = load %t_1
-        %274:i32 = add %x_163, 1i
-        store %t_1, %274
-        next_iteration %b41
+      $B42: {  # continuing
+        %374:i32 = load %t_1
+        %x_163:i32 = let %374
+        %376:i32 = add %x_163, 1i
+        store %t_1, %376
+        next_iteration  # -> $B41
       }
     }
-    %x_307:f32 = load %x
-    %x_308:f32 = load %y
-    %x_165:i32 = load %sum
-    %278:f32 = convert %x_165
-    %279:f32 = mul %x_308, %278
-    %280:f32 = add %x_307, %279
-    store %a, %280
-    %281:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %x_313:f32 = load_vector_element %281, 0u
-    %283:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
-    %x_315:f32 = load_vector_element %283, 1u
-    %285:bool = lt %x_313, %x_315
-    if %285 [t: %b50, f: %b51] {  # if_18
-      %b50 = block {  # true
+    %377:f32 = load %x
+    %x_307:f32 = let %377
+    %379:f32 = load %y
+    %x_308:f32 = let %379
+    %381:i32 = load %sum
+    %x_165:i32 = let %381
+    %383:f32 = convert %x_165
+    %384:f32 = mul %x_308, %383
+    %385:f32 = add %x_307, %384
+    store %a, %385
+    %386:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %387:f32 = load_vector_element %386, 0u
+    %x_313:f32 = let %387
+    %389:ptr<uniform, vec2<f32>, read> = access %x_27, 0u
+    %390:f32 = load_vector_element %389, 1u
+    %x_315:f32 = let %390
+    %392:bool = lt %x_313, %x_315
+    if %392 [t: $B50, f: $B51] {  # if_18
+      $B50: {  # true
         store %x_235, vec3<f32>(1.0f, 0.0f, 0.0f)
         exit_if  # if_18
       }
-      %b51 = block {  # false
-        %x_320:f32 = load %a
+      $B51: {  # false
+        %393:f32 = load %a
+        %x_320:f32 = let %393
         store %param_31, %x_320
-        %x_321:vec3<f32> = call %hueColor_f1_, %param_31
+        %395:vec3<f32> = call %hueColor_f1_, %param_31
+        %x_321:vec3<f32> = let %395
         store %x_235, %x_321
         exit_if  # if_18
       }
     }
-    %x_322:vec3<f32> = load %x_235
-    %289:f32 = access %x_322, 0u
-    %290:f32 = access %x_322, 1u
-    %291:f32 = access %x_322, 2u
-    %292:vec4<f32> = construct %289, %290, %291, 1.0f
-    store %x_GLF_color, %292
+    %397:vec3<f32> = load %x_235
+    %x_322:vec3<f32> = let %397
+    %399:f32 = access %x_322, 0u
+    %400:f32 = access %x_322, 1u
+    %401:f32 = access %x_322, 2u
+    %402:vec4<f32> = construct %399, %400, %401, 1.0f
+    store %x_GLF_color, %402
     ret
   }
 }
-%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out -> %b52 {
-  %b52 = block {
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B52: {
     store %gl_FragCoord, %gl_FragCoord_param
-    %295:void = call %main_1
-    %296:vec4<f32> = load %x_GLF_color
-    %297:main_out = construct %296
-    ret %297
+    %405:void = call %main_1
+    %406:vec4<f32> = load %x_GLF_color
+    %407:main_out = construct %406
+    ret %407
   }
 }
 
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.msl
index efdd3b1..b5187aa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,171 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m43:ptr<function, mat4x3<f32>, read_write> = var
+    %ll1:ptr<function, i32, read_write> = var
+    %rows:ptr<function, i32, read_write> = var
+    %ll4:ptr<function, i32, read_write> = var
+    %ll2:ptr<function, i32, read_write> = var
+    %c:ptr<function, i32, read_write> = var
+    %tempm43:ptr<function, mat4x3<f32>, read_write> = var
+    %ll3:ptr<function, i32, read_write> = var
+    %d:ptr<function, i32, read_write> = var
+    %r:ptr<function, i32, read_write> = var
+    %sums:ptr<function, array<f32, 9>, read_write> = var
+    %idx:ptr<function, i32, read_write> = var
+    store %m43, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
+    store %ll1, 0i
+    store %rows, 2i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        %15:i32 = load %ll1
+        %16:bool = gte %15, 5i
+        if %16 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %17:i32 = load %ll1
+        %18:i32 = add %17, 1i
+        store %ll1, %18
+        store %ll4, 10i
+        store %ll2, 0i
+        store %c, 0i
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
+            %19:i32 = load %c
+            %20:bool = lt %19, 1i
+            if %20 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                exit_if  # if_3
+              }
+              $B11: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %21:i32 = load %ll2
+            %22:bool = gte %21, 0i
+            if %22 [t: $B12] {  # if_4
+              $B12: {  # true
+                exit_loop  # loop_2
+              }
+            }
+            %23:i32 = load %ll2
+            %24:i32 = add %23, 1i
+            store %ll2, %24
+            %25:mat4x3<f32> = load %m43
+            store %tempm43, %25
+            store %ll3, 0i
+            store %d, 0i
+            loop [b: $B13, c: $B14] {  # loop_3
+              $B13: {  # body
+                %26:i32 = load %ll4
+                %27:bool = lt 1i, %26
+                if %27 [t: $B15, f: $B16] {  # if_5
+                  $B15: {  # true
+                    exit_if  # if_5
+                  }
+                  $B16: {  # false
+                    exit_loop  # loop_3
+                  }
+                }
+                %28:i32 = load %d
+                %x_24:i32 = let %28
+                %30:i32 = load %d
+                %x_25:i32 = let %30
+                %32:i32 = load %d
+                %x_26:i32 = let %32
+                %34:i32 = load %r
+                %x_27:i32 = let %34
+                %36:i32 = load %r
+                %x_28:i32 = let %36
+                %38:i32 = load %r
+                %x_29:i32 = let %38
+                %40:bool = gte %x_24, 0i
+                %41:bool = lt %x_25, 4i
+                %42:bool = and %40, %41
+                %43:i32 = select 0i, %x_26, %42
+                %44:ptr<function, vec3<f32>, read_write> = access %tempm43, %43
+                %45:ptr<function, vec3<f32>, read_write> = let %44
+                %46:bool = gte %x_27, 0i
+                %47:bool = lt %x_28, 3i
+                %48:bool = and %46, %47
+                %49:i32 = select 0i, %x_29, %48
+                store_vector_element %45, %49, 1.0f
+                continue  # -> $B14
+              }
+              $B14: {  # continuing
+                %50:i32 = load %d
+                %51:i32 = add %50, 1i
+                store %d, %51
+                next_iteration  # -> $B13
+              }
+            }
+            %52:i32 = load %idx
+            %53:i32 = load %idx
+            %54:bool = gte %53, 0i
+            %55:i32 = load %idx
+            %56:bool = lt %55, 9i
+            %57:bool = and %54, %56
+            %58:i32 = select 0i, %52, %57
+            %x_111:i32 = let %58
+            %60:ptr<function, f32, read_write> = access %sums, %x_111
+            %61:ptr<function, f32, read_write> = access %sums, %x_111
+            %62:f32 = load %61
+            %63:i32 = load %c
+            %64:ptr<function, vec3<f32>, read_write> = access %m43, %63
+            %65:f32 = load_vector_element %64, 1u
+            %66:f32 = add %62, %65
+            store %60, %66
+            continue  # -> $B9
+          }
+          $B9: {  # continuing
+            %67:i32 = load %c
+            %68:i32 = add %67, 1i
+            store %c, %68
+            next_iteration  # -> $B8
+          }
+        }
+        %69:i32 = load %idx
+        %70:i32 = add %69, 1i
+        store %idx, %70
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        next_iteration  # -> $B3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B17: {
+    %72:void = call %main_1
+    %73:vec4<f32> = load %x_GLF_color
+    %74:main_out = construct %73
+    ret %74
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.msl
index efdd3b1..cb93630 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/write-red-in-loop-nest/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,187 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_GLF_color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %m43:ptr<function, mat4x3<f32>, read_write> = var
+    %ll1:ptr<function, i32, read_write> = var
+    %rows:ptr<function, i32, read_write> = var
+    %ll4:ptr<function, i32, read_write> = var
+    %ll2:ptr<function, i32, read_write> = var
+    %c:ptr<function, i32, read_write> = var
+    %tempm43:ptr<function, mat4x3<f32>, read_write> = var
+    %ll3:ptr<function, i32, read_write> = var
+    %d:ptr<function, i32, read_write> = var
+    %r:ptr<function, i32, read_write> = var
+    %sums:ptr<function, array<f32, 9>, read_write> = var
+    %idx:ptr<function, i32, read_write> = var
+    store %m43, mat4x3<f32>(vec3<f32>(1.0f, 0.0f, 0.0f), vec3<f32>(0.0f, 1.0f, 0.0f), vec3<f32>(0.0f, 0.0f, 1.0f), vec3<f32>(0.0f))
+    store %ll1, 0i
+    store %rows, 2i
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        if true [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
+            exit_if  # if_1
+          }
+          $B6: {  # false
+            exit_loop  # loop_1
+          }
+        }
+        store %x_GLF_color, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+        %15:i32 = load %ll1
+        %x_16:i32 = let %15
+        %17:bool = gte %x_16, 5i
+        if %17 [t: $B7] {  # if_2
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %18:i32 = load %ll1
+        %x_17:i32 = let %18
+        %20:i32 = add %x_17, 1i
+        store %ll1, %20
+        store %ll4, 10i
+        store %ll2, 0i
+        store %c, 0i
+        loop [b: $B8, c: $B9] {  # loop_2
+          $B8: {  # body
+            %21:i32 = load %c
+            %x_19:i32 = let %21
+            %23:bool = lt %x_19, 1i
+            if %23 [t: $B10, f: $B11] {  # if_3
+              $B10: {  # true
+                exit_if  # if_3
+              }
+              $B11: {  # false
+                exit_loop  # loop_2
+              }
+            }
+            %24:i32 = load %ll2
+            %x_20:i32 = let %24
+            %26:bool = gte %x_20, 0i
+            if %26 [t: $B12] {  # if_4
+              $B12: {  # true
+                exit_loop  # loop_2
+              }
+            }
+            %27:i32 = load %ll2
+            %x_21:i32 = let %27
+            %29:i32 = add %x_21, 1i
+            store %ll2, %29
+            %30:mat4x3<f32> = load %m43
+            %x_92:mat4x3<f32> = let %30
+            store %tempm43, %x_92
+            store %ll3, 0i
+            store %d, 0i
+            loop [b: $B13, c: $B14] {  # loop_3
+              $B13: {  # body
+                %32:i32 = load %ll4
+                %x_23:i32 = let %32
+                %34:bool = lt 1i, %x_23
+                if %34 [t: $B15, f: $B16] {  # if_5
+                  $B15: {  # true
+                    exit_if  # if_5
+                  }
+                  $B16: {  # false
+                    exit_loop  # loop_3
+                  }
+                }
+                %35:i32 = load %d
+                %x_24:i32 = let %35
+                %37:i32 = load %d
+                %x_25:i32 = let %37
+                %39:i32 = load %d
+                %x_26:i32 = let %39
+                %41:i32 = load %r
+                %x_27:i32 = let %41
+                %43:i32 = load %r
+                %x_28:i32 = let %43
+                %45:i32 = load %r
+                %x_29:i32 = let %45
+                %47:bool = gte %x_24, 0i
+                %48:bool = lt %x_25, 4i
+                %49:bool = and %47, %48
+                %50:i32 = select 0i, %x_26, %49
+                %51:ptr<function, vec3<f32>, read_write> = access %tempm43, %50
+                %52:ptr<function, vec3<f32>, read_write> = let %51
+                %53:bool = gte %x_27, 0i
+                %54:bool = lt %x_28, 3i
+                %55:bool = and %53, %54
+                %56:i32 = select 0i, %x_29, %55
+                store_vector_element %52, %56, 1.0f
+                continue  # -> $B14
+              }
+              $B14: {  # continuing
+                %57:i32 = load %d
+                %x_30:i32 = let %57
+                %59:i32 = add %x_30, 1i
+                store %d, %59
+                next_iteration  # -> $B13
+              }
+            }
+            %60:i32 = load %idx
+            %x_32:i32 = let %60
+            %62:i32 = load %idx
+            %x_33:i32 = let %62
+            %64:i32 = load %idx
+            %x_34:i32 = let %64
+            %66:bool = gte %x_32, 0i
+            %67:bool = lt %x_33, 9i
+            %68:bool = and %66, %67
+            %69:i32 = select 0i, %x_34, %68
+            %x_111:i32 = let %69
+            %71:i32 = load %c
+            %x_35:i32 = let %71
+            %73:ptr<function, vec3<f32>, read_write> = access %m43, %x_35
+            %74:f32 = load_vector_element %73, 1u
+            %x_113:f32 = let %74
+            %76:ptr<function, f32, read_write> = access %sums, %x_111
+            %77:f32 = load %76
+            %x_115:f32 = let %77
+            %79:ptr<function, f32, read_write> = access %sums, %x_111
+            %80:f32 = add %x_115, %x_113
+            store %79, %80
+            continue  # -> $B9
+          }
+          $B9: {  # continuing
+            %81:i32 = load %c
+            %x_36:i32 = let %81
+            %83:i32 = add %x_36, 1i
+            store %c, %83
+            next_iteration  # -> $B8
+          }
+        }
+        %84:i32 = load %idx
+        %x_38:i32 = let %84
+        %86:i32 = add %x_38, 1i
+        store %idx, %86
+        continue  # -> $B4
+      }
+      $B4: {  # continuing
+        next_iteration  # -> $B3
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B17: {
+    %88:void = call %main_1
+    %89:vec4<f32> = load %x_GLF_color
+    %90:main_out = construct %89
+    ret %90
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.msl
index bbc9704..faed4fc 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,20 +8,20 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %height:ptr<function, f32, read_write> = var
     store %height, 256.0f
     %5:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
     %6:f32 = load_vector_element %5, 1u
     %7:bool = lt %6, 0.0f
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    if %7 [t: $B3] {  # if_1
+      $B3: {  # true
         %8:f32 = load %height
         %9:vec4<f32> = construct 7612.9453125f, 797.010986328125f, %8, 9.0f
         %10:vec4<f32> = mix vec4<f32>(30.18000030517578125f, 8840.0f, 469.970001220703125f, 18.2399997711181640625f), vec4<f32>(9.8999996185302734375f, 0.10000000149011611938f, 1169.5386962890625f, 55.79000091552734375f), %9
@@ -33,8 +33,8 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func():main_out {
+  $B4: {
     %12:void = call %main_1
     %13:vec4<f32> = load %x_GLF_color
     %14:main_out = construct %13
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.msl
index 86bec2c..1c5c9aa 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/wrong-color-in-always-false-if/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: buf0 = struct @align(8) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: buf0 = struct @align(8) {
   injectionSwitch:vec2<f32> @offset(0)
 }
 
@@ -8,24 +8,26 @@
   x_GLF_color_1:vec4<f32> @offset(0), @location(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_6:ptr<uniform, buf0, read> = var @binding_point(0, 0)
   %x_GLF_color:ptr<private, vec4<f32>, read_write> = var
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %height:ptr<function, f32, read_write> = var
     store %height, 256.0f
     %5:ptr<uniform, vec2<f32>, read> = access %x_6, 0u
-    %x_40:f32 = load_vector_element %5, 1u
-    %7:bool = lt %x_40, 0.0f
-    if %7 [t: %b3] {  # if_1
-      %b3 = block {  # true
-        %x_44:f32 = load %height
-        %9:vec4<f32> = construct 7612.9453125f, 797.010986328125f, %x_44, 9.0f
-        %10:vec4<f32> = mix vec4<f32>(30.18000030517578125f, 8840.0f, 469.970001220703125f, 18.2399997711181640625f), vec4<f32>(9.8999996185302734375f, 0.10000000149011611938f, 1169.5386962890625f, 55.79000091552734375f), %9
-        store %x_GLF_color, %10
+    %6:f32 = load_vector_element %5, 1u
+    %x_40:f32 = let %6
+    %8:bool = lt %x_40, 0.0f
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        %9:f32 = load %height
+        %x_44:f32 = let %9
+        %11:vec4<f32> = construct 7612.9453125f, 797.010986328125f, %x_44, 9.0f
+        %12:vec4<f32> = mix vec4<f32>(30.18000030517578125f, 8840.0f, 469.970001220703125f, 18.2399997711181640625f), vec4<f32>(9.8999996185302734375f, 0.10000000149011611938f, 1169.5386962890625f, 55.79000091552734375f), %11
+        store %x_GLF_color, %12
         exit_if  # if_1
       }
     }
@@ -33,12 +35,12 @@
     ret
   }
 }
-%tint_symbol = @fragment func():main_out -> %b4 {
-  %b4 = block {
-    %12:void = call %main_1
-    %13:vec4<f32> = load %x_GLF_color
-    %14:main_out = construct %13
-    ret %14
+%tint_symbol = @fragment func():main_out {
+  $B4: {
+    %14:void = call %main_1
+    %15:vec4<f32> = load %x_GLF_color
+    %16:main_out = construct %15
+    ret %16
   }
 }
 
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.msl
index 9c676f8..26da6db 100644
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: In2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: In2 = struct @align(4) {
   data_in2:array<i32, 8> @offset(0)
 }
 
@@ -16,16 +16,15 @@
   data_in0:array<i32, 512> @offset(0)
 }
 
-%b1 = block {  # root
-  %gl_WorkGroupID:ptr<private, vec3<u32>, read_write> = var
+$B1: {  # root
   %x_13:ptr<storage, In2, read> = var @binding_point(0, 2)
   %x_15:ptr<storage, Out0, read_write> = var @binding_point(0, 3)
   %x_17:ptr<storage, In1, read> = var @binding_point(0, 1)
   %x_19:ptr<storage, In0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func(%tint_wgid:vec3<u32>):void {
+  $B2: {
     %base_index_in:ptr<function, u32, read_write> = var
     %base_index_out:ptr<function, u32, read_write> = var
     %index_in0:ptr<function, i32, read_write> = var
@@ -36,10 +35,10 @@
     %i:ptr<function, i32, read_write> = var
     %temp0:ptr<function, i32, read_write> = var
     %temp1:ptr<function, i32, read_write> = var
-    %17:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %17:u32 = access %tint_wgid, 0u
     %18:u32 = mul 128u, %17
     store %base_index_in, %18
-    %19:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %19:u32 = access %tint_wgid, 0u
     %20:u32 = mul 256u, %19
     store %base_index_out, %20
     store %index_in0, 127i
@@ -48,15 +47,15 @@
     store %index_out1, 383i
     store %condition_index, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %21:i32 = load %i
         %22:bool = lt %21, 256i
-        if %22 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -64,85 +63,92 @@
         %24:ptr<storage, i32, read> = access %x_13, 0u, %23
         %25:i32 = load %24
         %26:bool = eq %25, 0i
-        if %26 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_77:u32 = load %base_index_out
-            %x_78:i32 = load %index_out0
-            %29:u32 = bitcast %x_78
-            %30:u32 = add %x_77, %29
-            %31:ptr<storage, i32, read_write> = access %x_15, 0u, %30
-            %32:u32 = load %base_index_in
-            %33:i32 = load %index_in0
-            %34:u32 = bitcast %33
-            %35:u32 = add %32, %34
-            %36:ptr<storage, i32, read> = access %x_17, 0u, %35
-            %37:i32 = load %36
-            store %31, %37
-            %38:i32 = load %index_out0
-            %39:i32 = sub %38, 1i
-            store %index_out0, %39
-            %40:i32 = load %index_in1
-            %41:i32 = sub %40, 1i
-            store %index_in1, %41
+        if %26 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %27:u32 = load %base_index_out
+            %x_77:u32 = let %27
+            %29:i32 = load %index_out0
+            %x_78:i32 = let %29
+            %31:u32 = bitcast %x_78
+            %32:u32 = add %x_77, %31
+            %33:ptr<storage, i32, read_write> = access %x_15, 0u, %32
+            %34:ptr<storage, i32, read_write> = let %33
+            %35:u32 = load %base_index_in
+            %36:u32 = let %35
+            %37:i32 = load %index_in0
+            %38:u32 = bitcast %37
+            %39:u32 = add %36, %38
+            %40:ptr<storage, i32, read> = access %x_17, 0u, %39
+            %41:i32 = load %40
+            store %34, %41
+            %42:i32 = load %index_out0
+            %43:i32 = sub %42, 1i
+            store %index_out0, %43
+            %44:i32 = load %index_in1
+            %45:i32 = sub %44, 1i
+            store %index_in1, %45
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_92:u32 = load %base_index_out
-            %x_93:i32 = load %index_out1
-            %44:u32 = bitcast %x_93
-            %45:u32 = add %x_92, %44
-            %46:ptr<storage, i32, read_write> = access %x_15, 0u, %45
-            %47:u32 = load %base_index_in
-            %48:i32 = load %index_in1
-            %49:u32 = bitcast %48
-            %50:u32 = add %47, %49
-            %51:ptr<storage, i32, read> = access %x_19, 0u, %50
-            %52:i32 = load %51
-            store %46, %52
-            %53:i32 = load %index_out1
-            %54:i32 = sub %53, 1i
-            store %index_out1, %54
-            %55:i32 = load %index_in1
-            %56:i32 = sub %55, 1i
-            store %index_in1, %56
+          $B8: {  # false
+            %46:u32 = load %base_index_out
+            %x_92:u32 = let %46
+            %48:i32 = load %index_out1
+            %x_93:i32 = let %48
+            %50:u32 = bitcast %x_93
+            %51:u32 = add %x_92, %50
+            %52:ptr<storage, i32, read_write> = access %x_15, 0u, %51
+            %53:ptr<storage, i32, read_write> = let %52
+            %54:u32 = load %base_index_in
+            %55:u32 = let %54
+            %56:i32 = load %index_in1
+            %57:u32 = bitcast %56
+            %58:u32 = add %55, %57
+            %59:ptr<storage, i32, read> = access %x_19, 0u, %58
+            %60:i32 = load %59
+            store %53, %60
+            %61:i32 = load %index_out1
+            %62:i32 = sub %61, 1i
+            store %index_out1, %62
+            %63:i32 = load %index_in1
+            %64:i32 = sub %63, 1i
+            store %index_in1, %64
             exit_if  # if_2
           }
         }
-        %57:i32 = load %condition_index
-        %58:i32 = load %condition_index
-        %59:i32 = add %58, 1i
-        %60:ptr<storage, i32, read> = access %x_13, 0u, %59
-        %61:i32 = load %60
-        %62:i32 = add %57, %61
-        store %condition_index, %62
-        %63:i32 = load %index_in0
-        store %temp0, %63
-        %64:i32 = load %index_in1
-        store %index_in0, %64
-        %65:i32 = load %temp0
-        store %index_in1, %65
-        %66:i32 = load %index_out0
-        store %temp1, %66
-        %67:i32 = load %index_out1
-        store %index_out0, %67
-        %68:i32 = load %temp1
-        store %index_out1, %68
-        continue %b4
+        %65:i32 = load %condition_index
+        %66:i32 = load %condition_index
+        %67:i32 = add %66, 1i
+        %68:ptr<storage, i32, read> = access %x_13, 0u, %67
+        %69:i32 = load %68
+        %70:i32 = add %65, %69
+        store %condition_index, %70
+        %71:i32 = load %index_in0
+        store %temp0, %71
+        %72:i32 = load %index_in1
+        store %index_in0, %72
+        %73:i32 = load %temp0
+        store %index_in1, %73
+        %74:i32 = load %index_out0
+        store %temp1, %74
+        %75:i32 = load %index_out1
+        store %index_out0, %75
+        %76:i32 = load %temp1
+        store %index_out1, %76
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %69:i32 = load %i
-        %70:i32 = add %69, 1i
-        store %i, %70
-        next_iteration %b3
+      $B4: {  # continuing
+        %77:i32 = load %i
+        %78:i32 = add %77, 1i
+        store %i, %78
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void -> %b9 {
-  %b9 = block {
-    store %gl_WorkGroupID, %gl_WorkGroupID_param
-    %73:void = call %main_1
+%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void {
+  $B9: {
+    %81:void = call %main_1, %gl_WorkGroupID_param
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.msl
index 576fde1..594a41a 100644
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_overflow/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: In2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: In2 = struct @align(4) {
   data_in2:array<i32, 8> @offset(0)
 }
 
@@ -16,7 +16,7 @@
   data_in0:array<i32, 512> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_WorkGroupID:ptr<private, vec3<u32>, read_write> = var
   %x_13:ptr<storage, In2, read> = var @binding_point(0, 2)
   %x_15:ptr<storage, Out0, read_write> = var @binding_point(0, 3)
@@ -24,8 +24,8 @@
   %x_19:ptr<storage, In0, read> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %base_index_in:ptr<function, u32, read_write> = var
     %base_index_out:ptr<function, u32, read_write> = var
     %index_in0:ptr<function, i32, read_write> = var
@@ -36,113 +36,142 @@
     %i:ptr<function, i32, read_write> = var
     %temp0:ptr<function, i32, read_write> = var
     %temp1:ptr<function, i32, read_write> = var
-    %x_58:u32 = load_vector_element %gl_WorkGroupID, 0u
-    %18:u32 = mul 128u, %x_58
-    store %base_index_in, %18
-    %x_61:u32 = load_vector_element %gl_WorkGroupID, 0u
-    %20:u32 = mul 256u, %x_61
-    store %base_index_out, %20
+    %17:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %x_58:u32 = let %17
+    %19:u32 = mul 128u, %x_58
+    store %base_index_in, %19
+    %20:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %x_61:u32 = let %20
+    %22:u32 = mul 256u, %x_61
+    store %base_index_out, %22
     store %index_in0, 127i
     store %index_in1, 383i
     store %index_out0, 255i
     store %index_out1, 383i
     store %condition_index, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_67:i32 = load %i
-        %22:bool = lt %x_67, 256i
-        if %22 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %23:i32 = load %i
+        %x_67:i32 = let %23
+        %25:bool = lt %x_67, 256i
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_70:i32 = load %condition_index
-        %24:ptr<storage, i32, read> = access %x_13, 0u, %x_70
-        %x_72:i32 = load %24
-        %26:bool = eq %x_72, 0i
-        if %26 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_77:u32 = load %base_index_out
-            %x_78:i32 = load %index_out0
-            %x_81:u32 = load %base_index_in
-            %x_82:i32 = load %index_in0
-            %31:u32 = bitcast %x_82
-            %32:u32 = add %x_81, %31
-            %33:ptr<storage, i32, read> = access %x_17, 0u, %32
-            %x_86:i32 = load %33
-            %35:u32 = bitcast %x_78
-            %36:u32 = add %x_77, %35
-            %37:ptr<storage, i32, read_write> = access %x_15, 0u, %36
-            store %37, %x_86
-            %x_88:i32 = load %index_out0
-            %39:i32 = sub %x_88, 1i
-            store %index_out0, %39
-            %x_90:i32 = load %index_in1
-            %41:i32 = sub %x_90, 1i
-            store %index_in1, %41
+        %26:i32 = load %condition_index
+        %x_70:i32 = let %26
+        %28:ptr<storage, i32, read> = access %x_13, 0u, %x_70
+        %29:i32 = load %28
+        %x_72:i32 = let %29
+        %31:bool = eq %x_72, 0i
+        if %31 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %32:u32 = load %base_index_out
+            %x_77:u32 = let %32
+            %34:i32 = load %index_out0
+            %x_78:i32 = let %34
+            %36:u32 = load %base_index_in
+            %x_81:u32 = let %36
+            %38:i32 = load %index_in0
+            %x_82:i32 = let %38
+            %40:u32 = bitcast %x_82
+            %41:u32 = add %x_81, %40
+            %42:ptr<storage, i32, read> = access %x_17, 0u, %41
+            %43:i32 = load %42
+            %x_86:i32 = let %43
+            %45:u32 = bitcast %x_78
+            %46:u32 = add %x_77, %45
+            %47:ptr<storage, i32, read_write> = access %x_15, 0u, %46
+            store %47, %x_86
+            %48:i32 = load %index_out0
+            %x_88:i32 = let %48
+            %50:i32 = sub %x_88, 1i
+            store %index_out0, %50
+            %51:i32 = load %index_in1
+            %x_90:i32 = let %51
+            %53:i32 = sub %x_90, 1i
+            store %index_in1, %53
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_92:u32 = load %base_index_out
-            %x_93:i32 = load %index_out1
-            %x_96:u32 = load %base_index_in
-            %x_97:i32 = load %index_in1
-            %46:u32 = bitcast %x_97
-            %47:u32 = add %x_96, %46
-            %48:ptr<storage, i32, read> = access %x_19, 0u, %47
-            %x_101:i32 = load %48
-            %50:u32 = bitcast %x_93
-            %51:u32 = add %x_92, %50
-            %52:ptr<storage, i32, read_write> = access %x_15, 0u, %51
-            store %52, %x_101
-            %x_103:i32 = load %index_out1
-            %54:i32 = sub %x_103, 1i
-            store %index_out1, %54
-            %x_105:i32 = load %index_in1
-            %56:i32 = sub %x_105, 1i
-            store %index_in1, %56
+          $B8: {  # false
+            %54:u32 = load %base_index_out
+            %x_92:u32 = let %54
+            %56:i32 = load %index_out1
+            %x_93:i32 = let %56
+            %58:u32 = load %base_index_in
+            %x_96:u32 = let %58
+            %60:i32 = load %index_in1
+            %x_97:i32 = let %60
+            %62:u32 = bitcast %x_97
+            %63:u32 = add %x_96, %62
+            %64:ptr<storage, i32, read> = access %x_19, 0u, %63
+            %65:i32 = load %64
+            %x_101:i32 = let %65
+            %67:u32 = bitcast %x_93
+            %68:u32 = add %x_92, %67
+            %69:ptr<storage, i32, read_write> = access %x_15, 0u, %68
+            store %69, %x_101
+            %70:i32 = load %index_out1
+            %x_103:i32 = let %70
+            %72:i32 = sub %x_103, 1i
+            store %index_out1, %72
+            %73:i32 = load %index_in1
+            %x_105:i32 = let %73
+            %75:i32 = sub %x_105, 1i
+            store %index_in1, %75
             exit_if  # if_2
           }
         }
-        %x_107:i32 = load %condition_index
-        %58:i32 = add %x_107, 1i
-        %59:ptr<storage, i32, read> = access %x_13, 0u, %58
-        %x_110:i32 = load %59
-        %x_111:i32 = load %condition_index
-        %62:i32 = add %x_111, %x_110
-        store %condition_index, %62
-        %x_113:i32 = load %index_in0
+        %76:i32 = load %condition_index
+        %x_107:i32 = let %76
+        %78:i32 = add %x_107, 1i
+        %79:ptr<storage, i32, read> = access %x_13, 0u, %78
+        %80:i32 = load %79
+        %x_110:i32 = let %80
+        %82:i32 = load %condition_index
+        %x_111:i32 = let %82
+        %84:i32 = add %x_111, %x_110
+        store %condition_index, %84
+        %85:i32 = load %index_in0
+        %x_113:i32 = let %85
         store %temp0, %x_113
-        %x_114:i32 = load %index_in1
+        %87:i32 = load %index_in1
+        %x_114:i32 = let %87
         store %index_in0, %x_114
-        %x_115:i32 = load %temp0
+        %89:i32 = load %temp0
+        %x_115:i32 = let %89
         store %index_in1, %x_115
-        %x_116:i32 = load %index_out0
+        %91:i32 = load %index_out0
+        %x_116:i32 = let %91
         store %temp1, %x_116
-        %x_117:i32 = load %index_out1
+        %93:i32 = load %index_out1
+        %x_117:i32 = let %93
         store %index_out0, %x_117
-        %x_118:i32 = load %temp1
+        %95:i32 = load %temp1
+        %x_118:i32 = let %95
         store %index_out1, %x_118
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_119:i32 = load %i
-        %70:i32 = add %x_119, 1i
-        store %i, %70
-        next_iteration %b3
+      $B4: {  # continuing
+        %97:i32 = load %i
+        %x_119:i32 = let %97
+        %99:i32 = add %x_119, 1i
+        store %i, %99
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void -> %b9 {
-  %b9 = block {
+%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void {
+  $B9: {
     store %gl_WorkGroupID, %gl_WorkGroupID_param
-    %73:void = call %main_1
+    %102:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.msl
index 1624d2c..d3fb672 100644
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: In2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: In2 = struct @align(4) {
   data_in2:array<i32, 8> @offset(0)
 }
 
@@ -16,16 +16,15 @@
   data_in1:array<i32, 512> @offset(0)
 }
 
-%b1 = block {  # root
-  %gl_WorkGroupID:ptr<private, vec3<u32>, read_write> = var
+$B1: {  # root
   %x_13:ptr<storage, In2, read> = var @binding_point(0, 2)
   %x_15:ptr<storage, Out0, read_write> = var @binding_point(0, 3)
   %x_17:ptr<storage, In0, read> = var @binding_point(0, 0)
   %x_19:ptr<storage, In1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func(%tint_wgid:vec3<u32>):void {
+  $B2: {
     %base_index_in:ptr<function, u32, read_write> = var
     %base_index_out:ptr<function, u32, read_write> = var
     %index_in0:ptr<function, i32, read_write> = var
@@ -36,10 +35,10 @@
     %i:ptr<function, i32, read_write> = var
     %temp0:ptr<function, i32, read_write> = var
     %temp1:ptr<function, i32, read_write> = var
-    %17:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %17:u32 = access %tint_wgid, 0u
     %18:u32 = mul 128u, %17
     store %base_index_in, %18
-    %19:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %19:u32 = access %tint_wgid, 0u
     %20:u32 = mul 256u, %19
     store %base_index_out, %20
     store %index_in0, 0i
@@ -48,15 +47,15 @@
     store %index_out1, -128i
     store %condition_index, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %21:i32 = load %i
         %22:bool = lt %21, 256i
-        if %22 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %22 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -64,85 +63,92 @@
         %24:ptr<storage, i32, read> = access %x_13, 0u, %23
         %25:i32 = load %24
         %26:bool = eq %25, 0i
-        if %26 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_75:u32 = load %base_index_out
-            %x_76:i32 = load %index_out0
-            %29:u32 = bitcast %x_76
-            %30:u32 = add %x_75, %29
-            %31:ptr<storage, i32, read_write> = access %x_15, 0u, %30
-            %32:u32 = load %base_index_in
-            %33:i32 = load %index_in0
-            %34:u32 = bitcast %33
-            %35:u32 = add %32, %34
-            %36:ptr<storage, i32, read> = access %x_17, 0u, %35
-            %37:i32 = load %36
-            store %31, %37
-            %38:i32 = load %index_out0
-            %39:i32 = add %38, 1i
-            store %index_out0, %39
-            %40:i32 = load %index_in1
-            %41:i32 = add %40, 1i
-            store %index_in1, %41
+        if %26 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %27:u32 = load %base_index_out
+            %x_75:u32 = let %27
+            %29:i32 = load %index_out0
+            %x_76:i32 = let %29
+            %31:u32 = bitcast %x_76
+            %32:u32 = add %x_75, %31
+            %33:ptr<storage, i32, read_write> = access %x_15, 0u, %32
+            %34:ptr<storage, i32, read_write> = let %33
+            %35:u32 = load %base_index_in
+            %36:u32 = let %35
+            %37:i32 = load %index_in0
+            %38:u32 = bitcast %37
+            %39:u32 = add %36, %38
+            %40:ptr<storage, i32, read> = access %x_17, 0u, %39
+            %41:i32 = load %40
+            store %34, %41
+            %42:i32 = load %index_out0
+            %43:i32 = add %42, 1i
+            store %index_out0, %43
+            %44:i32 = load %index_in1
+            %45:i32 = add %44, 1i
+            store %index_in1, %45
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_90:u32 = load %base_index_out
-            %x_91:i32 = load %index_out1
-            %44:u32 = bitcast %x_91
-            %45:u32 = add %x_90, %44
-            %46:ptr<storage, i32, read_write> = access %x_15, 0u, %45
-            %47:u32 = load %base_index_in
-            %48:i32 = load %index_in1
-            %49:u32 = bitcast %48
-            %50:u32 = add %47, %49
-            %51:ptr<storage, i32, read> = access %x_19, 0u, %50
-            %52:i32 = load %51
-            store %46, %52
-            %53:i32 = load %index_out1
-            %54:i32 = add %53, 1i
-            store %index_out1, %54
-            %55:i32 = load %index_in1
-            %56:i32 = add %55, 1i
-            store %index_in1, %56
+          $B8: {  # false
+            %46:u32 = load %base_index_out
+            %x_90:u32 = let %46
+            %48:i32 = load %index_out1
+            %x_91:i32 = let %48
+            %50:u32 = bitcast %x_91
+            %51:u32 = add %x_90, %50
+            %52:ptr<storage, i32, read_write> = access %x_15, 0u, %51
+            %53:ptr<storage, i32, read_write> = let %52
+            %54:u32 = load %base_index_in
+            %55:u32 = let %54
+            %56:i32 = load %index_in1
+            %57:u32 = bitcast %56
+            %58:u32 = add %55, %57
+            %59:ptr<storage, i32, read> = access %x_19, 0u, %58
+            %60:i32 = load %59
+            store %53, %60
+            %61:i32 = load %index_out1
+            %62:i32 = add %61, 1i
+            store %index_out1, %62
+            %63:i32 = load %index_in1
+            %64:i32 = add %63, 1i
+            store %index_in1, %64
             exit_if  # if_2
           }
         }
-        %57:i32 = load %condition_index
-        %58:i32 = load %condition_index
-        %59:i32 = add %58, 1i
-        %60:ptr<storage, i32, read> = access %x_13, 0u, %59
-        %61:i32 = load %60
-        %62:i32 = add %57, %61
-        store %condition_index, %62
-        %63:i32 = load %index_in0
-        store %temp0, %63
-        %64:i32 = load %index_in1
-        store %index_in0, %64
-        %65:i32 = load %temp0
-        store %index_in1, %65
-        %66:i32 = load %index_out0
-        store %temp1, %66
-        %67:i32 = load %index_out1
-        store %index_out0, %67
-        %68:i32 = load %temp1
-        store %index_out1, %68
-        continue %b4
+        %65:i32 = load %condition_index
+        %66:i32 = load %condition_index
+        %67:i32 = add %66, 1i
+        %68:ptr<storage, i32, read> = access %x_13, 0u, %67
+        %69:i32 = load %68
+        %70:i32 = add %65, %69
+        store %condition_index, %70
+        %71:i32 = load %index_in0
+        store %temp0, %71
+        %72:i32 = load %index_in1
+        store %index_in0, %72
+        %73:i32 = load %temp0
+        store %index_in1, %73
+        %74:i32 = load %index_out0
+        store %temp1, %74
+        %75:i32 = load %index_out1
+        store %index_out0, %75
+        %76:i32 = load %temp1
+        store %index_out1, %76
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %69:i32 = load %i
-        %70:i32 = add %69, 1i
-        store %i, %70
-        next_iteration %b3
+      $B4: {  # continuing
+        %77:i32 = load %i
+        %78:i32 = add %77, 1i
+        store %i, %78
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void -> %b9 {
-  %b9 = block {
-    store %gl_WorkGroupID, %gl_WorkGroupID_param
-    %73:void = call %main_1
+%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void {
+  $B9: {
+    %81:void = call %main_1, %gl_WorkGroupID_param
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.msl
index 15c0b92..82a26e8 100644
--- a/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/non_robust_buffer_access/unexecuted_oob_underflow/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: In2 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: In2 = struct @align(4) {
   data_in2:array<i32, 8> @offset(0)
 }
 
@@ -16,7 +16,7 @@
   data_in1:array<i32, 512> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %gl_WorkGroupID:ptr<private, vec3<u32>, read_write> = var
   %x_13:ptr<storage, In2, read> = var @binding_point(0, 2)
   %x_15:ptr<storage, Out0, read_write> = var @binding_point(0, 3)
@@ -24,8 +24,8 @@
   %x_19:ptr<storage, In1, read> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %base_index_in:ptr<function, u32, read_write> = var
     %base_index_out:ptr<function, u32, read_write> = var
     %index_in0:ptr<function, i32, read_write> = var
@@ -36,113 +36,142 @@
     %i:ptr<function, i32, read_write> = var
     %temp0:ptr<function, i32, read_write> = var
     %temp1:ptr<function, i32, read_write> = var
-    %x_56:u32 = load_vector_element %gl_WorkGroupID, 0u
-    %18:u32 = mul 128u, %x_56
-    store %base_index_in, %18
-    %x_59:u32 = load_vector_element %gl_WorkGroupID, 0u
-    %20:u32 = mul 256u, %x_59
-    store %base_index_out, %20
+    %17:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %x_56:u32 = let %17
+    %19:u32 = mul 128u, %x_56
+    store %base_index_in, %19
+    %20:u32 = load_vector_element %gl_WorkGroupID, 0u
+    %x_59:u32 = let %20
+    %22:u32 = mul 256u, %x_59
+    store %base_index_out, %22
     store %index_in0, 0i
     store %index_in1, -128i
     store %index_out0, 0i
     store %index_out1, -128i
     store %condition_index, 0i
     store %i, 0i
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_65:i32 = load %i
-        %22:bool = lt %x_65, 256i
-        if %22 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %23:i32 = load %i
+        %x_65:i32 = let %23
+        %25:bool = lt %x_65, 256i
+        if %25 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_68:i32 = load %condition_index
-        %24:ptr<storage, i32, read> = access %x_13, 0u, %x_68
-        %x_70:i32 = load %24
-        %26:bool = eq %x_70, 0i
-        if %26 [t: %b7, f: %b8] {  # if_2
-          %b7 = block {  # true
-            %x_75:u32 = load %base_index_out
-            %x_76:i32 = load %index_out0
-            %x_79:u32 = load %base_index_in
-            %x_80:i32 = load %index_in0
-            %31:u32 = bitcast %x_80
-            %32:u32 = add %x_79, %31
-            %33:ptr<storage, i32, read> = access %x_17, 0u, %32
-            %x_84:i32 = load %33
-            %35:u32 = bitcast %x_76
-            %36:u32 = add %x_75, %35
-            %37:ptr<storage, i32, read_write> = access %x_15, 0u, %36
-            store %37, %x_84
-            %x_86:i32 = load %index_out0
-            %39:i32 = add %x_86, 1i
-            store %index_out0, %39
-            %x_88:i32 = load %index_in1
-            %41:i32 = add %x_88, 1i
-            store %index_in1, %41
+        %26:i32 = load %condition_index
+        %x_68:i32 = let %26
+        %28:ptr<storage, i32, read> = access %x_13, 0u, %x_68
+        %29:i32 = load %28
+        %x_70:i32 = let %29
+        %31:bool = eq %x_70, 0i
+        if %31 [t: $B7, f: $B8] {  # if_2
+          $B7: {  # true
+            %32:u32 = load %base_index_out
+            %x_75:u32 = let %32
+            %34:i32 = load %index_out0
+            %x_76:i32 = let %34
+            %36:u32 = load %base_index_in
+            %x_79:u32 = let %36
+            %38:i32 = load %index_in0
+            %x_80:i32 = let %38
+            %40:u32 = bitcast %x_80
+            %41:u32 = add %x_79, %40
+            %42:ptr<storage, i32, read> = access %x_17, 0u, %41
+            %43:i32 = load %42
+            %x_84:i32 = let %43
+            %45:u32 = bitcast %x_76
+            %46:u32 = add %x_75, %45
+            %47:ptr<storage, i32, read_write> = access %x_15, 0u, %46
+            store %47, %x_84
+            %48:i32 = load %index_out0
+            %x_86:i32 = let %48
+            %50:i32 = add %x_86, 1i
+            store %index_out0, %50
+            %51:i32 = load %index_in1
+            %x_88:i32 = let %51
+            %53:i32 = add %x_88, 1i
+            store %index_in1, %53
             exit_if  # if_2
           }
-          %b8 = block {  # false
-            %x_90:u32 = load %base_index_out
-            %x_91:i32 = load %index_out1
-            %x_94:u32 = load %base_index_in
-            %x_95:i32 = load %index_in1
-            %46:u32 = bitcast %x_95
-            %47:u32 = add %x_94, %46
-            %48:ptr<storage, i32, read> = access %x_19, 0u, %47
-            %x_99:i32 = load %48
-            %50:u32 = bitcast %x_91
-            %51:u32 = add %x_90, %50
-            %52:ptr<storage, i32, read_write> = access %x_15, 0u, %51
-            store %52, %x_99
-            %x_101:i32 = load %index_out1
-            %54:i32 = add %x_101, 1i
-            store %index_out1, %54
-            %x_103:i32 = load %index_in1
-            %56:i32 = add %x_103, 1i
-            store %index_in1, %56
+          $B8: {  # false
+            %54:u32 = load %base_index_out
+            %x_90:u32 = let %54
+            %56:i32 = load %index_out1
+            %x_91:i32 = let %56
+            %58:u32 = load %base_index_in
+            %x_94:u32 = let %58
+            %60:i32 = load %index_in1
+            %x_95:i32 = let %60
+            %62:u32 = bitcast %x_95
+            %63:u32 = add %x_94, %62
+            %64:ptr<storage, i32, read> = access %x_19, 0u, %63
+            %65:i32 = load %64
+            %x_99:i32 = let %65
+            %67:u32 = bitcast %x_91
+            %68:u32 = add %x_90, %67
+            %69:ptr<storage, i32, read_write> = access %x_15, 0u, %68
+            store %69, %x_99
+            %70:i32 = load %index_out1
+            %x_101:i32 = let %70
+            %72:i32 = add %x_101, 1i
+            store %index_out1, %72
+            %73:i32 = load %index_in1
+            %x_103:i32 = let %73
+            %75:i32 = add %x_103, 1i
+            store %index_in1, %75
             exit_if  # if_2
           }
         }
-        %x_105:i32 = load %condition_index
-        %58:i32 = add %x_105, 1i
-        %59:ptr<storage, i32, read> = access %x_13, 0u, %58
-        %x_108:i32 = load %59
-        %x_109:i32 = load %condition_index
-        %62:i32 = add %x_109, %x_108
-        store %condition_index, %62
-        %x_111:i32 = load %index_in0
+        %76:i32 = load %condition_index
+        %x_105:i32 = let %76
+        %78:i32 = add %x_105, 1i
+        %79:ptr<storage, i32, read> = access %x_13, 0u, %78
+        %80:i32 = load %79
+        %x_108:i32 = let %80
+        %82:i32 = load %condition_index
+        %x_109:i32 = let %82
+        %84:i32 = add %x_109, %x_108
+        store %condition_index, %84
+        %85:i32 = load %index_in0
+        %x_111:i32 = let %85
         store %temp0, %x_111
-        %x_112:i32 = load %index_in1
+        %87:i32 = load %index_in1
+        %x_112:i32 = let %87
         store %index_in0, %x_112
-        %x_113:i32 = load %temp0
+        %89:i32 = load %temp0
+        %x_113:i32 = let %89
         store %index_in1, %x_113
-        %x_114:i32 = load %index_out0
+        %91:i32 = load %index_out0
+        %x_114:i32 = let %91
         store %temp1, %x_114
-        %x_115:i32 = load %index_out1
+        %93:i32 = load %index_out1
+        %x_115:i32 = let %93
         store %index_out0, %x_115
-        %x_116:i32 = load %temp1
+        %95:i32 = load %temp1
+        %x_116:i32 = let %95
         store %index_out1, %x_116
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_117:i32 = load %i
-        %70:i32 = add %x_117, 1i
-        store %i, %70
-        next_iteration %b3
+      $B4: {  # continuing
+        %97:i32 = load %i
+        %x_117:i32 = let %97
+        %99:i32 = add %x_117, 1i
+        store %i, %99
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void -> %b9 {
-  %b9 = block {
+%tint_symbol = @compute @workgroup_size(4, 1, 1) func(%gl_WorkGroupID_param:vec3<u32> [@workgroup_id]):void {
+  $B9: {
     store %gl_WorkGroupID, %gl_WorkGroupID_param
-    %73:void = call %main_1
+    %102:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.msl
index efdd3b1..83ed178 100644
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.spvasm.expected.ir.msl
@@ -1,6 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color, vec4<f32>(1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %4:void = call %main_1
+    %5:vec4<f32> = load %color
+    %6:main_out = construct %5
+    ret %6
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.msl
index efdd3b1..83ed178 100644
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/0.wgsl.expected.ir.msl
@@ -1,6 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %color:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color, vec4<f32>(1.0f)
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %4:void = call %main_1
+    %5:vec4<f32> = load %color
+    %6:main_out = construct %5
+    ret %6
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.msl
index 94e248c..ee65b2d 100644
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.msl
index 28251dc..ee65b2d 100644
--- a/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/rasterization/line_continuity/line-strip/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureLoad
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.msl
index db2933f..cd371e5 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Buf1 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Buf1 = struct @align(4) {
   result:i32 @offset(0)
 }
 
@@ -8,26 +8,26 @@
   values:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, Buf1, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, Buf0, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, u32, read_write> = var
     %5:ptr<storage, i32, read_write> = access %x_4, 0u
     store %5, 1i
     store %i, 0u
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
         %6:u32 = load %i
         %7:bool = lt %6, 512u
-        if %7 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+        if %7 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
@@ -37,27 +37,27 @@
         %11:u32 = load %10
         %12:u32 = load %i
         %13:bool = neq %11, %12
-        if %13 [t: %b7] {  # if_2
-          %b7 = block {  # true
+        if %13 [t: $B7] {  # if_2
+          $B7: {  # true
             %14:ptr<storage, i32, read_write> = access %x_4, 0u
             store %14, 0i
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
+      $B4: {  # continuing
         %15:u32 = load %i
         %16:u32 = add %15, 1u
         store %i, %16
-        next_iteration %b3
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b8 {
-  %b8 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B8: {
     %18:void = call %main_1
     ret
   }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.msl
index a622a8e..80f3ac0 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: Buf1 = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: Buf1 = struct @align(4) {
   result:i32 @offset(0)
 }
 
@@ -8,57 +8,62 @@
   values:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_4:ptr<storage, Buf1, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, Buf0, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     %i:ptr<function, u32, read_write> = var
     %5:ptr<storage, i32, read_write> = access %x_4, 0u
     store %5, 1i
     store %i, 0u
-    loop [b: %b3, c: %b4] {  # loop_1
-      %b3 = block {  # body
-        %x_33:u32 = load %i
-        %7:bool = lt %x_33, 512u
-        if %7 [t: %b5, f: %b6] {  # if_1
-          %b5 = block {  # true
+    loop [b: $B3, c: $B4] {  # loop_1
+      $B3: {  # body
+        %6:u32 = load %i
+        %x_33:u32 = let %6
+        %8:bool = lt %x_33, 512u
+        if %8 [t: $B5, f: $B6] {  # if_1
+          $B5: {  # true
             exit_if  # if_1
           }
-          %b6 = block {  # false
+          $B6: {  # false
             exit_loop  # loop_1
           }
         }
-        %x_36:u32 = load %i
-        %9:u32 = mul %x_36, 2u
-        %10:ptr<storage, u32, read_write> = access %x_7, 0u, %9
-        %x_39:u32 = load %10
-        %x_40:u32 = load %i
-        %13:bool = neq %x_39, %x_40
-        if %13 [t: %b7] {  # if_2
-          %b7 = block {  # true
-            %14:ptr<storage, i32, read_write> = access %x_4, 0u
-            store %14, 0i
+        %9:u32 = load %i
+        %x_36:u32 = let %9
+        %11:u32 = mul %x_36, 2u
+        %12:ptr<storage, u32, read_write> = access %x_7, 0u, %11
+        %13:u32 = load %12
+        %x_39:u32 = let %13
+        %15:u32 = load %i
+        %x_40:u32 = let %15
+        %17:bool = neq %x_39, %x_40
+        if %17 [t: $B7] {  # if_2
+          $B7: {  # true
+            %18:ptr<storage, i32, read_write> = access %x_4, 0u
+            store %18, 0i
             exit_if  # if_2
           }
         }
-        continue %b4
+        continue  # -> $B4
       }
-      %b4 = block {  # continuing
-        %x_45:u32 = load %i
-        %16:u32 = add %x_45, 1u
-        store %i, %16
-        next_iteration %b3
+      $B4: {  # continuing
+        %19:u32 = load %i
+        %x_45:u32 = let %19
+        %21:u32 = add %x_45, 1u
+        store %i, %21
+        next_iteration  # -> $B3
       }
     }
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void -> %b8 {
-  %b8 = block {
-    %18:void = call %main_1
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
+  $B8: {
+    %23:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.msl
index 319f48c..7cc7724 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.spvasm.expected.ir.msl
@@ -1,36 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:bool = gt %10, %13
-    %15:u32 = select 0u, 1u, %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %9:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:bool = gt %12, %15
+    %17:u32 = select 0u, 1u, %16
+    store %8, %17
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.msl
index e8e85a7..ceaa51e 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthan/0.wgsl.expected.ir.msl
@@ -1,36 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %x_23:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_25:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %12:i32 = bitcast %x_23
-    %13:i32 = bitcast %x_25
-    %14:bool = gt %12, %13
-    %15:u32 = select 0u, 1u, %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %9:u32 = load %8
+    %x_23:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %12:u32 = load %11
+    %x_25:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %15:i32 = bitcast %x_23
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_25
+    %18:bool = gt %16, %17
+    %19:u32 = select 0u, 1u, %18
+    store %14, %19
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %22:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.msl
index 06c15a8..74815d1 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.spvasm.expected.ir.msl
@@ -1,36 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:bool = gte %10, %13
-    %15:u32 = select 0u, 1u, %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %9:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:bool = gte %12, %15
+    %17:u32 = select 0u, 1u, %16
+    store %8, %17
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.msl
index 8d34f15..5b46a17 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_sgreaterthanequal/0.wgsl.expected.ir.msl
@@ -1,36 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %x_23:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_25:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %12:i32 = bitcast %x_23
-    %13:i32 = bitcast %x_25
-    %14:bool = gte %12, %13
-    %15:u32 = select 0u, 1u, %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %9:u32 = load %8
+    %x_23:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %12:u32 = load %11
+    %x_25:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %15:i32 = bitcast %x_23
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_25
+    %18:bool = gte %16, %17
+    %19:u32 = select 0u, 1u, %18
+    store %14, %19
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %22:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.msl
index 0d98c63..83f4293 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.spvasm.expected.ir.msl
@@ -1,36 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:bool = lt %10, %13
-    %15:u32 = select 0u, 1u, %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %9:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:bool = lt %12, %15
+    %17:u32 = select 0u, 1u, %16
+    store %8, %17
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.msl
index 9efe1c2..ea7ed1d 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthan/0.wgsl.expected.ir.msl
@@ -1,36 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %x_23:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_25:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %12:i32 = bitcast %x_23
-    %13:i32 = bitcast %x_25
-    %14:bool = lt %12, %13
-    %15:u32 = select 0u, 1u, %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %9:u32 = load %8
+    %x_23:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %12:u32 = load %11
+    %x_25:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %15:i32 = bitcast %x_23
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_25
+    %18:bool = lt %16, %17
+    %19:u32 = select 0u, 1u, %18
+    store %14, %19
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %22:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.msl
index f31ca88..c0f8fcc 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.spvasm.expected.ir.msl
@@ -1,36 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:bool = lte %10, %13
-    %15:u32 = select 0u, 1u, %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %9:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:bool = lte %12, %15
+    %17:u32 = select 0u, 1u, %16
+    store %8, %17
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.msl
index 73fabb9..7486883 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_int_compare/uint_slessthanequal/0.wgsl.expected.ir.msl
@@ -1,36 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
-    %x_23:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_25:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %12:i32 = bitcast %x_23
-    %13:i32 = bitcast %x_25
-    %14:bool = lte %12, %13
-    %15:u32 = select 0u, 1u, %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_21
+    %9:u32 = load %8
+    %x_23:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %12:u32 = load %11
+    %x_25:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %15:i32 = bitcast %x_23
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_25
+    %18:bool = lte %16, %17
+    %19:u32 = select 0u, 1u, %18
+    store %14, %19
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %22:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.msl
index a5b2278..55ef712 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.spvasm.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
@@ -12,29 +12,34 @@
   %x_9:ptr<storage, S, read_write> = var @binding_point(0, 3)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_26:u32 = load_vector_element %x_3, 0u
-    %8:ptr<storage, i32, read_write> = access %x_9, 0u, %x_26
-    %9:ptr<storage, i32, read_write> = access %x_6, 0u, %x_26
-    %10:i32 = load %9
-    %11:u32 = bitcast %10
-    %12:ptr<storage, i32, read_write> = access %x_7, 0u, %x_26
-    %13:i32 = load %12
-    %14:u32 = bitcast %13
-    %15:ptr<storage, i32, read_write> = access %x_8, 0u, %x_26
-    %16:i32 = load %15
-    %17:u32 = bitcast %16
-    %18:u32 = clamp %11, %14, %17
-    %19:i32 = bitcast %18
-    store %8, %19
+%main_1 = func():void {
+  $B2: {
+    %7:u32 = load_vector_element %x_3, 0u
+    %x_26:u32 = let %7
+    %9:ptr<storage, i32, read_write> = access %x_9, 0u, %x_26
+    %10:ptr<storage, i32, read_write> = access %x_6, 0u, %x_26
+    %11:i32 = load %10
+    %12:u32 = bitcast %11
+    %13:u32 = let %12
+    %14:ptr<storage, i32, read_write> = access %x_7, 0u, %x_26
+    %15:i32 = load %14
+    %16:u32 = bitcast %15
+    %17:u32 = let %16
+    %18:ptr<storage, i32, read_write> = access %x_8, 0u, %x_26
+    %19:i32 = load %18
+    %20:u32 = bitcast %19
+    %21:u32 = let %20
+    %22:u32 = max %13, %17
+    %23:u32 = min %22, %21
+    %24:i32 = bitcast %23
+    store %9, %24
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %22:void = call %main_1
+    %27:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.msl
index dc355ac..ada8f10 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_int_uclamp/0-opt.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<i32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
@@ -12,29 +12,37 @@
   %x_9:ptr<storage, S, read_write> = var @binding_point(0, 3)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_26:u32 = load_vector_element %x_3, 0u
-    %8:ptr<storage, i32, read_write> = access %x_6, 0u, %x_26
-    %x_28:i32 = load %8
-    %10:ptr<storage, i32, read_write> = access %x_7, 0u, %x_26
-    %x_30:i32 = load %10
-    %12:ptr<storage, i32, read_write> = access %x_8, 0u, %x_26
-    %x_32:i32 = load %12
-    %14:ptr<storage, i32, read_write> = access %x_9, 0u, %x_26
-    %15:u32 = bitcast %x_28
-    %16:u32 = bitcast %x_30
-    %17:u32 = bitcast %x_32
-    %18:u32 = clamp %15, %16, %17
-    %19:i32 = bitcast %18
-    store %14, %19
+%main_1 = func():void {
+  $B2: {
+    %7:u32 = load_vector_element %x_3, 0u
+    %x_26:u32 = let %7
+    %9:ptr<storage, i32, read_write> = access %x_6, 0u, %x_26
+    %10:i32 = load %9
+    %x_28:i32 = let %10
+    %12:ptr<storage, i32, read_write> = access %x_7, 0u, %x_26
+    %13:i32 = load %12
+    %x_30:i32 = let %13
+    %15:ptr<storage, i32, read_write> = access %x_8, 0u, %x_26
+    %16:i32 = load %15
+    %x_32:i32 = let %16
+    %18:ptr<storage, i32, read_write> = access %x_9, 0u, %x_26
+    %19:u32 = bitcast %x_28
+    %20:u32 = let %19
+    %21:u32 = bitcast %x_30
+    %22:u32 = let %21
+    %23:u32 = bitcast %x_32
+    %24:u32 = let %23
+    %25:u32 = max %20, %22
+    %26:u32 = min %25, %24
+    %27:i32 = bitcast %26
+    store %18, %27
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %22:void = call %main_1
+    %30:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.msl
index eddfcd3..14bad00 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.spvasm.expected.ir.msl
@@ -1,32 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_3, 0u
-    %6:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %7:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %8:u32 = load %7
-    %9:i32 = bitcast %8
-    %10:i32 = abs %9
-    %11:u32 = bitcast %10
-    store %6, %11
+%main_1 = func():void {
+  $B2: {
+    %5:u32 = load_vector_element %x_3, 0u
+    %x_21:u32 = let %5
+    %7:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %9:u32 = load %8
+    %10:i32 = bitcast %9
+    %11:i32 = abs %10
+    %12:u32 = bitcast %11
+    store %7, %12
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %14:void = call %main_1
+    %15:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.msl
index 01f0198..ae12524 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sabs/0-opt.wgsl.expected.ir.msl
@@ -1,32 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_3, 0u
-    %6:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_23:u32 = load %6
-    %8:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %9:i32 = bitcast %x_23
-    %10:i32 = abs %9
-    %11:u32 = bitcast %10
-    store %8, %11
+%main_1 = func():void {
+  $B2: {
+    %5:u32 = load_vector_element %x_3, 0u
+    %x_21:u32 = let %5
+    %7:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %8:u32 = load %7
+    %x_23:u32 = let %8
+    %10:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %11:i32 = bitcast %x_23
+    %12:i32 = abs %11
+    %13:u32 = bitcast %12
+    store %10, %13
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %14:void = call %main_1
+    %16:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.msl
index 5861073..ec196d3 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.spvasm.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
@@ -12,29 +12,34 @@
   %x_9:ptr<storage, S, read_write> = var @binding_point(0, 3)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_23:u32 = load_vector_element %x_3, 0u
-    %8:ptr<storage, u32, read_write> = access %x_9, 0u, %x_23
-    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_23
-    %10:u32 = load %9
-    %11:i32 = bitcast %10
-    %12:ptr<storage, u32, read_write> = access %x_7, 0u, %x_23
-    %13:u32 = load %12
-    %14:i32 = bitcast %13
-    %15:ptr<storage, u32, read_write> = access %x_8, 0u, %x_23
-    %16:u32 = load %15
-    %17:i32 = bitcast %16
-    %18:i32 = clamp %11, %14, %17
-    %19:u32 = bitcast %18
-    store %8, %19
+%main_1 = func():void {
+  $B2: {
+    %7:u32 = load_vector_element %x_3, 0u
+    %x_23:u32 = let %7
+    %9:ptr<storage, u32, read_write> = access %x_9, 0u, %x_23
+    %10:ptr<storage, u32, read_write> = access %x_6, 0u, %x_23
+    %11:u32 = load %10
+    %12:i32 = bitcast %11
+    %13:i32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_7, 0u, %x_23
+    %15:u32 = load %14
+    %16:i32 = bitcast %15
+    %17:i32 = let %16
+    %18:ptr<storage, u32, read_write> = access %x_8, 0u, %x_23
+    %19:u32 = load %18
+    %20:i32 = bitcast %19
+    %21:i32 = let %20
+    %22:i32 = max %13, %17
+    %23:i32 = min %22, %21
+    %24:u32 = bitcast %23
+    store %9, %24
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %22:void = call %main_1
+    %27:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.msl
index 4473031..d11bca9 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_sclamp/0-opt.wgsl.expected.ir.msl
@@ -1,10 +1,10 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
@@ -12,29 +12,37 @@
   %x_9:ptr<storage, S, read_write> = var @binding_point(0, 3)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_23:u32 = load_vector_element %x_3, 0u
-    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_23
-    %x_25:u32 = load %8
-    %10:ptr<storage, u32, read_write> = access %x_7, 0u, %x_23
-    %x_27:u32 = load %10
-    %12:ptr<storage, u32, read_write> = access %x_8, 0u, %x_23
-    %x_29:u32 = load %12
-    %14:ptr<storage, u32, read_write> = access %x_9, 0u, %x_23
-    %15:i32 = bitcast %x_25
-    %16:i32 = bitcast %x_27
-    %17:i32 = bitcast %x_29
-    %18:i32 = clamp %15, %16, %17
-    %19:u32 = bitcast %18
-    store %14, %19
+%main_1 = func():void {
+  $B2: {
+    %7:u32 = load_vector_element %x_3, 0u
+    %x_23:u32 = let %7
+    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_23
+    %10:u32 = load %9
+    %x_25:u32 = let %10
+    %12:ptr<storage, u32, read_write> = access %x_7, 0u, %x_23
+    %13:u32 = load %12
+    %x_27:u32 = let %13
+    %15:ptr<storage, u32, read_write> = access %x_8, 0u, %x_23
+    %16:u32 = load %15
+    %x_29:u32 = let %16
+    %18:ptr<storage, u32, read_write> = access %x_9, 0u, %x_23
+    %19:i32 = bitcast %x_25
+    %20:i32 = let %19
+    %21:i32 = bitcast %x_27
+    %22:i32 = let %21
+    %23:i32 = bitcast %x_29
+    %24:i32 = let %23
+    %25:i32 = max %20, %22
+    %26:i32 = min %25, %24
+    %27:u32 = bitcast %26
+    store %18, %27
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %22:void = call %main_1
+    %30:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.msl
index ff8a1af..c9ca4ee 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.spvasm.expected.ir.msl
@@ -1,36 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_8:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_3, 0u
-    %7:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
-    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:i32 = max %10, %13
-    %15:u32 = bitcast %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_3, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
+    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:i32 = max %12, %15
+    %17:u32 = bitcast %16
+    store %8, %17
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %18:void = call %main_1
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.msl
index 2a42e3e..cd3896b 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smax/0-opt.wgsl.expected.ir.msl
@@ -1,36 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_8:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_3, 0u
-    %7:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_23:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %x_25:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
-    %12:i32 = bitcast %x_23
-    %13:i32 = bitcast %x_25
-    %14:i32 = max %12, %13
-    %15:u32 = bitcast %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_3, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %9:u32 = load %8
+    %x_23:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %12:u32 = load %11
+    %x_25:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
+    %15:i32 = bitcast %x_23
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_25
+    %18:i32 = max %16, %17
+    %19:u32 = bitcast %18
+    store %14, %19
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %18:void = call %main_1
+    %22:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.msl
index dffa6dc..4c56349 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.spvasm.expected.ir.msl
@@ -1,36 +1,38 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_8:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_3, 0u
-    %7:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
-    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:i32 = min %10, %13
-    %15:u32 = bitcast %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_3, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
+    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:i32 = min %12, %15
+    %17:u32 = bitcast %16
+    store %8, %17
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %18:void = call %main_1
+    %20:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.msl
index e112b01..749865a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/glsl_uint_smin/0-opt.wgsl.expected.ir.msl
@@ -1,36 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_3:ptr<private, vec3<u32>, read_write> = var
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_8:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_21:u32 = load_vector_element %x_3, 0u
-    %7:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
-    %x_23:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
-    %x_25:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
-    %12:i32 = bitcast %x_23
-    %13:i32 = bitcast %x_25
-    %14:i32 = min %12, %13
-    %15:u32 = bitcast %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_3, 0u
+    %x_21:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_21
+    %9:u32 = load %8
+    %x_23:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_21
+    %12:u32 = load %11
+    %x_25:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_8, 0u, %x_21
+    %15:i32 = bitcast %x_23
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_25
+    %18:i32 = min %16, %17
+    %19:u32 = bitcast %18
+    store %14, %19
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_3_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_3, %x_3_param
-    %18:void = call %main_1
+    %22:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.msl
index ecfe090..1acef4a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.spvasm.expected.ir.msl
@@ -1,39 +1,53 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_20:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_7, 0u, %x_20
-    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
-    %9:u32 = load %8
-    %10:i32 = bitcast %9
-    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
-    %12:u32 = load %11
-    %13:i32 = bitcast %12
-    %14:i32 = div %10, %13
-    %15:u32 = bitcast %14
-    store %7, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_20:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_7, 0u, %x_20
+    %9:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
+    %10:u32 = load %9
+    %11:i32 = bitcast %10
+    %12:i32 = let %11
+    %13:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
+    %14:u32 = load %13
+    %15:i32 = bitcast %14
+    %16:i32 = call %tint_div_i32, %12, %15
+    %18:u32 = bitcast %16
+    store %8, %18
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %21:void = call %main_1
     ret
   }
 }
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B4: {
+    %24:bool = eq %rhs, 0i
+    %25:bool = eq %lhs, -2147483648i
+    %26:bool = eq %rhs, -1i
+    %27:bool = and %25, %26
+    %28:bool = or %24, %27
+    %29:i32 = select %rhs, 1i, %28
+    %30:i32 = div %lhs, %29
+    ret %30
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.msl
index 5d54502..73c5474 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_sdiv/0-opt.wgsl.expected.ir.msl
@@ -1,39 +1,55 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
   %x_7:ptr<storage, S, read_write> = var @binding_point(0, 2)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_20:u32 = load_vector_element %x_2, 0u
-    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
-    %x_22:u32 = load %7
-    %9:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
-    %x_24:u32 = load %9
-    %11:ptr<storage, u32, read_write> = access %x_7, 0u, %x_20
-    %12:i32 = bitcast %x_22
-    %13:i32 = bitcast %x_24
-    %14:i32 = div %12, %13
-    %15:u32 = bitcast %14
-    store %11, %15
+%main_1 = func():void {
+  $B2: {
+    %6:u32 = load_vector_element %x_2, 0u
+    %x_20:u32 = let %6
+    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
+    %9:u32 = load %8
+    %x_22:u32 = let %9
+    %11:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
+    %12:u32 = load %11
+    %x_24:u32 = let %12
+    %14:ptr<storage, u32, read_write> = access %x_7, 0u, %x_20
+    %15:i32 = bitcast %x_22
+    %16:i32 = let %15
+    %17:i32 = bitcast %x_24
+    %18:i32 = call %tint_div_i32, %16, %17
+    %20:u32 = bitcast %18
+    store %14, %20
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %18:void = call %main_1
+    %23:void = call %main_1
     ret
   }
 }
+%tint_div_i32 = func(%lhs:i32, %rhs:i32):i32 {
+  $B4: {
+    %26:bool = eq %rhs, 0i
+    %27:bool = eq %lhs, -2147483648i
+    %28:bool = eq %rhs, -1i
+    %29:bool = and %27, %28
+    %30:bool = or %26, %29
+    %31:i32 = select %rhs, 1i, %30
+    %32:i32 = div %lhs, %31
+    ret %32
+  }
+}
 
 unhandled variable address space
 ********************************************************************
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.msl
index ced5743..399b26a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.spvasm.expected.ir.msl
@@ -1,32 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_20:u32 = load_vector_element %x_2, 0u
-    %6:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
-    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
-    %8:u32 = load %7
-    %9:i32 = bitcast %8
-    %10:i32 = negation %9
-    %11:u32 = bitcast %10
-    store %6, %11
+%main_1 = func():void {
+  $B2: {
+    %5:u32 = load_vector_element %x_2, 0u
+    %x_20:u32 = let %5
+    %7:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
+    %8:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
+    %9:u32 = load %8
+    %10:i32 = bitcast %9
+    %11:i32 = negation %10
+    %12:u32 = bitcast %11
+    store %7, %12
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %14:void = call %main_1
+    %15:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.msl
index bfe01bf..aa72ebe 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/compute/signed_op/uint_snegate/0-opt.wgsl.expected.ir.msl
@@ -1,32 +1,34 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<u32> @offset(0)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec3<u32>, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
   %x_6:ptr<storage, S, read_write> = var @binding_point(0, 1)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
-    %x_20:u32 = load_vector_element %x_2, 0u
-    %6:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
-    %x_22:u32 = load %6
-    %8:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
-    %9:i32 = bitcast %x_22
-    %10:i32 = negation %9
-    %11:u32 = bitcast %10
-    store %8, %11
+%main_1 = func():void {
+  $B2: {
+    %5:u32 = load_vector_element %x_2, 0u
+    %x_20:u32 = let %5
+    %7:ptr<storage, u32, read_write> = access %x_5, 0u, %x_20
+    %8:u32 = load %7
+    %x_22:u32 = let %8
+    %10:ptr<storage, u32, read_write> = access %x_6, 0u, %x_20
+    %11:i32 = bitcast %x_22
+    %12:i32 = negation %11
+    %13:u32 = bitcast %12
+    store %10, %13
     ret
   }
 }
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void -> %b3 {
-  %b3 = block {
+%tint_symbol = @compute @workgroup_size(1, 1, 1) func(%x_2_param:vec3<u32> [@global_invocation_id]):void {
+  $B3: {
     store %x_2, %x_2_param
-    %14:void = call %main_1
+    %16:void = call %main_1
     ret
   }
 }
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.msl
index 2e88a5f..5fa0561 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.spvasm.expected.ir.msl
@@ -1,6 +1,61 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_4_1:u32 @offset(0), @location(0), @interpolate(flat)
+  gl_Position:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %x_3:ptr<private, vec2<f32>, read_write> = var
+  %x_4:ptr<private, u32, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:f32 = load_vector_element %x_3, 0u
+    %6:f32 = add %5, 1.02777779102325439453f
+    %7:f32 = mul %6, 18.0f
+    %8:f32 = sub %7, 1.0f
+    %9:u32 = call %tint_f32_to_u32, %8
+    %11:u32 = let %9
+    %12:f32 = load_vector_element %x_3, 1u
+    %13:f32 = add %12, 1.02777779102325439453f
+    %14:f32 = mul %13, 18.0f
+    %15:f32 = sub %14, 1.0f
+    %16:u32 = call %tint_f32_to_u32, %15
+    %17:u32 = mul %16, 36u
+    %18:u32 = add %11, %17
+    store %x_4, %18
+    %19:f32 = load_vector_element %x_3, 0u
+    %20:f32 = load_vector_element %x_3, 1u
+    %21:vec4<f32> = construct %19, %20, 0.0f, 1.0f
+    store %gl_Position, %21
+    ret
+  }
+}
+%tint_symbol = @vertex func(%x_3_param:vec2<f32> [@location(0)]):main_out {
+  $B3: {
+    store %x_3, %x_3_param
+    %24:void = call %main_1
+    %25:u32 = load %x_4
+    %26:vec4<f32> = load %gl_Position
+    %27:main_out = construct %25, %26
+    ret %27
+  }
+}
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B4: {
+    %29:u32 = convert %value
+    %30:bool = gte %value, 0.0f
+    %31:u32 = select 0u, %29, %30
+    %32:bool = lte %value, 4294967040.0f
+    %33:u32 = select 4294967295u, %31, %32
+    ret %33
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.msl
index 2e88a5f..df8c87a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/float32/comparison/frexpstruct_1_frag/0.wgsl.expected.ir.msl
@@ -1,6 +1,65 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_4_1:u32 @offset(0), @location(0), @interpolate(flat)
+  gl_Position:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %x_3:ptr<private, vec2<f32>, read_write> = var
+  %x_4:ptr<private, u32, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:f32 = load_vector_element %x_3, 0u
+    %x_30:f32 = let %5
+    %7:f32 = load_vector_element %x_3, 1u
+    %x_36:f32 = let %7
+    %9:f32 = add %x_30, 1.02777779102325439453f
+    %10:f32 = mul %9, 18.0f
+    %11:f32 = sub %10, 1.0f
+    %12:u32 = call %tint_f32_to_u32, %11
+    %14:u32 = let %12
+    %15:f32 = add %x_36, 1.02777779102325439453f
+    %16:f32 = mul %15, 18.0f
+    %17:f32 = sub %16, 1.0f
+    %18:u32 = call %tint_f32_to_u32, %17
+    %19:u32 = mul %18, 36u
+    %20:u32 = add %14, %19
+    store %x_4, %20
+    %21:vec2<f32> = load %x_3
+    %x_43:vec2<f32> = let %21
+    %23:f32 = access %x_43, 0u
+    %24:f32 = access %x_43, 1u
+    %25:vec4<f32> = construct %23, %24, 0.0f, 1.0f
+    store %gl_Position, %25
+    ret
+  }
+}
+%tint_symbol = @vertex func(%x_3_param:vec2<f32> [@location(0)]):main_out {
+  $B3: {
+    store %x_3, %x_3_param
+    %28:void = call %main_1
+    %29:u32 = load %x_4
+    %30:vec4<f32> = load %gl_Position
+    %31:main_out = construct %29, %30
+    ret %31
+  }
+}
+%tint_f32_to_u32 = func(%value:f32):u32 {
+  $B4: {
+    %33:u32 = convert %value
+    %34:bool = gte %value, 0.0f
+    %35:u32 = select 0u, %33, %34
+    %36:bool = lte %value, 4294967040.0f
+    %37:u32 = select 4294967295u, %35, %36
+    ret %37
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.msl
index 94e248c..5f6a95e 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float2 const x_23 = position_1.xy;
+  gl_Position = float4(x_23[0u], x_23[1u], 0.5f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.msl
index 28251dc..6d8c635 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/0-opt.wgsl.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float4 const x_22 = pos;
+  float2 const x_23 = float2(x_22[0u], x_22[1u]);
+  gl_Position = float4(x_23[0u], x_23[1u], 0.5f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:14:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.msl
index efdd3b1..058cc5a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.30000001192092895508f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.msl
index efdd3b1..058cc5a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_equal/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.30000001192092895508f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.msl
index 94e248c..f89949f 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float2 const x_23 = position_1.xy;
+  gl_Position = float4(x_23[0u], x_23[1u], 0.60000002384185791016f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.msl
index 28251dc..3ef9006 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/0-opt.wgsl.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float4 const x_22 = pos;
+  float2 const x_23 = float2(x_22[0u], x_22[1u]);
+  gl_Position = float4(x_23[0u], x_23[1u], 0.60000002384185791016f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:14:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.msl
index efdd3b1..d643a09 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.40000000596046447754f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.msl
index efdd3b1..d643a09 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_greater/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.40000000596046447754f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.msl
index 94e248c..1674ea7 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float2 const x_23 = position_1.xy;
+  gl_Position = float4(x_23[0u], x_23[1u], 0.40000000596046447754f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.msl
index 28251dc..7810624 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less/0-opt.wgsl.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float4 const x_22 = pos;
+  float2 const x_23 = float2(x_22[0u], x_22[1u]);
+  gl_Position = float4(x_23[0u], x_23[1u], 0.40000000596046447754f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:14:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.msl
index efdd3b1..c1d01f7 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.69999998807907104492f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.msl
index efdd3b1..c1d01f7 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_less_or_equal/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.69999998807907104492f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.msl
index 94e248c..f956aac 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float2 const x_23 = position_1.xy;
+  gl_Position = float4(x_23[0u], x_23[1u], 0.30000001192092895508f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.msl
index 28251dc..e518b6a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/0-opt.wgsl.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float4 const x_22 = pos;
+  float2 const x_23 = float2(x_22[0u], x_22[1u]);
+  gl_Position = float4(x_23[0u], x_23[1u], 0.30000001192092895508f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:14:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.msl
index efdd3b1..eb3264c 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.5f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.msl
index efdd3b1..eb3264c 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/early_fragment/depth_not_equal/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %color_out, vec4<f32>(1.0f, 0.0f, 0.0f, 1.0f)
+    store %gl_FragDepth, 0.5f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %color_out
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.msl
index 94e248c..bf1db6e 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float2 const x_23 = position_1.xy;
+  gl_Position = float4(x_23[0u], x_23[1u], 0.69999998807907104492f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.msl
index 28251dc..63383f8 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_1/0-opt.wgsl.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float4 const x_22 = pos;
+  float2 const x_23 = float2(x_22[0u], x_22[1u]);
+  gl_Position = float4(x_23[0u], x_23[1u], 0.69999998807907104492f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:14:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.msl
index 94e248c..3ed471e 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.spvasm.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Swizzle
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float2 const x_23 = position_1.xy;
+  gl_Position = float4(x_23[0u], x_23[1u], 0.20000000298023223877f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.msl
index 28251dc..bbc42ee 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/0-opt.wgsl.expected.ir.msl
@@ -1,9 +1,30 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float4 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float4 const x_22 = pos;
+  float2 const x_23 = float2(x_22[0u], x_22[1u]);
+  gl_Position = float4(x_23[0u], x_23[1u], 0.20000000298023223877f, 1.0f);
+}
+vertex main_out tint_symbol(float4 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float4 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:14:29: error: invalid type 'float4' (vector of 4 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float4 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.msl
index efdd3b1..de15631 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.30000001192092895508f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.msl
index efdd3b1..de15631 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthgreater_2/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.30000001192092895508f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.msl
index efdd3b1..58ded0f 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.10000000149011611938f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.msl
index efdd3b1..58ded0f 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_0/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.10000000149011611938f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.msl
index efdd3b1..89952c7 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.60000002384185791016f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.msl
index efdd3b1..89952c7 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthless_2/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.60000002384185791016f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.msl
index efdd3b1..09614d6 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.spvasm.expected.ir.msl
@@ -1,6 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    %5:f32 = load_vector_element %gl_FragCoord, 2u
+    store %gl_FragDepth, %5
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %8:void = call %main_1
+    %9:vec4<f32> = load %outColor
+    %10:f32 = load %gl_FragDepth
+    %11:main_out = construct %9, %10
+    ret %11
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.msl
index efdd3b1..5682d70 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_0/1.wgsl.expected.ir.msl
@@ -1,6 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    %5:f32 = load_vector_element %gl_FragCoord, 2u
+    %x_20:f32 = let %5
+    store %gl_FragDepth, %x_20
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %9:void = call %main_1
+    %10:vec4<f32> = load %outColor
+    %11:f32 = load %gl_FragDepth
+    %12:main_out = construct %10, %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.msl
index efdd3b1..9af0bf3 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.69999998807907104492f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.msl
index efdd3b1..9af0bf3 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_2/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.69999998807907104492f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.msl
index efdd3b1..121c6ad 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.spvasm.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.40000000596046447754f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.msl
index efdd3b1..121c6ad 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/graphics/execution_mode/depthunchanged_3/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  outColor_1:vec4<f32> @offset(0), @location(0)
+  gl_FragDepth_1:f32 @offset(16), @builtin(frag_depth)
+}
+
+$B1: {  # root
+  %outColor:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragDepth:ptr<private, f32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    store %outColor, vec4<f32>(0.0f)
+    store %gl_FragDepth, 0.40000000596046447754f
+    ret
+  }
+}
+%tint_symbol = @fragment func():main_out {
+  $B3: {
+    %5:void = call %main_1
+    %6:vec4<f32> = load %outColor
+    %7:f32 = load %gl_FragDepth
+    %8:main_out = construct %6, %7
+    ret %8
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.msl
index efdd3b1..a96006c 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.spvasm.expected.ir.msl
@@ -1,6 +1,36 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  gl_Position:vec4<f32> @offset(0), @builtin(position)
+  pos_1:u32 @offset(16), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %position_1:ptr<private, vec4<f32>, read_write> = var
+  %pos:ptr<private, u32, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %position_1
+    store %gl_Position, %5
+    store %pos, 0u
+    ret
+  }
+}
+%tint_symbol = @vertex func(%position_1_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %position_1, %position_1_param
+    %8:void = call %main_1
+    %9:vec4<f32> = load %gl_Position
+    %10:u32 = load %pos
+    %11:main_out = construct %9, %10
+    ret %11
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.msl
index efdd3b1..781951a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/spirv1p4/hlsl_functionality1/decorate_string/0.wgsl.expected.ir.msl
@@ -1,6 +1,37 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  gl_Position:vec4<f32> @offset(0), @builtin(position)
+  pos_1:u32 @offset(16), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %vert_pos:ptr<private, vec4<f32>, read_write> = var
+  %pos:ptr<private, u32, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %vert_pos
+    %x_22:vec4<f32> = let %5
+    store %gl_Position, %x_22
+    store %pos, 0u
+    ret
+  }
+}
+%tint_symbol = @vertex func(%position_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %vert_pos, %position_param
+    %9:void = call %main_1
+    %10:vec4<f32> = load %gl_Position
+    %11:u32 = load %pos
+    %12:main_out = construct %10, %11
+    ret %12
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.msl
index efdd3b1..98b8edb 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,40 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+  gl_Position:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec3<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %6:vec3<f32> = load %x_2
+    %7:vec4<f32> = construct %6, 1.0f
+    store %gl_Position, %7
+    %8:i32 = load %x_3
+    store %x_4, %8
+    ret
+  }
+}
+%tint_symbol = @vertex func(%x_2_param:vec3<f32> [@location(0)], %x_3_param:i32 [@location(1), @interpolate(flat)]):main_out {
+  $B3: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %12:void = call %main_1
+    %13:i32 = load %x_4
+    %14:vec4<f32> = load %gl_Position
+    %15:main_out = construct %13, %14
+    ret %15
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.msl
index efdd3b1..161ab72 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_atomic/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+  gl_Position:vec4<f32> @offset(16), @builtin(position)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec3<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+  %gl_Position:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %6:vec3<f32> = load %x_2
+    %x_22:vec3<f32> = let %6
+    %8:vec4<f32> = construct %x_22, 1.0f
+    store %gl_Position, %8
+    %9:i32 = load %x_3
+    store %x_4, %9
+    ret
+  }
+}
+%tint_symbol = @vertex func(%x_2_param:vec3<f32> [@location(0)], %x_3_param:i32 [@location(1), @interpolate(flat)]):main_out {
+  $B3: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %13:void = call %main_1
+    %14:i32 = load %x_4
+    %15:vec4<f32> = load %gl_Position
+    %16:main_out = construct %14, %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.msl
index efdd3b1..877ebc6 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_image_store/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:924 internal compiler error: TINT_UNREACHABLE unhandled: textureStore
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.msl
index 2e88a5f..96f0c80 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.spvasm.expected.ir.msl
@@ -1,6 +1,62 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec4<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:f32 = load_vector_element %x_2, 0u
+    %6:i32 = call %tint_f32_to_i32, %5
+    %8:i32 = and %6, 1i
+    %9:i32 = let %8
+    %10:f32 = load_vector_element %x_2, 1u
+    %11:i32 = call %tint_f32_to_i32, %10
+    %12:i32 = and %11, 1i
+    %13:i32 = add %9, %12
+    %14:i32 = load %x_3
+    %15:i32 = add %13, %14
+    %16:i32 = let %15
+    %17:f32 = load_vector_element %x_2, 2u
+    %18:i32 = call %tint_f32_to_i32, %17
+    %19:bool = eq %16, %18
+    if %19 [t: $B3] {  # if_1
+      $B3: {  # true
+        exit_if  # if_1
+      }
+    }
+    store %x_4, 1i
+    ret
+  }
+}
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %23:void = call %main_1
+    %24:i32 = load %x_4
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %27:i32 = convert %value
+    %28:bool = gte %value, -2147483648.0f
+    %29:i32 = select -2147483648i, %27, %28
+    %30:bool = lte %value, 2147483520.0f
+    %31:i32 = select 2147483647i, %29, %30
+    ret %31
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.msl
index 28251dc..118798a 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/1.wgsl.expected.ir.msl
@@ -1,6 +1,65 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec4<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %x_2
+    %x_16:vec4<f32> = let %5
+    %7:i32 = load %x_3
+    %x_26:i32 = let %7
+    %9:f32 = access %x_16, 0u
+    %10:i32 = call %tint_f32_to_i32, %9
+    %12:i32 = and %10, 1i
+    %13:i32 = let %12
+    %14:f32 = access %x_16, 1u
+    %15:i32 = call %tint_f32_to_i32, %14
+    %16:i32 = and %15, 1i
+    %17:i32 = add %13, %16
+    %18:i32 = add %17, %x_26
+    %19:i32 = let %18
+    %20:f32 = access %x_16, 2u
+    %21:i32 = call %tint_f32_to_i32, %20
+    %22:bool = eq %19, %21
+    if %22 [t: $B3] {  # if_1
+      $B3: {  # true
+        exit_if  # if_1
+      }
+    }
+    store %x_4, 1i
+    ret
+  }
+}
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %26:void = call %main_1
+    %27:i32 = load %x_4
+    %28:main_out = construct %27
+    ret %28
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %30:i32 = convert %value
+    %31:bool = gte %value, -2147483648.0f
+    %32:i32 = select -2147483648i, %30, %31
+    %33:bool = lte %value, 2147483520.0f
+    %34:i32 = select 2147483647i, %32, %33
+    ret %34
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.msl
index 2e88a5f..7c69af4 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.spvasm.expected.ir.msl
@@ -1,6 +1,57 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  out_data_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %out_data:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_is_odd:ptr<function, bool, read_write> = var
+    %y_is_odd:ptr<function, bool, read_write> = var
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %7:i32 = call %tint_f32_to_i32, %6
+    %9:i32 = and %7, 1i
+    %10:bool = eq %9, 1i
+    store %x_is_odd, %10
+    %11:f32 = load_vector_element %gl_FragCoord, 1u
+    %12:i32 = call %tint_f32_to_i32, %11
+    %13:i32 = and %12, 1i
+    %14:bool = eq %13, 1i
+    store %y_is_odd, %14
+    %15:bool = load %x_is_odd
+    %16:bool = load %y_is_odd
+    %17:bool = or %15, %16
+    %18:i32 = select 0i, 1i, %17
+    store %out_data, %18
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %21:void = call %main_1
+    %22:i32 = load %out_data
+    %23:main_out = construct %22
+    ret %23
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B4: {
+    %25:i32 = convert %value
+    %26:bool = gte %value, -2147483648.0f
+    %27:i32 = select -2147483648i, %25, %26
+    %28:bool = lte %value, 2147483520.0f
+    %29:i32 = select 2147483647i, %27, %28
+    ret %29
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.msl
index 2e88a5f..cdd96cd 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write/2-opt.wgsl.expected.ir.msl
@@ -1,6 +1,61 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  out_data_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %out_data:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_is_odd:ptr<function, bool, read_write> = var
+    %y_is_odd:ptr<function, bool, read_write> = var
+    %6:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_24:f32 = let %6
+    %8:i32 = call %tint_f32_to_i32, %x_24
+    %10:i32 = and %8, 1i
+    %11:bool = eq %10, 1i
+    store %x_is_odd, %11
+    %12:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_29:f32 = let %12
+    %14:i32 = call %tint_f32_to_i32, %x_29
+    %15:i32 = and %14, 1i
+    %16:bool = eq %15, 1i
+    store %y_is_odd, %16
+    %17:bool = load %x_is_odd
+    %x_33:bool = let %17
+    %19:bool = load %y_is_odd
+    %x_34:bool = let %19
+    %21:bool = or %x_33, %x_34
+    %22:i32 = select 0i, 1i, %21
+    store %out_data, %22
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %25:void = call %main_1
+    %26:i32 = load %out_data
+    %27:main_out = construct %26
+    ret %27
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B4: {
+    %29:i32 = convert %value
+    %30:bool = gte %value, -2147483648.0f
+    %31:i32 = select -2147483648i, %29, %30
+    %32:bool = lte %value, 2147483520.0f
+    %33:i32 = select 2147483647i, %31, %32
+    ret %33
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.msl
index efdd3b1..eb52e3c 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.spvasm.expected.ir.msl
@@ -1,6 +1,65 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec4<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %x_2
+    %x_16:vec4<f32> = let %5
+    %7:i32 = load %x_3
+    %x_26:i32 = let %7
+    store %x_4, 1i
+    %9:f32 = access %x_16, 0u
+    %10:i32 = call %tint_f32_to_i32, %9
+    %12:i32 = and %10, 1i
+    %13:i32 = let %12
+    %14:f32 = access %x_16, 1u
+    %15:i32 = call %tint_f32_to_i32, %14
+    %16:i32 = and %15, 1i
+    %17:i32 = add %13, %16
+    %18:i32 = add %17, %x_26
+    %19:i32 = let %18
+    %20:f32 = access %x_16, 2u
+    %21:i32 = call %tint_f32_to_i32, %20
+    %22:bool = eq %19, %21
+    if %22 [t: $B3] {  # if_1
+      $B3: {  # true
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %26:void = call %main_1
+    %27:i32 = load %x_4
+    %28:main_out = construct %27
+    ret %28
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %30:i32 = convert %value
+    %31:bool = gte %value, -2147483648.0f
+    %32:i32 = select -2147483648i, %30, %31
+    %33:bool = lte %value, 2147483520.0f
+    %34:i32 = select 2147483647i, %32, %33
+    ret %34
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.msl
index efdd3b1..eb52e3c 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_output_write_before_terminate/1.wgsl.expected.ir.msl
@@ -1,6 +1,65 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec4<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %5:vec4<f32> = load %x_2
+    %x_16:vec4<f32> = let %5
+    %7:i32 = load %x_3
+    %x_26:i32 = let %7
+    store %x_4, 1i
+    %9:f32 = access %x_16, 0u
+    %10:i32 = call %tint_f32_to_i32, %9
+    %12:i32 = and %10, 1i
+    %13:i32 = let %12
+    %14:f32 = access %x_16, 1u
+    %15:i32 = call %tint_f32_to_i32, %14
+    %16:i32 = and %15, 1i
+    %17:i32 = add %13, %16
+    %18:i32 = add %17, %x_26
+    %19:i32 = let %18
+    %20:f32 = access %x_16, 2u
+    %21:i32 = call %tint_f32_to_i32, %20
+    %22:bool = eq %19, %21
+    if %22 [t: $B3] {  # if_1
+      $B3: {  # true
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %26:void = call %main_1
+    %27:i32 = load %x_4
+    %28:main_out = construct %27
+    ret %28
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %30:i32 = convert %value
+    %31:bool = gte %value, -2147483648.0f
+    %32:i32 = select -2147483648i, %30, %31
+    %33:bool = lte %value, 2147483520.0f
+    %34:i32 = select 2147483647i, %32, %33
+    ret %34
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.msl
index 24741b5..13659a2 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<i32> @offset(0)
 }
 
@@ -8,48 +8,61 @@
   x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec4<f32>, read_write> = var
   %x_3:ptr<private, i32, read_write> = var
   %x_4:ptr<private, i32, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_4, 1i
     %6:f32 = load_vector_element %x_2, 0u
-    %x_27:i32 = convert %6
-    %8:f32 = load_vector_element %x_2, 1u
-    %x_28:i32 = convert %8
-    %10:i32 = and %x_27, 1i
-    %11:i32 = and %x_28, 1i
-    %12:i32 = add %10, %11
-    %13:i32 = load %x_3
-    %14:i32 = add %12, %13
-    %15:f32 = load_vector_element %x_2, 2u
-    %16:i32 = convert %15
-    %17:bool = eq %14, %16
-    if %17 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %7:i32 = call %tint_f32_to_i32, %6
+    %x_27:i32 = let %7
+    %10:f32 = load_vector_element %x_2, 1u
+    %11:i32 = call %tint_f32_to_i32, %10
+    %x_28:i32 = let %11
+    %13:i32 = and %x_27, 1i
+    %14:i32 = and %x_28, 1i
+    %15:i32 = add %13, %14
+    %16:i32 = load %x_3
+    %17:i32 = add %15, %16
+    %18:i32 = let %17
+    %19:f32 = load_vector_element %x_2, 2u
+    %20:i32 = call %tint_f32_to_i32, %19
+    %21:bool = eq %18, %20
+    if %21 [t: $B3] {  # if_1
+      $B3: {  # true
         exit_if  # if_1
       }
     }
-    %18:i32 = mul %x_28, 8i
-    %19:i32 = add %x_27, %18
-    %20:ptr<storage, i32, read_write> = access %x_5, 0u, %19
-    store %20, %x_27
+    %22:i32 = mul %x_28, 8i
+    %23:i32 = add %x_27, %22
+    %24:ptr<storage, i32, read_write> = access %x_5, 0u, %23
+    store %24, %x_27
     ret
   }
 }
-%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
     store %x_2, %x_2_param
     store %x_3, %x_3_param
-    %24:void = call %main_1
-    %25:i32 = load %x_4
-    %26:main_out = construct %25
-    ret %26
+    %28:void = call %main_1
+    %29:i32 = load %x_4
+    %30:main_out = construct %29
+    ret %30
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %32:i32 = convert %value
+    %33:bool = gte %value, -2147483648.0f
+    %34:i32 = select -2147483648i, %32, %33
+    %35:bool = lte %value, 2147483520.0f
+    %36:i32 = select 2147483647i, %34, %35
+    ret %36
   }
 }
 
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.msl
index 46e7dcc37..e359fb6 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/no_ssbo_store/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<i32> @offset(0)
 }
 
@@ -8,49 +8,63 @@
   x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec4<f32>, read_write> = var
   %x_3:ptr<private, i32, read_write> = var
   %x_4:ptr<private, i32, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_4, 1i
-    %x_23:vec4<f32> = load %x_2
-    %7:f32 = access %x_23, 0u
-    %x_27:i32 = convert %7
-    %9:f32 = access %x_23, 1u
-    %x_28:i32 = convert %9
-    %x_33:i32 = load %x_3
-    %12:i32 = and %x_27, 1i
-    %13:i32 = and %x_28, 1i
-    %14:i32 = add %12, %13
-    %15:i32 = add %14, %x_33
-    %16:f32 = access %x_23, 2u
-    %17:i32 = convert %16
-    %18:bool = eq %15, %17
-    if %18 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %6:vec4<f32> = load %x_2
+    %x_23:vec4<f32> = let %6
+    %8:f32 = access %x_23, 0u
+    %9:i32 = call %tint_f32_to_i32, %8
+    %x_27:i32 = let %9
+    %12:f32 = access %x_23, 1u
+    %13:i32 = call %tint_f32_to_i32, %12
+    %x_28:i32 = let %13
+    %15:i32 = load %x_3
+    %x_33:i32 = let %15
+    %17:i32 = and %x_27, 1i
+    %18:i32 = and %x_28, 1i
+    %19:i32 = add %17, %18
+    %20:i32 = add %19, %x_33
+    %21:f32 = access %x_23, 2u
+    %22:i32 = call %tint_f32_to_i32, %21
+    %23:bool = eq %20, %22
+    if %23 [t: $B3] {  # if_1
+      $B3: {  # true
         exit_if  # if_1
       }
     }
-    %19:i32 = mul %x_28, 8i
-    %20:i32 = add %x_27, %19
-    %21:ptr<storage, i32, read_write> = access %x_5, 0u, %20
-    store %21, %x_27
+    %24:i32 = mul %x_28, 8i
+    %25:i32 = add %x_27, %24
+    %26:ptr<storage, i32, read_write> = access %x_5, 0u, %25
+    store %26, %x_27
     ret
   }
 }
-%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
     store %x_2, %x_2_param
     store %x_3, %x_3_param
-    %25:void = call %main_1
-    %26:i32 = load %x_4
-    %27:main_out = construct %26
-    ret %27
+    %30:void = call %main_1
+    %31:i32 = load %x_4
+    %32:main_out = construct %31
+    ret %32
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %34:i32 = convert %value
+    %35:bool = gte %value, -2147483648.0f
+    %36:i32 = select -2147483648i, %34, %35
+    %37:bool = lte %value, 2147483520.0f
+    %38:i32 = select 2147483647i, %36, %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.msl
index 34fe99c..ba7eaf9 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.spvasm.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<i32> @offset(0)
 }
 
@@ -8,49 +8,63 @@
   x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec4<f32>, read_write> = var
   %x_3:ptr<private, i32, read_write> = var
   %x_4:ptr<private, i32, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_4, 1i
-    %x_23:vec4<f32> = load %x_2
-    %7:f32 = load_vector_element %x_2, 0u
-    %x_27:i32 = convert %7
-    %9:f32 = load_vector_element %x_2, 1u
-    %x_28:i32 = convert %9
-    %x_33:i32 = load %x_3
-    %12:i32 = mul %x_28, 8i
-    %13:i32 = add %x_27, %12
-    %14:ptr<storage, i32, read_write> = access %x_5, 0u, %13
-    store %14, %x_27
-    %15:i32 = and %x_27, 1i
-    %16:i32 = and %x_28, 1i
-    %17:i32 = add %15, %16
-    %18:i32 = add %17, %x_33
-    %19:f32 = access %x_23, 2u
-    %20:i32 = convert %19
-    %21:bool = eq %18, %20
-    if %21 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %6:vec4<f32> = load %x_2
+    %x_23:vec4<f32> = let %6
+    %8:f32 = load_vector_element %x_2, 0u
+    %9:i32 = call %tint_f32_to_i32, %8
+    %x_27:i32 = let %9
+    %12:f32 = load_vector_element %x_2, 1u
+    %13:i32 = call %tint_f32_to_i32, %12
+    %x_28:i32 = let %13
+    %15:i32 = load %x_3
+    %x_33:i32 = let %15
+    %17:i32 = mul %x_28, 8i
+    %18:i32 = add %x_27, %17
+    %19:ptr<storage, i32, read_write> = access %x_5, 0u, %18
+    store %19, %x_27
+    %20:i32 = and %x_27, 1i
+    %21:i32 = and %x_28, 1i
+    %22:i32 = add %20, %21
+    %23:i32 = add %22, %x_33
+    %24:f32 = access %x_23, 2u
+    %25:i32 = call %tint_f32_to_i32, %24
+    %26:bool = eq %23, %25
+    if %26 [t: $B3] {  # if_1
+      $B3: {  # true
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
     store %x_2, %x_2_param
     store %x_3, %x_3_param
-    %25:void = call %main_1
-    %26:i32 = load %x_4
-    %27:main_out = construct %26
-    ret %27
+    %30:void = call %main_1
+    %31:i32 = load %x_4
+    %32:main_out = construct %31
+    ret %32
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %34:i32 = convert %value
+    %35:bool = gte %value, -2147483648.0f
+    %36:i32 = select -2147483648i, %34, %35
+    %37:bool = lte %value, 2147483520.0f
+    %38:i32 = select 2147483647i, %36, %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.msl
index 96ec0f3..537fcfa 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/ssbo_store_before_terminate/1.wgsl.expected.ir.msl
@@ -1,6 +1,6 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:355 internal compiler error: S = struct @align(4) {
+../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
   field0:array<i32> @offset(0)
 }
 
@@ -8,49 +8,63 @@
   x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
 }
 
-%b1 = block {  # root
+$B1: {  # root
   %x_2:ptr<private, vec4<f32>, read_write> = var
   %x_3:ptr<private, i32, read_write> = var
   %x_4:ptr<private, i32, read_write> = var
   %x_5:ptr<storage, S, read_write> = var @binding_point(0, 0)
 }
 
-%main_1 = func():void -> %b2 {
-  %b2 = block {
+%main_1 = func():void {
+  $B2: {
     store %x_4, 1i
-    %x_23:vec4<f32> = load %x_2
-    %7:f32 = access %x_23, 0u
-    %x_27:i32 = convert %7
-    %9:f32 = access %x_23, 1u
-    %x_28:i32 = convert %9
-    %x_33:i32 = load %x_3
-    %12:i32 = mul %x_28, 8i
-    %13:i32 = add %x_27, %12
-    %14:ptr<storage, i32, read_write> = access %x_5, 0u, %13
-    store %14, %x_27
-    %15:i32 = and %x_27, 1i
-    %16:i32 = and %x_28, 1i
-    %17:i32 = add %15, %16
-    %18:i32 = add %17, %x_33
-    %19:f32 = access %x_23, 2u
-    %20:i32 = convert %19
-    %21:bool = eq %18, %20
-    if %21 [t: %b3] {  # if_1
-      %b3 = block {  # true
+    %6:vec4<f32> = load %x_2
+    %x_23:vec4<f32> = let %6
+    %8:f32 = access %x_23, 0u
+    %9:i32 = call %tint_f32_to_i32, %8
+    %x_27:i32 = let %9
+    %12:f32 = access %x_23, 1u
+    %13:i32 = call %tint_f32_to_i32, %12
+    %x_28:i32 = let %13
+    %15:i32 = load %x_3
+    %x_33:i32 = let %15
+    %17:i32 = mul %x_28, 8i
+    %18:i32 = add %x_27, %17
+    %19:ptr<storage, i32, read_write> = access %x_5, 0u, %18
+    store %19, %x_27
+    %20:i32 = and %x_27, 1i
+    %21:i32 = and %x_28, 1i
+    %22:i32 = add %20, %21
+    %23:i32 = add %22, %x_33
+    %24:f32 = access %x_23, 2u
+    %25:i32 = call %tint_f32_to_i32, %24
+    %26:bool = eq %23, %25
+    if %26 [t: $B3] {  # if_1
+      $B3: {  # true
         exit_if  # if_1
       }
     }
     ret
   }
 }
-%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out -> %b4 {
-  %b4 = block {
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B4: {
     store %x_2, %x_2_param
     store %x_3, %x_3_param
-    %25:void = call %main_1
-    %26:i32 = load %x_4
-    %27:main_out = construct %26
-    ret %27
+    %30:void = call %main_1
+    %31:i32 = load %x_4
+    %32:main_out = construct %31
+    ret %32
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B5: {
+    %34:i32 = convert %value
+    %35:bool = gte %value, -2147483648.0f
+    %36:i32 = select -2147483648i, %34, %35
+    %37:bool = lte %value, 2147483520.0f
+    %38:i32 = select 2147483647i, %36, %37
+    ret %38
   }
 }
 
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.msl
index efdd3b1..40c7b84 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.spvasm.expected.ir.msl
@@ -1,6 +1,92 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec4<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_33:ptr<function, i32, read_write> = var
+    %6:vec4<f32> = load %x_2
+    %x_18:vec4<f32> = let %6
+    %8:i32 = load %x_3
+    %x_28:i32 = let %8
+    store %x_33, 0i
+    %10:f32 = access %x_18, 0u
+    %11:i32 = call %tint_f32_to_i32, %10
+    %13:i32 = and %11, 1i
+    %14:i32 = let %13
+    %15:f32 = access %x_18, 1u
+    %16:i32 = call %tint_f32_to_i32, %15
+    %17:i32 = and %16, 1i
+    %18:i32 = add %14, %17
+    %19:i32 = add %18, %x_28
+    %20:i32 = let %19
+    %21:f32 = access %x_18, 2u
+    %22:i32 = call %tint_f32_to_i32, %21
+    %23:bool = eq %20, %22
+    if %23 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %x_34:ptr<function, i32, read_write> = var
+            %25:i32 = load %x_33
+            %26:u32 = bitcast %25
+            %27:bool = lt %26, 10u
+            if %27 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                exit_if  # if_2
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            continue  # -> $B5
+          }
+          $B5: {  # continuing
+            %28:i32 = load %x_33
+            %29:i32 = add %28, 1i
+            store %x_34, %29
+            %30:i32 = load %x_34
+            store %x_33, %30
+            next_iteration  # -> $B4
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    store %x_4, 1i
+    ret
+  }
+}
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B8: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %34:void = call %main_1
+    %35:i32 = load %x_4
+    %36:main_out = construct %35
+    ret %36
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B9: {
+    %38:i32 = convert %value
+    %39:bool = gte %value, -2147483648.0f
+    %40:i32 = select -2147483648i, %38, %39
+    %41:bool = lte %value, 2147483520.0f
+    %42:i32 = select 2147483647i, %40, %41
+    ret %42
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.msl
index efdd3b1..2a16ab4 100644
--- a/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/spirv_assembly/instruction/terminate_invocation/terminate_loop/1.wgsl.expected.ir.msl
@@ -1,6 +1,92 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  x_4_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %x_2:ptr<private, vec4<f32>, read_write> = var
+  %x_3:ptr<private, i32, read_write> = var
+  %x_4:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %x_33_phi:ptr<function, i32, read_write> = var
+    %6:vec4<f32> = load %x_2
+    %x_18:vec4<f32> = let %6
+    %8:i32 = load %x_3
+    %x_28:i32 = let %8
+    store %x_33_phi, 0i
+    %10:f32 = access %x_18, 0u
+    %11:i32 = call %tint_f32_to_i32, %10
+    %13:i32 = and %11, 1i
+    %14:i32 = let %13
+    %15:f32 = access %x_18, 1u
+    %16:i32 = call %tint_f32_to_i32, %15
+    %17:i32 = and %16, 1i
+    %18:i32 = add %14, %17
+    %19:i32 = add %18, %x_28
+    %20:i32 = let %19
+    %21:f32 = access %x_18, 2u
+    %22:i32 = call %tint_f32_to_i32, %21
+    %23:bool = eq %20, %22
+    if %23 [t: $B3] {  # if_1
+      $B3: {  # true
+        loop [b: $B4, c: $B5] {  # loop_1
+          $B4: {  # body
+            %x_34:ptr<function, i32, read_write> = var
+            %25:i32 = load %x_33_phi
+            %x_33:i32 = let %25
+            %27:u32 = bitcast %x_33
+            %28:bool = lt %27, 10u
+            if %28 [t: $B6, f: $B7] {  # if_2
+              $B6: {  # true
+                exit_if  # if_2
+              }
+              $B7: {  # false
+                exit_loop  # loop_1
+              }
+            }
+            continue  # -> $B5
+          }
+          $B5: {  # continuing
+            %29:i32 = add %x_33, 1i
+            store %x_34, %29
+            %30:i32 = load %x_34
+            store %x_33_phi, %30
+            next_iteration  # -> $B4
+          }
+        }
+        exit_if  # if_1
+      }
+    }
+    store %x_4, 1i
+    ret
+  }
+}
+%tint_symbol = @fragment func(%x_2_param:vec4<f32> [@position], %x_3_param:i32 [@location(0), @interpolate(flat)]):main_out {
+  $B8: {
+    store %x_2, %x_2_param
+    store %x_3, %x_3_param
+    %34:void = call %main_1
+    %35:i32 = load %x_4
+    %36:main_out = construct %35
+    ret %36
+  }
+}
+%tint_f32_to_i32 = func(%value:f32):i32 {
+  $B9: {
+    %38:i32 = convert %value
+    %39:bool = gte %value, -2147483648.0f
+    %40:i32 = select -2147483648i, %38, %39
+    %41:bool = lte %value, 2147483520.0f
+    %42:i32 = select 2147483647i, %40, %41
+    ret %42
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.msl
index 2e88a5f..87619f7 100644
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.spvasm.expected.ir.msl
@@ -1,9 +1,28 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float3 position_1 = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  gl_Position = float4(position_1[0u], position_1[1u], position_1[2u], 1.0f);
+}
+vertex main_out tint_symbol(float3 position_1_param) {
+  position_1 = position_1_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float3 position_1 = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:12:29: error: invalid type 'float3' (vector of 3 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float3 position_1_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.msl
index 28251dc..5ed6613 100644
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/0.wgsl.expected.ir.msl
@@ -1,9 +1,29 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Access
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
+#include <metal_stdlib>
+using namespace metal;
+struct main_out {
+  float4 gl_Position [[position]];
+};
+
+thread float3 pos = 0.0f;
+thread float4 gl_Position = 0.0f;
+void main_1() {
+  float3 const x_21 = pos;
+  gl_Position = float4(x_21[0u], x_21[1u], x_21[2u], 1.0f);
+}
+vertex main_out tint_symbol(float3 position_param) {
+  pos = position_param;
+  main_1();
+  return {.gl_Position=gl_Position};
+}
+program_source:7:15: error: program scope variable must reside in constant address space
+thread float3 pos = 0.0f;
+              ^
+program_source:8:15: error: program scope variable must reside in constant address space
+thread float4 gl_Position = 0.0f;
+              ^
+program_source:13:29: error: invalid type 'float3' (vector of 3 'float' values) for input declaration in a vertex function
+vertex main_out tint_symbol(float3 position_param) {
+                            ^~~~~~~~~~~~~~~~~~~~~
+
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.msl
index 2e88a5f..5d3ae17 100644
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.spvasm.expected.ir.msl
@@ -1,6 +1,53 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  expect_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %expect:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %inbounds:ptr<function, bool, read_write> = var
+    %x_31:ptr<function, bool, read_write> = var
+    %x_32:ptr<function, bool, read_write> = var
+    %7:f32 = load_vector_element %gl_FragCoord, 0u
+    %8:bool = lt %7, 128.0f
+    %x_25:bool = let %8
+    store %x_32, %x_25
+    %10:bool = eq %x_25, false
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:f32 = load_vector_element %gl_FragCoord, 1u
+        %12:bool = lt %11, 128.0f
+        store %x_31, %12
+        %13:bool = load %x_31
+        store %x_32, %13
+        exit_if  # if_1
+      }
+    }
+    %14:bool = load %x_32
+    store %inbounds, %14
+    %15:bool = load %inbounds
+    %16:i32 = select -1i, 1i, %15
+    store %expect, %16
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B4: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %19:void = call %main_1
+    %20:i32 = load %expect
+    %21:main_out = construct %20
+    ret %21
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.msl
index 2e88a5f..cd23923 100644
--- a/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/subgroup_uniform_control_flow/discard/subgroup_reconverge_discard00/2-opt.wgsl.expected.ir.msl
@@ -1,6 +1,57 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(4) {
+  expect_1:i32 @offset(0), @location(0), @interpolate(flat)
+}
+
+$B1: {  # root
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+  %expect:ptr<private, i32, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %inbounds:ptr<function, bool, read_write> = var
+    %x_31:ptr<function, bool, read_write> = var
+    %x_32_phi:ptr<function, bool, read_write> = var
+    %7:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_24:f32 = let %7
+    %9:bool = lt %x_24, 128.0f
+    %x_25:bool = let %9
+    store %x_32_phi, %x_25
+    %11:bool = eq %x_25, false
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:f32 = load_vector_element %gl_FragCoord, 1u
+        %x_30:f32 = let %12
+        %14:bool = lt %x_30, 128.0f
+        store %x_31, %14
+        %15:bool = load %x_31
+        store %x_32_phi, %15
+        exit_if  # if_1
+      }
+    }
+    %16:bool = load %x_32_phi
+    %x_32:bool = let %16
+    store %inbounds, %x_32
+    %18:bool = load %inbounds
+    %x_33:bool = let %18
+    %20:i32 = select -1i, 1i, %x_33
+    store %expect, %20
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B4: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %23:void = call %main_1
+    %24:i32 = load %expect
+    %25:main_out = construct %24
+    ret %25
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.msl
index efdd3b1..d622080 100644
--- a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.spvasm.expected.ir.msl
@@ -1,6 +1,32 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %color_in:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:vec4<f32> = load %color_in
+    store %color_out, %4
+    ret
+  }
+}
+%tint_symbol = @fragment func(%color_in_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %color_in, %color_in_param
+    %7:void = call %main_1
+    %8:vec4<f32> = load %color_out
+    %9:main_out = construct %8
+    ret %9
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.msl
index efdd3b1..2a65f90 100644
--- a/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/texture/subgroup_lod/texel_fetch/1.wgsl.expected.ir.msl
@@ -1,6 +1,33 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::Store
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  color_out_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %color_out:ptr<private, vec4<f32>, read_write> = var
+  %color_in:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:vec4<f32> = load %color_in
+    %x_12:vec4<f32> = let %4
+    store %color_out, %x_12
+    ret
+  }
+}
+%tint_symbol = @fragment func(%color_in_param:vec4<f32> [@location(0)]):main_out {
+  $B3: {
+    store %color_in, %color_in_param
+    %8:void = call %main_1
+    %9:vec4<f32> = load %color_out
+    %10:main_out = construct %9
+    ret %10
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.msl b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.msl
index 2e88a5f..aff25ec 100644
--- a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.msl
+++ b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.spvasm.expected.ir.msl
@@ -1,6 +1,39 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  result_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %result:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:f32 = load_vector_element %gl_FragCoord, 0u
+    %5:f32 = floor %4
+    %6:f32 = div %5, 255.0f
+    %7:f32 = let %6
+    %8:f32 = load_vector_element %gl_FragCoord, 1u
+    %9:f32 = floor %8
+    %10:f32 = div %9, 255.0f
+    %11:vec4<f32> = construct %7, %10, 0.0f, 0.0f
+    store %result, %11
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %14:void = call %main_1
+    %15:vec4<f32> = load %result
+    %16:main_out = construct %15
+    ret %16
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
diff --git a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.msl b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.msl
index 2e88a5f..b3f5160 100644
--- a/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.msl
+++ b/test/tint/vk-gl-cts/texture/texel_offset/texel_offset/0-opt.wgsl.expected.ir.msl
@@ -1,6 +1,41 @@
 SKIP: FAILED
 
-<dawn>/src/tint/lang/msl/writer/printer/printer.cc:247 internal compiler error: Switch() matched no cases. Type: tint::core::ir::LoadVectorElement
+../../src/tint/lang/msl/writer/printer/printer.cc:1257 internal compiler error: main_out = struct @align(16) {
+  result_1:vec4<f32> @offset(0), @location(0)
+}
+
+$B1: {  # root
+  %result:ptr<private, vec4<f32>, read_write> = var
+  %gl_FragCoord:ptr<private, vec4<f32>, read_write> = var
+}
+
+%main_1 = func():void {
+  $B2: {
+    %4:f32 = load_vector_element %gl_FragCoord, 0u
+    %x_19:f32 = let %4
+    %6:f32 = load_vector_element %gl_FragCoord, 1u
+    %x_23:f32 = let %6
+    %8:f32 = floor %x_19
+    %9:f32 = div %8, 255.0f
+    %10:f32 = let %9
+    %11:f32 = floor %x_23
+    %12:f32 = div %11, 255.0f
+    %13:vec4<f32> = construct %10, %12, 0.0f, 0.0f
+    store %result, %13
+    ret
+  }
+}
+%tint_symbol = @fragment func(%gl_FragCoord_param:vec4<f32> [@position]):main_out {
+  $B3: {
+    store %gl_FragCoord, %gl_FragCoord_param
+    %16:void = call %main_1
+    %17:vec4<f32> = load %result
+    %18:main_out = construct %17
+    ret %18
+  }
+}
+
+invalid entry point IO struct uses
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
